NetBSD/zaurus 8.1 を直したあと ブース展示デモ内容を作った話 / OSC2019Tokyo-Fall

NetBSD/zaurus 8.1 を直したあと ブース展示デモ内容を作った話 / OSC2019Tokyo-Fall

OSC2019 東京 Fall の NetBSDセミナー BSDなひととき で発表した『NetBSD/zaurus 8.1 を直したあと ブース展示デモ内容を作った話』のスライドです。なお、スライド前半の内容はKOF2019で公開しているものと同じです。

7fe50ce1ac047336d7804e47aec56391?s=128

Izumi Tsutsui

November 24, 2019
Tweet

Transcript

  1. 1.

    NetBSD/zaurus 8.1 を直したあと ブース展示デモ内容を作った話 オープンソースカンファレンス 2019 東京 Fall NetBSD/zaurus 発祥の地で

    Zaurus増殖デモ Izumi Tsutsui tsutsui@NetBSD.org Twitter: @tsutsuii Mastodon: @tsutsuii@social.mikutter.hachune.net
  2. 6.

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

    • W-ZERO3 2005年 • NetWalker 2009年 • Telios 2000年?
  3. 7.

    NetBSD 最新リリース  9.0_BETA も進行中 • NetBSD 8.0: 2018/ 7/

    4 • NetBSD 8.1: 2019/ 5/31 • netbsd-9 : 2019/ 7/30 ブランチ作成 NetBSD 9.0 は来年春までには出る??
  4. 9.

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

    6.0 で終了 • NetBSD/zaurus: 2006/12/17 コミット • 2011年? に SL-C1000サポート (このころに実機をジャンクで入手) • 2012年に SL-C7x0/860サポート
  5. 19.

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

    にもハング報告が とりあえずの検証結果 https://mail-index.netbsd.org/port-zaurus/2017/04/02/msg000066.html
  6. 20.

    NetBSD/zaurus 起動方法  ちょっと面倒 • Zaurus純正 Linux を起動 • BSDカーネルロード用のLinuxカーネル

    モジュール (zbsdmod.o) を組み込み • /proc/zboot に NetBSDカーネルを 書き込むとカーネルが起動する • zboot という NetBSD FFSからロード するツールもあり ⇒これらの組み合わせ検証が面倒だったり
  7. 22.

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

    各種比較検証の結果、 カーネルジャンプ命令周辺を キャッシュラインに整列させた ら起動 →修正 https://mail-index.netbsd.org/source-changes/2019/10/26/msg110278.html
  8. 23.

    7.2→8.1 変化点検証  地味作業③ • zbsdmod.o を直しても読めない カーネルがある? • コードをながめてみて、なんと

    なくダメっぽく見えたので bssクリア処理を追加 →ダメなカーネルもロードOK https://mail-index.netbsd.org/source-changes/2019/10/28/msg110352.html
  9. 24.

    7.2→8.1 変化点検証  地味作業④ • GENERICカーネルを起動すると ”Alignment Fault 3” と言われて落ちる

    • 野生の勘でフレームバッファの rasops が怪しい? と調べて 実装ミスを確認 →修正 https://mail-index.netbsd.org/source-changes/2019/11/02/msg110512.html
  10. 25.

    さらに動作検証  地味作業⑤ • disklabel(8) や fdisk(8) が 動かない •

    MAKEDEV(8) スクリプトの Rawパーティション判定が 間違っている →send-pr して修正されました https://mail-index.netbsd.org/source-changes/2019/11/03/msg110546.html
  11. 26.

    さらに動作検証  地味作業⑥ • Xサーバーで画面回転設定時の 表示がおかしくなる • 検証未です(すいません) • 7.2の

    Xorgサーバーバイナリを 持ってくるととりあえず 動きます https://gnats.netbsd.org/54167
  12. 27.

    さらに動作検証  地味作業⑦ • 9.0_BETA だとXサーバーで キーボード入力できない • 必要なカーネルオプションが 無効化されてしまっていたので

    戻す(ついでにコンパイルエ ラーも発覚したので修正) https://mail-index.netbsd.org/source-changes/2019/11/02/msg110531.html https://mail-index.netbsd.org/source-changes/2019/11/02/msg110532.html
  13. 28.

    さらに動作検証  地味作業⑧ • 9.0_BETA の audio 修正後も C760/C860だと認識されない •

    カーネル設定によっては動く? • 散々調べて delay(9) 実装のバグ と発覚 →修正 https://mail-index.netbsd.org/source-changes/2019/11/13/msg110797.html https://mail-index.netbsd.org/source-changes/2019/11/13/msg110798.html
  14. 29.

    ついでに改善  地味作業⑨ • zbsdmod.o でのデバッガ用 シンボルテーブル読み込みを 動くようにしてカーネルサイズ 削減 •

    KOF後にコミットします →しました https://mail-index.netbsd.org/source-changes/2019/11/13/msg110799.html
  15. 38.

    mikutter  大変なところ • ネットワーク環境が必要 • 謎マシンだと有線が必要 • Zaurusの wi(4)

    はなんか変… • ビルドも大変 • m68kだと約2か月とか • ARMだと別マシンでビルド可 • userstream廃止問題
  16. 46.

    onscripter  フリーゲームもそこそこあります •過去各種市販ゲームでも採用され ていた NScripter互換エンジン •音が鳴るマシンなら ひぐらしがないている デモ可 •

    KOFで展示してたらなぜかシナリオ 進められてました •pkgsrc にもあります 最近更新サボってたので KOF後に更新しました
  17. 49.

    MPlayer  設定とエンコードがキモ • “-vo x11” のオプションが重要 • 謎マシンだとデフォルトの -vo

    xv が激重 •音声は非圧縮 wav でチート • 今回はサウンドドライバデモも兼用なので •映像エンコードは試行錯誤必要 • とりあえず MPEG-4 が軽そう? • いまどきの x264 とかはたぶんムリ
  18. 50.

    MPlayer  SL-C1000/3x00 の場合 • Zaurusは本来縦画面が正 •横画面はS/Wで回転 →横向きだと重いので縦画面設定がおすすめ •限界は 270x

    12fps 500kbps? • 15fps はムリでした •エンコード例 % mencoder -oac pcm -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=500:aspect=9/16 -vf scale=480:270,rotate=1 -ofps 12 sm32524381.mp4 -o out.mp4
  19. 51.

    MPlayer  SL-C700/760/860 の場合 •3桁ZaurusはH/W回転をサポート →横向き動画再生のままでもOK •SDが1bitモードなので遅いかも? •限界は 480x270 10fps

    500kbps? • 800kpbsだと映像遅れ発生 •エンコード例 % mencoder -oac pcm -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=400:aspect=16/9 -vf scale=480:270 -ofps 10 sm35937598 -o out.mp4
  20. 55.

    PC6001VX  ビルド •Android版もあるくらいなので、 pkgsrc でもパッチ無しでビルド可 •Debug option無効化で軽量化 •Qt5のビルドがやや大変ですが、 ARMなら

    armv6 なマシンでビルド • armv4,armv5 の libpthread に armv7で 削除された命令が使われているという問題が http://mail-index.netbsd.org/port-arm/2019/04/20/msg005602.html