Universal Media Server Build memo


* git clone https://code.google.com/p/universal-media-server/
* git clone https://github.com/UniversalMediaServer/UniversalMediaServer.git
* src/main/java/net/pms/network/UPNPHelper.java の public class UPNPHelper の sendAliveのdelay間隔を好きなように調整

mvn com.savage7.maven.plugins:maven-external-dependency-plugin:resolve-external
mvn com.savage7.maven.plugins:maven-external-dependency-plugin:install-external
mvn clean package

yum-plugin-priorities

CentOSを触る度にわすれるのでメモ

yum-plugin-priorityのデフォルト値は99のようなので、epelとかのrepo設定にpriority=100と書いとくだけで、優先度さがります

vagrant


* vagrantメモ
* http://www.vagrantbox.es/

% gem install vagrant
% vagrant box add centos64 http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130309.box
% mkdir -pv ~/work/vagrant/centos64
% cd ~/work/vagrant/centos64
% vagrant init centos64
% vagrant up
% vagrant ssh-config --host vagrant-vm >> ~/.ssh/config
% ssh vagrant-vm
% vagrant halt

systemd-197 から network interface名が変なのにrenameされる


* http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames
* 従来の予測不可能なカーネル名では問題がある場合があり、インターフェース名がどのデバイスを指してるのかをよりはっきりさせるためにとった選択なんですね
* biosdevnameとは違うようだ
* どんな名前になるのか知りたいときは、こうするといいようです[root@joker ~]# udevadm test-builtin net_id /sys/class/net/eth2
calling: test-builtin
=== trie on-disk ===
tool version: 197
file size: 5463680 bytes
header size 80 bytes
strings 1228112 bytes
nodes 4235488 bytes
load module index
ID_NET_NAME_MAC=enx0002a54ecb0d
ID_OUI_FROM_DATABASE=Hewlett-Packard Company
ID_NET_NAME_PATH=enp7s0f1
unload module index

* 従来通りのethXが使いたければln -s /dev/null /etc/udev/rules.d/80-net-name-slot.rulesしとくと良いみたい

freenxのセッションを復活


* freenxで、サスペンドしているセッションに再接続しにいっても、新しいセッションが始まってしまうことがあります
* nxserver –list でみると、もう居なくなってるけど、nxagentのプロセスはまだ残っている
* こういう場合、/var/lib/nxserver/db/failed や /var/lib/nxserver/db/closed の下にいる該当するセッションのファイルを /var/lib/nxserver/db/runningに移動して、status=の行をSuspendedに書き換えてあげるとresumeできるかもしれません

KDE4のnepomukとakonadiを停止


====== nepomuk ======
* ~/.kde4/share/config/nepomukserverrcを編集
[Basic Settings]
Start Nepomuk=false

* ~/.kde4/share/config/kdedrcを編集
[Module-nepomuksearchmodule]
autoload=false

====== akonadi ======
* ~/.config/akonadi/akonadiserverrcを編集
[QMYSQL]
StartServer=false

* akonadictl stop とすると今動いているものが止まります

FreeNXでつないだ時にフォントが表示されないものがある


* cairo-1.12.xが原因のようです
* https://wiki.archlinux.org/index.php/FreeNX#Broken_resume_with_Cairo_1.12.x にあるように、 /etc/nxserver/node.confの設定を AGENT_EXTRA_OPTIONS_X="-norender"とすればフォントは表示されるようになりますが、描画がよろしくない状態は変わりません。
* http://arm.konnichi.com/search/index.php?a=64&q=%5Ecairo%24&extra=1&community=1&community-testing=1 から cairo-1.10.2-3-x86_64.pkg.tar.xzを取得し、pacman -U ./cairo-1.10.2-3-x86_64.pkg.tar.xzとしてcairoをダウングレードし、様子を見ることにします
* /etc/pacman.confにIgnorePkg = cairoを設定するのを忘れずに。

grub2とUUID


* 標準だとgrub2はファイルシステムのUUIDを元にどのデバイスかを区別しており、このままだと複製したbackup diskから起動しようとした時にそのUUIDのファイルシステムがのったデバイスがないといってrescue modeに落ちてしまいます。
* そこでUUIDで区別しないようにgrub2を設定してみます
====== grub2からuuidを排除 ======
* /etc/default/grubの#GRUB_DISABLE_LINUX_UUID=trueをコメントアウト
* 以下のパッチを当てる
[root@archlinux-proxmox grub]# diff -ur /usr/share/grub/grub-mkconfig_lib /backup/usr/share/grub/grub-mkconfig_lib
--- /usr/share/grub/grub-mkconfig_lib 2012-08-07 22:24:23.649377433 +0900
+++ /backup/usr/share/grub/grub-mkconfig_lib 2012-08-07 22:24:38.432711843 +0900
@@ -146,20 +146,20 @@
done
fi

- # If there's a filesystem UUID that GRUB is capable of identifying, use it;
- # otherwise set root as per value in device.map.
- fs_hint="`"${grub_probe}" --device "${device}" --target=compatibility_hint`"
- if [ "x$fs_hint" != x ]; then
- echo "set root='$fs_hint'"
- fi
- if fs_uuid="`"${grub_probe}" --device "${device}" --target=fs_uuid 2> /dev/null`" ; then
- hints="`"${grub_probe}" --device "${device}" --target=hints_string 2> /dev/null`" || hints=
- echo "if [ x$feature_platform_search_hint = xy ]; then"
- echo " search --no-floppy --fs-uuid --set=root ${hints} ${fs_uuid}"
- echo "else"
- echo " search --no-floppy --fs-uuid --set=root ${fs_uuid}"
- echo "fi"
- fi
+# # If there's a filesystem UUID that GRUB is capable of identifying, use it;
+# # otherwise set root as per value in device.map.
+# fs_hint="`"${grub_probe}" --device "${device}" --target=compatibility_hint`"
+# if [ "x$fs_hint" != x ]; then
+# echo "set root='$fs_hint'"
+# fi
+# if fs_uuid="`"${grub_probe}" --device "${device}" --target=fs_uuid 2> /dev/null`" ; then
+# hints="`"${grub_probe}" --device "${device}" --target=hints_string 2> /dev/null`" || hints=
+# echo "if [ x$feature_platform_search_hint = xy ]; then"
+# echo " search --no-floppy --fs-uuid --set=root ${hints} ${fs_uuid}"
+# echo "else"
+# echo " search --no-floppy --fs-uuid --set=root ${fs_uuid}"
+# echo "fi"
+# fi
}

grub_get_device_id ()

* grub-install /dev/sda

====== backupディスクにgrubを書き込む ======
* 以下のような状況の場合を説明しています
* mount /dev/sdb3 /backup
* mount /dev/sdb1 /backup/boot
* mount -t proc proc /backup/proc
* mount –bind /dev /backup/dev
* chroot /backup
* grub-install /dev/sdb

====== grub rescueモードでの操作 ======
* ls
* ls (hd0,msdos1)/grub
* set prefix=(hd0,msdos1)/grub
* insmod (hd0,msdos1)/grub/i386-pc/normal.mod
* normal

dd中の進行状況を表示


* ddにUSR1シグナルを送ると進行状況を表示してくれるのはmanに書いてあるのでご存知だと思います。
* それをいちいち手でやるのが面倒なので、スクリプトにしてみました
#!/bin/sh
while :
do
ps axuw| fgrep 'dd if=' | grep -v grep | awk '{print $2}' | xargs -i% sh -c 'kill -USR1 %'
sleep 1
done