Home > PC Memo

PCやLinux, Macに関する備忘録

Linux PCや、Macintosh関連のメモです。自分がはまったことを、忘れてもう一度やらないように...。


MacTCPの仕様バグに振り回されるの巻

2000年6月某日

既存のMacintosh(PPC 603e/75MHz)に10BaseTカードを挿して、 Linux (TurboLinux WS6)マシンと繋ぐことにする。

NICは、LC-PDSスロットに挿すもので秋葉館で¥3800で買ったもの(型番GH-ELM10/LC)。 コミュニケーションスロットに挿すものは、軒並み1万円くらいしていたが、 これだけは安かった。Green Houseという会社が国内向けに売っているが、 モノは米国のMacsenseという会社のもので、製造は台湾のようだ。

とりあえず挿す。再起動してネットワークコントロールパネルを見ると、 ちゃんとEtherTalkが動いている。MacTCPコントロールパネルにも、 Ethernetという選択肢が現れている。さすがMac。

10BaseTケーブル(湘南通商で一本¥100で買った。 ストレートケーブルかどうか不安だったけど)と10BaseTハブを使ってLinuxマシンと繋ぐ。 ハブはメルコの5ポート品で、なぜかPower LEDだけがつかないが無視する。 LED点灯を確認し、まずLinux側のセットアップ。

DNSは当分動かす予定はないので、/etc/hostsに以下の行を追加:

192.168.1.1   ome.mydomain.or.jp       ome
192.168.1.2   cupertino.mydomain.or.jp cupertino

turbonetcfgで、以下のパラメータを設定して再起動。

IP:      192.168.1.1
Netmask: 255.255.255.0
Gateway: 192.168.1.1
machine: ome
domain:  mydomain.or.jp

pingを自分に対して打って、返ってくることを確認する。問題なし。

次にMacの設定。MacTCPコントロールパネルを開き、今はFreePPPに繋がっているので、 これをEthernetに繋ぎ直す。[More]で、IPアドレスの取得を「サーバから」から 「マニュアル」に変更。Gatewayアドレスには意味不明なものが入っていたので 192.168.1.1に変更。ネットクラスをCに設定。元の画面に戻ってIPアドレスとして 192.168.1.2を設定した。MacTCPを閉じて再起動。DNS設定は変更しない。 システムフォルダの中のHostsファイルに以下の追記をする。

ome.mydomain.or.jp       A 192.168.1.1
cupertino.mydomain.or.jp A 192.168.1.2

MacTCP Ping(v2.0.2)を起動して自分にpingを打つ。返ってこない! 192.168.1.1に pingを打つ。返ってこない! Linuxから192.168.1.2にpingを打つ。 正しく返ってくる。(但し、Linuxから呼ぶ前に、Mac側でTCPを一度使わないと、 起動直後のままでは反応しないようだ) 試しにNCSA Telnet, Fetchを起動してLinuxに繋げようとしてみるが、 レスポンスがないと言って繋がらない。

そういえば、Linuxインストール時に、AppleTalk daemonを入れたっけ、と思って、 セレクタでAppleShareを起動してみる。サーバ ome が正しく見え、 リモートボリュームとしてマウントできた。読み書きも可能。 どうやら電気的にはちゃんと見えているらしい。 どうやらMac側のTCPの設定の問題と思われる。

www.linux.or.jp/JF/ のドキュメントアーカイブを、MacからLinux側に (AppleTalk経由で)移して、参照しながら作業を進めることにする。

LAN-mini-HOWTOでは、MacTCPではなくてOpenTransportを使っていて、 最近は安定していて結構便利らしい。前にOpenTransport 1.1.2(J) をダウンロードしてあったんで、この際入れてみることにする。

DiskCopy形式のファイルだったので、仮想マウントしてドキュメントを読む。 KanjiTalk 7.5.5には、いきなりインストールして問題なさそうなことがわかる。 しかし続いてインストーラを起動すると、 「RAMまたはROMに問題があってインストールできません。Appleに連絡してください」 なるメッセージが出てきて続行できない。 どうやら挿したNICのROMを、OpenTransportが認識できないようだ。

次にNICメーカが情報を出していないかと考え、www.green-house.co.jp に行ってみる。 しかし情報全くなし。次にwww.macsense.comに行く。 型番は箱に書いてあるのと同じものがあった。ここは色々情報があったが、 買ってきたのは現行製品であって特に問題などはリポートされていないし、 FAQを見てもドライバはApple製のをそのまま使う、としか書いてない。

試しに、MacTCPの設定をFreePPP経由に戻して、ISPに繋いでからDNSマシンにping を打ってみたら、ちゃんと返ってきた。MacTCP Ping自体は問題なさそう。

OpenTransportのドキュメントの中に、古いMacTCP PingはOpenTransport をサポートしていないので、これこれの代替品を使え、などと書いてあった。 そこで、この代替品を入手してみることにする。とりあえず MacPing という sharewareのデモ版(v3.0.4)を入手。しかし状況変わらず、パケット100% lossのまま。

MacPingにオンラインヘルプ(英語)が付いていたので、適当に読む。すると、この中に、 MacTCPの実装にはバグがあって、自分自身を呼ぼうとしても内部でループバックせず、 外にパケットを出してしまう、だから、他のマシンが返事をするのなら正常だよ、 との記述有り。うーむ、そういえば、omeから自分にpingしたときはhubは光らないが、 Macから自分にpingしたときはhub上のMac側のLEDが光っている。 (これは実は有名な話らしくて、後で気づいたけれどMacTCP Watcherのドキュメントにも書いてあった)

MacPingの画面上には、[short ICMP]とかいうボタンがあって、mid, long も選べるようになっていた。試しにこれをmidにすると、20% loss くらいまでパケットが届くことを発見。longなら殆ど0% lossである。 さらに、MacTCP Pingでも、パケット長をデフォルトの56バイトから、 例えば560バイトにするとタイムアウトしなくなる。

ここに至って、実はMacTCPの設定は正しく行われているにも関わらず、Mac → Linux の場合だけは短いpingパケットだとタイムアウトしてしまう状態 なだけであることが分かった(何故???)。 となると、telnet, ftpが動かないのは別の要因である。 おそらくLinux側のデーモンの設定であろう。

ps -A してみるが、確かに ftpd, telnetd ともに動いていない。 ドキュメントを漁って、/etc/inetd.conf を書き換える必要があることがわかり、 ftp, telnet サービスをイネーブルして再起動。

デーモンが動いていることは確認できたが、まだMacからtelnetできない。しかもome からもomeにtelnetできない。 またドキュメントを漁って、/etc/hosts.allow, /etc/host.deny を変更する必要があることが分かる。これを適当に修正。

