24 网卡驱动移植

24 网卡驱动移植

网卡驱动移植型号确认及模式设置在移植网卡驱动前,首先得知道它的型号。如果是USB网卡的话,可以通过lsusb命令查看

12345lsusb ...Bus 001 Device 003: ID 0bda:1a2b Realtek Semiconductor Corp. RTL8188GU 802.11n WLAN Adapter (Driver CDROM Mode...

很多网卡在未使用时,可能被初始化成U盘的模式,这时还需要我们将其转成网卡模式

这里RTL8188GU并不是真正的型号,因为它此时不是真正的网卡模式,RTL8188GU是Realtek常用“老型号马甲”

可以通过以下的指令,将USB网卡切换到真正的网卡模式

12345sudo apt install usb-modeswitch usb-modeswitch-datasudo usb_modeswitch \ -v 0bda -p 1a2b \ -M "5553424312345678000000000000061b000000020000000000000000000000"

-v / -p 是当前 VID/PID(MSC 模式)

-M 是发送给设备的切换命令(MessageContent)

执行完后再执行lsusb,就可以发现USB设备的vendor_id、pid、描述符都变了

12345lsusb...Bus 001 Device 006: ID 0bda:b851 Realtek Semiconductor Corp. 802.11ax WLAN Adapter...

0bda → Realtek 官方 VID

b851 → Realtek RTL8851BU 专用 PID

驱动签名如果编译Linux内核时开了内核模块签名校验,那么在驱动安装之前,需要手动对驱动进行签名操作,不然驱动会安装失败

如何看Linux内核到底看没开驱动签名校验

1zcat /proc/config.gz | grep MODULE_SIG

CONFIG_MODULE_SIG=y:启用模块签名支持

CONFIG_MODULE_SIG_FORCE=y:强制所有模块必须签名才能加载

CONFIG_MODULE_SIG_KEY="...":内核自带签名密钥

要进行驱动签名,需要以下准备文件

密钥对:

私钥(Private Key):用于给模块生成签名,只能被开发者或受信任方持有,一般是.pem格式

公钥(Public Key):内核用它来验证模块签名,一般是 .x509 或 .der格式

一般放在/lib/modules/$(uname -r)/build/certs/下

签名工具(由Linux提供):

一般放在路径/lib/modules/$(uname -r)/build/scripts/sign-file下

准备好后,通过下面指令进行驱动签名

123456cd /lib/modules/6.1.112-rt43-DR-4.0.4-2510152230-gb381cb-g6c4511/build./scripts/sign-file sha256 \./certs/module_signature.pem \./certs/module_signature.x509\~/Desktop/rtl8851bu-master/8851bu.ko

驱动安装驱动签名完之后,就可以直接将驱动加载进内核了,有2种方式

12345# 法1sudo insmod /path/to/8851bu.ko# 法2sudo modprobe 8851bu

如果签名失败,会报以下错误

1sudo modprobe 8851bu modprobe: ERROR: could not insert '8851bu': Key was rejected by service

网卡状态验证12345# 查看网卡接口ip link# 查看无线接口iwconfig

相关推荐

博客营销的策略与效果评估
世界杯365平台

博客营销的策略与效果评估

⏳ 09-28 👁️ 3952
魔兽世界胡提亚怎么抓
万博365下载

魔兽世界胡提亚怎么抓

⏳ 11-07 👁️ 6348