编译ARM开发板的内核镜像(linux)
编译内核其实本质上就是熟悉流程与配置的更改,本文暂时只介绍流程,对于更改,以后详谈。
一点要注意 :需要先安装arm-linux-gcc 交叉编译器!切记!
获取内核源码
如果你有开发板,那么商家大多会给你资料,其中就有对应该开发板SOC的linux内核,如果里面没有对应的linux内核源码,那么本文不适合你了,你需要移植或自己找对应的内核源码。
开始制作镜像
既然已经获得了源码包,经过ubuntu下的tar xvf 命令解压后,就可以进入到文件夹中。
在进入之后第一步就是使用make distclean 清除一下,类似出厂设置,以防自带的配置影响你的需要。
make distclean
之后查看你的arch/arm/configs/ 目录下的文件
ls arch/arm/configs/
找到你的开发板的平台的预制配置,这个一般来说是厂家提供的。
以我的 x6818_defconfig 为例
使用命令 make x6818_defconfig
make x6818_defconfig
在这一步过后,根据你的需求可以生成镜像了
我使用的是 uImage,所以 make uImage
make ulmage
如果你是第一次,那么你需要漫长的等待,在不出错的情况下,你会看到这个画面
一般不会出错的啦,毕竟都是厂家搞好的。
在这一步之后,进入到boot目录里,创建一个文件夹,把uImage放入其中并执行
cd arch/arm/boot/
mkdir test
cp uImage test/
cd test/
之后还要进行一步,就是吧生成的uImage变成boot.img
使用make_ext4fs -s -l 67108864 -a boot boot.img ./ 命令
make_ext4fs -s -l 67108864 -a boot boot.img ./
如果出现这个错误,那就乖乖安装就好了
乖乖安装。。。。
sudo apt install android-tools-fsutils
再次执行
make_ext4fs -s -l 67108864 -a boot boot.img ./
make_ext4fs -s -l 67108864 -a boot boot.img ./
这就成功了
使用ls 命令查看,在当前目录已经有boot.img 了
使用fastboot把boot.img烧录进去吧
使用开发板进去 bootloader 中输入 fastboot
之后插上OTG线,打开Powershell吧
fastboot flash boot .\boot.img
之后出现下图,之后就可以重启开发板了
因为之前有文件系统所以直接开机了,完事
下一篇: printk
推荐阅读
-
Linux内核实现多路镜像流量聚合和复制的方法
-
Centos下编译Linux内核的具体实现方法
-
关于在linux交叉编译出适用于树莓派ARM架构的可执行程序
-
linux编译内核的方法
-
Linux下制作给ARM开发板使用的文件系统
-
linux内核编译常常出现的问题的解决办法
-
Linux内核编译时出现fatal error: openssl/opensslv.h: No such file or directory错误的解决办法
-
Linux内核编译时出现fatal error: openssl/opensslv.h: No such file or directory错误的解决办法
-
Ubuntu下实时Linux内核的编译安装(PREEMPT_RT)以及测试
-
解析Linux内核与设备树的编译和烧写