Debian on InterLink MP-XP5220EX

私のメモです。参考になればいいですが、間違っていたらごめんなさい。

また、このページはMP-XP5220でブート可能なCD-ROMを持っている ことを前提に書かれてます。

--------------------------------------------------------





インストール時の注意点

Debian woodyのインストーラで使っている カーネル(2.4.18)のFrame Bufferでは、インストール画面の左下、真下が切れてしまいます。 そのため、インストール中にOKボタン等が見えません。また、Base Systemインストール後の パッケージのインストールでもキーボードの入力が見えないことになります。 そのため、Debianのインストールに慣れてないと、インストールは困難と思われます。 VineなどRedHat系のディストリビューションでは画面が切れずに表示されますので、 Linuxを入れたいだけならばそっちをインストールした方がいいと思います。
 どうしてもDebianを入れたいならば、失敗しても大丈夫なようにバックアップを取るなどして から始めて下さい。もし、もう1台別のPCがあるならば、MP-XP5220ともう一台のPCとで同時に インストール作業を進めると良いかも知れません。ちょっとでもインストールや設定を楽にする コツは次のことかと思います。


インストール

いろいろやり方はあると思いますが、僕は次の方法でインストールしました。

  1. リカバリ領域のバックアップ
  2. プリインストールのWindowsXPとデュアルブートのするならば、 後から使うことを考えてハードディスク先頭にあるリカバリ領域を何とかして バックアップを取ります。 僕は、Drive Image for CD-ROMを使って復元用の起動CD-ROMを作成しました。 CD-Rは4枚必要です。
     WindowsXPを削除したところにLinuxを入れるならば、この工程は不要かも知れません。


  3. インストールCDの入手
  4. http://www.jp.debian.org/distrib/index.ja.html
     上から適当なインストール方法を選択して、ブートCDを作成してください。僕はNetインストール をするので、下のURLにあるbootbf2.4.isoをダウンロードして、CD-RWに焼いてインストールしました。
    http://people.debian.org/~blade/boot-floppies/cvs/


  5. パーティションの作成
  6. Debianのインストールを開始する前に、パーティションを変更できる ツールであらかじめLinuxのルートとスワップのパーティションを切ります。 僕は RamFloppyを CD-RWに焼いてfdiskで編集しました。
     RamFloppyは1CD Linuxではありませんが、 Bootable CD Versionを ブータブルイメージとして焼くと1CD Linuxになります。CD-R焼きソフトがブートイメージ ではなくブートFloppyを要求する場合(WinCDRなど)、RamFloppyの入ったフロッピーを 読み込ませれば同じように1CD Linuxになります。


  7. BIOSの設定
  8. Altair☆'s Pageさん の報告(MP-XP3210)では、 LCD Expansionをオフにしてインストールできるようですが、 MP-XP5220では画面が点滅しながらゆっくりとスクロールしてしまい、とてもインストール どころではありません(うちの飼い戌さん状況(MP-XP7210) に近いです)。この現象は、SiS Frame Bufferが有効になっていないカーネルで起こる ようで、Base Systemインストール後にLCD ExpansionをDisabledにしても発生します。 (SiS Frame Bufferに対応したカーネルならばLCD Expansionの設定がどうであれちゃんと 起動します。もちろん、Disabledの場合は画面が小さくなりますが。。。)
     そのため、BIOSの設定でLCD ExpansionをDisabledにしている場合、インストール開始前に Eneabledにしておきます。ちなみに、工場出荷時の設定ではEnabledです。


  9. BaseSystemのインストール
  10. NetインストールCDで起動して、DebianのBaseSystemをインストールします。 確認用のボタンは見えませんが、ほとんど「OK」を選択して問題ないと思います。 また、パーティション設定でも、どのパーティションを選択しているかくらいは 見えますので、焦らずやれば何とかインストールできると思います。
     僕が使ったインストーラは、module関係の読み込みで失敗しました。インストールに必要な モジュールは特にないため、そこは飛ばして「Configure the Hostname」→ 「Configure the Network」→「Install the Base System」→「Make System Bootable」 →「Reboot System」でインストールしてます。


