历史上的今天
返回首页

历史上的今天

今天是:2026年01月11日(星期日)

2023年01月11日 | 你知道嵌入式Linux内核?文件系统的制作也是有密切关联的

2023-01-11 来源:elecfans

      嵌入式Linux系统由 Linux内核 + 根文件系统 两部分组成

一个完整的嵌入式Linux系统组成:bootloader + boot parameters + kernel + root filesystem


嵌入式Linux系统使用的是Linux内核,制作方法基本和X86平台的Linux内核一致,下面介绍制作运行于micro2440开发板的内核和根文件系统。


嵌入式Linux内核的制作:

1,到www.kernel.org下载源代码,解压,进入内核源代码目录。

2,清除原有的配置与中间文件

x86: make distclean

arm: make distclean

3,配置内核:

x86: make menuconfig ARCH=i386

arm: make menuconfig ARCH=arm //配置完毕在内核源代码目录生成.config文件,建议参考arch/arm/configs/s3c2410_defconfig .config、

4,编译内核:

x86: make bzImage

arm: make uImage ARCH=arm CROSS_COMPILE=arm-linux- //编译成功在arch/arm/boot/目录下产生zImage内核映像

5,使用tftp下载到开发板运行即可

根文件系统的制作:

根文件系统是Linux启动时使用的第一个文件系统,就像PC机上的文件目录

6,创建根文件系统的目录(目录名随便取)

mkdir rootfs

cd rootfs

mkdir bin dev etc lib proc sbin sys usr mnt tmp var

mkdir usr/bin usr/lib usr/sbin lib/modules

7,创建设备文件

cd dev/

mknod -m 666 console c 5 1

mknod -m 666 null c 1 3

8,安装/etc(随便拷贝点/etc/目录下的文件到该etc目录下)

9,编译内核模块

cd Linux 2.6.29 //进入Linux内核目录

make modules ARCH=arm CORSS_COMPILE=arm-linux-

10,安装内核模块(把编译好的内核模块拷贝到创建的这个文件系统)

make modules_install ARCH=arm INSTALL_MOD_PATH=/***/rootfs //生成rootfs/lib/modules/2.6.29.4-FriendlyARM

busybox的配置-编译-安装:

11,配置busybox(Linux下面是用的一整套的命令和工具的集合)

解压busybox,进入busybox根目录

make menuconfig

选择需要使用的工具

进入 busybox setTIngs->build option->

选中 “build busybox as a staTIc binary”,静态链接

更改Cross Compiler prefix 为(arm-linux-)

进入installation option->

选中“do not use /usr”,可以避免busybox被安装到宿主系统的/usr目录下,破坏宿主系统

更改busybox installaTIon prefix位置为(/xxx/rootfs)

12,编译,安装busybox(把相关的命令/文件拷贝到这个正在创建的文件系统)

在busybox根目录下

make ARCH=arm CROSS_COMPILE=arm-linux- /*等...........等*/

make install //执行的是busybox这个可执行文件/*rootfs/bin/目录下多了好多文件*/

13,至此根文件系统制作完成

由根文件系统制作ramdisk

14,需要一个软件genext2fs,为制作ramdisk的工具,

下载地址http://download.chinaunix.net/download.php?id=6874&ResourceID=3625

安装方法:

解压genext2fs

#cd genext2fs

#./configure

#make

#make install

15,利用genext2fs制作ramdisk

#genext2fs -b 8192 -d /***/rootfs ramdisk  //根文件系统的所有内容变成了ramdisk=8192=8MB

gzip -9 -f ramdisk //对ramdisk进行压缩,将此压缩文件放到开发板即 可作为根文件系统启动起来

开发板可运行的文件系统:

NFS文件系统:文件系统在PC机上,开放给开发板运行

ramdisk文件系统:下载到开发板的内存中运行

Linux支持的文件系统:

ext2,ext3,vfat,jffs,romfs,nfs,这些不同的文件系统由虚拟文件系统VFS统一管理

嵌入式Linux支持的文件系统:

jffs2,yaffs,cramfs,ramdisk,ramfs

jffs2:用于NorFlash上,可读写,支持数据压缩

yaffs2:用于NandFlash上,不支持数据压缩,可读写

cramfs:既可以用于NorFlash上,又可以用于NandFlash上,只读,支持数据压缩

ramdisk:用一部分固定大小的内存作为分区来使用,并非是一个实际的文件系统,方便内核启动

NFS:文件系统在PC机上,通过网络共享


推荐阅读

史海拾趣

晶群科技(Gem-micro)公司的发展小趣事

机顶盒,全称为数字视频变换盒,是现代家庭娱乐中不可或缺的重要设备。它作为连接电视机与外部信号源的桥梁,不仅实现了传统电视信号的接收与转换,还通过数字化和网络化技术,极大地丰富了用户的观看体验。

从功能上看,机顶盒主要分为数字机顶盒和网络机顶盒两大类。数字机顶盒主要实现数模转换功能,让用户在模拟电视机上也能观看数字电视,包括有线电视、卫星电视和地面广播电视等多种信号源。而网络机顶盒则更进一步,能够接入互联网,提供包括在线视频、流媒体服务、游戏等在内的多元化娱乐选择。

