day16.最小linux系统如何生成的

本文详细介绍如何从BusyBox源码开始,构建一个基本的Linux系统。包括配置编译环境、生成二进制文件、完善文件系统结构及最终打包过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随行之旅

python国产化自动化

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值