やってみたブログ

組込みLinuxとかいろいろやってみた

Beaglebone BlackでDebianを動かす

BeagleBone Blackの内蔵FlashROMに入っているAngstromを動かすのは

BeagleBone Blackの起動 - Angstromで説明した。ここではSDカードにDebianを焼いて、SDカードからDebianをブートしてみる。

基本的に、BeagleBoardDebian - eLinux.orgの手順どおりにやればokだけど、手っ取り早くpre-buildイメージを使って動かしてみる。Demo Imageにある手順でやればok、、なんだけど。。

作業はLinuxでやったほうがいいので、ホストPC上のVMにLinuxをインストールしておく。開発環境としては、Ubuntu 12.04@32bitがいい。なので、VMにUbuntuを入れておく。仮想マシンソフトはVMware PlayerでもVirtualboxでも好きたものを。私はデスクトップ用途だとVirtualboxが使いやすいと思う。

以下、Virtualboxに入れたUbuntu上で操作することを前提として記す。

  1. ホストPCにSDカードを挿し、VirtualboxにSDカードをアタッチする。このとき、UbuntuがアタッチしたSDカードを自動マウントするかもしれないので、アンマウントしておく。
  2. VMのUbuntuからは/dev/sdbとかのデバイス名で認識されるはず。どのデバイス名で認識されているかはcat /proc/partitionsとかで確認できる。
  3. Debian 7.1のpre-buildイメージファイルを取得する。大きいので時間かかるはず。
    wget https://rcn-ee.net/deb/rootfs/wheezy/debian-7.1-console-armhf-2013-08-26.tar.xz
  4. 展開
    tar xJf debian-7.1-console-armhf-2013-08-26.tar.xz
    cd debian-7.1-console-armhf-2013-08-26
  5. SDカードに書き込み。/dev/sdXはUbuntu上のSDカードのデバイス番号。このとき、gitとかがないとか言われるので、メッセージに書かれているとおりにapt-getしてから再度setup_sdcard.shを実行する。
    sudo ./setup_sdcard.sh --mmc /dev/sdX --uboot bone

SDカードにDebianを書き込んだら、BBBにSDカードをさして電源を入れる。シリアルコンソールにu-bootやカーネルメッセージが表示され、ログインが表示される。

DebianでもUSB Ethernetが活性化している。sshdも動いているので、ホストPCからsshログインできる。ユーザ名は"debian"、パスワードは"temppwd"。

  1. ssh debian@192.168.7.2

rootのパスワードはrootだけどsudoが使えるので、rootになりたければdebianユーザでログインしてsudoすればいい。

BBBのEthernet(普通のEthernetのほう)をブロードバンドルータとかに接続すれば、DHCPIPアドレスをとってくれるので、普通にインターネット接続ができる。

HDMIでテレビとかに接続しておけば、起動後にログインプロンプトがテレビに表示されているはず。USBキーボードが接続されていれば、ログインできる。

f:id:dekigl:20130914132241j:plain

 

ここまでくればPCで動くDebianと同じなので、あとは好きにすればいい。

BeagleBone Blackの起動 - Angstrom

BeagleBone Black(BBB)の内蔵FlashROMにはAngstrom Linuxが書き込まれていて、電源入れるとすぐにAngstromが起動するようになっている。

ホストPCとの繋ぎ方とかは、BeagleBoard.org - Getting Started を見てもらえばよい。

添付のUSBケーブルをBBBに接続してホストPCにつなげると、Angstrom Linuxが起動する。

電源供給のUSBはUSBターゲットとなっていて、USB Mass-storageが実装されている。つまり、ホストPCからはBBBがUSBメモリのように見えて、内蔵FlashROMの中身が見えるようになる。ホストPCがWindowsなら、リムーバブルデバイスとして認識されているはず。中にSTART.htmというファイルが入っているので、それをみると、上のGetting Startedと同じものが入っている。

 また、USB Ethernetとしても使える。Getting StartedのStep#2: Install driversにあるとおり、ホストPCにnetwork-over-USBドライバを入れると、IPで接続されるようになる。BBB内部ではWebサーバが動いているので、http://192.168.7.2/ に接続すればBBBのデモが動かせる。

 

Beaglebone Blackで組込みLinux開発環境(1) - 買うものリストに書いたFTDIシリアルコンバータがあれば、ホストPCにFTDIドライバをインストールする。FTDIドライバはGetting StartedのStep#2: Install driversのSerialドライバになる。

