Archive for Gentoo

Gentoo with systemdでzabbix-agentd.confの指定がおかしい

net-analyzer/zabbix-2.2.0-r3のsystemd用起動ファイルにある設定ファイルの指定がおかしいかったので修正。

system # cd /usr/lib/systemd/system
system # diff zabbix-agentd.service zabbix-agentd.service.orig
9c9
< ExecStart=/usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
---
> ExecStart=/usr/sbin/zabbix_agentd

GDM-3.8.4-r2@GentooでOh no something has gone wrong!

いろいろとパッケージアップデートしたらGDMで「Oh no」画面が出てログインできずに。

とりあえずログを見る。

# cat /var/log/Xorg.0.log
・・・
[   184.547] (II) NOUVEAU(0): [XvMC] Extension initialized.
[   184.547] (==) NOUVEAU(0): DPMS enabled
[   184.547] (II) NOUVEAU(0): RandR 1.2 enabled, ignore the following RandR disabled message.
[   184.547] (--) RandR disabled
[   184.550] (EE) AIGLX error: dlopen of /usr/lib64/dri/nouveau_dri.so failed (libLLVM-3.1.so: cannot open shared object file: No such file or directory)
[   184.550] (EE) AIGLX: reverting to software rendering
[   184.550] (II) AIGLX: Screen 0 is not DRI capable
[   184.550] (EE) AIGLX error: dlopen of /usr/lib64/dri/swrast_dri.so failed (libLLVM-3.1.so: cannot open shared object file: No such file or directory)
[   184.550] (EE) GLX: could not load software renderer
[   184.550] (II) GLX: no usable GL providers found for screen 0
[   184.553] (II) NOUVEAU(0): NVEnterVT is called.
[   184.580] (II) NOUVEAU(0): Setting screen physical size to 677 x 381
[   184.580] resize called 2560 1440
・・・

どうやらlibLLVM-3.1.soの読み込みに失敗している模様。まずそれが存在しているか、またldconfigで検索できるか確認する。

# locate libLLVM-3.1.so
/usr/lib32/llvm/libLLVM-3.1.so
/usr/lib64/llvm/libLLVM-3.1.so
# ldconfig -p | grep libLLVM-3.1
(※なし)
#

存在はしているようだけど、ldconfigで検索できていないっぽい。
とりあえずld.so.confに追加する。(今回は /etc/ld.so.conf.d/05llvm.conf として追加した)
追加したあとにldconfigも忘れずに。

# cat /etc/ld.so.conf.d/05llvm.conf
/usr/lib32/llvm
/usr/lib64/llvm
# ldconfig

これでgdmをリスタートしたら直った。

# systemctl restart gdm

めでたし。

これはパッケージか何かのバグだろうか。
それとも何か設定が違っていたのだろうか。。。

Gentoo Linux ネットブート (pxelinux)

Gentoo Linuxのネットブート関連のメモ。squashfs+aufsでブートするまで。

いろいろなwebサイト (Gentoo Linux ドキュメント – Gentooを用いたディスクレスノード, Gentoo Wiki Archives – HOWTO_Gentoo_Diskless_Install, etc.) を参考に、GentooのPXEブートにトライしていたが、どうもうまく行かず。

手始めにGentoo LiveのCDからgentoo.igz, gentoo (カーネル), image.squashfs をコピーして、そいつらを使って

APPEND initrd=gentoo-live/gentoo.igz ip=dhcp loop=gentoo-live/image.squashfs looptype=squashfs root=/dev/ram0 real_root=/dev/nfs nfsroot=172.29.4.10:/server/tftp udev nodevfs dodmraid cdroot

的な感じにしてトライ。
が、ブートできない。nfsマウントまで行かなかった。順次追っていく。

まずネットワークにつながっていないようだった。なのでまず現在動いている3.8.4のkernelとinitramfsをコピーして、LiveCDのgentoo, gentoo.igzと置き換えてみた。ネットワークドライバ (e1000e と r8169も一応) もちゃんとinitramfsに入れて。

→しかし起動せず。

仕方ないのでinitramfsのinitスクリプト色々見つつ、パラメータを追っていくとどうやらip=パラメータを指定しているとネットワークの設定 (udhcpc) が走らないようだったので、 APPENDパラメータの ip=dhcp を消した。

→とりあえずDHCPとnfsマウントまでできた。

あとはsquashfs+aufsで起動するようにする。aufsのパッチがデフォルトではカーネルに入って無いのでemerge aufs3する。後はカーネル起動時のパラメータにaufsを追加してOK。最終的にpxelinux.cfg/default の指定は下みたいな感じになった。

KERNEL boot/kernel-genkernel-x86_64-3.8.4-gentoo
INITRD boot/initramfs-genkernel-x86_64-3.8.4-gentoo
APPEND loop=images/gentoo-20130405.squashfs looptype=squashfs root=/dev/ram0 real_root=/dev/nfs nfsroot=xxx.xxx.xxx.xxx:/server/tftp udev nodevfs dodmraid cdroot aufs

ip=dhcpがいらないということに気づくまではしばらくつまづいて時間を食った。

まぁともかく、これで晴れて自在なイメージファイルでGentooをネットブートできるようになりました。めでたしめでたし。

ibus+anthyのかな打ちで「ぼ」が打てない (「ほ゛」になる)

いつぞやか更新したタイミングから「ぼ」が打てなくなった。

かな打ちなので「ほ」キーの後に「゛」(濁点) キーを押して入力するんだけど、どうもそれが別々の文字として出力されてしまう。

まぁ「ぼ」ぐらいいいかと思ったら、「スナガラボ」が打てないことに気がつき結構こまった。仕方ない、直すか。

