カーネルソースの歩き方
RaspberryPi演習
TOPPERS/SSPカーネルソース勉強会
アライブビジョンソフトウェア株式会社 髙橋和浩

SWEST17 カーネルソースの歩き方
RaspberryPi演習

1

概要
TOPEPRS/SSP編 TOPPERS/SSP(smallestset profile)は、ITRONの最小セットプロファイルに対応した「待ち」状態のないカーネルの公開ソースコードです。昨年から名古屋市工業研究所の主催で継続中のカーネルソース勉強会の成果として、RaspberryPiへの移植版を実際に演習します。
SWEST17 カーネルソースの歩き方
RaspberryPi演習

2目標 目的Linuxが動くものをベアメタルベースのTOPPERSで動作させる目的は？
 例えば….
 RaspberryPi買ったがあまり使っていない マイコンボードと共用したい。何もない状態でLEDチカしたい ARMの学習、ARMアセンブラの学習
SWEST17 カーネルソースの歩き方
RaspberryPi演習

3

動かすまでの流れその1
1.必要機材
1)RasberryPi B /B+ /2のいずれか
2)TTLシリアルケーブル (PL2303HX)
3)SDカード(B+ 2の場合はmicroSD)
100MBもあれば十分

SWEST17 カーネルソースの歩き方
RaspberryPi演習

4動かすまでの流れその22.必要なソフトのダウンロード
1)RaspberryPI用SHRINK版SSPフル
2)RaspberryPI用ブートローダーファイル
3)SDFormatter4)teraterm
5)PL2303HXドライバ
6)ARM用クロスコンパイラ
7)eclipese Pleiades All in One 日本語ディスト
リビューション
SWEST17 カーネルソースの歩き方
RaspberryPi演習

5動かすまでの流れその3
3.ビルド環境の構築
Windows環境での方法を紹介します
4.SDカードの準備
5.シリアルドライバとターミナルソフトの設定
6.ビルドと実行

SWEST17 カーネルソースの歩き方
RaspberryPi演習

6

機材（TTLシリアルケーブルなど)


SWEST会場では、ケーブルをいくつか貸し出しています。5V電源をとる場合は接続にご注意ください。

SWEST17 カーネルソースの歩き方
RaspberryPi演習

7

ビルド環境構築
1.Eclipse Windows環境
オールインワンで、MingWも同時セットアップされます。IDE環境とCUIといずれも使用できます。
 2.VMware上のubuntu 32bit環境
ARMクロスコンパイラもセットアップ済
 上記いずれかですが、前者Eclipse環境をベースに説明をします。以降CUIでの説明になります。
またVmwareは付録ページ参照ください。
SWEST17 カーネルソースの歩き方
RaspberryPi演習

8

Pleiades All in One 日本語ディストリビュー
ション のダウンロードと設定その1以下のURLの C/C++
 64bit Full Editionをダウンロードします。
バージョンは Eclipse 4.3.2 Kepler ケプラー
SR2 for Windows ベース です
http://mergedoc.osdn.jp/#pleiades.html
SWEST17 カーネルソースの歩き方
RaspberryPi演習

9

Pleiades All in One 日本語ディストリビュー
ション のダウンロードと設定その2

SWEST17 カーネルソースの歩き方
RaspberryPi演習

10

Pleiades All in One 日本語ディストリビュー
ション のダウンロードと設定その3Zipファイルを解凍して、そのまま使います。
 CUIを使う場合は、


解凍フォルダ¥eclipse¥mingw¥msys.bat

参考までにIDEを使う場合は、



解凍フォルダ¥eclipse¥eclipse.exe

SWEST17 カーネルソースの歩き方
RaspberryPi演習

11コンパイラのダウンロードと設定その1


GCC ARM Embedded 以下のバージョンをダウンロード

https://launchpad.net/gcc-armembedded/4.8/4.8-2014-q3-update 以下のファイルをクリックしてインストール
gcc-arm-none-eabi-4_8-2014q320140805-win32.exe

インストール時にPATHの設定のチェックを入れます
SWEST17 カーネルソースの歩き方
RaspberryPi演習

12コンパイラのダウンロードと設定その2

SWEST17 カーネルソースの歩き方
RaspberryPi演習

13

SWEST17 カーネルソースの歩き方
RaspberryPi演習

14

シリアルドライバとターミナルソフトの設定その1


PL2303HXは最新版はWindows8 8.1は対応していませんが、旧バージョンが利用できます。
注意：設定変更により、Windowsに支障がある場合もありますのでご注意ください。
ドライバ以下のURLの v1.5.0を利用ください
http://akizukidenshi.com/catalog/faq/goodsfaq.aspx?goods=M00720
以下のファイルを解凍、PL2303_Prolific_DriverInstaller_v1.5.0.zip
以下のファイル（インストーラ）を実行
PL2303_Prolific_DriverInstaller_v1.5.0
デバイスマネージャーで、動作していない場合は、ドライバファイルを指定しなおしてください
結果的に次のバージョンが確認できればOKです
SWEST17 カーネルソースの歩き方
RaspberryPi演習

