hzyitc / armbian-onecloud

Armbian for onecloud. 玩客云用armbian
1.09k stars 209 forks source link

23.02.0在安装rtl8822bu无线网卡驱动时报错缺乏armv7l的makefile文件 #132

Closed FreeWillDeveloper closed 3 months ago

FreeWillDeveloper commented 1 year ago

内核是6.1.12meson 使用固件是Armbian_23.02.0-trunk_Onecloud_jammy_current_6.1.12.burn.img 安装过程参考:链接 在执行到sudo dkms build -m rtl88x2bu -v ${VER}这一步时报错. 在/var/lib/dkms/rtl88x2bu/5.3.1/build/下的make.log文件下查看报错内容如下:

DKMS make.log for rtl88x2bu-5.3.1 for kernel 6.1.12-meson (armv7l)
Mon Jun 5 04:32:01 PM CST 2023
make ARCH=armv7l CROSS_COMPILE= -C /lib/modules/6.1.12-meson/build M=/var/lib/dkms/rtl88x2bu/5.3.1/build modules
make[1]: Entering directory '/usr/src/linux-headers-6.1.12-meson'
Makefile:768: arch/armv7l/Makefile: No such file or directory
make[1]: *** No rule to make target 'arch/armv7l/Makefile'. Stop.
make[1]: Leaving directory '/usr/src/linux-headers-6.1.12-meson'
make: *** [Makefile:2011: modules] Error 2

报错显示/usr/src/linux-headers-6.1.12-meson/arch/, 没有armv7l的makefile. 想知道这个缺少的armv7l的makefile文件在哪里获得? 还是说更新到最新固件会有这个文件吗? @hzyitc

hzyitc commented 1 year ago

源码?

ARCH 应该是 arm ,而不是 armv7l

FreeWillDeveloper commented 1 year ago

源码?

ARCH 应该是 arm ,而不是 armv7l驱动源码地址 按照源码里的readme文件中的步骤安装, 然后出现缺少armv7l的报错. 然后自己试着将headers文件夹里的Arch文件夹中的arm文件夹改名为armv7l, 倒是不提醒缺少makefile了, 但是更多报错了, 在dkms文件夹下的log文件中报错内容显示如下:

