修改中文化菜单,以及修改开机画面都需要将IMG解包unpack,修改后重新
打包repack。解包、打包都需要Dreambox的linux环境,当时你也可以自己
配置一个支持squashFS的linux来搞。
DM500S的存储空间十分有限,故需要mount一个NFS磁盘来操作。为什么一定
要NFS磁盘?windows机器共享出来的CIFS磁盘不行吗?不行!只有NFS磁盘
上才可以执行解包、打包工具,而且解包后的IMG里,有很多是符号连接文
件,也只有NFS磁盘才能支持。mount NFS及swap的方法见satfan大侠的文
章,已经写得很详细:
代码:
root@dreambox:/var/mnt/nfs> df -h
Filesystem Size Used Available Use% Mounted on
/dev/root 3.8M 3.8M 0 100% /
/dev/mtdblock/1 2.8M 444.0k 2.3M 16% /var
192.168.1.8://home/nfs 9.2G 516.4M 8.2G
6% /var/mnt/nfs
root@dreambox:/var/mnt/nfs> dd if=/dev/zero of=/var/mnt/nfs/ram
bs=1M count=128
128+0 records in
128+0 records out
root@dreambox:/var/mnt/nfs> mkswap -c /var/mnt/nfs/ram
Setting up swapspace version 1, size = 134213632 bytes
root@dreambox:/var/mnt/nfs> losetup /dev/loop/0 /var/mnt/nfs/ram
root@dreambox:/var/mnt/nfs> free
total used free shared
buffers
Mem: 30116 29612 504
0 760
Swap: 131064 0 131064
Total: 161180 29612 131568
root@dreambox:/var/mnt/nfs> cat /proc/meminfo
MemTotal: 30116 kB
MemFree: 504 kB
Buffers: 760 kB
Cached: 20012 kB
SwapCached: 0 kB
Active: 9408 kB
Inactive: 16576 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 30116 kB
LowFree: 504 kB
SwapTotal: 131064 kB
SwapFree: 131064 kB
Dirty: 4 kB
Writeback: 0 kB
Mapped: 9220 kB
Slab: 2176 kB
Committed_AS: 44240 kB
PageTables: 168 kB
VmallocTotal: 475136 kB
VmallocUsed: 28748 kB
VmallocChunk: 443900 kB
root@dreambox:/var/mnt/nfs>
解包、打包工具见附件压缩包
解压缩后,和原版IMG文件一起放到NFS磁盘下,一共有五个文件:
- mkcramfs
- mkdreamboxfs
- mksquashfs
- uncramfs
- undreamboxfs
为这几个文件增加执行权限:
为这几个文件增加执行权限:
代码:
root@dreambox:/var/mnt/nfs> chmod +x *
OK,接下来就可以做解包及打包工夫了。
卫视迷将原版的pli IMG解包到img1这个目录下:
代码:
root@dreambox:/var/mnt/nfs> ./undreamboxfs pli-Helenite-dm500-
20070417-2696.img ./img1
9928+0 records in
9928+0 records out
Done!
root@dreambox:/var/mnt/nfs>
将完成修改的IMG重新打包,这个步骤挺费时间的:
代码:
root@dreambox:/var/mnt/nfs> ./mkdreamboxfs img1 new.img
Directory data: 164 bytes
Everything: 1000 kilobytes
Super block: 76 bytes
CRC: 72538600
155648+0 records in
155648+0 records out
Ready to make the squashFS part! This can take 1 or 2 minutes!
Creating big endian 2.1 filesystem on tmp_mkdreambox_3, block
size 65536.
Big endian filesystem, data block size 65536, compressed data,
compressed metadata, compressed fragments
Filesystem size 4963.29 Kbytes (4.85 Mbytes)
35.86% of uncompressed filesystem size (13840.55 Kbytes)
Inode table size 6016 bytes (5.88 Kbytes)
24.73% of uncompressed inode table size (24324 bytes)
Directory table size 7914 bytes (7.73 Kbytes)
50.69% of uncompressed directory table size (15614 bytes)
Number of duplicate files found 49
Number of inodes 1086
Number of files 788
Number of fragments 57
Number of symbolic links 199
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 99
Number of uids 1
root (0)
Number of gids 0
Done!
root@dreambox:/var/mnt/nfs>