Ubuntu12.04をASUSのEeePCシリーズに入れた場合、ディスプレイの解像度が800x600で変更できないという報告をよく目にします。
今回は
ASUSのEeePC1025Cの1024x600に変更できたので報告致します。
6月にEeePC1025Cを購入。
メモリを4GBに、HDDをSSDに換装。
そしてOSはUbuntu12.04に変更。
Ubuntuのバージョンが11.xの時はUnityの評価が低く、自分でも不満があったので11.xの導入はしなかったのですが、今回はディスプレイが10.1インチなので、このUIなら使い易いだろうと思い、12.04にしました。
Windowsの左下のメニューを頑張って操作しなくてもよいからと言う意味で。
EeePCにUbuntu12.04を入れた状態で、どのようになったかを軽くまとめます。
- メモリの認識は/proc/meminfoで確認して4GBちゃんと認識されています。
- 備え付けのSDカードリーダも動作しています。
- ディスプレイの上についているカメラも認識しています。
- 備え付けのマイクも認識しています。
- キーボードのFnで割り当てられている機能について、ディスプレイの明るさ調整はできないようです。それ以外はほとんど使えます。スクリーンショットもできます。
- Unityですが、やはり標準ではUnity2Dです。特に2Dでも問題がないので、今のところ3Dに変更する予定はありません。
- 動作速度ですが、全く問題ないです。というより、期待していた以上にキビキビ動いてくれます。
- 最後にバッテリーですが、このPCはハードウエアとソフトウエアでバッテリーの持ちを良くし、仕様では10時間と言う表記となっています。ただし、購入時の環境(Windows)で。Ubuntuにした場合、バッテリーの持ち時間の表示は、6時間強となりました。SSDを使用しているので、HDDのままだと恐らくもう少し短くなるかもしれません。
さて、本題です。
ディスプレイの設定が解像度800x600で変更できない。
xrandrの結果は次のようになっています。
---------------------------------------------------------------
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 800 x 600, current 800 x 600, maximum 800 x 600
default connected 800x600+0+0 0mm x 0mm
800x600 0.0*"
---------------------------------------------------------------
maximumが800x600なので、設定ツール等を使用してもそれ以外に変更ができない。
解決方法として、xrandrを使用したり、xorg.confで設定したりという方法があります。
それについては未確認です。
こちらのフォーラムで同様の問題に対し、解決策が載っているのを見つけました。
http://forum.ubuntu-fr.org/viewtopic.php?pid=9088911
フランス語ですが。
この方法は、カーネルを更新することで、グラフィックモジュールが認識され、ディスプレイの解像度を変えることが出きると。
ASUS EeePC1025CのグラフィックはIntel atom内臓のグラフィックモジュールを使用しています。
このモジュールはGMA3650というものです。
Ubuntu12.04のkernelバージョンは3.2.0で、どうやらこのkernelはこのGMA3650には対応していないもよう。
それに対し、今回更新しようとしているバージョンは3.4.xは対応している。
ということで、試してみた。
手順は以下。
1. カーネルをダウンロードして解凍
$ wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.4.4.tar.bz2
$ tar jxvf linux-3.4.4.tar.bz2
2. make menuconfigで.configの設定
(他のツールでも、直接変更してもよい)
解凍したディレクトリに移動
$ cd
linux-3.4.4/
$ make menuconfig
ここで、もしmenuconfigを立ち上げるのに必要なライブラリがない場合は、エラーが出力される。
--------------------------------------------------------------
*** Unable to find the ncurses libraries or the
*** required header files.
*** 'make menuconfig' requires the ncurses libraries.
***
*** Install ncurses (ncurses-devel) and try again.
***
--------------------------------------------------------------
なので、必要なライブラリをインストールする。
$ sudo apt-get install libncurses5-dev
再度チャレンジ
$ make menuconfig
3. menuconfigで.configを編集
Device drivers ---> Graphics support ---> Direct rendering manager --->
ここで"Intel GMA5/600 KMS Framebuffer"という項目を探し、"m"と入力
この項目の下に"Intel GMA3600/3650 support"と言う項目が出るので、"y"と入力。
フォーラムに載っている内容ではもう一つ項目を設定。
Device drivers ---> Staging drivers --->
"Realtek RTS5139 USB card reader support"
の項目に"n"を入力
理由は分からない。
これでmenuconfigは終了。
4. コンパイルの実行
まず、カーネルコンパイル用のパッケージをインストール
$ sudo apt-get install kernel-package
そして、make clean
$ make-kpkg clean
makeする。
CONCURRENCY_LEVEL=`getconf _NPROCESSORS_ONLN` fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers
ここから恐らく1時間以上かかった。
5. インストール
makeが終了したら、
一旦上の階層に戻る
$ cd ..
このディレクトリに
custom kernel_imageとkernel_headersの2ファイルのdebファイルができているので
次のコマンドでインストール
$ sudo dpkg -i *.deb
6. 起動の設定
$ cd /lib/modules
このディレクトリに3.4.4-customが作成されている。
initramfsに、この
3.4.4-customを登録する。
$ sudo update-initramfs -ck 3.4.4-custom
grubを更新。
$ sudo update-grub
これでカーネルの更新は終了。
リブートする。
恐らく再起動後にディスプレイの設定が変だから、とりあえず1024x600にするよ。
といったメッセージが表示される。
ログイン。
画面を見ていただきたい。
1024x600の画面になっているはずである。
設定から、ディスプレイの解像度の設定を見てみると1024x600
ただし、それ以外の選択肢はない。
しかしながら、ディスプレイがとても見やすい。
そして、カーネルをコンパイルしたので、動作がさらに早くなった。
気がする。
N2600を使ったASUS EeePC101CHなどでも
同様に変更できると思われる。