第16节:最小linux系统如何生成的
1)使用下载好的busybox源码包,这个包基础已经包含了linux常用的linux命令。
2)创建目录存放解压busybox源码包并且
topeet@ubuntu:/home$ sudo mkdir minilinux
topeet@ubuntu:/home$ sudo mv busybox-1.22.1.tar.bz2 minilinux/
topeet@ubuntu:/home/minilinux$ sudo tar xvf busybox-1.22.1.tar.bz2
topeet@ubuntu:/home/minilinux$ cd busybox-1.22.1/
3)配置busybox
切换到root用户
topeet@ubuntu:/home/minilinux/busybox-1.22.1# make menuconfig
4)配置编译器
选择1:Busybox Settings --->
选择2:Build Options--->
选择3: Cross Compiler prefix (NEW)
配置为 arm-none-linux-gnueabi-
选择4:配置后返回到Build Options
5)配置二进制文件的目录
选择1:Installation Options ("make install" behavior) --->
选择2:BusyBox installation prefix (NEW)
配置为“../system”
选择3:保存退出
6)环境变量配置
export PATH=$PATH:/usr/local/arm/arm-2009q3/bin
7)使用make 进行编译
8)使用make install 进行生成,成功信息
--------------------------------------------------
You will probably need to make your busybox binary
setuid root to ensure all configured applets will
work properly
9)生成成功信息后返回上一级路径会看到system文件
root@ubuntu:/home/minilinux# ls
busybox-1.22.1 busybox-1.22.1.tar.bz2 system
10)完善最小Linux文件系统,创建相应文件
root@ubuntu:/home/minilinux/system# mkdir dev etc lib mnt proc sys tmp var
11)进入etc目录创建如下文件
mkdir init.d rc.d
12)在进入rc.d目录创建如下文件
mkdir init.d
13)返回system目录,再进入var目录创建如下文件
mkdir lib lock log run tmp
14)进入etc目录下将eth0-setting passwd profile 拷贝到这个目录,接着改成755状态
root@ubuntu:/home/minilinux/system/etc# chmod 755 eth0-setting passwd profile
15)进入init.d目录下将ifconfig-eth0 rcS拷贝到这个目录,接着改成755状态
root@ubuntu:/home/minilinux/system/etc/init.d# chmod 755 ifconfig-eth0 rcS
16)进入rc.d/init.d目录下将netd拷贝到这个目录,接着改成755状态
root@ubuntu:/home/minilinux/system/etc/rc.d/init.d# chmod 755 netd
17)返回到system/lib 目录下,将如下编译器库文件拷贝进去
root@ubuntu:/home/minilinux/system/lib# cp /usr/local/arm/arm-2009q3/arm-none-linux-gnueabi/libc/lib/* ./
root@ubuntu:/home/minilinux/system/lib# ls
ld-2.10.1.so libcrypt-2.10.1.so libm.so.6 libnss_hesiod-2.10.1.so libresolv-2.10.1.so
ld-linux.so.3 libcrypt.so.1 libnsl-2.10.1.so libnss_hesiod.so.2 libresolv.so.2
libanl-2.10.1.so libc.so.6 libnsl.so.1 libnss_nis-2.10.1.so librt-2.10.1.so
libanl.so.1 libdl-2.10.1.so libnss_compat-2.10.1.so libnss_nisplus-2.10.1.so librt.so.1
libBrokenLocale-2.10.1.so libdl.so.2 libnss_compat.so.2 libnss_nisplus.so.2 libSegFault.so
libBrokenLocale.so.1 libgcc_s.so libnss_dns-2.10.1.so libnss_nis.so.2 libthread_db-1.0.so
libc-2.10.1.so libgcc_s.so.1 libnss_dns.so.2 libpcprofile.so libthread_db.so.1
libcidn-2.10.1.so libm-2.10.1.so libnss_files-2.10.1.so libpthread-2.10.1.so libutil-2.10.1.so
libcidn.so.1 libmemusage.so libnss_files.so.2 libpthread.so.0 libutil.so.1
18)以上步骤system就制作完成了
19)接着将system文件进行打包
root@ubuntu:/home/minilinux/system/lib# cd /home/minilinux/
root@ubuntu:/home/minilinux# make_ext4fs -s -l 314572800 -a root -L linux system.img system
Creating filesystem with parameters:
Size: 314572800
Block size: 4096
Blocks per group: 32768
Inodes per group: 6400
Inode size: 256
Journal blocks: 1200
Label: linux
Blocks: 76800
Block groups: 3
Reserved block group size: 23
Created filesystem with 437/19200 inodes and 4623/76800 blocks
root@ubuntu:/home/minilinux# ls
busybox-1.22.1 busybox-1.22.1.tar.bz2 system system.img
20)烧写请看前一节内容
21)烧写成功的系统如下
[root@iTOP-4412]# ls
bin etc linuxrc proc sys usr
dev lib mnt sbin tmp var
1)使用下载好的busybox源码包,这个包基础已经包含了linux常用的linux命令。
2)创建目录存放解压busybox源码包并且
topeet@ubuntu:/home$ sudo mkdir minilinux
topeet@ubuntu:/home$ sudo mv busybox-1.22.1.tar.bz2 minilinux/
topeet@ubuntu:/home/minilinux$ sudo tar xvf busybox-1.22.1.tar.bz2
topeet@ubuntu:/home/minilinux$ cd busybox-1.22.1/
3)配置busybox
切换到root用户
topeet@ubuntu:/home/minilinux/busybox-1.22.1# make menuconfig
4)配置编译器
选择1:Busybox Settings --->
选择2:Build Options--->
选择3: Cross Compiler prefix (NEW)
配置为 arm-none-linux-gnueabi-
选择4:配置后返回到Build Options
5)配置二进制文件的目录
选择1:Installation Options ("make install" behavior) --->
选择2:BusyBox installation prefix (NEW)
配置为“../system”
选择3:保存退出
6)环境变量配置
export PATH=$PATH:/usr/local/arm/arm-2009q3/bin
7)使用make 进行编译
8)使用make install 进行生成,成功信息
--------------------------------------------------
You will probably need to make your busybox binary
setuid root to ensure all configured applets will
work properly
9)生成成功信息后返回上一级路径会看到system文件
root@ubuntu:/home/minilinux# ls
busybox-1.22.1 busybox-1.22.1.tar.bz2 system
10)完善最小Linux文件系统,创建相应文件
root@ubuntu:/home/minilinux/system# mkdir dev etc lib mnt proc sys tmp var
11)进入etc目录创建如下文件
mkdir init.d rc.d
12)在进入rc.d目录创建如下文件
mkdir init.d
13)返回system目录,再进入var目录创建如下文件
mkdir lib lock log run tmp
14)进入etc目录下将eth0-setting passwd profile 拷贝到这个目录,接着改成755状态
root@ubuntu:/home/minilinux/system/etc# chmod 755 eth0-setting passwd profile
15)进入init.d目录下将ifconfig-eth0 rcS拷贝到这个目录,接着改成755状态
root@ubuntu:/home/minilinux/system/etc/init.d# chmod 755 ifconfig-eth0 rcS
16)进入rc.d/init.d目录下将netd拷贝到这个目录,接着改成755状态
root@ubuntu:/home/minilinux/system/etc/rc.d/init.d# chmod 755 netd
17)返回到system/lib 目录下,将如下编译器库文件拷贝进去
root@ubuntu:/home/minilinux/system/lib# cp /usr/local/arm/arm-2009q3/arm-none-linux-gnueabi/libc/lib/* ./
root@ubuntu:/home/minilinux/system/lib# ls
ld-2.10.1.so libcrypt-2.10.1.so libm.so.6 libnss_hesiod-2.10.1.so libresolv-2.10.1.so
ld-linux.so.3 libcrypt.so.1 libnsl-2.10.1.so libnss_hesiod.so.2 libresolv.so.2
libanl-2.10.1.so libc.so.6 libnsl.so.1 libnss_nis-2.10.1.so librt-2.10.1.so
libanl.so.1 libdl-2.10.1.so libnss_compat-2.10.1.so libnss_nisplus-2.10.1.so librt.so.1
libBrokenLocale-2.10.1.so libdl.so.2 libnss_compat.so.2 libnss_nisplus.so.2 libSegFault.so
libBrokenLocale.so.1 libgcc_s.so libnss_dns-2.10.1.so libnss_nis.so.2 libthread_db-1.0.so
libc-2.10.1.so libgcc_s.so.1 libnss_dns.so.2 libpcprofile.so libthread_db.so.1
libcidn-2.10.1.so libm-2.10.1.so libnss_files-2.10.1.so libpthread-2.10.1.so libutil-2.10.1.so
libcidn.so.1 libmemusage.so libnss_files.so.2 libpthread.so.0 libutil.so.1
18)以上步骤system就制作完成了
19)接着将system文件进行打包
root@ubuntu:/home/minilinux/system/lib# cd /home/minilinux/
root@ubuntu:/home/minilinux# make_ext4fs -s -l 314572800 -a root -L linux system.img system
Creating filesystem with parameters:
Size: 314572800
Block size: 4096
Blocks per group: 32768
Inodes per group: 6400
Inode size: 256
Journal blocks: 1200
Label: linux
Blocks: 76800
Block groups: 3
Reserved block group size: 23
Created filesystem with 437/19200 inodes and 4623/76800 blocks
root@ubuntu:/home/minilinux# ls
busybox-1.22.1 busybox-1.22.1.tar.bz2 system system.img
20)烧写请看前一节内容
21)烧写成功的系统如下
[root@iTOP-4412]# ls
bin etc linuxrc proc sys usr
dev lib mnt sbin tmp var