friendlyarm / Actions-FriendlyWrt

Build FriendlyWrt using GitHub Actions
260 stars 116 forks source link

Kernel modules don't match kernel version #19

Open MoeRT09 opened 1 year ago

MoeRT09 commented 1 year ago

Hello,

the FriendlyWrt 22.03.2 release for NanoPi R5s is using kernel 5.10.110. However, the kernel modules installable via opkg (located at /opt/packages) are built for kernel 5.10.146. I noticed that because I wanted to install the kmod-mt7921u module in order to support the COMFAST CF-953AX USB WiFi adapter which supports WiFi 6, but the module was not loading. the kmod-mt7921u package installs it's files to /lib/modules/5.10.146 but because the running kernel is 5.10.110, modules will be loaded from /lib/modules/5.10.110. Copying the files to the 5.10.110 directory doesn't work either, as this will throw a version mismatch error. So probably something in the build process is mixing up kernel versions.

Fisiu commented 1 year ago

friendlywrt uses old kernel while openwrt follows lts releases (as possible). That's why you can't use external kernel modules. You would need to build it against you kernel version.

Ideally, if friendlywrt could work with upstream kernel, we could just use a standard openwrt image.

friendlyarm commented 1 year ago

FriendlyWrt uses rockchip-kernel, we need to keep up with the updates from Rockchip official. They will periodically release some security patches or fix hardware-related bugs, which are crucial for new CPUs like RK3588.

To add support for the COMFAST CF-953AX USB WiFi, you will need to find its driver and compile it. It cannot be installed through opkg. We plan to add support for this WiFi in the next software update.

tcbt999 commented 1 year ago

我在编译 无线网卡的驱动时,也出现内核版本和编译出来的驱动版本不一致的问题。

./friendlywrt/bin/targets/rockchip/armv8/packages/kmod-rtl88x2bu_5.10.161+2021-01-21-48e7c19c-1_aarch64_generic.ipk ./friendlywrt/staging_dir/target-aarch64_generic_musl/root-rockchip/lib/modules/5.10.161/rtl88x2bu.ko 内核版本是5.10.110,安装后无法驱动。将驱动复制到5.10.110目录后还是无法驱动,出现内核污染的问题,无法装载驱动。 请教一下:如何编译出和内核一样版本的驱动?不知道如何设置修改?

friendlyarm commented 1 year ago

编译openwrt时会编译主线的内核5.10.161,kmod的编译也会基于这个内核来编译 但是实际上不会也不能使用5.10.161这个内核,实际运行的内核是基于rksdk的5.10.110 因此,openwrt中的kmod都不能加载,如果有自己额外的驱动要编译,应基于5.10.110来编译并安装到指定的目录