转载:http://blog.youkuaiyun.com/wjgwrr/article/details/52251248
1.准备工作:
1.1开发环境系统ubuntu 16(64位)
1.2下载源码:https://github.com/raspberrypi
linux:树莓派内核源码
tools:树莓派的交叉编译工具
下载方式:
(1)网页下载
直接下载zip
(2)命令下载
git clone –depth=1 https://github.com/raspberrypi/linux
git clone https://github.com/raspberrypi/tools
保存路径为~/Raspberry/下
2.确定版本
2.1查看当前树莓派编译器的信息
root@raspberrypi:~# cat /proc/version
Linux version 4.4.13-v7+ (dc4@dc4-XPS13-9333) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611) ) #894 SMP Mon Jun 13 13:13:27 BST 2016
2.2 确定交叉编译工具
root@ubuntu:~/Raspberry/tools-master/arm-bcm2708# ls
arm-bcm2708hardfp-linux-gnueabi
arm-bcm2708-linux-gnueabi
arm-rpi-4.9.3-linux-gnueabihf
gcc-linaro-arm-linux-gnueabihf-raspbian
gcc-linaro-arm-linux-gnueabihf-raspbian-x64
此目录下有5个目录,是不同版本的交叉编译工具。其中arm-rpi-4.9.3-linux-gnueabihf和gcc-linaro-arm-linux-gnueabihf-raspbian-x64是64位机器用的。
每一个交叉编译工具的目录下都有bin目录进入,执行./arm-linux-gnueabihf-gcc -v可查看gcc版本。
这里我使用arm-rpi-4.9.3-linux-gnueabihf,因为目前板子上的gcc版本是4.9.3
3.开始编译
3.1 进入linux内核目录:
cd /Raspberry/linux−rpi−4.4.y
KERNEL=kernel7
makeARCH=armCROSSCOMPILE= /Raspberry/tools−master/arm−bcm2708/arm−rpi−4.9.3−linux−gnueabihf/bin/arm−linux−gnueabihf−bcm2709defconfigNote:如果是多处理系统可以添加选项−jn,n为数字,表示多处理器的数量∗1.5。可以加快编译速度
make -j4 zImage modules dtbs
3.2 创建目录modules
在linux内核目录顶层下创建modules目录。
mkdirmodules
make INSTALL_MOD_PATH=modules modules_install
3.3 更新先有先有树莓派的内核将有系统的内存卡插入电脑上:
在/media/ubuntu/ 目录下会出现两个目录boot/2f840c69-cecb-4b10-87e4-01b9d28c231c/
执行命令
sudo cp arch/arm/boot/zImage /media/ubuntu/boot/$(KERNEL).img
sudo cp arch/arm/boot/dts/*.dtb /media/ubuntu/boot/
sudo cp arch/arm/boot/dts/overlays/.dtb /media/ubuntu/boot/overlays/
sudo cp arch/arm/boot/dts/overlays/README /media/ubuntu/boot/overlays/
cp modules/lib/ /media/ubuntu/2f840c69-cecb-4b10-87e4-01b9d28c231c/ -r
4.重新启动树莓派,成功更新了内核
参考连接:https://www.raspberrypi.org/documentation/linux/kernel/building.md