18.04 升级内核后,wifi驱动rtl8723be需要重新安装现象。

包含网卡/无线网的网络问题和ADSL/校园网/宽带拨号支持及代理/共享等网络使用问题
回复
头像
Archer123
帖子: 146
注册时间: 2008-05-18 10:16

18.04 升级内核后,wifi驱动rtl8723be需要重新安装现象。

#1

帖子 Archer123 » 2018-07-04 10:23

我升级到现在的ubuntu18.04 机器硬件未变,也都还是用的这一套方法来安装wifi 驱动。

最近发现个问题,找到该僵尸帖。。。。。


我是来记录问题的 。。。


ubuntu18.04 新安装后,发现还是要照这老贴
viewtopic.php?f=116&t=462588&p=3097620#p3114511

弄一下rtl8723be 的wifi驱动。目前已知发现个现象:
比如当前内核 4.15.0-23-generic 在此内核安装完rtl8723be 的wifi驱动 正常使用后,内核apt upgrade升级到了 4.15.0-24-generic 发现 重启系统后 发现wifi以往配置又一直提示无法正常连接wifi了。我只能再安装下rtl8723be 的wifi驱动。

然后 我想了想rtl8723be 的wifi驱动,是不是没有M 动态加载到内核。于是我检查了下,rtl8723be的驱动 是否有M到内核中。

cmd@TR:/usr/src/linux-headers-4.15.0-24-generic$ cd ~
cmd@TR:~$ uname -r
4.15.0-24-generic
cmd@TR:~$ cd /usr/src/linux-headers-4.15.0-24-generic
cmd@TR:/usr/src/linux-headers-4.15.0-24-generic$ sudo make menuconfig
2018-07-04 10-10-36 的屏幕截图.png
还是和老帖疑问一样:
1 为啥进入的是 24的目录执行的menuconfig 为啥却又是18的config配置?
2 为啥看到是已经M rtl8723be 的wifi驱动 了,18.04 升级内核 为和新内核会失效 rtl8723be 的wifi驱动 必须再重装一次?
目前该现象,我重现了两次 分别是22升级到23 重新安装过一次,前天23升级到24 今天重启进入系统后发现wifi又无法自动连接,确认wifi是正常的后,
重启两次系统后,问题依旧,又重新安装了下驱动才正常连接wifi。 所以怀疑 没有M到内核驱动 结果去查又带M标记。。。。。



那么为啥带M标记的 每次升级不会自动续给编译到下一个内核? 补充 我只是安装驱动 upgrade升级的内核 实际一直没有真正的
下载内核源码 编译过自己的驱动 也就是类似这种步骤
https://blog.csdn.net/tang152453/articl ... s/41170399

问下吧友 是否有类似升级内核 wifi驱动要重新安装的现象? 若要以后升级内核自动把自主安装的wifi驱动自动升级编译到新内核 正常的步骤是什么?
上次由 Archer123 在 2018-09-11 16:36,总共编辑 1 次。
头像
astolia
论坛版主
帖子: 6396
注册时间: 2008-09-18 13:11

Re: 18.04 升级内核后,wifi驱动需要重新安装现象。

#2

帖子 astolia » 2018-07-04 17:26

2008年就注册了账号,10年过去了连一些最基本的概念都没弄清楚。

1、4.15.18是官方内核的版本编号,4.15.0-24是ubuntu对自家内核版本编号。这是不同的编号体系,不存在一一对应的关系。这只是说明了ubuntu的4.15.0-24内核是基于官方4.15.18内核修改而来的。

2、M只代表编译成了模块,并不意味着这个模块就会被加载,看模块的加载情况用lsmod。还有,这个列出来的是内核自带的驱动,不是你自己编译安装的。再有,不管是自带的还是自己编译的驱动都会被放到 /lib/modules/内核版本号/ 下面,内核也只认对应版本号目录下的文件。换内核后,目录就不一样了,对其他内核而言就找不到你编译的驱动。这种情况一般都用dkms或者dpkg的内核安装钩子来自动重新编译
头像
Archer123
帖子: 146
注册时间: 2008-05-18 10:16

Re: 18.04 升级内核后,wifi驱动需要重新安装现象。

#3

帖子 Archer123 » 2018-07-05 9:26

astolia 写了: 2018-07-04 17:26 2008年就注册了账号,10年过去了连一些最基本的概念都没弄清楚。

1、4.15.18是官方内核的版本编号,4.15.0-24是ubuntu对自家内核版本编号。这是不同的编号体系,不存在一一对应的关系。这只是说明了ubuntu的4.15.0-24内核是基于官方4.15.18内核修改而来的。

