OSX Lion + Pogoplug でTimeMachineに挑戦
先日Macbook Air(2011)を買って、環境の移行をシコシコやっていたわけですが、どうせならTimeMachineを手元にあるPogoplugから行いたくて、色々と挑戦していた。
成功したのでメモっておく。
なお、面倒なので忙しい方は素直にTimeCapsuleを買おう。
- OpenPogo化する
さすがにこれは適当にググッてもらったほうがいいと思う。
注意点としては、
- ipkg update時にwgetがしょぼくてエラー
#!/bin/sh arg=`echo $* | sed -e 's/--passive-ftp//g'` /bin/busybox wget $arg
ln -s wget.sh wget
- ipkg updateしてもopen pogoがなくなっててエラー
-
- リポジトリがお亡くなり。次の行を参考にして。
-bash-3.2# cat /opt/etc/ipkg/armel-feed.conf #src cross http://openpogo.com/repo src cross http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/stable
- バックアップしたいディスクを予めHFS+でフォーマットする。
ついでにディレクトリをいっこ作っておこう。私は tm という名前のディレクトリを作った。Pogoplugの余計なメタデータがディスクのルートに作られるため。
- Pogoplugに差してマウントポイントを調べる
私は4つめだったので/tmp/.cemnt/mnt_sdd1だったお
- 依存関係をいっぱいインストールする
netatalk2.2.0-p6をビルドするのだが、たぶん色々と依存関係を解決せねばならない。
avahi, libgcrypt, libssl
あたりを ipkg installで入れよう。もしかしたら他にも必要かもしれない。 私はこの前にlibnslとsambaを入れているので。
netatalkの前に最新のberkeleyDBを入れる。oracleのHPからゲットしてくる。
普通にconfigure, make, make installすればいけたはず。
一点、私の環境では既存のlibdbがあったので、 configure --prefix=/opt/local とした。
- netatalk2.2.0-p6をインストールする
https://github.com/jrmithdobbs/netatalk-2-2-0-p6
ソースはここ。
次に、ソースにパッチを当てる。
http://seongbae.blogspot.com/2009/09/turning-pogoplug-into-timemachine.html
ここは参考になる。転載。
Index: afp_options.c =================================================================== RCS file: /cvsroot/netatalk/netatalk/etc/afpd/afp_options.c,v retrieving revision 1.45 diff -r1.45 afp_options.c 212a213,216 > if (strstr(buf, " -noallowroot")) > options->flags &= ~OPTION_ALLOW_ROOT; > if (strstr(buf, " -allowroot")) > options->flags |= OPTION_ALLOW_ROOT; Index: auth.c =================================================================== RCS file: /cvsroot/netatalk/netatalk/etc/afpd/auth.c,v retrieving revision 1.63 diff -r1.63 auth.c 255c255,256 < if ( pwd->pw_uid == 0 ) { /* don't allow root login */ --- > if (!(obj->options.flags & OPTION_ALLOW_ROOT) > && pwd->pw_uid == 0 ) { /* don't allow root login */ Index: globals.h =================================================================== RCS file: /cvsroot/netatalk/netatalk/etc/afpd/globals.h,v retrieving revision 1.26 diff -r1.26 globals.h 39a40 > #define OPTION_ALLOW_ROOT (1 << 8) cvs diff: Diffing nls
上記パッチを頑張って当てよう。
ちなみに、globals.hはatalkdディレクトリの方に移動しているので注意。
また、上記パッチは少し古いので、手動でやろう。確か
#define OPTION_ALLOW_ROOT (1 << 10)
このあたりが違ったはず。
終わったらビルドする。
./configure --with-bdb=/opt/local --with-ldap=no --prefix=/opt
私の場合のconfigure option。
一応、私の場合の結果を貼っておく。ご参考。
>||
LIBS = -lpthread -L$(top_srcdir)/libatalk
CFLAGS = -I$(top_srcdir)/include -D_U_="__attribute__*1" -g -O2 -I$(top_srcdir)/sys
SSL:
LIBS = -L/opt/lib -L/opt -lcrypto
CFLAGS = -I/opt/include -I/opt/include/openssl
LIBGCRYPT:
LIBS = -L/opt/lib -lgcrypt -lgpg-error
CFLAGS = -I/opt/include -I/home/slug/optware/cs08q1armel/staging/opt/include
BDB:
LIBS = -L/opt/local/lib -ldb-5.2
CFLAGS = -I/opt/local/include/
Configure summary:
Install style:
none
AFP:
AFP 3.x calls activated:
Extended Attributes: ad | sys
CNID:
backends: dbd last tdb
UAMS:
DHX ( SHADOW)
DHX2 ( SHADOW)
RANDNUM ( SHADOW)
passwd ( SHADOW)
guest
Options:
DDP (AppleTalk) support: no
CUPS support: no
SLP support: no
Zeroconf support: yes
tcp wrapper support: no
quota support: no
admin group support: yes
valid shell check: yes
cracklib support: no
dropbox kludge: no
force volume uid/gid: no
Apple 2 boot support: no
ACL support: no
LDAP support: no
|
*1:unused