Slide 1

Slide 1 text

NetBSD/zaurus 8.1 を直したあと ブース展示デモ内容を作った話 オープンソースカンファレンス 2019 東京 Fall NetBSD/zaurus 発祥の地で Zaurus増殖デモ Izumi Tsutsui [email protected] Twitter: @tsutsuii Mastodon: @[email protected]

Slide 2

Slide 2 text

※このスライドの 前半のカーネル話は KOFで話したのと 同じ内容です

Slide 3

Slide 3 text

NetBSDと SHARP マシン

Slide 4

Slide 4 text

これだけ動きます  目のつけどころが? ● X68030 (X68000+030アクセラレータも可) ● SL Zaurus (いわゆる リナザウ) ● W-ZERO3 ● NetWalker ● あとTelios (WindowsCE MIPS機)とか

Slide 5

Slide 5 text

今でも 動くの?

Slide 6

Slide 6 text

二十年ふた昔  各マシンの発売年 ● X68030 1993年 ● SL Zaurus 2002年 ● W-ZERO3 2005年 ● NetWalker 2009年 ● Telios 2000年?

Slide 7

Slide 7 text

NetBSD 最新リリース  9.0_BETA も進行中 ● NetBSD 8.0: 2018/ 7/ 4 ● NetBSD 8.1: 2019/ 5/31 ● netbsd-9 : 2019/ 7/30 ブランチ作成 NetBSD 9.0 は来年春までには出る??

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

NetBSD/zaurus  もともと Linuxなので ● OpenBSD/zaurus (2004年) がベース OpenBSD/zaurus は 6.0 で終了 ● NetBSD/zaurus: 2006/12/17 コミット ● 2011年? に SL-C1000サポート (このころに実機をジャンクで入手) ● 2012年に SL-C7x0/860サポート

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

https://togetter.com/li/242873

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

NetBSD/zaurus 起動方法  ちょっと面倒 ● Zaurus純正 Linux を起動 ● BSDカーネルロード用のLinuxカーネル モジュール (zbsdmod.o) を組み込み ● /proc/zboot に NetBSDカーネルを 書き込むとカーネルが起動する ● zboot という NetBSD FFSからロード するツールもあり ⇒これらの組み合わせ検証が面倒だったり

Slide 21

Slide 21 text

7.2→8.1 変化点検証  地味作業① ● リンカスクリプトの変更を 戻すと起動する? ● 変更考慮漏れでカーネルエント リアドレスが変わってしまって いた →修正 https://mail-index.netbsd.org/source-changes/2019/10/26/msg110277.html

Slide 22

Slide 22 text

7.2→8.1 変化点検証  地味作業② ● zbsdmod.o の違いは gcc更新に よるアドレスずれ? ● 各種比較検証の結果、 カーネルジャンプ命令周辺を キャッシュラインに整列させた ら起動 →修正 https://mail-index.netbsd.org/source-changes/2019/10/26/msg110278.html

Slide 23

Slide 23 text

7.2→8.1 変化点検証  地味作業③ ● zbsdmod.o を直しても読めない カーネルがある? ● コードをながめてみて、なんと なくダメっぽく見えたので bssクリア処理を追加 →ダメなカーネルもロードOK https://mail-index.netbsd.org/source-changes/2019/10/28/msg110352.html

Slide 24

Slide 24 text

7.2→8.1 変化点検証  地味作業④ ● GENERICカーネルを起動すると ”Alignment Fault 3” と言われて落ちる ● 野生の勘でフレームバッファの rasops が怪しい? と調べて 実装ミスを確認 →修正 https://mail-index.netbsd.org/source-changes/2019/11/02/msg110512.html

Slide 25

Slide 25 text

さらに動作検証  地味作業⑤ ● disklabel(8) や fdisk(8) が 動かない ● MAKEDEV(8) スクリプトの Rawパーティション判定が 間違っている →send-pr して修正されました https://mail-index.netbsd.org/source-changes/2019/11/03/msg110546.html

Slide 26

Slide 26 text

さらに動作検証  地味作業⑥ ● Xサーバーで画面回転設定時の 表示がおかしくなる ● 検証未です(すいません) ● 7.2の Xorgサーバーバイナリを 持ってくるととりあえず 動きます https://gnats.netbsd.org/54167

Slide 27

Slide 27 text

さらに動作検証  地味作業⑦ ● 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

Slide 28

Slide 28 text

さらに動作検証  地味作業⑧ ● 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

Slide 29

Slide 29 text

ついでに改善  地味作業⑨ ● zbsdmod.o でのデバッガ用 シンボルテーブル読み込みを 動くようにしてカーネルサイズ 削減 ● KOF後にコミットします →しました https://mail-index.netbsd.org/source-changes/2019/11/13/msg110799.html

Slide 30

Slide 30 text

というわけで展示準備

Slide 31

Slide 31 text

カーネルが動いただけで満足 ↓ もうひとがんばりして みんなに見せびらかすことで 満足度UP + 見た人も楽しい なぜ謎マシンを展示するのか

Slide 32

Slide 32 text

まずはペース配分  ダメな事例 https://twitter.com/tsutsuii/status/1192443967230500864

Slide 33

Slide 33 text

どこに注力するか  臨機応変 ● とりあえず動かすのが優先? ● 構想はあったほうがいいかも ● 資料の目次くらいは考えておく ● デモは安牌の既存ネタを用意 そのネタが難しいんですが…

Slide 34

Slide 34 text

何をデモるのか  「OSを作っています」 ● たいていは 「カーネルが動いたら満足」 ● 普通(?)の人にはOSは見えない ● ログインプロンプトを出す? ● 延々再起動画面を見せる? →どっちも意味不明

Slide 35

Slide 35 text

