根文件系统制作与NFS挂载
一:busybox:
1、完整的操作系统=bootloader(u-boot)+kernel(zImage)+根文件系统。
2、根文件系统的核心就是 各种以及系统运行配置参数(类似于linux的cd、ls、mkdir......)。
3、根文件系统的核心文件:bin,sbin,usr,etc,lib
4、制作嵌入式根文件系统,可以利用busybox开源的工具软件,它集合了所有的命令
二:根文件系统制作
1:开发板跟的软件包理匹配的busybox工具,解压到linux中。
2:进行菜单配置:make menuconfig---------------进入解压后的目录
a)、编译器前缀
b)、配置共享库(这里就是要挂载NFS的文件夹)---我的目录/work/busybox-1.17.2/rootfs/
c)、配置安装路径(可以不修改,为了你对自己文件有清晰的分类管理,建议修改)
d)、配置模块,取消掉
然后
3、编译安装文件系统:make -j8;make install -j8 ------------------进入解压后的目录
1、安装后查看生成的文件:ls /work/busybox-1.17.2/rootfs -l
2、查看生成的busybox是否是arm架构的程序:
file /work/busybox-1.17.2/rootfs//bin/busybox
3、复制命令的动态库 -------- 进入共享的文件夹
先查看生成的busybox程序依赖哪些动态库
arm-linux-readelf -d bin/busybox | grep .so
查看编译器的安装路径 which arm-linux-gcc
复制编译器的lib文件到共享目录下 cp /opt/FriendlyARM/toolschain/4.5.1/arm-nonc-linux-gnueabi/lib/ .
4、创建其他目录 mkdir dev home proc tmp var etc/init.d mnt opt sys -p
5、创建控制台文件 mknod dev/console 5 1
注:该文件世设备文件,只能用mknod创建,不能用vim,gedit,touch。c表示字符设备,5表示主设备号,1表示此设备号
6、根据需要在etc目录下创建fstab文件
以上文件是设置linux挂载上文件系统 后 还需要挂载 的 其他文件系统
7、在etc目录下创建inittab文件
因为在linux的examples文件夹里面已经提供了一个模板,我们只需把它拷贝过来修改就能用了 cp /work/busybox-1.17.2/examples/inittab etc/
::sysinit:/etc/init.d/rcS
console::askfirst:-/bin/sh
::restart:/sbin/init
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
::shutdown:/sbin/swapoff -a
8、在etc/init.d/里面创建rcS文件
gedit etc/init.d/rcS &
内容:#!/bin/sh
mkdir /dev/shm -p
mkdir /dev/pts -p
#挂载 fstab 文件中指定的所有文件系统
mount -a
#以下是热拔插支持
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
hostname 你的名字(非中文)
9、在etc目录下创建profile文件
内容:
10、添加用户信息,因为x86里面已经有了,所以我们可直接从里面复制出来使用
cp /etc/passwd etc/
11、总结linux启动过程,以及嵌入式系统启动过程
在bootloader中 制定 各种要求 传递 给 linux内核的 参数,在开机后先mount上制定文件系统,(该文件系统主要负责启动运行的配置文件)
1)、busybox init启动后,初始化控台
2)、扫描etc/init.d文件
3)、执行系统初始化命令,还有执行rcS文件(这里面会包含制定挂载的文件系统)
4)、执行所有wait动作的命令
5)、执行所有once动作的命令
6)、执行所有终止时必须重新启动的 inittab 命令(动作类型: respawn)
7)、执行所有终止时必须重新启动但启动前必须询问用户的 inittab 命令(动作类型: askfirst)
8)、启动shell程序
9)、执行profile文件
到此根文件系统制作完成!
三:NFS 文件系统挂载
1、开启nfs服务:service nfs restart--本次有效
chkconfig iptables on
2、关闭window防火墙,linux防火墙
3、设置ip
4、开启开发板设置环境变量:
格式:root=/dev/nfs nfsroot=虚拟机 IP:虚拟机的 NFS 根文件系统路径 ip=开发板 IP:虚拟机 IP:网关:子网掩码::eth0:off init=/linuxrc console=ttySAC0 lcd=S70
setenv bootargs root=/dev/nfs nfsroot=192.168.111.251:/root/work/rootfs/ ip=192.168.111.252:192.168.111.251:192.168.111.1:255.255.255.0:edu118:eth0:off init=/linuxrc console=ttySAC0 lcd=w101(必须是同一行)
5、挂载完成
6、测试:开发板连接电脑进入共享文件下进行测试
转载于:https://www.cnblogs.com/pijiudu/p/7742121.html
根文件系统制作与NFS挂载相关推荐
- 嵌入式linux启动根文件系统,嵌入式Linux根文件系统制作和挂载
嵌入式Linux系统由三部分组成: uboot.kernel.根文件系统, 还是这张老图 这里的根文件系统可以说是包含两个部分: 一个是根,一个是文件系统 那么什么是根呢?哈哈 其实根表示的就是第一个 ...
- 根文件系统制作一制作根文件系统树
完成了u-boot移植后就是内核移植然后是根文件系统制作,这次分为这几部分书写:根文件系统树.文件系统initramfs.jaffs2.ubifs 有必要了解一些存储系统和文件系统的知识 Norfla ...
- 嵌入式Linux根文件系统制作
嵌入式Linux根文件系统制作 一.根文件系统简介 根文件系统首先是一种文件系统,该文件系统不仅具有普通文件系统的存储数据文件的功能,但是相对于普通的文件系统而言它还是内核启动时所挂载(mount)的 ...
- Linux-2.6.32.2内核在mini2440上的移植(四)---根文件系统制作(1)
移植环境(红色粗字体字为修改后内容,蓝色粗体字为特别注意内容) 1,主机环境:VMare下CentOS 5.5 ,1G内存. 2,集成开发环境:Elipse IDE 3,编译编译环境:arm-linu ...
- 嵌入式Linux内核以及根文件系统制作
内核制作 注意: 我测试的使用nandflsh中bootloader启动,sd卡bootloader启动有问题 制作嵌入式平台使用的Linux内核,方法和制作PC平台的Linux内核基本一致. 清除原 ...
- Yaffs2根文件系统制作
Yaffs2根文件系统制作 zouxy09@qq.com http://blog.csdn.net/zouxy09 环境: 交叉编译环境:4.3.3 (天嵌科技提供,存放路径/home/xiaoyi/ ...
- Linux内核移植和根文件系统制作(详细步骤精讲)
第一章移植内核 1.1 Linux内核基础知识 1.1.1 Linux版本 1.1.2 什么是标准内核 1.1.3 Linux操作系统的分类 1.1.4 linux内核的选择 1.2 Linux内核启 ...
- s5pv210 linux内核移植,简单根文件系统制作 - S5PV210 Linux3.8.3内核移植_Linux编程_Linux公社-Linux系统门户网站...
1.这里为什么选nfs文件系统呢? 在产品开发阶段,因为nfs根文件系统并不需要编译进内核,方便调试. 2.制作根文件系统需要用到BusyBox 解压进入busybox目录: root@linuxid ...
- tiny4412u-boot烧写及根文件系统制作(不进入终端问题)
http://m.blog.csdn.net/article/details?id=51400196(转) VMware12 环境:ubuntu12.4 开发板:tiny4412 首先烧写bootlo ...
最新文章
- 铜陵新松工业机器人项目_投资10亿元,茶山德威工业机器人和精密模具项目动工...
- ctypealpha php_php ctype函数中文翻译和示例
- 关于寒假和春季开学!教育部通知来了!近400所高校寒假时间已公布!
- docker部署springboot_Docker+SpringBoot快速构建和部署应用
- c++深拷贝和浅拷贝
- 452 Minimum Number of Arrows to Burst Balloons
- 《中秋书月》月圆之夜,我和德鲁克
- 去哪里学习python_Python从哪里开始学?怎么入门?
- POJ 3090 Visible Lattice Points 【欧拉函数】
- VS在win32平台与mysql链接_mysql5.5.28-win32 + qt--4.8.2-vs2008 数据库驱动编译与连接...
- fck java_FCkjava三种调用方法
- LintCode 373: Partition Array
- js中当等于最小值是让代码不执行_从浏览器多进程到JS单线程,JS运行机制最全面的一次梳理...
- WCF学习笔记(2)——独立WCF服务
- ajax中异步属性,ajax中的async属性值之同步和异步及同步和异步区别
- 在java中对字符串的一些实现处理
- lambda表达式for_each,find_if简介
- python程序员面试题精选100题_在Python程序员面试中被问的最多的10道题
- ZPCategory
- HTML——响应式布局