Ubuntu Weekly Recipe

第7回 EeePCでUbuntuを使う/無線LANドライバの追加

この記事を読むのに必要な時間:およそ 5 分

今回はASUS EeePCを例に,UbuntuをノートPCで使う場合に役立つレシピを紹介します。EeePC特有の設定ではなく,低解像度環境や,最新のノートPCを使う際に,無線LANドライバが認識されない場合の対処方法が中心です。なお,EeePCには「eee-ubuntu-support」という専用のモジュールが存在しており,これを用いることで周辺環境を整えることができますので,あわせて説明します。

EeePCの概要

EeePCは通称「ASUS版$199 PC」と呼ばれる,きわめて廉価なノートPCです。実際の価格は最下位モデルである2GB SSD+低容量バッテリ搭載のEeePC Surfでも$299で,$199には届きませんが,海外における低価格ノートPCの最低ラインがこれまで$499前後でしたので,大きな低価格化を実現したと言えます。日本国内では以下のコンフィギュレーションのモデルを,49,800円程度で入手できます。

  • OS: WindowsXP Home Edition
  • CPU: Intel製CPU注1
  • メモリ: 512MB DDR2 SO-DIMM
  • ディスプレイ: 7型 800x480ドット
  • ネットワーク: 有線/無線LAN
  • ストレージ: 本体内蔵 4GB SSD
  • 端子: USB2.0 x3, 外部モニタ出力(D-SUB15pin) , SD/SD HCカードスロット, Line-Out, Mic-In
  • 重量: 0.92kg
  • バッテリ駆動時間: 約3.2時間

ディスプレイのサイズ・解像度が必要最小限であること,ストレージが4GBしかないことが制約となりますが,1kgを切るモバイルPCが5万円で入手できる,というのがEeePCのメリットとなります。

注1)

現在はStealeyコア(Dothan-512K)のULV CeleronMを搭載していますが,カタログ上は「Intel Mobile CPU」としか表記されていませんので,ロットによって変更される可能性があります。またバッテリや発熱の関係からか,デフォルトでは900MHzから630MHzにダウンクロックした状態で動作しています

EeePCのハードウェア(参考)

EeePCのスペックの詳細は次の通りです。

なお,Linux環境では,こうした詳細なハードウェア情報をlshwコマンドを用いることで得られます(sudo lshw -short。lshwコマンドは強力なハードウェアリストツールで,-shortの場合はlspciとほぼ同様の簡易出力を,オプション無しで実行することで,バス構成などを含むより詳細な出力を得ることができます。また,sudo lshw -sanitizeを用いることで,シリアル番号などのセンシティブな情報を抑制した形で詳細情報を得ることができます)。

多くのディストリビューションではオプショナルな位置づけのようですが,Ubuntuでは標準でlshwコマンドが導入されています。

H/W path             Device     Class       Description
=======================================================
                                system      702
