前のページ 次のページ 目次

26. 移植プロジェクトとPC-98x1用 Linux の現状 (旧 TODO リスト)

26.1 アルファリリース

fj.sources.d でリリースをアナウンスしました。(1月21日)

26.2 セカンドリリース(ベータ)1998年4月下旬はどうでしょうか?

 a. アルファでみつかったバグフィックス
 b. もっとたくさんのデバイスサポート (特に 9801 デバイス)
 c. cvs の導入によるカーネルバージョンアップ完全追従 & 分散開発環境整備
    を目指す。-> 開始しました。
 d. 周辺ユーティリティの整備
 e. 日本語パッケージ・インストーラとの一体化 (これは KMC の外かな)

26.3 プロジェクトの進行状況 (TODO)

敬称は略させていただきました。

[項目] そのパートのソースコードまとめ役
L: 作業ログ。これは同時に将来バグが発生した際の責任者も示している。
S: 最近の状況
B: 既知のバグ
M: 検証すべきミステリー
I: おもしろそうなまたはおもしろくなさそうなアイディア

[grub] 高井
L: Linux, DOS, Windows95, WindowsNT 起動。
L: FreeBSD 起動可能に(ただしチェインローダのみで)
L: Linux kernel にパラメータがわたる
M: ディスクの相対的な位置指定をどうするか(∵IPLと本体のずれの可能性)
L: ステージ2のサイズが少し小さくなった。
L: スクロールの際にゴミが出なくなった。
B: IPLのバージョン(IPLセクタの +1FCh)の問題 -> とりあえず 00h
S: stage1 が少し賢くなって、64KBのDMAバウンダリを超えて stage2 を読み込める
:: ようになりました。これで stage2 が32KBを超えても大丈夫(のはず)です。
L: 1月17日(土)未明、 GRUB から FreeBSD(98) を(チェーンローダを使わずに)
:: ブートできた模様
L: install= コマンドを実装しました。
L: 一応 makeactive も実装しました。でもこれはどういう意味があるのか未だに
:: よく分かってなかったりします。誰か教えて(^^
::#これで GRUB もようやく GRand _Unified_ Bootloader に(笑)
S: bzimage がロードできる
S: コマンドのヘルプがちょっと豪華に
:: 「ステージ2 オーバー32KB可能化記念」第1弾です。
S: 1024bytes/sector のフロッピ(ext2、fat) に対応
B: 1024bytes/sector のフロッピのうち ffs は未対応
S: initrd を使って RAMディスクを読み込ませることができた。
I: コマンドラインのヒストリ機能、本来の意味での「補完」機能
I: stage2 に SCSI のローレベルドライバを内蔵
:: 純正55ボードとサードパーティのHDを組み合わせられたりしてうれしいかも
S: chainloader が作動しなくなった!?
L: 本家AT版にもあったメニューから戻った時のバグをフィクス。
L: FreeBSD(98) の machine_check() に対応 (ただしテストしていません)
:: HSB.EXE、N88 BASICの`NEW ON'命令に対応
:: Cx486SLC/DLC のオンチップキャッシュ簡易制御コマンドを追加 (以上98/7/11まで)
L: grubinst alpha release (98/7/26) (bugs 922)
L: β9でgrubinstを追加 (bugs1013)

[syslinux] 高井
L: 1998/8/25 αリリース
:: 一通りLinuxをロードできる(bzImage,initrd,SJIS)
:: FAT対応(ただしFAT16は試していない)
:: コマンドラインタイムアウト、チェインローディング、COMBOOTはまだ
:: インストーラは Linux 版(syslinux) と DOS 版 (syslinux.com) がある
:: フロッピィは、 1200KB と 1440KB で動作を確認。
:: ディスクのパラメータは、 BPB に書いてある値を信じて使っているので、
:: たぶんパラメータが正しければ 720K でも 640K でも 1232K でも動くはず
:: 1232K のフロッピィに対応したインストーラは、今のところありません
:: 未完成ドキュメント日本語訳(syslinux.jis)
L: 1998/9/1 βリリース
:: コマンドラインのタイムアウト機能の実装
:: チェインローディング
:: これでオリジナルの SYSLINUX の機能はほぼ移植し終わった
:: DOS 用のインストーラ(SYSLINUX.COM) の 1024 バイト/セクタ 対応
:: CTRL-GRPH-DEL での CPUリセット (ただしキー待ちの時のみ) も対応
:: 1200KB、1232KB、1440KB のフロッピィで動作を確認
:: 1232KB (1024 bytes/sector) のフロッピィにインストールするには
:: DOS から SYSLINUX.COM を使うしかない

[boot, kernel/setup] 藤田
L: 1.44MB, 1.21MB, 720KB の各 floppy のみ対応 (boot)
L: 30 行対応 (起動時に SHIFT キーを押していると 30 行)
L: 30 行モードは、DOS での 256 色アーキテクチャをもった機種のみ。
L: 機種判定ルーチンは Linux-pc98-1.0 の鵜飼さんのコードをほぼ使用
L: 9821 の判定などを追加
L: boot/setup.S のワークエリアは、2.1.46 の仕様をベースに2.1.57 に対応させたもの
B: カーネル解凍ルーチンで、画面表示が手抜き。
::  (たぶん問題ないと思うが、問題があれば対応予定)
L: 15-16MB の空間切離しに対応(井伊の mm と関連)
B: bzimage 未対応
L: IDE ディスクのBIOS ジオメトリ自体を boot で取得し、
::  setup.c でグローバル変数に保存
B: プライマリしかない初期メイトなどでは存在しないIDEディスクをBIOSが「検知」する
:: 機種によってはセカンダリだけでなく、スレーブもあるかのようにみえる。
:: 現象の詳細は藤田による bugs ML 406 等を参照のこと。
:: 初期メイトだけでなく、ノート(PC-9801na,塩満様, bugs 415)でも発生。
:: EPSON互換機(486NOTE AT)でも確認。
:: ide ドライバ側で対処(井伊)。
B: ソースファイルの改行文字がおかしくなっている(野村さん?の指摘)。
L: 286マシンでのA20ライン対応(mail 1169 by 高井)
L: bzdisk 対応(seraphim 1264)(高井)

[kernel]
L: Linux pc98 1.0 の鵜飼さんのコードを 2.1 に持ってきた: (鵜川)
L: shutdown, halt: (藤田)
L: DMA over 16MB: (藤田)
B: APM が正常に動作しない: (藤田)
S: APM が動作するようになりました。電源切断も可能です。(藤田)
S: ただし、2.1.57 の kernel に対応した shutdown コマンドが
S: 無い限り、電源は切れないようになっているみたいです。->shutdownにパッチ
S: とりあえず、その仕様を継承しています。
S: なお、実験の時は、2.0.33 仕様に改造して行いました。
M: 8MHz マシンで正常かどうか
S: SMP の動作を確認(?)
L: β9でReal Time Clock Driverを追加(bugs 1013)(鵜川)
L:  カレンダドケイ Driver の機能は、時計の読み書きのほか、 RTC の一部の機能の
:: エミュレートです。
:: 一部の機能 == 時計アップデート時のアラーム
::          (/dev/rtc を read したとき、秒の変わり目までブロックする機能)
:: これで hwclock は動作しました。 clock は試していませんが、 clock も
:: /dev/rtc を使っているのであれば動作すると思います。(bugs 1047)(鵜川)

[mm] 井伊
L: 15-16MB の空間切離しに対応(藤田の boot と関連)
L: せこく VRAM のすぐ手前の 4kB うかせた。
L: DMA over 16MB に対応: (藤田)
I: ROM エリアに RAM をマップして一次記憶を増やせないか?
I: 14.6M までの機種でそれ以上に増設するキットの対応。

[タイムゾーン]
B:どうするのが「正しい」のかメンバーは誰も知らない。
::よくわからないままになっている。
L:clockまわりがまともになったのに伴い問題は解消した。

[フロッピィドライブ] 藤田
S: フォーマットできるようになった
L: 512b/s で 720/1.21/1.44 の自動切替対応
L: DMA over 16MB に対応
B: 1024b/s が扱えない
M: 1024b/s パッチのあたった mtools 3.6 を動かしてみる
B: insmod で hang up する
B: エラー発生時のキューのクリアについて:
B:  queue 発行済みの状態では、queue がキャンセルできず、
B:  エラーのタイムアウトがすべて終わるまで実行を続ける。
B:  この状態でライトプロテクトの floppy を入れると
B:  ドライブを壊す危険がある
B:  よく分からん FD 入れて何が入ってるか見ようとすると1分くら
::  い待たされます。
B: EPSON の PC-486NAT では 1.44M が使えない。
:: ブート時に fd0 is 1.44M と出たあと、タイムアウトして失敗。
:: floppy check : wait_til_done out: 2 が二回でる。
:: と思ったが、使えているようにもみえる
L: 1.25MB(1024バイト/セクタ)に対応(seraphim 1344)
:: FAT のディスクはマウントできない?
:: できた。(北川)
L: マイナーデバイス番号は 4 から 7
:: /dev/fd?d360(seraphim 1365)
I: この仕様は変更しませんか?(井伊) > 藤田さん

[コンソール] 鵜川
L: 仮想コンソール(切り替え)対応。
L: いわゆる JIS/SJIS/EUC に対応。JISは動的切り替えサポート。
B: JIS は完全対応じゃなく全部78年JIS(旧JIS)
B:  98のフォントロムが旧JISのため。
B: グラフィック文字のマップが変(修正済み)
S: JIS-X0201 対応
S: unicode の表が欲しい -> bugs の皆様に url もらった
B: バックスクロールが非実用的。
I: /dev/vcs の 98 部分(予定なし。)
B: gpm が動かない(マウスのせい?)
L: ioctl 0x5698 (vt.h VT_GDC_RESIZE) 追加

[キーボード] 鵜川
S: かなも含め、ウインドゥズキー以外の全てのキーが使える。
S: 一部キーマップがキーボードに書いてあるのと違う(鵜飼さんマップ)。
B: (おくむらさんメール bugs551)
:: 98Noteに外付のキーボードをつないでみたんですが、
:: 外付側のCAPSをLOCKすると外付側からCAPSの解除が出来ません。
:: 正確には、外付キーボードのCAPS-LEDはON/OFFできますが
:: 本体のCAPS-LEDは消えないままです。
:: 本体のCAPSを叩くとOFFに出来ますので取り敢えず
:: 問題にはなりませんが。
S: おくむらさんより刻印通りのキーマップをいただいている。

[IDE] 井伊
S: 藤田により CDROM の不具合が詳しくテストされ、鵜川がコメント。
B: CD-ROM が正常に動作せず。P/Sの切り替えが CDROM では不完全?
S: 切り替えするレベルを下層に移したところ動くようになったようにみえる。
S: 2nd-if cdrom を mount して 1st-if disk に write できている。
B: あちこちモジュール化できなくなったはず。
M: ide0,1 で serialize した方がいいかも。
B: EPSON 初期ノートはポート番号の違いで動かないかも (大石)
I: (U)IDE-98 などの対応 -> メーカーに資料お願いしたら断わられた。
:: 交渉中 -> 交渉途絶
L: プライマリしかない機種でBIOSが誤認しても正常に動くよう色々手を入れた。

[genhd] 井伊
L: Linux pc98 1.0 の鵜飼さんのコードをもとに作業開始。
L: IDE ディスクのプローブで BIOS ジオメトリをグローバル変数に保存している。
L:  (藤田の boot 参照)
L: BIOS ジオメトリを ide 内の構造体に保存するようにした。(fdisk98 での使用のため)
B: FreeBSD(98)がマウントできない。さらにマイナー番号をどうするか。
B: ソースがすごく汚ない。ide にべた依存。次回のリリースで書き直すつもり。
B: SCSI disk のコード(藤田)と統一できていない。
B: AT で fdisk したディスクでマイナー番号が狂う。
S: sd のジオメトリ取得は BIOS を必要とする (藤田)
S: sd-ioctl と sd 部分のジオメトリ取得関数を共通化 (井伊)
S: sd-ioctl の GETGIO を実装 (井伊)
S: メモリに読み込んだパーティションテーブルを書換えていて、fdisk等が誤動作していた
:: bug を fix
B: そういえば FAT32 があればバグる気がする。-> 直したつもり。
L: 緊急課題: Linux partition ID をベータまでに変更すること! -> した。

[SCSI: PC-9801-55] 鵜川, 藤田
S: DMA を使った転送が可能。対応互換品表制作中。
B: sg の動作があやしい。cdda2wav が /dev/sg に write すると -ENOMEM
:: が返ってくる。
B: DMA が仕様不能になったとき、タイムアウトが正常に行えないため刺さる。
I: 互換品のバスマスタ、PIO、SMIT転送
B: モジュールにすると insmod で刺さる。
I: BIOS を使わずにジオメトリをとる。
I: proc をサポートする。

[SCSI: AHA-1030P] 中塚
L: 使えるようになった。
S:IRQは3のみ確認しています。本来、3,5,6が選択できるのですが、
::5をビデオカード、6をMPU401に取られており、MPU401をはずし
::て、PnPを無効にしても、3以外が選択できなかったので、それ
::以外のIRQは調べていません。従って、3以外のIRQの自動取得に
::失敗するかもしれません。
::BIOSは、識別用の文字列を取る部分だけ変えました。他のSCSI
::ではgeometryはBIOSではどのように取得してますでしょうか?
::Zip、MOがmountして使えています。

[XFree86 3.3.1 w/ VFlib] 木原
# この項目はもはや obsolete
# 注意: XFree86 3.3.2 では正式サポートされている
L: 動くようになった。kabu:/usr/src/xc だっけ? 詳細は 535,538 参照。
B: XF98_NEC480: 終了後、25行からだとコンソールがくさる
B: XF98_EGC: なんか BitBlt まわりがとてもすごく変。バクバグ。
M: XF98_EGC: 終了後コンソールは30行からでも大丈夫?
S: XF98_EGC: 再生バージョンの動作未確認。
B: seraphim: ゴミが出るのは XFree86 3.3.1 の問題らしいが、これで配布するの?あと終了後のコンソールもおかしい?
S: XF98_TGUI: 再生バージョンの動作未確認
L: PC-9821Xa7e: option の設定により動くようになった。
S: PC-9821Xa7e: chipset を clgd5429 にするとで Bitblt もできる。
S: PC-9821Rv20: Millenium は動いていない(注意: XFree86 3.3.2 では正式サポートされている)

[XSuSE の PERMEDIA2 対応サーバ] 中塚
L: 実はLinux/98で動くケースがあることが判明(980412 mail,811)。
L: chdo,chdiを作った。

[パラレルポート parport parallel] 中塚
S: 新しいポートで PLIP の動作を確認。
L: 新しいポートでは印刷できる。
B: parport がモジュール化できてない?
S: 変数の依存関係は、元に戻しておいたのですが、自宅ではモジュー
:: ル化を試してみていません。
:: # modprobe --versionしてみても、versionが出てきません
:: 前に田端さんがカーネルを作られる際に、parportのモジュー
:: ルもお願いしたので、その日は、確かめずに帰ってしまったの
:: ですが、出来ているかもしれません。
S: 古いポートは parport でなく lp のみで対応。出力可能になった。
B: 古いポートではオフライン検出ができていない。
:: すみません。オフライン検出忘れてました。一応、無くても支
:: 障がない(といいな)と思われます。
S: モジュールは結局できていると思われる。
L:いつも printk でプリンタに吐くのはいやだと中塚さんが仰せなので、
::起動時のオプションに debug をつけたときだけ吐くようにしました。
::debug オプションはもとからあったのですが、その機能を拡張する形に
::しました。この変更を加えて beta-03 にしました(mail 0939)

[シリアルポート serial RS-232-C] 田畑
L: COM2 の動作を確認。(getty の端末になれるし、動かせる)
L: COM1 はベタな通信を行うところは多分できた。のは嘘だった。
L: 115.2Kbps がでるマシンでCOM1がなんとか動く(PPPやgettyは動かない)(98/07/11)(藤田)
L: 西塚さんによる情報提供でCOM1 FIFOが藤田により実装
S: 田畑によって legacy COM1 で動くコードがついにできたと思われる(7/29 mail 1143)。

[ネットワーク Ethernet]
L: NE2098 では動く。(井伊)
B: EGY-98 等に対応させたのはシステムを凍結させる。次リリースで fix 予定。(井伊)
S: 児島さんにメールしてね。(> 田畑)
L: 西塚様により PC-9801-108 用のドライバが作成される。
L: LA/T-98,LGY-98,EGY-98,NE2098で動くようになった。(bugs 1000)(藤田)
L: 山下様により IF-2766-ETのサポートが追加される。(bugs 1026)x
B: beta09ではボードの種類を指定することができない。(bugs 1033)
L: beta11では

[サウンド] 藤田
<全般>
カーネルの configure で正しく I/O port や IRQ を設定してやらないと
動作できない。今のところ、Auto Detect はたぶん不可能。
<WSS>
L: DMA over 16MB 対応。動作確認済み。DMAオートイニシャライズでの変更。
M: 1 時間前後で mpg123 が止まる。原因不明。(鵜川さんの報告)
M: CS4231 以外のチップだとうまく動作しない。
:: (V200 等の WSS と FM音源 がセットになったチップを使っている機種)
<MPU-PC98>
L: I/O port 回りを PC-9800series 用に書き換える。
M: 初期化で割り込みがうまくとれておらず、一部コードをはずす。
<others>
I: FM音源の /dev/mml: (鵜川)
I: ボリュームコントロール

[マウス] 藤田
L: Logitech Bus mouse のコードにパッチを当てた
B: gpm が動かない(コンソールのせい?)

[PCMCIA]
B: 実機がない。予定もない。といってたら、浜田直樹さんからオファー。
:: どうしましょう。->ご貸与をお願いした。 -> その後、ご連絡してない。ごめんなさい。
L: 実はそのまま動く機種が多いことが発覚。(pcmcia-cs 3.0.0 などで)
:: Card Bus の動作は不明

[C Bus PnP] 藤田
L: 実は動作するようだ。isapnp.c を改造したところ V200 内蔵ファックスモデムが使えた。
L: β9で追加(bugs 1013)

>>ユーティリティ<<
[hwclock98] 信岡
S: 本人が忙しいので後回しになっている。もう暇になったかな?
:: おーーい。
L: 98年6月上旬に藤田さんが機能限定版のclock98を書いた。

[clock]
L: 98 ではサポートしない。
:: といっていた。
L: 98年6月上旬に藤田が機能限定版のclock98を書いた。
:: 鵜川によりReal time clock driverが移植された。(seraphim 1230, 980902)

[*fdisk] <fdisk98> 井伊
L: 非常にプリミティブなものを作った。
S: IPL と本体をずらせるので、ここに grub をいれれる。
:: -> これは使用しなくてもいいことが判明。
L: Linux native = 0xe2 0xf5, swap は 0xe2 0x75。
B: 使いにくい面もあるので次リリースでは人に優しいインターフェースを。
S: 日本語で多少は楽なインターフェースを作った。
B: パーティションテーブルを再読込しない。
S: 再度読込するようになったはずだが、未確認。
I: AT 版との操作体系の互換性をどうするか。
L: とりえあず -l だけ簡単に実装した。
L: パーティションの削除とか追加が簡単にできるようにした。
L: パーティションの設定でサイズを指定できるようにした。
L: partition# の表示を /dev/hda? とかとあわせた。
L: これによりエンバク、フィクスしたら別のエンバク(これが alpha005 に入った)。
L: 結局 Rev 1.7? で直った?
L: 色々コマンドを追加して、最初よりはマシになった。
L: Windows95 の fdisk が勝手に ID を変えてしまうので、Linux の ID を変更
L: native = a0 e2, swap = a0 62: genhd も更新した。
L: 高井と鵜川が綺麗に書き直してバグもたくさんとった。
L: 吉山あきらさんによるglibc2対応コードにした。
L: 1.20 で簡易初期化機能をつけて、画面表示スタイルを変更した。

[kbdrate] 予定なし

[setfont] 鵜川: 永久に作成しない予定あり

[kbd-0.94 / loadkeys, dumpkeys] 高井
L: loadkeys、dumpkeys などのユーティリティの98版の原形を作りました。(980203 mail)

[/dev/cgrom] 高井
L: 原形ができた。1/2 バイト文字。モジュールで実装。
:: read のみ。排他制御せず。
:: 1バイト文字のフォントは lseek(fd, <文字コード>*16, SEEK_SET)、
:: 2バイト文字のフォントは lseek(fd, (<JISコード> - 0x2000)*32, SEEK_SET)
:: すると読み出すことができます。(高井 980402)
I: 何文字くらい使えるのですか。たくさんあるのなら、 96 文字 or 128 文字
:: or その倍くらい予約にしておいてくれるとうれしいです。
:: コンソールのフォント変更用に使えないかなと思ってるので。(鵜川 980402)

[MAG loader] 前田
S: お勉強中

[svgalib]
S: 誰か助けて

[dosemu, 98 emulator の類い] 
S: なにも遊んでない

[DOS utils] 藤田
S: dd98.exe, rdev98.exe, rootflag.exe
L: dd98 といっても書き込みのみ。
L: そのうち、きれいに書き直す予定。
B: 1024b/s 2HD 1.25M が書けない
S: 1.25M に対応した

[Saturn IF] 藤田

[MBR] 
L: SCSI接続CD-Rからブートに成功(単にレジスタダンプするだけ)(seraphim 1287)(高井)


前のページ 次のページ 目次