先頭から4バイトが 0x00, 0x00, 0x41, 0x82 でなければ
2.4.17 と互換モードで、
'OKOK' が書かれていなければカーネルへのパラメータとして
root=/dev/ram0 を追加して、/dev/mtd2 を見る処理終り。
先頭から4バイトが 0x00, 0x00, 0x41, 0x82 であれば
/dev/mtd2 の先頭から16バイト目から、
bootparm=root=/dev/ram0
bootparm=root=/dev/hda1
bootparm=root=/dev/md0
という3種のカーネルへのパラメータが書ける。
何回も書けるようになっているが、何か意味あるの?
というわけで、
従来の /dev/fl3 は
視点を変えると、
従来は、カーネル内で /dev/fl3 を見て root を切り替えていたが、
1.41 では、ローダが /dev/mtd2 をみてカーネルへのパラメータを
切り替えている。すっきりしたといえばすっきりした。
あと、興味深いのは /dev/mtd2 の先頭から4バイト。
マジックナンバなので単なる「きめ」でしかないのだが、
0x00, 0x00, 0x41, 0x82(リトルエンディアンで 0x82410000)を見ると
CPU の型番を想像してしまうのは考えすぎ?
単に各ニブルに1ビット立てただけのデータ?
← HD-HGLAN 1.4 のフラッシュメモリ(3)どうしてマイナデバイス番号が偶数しかないの? |
ハックの記録 LinkStation/玄箱 をハックしよう |
→ firminfo |