このリストは、FreeBSD(98) で使用できない、あるいは不具合を発生させると 報告されているハードウェア/ソフトウェアを整理したものです。
これらは、あくまでも報告者の環境において FreeBSD(98) を使用した結果であ り、環境または OS が異なる状況で使用した結果に関しては一切関知しません。 また、このリストにあるハードウェアが、他の環境でも絶対に動作しないこと を示すものではなく、このリストにないハードウェアが必ず動作することを示 すものでもありません。
このリストは、特定の製品あるいはメーカーに対し支持あるいは不支持を表明 するものでもありません。
AT 機のハードに依存しているため使用できない。
AT 機の HD 管理方法に依存しているため使用できない。
内部 2 倍速にならない。原因は CPU 判定ロジックが TI と Cyrix と
の区別までは行っていないため。kernel conf に "options CPU_DIRECT_MAPPED_CACHE" を追加することで内部 2 倍速になる
(2.2.5R-Rev01 以降)。
BlueLightning として認識されないことがある。原因は CPU 判定にお いて Cyrix/IBM と判定するためのフラグ変化が起こらないため。
以下のパッチで BlueLightning と認識させることができる。
--- sys/i386/i386/identcpu.c- Tue Apr 13 12:13:03 1999 +++ sys/i386/i386/identcpu.c Tue Apr 20 08:48:57 1999 @@ -665, 7 +665, 7 @@ u_char ccr3; u_long regs[4]; - if (strcmp(cpu_vendor, "CyrixInstead") == 0) { + if (strcmp(cpu_vendor, "CyrixInstead") == 0 || *cpu_vendor == '\0') { if (cpu == CPU_486) { /* * These conditions are equivalent to: @@ -679, 6 +679, 8 @@ return; } } + } + if (strcmp(cpu_vendor, "CyrixInstead") == 0) { switch (cpu_id & 0xf00) { case 0x600: /*
CPU cache を write-back モードにしていない。以下のパッチで無条件に write-back モードにできる。
4.2R-Rev01で修正された。
--- sys/i386/i386/initcpu.c- Mon Jan 18 16:37:38 1999 +++ sys/i386/i386/initcpu.c Wed Jan 20 17:57:28 1999 @@ -156, 6 +156, 10 @@ u_long eflags; u_char ccr2; +#if defined(PC98) && !defined(CPU_UPGRADE_HW_CACHE) + need_post_dma_flush = 1; +#endif + eflags = read_eflags(); disable_intr(); invd(); @@ -163, 6 +167, 14 @@ ccr2 = read_cyrix_reg(CCR2); #ifdef CPU_SUSP_HLT ccr2 |= CCR2_SUSP_HLT; +#endif + +#ifdef PC98 + /* Enables WB cache interface pin and Lock NW bit in CR0. */ + ccr2 |= CCR2_WB | CCR2_LOCK_NW; + /* Unlock NW bit in CR0. */ + write_cyrix_reg(CCR2, ccr2 & ~CCR2_LOCK_NW); + load_cr0((rcr0() & ~CR0_CD) | CR0_NW); /* CD = 0, NW = 1 */ #endif write_cyrix_reg(CCR2, ccr2); write_eflags(eflags);
3.3R-Rev01 では、FPU の認識で panic する。原因は不明。
FPU を切り放すと回避できる。2.2.8 + BlueLightning patch では起こ らない。
CPU スイッチを High にするとリセットがかかる。原因は 2nd Cache の制御が特殊であるため。2.2.5R-Rev02 で対応。
2.2.1 のインストーラの UserConfig を抜けるとリセットがかかる。原因は不明。
おそらく EPSON PC-586RT, RJ も同様と思われる。他のバージョンのイ ンストーラでは平気という報告があるが、機種によって微妙に違うよう である。他のマシンでインストールした HD をつないで使用した場合は 問題なし。
signal 11 が発生して使用できない。原因は CPU の errata?。 2.2.6R-Rev02 で対応。
2.2.6R-Rev02 および 2.2.7R-Rev01 の sysinstall のデバイスのプロ ーブ中に panic する。原因は wfd ドライバのバグ。以下のパッチで修 正可能。
ATAPI の SuperDisk や ZIP を全く使用しない場合は、kernel conf か ら wfd ドライバを除くことでも回避できる。
--- sys/i386/isa/wfd.c- Mon Apr 12 20:15:23 1999 +++ sys/i386/isa/wfd.c Mon Apr 12 20:15:44 1999 @@ -201, 7 +201, 7 @@ bufq_init(&t->buf_queue); t->ata = ata; t->unit = unit; - lun = t->lun = wfdnlun++; + lun = t->lun = wfdnlun; t->param = ap; t->flags = F_MEDIA_CHANGED; t->refcnt = 0; @@ -262, 6 +262, 7 @@ DV_CHR, UID_ROOT, GID_OPERATOR, 0640, "rwfd%d", t->lun); #endif /* DEVFS */ + wfdnlun++; return (1); }
boot 時に "wdc0: unit 3 (atapi): < SOSOSOSOSO..." のような壊れたメッセージと "unknown ATAPI protocol=3" が表示される。原因は不明。
以下のパッチで回避可能と思われる。または、kernel から ATAPI サポ ートを削ると消えるが、その場合は ATAPI CD-ROM 等は使えない。
--- sys/i386/isa/atapi.c- Sat Jun 5 14:07:45 1999 +++ sys/i386/isa/atapi.c Fri Oct 29 23:34:45 1999 @@ -570,6 +570,21 @@ if (! ap) return (0); bcopy (tb, ap, sizeof *ap); + +#ifdef PC98 + /* + * Check model string. + * If all of it makes unprintable characters, ignore this device. + */ + for (cnt = 0; cnt < sizeof(ap->model)-1; cnt++) { + if (ap->model[cnt] >= ' ') + break; + } + if (cnt >= sizeof(ap->model)-1) { + free (ap, M_TEMP); + return (0); + } +#endif /* * Shuffle string byte order.
割り込みモードを「拡張」にすると、デバイスのプローブ後にフリーズする。(Rs20 は拡張モードしか選択できないとの報告)。原因は不明。
割り込みモードを「互換」にすると正常動作する。または SMP 化パッ チを当てると APIC モードのままでも動作したとの報告あり。SMP 化パ ッチの詳細は FreeBSD98-testers ML で問い合わせのこと。
controller wdc0 があるのに disk wd? を全て無効にしたカーネルを作ると panic を起こす。原因は、IDE ドライバがそのような事態を想定していないため。3.3R-Rev01 から対応。
IDE バス上に HD がなく ATAPI デバイスのみがある環境においても、 ダミーの disk wd0 を定義することで回避可能。または、以下のパッチ で修正できる。
--- sys/pc98/pc98/wd.c- Sat Jun 5 14:07:45 1999 +++ sys/pc98/pc98/wd.c Fri Aug 27 19:33:35 1999 @@ -791, 12 +791, 6 @@ } } -#ifdef PC98 -#ifdef COMPAT_ATWDC - if (!compat_atctrlr) -#endif - outb(0x432, (du->dk_unit)%2); -#endif /* PC98 */ #ifdef ATAPI /* * Probe all free IDE units, searching for ATAPI drives.
10BaseT のケーブルを接続したままだと IDE を認識しない。原因は不 明。
2nd CCU を使ったシリアルコンソールでブート時に止まってしまうことがある。FIFO を無効にすることで回避可能。
98NOTEの一部の機種(NS/A,Ne,NX/C,NL/R,P)は、PC-Card controller にNEC独自のチップを利用しているため、FreeBSD(98) 4.xでPC-Cardの使用ができない。
4.5 では 5V の PC Card が使用できない。原因は、これら機種に搭載 されている PD6722 の VSENSE 方式が、pcic ドライバの想定している ものと違うため。4.7 で対応。
PD6722 の VSENSE は、古いデータシートでは PD6710 と同じ、新しい それでは PD6729 と同じ、と全く異なる記述になっている。
PC-Card を使用している PC98 でレジュームしたとき、NIC PC-Card を認識しないという問題がある。この場合、1〜2 回 NIC PC-Card を抜き差しすると再認識させることが出来る。
PC-Card を抜くと未使用であってもハングアップする場合がある。 サスペンドでも同様。なお、カードを抜く前に
# pccardc power [スロット番号] 0で power off しておくことで、回避できる場合がある。
FreeBSD(98) をブートできない。原因は NEC 純正の固定ディスク起動 メニューと非互換な部分があるため。NEC/EPSON 純正の固定ディスク起 動メニューに変更するか、FreeBSD(98)4.1R-Rev01 以降であれば インストール時に「FreeBSD(98) HD 起動メニューをインストール」を 選択する必要がある。
現在の FreeBSD(98) のブートローダが NEC 純正の仕様に依存している らしいが、詳細は不明。また、緑電子の "大磁主" のブートメニューか らは起動可能。
1.44M モードが使用できない。原因は不明。
これらの機種は 3modeFDD の初期サポートであり、それ以降のものと
FDD I/F が異なるらしいが、詳細は不明。時期的にみて、おそらく
9801NL/R も同様と思われる。
boot フロッピーとして 1.44M を使うことは可能。また、BIOS で
1.44M をアクセスした後、ハードリセットなしに FreeBSD(98) を起動
すれば 1.44M を使用できる。
ブートの途中でフリーズする。原因は不明。
セカンダリ IDE コネクタにハードディスクを接続している場合は正常 に起動する。また、kernel conf から wd0 以外の wd デバイスをはず し、"options ATAPI" と "options ATAPI_STATIC" を削除しても正常に起動する。
2.2.1 のインストーラが起動しない。原因は不明。
2.2.2(PAO) のインストーラおよび 2.2.6R-Rev02 なら起動するとの報告あり。CD-ROM のケーブルをはずすと正常に起動することから、CD-ROM 側の問題または CD-ROM とドライバの相性問題の可能性が高い。
アクセス中にエラーやフリーズ、リブートが発生する。原因は、ドライ バが ATAPI デバイスのビジーを見ずに先走ってしまうというものが有 力。
[FreeBSD-users-jp 48977] のパッチを当てるか、acd(ata) ドライバを 使用すると問題なしとの報告あり。
音楽 CD の再生がうまくいかない。原因は、msf データとして BCD 値 を要求するため。acd ドライバでは対応済。
http://takeno.iee.niit.ac.jp/~shige/FreeBSD/CD/CD60D.html に詳細情報あり。
ブートの途中でフリーズする。詳細は不明。
ファイルベイ用。プライマリのスレーブにつなぎ直すと正常となるとい う報告あり。
ドライバがないので PD としては使用できない。CD-ROM としては動作 する。
PR の kern/10116 にパッチあり。
ドライバがないので使用できない。
ファイルベイ用。AT 版では scd ドライバで対応している SONY オリジナル I/F の CD-ROM。
2.2.6 のインストーラでは使用できない。原因は、AT 版の matcd についての errata と同じ理由。2.2.7R-Rev01 で修正。
ドライバがないので使用できない。
NetBSD/pc98 では対応している。UIDE-98 のほうは 3.0 から対応。
Primary, Secondary の両方で DMA 転送を指定するとフリーズする。原因は不明。
BIOS を無効にしている場合、sym ドライバでは起動後に bus reset を繰り返すなど不安定になることがある。ncr ドライバなら問題なし。
使用できない。原因は NEC 55 ボードと非互換な部分があるため。
ボードは認識するが、接続されている SCSI 装置を認識できない。55 ボードに対して、いくつかのレジスタが拡張されているらしく、それを 制御しないと正常に動作しないようである。386BSD(98) 時代にはパッ チが存在したようであるが、あまり安定していなかったらしい。
ドライバがないので使用できない。
Adaptec AHA-2920 相当品。これらは FutureDomain 由来のボードであり、AHA-2940 とは別物。PAO の stg ドライバまたは配布物の xperimnt/aha2920 をベースに開発すれば使用できる可能性あり。
3.x では、ボードは認識するが、接続されている SCSI 装置を認識できない。原因は、これらボード上の BIOS の PCI configuration がドライバの想定しているものと異なるため。
SC-98/PCI は、BIOS を最新版に Update すれば使用可能。カーネル conf ファイルに "options NCR_IOMAPPED" を追加することで、状況が変化する可能性あり。
3.x では、起動時および shutdown 時に "Synchronize cache failed, status == 0x4, scsi status == 0x2" というエラーメッセージが表示されることがある。原因は不明。ただし、このエラーが表示されることによる直接の実害は報告されていない。
SCSI コマンドの "Synchronize Cache"(0x35) と関係があると推測される。これは必須コマンドではないため、古い SCSI-1 のデバイスの場合、単に、このコマンドをサポートしていないだけということが考えられる。その一方で、新しい SCSI デバイスでも出るという報告もあり、bs ドライバの CAM 化に起因する問題である可能性も残っている。
3.x では、メディアが挿入されていないと、一旦認識されたドライブが "got CAM status 0x4" というメッセージが表示されるとともにデバイスリストから削除されてしまい、アクセスできない。原因は不明。
bs ドライバの CAM 化が不完全なためと思われるが、詳細は不明。
"camcontrol rescan bs0" というコマンドを実行すれば、再認識させることができることがある。または、起動時からメディアを挿入していれば回避可能。
/sys/i386/isa/bs/bavar.h で #define されている RETRIES を 1 にすることで、不完全ながら回避することができたとの報告があり、これがもっとも本質に近い手がかりと思われる。
3.3 にて、起動時にハングアップすることがある。原因は不明。
bs ドライバの CAM 化に起因する問題、または SDAT との相性の可能性 があるが、詳細は不明。/etc/fstab で fsck の順序を変えたり、パー ティション作成において「他の OS を同居させる余地を残さない」設定 にすると状況が改善されることがある。
3.x では、ドライバが CAM 化されていないので使用できない。 3.4R-Rev01 で対応。
uk0: Unknown となって認識されないことがある。原因は、これら装置が SCSI バージョンとして 0 を返すため。[FreeBSD QandA 管理番号:354] の対策を施すことにより使用可能。
PC-CD60F は DIP-SW5 を on に切替えることにより SCSI 2 を返すよう になる。また、MO-4120 は DIP-SW1 が on(PC-OD301 互換モード) なら SCSI 2 を返す。
ドライバがないので使用できない。
サウンド出力時に "isa_dmadone: channel 0 not active" という警告メッセージが表示される。原因は pcm(86 音源) ドライバのバグ。
実害は無いので無視してよい。また、3.1R-Rev01 の nss ドライバでは修正された。
mss ドライバで認識されないことがある。また、認識されても、大きなサウンドファイルを再生しようとすると途中で止まる。原因は不明。
mss ドライバではレジューム後にサウンドが使えなくなる。原因は PCM
音源の割り込み制御 I/O の値が レジュームの際に保存されないためと
思われる。おそらく PC-9821Np も同様。
suspend/resume イベントに対応している pcm ドライバに移行して対処
すべきと思われる。
認識時に kernel が panic する。原因は ed ドライバのバグ。 2.2.5R-Rev01 で対応。
ブート時、"ed2: ....." のメッセージの直後でハングする。原因は ed2(EGY-98) のプローブ処理との干渉。必要のない ed デバイスを disable することで回避可能。
LD-BDN と誤認識されて正常動作しない。原因は、LD-BDN と構造が類似しているので、自動判別が困難であるため。必要のない ed デバイスを disable することで回避可能。
リブートすると IRQ は正しいのに "wrong IRQ setting in config?" が出て使用できないことがある。原因は不明。
fe ドライバでの初期化処理に問題があると思われるが詳細は不明。
/etc/rc 等で、ifconfig fe0 down; ifconfig fe0 up すると、とりあえず使える。3.1 以降の新しい fe ドライバでは改善されている可能性がある。
bus_space コードにミスがあり 4.6R-Rev01, 4.6.2R-Rev01 では動作しない。 4.7R-Rev01 で修正された。
netstat -i で表示される Ierrs の値が異常に大きい。また、トラフィックが多い場合にパケットが流れなくなることがある。原因は不明。
多量データ転送時、"Receive overflow error" が出て、場合によってはハングする。原因は不明。ただし、2.2.5 以降では問題の発生は報告されていない。
Am79C970(PCnet-PCI) を使った PCI bus のボード。PCnet-PCI のデー タシートは http://www.amd.com/products/npd/techdocs/18220c.pdf より入手可能。
FreeBSD(98) 2.2.8 および 3.0 で認識されない。原因は、PCI Bus のボードなのに、チップ ID として Am79C965(PCnet-32 VL-Bus) を返すため。
AT 機でも同様のボードがあることが報告され、2.2.8 リリース後に修正された。よって 3.1 では対策済だが、2.2.8 でも以下のパッチで認識可能と思われる。
--- sys/i386/isa/if_lnc.c- Tue Mar 2 19:08:13 1999 +++ sys/i386/isa/if_lnc.c Tue Mar 2 19:08:36 1999 @@ -1350, 7 +1350, 7 @@ sc->bdp = iobase + PCNET_BDP; sc->nic.ic = pcnet_probe(sc); - if (sc->nic.ic >= PCnet_PCI) { + if (sc->nic.ic >= PCnet_32) { sc->nic.ident = NE2100; sc->nic.mem_mode = DMA_FIXED;
Device timeout -- Resetting が出て、異常に遅い。原因は C-NET(98)S がバスマスタで CPU と非同期にメモリを更新するにもかか わらず、CPU がメモリに対して write-back cache モードでしかアクセ スできないため。ソフトウェアでの対応は困難。
ドライバがないので使用できない。
NetBSD/pc98 では対応している。FreeBSD の ix ドライバ (現 ie ドラ イバ) から移植したものらしいので、逆移植すれば動く可能性大。共有 メモリを使う PC/AT の EtherExpress/16 とは異なり、PIO でデータの 入出力を行う必要がある模様。
ドライバがないので使用できない。
Intel i80186+Intel i82586 のインテリジェントボード。AT 版では、同じような構造のボードについては ie ドライバでサポートしている。
ドライバがないので使用できない。
NEC V50+AMD AM7990 のインテリジェントボードらしい。
ドライバがないので使用できない。
NetBSD/pc98 では対応している。NS DP8390 相当品を使用している模様 だが、3CJ5098/NC5098 とも別構造。
ISA リソース設定ルーチンに不具合があり、4.0-Rev01 では動作しない。4.3R-Rev01 で修正された。
SIC-98 のドライバで動作させると、本体内蔵 DMA を使用する機器 (DMA モードの SCSI や FDD 等) が不安定になる。原因は不明。
dd での転送ブロックサイズを 256KB 程度に大きくするとフリーズする。 SIC-98-E の使用を止めたり、SCSI I/F をバスマスタや SMIT モードに すると発生しない。
PC85152 のドライバでは動作しない。LAN コントローラが Fujitsu MB86950B であり、MB86960 とは互換性がないため。
NetBSD/pc98 では対応している。
ドライバがないので使用できない。
MAC アドレス次第だが、C-NET(98)P2 として fe ドライバで認識できる可能性あり。
ドライバがないので使用できない。
NetBSD/pc98 では対応している。
http://www32.ocn.ne.jp/~chi/myprog/FreeBSD/rex.html にてテスター募集中。
lnc ドライバで認識されない。原因は不明。
PC/AT では、3.3-RELEASE なら正常に認識/使用できたとの報告あり。
10M では動作しない。また 100M ではパケットの数が増えるとカーネルごとフリーズする。原因は不明。
PC-9821Nr15/S14F 内蔵。DEC 21143-TB を使用しており、ボード自体は de ドライバで認識されている。
ドライバがないので使用できない。
NetBSD/pc98 では対応している。NS DP8390 相当品を使用している模様。 EC/EP-98S は、3.3R-Rev01 からサポートされた EC/EP-98X とは別構造。 パッチが寄贈され、現在、採用に向けて検討中。
ドライバの PnP 化に伴い 4.0R-Rev01 では動作しない。4.2R-Rev01 で修正された。
OS 側の PnP を無効にする手段が無くなったため 4.0R-Rev01 では動作しない。4.5R-Rev01 で修正された。
fe ドライバでの初期化処理に問題があると思われ、起動後に使用できなくなることがあるが詳細は不明。
/etc/rc 等で、ifconfig fe0 down;ifconfig fe0 up すると、とりあえず使える。
また、ボード側の設定にかかわらず全二重モードでは動作しないとの報告がある。
3.1R-Rev01 および 3.2R-Rev01 でシリアル通信を行うと、通信プロセ スがフリーズする。原因は V.FAST モード対応機種と誤認識されるため。 以下のパッチで修正可能。
--- sys/pc98/pc98/sio.c- Wed Sep 22 18:41:16 1999 +++ sys/pc98/pc98/sio.c Wed Sep 22 18:44:03 1999 @@ -4713, 9 +4713, 18 @@ iod->irq = 4; /* XXX check new internal port. */ - outb(0x13a, 0); + outb(0x13a, 0x8c); DELAY(10); for (tmp = 0; tmp < 100; tmp++) { + if ((inb(0x13a) & 0x80) != 0) { + tmp = 0; + break; + } + DELAY(1); + } + outb(0x13a, 0); + DELAY(10); + for (; tmp < 100; tmp++) { if ((inb(0x13a) & 0x80) == 0) { PC98SIO_baud_rate_port(if_type) = 0x13a; if_8251_type[if_type].name = " (internal fast)";
ドライバがないので使用できない。
3.1 以降の sio ドライバには対応コードが含まれているが、動作しな いとの報告あり。
ドライバがないので使用できない。
3.2 の ppc ドライバで動作する可能性あり (port 0x540, irq 12)。
3.2 では、デバイスの認識時にリセットがかかる。ppc ドライバを disable にすることで回避可能。
PC/AT 用のコードが残っていたのが原因。4.0R-Rev01 で修正された。
GENERIC98 カーネルで印刷ができない。原因は ppc 上の lpt ドライバ と olpt ドライバの干渉。3.5R-Rev01 で修正された。
kernel conf の "device lpt0 at ppbus?" という行をコメントアウト することで回避可能。
4.3R-Rev01 で修正された。
4.1.1 〜 4.2 では 回避のためのコードが unofficial patch として配布物に含まれている。
FreeBSD(98) で使用しない PCI ボード(内蔵 USB I/F などを含む) が ある時に、C-Bus の PnP ボードを PnP で使用すると PCI ボードで使 われている IRQ をPnP ボードに割り当ててしまう場合がある。
対処方法は次のとおり。