« Bodhi Linuxが1.2.0 をリリースしたそうですが | トップページ | EeePCのバックアップ(Bodhi Linux編) »

2011/09/16

Arch Linux with E17 その3

まだまだインストール後の設定が終わっているとは言い難いので、設定に関するものも少々。
及び起動時間測定のためのbootchartのインストールとArchのWikiにある起動時間高速化も試してみました。
(11/01 変更)Enlightenment のモジュールについて使っているものに変えました。

  1. 権限の整理
  2. AURにあるpolkit-use-wheel-groupを入れます。参照PolicyKit
    yaourt -S polkit-use-wheel-group
    また、設定パネル - Preference - Privilege preference を開き、Behavior を「sudo」にします。これをやらないと、gksu 等をする度にibusの権限で文句を言われます。

  3. gdmのメラーメッセージ除去と起動時スクリプト
  4. 毎度RAM DISKでおなじみのフォルダがねぇぞ、ゴルア!エラーの対策です。
    Archの流儀がよくわかっていないので、安全策として/etc/rc.local に入れました。
    ついでにノートPC用の負荷低減も出来るかどうかの確認のために入れてみました。
    gksu leafpad /etc/rc.local
    以下の内容を追記します。
    sysctl -w vm.swappiness=1
    sysctl -w vm.vfs_cache_pressure=50
    # Make directories on ramdrive
    for dir in ConsoleKit fsck gdm samba audit;
    do
        if [ ! -e /var/log/$dir ] ; then
            mkdir /var/log/$dir
        fi
    done
    chmod a+w /var/log/gdm
    
  5. 表示の設定を容易に
  6. Bodhiで使われていたlxappearanceをインストールします。
    sudo pacman -S lxappearance
    Run Everythingから起動出来ます。アイコンテーマをTangoにして、フォントを11ptにですかね。
    アイコンのテーマだけなら設定パネル - 外見 -アイコンのテーマ から変更可能ですが。 他のgtkテーマを入れればここから変更を選択できます。
    アプリケーションメニューにはデフォルトでは載らないようなので、載せておきます。
    gksu leafpad /usr/share/applications/lxappearance.desktop &
    一番最後にCategories 行があるので、System;を追加します。
    設定パネル- System の中に表示されるようになります。
    Categories=Settings;DesktopSettings;GTK;X-LXDE-Settings;System;
  7. アイコンテーマの追加
  8. AURでなくオフィシャルにあるアイコンテーマを幾つか入れてみました。Archのパッケージページで、keywordにicon-themeを入れてやると幾つか出てきます。
    Ubuntuに慣れているということで、tangerine-icon-themeを使うことにしました。tangoのアイコンテーマを使うならtango-icon-theme-extrasも入れておくと良さそうです。
    sudo pacman -S tangerine-icon-theme tango-icon-theme-extras
    (当然ですが、tangerine-icon-themeだけ使いたい場合には、tango-icon-theme-extrasのインストールは必要ないです。)
    設定は、LXApperance と設定メニュー - 表示 - アイコンのテーマ の両方やっておいた方が無難です。

  9. シェルフの設定
  10. シェルフの上で右クリックをして、設定を表示。位置を左側に。サイズタブの中身の幅まで縮小するは、はずします。スタイルをalternate_vertical にして適用。
    次に中身の変更。スタート以外を一旦全て削除します。その後、表示したい順番に追加していきます。
    現状、
    ・systray
    ・slideshow
    ・Mixer
    ・バッテリ(ノートPCの場合のみ) ・tclock
    ・Scale Window の順。

  11. tclockを縦表示のシェルフでも見やすく
  12. あるいは見えるように表示を削ると言ったほうが良いかも。tclockの上で右クリックをしてSettingを表示します。
    上段:%H:%M →フォント設定変えて見にくくなったので非表示に
    下段:%m/%d
    ツールチップ:%c にそれぞれ変更します。

  13. 電卓
  14. 必須アプリなのに入れるのを忘れていたという。gnome-utilsには入っていないのねん。
    sudo pacman -S gcalctool
    起動は、Run Everythingからgcalctoolを起動するか、アプリケーション - アクセサリ - 電卓 で。
    Run Everything ならgca 辺りまで打てば候補に出てきそうですが。

  15. 起動時にnumlockを有効に
  16. これはEeePCみたいなノートPCには関係ない話ですが、デスクトップ上のVMWare環境だとやっておくと便利です。まずはnumlockxというパッケージが必要なのでインストール。
    sudo pacman -S numlockx
    次に、/etc/gdm/Init/Default を編集。
    gksu leafpad /etc/gdm/Init/Default &
    以下のコードをexit 0よりも前に挿入します。
    # Activate numlock on boot
    if [ -x /usr/bin/numlockx ]; then
          /usr/bin/numlockx on
    fi
  17. Bootchartのインストールと測定
  18. インストールはAURにあるbootchart2-gitを使いました。
    cd /dev/shm/
    mkdir -p temp && cd temp
    wget https://aur.archlinux.org/packages/bo/bootchart2-git/bootchart2-git.tar.gz
    tar xzf bootchart2-git.tar.gz 
    cd bootchart2-git
    leafpad PKGBUILD
    
    内容を、illdred氏のパッチに書き換えて保存します。
    makepkg -s
    sudo pacman -U bootchart2-git-20110908-1-i686.pkg.tar.xz 
    cp bootchart2-git-20110908-1-i686.pkg.tar.xz ~/
    cd ../
    rm -rf *
    次に、grubの起動オプションを変更します。って、grub2じゃないんですね>archのデフォルト。
    gksu leafpad /boot/grub/menu.lst 
    # (0) Arch Linux ブロックのkernel行に、quiet init=/sbin/bootchartd を加えます。diskのuuid以外は以下のようになるはずです。
    # (0) Arch Linux
    title  Arch Linux
    root   (hd0,0)
    kernel /vmlinuz-linux root=/dev/disk/by-uuid/b06ebf37-2086-40f9-998a-6c1e55b68740 ro quiet init=/sbin/bootchartd
    initrd /initramfs-linux.img
    再起動したら、ログインしてしばらく経つとpngが出来ますが、待っている必要もない場合は、
    sudo /sbin/bootchartd stop
    で/var/log/bootchart.pngが出来ます。さすが最新版、Bodhi(Ubuntu10.04)に比べて情報が多いです!
    特になにもせずにbootchartを取ってみましたが、同じPCのVMWareにインストールしたBodhiと比べて5秒以上起動が早いです。遅いシングルコアPC(Pentium3.2GHz)なので、時間自体も結構かかっている(Bodhi:30秒、Arch 23秒)ので、5〜7秒の差がEeePCでどのように出るかわかりませんが。
    ただ、Bootchartを見るとBodhiはIO待ちの時間がほとんどなくてCPUの処理だけで非常に時間がかかっています。ArchはDIKS IO待ちが多発しているので、SSDなEeePCだとかなり高速に起動するかもです。

  19. 起動時間短縮: Ureadahead
  20. Debian/Ubuntu/Bohiの起動時間短縮に大きな役割を果たしているUreadaheadですが、ArchではAURにパッケージがあります。ただし、カーネルの再コンパイルも必要で少々難易度高めです。
    このカーネル再コンパイルにはkernel.orgから元のソースを取って来るという前提になっているのですが、間の悪いことにkernel.org への不正侵入事件の影響で、オリジナルのカーネルソースがkernel.org から取ってこれなくなっています。
    いつ再開してくれるのかわかりませんが、当面テスト出来そうにないですねぇ・・・
    とりあえずUreadaheadに興味がある!という人はArchのWikiをどうぞ。

  21. 起動時間短縮: inittabの最適化
  22. といってもこの作業はBootchartで見る限りあんまり効果なかったです。気休め程度でしょうか。起動高速化はmsec単位を削っていく地道な作業になることもありますが、その一例ということで・・・

    ※注意 これらの作業前に必ず一旦haltして、VMWareフォルダ毎バックアップを取っておきましょう。
    設定を少しでも間違うと起動すら出来なく事ばかりをやっています。VMWareのバックアップはコピーだけですから手遅れになる前に作業をしておきます。

    高速化の参考情報:
    参考情報:Improve Boot Performance

    デフォルトをより軽いターミナルマネージャに置き換えます。ついでにログイン以降はどのみちlxterminal使う訳なので、ttyサービス自体を止めます。
    本当はrcも並列起動したいのですが、dbusの起動完了前にxが走ってしまうと結局余計に時間がかかります。自分の使い方では並列起動は出来ないですね。
    ターミナルマネージャの置き換えはrun level1とかを使う人でなければ関係ないと思います。
    まずは軽量のターミナルマネージャであるfgettyのインストール。
    sudo pacman -S fgetty
    次は、/etc/inittab の編集。
    gksu leafpad /etc/inittab &
    ttyのc3以降をコメントアウトして、c2以下はagetty → fgettyに。ついでに不要なオプションも取ります。
    # -8 options fixes umlauts problem on login
    c1:2345:respawn:/sbin/fgetty tty1 linux
    c2:2345:respawn:/sbin/fgetty tty2 linux
    #c3:2345:respawn:/sbin/agetty -8 -s 38400 tty3 linux
    #c4:2345:respawn:/sbin/agetty -8 -s 38400 tty4 linux
    #c5:2345:respawn:/sbin/agetty -8 -s 38400 tty5 linux
    #c6:2345:respawn:/sbin/agetty -8 -s 38400 tty6 linux

  23. 起動時間短縮: DAEMONの起動順最適化
  24. /etc/rc.confを編集して可能な限りバックグランドに持っていくことと、Xが起動する前に起動していないとダメなサービスは前の方に動かします。netowrkmanagerがdbus依存なので、dbusはバックグラウンドには置けないはずです。
    gksu leafpad /etc/rc.conf &
    DAEMONS=(hwclock @syslog-ng @acpid dbus @networkmanager @crond)
    少なくとも自分の環境ではhwclockをバックグラウンドに回すと逆に時間がかかりました。
    bootchartで見るとバックグラウンドに持っていくことによりrc.multiからrc.rocalまでの時間が0.5秒短縮されていました。ただし、rc.multiからenlightenment_iまでの時間で見ると大差ありませんでした。
    これは、試した環境がIO待ちの多い上にシングルタスクCPUのバーチャルマシンであるためにバックグラウンドにタスクを移動しても効果が得られないためだと思われます。マルチコアなCPUなら効果あると思うのですが。

  25. 起動時間短縮: mkinitcpio.confの編集
  26. ※先にも書きましたが、ここの作業は少しでもミスるとシステムの起動そのものが出来なくなります。バックアップ取ったか再度確認してから作業です。

    initramzfs使ってるんですね・・・。これっていらないんじゃね?って思うのですが、削除にはカーネルの再コンパイルが必要っぽいので今回はパスです。
    まずはどんなインターフェイスを自分が使っているか調べます。
    lspci | grep interface
    結果は、
    00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
    だけでした。つまり自分のVMWare環境にはSATAもSCSIも要らない・・・と考えると思うのですが、ダウトでした。SCSIがいないとディスクが見つけられなくなって起動できません。なんでやねん。ともかく次に
    lsusb
    の結果は、
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    だけでした。自分はUSBなキーボードとマウスを使っていますが、VMWare上のOSからはレガシーなキーボードとマウスと見えているということです。
    これらの情報を元に/etc/mkinitcpio.confのHOOKの内容を最適化します。
    gksu leafpad /etc/mkinitcpio.conf &
    HOOK= の行から sata usbinputを削ります。結果的にこうなりました。
    HOOKS="base udev autodetect pata scsi filesystems"
    保存したら、イメージのアップデートをして再起動します。
    sudo mkinitcpio -p linux
    結果は、自分の試した環境だと微妙でした。起動した時のホストPCとの関係(及びディスクIOの空き)の方がより支配的なので・・・。A8-3850な環境だと違うんでしょうかねぇ。

  27. 起動時間短縮: rc.のsysinitの最適化
  28. RAIDも暗号化したドライブも使っていない訳で、そうしたサポートをはずすことで多少なりとも高速化できるはずです。しかし、これもやってみた結果は目に見える効果はなかったですねぇ。 やってみる人は、
    gksu leafpad /etc/rc.sysinit &
    して、
    # FakeRAID devices detection
    # BTRFS devices detection
    # Activate LVM2 groups if any
    # Set up non-root encrypted partition mappings
    等を探して不要な部分をコメントアウトすれば良いです。でも使っていない場合にはどちらにせよ大して時間食ってないんですよね。

« Bodhi Linuxが1.2.0 をリリースしたそうですが | トップページ | EeePCのバックアップ(Bodhi Linux編) »

Arch Linux」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/28800/52677805

この記事へのトラックバック一覧です: Arch Linux with E17 その3:

« Bodhi Linuxが1.2.0 をリリースしたそうですが | トップページ | EeePCのバックアップ(Bodhi Linux編) »