前言
本系列文章介绍linux内核的编译和移植,x86 电脑有ubuntu等现成的安装包可以直接使用。本文章主要针对嵌入式系统。
一、linux内核编译移植
编译kernel
编译设备树
设备树编译
设备树的编译器是dtc,源代码目录kernel\scripts\dtc,只要编译过内核,就会生成dtc,
编译文件系统
生成itb文件
安装mkimage工具
sudo apt-get install u-boot-tools -y
设备树编译
设备树的编译器是dtc,源代码目录kernel\scripts\dtc,只要编译过内核,就会生成dtc,
二、
linux 内核补丁操作
生成补丁:
diff -uprN 原版linux目录 修改过的源码目录 > xxx.patch
打补丁:
patch -p1 < ./xxx.patch
移除/卸载补丁:
patch -R -p1 < ./xxx.patch
打补丁的文件会生成相应的.orig文件,可以通过下面的命令确认:
find . -name *.orig
也会出现拒绝的情况,生成.rej文件,通过下面的命令查找:
find . -name *.rej
patch
-p参数决定了是否使用读出的源文件名的前缀目录信息,不提供-p参数,则忽略所有目录信息,
patch -p0 (“p”指的是路径,后面的数字表示去掉路径的第几部分。0,表示不去掉,为全路径)
patch -p1 (“p”后面的数字1,表示去掉前第一个路径,第一个"/"以前的目录,依此类推。
如/usr/src/linux-2.6.11/Makefile这样的文件名,在提供-p3参数时将使用linux-2.6.11/Makefile作为所要patch的文件。