$30 off During Our Annual Pro Sale. View Details »

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

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

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

Izumi Tsutsui

November 08, 2019
Tweet

More Decks by Izumi Tsutsui

Other Decks in Programming

Transcript

  1. NetBSD/zaurus 8.1 を
    テストしたら動かなかったので
    動くまで直した話
    関西オープンソース 2019
    NetBSD SHARP 祭り@Kansai
    Izumi Tsutsui
    [email protected]
    Twitter: @tsutsuii
    Mastodon: @[email protected]

    View Slide

  2. NetBSDと
    SHARP
    マシン

    View Slide

  3. これだけ動きます
     目のつけどころが?

    X68030 (X68000+030アクセラレータも可)

    SL Zaurus (いわゆる リナザウ)

    W-ZERO3

    NetWalker

    あとTelios (WindowsCE MIPS機)とか

    View Slide

  4. 今でも
    動くの?

    View Slide

  5. 二十年ふた昔
     各マシンの発売年

    X68030 1993年

    SL Zaurus 2002年

    W-ZERO3 2005年

    NetWalker 2009年

    Telios 2000年?

    View Slide

  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 は来年春までには出る??

    View Slide

  7. NetBSD/x68k
     エミュレータで動きます →実機も展示中

    View Slide

  8. NetBSD/zaurus
     もともと Linuxなので

    OpenBSD/zaurus (2004年) がベース
    OpenBSD/zaurus は 6.0 で終了

    NetBSD/zaurus: 2006/12/17 コミット

    2011年? に SL-C1000サポート
    (このころに実機をジャンクで入手)

    2012年に SL-C7x0/860サポート

    View Slide

  9. 起動動画もあります
    https://www.youtube.com/watch?v=Jq5ZHwum5vM

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  18.  NetBSD/zaurus 7.2 は起動
     8.1 はカーネルロード後ハング
     port-zaurus ML にもハング報告が
    とりあえずの検証結果
    https://mail-index.netbsd.org/port-zaurus/2017/04/02/msg000066.html

    View Slide

  19. NetBSD/zaurus 起動方法
     ちょっと面倒

    Zaurus純正 Linux を起動

    BSDカーネルロード用のLinuxカーネル
    モジュール (zbsdmod.o) を組み込み

    /proc/zboot に NetBSDカーネルを
    書き込むとカーネルが起動する

    zboot という NetBSD FFSからロード
    するツールもあり
    ⇒これらの組み合わせ検証が面倒だったり

    View Slide

  20. 7.2→8.1 変化点検証
     地味作業①

    リンカスクリプトの変更を
    戻すと起動する?

    変更考慮漏れでカーネルエント
    リアドレスが変わってしまって
    いた
    →修正

    View Slide

  21. 7.2→8.1 変化点検証
     地味作業②

    zbsdmod.o の違いは gcc更新に
    よるアドレスずれ?

    各種比較検証の結果、
    カーネルジャンプ命令周辺を
    キャッシュラインに整列させた
    ら起動 →修正

    View Slide

  22. 7.2→8.1 変化点検証
     地味作業③

    zbsdmod.o を直しても読めない
    カーネルがある?

    コードをながめてみて、なんと
    なくダメっぽく見えたので
    bssクリア処理を追加
    →ダメなカーネルもロードOK

    View Slide

  23. 7.2→8.1 変化点検証
     地味作業④

    GENERICカーネルを起動すると
    ”Alignment Fault 3”
    と言われて落ちる

    野生の勘でフレームバッファの
    rasops が怪しい? と調べて
    実装ミスを確認 →修正

    View Slide

  24. さらに動作検証
     地味作業⑤

    disklabel(8) や fdisk(8) が
    動かない

    MAKEDEV(8) スクリプトの
    Rawパーティション判定が
    間違っている
    →send-pr して修正されました

    View Slide

  25. さらに動作検証
     地味作業⑥

    Xサーバーで画面回転設定時の
    表示がおかしくなる

    検証未です(すいません)

    7.2の Xorgサーバーバイナリを
    持ってくるととりあえず
    動きます

    View Slide

  26. さらに動作検証
     地味作業⑦

    9.0_BETA だとXサーバーで
    キーボード入力できない

    必要なカーネルオプションが
    無効化されてしまっていたので
    戻す(ついでにコンパイルエ
    ラーも発覚したので修正)

    View Slide

  27. さらに動作検証
     地味作業⑧

    9.0_BETA の audio 修正後も
    C760/C860だと認識されない

    カーネル設定によっては動く?

    散々調べて delay(9) 実装のバグ
    と発覚
    →修正

    View Slide

  28. ついでに改善
     地味作業⑨

    zbsdmod.o でのデバッガ用
    シンボルテーブル読み込みを
    動くようにしてカーネルサイズ
    削減

    KOFにコミットします

    View Slide

  29. というわけで展示準備

    View Slide

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

    View Slide