Linux2.6の古いバージョンを実行しているある種のホームエンターテインメントシステムがあります。 SATA> USBブリッジシステムといくつかのUSBポートがあります。私がやりたいのは、ネットワーク接続ストレージとして使用することです。
幸いなことに、オープンでアクセス可能なtelnetサーバーが実行されています。
問題は、カーネルもinitシステムもどこにあるのかわからないことです。ボックスはBusyBoxを実行しています。
ボードにはフラッシュチップが1つあります。しかし、ブロック内のsysfsの下に/複数のフラッシュチップが表示されます:
/sys/block # ls
...
mtdblock0 mtdblock2 mtdblock4
mtdblock1 mtdblock3
なぜそれなのか?
次に、それらの/dev
エントリを作成して、それぞれをUSBフラッシュドライブにダンプして分析できるようにします。
だから私はこれをしました:
/sys/block # cat /sys/block/mtdblock0/dev
31:0
そして..
mknod /dev/mtdblock0 c 31 0
これは0で終了し、デバイスをテストするために生データを読み取ろうとします。
/sys/block # cat /dev/mtdblock0
cat: /dev/mtdblock0: No such device or address
何故ですか? ddも同じことを言っています。 /proc/devices
にエントリがあります。
/sys/block # cat /proc/devices
Character devices:
1 mem
{ ... }
Block devices:
1 ramdisk
7 loop
8 sd
31 mtdblock
{ ... }
mknod/dev/mtdblock0 c 31 0
キャラクターデバイスを作成しました。ブロックデバイスが必要でした。したがって、b
コマンドではc
の代わりにmknod
を使用してください。
ブロックデバイス番号と文字デバイス番号は独立しています。ブロックデバイス31:0は、キャラクターデバイス31:0とは無関係です。カーネルにはキャラクターデバイス31:0のドライバーがないため、「そのようなデバイスまたはアドレスはありません」というエラーが発生します。