2014年7月5日土曜日

EclipseでRaspberry Pi

EclipseでRaspberry Piの開発ができるよう環境を整備。EclipseはRaspberry Piカーネルクロスコンパイル環境を整えるで作った、VMwareのクロス環境にインストール。

Development Environment for the Raspberry Pi using a Cross Compiling Toolchain and Eclipseによると、apt-get eclipseでは最新版が入らないようなので、同ページに従って手動インストール。

pi@ubuntu:~$ sudo apt-get install openjdk-7-jre

ブラウザから、Linux 32-bit用Eclipse IDE for C/C++ Developersを入手。
http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/keplerr

pi@ubuntu:~$ tar -xvzf Downloads/eclipse-cpp-kepler-SR2-linux-gtk.tar.gz -C ~/


eclipseを立ち上げると、メニューが表示されない。どうもUbuntuの既知の問題らしいので、下記のページの通り対策。

Ubuntu13.10にeclipseを入れたらメニューバーが表示できないときの対応

pi@ubuntu:~$ sudo pico /usr/local/bin/eclipse


#!/bin/bash

export UBUNTU_MENUPROXY=0

/usr/local/eclipse/eclipse


pi@ubuntu:~$ sudo chmod +x /usr/local/bin/eclipse


さらに続けて、ccHelloプロジェクトを作ってみる。なぜか、"g++ not found in PATH"というエラーメッセージが出るので、

pi@ubuntu:~$ sudo apt-get install g++

しておく。buildすると、

pi@ubuntu:~$ file workspace/ccHello/Debug/ccHello 

workspace/ccHello/Debug/ccHello: ELF 32-bit LSB  executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.26, BuildID[sha1]=6cf90c106d9d701ef8279e0722f95e198bdecb8f, not stripped

みたいな感じで、armの実行形式ができている。あとは手順に従ってRaspberry Piに転送。
 

Raspberry PiでPX-S1UD

ここを参考に、PX-S1UDを使えるようにします。

http://cgi20.plala.or.jp/~sat/?x=entry:entry131128-172807

前回構築したクロス環境を使います。

pi@ubuntu:~$ pico linux/drivers/media/usb/siano/smsusb.c

635行目あたり、

        { USB_DEVICE(0x19D2, 0x0078),
            .driver_info = SMS1XXX_BOARD_ONDA_MDTV_DATA_CARD },
+        { USB_DEVICE(0x3275, 0x0080),
+            .driver_info = SMS1XXX_BOARD_SIANO_RIO },
        { } /* Terminating entry */

あとは以前の手順でビルド&SDカードに書き込みします。

pi@ubuntu:~$ cd linux
pi@ubuntu:~/linux$ make ARCH=arm CROSS_COMPILE=~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-
pi@ubuntu:~/linux$ make ARCH=arm CROSS_COMPILE=~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf- INSTALL_MOD_PATH=/media/pi/root modules
pi@ubuntu:~/linux$ sudo make ARCH=arm CROSS_COMPILE=~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf- INSTALL_MOD_PATH=/media/pi/root modules_install
pi@ubuntu:~/linux$ sudo cp /media/pi/BOOT/kernel.img /media/pi/BOOT/kernel-backup.img 
pi@ubuntu:~/linux$ sudo cp arch/arm/boot/Image /media/pi/BOOT/kernel.img


PX-U1SDを接続してブート、以下のメッセージが出ればOK。

i@raspberrypi ~ $ dmesg | grep Siano
[    7.525790] DVB: registering new adapter (Siano Rio Digital Receiver)
[    7.541863] usb 1-1.3: DVB: registering adapter 0 frontend 0 (Siano Mobile Digital MDTV Receiver)...