Help us understand the problem. What is going on with this article?

BeagleBone BlackにDebianをインストール

More than 5 years have passed since last update.

BeagleBone BlackにはデフォルトでÅngstrom LinuxがeMMCにインストール済みですが、eMMCは寿命があるのでmicroSDカードから別のOSを起動するように設定します。
今回はDebianを選択しました。
※ Ubuntu, ArchLinuxでも同じ方針でインストールできます。

インストール

この手順ではU-Bootとルートファイルシステムをそれぞれ書き込む方法でインストールします。
(ArchLinuxをこの手順でインストールした事があるため)
※ イメージファイルを書き込む手順は下記ダウンロードページ他、色んなページで紹介されています。

使用させていただくファイル

今回はARM HF Linuxで公開されているイメージを利用させていただきました。(Debian/Ubuntuの場合)
ダウンロードページ
※ 後でwgetで取得する手順なのでココでダウンロードしておく必要はありません。

microSDカードにイメージを書き込む

以下、Mac上のUbuntu@VMWareFusionで作業しています。
※ VirtualBoxとかローカルでも大丈夫です。

microSDカードを確認

単純に接続前後で差分を確認する

接続前
~$ ls /dev/sd*
/dev/sda    /dev/sda1   /dev/sda2   /dev/sda5
接続後

"/dev/sdb" として認識された状態

~$ ls /dev/sd*
/dev/sda    /dev/sda1   /dev/sda2   /dev/sda5   /dev/sdb

書き込み先のパーティションを作成

~$ sudo fdisk /dev/sdb

パーティションはArchLinuxのインストール手順に書いてある通りに作成しました。
下記ページに日本語でほぼ同様の記載があります。
http://www.voip-info.jp/index.php/BeagleBone_Black_Asterisk

一応、入力を羅列しておきます。
※ 説明は間違っているかもしれません。

  1. o (既存のパーティションクリア)
  2. p (パーティションの確認)
  3. n (新規パーティション作成: uboot用)
  4. p (プライマリパーティションを選択)
  5. 1 (パーティション番号: 1)
  6. [enter] (パーティション開始位置 → デフォルト)
  7. +64M (パーティション終了位置 → 64MB確保)
  8. t (パーティションタイプ変更)
  9. e (W95 FAT16を選択)
  10. a (ブート可能に設定)
  11. n (新規パーティション作成: rootfs用)
  12. p (プライマリパーティションを選択)
  13. 2 (パーティション番号: 2)
  14. [enter] (パーティション開始位置 → デフォルト(1の直後))
  15. [enter] (パーティション終了位置 → デフォルト(最大))
  16. p (パーティションの確認)
  17. w (書き込み)

フォーマット

~$ sudo mkfs.vfat -F 16 /dev/sdb1
~$ sudo mkfs.ext4 /dev/sdb2

書き込み

※ ArchKinuxの場合はファイル名、tarコマンドのオプションが異なります。
cf. ArchLinuxのインストール手順

~$ mkdir boot
~$ sudo mount /dev/sdb1 boot
~$ sudo tar Jxvf uboot-bone.tar.xz -C boot
~$ mkdir root
~$ sudo mount /dev/sdb2 root
~$ sudo tar Jxvf debian-wheezy-7.2-armhf-rootfs-3.8.13-bone30.tar.xz -C root

接続解除

書き込みが終わったのでマウントを解除してmicroSDカードを抜きます。

~$ sudo umount boot root

これでインストール完了です。

起動確認

microSDカードのスロット付近にあるスイッチを押した状態で電源を入れ、押したまましばらくするとLEDが点滅したらボタンから手を離します。(ボタンを離すタイミングは未確認)
これでmicroSDカードからOSが起動するはずです。

インストール後

このままでは本体のスイッチを押しながら電源を入れないと、microSDから起動しません…
(ファームウェアを更新するとmicroSDカードを刺すだけで起動するかもしれません)

microSDカードからOSが起動したら、次のようにuEnv.txtを変更することでmicroSDカードから起動するそうです。
これは下記のページを参考にさせていただきました。
http://tomowatanabe.hatenablog.com/entry/2013/12/15/202806
(bootfileだけ設定していてハマりました…)

※ 以下はmicroSDカードで起動したOS上での操作です。

~$ sudo nano /boot/uboot/uEnv.txt
uEnv.txt
mmcpart=2
bootfile=zImage # 追加
optargs=fixrtc
uenvcmd=i2c mw 0x24 1 0x3e; kd=0; if test $mmcdev -eq 1; then mmc dev 0; if mmc rescan; then kd=1; fi; mmc dev 1; fi; setenv mmcroot /dev/mmcblk${kd}p${mmcpart} ro
loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdtaddr} ${bootdir}/dtbs/${fdtfile}
loadimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${bootdir}/${bootfile}
mmcboot=echo Booting from mmc ...; run mmcargs; bootz ${kloadaddr} - ${fdtaddr} # 追加

これで再起動後はmicroSDカードからOSが起動します。

めでたしめでたし。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away