2010年2月10日水曜日

mlterm

utfのファイルが増えてきたせいで、ktermでutfのファイルを開いた時にターミナルが崩れるのが我慢出来なくなってきた。

なのでターミナルをmltermに変更する予定。そのtips。
FreeBSDでは以下の設定でいけるかと思います。

用意するファイル。
~/.mlterm/main
fg_color = white
bg_color = black
fontsize = 12
use_anti_alias = false
use_variable_column_width = false
use_multi_column_char = true
# not_use_unicode_font = true
input_method = none

~/.mlterm/font
ISO8859_1 = -mplus-gothic-medium-r-*-*-%d-*-*-*-*-*-iso8859-1;

~/.mlterm/aafon
ISO8859_1=Ume Gothic-iso8859-1;

以下コメント。

(0)そもそものマニュアルは以下にある。
http://mlterm.sourceforge.net/README.ja

(1)ファイルの最後は必ず改行で終るように。改行が無いと、最後の行の解析が上手く行かないかんじ。

(2)フォントの設定はiso8859だけ設定しておけば、上手くやってくれる様子。
不安だったら、「not_use_unicode_font = true」を有効設定するのもあり。

(3) フォントの設定は、xfontselおよびfc-listで見つける。アンチエイリアスを有効にするフォントは、fc-listで見つける。上のaafontの設定は「梅ゴシック,Ume Gothic:style=Regular」を有効にする為に、「,」の後ろのフォント名に、(ascii)のエンコーディングの「-iso8859-1」を付けて設定している。
ちなみに、xfd -fa ”フォント名”で、そのフォントが持っている文字を見ることが可能。

(4) コンソール上で「Ctrl + 右クリック」するとmltermの設定画面が出てきます。ただし、設定可能なのは本当に一部だけです。

2009年10月10日土曜日

FreeBSD 8.0 無線LAN(wpi)の状況

/usr/src/UPDATINGの20080420のエントリーを見たら、そもそも無線LANは、直接デバイスを使わずwlanデバイス経由で使う設定になったみたい。CURRENTでは1年以上前からそうだったみたいですなぁ。

とりあえず無線LANは使えているが、よく切れる。
/var/log/messageを見ると以下のようなメッセージが出ている。


Oct 10 15:17:24 rx kernel: Beacon miss: 20 >= 7
Oct 10 15:17:24 rx kernel: Beacon miss: 21 >= 7
Oct 10 15:17:24 rx kernel: wpi_newstate: RUN -> ASSOC flags 0x0
Oct 10 15:17:24 rx kernel: wlan0: link state changed to DOWN
Oct 10 15:17:24 rx kernel: Beacon miss: 22 >= 7
Oct 10 15:17:24 rx kernel: Beacon miss: 23 >= 7
...


再接続するまで、missの後の数字がひたすら増えて行き、/var/log/messagesを食い付くしてしまいとっても不便です。とりあえず、「ifconfig wlan0 wepmode on」を実行しておいて、その場しのぎをしているのだけど。何が問題なのでしょう。

2009年10月9日金曜日

FreeBSD 8.0 無線LAN(wpi)の設定

無線LANがwpiデバイスなのだが、FreeBSD 8.0-stableにしたら、上手く使えなかった。

manを見つつ、よくわからないまま、wlan デバイスを作成して、そちらを使うと上手く通信出来たので、とりあえずメモしておく。

マジメに使い方を確認しておいた方が良いなぁ。

こんな感じ。今迄wpiに直接設定していたのを、wlan経由に変更する感じか?

ifconfig wlan0 create wlandev wpi0 ssid
ifconfig wlan0 weptxkey 1 wepkey 1:
ifconfig wlan0 wepkey
ifconfig wlan0 wepmode on
ifconfig wlan0 inet 192.168.0.1 netmask 255.255.255.0
route add default 192.168.0.254


