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

7. Linux/MIPS のインストールとよくある問題

7.1 NFS ブートに失敗する

通常はこれはこの現象に出くわした人たちが tar アーカイブを Linux ではなく IRIX で展開したためです。NFS 越しのデバイスファイルの定義は Unix 間で標準化されていないためこの失敗が起きます。現象としては、NFS ファイルシステムをマウントした直後にシステムが ``Warning: unable to open an initial console.'' というエラーメッセージで死ぬと言うものです。

今のところ、この問題の回避策は、NFS サーバにインストールに使うアーカイブを展開する際には Linux システムを使うことです。この Linux システムは MIPS 機である必要は無く、NFS サーバ自体はどのような UNIX 機でも問題ありません。

7.2 自分でコンパイルしたカーネルがブート時にクラッシュする

自分でカーネルを作ったんですが、クラッシュします。Indy ではクラッシュメッセージは次のようなものです (同様の問題は他のマシンでも起きますが、メッセージは全く違ったものかもしれません)。

   Exception: <vector=UTLB Miss>
   Status register: 0x300004803<CU1,CU0,IM4,IPL=???,MODE=KERNEL,EXL,IE>
   Cause register: 0x8008<CE=0,IP8,EXC=RMISS>
   Exception PC: 0x881385cc, Exception RA: 0x88002614
   exception, bad address: 0x47c4
   Local I/O interrupt register 1: 0x80 <VR/GIO2>
   Saved user regs in hex (&gpda 0xa8740e48, &_regs 0xa8741048):
     arg: 7 8bfff938 8bfffc4d 880025dc
     tmp: 8818c14c 8818c14c 10 881510c4 14 8bfad9e0 0 48
     sve: 8bfdf3e8 8bfffc40 8bfb2720 8bfff938 a8747420 9fc56394 0 9fc56394
     t8 48 t9 8bfffee66 at 1 v0 0 v1 8bfff890 k1 bad11bad
     gp 881dfd90 fp 9fc4be88 sp 8bfff8b8 ra 88002614

   PANIC: Unexpected exception
  

この問題はバージョン 2.7 以降の Binutils のまだ直っていないバグのために起きます。当面の回避策は、arch/mips/Makefile の次の行を

   LINKFLAGS       = -static -N
 

下記のように修正してください。

   LINKFLAGS       = -static
 

7.3 Indy のカーネルブートが次のような PROM エラーメッセージで失敗する

   >> boot bootp()/vmlinux
   73264+592+11520+331680+27848d+3628+5792 entry: 0x8df9a960
   Setting $netaddres to 192.168.1.5 (from server deadmoon)
   Obtaining /vmlinux from server deadmoon

   Cannot load bootp()/vmlinux
   Illegal f_magic number 0x7f45, expected MIPSELMAGIC or MIPSEBMAGIC.
  

この問題は Indy のとても古い版の PROM で、Linux の使う ELF バイナリフォーマットが理解されない場合に発生します。 この問題の解決は、現在作業中です。

7.4 私の SNI 用のリトルエンディアンファームウェアをどこで入手したらいいんでしょうか?

SNI のシステムはビッグとリトルの両エンディアンで動作可能です。現時点では Linux/MIPS はリトルエンディアンファームウェアのみサポートしています。 これはある意味で不幸なことで、SNI は Windows NT のサポートをやめたため、リトルエンディアンのファームウェアをここしばらく出荷していません。

ビッグエンディアンモードで動かした場合、ファームウェアは既にサポートされている SGI Indy に似たものですので、SNI サポートを修正するのは多分比較的容易です。 興味のあるハッカーは Ralf Bächle (ralf@gnu.org) まで連絡ください。

7.5 ld が signal 6 で死にます

   collect2: ld terminated with signal 6 [Aborted]
 
これは既知の、古い binutils のバグです。binutils 2.8.1 と最新のパッチの組み合わせにアップグレードする必要があります。

7.6 ネットブートを試みているんですが、私のマシンはカーネルをダウンロードしてくれません

あなたのマシンは BOOTP パケットに返答していますが (これを tcpdump や ethereal のようなパケットスニファで確認するといいでしょう) BOOTP サーバからカーネルをダウンロードしない場合です。 これはあなたのブートサーバがカーネル 2.3 系、またはそれ以降のものを使っているときに起きます。 この問題が起きた場合にはブートサーバで root になって "echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc" と入力してごまかしてみてください。

7.7 DHCP バージョン 2 のバグ

DHCP バージョン 2 を使っているときに次の問題に出くわすと思います。 現象:あなたのマシンは BOOTP を受信し、三回返答しますが TFTP を始めようとしません。この問題はシステムをブートする前に PROM モニタで "unsetenv netaddr" と入力することで回避できます。 DHCP バージョン 3 はこの問題を修正しています。

7.8 ブート時に "Warning: unable to open an initial console" というメッセージが出ます

この問題には二つの可能性と解決策があります。 まず、設定したシステムに実際に設定されたコンソールドライバが含まれているかを確認してください。 もし、これには問題が無く、問題が解決しないなら、 あなたは比較的ありふれた Linux ディストリビューションと root ファイルシステムのバグの犠牲になっているものと考えられます。 Linux システムのコンソールは、キャラクタデバイスで、メジャー番号 5、マイナー番号 1 で、かつユーザとグループが共に root で書き込み権 622 であるべきです。 もしそうなっていないなら、ファイルシステムのルートディレクトリに cd して、以下のコマンドを root になって実行してください。

   rm -f dev/console
   mknod --mode=622 dev/console
  
これは NFS サーバ上のルートファイルシステム上でも実行できます。 NFS サーバ上から直接でもできます。しかしメジャー番号とマイナー番号は NFS により変更されてしまうので、この作業はターゲットシステムだけが NFS クライアントである場合でも、Linux システムから行う必要があります。 そうしなければ、Linux クライアントがそこからブートする際にメジャー番号や マイナー番号が誤ったものになるかもしれません。


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