2、M只代表编译成了模块,并不意味着这个模块就会被加载,看模块的加载情况用lsmod。还有,这个列出来的是内核自带的驱动,不是你自己编译安装的。再有,不管是自带的还是自己编译的驱动都会被放到 /lib/modules/内核版本号/ 下面,内核也只认对应版本号目录下的文件。换内核后,目录就不一样了,对其他内核而言就找不到你编译的驱动。这种情况一般都用dkms或者dpkg的内核安装钩子来自动重新编译


让大神见笑了,大神莫恨铁啊 轻喷。。。
我只是这个环境的 应用层或者环境使用者,只要桌面环境稳定满足我工作需求即可,所以没有特别的强性目标需求,去研究恨清楚 这种动态编译的原理。
只是遇到问题,搜一下解决一下,不想在这种问题多耗费时间。当然,能记住或经验 多少有一些,但不是对ubuntu 或linux的全面 尤其这种内核编译问题。


我记得以前14.04 就是安装过一次wifi驱动 然后每次upgrade 有内核就自动升级的, 也没遇到过wifi还要重新升级后再安装的现象的。
我的问题重点 是这个疑惑。
头像
astolia
论坛版主
帖子: 6396
注册时间: 2008-09-18 13:11

Re: 18.04 升级内核后,wifi驱动需要重新安装现象。

#4

帖子 astolia » 2018-07-07 20:43

原因我倒是基本知道,但既然你有这种“只是使用者”的心态,那估计也不想听。
反正目前而言,你只能在升级后重新编译一遍,不管你是手动还是用dkms等工具自动处理。
等一阵子说不定升级后就不需要重新编译了,你也能开开心心当个使用者,就把这次的事件当成内核暂时抽风就过去了
cs5117155
帖子: 33
注册时间: 2018-06-09 17:47

Re: 18.04 升级内核后,wifi驱动需要重新安装现象。

#5

帖子 cs5117155 » 2018-07-08 9:27

版主,那个笔记本触摸板有安装驱动教程吗,我电脑是i7-8750h的,搜了一下找不到有合适驱动支持
头像
Archer123
帖子: 146
注册时间: 2008-05-18 10:16

Re: 18.04 升级内核后,wifi驱动需要重新安装现象。

#6

帖子 Archer123 » 2018-07-13 18:21

cs5117155 写了: 2018-07-08 9:27 版主,那个笔记本触摸板有安装驱动教程吗,我电脑是i7-8750h的,搜了一下找不到有合适驱动支持
如果实在找不到合适的触摸板驱动,有时候可以 自己用最新的Linux内核 我有个同事用最新的稳定内核 倒是直接支持了它笔记本的触摸屏 但不是
你说的触摸板。 你也可以试下用最新的内核来解决此问题。
cs5117155
帖子: 33
注册时间: 2018-06-09 17:47

Re: 18.04 升级内核后,wifi驱动需要重新安装现象。

#7

帖子 cs5117155 » 2018-07-14 10:37

我尝试升级到4.17内核,发现还是不行,如果升级4.18内核我怕对自已安装的编程环境又影响,所以又不敢乱试。
然后在这里看到相关的touch驱动关键字的包,能看出哪个才是支持触摸板的包吗

https://packages.ubuntu.com/bionic/xser ... multitouch
头像
Archer123
帖子: 146
注册时间: 2008-05-18 10:16

Re: 18.04 升级内核后,wifi驱动需要重新安装现象。

#8

帖子 Archer123 » 2018-09-11 14:39

Archer123 写了: 2018-07-05 9:26
astolia 写了: 2018-07-04 17:26 2008年就注册了账号,10年过去了连一些最基本的概念都没弄清楚。

1、4.15.18是官方内核的版本编号,4.15.0-24是ubuntu对自家内核版本编号。这是不同的编号体系,不存在一一对应的关系。这只是说明了ubuntu的4.15.0-24内核是基于官方4.15.18内核修改而来的。

2、M只代表编译成了模块,并不意味着这个模块就会被加载,看模块的加载情况用lsmod。还有,这个列出来的是内核自带的驱动,不是你自己编译安装的。再有,不管是自带的还是自己编译的驱动都会被放到 /lib/modules/内核版本号/ 下面,内核也只认对应版本号目录下的文件。换内核后,目录就不一样了,对其他内核而言就找不到你编译的驱动。这种情况一般都用dkms或者dpkg的内核安装钩子来自动重新编译


让大神见笑了,大神莫恨铁啊 轻喷。。。
我只是这个环境的 应用层或者环境使用者,只要桌面环境稳定满足我工作需求即可,所以没有特别的强性目标需求,去研究恨清楚 这种动态编译的原理。
只是遇到问题,搜一下解决一下,不想在这种问题多耗费时间。当然,能记住或经验 多少有一些,但不是对ubuntu 或linux的全面 尤其这种内核编译问题。


