OpenBSD/luna88k news at NBUG meeting 2014-04

  • 451 views
Uploaded on

OpenBSD/luna88k news, presented at NBUG(Nagoya *BSD Users' Group) meeting in 2014-04.

OpenBSD/luna88k news, presented at NBUG(Nagoya *BSD Users' Group) meeting in 2014-04.

More in: Software
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
451
On Slideshare
0
From Embeds
0
Number of Embeds
3

Actions

Shares
Downloads
0
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. OpenBSD/luna88k - 2014/4 近況報告 - Nagoya *BSD Users' Group Kenji Aoyama / ⻘⼭ 健治 aoyama@nk-home.net http://www.nk-home.net/~aoyama/ NBUG 2014年4⽉例会
  • 2. 2 2013年12⽉以降のluna88k • wscons 8bpp support & mlterb-fb 8bpp • モノクロXserverとの共存 • 86音源ボード • pcex(4):PC-98スロットドライバ
  • 3. 3 wscons 8bpp support • 4bpp版をを単純に倍にして8bpp化 –原作は@tsutsuiiさんのluna68k版 –Bt458の初期化が違ってた
  • 4. 4 mlterm-fb 8bpp • mlterm-fb作者も想定外だったLUNA のハード構成:-)
  • 5. 5 mlterm-fb 8bpp • Bt458の初期化を直したらOK
  • 6. 6 Commit log Log message: Add primary support for LUNA-88K 4bpp/8bpp frame buffer. This brings color support on LUNA's wscons. And, with the help of recent development version of 'mlterm-fb' (frame buffer version of ports/x11/mlterm), graphic images can be displayed in 16/256 colors on the screen. Thanks to arakiken, the original developer of mlterm! This diff is based on NetBSD/luna68k work: http://mail-index.netbsd.org/source-changes/2013/12/28/msg050266.html Need more work to coexist with the monochrome X.Org server. "go ahead!" miod@
  • 7. 7 モノクロXserverとの共存
  • 8. 8 モノクロXserverとの共存 • wscons/mlterm-fb使用時はカラー、 Xserver使用時はモノクロにしたい mlterm-fb(4/8bpp対応) kernel Xorg server(1bpp) kernel 4/8bpp frame buffer 4/8bpp frame buffer 1bpp 決め打ち処理 4/8bppを 想定した処理 残りのplaneは 表示されたまま Xserverを4/8bpp対応すれば? → planeタイプの高い壁が… 正しく表示
  • 9. 9 モノクロXserverとの共存 • 案1:前面DIP SWで切り替え…△ –実装は簡単だが、切り替え時は再起動? • 案2:ioctl(2)で変更…○ –デバイスドライバ側でdepth(bpp)を変 えられるようにする –アプリケーションから使用するdepthを 通知する (……勝手に追加していいのかな?)
  • 10. 10 モノクロXserverとの共存 • 秘密(?)のWSDISPLAYIO_SETGFXMODE – vga_pci.cに実装されているioctl – マニュアルには記載されてない – グラフィックモードの切り替えに使ってるよ うだ – (NetBSDにはないらしい) • このAPIを借用してluna88kで実装 – 擬似depth切り替え、colormap設定など • Xserver側にもluna88k固有処理追加 – console/mlterm-fb/Xserverを⾏ったりきた りしても大丈夫になりました
  • 11. 11 86音源ボード • デバイスドライバは? –NetBSD/pc98のソースを流用 –うまく音が出ない –「まずはmmapして試したら?」 @2013年12⽉NBUG例会 –/dev/memを改造してmmapしてみる * NEC PC-9801-86 SoundBoard PCM driver for NetBSD/pc98. * Written by NAGAO Tadaaki, Feb 10, 1996. * * Modified by N. Honda, Mar 7, 1998
  • 12. 12 86音源ボード • nec86play – https://github.com/ao-kenji/nec86play – mmapした86音源ボードのテストプログラム – NetBSD/pc98のドライバ+ドライバ初期化ルーチン – 16bit, little endian, stereoのWAVEファイルを再生
  • 13. 13 86音源ボード • 実験結果 (88100@33Mhz) –22050Hzなら安定して再生できる –44100Hz(CD品質)では、割り込みが間 に合わないことがある –調整したらもう少しいけるかも? •バッファサイズ •割り込みを発生させる閾値 • 次の課題:ドライバ化
  • 14. 14 pcex(4):PC-98スロットドライバ • 割り込みを扱うために必要 • 機能1:専用のmmap –/dev/pcexmem •mmapすると、 Cbusボードのメモリ領域 にアクセスできる –/dev/pcexio •mmapすると、CbusボードのI/Oポートに アクセスできる
  • 15. 15 pcex(4):PC-98スロットドライバ • 機能2:割り込みハンドリング –ioctlで実現 • UniOS-Machに準拠(のつもり) –PCEXSETINTLEVEL •このドライバで扱うINTレベルを登録 –PCEXRESETINTLEVEL •上記を解除 –PCEXWAITINT •割り込みが起きるまで待つ(タイムアウト つき)
  • 16. 16 pcex(4):PC-98スロットドライバ • 将来的には、cbus(4)が必要か? <現状> pcex0 at mainbus0 <将来> cbus0 at mainbus0 necsb0 at cbus0 audio0 at necsb0 pcex0 at cbus0 cbus(4)レベルでINTx割り込みを登録/判断 cbus 86音源ボード 他Cbusボード necsb pcex INTx INTy mainbus Cbusボードpcex INTx mainbus interrupt level = 4 interrupt level = 4
  • 17. 17 今後の予定 • 86音源ボードのドライバ作成 – 仮名:necsb(4) • テキスト版twitter+カラーアイコン表示 – mikutterデーモンモードなら、ふぁぼられる と音が鳴る? • マルチプロセッサでの時間遅れ対応 – マルチプロセッサで定常運用したい – 多少は負荷低減になるのでは? • これらで「マルチメディア」対応して OSC名古屋へ持っていけたらいいな♪