1
@tnishinaga 
2
活動 
• 技術書執筆 
– 「BareMetalで遊ぶ Raspberry Pi」 
(達人出版会) 
http://tatsu-zine.com/books/raspi-bm
楽園追放 
アンジェラちゃん 
を愛でに来ました 
4
アンジェラちゃん 
かわいい! 
5
  ☝ 
        ՞ 
 _人人人人人人_ 
 > (     ) <  ☞ 
 ‾Y^Y^YY^Y^Y‾ 
 ՞ 
      ਊ 
   ∞ 
   ∫ 
,';:☜;.`,ਊ,,;';,;☞,.՞ 
՞ 
6
最近遊んだLinuxボードたち 
@tnishinaga 
7
今回の内容 
8
最近遊んだLinuxボード 
をご紹介。 
9
中途半端なの多いです 
ご容赦を…… 
10
おしながき 
11 
• Intelのあれ 
• 狂気のSATA 
• ブラックロック☆美少女
Section 1 
Intelのあれ 
12
13
SHARP Zaurus SL 
• 私が初めて知ったPDA 
– 当時、中学生 
– 財布の事情で購入できず 
• 憧れの機体 
• 最近親切な人からSL-C3200を譲り受ける 
14
憧れの機体で遊びたい 
• しかし、いろいろ古すぎ。 
– CPU: Intel Xscale PXA270 416MHz 
– Arch: ARM v5 
– OS: Linux Kernel v2.4 
15
とりあえず 
カーネルを 
最新にしたい 
17
カーネル書き換え計画 
1. シリアルコンソールにアクセスする 
2. 内部構造を調べる 
3. カーネルをコンパイルする 
4. カーネルを焼く 
18
カーネル書き換え計画 
1. シリアルコンソールにアクセスする 
2. 内部構造を調べる 
3. カーネルをコンパイルする 
4. カーネルを焼く 
19
Zaurus SL-C3200 の I/Oポート 
• SL-CシリーズはI/Oポートからシリアル 
を引っ張り出せる 
– I/Oポートの仕様は以下 
• http://support.ezaurus.com/developer/doc/ 
hardware.asp 
• コネクタは既存製品から調達すると良い 
– ヤフオクで300円で調達 
20
これを 
21
こうして 
22
こうじゃ 
23
やったぜ 
24
疲れたので中断。 
次。 
25
Section 2 
狂気のSATA 
26
覚えてますか 
27
Plug Computer 
28
Plug Computer 
• 電源プラグとLinuxボードが合体した製品 
– 製品例 
• SheevaPlug 
• GuruPlug 
• PogoPlug 
• 当時、高校生 
– 二次元美少女ゲームを買うのに必死で買えず。 
– 最近はPogoPlugがヤフオクで1000円ぐらい。 
29
購入。 
30
PogoPlug V3 Pro spec 
• CPU: PLX 7820 700MHz Dual-core 
• Arch: ARMv6l ARM11 mpcore 
• RAM: 128MB 
• NAND: 128MB 
• Ethernet: Gigabit 
• Option: SATA 
• OS: Linux Kernel v2.6 
31
PogoPlug V3 Pro spec 
• CPU: PLX 7820 700MHz Dual-core 
• Arch: ARMv6l ARM11 mpcore 
• RAM: 128MB 
• NAND: 128MB 
• Ethernet: Gigabit 
• Option: SATA 
• OS: Linux Kernel v2.6 
32
目的 
• GigabitとSATAを活かしてNASとして 
復活させたい 
– どうせならBtrFSとか使えるようにしたい 
• そのためにはちょっとカーネルが古いので 
新しくしたい 
33
最初にやること 
• mini PCIの無線LAN 
カードを抜く。 
– 技適怖い。 
34
Re: カーネル書き換え計画 
1. シリアルコンソールにアクセスする 
2. 内部構造を調べる 
3. カーネルをコンパイルする 
4. カーネルを焼く 
35
Re: カーネル書き換え計画 
1. シリアルコンソールにアクセスする 
2. 内部構造を調べる 
3. カーネルをコンパイルする 
4. カーネルを焼く 
36
PogoPlugのシリアル 
• 3.3vですでに出ている。 
• やるだけ。 
37
Re: カーネル書き換え計画 
1. シリアルコンソールにアクセスする 
2. 内部構造を調べる 
3. カーネルをコンパイルする 
4. カーネルを焼く 
38
PogoPlug内部構造 
• カーネルはNAND上に 
– U-Boot 
– Kernel 
– Rootfs 
の順で格納されている 
• このKernelを新しいKernelで書き換えれば良 
いはず。 
39
Re: カーネル書き換え計画 
1. シリアルコンソールにアクセスする 
2. 内部構造を調べる 
3. カーネルをコンパイルする 
4. カーネルを焼く 
40
Kernelコンパイル 
• Pogoのソースは公開されている 
– http://pogoplug.com/opensource 
• 適当にコンパイル。 
uBootイメージを作る 
41
Re: カーネル書き換え計画 
1. シリアルコンソールにアクセスする 
2. 内部構造を調べる 
3. カーネルをコンパイルする 
4. カーネルを焼く 
42
レッツNAND焼き 
• Kernelのいる0x500000, 0xB00000に 
Linuxシステム上から書き込む 
• れっつ再起動 
43
• Stating Kernel 
44
45
おめでとうございます 
46
47
48
立派な文鎮の完成です 
49
敗因? 
• エントリーポイントを間違えた? 
– 0x60008000だった可能性大 
• 2.6 → 3.xでDTBとかが増えて方法が 
変わったのを失念 
50
PogoPlug V3 Pro spec 
• CPU: PLX 7820 700MHz Dual-core 
• Arch: ARMv6l ARM11 mpcore 
• RAM: 128MB 
• NAND: 128MB 
• Ethernet: Gigabit 
• Option: SATA 
• OS: Linux Kernel v2.6 
51
敗因? 
• エントリーポイントを間違えた? 
– 0x60008000だった可能性大 
• 2.6 → 3.xでDTBとかが増えて方法が 
変わったのを失念 
52
今後の方針 
• SATAにHDDつながってると、 
SATAから起動するっぽい? 
• ここから復旧できるかも 
• すでに3.17入れる方法公開されてた 
• http://forum.doozan.com/read.php?2,16044 
– 復旧できたら、ここをみてやり直す 
53
卒研が忙しくて中断。 
次。 
54
Section 3 
ブラックロック☆美少女 
55
モノクロ液晶で 
二次元美少女を 
愛でてたい 
56
f (x) = 
57
(x)・ 
58 
Raspberry Pi Nokia 5110 
Mono Display
f(二次元美少女動画) 
59
= こころぴょんぴょん 
60
実装内容 
1. RasPiで動画を縮小+モノクロにする 
2. RasPiから画面に出力する 
61
実装内容 
1. RasPiで動画を縮小+モノクロにする 
2. RasPiから画面に出力する 
62
動画の縮小+モノクロ化 
• OpenCV + Python 
• モノクロ化手順 
– 動画読み込み 
– グレイスケール化 
– 縮小 
– ガウス分布を用いた二値 
化 
63
実装内容 
1. RasPiで動画を縮小+モノクロにする 
2. RasPiから画面に出力する 
64
Nokia 5110液晶への出力 
• ライブラリを使用 
– https://github.com/rm-hull/pcd8544 
• PIL→Imageに変換して送り込めばOK 
65
完成 
TODO: デモ動画 
66
完成 
※著作権OKな動画が無いためデモ不可※ 
67
TODO 
• 問題: 動画の読み込みが糞遅い 
• 動画の読み込みに 
ハードウェアデコード機能を使う 
68
  ☝ 
        ՞ 
 _人人人人人人_ 
 > (     ) <  ☞ 
 ‾Y^Y^YY^Y^Y‾ 
 ՞ 
      ਊ 
   ∞ 
   ∫ 
,';:☜;.`,ਊ,,;';,;☞,.՞ 
՞ 
69 
おわり

最近遊んだLinuxボードたち