2012年4月28日土曜日

Autorun無効化

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Cdrom
AutoRun 1→0

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
NoDriveTypeAutoRun 91(145)→b5(181)

USBやSDカードの実行もとめる。
※再起動が必要

さらにAutorun.infの実行を行わないようにするためには下記のレジストリを追加する。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\Autorun.inf]
@="@SYS:DoesNotExist"
引用元
http://pctrouble.lessismore.cc/running/cancel_autorun.html

メモリと悪戦苦闘

10.03.1のfinalバージョンに入れ替えたMZK-W04NUですが、ハード的な面でどうしても非力なとこで無理をしてもいいことは無いのでいろいろと最小限で行って言う項と思っています。

簡単に使用できるので環境としては申し分ないので実用的な範疇を目標に。

WEBサーバー

HTTPサーバーとしてはApacheを動かしたかったのですが、やはり消費リソースが大きいことと、現状のバージョンではスーパーデーモン配下で動作しなくなっているのでプロセス数などを制限しても使用してないときにもある程度のメモリ消費があるので組み込み系のサーバーとしては現実的ではないようです。

phpもperlもuhttpdで動作するので個人使用であればと割り切ってuhttpdの使用を試しています。

USBカメラ

ライブ感覚で使用するのはmjpg-streamerが手軽なのですが、どうしてもその他の処理を行いたいときはmotionを使用するほかは選択肢が無いようです。
motionの問題点としては解像度を上げてしまうと消費メモリが肥大化するのとCPUに負荷をかけることになるので解像度もfpsも抑えて設定したほうが良いようです。

ファイルサーバー

ファイルサーバーとしてはsambaとftpを考えています。
sambaはwindowsから手軽にファイルアクセスが可能なのでいりぐちだけでもと思ってスーパーデーモン配下で動作させて見ましたが、ほかのサーバーも統括できそうにないので現状はスタンドアローンで。
xinetdの弊害としては接続時のレスポンスが悪くなるのですが、使用していないときのメモリの開放が行われるのでwindowsクライアントがいなくなればほとんどのプロセスが自動的に終了していきました。
ftpに関してはproftpを使ってみようと思っているのですが、いままでまともに接続できたことが無いのでそろそろ本格的に設定してみようかと思っているだけで終わっています。

データベース

データベースを動かす余力があればとおもってpostgreSQLをインストールしていますが実用で気ではない予感でいっぱいです。

2012年4月20日金曜日

