GDP(GENIVI Development Platform) on R-CarM2 Porter を動かす

GDP(GENIVI Development Platform) on R-CarM2 Porter の動かし方メモ。

# おさらい

GDP(GENIVI Development Platform) は、車載アライアンスの [GENIVI](https://www.genivi.org/) が策定するプラットフォームです。

[R-CarM2](https://www.renesas.com/ja-jp/solutions/automotive/products/rcar-m2.html) は Renesas さんの車載開発ボードです。
M2 は Middle レンジの第2世代、
[Porter](http://elinux.org/R-Car/Boards/Porter) は Low Cost Board/廉価版、の位置づけです。
購入する場合、マルツさん http://www.marutsu.co.jp/pc/i/599180/ などから5万円程度で購入できます。

![R-CarM2 Porter](http://elinux.org/images/8/81/PorterTopWithLabels_revC.png)

# 必要なもの

R-CarM2 Porter
HDMI Display
sdcard 16GB
microUSB - USB Cable
Ubuntu 14.04 PC
Windows PC (無くてもいい)
USB Hub (無くてもいい)
USB Keyboard (無くてもいい)
USB Mouse (無くてもいい)
LAN Cable (無くてもいい)


# 手順

基本的には
https://at.projects.genivi.org/wiki/display/GDP/Renesas+R-Car+M2+Porter+Hardware+Setup+and+Software+Installation
をなぞります。

多少手を入れないといけない＆日本語でまとめ直します。

## 1. ソース取得

```
$ mkdir GDP
$ cd GDP
$ git clone https://github.com/GENIVI/genivi-dev-platform.git
$ git checkout gdp-11
$ cd GDP/genivi-dev-platform
$ source init.sh porter
/GDP/genivi-dev-platform/gdp-src-build$ 

// Renesas さん HP https://www.renesas.com/ja-jp/solutions/automotive/rcar-demoboard.html 
// からパッケージ取得。
// （してなければ）登録。
// Car_Series_Evaluation_Software_Package_for_Linux-20151228.zip
// R-Car_Series_Evaluation_Software_Package_of_Linux_Drivers-20151228.zip
// を取得。

$ cd GDP
$ mkdir binary-tmp
$ cd binary-tmp
$ cp ~/Download/R-Car_Series_Evaluation_Software_Package_for_Linux-20151228.zip ./
$ cp ~/Download/R-Car_Series_Evaluation_Software_Package_of_Linux_Drivers-20151228.zip ./
$ cd ../genivi-dev-platform/meta-renesas/meta-rcar-gen2/
$ ./copy_gfx_software_porter.sh ../../../binary-tmp/
$ ./copy_mm_software_lcb.sh ../../../binary-tmp/
$ cd ../../gdp-src-build
```

## 2. 編集

```
GDP/genivi-dev-platform/gdp-src-build$ ls conf/
bblayers.conf  layer.conf  local.conf  templateconf.cfg  templates
$ vi conf/templates/local.inc

#USE_FAYTECH_MONITOR = "1"
のコメントアウトを取る。
```

## 3. ビルド

```
$ bitbake genivi-dev-platform
```

数時間放置。OS(uImage, rootfs, dtb ファイル) が出来る。

```
/GDP/genivi-dev-platform/gdp-src-build$ ls tmp/deploy/images/porter/
README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt
genivi-dev-platform-porter-20170223122652.rootfs.manifest
genivi-dev-platform-porter-20170223122652.rootfs.tar.bz2
genivi-dev-platform-porter.manifest
genivi-dev-platform-porter.tar.bz2
modules--3.10+gitef3cb04de0d01178a64fea73ffa4c5e21e79f310-r0-porter-20170223102512.tgz
modules-porter.tgz
u-boot-porter-v2013.01.01+gitAUTOINC+cb82c56b53-r0.bin
u-boot-porter-v2013.01.01+gitAUTOINC+cb82c56b53-r0.srec
u-boot-porter.bin
u-boot-porter.srec
u-boot.bin
u-boot.srec
uImage
uImage--3.10+gitef3cb04de0d01178a64fea73ffa4c5e21e79f310-r0-porter-20170223102512.bin
uImage--3.10+gitef3cb04de0d01178a64fea73ffa4c5e21e79f310-r0-r8a7791-porter-20170223102512.dtb
uImage-porter.bin
uImage-r8a7791-porter.dtb
zImage
zImage--3.10+gitef3cb04de0d01178a64fea73ffa4c5e21e79f310-r0-porter-20170223102512

// 使用するのは以下3ファイル。
genivi-dev-platform-porter.tar.bz2
uImage
uImage-r8a7791-porter.dtb
```

## 4. sdcard に OS 配置

sdcard 用意。
ubuntu GUI からフォーマット。
ディスク→初期化→名前は storage （何でも良い）, フォーマットは ext3

```
$ sudo tar --extract --numeric-owner --preserve-permissions --preserve-order --totals --directory=/media/nxdev/storage --file=genivi-dev-platform-porter.tar.bz2 
総読み込みバイト数: 736952320 (703MiB, 6.4MiB/s)
$ sudo cp --remove-destination uImage uImage-r8a7791-porter.dtb /media/nxdev/storage/boot
$ ls /media/nxdev/storage/boot/
uImage  uImage-3.10.31-ltsi  uImage-r8a7791-porter.dtb
```

## 5. 機材接続

Porter に 12V電源、ディスプレイ、LAN ケーブル、USB Hub、シリアル用ケーブル、キーボード、マウス、を接続して電源ON。
Windows PC から teraterm 起動。ボーレートは 38400。
（Ubuntu PC の minicom からでも出来るとのことですが、今回は動作未確認）

## 6. u-boot 環境変数更新

teraterm のシリアル接続から。

```
setenv ethaddr XX:XX:XX:XX:XX:XX
setenv setenv baudrate 38400
setenv ethact sh_eth
setenv bootargs_console console=ttySC6,${baudrate}
setenv bootargs_video vmalloc=384M video=HDMI-A-1:1024x768-32@60
setenv bootcmd_sd 'ext4load mmc 0:1 0x40007fc0 boot/uImage;ext4load mmc 0:1 0x40f00000 boot/uImage-r8a7791-porter.dtb'
setenv bootcmd 'setenv bootargs ${bootargs_console} ${bootargs_video} root=/dev/mmcblk0p1 rw rootfstype=ext3;run bootcmd_sd;bootm 0x40007fc0 - 0x40f00000'
saveenv
```

## 7. 実機起動

Porter 再起動。
SW26 か、 RESET ボタンか。

絵が出る。

![IMG_20170224_150234.jpg](https://qiita-image-store.s3.amazonaws.com/0/35514/9488a9b7-28a1-8c84-3815-cfc86d11b7dd.jpeg)

アイコンタッチして遊べます。
wayland/weston の ivi-shell が動いているので、wayland アプリ作って遊べそうです。

# まとめ

GDP(GENIVI Development Platform) on R-CarM2 Porter の動かし方をまとめました。


# 詰まったところ

当初は
https://at.projects.genivi.org/wiki/display/GDP/Renesas+R-Car+M2+Porter+Hardware+Setup+and+Software+Installation
の記述の通り gdp-11-rc2 branch (2017/2/23現在 tag に移動してる)を使用しましたが、
2017/2/23現在ビルドエラー発生。 yocto ビルド時、bb ファイルの SRC_URI とサーバー側の URL がずれている様子。
なので、新しめのソースなら問題発生しないと考え、2017/2/23現在の gdp-11 branch を使用しました。