パッケージのインストールとカーネル再構築

  1. パッケージのインストール
  2. Base Systemのインストールが終了して再起動すると、パッケージ のインストールが始まります。taskselが起動しても、パッケージを選択せずに OKを押します。それでも多少のパッケージのインストールが行われ、設定が始まって しまいます。適当にリターンを押していけばいいのですが、1カ所だけ数字を入力 するところ(メールの設定)があります。リターンキーを押しても同じ画面が出てくる ようならば、「5」を入力すれば次に進みます。ちなみに、「5」は"何も設定しない" というものです。


  3. カーネルの再構築
  4. ログインしたら何はともあれカーネルの再構築を始めます。

    # apt-ge install kernel-source-2.4.18
    # apt-get install make gcc libc6-dev libncurses5-dev kernel-package

    (一気にインストールしようとするとタイプミスをする可能性があるので、 一つずつインストールした方が良いかも知れません。
    また、赤字:カーネル再構築に必要、青字:make menuconfigに必要、黒字: make-kpkgを使うために必要となってます。)

    # cd /usr/src
    # tar jxvf kernel-source-2.4.18.tar.bz2
    # ln -s kernel-source-2.4.18 linux

    ここまで来たら、/usr/src/linuxディレクトリに移り、カーネル の設定を行います。

    # cd /usr/src/linux
    # make menuconfig (又はmake config)

    カーネル2.4.18のSIS Frame Bufferで起動すると、画面がブラックアウト して何も表示されなくなりました。そのため、2.4.18ではFrame Bufferを無効にします。
     デフォルトでは無効になっているので、Console driversセクションにFrame-buffer support が表示されないor表示されていてもチャックされていないのを確認してください。

    その後、make-kpkgでカーネルを作成して、インストールします。もし、 失敗するようでしたら、後述のカーネルの再々構築を見てください。

    # make-kpkg --revision Rev. No. kernel-image
    # cd ..
    # dpkg -i kernel-image-2.4.18_Rev.No._i386.deb

    カーネルの再構築は、make dep && make clean && make bzImage でも行えますが、viを起動するとブラックアウトするため、/etc/lilo.confを編集して liloを再インストールできません。 そのため、liloのインストールまで行うmake-kpkg&dpkg -iか、make bzImageの代わりに make bzliloを使います。

    dpkgでインストールすると、最初に「同じカーネルをインストールするなら、 /lib/modules/2.4.18以下のバックアップを取ったら?一時中断する?」と聞かれます。 ここで「n」を選択して強引にインストールします。その後はリターンキーを押していけば、 liloのインストールまで行ってくれます。

    無事インストールできたら再起動します。

    Debianでは、/etc/lilo.confのデフォルトの 起動イメージはimage=/vmlinuzになっており、/vmlinuzは/boot/vmlinuz-2.4.18-bf2への シンボリックリンクになってます。そのため、make bzImage後、bzImageを/bootにコピーし、 シンボリックリンクを張り直してliloの再インストールをすると何とかなるかも知れません。

時刻の修正

新しいカーネルで起動すると、ようやく画面が切れることなく表示されます。 しかし、僕が使ったインストーラでは時刻を正しく設定出来ていませんでした。時刻が ずれているようなら、次のようにして修正します。

  1. /etc/default/rcSの修正
    viなどで、/etc/default/rcSファイルのUTCをnoに修正します。

    UTC=no

    MP-XP5220のBIOSの時刻=日本の時刻になっているため、 BIOSの時刻=UTCにしないように上記の設定をします。

  2. 再起動
  3. UTCがyesだった場合、再起動するまで設定が反映されないためです (/etc/default/rcSファイルはブート時にしか読み込まれないため)。

  4. タイムゾーンの設定
  5. インストール時にタイムゾーンをAsia、Tokyoにしていない場合は このコマンドで設定します。表示されるメッセージに従ってAsia、Tokyoに設定します。

    # tzconfig


  6. 時刻の修正
  7. dateコマンドで時刻を表示し、まだ時刻がずれているならば 次のコマンドで時刻を修正します。(たぶんずれているはず。)

    # date --set "2003/06/01 14:10:00" (今の日本の時間を設定)


