(二)linux内核镜像制作
(一)目的
在进行嵌入式开发的时候,我们往往会先在电脑上安装交叉编译器,然后编译目标板上的代码,最后把代码下载到电路板中,嵌入式系统组成包括:BootLoader+kernel+filesystem+application,前面我们已经制作好了BootLoader,这一节我们制作一个kernel镜像
(二)工具
- linux-3.5版本内核
- Ubuntu 16.04
- linux交叉编译环境(我已经安装过,没有安装的可以下载arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz)
这里说明一点我们获取linux内核一般可以从linux官方获取,或者从开发板的厂商那获取,我比较推荐第二种,因为第一种还需要我们进行有关硬件的配置
(三)操作流程
1、将linux-3.5-20141114.tar拷贝到Linux系统中
2、解压linux-3.5-20141114.tar
tar -xvf linux-3.5-20141114.tar
3、进入解压后的目录
make menuconfig:打开配置界面,若无法打开需要安装库
apt install ncurses-dev
运行make menuconfig打开上面的窗口可以进行内核功能的删减
按下面的步骤修改一个地方:
System Type --->
[ ] Support TrustZone-enabled Trusted Execution Environment //按空格取消该模块
4、修改内核的顶层Makefile
因为最终内核运行到arm开发板,编译需要在PC端,所以需要使用到交叉编译器,在Makefile里指定交叉编译器为arm-linux-
5、拷贝Linux3.5目录下的tiny4412_linux_defconfig为默认配置文件
cp tiny4412_linux_defconfig .config
6、编译内核
make -j8
若出现一下错误:
Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at kernel/timeconst.pl line 373.
/driver/linux-3.5/kernel/Makefile:133: recipe for target 'kernel/timeconst.h' failed
make[1]: *** [kernel/timeconst.h] Error 255
make[1]: *** 正在等待未完成的任务....
修改kernel/timeconst.pl的373行:
if (!defined(@val)) {@val = compute_values($hz);}
为
if (@val) {@val = compute_values($hz);}
7、烧写内核到SD卡
编译完成会提示:Kernel: arch/arm/boot/zImage is ready
将SD卡插入读卡器并连接到Ubuntu
cd arch/arm/boot
dd iflag=dsync oflag=dsync if=./zImage of=/dev/sdb seek=1057
大概持续40秒
8、验证是否烧写成功
将SD卡拔出插到自己的开发板上验证,启动后在串口里会提示内核启动的流程即为成功
(二)linux内核镜像制作相关推荐
- Linux内核镜像文件格式与生成过程(转)
<Linux内核镜像格式> Linux内核有多种格式的镜像,包括vmlinux.Image.zImage.bzImage.uImage.xipImage.bootpImage等. ➤k ...
- Linux内核镜像格式
版权声明:*本文章参考了<Linux内核官方文档>.未经作者允许,严禁用于商业出版**,否则追究法律责任.网络转载请注明出处,这是对原创者的起码的尊重!!!* 1 Linux内核镜像格 ...
- 嵌入式Linux系统镜像制作(基于SD卡)
文章目录 目的 原理 环境准备 系统镜像制作 从现有SD卡备份 从空白文件开始制作 系统镜像使用 其它补充 总结 目的 嵌入式Linux在开发过程中对于软件方面通常是 bootloader.linux ...
- 制作Linux内存镜像+制作对应的volatility profile
制作Linux内存镜像+制作对应的volatility profile 文章目录 制作Linux内存镜像+制作对应的volatility profile 制作Linux内存镜像 lmg安装 制作vol ...
- Linux内核镜像 —— vmlinux与xImage
0 前言 编译Linux内核生成的镜像主要有Image.zImage.bzImage和uImage四种: Image为内核映像文件: zImage为内核的一种映像压缩文件: uImage是uboot专 ...
- 测试linux内核镜像,测试Petalinux BSP镜像参考例子
测试预构建Petalinux镜像 现在,你可以尝试一个预构建参考例.这是通过petalinux-boot 工具来实现的.petalinux-boot可以在物理硬件或者QEMU上启动参考例子. 在硬件上 ...
- linux内核镜像的分层,Docker镜像分层的原理详解
base镜像 base镜像有两层含义: 不依赖其他镜像,从scratch构建 其他镜像可以之为基础进行扩展 所以,base镜像一般都是各种Linux发行版本的Docker镜像,比如:Ubuntu,De ...
- linux内核镜像解压,解压内核镜像
uboot 将 zimage 复制到内存之后,跳转到 zimage 处开始执行,首先执行的代码是 arch/arm/boot/compressed/head.s 文件,首先是一些涉及不同体系结构调试相 ...
- linux内核压缩制作bzImage
接着上一篇<<linux内核启动过程>>继续分析setup.bin和vmlinux.bin执行过程. setup.bin OBJCOPYFLAGS_setup.bin := - ...
最新文章
- [maven] 使用问题及思考汇总
- parasoft Jtest 使用教程:创建并使用参数化测试用例(上)
- tf.reshape的-1的错误理解
- webpack-dev-server启动后,localhost:8080返回index.html的原理
- 圆周率里有每个人的银行卡密码和生日?混知乎的程序员果然都是神一般的存在...
- Android -- 图片画画板(canvas、paint、bitmap)
- php排序order,#ThinkPHP#视图下order排序
- 最小高度100%页脚保持在底部的布局方法
- 织梦错误mynews.lib.php on line 40,织梦错误Fatal error: Using $this when not in object context...
- IIS6.0架设网站常见问题
- 矩阵求逆 —— 初等变换法(高斯-约旦消元)
- 电脑需要装杀毒软件吗?两个理由看完你做决定
- 电脑可以上网但网络显示感叹号无Internet的解决办法
- 高级远程办公解决方案 ETX ,用于桌面虚拟化和远程访问图形要求苛刻的应用程序
- 国内十大优质黄金期货交易平台排名榜单(最新版一览)
- 软件智能:aaas系统AI众生的“世”和“界” 之21 整定问题空间和标定解决方案空间之1
- 转载: 10+公司SWE/DS offer经验
- 人大金仓数据库的使用心得
- 在kafka中,可以这么理解topic,partition,broker
- C#实现的基于RFID射频卡的学校智能刷卡考勤系统
热门文章
- 装linux服务器进去配置界面,在CentOS 8 Linux上安装和配置SuiteCRM的步骤
- (进阶篇)Redis6.2.0 集群 主从复制_故障解决_03
- 查询某一支接口,指定时间段的数据 按分钟排序
- 【基于XML方式】Spring整合Kafka
- flowable笔记 - 简单的通用流程
- docker-compose的介绍与安装(结合官方文档)
- php mysql 查询缓存_mysql 查询缓存使用详解
- 法拉克机器人自动怎么调_在使用钢网印刷SMT贴片红胶时全自动印刷机的参数怎么调?...
- C语言 do while 和 while 循环 - C语言零基础入门教程
- Python运算符 - Python零基础入门教程