Debian+VAIO Yでようやく画面表示がまともになった

去年VAIO Y(VPCY2)を買いました。
さっそくDebian(squeeze)を入れたもののKMSが有効だと起動時に画面がブラックアウトしてしまうという症状に遭遇、やむなくKMSを無効にして*1Xのドライバもvesaにしてどうにか使用していました。

新しいカーネルがリリースされるたび試すも一向に症状は改善しなかったのですが、ついに2.6.38-rc2にて症状が改善、1366x768のくっきりした画面での表示が可能となりました。

無線LANが使用不可

2.6.38-rc2で画面表示は改善したものの無線LANが使用不可になってしまいました。
NetworkManagerでは「無線を有効にする」がグレイアウトして選択できない状態です。コマンドラインから有効にすることもできませんでした。

$ sudo ifconfig wlan0 up
SIOCSIFFLAGS: 未知のエラー 132

Google先生に問い合せた結果、無線デバイスの有効無効を制御するrfkillというツールで使用可能になることが判明しました。

$ sudo rfkill unblock all
$ sudo ifconfig wlan0 up

これで無線LANが使用可能になりました。
どうも起動時に無線LANバイスがブロックされた状態になっており、それを解除することによって使用できるようにしているらしいのですが、そもそもなぜブロックされてしまうのかといったあたりは全く不明です。

あと、毎回コマンド打つのはめんどいので、上のコマンドの内容を/etc/init.d/rfkill_unblock_allというファイルに保存して

$ sudo update-rc.d rfkill_unblock_all defaults 99

としてやれば毎回起動時にwlan0を有効にしてくれます。

残る課題

いまだ解決できないのはサスペンドについてです。サスペンドから復帰しても画面がブラックアウトしたままの状態になってしまいます。カーネルオプションでacpi_sleep=s3_biosを指定などしても効果はありませんでした。求む情報。

*1:/etc/default/grubGRUB_CMDLINE_LINUXにi915.modeset=0を追加してupdate-grubを実行

slime + swank-clojureではまった

『プログラミング Clojure』を買った。
slimeが使えるらしいので環境を構築しようとしたら結構はまったので備忘をかねて記載。


基本的には
http://riddell.us/tutorial/slime_swank/slime_swank.html
ここにあるとおりに進めていけば良かったのだがいざM-x slimeすると

Clojure 1.0.0-
user=> nil
user=> user=> "2010-01-28"
user=> user=> Connection opened on local port  57111
#<ServerSocket ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=57111]>
user=> user=> 

こんな感じでどうも接続できていない。
google先生に聞きつつバージョンを変えたりいろいろ試行錯誤してみたが、うまくいかず。
で、最後にたどり着いたのがこれ。


Yes, it was because Debian netbase package had an issue. It by default listens on an IPv6 address.

The solution is to do either of the following:

1. open /etc/sysctl.d/bindv6only.conf and make net.ipv6.bindv6only=0
2. Start Java with -Djava.net.preferIPv4Stack=true

Either of this will work fine

書いてあるとおりに/etc/sysctl.d/bindv6only.confを書き換え。
あと.emacs
(setq swank-clojure-extra-vm-args (list "-Djava.net.preferIPv4Stack=true"))
を書いたらなんとか動き出した。

X不調?

いつものように

$ sudo aptitude safe-upgrade

してxserver-xorg-video-intelが2:2.2.1-2にバージョンアップしたなーとおもったらcompizが重くなった。試しにcompizを無効にしてみるも、なにやらX描画が遅い感じ。
それどころかコンソールとXを何度か切り替えていると

intelfb: ring buffer : space: 61488 wanted 65472
intelfb: lockup - turning off hardware acceleration

こんなログを吐いて、最後には画面が描画されなくなってしまう(rebootコマンドなどは受け付ける)。
xserver-xorg-video-intelのバージョンをいろいろ変えてみるも変化なし。

グーグル先生にいろいろ聞いてmodprobe.confに

options intelfb accel=0

を記述してとりあえずring bufferのエラーはでなくなったが、X描画は重いまま。うーん、なんだろ?

Google Earth for Linux

Google EarthLinux版がでたのでさっそく試してみることに。
と、その前に

$ glxinfo
ERROR!  sizeof(I830DRIRec) does not match passed size from device driver
libGL warning: 3D driver returned no fbconfigs.
libGL error: InitDriver failed
libGL error: reverting to (slow) indirect rendering
display: :0  screen: 0
direct rendering: No
(略)

direct renderingを使えるようにしないと…ちなみにVideoチップはi915。


ググってるとそのものズバリを発見。
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=359328
ここにあるとおり
http://dri.freedesktop.org/snapshots/i915-20060403-linux.i386.tar.bz2
を取ってきてコンパイル
できたi810_drv.so、i915_dri.soをそれぞれ/usr/lib/xorg/modules/drivers、/usr/lib/dri/にコピーしてX再起動。

$ glxinfo
name of display: :0.0
libGL warning: 3D driver claims to not support visual 0x23
libGL warning: 3D driver claims to not support visual 0x25
libGL warning: 3D driver claims to not support visual 0x27
libGL warning: 3D driver claims to not support visual 0x29
libGL warning: 3D driver claims to not support visual 0x2b
libGL warning: 3D driver claims to not support visual 0x2d
libGL warning: 3D driver claims to not support visual 0x2f
libGL warning: 3D driver claims to not support visual 0x31
display: :0  screen: 0
direct rendering: Yes
(略)

無事direct renderingが有効に。
なんか警告がでてるけど後で調べることにして先に進む。


あとはhttp://earth.google.com/download-earth.htmlからLinux版のGoogle EarthをDLして実行、インストール。
無事Google Earthが立ち上がりました。

表示しているのは北朝鮮某所。