根文件系统制作

一.建立根文件系统目录与文件

1.创建目录

*mkdir  /home/ARM11/kernel/rootfs

*cd /home/ARM11/kernel/rootfs

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

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

2.创建设备文件

* cd rootfs/dev

* mknod -m 666 console c 5 1

*mknod -m 666 null c 1 3

3.加入配置文件

*tar xvzf  etc.tar.gz

*mv etc/* ./etc (这里注意是rootfs目录下的etc目录,不是根目录下的etc目录)

4.添加内核模块

*cd  /home/ARM11/kernel/tin6410_linux/linux-tiny6410 (进入到我们要安装到开发板的内核源码文件下)

*make modules ARCH=arm CROSS_COMPILE=arm-linux-

*make modules ARCH=arm INSTALL_MOD_PATH=/home/ARM11/kernel/rootfs (INSTALL_MOD_PATH 制定我们要将收集的内核模块再放在哪里,这里我们制定存放在我们制作的根文件目录下,并且自动保存在/lib/modules下)

5.编译和安装Busybox --BusyBox 是一个集成了一百多个最常用linux命令和工具的软件

* tar xvzf busybox-1.13.3.tar.gz

* make menuconfig --配置busybox

*   Busybox Settings -->Build Options

*选中Build BusyBox as static binary (no shared lib)   -- 静态链接

*    ()Cross Compiler prefix  -- 括号里填入arm-linux-

*   Busybox Settings -->Build Options

*选中Don‘t use /usr    --选中该项可以避免busybox被安装到宿主系统的/usr目录下,破坏宿主系统。

*()BusyBox installation prefix --填入制作跟文件系统所在的目录

* make --编译

* make install --安装到制作的跟文件系统下

二.挂载根文件系统到内核

1.文件系统类型

2.使用Initramfs

*cd /home/ARM11/kernel/rootfs/

*ln -s ./bin/busybox init --创建软链接

*配置linux内核以支持initramfs

*make menuconfig ARCH=arm

*选中

*--括号里填入制作的根文件系统所在的目录。

*make uImage ARCH=arm CROSS_COMPILE=arm-linux-  --编译内核

*启动uboot

*setenv bootargs noinitrd console=ttySAC0,115200 --设置串口0

*saveenv --保存环境变量

*tftp --下载内核到内存

*bootm  addr  启动内核

3.使用NFS文件系统

*配置linux内核以支持NFS

*make menuconfig ARCH=arm

*取消选中

*选中File systems -->Network File Systems -->Root file system on NFS

*make uImage ARCH=arm CROSS_COMPILE=arm-linux-  --编译内核

*启动uboot

*setenv bootargs noinitrd console=ttySAC0,115200 init=/init root=dev/nfs rw nfsroot=192.168.0232:/home/ARM11/kernel/rootfs,proto=tcp,nfsvers=3 ip=192.168.0.137:192.168.0.232:192.168.0.1:255.255.255.0::eth0:off

*saveenv

*tftp --下载内核到内存

*bootm  addr  启动内核

 -----至此从移植uboot,到用uboot加载系统内核,再到往内核上挂载文件系统,完成了将linux系统移植到了我tiny6410开发板上。

--自己选择的路,在艰难,跪着也要走下去,fighting!

时间: 2024-10-07 23:22:49

根文件系统制作的相关文章

linux系统移植和根文件系统制作

1.1 Linux内核基础知识 在动手进行Linux内核移植之前,非常有必要对Linux内核进行一定的了解,下面从Linux内核的版本和分类说起. 1.1.1  Linux版本 Linux内核的版本号可以从源代码的顶层目录下的Makefile中看到,比如2.6.29.1内核的Makefile中: VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 29 EXTRAVERSION = .1 其中的“VERSION”和“PATCHLEVEL”组成主版本号,比如2.4.2.5.

根文件系统制作命令小结

1.将根文件系统制作 成ramdisk #genext2fs -b 8192 -d /home/fs/myrootfs/  ramdisk 说明:这一步出现问题,后来发现是这个分配的空间太小,于是将8192改为120400 #genext2fs   -b   /home/xiongyao/rootfs/  ramdisk #gzip  -9  -f  ramdisk 这样就可以将ramdisk.gz下载到开发板上面去了 2.jffs2文件格式 命令使用实例:mkfs.jffs2 -d ~/tar

根文件系统制作、NFS配置与安装及利用NFS挂载根文件系统

最近打算从头开始制作根文件系统,下面是开发过程. 一.根文件系统的制作 0.FHS(Filesystem Hierarchy Standard)标准介绍 该标准规定了根目录下各个子目录的名称及其存放的内容: 目录名 存放的内容 /bin 必备的用户命令,例如ls.cp等 /sbin 必备的系统管理员命令,例如ifconfig.reboot等 /dev 设备文件,例如mtdblock0.tty1等 /etc 系统配置文件,包括启动文件,例如inittab等 /lib 必要的链接库,例如C链接库.内

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

嵌入式Linux系统由三部分组成: uboot.kernel.根文件系统, 还是这张老图 这里的根文件系统可以说是包含两个部分: 一个是根,一个是文件系统 那么什么是根呢?哈哈 其实根表示的就是第一个的意思 下面贴张图看看整个根文件系统制作的步骤: 第一步创建目录,这里是在我自己的一个目录下建立一个名为rootfs的目录: 第二步 :创建设备文件(比如操作串口,其实就是打开一个串口文件,向里面写入读出等) 这里有两个是必须的,其他的暂时不考虑(串口控制台)(这个在dev目录下执行) 第一个指令c

8、根文件系统制作final

根文件系统其实包含两个含义:1.是根.2.是文件系统. 根:就是第一个的意思.必须有的. 文件系统:就是我们在编译linux内核看到的: 上面的目录和文件就是文件系统的. 接下来我们就来创建文件系统: 这里我们需要下面文件: 把它解压开,在把它的内容拷贝到/rootfs/etc: 接着是添加内核模块: 首先是编译内核模块: Make modules ARCH=arm CROSS_COMPILE=arm-linux- 这个编译的过程会有点久. 最后编译好了内核模块,接下来就是拷贝到我们的跟文件系统

tiny4412u-boot烧写及根文件系统制作(不进入终端问题)

http://m.blog.csdn.net/article/details?id=51400196(转) VMware12 环境:ubuntu12.4 开发板:tiny4412 首先烧写bootloader,我用一个8G的内存卡,现在不说sd卡的制作过程了,网上可以参考. 现在就把我给arm的emmc烧写过程开始说. 用sd卡启动,开发板的右下角有个开关控制启动方式,往下是sd卡启动,往上是mmc启动. 1,.先用sd卡启动 注意:把右下角的开关拨到下面.启动后的是[[email protec

根文件系统制作(二)

在前面已经把根文件系统所需要的文件.目录全部都制作好了,接下来讨论如何把它移植到嵌入式系统开发板上.要把根文件系统的所有目录和文件移植到arm开发板上,需要一个名叫mtd.utils的工具软件,它可以直接到官网(ftp://ftp.infradead.org/pub/mtd-utils/)上去下载源码,同时还需要zlib库(http://zlib.net/)和lzo库(http://www.oberhumer.com/opensource/lzo/)的支持,另外还有utils-linux工具(h

Linux 4.10.8 根文件系统制作(三)---制作yaffs文件系统

这里直接用的是韦东山提供的工具. yaffs文件系统是专门用于nandflash的文件系统 我们前面已经下载了yaffs 的源码,也做了文件系统目录的构建. 在yaffs2的源码目录中有一个utils 目录,里面就是制作文件印象的工具. 将工具拷贝到系统目录中去 加上可执行属性: 进入nfs_root目录,执行命令: mkyaffs2image fs_mini fs_mini.yaffs2 然后启动u-boot,进行烧写: nfs 30000000 192.168.0.192:/home/ubu

Linux 4.10.8 根文件系统制作(一)---环境搭建

一.工具 制作工具为busybox 下载地址:https://busybox.net/ 解压: 二.制作文件系统 进入目录,执行make menuconfig: 2.1 busybox setting 2.1.1 设定交叉编译器 改为 保存退出,然后执行 make 编译. 编译完成后创建文件系统存放目录: 2.2.2 安装glibc 安装完成后,fs_mini下会生成以下目录: 进入交差编译工具链的目录,找出lib库: 拷贝sysroot下的lib目录和usr/lib目录下的 .so 文件到fs