これまではAngstrom(オングストローム)という、Linuxディストリビューションを使用してきました。
しかし!どうも古い環境だなぁ、システム・サービスを運用するにあたって安定性が非常に大事ということからUbuntuを入れてみようと思います。
今回はeMMCに直接書き込むのではなくSDカードにUbuntuのイメージを書き込み、ブートします!
まだまだ人に見せることを配慮しての書き方が足りてないので、もっとわかりやすく書かないといけないとおもう今日この頃。
わかりにくい点、アドバイスなどあれば是非コメントをください!
SDカードのフォーマット
以前、SDカードにubuntuを書き込んでいたのでフォーマットします。フォーマットにSDFormatter
を使用します。新品のSDカードを使用する場合ここは省略してください。
フォーマットする際、オプションとしてクイックフォーマット、論理サイズ調整=ONを指定しフォーマットします。
SDカードにイメージを書き込み
イメージを書き込んでいきます。書き込むにあたって使用したのはWindowsを使用しました。
SDカードに書き込むために以下のサイトを参考に
BBB用のディスクイメージをダウンロードします。
私がダウンロードしたのはbone-ubuntu-xenial-console-armhf-2016-04-07-2gb.img.xz
です
ダウンロードしたファイルの解凍には7zip
という解凍ソフトを使用します。
解凍はダウンロードしたファイルを右クリックし、展開
を押し解凍します。
解凍後SDカードにイメージを書き込みます。
書き込みにはwin32DiskImage
を使用します。
Win32DiskImager
https://osdn.jp/projects/sfnet_win32diskimager/
上記のサイトからWin32DiskImager-0.9.5-binary.zip
をダウンロードし解凍します。解凍後、解凍先フォルダのWin32DiskImaer.exe
を実行します。
その後ウィンドウが立ち上がるので、先ほど解凍したディスクイメージを選択し、書き込み先が正しく選択されていることを確認後Wirte
を押し書き込みます。
以上でSDカードにUbuntuを書き込むことができました。
Ubuntuを起動
BeagleBoneBlackにSDカードを挿入し起動します。HDMIなども接続し起動してみます!ここで立ち上がるのはCUIです。
BBBのS2ボタンを押しながら起動します!参考にしたサイトでは別にS2押さなくてもいけたということをかいてありましたが、わたしのケースだとS2おしておかないとダメでした。(二回目の起動時、S2ボタンを押さずに行うとubuntuが立ち上がりました。)
ubuntuを起動後ユーザ名とパスを聞かれます。
login: ubuntu
word: temppwd
でログインできます。
パーティションの拡張
ここと全く同じようにやりました.
ユーザの追加
mオプションをつけるとホームディレクトリを作ってくれます!
$ sudo useradd -m ユーザ名 <- ユーザの作成
$ sudo passwd ユーザ名 <- パスワードの追加
パスワード入力
$ sudo gpasswd -a ユーザ名 sudo <- sudoが使えるようにする
安全面のことを考えubuntuユーザは削除しておいたほうがよさそうなので削除
sudo userdel ubuntu
ここに書いていることはパーティションの拡張で載せたURL二書いていることです。引き続き同じように設定を変更していきます。
ホスト名の変更
$ hostname
arm <- デフォルトではこれ
$ sudo hostname ホスト名
/etc/hostnameも変更する
$ sudo vi /etc/hostname
arm <-デフォルトではこれが記述されているので先ほど決めたホストネームに変更
/etc/hostsも変更する
127.0.0.1 localhost
# 127.0.1.1 arm.localdomain arm #ここを変更する
127.0.1.1 ホスト名.localdomain ホスト名
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ネットワークの再起動
sudo /etc/init.d/networking restart
ネットワークの設定
/etc/netowrk/interfaceを編集
...
auth eth0
iface eth0 inet dhcp
...
現状ipアドレスをdhcpで割り当てるようにしているので、iface...の行をコメントアウトし自分でアドレスを割り当てます。
auth eth0
# iface eth0 inet dhcp
iface eth0 inet static
address 環境次第
network 環境次第
netmask 環境次第
broadcast 環境次第
gateway 環境次第
dns-nameservers 環境次第
eth0を構築し直します
$ sudo ifdwon eth0
$ sudo ifup eth0
うまく繋がらない方は参考サイトにもあるように/etc/resolv.confを見て直してみましょう。
アップデート
$ sudo apt-get update
$ sudo apt-get upgrade
vimを入れたいのでvimをinstall
$ sudo apt-get install vim
テストにLチカ
以前動かしたpythonのプログラムと同じものを作成し実行します。
1 import Adafruit_BBIO.GPIO as GPIO
2 import time
3
4 GPIO.setup("P9_11", GPIO.OUT);
5 GPIO.output("P9_11", GPIO.HIGH);
6 time.sleep(3);
7 GPIO.output("P9_11", GPIO.LOW);
しかしAdafruitなんてないと怒られたので、モジュールをインストールします。
以下のサイトを参考にやりました。
$ sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus -y
$ sudo pip install Adafruit_BBIO
実行する際はsudo
をつけて実行してみてください。
$ sudo python light.py
これでBeagleBoneBlackにUbuntuを入れることができました。次回からセンサーなどを扱っていきたいです。
シャットダウンする際はこれまで通りのコマンドにsudoをつけてあげてください。
$ sudo shutdown -h now
参考サイト
このサイトのおかげでインストールできました。