テスト用に任意サイズのファイルを作りたいときがあります.そのときのコマンドは次の通りです.
C:\ fsutil file createnew c:\hoge.dat [size]
玄箱 kuro-box をU-Boot化した時のメモを掲載します.このU-Boot化によってloader.oよりカーネルの切替が安定しました.
手順は次の通りです.この流れにそって説明します.ただし,玄箱はDebian化が完了している状態とします.
カーネルはhttp://www.genbako.com/さんから最新のものを頂いてきます.この文章の作成時点ではkernelimage-2.6.25.1-kuroBOX.tgzとmodules-2.6.25.1-kuroBOX.tgzが最新です.そして,install-new-kernel.sjis.txtの通りカーネル更新を実施します.最後に次のシンボリックリンクを作成します.
# cd /boot # ln -s uImage vmlinux.UBoot
次に監視側マシンの準備をします.今回は,シリアルコンソールをつけるのが面倒なので,netcatを使います.うちは玄箱が2台あるので,一台を監視側にするため,次の手順でインストールし,監視状態にします.Winでやる場合はhttp://www.genbako.com/u-boot_loader/にnc111nt.zipが置かれていますので,こちらを利用させて頂きます.
# apt-get install netcat
そして次の手順で監視状態にします.ただし,Linux(Debian)マシンが監視側の場合です.
(1)IPの追加 下の内容を /etc/network/interfaces へ追加します. --- iface eth0:0 inet static address 192.168.11.149 network 192.168.11.0 netmask 255.255.255.0 broadcast 192.168.11.255 auto eth0:0 --- (2)ネットワークインタフェースの再起動 これでIP 192.168.11.149 が追加されます. --- # /etc/init.d/networking force-reload --- (3)監視開始 ユーザモードで実行します.rootでもかまいません. --- $ nc -v -v -n -u -s 192.168.11.149 -p 6666 192.168.11.150 6666 --
ここからが本番です.間違うと玄箱がごみ化してしまうので,要注意です.
まず,U-Bootのバイナリファイルu-boot-hd.flash.binをhttp://www.genbako.com/u-boot_loader/からターゲット玄箱の任意の場所にダウンロードさせて頂きます.ダウンロードしたファイルをmd5sumでハッシュをチェックします.ファイルが不完全だと玄箱がゴミになりますので,必ず確認します.
次に,下のようにターゲット玄箱をEMモードで起動します.
(1)カーネルバージョンの確認 --- # uname -a --- (2)カーネル2.4の場合 --- # echo -n "NGNG" > /dev/fl3 --- (3)カーネル2.6の場合 --- # echo -n "NGNG" > /dev/mtdblock2 --- (4)再起動 --- # shutdown -r now ---
EMモードの玄箱にログインしたら次の手順でコマンドでフラッシュROMを書き換えます.
ここでは/dev/hda1のrootディレクトリにファイルがあるとします. (1)U-Bootのバイナリファイルを保存したパーティションをマウント --- # mount /dev/hda1 /mnt # --- (2)ディレクトリ移動とファイル確認 念にも念を入れて確認します. --- # cd /mnt/root # # ls -l u-boot-hd.flash.bin --- (3)フラッシュROM書書き換え --- # cat u-boot-hd.flash.bin >/dev/fl2 # --- (4)EMモード解除 --- # /usr/bin/write_ok # --- (5)再起動 --- # reboot # ---
フラッシュROMの書き換えが成功していれば,監視側マシンの画面に下のように表示されます.
$ nc -v -v -n -u -s 192.168.11.149 -p 6666 192.168.11.150 6666
(UNKNOWN) [192.168.11.150] 6666 (?) open
U-Boot 1.1.4 LiSt 2.1.0 (Sep 21 2006 - 00:22:56) LinkStation / KuroBox
stdin : nc
stdout: nc
stderr: nc
IDE: Bus 0: OK
Device 0: Model: Memory Card Adapter Firm: 67281306 Ser#: 0
Type: Removable Hard Disk
Capacity: 7742.0 MB = 7.5 GB (15855616 x 512)
Boot in 01 seconds ('s' to stop)...
Loading 0:1:boot/vmlinux.UBoot
1432414 bytes read
## Booting image at 00800000 ...
Image Name: Linux-2.6.25.1-kurobox
Image Type: PowerPC Linux Kernel Image (gzip compressed)
Data Size: 1432350 Bytes = 1.4 MB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
お疲れ様でした.m(_ _)m
U-Boot化後,よく使うコマンドは次の2つです.
(1)EMモード起動 --- run writeng run emboot --- (2)EMモードを解除して通常起動 --- run writeok boot ---
【余談】
U-Boot化によってlastコマンドを確認したところ,次のような変化がありました.
(1)loader.o カーネル 2.6.25-1 --- $ last reboot system boot 2.6.25.1-kurobox Mon Jan 12 22:45 - 23:18 (00:32) reboot system boot 2.4.17_kuro-box Mon Jan 12 22:45 - 22:45 (00:00) --- (2)U-Boot カーネル 2.6.25-1 --- $ last reboot system boot 2.6.20-kurobox Thu Jan 15 17:24 - 17:31 (00:07) ---
loader.oでは,一時的にカーネル2.4と2.6の両方が立ち上がり,二重ログインのような状態になっています.対して,U-Boot化後はカーネル2.6だけです.loader.oを使っていた頃,たまにカーネル2.4で起動してしまう現象がありました.これで,2.4で立ち上がることは無くなったかもしれません.
Debian Etch(玄箱 kuro-box)で Postfix(SMTP-AUTH) + qpopper(APOP)を構築しましたので,その時のメモを掲載します.一度,qmailで環境を構築したのですが,qmailにSMTP-AUTHのパッチを当てる必要があったのでやめました.また,postfixなら普通はcourier-imapなのですが,デフォルトでAPOPに対応していないのでqpopperにしました.
まず,必要なパッケージをインストールします.
# apt-get install postfix-tls sasl2-bin libsasl2-modules qpopper #
インストール中,不要なパッケージを削除してくれたり,必要な設定項目を聞かれます.あとで設定変更するので,デフォルトで進めていきます.
次に,postfixの設定です.qpopperの設定は特にありません.
(1)main.cfの設定
うちの環境では,次のように設定しました.細かい設定値はpostfixのマニュアル
などで調べてください.最低限のセキュリティを考慮してます.
# vi /etc/postfix/main.cf
---
smtpd_banner = $myhostname ESMTP
biff = no
append_dot_mydomain = no
disable_vrfy_command = yes
smtpd_helo_required = yes
myhostname = mail.hoge.hoge # 自分のFQDNを設定
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = $myhostname
relayhost =
mynetworks = 127.0.0.0/8
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
# SMTP-AUTHに関する設定項目
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
smtpd_enforce_tls = no
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
permit_auth_destination,
reject
broken_sasl_auth_clients = yes
---
(2)smtpd.conf
# vi /etc/postfix/sasl/smtpd.conf
---
pwcheck_method:auxprop
mech_list: plain login cram-md5 digest-md5
---
※Outlook Express用にplainとlogin認証を追加.(2009/04/13追記)
(3)パスワードファイルのハードリンク
postfixから読めるようにグループを変更します.(2009/04/08追記)
---
# chgrp postfix /etc/sasldb2
#
--
ここで盛大にはまりました.要注意の設定項目です.ちなみに,シンボリック
リンクではNGでした.
---
# ln /etc/sasldb2 /var/spool/postfix/etc/sasldb2
#
---
設定はこれで完了です.次にユーザ登録です.SASL(Simple Authentication and Security Layer)とAPOPでそれぞれ分かれていますので,2回ユーザ登録が必要になります.
user00というユーザを登録するとします.なお,user00にはUNIXアカウントが必要です. (1)SASLの登録 --- # saslpasswd2 -u mail.hoge.hoge user00 Password: Again (for verification): # --- (2)SASLの確認 --- # sasldblistusers2 mail.hoge.hoge: userPassword # --- (3)APOPの初期化 初回のみ必要です. --- # popauth -init # --- (4)APOPの登録 --- # popauth -user user00 Adding only APOP password for user00. New password: Retype new password: # ---
最後に,postfixとqpopperを再起動します.
(1)postfixの再起動 --- # /etc/init.d/postfix force-reload Reloading Postfix configuration...done. # --- (2)qpopperの起動(再起動) --- # kill -HUP `cat /var/run/inetd.pid` # ---
これで,SMTP-AUTH+APOPなメールサーバが出来たはずです.ただし,Thunderbird2.0しか試してません.Outlookなど他のメーラでは設定変更が必要かもしれません.
【余談】
ユーザ管理は,簡単なスクリプトを作った方がいいですね.同じパスワードを4度も入力するなんて許せません.(笑)
PHPソフトウェアを高速化する方法はいくつかありますが,お手軽なeAcceleratorを使ってみました.主な目的は2ch Viewer p2の高速化です.ターゲット環境は無印玄箱-Debian Etch-です.
手順は次のようになります.バイナリで提供されていないので,ソースからビルドが必要になります.なお,apache2とPHPは導入済みを前提とします.
# apt-get install php5-dev re2c make # # cd /tmp # wget http://downloads.sourceforge.net/eaccelerator/eaccelerator-0.9.5.2.zip # unzip eaccelerator-0.9.5.2.zip # cd eaccelerator-0.9.5.2 # export PHP_PREFIX="/usr/" # $PHP_PREFIX/bin/phpize # ./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config --with-eaccelerator-userid=www-data # make # make install #
これでeaccelerator.soが/usr/lib/php5/20060613+lfs/eaccelerator.soにインストールされます.作成されなければ,eaccelerator.soを同フォルダにコピーします.次にキャッシュ用のディレクトリを作成し,パーミッションを設定します.
# mkdir /var/www/cache # mkdir /var/www/cache/eaccelerator # chown www-data:www-data /var/www/cache/eaccelerator #
次に設定ファイルを作成します.
# vi /etc/php5/conf.d/eaccelerator.ini -- extension=eaccelerator.so [eaccelerator] eaccelerator.shm_size = "32" eaccelerator.cache_dir = "/var/www/cache/eaccelerator" eaccelerator.enable = "1" eaccelerator.optimizer = "1" eaccelerator.check_mtime = "1" eaccelerator.debug = "0" eaccelerator.filter = "" eaccelerator.shm_max = "0" eaccelerator.shm_ttl = "0" eaccelerator.shm_prune_period = "0" eaccelerator.shm_only = "0" eaccelerator.compress = "1" eaccelerator.compress_level = "9" eaccelerator.keys = "shm_and_disk" eaccelerator.sessions = "shm_and_disk" eaccelerator.content = "shm_and_disk" --
最後にapacheを再起動して終わりです./var/www/cache/eaccelerator/以下にキャッシュが出来ていれば成功です.
# /etc/init.d/apache2 force-reload #
結果,p2のレスポンスがかなり改善されました.非力な玄箱だと効果がよく分かります.
Copyright © 2008 A.Saitou