トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

MSI Wind NotebookでNetBSD

はじめに

長らく使ってきたDospara Cressida 64Tの電池がお亡くなりになって、非常に不便していたところへ、某所で、MSI Wind Notebook U100が、大容量バッテリとバルクメモリ付で安く出ていたので、思わず買ってしまった。

MSI Wind Notebook U100 とは、いわゆるネットブックのひとつ。

自分用の?セットアップめも。

インストール

先頭にWindowsからはみえない領域があるが、これはリカバリーデータの部分。Windows側でリカバリーDVDをつくることができるので、つくってから消すなり、ddとかで吸い出してから消すなりすると、容量が空く。

自分はめんどくさいので、そのままにした。(そんなに容量は使わないし。) 

まず、もとからはいっているXP Homeとデュアルブートさせようと、とある雑誌の付録についていたknoppixに入っているgpartedで、NTFSパーティションのサイズを縮めた。

これで、先頭が隠し領域、その次がNTFS、その次がNetBSDということになる。

次に、外付けUSB CD-ROMをつけて、install CDでboot。installは、NetBSD 5.0 BETAのinstall iso imageをCressida 64T(NetBSD/amd64 4_STABLE)でつくって、使った。

 % cd /path/to/src-netbsd-5
 % ./build.sh -U -u -m i386 release
 % ./build.sh -U -u -m i386 iso-image

(つくる環境のない人&めんどくさい人は http://releng.netbsd.org/ の Daily binary snapshot から最新のiso imageをとってこよう。)

あとは、普通どおり。気をつけるところは、NetBSD標準のを、MBRに入れてしまうと、めんどくさいので、パーティションの先頭にいれること。

インストールがおわったら、パーティションの先頭から、ddで吸い出して、NTFS側において、NT Loader経由でbootするようにした。

ちなみに、diskは、こんな感じ。

 % fdisk wd0
 Disk: /dev/rwd0d
 NetBSD disklabel disk geometry:
 cylinders: 155061, heads: 16, sectors/track: 63 (1008 sectors/cylinder)
 total sectors: 156301488
 
 BIOS disk geometry:
 cylinders: 1023, heads: 255, sectors/track: 63 (16065 sectors/cylinder)
 total sectors: 156301488
 
 Partition table:
 0: Compaq diagnostics (sysid 18)
 start 63, size 8193087 (4001 MB, Cyls 0-509)
 1: NTFS, OS/2 HPFS, QNX2 or Advanced UNIX (sysid 7)
 start 8193150, size 41945715 (20481 MB, Cyls 510-3120), Active
 2: NetBSD (sysid 169)
 start 50138865, size 106162623 (51837 MB, Cyls 3121-9729/80/63)
 3: <UNUSED>
 First active partition: 1
 Drive serial number: 2950117902 (0xafd73a0e)

パーティション分けは、お好みで。自分は、swapも含めて、5に分割した。こんなかんじ。

 % disklabel wd0
 # /dev/rwd0d:
 type: unknown
 disk: WDC WD800BEVT-2
 label:
 flags:
 bytes/sector: 512
 sectors/track: 63
 tracks/cylinder: 16
 sectors/cylinder: 1008
 cylinders: 155061
 total sectors: 156301488
 rpm: 3600
 interleave: 1
 trackskew: 0
 cylinderskew: 0
 headswitch: 0           # microseconds
 track-to-track seek: 0  # microseconds
 drivedata: 0
 
 16 partitions:
 #        size    offset     fstype [fsize bsize cpg/sgs]
 a:   4096512  50138865     4.2BSD   2048 16384     0  # (Cyl.  49740*-  53804*)
 b:    263088  54235377       swap                     # (Cyl.  53804*-  54065*)
 c: 106162623  50138865     unused      0     0        # (Cyl.  49740*- 155060)
 d: 156301488         0     unused      0     0        # (Cyl.      0 - 155060)
 e:   8193087        63    unknown                     # (Cyl.      0*-   8128*)
 f:  41945715   8193150       NTFS                     # (Cyl.   8128*-  49740*)
 g:   1049328  54498465     4.2BSD   1024  8192     0  # (Cyl.  54065*-  55106*)
 h:   8389584  55547793     4.2BSD   2048 16384     0  # (Cyl.  55106*-  63429*)
 i:  92364111  63937377     4.2BSD   2048 16384     0  # (Cyl.  63429*- 155060)

NetBSD 5.1 GENERICカーネルで動かないもの

  • 輝度設定ボタン
  • 音量設定ボタン
  • ディスプレイ切り替えボタン
  • クロック切り替えボタン?
  • 無線LAN
  • (青歯は自分のにはついていないけど、ついてても、動いていないらしい。)
  • DRI(5.1で動くようになった。)
  • スリープボタン
    • いったきり、かえってこない。
  • サスペンド/レジューム(S1はちゃんと動く。S3はだめ。)
 % sysctl -a | grep acpi | grep support
 hw.acpi.supported_states = S0 S1 S3 S4 S5
  • なぜか、rebootができない(shutdown -p はちゃんとできる)

いろいろ

 スピーカ

ふつうに音は出るが、イヤホンをさしても、スピーカの音は消えない。

2009/9/6以降の5 STABLEでは、hdaudio(4)が使える。azalia(4)と入れ替わるもので、こっちだとイヤホンを刺すとちゃんと音が消える。ただし、GENERICカーネルでは有効になっていないので、自分でazalia(4)を無効にして、hdaudio(4)を有効にする必要がある。

 カメラ

なぜか、ON/OFFがちゃんと動く。;)

