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
[OCI Technical Deep Dive] OCIで生成AIを活用するためのソリューション解説(2025年8月5日開催)
oracle4engineer
PRO
0
130
EKS Pod Identity における推移的な session tags
z63d
1
170
AIに頼りすぎない新人育成術
cuebic9bic
3
340
Backboneとしてのtimm2025
yu4u
3
710
あとはAIに任せて人間は自由に生きる
kentaro
3
720
AIドリブンのソフトウェア開発 - うまいやり方とまずいやり方
okdt
PRO
7
190
UDDのススメ - 拡張版 -
maguroalternative
1
630
Amazon Bedrock AgentCore でプロモーション用動画生成エージェントを開発する
nasuvitz
6
250
Observability for LLM Application lifecycle
ivry_presentationmaterials
1
160
薬屋のひとりごとにみるトラブルシューティング
tomokusaba
0
390
Engineering Failure-Resilient Systems
infraplumber0
0
130
LLM 機能を支える Langfuse / ClickHouse のサーバレス化
yuu26
9
2.7k
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
770
The Cost Of JavaScript in 2023
addyosmani
53
8.8k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.4k
Scaling GitHub
holman
462
140k
How to Ace a Technical Interview
jacobian
279
23k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Bash Introduction
62gerente
614
210k
Code Review Best Practice
trishagee
69
19k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.8k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
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とか動かしたいなー