Linux内核第一次编译和启动

内核编译和TFTP网络启动

本次内容:kernel和.dtb的编译和启动。
内核来源:原子根据NXP官方板子修改后的文件。

实操过程:
1:在ubuntu中新建文件夹保存linux工程,通过TFTP服务器将内核压缩包从wind下发送到ubuntu下。解压压缩包 tar -vxjf xxx

2编译,新建shell脚本编译,给与权限 chmod ,安装lzop库。编译过程中会弹出图形化配置界面,现在按两下ESC,退出继续编译。

vim mx6ull_zsw_emmc.sh

#!/bin/sh
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- imx_v7_defconfig  (内核默认配置文件)
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- all -j2

为以后方便使用make编译,在顶层Makefile中添加

255 ARCH ?= arm
256 CROSS_COMPILE ?= arm -linux-gnueabihf- 

3编译单独的 .dtb文件,因为我们需要的对应板子的dtb,进入 目录 ./arch/arm/boot/dts,打开Mkaefile搜索imx6ull-14x14-emmc-7-800x480-c.dts ,没有的话手动添加,在工程根目录下编译dtb文件

make imx6ull-14x14-emmc-7-800x480-c.dtb

4:因为要从网络启动,将内核和设备复制到TFTP文件夹中。内核zImage目录 ./arch /arm /boot /zImage。设备树在 目录 ./arch /arm /boot /dts /xxx.dtb

cp ./arch/arm/boot/zImage /home/zsw/linux/tftpboot -f  (-f是替换)
cp ./arch/arm/boot/dts/imx6ull-14x14-emmc-7-800x480-c.dtb /home/zsw/linux/tftpboot -f

启动板子,uboot中,网络启动linux。

tftp 80800000 zImage
tftp 83000000 imx6ull-14x14-emmc-7-800x480-c.dtb
bootz 80800000 - 83000000
后记

有一步将板子对应的dtb文件写入到子Makefile中,编译内核时就已经被编译了,所以就不要单独编译了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值