您尚未登录。

#1 2022-10-14 15:05:16

suxxsfe
会员
注册时间: 2020-08-05
帖子: 37

【已解决】滚动后无法加载网卡驱动模块

昨天晚上滚的,今天再开机发现无线网挂了,ip link找不到网卡设备
网卡型号broadcom 4352,重新安装了 broadcom-wl-dkms:

..........
:: 正在处理软件包的变化...
(1/1) 正在重新安装 broadcom-wl-dkms [######################] 100%


Unload and load kernel modules (wl is provided by broadcom-wl-dkms):


rmmod b43 b43legacy bcm43xx bcma brcm80211 brcmfmac brcmsmac ssb tg3 wl
modprobe wl


:: 正在运行事务后钩子函数...
(1/2) Arming ConditionNeedsUpdate...
(2/2) Install DKMS modules
==> dkms install --no-depmod broadcom-wl/6.30.223.271 -k 6.0.1-arch1-1
Error! Bad return status for module build on kernel: 6.0.1-arch1-1 (x86_64)
Consult /var/lib/dkms/broadcom-wl/6.30.223.271/build/make.log for more information.
==> WARNING: `dkms install --no-depmod broadcom-wl/6.30.223.271 -k 6.0.1-arch1-1' exited 10


/var/lib/dkms/broadcom-wl/6.30.223.271/build/make.log:

.........
make: *** [Makefile:1852:/var/lib/dkms/broadcom-wl/6.30.223.271/build] 错误 2
make: 离开目录“/usr/lib/modules/6.0.1-arch1-1/build”

执行 modprobe wl:

modprobe: FATAL: Module wl not found in directory /lib/modules/6.0.1-arch1-1

最近编辑记录 suxxsfe (2022-10-15 12:40:38)

离线

#2 2022-10-14 15:06:32

suxxsfe
会员
注册时间: 2020-08-05
帖子: 37

Re: 【已解决】滚动后无法加载网卡驱动模块

完整的log:

DKMS make.log for broadcom-wl-6.30.223.271 for kernel 6.0.1-arch1-1 (x86_64)
2022年 10月 14日 星期五 14:43:45 CST
make: 进入目录“/usr/lib/modules/6.0.1-arch1-1/build”
CFG80211 API is prefered for this kernel version
Using CFG80211 API
  CC [M]  /var/lib/dkms/broadcom-wl/6.30.223.271/build/src/shared/linux_osl.o
  CC [M]  /var/lib/dkms/broadcom-wl/6.30.223.271/build/src/wl/sys/wl_linux.o
  CC [M]  /var/lib/dkms/broadcom-wl/6.30.223.271/build/src/wl/sys/wl_iw.o
  CC [M]  /var/lib/dkms/broadcom-wl/6.30.223.271/build/src/wl/sys/wl_cfg80211_hybrid.o
/var/lib/dkms/broadcom-wl/6.30.223.271/build/src/wl/sys/wl_cfg80211_hybrid.c: 在函数‘wl_bss_roaming_done’中:
/var/lib/dkms/broadcom-wl/6.30.223.271/build/src/wl/sys/wl_cfg80211_hybrid.c:2384:18: 错误:‘struct cfg80211_roam_info’没有名为‘bss’的成员
 2384 |                 .bss = bss,
      |                  ^~~
/var/lib/dkms/broadcom-wl/6.30.223.271/build/src/wl/sys/wl_cfg80211_hybrid.c:2384:24: 错误:initialization of ‘const u8 *’ {或称 ‘const unsigned char *’} from incompatible pointer type ‘struct cfg80211_bss *’ [-Werror=incompatible-pointer-types]
 2384 |                 .bss = bss,
      |                        ^~~
/var/lib/dkms/broadcom-wl/6.30.223.271/build/src/wl/sys/wl_cfg80211_hybrid.c:2384:24: 附注:(在‘roam_info.req_ie’的初始化附近)
/var/lib/dkms/broadcom-wl/6.30.223.271/build/src/wl/sys/wl_cfg80211_hybrid.c:2383:9: 警告:ISO C90 不允许混合使用声明和代码 [-Wdeclaration-after-statement]
 2383 |         struct cfg80211_roam_info roam_info = {
      |         ^~~~~~
In file included from /var/lib/dkms/broadcom-wl/6.30.223.271/build/src/wl/sys/wl_cfg80211_hybrid.c:40:
/var/lib/dkms/broadcom-wl/6.30.223.271/build/src/wl/sys/wl_cfg80211_hybrid.c: 在函数‘wl_set_auth_type’中:
/var/lib/dkms/broadcom-wl/6.30.223.271/build/src/wl/sys/wl_cfg80211_hybrid.h:52:12: 警告:this statement may fall through [-Wimplicit-fallthrough=]
   52 |         if (wl_dbg_level & WL_DBG_DBG) {                        \
      |            ^
/var/lib/dkms/broadcom-wl/6.30.223.271/build/src/wl/sys/wl_cfg80211_hybrid.c:793:17: 附注:in expansion of macro ‘WL_DBG’
  793 |                 WL_DBG(("network eap\n"));
      |                 ^~~~~~
/var/lib/dkms/broadcom-wl/6.30.223.271/build/src/wl/sys/wl_cfg80211_hybrid.c:794:9: 附注:here
  794 |         default:
      |         ^~~~~~~
cc1:有些警告被当作是错误
make[1]: *** [scripts/Makefile.build:249:/var/lib/dkms/broadcom-wl/6.30.223.271/build/src/wl/sys/wl_cfg80211_hybrid.o] 错误 1
make[1]: *** 正在等待未完成的任务....
/var/lib/dkms/broadcom-wl/6.30.223.271/build/src/shared/linux_osl.c: 在函数‘osl_os_get_image_block’中:
/var/lib/dkms/broadcom-wl/6.30.223.271/build/src/shared/linux_osl.c:1104:35: 警告:传递‘kernel_read’的第 2 个参数时将整数赋给指针,未作类型转换 [-Wint-conversion]
 1104 |         rdlen = kernel_read(fp, fp->f_pos, buf, len);
      |                                 ~~^~~~~~~
      |                                   |
      |                                   loff_t {或称 long long int}
In file included from ./include/linux/huge_mm.h:8,
                 from ./include/linux/mm.h:703,
                 from /var/lib/dkms/broadcom-wl/6.30.223.271/build/src/include/linuxver.h:65,
                 from /var/lib/dkms/broadcom-wl/6.30.223.271/build/src/shared/linux_osl.c:25:
./include/linux/fs.h:3005:43: 附注:需要类型‘void *’,但实参的类型为‘loff_t’ {或称 ‘long long int’}
 3005 | extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
      |                                           ^~~~~~
/var/lib/dkms/broadcom-wl/6.30.223.271/build/src/shared/linux_osl.c:1104:44: 警告:传递‘kernel_read’的第 3 个参数时将指针赋给整数,未作类型转换 [-Wint-conversion]
 1104 |         rdlen = kernel_read(fp, fp->f_pos, buf, len);
      |                                            ^~~
      |                                            |
      |                                            char *
./include/linux/fs.h:3005:51: 附注:需要类型‘size_t’ {或称 ‘long unsigned int’},但实参的类型为‘char *’
 3005 | extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
      |                                                   ^~~~~~
/var/lib/dkms/broadcom-wl/6.30.223.271/build/src/shared/linux_osl.c:1104:49: 警告:传递‘kernel_read’的第 4 个参数时将整数赋给指针,未作类型转换 [-Wint-conversion]
 1104 |         rdlen = kernel_read(fp, fp->f_pos, buf, len);
      |                                                 ^~~
      |                                                 |
      |                                                 int
./include/linux/fs.h:3005:59: 附注:需要类型‘loff_t *’ {或称 ‘long long int *’},但实参的类型为‘int’
 3005 | extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
      |                                                           ^~~~~~~~
In file included from /var/lib/dkms/broadcom-wl/6.30.223.271/build/src/wl/sys/wl_linux.c:81:
/var/lib/dkms/broadcom-wl/6.30.223.271/build/src/wl/sys/wl_iw.h:73: 警告:“isprint”重定义
   73 | #define isprint(c) bcm_isprint(c)
      | 
In file included from ./include/linux/string_helpers.h:6,
                 from ./include/linux/seq_file.h:7,
                 from ./include/linux/seq_file_net.h:5,
                 from ./include/net/net_namespace.h:191,
                 from ./include/linux/netdevice.h:38,
                 from /var/lib/dkms/broadcom-wl/6.30.223.271/build/src/include/linuxver.h:69,
                 from /var/lib/dkms/broadcom-wl/6.30.223.271/build/src/wl/sys/wl_linux.c:27:
./include/linux/ctype.h:30: 附注:这是先前定义的位置
   30 | #define isprint(c)      ((__ismask(c)&(_P|_U|_L|_D|_SP)) != 0)
      | 
/var/lib/dkms/broadcom-wl/6.30.223.271/build/src/wl/sys/wl_linux.c: 在函数‘wl_pci_probe’中:
/var/lib/dkms/broadcom-wl/6.30.223.271/build/src/wl/sys/wl_linux.c:786:9: 警告:this ‘if’ clause does not guard... [-Wmisleading-indentation]
  786 |         if ((val & 0x0000ff00) != 0)
      |         ^~
/var/lib/dkms/broadcom-wl/6.30.223.271/build/src/wl/sys/wl_linux.c:788:17: 附注:...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
  788 |                 bar1_size = pci_resource_len(pdev, 2);
      |                 ^~~~~~~~~
make: *** [Makefile:1852:/var/lib/dkms/broadcom-wl/6.30.223.271/build] 错误 2
make: 离开目录“/usr/lib/modules/6.0.1-arch1-1/build”

离线

#3 2022-10-14 19:04:06

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,942
个人网站

Re: 【已解决】滚动后无法加载网卡驱动模块

你这是树外模块没有跟进内核的变化。换回旧内核吧,比如 linux-lts 或者之前可用的版本。

离线

#4 2022-10-15 00:08:54

suxxsfe
会员
注册时间: 2020-08-05
帖子: 37

Re: 【已解决】滚动后无法加载网卡驱动模块

依云 说:

你这是树外模块没有跟进内核的变化。换回旧内核吧,比如 linux-lts 或者之前可用的版本。


谢谢!但我刚才安装了linux-lts,然后运行 grub-mkconfig -o /boot/grub/grub.cfg 之后,再重启就会直接进入grub的设置界面
即使删掉linux-lts再重新生成仍然会这样

图是我用启动盘chroot进去重新生成时的输出,进不了系统只能拍屏了

最近编辑记录 suxxsfe (2022-10-15 12:42:59)

离线

#5 2022-10-15 00:15:03

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,942
个人网站

Re: 【已解决】滚动后无法加载网卡驱动模块

重新跑一下 grub-install 呢?另外 efibootmgr 看看。

离线

#6 2022-10-15 01:15:38

suxxsfe
会员
注册时间: 2020-08-05
帖子: 37

Re: 【已解决】滚动后无法加载网卡驱动模块

依云 说:

重新跑一下 grub-install 呢?另外 efibootmgr 看看。

谢谢,成功进去了
uname -a显示版本是5.15.73-2-lts
但重新安装broadcom-wl-dkms时产生和之前相同的报错,仍然显示在 build on kernel: 6.0.1-arch1-1
在尝试modprobe wl时输出变成:  ....not found in directory /lib/modules/5.15.73-2-lts

离线

#7 2022-10-15 11:46:55

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,942
个人网站

Re: 【已解决】滚动后无法加载网卡驱动模块

嗯,因为你的 6.0.1 的内核还在,所以它还想给你装,但是还是失败了。你可以手动调用 dkms 命令给你指定的内核装,或者把那个暂时用不了的内核卸载掉。

离线

#8 2022-10-15 12:39:33

suxxsfe
会员
注册时间: 2020-08-05
帖子: 37

Re: 【已解决】滚动后无法加载网卡驱动模块

依云 说:

嗯,因为你的 6.0.1 的内核还在,所以它还想给你装,但是还是失败了。你可以手动调用 dkms 命令给你指定的内核装,或者把那个暂时用不了的内核卸载掉。

嗯嗯我指定成lts就成功了,谢谢了!

离线

页脚