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
980
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
NetBSD/evbarm on Radxa Rock
NetBSD/evbarm on Radxa Rock
Radxa Rock is Rockchip RK3188 based Single Board Computer.
adukot
October 19, 2014
More Decks by adukot
See All by adukot
NetBSD/evbmips on Linino ONE and USB Serial 2015
adukot
0
1.3k
Other Decks in Technology
See All in Technology
SnowflakeCoCoでデータエンジニアリング!
foursue
0
170
AIが自社のTableauを操作する世界へ:Tableau MCP超入門
tbtykk
0
110
AIがコードを書く時代、人間は何を保証するのか———馬場さんと考える、開発者に求められる新しい責任と価値 - TECH PLAY
netmarkjp
0
1.3k
JavaScript 研修 (2026)
recruitengineers
PRO
0
120
[しろおび夏祭り2026] チャットするAIから、作業するAIへ - 使われ方の変化と、その裏側で起きていること
kk0n
0
1.5k
AIがAPIを書く時代に、私たちは何を設計すべきか
nagix
0
210
ラジオの科学
frievea
0
170
名古屋の市バスGTFS-JPデータ×スガキヤ 最寄りバス停検索をAmazon ElastiCache Serverless for Valkeyで最適化する
usanchuu
1
250
【CEDEC2026】『Relink』を拡張せよ - 『GRANBLUE FANTASY: Relink - Endless Ragnarok』の開発速度と品質を守るCI運用
cygames
PRO
0
110
AIエージェントを前提としたプラットフォーム エンジニアリング:GKEで作るAgent-Ready Golden Path
legalontechnologies
PRO
1
150
モノリス Rails でも日中に rails db:migrate を走らせたい! / Daytime rails db:migrate on Monolithic Rails!
euglena1215
0
110
Forza Horizon 6 のテレメトリ機能で 自動運転に使えそうな学習データを集める話
henjin0
0
120
Featured
See All Featured
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
250
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
630
GraphQLとの向き合い方2022年版
quramy
50
15k
Believing is Seeing
oripsolob
1
180
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Skip the Path - Find Your Career Trail
mkilby
1
180
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
420
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
360
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
The Invisible Side of Design
smashingmag
301
52k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
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とか動かしたいなー