プログラムの動作検証環境が欲しくて購入したRaspberry Piですが、
無線LANドングル経由でコードの編集・コンパイルをしていると、
(私の環境では)なぜか急にネットワークに繋がらなくなることがあります。
こうなると、作業中のコードが消えてしまい、精神衛生上よろしくないので
今回はWindows上でVirtual Machine(VM)を動かし、そのVM上でクロスコンパイルする方法
についてまとめていきます。
1.Virtual Boxのインストール
Virtual Boxのインストーラは下記にて配布されています。
Downloads – Oracle VM VirtualBox
16/4/30時点では下記バージョンが最新であったのでそのままインストール。
VirtualBox 5.0.18 for Windows hosts x86/amd64
2.OSのダウンロード
OSはDebianの32bit版(i386)を使います。
下記ページからネットインストール用のISOがダウンロードできます。
Installing Debian via the Internet
3.VMの作成とOSのインストール
仮想のマシンを作ってそのマシンにOSをインストールします。
手順については下記ページが参考になるかと、設定内容は適宜読み替えてください。
Debian (squeeze) 64bit をVirtualBoxにインストール - 飲んだり寝たり
※ISOファイルは手順2でダウンロードした32bit版(i386)を使います。
4.クロスコンパイラのダウンロードとPATHの設定
以下断りがない限り、この枠内の操作はVM上のDebianのCUI操作とします。
Gitがインストールされているならば、下記コマンドでクロスコンパイラをダウンロードします。
※コマンドを実行したディレクトリ以下にファイルがコピーされることに注意。
git clone https://github.com/raspberrypi/tools
#諸々のコンパイラが入っているので結構ファイルサイズが大きいです。(600MBくらい?)
ダウンロード完了したあとはパスを通しておきます。(~/.bashrcに下記を追加)
下記の[git実行パス]は適宜読み替え。
PATH=$PATH:[git実行パス]/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian PATH=$PATH:[git実行パス]/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin export PATH
パスの設定を反映するためには再起動もしくは、下記コマンドを実行します。
source ~/.bashrc
参考ページ:Kernel Building - Raspberry Pi Documentation
5.クロスコンパイルの実行
gccと同じようにコンパイルできます。例えば、下記のコードを“test.c”として保存して
#include <stdio.h> int main(void) { printf("Hello world!\n"); return 0; }
下記コマンドでコンパイルすると、実行ディレクトリにa.outが生成されます。
arm-linux-gnueabihf-gcc test.c
6.生成ファイルの実行
コンパイル環境(VM上のDebian)では下記エラーが出ますが
-bash: ./a.out: cannot execute binary file: 実行形式エラー
Raspberry Pi上にコピーして実行すると下記の出力が得られます。
Hello world!
これで、Windows10でRaspberry Piのクロスコンパイル環境作成は完了です。
お疲れ様でした。
(補足)動作確認バージョン
「lsb_release -a」で確認したraspbianのバージョンは下記とおりです。
No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 7.10 (wheezy) Release: 7.10 Codename: wheezy
「uname -a」で確認したkernelの情報は下記とおり
Linux version 4.1.13-v7+ (dc4@dc4-XPS13-9333) (gcc version 4.8.3 20140303 (prerelease) (crosstool-NG linaro-1.13.1+bzr2650 - Linaro GCC 2014.03) ) #826 SMP PREEMPT Fri Nov 13 20:19:03 GMT 2015
(補足2)VMを動かすマシンパワーがない場合
どうしてもWindows上だけで完結させたい!という方は下記ページ等が参考になるかと思います。
Windows用ツールチェインを使ってデバッグ環境を作る方法について書かれています。
WindowsのEclipseでraspberry pi用のクロス開発環境を作成 - のねのBlog
ちなみにWindows用のクロスコンパイラ等が入ったツールチェインは下記にて配布されています。
Windows toolchain for Raspberry/PI
Raspberry Pi 3 Model B (Element14)
- 出版社/メーカー: RASPBERRY-PI
- メディア: エレクトロニクス
- この商品を含むブログ (1件) を見る