可做参考:树莓派Linux内核配置、编译以及烧录详细步骤_是光哥呀的博客-CSDN博客_linux内核烧录
1编译:
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make -j4 zImage modules dtbs
j4是指定用多少电脑资源编译
zImage 生成内核镜像
modules 要生成驱动模块
dtbs 生成配置文件
2. 编译成功后,看到源码树目录多了vmlinux,失败则无此文件(如上图)
成功后,目标zImage镜像arch/arm/boot底下
3. 打包zImage成树莓派可用的xxx.img
./scripts/mkknlimg arch/arm/boot/zImage ./kernel_new.img
将SD卡插上读卡器,如图连接到Ubuntu
dmesg:查看底层硬件数据
三、烧录
数据拷贝:
创建两个文件夹(返回到主目录)
mkdir data1
mkdir data2
2、挂载u盘
sudo mount /dev/sdb1 data1 fat分区,是boot相关的内容,
sudo mount /dev/sdb2 data2 ext4分区,也就是系统的根目录
3、安装modules
(设备驱动文件: hdmi usb wifi io等等)
进入如下目录:
输入如下命令:
sudo ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make INSTALL_MOD_PATH=[ext4] modules_install
[ext4]为你要生成的绝对路径(根目录)
例如我的是:
sudo ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make INSTALL_MOD_PATH=/home/pengyuandan/data2 modules_install
4、安装更新 kernel.img 文件,注意镜像名字是kernel7.img
先备份
进入目录:cd /home/pengyuandan/data1
然后输入:cp kernel7.img kernel7OLD.img
再把编译新生成的拷贝到data1,起名kernel7.img
cp kernel_new.img /home/pengyuandan/data1/kernel7.img
用md5sum命令看看拷贝过程文件有没有损坏,如图
5、拷贝配置文件
分别输入如下命令(注意需要把目录改成你的)
cp arch/arm/boot/dts/.*dtb* /home/pengyuandan/data1
cp arch/arm/boot/dts/overlays/.*dtb* /home/pengyuandan/data1/overlays/
cp arch/arm/boot/dts/overlays/README /home/pengyuandan/data1/overlays/
(这*叫做通配符,就是.和dtb中间有啥东西都不管,b后面有哈也不管)
拷贝完毕
然后我们把卡插到树莓派里面去
首先断开连接(虚拟机的可移动设备里面)
用串口观察树莓派操作系统是否能启动?
然后最好还原cmdline.txt 和config.txt
然后我们把卡插到树莓派上面,用串口启动方式,看看版本是否一样
在树莓派下用uname -r 查看一下