博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
嵌入式Linux驱动学习之路(八)创建最小的根文件系统
阅读量:5010 次
发布时间:2019-06-12

本文共 2451 字,大约阅读时间需要 8 分钟。

busybox

  在配置busybox,在是否选择要静态链接库时,在静态下,busybox中的工具不需要动态链接库,能够直接运行。而用户自己编写的程序如果需要动态链接库,还是依然需要有。

  (从可以下载busybox工具)

  如果是动态链接库,则busybox和用户自己编写的程序都需要动态链接库。 

  这里,因为我们以后需要使用自己编写的程序,故选择使用动态链接库。  

  busybox 要支持mdev、Tab补全功能、insmod模块安装命令、ifconfig命令等。

    Busybox Settings 

      Busybox Library Tuning 

         Tab completion

然后就是编译、安装。安装的时候一定要跟上路径,不然很有可能破坏电脑的文件系统。

修改Makefile

CROSS_COMPILE ?= arm-linux-

make

make CONFIG_PREFIX=/work/nfs_root/first_fs install

 

bootargs = noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0

构建最小文件系统。

  首先创建最基本的设备文件。(/dev/console和/dev/null)。

  在pc上查看当前电脑的设备号。

zws@z-pc:/home/jz2440/fsroot$ ls /dev/console -lcrw------- 1 root root 5, 1 10月 22 12:45 /dev/consolezws@z-pc:/home/jz2440/fsroot$ ls /dev/null -lcrw-rw-rw- 1 root root 1, 3 10月 22 12:45 /dev/null

  然后在相应的文件夹中创建对应的设备文件。

mkdir dev cd dev/sudo mknod console c 5 1sudo mknod null c 1 3

   构造inittab

mkdir etccd etc/touch inittab
console::askfirst:-/bin/sh

  构建C库  

mkdir libcp 。。。。/arm-linux/lib/*.so* ./ -D

完成最小根文件系统的构建。

使用 mkyaffs2image 制作文件系统。

将文件系统通过tftp下载到开发板板,并写入到nand Flash

tftpboot 30000000 fsroot.yaffs2nand erase rootnand write.yaffs 0x30000000 root $(filesize)

最小文件系统完成。

   支持PS命令。

mkdir sys mkdir proc mdkir etc/init.d tocuh etc/init.d/rcS

  在inittab中添加 

::sysinit:/etc/init.d/rcS

  在rcS中添加 

mount -a

  在etc下新建fstab。 添加

  #device        mount-point        type        option        dump    fsck order  proc         /proc             proc        defaults     0        0

使用udev。而mdev是udev的简化版本。

  使用mdev自动创建设备文件

  在fstab中添加

sysfs        /sys            sysfs        defaults    0        0tmpfs        /dev            tmpfs        defaults    0        0

  在rcS中添加

mkdir /dev/ptsmount -t devpts devpts /dev/ptsecho /sbin/mdev > /proc/sys/kernel/hotplugmdev -s

到此为止,一个基本的文件系统已经创建完成。

设置启动参数:

set bootargs=noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0,115200

 

 NFS网络文件系统

  在UBUNTU的/etc/exports中修改共享的目录路径Document/nfsroot.txt。

set bootargs=root=/dev/nfs rw nfsroot=
:/home/zht/rfsys nfsaddrs=
:
:192.168.1.1:255.255.255.0::eth0:off console=ttySAC0,115200

 

添加文件系统的命令工具

  我们制作的最小根文件系统只有基础的一些功能,比如当我们需要在开发板上执行格式化磁盘命令mkdosfs、磁盘分区命令fdisk 等的命令时会发现我们制作的根文件系统没有这些命令工具,因此我们需要自己添加相应的命令工具。

从http://pkgs.fedoraproject.org/repo/pkgs/dosfstools/网站上下载dosfstools-3.0.16.tar.gz文件,在PC机上进行解压让后通过make CC=arm-linux-gcc进行交叉编译得到mkdosfs文件。将mkdosfs拷贝到开发板的/usr/sbin/目录下即可。

 

  

 

转载于:https://www.cnblogs.com/ynxf/p/5987943.html

你可能感兴趣的文章
HDOJ4550 卡片游戏 随便销毁内存的代价就是wa//string类的一些用法
查看>>
css文本样式text、字体样式font
查看>>
洛谷 P1020 导弹拦截(LIS)
查看>>
python判断图片是否损坏
查看>>
MySQL服务启动:某些服务在未由其他服务或程序使用时将自动停止
查看>>
软件工程第四周作业 - 单元测试
查看>>
KNN与SVM对比&SVM与逻辑回归的对比
查看>>
php 现在拓展地址
查看>>
【Java并发编程】之十六:深入Java内存模型——happen-before规则及其对DCL的分析(含代码)...
查看>>
团队个人冲刺第三天
查看>>
unit
查看>>
2017-10-17 NOIP模拟赛2
查看>>
How to install ia32-libs in Ubuntu 14.04 LTS (Trusty Tahr)
查看>>
ACM/ICPC 之 模拟 (HNUOJ 13391-换瓶模拟)
查看>>
JavaWeb学习——JSP基础
查看>>
Eclipse tomcat server 无法添加项目
查看>>
黑寡妇黄飞鸿
查看>>
leetcode 217 Contains Duplicate 数组中是否有重复的数字
查看>>
The Ctrl & CapsLock `problem'
查看>>
MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
查看>>