メッセージ欄

2011年5月の日記

一覧で表示する

IdeaPad S10-3 ( 0647AQJ ) とUbuntu 11.04でサスペンド
2011/05/29(日) 15:50 S10-3, Ubuntu はてブ情報 はてブに登録 はてブ数

NetBSDだとサスペンドがうまく動かなくても微笑ましく感じるのですが、Linuxで動かないと「ばかな! そんなはずがない!」と思ってしまうのは偏見なんでしょうか。

ということで、Ubuntu desktop 11.04 (amd64) でサスペンドが動かず、Windows7に戻すかなぁ、いやいやStarter版だからつらすぎるよ、なんでもいいからLinuxで動いてくれないものかと右往左往しておりました。

Webを調べるとkernelにintel_idle.max_cstate=0というのを教えてあげるとサスペンドできるという情報が。このパラメータに関する情報はいくつか見つかり、昔はこれなしではインストーラすら起動しなかった模様。

おぉ、さすがだ、これで勝ったも同然と覚えたてのgrubを嬉々として設定して起動したものの、サスペンドに失敗。

うーん、それじゃぁ、動いた人が使っているOpenSUSEにすればきっと動くだろう。もともとUbuntuを選んだのは最近の流行っぽいという理由だけだからなぁ、そうだそうしよう。ということでOpenSUSEをインストール。grubに設定を仕込んでいざサスペンド。おぉ、失敗。

にっちもさっちもいかない中、ふと、i386ならどうなんだろ、と。

せっかくだから64bitで動かしたいぜ、とこれまでUbuntuもopenSUSEも64bit版を使っていたんだけど、わらにもすがる思いでUbuntuの32bit版で先のパラメータを/etc/default/grubに設定。update-grubで設定を反映させた後、再起動。
GRUB_CMDLINE_LINUX_DEFAULT="intel_idle.max_cstate=0 quiet splash"
おぉ、サスペンドするぞ!

ずいぶん回り道をしましたが、S10-3でサスペンド。i386版を使ってkernelにintel_idle.max_cstate=0を設定する、で成功というお話でした。

IdeaPad S10-3でUbuntu, NetBSDのデュアルブート
2011/05/29(日) 15:10 Ubuntu, NetBSD, S10-3 はてブ情報 はてブに登録 はてブ数

デュアルブートって久しぶりにやったけどめんどくさいですねぇ。

Linuxだとgrubを使う、ぐらいはさすがに知っていて、NetBSD, Linuxの順にインストールしたまでは良かったのですが、いざ、grubからNetBSDを起動する方法がよくわかりません。

grubにもgrubとgrub2という二種類があるらしく、二つの情報に翻弄されながら設定することに。Ubuntu11.04だとgrub2のようです。

結論から言うと、/etc/grub.d/40_customに以下の行を追加した後、sudo update-grubと入力すれば良いことがわかりました。
menuentry "NetBSD" {
    set root=(hd0,msdos1)
    chainloader +1
}
あとは、起動時に切り替えれば良いのですが、切り替えのメニューの出し方が解りません。これは、起動時にShiftキーを押しっぱなしにすれば良い、ということがわかりました。

ちなみに、ディスクはNetBSD, Linux, Linux swapの三つに切っています。すべて基本パーティションにしました。swapのために基本パーティション(拡張でもいいんですけど)を使う必要があるんですねぇ。NetBSDだと基本パーティションの中をさらに分割してswapに使っているイメージなので。