めでたく telnet, ftp ともにMacからログインできた。:-)

おしまい


ThinkPad365XにXFree86が設定できないの巻

2001年12月某日

中古のIBM ThinkPad 365Xを手に入れてきたので、これをルータに仕立てようと思った。 とりあえずTurbo Linux Workstation 6.0を一式入れてしまうことにし、雑誌付録のFTP版をインストール。

ThinkPad 365XにはCD-ROMドライブがついていないので、NFSからインストールすることにする。/etc/exportファイルと、turboserviceコマンドを使って適当にNFSを起動する。これを使ってインストールするのだが、PCMCIAのネットワークカード(100BaseTX)が遅いらしくて、インストールに40分以上かかってしまう。

ついでに(試しに)Xの設定をやってみる。しかし普通にやっていると、どうしても640x480までの解像度しかでない。いろんなwebを漁ってみるが、800x600がでるはずのようである。しかし、公開されているXF86Configを使ってみてもなぜかうまく行かない。

結局、試行錯誤の上に下記のXF86Configを作成し、800x600が表示可能となった。ただし、256色しかでないけど。(実際にはこのマシンはルータとして使うのであって、Xは使わないのだけどね。)

Section "Files"
    RgbPath     "/usr/X11R6/lib/X11/rgb"
    FontPath    "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
    FontPath    "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
    FontPath    "/usr/X11R6/lib/X11/fonts/Type1/"
    FontPath    "/usr/X11R6/lib/X11/fonts/misc/"
    FontPath    "/usr/X11R6/lib/X11/fonts/Speedo/"
    FontPath    "/usr/X11R6/lib/X11/fonts/cyrillic/"
    FontPath    "/usr/X11R6/lib/X11/fonts/freefont/"
    FontPath    "/usr/X11R6/lib/X11/fonts/sharefont/"
    FontPath    "/usr/X11R6/lib/X11/fonts/75dpi/"
    FontPath    "/usr/X11R6/lib/X11/fonts/100dpi/"
    FontPath    "/usr/X11R6/lib/X11/fonts/TrueType/"
EndSection

Section "ServerFlags"
#    NoTrapSignals
#    DontZap
#    DontZoom
EndSection

Section "Keyboard"
    Protocol    "Standard"
    AutoRepeat  500 5
    LeftAlt     Meta
   RightAlt     Meta
   XkbRules     "xfree86"
   XkbModel     "jp106"
   XkbLayout    "jp"
EndSection

Section "Pointer"
    Protocol    "PS/2"
    Device      "/dev/psaux"
EndSection

Section "Monitor"
    Identifier  "IBM TP365TFT"
    VendorName  "IBM"
    ModelName   "TP365TFT"
    HorizSync   31.5 - 82.0
    VertRefresh 40-150
    Modeline "800x600" 40 800  856  976 1040   600  637  643  666 +hsync +vsync
    Modeline "640x480" 40 640  664  760  800   480  491  493  525
EndSection

Section "Device"
    Identifier  "AutoProbed (Trident LCD9320:PCI)"
    VendorName  "AutoProbed (Trident LCD9320:PCI)"
    BoardName   "Trident LCD9320:PCI"
    VideoRam    1024
    # No probed static clocks for this card (good)
    Chipset     "tgui9682"
    Ramdac      "internal"
EndSection

Section "Screen"
    Driver    "svga"
    Device    "AutoProbed (Trident LCD9320:PCI)"
    Monitor   "IBM TP365TFT"
    DefaultColorDepth    8
    Subsection "Display"
        Depth    8
        Modes    "800x600"
    EndSubsection
    # 16bpp does not work (double width display...)
    Subsection "Display"
        Depth    16
        Modes    "800x600"
    EndSubsection
EndSection

Sharp製WindowsCE機「Telios HC-AJ3」のCompactFlashスロットが動作しないの巻

2002年7月某日

シャープのA5サイズポータブルPC「Telios AJ3」には、PCカードスロットとCompactFlashスロットがそれぞれ1つづつ付いているのだが、このうちCFのスロットが機能しなくなってしまった。具体的には、メモリカードを差し込んでも、それが差し込まれたことをOSが全く認識しない、という状況。

スロットの蓋を開いて内部を観察すると、どうやらコネクタのピンが1本曲がってしまっている模様。奥のほうなので良く見えないが、card detectのピンのように見える。

仕方がないのでとりあえず分解する。次のような手順で分解した。なお、分解するとメーカ保証が効かなくなるので、分解の際にはあくまでも個人の責任で。

  1. Li-ionバッテリユニットを外す
  2. 裏面左下のネジ(小)付き蓋を開け、リチウムボタン電池を外す
  3. 裏面中央のネジ(大)3つを外し、パームレスト部の蓋を外す。(写真)
  4. メモリモジュールのネジ(真鍮)を外し、モジュールを真上に引き抜く。
  5. キーボードを固定しているネジ(小)2つを外す。
  6. キーボードのフレキシケーブルコネクタ(クリーム色)をゆるめ、フレキシを外す。(写真)
  7. 筐体の下部と上部とを分解する。(メイン基板等の主要部品は上部(キーボード裏)に付いている)
  8. まずLi-ionバッテリのロックレバーを、固定側に倒す。(ロックレバーが外れていることを検出するマイクロスイッチに干渉するため)
  9. 裏面からネジ(小)9個を外す。
  10. 筐体の上部と下部がはめ合いになっているので、じっくり緩める。後面側からはじめるとよい。PCカードスロット側も緩みやすい。前面には2つの爪がある。2つとも、底面側筐体を外に押すと外れる構造。
  11. 電源コネクタ部分に丸カラーが付いているが、筐体を開くとはずれる。前面に付いている緑&青のボタンと、LEDの導光器も、筐体を緩めると外れる。
  12. CFスロット側のゴム蓋は、筐体を緩めるとはずれる。
  13. リモコン端子、携帯電話端子、シリアル端子は、筐体を開くとき引っかかるので、筐体を少しゆがませて開く。(写真)
  14. メイン基板を上部筐体から外す。なお、今回は液晶は分ける必要がなかったので、つないだままにした。
  15. マイクのコネクタを外す。スピーカのコネクタを外す。
  16. マイクロフォン付近のネジ(小)1つをはずす。
  17. PCMCIAスロットを固定しているネジ(極小)3つをはずす。(写真)

これにより基板面にアクセス可能になったので、問題のCFコネクタの修理を行った。具体的には、card detectに使用するピンはもともと2本あるので、死んでしまっているピンで検出するのはあきらめ、反対側のdetectピンだけで検出を行うことにする。死んでいるピンは、GNDに短絡してしまい、常時カードが刺さっているのと同じ状態にしてやることにした。曲がってしまった不要なピンを切断し、コネクタ裏側で隣接するGNDと半田ショートさせる。

