基于ARM开发板的内核镜像编译(Linux平台)
PS:开始前一定得安装交叉编译器,博主这用的是4.6.4的版本
①获取内核源码并更改
在购买开发板时厂家一般会附有关于该开发板的一些资料,其中应该就包括开发板的内核源码,在获得内核源码后,进行需要的改动后即可开始进行编译。
使用tar vxf *.tar.bz2命令对源码包进行解压后即可按需更改,这里博主使用版本的是kernel-3.4.39,所以是。
tar vxf kernel-3.4.39_v4_mipi.tar.bz2
②开始制作镜像文件
在获得并按照需求更改内核源码后,使用make distclean
清除不需要的设置,使其恢复最初状态,放置自带的配置影响自身需要。
make distclean
然后使用ls
命令查看*/arch/arm/configs/
目录下该源码支持的版本,找到你自己开发板的预制配置。
ls arch/arm/configs/
博主的是x6818平台,所以以x6818_defconfig为例。
使用命令make x6818_defconfig
选定配置,出现configuration written to .config
字样则为选定成功
make x6818_defconfig
选定成功后即可生成镜像了,镜像有zImage和uImage等格式,博主使用的是uImage来编译,所以使用make uImage
命令来生成uImage镜像文件。
make uImage
如果是第一次编译的话,会编译的时间长一点出现如图的滚屏
在出现Image arch/arm/boot/uImage is ready
字样后,代表编译完成。
之后进入arch/arm/boot
目录,新建文件夹,把uImage复制到其中进行操作。
cd arch/arm/boot/
mkdir test
cp uImage test/
cd test
使用make_ext4fs -s -l 67108864 -a boot boot.img ./
命令使uImage转换成boot.img
PS:此处若出错,则可能是缺少组件造成的,使用sudo apt-get install android-tools-fsutils
命令进行安装后再尝试即可
ls查看后文件夹内确实有boot.img文件了
③烧录镜像到开发板
博主使用的方法是把文件导出到windows目录下使用OTG方式进行烧录。
使用串口线链接开发板和PC,运行开发板时进入BootLoader模式,输入fastboot
指令进入烧录模式,然后使用OTG数据线链接开发板和PC,在PC上打开powershell或者cmd,进入boot.img所在目录,使用fastboot flash boot .\boot.img
命令进行烧录。
在出现finished. total time:*s
的字样后表示镜像烧录完成。
至此,完成基于ARM开发板的内核镜像编译和烧录