目录

创建/etc/init.d/rcS 文件

创建/etc/fstab 文件

创建/etc/inittab 文件


创建/etc/init.d/rcS 文件

通过nfs加载根文件系统成功后,在串口终端上有一个提示,不能打开'/etc/init.d/rcS'文件

因为现在还没有创建这个文件呢,所以系统提示不能打开。

现在就要手动去创建这个文件

在rootfs文件夹中创建etc文件夹,然后在etc文件夹里面继续创建init.d文件夹,然后在init.d文件夹中常见 rcS文件

在 rcS 中输入以下内容

 #!/bin/shPATH=/sbin:/bin:/usr/sbin:/usr/bin:$PATHLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib:/usr/libexport PATH LD_LIBRARY_PATHmount -amkdir /dev/ptsmount -t devpts devpts /dev/ptsecho /sbin/mdev > /proc/sys/kernel/hotplugmdev -s

第 1 行,表示这是一个 shell 脚本。

第 3 行,PATH 环境变量保存着可执行文件可能存在的目录,这样我们在执行一些命令或

者可执行文件的时候就不会提示找不到文件这样的错误。

第 4 行,LD_LIBRARY_PATH 环境变量保存着库文件所在的目录。

第 5 行,使用 export 来导出上面这些环境变量,相当于声明一些“全局变量”。

第 7 行,使用 mount 命令来挂载所有的文件系统,这些文件系统由文件/etc/fstab 来指定,

所以我们一会还要创建/etc/fstab 文件。

第 8 和 9 行,创建目录/dev/pts,然后将 devpts 挂载到/dev/pts 目录中。

第 11 和 12 行,使用 mdev 来管理热插拔设备,通过这两行,Linux 内核就可以在/dev 目录

下自动创建设备节点。关于 mdev 的详细内容可以参考 busybox 中的 docs/mdev.txt 文档。

下来要给rcS文件设置可执行权限

下面就可以重启一次开发板,看看刚才提示的信息是否还存在。

在串口终端中输入 reboot 命令,重启开发板

重启之后可以看到已经不提示不能打开'/etc/init.d/rcS'文件了,但是由有了新的提示 不能读取到 /etc/fstab 文件

创建/etc/fstab 文件

接下来就要继续创建/etc/fstab文件

进入etc目录中新建fstab文件

在fstab文件中输入以下内容

#<file system> <mount point>  <type>   <options>  <dump>  <pass>

proc         /proc           proc    defaults    0       0

tmpfs        /tmp            tmpfs   defaults    0       0

sysfs         /sys            sysfs   defaults    0       0

保存退出,然后重启开发板。

重启后这时候就没有文件打开失败的提示了。

创建/etc/inittab 文件

进入到etc文件夹中,然后新建inittab文件。

inittab 的详细内容可以参考 busybox 下的文件 examples/inittab。init 程序会读取/etc/inittab这个文件,inittab 由若干条指令组成。每条指令的结构都是一样的,由以“:”分隔的 4 个段组

成,格式如下:

<id>:<runlevels>:<action>:<process>

<id>:每个指令的标识符,不能重复。但是对于 busybox 的 init 来说,<id>有着特殊意义。对于 busybox 而言<id>用来指定启动进程的控制 tty,一般我们将串口或者 LCD 屏幕设置为控制 tty。

<runlevels> :对 busybox 来说此项完全没用,所以空着。

<action>:动作,用于指定<process>可能用到的动作。

<process> :具体的动作,比如程序、脚本或命令等。

在inittab文件中输入以下内容:

   #etc/inittab::sysinit:/etc/init.d/rcSconsole::askfirst:-/bin/sh::restart:/sbin/init::ctrlaltdel:/sbin/reboot::shutdown:/bin/umount -a -r::shutdown:/sbin/swapoff -a

第 2 行,系统启动以后运行/etc/init.d/rcS 这个脚本文件。

第 3 行,将 console 作为控制台终端,也就是 ttymxc0。

第 4 行,重启的话运行/sbin/init。

第 5 行,按下 ctrl+alt+del 组合键的话就运行/sbin/reboot,看来 ctrl+alt+del 组合键用于重

启系统。

第 6 行,关机的时候执行/bin/umount,也就是卸载各个文件系统。

第 7 行,关机的时候执行/sbin/swapoff,也就是关闭交换分区

输入完成后保存退出,然后重启开发板。

可以看到系统已经成功的挂载了根文件系统。