これを元どおり組み立て(組み立て手順は分解手順の逆)、正常にCFカードを認識できることが確認できた。


Telios AJ3で無線LANを使うの巻

2002年8月某日

「Telios AJ3」に無線LANアダプタが付くということなので、試してみることにする。 これが使えるとなると、会社のアクセスポイントに無線で繋がる上(実験室とかでちょっとコンソールとして使ったりに便利)、自宅にアクセスポイントを置けばリビングやダイニングで仕事ができるので便利じゃないかと思う。

漁った情報源:
Sharp Telios Mailing List (http://www.sbc.co.jp/telios/ml.stm)
WindowsCE FAN (http://www.wince.ne.jp/frame.asp?/review/katsuo/wlipcml11.html)

これらの情報源から、入手性が良く、かつ、接続性が固そうなカードとして、メルコのWLI-PCM-L11GPを選択することにした。 なんといってもこれ以前に、NE2000なら対応している、という情報のもとに100BaseTXカードを差して認識せずに四苦八苦したので(結局、100BaseTX品は繋がった実績がなく、接続事例のある10BaseTをつなぐべき、という結論だったりする)、カード認識ではまるのを避けたかった。

いずれにしても、無線LANカードをWindowsCEに認識させるにはドライバが必要である。 しかし、メルコはドライバを提供していないため、他のメーカの互換ドライバ(?)を使うしかない。

ちなみに、メルコが添付してくるCD-ROM(Version 2.40)には、WindowsCE用としてWLI-CF-S11G用のドライバが入っていた。 このドライバをインストールすると、コントロールパネルに [WLI-CF-S11G設定] というパネルができるが、これでPCM-L11Gを認識させることはできない(正しく無線LANカードを挿せ、とのダイアログがでる)。

互換ドライバの入手については、塚本氏のページ(http://village.infoweb.ne.jp/‾tamio/diary/d01Sep.html)に詳しい。

このメモに基づいて、下記の比較的古いドライバをダウンロード。
ftp://ftp.orinocowireless.com/pub/software/ORiNOCO/PC_Card/win_ce/v406/WLCE_406.exe

この自己解凍zipアーカイブに含まれる SETUP211.EXE をWindows母艦で実行しドライバを組み込む。メッセージは一部英語だがちゃんと読めばOK。

インストール終了したらリセットする。 コントロールパネルに、WaveLAN というパネルができる。 これを開き、無線区間に関する設定(WEP暗号キーなど)を行なう。 このドライバUIには、なぜかESS-IDを入力するところがない。その代わりにBasicタブにWaveLAN Network Nameというフィールドがあり、ここに入れると良いようである。 また、ドライバが想定しているハードウエアが古いためか、暗号化キーのビット長を選択できない。 たぶん40bit固定になっていると思われる。128bitモードで稼働するドライバを探してみる必要あり。

次にネットワークパネルを開く。 ドライバリストに、WVLAN461: WaveLAN/IEEE Wireless Ethernet Driverというのが追加されている。 これを選び、プロパティを開いてTCP関係の設定を適切に行なう。

無線LANカードをいったん抜き、再度挿入。 ドライバ名を入力せよとダイアログが出るので、 wvlan46 と入力。(なぜ wvlan461 ではないのかは不明)

WAVELAN: Install_Driver PnpId MELCO-WLI-PCM-L11-198B Regpath wvlan46 RegSize 256 とダイアログが出るのでOKする。 この時点で、無線LANカードのLEDが点灯するはず。 サスペンド&リジュームも問題ないようである。

次に、メルコの無線LANアクセスポイント(ルータ機能付き)WLAR-L11G-Lの設定を行う。(但し、私の環境ではルータ機能は使用していないため、WANポートは空いたままだったりする)

実は自宅にはWindows系OSのマシンが(Teliosを除いて)ない。 メルコのWebの商品紹介や配布されているオンラインマニュアル (ちなみに製品を購入してもオンラインマニュアルがCD-ROMに入っているだけである。まあ別にいいのだが、簡単なハードウエアマニュアルくらい付けてくれぇ) を見ると、この装置はWindowsベースのアプリケーションソフトを使って各種の設定を行なう必要があるように見えるが、実はそんなことはなく、既に稼働しているEthernetによるLANがあればHTTPクライアントから設定可能。 (なお、クライアント側(PCカードなど)のドライバ及び設定ユーティリティに関してはこの限りではない。)

例えばLinuxしかない環境でこの無線LANアクセスポイントを導入する場合、まず、任意のネットワークセグメントのネットワークアドレスを192.168.0.0にし、このセグメントに無線LANアクセスポイントのLANポートを繋ぐ。 次にこのセグメントにアクセス可能なホストにおいてwebブラウザを起動。 http://192.168.0.1/にアクセスすると、無線LANアクセスポイントの設定画面が出る。 設定のためにはログインが必要だが、初期値ではユーザ名:root、パスワードなしでログインできる。 この設定画面で「LAN側IPアドレス」を適切なものに変更する。 「設定」を押すとパラメータが不揮発メモリ?に書き込まれ、無線LANアクセスポイントが自分でリセットするので、おもむろにイーサケーブルを差し替え(または繋がっているホストのIP等を修正し)、新しい「LAN側IPアドレス」に対してHTTP接続して、他の設定を継続する。

もしも訳がわからなくなっても、装置背面のINITボタンを3秒以上押しつづけることによって、工場出荷時に戻るらしい。 (このへんのことが書いてある「マニュアル」があるといいと思うんだけど)

参考:
AirStation設定ガイド
AirStation Q&A


Promise Ultra100TX2をインストールするの巻

2002年12月某日

以前からPCのマザーボード(というかBIOS)が古いせいか、32GBを超えるHDDをつなぐと、BIOSがそれを認識しないという現象がおきていた。でも、Linuxさえ立ち上がれば、Linuxのディスクドライバがちゃんとディスクを認識するので、実質問題ではない。そこで、10GBのディスクを起動ディスクにして、追加の40GBディスク(IBM IC35L040AVER07-0)は起動時に使用しないようにしていた。

ところが最近ディスクの容量が不足気味になった。というのは、40GBのほうの一部パーティションを使って、他の領域のバックアップを取っているから。そこで最近安くなってきた60GBのディスク(IBM IC35L060AVV207-0)を¥10000くらいで買ってきた。IDE I/Fは既に4つ埋まっているので、古いCD-ROMドライブを外してもよいけれど、いちおうPromise Ultra100TX2を¥2500くらいで一緒に買う。

とりあえず、CD-ROMドライブを仮に外して、60GBのディスクをつないでみた。するとBIOSがIDEデバイスを探しに行くところでハングアップして起動しないことが判明。 60GBディスクのジャンパを操作して、32GBクリップ状態にしてみた。するとちゃんと32GBとして認識して起動し、領域確保なども問題なくパスした。ドライブ自体はちゃんと動いているようなので、ますますBIOSが怪しい。

BIOSアップデートは後回しにして、Promise Ultra100TX2をつないでみることにする。とりあえずカードを差しただけで起動してみると、IDE BIOSをインストールしない(デバイスが見つからないから)というメッセージが出たところで固まって起動しない。Ultra100TX2のIDEバスにディスクを1つつないでやると、ちゃんとディスクを認識し、起動した。なんかBIOSがかなりボロい気がしてきた。

さて、このままではLinux側がPromiseを認識していない。 webをいろいろ漁って、起動オプションをつけると良いことを知る。

boot: linux ide2=0xb800,0xbc02

これで追加ディスクを /dev/hde として認識した。しかし、hdparm -tT /dev/hde してみると、2MB/sec程度しか出ていないことがわかる。PIOモードになっているためだ。DMAにしようとしても、hdparm -d1 /dev/hde はデバイスがサポートしていないと言ってけられる。う〜む。

またまたwebを漁って、Promiseに対応したカーネルパッチが存在することを知る。どうやら、Promiseの箱に対応OSとして書いてあるRedHat6.2は、このパッチが当たったカーネルを収録していると思われる(使用中のディストリビューションはTurboLinux Workstation 6.0 FTP版)。 探してみたが、現在使用中のKernel 2.2.21に対応するパッチはなく、2.2系列では2.2.20用が最新であることがわかる。これを落としてみたところ、Ultra100TX2に載っているチップのPDC20268をサポートしているらしい。(configヘルプには20267までしか書いていないが、ソースのコメントを読む限り、20268もサポート対象デバイスになっているように見える)

そこでまず2.2.20のカーネルにパッチを当て、コンパイル。Kernel Configでは、

CONFIG_IDEDMA_AUTO=y
CONFIG_BLK_DEV_PDC202XX=y
CONFIG_PDC202XX_BURST=y

を忘れてはいけない。これをインストールして起動してみる。OK! /dev/hde がうまく認識される。dmesgは、こんな感じ。

Uniform Multi-Platform E-IDE driver Revision: 6.30
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
PIIX4: IDE controller on PCI bus 00 dev f9
PIIX4: detected chipset, but driver not compiled in!
PIIX4: chipset revision 1
PIIX4: not 100% native mode: will probe irqs later
    ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:DMA, hdb:DMA
    ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:DMA, hdd:DMA
PDC20268: IDE controller on PCI bus 01 dev 10
PDC20268: chipset revision 2
PDC20268: not 100% native mode: will probe irqs later
PDC20268: ROM enabled at 0xe5000000
    ide2: BM-DMA at 0xc800-0xc807, BIOS settings: hde:pio, hdf:pio
    ide3: BM-DMA at 0xc808-0xc80f, BIOS settings: hdg:pio, hdh:pio
hda: ST310212A, ATA DISK drive
hdb: TAEIL CDD-8400T, ATAPI CD/DVD-ROM drive
hdc: IC35L040AVER07-0, ATA DISK drive
hdd: PLEXTOR CD-R PX-W1210A, ATAPI CD/DVD-ROM drive
hde: IC35L060AVV207-0, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
ide2 at 0xb800-0xb807,0xbc02 on irq 9
hda: 20005650 sectors (10243 MB) w/512KiB Cache, CHS=1245/255/63
hdc: 80418240 sectors (41174 MB) w/1916KiB Cache, CHS=79780/16/63
hde: 120103200 sectors (61493 MB) w/1821KiB Cache, CHS=119150/255/63, UDMA(100)

hdparm -tT /dev/hde も、30MB/sec程度まで向上した。

# hdparm -tT /dev/hde

/dev/hde:
 Timing buffer-cache reads:   128 MB in  1.46 seconds = 87.67 MB/sec
 Timing buffered disk reads:  64 MB in  1.90 seconds = 33.68 MB/sec

ところで、この構成のままではXが動かない。ビデオチップがi810なので、agpgart.o を入れないといけないのだが、この追加分モジュールは2.2.21向けにコンパイルされているため。これを2.2.20向けにコンパイルし直さないといけない。

2.2.20をコンソールで起動して、agpgart.o をソースからコンパイル。insmod ./agpgart.o を行うも、エラーになる。

./agpgart.o: kernel-module version mismatch
        ./agpgart.o was compiled for kernel version 2.2.21
        while this kernel is version 2.2.20.

う〜ん、と唸ること一時間。実はくだらないことを忘れていて、/usr/src/linux が、linux-2.2.21 へのリンクのままになっていたためでした。これを2.2.20向けにリンクし直してコンパイルすることで解決した。

参考資料:
The Linux Ultra-DMA Mini-Howto
Uniform Multi-Platform E-IDE driver
Linux ATA Development Project
Linux Tips
MLand98 Misc TLJ4.0 install for PROMISE Ultra66 IDE card
MLand98 Misc PROMISE Ultra 100TX2 IDE ATA card


Promise Ultra100TX2がATA/100モードにならないの巻

2003年1月某日

上に書いたように/dev/hdeを接続して使っていたのだが、ふと/dev/hdeの速度が遅い気がした。そこで測ってみると、

# hdparm -tT /dev/hde

/dev/hde:
 Timing buffer-cache reads:   128 MB in  1.53 seconds = 83.66 MB/sec
 Timing buffered disk reads:  64 MB in  3.00 seconds = 21.33 MB/sec
前より随分遅くなっているみたいである。dmesgを再度確認。
hda: 20005650 sectors (10243 MB) w/512KiB Cache, CHS=1245/255/63 
hdc: 80418240 sectors (41174 MB) w/1916KiB Cache, CHS=79780/16/63 
hde: 120103200 sectors (61493 MB) w/1821KiB Cache, CHS=119150/255/63, UDMA(33) 
うう。なぜかATA/33モードで動いている。以前のlogをみても、ある時点からずっとUDMA(100)がでなくなっている。その時点の前後ではカーネルのビルド番号は変わっていないのに???

とりあえず関係ないかもしれないけど、オンボードのIDEチップセット(on i810)のドライバが入っていないのを入れ直す。

CONFIG_BLK_DEV_PIIX=y
CONFIG_PIIX_TUNING=y
これで、/dev/hda, /dev/hdc のメッセージにUDMAのモードが出るようになった。そう、オンボードのi810内蔵IDEコントローラはATA/66までしかサポートしていないのである。
hda: 20005650 sectors (10243 MB) w/512KiB Cache, CHS=1245/255/63, UDMA(66) 
hdc: 80418240 sectors (41174 MB) w/1916KiB Cache, CHS=79780/16/63, UDMA(66) 
hde: 120103200 sectors (61493 MB) w/1821KiB Cache, CHS=119150/255/63, UDMA(33) 
hdparm -iの結果を見ると明らか。例えば/dev/hdcはディスク側はATA/100対応なのだけれど、コントローラのせいでATA/66になっている模様。そして/dev/hdeは、コントローラがATA/33になっている模様。
/dev/hda:
 DMA modes: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 *udma4 
/dev/hdc:
 DMA modes: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 *udma4 udma5 
/dev/hde:
 DMA modes: mdma0 mdma1 mdma2 udma0 udma1 *udma2 udma3 udma4 udma5 
色々とkernel configを変えてみるものの、全く変化なし。原因不明でお手上げである。

しかたないのでカーネルソースを良く読んでみると、どうやらudma_fourというフラグが寝ているのが問題な気がする。webを漁ってみると、こんな話もあるみたいだし。 たぶんkernel 2.4.xでは直っているんだろうなあ、と思いつつ、場当たり的に直すことにした。driver/block/ide-pci.cに勝手にパッチを当てて、PDC20268が見つかった場合に限り、無理矢理hwif->udma_fourを立てるようにした。(いいのか?そんないい加減で? :-)

# diff -c /usr/src/linux-2.2.20/drivers/block/ide-pci.c /usr/src/linux-2.2.20-1/drivers/block/ide-pci.c
*** /usr/src/linux-2.2.20/drivers/block/ide-pci.c       Sat Dec 28 01:26:40 2002
--- /usr/src/linux-2.2.20-1/drivers/block/ide-pci.c     Thu Jan  9 00:33:42 2003
***************
*** 769,774 ****
--- 769,778 ----
                        hwif->udma_four = (d->ata66_check) ? d->ata66_check(hwif) : 0;
                }
  #ifdef CONFIG_BLK_DEV_IDEDMA
+               if( IDE_PCI_DEVID_EQ(d->devid, DEVID_PDC20268) ) {
+                       printk("%s: Found PDC20268. Set UDMA4 bit forcedly (Warning)!\n", d->name);
+                       hwif->udma_four = 1;
+               }
                if (IDE_PCI_DEVID_EQ(d->devid, DEVID_SIS5513) ||
                    IDE_PCI_DEVID_EQ(d->devid, DEVID_AEC6260) ||
                    IDE_PCI_DEVID_EQ(d->devid, DEVID_PIIX4NX) ||
この結果、正しくATA/100モードに固定されるようになった。
hda: 20005650 sectors (10243 MB) w/512KiB Cache, CHS=1245/255/63, UDMA(66)
hdc: 80418240 sectors (41174 MB) w/1916KiB Cache, CHS=79780/16/63, UDMA(66)
hde: 120103200 sectors (61493 MB) w/1821KiB Cache, CHS=119150/255/63, UDMA(100)

/dev/hde:
 DMA modes: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 *udma5 

/dev/hde:
 Timing buffer-cache reads:   128 MB in  1.56 seconds = 82.05 MB/sec
 Timing buffered disk reads:  64 MB in  1.91 seconds = 33.51 MB/sec

めでたしめでたし。(本当にいいのか? :-)


Thinkpad 365Xの/dev/hdaがDMAモードにならないの巻

2003年1月某日

ルータとして使っているマシンだが、HDDの速度が遅い。

/dev/hda:
 Timing buffer-cache reads:   128 MB in  4.24 seconds = 30.19 MB/sec
 Timing buffered disk reads:  64 MB in  8.83 seconds =  7.25 MB/sec

 DMA modes: mdma0 mdma1 *mdma2 udma0 udma1 udma2 udma3 udma4 
DMAモードになっていないようなのだが、これをonにすることができない。
# hdparm -d1 /dev/hda

/dev/hda:
 setting using_dma to 1 (on)
 HDIO_SET_DMA failed: Operation not permitted
 using_dma    =  0 (off)
よくよくカーネルソースを調べてみると、IDEデバイスを初期化する際に、 PIIX (intel 82371FB, Triton I) のレジスタ0x41, 0x43のbit7が寝ている のがまずいらしい。 このせいで、DMA機能が付いていないと認識されているようだ。 というか、それ以前に、
CONFIG_BLK_DEV_PIIX=y
CONFIG_PIIX_TUNING=y
をつけてPIIXをイネーブルしているはずなのに、
PIIX: IDE controller on PCI bus 00 dev 08
PIIX: not 100% native mode: will probe irqs later
PIIX: neither IDE port enabled (BIOS)
などと言われているのが変だ。だって、lspciでは82371FBがインストールされているようにみえるのに。
# lspci -xxx

00:01.0 ISA bridge: Intel Corporation 82371FB PIIX ISA [Triton I] (rev 02)
00: 86 80 2e 12 07 00 80 02 02 00 01 06 00 00 00 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
40: 00 00 00 00 00 00 00 00 00 00 00 00 80 00 20 00
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60: 80 80 80 80 00 00 00 00 00 fa 00 00 00 00 00 00
70: 80 80 00 00 00 00 04 04 e0 15 00 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 09 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 10 0f 00 00 00 00 00 00

www.intel.comから82371FBのデータシートを取り寄せて読んでみる。 この石はマルチファンクションのはずなのに、lspciではファンクション0しか出てこないのが怪しい。 dumpを良くみると、ファンクション0の0x6a/0x6bレジスタが0x0000であり、これでマルチファンクション機能(bit2)を殺している模様。 というわけで強引にイネーブルしてみる。
# setpci -s 0:1.0 6a.w=04

# lspci -H1
00:00.0 Host bridge: Intel Corporation 430MX - 82437MX MTSC [430MX PCIset - 82437MX Mobile System Controller (MTSC) and 82438MX Mobile Data Path (MT (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371FB PIIX ISA [Triton I] (rev 02)
00:01.1 IDE interface: Intel Corporation 82371FB PIIX IDE [Triton I] (rev 02)
00:03.0 VGA compatible controller: Trident Microsystems TGUI 9320 (rev e3)

# lspci -H1 -xxx -s 0:1.1
00:01.1 IDE interface: Intel Corporation 82371FB PIIX IDE [Triton I] (rev 02)
00: 86 80 30 12 05 00 80 02 02 80 01 01 00 20 00 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: f1 fc 00 00 00 00 00 00 00 00 00 00 00 00 00 00
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
40: 07 a3 00 00 00 00 00 00 00 00 00 00 00 00 00 00
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 10 0f 00 00 00 00 00 00
ということで、0x41レジスタは既にちゃんとbit7が立っていることが分かった。 あとは、カーネルにパッチ当てして、ディスク認識より前の段階でこのビットを立ててやればよいはずである。
*** linux-2.2.20_idepatch/drivers/pci/pci.c	Mon Mar 26 01:31:36 2001
--- linux-2.2.20/drivers/pci/pci.c	Wed Jan 22 02:33:48 2003
***************
*** 171,176 ****
--- 171,182 ----
  			/* not a multi-function device */
  			continue;
  		}
+ 		pcibios_read_config_dword(bus->number, devfn, PCI_VENDOR_ID, &l);
+ 		if( l == 0x122e8086 ) {
+ 			pcibios_write_config_word( bus->number, devfn, 0x6a, 0x0004 );
+ 			printk("pci: PIIXa set to multi-function mode!!\n");
+ 		}
+ 
  		if (pcibios_read_config_byte(bus->number, devfn, PCI_HEADER_TYPE, &hdr_type))
  			continue;
  		if (!PCI_FUNC(devfn))
こんな強引な感じでいいですかね。(いいのか?) いちおう、DMAモードにはなったようである。
PCI: PCI BIOS revision 2.10 entry at 0xfdac0 
PCI: Using configuration type 1 
PCI: Probing PCI hardware 
pci: PIIXa set to multi-function mode!! 
...
Uniform Multi-Platform E-IDE driver Revision: 6.30 
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx 
PIIX: IDE controller on PCI bus 00 dev 08 
PIIX: chipset revision 2 
PIIX: not 100% native mode: will probe irqs later 
PIIX: neither IDE port enabled (BIOS) 
PIIX: IDE controller on PCI bus 00 dev 09 
PIIX: chipset revision 2 
PIIX: not 100% native mode: will probe irqs later 
    ide0: BM-DMA at 0xfcf0-0xfcf7, BIOS settings: hda:DMA, hdb:pio 
hda: FUJITSU MHM2050AT, ATA DISK drive 
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 
hda: 9820440 sectors (5028 MB) w/2048KiB Cache, CHS=649/240/63, (U)DMA 
めでたしめでたし。 (しかし転送速度は速くなっていないような気がする?何故?)


/dev/hdcから起動できないの巻

2003年6月某日

システムブート用のディスク /dev/hda の調子が悪くなってきた。 電源投入時にディスクを認識せず、再投入しないと起動しないことがある。 これはSeagate ST310212Aという10GBのディスクで、確か4年ほど前に買ったものだ。そろそろ寿命かもしれない。そこで、/dev/hdcを起動用に置き換えることにする。/dev/hde の容量がまだ残っているので、/dev/hdaを捨てても全体のディスク容量は問題ないはず。

元の /etc/fstab はこんな感じだった。

/dev/hda1               swap                    swap    defaults        0 0
/dev/hda2               /                       ext2    defaults        1 1
/dev/hdc1               /var                    ext2    defaults        1 2
/dev/hdc2               /usr/local              ext2    defaults        1 2
/dev/hdc3               /home                   ext2    defaults        1 2
/dev/hde7               /tmp/work               ext2    defaults        1 2
要するに / だけを /dev/hdc* なりに移動してやれば良いだろう。

Hard Disk Upgrage Mini-Howtoを一通り眺めて作業開始。ブートローダはLILOなので、/dev/hdc1を/bootに割り当て、/dev/hdc2を / に割り振ることにする。玉突き式に /var は /dev/hde1 に、/usr/local は /dev/hdc5 あたりに追い出す。 シングルユーザモードでcp -aでコピーする。

次にブートローダの再設定。

# mount /dev/hdc2 /work
# mount /dev/hdc1 /work/boot
新しい / を /work にマウントし、/work/etc/lilo.conf を次のように変更。
boot=/dev/hdc
map=/work/boot/map
install=/work/boot/boot.b
prompt
timeout=50
default=linux20_1
image=/work/boot/vmlinuz-2.2.20-1
    label=linux20_1
    root=/dev/hdc2
    read-only

/sbin/lilo を実行して、/dev/hda を外して再起動。"LI"で止まってしまう。うーむ。 ブートローダメッセージによれば、

LI

第 1 ステージブートローダは、第 2 ステージブートローダをロードすること ができましたが、それを実行するのに失敗しました。この原因は、ジオメトリの 不一致か、/boot/boot.b を動かしたにも関わらず、マップインストーラを実行し なかったかのいずれかです。
うーむ。そういえばliloがなにか警告を出してたなあ。あ、これこれ。:-)
Warning: <デバイス> is not on the first disk

指定されたパーティションが第 1 ディスクにないようです。特別なブート マネージャを使わない限り、LILO のブートセクターは、第 1 ディスクからしか 起動することはできません。
・・・あ、そうなんですか。じゃあ lilo.conf を変えなくては。
disk=/dev/hdc bios=0x80
boot=/dev/hdc
map=/work/boot/map
install=/work/boot/boot.b
prompt
timeout=50
default=linux20_1
image=/work/boot/vmlinuz-2.2.20-1
    label=linux20_1
    root=/dev/hda2
    read-only

今度は、/dev/hdc を プライマリ側につなぎ直して再起動。やっぱり"LI"で止まってしまう。

次に起動フロッピから起動してみる。予め /etc/fstab を直しておけば、ちゃんと起動する。この状態でliloを再実行してみる。やっぱり"LI"で止まってしまう。

「ジオメトリの 不一致」というのが怪しい。lilo.conf に linear オプションを追加してみる。結果は同じ。lba32オプションも同じ。ディスクかBIOSが悪いんじゃないか?

起動時のBIOSメッセージを良く見ていると、このディスクはCHSモードで起動しているようだ。これが原因か? Head = 16, Sector = 255 となっており、ありがちな設定のHead = 255, Sector = 63になっていない。 そこでBIOSセットアップでLBAモードに設定し直し。これでCHS=5005/255/63になった。再度FDから起動し、liloを再実行。これでようやくハードディスクから再起動できた(めでたしめでたし)。結局、/etc/fstab はこんな感じになった。

/dev/hda8               swap                    swap    defaults        0 0
/dev/hda2               /                       ext2    defaults        1 1
/dev/hda1               /boot                   ext2    defaults        1 2
/dev/hde1               /var                    ext2    defaults        1 2
/dev/hde8               /usr/local              ext2    defaults        1 2
/dev/hda3               /home                   ext2    defaults        1 2
/dev/hde7               /tmp/work               ext2    defaults        1 2

Telios AJ3でUSBメモリを使うの巻

2004年1月某日

会社で使っているPC(Win2000)とTeliosとの間でデータやり取りをするのに、いわゆるUSBメモリが使えると便利と思った。 特に最近は安くて容量の大きい物が増えているし、LinuxでもKernel 2.4系列では殆どなにも問題なくmountできるので使い勝手がよい。 (ただ、自宅のPCはKernel 2.2系列なので使えないが。)

しかし、TeliosのUSBコネクタに、USBメモリをいきなり差しても認識してくれない。 適合するデバイスドライバがいるようだ。googleなどで探すと、USBMSC.DLLとUSBDISK6.DLLというドライバをインストールすれば良いらしい。 ちなみにTeliosはMIPS系CPU搭載であり、シグマリオンII向けの情報がだいたい有効であるのでとても便利だ。

MIPS向けコンパイル済みのバイナリ(usb020522.lzh)を、ぞろよし氏が配布しているので、これを入手。アーカイブを開いて、上記の2ドライバをTeliosの ¥Windows ディレクトリにそのままコピーする。続いてUSBメモリを挿すと、ドライバ名を聞かれるので "usbmsc.dll" と入力。10秒ほどで"USB Disk"という「取り外し可能なメモリカード」が認識される。 ちなみに取り外すときは、アクセスが終わっていることを人間が確認して、いきなり抜けばよいようである。 (アクセスランプ付きのUSB memoryを使わないと不便かもしれない)


HDDが1台死んでしまうの巻

2005年7月某日

rootディレクトリ(/)を置いている40GBディスク(IBM Deskstar IC35L040AVER07-0)が前触れ無く死んだ。(いわゆる、カックンエラー) 当然、kernel panicで立ち上がらない。このディスクには/のほかに/varが置いてあった。開けてみたら2001/8製造のようである。そろそろ寿命か。 困ったなあ、と思いつつ、しかたないのでソフマップ横浜店で160GB HDD (HGST HDS722516VLAT20)を9000円くらいで入手した。3.5" ATAのは最近は安いねえ。

/が死んでいるので、まずはCD-ROMからKnoppixで起動。新しいディスクを10GBくらいフォーマットして、dumpでバックアップしてあったrootパーティションの中身をリストアする。(ただし、最新のバックアップは2004/1だった) 後は、/etc/fstabを調整して、おしまい。パチパチ。

かとおもいきや、やはりバックアップが古いのは敗因であった。/homeとか/usr/localは別パーティションで無事だったので安心していたが、/etcが一年半以上も先祖帰りしてしまって非常に痛い。/varも死んだので、自動dumpのcronとかの設定が全部なくなってしまった。こいつらは/とは別にdumpかtarすべきであった。(が、まだ設定を復旧させてない・・・今また死んだら厳しいですね。)

結局またHDDは3台体制になった。ちなみにブートデバイスは、/dev/hdaに繋がっているCFである。

/dev/hdf3               swap                    swap    defaults        0 0
/dev/hdf2               /                       ext2    defaults        1 1
/dev/hdf1               /var                    ext2    defaults        1 2
/dev/hde7               /usr/local              ext2    defaults        1 2
/dev/hde6               /home                   ext2    defaults        1 2
/dev/hdf5               /home/wooo              ext2    defaults        1 2
/dev/hde5               /tmp/work               ext2    noauto,user     1 2
/dev/hdg1               /mnt/dump               ext2    noauto,user     1 2
一番古いhde(60GB)は2002/12に買ったものであるので、つぎにこれが死ぬのは順当に行けば来年までは大丈夫? まあその前にCeleron 500MHzのM/Bの寿命の方が先という話もある。Kernel 2.2も古くて困るし、試しにFedora Core 4を入れてみたら、SELinuxの起動中にUSBFSのメッセージが出たところで固まってしまう。うーむ。

ThinkpadのHDDが死んでしまうの巻

2008年1月某日

ある日帰宅したらThinkpadが凄い騒音を発している。シャーーーーッという音が連続的に出ていて、合間にカックン音も聞こえる。HDDが死んだなあと思ってtelnetしようにも既に新しいプロセスが走らない状態のようでデーモンが返事をしてくれない。しかたないので強制OFFする。音から考えると何かがディスク面とこすれているような感じ。(ちなみに富士通製のMHM2050ATという5GBのディスク。2000/11製造である)

さて、こいつは外部との接続ルータなので非常に困る。まずは(従来から性能的な課題があったので)近所のヤマダ電機でBBルータを買ってきて代替えした。

さらにこいつはwebサーバ兼SQLサーバになっているので、少し古い(2007/9)がバックアップから復旧させたい。しかし確かこのマシンはBIOSの制限で、8GBだったかの容量上限があったはず。 ところがそんな小さいHDDは既に店頭に全くない。

試しにHGST製の80GB ATA100 2.5" HDD (HTS541680J9A)を繋いでみたが、まったく認識しない。というより、BIOS起動時にハードウェアチェックあたりでBIOSがハングアップしてしまい、FDDからも起動できない状態になってしまう。BIOSメニューさえでてくれない。 一方、HDDを抜くとFDからは起動できる。困った。

今後できそうなオプションとしては、(1) 6GBくらいのディスクを秋葉原あたりを徘徊して探し出す、(2) 別のマシンを用意してサーバを更新する、くらいか。

2008年2月某日

HGSTのページで配布されているFeature Toolというツールを使用すると、ATA-5のコマンドを経由してHDDの容量を変更できるようだ。

# Change the predefined capacity of the drive. - Used when BIOS limitation exists and the drive is not recognized.

配布ページの説明書きを読む限りよさげである。 これを使って6GBとか5GBに設定してみるが、やはりThinkpad 365XにHDDを挿すとBIOS起動レベルで認識しない。ちなみに、異音がでている旧HDDを挿した場合、BIOS起動レベルはパスするので、マザーボード側の問題というわけでもないようだ。 悩み中・・・。

2008年3月某日

結局、秋葉原ラジオデパート地下で、4GBのIBM 2.5"HDD DKLA-24320を購入して従来環境をそのまま移行した。 HGSTの80GB品はUSB I/F付きHDDケースにいれてWindows環境側でテンポラリ容量用として使うことに。

hda: IBM-DKLA-24320, 4108MB w/460kB Cache, CHS=556/240/63

# fdisk -l /dev/hda

Disk /dev/hda: 255 heads, 63 sectors, 523 cylinders
Units = cylinders of 16065 * 512 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/hda1   *         1         5     40131   83  Linux
/dev/hda2             6        15     80325   82  Linux swap
/dev/hda3            16        21     48195   83  Linux
/dev/hda4            22       523   4032315   83  Linux

# cat /etc/fstab 
/dev/hda2       swap    swap    defaults        0       0
/dev/hda1       /boot   ext2    defaults        1       2
/dev/hda4       /       ext2    defaults,noatime        1       1


/homeが満杯になるの巻

2010年1月某日

/homeを置いていたIBM Deskstar 60GB(IC35L060AVV207-0)が満杯になってしまったので大容量品に換装することにした。2002年製のHDDなのでそろそろ変え時という話もある。

新宿のソフマップ3号館に行ったら、既にPATAのディスクは2品種しか売っていないことが判明。一瞬、SATAのPCIボード(3000円程度)を買うべきか悩んだが、kernel 2.2系列がコントローラを認識できない可能性が高いと判断、500GBのWD製PATAディスクを7000円ほどで購入。ちなみにSATAモデルとの差額はだいたい2000円くらい。 /dev/hdeに繋がっていた60GBディスクの中身を、新しいディスクにシングルモードでのcp -aにてパーティション毎にコピーし、/etc/fstabを変更して移行完了。 実は現状で500GB容量のうち100GB程度しか領域確保していない。少しは計画的に領域設計しないといけない気がする。

hde: WDC WD5000AAKB-00H8A0, ATA DISK drive
hde: 976773168 sectors (500108 MB) w/16384KiB Cache, CHS=969021/255/63, UDMA(100)

# fdisk -l /dev/hde

Disk /dev/hde: 255 heads, 63 sectors, 60801 cylinders
Units = cylinders of 16065 * 512 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/hde1             1     60801 488384001    5  Extended
/dev/hde5             1      2550  20482812   83  Linux
/dev/hde6          2551      5100  20482843+  83  Linux
/dev/hde7          5101     12749  61440561   83  Linux
/etc/fstabは以下のような構成になった。
/dev/hdf3               swap                    swap    defaults        0 0
/dev/hdf2               /                       ext2    defaults        1 1
/dev/hdf1               /var                    ext2    defaults        1 2
/dev/hde5               /usr/local              ext2    defaults        1 2
/dev/hde7               /home                   ext2    defaults        1 2
/dev/hdf5               /home/wooo              ext2    defaults        1 2
/dev/hdf7               /home/wooo2             ext2    defaults        1 2
/dev/hdf6               /home/music             ext2    defaults        1 2
/dev/hde6               /tmp/work               ext2    noauto,user     1 2
/dev/hdg1               /mnt/dump               ext2    noauto,user     1 2
ちなみにこの作業中、電源が怪しい挙動をした気がする。電源ケーブルを抜いたりして作業した後、元に戻して電源ボタン押下しても反応せず、十数秒してしたら勝手に上がった。確か4〜5年前に電源が死んで交換した気がするが、その時の挙動と同じかもしれない。

ATX電源を換装&HDD構成を変更するの巻

2010年1月某日

上記のように電源の挙動が怪しく、数日後には電源SWを何度も押さないと起動しなくなってしまった。電源の寿命だろうということで、rakutenにて電源ユニットを発注して交換した。 送料別で3000円ほど。S-ATA用のコネクタが沢山出ているのだが、使用せずにP-ATA用のを4分岐とかさせているので、バランスが悪いかもしれない。

abee ZU-360B ATX電源/360W

それから、HDDの流用の都合上、構成を変更して一部を別ドライブにコピーした。 結局構成は以下のようになった。

hde: WDC WD5000AAKB-00H8A0, ATA DISK drive
hdf: IC35L060AVV207-0, ATA DISK drive
hdg: IC35L120AVV207-1, ATA DISK drive

   Device Boot    Start       End    Blocks   Id  System
/dev/hde1             1     60801 488384001    5  Extended
/dev/hde5             1      2550  20482812   83  Linux
/dev/hde6          2551      5100  20482843+  83  Linux
/dev/hde7          5101     12749  61440561   83  Linux
/dev/hde8         12750     15299  20482843+  83  Linux
/dev/hde9         15300     40796 204804621   83  Linux

   Device Boot    Start       End    Blocks   Id  System
/dev/hdf1             1       125   1004031   83  Linux
/dev/hdf2           126      1371  10008495   83  Linux
/dev/hdf3          1372      1436    522112+  82  Linux swap
/dev/hdf4          1437      7476  48516300    5  Extended

   Device Boot    Start       End    Blocks   Id  System
/dev/hdg1   *         1     15017 120624021   83  Linux

/dev/hdf3               swap                    swap    defaults        0 0
/dev/hdf2               /                       ext2    defaults        1 1
/dev/hdf1               /var                    ext2    defaults        1 2
/dev/hde5               /usr/local              ext2    defaults        1 2
/dev/hde7               /home                   ext2    defaults        1 2
/dev/hde8               /home/music             ext2    defaults        1 2
/dev/hde9               /home/wooo              ext2    defaults        1 2
/dev/hde6               /tmp/work               ext2    noauto,user     1 2
/dev/hdg1               /mnt/dump               ext2    noauto,user     1 2

http&SQLサーバを更新するの巻

2010年2月某日

これまで使ってきたThinkpadがそろそろ仕様的に寿命。 例えば、現状のTurboLinux6ベースでは、lib系が古すぎてamazonデータベースを使うための認証ライブラリが使えないのだが、 かといってFedoraとかを入れようとすると、HDD領域が足りないとか、デバイスが認識できなかったりとかする。 そこでsofmapで中古IBM mini desktopを9000円ほどで購入、環境を移植することにした。買ってきたのはこれ:

IBM ThinkCentre S50 ultra small 8086-KJD
Celeron-D 2.53GHz & i865GV
512MB DDR PC2700 & 40GB P-ATA HDD & G-Ether
2004年くらいの製造らしい。内蔵ディスクは3.5"のP-ATAだが、M/BにはS-ATAコネクタも生えているし、内蔵電源から生えているケーブルにもS-ATA用のが1本あるので、今後S-ATAでも行けそうである。空きメモリスロットと空きPCIスロット(106*176mm)が各1本ある。

とりあえずリカバリCDを作ってから、Windows XP Proが入っていたNTFSパーティションをEASEUS Partition Managerでシュリンクし、あけた15GBほどの領域にFedora 12をインストール。


Return to Home Page

e-mail: TERADA, Koichi <kterada@yokohama.kanagawa.to>

Last modified at $Date: 2010/02/11 14:19:20 $ UTC
Copyright (C) 2000-2005 Koichi Terada, All Rights Reserved.