BeagleBone コンパイルした時のメモ

BeagleBoneをコンパイルする際に手間取ったのでそれをまとめる

OS : ubuntu 12.04LTS
PC : VOSTRO 1520
日本語環境

まず TIのwikiに記載してある必要なライブラリやプログラムをインストール

$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
$ sudo add-apt-repository "deb-src http://archive.canonical.com/ubuntu lucid partner"
$ sudo apt-get update
$ sudo apt-get install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev minicom tftpd uboot-mkimage expect

ちなみにjavaは6系じゃないとダメなのとoracleのサイトにあったjdkではなぜかコンパイルエラーになったので、open jdkをインストール

$ sudo apt-get install openjdk-6-jre

repo使ってソースコードをダウンロード

$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo

企業などproxy環境下ではここで躓きます。git proxyなどでググって検索してcorkscrewとHTTP_PROXYやHTTPS_PROXYを設定して見る。それでも無理だったらproxyサーバー管理者にgitのポートを開放してもらう。

$ mkdir $HOME/rowboat-android
$ cd $HOME/rowboat-android
$ repo init -u git://gitorious.org/rowboat/manifest.git -m rowboat-gingerbread-am335x.xml
$ repo sync

PASSを通す

$ export PATH=$HOME/rowboat-android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH

起動の度に設定するのはめんどうなので~/.bashrcに上記を設定しておく。
linuxのブートプログラムをコンパイルする

$ cd u-boot
$ make CROSS_COMPILE=arm-eabi- distclean
$ make CROSS_COMPILE=arm-eabi- am335x_evm_config
$ make CROSS_COMPILE=arm-eabi-

ここでエラーになるならば、gccやg++がインストールされていない可能性があるのでチェック

linux カーネルコンパイル。HWをいじりたくなったらこれの再インストールが必要かな

$ cd kernel
$ make ARCH=arm CROSS_COMPILE=arm-eabi- distclean
$ make ARCH=arm CROSS_COMPILE=arm-eabi- beaglebone_android_defconfig
$ make ARCH=arm CROSS_COMPILE=arm-eabi- uImage

VNCサーバーを立ち上げるため以下を導入する

$ git clone -b rowboat-gingerbread git://gitorious.org/rowboat/rowboperf.git $ cd rowboperf
$ git clone -b rowboat-gingerbread git://gitorious.org/rowboat/droid-vnc-server.git

最後にAndroidコンパイルする。 -j4はcore 2なのでオプションに追加
$ make TARGET_PRODUCT=beaglebone OMAPES=4.x -j4
ここでエラーになる場合は、こことか

build/core/combo/HOST_linux-x86.mk line 61:
-HOST_GLOBAL_CFLAGS += -D_FORTIFY_SOURCE=0
+HOST_GLOBAL_CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0

ここ

frameworks/base/libs/utils/Android.mk
-LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS)
+LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) -fpermis

を参考にしてコンパイルエラーを修正する。
コンパイルCore2 duoが少し非力なのでコーヒーブレイク&読書でもして待つ。

その他参考サイト
http://d.hatena.ne.jp/hiroe_orz17/20120121/1327127876

BeagleBoneを使って組み込み機器操作をしたいので以下の書籍を参考にする。

他にも少しだけ組み込み系の書籍があるが、ADKを用いたものだったりしてGPIOを制御することをしたい場合あまり役に立たない。

だれか他に良いのあったら教えて