Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
NetBSD/evbarm on Radxa Rock
Search
adukot
October 19, 2014
Technology
1
910
NetBSD/evbarm on Radxa Rock
NetBSD/evbarm on Radxa Rock
Radxa Rock is Rockchip RK3188 based Single Board Computer.
adukot
October 19, 2014
Tweet
Share
More Decks by adukot
See All by adukot
NetBSD/evbmips on Linino ONE and USB Serial 2015
adukot
0
1.2k
Other Decks in Technology
See All in Technology
Observability for LLM Application lifecycle
ivry_presentationmaterials
1
160
薬屋のひとりごとにみるトラブルシューティング
tomokusaba
0
400
ウォンテッドリーのアラート設計と Datadog 移行での知見
donkomura
0
220
文字列の並び順 / String Collation
tmtms
1
110
GCASアップデート(202506-202508)
techniczna
0
220
プロダクトエンジニアリングで開発の楽しさを拡張する話
barometrica
0
210
はじめての転職講座/The Guide of First Career Change
kwappa
5
4.5k
20250807 Applied Engineer Open House
sakana_ai
PRO
2
640
信頼できる開発プラットフォームをどう作るか?-Governance as Codeと継続的監視/フィードバックが導くPlatform Engineeringの進め方
yuriemori
1
230
JOAI発表資料 @ 関東kaggler会
joai_committee
1
130
Amazon S3 Vectorsは大規模ベクトル検索を低コスト化するサーバーレスなベクトルデータベースだ #jawsugsaga / S3 Vectors As A Serverless Vector Database
quiver
2
1k
Cloud WANの基礎から応用~少しだけDeep Dive~
masakiokuda
4
130
Featured
See All Featured
Docker and Python
trallard
45
3.5k
Art, The Web, and Tiny UX
lynnandtonic
301
21k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Optimizing for Happiness
mojombo
379
70k
The Cult of Friendly URLs
andyhume
79
6.5k
Building Adaptive Systems
keathley
43
2.7k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
The World Runs on Bad Software
bkeepers
PRO
70
11k
Designing for humans not robots
tammielis
253
25k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
Transcript
NetBSD/evbarm on Radxa Rock @tokudahiroshi
Radxa Rockとは? • Rockchip RK3188 based Single Board Computer. •
Cortex A9 Quad Core 1.6GHz • 2GB RAM, 8GB Flash, MicroSD SDXC • Mali400, HDMI, Avoutput • 10/100M Ether, 802.11b/g/n, Bluetooth4.0 • USB2.0, micro-USB OTG • IR remote http://www.radxa.org/
NetBSD/evbarm on Radxa Rock • らくらく3ステップ • カーネルの移植 • カーネルをロード
• カーネルを実行 • いろいろつまづくこともあります • シリアルコンソール • ブートローダ
USBシリアルケーブル2014 • おなじみ秋月のシリアルケーブル • FTDI • 1,580円 • BeagleBone Blackだとばっちり
• ケーブル長1.8m • ジャンパーケーブル必要 • http://akizukidenshi.com/catalog/g/gM-05840/
USBシリアルケーブル2014 • 新たな選択、千石のシリアルケーブル • PL2303 • 880円 • ジャンパーケーブル不要 •
ケーブル長1m • Windowsドライバは工夫が必要 • PL2303_Prolific_DriverInstaller_v1.5.0.zip • http://www.sengoku.co.jp/mod/sgk_cart/detail .php?code=EEHD-4HJ7
ドライバのバージョンを切り替える
microSDからのブート • androtab.infoが大変すばらしい • http://androtab.info/radxa_rock/sdboot/ • dd最強です dd if=sdboot_rk3188.img of=/dev/sd0d
conv=sync,fsync dd if=parameter.img of=/dev/sd0d conv=sync seek=$((0x2000)) dd if=kernel.img of=/dev/sd0d conv=sync seek=$((0x2000+0x4000)) dd if=boot.img of=/dev/sd0d conv=sync seek=$((0x2000+0xc000)) • つまりkernel.imgをnetbsd.binに入れ替えればOK • かと思いきや、うまく動かない問題
microSDからのブート • ひと手間かけてrkcrc • https://github.com/naobsd/rkutils # gcc -o rkcrc rkcrc.c;
cp /usr/bin # rkcrc -k netbsd.bin netbsd.img # dd if=netbsd.img of=/dev/sd0d conv=sync seek=$((0x2000+0x4000))
ある日の出来事 kernelとかUSBから突っ込んで起動とは?
SD-RAMからの起動 • 母艦からkernelをRadxa RockのSD-RAMに転 送し、そのまま実行するということ • 道具は二つ (u-bootとrkflashtool) • http://files.androtab.info/radxa/sdboot_rk3188.zip
• github.com/linux-rockchip/rkflashtool • まずはmicroSDを作成し、ブートする # dd if=sd_header_64.enc of=/dev/sd0d conv=sync seek=64 # dd if=FlashData.bin of=/dev/sd0d conv=sync seek=68 # dd if=FlashBoot.bin of=/dev/sd0d conv=sync seek=92 # dd if=parameter.img of=/dev/sd0d conv=sync seek=$((0x2000+0x0))
SD-RAMからの起動 • rkflashtoolを作る 1.pkgsrcからgmake, libusb1をインストール 2.githubからlinux-rockchip/rkflashtoolを持ってくる 3.LDFLAGSにLIBUSB=/usr/pkgと-R/usr/pkg/lib足して gmake • rkflashtoolでカーネルを転送、実行
# rkflashtool M 0x60408000 0x1000000 < /usr/obj/sys/arch/evbarm/compile/RADXA/netbsd.bin # rkflashtool B 0x60408000 0x60408000 • この場合のカーネルはrkcrcしなくてよい • microSDの抜き差しがないため、大変便利です
つついさん曰く NetBSD移植 いまむかし, Tsutsui Izumi, OSC2012愛媛 より http://www.ceres.dti.ne.jp/tsutsui/osc12eh/img32.html
今回の移植 • 既存のCortex向けドライバを動かしただけ • gic: 割り込みコントローラ • pl310: L2キャッシュコントローラ •
a9tmr: グローバルタイマ • a9wdt: ウォッチドッグ • シリアルコンソール • comドライバでOK、ただし16750じゃないとダメ • a9_mpsubr.cに一文字出力用xputcが存在していた
移植の記録 • 2014年7月30日 やる気を出し始める (sdboot) • 2014年9月2日 移植スタート • 2014年9月4日
シリアルから文字が出る • 2014年9月8日 Cの世界へ (initarm) • 2014年9月11日 printfが動く • 2014年9月14日 NetBSDバナー表示 • 2014年9月29日 /bin/shが動いた • 2014年10月9日
[email protected]
に報告
まとめ • Radxa Rockは良い • 解析情報やブートまわりの情報が多め (Thanks! @naobsd) • 電子工作不要
• USB経由で快適開発 • NetBSD上で完結 (ツール類含めて) • NetBSDが動くと楽しい • 既存資産があると手軽 • 適切な課題設定が大切(よくばらない) • USBとか動かしたいなー