/boot/grubの下のファイルは基本的にいじらず、/etc/default/grubおよび/etc/grub.d/*で設定をした後、update-grubするのが今風のお作法ということでしょうかね。

Lenovo IdeaPad S10-3 ( 0647AQJ ) のNetBSD動作状況まとめ
2011/05/06(金) 28:36 NetBSD はてブ情報 はてブに登録 はてブ数

ここ数日のIdeaPad S10-3でNetBSDを動かす試みについてまとめておきます。

動作環境は20100430のcurrentで、relengのbinary snapshotを使っています。Xもxbase.tgzなどの標準品を使っています。

Ethernet : OK, re(4), 問題ありません
Wireless : OK, ath(4), ただし、kernelにPCI_ADDR_FIXUP, PCI_BUS_FIXUPをつける必要あり
Graphics : OK, vesaドライバなら動きます。intelドライバは暗転して使えません。
Audio : OK, hdaudio(4), 普通にmpg123で音が鳴ります
Webcam : OK, uvideo(4), mplayer tv:// -tv driver=v4l2:device=/dev/video0 で動作確認済み
Suspend to RAM : NG, sleepはできますが復帰しません。もう少し粘れば進展するかもしれません。
SD Reader : OK, umass(4), SDHCカードの読み取りで動作確認済み
Hotkeys : OK, 少なくとも輝度調整は動作しています

Xがintelドライバで動いて、Suspend to RAMができればパーフェクトな感じですが、なかなか難しいですね。

http://www.netbsd.org/ports/i386/netbook.html のLenovo S10の記述にあるように machdep.acpi_vbios_reset=0 を設定してみましたが、やっぱりだめみたい。

Xはpkgsrcのを入れると改善するかもしれませんが、そこまでの元気がないです...

Lenovo IdeaPad S10-3 ( 0647AQJ ) のX Window System
2011/05/05(木) 27:46 NetBSD はてブ情報 はてブに登録 はてブ数

vesaドライバならあっさりと動いたのですが、intelドライバだと暗転して動きません。

んー、何となく自分では表示しているつもりっぽいんだけど、ディスプレイがついてきていないみたいな感じ?

Lenovo IdeaPad S10-3 ( 0647AQJ ) の無線LAN (WEP, WPAも成功)
2011/05/05(木) 16:47 NetBSD はてブ情報 はてブに登録 はてブ数

無線についてはfukaumiさんに教えてもらって、kernelのconfigでPCI_ADDR_FIXUP, PCI_BUS_FIXUPのオプションを有効にすることでath(4)が見えた。
options        PCI_ADDR_FIXUP          # fixup PCI I/O addresses
options        PCI_BUS_FIXUP           # fixup PCI bus numbering
dmesgでも次のように表示されている。
ath0 at pci2 dev 0 function 0: Atheros 9285
ath0: interrupting at ioapic0 pin 18
ath0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
ath0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
ath0: mac 192.2 phy 14.0 radio 12.0
WEPはifconfigにssid XXXX nwkey XXXXと指定すれば問題なく動きました。nwkeyにちゃんと0xというprefixをつけてあげないとダメだったり、少しはまったんですけど。

次はWPAです。実は、WPAを使うのは初めてで、少し調べました。wpa_supplicantというものを設定するんですね。

http://www.ki.nu/~makoto/diary/?201102a を参考に/etc/wpa_suppicant.confを次の内容で作成。
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=wheel
network={
        ssid="無線APのSSID"
        scan_ssid=1
        key_mgmt=WPA-PSK
        psk="very secret passphrase"
}
次にwpa_passphraseコマンドを実行。
# wpa_passphrase 無線APのSSID パスフレーズ(平文) >> /etc/wpa_supplicant.conf
すると次のような内容が/etc/wpa_supplicant.confに追加される
network={
        ssid="無線APのSSID"
        #psk="パスフレーズ(平文)"
        psk=16進表示されたパスフレーズ
}
重複部分を編集して次のようなwpa_supplicant.confにする。ちなみに無線AP側がWPA2-PSKで指定していたのでそれをkey_mgmtに反映。
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=wheel
network={
        ssid="無線APのSSID"
        scan_ssid=1
        key_mgmt=WPA2-PSK
        #psk="パスフレーズ(平文)"
        psk=16進表示されたパスフレーズ
}
で、いざ、wpa_spplicant -iath0 -c/etc/wpa_supplicant.confと入力するとWPA2-PSKなんて知らんぞというエラーメッセージとなる。うーん、ということでkey_mgmt行をコメントアウトするとつながった!

起動時にはバックグラウンドで動かすための-Bオプションをつける必要があり、/etc/rc.confに次のような記述を加えた。
wpa_supplicant=YES
wpa_supplicant_flags="-B -i ath0 -c /etc/wpa_supplicant.conf"
dhclient=YES
無線LANも使えるようになってうれしいな。