私はフォローアップをしています。このガイドUbuntuに仮想ARM環境をインストールします。
- linaroとqemuパッケージをインストールしました。
sudo add-apt-repository ppa:linaro-maintainers/tools
sudo apt-get install linaro-image-tools qemu-user-static qemu-system
- クロスコンパイラ:
sudo apt-get install gcc-arm-linux-gnueabi g++-arm-linux-gnueabi
- Linaroバージョンとハードウェアパッケージのダウンロード:
wget http://releases.linaro.org/platform/linaro-n/nano/alpha-3/linaro-natty-nano-tar-20110302-0.tar.gz
wget http://releases.linaro.org/platform/linaro-n/hwpacks/alpha-3/hwpack_linaro-vexpress_20110302-0_armel_supported.tar.gz
- 仮想マシンのディスクイメージを作成します。
linaro-media-create --image_file vexpress.img --dev vexpress \
--binary linaro-natty-nano-tar-20110302-0.tar.gz \
--hwpack hwpack_linaro-vexpress_20110302-0_armel_supported.tar.gz
私は失敗しましたカーネルとinitrdの抽出。指示には、以下を実行するように示されています。
sudo mount -o loop,offset="$(file vexpress.img | awk 'BEGIN { RS=";"; } /partition 2/ { print $7*512; }')" \
-t auto vexpress.img /mnt/tmp
しかし、エラーが発生します。
インストール:インストールオプションを確認できません。
ガイドのメモには次の内容があります。
ファイルの実際の名前はビルドによって若干異なる場合があります。
それでは、Ubuntuに合わせて最後の行を修正する方法を知っている人はいますか?
答え1
sudo mount -o loop,offset="$(file vexpress.img | awk 'BEGIN { RS=";"; } \
/partition 2/ { print $7*512; }')" \
-t auto vexpress.img /mnt/tmp
上記のコマンドが実行する作業は実際には非常に簡単です。画像のパーティション2の開始セクタを見つけ、vexpress.img
512を乗算し、結果をループ装置としてオフセットとしてマウントする。
このmount
コマンドはオフセット値を受け入れます。バイト。各セクタには512バイトがあるため、開始セクタオフセットに512を掛けると開始オフセット(バイト)が得られます。
これを行う別の方法は次のとおりです。 (オリジナルのRaspbian画像を例として使用しています)
オフセットを探す:
$ fdisk -lu 2016-09-23-raspbian-jessie-lite.img Disk 2016-09-23-raspbian-jessie-lite.img: 1.3 GiB, 1389363200 bytes, 2713600 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 Disklabel type: dos Disk identifier: 0x5a7089a1 Device Boot Start End Sectors Size Id Type 2016-09-23-raspbian-jessie-lite.img1 8192 137215 129024 63M c W95 FAT32 (LBA) 2016-09-23-raspbian-jessie-lite.img2 137216 2713599 2576384 1.2G 83 Linux
パーティション2の開始オフセットはです137216
。あなたと同じように、vexpress.img
パーティション2は私たちが興味を持っているルートパーティションです。
簡単な数学:
$ perl -e "print 137216*512" 70254592
インストールしてください:
sudo mount -o loop,offset=70254592 vexpress.img /mnt/tmp