頻繁にON/OFFを繰り返すと、フリーズする。

multimedia/mplayer で、(それなりに)ちゃんと?写る。

 X

5.0になって、base systemのXも、i386などメジャーなものは、X.Orgになった。設定ファイルは、X -configure の出力で、ほぼ困らない。/etc/X11/xorg.conf におく。

 無線LAN

Linux方面では、NDISらっぱー経由で使えているらしい、という話をきく/みつけるので、ndis(4)のとおりにやってみる。

まず、Windows のシステムパーティションを、/mntにmountする。そして、

 % ndiscvt -i /mnt/Program\ Files/REALTEK\ RTL8187SE\ Wireless\ LAN\ Driver/Driver/net8187Se.inf \
    -s /mnt/Program\ Files/REALTEK\ RTL8187SE\ Wireless\ LAN\ Driver/Driver/rtl8187Se.sys \
    -o ndis_driver_data.h

として、ndis_driver_data.h をつくって、カーネルをつくろうにも、コンパイルエラーがおきる。

こういうときは、先人の知恵を拝借する。

前者の方のおっしゃるとおり、kern/39034の修正を行うことによって、エラーはでなくなったものの、別のアセンブラのエラーが出るようになった。後者の方のおっしゃるとおり、ndis_driver_data.h と ndis_driver_data.o をいっしょにつくって、コンパイルdirにコピーし、Makefileを修正して、makeすると、なんと、コンパイルとおった!!

...しかし、そうはかんたんにはいかせてくれず、そのカーネルでは起動できなかった。

 D02HW

5.0では、GENERICカーネルに、e-mobileのD02HWのドライバが入った。(すごいうれしい。)

 uhmodem0 at uhub0 port 1 configuration 1 interface 0
 uhmodem0: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
 ucom0 at uhmodem0 portno 0: modem
 ucom1 at uhmodem0 portno 1: alt#1
 umass1 at uhub0 port 1 configuration 1 interface 2
 umass1: HUAWEI Technologies HUAWEI Mobile, rev 1.10/0.00, addr 2
 umass1: using SCSI over Bulk-Only
 umass1: could not read endpoint descriptor

しかし、U100で使っている限り、つかえるものの、下記の現象がおき、つらい思いをしている。(UbuntuやOpenBSDだと、こういったことは起きてないのかなぁ。)

  • 起動時にさしたままにしておくと、あるていどの確率でdb> に落ちる。
  • 起動後すぐにさすと、かなりの確率で、db> におちる。
  • Xを立ち上げてからさすと、かなりの確率で、凍ってしまい、その後、バックライトが消えて、うんともすんともいわなくなる。
    • この時の、X consoleをみている限り、モデムとマスストレージが、ちゃんとみえている。
    • db> に落ちなかったとき、なぜかマスストレージではなく、uaudioがみえる。

更新: 5.0_STABLE にupdateした(2009/5/21)ところ、上記の現象がかなり改善した。ありがたや。dmesg.txt

間違いの指摘や、ご意見などは、FrontPageにある連絡先にメールを下さるとうれしいです。

最終更新時間:2010年11月11日 00時47分54秒