2014年3月21日金曜日

BeagleBone Black向けのAndroidをビルドして触ってみた

JellybeanOnBeaglebone_WithSGXを参考にBeagleBone Black向けのAndroid4.2をビルドしてみました。最後、SDカードに書き込む際にロケールを変更することを忘れずに。

動かしてみた感想ですが、もっさりでした。
実用的ではないですけど、遊びとして試してみるのが良いと思います。

  • 前提条件
    • 2014年3月時点での手順です。
    • ビルド環境は、以下の環境です。
      • Lenovo U310 (CPU:Corei5、Mem:4GB)
      • Windows8.1
  • Ubuntu 12.04(64bit)のインストール
    • 13.xx系ではダメ。12.04を使う必要があります。
    • 32bitではダメ。64bit版を使う必要があります。
    • 仮想マシンはVirtualBoxを利用しました。
      • 仮想マシンを作成する際は、Ubuntu(64bit)を選択。64bitが選択できない場合、BIOSの設定を確認し、Virtualization technologyをenableに変更する。
      • 仮想ディスクのサイズを100GBに設定。(デフォルトでは8GBとなっている。忘れずにサイズを変更しておく必要があり。)
      • メモリは1500MBを割り当てました。
  • SSHのインストール
    • teratermなどを使ってSSH経由で作業をしたい場合のみ必要です。
      • sudo apt-get install ssh
      • start ssh
  • 必要となるパッケージの追加
    • 以下のコマンドを実行して、必要となるパッケージを追加します。
      • sudo apt-get install minicom tftpd uboot-mkimage expect
      • sudo apt-get install git-core gnupg flex bison gperf build-essential   zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs   x11proto-core-dev libx11-dev lib32readline-gplv2-dev lib32z-dev   libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown   libxml2-utils xsltproc
  • Java SE Development Kit 6のインストール
    • 2014年3月現在、jdk1.7には対応していません。makeのチェックでエラーとなります。
    • Oracleのサイトから、Linux x64のbin(jdk-6u45-linux-x64.bin)をダウンロードします。
    • ダウンロードしたファイルをホーム(~/)にコピーして、以下のコマンドを実行します。
      • chmod a+x jdk-6u45-linux-x64.bin
      • ./jdk-6u45-linux-x64.bin
      • export PATH="$HOME/jdk1.6.0_45/bin:$PATH"
  • repoのインストール
    • ソース一式を取得するため、repoをインストールします。
    • 端末を起動し、以下のコマンドを実行します。
      • mkdir ~/bin
      • curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
      • chmod a+x ~/bin/repo
      • source .profile
  • ソースのリポジトリ作成
    • 以下のコマンドを実行して、ソースの取得先を作成します。
      • mkdir ~/rowboat-android
      • cd ~/rowboat-android
      • repo init -u git://gitorious.org/rowboat/manifest.git -m rowboat-jb-am335x.xml
    • 以下のコマンドを実行して、ソースを取得します。時間がかかります。
      • repo sync
  • ビルド
    • 以下のコマンドを実行してtoolへのパスを設定します。
      • export PATH=~/rowboat-android/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin:$PATH
    • 以下のコマンドを事項して、Boot Loaderをビルドします。
      • cd ~/rowboat-android/u-boot
      • make CROSS_COMPILE=arm-eabi- distclean
      • make CROSS_COMPILE=arm-eabi- am335x_evm_config
      • make CROSS_COMPILE=arm-eabi- 
    • 以下のコマンドを実行して、Androidをビルドします。すごく時間がかかります。
      • cd ~/rowboat-android/
      • make TARGET_PRODUCT=beagleboneblack OMAPES=4.x
  • SDカードへのインストール
    • 以下のコマンドを実行して、imageを作成します。
      • mkdir ~/image_folder
      • cp ~/rowboat-android/kernel/arch/arm/boot/uImage ~/image_folder
      • cp ~/rowboat-android/u-boot/MLO ~/image_folder
      • cp ~/rowboat-android/u-boot/u-boot.img ~/image_folder
      • cp ~/rowboat-android/external/ti_android_utilities/am335x/u-boot-env/uEnv_beagleboneblack.txt ~/image_folder
      • cp ~/rowboat-android/out/target/product/beagleboneblack/rootfs.tar.bz2 ~/image_folder
      • cp ~/rowboat-android/external/ti_android_utilities/am335x/mk-mmc/mkmmc-android.sh ~/image_folder
    • 以下のコマンドを実行して、ロケールを変更します。(必須)
      • export LANG=C
    • 以下のコマンドを実行して、SDカードのデバイス名を確認します。
      • sudo fdisk -l
    • 以下のコマンドを実行して、SDカードに書き込みます。(SDカードのデバイス名が/dev/sdbの場合)
      • cd ~/image_folder
      • sudo./mkmmc-android.sh /dev/sdb MLO u-boot.img uImage uEnv_beagleboneblack.txt rootfs.tar.bz2
    • 正常に終了したら、以下のコマンドを実行してロケールを戻します。
      • export LANG=ja_JP.UTF-8

