ラベル Ubuntu の投稿を表示しています。 すべての投稿を表示
ラベル Ubuntu の投稿を表示しています。 すべての投稿を表示

2011年5月7日土曜日

SheevaPlug+でsquidを動かす(2)

squidのログフォルダをDebian標準のディレクトリから違うところに移動していたのにログローテートの設定を変更するのを忘れていたためログが異常に巨大になってしまっていました。

おかげでなんだか動きがもたついたりすることが発生し出しました。

/etc/logrotate.d/squid の以下の冒頭を変更。
#
# Logrotate fragment for squid.
#
/var/log/squid/*.log {
daily
対象のログファイル指定を変更。
#
# Logrotate fragment for squid.
#
/media/sda1/squid/*.log {
daily
これでログが肥大することもないはず・・。

2011年5月1日日曜日

SheevaPlug+用のSDカードをディスクイメージにバックアップする

セットアップホヤホヤのSDカードの内容をディスクイメージにして保存しておけば環境構築に失敗した場合でもすぐに元に戻せます。それに複数の環境を簡単に作れます。

UNIX系OSにはddという極悪コマンドがありますが、Windowsには無いのでダウンロードしてきます。

DD for Windows

こちらのツールをダウンロードしてきて解凍してVista以上ならば管理者として起動します。
管理者起動しないとSDカードを認識しません。
これが起動直後の画面。
起動してディスク選択をクリック、SDカードを選択します。選択したらOKを押します。
次にファイル選択をクリックしてディスクイメージの保管場所の選択とディスクイメージファイル名設定をして開くを押します。
こんな感じに表示されるので、読込をクリックしてSDカードからディスクイメージにデータを書き込みます。間違えて書込を押すと空のディスクイメージをSDカードに書き込む悲劇が起きます。
じっくり完了するまで待ちましょう。
読み込みが完了しましたと表示されたらディスクイメージが完成です。
ディスクイメージは大切に保存しましょう。

SheevaPlug+でDynamicDNSサービスを更新する

現在自宅のDynamicDNSサービスのIP更新を3台あるWindowsマシンからDiceという便利なソフトを使用して更新しています。

でも、SheevaPlug+を常時サーバとして稼働しているのでそれで更新すれば良い事に気づく。
たまに更新する程度の処理なら重くないでしょうし。
ということでDyndns.orgの更新をSheevaPlug+で行うようにしました。

参考にしたのはこちらのサイト。
ubuntu ServerでDDNS(DYNDNS)を自動更新

まあ、普通のUbuntu 9.04なのでSheevaPlug+だからといっても何も違わないのですけどね。

SheevaPlugのCLIを日本語にする

TeraTermで文字コードを標準のUTF-8のままログインしているのでUTF-8日本語表示に問題がないので標準の英語から設定を変更することに。
SDから起動しているのでlocale入れても容量の心配がないし。

Ubuntuで日本語ロケール設定


こちらの情報を元にlocaleを設定しました。

# apt-get install language-pack-ja
# dpkg-reconfigure locales
# update-locale LANG=ja_JP.UTF-8

便利な世の中ですのう。

2011年4月29日金曜日

SheevaPlug+の写真とかBogomipsとか

こんな感じで動かしてます。コンピュータに見えない。
右が本体。左が接続している2.5インチハードディスクケース。

ちなみにSheevaPlug+のBogoMIPSは1192.75だそうです。
単純な計算だけなら大学の時に買ったCeleron 500Mhzマシン(BogoMIPS 999)より性能が高いという話になりますね。

SheevaPlug+でsquidを動かす

何かLinkstationでpolipoを動かして遊んだ経験があったためにSheevaPlug+でもpolipoを動かしていたのですが、このスペックならば外付けHDDをキャッシュ保管先にすれば問題なくsquidが動くことに気づいたのでした。

導入が多いソフトなだけありpolipoで起きる通信に突っかかったりすることが無いので快適です。

以下のようにキャッシュとログを/media/sda1/squid以下に保管するように変更した上で、192.168.179.0/24という自宅環境からの接続を許可しました。
あと、polipoから移行したのでポート番号をpolipoデフォルトの物に変更しています。

こんな感じで/etc/squid/squid.confを編集

--- squid.conf.orig     2011-04-29 06:45:44.000000000 +0900
+++ squid.conf  2011-04-29 21:06:29.000000000 +0900
@@ -607,6 +607,7 @@
acl localnet src 10.0.0.0/8    # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16        # RFC1918 possible internal network
+acl homeuser src 192.168.xxx.0/24
#
acl SSL_ports port 443         # https
acl SSL_ports port 563         # snews
@@ -652,6 +653,7 @@
#
# Only allow cachemgr access from localhost
http_access allow manager localhost
+http_access allow homeuser
http_access deny manager
# Only allow purge requests from localhost
http_access allow purge localhost
@@ -1107,7 +1109,7 @@
#      visible on the internal address.
#
# Squid normally listens to port 3128
-http_port 3128
+http_port 8123

#  TAG: https_port
# Note: This option is only available if Squid is rebuilt with the
@@ -1950,6 +1952,7 @@
#
#Default:
# cache_dir ufs /var/spool/squid 100 16 256
+cache_dir ufs /media/sda1/squid 20480 16 256

#  TAG: store_dir_select_algorithm
#      Set this to 'round-robin' as an alternative.
@@ -2125,7 +2128,8 @@
#
#      And priority could be any of:
#      err, warning, notice, info, debug.
-access_log /var/log/squid/access.log squid
+#access_log /var/log/squid/access.log squid
+access_log /media/sda1/squid/access.log squid

#  TAG: log_access     allow|deny acl acl...
#      This options allows you to control which requests gets logged
@@ -2149,6 +2153,7 @@
#
#Default:
# cache_log /var/log/squid/cache.log
+cache_log /media/sda1/squid/cache.log

#  TAG: cache_store_log
#      Logs the activities of the storage manager.  Shows which
@@ -2159,7 +2164,7 @@
#
#Default:
# cache_store_log /var/log/squid/store.log
-
+cache_store_log /media/sda1/squid/store.log
#  TAG: cache_swap_state
#      Location for the cache "swap.state" file. This index file holds
#      the metadata of objects saved on disk.  It is used to rebuild
@@ -2212,6 +2217,7 @@
#
#Default:
# logfile_rotate 0
+logfile_rotate 4

#  TAG: emulate_httpd_log      on|off
#      The Cache can emulate the log file format which many 'httpd'


次にキャッシュの保管先作成。
# mkdir /media/sda1/squid
# chown proxy.proxy /media/sda1/squid

キャッシュ作成。
# squid -z

squidの起動。
# /etc/init.d/squid restart

何より安定稼働が一番。

追記: ログローテートの設定を忘れていたので追加しました。

参考サイト
追記
シャットダウン時にUSB HDDへのアクセスが尋常ではないのでのでとりあえずcoss形式での運用は見送り。SheevaPlug+の性能の問題かな?

coss形式の設定はこちらが参考になります。

2011年4月26日火曜日

SheevaPlug+の起動時にMounting local filesystems failed

下記のサイトの情報を元に/etc/fstabを編集。

Topic: Mounting local filesystems failed

I remove the / from the first /proc line and now my sheeva boots without this error ! (proc /proc proc rw,noexec,nosuid,nodev 0 0)

/procから始まる行の先頭にあるスラッシュを削除すればいいそうです。

2011年4月25日月曜日

SheevaPlug+でtelnetが使えるようにする。

今時telnetも無いけど大抵のOSにクライアントが入っているので楽という事で。
LAN内での使用限定ですしね。
(以下はSDカードで起動した環境で行いました。)

まずtelnetのサーバをインストール。依存関係でinted(openbsd-inetd)もインストールされます。

# apt-get install telnetd

以下の様な記述が/etc/inetd.confに追加されるはず。
telnet          stream  tcp     nowait  telnetd /usr/sbin/tcpd  /usr/sbin/in.telnetd
安全のためLANからのみアクセスを受け付けるようにアクセス制限をかける。
/etc/hosts.allowを以下の様に編集(192.168.179.0/24からのみ許可)。
ALL:127.0.0.1
in.telnetd:192.168.179.
/etc/hosts.denyを以下の様に編集。
ALL:ALL
サービスの再起動を実施。

# /etc/init.d/openbsd-inetd restart

ユーザがrootだけの場合はシリアル接続で追加すること。telnetはrootでいきなりログインできません。

あとはtelnetクライアントから接続テストを実施。

追記:hosts.allowとhosts.denyのファイル名が逆になっていたので訂正。

SheevaPlug+のSDカードからの起動メモ

2010年の4月に購入して1年以上ほったらかしにしていたSheevaPlug+をようやくいじりました。
挫折していたSDカード利用のブートに何とかうまくいきました。ようやく実用できるように。

細かい手順は全く覚えていないため記憶している作業の大枠だけ書き残しています。
ここに書いてある通りにやるだけでは設定できないので注意してください!!


まず普通に内蔵メモリ(NAND)から起動。前準備の前準備としてaptを使えるようにするため/etc/hostsファイルの以下の行をコメントアウトする。
91.189.88.36 ports.ubuntu.com
これをしておかないとaptに失敗します。
前準備としてカーネルをアップデート。

# apt-get update
# apt-get install wget
# wget http://sheeva.with-linux.com/sheeva/README-PLUG-UPDATE.sh
# chmod a+x README-PLUG-UPDATE.sh
# ./README-PLUG-UPDATE.sh 2.6.38.4 --nandkernel
# reboot

U-Bootの環境変数を変更。(eSATA対応機種なのでarcNumberは2678に。古いものは2097らしい)

Mervell>> setenv mainlineLinux yes
Mervell>> setenv arcNumber 2678
Mervell>> saveenv
Mervell>> reset

SheevaPlugに4GBのSD HCカードを接続して以下の様にパーティションを分割。

root@debian:/home/kz# fdisk /dev/mmcblk0

Command (m for help): p

Disk /dev/mmcblk0: 3963 MB, 3963617280 bytes
128 heads, 63 sectors/track, 960 cylinders
Units = cylinders of 8064 * 512 = 4128768 bytes
Disk identifier: 0x00000000

Device Boot Start End Blocks Id System
/dev/mmcblk0p1 1 131 528160+ 83 Linux
/dev/mmcblk0p2 132 262 528192 82 Linux swap / Solaris
/dev/mmcblk0p3 263 960 2814336 83 Linux

Command (m for help):
512MBのブート用パーティション1と512MBのスワップ用パーティション2。残りをルート用パーティション3に割り当てました。

次にフォーマット実施。

# mkfs.ext2 /dev/mmcblk0p1
# mkfs.ext2 /dev/mmcblk0p3
# mkswap /dev/mmcblk0p2

そしてSDカードのルート用パーティションをマウント。

# mount /dev/mmcblk0p3 /mnt

内蔵メモリ(NAND)に収録されている/以下のシステムをSDカードにコピー。

# cp -axv / /mnt

/mnt/etc/fstabを編集。
# /etc/fstab: static file system information.
#
proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot ext2 defaults 1 2
/dev/mmcblk0p3 / ext2 defaults 1 1
/dev/mmcblk0p2 swap swap defaults 0 0
作業が終わったらアンマウント。

# umount /mnt

次にブート用パーティションをマウント。

# mount /dev/mmcblk0p1 /mnt

カーネルのイメージファイルをコピー。

# cp -pv sheeva-2.6.38.4-System.map /mnt
# cp -pv sheeva-2.6.38.4-uImage /mnt
# cd /mnt
# ln -s sheeva-2.6.38.4-uImage uImage
# cd ~/
# umount /mnt

あとは再起動してU-Bootの設定を変更。かなり間違っている+無駄な設定が混じっているのですがなんか動いてます。

boot関連の設定が変なのでそのうち整理して掲載します。

Mervell>> printenv
arcNumber=2678
autoload=no
baudrate=115200
bootargs_end=:::DB88FXX81:eth0:none
bootargs_mmc=console=ttyS0,115200 root=/dev/mmcblk0p3 rw rootfstype=ext2 rootdelay=3
bootargs_nand=console=ttyS0,115200 mtdparts=nand_mtd:0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs) rw root=/dev/mtdblock2 rw rootfstype=jffs2 ip=10.4.50.4:10.4.50.5:10.4.50.5:255.255.255.0:DB88FXX81:eth0:none
bootargs_root=root=/dev/mtdblock2 ro
bootcmd_mmc=setenv bootargs $(bootargs_mmc); mmcinit; ext2load mmc 0:1 0x800000 /uImage; bootm 0x800000
bootcmd_nand=setenv bootargs $(bootargs_nand); nand read.e 0x800000 0x100000 0x400000; bootm 0x800000
bootcmd=run bootcmd_mmc; run bootcmd_nand;
bootdelay=3
CASset=min
cesvcid=ULULULULULULPPULULULULULDA
console=console=ttyS0,115200 mtdparts=orion_nand:0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs)
disaMvPnp=no
disL2Cache=no
disL2Prefetch=yes
enaAutoRecovery=yes
enaCpuStream=no
enaDCPref=yes
enaICPref=yes
enaMonExt=no
enaWrAllo=no
ethact=egiga0
ethaddr=00:50:43:01:51:FA
ethmtu=1500
ethprime=egiga0
fileaddr=17A12000
filesize=108e000
image_name=uImage
ipaddr=10.10.0.1
loadaddr=0x0800000
loads_echo=0
mainlineLinux=yes
MALLOC_len=1
mvNetConfig=mv_net_config=(00:11:88:0f:62:81,0:1:2:3),mtu=1500
mvPhoneConfig=mv_phone_config=dev0:fxs,dev1:fxs
nandEcc=1bit
nandEnvBase=a0000
netbsd_en=no
netmask=255.255.0.0
netretry=no
pcieTune=no
pexMode=RC
rcvrip=169.254.100.100
rootpath=/mnt/ARM_FS/
run_diag=no
sata_dma_mode=yes
serverip=10.10.0.2
setL2CacheWT=yes
standalone=fsload 0x2000000 $(image_name);setenv bootargs $(console) root=/dev/mtdblock0 rw ip=$(ipaddr):$(serverip)$(bootargs_end) $(mvPhoneConfig); bootm 0x2000000;
stderr=serial
stdin=serial
stdout=serial
usb0Mode=host
vxworks_en=no
yuk_ethaddr=00:00:00:EE:51:81
うまくいったら今のうちに初期状態のSDカードをイメージにして接続したUSBメモリにバックアップ。
一旦SDを抜いて内蔵メモリ(NAND)ブートしてからSDとUSBメモリを挿して以下の処理を実施。

# mount -t fat32 /dev/sda1 /mnt
# dd of=/dev/mmcblk0 if=/mnt/sdcard_image.ddi

参考にしたサイト

2010年2月24日水曜日

SheevaPlug+を注文した。

モニター販売されているSheevaPlug+を予約注文しました。
久しぶりのLinux環境・初Ubuntuです。

こんな小さくて自分が初めてLinuxを入れたPC並の性能というのが隔世の感ですなぁ。