busybox的编译和根文件的制作

简介:
redhat9.0, 先#redhat-config-packages进入软件包管理把开发工具包全部打上.

1先到www.busybox.net下载busybox.tar.gz软件
2:以root权限#tar -zxvf busybox-1.0.tar.gz解压
3:#cd busybox-1.0
4:#make menuconfig进入菜单界面把 1:general configuration(*),show verbose applet usagemessage(*),runtime suid/sgid configuration via/etc/busybox.conf(*)2:build option build busybox as staic binary采用静态编译不要用到动态链接库.3install option don`t /usr一定要选,其他一些命令你自己选.然后esc键出来它询问你是否要保存你就yes然后
5#make
6#make install或make PERFIX=你要装的目录举个例子/tmp目录#make PERFIX=/tmp install.
7编译好之后你到busybox-1.0中可以看见一个_install的目录那就是你编译的文件有/sbin /bin linuxrc
用命令#ls -l 看一下可以发现linuxrc -> /bin/busybox其实是一软链接.1.0版本默认自动可以给你创建但别的高的版本有一个选项要你选择init,其实/sbin /bin里面的都是链接busybox的软链接,你可以到_install目录下#./busybox你就会看见你自己编译进去的命令有多少, 举个例子如果我把_instal目录里的 ls删去也没多大的关系因为它是指向busybox的链接你可以自己创建#ln -s busybox ls就可以创建ls->busybox其实也可以#./busybox ls相当用了ls命令前提你要把ls命令编译进去.
7_install目录下有一个有个init.d的目录里面有个rcS的脚本
mount -a表示一起动挂载fstab中所有的文件.你可以在里面写
#! /bin/sh
PATH=/bin:/sbin
export PATH
mount -a
ifconfig eth0 192.168.18.22 up这是以模块加载用的,如果你直接把网卡编译到内核你可以ifconfig eth0 192.16.22
modprobe 你开机需要加载的模块名比方8139too 是8139网卡模块2.4内核是8139too.o,2.6内核是8139too.ko
modprobe 8139too自动加载模块主要依靠/lib/modules/module.dep文件
8:inittab和系统的不太一样其实很简单它么有什么runlevel
内容如下:
::sysinit:/etc/init.d/rcS
::respawn:-/bin/sh
::ctrlaltdel:/sbin/reboot
基本上完成了busybox编译你可以在建根目录下其他的文件 /sbin ,/ bin, busybox目录_install目录有了,v目录拷贝系统/dev目录中的设备结点用以下是一定要的 mem(物理内存存取) null为黑洞什么数据进去都化为无形.zero以null byte零值字节为数据来源.random为真随机书产生器,tty0为现行的虚拟控制台,tty1为第一个虚拟控制台,ttyS0为第一个uart串行端口,tty为现行的tty设备.console为系统控制台.还有如果你用的是ide的硬盘就拷贝hda1,2,3.....如果是SATA你就考sda1,2,3.....
以上用命令考#cp -R /dev/mem /你的u盘要不cf.dom盘里其余一样做.
根目录至少有/etc, /dev , /bin, /sbin /proc /root 不过你如果要启动加载模块最好把/lib目录建上还有要在小系统上运行某个程序最好用ldd查看链接库拷贝到/lib相应的目录.
/proc目录为空主要管理内核它主要是内存的映射
/dev为以上的那些设备
/sbin和/bin在_install目录拷出来就行
/root为空
/etc文件有init.d目录, fstab目录可以参考系统本身的fstab
其实也可以参考_install目录的的例子文件夹里的floppy 文件夹里的文件复制到你的/etc目录就行
根目录好了就开始编译内核,我也不多说了.其实也可以到系统/boot目录里用系统的vmlinuz-2.x.y和initrd.img文件


本文转自zh888 51CTO博客,原文链接:http://blog.51cto.com/zh888/327703,如需转载请自行联系原作者

相关文章
|
5月前
|
Ubuntu Linux Shell
使用Busybox制作根文件系统
使用Busybox制作根文件系统
48 0
|
1月前
|
Linux Windows
教你在Linux上安装Node并用Electron打包deb和rpm包
教你在Linux上安装Node并用Electron打包deb和rpm包
40 9
|
5月前
|
C语言
日常知识点之编译运行时识别头文件目录或者链接库目录设置
日常知识点之编译运行时识别头文件目录或者链接库目录设置
38 0
|
5月前
|
JavaScript jenkins Java
Jenkinsfile 脚本放置源码仓库
Jenkinsfile 脚本放置源码仓库
73 0
|
8月前
|
Linux
百度搜索:蓝易云【Cnetos7系统---文件压缩与解压命令详解。】
以上是常用的文件压缩和解压命令的详解。您可以根据具体的需求选择适合的命令来进行文件压缩和解压操作。请注意,不同的命令可能需要安装相应的软件包。
65 1
|
Linux 开发工具
8、使用dockerfile制作镜像出错的问题解决
8、使用dockerfile制作镜像出错的问题解决
8、使用dockerfile制作镜像出错的问题解决
|
分布式计算 Ubuntu Hadoop
D004.1 Dockerfile例子详解及常用指令
构建Hadoop集群例子详解; Dockerfile额外指令说明
374 0
|
Ubuntu 容器
Dockerfile 解析--文件结构
Dockerfile 解析--文件结构
134 0
|
Java Linux Windows
制作Linux启动jar文件脚本
在windows上的命令行可以使用java -jar的方式来启动jar程序,在Linux上该如何方便启动呢?
385 0
制作Linux启动jar文件脚本
|
SQL JavaScript
Node.js 下载路径/微软产品下载路径
https://nodejs.org/en/   https://www.microsoft.com/en-us/download //微软官方下载地址,可以下载VS2015  SQL 等 微软产品
700 0