上一篇:Linux学习笔记---使用BusyBox创建根文件系统(二)  下一篇:Linux学习笔记---使用BusyBox创建根文件系统(四)

Linux学习笔记---使用BusyBox创建根文件系统(三)相关推荐

  1. Linux学习笔记---使用BusyBox创建根文件系统(四)

    目录 软件运行测试 设置程序为后台运行 设置开机自启动 外网连接测试 软件运行测试 进入到rootfs文件夹中新建一个drivers文件夹,用于存放编写的软件. 新建hello.c文件 输入以下代码 ...

  2. Linux学习笔记---使用BusyBox创建根文件系统(二)

    目录 向 rootfs 的"/lib "目录添加库文件 向 rootfs 的usr/lib 目录添加库文件 创建其他文件夹 根文件系统初步测试 向 rootfs 的"/l ...

  3. Linux学习笔记---使用BusyBox创建根文件系统(一)

    目录 下载BusyBox 修改makefile 添加中文支持 编译busybox 下载BusyBox BusyBox 可以在其官网下载到,官网地址为:https://busybox.net 打开官网后 ...

  4. I.MX6Q(TQIMX6Q/TQE9)学习笔记——新版BSP之根文件系统挂载

    经过前面的移植,新版BSP的uboot和kernel已经能够在tqimx6q开发板上运行了,接下来我们来挂载文件系统. DTB整理 前面的文章中提到,新版BSP的DTB管理感觉不是太好,在之前移植的B ...

  5. 移植Linux-3.4.2过程学习笔记2——无法挂载根文件系统

    此时内核已经可以打印串口信息了,目前的问题是无法挂载根文件系统. 搜索分区名,查看是在哪里定义的: grep "\"Boot\ Agent\"" * -nR 得 ...

  6. Linux学习笔记:mkdir创建文件夹

    文件夹,即目录,在linux中使用mkdir创建. 语法:mkdir dir_name 通过 mkdir 命令可以实现在指定位置创建以 dir_name(指定的文件名)命名的文件夹或目录.要创建文件夹 ...

  7. Linux学习笔记-调用pthead_create创建线程

    调用pthead_create pthread_t handle; pthread_create(&handle, // 线程句柄 NULL, // 忽略 Thread_Main, // 线程 ...

  8. linux给数据库重命名,Linux学习笔记:mv移动或文件重命名

    mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录. 语法:mv 源文件 目标文件 视mv命令中 ...

  9. Linux学习笔记---记一次rootfs根文件系统下载时掉进的大坑

    俗话说要想技术好,踩坑少不了.技术的好坏和踩坑的多少基本是成正比的.这次就大大的提升了一次技术(大大的踩了一次坑).废话少说,直奔主题. 最近入手了一块正点原子的IMX6ULL开发板,跟着视频教程和开 ...

最新文章

  1. 诚意租房网blog2
  2. SQLite中的内连接简化技巧
  3. 点击链接微信html代码怎么写,html5微信分享代码怎么写呢?
  4. linux常见问题及其解决方案集锦
  5. 深度学习在CTR预估中的应用 文献收藏
  6. [转载] [转载] python中的Numpy库入门
  7. Leetcode 5
  8. 概率论基础——组合分析
  9. 使用java代码根据三角形的三个顶点坐标计算出三角形的中心点(重心)
  10. C#使用BouncyCastle来实现私钥加密,公钥解密的方法
  11. Warning: To load an ES module, set “type“: “module“ in the package.json or use the .mjs extensi
  12. github whs_从iPhone或iPod Touch获得WHS的基本访问权限,而无需安装应用程序
  13. matlab学习—分段函数计算
  14. SpringSecurity+JWT+OAuth2
  15. 微信传文件又慢又限制大小?试试这3个免费在线传文件工具!
  16. 单片机两大延时方法总结
  17. 守护云原生安全,青藤让浙江移动“心里更有底”
  18. MySQL 索引、事务与存储引擎
  19. linux 无线网卡 监听模式,查看无线网卡是否支持监听模式
  20. 10-Secret安全存储

热门文章

  1. 用mel编写自定义节点的属性编辑器界面
  2. Android 图片缩略图显示
  3. Cocoa编程开发者手册
  4. shell 脚本学习及troubleshooting
  5. CPU使用时间问题测试
  6. Adjacent Bit Counts(01组合数)
  7. python 学习总结----正则表达式
  8. 【学习笔记】【C语言】进制
  9. LoNg wAy tO Go
  10. 【python】Python的基本数据类型之运算符