在技术层面,机顶盒不断升级,逐步向高清、超高清乃至更高级别的视频标准迈进。同时,智能化技术的应用,如语音助手、智能推荐等,使得机顶盒的操作更加便捷,用户体验更加优越。此外,随着云计算和边缘计算技术的发展,机顶盒在内容分发和管理上也变得更加高效。

综上所述,机顶盒以其强大的功能和不断升级的技术,成为现代家庭娱乐的重要组成部分。它不仅满足了用户日益多样化的观看需求,还通过技术创新不断提升用户体验,引领着家庭娱乐的未来发展方向。

Daykin Electric Corp公司的发展小趣事

1995年,大金在上海闵行建立了其在中国的第一家工厂——大金空调(上海)有限公司。这一举措不仅标志着大金正式进入中国市场,也为公司在中国市场的长期发展奠定了坚实的基础。通过与上海闵行的深入合作,大金在中国市场的业务不断壮大,成为了中国家电市场的领军企业之一。

以上故事均基于大金工业株式会社的发展历史进行虚构创作,旨在展示公司在电子行业中的发展历程和成就。

AXTAL公司的发展小趣事

随着业务的不断发展,AXTAL公司开始在全球范围内进行布局和扩展。公司的设施位于德国南部的“水晶谷”地区,靠近海德堡。这一地区以其丰富的石英资源和技术优势而闻名,为AXTAL提供了得天独厚的条件。此外,公司还积极拓展海外市场,与全球多家知名企业建立了紧密的合作关系,进一步提升了公司的国际影响力。

FEIG ELECTRONIC公司的发展小趣事

自1997年以来,FEIG ELECTRONIC开始加速其全球扩张的步伐。通过不断的技术创新和市场推广,FEIG的产品逐渐覆盖了全球多个行业,包括物流、零售、医疗、制造等。FEIG凭借其高质量的产品和卓越的服务,赢得了全球客户的广泛认可,逐渐发展成为全球RFID领域的领军企业。

Golledge Electronics公司的发展小趣事

自1997年以来,FEIG ELECTRONIC开始加速其全球扩张的步伐。通过不断的技术创新和市场推广,FEIG的产品逐渐覆盖了全球多个行业,包括物流、零售、医疗、制造等。FEIG凭借其高质量的产品和卓越的服务,赢得了全球客户的广泛认可,逐渐发展成为全球RFID领域的领军企业。

EKIT公司的发展小趣事

2023年10月,华为坤灵(HUAWEI eKit)在德国慕尼黑成功举办了分销品牌发布会,这是其在欧洲市场的首个国家级发布活动。通过简化交易流程、打造高效的平台和工具、整合伙伴体系等措施,HUAWEI eKit为德国及欧洲市场的中小企业提供了灵活易用的产品解决方案。同时,HUAWEI eKit还致力于为中小企业市场的各种业务场景开发易买易卖、易装易维、易学易用的分销产品,赢得了市场的广泛认可。

问答坊 | AI 解惑

大家使用protel还是cadence?

大家在工作中硬件设计时是protel用的多还是cadence用的多啊?…

查看全部问答>

tornado2.2下可不可以进行操作符重载?

对一些简单的操作符进行重载,编译没有问题,下载时却提示错误。 有没有人遇到过这种情况??…

查看全部问答>

神啊,救救我吧!关于wince下gethostbyname的使用

当wince连接着USB,USB所连接的电脑可以上网时,gethostbyname可以解析到域名,但是此时把PC端的网络断开,发现还是可以解析到域名,请问哪位大哥有做过此方面的研究啊!!!郁闷,郁闷!!!…

查看全部问答>

wince5.0支持透明显示png图片?动画显示gif图片吗?

wince5.0支持透明显示png图片?动画显示gif图片吗? 1,系统支持吗? 2,有人写过这样的扩展代码吗? …

查看全部问答>

连连看游戏能写入单片机吗?

连连看游戏能写入单片机吗? 还有一个50M的程序能写入单片机吗,单片机最大的程序空间最大为多少容量?    求助各位大虾…

查看全部问答>

请给我点建议,我的项目该如何计划

接到一个项目,主要功能是用串口接传感器,收发数据,进行数据管理这样一个软件。要求在PC和wince设备上运行。我没有做过CE的项目,不知道是应该做一个程序在2个环境都能正常运行好呢,还是分别各做一个。用VC还是C#好。请路过的朋友给点建议好吗, ...…

查看全部问答>

咨询:一个变频调速的小问题。

很简单,我一个1500转的电机,但是想跑30多转,觉得不合适,觉得会对电机不好,但是找不到理由,没想到,本来想说扭矩小,可是好像转速慢,扭矩大啊。 在此请教高人解答了,不胜感激!!!…

查看全部问答>

我似乎很迷茫啊 软件 ?硬件 ? 如何选择?

我很喜欢搞软件 又对硬件很痴迷 现在才刚起步 不知道自己到底往哪个方向发展  从小就喜欢做东西 现在对软件开发又爱不释手 最重要是 现在软件硬件都不是很好  也不晓得自己更偏向于哪个方面! 迷茫啊 ~~~各位给点建议,好不好?~~~ …

查看全部问答>

每天一点私房菜--vim命令

vim 编辑器的使用                                                  ...…

查看全部问答>