10.03.1-rc6から10.03.1(ファイナルバージョン)に入れ替えてみました。
今回もMZKW04NUに対してはまずはLuciからフラッシュの書き換えを行った。
これらはインストール前と後とののopkgの状態。
まずはrootのoverlayをかける前の環境を整えてから。
10.03.1-rc6 10.03.1
base-files - 43.29-r28680 base-files - 43.32-r29592
block-extroot - 0.0.1-2.1
block-hotplug - 0.1.0-2.1
block-mount - 0.1.0-2.1
busybox - 1.15.3-3.1 busybox - 1.15.3-3.4
crda - 1.1.1-1 crda - 1.1.1-1
dnsmasq - 2.55-6 dnsmasq - 2.55-6.1
dropbear - 0.53.1-4 dropbear - 0.53.1-5
e2fsprogs - 1.41.11-1
fdisk - 2.13.0.1-4
firewall - 2-34.6 firewall - 2-34.8
hotplug2 - 1.0-beta-3 hotplug2 - 1.0-beta-3
iptables - 1.4.6-3.1 iptables - 1.4.6-3.1
iptables-mod-conntrack - 1.4.6-3.1 iptables-mod-conntrack - 1.4.6-3.1
iptables-mod-nat - 1.4.6-3.1 iptables-mod-nat - 1.4.6-3.1
iw - 0.9.22-2 iw - 0.9.22-2
kernel - 2.6.32.27-1 kernel - 2.6.32.27-1
kmod-ath - 2.6.32.27+2011-09-14-1 kmod-ath - 2.6.32.27+2011-11-15-1
kmod-ath9k - 2.6.32.27+2011-09-14-1 kmod-ath9k - 2.6.32.27+2011-11-15-1
kmod-ath9k-common - 2.6.32.27+2011-09-14-1 kmod-ath9k-common - 2.6.32.27+2011-11-15-1
kmod-button-hotplug - 2.6.32.27-1 kmod-button-hotplug - 2.6.32.27-1
kmod-cfg80211 - 2.6.32.27+2011-09-14-1 kmod-cfg80211 - 2.6.32.27+2011-11-15-1
kmod-crc-ccitt - 2.6.32.27-1 kmod-crc-ccitt - 2.6.32.27-1
kmod-crypto-aes - 2.6.32.27-1 kmod-crypto-aes - 2.6.32.27-1
kmod-crypto-arc4 - 2.6.32.27-1 kmod-crypto-arc4 - 2.6.32.27-1
kmod-crypto-core - 2.6.32.27-1 kmod-crypto-core - 2.6.32.27-1
kmod-fs-ext3 - 2.6.32.27-1
kmod-fs-mbcache - 2.6.32.27-1
kmod-input-core - 2.6.32.27-1 kmod-input-core - 2.6.32.27-1
kmod-input-gpio-buttons - 2.6.32.27-1 kmod-input-gpio-buttons - 2.6.32.27-1
kmod-input-polldev - 2.6.32.27-1 kmod-input-polldev - 2.6.32.27-1
kmod-ipt-conntrack - 2.6.32.27-1 kmod-ipt-conntrack - 2.6.32.27-1
kmod-ipt-core - 2.6.32.27-1 kmod-ipt-core - 2.6.32.27-1
kmod-ipt-nat - 2.6.32.27-1 kmod-ipt-nat - 2.6.32.27-1
kmod-ipt-nathelper - 2.6.32.27-1 kmod-ipt-nathelper - 2.6.32.27-1
kmod-leds-gpio - 2.6.32.27-1 kmod-leds-gpio - 2.6.32.27-1
kmod-mac80211 - 2.6.32.27+2011-09-14-1 kmod-mac80211 - 2.6.32.27+2011-11-15-1
kmod-nls-base - 2.6.32.27-1 kmod-nls-base - 2.6.32.27-1
kmod-ppp - 2.6.32.27-1 kmod-ppp - 2.6.32.27-1
kmod-pppoe - 2.6.32.27-1 kmod-pppoe - 2.6.32.27-1
kmod-scsi-core - 2.6.32.27-1
kmod-usb-core - 2.6.32.27-1 kmod-usb-core - 2.6.32.27-1
kmod-usb-ohci - 2.6.32.27-1 kmod-usb-ohci - 2.6.32.27-1
kmod-usb-storage - 2.6.32.27-1
kmod-usb2 - 2.6.32.27-1 kmod-usb2 - 2.6.32.27-1
libblkid - 1.41.11-1
libc - 0.9.30.1-43.29 libc - 0.9.30.1-43.32
libext2fs - 1.41.11-1
libgcc - 4.3.3+cs-43.29 libgcc - 4.3.3+cs-43.32
libip4tc - 1.4.6-3.1 libip4tc - 1.4.6-3.1
libiwinfo - 16 libiwinfo - 18

