在学习了韦东山老师的制作最小根文件系统视频之后,记录下的笔记
制作最小根文件系统需要的步骤:
- 设置/dev/console 和 /dev/null
- 将busybox加载到linux中去
- 配置 /etc/inittab文件
- 配置inittab中的process程序(在最小系统中,可以没有用户程序)
- 加载c库
制作流程:
- 最先在虚拟机work目录下创建nfs_sec文件夹然后在nfs下创建frist_fs
执行
cd /work
mkdir nfs
cd nfs
mkdir frist_fs
1、/dev/console
/dev/null
步骤 :
在 /work/nfs/frist_fs下创建 dev文件夹 进入dev
执行 sudo mknod console c 5 1
sudo mknod null c 1 3
- init → busybox
下载busybox,这里用的是busybox-1.7.0.tar.bz2
下载到work中 解压busybox-1.7.0.tar.bz2,执行tar xjf busybox-1.7.0.tar.bz2
Busybox操作:
在work/system/ busybox-1.7.0目录下执行 make menuconfig 创建.config文件
配置busybox
需要特别注意的是:在编译之前,需要修改busybox根目录的Makefile文件
步骤:
1、执行vi Makefile
2、进入插入模式
3、输入/CROSS 定位到有CROSS的地方
4、找到 ARCH ?= $(SUBARCH)
CROSS_COMPILE ?=
修改为:
ARCH ?= arm
CROSS_COMPILE ?= arm-linux-
执行make
执行 make CONFIG_PREFIX=/work/nfs/frist_fs(你最先开始时创建的目录) install
特别注意:在执行make install时不能直接执行,直接执行的话他会直接修改虚拟机,造成破坏,应该用make CONFIG_PREFIX=/path/from/root install命令将它放到自己指定的文件夹中去(像上面所做的一样)
3、/etc/inittab
创建etc文件夹
vi etc/inittab
在inittab中加入配置信息 console::askfirst:-/bin/sh
4、配置文件指定的程序(在最小系统中可以没有)
5、c库
在/work//nfs_sec /frost_fs/下创建lib目录
进入/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib
执行 cp *.so* /work/nfs_sec/frost_fs/lib –d(-d表示复制的是链接文件,如果不加的话就会复制成源文件,那占的内存就会非常的大)