我记得以前14.04 就是安装过一次wifi驱动 然后每次upgrade 有内核就自动升级的, 也没遇到过wifi还要重新升级后再安装的现象的。
我的问题重点 是这个疑惑。


好吧 还是 自己的坑自己填吧.
以下ubuntu 18.04.1 还未尝试 ,只是找了下方案 了解了下dkms
https://blog.csdn.net/hjwsm1989/article ... s/52694416



ubuntu18.04 正确安装rtl8723be驱动步骤:
1 先安装好需要编译的东西
sudo apt-get install linux-headers-generic linux-headers-$(uname -r) gcc g++ build-essential git dkms

2 cd切换到需要放rtlwifi_new 到目录下 ,再执行
git clone http://github.com/lwfinger/rtlwifi_new.git

3 先停止网路
sudo service network-manager stop

如果不是首次 在第3步 后执行 删除卸载老的无线网卡驱动
$ sudo modprobe -rfv rtl8723be

4 cd 到 rtlwifi_new 目录下
sudo make
sudo make install
sudo modprobe -v rtl8723be fwlps=0 ips=0

5 sudo reboot 重启

6 确认是否关闭 fwlps=N ips=N
systool -v -m rtl8723be


这样首次安装rtl8723be 驱动 就完成了。
如果查看 fwlps=Y ips=Y 的话,就 echo "options rtl8723be ips=0 fwlps=0" | sudo tee /etc/modprobe.d/rtl8723be.conf

然后 看了下这个驱动
https://github.com/wheelcomplex/rtl8812au-ubuntu-18.04

里边提到了 "Automatically rebuilds and installs on kernel updates" 既是 如何每次更新升级内核自动安装驱动
DKMS
Automatically rebuilds and installs on kernel updates. DKMS is in official sources of Ubuntu, for installation do:

$ sudo apt-get install build-essential dkms
The driver source mus be copied to /usr/src/8812au-4.2.2

Then add it to DKMS:

$ sudo dkms add -m 8812au -v 4.2.2
$ sudo dkms build -m 8812au -v 4.2.2
$ sudo dkms install -m 8812au -v 4.2.2
Check with:

$ sudo dkms status
Eventually remove from DKMS with:

$ sudo dkms remove -m 8812au -v 4.2.2 --all


仿照这个,我的方案大致是这样,我还未实验:
我们去除已安装rtl8723be驱动的时候,发现 有以下被卸载
$ sudo modprobe -rfv rtl8723be
rmmod rtl8723be
rmmod rtl_pci
rmmod rtl8723_common
rmmod btcoexist
rmmod rtlwifi
rmmod mac80211
rmmod cfg80211

同理当我们新安装rtl8723be驱动,发现有以下被安装:
cmd@TR:~/Git/rtlwifi_new$ sudo modprobe -v rtl8723be fwlps=0 ips=0
insmod /lib/modules/4.15.0-34-generic/kernel/net/wireless/cfg80211.ko
insmod /lib/modules/4.15.0-34-generic/kernel/net/mac80211/mac80211.ko
insmod /lib/modules/4.15.0-34-generic/kernel/drivers/net/wireless/realtek/rtlwifi/rtlwifi.ko
insmod /lib/modules/4.15.0-34-generic/kernel/drivers/net/wireless/realtek/rtlwifi/rtl_pci.ko
insmod /lib/modules/4.15.0-34-generic/kernel/drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common.ko
insmod /lib/modules/4.15.0-34-generic/kernel/drivers/net/wireless/realtek/rtlwifi/btcoexist/btcoexist.ko
insmod /lib/modules/4.15.0-34-generic/kernel/drivers/net/wireless/realtek/rtlwifi/rtl8723be/rtl8723be.ko ips=0 fwlps=0 fwlps=0 ips=0


于是,我们是否需要这样......

The driver source must be copied to /usr/src/rtlwifi_new
Then add it to DKMS:
$ sudo dkms add -m rtl8723be rtl_pci rtl8723_common btcoexist rtlwifi mac80211 cfg80211
$ sudo dkms build -m rtl8723be rtl_pci rtl8723_common btcoexist rtlwifi mac80211 cfg80211
$ sudo dkms install -m rtl8723be rtl_pci rtl8723_common btcoexist rtlwifi mac80211 cfg80211

Check with:
$ sudo dkms status

Eventually remove from DKMS with:
$ sudo dkms remove -m rtl8723be rtl_pci rtl8723_common btcoexist rtlwifi mac80211 cfg80211 –all


