Linux学习笔记---使用BusyBox创建根文件系统(二)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Linux学习笔记---使用BusyBox创建根文件系统(二),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3258字,纯文字阅读大概需要5分钟。
内容图文
![Linux学习笔记---使用BusyBox创建根文件系统(二)](/upload/InfoBanner/zyjiaocheng/923/1c34d61a5ac84a7ca9ea4870ad1b2162.jpg)
目录
向 rootfs 的“/lib ”目录添加库文件
接下来就可以向根文件系统添加 lib库了
在Ubuntu系统中在rootfs文件夹中新建一个lib文件夹
接下来进入到gcc编译器中libc/lib文件夹中
路径为 /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/lib
然后将将此目录下所有的*so*和.a文件都拷贝到 rootfs/lib 目录中
使用命令 cp *so* *.a /home/hxydj/linux/nfs/rootfs/lib -d
拷贝完成后可以在lib文件夹中查看一下
后面的“-d”表示拷贝符号链接,这里有个比较特殊的库文件:ld-linux-armhf.so.3,此库文件也是个符号链接,相当于 Windows 下的快捷方式。会链接到库 ld-2.19-2014.08-1-git.so 上,输入命令“ls ld-linux-armhf.so.3 -l”查看此文件详细信息
可以看出,ld-linux-armhf.so.3 后面有个“->”,表示其是个软连接文件,链接到文件 ld-2.19-2014.08-1-git.so,因为其是一个“快捷方式”,因此大小只有 24B。但是,ld-linux-armhf.so.3 不能作为符号链接,否则的话在根文件系统中执行程序无法执行!这里要将连接的源文件拷贝过去。
先将 rootfs/lib 中的 ld-linux-armhf.so.3 文件删除掉
输入命令
rm ld-linux-armhf.so.3 删除这个文件
删除完成后可以使用ls命令查看一下是否删除成功。
接下来将gcc库中的ld-linux-armhf.so.3文件拷贝到rootfs中去,使用命令
cp ld-linux-armhf.so.3 /home/hxydj/linux/nfs/rootfs/lib
拷贝完成后可以查看一下ld-linux-armhf.so.3文件的大小
这下就可以看到这个文件已经不是连接文件了。
接下来继续从/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/lib文件夹中拷贝文件
输入命令cp *so* *.a /home/hxydj/linux/nfs/rootfs/lib -d
拷贝结束后,可以继续查看一下rootfs/lib中的文件
可以看出现在的文件多了很多。
向 rootfs 的usr/lib 目录添加库文件
在/rootfs/usr目录下创建lib文件夹
输入命令
cd /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/lib
进入到libc/usr/lib文件夹中
然后拷贝当前目录下so和.a文件
输入命令
cp *so* *.a /home/hxydj/linux/nfs/rootfs/usr/lib/ -d
拷贝完成后可以在/rootfs/usr/lib目录中查看拷贝的文件
这时根文件系统的库文件就全部添加好了,可以使用“du”命令来查看一下 rootfs/lib 和rootfs/usr/lib 这两个目录的大小,
进入到rootfs文件夹中输入命令:
du ./lib ./usr/lib/ -sh
可以查看 lib 和 usr/lib 这两个目录的大小
创建其他文件夹
还需要根文件系统中创建其他文件夹,如 dev、proc、mnt、sys、tmp 和 root 。
根文件系统初步测试
要从网络中加载根文件系统的话,需要在uboot中设置bootargs的环境变量。
先查看一下uboot中的环境变量
当前root=/dev/mmcblk1p2 是从emmc中下载根文件系统,现在需要修改这个值,让通过网络从Ubuntu系统中的nfs文件夹中下载根文件系统。
在串口控制台中输入如下命令
setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs nfsroot=192.168.1.66:/home/hxydj/linux/nfs/rootfs,proto=tcp rw ip=192.168.1.50:192.168.1.66:192.168.1.1:255.255.255.0::eth0:off'
服务器也就是Ubuntu系统的IP地址为192.168.1.66,开发板的IP地址为192.168.1.50. “proto=tcp”表示使用 TCP 协议,“rw”表示 nfs 挂载的根文件系统为可读可写。
设置完成后使用boot命令启动Linux内核。
启动成功后可以使用ls命令查看文件
上面的 nfs filesystem 就说明是从nfs启动的。
这时候可以使用命令创建一个文件,然后在Ubuntu系统中就可以看到新建的文件。
在Ubuntu系统中查看rootfs文件夹中的文件
这时候就可以看见刚才在开发板上创建的文件了。
同样在Ubuntu系统中在rootfs文件夹中创建文件,在开发板上同样可以显示。
在串口终端中查看
看了通过网络挂在根文件系统基本已经成功了。
内容总结
以上是互联网集市为您收集整理的Linux学习笔记---使用BusyBox创建根文件系统(二)全部内容,希望文章能够帮你解决Linux学习笔记---使用BusyBox创建根文件系统(二)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。