カーネルの再々構築

  1. カーネルのバージョンとSiS driver
  2. 先ほど作成したカーネルは”取りあえず”のカーネルなので、 画面の表示が切れなくなったところで再構築を行います。 しかし、コンソール、X(1024x600表示)ともにまともに表示できるカーネル を2.4.18で作成することはできないようです。理由は次の通りです。

    そこで、僕は2.4.18を諦めてtestingから2.4.20のカーネルソースを 取ってきてカーネルの再々構築をしました。 ちなみにtestingの2.4.20のカーネルイメージは、gcc(?)のバージョンが違うらしく インストール出来ませんでした。

    2.4.19の場合、ペンギンは出てきませんがブラック アウトせずに表示されます。そのため、2.4.19ならばDRIドライバも作成可能です。また 下記のXのSiSドライバを使ってXを1024x600で立ち上げる ことが可能です。

  3. カーネルのコンフィグレーション
  4. カーネルの設定では、SIS630用のFrame Buffer driverが Experimentalなので、Code maturity level optionsを有効にしています。

    MP-XP5220のデバイスがLinuxでどのように認識されるかは、下のページを 参考にしてください。

    InterLink5220EXと各OSの対応状況 :Linux、*BSDでのデバイス認識状況です(手前味噌ですが)

    2003/06/02時点でのカーネルコンフィグレーションファイルは下にあります。 下記コンフィグレーションファイルでは、後でpcmciaをソースから インストールするためpcmcia supportが無効になってます。

    MP-XP5220用カーネルコンフィグレーションファイル 及びdmesg

    Xを使うならば、次の2つは必須ですので忘れないように。

    Character devices ---> DRM4.1 driver SiS
    Console drivers ---> Frame-buffer support ---> SIS 630/540/730 support

  5. コンパイルエラーと対処方法
  6. 上記のカーネルコンフィグレーションファイルでカーネルを 再構築すると、エラーが出るかも知れません。僕の場合は、SMPサポートを外したら エラーが出ました。
      これはdebパッケージを作る元になったカーネルツリーの設定が残っていることが原因の ようです。次のように、一度make mrproperを実行すると無事コンパイルできました。
    (参考:http://www.tux.org/lkml/#s8-8

    # mv .config ..
    # make mrproper
    # mv ../.config .
    # make oldconfig
    # make-kpkg --revision Rev. No. kernel-image

  7. モジュールの読み込み
  8. カーネルコンフィグレーションファイルでモジュールにした、 サウンド、USB、IEEE1394などを起動時に読み込みたい場合は、/etc/modulesに モジュール名を記述します。それぞれ、trident、usb-ohci(又はehci-hcd)、 ohci1394です。


Xの設定

  1. X Window Systemパッケージのインストール
  2. カーネルのドライバの準備ができたので、ようやくXをインストール します。

    # tasksel
    出てきたウィンドウで"X Window System"を選択してOK

    パッケージインストール後、Xの設定になります。 取りあえずはここで設定をしておきます。ドライバにSiSを選択し、 モニタの水平周波数、垂直周波数をそれぞれ45-80、56-100にします。
     但し、残念ながらこの時点ではXが起動しませんが、 XF86Config-4の設定を保存して終了します。

  3. SiSドライバのインストール
  4. XFree86 4.3以上のSiSドライバならば問題なく1024x600を 表示できますが、残念ながらwoodyのは4.1です。そこで、 うちの飼い戌さんのX Window編 で紹介されているように、以下のThomasさんのページからドライバをダウンロード してインストールしました。

    ドライバ本体: http://www.winischhofer.net/linuxsisvga.shtml#download
    SiSドライバの説明: http://www.winischhofer.net/sisdri.shtml

    InterLinkでの1024x600表示に関しては、 うちの飼い戌さんのX Window編 が非常に詳しいです(大変参考になりました)。 2003/06/02時点で、比較的最近(2003/05/22)リリースされたXFree86 4.1用sis_drv.oが バイナリで提供されているため、それを使いました(Debian用でもあります)。

    # wget http://www.winischhofer.net/sis/sis_drv.o_4.1.0_gcc2_ddmmyy.tar.gz
    # tar zxvf sis_drv.o_4.1.0_gcc2_ddmmyy.tar.gz
    # mv /usr/X11R6/lib/modules/drivers/sis_drv.o ./sis_drv.o.back
    # cp sis_drv.o /usr/X11R6/lib/modules/drivers/

  5. XF86Config-4の編集
  6. 先に作成したXF86Config-4ファイルは、/root以下にあります (たぶん。。。)。編集するのは、"Screen"SubSection "Display"の Depth 16の下、Modesに"1024x600"を追加することだけです。

    下に僕のXF86Config-4ファイルを置きます。このファイルでは InputDevice(マウス)が2つあり、Configured Mouseがトラックポイント、 Generic MouseがUSBマウスになってます。murasakiなどでUSBのホットプラグ を有効にすると、USBマウスを挿すとトラックポイントと共に使うことができます。
     但し、残念がながら、トラックポイントでのスクロールはうまくいってません。
    (ホイールマウスではなく3つボタンマウスになってしまってます)

    参考:XF86Config-4ファイル


付属CDの設定(pcmciaの設定)

  1. 付属CDとPCMCIAカードへの対応
  2. woodyのデフォルトカーネル2.4.18、2.4.19では、# modprobe i82365に 失敗します。# modprobe i82092は成功しますが、CD-ROM Interface Card(KXLC005)は 認識しません。カーネル2.4.20では、# modprobe i82365は成功します。しかし、ide-cs にマッチしないためcd-romは使えませんでした。
     但し、 うちの飼い戌さん では、2.4.19でPCMCIAデバイスが動いているようです。 もしかしたら、私の設定が悪いのかも知れません。

    そこで、 Altair☆'s Pageさんが書かれているように、pcmcicaの3.2.2以上のソールから インストールする事にしました。

  3. ソースのダウンロード
  4. まず下のサイトからpcmcia-cs-3.2.x.tar.gz(x≧2)を落とします。 最新は3.2.4でしたが、3.2.2以上なら付属CDに対応しているようなので、3.2.2を ダウンロードしました。

    http://pcmcia-cs.sourceforge.net/ftp/

  5. モジュールの作成とインストール
  6. まず、カーネルのpcmcia supportを無効にしたカーネルをインストール しておきます。その後、次の手順でpcmciaモジュールをインストールします。やり方は Altair☆'s Pageさんのページに書かれているまんまです。 ALSAモジュールの作成と手順は 一緒です。

    # tar zxvf pcmcia-cs-3.2.x.tar.g -C /usr/src
    # cd /usr/src/linux
    # make-kpkg --revision Rev.No. modules_image
    # cd .. # dpkg -i pcmcia-modules-kernel_version_pcmcia_version+Rev.No..deb

    Rev. Noはカーネルの再構築した際のRev. No.と一緒で なくてはいけません。Rev. No.を忘れても、エラーメッセージにRev. No. が表示されますので、それを使えば無事にコンパイルできます。

  7. カードサービスのインストール
  8. cardmgrや/etc/pcmcia/以下の設定フィアルなどを新しくするため、 次のようにDebianパッケージを作成してインストールします。

    # cd /usr/src/modules/pcmcia-cs
    # debian/rules binary-cs
    # cd /usr/src
    # dpkg -i modules/pcmcia-cs_pcmcia_version_i386.deb

  9. 付属CDROM用の設定
  10. 上記のpcmciaをインストールしても、まだこのCDROMは使えません。
     次のコマンドでATAカードの情報を見てみます。(付属のCDROMドライブ名は 松下のUJDB130、ATAカードは松下のKXLC005です)

    # cardctl info 0
    PRODID_1="KME"
    PRODID_2="KXLC005"
    PRODID_3="00"
    PRODID_4=""
    MANFID=0032,2904
    FUNCID=8

    そこで、次の記述を/etc/pcmcia/configに書き加えます。 (/etc/pcmcia/config-2.4ではない)

    card "Panasonic KXLC005"
    version "KME", "KXLC005"
    bind "ide-cs"

    上の設定は、ウェブを探すと載ってました。ポイントはbindをide-cs にすることのようです。設定を書き加えたら、pcmciaサービスを再起動すると認識 するようになります。

    # /etc/init.d/pcmcia restart

    (認識状況)
    PCI: Sharing IRQ 11 with 00:09.2
    PCI: Sharing IRQ 11 with 00:0f.0
    PCI: Found IRQ 11 for device 00:09.1
    PCI: Sharing IRQ 11 with 00:09.0
    PCI: Sharing IRQ 11 with 00:09.2
    PCI: Sharing IRQ 11 with 00:0f.0
    Ricoh RL5C476 rev 88 PCI-to-CardBus at slot 00:09, mem 0x0de000
    host opts [0]: [serial irq] [io 3/6/1] [mem 3/6/1] [pci irq 11] [lat 32/176] [bus 2/5]
    host opts [1]: [serial irq] [io 3/6/1] [mem 3/6/1] [pci irq 11] [lat 32/176] [bus 6/9]
    ISA irqs (default) = 3,10,15 PCI status changes
    cs: memory probe 0xa0000000-0xa0ffffff: clean.
    cs: IO port probe 0x0100-0x04ff: excluding 0x3c0-0x3df 0x480-0x48f 0x4d0-0x4d7
    cs: IO port probe 0x03e0-0x047f: clean.
    cs: IO port probe 0x0490-0x04cf: clean.
    cs: IO port probe 0x04d8-0x04ff: clean.
    cs: IO port probe 0x0800-0x08ff: clean.
    cs: IO port probe 0x0a00-0x0aff: clean.
    cs: IO port probe 0x0c00-0x0cff: clean.
    hdc: UJDB130, ATAPI CD/DVD-ROM drive
    ide1 at 0x190-0x197,0x396 on irq 3
    hdc: ATAPI 20X CD-ROM drive, 128kB Cache
    ide-cs: hdc: Vcc = 5.0, Vpp = 0.0

    これで/dev/hdcをcdromドライブして使えるようになりました。

  11. BIOSの設定と付属CD
  12. pcmciaの抜き差しは出来るようになりましたが、起動時にカードを 抜き忘れると# cardctl eject 0してから再びカードさしても電源が入らないです。
     起動時には/dev/hdcと認識されているので/dev/hdcをiso9660でマウントしても、 「/dev/hdcがconfigされていない」と言われてしいます。

    いろいろ試してみたところ、起動時にカードを挿したままだと /proc/pcmciaが作成されないようです(pcmciaをリスタートしても駄目です)。 ようするに、起動時にIDEのCDROMが見つかった代わり、pcmciaスロットは 無くなったということでしょう。

    LinuxカーネルがRicohのpcmciaチップを見つけられないと言うことは、 Linuxカーネルが立ち上がるより先、即ちBIOSがpcmciaをIDEのCDROMとエミュレートしている ということと思います。それならば、起動時にカードを挿していた場合、/dev/hdcを CDROMとしてマウントできそうなものです。そこでBIOSの設定をいじってみると、 「Advanced]→「PCMCIA Locked for CDROM」を「Enabled」にすることでマウントでき るようになりました。