FTDIシリアルコンバータを次の写真のとおりに接続して、screenとかminicomでシリアル接続すればok。BBBのシリアルは3.3Vなので、シリアルコンバータのショートピンを3.3Vに設定しておく。

f:id:dekigl:20130914115926j:plain

f:id:dekigl:20130914115932j:plain

 

以下、Macでの例。Linuxだと/dev/ttyUSB0とかで認識されているはず。

screen /dev/tty.usbserial-AD020MLB 115200

 するとシリアルコンソールが見れるようになる。

.---O---.                                           
|       |                  .-.           o o        
|   |   |-----.-----.-----.| |   .----..-----.-----.
|       |     | __  |  ---'| '--.|  .-'|     |     |
|   |   |  |  |     |---  ||  --'|  |  |  '  | | | |
'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'
                -'  |
                '---'

The Angstrom Distribution beaglebone ttyO0

Angstrom v2012.12 - Kernel 3.8.13

beaglebone login: root
Last login: Sat Jan  1 00:00:47 UTC 2000 on ttyO0
root@beaglebone:~# 

 

Beaglebone Blackで組込みLinux開発環境(1) - 買うものリスト

勘を養うためには雰囲気を知るって大事よねーってことで、まずはやってみる。

そのために、BeagleBoard.org の BeagleBone Black(以後BBB) を使う。

こいつは、スペック的にはRaspberry PIに似てる。RPiと違って、素のDebianとかUbuntu、JB Androidまで動く。

また、TIが販売しているだけあって、いわゆる組込みLinux的な開発環境(TFTPでカーネルをロードしーの、rootfsはNFSでしょ、的な)の、Sitara SDKが使える。

なので、こいつをターゲットにした組込みLinuxな開発環境を構築する。

次のような環境を作ることを目的とする。

  • ホストPCに開発環境一式を入れる。こいつでVMを動かす。 
  • VMに開発環境用Ubuntu 12.04@32bitをセットアップ。開発は全部Ubuntu上でやる。VMware PlayerでVirtualBoxでもいい。私はMacなのでVirtualBoxを使っている。
  • ホストPCとBBBはコンソールはシリアル接続、TFTP, NFSEthernetを使う。

 

 まずは必要なものリスト。リンクは全部Amazon。リンク貼ってないのはどこでも買えるものなので、適当に。

  • ホストPC。OSはWindowsでもLinuxでもMacでもok。VMにUbuntu入れてを動かすのでスペックはそれなりに。私はMacbook Air(13-inch, Mid-2012)を使ってる。
  • PCとBBBのEthernet接続はローカル環境になるのでPCにNIC増設したほうが便利。NICはなんでもいい。私はMacbook Airなので、USBのEthernetアダプタを使っている。
  • BeagleBone Black 本体 $45だけど、Amazonだと4,980円

  • FTDI USBシリアル変換アダプター 1,500円くらい。BBBのシリアルコンソールをUSBに変換するアダプタ。FTDIのシリアルコンバータはいろいろあるけど、こいつはピン配置変換とかしなくてもBBBにそのまま挿せる。

  • BBBの電源は添付のUSBケーブルによる給電、もしくは5Vの電源アダプタ。電源アダプタは5V出力のDCアダプタを入手しなければいけないので、とりあえずUSB給電でいいと思う。PCからのUSB給電で十分動くから。
  • HDMIなディスプレイとMicroHMIケーブル。BBBでGUIするならmicroHDMI出力を使う。BBBはオーディオもHDMI出力できるので、HDMI入力なテレビを使ってもいい。DVIなディスプレイにHDMI to DVI変換アダプタ使ってもいい。私はON-LAP1302を使っている。
  • USB HUB。なんでもいいけど、BBBはUSBホストのポートが1つしかないので、いろいろつなぐには4ポートくらいのUSB HUBがあると便利。AC電源つきのセルフパワーなHUBがいい。ヨドバシあたりで1,000円くらいで買える。
  • microSDHCカード。まずはDebianとかUbuntuとか入れて遊びたいよね。そのときに必要。8GBもあれば十分。
  • LANケーブル。PCとBBB直結でいいので1本用意すればok
  • オプション:USBキーボード、USBマウス。UbuntuAndroidを動かすときに使う。なんでもいい。

 ひとまずこんなもんか。

PC以外に用意するものは、全部たして1万くらいかな。