本当に、訳がわからんままに設定しているので、変な記述かも。
とりあえず通信出来ているので良いことにする。

2009年9月16日水曜日

ユーザ権限でgemをインストール

gemをインストールするにあたって、ユーザ権限でインストールしている。
ユーザ権限でインストールを行なうと、~/.gem配下にインストールされる。

pure rubyのgemの場合には問題無くインストール出来るが、sqlite3-rubyをイ
ンストールする際に、2点程注意点があるので、その備忘録。

なにも考えず、以下のコマンドだとインストールエラーとなった。

gem install


結論から言うと、以下のコマンドでインストール出来た。

env RB_USER_INSTALL= gem install sqlite3-ruby -- \
--with-sqlite3-include=/usr/local/include \
--with-sqlite3-lib=/usr/local/lib


そもそも、sqlite3-rubyはpure rubyのコードでは無く、C言語のソースをコン
パイルしてOSネイティブのライブラリを作成して、インストールされている。

sqlite3-rubyについては、extconf.rbを実行することで、Makefileを作成して、
コンパイルを実施している。他のOSネイティブのライブラリを用意するgemも、
多くはextconf.rbを使用していると思われるので、同様の手順で実施可能であ
ろう。

ライブラリの指定


対象gem固有のextconf.rbオプションの設定について。

gem install sqlite3-ruby -- \
--with-sqlite3-include=/usr/local/include \
--with-sqlite3-lib=/usr/local/lib


gem installをそのまま指定した場合、sqliteのライブラリを見つけることが
出来なかった。~/.gem/ruby/1.8/gems/sqlite3-ruby-1.2.5/README.txtにやり
かたその物が記載されていたので、それを参考に実施。

gem installの引数に、「--」で区切って、extconf.rbに渡す引数を指定する
のがミソのようだ。

ユーザ権限でインストール


extconf.rbを用いてユーザ権限でインストールする方法について。

env RB_USER_INSTALL= gem install 。。。


FreeBSDのextconf.rbはデフォルトではインストール時に、インストールファ
イルをroot権限に変更しようとする。その為、ユーザ権限でインストールしよ
うとしても、ファイルをroot権限に変更出来ないのでエラーとなる。
環境変数 RB_USER_INSTALL を設定してあげれば、ユーザ権限でインストール
が可能になるので、コマンドラインでenvを用いて指定してあげる。

2009年9月13日日曜日

mv: set flags (was: 00000000): Invalid argument

security run outputエラー


FreeBSDで日々送付されるsecurity run output内に、気になるメッセージ
が。。。

mv: /var/log/setuid.today: set flags (was: 00000000): Invalid argument


どうも、ZFSのバージョンによるが、UFS領域からZFS領域にファイルをmvする
とこのメッセージが発生するようです。

私の環境は、ルートがUFSでそれ以外はZFSという設定で、security run
output内のcheck_diff関数で/tmp(UFS)から/var/log(ZFS)にファイルをコピー
するので、上記のメッセージが出ている。

FreeBSDでは、zfsのバージョンは現在3、zpoolのバージョンは現在13となってい
る。私の環境だと、zfs:1/zpool:6となっていて結構古い。これが原因のよう。

(参照) http://www.mail-archive.com/freebsd-stable@freebsd.org/msg104840.html

とりあえずエラーは出るけど、動いてはいるようなので、無視してます。

zfsやzpoolのバージョンを上げれば問題無いみたいだから、上げるのか吉かと。


このmvはどこで呼ばれている?


mvは/etc/periodic/security/security.functionsのcheck_diff関数で使用さ
れています。
check_diff関数は/etc/periodic/security/配下の各ファイルで使われている
みたい。

2009年9月12日土曜日

bsnmpd

bsnmpdツールのインストール。



net-mgmt/bsnmptoolsをインストールすることで、bsnmpwalkを使えるようになる。

/etc/snmpd.configの編集


