CRAMFS製作方法

2021-06-15 08:45:13 字數 4990 閱讀 7738

1.      編譯cramfs製作工具mkcramfs

a.       解壓cramfs-1.1.tar.bz2,產生cramfs-1.1資料夾

b.      使用終端進入cramfs-1.1資料夾,執行make,編譯cramfs製作工具

c.       編譯產生mkcramfs和cramfsck兩個工具,將這兩個工具複製到/usr/bin目錄下。

2.      編譯busybox

a.       解壓busybox-1.20.2.tar.bz2,產生busybox-1.20.2資料夾

b.      使用終端進入busybox-1.20.2資料夾

c.       修改makefile檔案中的cross_compile為相應的編譯器,如

cross_compile ?= /usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-

d.      終端中輸入make target_arch=arm編譯busybox

e.      編譯完成後輸入make install安裝busybox,安裝的目錄預設在./_install資料夾下,我們僅僅需要其中的bin,sbin,usr資料夾

3.      製作cramfs

a.       建立乙個rootfs目錄,將編譯出的busybox資料夾bin,sbin,usr複製到rootfs目錄下

b.      在rootfs目錄下建立dev,etc,home,lib,mnt,opt,proc,root,sys,tmp,var目錄

c.       在rootfs目錄下建立linuxrc檔案,內容如rootfs-2012-10-13-0003.tar.bz2下的linuxrc檔案,並修改其屬性:chmod 775 linuxrc

d.      進入rootfs/dev目錄,執行:mknod console c 5 1和mknod null c 1 3建立裝置節點.(

如使用壓縮包中的檔案系統,需要執行這一步操作)

g.       進入rootfs的上一級目錄,執行mkcramfs rootfs rootfs.cramfs製作跟檔案系統,完成後產生rootfs.cramfs檔案

a.       將cramfs燒寫到smdk開發的rootfs空間,重新啟動開發板,看到如下資訊表示根檔案系統載入成功

vfs: mounted root (cramfs filesystem) readonly.

freeing init memory: 252k

processing etc/init.d/rc.s

mount all

*************************************

rootfs by cramfs

*************************************

please press enter to activate this console.

注意:編譯核心時需要配置啟動引數:

boot options->default kernel command string:

root=/dev/mtdblock2 rootfstype=cramfs init=/linuxrc console=ttysac0,115200

附件:相關檔案內容

rootfs/linuxrc檔案

#!/bin/bash

echo "mount /etc as ramfs"

/bin/mount -n -t ramfs ramfs /etc

/bin/cp -a /mnt/etc/* /etc

echo "re-create the /etc/mtab entries"

# re-create the /etc/mtab entries

#/bin/mount -f -t cramfs -o remount,ro /dev/mtdblock/2 /

/bin/mount -t ramfs ramfs /tmp

exec /sbin/init

rootfs/etc/fstab檔案

none  /proc  proc defaults 0 0

none   /tmp   ramfs  defaults  0 0

mdev   /dev   ramfs  defaults  0 0

sysfs   /sys   sysfs  defaults  0 0

rootfs/etc/inittab檔案

# this is run first except when booting

::sysinit:/etc/init.d/rcs

# start an "askfirst" shell on the console

#::askfirst:-/bin/bash

ttysac0::askfirst:/bin/bash

# stuff to do when restarting the init process

::restart:/sbin/init

#::once:/sbin/raja.sh

#::respawn:/sbin/iom

::once:/usr/etc/rc.local

# stuff to do before rebooting

::ctrlaltdel:/sbin/reboot

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

rootfs/etc/profiel檔案

#/etc/profile: system-wide .profile file for the bourne shells

echo "processing /etc/profile"

# no-op

# set search library path 

ld_library_path=/lib:/usr/lib

export ld_library_path

# set user path

path=/bin:/sbin:/usr/bin:/usr/sbin

export path

# set ps1

#export ps1="[$user@linux ]\\$"

#echo

rootfs/etc/init.d/rcs檔案

#! /bin/bash

echo "processing etc/init.d/rc.s"

#hostname $

echo " mount all"

/bin/mount -an

/bin/mknod /dev/console c 5 1

/bin/mknod /dev/null c 1 3

/bin/mknod /dev/ttysac0 c 204 64

/bin/mknod /dev/ttysac1 c 204 65

/bin/mknod /dev/ttysac2 c 204 66

/bin/mknod /dev/ttysac3 c 204 67

/bin/mkdir /dev/pts

/bin/mkdir /dev/shm

/bin/mkdir /dev/video

/bin/mknod /dev/video/codec c 81 12

/bin/mknod /dev/video/preview c 81 13

#echo "starting mdev..."

#/bin/echo /sbin/mdev > proc/sys/kernel/hotplug

#mdev -s

#/sbin/udevd --daemon

#/sbin/udevadm  trigger

ln -s /dev/ts0 /dev/ts

rootfs/usr/etc/rc.local檔案

#!/bin/bash

./usr/etc/profile

/sbin/ifconfig lo 127.0.0.1 up

#/sbin/ifconfig eth0 192.168.2.12 netmask 255.255.255.0 up

#/sbin/inetd

#/usr/sbin/makelinks

/bin/mkdir /tmp/udisk

/bin/mkdir /tmp/sd

/bin/mkdir /tmp/photo

#source /.bashrc

#export qws_display=transformed:rot90

#/bin/cp -rf /qtopia/qtopia-free-1.7.0/elfin/* /tmp/

#cd /tmp 

#/qtopia/qtopia-free-1.7.0/bin/qpe -qws&

#/bin/apm

rootfs/usr/etc/profile檔案

display=unix:0.0

path=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin

#qws_keyboard=tty

lang=c

home=/tmp

kmod=/lib/modules/2.4.19-rmk4-pxa2

export path qtdir linuettedir qws_keyboard  lang home display kdedir kmod 

rootfs/usr/etc/profile.org檔案

#!/bin/sh

display=unix:0.0

path=/bin:/sbin:/usr/bin:/usr/sbin:/mnt

ld_library_path=/usr/home:/lib:/usr/lib:

#qws_keyboard=tty

lang=zh_cn

home=/usr/home

export path ld_library_path lang home

盆景製作方法

山水盆景是運用移天縮地 以小見大的藝術手法,根據 一峰則太華千尋,一勺則江湖萬里 的原則來造型和布局的。山水盆景以山為主,成功的石山必須是既具形態美和雄偉的山勢,又有皺 瘦 透 漏之妙。皺 就是要求石上表面有紋理,皺褶得有規律,不宜平滑 瘦 就是要求石塊稍長,頂端較寬有稜角,不宜臃腫 透 就是指石塊...

cramfs檔案製作

1 將root pams1v1.cramfs拷貝到任一目錄下 2 建立資料夾 mkdir roms mkdir tmp 3 將root pams1v1.cramfs掛載到roms目錄 mount root pams1v1.cramfs roms o loop 4 將roms目錄下的內容壓縮 tar ...

國標網線製作方法

第七代系統使用國標直通線,兩種標準都可用 rj 45聯結器的線排列有兩種方法,分別是568b和568a,我們常用 568b方式,排列見下圖 實際上在10m 100m網路中,僅僅使用12 36 這四根線,1000m網路要用所有的。兩邊使用同樣標準的線稱為直通線 可以用於七代系統 用於pc到hub普通口...