« e4ratで高速起動 | トップページ | Arch LinuxをGPT + Grub2でインストールを行う »

2011/10/28

NetworkManager とか日本語設定とか

(11/15 追記)フォント周りの表示改善のためにインストールするパッケージを追記しました。
つうか、Ubuntuのパッチ当てたパッケージに入れ替えているだけですが。
AURの管理にはpackerを使うことにしたので、インストールはそっちで行なっています。
packerについてはパッケージ管理方法としてまとめる予定です。
-----------------------------------------------------------------

2日程前にpacman -Syu やったら、何故か/etc/rc.d/networkmanager が消えてしまいました。なんでやねん。
それはすぐに修正出来たのですが、ついでに(?)以前から気になっていたサスペンドからの復帰でネットワークが接続出来なくなってしまうという問題の対策をしました。

また、今回のアップデートでlocaleについての修正が入ったのを機会に、日本語周りの設定を見直しました。
タイミングの良いことに、独学Linuxさんの記事にUbuntu 11.10の日本語設定に関する情報が載っていたので参考にさせて頂きました。

まずはNetworkmanager の修正から。って単なる再インストールですけど。
sudo pacman -U /var/cache/pacman/pkg/networkmanager-0.9.1.90-1-i686.pkg.tar.xz
これだけ。再インストールならネットワークに接続する必要なんてないので、ネットワークが切れていてもあせる必要はないです。

次は、サスペンドからの復帰時にネットワークが再接続してくれない問題。
以前は、dbus を使ってやろうとしていたのですが、pm-utils のアップデートで不要になっていました。
やっぱりダメみたいなので、以前の方法に戻します。
まず、/usr/lib/pm-utils/sleep.d/55NetworkManager を用意します。内容はUbuntu のそのままで良いので、次のようにします。
#!/bin/sh
# If we are running NetworkManager, tell it we are going to sleep.
# TODO: Make NetworkManager smarter about how to handle sleep/resume
#       If we are asleep for less time than it takes for TCP to reset a
#       connection, and we are assigned the same IP on resume, we should
#       not break established connections.  Apple can do this, and it is
#       rather nifty.

. "${PM_FUNCTIONS}"

suspend_nm()
{
	# Tell NetworkManager to shut down networking
        printf "Having NetworkManager put all interaces to sleep..."
	dbus_send --print-reply --system                         \
		--dest=org.freedesktop.NetworkManager  \
		/org/freedesktop/NetworkManager        \
		org.freedesktop.NetworkManager.sleep && \
	    echo Done. || echo Failed.
}

resume_nm()
{
	# Wake up NetworkManager and make it do a new connection
	printf "Having NetworkManager wake interfaces back up..."
        dbus_send --print-reply --system                        \
		--dest=org.freedesktop.NetworkManager \
		/org/freedesktop/NetworkManager       \
		org.freedesktop.NetworkManager.wake && \
	    echo Done. || echo Failed.
}

case "$1" in
	hibernate|suspend)
		suspend_nm
		;;
	thaw|resume)
		resume_nm
		;;
	*) exit $NA
		;;
esac
ただ、これだけだとdbus のアクセス権限制限に引っかかってエラーになるだけなので、/etc/dbus-1/system.d/NetworkManager.conf を編集します。
send_member= の値が Sleep, sleep, wake の値になっている箇所を探して、
deny をallow に変えます。
全ての編集がおわったら、再起動で有効にします。

上記の方法がなんらかの原因でダメだった場合の最終手段は、Networkmanagerの再起動になります。
sudo rm /var/lib/NetworkManager/NetworkManager.state
sudo /etc/rc.d/networkmanager restart
でいけるはず。


次に日本語の設定。Ubuntuのコードを使わせてもらいました。
sudo wget https://www.ubuntulinux.jp/fonts.conf.d/oneiric-69-language-selector-ja-jp.conf -O /etc/fonts/conf.avail/69-language-selector-ja-jp.conf
ln -s /etc/fonts/conf.avail/69-language-selector-ja-jp.conf /etc/fonts/conf.d/69-language-selector-ja-jp.conf
フォント設定は30秒毎にスキャンされているので、最悪でも30秒程待てば設定が適用されてtakaoPゴシックでpcmanfm等が表示されるようになるはずです。


これでも表示がイマイチ美しくないです。レンダリングを行なっているパッケージをUbuntu謹製パッチが当たっているものに入れ替えます。主にLCDでの表示が改善されます。ノートPCには効果大だし、もう液晶じゃないディスプレイを使っている人はいないと思われるので、全員に必須かも。
packer -S freetype2-ubuntu fontconfig-ubuntu libxft-ubuntu cairo-ubuntu
~/.Xresources がない場合には作成して、以下を記述して保存します。
! font settings suggested by infinality
Xft.autohint: 0
Xft.lcdfilter:  lcddefault
Xft.hintstyle:  hintslight
Xft.hinting: 1
Xft.antialias: 1
Xft.dpi: 96
Xft.rgba: rgb
これでchromiumも含めてようやくフォントが見れる状態になりました。
以前インストールしたlxappearanceはもういらない感じですね。
(しかしCanonicalを主としたUbuntu開発チームってちゃんと仕事してますねぇ。Ubuntuがみんなに支持される訳が良くわかります)

« e4ratで高速起動 | トップページ | Arch LinuxをGPT + Grub2でインストールを行う »

Arch Linux」カテゴリの記事

コメント

コメントを書く

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

トラックバック

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

この記事へのトラックバック一覧です: NetworkManager とか日本語設定とか:

« e4ratで高速起動 | トップページ | Arch LinuxをGPT + Grub2でインストールを行う »