uboot成功烧写后,现在开始编译kernel内核
附上前文目录结构
/root
Projects
├── BBB
│ └── u-boot
├── common
│ ├── bb-kernel.git
│ └── u-boot.git
└── myfile
├── BBB-uEnv.txt
└── gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf.tar.xz
cd ~/Projects/common
#下载内核源码
git clone --bare https://github.com/RobertCNelson/bb-kernel
#拷贝至工作目录
cd ../BBB
git clone --reference ~/Projects/common/bb-kernel.git/ https://github.com/RobertCNelson/bb-kernel
检出需要的版本
#cd bb-kernel/
git checkout origin/am33x-v4.18 -b am33x-v4.18
#下载linux裸库至源码目录,避免每次下载bb-kernel编译时都要重新下载(1G多)
cd ~/Projects/common
#源下面2个二选一
git clone --bare https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
#或者
git clone --bare https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
#本人用的是第二个源
#--------------
#将裸库转为正式库
#/Projects/common
mkdir linux-stable
mv linux.git/ linux-stable/.git
cd linux-stable
git config --local --bool core.bare false
#修改配置文件
cd ~/Projects/BBB/bb-kernel
cp system.sh.sample system.sh
vim system.sh
#相应位置加入下面两行,LINUX_GIT请根据你的实际路径填写
CC=arm-linux-gnueabihf-
LINUX_GIT=/root/Projects/common/linux-stable
#本人没有添加邮箱用户名,如需添加用户名和邮箱可参考以下命令
git config --global user.name "Hero"
git config --global user.email "2b@163.com"
#最后运行编译脚本
./build_kernel.sh
#稍等片刻会弹出内核参数配置框,直接"Exit"后"Save"即可。当然也可以根据情况自己修改参数
#之后等待编译完成即可
#根据编译完成后的输出信息将内核版本导入到uEnv.txt文件中,其中/media/rootfs是你sd卡挂载的目录
sh -c 'echo "uname_r=4.18.20-bone16" >> /media/rootfs/boot/uEnv.txt'
内核编译部分到此完成。
在将内核拷贝到SD卡之前请先安装根文件系统。可以使用debian或者ubuntu的根文件系统。当然自己用busybox自制文件系统也是可以的。