3.10 Linux カーネルを搭載したデバイスで、busybox シェル (initramfs) まで起動しています。
SD カードで busybox ファイルシステム イメージを抽出し、ルートを root=/dev/ram から /dev/mmcblck0p1 に変更すると、まだシェルが起動するため、busybox は正常に動作しますが、他の FS を使用しようとするとカーネルがクラッシュする...
debootstrap ( https://help.ubuntu.com/community/DebootstrapChroot ) を使用して rootfs を生成し、新しい rootfs を SD カードに抽出しようとしています。「/sbin/init の実行に失敗しました」というエラーが表示され、ファイルが存在するかどうかを確認し、アクセス許可も確認しましたが、問題ないようです。
何が問題なのですか?
WRT rootfs 私は特に初心者です。SD カード上の任意の FS をマウントできると想定していましたが、そうではないようです。/sbin/init が行うことは、デバイスに依存していると思いますか?
私は何をしようとしていますか?---> いくつかのパッケージとライブラリ (gcc python など) を含む rootfs を作成する必要があります。buildroot も試しましたが、ターゲットで gcc を取得できませんでした。buildroot 内の /bin/ に gcc を入れることはできませんか?
- アップデート -
SDカードをext4形式にフォーマットしています.fdiskの出力は次のとおりです
Disk /dev/sdb1: 7945 MB, 7945588224 bytes
255 heads, 63 sectors/track, 965 cylinders, total 15518727 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc2aa4908
Device Boot Start End Blocks Id System
以下は、SDカードにファイルシステムがある間のカーネルログです。メモリ カード ドライバは正常に動作することを確認しました。SD カードに busybox ファイルシステムがある場合、すべて正常に動作します。他のファイルシステムを使用している場合、次のようになります...
6EXT4-fs (mmcblk0p1): mounted filesystem with ordered data mode. Opts: (null)
6VFS: Mounted root (ext4 filesystem) on device 179:1.
6Freeing unused kernel memory: 84K (c0f00000 - c0f15000)
3request_module: runaway loop modprobe binfmt-464c
4kworker/u2:4 (145) used greatest stack depth: 6132 bytes left
3Failed to execute /sbin/init. Attempting defaults...
3request_module: runaway loop modprobe binfmt-464c
3request_module: runaway loop modprobe binfmt-464c
0Kernel panic - not syncing: No init found. Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
チェックすると、適切な権限を持つ /sbin/init もあります。