Upgrade to Pro — share decks privately, control downloads, hide ads and more …

NetBSD/zaurus 8.1 をテストしたら動かなかったので動くまで直した話 / KOF2019-NetBSD

NetBSD/zaurus 8.1 をテストしたら動かなかったので動くまで直した話 / KOF2019-NetBSD

関西オープンフォーラム2019 1日目 BSDなひととき で発表した「NetBSD/zaurus 8.1 をテストしたら動かなかったので動くまで直した話」のスライドです

7fe50ce1ac047336d7804e47aec56391?s=128

Izumi Tsutsui

November 08, 2019
Tweet

Transcript

  1. NetBSD/zaurus 8.1 を テストしたら動かなかったので 動くまで直した話 関西オープンソース 2019 NetBSD SHARP 祭り@Kansai

    Izumi Tsutsui tsutsui@NetBSD.org Twitter: @tsutsuii Mastodon: @tsutsuii@social.mikutter.hachune.net
  2. NetBSDと SHARP マシン

  3. これだけ動きます  目のつけどころが? • X68030 (X68000+030アクセラレータも可) • SL Zaurus (いわゆる

    リナザウ) • W-ZERO3 • NetWalker • あとTelios (WindowsCE MIPS機)とか
  4. 今でも 動くの?

  5. 二十年ふた昔  各マシンの発売年 • X68030 1993年 • SL Zaurus 2002年

    • W-ZERO3 2005年 • NetWalker 2009年 • Telios 2000年?
  6. NetBSD 最新リリース  9.0_BETA も進行中 • NetBSD 8.0: 2018/ 7/

    4 • NetBSD 8.1: 2019/ 5/31 • netbsd-9 : 2019/ 7/30 ブランチ作成 NetBSD 9.0 は来年春までには出る??
  7. NetBSD/x68k  エミュレータで動きます →実機も展示中

  8. NetBSD/zaurus  もともと Linuxなので • OpenBSD/zaurus (2004年) がベース OpenBSD/zaurus は

    6.0 で終了 • NetBSD/zaurus: 2006/12/17 コミット • 2011年? に SL-C1000サポート (このころに実機をジャンクで入手) • 2012年に SL-C7x0/860サポート
  9. 起動動画もあります https://www.youtube.com/watch?v=Jq5ZHwum5vM

  10. Zaurus と OSC  Twitterで拉致事件 https://twitter.com/tristelo/status/133912360040677376

  11. https://togetter.com/li/242873

  12. OSC東京 2011 秋 http://movapic.com/pic/201111191552144ec7521e3419f

  13. NetBSD/zaurus Live Image  C7x0サポートの 2012年作成 https://togetter.com/li/243703

  14. Kapperさんによる紹介  いつもありがとうございます https://www.slideshare.net/kapper1224/beginner-for-install-archlinux-and-netbsd-in-linuxzaurus-i n-2019-archlinuxnetbsd-in-linux-zaurus-162939626

  15. https://www.amazon.co.jp/gp/customer-reviews/R2TR7CA91F7AXJ

  16. そういえば ここ数年 Zaurus を さわってない

  17. Live Imageを作った NetBSD 6.1.3?くらいから 放置してたのですが、 せっかく紹介して いただいたので 今はどうかなとテスト

  18.  NetBSD/zaurus 7.2 は起動  8.1 はカーネルロード後ハング  port-zaurus ML

    にもハング報告が とりあえずの検証結果 https://mail-index.netbsd.org/port-zaurus/2017/04/02/msg000066.html
  19. NetBSD/zaurus 起動方法  ちょっと面倒 • Zaurus純正 Linux を起動 • BSDカーネルロード用のLinuxカーネル

    モジュール (zbsdmod.o) を組み込み • /proc/zboot に NetBSDカーネルを 書き込むとカーネルが起動する • zboot という NetBSD FFSからロード するツールもあり ⇒これらの組み合わせ検証が面倒だったり
  20. 7.2→8.1 変化点検証  地味作業① • リンカスクリプトの変更を 戻すと起動する? • 変更考慮漏れでカーネルエント リアドレスが変わってしまって

    いた →修正
  21. 7.2→8.1 変化点検証  地味作業② • zbsdmod.o の違いは gcc更新に よるアドレスずれ? •

    各種比較検証の結果、 カーネルジャンプ命令周辺を キャッシュラインに整列させた ら起動 →修正
  22. 7.2→8.1 変化点検証  地味作業③ • zbsdmod.o を直しても読めない カーネルがある? • コードをながめてみて、なんと

    なくダメっぽく見えたので bssクリア処理を追加 →ダメなカーネルもロードOK
  23. 7.2→8.1 変化点検証  地味作業④ • GENERICカーネルを起動すると ”Alignment Fault 3” と言われて落ちる

    • 野生の勘でフレームバッファの rasops が怪しい? と調べて 実装ミスを確認 →修正
  24. さらに動作検証  地味作業⑤ • disklabel(8) や fdisk(8) が 動かない •

    MAKEDEV(8) スクリプトの Rawパーティション判定が 間違っている →send-pr して修正されました
  25. さらに動作検証  地味作業⑥ • Xサーバーで画面回転設定時の 表示がおかしくなる • 検証未です(すいません) • 7.2の

    Xorgサーバーバイナリを 持ってくるととりあえず 動きます
  26. さらに動作検証  地味作業⑦ • 9.0_BETA だとXサーバーで キーボード入力できない • 必要なカーネルオプションが 無効化されてしまっていたので

    戻す(ついでにコンパイルエ ラーも発覚したので修正)
  27. さらに動作検証  地味作業⑧ • 9.0_BETA の audio 修正後も C760/C860だと認識されない •

    カーネル設定によっては動く? • 散々調べて delay(9) 実装のバグ と発覚 →修正
  28. ついでに改善  地味作業⑨ • zbsdmod.o でのデバッガ用 シンボルテーブル読み込みを 動くようにしてカーネルサイズ 削減 •

    KOFにコミットします
  29. というわけで展示準備

  30.  放置するとバグがたまっていくので 定期的に起動するようにしましょう  基本は差分探索でしんどいですが 狙い通り直るとヨッシャ感あります  音が鳴って動画が動くとたのしい!  使ってもらえるとさらにうれしい!

    Kapperさん、ありがとうございました! まとめ