Ubuntu Weekly Recipe

第57回VAIO Type Pを使う(2):各種ドライバの設定

今回もVAIO Type PでUbuntu 8.04を使うためのレシピを紹介します。今回の設定を終えることで、ほぼ一通りの機能が利用できるようになるはずです。

xserver-xorg-video-psbの利用

Type Pで利用されているPoulsboチップセット内蔵のGMA500は、xserver-xorg-video-psbというドライバで動作します。しかしこのドライバはまだ8.10や9.04で利用されるXServer用の移植が完了しておらず、さらに旧来のDRMを経由して利用しなければいけません。8.10以降での利用が微妙な状態なのもこれが理由ですLP#269611⁠。

この問題はUbuntu MobileのPPA対応モジュールが用意されているのですが、諸般の事情によりアップデートカーネルに追いついておらず(2.6.24-16までしかモジュールがありません⁠⁠、手元でビルドを行う必要があります。

順番に手順を見ていきましょう。まず、Ubuntu MobileのPPAをapt-lineに追加します。以下のコマンドを実行してください。

$ sudo /bin/sh -c "echo 'deb http://ppa.launchpad.net/ubuntu-mobile/ppa/ubuntu hardy main\ndeb-src http://ppa.launchpad.net/ubuntu-mobile/ppa/ubuntu hardy main'> /etc/apt/sources.list.d/ubuntu-mobile.ppa.list"

これにより、/etc/apt/sources.list.d/ubuntu-mobile.ppa.listというファイルに以下の内容が記述されるはずです。

deb http://ppa.launchpad.net/ubuntu-mobile/ppa/ubuntu hardy main
deb-src http://ppa.launchpad.net/ubuntu-mobile/ppa/ubuntu hardy main

さらに以下のコマンドを実行します。必ずLaunchpad上のUbuntu MobileチームのPPAページであるhttps://launchpad.net/~ubuntu-mobile/+archive/ppaを開き、以下のような記述の************************の部分を確認してから作業を行ってください

『This repository is signed with ************************************ OpenPGP key. Follow these instructions for installing packages from this PPA.』

$ sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com ************************************

※ ************************************の部分は上述の通り、Ubuntu MobileチームのPPAに割り振られた鍵のkeyIDに置き換えてください。

この状態で以下のコマンドを実行すると、幾つかのパッケージがUbuntu Mobile由来のものに置き換わり、さらにxserver-xorg-video-psbが導入されます(もしUbuntu Mobile由来のパッケージを使いたくなければ、sudo apt-get update && sudo apt-get install xserver-xorg-video-psbを完了させた後で、/etc/apt/sources.list.d/ubuntu-mobile.ppa.listをリネームし、さらにsudo apt-get updateを実行してください⁠⁠。

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install xserver-xorg-video-psb

前述の通り、旧来のバージョンであればUbuntu MobileのPPAを有効にし、パッケージアップデート(sudo apt-get upgrade)を実行することでカーネルモジュールも導入され、psbドライバを利用できるようになっていたのですが、現在は自力でモジュールをコンパイルしなければいけません。

次の操作を行ってください。カーネルモジュール群のコンパイルを伴うので、相応の時間がかかります。

$ sudo apt-get install fakeroot
$ sudo apt-get build-dep linux-ubuntu-modules-`uname -r`
$ mkdir src
$ cd src/
$ apt-get source linux-ubuntu-modules-`uname -r`
$ cd linux-ubuntu-modules-2.6.24-2.6.24/
$ echo "CONFIG_DRM_PSB=m" >> debian/config/i386
$ fakeroot debian/rules binary-modules-generic
$ cd ..

以上の操作を行うと、カレントディレクトリに「linux-ubuntu-modules-2.6.24-23-generic_2.6.24-23.37_i386.deb」といったパッケージが生成されますので、これをインストールします(ファイルマネージャで~/srcを開き、パッケージをダブルクリックしてgdebi経由でインストールしても良いでしょう⁠⁠。

$ sudo dpkg -i linux-ubuntu-modules-2.6.24-23-generic_2.6.24-23.37_i386.deb

以上の操作を行ったら、システムを再起動してください。再起動後は1600x768ドットの広大な解像度を利用できるようになっているはずです。明度の変更も可能ですが、残念ながらホットキーは有効にならないので、GNOMEパネルから明るさの変更アプレットを追加し、アプレット経由で操作してください。

なお、カーネルの(セキュリティフィックスではない)バージョンアップがあった場合は同様のコンパイル作業を都度行う必要があります。

ヘッドフォンジャックの適正化

これも前回触れた通り、Ubuntu 8.04をインストールした直後のサウンド機能は、⁠本体のスピーカーから鳴るものの、ヘッドフォンを装着しても本体スピーカが自動ミュートされずに音が出てしまう」という状態です。言い換えると、ヘッドフォンを挿しても本体・ヘッドフォンの両方から音が出てしまう状態です。これではヘッドフォンを用いる意味がほとんどありません。

これはALSAの設定を変更することで解決することができます。解決には[アプリケーション⁠⁠→⁠アクセサリ⁠⁠→⁠端末]で次のコマンドを用いてください。

$ sudo /bin/sh -c "echo '#Fix Sony VAIO Headphones issue.\noptions snd-hda-intel model=sony-assamd'>> /etc/modprobe.d/alsa-base"

これにより、/etc/modprobe.d/alsa-baseの末尾に以下の行が追加されるはずです。

#Fix Sony VAIO Headphones issue.
options snd-hda-intel model=sony-assamd

設定を終えたら、システムを再起動してください。以降はヘッドフォンを装着すると本体スピーカが自動的にミュートされるようになるはずです[2]⁠。なお残念ながら、ノイズキャンセリング機能を利用する方法はまだ確立できていません。

Type P以外での解決方法

VAIO Type P以外でも「そもそも音が出ない」⁠ヘッドフォン端子にヘッドフォンを装着しても、本体のスピーカー出力がミュートされない」といった現象に遭遇された場合は、以下のように調べていくことで解決できるかもしれません(もっとも、ALC262であるケースが極端に多いため、機種が異なっていてもsony-assamdを追加すると偶然動作してしまうこともありえそうです……⁠⁠。ノートPCだけでなく、デスクトップPCなどでも多くの場合同様です。

基本的に、このようなサウンド周りの問題が発生する場合は、dmesgや/var/log/messagesなどに、一定のメッセージが出力されているはずです。これは古くはAC97や現在のAzaliaベースのサウンド機能の問題で、チップセット内蔵のサウンド機能を利用する場合、コーデックチップを正しく認識できないと「サウンド機能は認識されるものの、ジャック周りの割り付けが正しく動作しない」という結果につながるためです。

たとえばVAIO Type Pの場合、筆者の手元ではdmesgと/var/log/messagesに以下のようなメッセージが出力されていました。

hda_codec: Unknown model for ALC262, trying auto-probe from BIOS

このようなメッセージは、以下のようにすると容易に見つけることができるでしょう。

$ dmesg | grep codec

このメッセージ出力をヒントに、/etc/modprobe.d/alsa-baseに追加する「snd-hda-intel model=****」のコーデック指定部である****に当てはまるものを調べます。

以下のように操作することで、利用可能なオプションの一覧を閲覧できます。これはUbuntuのバージョンごとに微妙に異なるはずです(基本的に、新しいバージョンのUbuntuであればよりリストが増えているはずです。ただし、希に複数のエントリが統合されて新しいエントリになっていることもあります⁠⁠。

$ gunzip -c /usr/share/doc/alsa-base/driver/ALSA-Configuration.txt.gz | less

先ほどのコーデックの情報を検索します。上記のgunzip……コマンドで開いたファイルで検索を行う場合、⁠/]に続けて検索キーワードを入力してください。Type Pの場合、⁠Unknown model for ALC262」と出力されているので、検索キーとして「ALC262」を用います(これは本来であれば自動的に認識されるのが理想なのですが、機種データベースの問題やPCのバリエーションの膨大さから、うまく自動認識される状態に達していません⁠⁠。

現在の8.04環境では以下のような機種に対応しています。以下のように表示されるうち、左側がオプション、右側がそのオプションに対応する機種です。Type Pの場合は以下の中からもっとも「それらしい」ものとして、⁠sony-assamd」を追加しています。

ALC262
          fujitsu       Fujitsu Laptop
          hp-bpc        HP xw4400/6400/8400/9400 laptops
          hp-bpc-d7000  HP BPC D7000
          hp-tc-t5735   HP Thin Client T5735
          hp-rp5700     HP RP5700
          benq          Benq ED8
          benq-t31      Benq T31
          hippo         Hippo (ATI) with jack detection, Sony UX-90s
          hippo_1       Hippo (Benq) with jack detection
          sony-assamd   Sony ASSAMD
          ultra         Samsung Q1 Ultra Vista model
          basic         fixed pin assignment w/o SPDIF
          auto          auto-config reading BIOS (default)

もし他の機種をお使いで同様の問題に遭遇した場合は、このような手順でトラブルシューティングを行ってみてください。

トラックポイントによるスクロール

VAIO Type PにはLenovo Thinkpadなどと同じく[3]⁠、トラックポイントに相当するポインティングデバイスが搭載されています。当然中央ボタンを押しながらスクロールできることを期待するのですが、そのままではやはり動作しません。

第12回で紹介したものと同様の手法が利用できます。/etc/X11/xorg.confの「Section "InputDevice"」「Identifier "Configured Mouse"」に、以下のように2行を追加してください。Xの再起動後(再ログイン後)からは中央ボタンを押しながらポインタを操作することで、マウスホイールによるスクロールと同等の動作が可能になるはずです。

Section "InputDevice"
        Identifier      "Configured Mouse"
        Driver          "mouse"
        Option          "CorePointer"
        Option          "EmulateWheel"  "true"         ←この行を足す
        Option          "EmulateWheelButton"    "2"  ←この行を足す
EndSection

おすすめ記事

記事・ニュース一覧