嵌入式 使用busybox制作完全属于自己的文件系统

原创 2013年12月02日 14:55:56

make ARCH=arm CROSS_COMPILE=arm-hisi100ntpl-linux-

用busybox制作文件系统

busybox-1.15.2

编译器:arm-linux-gcc 4.3.2

平台:某开发板(s3c2440)

宿主:redhat 9.0

得到源码 busybox-1.15.2.tar.bz2

在任意目录解压源码,在任意目录制作文件系统框架~!~!~!

我是在用户模式下家目录中解压的源码和制作的文件系统框架~!~!如图:

这里你能看到我是在家目录 kevin下的源码 busybox-1.15.2.tar.bz2 和制作的文件系统框架 rootfs。。

进入rootfs中你看到:

其中 linuxrc 是后期编译busybox得到的。。

好了,基本的前期任务算是完成了。

下面开始源码的编译:

#cd #vi Makefile

ARCH ?= arm 164行

CROSS_COMPILE ?= arm-linux- 190行

# make menuconfig

展示如下图:

其中的选项大部分是默认的:

这里我们只需该Busybox Setting 目录下的内容。(若需要可以根据自己的情况选配其他选项)

进入 Busybox Setting :

这里第一项保持默认(再次申明 若需要可以根据自己的情况选配)

进入第二项:(Build Options):

按照图中选择 退出配置下一项:

进入Busybox Library Tuning 选项:

其他默认 选上 vi-style line deiting commands

        Fancy shell prompts

这两项,从名字上您也能才到这两项是干什么的吧,,不明白的自己百度吧。。。。

配置完毕::退出保存。。。。

执行 #make

make完毕 接着执行 #make install

ok,,你会在busybox-1.15.2目录中看到_intall 目录。。

这个目录(_intall)中就是我们要用到的内容。。把这个目录的内容完全复制到你做的根文件系统框架中去。。在这里我的是rootfs。。

开始制作文件系统::

进入rooffs/dev目录,创建两个设备节点:

#mknod console c 5 1

#mknod null c 1 3

进入rootfs/etc目录,复制 busybox-1.15.2/example/bootfloop/etc/下的全部文件到此目录下。。

cp -r

复制宿主机下的 /etc/passwd grop shadow 到 此目录下。。

把passwd中的第一行:root:x:0:0:root:/root:/bin/bash中的bash改为ash

修改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/rcS文件:

#!/bin/sh

PATH=/bin:/sbin:/usr/bin:/usr/sbin
runlevel=S
prevlevel=N
umask 022
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 "hello kevin ...."

echo "Done"

export USER LOGNAME PS1 PATH

在此目录下新建sysconfig目录。。新建HOSTNAME文件内容自定。将来作为主机名。。

注意以上都在/etc目录操作的。。。

现在该目录

到/usr下建立share目录复制主机相应目录下的zoneinfo到此目录。。

在/etc下建立localtime 并建立软链接。。。。

ln -s /usr/share/zoneinfo/Asia/Hong_Kong /etc/localtime

改目录到/lib下,

这个很重要,因为应用程序会用到库文件。所以自己想吧。。。。。

复制编译器中的lib目录下的内容。。

这里我复制两处的内容。给出目录。

toolchian/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib

toolchian/4.3.2/arm-none-linux-gnueabi/libc/lib

不过有的不需要,我也不知道哪几个不需要所以就都复制过来了。。。

ok 大功告成用mkyaffs2image工具制作吧,,

mkyaffs2image rootfs roofs.bin

最终,烧到nandflash后文件系统虽挂载上了,但就是进步了文件系统。。呵呵。。

这里注意一下这几个文件

/etc 下的 inittab profile 和/etc/init.d/下的rcS 还有 根目录下的 linuxrc文件 等的权限为了方便都chmod 777 **

 

BusyBox制作Initramfs嵌入式Linux根文件系统

嵌入式Linux系统由linux内核与根文件系统两部分构成,两者缺一不可(无根文件系统的内核无法启动) 使用busybox构建嵌入式根文件系统目录结构,配置内核,并且使用Initramfs制作成根...
  • mcu_tian
  • mcu_tian
  • 2016年06月01日 15:44
  • 3194

用busybox制作Linux文件系统制作过程详解

关键词:ARM Linux yaffs 文件系统 移植     Linux 文件系统简介 Linux支持多种文件系统,包括ext2、ext3、vfat、ntfs、iso9660、jffs、rom...
  • hktkfly6
  • hktkfly6
  • 2014年04月10日 23:42
  • 1033

BusyBox制作根文件系统(rootfs)

定制根文件系统的方法很多,最常用的是使用BusyBox来构建。它能使用户迅速方便地建立一套相对完整、功能丰富的文件系统,其中包括大量常用的应用程序。它集成压缩了Linux的许多工具和命令。下面详细介绍...
  • happy_stars_2016
  • happy_stars_2016
  • 2016年09月22日 11:06
  • 4937

根文件系统及Busybox详解之一

根文件系统及Busybox简介 目录 1.根文件系统简介...2 2.Busybox简介...2 2.1Busybox简介...2 2.2Busybox目录结构简介...2 2.3init...
  • chenlong12580
  • chenlong12580
  • 2013年04月05日 13:55
  • 4269

AM335 busybox制作文件系统

转载自:http://www.openedv.com/forum.php?mod=viewthread&tid=65947 busybox-1.24.0制作AM335X文件系...
  • shjhuang
  • shjhuang
  • 2017年02月22日 19:56
  • 665

嵌入式 busybox制作文件系统

用Busybox创建nfs文件系统 1、解压busybox-1.19.4.tar.bz2 修改Makefilez中的ARCH和CROSS_COMPILE与本机的路径一致: CROSS_COMPILE ...
  • skdkjxy
  • skdkjxy
  • 2013年12月02日 14:55
  • 615

Busybox 登陆后如何设置是否需要用户名和密码进入文件系统

多多少少玩了几个开发板,发现一个很有意思的现象,有的在登陆文件系统时直接进入,有的则需要输入账号,有的则要输入账号和密码。 在学校学习的时候在制作根文件系统时就是按照步骤去做,大概了解了一下每个文件...
  • andylauren
  • andylauren
  • 2016年07月23日 21:11
  • 1151

busybox-1.20.2 交叉编译 并构建最小根文件系统

进入busybox-1.20.2目录执行make menuconfig
  • dean_gdp
  • dean_gdp
  • 2014年05月15日 12:09
  • 1273

JZ2440:busybox构建根文件系统

jz2440 的根文件系统
  • qqliyunpeng
  • qqliyunpeng
  • 2016年08月09日 15:38
  • 1260

利用busybox和mkfs.jffs2制作根文件系统

mkfs.jffs2: Usage: mkfs.jffs2 [OPTIONS] Make a JFFS2 file system image from an existing directory t...
  • zqj6893
  • zqj6893
  • 2014年04月17日 13:15
  • 3864
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:嵌入式 使用busybox制作完全属于自己的文件系统
举报原因:
原因补充:

(最多只允许输入30个字)