iriya_ufo’s blog

Curiosity was simply the first derivative of knowledge.

Ubuntu アップグレード 7.10 => 8.04 LTS

7.10 Gutsy が安定な状態で動いていたので少々戸惑いましたが,8.04 は LTS 版ということもあって思い切ってアップグレードしました.

アップグレードに約1GBのパッケージのダウンロードを要求されました.(大杉)
途中で,"設定ファイルの書き換えどうするか?"と聞かれました.
新しいものに置き換えはせず,全部そのままにしておきました.

大体1時間くらいかかったかな?
PC環境
ThinkpadX61 (NA7514I)

さて,良くなった点,悪くなった点,問題点とその解決方法をそれぞれ書いておきます.

良くなった点

  • サスペンド,ハイバネートができるようになった.(カーネルが2.6.24に上がったおかげ)
  • 全体的な動作が軽くなった.(GNOMEが2.22.1に上がったおかげ)
  • 各アプリが新しくなり使いやすくなった.(CCSM, NetworkManager, Screenlets 等)

悪くなった点

  • テーマを変更しても一部アイコンが設定通りに反映されない.(解決方法が分からない)

問題点とその解決方法

VMware Player が起動しなくなった.

カーネルが新しくなったので vmware-config.pl をやり直してね,と言われてその通りしたらエラーが出た.

vmware-config.pl のエラー内容

Trying to find a suitable vmmon module for your running kernel.

None of the pre-built vmmon modules for VMware Player is suitable for your 
running kernel.  Do you want this program to try to build the vmmon module for 
your system (you need to have a C compiler installed on your system)? [yes] 

Using compiler "/usr/bin/gcc". Use environment variable CC to override.

What is the location of the directory of C header files that match your running
kernel? [/lib/modules/2.6.24-16-generic/build/include] 

Extracting the sources of the vmmon module.

Building the vmmon module.

Using 2.6.x kernel build system.
make: ディレクトリ `/tmp/vmware-config0/vmmon-only' に入ります
make -C /lib/modules/2.6.24-16-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: ディレクトリ `/usr/src/linux-headers-2.6.24-16-generic' に入ります
  CC [M]  /tmp/vmware-config0/vmmon-only/linux/driver.o
In file included from /tmp/vmware-config0/vmmon-only/./include/vmware.h:25,
                 from /tmp/vmware-config0/vmmon-only/linux/driver.c:83:
/tmp/vmware-config0/vmmon-only/./include/vm_basic_types.h:170: error: conflicting types for ‘uintptr_t’
include/linux/types.h:40: error: previous declaration of ‘uintptr_t’ was here
/tmp/vmware-config0/vmmon-only/./include/x86.h:23 から include されたファイル中,
                 /tmp/vmware-config0/vmmon-only/linux/driver.h:15 から,
                 /tmp/vmware-config0/vmmon-only/linux/driver.c:84 から:
/tmp/vmware-config0/vmmon-only/./include/x86cpuid.h:383:1: 警告: "BIT_MASK" が再定義されました
include/linux/kernel.h:15 から include されたファイル中,
                 /tmp/vmware-config0/vmmon-only/linux/driver.c:11 から:
include/linux/bitops.h:7:1: 警告: ここが以前の宣言がある位置です
/tmp/vmware-config0/vmmon-only/./include/vmci_kernel_defs.h:26 から include されたファイル中,
                 /tmp/vmware-config0/vmmon-only/./common/vmciContext.h:19 から,
                 /tmp/vmware-config0/vmmon-only/linux/driver.h:21 から,
                 /tmp/vmware-config0/vmmon-only/linux/driver.c:84 から:
/tmp/vmware-config0/vmmon-only/./include/compat_wait.h:37:5: 警告: "VMW_HAVE_EPOLL" は定義されていません
/tmp/vmware-config0/vmmon-only/./include/compat_wait.h:43:5: 警告: "VMW_HAVE_EPOLL" は定義されていません
In file included from /tmp/vmware-config0/vmmon-only/./include/vmci_kernel_defs.h:26,
                 from /tmp/vmware-config0/vmmon-only/./common/vmciContext.h:19,
                 from /tmp/vmware-config0/vmmon-only/linux/driver.h:21,
                 from /tmp/vmware-config0/vmmon-only/linux/driver.c:84:
