AstLinux CF-i586
AstLinux日本語版イメージ公開中
Microclient JRを次世代(!?)のAsteriskスタンダード・アプライアンスにする目論見からAstLinuxのi586版、CFイメージを公開します。
- 日本語化済みで、ひかり電話RT-200NEパッチ適用済みです。
- Asterisk サンプル設定ファイルの1.4系が入っています。1.2向けに若干の調整を行ってあります。
- Webインタフェースも日本語化されています。
- タイムゾーン設定がデフォルトでJSTです。
目次
ダウンロード
以下からダウンロードできます(2007/08/09注記:/etc/asteriskへのシンボリックリンク修正版)。
- gzip版
ftp://ftp.voip-info.jp/astlinux/i586/cf-image/astlinux-070808ja-256.img.gz
- zip版
ftp://ftp.voip-info.jp/astlinux/i586/cf-image/astlinux-070808ja-256.zip
インストール
guzip等で.imgファイルを解凍します。Windowsの場合にはZIPフォルダから中身を展開しておいてください。解凍したならばCFカードにイメージを書き込みます。この際、256MB以上のCFを用意してください。本体サイズが256MBのパーティションになります。Linuxマシンでなら以下のようにddで簡単に書き込めます。
dd if=astlinux-070629ja.img of=/dev/sdc bs=1k
(バージョン番号は適切に読み替えてください)
Windowsマシンで書き込みたい場合には、シリコンリナックス(株)さんの、DDforWindowsが使えます。ファイル選択時には『全てのファイル』にして.imgファイルを指定してください。書き込み先のサイズより小さい、という警告は無視してかまいません。
ブートローダ込みなので、デバイスはディスクそのものです。書き込み先に指定するのはパーティションではありません。上の例ではCFライタに挿したCFが/dev/sdcの場合です。
ブート
ブートのgrubメニューは以下のようになっています。不必要なところはコメントアウトしてください。
default saved timeout 3 title AstLinux (Boot from IDE CF, USB KeyDisk) root (hd0,0) kernel /boot/bzImage root=/dev/hda1 astlinux=i586 astkd=/dev/sda1 ide=no title AstLinux (Boot from USB, IDE CF/HD KeyDisk) root (hd0,0) kernel /boot/bzImage root=/dev/sda1 astlinux=i586 astkd=/dev/hda1 ide=no title AstLinux (Boot from USB, Use third partition for KeyDisk) root (hd0,0) kernel /boot/bzImage root=/dev/sda1 astlinux=i586 astkd=/dev/sda3 ide=n title AstLinux (Boot from IDE CF, IDE CF/HD KeyDisk - secondary master) root (hd0,0) kernel /boot/bzImage root=/dev/hda1 astlinux=i586 astkd=/dev/hdc1 ide=no title AstLinux (Boot from IDE CF, Use third partition for KeyDisk) root (hd0,0) kernel /boot/bzImage root=/dev/hda1 astlinux=i586 astkd=/dev/hda3 ide=n title AstLinux (Boot from Pri-Slv.IDE CF, Use third partition for KeyDisk) root (hd0,0) kernel /boot/bzImage root=/dev/hdb1 astlinux=i586 astkd=/dev/hdb3 ide=no
Microclient JRを使用する場合には、CFスロットがプライマリ・スレーブなのでメニューの一番下を使って起動してください。CFブートでUSBキーディスクを使う場合には他の例にならって変更を行ってください。
なおMicroclient JRにコンソールをつけないで起動する場合には、予め他のマシンでCFをマウントしboot/grub/grub.confを編集しておきましょう。
空き部分の活用
TFTPサーバーなどの目的で使う場合、初期状態では容量不足ぎみとなります。
CFで使われていない空きパーティションを利用することが可能です。
詳細は、Astlinux_空き容量有効活用 を参照ください。
FDISK
fdisk /dev/hda と入力
fdisk /dev/hda Forneus kd # fdisk /dev/hda Command (m for help):
"n"(Newの略)を入力します。
command actionを聞かれたらpを入力します。
Command (m for help): n command action e extended p primary partition(1-4)
次にパーティションナンバーを入力します。2と入力。
Partition number (1-4):
次はそのままデフォルト値で良いでしょう。そのままエンター
First cylinder (131-250, default 131):
次はサイズを聞かます。そのままエンター
Last cylinder or +size or +sizeM or +sizeK (131-250, default 250): Using default value 250 Command (m for help):
pを入力し、現在の状況を確認します。
Command (m for help): p Disk /dev/hda: 129 MB, 129024000 bytes 16 heads, 63 sectors/track, 250 cylinders Units = cylinders of 1008 * 512 = 516096 bytes Device Boot Start End Blocks Id System /dev/hda1 * 1 130 65488+ 83 Linux /dev/hda2 131 250 60480 83 Linux
wを入力し、ディスクに書き込みます。
Syncing disks.と出たら成功。再起動するとFDISKでの変更が有効になります。
Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot. Syncing disks.
大雑把なfdiskのLOG
Forneus kd # fdisk /dev/hda Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 2 First cylinder (131-250, default 131): Using default value 131 Last cylinder or +size or +sizeM or +sizeK (131-250, default 250): Using default value 250 Command (m for help): p Disk /dev/hda: 129 MB, 129024000 bytes 16 heads, 63 sectors/track, 250 cylinders Units = cylinders of 1008 * 512 = 516096 bytes Device Boot Start End Blocks Id System /dev/hda1 * 1 130 65488+ 83 Linux /dev/hda2 131 250 60480 83 Linux Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot. Syncing disks.
初期化
次は未使用個所を初期化します。
再起動後、mke2fs -c /dev/hda2と入力します。
個体差はありますが、1,2分程度で終了するでしょう。
Forneus ~ # mke2fs -c /dev/hda2 mke2fs 1.38 (30-Jun-2005) Filesystem label= OS type: Linux Block size=1024 (log=0) Fragment size=1024 (log=0) 15168 inodes, 60480 blocks 3024 blocks (5.00%) reserved for the super user First data block=1 8 block groups 8192 blocks per group, 8192 fragments per group 1896 inodes per group Superblock backups stored on blocks: 8193, 24577, 40961, 57345 Running command: badblocks -b 1024 -s /dev/hda2 60480 sh: badblocks: command not found Writing inode tables: done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 29 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. Forneus ~ #
マウント(テスト)
実際にマウントさせてみます。
Forneus mnt # mount /dev/hda2 /mnt/opt/
次に、dfと入力し、ディスクの容量を見てみます。
末尾に/dev/hda2が表示され、ディスク容量などが正しく表示されていれば、成功となります。
Forneus mnt # df Filesystem 1k-blocks Used Available Use% Mounted on /dev/hda1 63413 52768 10645 83% / none 200 0 200 0% /dev none 5000 116 4884 2% /var none 10000 500 9500 5% /tmp /dev/sda1 63413 52737 10676 83% /mnt/kd /dev/hda2 58557 13 55520 0% /mnt/opt
起動時の自動マウント
再起動する度に手動でマウントさせる訳には行かないので、
適切なディレクトリに自動マウントさせます。
設定変更
/etc/rcを変更します。
Forneus / # mount -o rw,remount / Forneus / # vi /etc/rc
/etc/rcというファイルは、Astlinux起動時のファイル操作スクリプトになっていますので、
このファイルに手を加えます。
変更前
/etc/rcの110~120行目あたりに、下記のような個所がありますので、
ここにマウントコマンドを一行追加します。
追加が終わったら、Astlinuxを再起動させます。
(略) mount -t tmpfs -o size=200k none /dev mount -t tmpfs -o size=5000k none /var mount -t tmpfs -o size=10000k none /tmp mkdir /dev/pts mount -t devpts none /dev/pts mount -t sysfs none /sys mount -t usbfs usbfs /proc/bus/usb mkdir /tmp/etc echo "$ROOTDEV / ext2 ro 0 0 proc /proc proc defaults 0 0 none /dev tmpfs size=200k 0 0 none /tmp tmpfs size=10000k 0 0 none /var tmpfs size=5000k 0 0 none /proc/bus/usb usbfs defaults 0 0 " > /tmp/etc/fstab if [ -d /stat/dev ] (略)
変更後
(略) mount -t tmpfs -o size=200k none /dev mount -t tmpfs -o size=5000k none /var mount -t tmpfs -o size=10000k none /tmp mkdir /dev/pts mount -t devpts none /dev/pts mount -t sysfs none /sys mount -t usbfs usbfs /proc/bus/usb mount /stat/dev/hda2 /mnt/hda2 ←ここに追加 mkdir /tmp/etc echo "$ROOTDEV / ext2 ro 0 0 proc /proc proc defaults 0 0 none /dev tmpfs size=200k 0 0 none /tmp tmpfs size=10000k 0 0 none /var tmpfs size=5000k 0 0 none /proc/bus/usb usbfs defaults 0 0 " > /tmp/etc/fstab if [ -d /stat/dev ] (略)
再起動後の確認
再起動後、dfと打ってみて、変更が反映されている事(/stat/dev/hda2で始まる行がある事)
を確認したら作業終了となります。
Forneus ~ # df Filesystem 1k-blocks Used Available Use% Mounted on /dev/hda1 63413 52769 10644 83% / none 200 0 200 0% /dev none 5000 116 4884 2% /var none 10000 500 9500 5% /tmp /stat/dev/hda2 58557 13 55520 0% /mnt/hda2 /dev/sda1 63413 52737 10676 83% /mnt/kd Forneus ~ #
AstLinuxはNTPサーバーの機能を持っています。
設定変更
NTPサーバーの設定はrc.confの中に記述されています。
/etc/ntp.confを直接変更しても、再起動の時に中身が消えてしまいます。
vi /stat/rc.conf ←標準でインストールした場合 vi /mnt/kd/rc.conf ←/mnt/kd/以下にファイルを置いた場合
下記のように設定を変更します。(us.pool.ntp.orgを無効化)
##Master NTP server. This is the NTP server that AstLinux will sync against ##upon bootup. It is also the server that the running ntpd process will use ##to maintain that time sync. NTPSERV="us.pool.ntp.org" ←外国サーバーなのでコメント行にします。 #NTPSERV="europe.pool.ntp.org" #NTPSERV="north-america.pool.ntp.org" #NTPSERV="south-america.pool.ntp.org" #NTPSERV="asia.pool.ntp.org" #NTPSERV="oceania.pool.ntp.org" #NTPSERV="africa.pool.ntp.org" ##If you would like to specify several servers to be used at the same time, ##you can specify them in NTPSERVS seperated by spaces. #NTPSERVS="ntp1.cs.wisc.edu us.pool.ntp.org"
NTPサーバーのIPアドレスを追加します。
NICTが提供しているNTPサーバーのIPを入力します。
設定を変更したら、Astlinuxを再起動します。
##Master NTP server. This is the NTP server that AstLinux will sync against ##upon bootup. It is also the server that the running ntpd process will use ##to maintain that time sync. #NTPSERV="us.pool.ntp.org" #NTPSERV="europe.pool.ntp.org" #NTPSERV="north-america.pool.ntp.org" #NTPSERV="south-america.pool.ntp.org" #NTPSERV="asia.pool.ntp.org" #NTPSERV="oceania.pool.ntp.org" #NTPSERV="africa.pool.ntp.org" ##If you would like to specify several servers to be used at the same time, ##you can specify them in NTPSERVS seperated by spaces. #NTPSERVS="ntp1.cs.wisc.edu us.pool.ntp.org" NTPSERVS="133.243.238.243 133.243.238.244" ←ここの行を追加
動作確認
再起動後、さきほど変更したrc.confの中身が
/etc/ntp.confに反映されている事を確認します。
pbx ~ # cat /etc/ntpd.conf listen on 0.0.0.0 server 133.243.238.243 server 133.243.238.244
ntpdが動いていたら、動作確認のためにntpdを一旦止めてしまいます。
pbx ~ # ps ax |grep ntp 1135 ? S 0:00 /usr/sbin/mDNSProxyResponderPosix 192.168.0.6 pbx AstLinux PBX _ntp._udp 123 1167 ? S 0:00 ntpd 1168 ? S 0:00 ntpd 1170 pts/0 S+ 0:00 grep ntp pbx ~ # kill 1167
ntpdをデバッグモードで動かしてみて、時刻の同期が取れていることを確認します。
pbx ~ # ntpd -d listening on 0.0.0.0 ntp engine ready reply from 133.243.238.244: offset 15.018296 delay 1.014712, next query 5s reply from 133.243.238.243: offset 15.009712 delay 1.038980, next query 8s reply from 133.243.238.244: offset 15.018296 delay 1.014712, next query 5s reply from 133.243.238.243: offset 15.009712 delay 1.038980, next query 8s reply from 133.243.238.244: offset 15.018296 delay 1.014712, next query 5s reply from 133.243.238.243: offset 15.008712 delay 1.038980, next query 8s (略) peer 133.243.238.244 now valid peer 133.243.238.244 now valid (略) adjusting local clock by 14.498614s ←この行が出たらOK
ちなみにntpdを止め忘れていると、エラーになります。
pbx ~ # ntpd -d listening on 0.0.0.0 fatal: bind: Address already in use dispatch_imsg in main: pipe closed Terminating pbx ~ # ps ax
注意点
時間のずれが大きすぎると、ntpdは時計の修正を諦めてしまうので
BIOSの画面で時計を合わせておく必要があります。
なお、NTPサーバーとして動くようになるまで1時間近くかかる場合があります。
Cisco IP電話機を使う
AstLinuxにはあらかじめchan_sccpが入っているので、
SCCPドライバを用意する必要がありません。
pbx ~ # mount -o rw,remount / pbx ~ # vi /stat/etc/asterisk/sccp.conf
という具合に/stat/etc/asterisk/以下にsccp.confを新規作成します。
sccp.confを作成したら、Astlinuxまるごと再起動するか、
下記の手順でファイルを読みこむようにします。
pbx # cp /stat/etc/asterisk/sccp.conf /etc/asterisk/sccp.conf pbx # asterisk -vvvvvvvvvvvvvvvvvvvvr pbx*CLI> unload chan_sccp.so pbx*CLI> load chan_sccp.so
SEP<MACアドレス>.cnf.xmlの編集も忘れないようにしましょう。
設定が正しければ、Cisco電話機が動くようになります。
Nortel IP電話機を使う
Nortel i2002を参照ください