15

シリアルドライバとターミナルソフトの設定その2SWEST17 カーネルソースの歩き方
RaspberryPi演習

16

シリアルドライバとターミナルソフトの設定その3
Teratermをインストールします。

SWEST17 カーネルソースの歩き方
RaspberryPi演習

17

SDカードの準備その1
SDカードは、FAT32にてフォーマット
SDcardformatter 4.0でFAT32でフォーマット
https://www.sdcard.org/jp/downloads/formatter_4/
 以下のURLからブートローダーをダウンロード
https://github.com/raspberrypi/firmware/tree/master/bootBootcode.bin と start.elf の2つ
この2つのファイルをSDカードにコピー さらに config.txt というファイル名に中身を以下の内容のものをSDカードに置く
kernel=rpi-micon.img


SWEST17 カーネルソースの歩き方
RaspberryPi演習

18

SDカードの準備その2

SWEST17 カーネルソースの歩き方
RaspberryPi演習

19ソースのダウンロードとビルドその1
RaspberryPI用SHRINK版SSPフルをダウンロードして解凍します。
https://github.com/alvstakahashi/RPISHRINK-SSP-FULL「Download ZIP」ボタンでダウンロードします。

SWEST17 カーネルソースの歩き方
RaspberryPi演習

20ソースのダウンロードとビルドその2

SWEST17 カーネルソースの歩き方
RaspberryPi演習

21ソースのダウンロードとビルドその3


Mingwのhomeに解凍した場合

SWEST17 カーネルソースの歩き方
RaspberryPi演習

22ソースのダウンロードとビルドその4$make clean 後 makeします。
$make RPITYPE=RPI2

SWEST17 カーネルソースの歩き方
RaspberryPi演習

23

SWEST17 カーネルソースの歩き方
RaspberryPi演習

24

プログラムの実行その1
SDカードに rpi-micon.img をコピー
 TTLシリアルケーブル接続
 PIN 2(5V)–- 接続しません
 PIN 6(GND)-- 黒 GND PIN 8(TX)-- 白 (RX) PIN 10(RX)-- 緑 (TX)
SWEST17 カーネルソースの歩き方
RaspberryPi演習

25

プログラムの実行その2

電源が入るとプログラムは動作します。

SWEST17 カーネルソースの歩き方
RaspberryPi演習

26

プログラムの実行その31)ターミナルの準備 USBシリアルのポート番号を確認して、そのポートでターミナルソフトを起動します。
 設定
 115200BPS 8none1bit フロー制御なし 端末はLFコード
SWEST17 カーネルソースの歩き方
RaspberryPi演習

27

プログラムの実行その4お疲れ様でした。

SWEST17 カーネルソースの歩き方
RaspberryPi演習

28

今後の展開（やりたいこと）
OS無環境でのmrubyのプラットフォーム

SWEST17 カーネルソースの歩き方
RaspberryPi演習

29

ありがとうございました。
https://github.com/alvstakahashi(OtherService)
 弊社ウェブサイト http://homepage3.nifty.com/ALVS/ Facebook
 https://www.facebook.com/firstandlasta
ndallways


SWEST17 カーネルソースの歩き方
RaspberryPi演習

30

付録
VMwareのubuntu 32bitを使う場合その1
Pleiades All in One 日本語ディストリビューショ
ンを使わない場合は、こちらの方法でビルド環境を利用します。
 クロスコンパイラの設定済みですので、ファイルが大きいですが、設定は基本的にありません。
 必要なソフト VMwarePlayer 6.x (非商用無償版）
 VMwarePlayerのインストールは割愛します。
SWEST17 カーネルソースの歩き方
RaspberryPi演習

31

付録
VMwareのubuntu 32bitを使う場合その2以下から、VMwareイメージをダウンロードします。

http://dev.toppers.jp/trac_user/contrib/browser/CROS-TOOLVMWARE/Ubuntu1404%20x86%20for%20ARM%20CROSS4.8.7z
VMwarePlayerから、仮想マシンを開いてください。
Ubuntu1404 x86 for ARM CROSS.vmx
ユーザー toppers パスワード toppers
USB2.0のUSBメモリアダプタなら、仮想マシンから直接SDカードにアクセス可能です。
起動後再度オプションの共有フォルダを設定するとWindowsとファイル交換できます。

PL2303HXのドライバもインストールされているのでgtktermのインストールすればターミナルも利用できます。
SWEST17 カーネルソースの歩き方
RaspberryPi演習

32