まずそもそも日本語入力まわりなんていじったことないので、この機能の不具合がanthyのものなのかibusなのか、ibus-anthyなのか、はたまたまったく別のソフトの役割かすらも分からないところからスタートに。

とりあえずAnthyのソースコード落としてそれっぽい所を探したが見当たらず。というかそもそも2009年から更新されていない (この不具合は結構最近からだったと思う) ようなので、ここではないと判断。

次にibus-anthy。一旦落としてみると、engineディレクトリにそれっぽいものが。

/usr/share/ibus-anthy/engine/tables.py

 (484行目付近から)
kana_voiced_consonant_no_rule = {
    u'か' : u'が',
    u'き' : u'ぎ',
    u'く' : u'ぐ',

    ・・・

    u'ふ' : u'ぶ',
    u'へ' : u'べ',
}

kana_semi_voiced_consonant_no_rule = {
    ・・・

おお、あった。「ほ→ぼ」が抜けている。ビンゴ。
ここに「ぼ」のエントリを入れる。

    ・・・
    u'ふ' : u'ぶ',
    u'へ' : u'べ',
    u'ほ' : u'ぼ',  # <- 追加
}
    ・・・

一応、pycとpyoを削除

cd /usr/share/ibus-anthy/engine; rm tables.pyc tables.pyo

これで無事に入力できるようになりました。

なんかgitで最新版落としても「ぼ」が欠落してることもあるし、ibus-anthyの中のひとに報告した方がいいのかなぁ。

Gentoo-Prefix上でMercurialのSSL関連エラー

Gentoo-Prefix@MacでMercurial使おうとしたら謎のエラー。

user@hogehoge ~/projects $ hg clone https://***.com/***
abort: Python SSL support not found

Python用のSSLが入っていないようだ。

とりあえずpythonをemerge -avしてみる。

taka@mobuild ~/projects $ emerge -av python

 * IMPORTANT: 3 news items need reading for repository 'gentoo_prefix'.
 * Use eselect news to read news items.

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R    ] dev-lang/python-3.3.0:3.3::gentoo [3.3.0:3.3::gentoo_prefix] USE="ipv6 ncurses readline sqlite* ssl threads xml -build -doc -examples -gdbm -tk -wininst" 0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB

おやおや、SSLフラグは入っている。おかしいなぁ。

と思ったらPython 3をemergeしていた。スロット分けされている2.7の方をemerge -avしてみると・・・

taka@mobuild ~/projects $ emerge -av "<=dev-lang/python-3.0"

 * IMPORTANT: 3 news items need reading for repository 'gentoo_prefix'.
 * Use eselect news to read news items.

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R    ] dev-lang/python-2.7.3-r2:2.7::gentoo [2.7.3-r2:2.7::gentoo_prefix] USE="aqua ipv6* ncurses readline* sqlite* ssl* threads (wide-unicode) xml (-berkdb) -build -doc -examples -gdbm -tk -wininst" 0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB

ビンゴ。sslフラグが入ってませんでした。

Gentoo Prefixはデフォルトではsslフラグ入って無いんですね。Python 3のほうは入ってるのに。まぁなんか事情があるんでしょう。

とりあえず無事にhg cloneできるようになりましたとさ。

 

ibus-anthy

ひさびさにemerge worldをしたあと、例のごとくいろいろと不具合が起こるわけですが。

今回は日本語入力にそれなりにハマる。これはもう英語で過ごせというお告げか。

さすがにそれは無理なのでとりあえず調べてみる。
ibus-daemonのログをとってみる。起動したままibusのバックエンドをAnthyとそうじゃないやつで切り替えてみる。

$ killall ibus-daemon
$ ibus-daemon -v
IBUS-Message: 22:06:40.512056: Engine xkb:us:altgr-intl:eng is already registered by other component
Traceback (most recent call last):
  File "/usr/share/ibus-anthy/engine/main.py", line 26, in <module>
    import ibus
ImportError: No module named ibus

どうやらibusのPythonモジュール読み込み失敗しているらしい。とりあえずemergeしてみる。

# emerge -av ibus
 * IMPORTANT: 8 news items need reading for repository 'gentoo'.
 * Use eselect news to read news items.

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R   ~] app-i18n/ibus-1.4.99.20121006  USE="X dconf gconf gtk gtk3 introspection nls python -deprecated {-test} -vala" 0 kB

pythonは入ってるから大丈夫なはずなんだけどなぁ、と思ったけどふと「-deprecated」が怪しく感じてonにしてemergeした。
そしたら無事ibus-anthy自体は動くようになった。
ここからさらに。なぜかGnome 3.6での「Zenkaku_Hankaku」キーがショートカットとして使えない。
いろいろと探すと、VineSeedにそれらしいパッチがあった。

http://riksun.riken.go.jp/archives/Linux/vine/VineSeed/SRPMS.main/gnome-settings-daemon-3.6.3-1vl7.src.rpm

こんなかにある「gnome-settings-daemon-3.6.3-input-source-switch-zenkaku-hankaku.patch」を当てるverのebuildを作成してre-emergeしてみたが、ダメだった。

仕方ないので、xbindkeysを使用して無理やり解決。

まず切り替えスクリプトの用意。
(/usr/sunaga-lab/bin/switch-ibus-method)

#!/bin/bash

ENGINE=`ibus engine`
if [ s$ENGINE != "santhy" ]; then
	ENGINE="anthy"
else
	ENGINE="xkb:jp::jpn"
fi
ibus engine $ENGINE

次にxbindkeysの設定。

$ emerge xbindkeys
   ...
$ cat .xbindkeysrc
"/usr/sunaga-lab/bin/switch-ibus-method"
  Mod2 + Zenkaku_Hankaku

あとは.xprofileにxbindkeysを追加して終わり。

とりあえず使えるようになった。初回だけちょっともたつくけど。仕方ない。