嵌入式系统移植笔记(八) --制作rootfs

举报
王建峰 发表于 2021/11/19 01:36:49 2021/11/19
【摘要】 Linux内核启动后,需要挂载根文件系统。本章介绍文件系统的制作过程,并且让开发板通过网络远程挂载nfs系统来验证制作的rootfs。。   文件系统格式 上面不同的文件系统格式,有适合不同的应用场合。nfs rootfs,实际nfs是将服务器端的目录通过网络的形式共享出去,是把服务端文件系统的一部分共享给了客户端。...

Linux内核启动后,需要挂载根文件系统。本章介绍文件系统的制作过程,并且让开发板通过网络远程挂载nfs系统来验证制作的rootfs。。

 

文件系统格式

上面不同的文件系统格式,有适合不同的应用场合。nfs rootfs,实际nfs是将服务器端的目录通过网络的形式共享出去,是把服务端文件系统的一部分共享给了客户端。在服务端,我们将rootfs制作好,放在这个目录中,客户端就可以获取到rootfs。没有必要将文件系统格式化成某一种类型,极大地方便了开发调试。

 

BusyBox

http://www.busybox.net/

BusyBox 是在 GNU GPL 许可协议下发行的开源软件

享有嵌入式Linux的瑞士军刀美誉,Erik Andersen先生维护;Busybox是一个UNIX系统工具集,它将很多普通的UNIX工具集成到一个很小的可执行文件中,为普通用户提供大多数常用的命令;

BusyBox常用于制作linux命令

 

 

制作方法

参考华清远见提供的资料

 

$ tar  xvf  busybox-1.22.1.tar.bz2

$ cd  busybox-1.22.1

$ make menuconfig

    Busybox Settings --->

  Build Options --->

  [*] Build BusyBox as a static binary (no shared libs)

  (arm-none-linux-gnueabi-) Cross Compiler prefix   注意 一定要指定交叉编译工具

$ make

$ file busybox   确认编译生成的是 ARM 平台的(显示为ELF 32-bit LSB executable, ARM)

$ make  install   安装(默认安装路径为_install)

$ cd _install

$  ls

      bin  linuxrc  sbin  usr

$ mkdir  dev  etc  mnt  proc  var  tmp  sys  root       创建需要的目录

$ cp -a ~/store/gcc-4.6.4/arm-arm1176jzfssf-linux-gnueabi/lib/ .   

$ du -mh lib     查看lib库的大小

$ rm  lib/*.a     裁剪,删除掉静态库文件 

$ arm-none-linux-gnueabi-strip  lib   裁剪掉调试信息   not recognized  有些库是不能strip的 忽略掉

$ sudo rm  lib/libstdc++*   删除不需要的库,确保所有库大小不超过4M 

$ du -mh lib    查看lib库的大小  可能 显示3.4M lib   (这里确保小于 8M)  

$ cp /nfs/rootfs/etc   -rf   .      拷入成熟的参考配置

$sudo mknod   dev/console  c  5  1      必须要有  console设备节点

 

$ cd /nfs

$ mkdir rootfs

$ cp  _install/*   /nfs/rootfs   –a                       

$ chmod 777 /nfs/rootfs/          

 

板子上电启动,观察串口输出。NFS能挂载成功表示根文件系统 内容基本正确

 

 

文章来源: blog.csdn.net,作者:hinzer,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/feit2417/article/details/83901311

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。