赞
踩
为了方便修改驱动,使用原生安装的内核跟自己编译的驱动已经不匹配,所以需要重新下载内核源码编译安装。
一、内核更新安装
1、查看自身系统的内核版本
2、去内核官网下载内核源码
下载地址,可下载具体版本
https://mirrors.edge.kernel.org/pub/linux/kernel
wget https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/linux-4.14.61.tar.gz
3、配置内核
得到内核之后你肯定要对其进行配置,不然最后和你的电脑不适配,也是有问题的。我进行配置的办法是将现有内核的配置选项复制到你要编译的新内核上去。首先,我们要把原来内核的选项配置复制出来cp /boot/config- 4.2.0-23-generic ./.config 这句话的意思是将我现有的内核(4.15-23)版本的config配置信息复制到现在目录下的 .config里面,最后通过make menuconfig 对内核选
4、编译内核
sudo make -j20
5、编译模块
sudo make moudles
6、 安装模块
sudo make modules_install
7、安装内核
sudo make install
8、重启查看内核版本
sudo reboot
uname -a
9、更改默认引导的内核
首先找到内核名称。
grep menuentry /boot/grub/grub.cfg
要将默认内核更改为启动,可以执行以下操作:
打开文件/ etc / default / grub。
将GRUB_DEFAULT的值更改为您希望选择的菜单选项的索引值。
例如,在启动过程中的GRUB菜单中有:
Advanced options for Ubuntu
Windows 10 (loader) (on /dev/sda1)
system setup
我的 “Advananced options for Ubuntu” 子菜单如下所示:
- Ubuntu, with Linux 4.13.0-26-generic
-
- Ubuntu, with Linux 4.13.0-26-generic (upstart)
-
- Ubuntu, with Linux 4.13.0-26-generic (recovery mode)
-
- Ubuntu, with Linux 4.10.0-42-generic
-
- Ubuntu, with Linux 4.10.0-42-generic (upstart)
-
- Ubuntu, with Linux 4.10.0-42-generic (recovery mode)
现在,第一个选项是索引0,第二个是1,第三个是2,依此类推。(即GRUB菜单中的 Ubuntu为0,Advanced options for Ubuntu为1,…)
在我的情况下,我想选择 “Advanced options for Ubuntu” 子菜单中的 “Ubuntu, with Linux 4.10.0-42-generic”
设置 # sudo /etc/default/grub
将GRUB_DEFAULT设为:
GRUB_DEFAULT = “1> 3”
使用 ‘>’ 符号来指定有一个子菜单(注意符号 > 和数字 3 之间有空格,所以需要双引号)。在这种情况下,我在主菜单中选择第2个选项(索引1),在子菜单中选择第四个选项(索引3)。
菜单选项来自文件/boot/grub/grub.cfg(不要编辑这个文件)。
sudo update-grub
二、驱动编译加载
在加载/lib/modules/4.4.209/kernel/drivers/net/usb/GobiNet.ko时遇到如下问题
insmod: ERROR: could not insert module GobiNet.ko: Unknown symbol in module
可能是几种原因
1、gcc版本不同
新编译的内核,不存在这种问题,排除
2、模块依赖项是否加载
有可能是该模块的相关依赖没有加载
先执行命令:modinfo xxxx.ko
查看 depends:所依赖的模块
先加载依赖模块,然后加载xxxx.ko模块
或者直接用modprobe xxx进行加载
3、内核模块原本有问题
整体编译驱动模块
sudo make moudles
sudo make modules_install
单独编译驱动模块
sudo make -C /lib/modules/`uname -r`/build M=`pwd`/drivers/usb/serial obj-m=option.o modules
sudo cp drivers/usb/serial/option.ko /lib/modules/`uname -r`/kernel/drivers/usb/serial
sudo depmod
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。