/0                              bus         702
/0/0                            memory      64KB BIOS
/0/4                            processor   Intel(R) Celeron(R) M processor     
/0/4/5                          memory      32KB L1 cache
/0/4/6                          memory      512KB L2 cache
/0/4/7                          memory      L3 cache
/0/1f                           memory      2GB System Memory
/0/1f/0                         memory      2GB DIMM Synchronous 400 MHz (2.5 ns
/0/100                          bridge      Mobile 915GM/PM/GMS/910GML Express P
/0/100/2                        display     Mobile 915GM/GMS/910GML Express Grap
/0/100/2.1                      display     Mobile 915GM/GMS/910GML Express Grap
/0/100/1b                       multimedia  82801FB/FBM/FR/FW/FRW (ICH6 Family) 
/0/100/1c                       bridge      82801FB/FBM/FR/FW/FRW (ICH6 Family) 
/0/100/1c.1                     bridge      82801FB/FBM/FR/FW/FRW (ICH6 Family) 
/0/100/1c.1/0        eth0       network     L2 100 Mbit Ethernet Adapter
/0/100/1c.2                     bridge      82801FB/FBM/FR/FW/FRW (ICH6 Family) 
/0/100/1c.2/0        wifi0      network     AR5006EG 802.11 b/g Wireless PCI Exp
/0/100/1d                       bus         82801FB/FBM/FR/FW/FRW (ICH6 Family) 
/0/100/1d.1                     bus         82801FB/FBM/FR/FW/FRW (ICH6 Family) 
/0/100/1d.2                     bus         82801FB/FBM/FR/FW/FRW (ICH6 Family) 
/0/100/1d.3                     bus         82801FB/FBM/FR/FW/FRW (ICH6 Family) 
/0/100/1d.7                     bus         82801FB/FBM/FR/FW/FRW (ICH6 Family) 
/0/100/1e                       bridge      82801 Mobile PCI Bridge
/0/100/1f                       bridge      82801FBM (ICH6M) LPC Interface Bridg
/0/100/1f.2          scsi1      storage     82801FBM (ICH6M) SATA Controller

EeePCでのUbuntuの利用

ご覧のようにEeePCのハードウェア構成は普通のノートPCと大差ありません。USB接続の光学ドライブを接続することで,Ubuntuを通常通りインストールすることができます。

Ubuntuが最小限要求するストレージ容量は4GB程度であるため,EeePCのSSD上にも十分配置することが可能です。クリーンインストール直後は2?2.5GB程度の容量消費ですので,ソフトウェアの追加や,ホーム領域にもそれなりの余裕があります。また,ソフトウェアアップデートを行う場合も,インストールされたパッケージは随時削除されますので,これによって容量が致命的に圧迫されることはありません注2)。

ただし7.10をインストールした場合,次のような問題に遭遇すると思われます。

  • シャットダウンが正常に行われない。
  • ハイバネートが正常に行われない。
  • 有線イーサネットポートを利用する際,電源投入後にケーブルを接続しても認識されない。
  • 無線LANが利用できない。
注2)

例外として,「ディストリビューションのアップグレード」(たとえば7.10 => 8.04)は,一時的に1?2GB分のパッケージをダウンロードし,一気に適用するため,EeePC上では残念ながらアップグレードは困難です。新しいリリースへの移行を行うには,バックアップを行ってホーム領域などを退避した上で,新しいバージョンで再インストールする形になります。

どうしてもアップグレードを行いたい場合,理論上は/var/cache/aptをSDカード上に配置することで可能なはずですが,筆者はまだ検証できていません。

eee-ubuntu-support

EeePCで発生する,上述のような問題を解決するソフトウェアパッケージがeee-ubuntu-supportという名称で配布されています。これはEeePCで必要なドライバや,initスクリプトの改変などを一つにまとめたものです。

インストールは次のように行います。有線でネットワークに接続した状態で作業を行ってください。上述の通り,有線イーサネットポートは電源投入後にケーブルを挿入しても正常に認識されませんので,電源投入以前からイーサネットケーブルを挿した状態で行ってください。

$ wget http://eee-ubuntu-support.googlecode.com/files/eee-ubuntu-support_v0.7.tgz
$ tar xzf eee-ubuntu-support_v0.7.tgz
$ cd eee-ubuntu-support_v0.7
$ for i in modules acpi clock wifi sound init; do sudo ./install.sh $i ; done

これにより,シャットダウン・ハイバネートなどの電源管理に関する問題や,無線LANが使えない,といった問題が解決し,EeePCで快適にUbuntuを利用することができるようになります。また,このモジュールによって行われるスクリプトの改変により,ブートプロセスのチューニングが行われ,起動時間も短くなります。こうした,ブート時間短縮のレシピは別の機会に紹介する予定です。

