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

Beagle Bone Black にUbuntu 14.04 LTS をインストールする

More than 3 years have passed since last update.

概要

今回使用したものとしては下記の通りです。

Beagle Bone Black 本体
Ubuntu (on Think Pad X1 carbon) Beagle Bone Black へインストールするためのOS をmicro SD へ書き込むためのマシン。母艦マシン
5V AC アダプタ Beagle Bone Black に電源を供給するためのアダプタ。USB でも代用可能。
micro SD(Transcend 32GB Class10) 今回はTranscend 32GB Class10 を使用。一部ベンダのmicro SD ではうまく動かない場合がある。
micro SD reader/writer BUFFALO の reader/writer。詳細な製品名までは不明。Linux で認識できるもの。
その他 RJ45 ケーブル、Beagle Bone Black を接続するローカルネットワーク etc
  • Beagle Bone Black
    BeagleBoneBlack_InstallUbuntu0001.png

  • Transcend 32GB Class10
    BeagleBoneBlack_InstallUbuntu0000.png

必要なファイルのダウンロード

下記ダウンロードページより、bone-uboot.tar.xz とubuntu のファイル(ubuntu-trusty-14.04-rootfs-3.14.4.1-bone-armhf.com.tar.xz) をダウンロードします。

http://www.armhf.com/download/

今回は現在の最新版 である Ubuntu Trusty 14.04 LTS をダウンロードします。

$ wget http://s3.armhf.com/dist/bone/bone-uboot.tar.xz
$ wget http://s3.armhf.com/dist/bone/ubuntu-trusty-14.04-rootfs-3.14.4.1-bone-armhf.com.tar.xz

micro SD にLinux を書き込む

micro SD の接続

作業端末にmicro SD カードを挿入し、dmesg コマンドでmicro SD のデバイス名を確認します。

$ dmesg
.........
[ 1478.310048] ---[ end trace 6084bf91cd897474 ]---
[ 1487.007463] sd 1:0:0:0: [sdb] 60367872 512-byte logical blocks: (30.9 GB/28.7 GiB)
.........

出力結果より、今回自分が実施した環境では/dev/sdb でmicro SD カードが認識されていることがわかります。

micro SD にパーティションを作成する

fdisk コマンドを実行し、/dev/sdb にパーティションを作成していきます。

$ sudo fdisk /dev/sdb

Welcome to fdisk (util-linux 2.25.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): o    ## <- "o" を入力して新しいDOS ディスクを作成する
Created a new DOS disklabel with disk identifier 0x18b0c30c.

Command (m for help): p    ## <- "p" を入力して現在のパーティションを作成する
Disk /dev/sdb: 28.8 GiB, 30908350464 bytes, 60367872 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: 0x18b0c30c



Command (m for help): n    ## <- "n" を入力して新規パーティションを作成する
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p    ## <- "p" を入力してプライマリパーティションを作成する
Partition number (1-4, default 1): 1    ## <- "1" を入力して1 番目のパーティションを選択する
First sector (2048-60367871, default 2048):     ## <- return を押下してデフォルトのファーストセクタを選択する
Last sector, +sectors or +size{K,M,G,T,P} (2048-60367871, default 60367871): 4095  ## <- 4095 を入力する

Created a new partition 1 of type 'Linux' and of size 1 MiB.

Command (m for help): t    ## <- "t" を入力してパーティションのタイプを選択する
Selected partition 1
Hex code (type L to list all codes): e    ## <- "e" を入力して'W95 FAT16(LBA)' を選択する
If you have created or modified any DOS 6.x partitions, please see the fdisk documentation for additional information.
Changed type of partition 'Linux' to 'W95 FAT16 (LBA)'.

Command (m for help): a    ## <- "a" を入力してboot フラグをon にする
Selected partition 1
The bootable flag on partition 1 is enabled now.

Command (m for help): n    ## <- 新しいパーティションをもうひとつ作成する
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): p    ## <- "p" を入力してプライマリパーティションを選択する
Partition number (2-4, default 2): 2  ## <- "2" を選択し、2 番目のパーティションを選択する
First sector (4096-60367871, default 4096):   ## <- return を押して、デフォルトのファーストセクタを選択する
Last sector, +sectors or +size{K,M,G,T,P} (4096-60367871, default 60367871):   ## <- return を押して、デフォルトのラストセクタを選択する

Created a new partition 2 of type 'Linux' and of size 28.8 GiB.

Command (m for help): p    ## <- "p" を入力してパーティションを表示する
Disk /dev/sdb: 28.8 GiB, 30908350464 bytes, 60367872 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: 0x18b0c30c

Device     Boot Start      End  Sectors  Size Id Type
/dev/sdb1  *     2048     4095     2048    1M  e W95 FAT16 (LBA)
/dev/sdb2        4096 60367871 60363776 28.8G 83 Linux


Command (m for help): w    ## <- "w" を入力してパーティションの設定を書き込む
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

パーティションをフォーマットする

1 番目のパーティションをFAT、2 番目のパーティションをext4 でフォーマットします。

$ sudo mkfs.vfat /dev/sdb1
$ sudo mkfs.ext4 /dev/sdb2

ファイルをコピーする

boot パーティションにファイルをコピーします。

$ mkdir boot
$ sudo mount /dev/sdb1 boot
$ sudo tar -xJvf bone-uboot.tar.xz -C boot
$ sync

micro SD を挿入してBeagle Bone Black のスイッチを入れたら、自動的にmicro SD から起動するようにuEnv.txt を編集します。
(Beagle Bone Black の電源を入れた時に、自動的にmicro SD カードから起動するようにするには、boot パーティション領域のuEnv.txt を編集することで可能になるという情報を幾つか見ましたが、今回自分が使用したubuntu では特に何も手を加える必要はありませんでした。)

