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を制御することをしたい場合あまり役に立たない。
だれか他に良いのあったら教えて