树莓派4 (2)pi4上编译内核组件

准备工作

给pi4安装Kernel Headers

$ sudo apt update
$ sudo apt install raspberrypi-kernel-headers

确认pi4的版本号
并下载对应源码并解压:https://github.com/raspberrypi/

pi@raspberrypi:~ $ uname -r
4.19.97-v7l+

放到虚拟机上或者哪里都行

user@ubuntu:/opt/pi$ ll
drwxrwxr-x 27 user user      4096 May  9 10:46 linux-rpi-4.19.y/
-rw-rw-r--  1 user user 203337874 May  8 18:01 linux-rpi-4.19.y.zip
user@ubuntu:/opt/pi$ cd linux-rpi-4.19.y/drivers/
user@ubuntu:/opt/pi/linux-rpi-4.19.y/drivers$     //这里的文件就是我们要修改的组件

以修改一个usb serial驱动为例

进到源码的 linux-rpi-4.19.y/drivers/usb/serial 目录下
这里都是各个usb串口驱动源文件
可以把目录下的所有文件copy到pi4上的 /lib/modules/4.19.97-v7l+/build/drivers/usb/serial/ ,这样方便一些,或者假如只修改option这个驱动,只复制option.c、option.mod.c 这几个文件到pi4上。
option.c 用nano工具打开简单修改如下

static const struct usb_device_id option_ids[] = {
	{ USB_DEVICE(0x2C7C, 0x0700) }, /* Quectel XXXX */
......
}

保存退出,运行编译命令

sudo make -C /lib/modules/`uname -r`/build M=/lib/modules/`uname -r`/build/drivers/usb/serial obj-m=option.o modules 

pi@raspberrypi:/ $  sudo make -C /lib/modules/`uname -r`/build M=/lib/modules/`uname -r`/build/drivers/usb/serial obj-m=option.o modules
make: Entering directory '/usr/src/linux-headers-4.19.97-v7l+'
 CC [M]  /lib/modules/4.19.97-v7l+/build/drivers/usb/serial/option.o
 Building modules, stage 2.
 MODPOST 1 modules
 LD [M]  /lib/modules/4.19.97-v7l+/build/drivers/usb/serial/option.ko
make: Leaving directory '/usr/src/linux-headers-4.19.97-v7l+'
pi@raspberrypi:/ $

看到生成option.ko内核模块了吧,接着运行

//将ko模块copy到对应的内核文件目录下
 sudo cp /lib/modules/`uname -r`/build/drivers/usb/serial/option.ko /lib/modules/`uname -r`/kernel/drivers/usb/serial
 //检查依赖
 sudo depmod
 //reboot重新加载模块
 sudo reboot

这样我们就可以在pi4上随便编译修改后的模块了。
交叉编译环境可以放心落灰了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值