解凍してファイルを編集し、再度圧縮してファームウェアファイルを修正しようとしています。しかし、私のデバイスにはsquashfsタイプが異なるため、ファイルを許可しないという問題があります(私が思ったように)。私の開発ボックスの出力は次のとおりです。
ソースファイル:
user@ubuntuVM:~$ unsquashfs -s main-fs.5_0
Reading a different endian SQUASHFS filesystem on main-fs.5_0
Found a valid big endian SQUASHFS 3:0 superblock on main-fs.5_0.
Creation or last append time Thu Aug 21 20:56:15 2008
Filesystem size 9653.75 Kbytes (9.43 Mbytes)
Block size 65536
Filesystem is not exportable via NFS
Inodes are compressed
Data is compressed
Fragments are compressed
Always_use_fragments option is not specified
Check data is not present in the filesystem
Duplicates are removed
Number of fragments 105
Number of inodes 1667
Number of uids 2
Number of gids 1
変更されたファイル:
(mksquashfs squashfs-root main-fs.test -b 64K -no-exports -no-xattrs -no-sparse -force-gid 0 -force-uid 0
rootとして使用)
user@ubuntuVM:~$ unsquashfs -s main-fs.mod
Found a valid SQUASHFS 4:0 superblock on main-fs.mod.
Creation or last append time Mon Dec 3 14:46:07 2012
Filesystem size 9654.48 Kbytes (9.43 Mbytes)
Compression gzip
Block size 65536
Filesystem is not exportable via NFS
Inodes are compressed
Data is compressed
Fragments are compressed
Always_use_fragments option is not specified
Xattrs are not stored
Duplicates are removed
Number of fragments 105
Number of inodes 1667
Number of ids 1
問題はスーパーブロックおよび/またはSQUASHFSバージョンにあるようです。私はこれが私たちにとって可能であることを知っていmksquashfs -2.0
ましたが、引数が削除され、バージョン3が必要なのであまり役に立ちません。
だから私の質問は:変更されたファイルを以前と同じように再パッケージするにはどうすればよいですか?また、変更されたファイルの状態compression: gzip
ですが、元のファイルには圧縮に関する内容はありません。たぶんこれも問題かもしれませんが、上記より多くの情報を取得する方法がわかりません。 :-(
答え1
2.6.29より前のLinuxカーネルはSquashFSバージョン4ファイルシステム(ここを読んでください)。これがデバイスが起動しない理由である可能性があります。
SquashFS v3イメージをビルドするには、以前のバージョンのパッケージが必要ですsquashfs-tools
。このバージョンを含むサポートされている最新のUbuntuバージョンは、利用可能なパッケージを含む以前のHardy 8.04バージョンです。ここ。このパッケージは最新バージョンのUbuntuにインストールできると思います。古代のHardyバージョンをインストールする前に、まず試してください。
私はUbuntuがこの非順方向および非逆方向互換アップグレードを介してアップグレードされたばかりであることに非常に驚きました。リポジトリでバージョン3とバージョン4のパッケージを見たいです。