libiwinfo-lua - 18
liblua - 5.1.4-7 liblua - 5.1.4-7
libnl-tiny - 0.1-1 libnl-tiny - 0.1-1
libpthread - 0.9.30.1-43.29
librt - 0.9.30.1-43.29
libuci - 12012009.6-4 libuci - 12012009.7-4
libuci-lua - 12012009.6-4 libuci-lua - 12012009.7-4
libuuid - 1.41.11-1
libxtables - 1.4.6-3.1 libxtables - 1.4.6-3.1
lua - 5.1.4-7 lua - 5.1.4-7
luci - 0.10+svn7852-1 luci - 0.10.0-1
luci-app-firewall - 0.10+svn7852-1 luci-app-firewall - 0.10.0-1
luci-i18n-english - 0.10+svn7852-1 luci-i18n-english - 0.10.0-1
luci-lib-core - 0.10+svn7852-1 luci-lib-core - 0.10.0-1
luci-lib-ipkg - 0.10+svn7852-1 luci-lib-ipkg - 0.10.0-1
luci-lib-lmo - 0.10+svn7852-1 luci-lib-lmo - 0.10.0-1
luci-lib-nixio - 0.10+svn7852-1 luci-lib-nixio - 0.10.0-1
luci-lib-sys - 0.10+svn7852-1 luci-lib-sys - 0.10.0-1
luci-lib-web - 0.10+svn7852-1 luci-lib-web - 0.10.0-1
luci-mod-admin-core - 0.10+svn7852-1 luci-mod-admin-core - 0.10.0-1
luci-mod-admin-full - 0.10+svn7852-1 luci-mod-admin-full - 0.10.0-1
luci-proto-core - 0.10+svn7852-1 luci-proto-core - 0.10.0-1
luci-proto-ppp - 0.10+svn7852-1 luci-proto-ppp - 0.10.0-1
luci-sgi-cgi - 0.10+svn7852-1 luci-sgi-cgi - 0.10.0-1
luci-theme-base - 0.10+svn7852-1 luci-theme-base - 0.10.0-1
luci-theme-openwrt - 0.10+svn7852-1 luci-theme-openwrt - 0.10.0-1
mtd - 13 mtd - 13
opkg - 576-2 opkg - 576-2
ppp - 2.4.4-16.1 ppp - 2.4.4-16.1
ppp-mod-pppoe - 2.4.4-16.1 ppp-mod-pppoe - 2.4.4-16.1
swconfig - 9 swconfig - 9
uci - 12012009.6-4 uci - 12012009.7-4
udevtrigger - 106-1 udevtrigger - 106-1
uhttpd - 23.3 uhttpd - 28
wireless-tools - 29-4 wireless-tools - 29-4
wpad-mini - 20110527-1 wpad-mini - 20111103-2

2012年4月11日水曜日

Vistaからsambaへ接続できない

samba3でも同様なようですが、原因はVistaからLAN Manager認証レベルのデフォルト値がXP以前と異なっているために接続できなくなっているようです。
コントロールパネル→管理ツール→ローカルセキュリティー ポリシー
ローカルポリシー/セキュリティー オプションのネットワーク セキュリティ: LAN Manager認証レベルのプロパティーを「NTLN応答のみ送信する」よりもセキュリティーを低くする必要があるようです。

Windows Vista から Samba 2.2 系列以前へ接続できない

いままでVistaでアクセスできないことがあったのですが、稀に接続できたこともあったのでSamba側の設定がおかしいのかとも思ったのですが、こんなところも変化があったんですね。

2012年4月10日火曜日

suが一般ユーザーで使えない

何度やっても、rootグループに追加しても一般ユーザーからrootにスイッチできない。
siriuth@mzkw04u:/tmp$ su
Password:
su: incorrect password
siriuth@mzkw04u:/tmp$

エラーメッセージで検索したところLinuxではいくつかの制御が行われているらしい。
http://www.atmarkit.co.jp/fsecurity/rensai/unix_sec04/unix_sec01.html
一つは0(wheel)グループに所属しないとsuコマンドで拒否される方法。エラーは下記のようになるようだ。
su: you are not listed in the correct secondary group (wheel) to su root.
この場合は使用したいユーザーをグループに所属させるだけ。
エラーの内容が違うがとりあえず/etc/groupを編集しrootグループにユーザーを追加させてみたがだめ、デーモンの再起動ということでリブートしてみたけどやっぱりダメでした。
もう一つはPAM(Pluggable Authentication Module)という仕組みがあるらしく、こちらでは細かい制限が行われるようだ。が、OpenWrtにそれらしいパッケージも無く、それらしいモジュールも組み込まれていない様子。