这样就不用每次升级内核,都需要reinstall wifi deiver了.
头像
Archer123
帖子: 146
注册时间: 2008-05-18 10:16

Re: 18.04 升级内核后,wifi驱动需要重新安装现象。

#9

帖子 Archer123 » 2018-09-11 16:02

我们可以这样解决 rtl8723be驱动 利用dkms自动更新和升级内核 都不需要reinstall wifi driver.

1 git clone -b extended https://github.com/lwfinger/rtlwifi_new.git

2 sudo cp -R rtlwifi_new/ /usr/src/

3 cmd@TR:/usr/src$ sudo dkms add ./rtlwifi_new

Creating symlink /var/lib/dkms/rtlwifi-new/0.6/source ->
/usr/src/rtlwifi-new-0.6

DKMS: add completed.


4 cmd@TR:/usr/src$ sudo dkms install rtlwifi-new/0.6

Kernel preparation unnecessary for this kernel. Skipping...

Building module:
cleaning build area....(bad exit status: 2)
make -j8 KERNELRELEASE=4.15.0-34-generic -C /lib/modules/4.15.0-34-generic/build M=/var/lib/dkms/rtlwifi-new/0.6/build..............
cleaning build area...(bad exit status: 2)

DKMS: build completed.

rtl_pci.ko:
Running module version sanity check.
- Original module
- Installation
- Installing to /lib/modules/4.15.0-34-generic/updates/dkms/

rtl_usb.ko:
Running module version sanity check.
- Original module
- Installation
- Installing to /lib/modules/4.15.0-34-generic/updates/dkms/

rtlwifi.ko:
Running module version sanity check.
- Original module
- Installation
- Installing to /lib/modules/4.15.0-34-generic/updates/dkms/

btcoexist.ko:
Running module version sanity check.
- Original module
- Installation
- Installing to /lib/modules/4.15.0-34-generic/updates/dkms/

halmac.ko:
Running module version sanity check.
- Original module
- Installation
- Installing to /lib/modules/4.15.0-34-generic/updates/dkms/

phydm_mod.ko:
Running module version sanity check.
- Original module
- Installation
- Installing to /lib/modules/4.15.0-34-generic/updates/dkms/

rtl8188ee.ko:
Running module version sanity check.
- Original module
- Installation
- Installing to /lib/modules/4.15.0-34-generic/updates/dkms/

rtl8192c-common.ko:
Running module version sanity check.
- Original module
- Installation
- Installing to /lib/modules/4.15.0-34-generic/updates/dkms/

rtl8192ce.ko:
Running module version sanity check.
- Original module
- Installation
- Installing to /lib/modules/4.15.0-34-generic/updates/dkms/

rtl8192cu.ko:
Running module version sanity check.
- Original module
- Installation
- Installing to /lib/modules/4.15.0-34-generic/updates/dkms/

rtl8192de.ko:
Running module version sanity check.
- Original module
- Installation
- Installing to /lib/modules/4.15.0-34-generic/updates/dkms/

rtl8192ee.ko:
Running module version sanity check.
- Original module
- Installation
- Installing to /lib/modules/4.15.0-34-generic/updates/dkms/

rtl8192se.ko:
Running module version sanity check.
- Original module
- Installation
- Installing to /lib/modules/4.15.0-34-generic/updates/dkms/

rtl8723ae.ko:
Running module version sanity check.
- Original module
- Installation
- Installing to /lib/modules/4.15.0-34-generic/updates/dkms/

rtl8723be.ko:
Running module version sanity check.
- Original module
- Installation
- Installing to /lib/modules/4.15.0-34-generic/updates/dkms/

rtl8723de.ko:
Running module version sanity check.
- Original module
- Installation
- Installing to /lib/modules/4.15.0-34-generic/updates/dkms/

rtl8723-common.ko:
Running module version sanity check.
- Original module
- Installation
- Installing to /lib/modules/4.15.0-34-generic/updates/dkms/

rtl8821ae.ko:
Running module version sanity check.
- Original module
- Installation
- Installing to /lib/modules/4.15.0-34-generic/updates/dkms/

rtl8822be.ko:
Running module version sanity check.
- Original module
- Installation
- Installing to /lib/modules/4.15.0-34-generic/updates/dkms/

depmod...

DKMS: install completed.




5 cmd@TR:/usr/src$ sudo cp /usr/src/rtlwifi-new-0.6/firmware/rtlwifi/* /lib/firmware/rtlwifi/

6 sudo depmod -a

7 echo "options rtl8723be ips=0 fwlps=0" | sudo tee /etc/modprobe.d/rtl8723be.conf

8 sudo modprobe -v rtl8723be fwlps=0 ips=0
回复