あとは、BlackBone BlackにSDカードを刺して電源を入れれば起動します。
初回起動時のみ5分程度かかりますが、2回目以降は1分程度で起動します。

起動中はAndroidのロゴが表示されるはずです。
つなぐTVによっては解像度が対応しておらず、画面が写らないかもしれません。
画面が写らなかったらTVを変えて試してみると良いとおもいます。

2014年3月19日水曜日

BeagleBone Black 入門 その1

BeagleBone Blackを購入しました。
カードサイズのLinuxが動くコンピューターです。

ちょっとマイナーな感じはしますけど、RasberryPiとArduinoの良いところ取りをした感じで扱いやすいですし、標準でなんでも使える(HDMI、USB、SDカード、LAN)のでお奨めです。

■BeagleBone Blackの良いところ
  • Linuxが動く
    • 無線LAN、カードリーダーなどのUSB接続周辺機器が動作します。
    • 同時に複数のプログラムを動かせるのもメリット。
  • Arduino的な使い方もできる
    • プログラミングは簡単です。
    • RasberryPiと比べて圧倒的にI/Oピンが多いので、いろいろつなげたい時も安心。
  • HDMI出力がある
    • テレビに接続すれば画面が写ります。PC無しでもプログラミングとか動作確認ができます。
  • ネットワークポートが付いている
    • インターネットと連携したプログラムが簡単に作れます。
■BeagleBone Blackの悪いところ
  • 起動が遅い
    • Linuxが起動するのにそれなりに時間が掛かります。
    • Arduinoのように、電源ONで即実行とはいかないです。
  • リアルタイム処理は(たぶん)苦手
    • Linuxの上で動くので、リアルタイム処理は難しいと思います。

■始めるのに最低限必要なもの
  • BeagleBone Black本体
    • 秋月で購入しました。
  • HDMI入力に対応したテレビ
    • 無くても動きますけど、あればPCが無くてもプログラミングや動作確認ができます。
  • mini-HDMIケーブル
    • テレビにつなぎたい場合、必要になります。
  • USB接続に対応したキーボード、マウス
    • PC用の普通のUSBキーボード、マウスならなんでも大丈夫だと思います。
    • USBポートが1つしかないのでマウス機能付きのキーボードが良いと思います。

■購入しなくても良いもの、あったら便利なもの
  • USBケーブル
    • 本体に同梱されているので不要です。
  • ACアダプター (5V 1A)
    • USBから電源が取れますので、ACアダプターは不要です。本体に同梱されているUSBケーブルをテレビやPC、スマフォの充電器などにつなげばOK。
    • ACアダプターは必要になった時にあとから購入で良いです。
    • 周辺機器をつなぐ場合はACアダプタが必須になると思います。周辺機器によっては、周辺機器をつないだ状態では本体の電源が入らないものがありました。
    • ACアダプターを接続する場合、電圧が高すぎると電源が入らないようです。電源が入らない場合はACアダプタではなく、USBから電源をとってみると良いと思います。
  • USBハブ
    • USBポートが1つしかないため、マウスやキーボードなどの周辺機器を複数つなげたい場合に必要になります。
    • ACアダプターが付属のものをお勧めします。
  • ケース
    • カードサイズコンピューターなので、名刺入れのプラスチックケースなどが使えると思います。

2014年3月1日土曜日

Lenovo U310のBIOSアップデート&設定変更

Lenovo U310のBIOS設定変更に苦労したのでメモ。

通常の状態であれば、電源を切った状態で電源ボタンの左横にある小さな丸いボタンを押して起動すると起動メニューが表示されるのでそこからBIOSの設定変更画面に入れます。

しかし、SSD換装などに失敗するとBIOSが壊れた状態となるようで、メニューからBIOS設定変更を選択しても通常のWindows起動がはじまってしまいます。

BIOSを更新すれば治りますが、2014年1月現在にLenovoの公式サイトで公開されているBIOSアップデートはWindows7用であり標準でWindows8が入っているU310では動作しません。

BIOS アップデート Windows 7 (32bit, 64bit) - IdeaPad U310, U410
(65cn21ww)

非公式ですが、以下を使うとBIOSが更新できて、BIOS設定変更もできるようになりました。
BIOS Update for Windows 8 (32-bit, 64-bit) – IdeaPad U310, U410
(65cn99ww)

非公式ですので、何があるかわかりません。
自己責任でお願いします。