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
- sudo mount /dev/sdb1 data1 fat分区,是boot相关的内容,
- sudo mount /dev/sdb2 data2 ext4分区,也就是系统的根目录
(设备驱动文件: 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
先备份
- 进入目录:cd /home/pengyuandan/data1
- 然后输入:cp kernel7.img kernel7OLD.img
再把编译新生成的拷贝到data1,起名kernel7.img
cp kernel_new.img /home/pengyuandan/data1/kernel7.img
用md5sum命令看看拷贝过程文件有没有损坏,如图

分别输入如下命令(注意需要把目录改成你的)
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 查看一下
