Linux 根文件系统制作

时间:2022-09-20 21:06:59

1.创建根文件目录

mkdir rootfs(名字是随便取的)
2.创建子目录
cd rootfs
mkdir bin dev etc lib proc sbin sys usr mnt tmp var
mkdir usr/bin usr/lib usr/sbin lib/modules
3.创建设备文件
cd dev
mknod -m 666 console c 5 1
mknod -m 666 null c 1 3(两个数字之间有空格,两个数字表示设备的主次设备号,刚开始学习的时候不懂连在一起了总是不对)
4.配置busybox
busybox源代码在www.busybox.net下载
解压busybox压缩包,例如:tar -xvzf busybox-1.15.2
然后进入源码包,修改Makefile
第164行,CROSS_COMPILE=arm-linux-
第190行,ARCH=arm
然后对busybox进行配置make menuconfig,进入菜单后有几项需要修改
(1)busybox settings-->build options-->build busybox as static binary(no shared libs)选上
(2)busybox settings-->installation options-->don't use /usr 选上
(3)busybox settings-->installation options-->busybox installation prefix(编译好之后的安装路径../rootfs)
(4)busybox settings-->busybox library tuning-->username conpletion
(5)busybox settings-->busybox library tuning-->fancy shell prompts
如果不选择上面4 ,5两项,文件系统是不识别PS1这个环境变量的参数的。那么运行linux时候命令行就只显示[\u@\h \W] 不进行动态链接。
然后对busybox进行编译make
安装make install(安装其实就是进行拷贝把编译好的命令拷贝到(3)指定的路径)
5 进入etc添加文件
cd etc
拷贝busybox-1.15.2/examples/bootfloopy/etc/* 到当前目录下
cp -r ../../busybox-1.15.2/examples/bootfloopy/etc/*  ./
包括文件:fstab init.d inittab profile
拷贝 /etc/passwd  /etc/group /etc/shadow到当前目录下
cp /etc/passwd ./
cp /etc/group ./
cp /etc/shadow ./
修改iniitab文件:

# /etc/inittab

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

console::askfirst:-/bin/sh

//::once:/usr/sbin/telnetd -l /bin/login

::ctrlaltdel:/sbin/reboot

::shutdown:/bin/umount -a -r

修改fstab文件
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0
var /dev tmpfs defaults 0 0
修改init.d/rcS文件
#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin
runlevel=S
prevlevel=N
export PATH runlevel prevlevel
mount -a
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
mkdir -p /var/lock
/bin/hostname -F /etc/sysconfig/HOSTNAME
修改profile文件
# Ash profile
# vim: syntax=sh
# No core files by default
#ulimit -S -c 0 > /dev/null 2>&1
USER="`id -un`"
LOGNAME=$USER
PS1='[\u@\h \W]# '
PATH=$PATH
HOSTNAME=`/bin/hostname`
echo "Processing /etc/profile... "
echo "Done"
export USER LOGNAME PS1 PATH
在etc中建sysconfig文件夹在sysconfig文件夹中建HOSTNAME文件在里面写上用户名,此名字将在linux系统的命令行中显示
6.编译内核模块
进入内核模块的目录(例如:linux 2.6.29)
make modules ARCH =arm CROSS_COMPILE=arm-linux
7 内核模块的安装
make modules_install ARCH=arm INSTALL_MOD_PATH=/.../roofs(跟文件系统所在的目录)
这样就将我们内核编译好的内核模块拷贝到了跟文件系统中
8.根据想要做的文件系统的类型,使用不同的工具对其进行编译,然后拷进开发板
以做yaffs2为例:mkyaffs2image rootfs(文件系统名字) rootfs.bin(制作的yaffs2文件系统的名字)

Linux 根文件系统制作的更多相关文章

  1. linux根文件系统制作

    在嵌入式中移植的内核下载到开发板上,是没有办法真正的启动Linux操作系统的,会出现无法加载文件系统的错误. 那么根文件系统在系统启动中到底是什么时候挂载的呢?先将/dev/ram0挂载,而后执行/l ...

  2. 基于mini2440嵌入式Linux根文件系统制作(Initramfs和nfs两种跟文件系统)

    嵌入式系统由三部分构成: 1.bootoader---bootparameters---2.kernel 3.Root-filesysytem 一个内核可以挂载多个文件系统,但是有一个根文件系统所以叫 ...

  3. linux根文件系统制作,busybox启动流程分析

    分析 busybox-1.1.6 启动流程,并 制作一个小的根文件系统 源码百度云链接:https://pan.baidu.com/s/1tJhwctqj4VB4IpuKCA9m1g 提取码 :l10 ...

  4. linux根文件系统制作之busybox编译和系统构建【转】

    转自:http://blog.chinaunix.net/uid-29401328-id-5019660.html 介绍完相关文件后我们开始构建文件系统,涉及到的文件等到具体用到的时候再讲. 一.编译 ...

  5. 嵌入式linux根文件系统制作

    编译Busybox 从http://www.busybox.net/downloads/下载busybox工具.这里我们下载的上最新版: busybox-1.24.2.tar.bz2 解压Busybo ...

  6. 【linux】linux根文件系统制作

    欢迎转载,转载时请保留作者信息,谢谢. 邮箱:tangzhongp@163.com 博客园地址:http://www.cnblogs.com/embedded-tzp Csdn博客地址:http:// ...

  7. 嵌入式linux内核制作、根文件系统制作

    嵌入式系统构成: 主要由bootloader.kernel.以及根文件系统三部分组成. 内核制作步骤: 制作嵌入式平台使用的linux内核制作方法与pc平台上的linux内核基本一致 1.清除原有配置 ...

  8. 制作linux根文件系统

    转载地址:http://wenku.baidu.com/view/2cb1b4707fd5360cba1adb14.html 2011十一月 24 转 嵌入式根文件系统制作 (3985) (0) 转自 ...

  9. S5PV210的根文件系统制作

    一.移植BusyBox1.下载BusyBox的源代码下载地址:http://www.busybox.net/downloads/,此处下载busybox-1.20.2.tar.bz2.2.解压并进入目 ...

随机推荐

  1. jQuery的13个优点

    1.轻量级 JQuery非常轻巧,采用Dean Edwards编写的Packer压缩后,大小不到30KB,如果使用Min版并且在服务器端启用Gzip压缩后,大小只有18KB. gzip: 每天一个li ...

  2. 使用dynamic类型改进反射

    首先还是声明一下,使用场景: 1.如果编译时函数名称确定,对象类型运行时确定,那么运用dynamic是一个好主意.2.如果编译时函数名称确定,对象类型在编译时也确定,那就既不需要反射也不需要dynam ...

  3. 一段经典的node.js 数据库高并发实现

    var proxy = new EventProxy();var status = "ready";var select = function(callback){ proxy.o ...

  4. 如何使用华为软件开发云快速部署PHP网站

    华为软件开发云这个工具,从去年推出我就一直在关注,毕竟是华为最新的一款软件开发工具,最近我一直在使用华为软件开发云进行开发项目管理,它有在线编译和构建.云端在线代码检查等功能,编译省去了很多物理机器的 ...

  5. PLECS—直流电机系统2

    1.模型图 2,计算及仿真 1)计算   2)仿真 n = 1870.1 r/min (wm = 195.833 rad/s)                                     ...

  6. CF D.Mister B and Astronomers

    题意概括好麻烦, 好吧既然是英文题面那放一下题意. 题意:有 n 个观察员,第一个观察员在 0 秒开始观察星空,随后第i 个观察员会在第 i − 1 个观察员之后 ai 秒观察,第一个观察员也会在第 ...

  7. 程序员常用字体(vs2008字体修改方案)

    字体不仅是设计师手中重要的武器,对我们开发人员来说,字体的选择也有许多讲究,一个好的.适合展示代码的字体,应该具备以下要素: 等宽的字符 简洁.清晰并且规范的字符形状 支持ASCII码为128以上的扩 ...

  8. 简单去除exe自校验方式

    简单去除exe自校验方式 一.      自校验定义: 这些程序会检查自己有没有被修改,如果发现被修改的话,便会离开或进行其它动作.基本的校检方法包括 checksum, 检查大小, 检查跳转代码,等 ...

  9. python23种设计模式

      第一篇 Python与设计模式:前言 第二篇(23种设计模式) 创建类设计模式(5种) 单例模式.工厂模式.简单工厂模式.抽象工厂模式.建造者模式.原型模式 结构类设计模式(7种) 代理模式.装饰 ...

  10. 如何提高码农产量,基于ASP.NET MVC的敏捷开发框架之移动端开发随笔二

    前言 在前一篇文章中我已经做过开篇,接下来的随笔会详细讲一下我们的开发框架是如何实现的,专业的事由专业的人来讲,以后就由我们的高级码农小李英文名查尔斯和他的师父厂长(因为姓陈,酷爱摄影,我们的文艺片都 ...