なお,配布パッケージには「sudo ./install.sh all」で全てのモジュールがインストールできると記載がありますが,X11モジュールをインストールすると3D Desktopが利用できなくなるため,筆者は推奨しません注3)。

注3)

ただし,このX11モジュール(正体は,EeePC Linux版のXandrosカスタム版に導入されているビデオドライバのバイナリを流用したもの)を導入することで,Webカメラを利用してSkypeなどでテレビ通話を行うことができるようになります。このような用途へ利用する場合はインストールした方が良いでしょう。

一般的な環境での対処

EeePCは価格が安いために(それ以上に,廉価なノートPCとして多くの注目を集めるデバイスであるため)利用者が多く,eee-ubuntu-supportのような専用のパッケージがリリースされています。これにより,ごく簡単な手順で,デバイスが認識されないといった問題を解決することができます。

こうした配布物が存在しない場合を考えてみましょう。

Ubuntuでは,標準配布物に無線LANやSCSI HBA,Fibre ChannelアダプタやNVIDIA製・AMD(ATi)製ドライバなど,バイナリで配布されていたり,あるいはデバイスを動作させるために,ファームウェアを動的にロードする必要があるソフトウェアを,Linux Kernelと同時にインストールできるようになっています(linux-restricted-modulesパッケージ)。

しかし,全てのドライバが標準配布物に含まれているわけではないことと,新しいデバイスの追加が半年に一度になってしまうため,最新ハードウェアや,マイナーなハードウェアは正常に認識されない,あるいは認識されていても動作しない,といった問題に遭遇することになります。

特に無線LAN関連は,デバイスにファームウェアを動的にロードさせることで動作を定義して動作させる設計が多く,かつ,そうしたファームウェアはバイナリ形式でのみ提供されている上に,デバイスごとに更新しなければならないため,「認識されない」あるいは「認識されるが上手く動作しない」といった問題に遭遇するケースが多くなります。こうしたデバイス動作に関する問題は,多くは次バージョンのUbuntuを待つことで解決できるのですが,最大で半年程度待つ必要が出てきてしまいます。特に,現在のノートPCでは無線LANが利用できないのは致命的です。こうした場合,手動でドライバをビルドすることになります。

なおこうした面倒なく無線LANを利用したい場合,筆者はIntel製無線LANをお勧めします(かつ,最新よりも1世代古いものを用いると確実でしょう)。

ドライバのビルド環境の構築

ドライバのビルドを行う場合,まずビルド環境を整える必要があります。Ubuntuでは次のように,2つのパッケージをインストールすることでドライバのビルドに必要なソフトウェアがインストールされます注4)。

$ sudo apt-get update
$ sudo apt-get install build-essential linux-headers-generic

server版やxen, rtなどといった異なるフレーバーのカーネルを利用している場合は,以下のように適切なフレーバーを指定してください。

$ sudo apt-get install build-essential linux-headers-{server,xen,rt}

なお,ドライバのビルドを目的としてインストールする場合,linux-headersパッケージのうち,"linux-headers-2.6.22-14-generic"といったバージョン番号やABI番号を含んだパッケージを単体ではインストールせず,linux-headers-generic(等)をインストールし,その依存関係によって導入されるようにしてください。これらのパッケージを単体でインストールした場合,"2.6.22-15-generic"といった,ABIが異なる新バージョンのカーネルがリリースされた場合にlinux-imageパッケージのみが更新されてしまい(=-headersパッケージの更新が行われず),手動で対応が必要になる可能性があります。

注4)

多くの場合,無線LANドライバのコンパイルにはkernel-headersは不要ですが,ここでは他のドライバのビルド環境も整えるため,まとめてインストールしています。

著者プロフィール

吉田史(よしだふみひと)

Ubuntu Japanese Team Member株式会社創夢所属。システム管理を中心にWindows/PC Unixを併用している。Ubuntu Japanese Teamではパッケージサーバの管理や翻訳などの作業を担当。

コメント

コメントの記入