/tmp/vmware-config0/vmmon-only/./include/compat_wait.h:60: error: conflicting types for ‘poll_initwait’
include/linux/poll.h:65: error: previous declaration of ‘poll_initwait’ was here
/tmp/vmware-config0/vmmon-only/linux/driver.c:198: 警告: initialization from incompatible pointer type
make[2]: *** [/tmp/vmware-config0/vmmon-only/linux/driver.o] エラー 1
make[1]: *** [_module_/tmp/vmware-config0/vmmon-only] エラー 2
make[1]: ディレクトリ `/usr/src/linux-headers-2.6.24-16-generic' から出ます
make: *** [vmmon.ko] エラー 2
make: ディレクトリ `/tmp/vmware-config0/vmmon-only' から出ます
Unable to build the vmmon module.

For more information on how to troubleshoot module-related problems, please 
visit our Web site at "http://www.vmware.com/download/modules/modules.html" and
"http://www.vmware.com/support/reference/linux/prebuilt_modules_linux.html".

Execution aborted.

どうやらカーネル2.6.24ではモジュールがビルドできないみたいです.
ぐぐる先生に聞いたところ Any-Any-116 パッチで幸せになれるみたいです.

Any-Any-116 パッチ当て方

1. VMware Player 2.0.2 Build 59824 をインストールします.(最新バージョン 08/05/06)
url: http://www.vmware.com/download/player/

2. tar xzvf VMware-player-2.0.2-59824.i386.tar.gz

3. cd vmware-player-distrib/

4. ./vmware-install.pl
vmware-config.pl の問いには NO と答えます.

5. any-any patch を当てます.vmware-any-any-update-116 が最新です.
url: http://vmkernelnewbies.googlegroups.com/web/vmware-any-any-update-116.tgz

6. tar xzvf vmware-any-any-update-116.tgz

7. cd vmware-any-any-update116

8. ./runme.pl
vmware-config.pl の問いに YES と答えます.

9. 設定を続けます.デフォルトでいいでしょう.

10. 終わり!

これで起動するようになりました.やった!

フォントのアンチエイリアスの動作がおかしい気がする.

どうやら 8.04 からは,ビットマップデータを持つフォントを12pt以下のサイズで使用するとアンチエイリアスがかからない仕様になった,らしい.(Ubuntuアンチエイリアスの効いた美しいフォントが売りだと思ってたのに….うんこ仕様乙)

で,対策方法

/etc/fonts/local.conf に以下を記述してX再起動

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="font">
<edit name="embeddedbitmap" mode="assign">
<bool>false</bool>
</edit>
</match>
</fontconfig>

Firefox のフォント設定は,"Webページが指定したフォントを優先する"のチェックを外す.

Emacsアンチエイリアスが効かない

上の対策を行っても Emacsアンチエイリアスが効かなくなっていました.
どうやらフォントスタイルが Regular の場合はダメで,regular の場合は大丈夫みたいです.
バグですね.ゲンナリです.
(使いたいフォントがどっちなのかを調べるには fc-list コマンドを使います.)

僕はIPAモナーを使っていましたが,これは残念ながら Regular タイプです.
ひょろひょろしててなんとも情けないフォントだこと….
根本的な解決ではありませんが,VLゴシックフォントに変更して,アンチエイリアス化された Emacs を使っています.

Firefox 3.0 beta 5 に関して

これは問題点のうちに入るのか微妙ですが,8.04 のデフォルトブラウザが Firefox 3.0 beta 5 です.
起動時間が早いのとメモリー使用量が減少しているのは良い点ですが,ほとんどのアドオンが未対応なせいで,人によっては使い物になりません.
まぁこれはアドオンに何を入れているかによりますね.
気に入っていたアドオンが使えなかったので,Firefox2 に戻そうかと思いましたが,いくつかのアドオンで対策方法が分かったので,ベータ版のまま使っています.

All-in-One-Gestures
これは使えません.
対策 => FireGestures を導入して,All-in-One-Gestures は削除した.

Tab Mix Plus
これは使えません.
対策 => http://tmp.garyr.net/dev-builds/ より開発版を入れることにより使用可能になった.

Firemacs, Greasemonkey はベータ版でも使えました.


これだけ設定してなんとか快適に使えるまでになりました.
結果的にはアップグレードして良かったと思います.

あぁ,そうそう Pulse audio のせいで結構戸惑っている人が多いみたいです.
https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/202089

僕の環境では特に問題なかったので運が良かったのかな.