手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

Firefly Ubuntu开发入门之(1)自己编译内核

时间:2024-10-13 17:13:52

1、一、Linux主机安装内核开发包Linux内核编译需要主机安装一些开发包,具体的开发工具有那些可以通夸臾蓠鬏过包名自行补脑。安装过程中需要留意开发包是否都有安装成功,若有开发包安装失败可以单独再重新安装。sudo apt-get install build-essential lzop libncurses5-dev libssl-dev 如果使用的是 64 位的 Ubuntu,还需要安装:sudo apt-get install libc6:i386

2、二、安装交叉编译工具链 纯Linux开发的朋友可以通过Github单独下载交叉编译工具链,内核编译用到arm-eabi-桃轾庾殇4.6交叉编译工具链,下载链接为:http://pan.baidu.com/s/1sl7v1EX 下载好放到指定目录~/UbuntuDev/toolchain后解压:mkdir ~/UbuntuDev/toolchaincd ~/UbuntuDev/toolchaintar -xvf arm-eabi-4.6.tar.gz 如果是android开发者,可以直接按android SDK编译的方法编译SDK里的内核,android SDK里自带交叉编译工具链等。

3、三、下载Firefly Linux内核源代码 从Firefly github仓库下载kernel源代码:cd ~/UbuntuDevgit clonehttps://github.com/T-Firefly/firefly-3.14-kernel 至此主机安装了开发包,同时内核源码和交叉编译工具链都准备完毕。可谓是万事具备,只欠编译!GO!

4、四、编译内核 进入内核源码目录:cd ~/UbuntuDev/firefly-3.14-kernel/ 设置ARCH环境变量,告诉编译器目标平台的架构:export ARCH=arm 设置交叉编译器:export CROSS_COMPILE=./../toolchain/arm-eabi-4.6/bin/arm-eabi-

Firefly Ubuntu开发入门之(1)自己编译内核

5、载入Firefly RK3288开发板内核配置:make firefly-rk3288_defconfig

Firefly Ubuntu开发入门之(1)自己编译内核

6、编译zImage,zImage是可以加载执行的二进制代码:make -j4 zImage 正常编译结束后,会在arch/arm/boot/目录生成zImage文件:

Firefly Ubuntu开发入门之(1)自己编译内核

7、编译DTB文件。dtb是.dts被DTC编译后的二进制格式的Device Tree描述,可由Linux内核解析。通常在我们为电路板制作NAND、SD启动image时,会为.dtb文件单独留下一个很小的区域以存放之,之后bootloader在引导kernel的过程中,会先读取该.dtb到内存。makefirefly-rk3288.dtb

Firefly Ubuntu开发入门之(1)自己编译内核

8、生成kernel.img文件cat arch/arm/boot/zImage arch/arm/boot/dts/firefly-rk3288.dtb > zImage-dtb

Firefly Ubuntu开发入门之(1)自己编译内核

9、mkkrnlimg -a zImage-dtb kernel.img

Firefly Ubuntu开发入门之(1)自己编译内核

10、当然你也可以这样去编译:make -j8 firefly-rk3288.img 编译出来的firefly-rk3288.img文件和上述步骤编译出来的是一样的。 请不要问题我为什么要介绍这种编译方式,因为我是活雷锋。 编译并安装模块,先在kernel目录创建modules_install目录,用于存放编译好的内核模块。mkdir modules_installmake INSTALL_MOD_PATH=./modules_install modules_install

Firefly Ubuntu开发入门之(1)自己编译内核

11、现在的kernel和modules都已经编译完成,但还不能直接烧录到开发板运行,下一篇再讲如何让编译出来的内核在开发板上运行起来。

© 手抄报圈