方針としては、「trapやwriteを無効」「MIBは可能な限り有効」。

@@ -6,18 +6,18 @@
#
# Set some common variables
#
-location := "Room 200"
-contact := "sysmeister@example.com"
+location := "mobile"
+contact := "秘密"
system := 1 # FreeBSD
-traphost := localhost
-trapport := 162
+# traphost := localhost
+# trapport := 162

# Change this!
-read := "public"
+read := "秘密"
# Uncomment begemotSnmpdCommunityString.0.2 below that sets the community
# string to enable write access.
-write := "geheim"
-trap := "mytrap"
+# write := "geheim"
+# trap := "mytrap"

#
# Configuration
@@ -50,9 +50,9 @@
begemotSnmpdLocalPortType."/var/run/snmpd.sock" = 4

# send traps to the traphost
-begemotTrapSinkStatus.[$(traphost)].$(trapport) = 4
-begemotTrapSinkVersion.[$(traphost)].$(trapport) = 2
-begemotTrapSinkComm.[$(traphost)].$(trapport) = $(trap)
+# begemotTrapSinkStatus.[$(traphost)].$(trapport) = 4
+# begemotTrapSinkVersion.[$(traphost)].$(trapport) = 2
+# begemotTrapSinkComm.[$(traphost)].$(trapport) = $(trap)

sysContact = $(contact)
sysLocation = $(location)
@@ -74,10 +74,10 @@
#
# Netgraph module
#
-#begemotSnmpdModulePath."netgraph" = "/usr/lib/snmp_netgraph.so"
-#
-#%netgraph
-#begemotNgControlNodeName = "snmpd"
+begemotSnmpdModulePath."netgraph" = "/usr/lib/snmp_netgraph.so"
+
+%netgraph
+begemotNgControlNodeName = "snmpd"

#
# pf(4) module
@@ -88,10 +88,10 @@
# Host resources module
# This requires the mibII module.
#
-#begemotSnmpdModulePath."hostres" = "/usr/lib/snmp_hostres.so"
+begemotSnmpdModulePath."hostres" = "/usr/lib/snmp_hostres.so"

#
# Bridge module
# This requires the mibII module.
#
-#begemotSnmpdModulePath."bridge" = "/usr/lib/snmp_bridge.so"
+begemotSnmpdModulePath."bridge" = "/usr/lib/snmp_bridge.so"


bsnmpdの起動。


/etc/rc.confに「bsnmpd_enable="YES"」の行を追加して、

# sudo /etc/rc.d/bsnmpd start

を実行することにより、起動。

bsnmpwalkでの動作確認


OIDを文字列にする為に、「-i」オプションでdefファイルを設定。
絶対パスで指定するのが基本みたいだけど、デフォルトでは
「/usr/share/snmp/defs」を検索してくれるので、ファイル名のみを「-i」で
複数する。

bsnmpwalk -i atm_freebsd.def -i hostres_tree.def -i pf_tree.def -i atm_tree.def -i mibII_tree.def -i tree.def -i bridge_tree.def -i netgraph_tree.def -s ”秘密”@localhost


現在有効なOIDの行数を確認すると、9056行だった。

hrProcessorLoad(1.3.6.1.2.1.25.3.3.1.2)


どうもhrProcessorLoadは上手く取得出来ない様子。
(参考) http://www.mail-archive.com/freebsd-stable@freebsd.org/msg100522.html

ここから特に話は進んでない様子。

2009年7月5日日曜日

/usr on zfs

FreeBSDのroot以外をzfsで構築している。
昨日(2009/07/05)のcsupでソースをアップデートした所、
make installworldでこけた。

理由はinstallコマンドでschgが設定される為エラーになった。
zfsはFreeBSDのファイルフラグに対応していない為。

make installworld -DNO_FSCHG

でファイルフラグが付くのを回避出来た。
(参照) /usr/share/mk/bsd.lib.mk と bsd.prog.mk