再度検索してみたところOpenWrtのフォーラムでも上がっていた。
https://forum.openwrt.org/viewtopic.php?pid=91779
実際の解決策はbusyBoxのリコンパイルが有力だが、最後に全く違う視点のアプローチ
ssh 127.0.0.1 -l root
という考え方。
ありといえばありだがちょっと残念?

ハードウェアリセットがかかる

負荷テストをやっているわけではないが、どうもメモリを使い切ったときにハングアップ状態に陥って最終的にリセットがかかっているように思える現象に陥った。
ターミナルでファイルが2948個程度のディレクトリ(backfireのpackagesフォルダ)を ls -l で表示させて落ちたので気になったので何度か行ったが再現しやすかった。

ためしにswapをオンにしたりオフにしたり切り替えてみたが状況はあまり変わらず。

最初はLuciのステータスの概要でメモリー状況を確認していたが、別のターミナルでtopでみていると、lsコマンドで47%のメモリを消費していることが瞬間的に確認ができた。
1回だけlsコマンドを実行後しばらく経ってから
Killed
という表示が行われて強制的に実行が打ち切られた感じにはなったものの、その直後にlsコマンドを実行してみるとやはりハングアップ後リセットがかかった。

直接的なのか間接的なのかログが残されていないので空想の世界でしかないが、ハードウェア的なUSB関連の問題か、rootで操作しているのが問題なのかといったところ。

実験的に使っているだけなので負荷をかけるつもりは全く無いがこの手の問題は最終的に致命的な部分になるのかも。

2012年4月8日日曜日

cronのエラー表示

この問題はkamikaze時代からあるようでwikiにもどうしようもないとかかれている。
http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?OpenWrt#caca9880
現状ではこれをどのように回避するのかということで、ログそのものを消しているというのもありなようですが、これだとcronのエラーが拾えなくなるかも。
https://forum.openwrt.org/viewtopic.php?id=25225
/etc/init.d/cron
#!/bin/sh /etc/rc.common
# Copyright (C) 2006 OpenWrt.org
START=50

start () {
        loglevel=$(uci_get "system.@system[0].cronloglevel")
        [ -z "$(ls /etc/crontabs/)" ] && exit 1
        mkdir -p /var/spool/cron
        ln -s /etc/crontabs /var/spool/cron/ 2>/dev/null
#       crond -c /etc/crontabs -l ${loglevel:-5}
        crond -c /etc/crontabs -l ${loglevel:-5} -L /dev/null
}

stop() {
        killall -9 crond
}
静かにはなりそうですが。
/var/log/cronなどに設定しておくとそれなりの出力は得られるのかも。

2012年4月7日土曜日

telnet経由でリセットを行いたいと思って調べてみるとlinuxではシェルスクリプトだけで簡単にできそうだ。
しかしopenWrtではexpectが標準では外されているようでパッケージが存在するかいろいろと調べてみたところ見つかりませんでした。

rubyで(perlでも)同様の動作をさせることができるようなのでruby、ruby-coreをopkgでインストール後スクリプトを実行したのですがリセットはできるものの終了時にエラーが。
./testruby.sh: [BUG] pthread_mutex_lock: Invalid argument (EINVAL)
ruby 1.9.2p0 (2010-08-18 revision 29036) [i486-linux]

-- control frame ----------
c:0001 p:0000 s:0002 b:0002 l:000b1c d:000b1c TOP
---------------------------

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

Aborted
PTY.protect_signal を入れてみると今度は
Segmentation fault
rubyの知識は全くないのでこれ以上の詮索はやめて、暫定的な形でtelnetの対応を行するようにしておきます。