とある目的のためにpogoplugでsambaを動かす必要が出てきたので、openpogo化してみました。作業はほぼすべて、「とりあえず再起動日記」の記事通りに行いましたが、途中、wgetの部分のみ違う方法を採りました。
下記は基本的に「とりあえず再起動日記」と同じ内容ですが、備忘録として記載しておきます。
1. 下準備
まず、PogoPlugへのSSH接続が出来るようにします。これは、my.pogoplug.comにアクセスして、設定 > セキュリティで「このPogoplug機器へのSSHアクセスを有効にする」にチェックを入れるだけです。このとき、「パスワードを変更する」でパスワードを設定しておきます。
次に、OpenPogoを入れるUSBメモリを用意します。1GBあれば十分なようですが、今どき4GB以下のものを見つけるほうが難しいかもしれません。私は4GBのUSBメモリを760円で購入してきました。
2. IPアドレスの確認
PogoPlugに繋いでいる、普段使用しているHDDを念のために外しておきます。そして、OpenPogo用のUSBメモリを挿します。そして、PogoPlugにSSHで接続します。
SSH接続のため、PogoPlugのIPアドレスを調べる必要がありますが、下記の方法で確認できます。
https://service.pogoplug.com/svc/api/loginUser?email=pogoplugアカウントのメールアドレス&password=パスワード
に接続すると、
{“valtoken”:”文字列”,”user”:
{“userid”:”~”,”screenname”:
というような表示になるので、最初のvaltoknの文字列をコピーします。そして、
http://service.pogoplug.com/svc/api/listDevices?valtoken=コピーした文字列
にアクセスすると、表示される文字列の中に「”apiurl”:”http://IPアドレス/~」という部分があるので、それでIPアドレスを確認します。
3. USBメモリのフォーマット
PogoPlugにSSHで接続します。WindowsならteratermなどのSSHクライアントが必要です。Macなら標準ターミナルから接続できます。以下はMacでの例です。
$ ssh -l root PogoPlugのIPアドレス
で接続可能。パスワードはmy.pogoplug.comで指定したやつです。
無事、接続できたら、mke2fsをダウンロードし、hbwdというプロセスを止めて一時的にPogoPlugの機能を停止します。
# cd /tmp # wget http://plugapps.com/os/pogoplug/mke2fs # chmod 755 mke2fs # killall hbwd
次に、fdiskコマンドを使って挿入したUSBメモリのパスを確認します。
# /sbin/fdisk -l
おそらく、/dev/sda1という結果が返ってくると思います(sdb1の場合もあるかも)。これを確認したら、fdiskでパーティションを切り直します。
#/sbin/fdisk /dev/sda
mでhelpが表示されるので確認してください。やることは、d(パーティションの削除)→n(新規パーティションの作成)→1(パーティション番号1を指定)です。
これが済んだら、先ほどダウンロードいsたmke2fsでフォーマット。
# ./mke2fs /dev/sda1
USBメモリを抜いて、PogoPlugを再起動。
# /sbin/reboot
4. OpenPogoのインストール
USBメモリを挿します。この時点で、PCからはP:として認識可能になっているはずです。この状態で、「http://www.pogoplugged.com/download/12124/Create-an-openpogo-base-system-on-a-USB-drive/」からOpenPogoをダウンロードします(ファイル名はopt.tar.gz)。ダウンロードしたファイルはUSBメモリにコピーしておきます。
再度、SSHでPogoPlugに接続します。接続したら、先ほどコピーしたopt.tar.gzを展開します。
# cd /tmp/.cemnt/mnt_sda1 # tar xzvf opt.tar.gz
展開されたディレクトリに「/opt」でアクセスできるようリンクを貼ります。
# mount -o rw,remount / # ln -s /tmp/mnt_opt/.opt /opt
そして起動スクリプトを修正してPogoPlug起動時にOpenPogoも動くようにします。「/etc/init.d/rcS」に下記の内容を追加します。viでやるか、「とりあえず再起動日記」にあるようにechoで書いていきます。
# vi /etc/init.d/rcS ##以下の内容を最後部に追加 /etc/init.d/mount_opt /opt/etc/init
/etc/profileも作成します。
# vi /etc/profile ## 以下の内容で作成 #!/bin/bash export PATH=/opt/bin:/opt/sbin:/usr/bin:/usr/sbin:/bin:/sbin
起動スクリプトを/etc/init.dにコピーします。
#cp /tmp/.cemnt/mnt_sda1/.opt/mount_opt /etc/init.d/ #chmod 755 /etc/init.d/mount_opt
そして再起動
# /sbin/reboot
5. ipkg update
そのままでは「ipkg update」が失敗するのでwgetをwrapします。
# mount -o rw,remount / # mv -i /usr/bin/wget /usr/bin/wget.busybox # vi /usr/bin/wget.sh ## 以下の内容で作成 #!/bin/sh arg=`echo $* | sed -e 's/--passive-ftp//g'` /bin/busybox wget $arg
作ったwget.shをwgetとしてリンクを貼ります。
# chmod 755 /usr/bin/wget.sh # ln -s /usr/bin/wget.sh /usr/bin/wget
デフォルトで設定されているリポジトリが無効になっているので、それを修正。
# cd /opt/etc/ipkg # vi armel-feed.conf ## リポジトリを下記に変更 src cross http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/stable
この後、「ipkg update」を実行
# ipkg update
エラーが出なければOKです。
6. Sambaのインストール
# ipkg install samba35 samba35-swat
/opt/etc/samba/smb.confを作成しますが、設定は自身の好みで。sambaの設定内容は検索すればいくらでも出てきます。「とりあえず再起動日記」のままの下記の設定ももちろんOK。
[global] netbios aliases = POGOPLUG server string = POGOPLUG null passwords = Yes guest account = root log file = /opt/var/log/samba/log.%m max log size = 50 smb passwd file = /opt/etc/samba/smbpasswd socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=131072 SO_SNDBUF=131072 SO_KEEPALIVE load printers = No dns proxy = No [HDD1] path = /tmp/.cemnt/mnt_sdb1/ read only = No force create mode = 0666 force directory mode = 0777 guest only = Yes guest ok = Yes
sambaのユーザを登録します。
# smbpasswd -a root
パスワードを聞かれるので2回打ちます。ここではrootというユーザを作りましたが、もちろん別のユーザ名でも構いません。
この状態でsambaを起動してみます。
# /opt/etc/init.d/S08samba start
うまく行けば、PCのネットワークコンピュータから参照可能になっているはずです(ユーザ名、パスワードは上記で指定したものです)。
7. 自動起動の設定
いちいち手動でsambaを起動するのは面倒なので、PogoPlug起動時にsambaも起動するようにしておきます。
# vi /etc/init.d/rcS ## 下記の内容を最後尾に追加 /opt/etc/init.d/S08samba start
以上でPogoPlugのOpenPogo化、およびssambaの設定は終了です。「とりあえず再起動日記」ではswatの設定も行っていますが、面倒なので省きました。一回設定しちゃえば弄らないし。
PogoPlugならわざわざsambaを設定しなくても、当然ながらPCから使用できますが、SMBプロトコル経由で接続したい理由があったので設定してみました。肝心のその理由についてはそのうちに。しかし、OpenPogoは思ったよりも敷居が低かったのでほかにもいろいろ遊べそうです。