Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
NetBSD/zaurus 8.1 をテストしたら動かなかったので動くまで直した話 / KOF2019-NetBSD
Izumi Tsutsui
November 08, 2019
Programming
1
710
NetBSD/zaurus 8.1 をテストしたら動かなかったので動くまで直した話 / KOF2019-NetBSD
関西オープンフォーラム2019 1日目 BSDなひととき で発表した「NetBSD/zaurus 8.1 をテストしたら動かなかったので動くまで直した話」のスライドです
Izumi Tsutsui
November 08, 2019
Tweet
Share
More Decks by Izumi Tsutsui
See All by Izumi Tsutsui
37年前の Sun 3/60 のために最新のNetBSDと最新のX.orgをメンテする話 / KOF2022
tsutsui
1
150
お歳暮で Sun3 が送られてきたので NetBSD/sun3 を展示デモしました / OSC2020Osaka
tsutsui
5
2.3k
NetBSD/zaurus 8.1 を直したあと ブース展示デモ内容を作った話 / OSC2019Tokyo-Fall
tsutsui
0
440
OSC京都 LUNA展示 9年目 / OSC2019Kyoto
tsutsui
0
420
NetBSDておくれLive Image UEFI対応 設計仕様検討メモ / NetBSD UEFI Live Image
tsutsui
0
290
emacs-18.59の会 / KOF2018-tokaidolug-LT
tsutsui
1
580
NetBSD 8.0 と dmesg投稿のススメ / KOF2018-NetBSD
tsutsui
0
1.4k
mikutter メンテから見る pkgsrc システム紹介 / mikutter Nagoya 2018
tsutsui
0
270
The history of NetBSD/atari and support for ATARI compatible Milan / OSC2018Osaka
tsutsui
1
1.3k
Other Decks in Programming
See All in Programming
データドリブンな組織の不正検知
fkubota
0
310
Unity+C#で学ぶ! メモリレイアウトとvtableのすゝめ 〜動的ポリモーフィズムを実現する仕組み〜
rossam
1
380
2023年にクル(かもしれない)通信ミドルウェア技術(仮)
s_hosoai
0
220
xarray-Datatree: Hierarchical Data Structures for Multi-Model Science
tomnicholas
0
240
Enumを自動で網羅的にテストしてみた
estie
0
1.4k
Hono v3 - Do Everything, Run Anywhere, But Small, And Faster
yusukebe
4
140
(新米)エンジニアリングマネージャーのしごと #RSGT2023
murabayashi
9
6k
CDKでValidationする本当の方法 / cdk-validation
gotok365
1
260
Swift Expression Macros: a practical introduction
kishikawakatsumi
2
740
ITエンジニア特化型Q&Aサイトteratailを 言語、DB、クラウドなど フルリプレイスした話
leveragestech
0
460
ちょうぜつ改め21世紀ふつうのソフトウェア設計
tanakahisateru
7
6.6k
Cloudflare Workersと状態管理
chimame
3
510
Featured
See All Featured
Building Your Own Lightsaber
phodgson
96
4.9k
YesSQL, Process and Tooling at Scale
rocio
159
12k
Practical Orchestrator
shlominoach
178
8.9k
Scaling GitHub
holman
453
140k
Intergalactic Javascript Robots from Outer Space
tanoku
261
26k
Building a Scalable Design System with Sketch
lauravandoore
451
31k
Raft: Consensus for Rubyists
vanstee
130
5.7k
It's Worth the Effort
3n
177
26k
Six Lessons from altMBA
skipperchong
15
2.3k
Designing the Hi-DPI Web
ddemaree
273
32k
Typedesign – Prime Four
hannesfritz
34
1.5k
From Idea to $5000 a Month in 5 Months
shpigford
374
44k
Transcript
NetBSD/zaurus 8.1 を テストしたら動かなかったので 動くまで直した話 関西オープンソース 2019 NetBSD SHARP 祭り@Kansai
Izumi Tsutsui
[email protected]
Twitter: @tsutsuii Mastodon: @
[email protected]
NetBSDと SHARP マシン
これだけ動きます 目のつけどころが? • X68030 (X68000+030アクセラレータも可) • SL Zaurus (いわゆる
リナザウ) • W-ZERO3 • NetWalker • あとTelios (WindowsCE MIPS機)とか
今でも 動くの?
二十年ふた昔 各マシンの発売年 • X68030 1993年 • SL Zaurus 2002年
• W-ZERO3 2005年 • NetWalker 2009年 • Telios 2000年?
NetBSD 最新リリース 9.0_BETA も進行中 • NetBSD 8.0: 2018/ 7/
4 • NetBSD 8.1: 2019/ 5/31 • netbsd-9 : 2019/ 7/30 ブランチ作成 NetBSD 9.0 は来年春までには出る??
NetBSD/x68k エミュレータで動きます →実機も展示中
NetBSD/zaurus もともと Linuxなので • OpenBSD/zaurus (2004年) がベース OpenBSD/zaurus は
6.0 で終了 • NetBSD/zaurus: 2006/12/17 コミット • 2011年? に SL-C1000サポート (このころに実機をジャンクで入手) • 2012年に SL-C7x0/860サポート
起動動画もあります https://www.youtube.com/watch?v=Jq5ZHwum5vM
Zaurus と OSC Twitterで拉致事件 https://twitter.com/tristelo/status/133912360040677376
https://togetter.com/li/242873
OSC東京 2011 秋 http://movapic.com/pic/201111191552144ec7521e3419f
NetBSD/zaurus Live Image C7x0サポートの 2012年作成 https://togetter.com/li/243703
Kapperさんによる紹介 いつもありがとうございます https://www.slideshare.net/kapper1224/beginner-for-install-archlinux-and-netbsd-in-linuxzaurus-i n-2019-archlinuxnetbsd-in-linux-zaurus-162939626
https://www.amazon.co.jp/gp/customer-reviews/R2TR7CA91F7AXJ
そういえば ここ数年 Zaurus を さわってない
Live Imageを作った NetBSD 6.1.3?くらいから 放置してたのですが、 せっかく紹介して いただいたので 今はどうかなとテスト
NetBSD/zaurus 7.2 は起動 8.1 はカーネルロード後ハング port-zaurus ML
にもハング報告が とりあえずの検証結果 https://mail-index.netbsd.org/port-zaurus/2017/04/02/msg000066.html
NetBSD/zaurus 起動方法 ちょっと面倒 • Zaurus純正 Linux を起動 • BSDカーネルロード用のLinuxカーネル
モジュール (zbsdmod.o) を組み込み • /proc/zboot に NetBSDカーネルを 書き込むとカーネルが起動する • zboot という NetBSD FFSからロード するツールもあり ⇒これらの組み合わせ検証が面倒だったり
7.2→8.1 変化点検証 地味作業① • リンカスクリプトの変更を 戻すと起動する? • 変更考慮漏れでカーネルエント リアドレスが変わってしまって
いた →修正
7.2→8.1 変化点検証 地味作業② • zbsdmod.o の違いは gcc更新に よるアドレスずれ? •
各種比較検証の結果、 カーネルジャンプ命令周辺を キャッシュラインに整列させた ら起動 →修正
7.2→8.1 変化点検証 地味作業③ • zbsdmod.o を直しても読めない カーネルがある? • コードをながめてみて、なんと
なくダメっぽく見えたので bssクリア処理を追加 →ダメなカーネルもロードOK
7.2→8.1 変化点検証 地味作業④ • GENERICカーネルを起動すると ”Alignment Fault 3” と言われて落ちる
• 野生の勘でフレームバッファの rasops が怪しい? と調べて 実装ミスを確認 →修正
さらに動作検証 地味作業⑤ • disklabel(8) や fdisk(8) が 動かない •
MAKEDEV(8) スクリプトの Rawパーティション判定が 間違っている →send-pr して修正されました
さらに動作検証 地味作業⑥ • Xサーバーで画面回転設定時の 表示がおかしくなる • 検証未です(すいません) • 7.2の
Xorgサーバーバイナリを 持ってくるととりあえず 動きます
さらに動作検証 地味作業⑦ • 9.0_BETA だとXサーバーで キーボード入力できない • 必要なカーネルオプションが 無効化されてしまっていたので
戻す(ついでにコンパイルエ ラーも発覚したので修正)
さらに動作検証 地味作業⑧ • 9.0_BETA の audio 修正後も C760/C860だと認識されない •
カーネル設定によっては動く? • 散々調べて delay(9) 実装のバグ と発覚 →修正
ついでに改善 地味作業⑨ • zbsdmod.o でのデバッガ用 シンボルテーブル読み込みを 動くようにしてカーネルサイズ 削減 •
KOFにコミットします
というわけで展示準備
放置するとバグがたまっていくので 定期的に起動するようにしましょう 基本は差分探索でしんどいですが 狙い通り直るとヨッシャ感あります 音が鳴って動画が動くとたのしい! 使ってもらえるとさらにうれしい!
Kapperさん、ありがとうございました! まとめ