linux busybox路径,BusyBox构建根文件系统
BusyBox是一个复合了大量简易版Linux工具的程序,嵌入式系统中使用它可以快速建立一个相对简易的根文件系统。
1.下载busybox
官网 www.busybox.net
目前(2015.8.8)的最新稳定版为1.23.2
2.编译busybox
编译busybox前,请安装好交叉工具链,比如我这里是omapl138的工具链,安装位置/opt/arm-linux-gcc/omapl138/bin/,因为编译器前缀和另外一个编译器的相同,每次使用前设置环境变量
PATH=$PATH:/opt/arm-linux-gcc/omapl138/bin/
cd ~/buildspace
tar xf ~/Downloads/busybox-1.23.2.tar.bz2
cd busybox-1.23.2
make menuconfig
make
make install
menuconfig时,
Busybox Settings --->
Build Options --->
() Cross Compiler prefix 填入交叉工具链的前缀,这里是arm-none-linux-gnueab-
Installation Options("make install" behavior) ->
What kind of applet links to install (as soft-links)
(./_install) BusyBox installation prefix 安装路径,我喜欢用这个默认值
其他选项一般默认就够用。
3.构建根文件系统目录
以root用户创建根目录,拷贝busybox文件,创建几个目录
sudo -s
mkdir /home/rootfs
cd /home/rootfs
cp -r ~/biuldspace/busybox-1.23.2/_install/* .
mkdir dev etc lib mnt opt var tmp proc sys root
创建两个基本设备文件
mknod dev/console c 5 1
mknod dev/null c 1 3
创建/linuxrc的初始化配置文件/etc/inittab
该文件中指定linuxrc初始化完成后运行/etc/init.d.rcS脚本。然后在ttyS2运行一个shell,该shell不需要登陆。
::sysinit:/etc/init.d/rcS
::ctrlaltdel:/sbin/reboot
::shutdown:/sbin/swapoff -a
::shutdown:/bin/umount -a -r
::restart:/sbin/init
ttyS2::respawn:-/bin/sh
/etc/init.d/rcS的内容。在rcS文件中,必须使用绝对路径,因为环境变量还没有初始化......
mount -a # 挂载在/etc/fstab中定义的所有挂载点
echo /sbin/mdev > /proc/sys/kernel/hotplug # 设置热插拔事件处理程序为mdev
mdev -s #设备节点维护程序mdev初始化
mkdir /dev/pts #为telnetd创建pts目录
mount -t devpts devpts /dev/pts #挂载pts目录
/bin/hostname -F /etc/hostname # 设置主机名。/etc/hostname 的内容为主机名字符串
mkdir /var/run #ifup需要该目录
/sbin/ifup -a #根据/etc/network/interface设置网卡
/usr/sbin/telnetd & #运行telnetd
#后台运行你的程序
/etc/fstab的内容
tmpfs /dev tmpfs defaults 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /var tmpfs defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
创建ifup需要的文件夹
cd /home/rootfs/etc/
mkdir network
cd network
mkdir if-down.d if-post-down.d if-pre-up.d if-up.d
/etc/network/interfaces 的内容
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.0.5
netmask 255.255.255.0
gateway 192.168.0.1
/etc/passwd 的内容
root::0:0:root:/root:/bin/sh
/etc/profile 的内容
PS1='\u@\h:\w \$ ' #设置终端提示符
PATH=$PATH:/usr/local/bin #设置搜索路径
export TERM=vt102 #termcap的环境变量,gdb -tui需要
export TERMINFO=/usr/share/terminfo
拷贝动态库
cd /opt/arm-linux-gcc/omap_4.3.3/arm-none-linux-gnueabi/libc
cp lib/* /home/rootfs/lib/
cp usr/lib/libstdc++.* /home/rootfs/lib/
制作ubi镜像文件
if [ -e ubifs.img ]; then rm ubifs.img; fi
if [ -e ubi.img ]; then rm ubi.img; fi
rootfs=/home/rootfs
mkfs.ubifs -v -r ${rootfs} -m 2048 -e 126976 -c 3717 -o ubifs.img -F
ubinize -v -o ubi.img -O 2048 -m 2048 -p 128KiB -s 512 ubinize.cfg
rm ubifs.img
其中,mkfs.ubifs需要加-F参数,否则ubi文件系统很可能在启动一次后就坏掉。-F参数的意思是在第一次启动时清空空闲区域。
ubinize.cfg的内容
[rootfs]
mode=ubi
image=ubifs.img
vol_id=0
vol_type=dynamic
vol_name=rootfs
vol_flags=autoresize
mkfs.ubifs是创建单个卷(类似逻辑分区)的镜像,ubinize是创建一个可以包含多个卷的镜像(类似扩展分区)。ubinize.cfg中,[]内为卷的名字。
linux busybox路径,BusyBox构建根文件系统相关推荐
- 2.3【Linux系统移植之三】:使用BusyBox构建根文件系统(rootfs)
文章目录 一.搭建NFS服务器 二.使用BusyBox构建跟文件系统 2.1 修改顶层Makefile 2.2 busybox中文支持 2.3 配置busybox 2.4 编译busybox 2.5 ...
- 【ARM】使用Busybox构建根文件系统
Busybox构建根文件系统 介绍 下载 配置busybox 配置交叉编译器 取消静态库编译 添加vi命令的支持 取消简化模块 支持mdev 中文支持 编译 完善根文件系统 创建必要文件夹 复制库 启 ...
- Linux之系统移植与根文件系统构建
Linux之系统移植与根文件系统构建 1.Uboot 1. 什么是Uboot: 一个裸机程序 就是一个bootloader用于启动Linux或其他系统 最主要的工作就是初始化DDR.因为Linux是运 ...
- 教你用 buildroot 构建根文件系统
如果想要构建完整的根文件系统,大家一般都是使用buildroot,它不仅包含了 busybox 的功能,而且里面还集成了各种软件,需要什么软件就选择什么软件,不需要我们去移植. 嵌入式系统三大部分:b ...
- Buildroot 构建根文件系统(Jz2440)
1. Buildroot 简介 Buildroot是Linux平台上一个构建嵌入式Linux系统的框架.整个Buildroot是由Makefile脚本和Kconfig配置文件构成的.你可以和 ...
- 野火i.MX6ULL Pro开发板构建根文件系统
眼瞅着2020年马上就要到头了,承诺给大家的Linux移植三部曲还差最后一篇,这个拖延癌晚期恐怕今年是治不好了,不到最后的DL绝不妥协-- (这句话是年前写的,写了个开头就疫情了,封城,电脑丢在了公司 ...
- 笔记:使用buildroot构建根文件系统
文章目录 简介 构建过程 buildroot包下载 配置 Target options配置项 Build options配置项 Toolchain配置项 System configuration配置项 ...
- 构建根文件系统(一)
接着前边内核移植的文章,记录根文件系统的构建. 这里要用到强大的busybox,我选择的版本是busybox-1.18.5.tar.bz2 ,1.17的也可以:之所以选择这个版本是因为基于现在的交叉编 ...
- buildroot构建根文件系统
buildroot构建根文件系统 一.简介 Buildroot是Linux平台上一个构建嵌入式Linux系统的框架.整个Buildroot是由Makefile脚本和Kconfig配置文件构成的.本文使 ...
- 从零开始构建根文件系统
以下内容源于网络资源的学习与整理,如有侵权请告知删除. 参考博客 Uboot和系统移植(19)------- 根文件系统构建过程详解_big__C的博客-CSDN博客 一.总结 (1)本节在前面的理论 ...
最新文章
- 自然语言处理「迷惑行为大赏」,自然语言处理太难难难了!
- Java 使用ZeroMQ 2.2 进行通信编程
- 1.7 编程基础之字符串 25 最长最短单词 python
- 华为回应“发射卫星抢占6G”:假消息
- git拉取远程分支到本地分支或者创建本地新分支
- Js 模式对话框(转)
- 决策树算法中导致递归返回的三种情况
- Windows下安装JDK,配置环境变量
- cad的文字嵌入线条_CAD字体如何转变为线条
- 组装计算机什么配置比较好,组装电脑什么配置好 组装电脑配置推荐
- 基尼不纯度(Gini impurity)
- Oracle数据库:oracle内连接inner join on,多表查询各种自链接、内连接、外连接的练习示例
- gdal gdal2tiles.py 的使用
- ZooKeeper篇:2PC、3PC以及ZAB协议
- 时光金科php_重庆金科博翠宸章 | ACA麦垦景观
- 记账软件如何查看收入支出
- 大数据平台架构实战(二)IntelliJ IDEA搭建hadoop
- 三星android 8.0 流畅,三星Galaxy S8使用安卓Android 8.0:更顺滑更流畅
- JL-03-Q9 自动气象站 常见气象9参数 空气温湿度 风速风向 雨量光照 大气压力 土壤温湿度
- UnityShader实现较为完整的光照模型(Lambert+Phong+三色环境光+阴影+环境遮蔽(AO))