展示デモネタ いろいろ

Slide 36

Slide 36 text

mikutter  いつもお世話になっております https://www.youtube.com/watch?v=NytIaugKA8M

Slide 37

Slide 37 text

mikutter  いいところ ● ビルドさえできれば タイムラインが勝手に出るので コンテンツ準備が不要 ● その場でツイートしてもらって 即時反映とか ● 謎マシンだとさらにウケる

Slide 38

Slide 38 text

mikutter  大変なところ ● ネットワーク環境が必要 ● 謎マシンだと有線が必要 ● Zaurusの wi(4) はなんか変… ● ビルドも大変 ● m68kだと約2か月とか ● ARMだと別マシンでビルド可 ● userstream廃止問題

Slide 39

Slide 39 text

スタンドアロン デモを考える

Slide 40

Slide 40 text

xnp2  nonakaさん移植のPC-9801エミュレータ https://www.nonakap.org/np2/

Slide 41

Slide 41 text

xnp2  それなりにおすすめですが準備が大変かも •世代的に謎マシン層にウケる •フリーソフトも割とある •実機やMS-DOSを持っていないと FreeDOSでHDDのイメージを 用意するのがちょっと大変 •HDDイメージ操作 (ファイル転送) にも各種ツール準備が必要

Slide 42

Slide 42 text

xkanon / xclannad  古典的デモ https://github.com/tsutsui/pkgsrc-wip-xkanon https://github.com/tsutsui/pkgsrc-wip-xclannad

Slide 43

Slide 43 text

xkanon / xclannad  全年齢対象版 •ARMで動かないのを修正した過去 •それなりに知名度があったりする •オートモードあり (選択肢もランダムで進む) •動くものが限られるので ソフトの準備が面倒かも

Slide 44

Slide 44 text

ここからは 今回のOSCで 準備したもの

Slide 45

Slide 45 text

onscripter  これも息の長いソフト https://onscripter.osdn.jp/onscripter.html

Slide 46

Slide 46 text

onscripter  フリーゲームもそこそこあります •過去各種市販ゲームでも採用され ていた NScripter互換エンジン •音が鳴るマシンなら ひぐらしがないている デモ可 • KOFで展示してたらなぜかシナリオ 進められてました •pkgsrc にもあります 最近更新サボってたので KOF後に更新しました

Slide 47

Slide 47 text

MPlayer  動画も当たり前の時代になってしまいました https://twitter.com/tsutsuii/status/1197549410026024960

Slide 48

Slide 48 text

MPlayer  動画再生に必要なスペック •サイズが小さければわりとイケる •音も鳴るとインパクトUP! •ドリキャスでも実績あり • KOF2016では 320x240 10fps https://twitter.com/tsutsuii/status/1067439569077858306

Slide 49

Slide 49 text

MPlayer  設定とエンコードがキモ • “-vo x11” のオプションが重要 • 謎マシンだとデフォルトの -vo xv が激重 •音声は非圧縮 wav でチート • 今回はサウンドドライバデモも兼用なので •映像エンコードは試行錯誤必要 • とりあえず MPEG-4 が軽そう? • いまどきの x264 とかはたぶんムリ

Slide 50

Slide 50 text

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

Slide 51

Slide 51 text

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

Slide 52

Slide 52 text

MPlayer  動画準備 •ニコ動巡回で良さげな動画を探索 •通しで動画をチェックする →キャラの大きさ、不適切(?)画像等々を確認 •nicovideo-dl でダウンロード •CFで Zaurusに転送して再生テスト • 結構めんどいんですが、ちゃんと出るのが 楽しくて本題を忘れてエンコに没頭する罠

Slide 53

Slide 53 text

PC6001VX  電源入れたら即BASIC http://eighttails.seesaa.net/category/15101643-1.html

Slide 54

Slide 54 text

PC6001VX  詳しくはOSC2017大阪の資料をご覧ください •マルチプラットフォーム対応 PC6001エミュレータ •pkgsrcに入れたので、NetBSDと 組み合わせれば何でも動く!? •Version 3.2.0 から互換BASIC内蔵  →起動すればいきなりBASICが! https://speakerdeck.com/tsutsui/osc2017-osaka-pc-6001-emulator-on-netbsd-and-pkgsrc

Slide 55

Slide 55 text

PC6001VX  ビルド •Android版もあるくらいなので、 pkgsrc でもパッチ無しでビルド可 •Debug option無効化で軽量化 •Qt5のビルドがやや大変ですが、 ARMなら armv6 なマシンでビルド • armv4,armv5 の libpthread に armv7で 削除された命令が使われているという問題が http://mail-index.netbsd.org/port-arm/2019/04/20/msg005602.html

Slide 56

Slide 56 text

PC6001VX  Zaurus対応 https://twitter.com/tsutsuii/status/1197479130545053696

Slide 57

Slide 57 text

PC6001VX  Zaurus対応 https://twitter.com/eighttails/status/1197496821502767106

Slide 58

Slide 58 text

PC6001VX https://twitter.com/tsutsuii/status/1198015211602505728  Zaurus対応

Slide 59

Slide 59 text

PC6001VX https://twitter.com/tsutsuii/status/1198017632709906432  Zaurus対応

Slide 60

Slide 60 text

PC6001VX https://twitter.com/tsutsuii/status/1198026669958651904  Zaurus対応

Slide 61

Slide 61 text

PC6001VX https://twitter.com/eighttails/status/1198193346188959744  おまけ

Slide 62

Slide 62 text

 カーネルいじりも楽しいですが 展示デモも違った楽しみがあります  謎マシンでも動画再生できる時代  お世話になった動画・ソフトの紹介 で相乗効果  準備はそれなりに計画的に、 でも、楽しくやるのが一番です まとめ