1.准备工作
1.下载内核源码
- 在树莓派上使用 uname -a 命令查看内核版本
- 下载相应的内核源码:https://github.com/raspberrypi/linux
- 下载交叉编译器:https://github.com/raspberrypi/tools
2.安装交叉编译器
- 将下载的内核和交叉编译工具传输到Ubuntun中(可以通过Smaba,ssh,以及VMware的文件共享)
- 使用 unzip 命令解压内核和交叉编译工具
- 加入环境变量:sudo gedit /root/.bashrc
- 在末尾添加:
export PATH=$PATH:/home/lwl/raspberry/tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin
- 更新环境变量:source /root/.bashrc
- 测试交叉工具链是否安装成功,可在控制台中输入:arm-linux-gnueabihf-gcc -v
3.内核编译
- 树莓派环境下,获取内核配置文件:sudo modprobe configs
- 树莓派文件系统/proc目录下,将config.gz文件拷贝到Ubuntu环境下(可以使用nfs,或者U盘)
- 拷贝config.gz 到 下 /home/lwl/raspberry/linux-rpi-4.19.y
- 然后执行zcat config.gz > .config,生成.config文件
- 执行
KERNEL=kernel7
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig
make ARCH=arm CROSS_COMPILE=/home/lwl/raspberry/tools-master/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf- -j4 zImage modules dtbs
开始编译内核
注意,有些库必须安装:
apt-get install libncurses5-dev
apt-get install libx11-dev:i386 libreadline6-dev:i386
apt-get install build-essential
apt-get install lib32stdc++6
apt-get install lib32z1
apt-get install bison
apt-get install flex
sudo apt-get install libssl-dev