嵌入式Linux内核,文件系统的制作

转载 2015年07月10日 17:59:07
嵌入式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的工具,
安装方法:
解压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机上,通过网络共享

嵌入式Linux内核,文件系统的制作

嵌入式Linux内核,文件系统的制作
  • maizaozao
  • maizaozao
  • 2014年09月13日 11:02
  • 189

嵌入式Linux根文件系统制作和挂载

嵌入式Linux系统由三部分组成: uboot、kernel、根文件系统, 还是这张老图 这里的根文件系统可以说是包含两个部分: 一个是根,一个是文件系统 那么什么是根呢?哈哈 其实根表示...
  • coding__madman
  • coding__madman
  • 2016年05月02日 20:33
  • 10981

嵌入式Linux的内核镜像生成过程

嵌入式Linux的内核镜像生成过程最近读了《embedded linux primer》,里面讲到了Linux内核镜像的生成过程。 感觉在这方面算是讲的比较好的。在这里翻译一下。顶层目录的vmlin...
  • sunixy
  • sunixy
  • 2015年09月02日 14:49
  • 1635

嵌入式开发制作最小的linux文件系统

要求:编译器的版本是4.4.6   查看当前交叉编译器的版本:arm-linux-gcc -v   如果不是4.4.6编译器,需要修改一下两个文件:   vim /home/tarena/...
  • a1299600490
  • a1299600490
  • 2016年05月08日 18:46
  • 1554

BusyBox制作Initramfs嵌入式Linux根文件系统

嵌入式Linux系统由linux内核与根文件系统两部分构成,两者缺一不可(无根文件系统的内核无法启动) 使用busybox构建嵌入式根文件系统目录结构,配置内核,并且使用Initramfs制作成根...
  • mcu_tian
  • mcu_tian
  • 2016年06月01日 15:44
  • 3445

嵌入式linux烧写内核,文件系统的2种方式

一.网络下载烧写 tftpboot 二.linux下的DNW,win7下的DNW无法使用 第一种方式 1.设置开发板ip,及其服务器IP在同一段 set ipaddr 192.168.1.X ...
  • u013426958
  • u013426958
  • 2015年05月20日 21:46
  • 1065

制作嵌入式linux文件系统(ramdisk,cramfs,squashfs)

一、什么是文件系统 (Filesystem);A directory structure contained within a disk drive or disk area. The total a...
  • zyb19831212
  • zyb19831212
  • 2007年11月16日 10:20
  • 4728

嵌入式 详解制作根文件系统以及文件系统中init以及其他文件详解

一、FHS(Filesystem Hierarchy Standard)标准介绍 当我们在linux下输入ls  / 的时候,见到的目录结构以及这些目录下的内容都大同小异,这是因为所有的linu...
  • skdkjxy
  • skdkjxy
  • 2014年06月17日 19:46
  • 2970

mke2fs 制作ext2文件系统image

方法1: 利用/dev/ram1: linux下有很多ram,我们用ram1,首先把ram1格式化成ext2文件系统 [root@gucuiwen babylinux]#   sudo mkfs....
  • ctthunagchneg
  • ctthunagchneg
  • 2013年01月30日 11:32
  • 2686

Linux内核版本和系统启动过程以及具体内核移植和根文件系统的制作

原网址:http://www.cnblogs.com/hnrainll/archive/2011/06/09/2076214.html 1.1.1 Linux版本 Linux内核的版本号可以从...
  • heart18335101121
  • heart18335101121
  • 2016年07月31日 11:01
  • 966
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:嵌入式Linux内核,文件系统的制作
举报原因:
原因补充:

(最多只允许输入30个字)