If I build OpenWrt myself, can I still use kernel modules and packages from the repo?

I built a custom OW image from the git tag 19.07.3. My question is, if I install/boot into the image, will I be able to use okg to pull down kernel modules and packages that I did not build, or are they incompatible with my own build?

Steps taken:

git clone https://git.openwrt.org/openwrt/openwrt.git
git fetch --tags
git checkout v19.07.3
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig

I setup the R7800 options and enabled just luci from menuconfig.

Then I issued a make -j9 and that completed without error.

% ls -lh bin/targets/ipq806x/generic
total 19M
drwxr-xr-x 2 facade users 1.3K Jun  5 16:35 packages
-rw-r--r-- 1 facade users  921 Jun  5 16:31 config.buildinfo
-rw-r--r-- 1 facade users  267 Jun  5 16:31 feeds.buildinfo
-rw-r--r-- 1 facade users 3.7K Jun  5 16:35 openwrt-ipq806x-generic-device-netgear-r7800.manifest
-rw-r--r-- 1 facade users 5.0M Jun  5 16:35 openwrt-ipq806x-generic-netgear_r7800-initramfs-uImage
-rw-r--r-- 1 facade users 8.1M Jun  5 16:35 openwrt-ipq806x-generic-netgear_r7800-squashfs-factory.img
-rw-r--r-- 1 facade users 5.3M Jun  5 16:35 openwrt-ipq806x-generic-netgear_r7800-squashfs-sysupgrade.bin
-rw-r--r-- 1 facade users  743 Jun  5 16:35 sha256sums
-rw-r--r-- 1 facade users   18 Jun  5 16:31 version.buildinfo

If you are building your own image, it seems like you would bake in everything you want in your image.At least all the bits would be built to your specification / needs. Unless there is something here I be missing.

I am wondering about installing something I might not have configured kernel module wise but also package wise. For example, if I neglected to build the kmod-ext4 support, can I download it? Also, let's say I decide I want to download htop but did not compile that myself. Can I do it?

1 Like

Understood, I just don't get it I guess. The answer is it depends, but sure. Something like htop should not be a problem, kmods are going to complain, but probably safe to force. But why bother, takes very little to build and flash an image, multiple times a day if you are inclined that way.

2 Likes

I ask in the scenario of I find that I missed something :slight_smile: I am going through the menuconfig picking things I use (kmod-fs-ext4 and kmod-usb-storage for example). I get your point about missing something, just rebuilt and reflash.

This is what I do with my ER-X built to include some cherry-picked patches. No kmod complaining as kernel is the same. I build into the kernel the mods patched by cherry-picked patches, BTW. I reckon, this makes the difference.

1 Like

Thanks for the replies all.

If you just add or remove packages, using the image builder (https://openwrt.org/docs/guide-user/additional-software/imagebuilder) is far easier and faster than compiling everything yourself. In this case, all packages should be compatible.

If you change any configuration options to the kernel, then kmod packages from the repo will be incompatible with your build.

2 Likes

In nutshell, you

  • can install normal userspace packages (like nano, hostapd, whatever). But note that if they depend on new kernel modules, the installation may fail as you

  • can not install kernel related packages.

    Kernel packages have a dependency checksum tied to exact kernel options at compile time. The packages might still work, or they might brick the device. E.g. a missing codepage file kmod-nls-cp437 style would likely work, while a hardware oriented driver might crash. (Installing kmods can be tried with opkg install --force-depends , but prepare for bricking.)

Like already said above, compiling a new image is easy, so I never bother trying to force kernel stuff.

3 Likes

I have a nginx server on my development box that has a virtual folder pointed to the bin directory produced by my build. The distfeeds.conf on my openwrt points to this url, so an opkg update and an opkg install will pull the index and packages off my local build.

Then, it's a simple case of opening menuconfig, enabling the package you want and doing a build, then an opkg update and opkg install

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.