Kenichi Maehashi's Blog

脳内コアダンプ

RSS
Category: Linux
特に NAPT を噛ませながら PPP over GRE over IP とかやると、ルータの NAPT タイマの影響か、しばらく使わないでいると接続が落ちていることが多々ある。
個人的には、
lcp-echo-interval 10
lcp-echo-failure 3
にして、さらに必要なら死活監視 + 自動再起動するのがアツいソリューションということで落ち着いた。

(追記)
PPTP は 1 分おきに Echo Request を送信しているのですが、これは PPTP の Control Connection (tcp/1723) の接続を keep-alive してくれるだけで、gre の方はやはり自分で面倒を見ないとダメみたい(NAPT が噛んでおり、NAPT タイマの時間以上 PPP 通信が行われないタイミングが存在する場合)。
一方、接続が不安定な場合は lcp-echo-failure が 3 程度では頻繁に切断してしまうケースもあるので、ここらへんは要 tuning ですね。
Category: Linux
CentOS 5.5 でも、5.4 に引き続き asix.ko モジュールが壊れているようで、インタフェースとしては認識するもののパケットを受信することができません。
対策として、ASIX からリリースされている公式のドライバをインストールします。
また、CentOS の kernel-headers に付属の usbnet.h が(何故か)空ファイルなので、こちらも手動で持ってくる必要があるようです。

以下、全部コピー & ペーストすれば動きます。
# ASIX AX88178 Driver - http://www.asix.com.tw/download.php?sub=driverdetail&PItemID=84
DRIVER_NAME=AX88772A_760_772_178_LINUX2.6.31_Driver_v2.5.0_Source
KERNEL_VERSION=linux-2.6.18

mkdir -p /usr/local/src/ax88178
cd /usr/local/src/ax88178
wget "http://www.asix.com.tw/FrootAttach/driver/${DRIVER_NAME}.zip"
unzip ${DRIVER_NAME}.zip
cd ${DRIVER_NAME}

wget "http://www.jp.kernel.org/pub/linux/kernel/v2.6/${KERNEL_VERSION}.tar.bz2"
tar xjfo ${KERNEL_VERSION}.tar.bz2 ${KERNEL_VERSION}/drivers/usb/net/usbnet.h
mv ${KERNEL_VERSION}/drivers/usb/net/usbnet.h .
rm ${KERNEL_VERSION} -rf

cp -a asix.c asix.c.orig
patch << '_EOF_'
--- asix.c.orig 2008-11-06 18:17:36.000000000 +0900
+++ asix.c 2009-12-16 16:18:44.000000000 +0900
@@ -40,16 +40,16 @@
#include <linux/crc32.h>

#include "asix.h"
-//#include "usbnet.h"
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
-#include <../drivers/usb/net/usbnet.h>
-#else
-# if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25)
-#include <../drivers/net/usb/usbnet.h>
-#else
-#include <linux/usb/usbnet.h>
-#endif
-#endif
+#include "usbnet.h"
+//#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
+//#include <../drivers/usb/net/usbnet.h>
+//#else
+//# if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25)
+//#include <../drivers/net/usb/usbnet.h>
+//#else
+//#include <linux/usb/usbnet.h>
+//#endif
+//#endif

/* ASIX AX8817X based USB 2.0 Ethernet Devices */
_EOF_

make
rmmod asix
make install
modprobe asix
カーネルをアップデートすると今回コンパイルした asix.ko は使えなくなりますので、yum で kernel パッケージを更新しても grub.conf の default を現在使用している kernel のままにする設定をしておきます。これは /etc/sysconfig/kernel ファイルの UPDATEDEFAULT パラメータを yes から no に変更するだけです。
本来であれば weak-module にしたいのですが、CentOS 自体に(壊れた) asix.ko が含まれているため、weak-update することができません。なにかうまい方法あれば教えてください。
Category: Linux
追記: MACADDR= と書けば良いようでした。以下の処置は不要です。

ifconfig コマンドで Ethernet デバイスの MAC アドレスを静的に割り当てることができる(ifconfig eth0 hw ether 11:22:33:44:55:66)が、それを永続化(再起動後も保持)したい場合。
色々調べたのですがあんまり良い感じの答えが出なかったので、/etc/sysconfig/network-scripts/ifcfg-eth0 に
DEVICE=eth0
... snip ...
# 偽装したい MAC アドレスを HWADDR に書く
HWADDR=11:22:33:44:55:66
# MAC アドレスを変更する
if [ $(cat /sys/class/net/${DEVICE}/address) != $(awk "BEGIN{print tolower(\"${HWADDR}\")}") ]; \
then ifconfig ${DEVICE} hw ether ${HWADDR}; fi
とか書いてしまった。

上記の設定を書く場合は、ifdown 後にコンソールで行うか、あるいは、手動で MAC アドレスを変更した後に行ってください。MAC アドレスを偽装していない up 状態で上記の設定を行うと、MAC アドレスと ifcfg-eth0 の HWADDR が食い違うため、ifdown できなくなります。

あと、Kudzu が動いていると残念なことになるかもしれませんのでご注意を。
Category: Other
ソフトサラダ * (砂糖 + 塩 + 味の素) =~ ハッピーターン

というのが twitter で話題になっていたのでやってみた。参考: 貴方も出来る自家製ハッピーターンの作り方

結果、こんな感じのビジュアルになりました。贅沢な粉の量。おいしいけど不健康。

# ちょっとした経緯で Casio EXILIM EX-Z400 というコンデジを手に入れたので、珍しく写真上げてみた。

ハッピーターン好きな皆さん是非お試しを。
Category: Linux
CentOS 5.5 のリリースノート, RHEL 5.5 のリリースノート

自分の興味ポイントをメモ。

* Kickstart ファイルが認証の必要な FTP サーバに置かれていても取得できるようになった (まだどういうインタフェースなのかは試してない)
* KVM における VT-d 利用時の性能向上
* GDB 7.0.1 (reverse debugging ができるはず)
* FreeRADIUS 2.0 系の追加 (まだ試してない。新機能、unlang 言語など。1.0 系と同時インストールは不可)
* Samba 3x (リリースサイクルが変わったからこういうパッケージ名になっているのだと思う。現時点では 3.4 系か。Windows 7 サポート)
* tunctl パッケージの追加 (今までは EPEL から持ってきてたので便利になった)