运用busybox构建最小根文件系统
平台:vmware下ubuntu14.04
前期准备:安装交叉编译环境arm-linux-gcc-4.5.1;下载完成BusyBox 1.23.2
一、busybox构建
1、make menuconfig——>裁剪定制构建选项 make defconfig
注:menuconfig需要库支持(sudo apt-get install libncurses5-dev)
2、配置busybox的编译工具链参数:
确定交叉编译器的安装位置:which arm-linux-gcc
确定交叉编译器的sys-root目录位置:在交叉编译路径下find . -name sys-root
Build Options——>
()Cross Compiler prefix ----输入交叉编译器的安装位置。。。。/arm-linux-
()Path to sysroot ----输入交叉编译器工具链中的sys-root目录
3、make(根据选项编译出二进制文件)
4、make install (根据选项安装busybox)
5、进入_install 可以发现已经创建好了:bin、linuxrc、sbin、usr目录
二、构建根文件系统
1、复制 _install目录的内容至需要制作的根文件系统
2、补全目录结构 :etc lib proc var dev
3、添加lib库文件
(1 查找动态库依赖:readelf -d busybox|grep NEEDED
(2 在交叉编译工具里寻找动态库文件(ld-linux.so.3 libc.so.6 libm.so.6) :如:find . -name libc.so.6
(3 复制需要的库文件至lib
4、创建基本的设备文件(参考pc机linux系统):/dev/console /dev/tty[1-3]
如:
则:mknod console c 5 1
5、拷贝配置文件:
cp examples/bootfloppy/etc/* mini_busybox/etc/ -r
至此,根文件系统mini_busybox制作完成
运用busybox构建最小根文件系统的更多相关文章
- 移植busybox构建最小根文件系统
Busybox:瑞士军刀,里面装有很多小命令. STEP 1:构建目录结构 创建根文件系统目录,主要包括以下目录/dev /etc /lib /usr /var /proc /tmp /hom ...
- busybox(三)最小根文件系统
目录 busybox(三)最小根文件系统 引入 构建终端 构造inittab 配置应用程序 构建C库 制作映像文件yaffs title: busybox(三)最小根文件系统 tag: arm dat ...
- 构建 ARM Linux 4.7.3 嵌入式开发环境 —— BusyBox 构建 RootFS
上一篇我们已经成功将 ARM Linux 4.7.3 的内核利用 U-BOOT 引导了起来.但是细心的你会发现,引导到后面,系统无法启动,出现内核恐慌 (Kernel Panic). 原因是找不到文件 ...
- 使用busybox构建根文件系统
当我们在Qemu上运行起来自己编译的内核之后,需要使用busybox构建一个文件系统,将此文件系统挂载上去就可以使用busybox提供的各种命令了. 1.编译安装busybox 源码下载地址:http ...
- Busybox构建根文件系统和制作Ramdisk
定制根文件系统的方法很多,最常用的是使用BusyBox来构建定制根文件系统.它集成压缩了Linux的许多工具和命令,可以使用户迅速方便地建立一套相对完整.功能丰富的文件系统,其中包括大量常用的应用 ...
- 韦东山笔记之用busybox构建根文件系统
1 百度搜索busybox进入busybox官网(https://busybox.net/)作者:恒久力行 QQ:624668529 点击左侧DownloadSource下载最新稳定版的busybo ...
- 基于 debootstrap 和 busybox 构建 mini ubuntu
基于 debootstrap 和 busybox 构建 mini ubuntu 最近的工作涉及到服务器自动安装和网络部署操作系统,然后使用 ansible 和 saltsatck 进行配置并安装 op ...
- 使用BusyBox制作Linux根文件系统
STEP 1:构建目录结构 创建根文件系统目录,主要包括以下目录/dev /etc /lib /usr /var /proc /tmp /home /root /mnt /bin /sbin ...
- 18.14 构建Linux根文件系统
18.14.1 Busybox1.7.0之init程序分析 1.读取配置文件 2.解析配置文件 3.执行用户程序(根据配置文件中指定的内容) 配置文件: 1.指定应用程序 2.何时执行 busybox ...
随机推荐
- DataS-2
2.4 证明对任意常数k,(称此式为公式A) 证明: ①当k1<k2时,,因此只需证明正数对公式A成立: ②当k=0或1时,显然有和满足公式A: ③假设k<i (i>1)时,都满足公 ...
- Python学习---重点模块之shelve
简单示例 import shelve f = shelve.open(r'shelve.txt') f['info'] = {'name':'ftl', 'age':23, 'sex': 'male' ...
- MyEclipse中关于JRE System Library、Web App Libraries的疑惑
简要说明一下:其实,这三个都是jar包的存放集合. 1.JRE System Library主要存放J2SE的标准jar,一般不需要调整. 2.Referenced Libraries是存放第三方的j ...
- CF739B Alyona and a tree
嘟嘟嘟 前缀和+倍增+树上差分 假设\(v\)是\(u\)子树中的一个点,那么\(u\)能控制\(v\)的条件是受\(v\)的权值的限制,而并非\(u\).因此我们就能想到计算每一个点的贡献,即\(v ...
- PHP-------smaty 增删改查
smaty 增删改查 smarty-----main文件夹,是放php文件的--------templates文件夹是放html文件的 我们访问的页面是php页面,PHP页面需要使用smarty模板, ...
- vue2中用swiper
一.安装swiper npm install --save swiper 二.home组件 //home.js <app-banner :listImg="bannerList&quo ...
- iview中position: 'fixed'最顶层z-index
使用iview时候使用<Header :style="{position: 'fixed', width: '100%'}">不是最顶层解决方案 根据样式进行解决在ap ...
- [转]asp.net Request、Response 响应在此上下文中不可用
这个问题一般是在页面中使用了Respons.Write()方法,虽然是继承了System.Web.UI.Page.但System.Web.UI.Page下的Response只有在asp.net页面里才 ...
- 处理java多线程时线程安全问题 - ThreadLocal和Synchronized
多线程在自动化测试中用的不多,也就是说我们用单线程可以完成大部分的自动化测试脚本. 主要有两个原因,首先是因为自动化测试首要考虑的是脚本的稳定性,所以一般会牺牲效率以保证脚本稳定,其次是由于局限于我们 ...
- 使用Storyboard拖线容易出错的地方
使用Storyboard拖线容易出错的地方: 在Storyboard中,选中某个控件,按住ctrl键进行拖线,建立Outlet和Action后,不能手动再去修改自动生成的代码,然后再次进行连线,这样会 ...