07/03/29 23:33:21 .net
>>411 そう、いまのATAドライバは4.xから引き継いだもの+チップセットID追加+
DragonFly特有の修正というもので、最近のFreeBSDの資産を活用するのが難しい、
ということで6.xあたりのを移植したんだけど、変なバグがあってATAを置き換える
に至っていない。目に見える異常は
- UP kernelだとinitから何かをfork()するあたりで先へ進まない
(でもctrl+Tでは表示が出るしDDBに落ちることはできる)。
- SMP kernelだとsignal6(だったかな)でinit自体が死ぬ
- hw.ata.ata_dma=0で起動すると一応single-userモードには移行するけど、
ディスクアクセスのパターンによってはプロセスが死ぬ。
- チップセットには依存しない(移植してくれたTGEN@のところではそれほど
ひどくないみたいだけど)。
というものなので、たぶんデバッグする時にはrootfsをSCSIかなにかに置いた
状態のほうが楽かも。分かってみたらすごく脱力するような原因の予感...
kernel configは/sys/config/NATAがあるのでこれを使って/kernelとは別の
名前でインストールして、boot loaderで切り替えるのがいいと思う。natacontrol
はbuildworldにhookされてないので、/usr/src/sbin/natacontrolへいって直接
build。あとNATAで動かしているディスクをrw mountしたら、旧ATAでブートしてから
fsck -f しておいたほうがいい。