AP-RZA-0A Linux BSPチュートリアル 1. 仕様 CPUボード : アルファプロジェクト製AP-RZA-0A CPU : RZ/A1H Linuxカーネル : Linux 3.8.13 U-Boot(ブートローダ) : u-boot-2013.04 ルートファイルシステム : buildroot-2013.05 クロス開発環境 : gcc-linaro-arm-linux-gnueabihf-4.7-2013.01-20130125_linux 2. 必要な機材 ホストPC環境 : Ubuntu12.04LTS CPUボード : AP-RZA-0A シリアルコンソール用 : RS232レベル変換ユニット (アルファプロジェクト製PC-RS-04 等) ファイルシステム用 : USBメモリ 3. 動作確認状況 対応デバイス ・U-Boot シリアルFlash(読み込みのみ) Ether USBホスト UART(コンソール用) EEPROM ・Linux Ether EEPROM RTC UART(コンソール用) USBホスト microSD(活線挿抜未対応) LCD-KIT-B01 未対応デバイス ・Linux Audio入出力 Video入力 CAN USBファンクション WiFiモジュール 4. 開発環境作成 (1) 以下のサイトよりToolchainをダウンロードします。 ・ダウンロード場所 http://releases.linaro.org/13.01/components/toolchain/binaries/ ・ファイル gcc-linaro-arm-linux-gnueabihf-4.7-2013.01-20130125_linux.tar.bz2 (2) ホストPC上にAP-RZA-0Aの作業ディレクトリを作成します。 PC$ mkdir ~/aprza0a PC$ mkdir ~/aprza0a/toolchain (3) (1)でダウンロードしたToolchainを作業ディレクトリ下のフォルダに 解凍します。 tarコマンド実行に際し、ダウンロードしたToolchainを ~/aprza0a/toolchain 下に 移動してください。 PC$ cd ~/aprza0a/toolchain PC$ tar jxvf gcc-linaro-arm-linux-gnueabihf-4.7-2013.01-20130125_linux.tar.bz2 パッケージ build-essential bison flex gettext texinfo ncurses-dev libglib2.0-dev zlib1g-dev ccache uboot-mkimage cramfsprogs git-core autoconf libtool (その他必要なパッケージは適宜インストールしてください) 5. 開発環境の準備 以降のU-Boot, Linuxカーネル, buildrootをクロスコンパイルを 行う場合には、「4. 開発環境作成」でインストールしたToolchainを 使用します。 ただ、PATHが設定されていないため、以下のコマンドでPATHを設定 してから行ってください。 PC$ export PATH=~/aprza0a/toolchain/gcc-linaro-arm-linux-gnueabihf-4.7-2013.01-20130125_linux/bin:$PATH ※上記コマンドは起動しているシェルのみに設定されるため、 もし、シェル等を新たに起動する場合は、再度行う必要が あります。 6. U-Boot 6.1 U-Bootの作成 AP-RZA-0A用U-Bootの作成を行います。 (1) クロス開発環境の構築時に作成した作業ディレクトリに移動します。 PC$ cd ~/aprza0a (2) ホストPC上の作業ディレクトリ『aprza0a』にU-Boot 『u-boot-2013.04-aprza0a.tar.bz2』をダウンロードします。 (3) 『u-boot-2013.04-aprza0a.tar.bz2』を解凍し、U-Bootのディレクトリに移動 します。 PC$ tar -xjpf u-boot-2013.04-aprza0a.tar.bz2 PC$ cd u-boot-2013.04-aprza0a (4) u-bootの作成を行います。 PC$ ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make aprza0a ・ ・ ・ (5) コンパイルが正常に終了するとバイナリイメージ『u-boot.bin』等が作成されます。 PC$ ls u-boot.bin u-boot.bin 7. Linuxカーネル 7.1 Linuxカーネルの作成 AP-RZA-0A用Linuxカーネルの作成を行います。 (1) クロス開発環境の構築時に作成した作業ディレクトリに移動します。 PC$ cd ~/aprza0a (2) ホストPC上の作業ディレクトリ『aprza0a』にLinuxカーネル 『linux-3.8.13-aprza0a.tar.bz2』をダウンロードします。 (3) 『linux-3.8.13-aprza0a.tar.bz2』を解凍し、linuxのディレクトリに移動 します。 PC$ tar -xjpf linux-3.8.13-aprza0a.tar.bz2 PC$ cd linux-3.8.13-aprza0a (4) LinuxカーネルのAP-RZA-0A用設定データを読み出します。 PC$ ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make aprza0a_defconfig ・ ・ ・ (5) Linuxカーネルの作成を行います。 PC$ ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make uImage ・ ・ ・ (6) dtbファイルの作成を行います。 PC$ ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make dtbs ・ ・ ・ (7) モジュールの作成を行います。 PC$ ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make modules (8) モジュールのインストールを行います。 PC$ ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make INSTALL_MOD_PATH=/home/guest/aprza0a/linux-3.8.13-aprza0a/temp2 modules_install (9) 作成されたモジュールファイルをtarファイルにします。 PC$ tar -cf modules.tar -C temp2 ./ (10) すべての手順が正常に終了した場合、以下のファイルが作成されて います。 arch/arm/boot/uImage arch/arm/boot/dts/rza1-aprza0a.dtb modules.tar 8. ルートファイルシステム 8.1 ルートファイルシステムの作成 『buildroot』を使用してルートファイルシステムの構築を行います。 (1) クロス開発環境の構築時に作成した作業ディレクトリに移動します。 PC$ cd ~/aprza0a (2) ホストPC上の作業ディレクトリ『aprza0a』にbuildroot 『buildroot-2013.05-aprza0a.tar.bz2』をダウンロードします。 (3) 『buildroot-2013.05-aprza0a.tar.bz2』を解凍し、linuxのディレクトリに 移動します。 PC$ tar -xjpf buildroot-2013.05-aprza0a.tar.bz2 PC$ cd buildroot-2013.05-aprza0a (4) buildrootのデフォルト設定データを呼び出します。 (最初にルートシステムを作成する場合のみ行います。) PC$ make O=../build aprza0a_defconfig (5) ルートファイルシステムを構築します。 PC$ make O=../build ・ ・ ・ ※現時点(2014/08/29)では、以下のダウンロードファイルが失敗します。 buildrootに登録されているダウンロード先が変わってしまったことに より起こっていますので、手動で該当ファイルをダウンロードして ~/home/guest/aprza0a/buildroot-2013.05-aprza0a/dl ディレクトリに いれる対応が必要です。 minicom-2.6.1.tar.gz qt-everywhere-opensource-src-4.8.4.tar.gz 上記dlディレクトリへの対応後にもう一度(5)のmakeコマンドを実行します。 9. システムの起動 9.1 シリアルコンソール設定 ボーレート : 115200 bps データ : 8ビット パリティビット : なし ストップビット : 1ビット フロー制御 : なし 9.2 U-Bootの書き込み U-BootをAP-RZA-0Aのシリアルフラッシュロムに書込みます。 9.3 USBメモリの準備 (1) 起動に使うUSBメモリを準備します。 256MByte以上の容量を持つUSBメモリを用意してください。 また、利用するUSBメモリは前もってext2形式でフォーマットをしてください。 (2) USBメモリのルートフォルダに7.で作成したuImageとrza1-aprza0a.dtbを コピーしてください。 Kernel: /home/guest/aprza0a/linux-3.8.13-aprza0a/arch/arm/boot/uImage dtb : /home/guest/aprza0a/linux-3.8.13-aprza0a/arch/arm/boot/dts/rza1-aprza0a.dtb (3) 7.1で作成した下記2種類のファイルをUSBメモリのルートフォルダに 展開してください。 ※ファイルの解凍には管理者権限が必要です(sudoにて行ってください) Rootfs : /home/guest/aprza0a/build/images/rootfs.tar modules: /home/guest/aprza0a/linux-3.8.13-aprza0a/modules.tar 9.4 Linuxの起動 (1) 「9.3 USBメモリの準備」で用意したUSBメモリをAP-RZA-0Aの USBコネクタ(上段)に接続します。 (2) ディップスイッチ等を設定します。 設定は、AP-RZA-0Aのマニュアルでご確認ください。 起動方法は、シリアルフラッシュロムブートとなります。 (3) AP-RZA-0Aの電源を投入し、Linuxを起動します。 ※デフォルトの設定ではu-bootは自動的にUSBメモリにアクセスし Linuxを起動する設定となっています。 Linuxの起動を取りやめ、u-bootの操作を行う場合は 「Hit any key to stop autoboot: 3」の表示がカウントダウンし 0になる前にいずれかのキーを押下しu-bootのオートブートを キャンセルしてください。 U-Boot 2013.04 (Aug 22 2014 - 10:24:51) I2C: ready DRAM: 32 MiB Using default environment In: serial Out: serial Err: serial Net: sh_eth Hit any key to stop autoboot: 0 (Re)start USB... USB0: scanning bus 0 for devices... 2 USB Device(s) found scanning usb for storage devices... 1 Storage Device(s) found ・ ・ ・ Welcome to Buildroot (none) login: (4) ログイン画面で「root」でログインします。