$ sudo vim ./boot/uEnv.txt
optargs=
loadfdt=load mmc ${mmcdev}:2 ${fdtaddr} /boot/dtbs/${fdtfile}
loaduimage#mw.l 4804c134 fe1fffff; if load mmc 0:2 ${loadaddr} /boot/zImage; then setenv mmcdev 0; mw.l 4804c194 01200000; echo Booting from external microSD...; else setenv mmcdev 1; if test $mmc0  1; then setenv mmcroot /dev/mmcblk1p2 rw; fi; load mmc 1:2 ${loadaddr} /boot/zImage; mw.l 4804c194 00c00000; echo Booting from internal eMMC...; fi
mmcboot=run mmcargs; bootz ${loadaddr} - ${fdtaddr}
uenvcmd#i2c mw 0x24 1 0x3e; run findfdt; if test $board_name  A335BNLT; then setenv mmcdev 1; mmc dev ${mmcdev}; if mmc rescan; then setenv mmc1 1; else setenv mmc1 0; fi; fi; setenv mmcdev 0; mmc dev ${mmcdev}; if mmc rescan; then setenv mmc0 1; else setenv mmc0 0; fi; run loaduimage && run loadfdt && run mmcboot

boot パーティションをアンマウントします。

$ sudo umount /dev/sdb1
$ rmdir boot

rootfs パーティションにファイルをコピーします。

$ mkdir rootfs
$ sudo mount /dev/sdb2 rootfs
$ sudo tar -xJvf ubuntu-trusty-14.04-rootfs-3.14.4.1-bone-armhf.com.tar.xz -C rootfs
$ sync

必要に応じて、固定IP アドレスをこの時点で設定しておきます。

$ sudo cp -ip ./rootfs/etc/network/interfaces ./rootfs/etc/network/interfaces.org
$ sudo vim ./rootfs/etc/network/interfaces

.......
auto eth0
iface eth0 inet static
address 192.168.1.13
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 192.168.1.1
.......

rootfs パーティションをアンマウントします。

$ sudo umount rootfs
$ rmdir rootfs

Beagle Bone Black からubuntu を起動

作業端末からmicro SD を取り出し、Beagle Bone Black のmicro SD 挿入口に入れて、RJ45 ケーブルも取り付けます。
次に5V AC アダプタ、もしくはUSB を接続して電源を入れます。
暫くすると設定したIP アドレスでLinux が立ち上がってくるので、ssh で接続してみます。
初期ユーザとパスワードはubuntu/ubuntu になります。

$ ssh ubuntu@192.168.1.13

ubuntu@ubuntu-armhf:~$ id
uid#1000(ubuntu) gid=1000(ubuntu) groups1000(ubuntu),27(sudo)

ubuntu@ubuntu-armhf:~$ hostname
ubuntu-armhf

以下任意で、初期段階で実施しておいたほうが良い内容について記述していきます。

初期設定

ntp の設定

初期状態ではntp との時刻同期ができていないので、時刻同期するようにします。

ubuntu-armhf
$ sudo apt-get install ntp
$ sudo cp -ip /etc/ntp.conf /etc/ntp.conf.org
$ sudo vim /etc/ntp.conf

参照先ntp サーバをntp.nict.jp に変更します(任意)。

ntp.conf
#server ntp.ubuntu.com
server ntp.nict.jp

※その他初期状態で設定されているntp サーバがあれば、コメントアウトしてください。

タイムゾーンをAsia/Tokyo に変更します。

$ echo 'Asia/Tokyo' | sudo tee /etc/timezone
$ sudo dpkg-reconfigure -f noninteractive tzdata

ntp デーモンを再起動します。

ubuntu-armhf
$ sudo /etc/init.d/ntp restart
$ sudo update-rc.d ntp defaults

時刻同期の状態を確認します。

ubuntu-armhf
$ sudo ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
#####################====================================
 ntp-a2.nict.go. .NICT.           1 u   28   64    1    7.831  -12.876   0.004

暫くすると同期するはずなので、放置しておきます。

エラー: Perl のlocale エラーが出る

Perl のプログラムが使用されると、次のようなエラーメッセージが出力されることがあります。

ubuntu-armhf
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_PAPER = "ja_JP.UTF-8",
    LC_ADDRESS = "ja_JP.UTF-8",
    LC_MONETARY = "ja_JP.UTF-8",
    LC_NUMERIC = "ja_JP.UTF-8",
    LC_TELEPHONE = "ja_JP.UTF-8",
    LC_IDENTIFICATION = "ja_JP.UTF-8",
    LC_MEASUREMENT = "ja_JP.UTF-8",
    LC_TIME = "ja_JP.UTF-8",
    LC_NAME = "ja_JP.UTF-8",
    LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

このようなエラーが出た場合は、locale-gen コマンドを使用して、ロケール定義をコンパイルします。

$ sudo locale-gen en_US.UTF-8
$ sudo locale-gen ja_JP.UTF-8

コンパイルが完了したら、perl コマンドを実行してエラーが出ないことを確認します。

$ perl -e exit

その他の設定

sshd、ホスト名の設定等、必要に応じて実施してください。

参考

BeagleBone Black microSD Card Installation
http://www.armhf.com/boards/beaglebone-black/bbb-sd-install/

How do I fix my locale issue?
http://askubuntu.com/questions/162391/how-do-i-fix-my-locale-issue

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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした