Linux 基础:Linux内核与设备树的编译
之前下载过UBoot文件的朋友应该知道,在每个开发版的资料里都有相应的文件,没有的可以找购买开发版的店家要。
下载完成后将文件拷贝到linux系统下进行解压,解压后会的目录如下图所示:
注意:编译时一定要在当前路径下才能编译
1、清理项目工程
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
2、设置默认配置文件
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- i2som_imx6_defconfig
编译完成后会生成“.config”,如下图所示:
注意:湃兔的默认配置文件是“i2som_imx6_defconfig”,不同厂商的默认配置文件有所不同,可与根据相应的资料查看。如湃兔官网的说明,如下图所示
3.编译生成kernrl文件
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage
4.编译生成.dtb文件
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs
注意:到这里内核与设备树的编译就算完成了,如果细心的小伙伴就会发现,为啥我的命令会长一些。每个指令中都用“ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-”,这是设置编译器为交叉编译器。为了使编译指令简介一些,可以在Makefile文件中添加ARCH和CROSS_COMPILE的配置,以后就可以编译时就可以省掉命令中的“ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-”部分,如下图所示:
5.生成文件的路径
zImage:/arch/arm/boot/目录下
dtb:/arch/arm/boot/dts目录下
四、通过TFTp烧写zImage与.dtb文件1.将zImage和.dtb文件放入tftp服务器中
2.进入开发版UBoot的命令行,配置TFTP服务地址
setenv serverip 192.168.1.99
saveenv
3.下载zImage文件
tftp 80800000 zImage
4.下载.dtb文件
tftp 83000000 i2c6ulxb-i2s6ull-emmc.dtb
5.启动加载zImage和dtb文件
bootz 80800000 83000000
6.验证是否成功
烧写完成后,在kernel启动时会打印编译的时间,如果时间是没问题则说明成功了,启动信息如下图所示:
五、常见问题1.编译生成zImage时可能会出现的错误如下图所示:
这个错误主要是开发环境未安装‘lzop 工具,只需安装一下从新编译即可
sudo apt-get install lzop
2.启动时卡死在“Starting kernel ”,如下图所示:
不知道是我手里的开发有问题还是怎么回事,只要编译是不如改动其他文件一般不会有配置错误,所以遇到这种情况多重新试几次即可。
3.如图能启动系统,湃兔的开发版还可以通过替换文件进行更新,进入开发版的系统后之心一下操作
mkdir /mnt/linux/
umount /mnt/linux/
mount /dev/mmcblk1p1 /mnt/linux/
cp i2c6ulxb-i2s6ull-emmc.dtb /mnt/linux/zImage-i2c6ulxb-i2s6ull-emmc.dtb; sync
umount /mnt/linux
reboot
官方教程如下图所示:
4.启动后会发现不能正常启动,这是因为没有根文件导致的
一、准备材料可以根据自己的需要准备相应材料:
开发环境:VMware
操作系统:ubuntu
开发版:湃兔i2S-6UB
二、下载Linux内核文件之前下载过UBoot文件的朋友应该知道,在每个开发版的资料里都有相应的文件,没有的可以找购买开发版的店家要。
下载完成后将文件拷贝到linux系统下进行解压,解压后会的目录如下图所示:
注意:编译时一定要在当前路径下才能编译
1、清理项目工程
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
2、设置默认配置文件
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- i2som_imx6_defconfig
编译完成后会生成“.config”,如下图所示:
注意:湃兔的默认配置文件是“i2som_imx6_defconfig”,不同厂商的默认配置文件有所不同,可与根据相应的资料查看。如湃兔官网的说明,如下图所示
3.编译生成kernrl文件
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage
4.编译生成.dtb文件
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs
注意:到这里内核与设备树的编译就算完成了,如果细心的小伙伴就会发现,为啥我的命令会长一些。每个指令中都用“ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-”,这是设置编译器为交叉编译器。为了使编译指令简介一些,可以在Makefile文件中添加ARCH和CROSS_COMPILE的配置,以后就可以编译时就可以省掉命令中的“ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-”部分,如下图所示:
5.生成文件的路径
zImage:/arch/arm/boot/目录下
dtb:/arch/arm/boot/dts目录下
四、通过TFTp烧写zImage与.dtb文件1.将zImage和.dtb文件放入tftp服务器中
2.进入开发版UBoot的命令行,配置TFTP服务地址
setenv serverip 192.168.1.99
saveenv
3.下载zImage文件
tftp 80800000 zImage
4.下载.dtb文件
tftp 83000000 i2c6ulxb-i2s6ull-emmc.dtb
5.启动加载zImage和dtb文件
bootz 80800000 83000000
6.验证是否成功
烧写完成后,在kernel启动时会打印编译的时间,如果时间是没问题则说明成功了,启动信息如下图所示:
五、常见问题1.编译生成zImage时可能会出现的错误如下图所示:
这个错误主要是开发环境未安装‘lzop 工具,只需安装一下从新编译即可
sudo apt-get install lzop
2.启动时卡死在“Starting kernel ”,如下图所示:
不知道是我手里的开发有问题还是怎么回事,只要编译是不如改动其他文件一般不会有配置错误,所以遇到这种情况多重新试几次即可。
3.如图能启动系统,湃兔的开发版还可以通过替换文件进行更新,进入开发版的系统后之心一下操作
mkdir /mnt/linux/
umount /mnt/linux/
mount /dev/mmcblk1p1 /mnt/linux/
cp i2c6ulxb-i2s6ull-emmc.dtb /mnt/linux/zImage-i2c6ulxb-i2s6ull-emmc.dtb; sync
umount /mnt/linux
reboot
官方教程如下图所示:
4.启动后会发现不能正常启动,这是因为没有根文件导致的
以上就是Linux 基础:Linux内核与设备树的编译的详细内容,更多关于Linux内核与设备树的编译和烧写的资料请关注其它相关文章!
我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题
本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 Linux 基础:Linux内核与设备树的编译
相关文章
- NFS (网络文件系统) | CentOS7 升级系统和内核 | Linux man 命令汉化
- 配置Linux实现网络配置开启(linux打开网络)
- 管理Linux 系统下的总线设备管理(linux总线设备)
- 以Linux内核为根,打造智慧生活(linux内核树)
- Linux远程配置:简单易行的操作过程(linux远程配置)
- Linux内核:开拓美好未来的前景。(linux内核前景)
- 开启Linux之旅:语音合成助力学习(linux语音合成)
- 基于Linux内核的浮点数处理技术.(linux内核浮点数)
- 深入Linux内核:调试技术实践(调试linux内核)
- 开发探索 Linux 内核与驱动开发的奥秘(linux内核和驱动)
- 本发行Linux内核版本发布及其影响(linux内核版)
- Linux:开源世界的崭新支柱(linux的分支)
- Batch Rename Files in Linux(批量重命名linux)
- Linux底层驱动:操作系统内核的关键组成部分(linux底层驱动)
- 简易指南:在Linux终端中执行命令(linux终端执行命令)
- 探究中文内核 Linux:解密全球最流行的开源操作系统(中文内核linux)
- 如何在Linux下打开设备:简单指南(linux设备打开)
- Linux内核映像文件:再次登上技术之巅(linux 内核映像文件)
- Linux内核配置:开启精彩菜单之旅(linux内核配置 菜单)
- 快速入门:Linux下C开发基础(linux 下c 开发)
- Linux 内核视频教程:最快速入门深入学习(linux 内核视频教程)
- Linux内核实战视频教程:让你轻松搞定!(linux 内核视频教程)
- Linux让你轻松查阅内核数量(linux 内核数查询)