根檔案系統製作

來源:互聯網
上載者:User

1.下載最新版本busybox(busybox-1.14.3.tar.bz2)
2.交叉編譯busybox
解壓進入其目錄,執行:
#make ARCH=arm-linux CROSS_COMPLIE=arm-linux-  menuconfig
選擇編譯成動態庫載入模式(Build shared libbusybox)
CROSS_COMPLIER prefix(arm-linux)
ADDitional CFLAGS再填入-march=armv6
指定安裝目錄(./install)BusyBox installation  prefix
後面用到
PS1='[/u@/h/W]/$'
分別表示的是目前使用者、主機名稱和目前的目錄
busybox settings->busybox library tuning->username completion、fancy shell prompts選上

#make
#make install

3.建立檔案系統目錄
#mkdir rootfs
#cd rootfs
#mkdir  dev etc lib proc sys usr mnt tmp var
#cp (**/busybox/)install ./
#cp -rf (**/busybox/)examples/bootfloppy/etc/ ./
#sudo mknod -m 666 dev/console c 5 1
#sudo mknod -m 666 dev/ttyS0 c 4 64
#sudo mknod -m 666 dev/ttyS1 c 4 65
#sudo mknod -m 666 dev/null c 1 3
#cp /usr/local/arm/4.2.2-eabi/lib/ld* lib/
#cp /usr/local/arm/4.2.2-eabi/lib/libc-2.6.1.* lib/
#cp /usr/local/arm/4.2.2-eabi/lib/libc.so* lib/
#cp /usr/local/arm/4.2.2-eabi/lib/libm.so.6 lib/
#cp /usr/local/arm/4.2.2-eabi/lib/libm-2.6.1.so lib/
#cp /usr/local/arm/4.2.2-eabi/lib/libcrypt* lib/
#cp /usr/local/arm/4.2.2-eabi/usr/lib/libdl.so  lib/
#cp /usr/local/arm/4.2.2-eabi/usr/lib/libpthread.so  lib/
#cp /usr/local/arm/4.2.2-eabi/usr/lib/libz.so* lib/
#cp /usr/local/arm/4.2.2-eabi/usr/lib/libbz2.so  lib/
#cp /usr/local/arm/4.2.2-eabi/usr/arm-unknown-linux-gnueabi/lib/libstdc++.so* lib/
#cd lib
#然後把同樣大小的檔案刪除一個,另一個用ln -s連結出來
類似這樣
rm libstdc++.so libstdc++.so.6
ln -s libstdc++.so.6.0.9 libstdc++.so
ln -s libstdc++.so.6.0.9 libstdc++.so.6

strip一下檔案系統:
#arm-linux-strip  bin/busybox
#arm-linux-strip  lib/*

udev配置
1、wget http://www.us.kernel.org/pub/linux/utils/kernel/hotplug/udev-100.tar.bz2
2、tar xjf udev-100.tar.bz2
3、cd udev-100 編輯Makefile,尋找CROSS_COMPILE,修改CROSS_COMPILE ?= arm-linux-
4、make
在嵌入式系統裡,我們只需要udevd和udevadm就能使udev工作得很好
把產生的udevadm,udevd複製到sbin目錄下,然後做下連結
ln -s udevadm udevcontrol
ln -s udevadm udevsettle
ln -s udevadm udevtrigger

修改etc下設定檔
etc/udev/udev.conf
內容可以為空白
etc/udev/rules.d目錄添加具體規則
-------------------------------------
更改為使用busybox內建的mdev,上面的藍色部分udev可以不用了
etc/mdev.conf
填入自己的mdev rules
etc/fstab
proc    /proc   proc defaults 0 0
none    /tmp    ramfs   defaults 0 0
none    /var    ramfs   defaults 0 0
mdev    /dev    ramfs   defaults 0 0
sysfs   /sys    sysfs   defaults 0 0
--------------------------------------------
etc/inittab
::sysinit:/etc/init.d/rcS
::respawn:-/bin/sh
::ctrlaltdel:/bin/umount -a -r
::shutdown:/bin umount -a -r
::shutdown:/sbin/swapoff -a
--------------------------------------------
etc/profile
# /etc/profile: system-wide .profile file for the Bourne shells

echo
echo -n "Processing /etc/profile... "
# Set search library path
export LD_LIBRARY_PATH=/lib:/usr/lib

# set user path
export PATH=/bin:/sbin:/usr/bin:/usr/sbin

#Set PS1
PS1='[/u@/h/W]/$'
#export PS1="//e[05;32m[$USER@//w//a]//$//e[00;34m"
PATH=$PATH
echo "Set local script:/usr/etc/rc.local...."
source /usr/etc/rc.local
echo "Done"
echo
--------------------------------------------
etc/hostname
arm-linux
--------------------------------------------
etc/init.d/rcS
#! /bin/sh

/bin/mount -a

# devpts doesn't mount since mounting /dev wipes /dev/pts
mkdir /dev/pts
date
echo "S: devpts"
mount -t devpts none /dev/pts

# Udev seems to throw a warning if /dev/null is not found
mknod /dev/null c 1 3

# Set hostname if the corresponding file is found
if test -e /etc/hostname; then
    hostname -F /etc/hostname
fi

date

echo "S: udev"
if test -x /sbin/udevd ;
then
  echo "Starting udev..." >> /boot.log
  /sbin/udevd --daemon
  echo "Trigger initial udev events..." >> /boot.log
  /sbin/udevtrigger

  echo "Waiting for the udevd to settle..." >> /boot.log
  /sbin/udevsettle
fi
--------------------------------------
更改為使用mdev,上面藍色部分可以不要了

/bin/echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.