unpack:
# dd if=uramdisk.img of=ramdisk.img.gz skip=64 bs=1
# gunzip ramdisk.img.gz
# mkdir ramdisk; cd ramdisk
# cpio -i < ../ramdisk.img
repack:
# find . | cpio --create --format='newc' | gzip > ../ramdisk.img
# mkimage -A arm -O linux -T ramdisk -C none -a LOADADDRESS -n "Label you want" -d ./ramdisk.img ./uramdisk.img
如果出現:
mount: only root can use "--types" option
repack步驟改為:
$ sudo chown -R root:root ramdisk
$ sudo find . | sudo cpio --create --format='newc' | sudo gzip > ../ramdisk.img
$ sudo mkimage -A arm -O linux -T ramdisk -C gzip -n "Label you want" -d ./ramdisk.img ./uramdisk.img
====================================================================
./mkimage -A arch -O os -T type -C comp -a addr -e ep -n name -d data_file[:data_file...] image
-A ==> set architecture to 'arch'
-O ==> set operating system to 'os'
-T ==> set image type to 'type'
-C ==> set compression type 'comp'
-a ==> set load address to 'addr' (hex)
-e ==> set entry point to 'ep' (hex)
-n ==> set image name to 'name'
-d ==> use image data from 'datafile'
-x ==> set XIP (execute in place)
參數說明:
-A 指定CPU的體系結構:
參數表示的CPU體系結構
alpha Alpha
arm A RM
x86 Intel x86
ia64 IA64
mips MIPS
mips64 MIPS 64 Bit
ppc PowerPC
s390 IBM S390
sh SuperH
sparc SPARC
sparc64 SPARC 64 Bit
m68k MC68000
-O 指定操作系統類型,可以取以下值:
openbsd、netbsd、freebsd、4_4bsd、linux、svr4、esix、solaris、irix、sco、dell、ncr、lynxos、vxworks、psos、qnx、u-boot、rtems、artos
-T 指定映像類型,可以取以下值:
standalone、kernel、ramdisk、multi、firmware、script、filesystem
-C 指定映像壓縮方式,可以取以下值:
none 不壓縮
gzip 用gzip的壓縮方式
bzip2 用bzip2的壓縮方式
-a 指定映像在記憶體中的載入地址,映像下載到記憶體時,要按照用mkimage製作映像時,這個參數所指定的地址值來下載
-e 指定映像運行的入口點地址
-n 指定映像檔名
-d 指定製作映像的源文件
其中指定參數 "-a 0x30008000 -e 0x30008000" 指定值不會隨軟體版本有所更改,這個值是根據CPU的記憶體配置而指定的。
====================================================================
cpio指令
指令選項:
i:使用copy-in模式,還原歸檔文件或列歸檔文件中的文件列表
o:使用copy-out模式,建立歸檔文件
p:使用copy-pass模式,將文件直接複制到目的目錄
c:使用老式的ascii歸檔格式。如果需要跟平台使用,就需要使用
d:倉建需要的目錄,如果需要文件不處於同一個目錄中,應該使用此選項
v:顯示處理過程
t:顯示歸檔文件中的文件列表
m:保持文件的時間標記
H:使用指定的格式歸檔文件
sample:
find /bin -print | cpio -o > bin.bak
find -print | cpio -o > ../backup.cpio
find -print | cpio -ov > ../backup.cpio
find -print | cpio -ov | gzip > ../backup.cpio.gz
find -print | cpio -ov | bzip2 > ../backup.cpio.bz2
cpio -t < backup.cpio
cpio -tv < backup.cpio
cpio -tv "*.c" < backup.cpio
cpio -i < ../backup.cpio
cpio -iv < ../backup.cpio
以上2個,使用選項i將文件恢複到當前的目錄
cpio -idv < ../backup.cpio
文件恢複時保持目錄結構
cpio -imdv < ../backup.cpio
cpio -idv "*.c" < ../backup.cpio
refer :
https://community.nxp.com/thread/300430
http://canred.blogspot.tw/2013/04/cpio.html
http://flykof.pixnet.net/blog/post/22988153-zimage%E8%BD%89uimage%E4%BD%BF%E7%94%A8mkimage
沒有留言:
張貼留言