如何为树莓派2编译内核
发布网友
发布时间:2022-04-27 11:13
我来回答
共1个回答
热心网友
时间:2023-08-23 06:29
入手一块树莓派2开发板,想利用树莓派这个平台总结一些内核和应用程序调试手段。目前已经为树莓派安装了一个arch linux系统。要总结linux内涵调试手段,搭建相应的实验环境,必须重新编译内核才行。所以一个新的编译树莓派2内核的任务就是第一要紧的事情。
首先在ubuntu编译机器上建立编译工作目录
raspberry
|-kernel
|-moles
|-mounts
|-scripts
下载源代码,编译工具,编译脚本
下载源代码
cd ~/raspberry/kernel
git clone https://github.com/raspberrypi/linux.git
git clone很容易被中断,中断不能进行断点续传,运行上面的命令之后,在kernel目录下面又会形成一个linux的目录。
下载编译工具
git clone https://github.com/raspberrypi/tools.git
运行上面的命令之后就会在kernel目录下会形成一个tool目录
编译脚本下载
cd ~/raspberry/kernel/scripts
git init
git remote add origin https://github.com/veccsolutions/RaspberryPi2Scripts.git
git pull origin master
目前已经将编译需要的代码,工具,脚本都准备妥当,那就开始吧
编译过程
1,配置内核
到~/raspberry/kernel/linux目录
运行命令 make ARCH=arm CROSS_COMPILE=~/raspberry/kernel/linux/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-bcm2708hardfp-linux-gnueabi- bcm2709_defconfig
该目录中存在4个文件夹,本例使用gcc-linaro-arm-linux-gnueabihf-raspbian 或 gcc-linaro-arm-linux-gnueabihf-raspbian-x64。前者对应32位系统后者对应64位系统。
arm-bcm2708hardfp-linux-gnueabi
gcc-linaro-arm-linux-gnueabihf-raspbian
arm-bcm2708-linux-gnueabi
gcc-linaro-arm-linux-gnueabihf-raspbian-x64
2,利用脚本编译内核
进入到目录目录~/raspberry/kernel/scripts
./makekernel.sh
3,安装内核
安装内核的工作主要是将boot分区中的kernel image替换掉,同时将moles中的ko文件做相应的拷贝,同时将firmware中的相应文件做拷贝。moles,和firmware在root分区下面。