DKMS make.log for rtl88x2bu-5.3.1 for kernel 6.1.12-meson (armv7l)
Tue Jun  6 03:57:42 PM CST 2023
make ARCH=armv7l CROSS_COMPILE= -C /lib/modules/6.1.12-meson/build M=/var/lib/dkms/rtl88x2bu/5.3.1/build  modules
make[1]: Entering directory '/usr/src/linux-headers-6.1.12-meson'
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/core/rtw_cmd.o
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/core/rtw_security.o
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/core/rtw_debug.o
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/core/rtw_io.o
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/core/rtw_ioctl_query.o
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/core/rtw_ioctl_set.o
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/core/rtw_ieee80211.o
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/core/rtw_mlme.o
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/core/rtw_mlme_ext.o
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/core/rtw_mi.o
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/core/rtw_wlan_util.o
/usr/src/rtl88x2bu-5.3.1/core/rtw_mlme_ext.c: In function 鈥榤gt_dispatcher鈥?
/usr/src/rtl88x2bu-5.3.1/core/rtw_mlme_ext.c:1828:38: warning: this statement may fall through [-Wimplicit-fallthrough=]
1828 |                         ptable->func = &OnAuthClient;
|                         ~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/usr/src/rtl88x2bu-5.3.1/core/rtw_mlme_ext.c:1830:9: note: here
1830 |         case WIFI_ASSOCREQ:
|         ^~~~
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/core/rtw_vht.o
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/core/rtw_pwrctrl.o
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/core/rtw_rf.o
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/core/rtw_recv.o
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/core/rtw_sta_mgt.o
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/core/rtw_ap.o
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/core/mesh/rtw_mesh.o
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/core/mesh/rtw_mesh_pathtbl.o
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/core/mesh/rtw_mesh_hwmp.o
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/core/rtw_xmit.o
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/core/rtw_p2p.o
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/core/rtw_rson.o
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/core/rtw_tdls.o
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/core/rtw_br_ext.o
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/core/rtw_iol.o
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/core/rtw_sreset.o
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/core/rtw_btcoex_wifionly.o
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/core/rtw_btcoex.o
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/core/rtw_beamforming.o
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/core/rtw_odm.o
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/core/rtw_rm.o
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/core/rtw_rm_fsm.o
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/core/efuse/rtw_efuse.o
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/os_dep/osdep_service.o
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/os_dep/linux/os_intfs.o
CC [M]  /var/lib/dkms/rtl88x2bu/5.3.1/build/os_dep/linux/usb_intf.o
/usr/src/rtl88x2bu-5.3.1/os_dep/osdep_service.c: In function 鈥榯hread_exit鈥?
/usr/src/rtl88x2bu-5.3.1/os_dep/osdep_service.c:1297:9: error: implicit declaration of function 鈥榗omplete_and_exit鈥?[-Werror=implicit-function-declaration]
1297 |         complete_and_exit(comp, 0);
|         ^~~~~~~~~~~~~~~~~
/usr/src/rtl88x2bu-5.3.1/core/efuse/rtw_efuse.c: In function 鈥榬tw_efuse_analyze鈥?
/usr/src/rtl88x2bu-5.3.1/core/efuse/rtw_efuse.c:714:17: warning: this 鈥榠f鈥?clause does not guard... [-Wmisleading-indentation]
714 |                 if (i % 16 == 0)
|                 ^~
In file included from /usr/src/rtl88x2bu-5.3.1/include/drv_types.h:60,
from /usr/src/rtl88x2bu-5.3.1/core/efuse/rtw_efuse.c:17:
/usr/src/rtl88x2bu-5.3.1/include/rtw_debug.h:231:9: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 鈥榠f鈥?  231 |         do {\
|         ^~
/usr/src/rtl88x2bu-5.3.1/core/efuse/rtw_efuse.c:716:25: note: in expansion of macro 鈥榑RTW_PRINT_SEL鈥?  716 |                         _RTW_PRINT_SEL(RTW_DBGDUMP, "%02X%s"
|                         ^~~~~~~~~~~~~~
/usr/src/rtl88x2bu-5.3.1/os_dep/osdep_service.c: In function 鈥榠sFileReadable鈥?
/usr/src/rtl88x2bu-5.3.1/os_dep/osdep_service.c:2182:9: error: unknown type name 鈥榤m_segment_t鈥? 2182 |         mm_segment_t oldfs;
|         ^~~~~~~~~~~~
/usr/src/rtl88x2bu-5.3.1/os_dep/osdep_service.c:2189:25: error: implicit declaration of function 鈥榞et_fs鈥? did you mean 鈥榞et_sa鈥? [-Werror=implicit-function-declaration]
2189 |                 oldfs = get_fs();
|                         ^~~~~~
|                         get_sa
/usr/src/rtl88x2bu-5.3.1/os_dep/osdep_service.c:2191:17: error: implicit declaration of function 鈥榮et_fs鈥? did you mean 鈥榮get_fc鈥? [-Werror=implicit-function-declaration]
2191 |                 set_fs(KERNEL_DS);
|                 ^~~~~~
|                 sget_fc
/usr/src/rtl88x2bu-5.3.1/os_dep/osdep_service.c:2191:24: error: 鈥楰ERNEL_DS鈥?undeclared (first use in this function); did you mean 鈥楰ERNFS_NS鈥?
2191 |                 set_fs(KERNEL_DS);
|                        ^~~~~~~~~
|                        KERNFS_NS
/usr/src/rtl88x2bu-5.3.1/os_dep/osdep_service.c:2191:24: note: each undeclared identifier is reported only once for each function it appears in
/usr/src/rtl88x2bu-5.3.1/os_dep/osdep_service.c: In function 鈥榬etriveFromFile鈥?
/usr/src/rtl88x2bu-5.3.1/os_dep/osdep_service.c:2223:9: error: unknown type name 鈥榤m_segment_t鈥? 2223 |         mm_segment_t oldfs;
|         ^~~~~~~~~~~~
/usr/src/rtl88x2bu-5.3.1/os_dep/osdep_service.c:2233:32: error: 鈥楰ERNEL_DS鈥?undeclared (first use in this function); did you mean 鈥楰ERNFS_NS鈥?
2233 |                         set_fs(KERNEL_DS);
|                                ^~~~~~~~~
|                                KERNFS_NS
/usr/src/rtl88x2bu-5.3.1/os_dep/osdep_service.c: In function 鈥榮toreToFile鈥?
/usr/src/rtl88x2bu-5.3.1/os_dep/osdep_service.c:2262:9: error: unknown type name 鈥榤m_segment_t鈥? 2262 |         mm_segment_t oldfs;
|         ^~~~~~~~~~~~
/usr/src/rtl88x2bu-5.3.1/os_dep/osdep_service.c:2272:32: error: 鈥楰ERNEL_DS鈥?undeclared (first use in this function); did you mean 鈥楰ERNFS_NS鈥?
2272 |                         set_fs(KERNEL_DS);
|                                ^~~~~~~~~
|                                KERNFS_NS
/usr/src/rtl88x2bu-5.3.1/os_dep/osdep_service.c: In function 鈥榬tw_change_ifname鈥?
/usr/src/rtl88x2bu-5.3.1/os_dep/osdep_service.c:2473:28: warning: passing argument 1 of 鈥榑rtw_memcpy鈥?discards 鈥榗onst鈥?qualifier from pointer target type [-Wdiscarded-qualifiers]
2473 |         _rtw_memcpy(pnetdev->dev_addr, adapter_mac_addr(padapter), ETH_ALEN);
|                     ~~~~~~~^~~~~~~~~~
/usr/src/rtl88x2bu-5.3.1/os_dep/osdep_service.c:925:24: note: expected 鈥榲oid *鈥?but argument is of type 鈥榗onst unsigned char *鈥?  925 | void _rtw_memcpy(void *dst, const void *src, u32 sz)
|                  ~~~~~~^~~
/usr/src/rtl88x2bu-5.3.1/os_dep/osdep_service.c: In function 鈥榬tw_random32鈥?
/usr/src/rtl88x2bu-5.3.1/os_dep/osdep_service.c:2597:16: error: implicit declaration of function 鈥榩random_u32鈥? did you mean 鈥榩random_u32_max鈥? [-Werror=implicit-function-declaration]
2597 |         return prandom_u32();
|                ^~~~~~~~~~~
|                prandom_u32_max
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:250: /var/lib/dkms/rtl88x2bu/5.3.1/build/os_dep/osdep_service.o] Error 1
make[2]: *** Waiting for unfinished jobs....
/usr/src/rtl88x2bu-5.3.1/os_dep/linux/os_intfs.c: In function 鈥榬tw_net_set_mac_address鈥?
/usr/src/rtl88x2bu-5.3.1/os_dep/linux/os_intfs.c:1207:28: warning: passing argument 1 of 鈥榑rtw_memcpy鈥?discards 鈥榗onst鈥?qualifier from pointer target type [-Wdiscarded-qualifiers]
1207 |         _rtw_memcpy(pnetdev->dev_addr, sa->sa_data, ETH_ALEN); /* set mac addr to net_device */
|                     ~~~~~~~^~~~~~~~~~
In file included from /usr/src/rtl88x2bu-5.3.1/include/drv_types.h:27,
from /usr/src/rtl88x2bu-5.3.1/os_dep/linux/os_intfs.c:17:
/usr/src/rtl88x2bu-5.3.1/include/osdep_service.h:296:35: note: expected 鈥榲oid *鈥?but argument is of type 鈥榗onst unsigned char *鈥?  296 | extern void     _rtw_memcpy(void *dec, const void *sour, u32 sz);
|                             ~~~~~~^~~
/usr/src/rtl88x2bu-5.3.1/os_dep/linux/os_intfs.c: In function 鈥榬tw_os_ndev_register鈥?
/usr/src/rtl88x2bu-5.3.1/os_dep/linux/os_intfs.c:1616:9: error: too many arguments to function 鈥榥etif_napi_add鈥? 1616 |         netif_napi_add(ndev, &adapter->napi, rtw_recv_napi_poll, RTL_NAPI_WEIGHT);
|         ^~~~~~~~~~~~~~
In file included from /usr/src/rtl88x2bu-5.3.1/include/osdep_service_linux.h:30,
from /usr/src/rtl88x2bu-5.3.1/include/osdep_service.h:50,
from /usr/src/rtl88x2bu-5.3.1/include/drv_types.h:27,
from /usr/src/rtl88x2bu-5.3.1/os_dep/linux/os_intfs.c:17:
./include/linux/netdevice.h:2569:1: note: declared here
2569 | netif_napi_add(struct net_device *dev, struct napi_struct *napi,
| ^~~~~~~~~~~~~~
/usr/src/rtl88x2bu-5.3.1/os_dep/linux/os_intfs.c:1630:25: warning: passing argument 1 of 鈥榑rtw_memcpy鈥?discards 鈥榗onst鈥?qualifier from pointer target type [-Wdiscarded-qualifiers]
1630 |         _rtw_memcpy(ndev->dev_addr, adapter_mac_addr(adapter), ETH_ALEN);
|                     ~~~~^~~~~~~~~~
In file included from /usr/src/rtl88x2bu-5.3.1/include/drv_types.h:27,
from /usr/src/rtl88x2bu-5.3.1/os_dep/linux/os_intfs.c:17:
/usr/src/rtl88x2bu-5.3.1/include/osdep_service.h:296:35: note: expected 鈥榲oid *鈥?but argument is of type 鈥榗onst unsigned char *鈥?  296 | extern void     _rtw_memcpy(void *dec, const void *sour, u32 sz);
|                             ~~~~~~^~~
make[2]: *** [scripts/Makefile.build:250: /var/lib/dkms/rtl88x2bu/5.3.1/build/os_dep/linux/os_intfs.o] Error 1
make[1]: *** [Makefile:2005: /var/lib/dkms/rtl88x2bu/5.3.1/build] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-6.1.12-meson'
make: *** [Makefile:2011: modules] Error 2
hzyitc commented 1 year ago

你这乱码有点多啊。

看样子应该就是代码不支持新版内核。你自己改一下相关api吧。

recalci commented 4 months ago

两种方法: 1、改Makefile CONFIG_PLATFORM_ARM_RPI = y CONFIG_PLATFORM_I386_PC = n 2、make的时候直接加上ARCH=arm

hzyitc commented 3 months ago

8822bu 现在应该直接支持了,armbian有相关补丁