Androidを載せたbeagleboard-xmをTimeMachine用のNASにするまで(其の参)
依存するライブラリやプログラムのポーティングができたので次はnetatalk。
これもまずはPC Linux(Ubuntu)上でどんな動作をするのか確認してみる。
netatalkのビルド
netatalkのサイトから安定版の最新ソース(2.2.2)を持ってくる。
http://netatalk.sourceforge.net/
基本的にはconfigureしてmake、make installするだけ。
$./configure --enable-debian
下記のようなsummaryが表示される。
Using libraries: LIBS = -lpthread -L$(top_srcdir)/libatalk CFLAGS = -I$(top_srcdir)/include -D_U_="__attribute__((unused))" -g -O2 -I$(top_srcdir)/sys SSL: LIBS = -lcrypto CFLAGS = -I/usr/include/openssl BDB: LIBS = -ldb-4.8 CFLAGS = Configure summary: Install style: debian AFP: Large file support (>2GB) for AFP3: yes Extended Attributes: ad | sys CNID: backends: dbd last tdb UAMS: DHX ( SHADOW) RANDNUM (afppasswd) clrtxt ( SHADOW) guest Options: DDP (AppleTalk) support: no SLP support: no Zeroconf support: yes tcp wrapper support: no quota support: yes admin group support: yes valid shell check: yes cracklib support: no dropbox kludge: no force volume uid/gid: no ACL support: no LDAP support: no
makeができたらinstallする前にafpdの基本情報を確かめておく。
$make
$./etc/afpd/afpd -V afpd 2.2.2 - Apple Filing Protocol (AFP) daemon of Netatalk This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Please see the file COPYING for further information and details. afpd has been compiled with support for these features: AFP versions: 2.2 3.0 3.1 3.2 3.3 DDP(AppleTalk) Support: No CNID backends: dbd last tdb SLP support: No Zeroconf support: Yes TCP wrappers support: No Quota support: Yes Admin group support: Yes Valid shell checks: Yes cracklib support: No Dropbox kludge: No Force volume uid/gid: No EA support: ad | sys ACL support: No LDAP support: No afpd.conf: /usr/local/etc/netatalk/afpd.conf AppleVolumes.system: /usr/local/etc/netatalk/AppleVolumes.system AppleVolumes.default: /usr/local/etc/netatalk/AppleVolumes.default afp_signature.conf: /usr/local/etc/netatalk/afp_signature.conf afp_voluuid.conf: /usr/local/etc/netatalk/afp_voluuid.conf afp_ldap.conf: not supported UAM search path: /usr/local/etc/netatalk/uams/ Server messages path: /usr/local/etc/netatalk/msg/ lockfile: /var/lock/afpd
とりあえず大丈夫そうに見えたのでmake install。
make install
netatalkの設定
設定ファイルはnetatalk(/etc/default/netatalk)とafpd.conf(/usr/local/etc/netatalk/afpd.conf)とAppleVolumes.default(/usr/local/etc/netatalk/AppleVolumes.default)の3つ。それぞれ付ぃあるの場所はconfigureのオプションで変えられる。実際どこになっているかは、afpd -Vで確認。今回はmake installの前に確認済。
この辺の設定は下記のサイトを参考にした。
http://www003.upp.so-net.ne.jp/hat/netatalk/andsamba.html
netatalk.conf(/etc/default/netatalk)
文字コードに関する設定(ATALK_UNIX_CHARSET、ATALK_MAC_CHARSET)とcnidのログ出力(CNID_CONFIG)に関する設定のみ変更する。下記はオリジナルのnetatalk.confとの差分
diff ./config/netatalk.conf /etc/default/netatalk 11,12c11,16 < ATALK_UNIX_CHARSET='LOCALE' < ATALK_MAC_CHARSET='MAC_ROMAN' --- > # edited > #ATALK_UNIX_CHARSET='LOCALE' > ATALK_UNIX_CHARSET='UTF8' > # edited > #ATALK_MAC_CHARSET='MAC_ROMAN' > ATALK_MAC_CHARSET='MAC_JAPANESE' 39a44,45 > # edited > CNID_CONFIG="-l LOG_NOTE -f /var/log/netatalk.log"
aftp.conf
afp daemonに関する設定。デフォルトのafpd.confの最後に下記を追記した。ユーザ認証方式(-uamlist)、文字コード(-maccodepage)、ログ出力(-setuplog)に関するオプションをつける。特にlionからアクセスするためにはuams_dhx2.soが必須。
- -tcp -uamlist uams_dhx2.so,uams_dhx.so -maccodepage MAC_JAPANESE -setuplog "default LOG_NOTE /var/log/netatalk.log"
AppleVolumes.default
afpで公開するディレクトリの情報を設定する。デフォルトだとユーザのホームディレクトリが公開されるようになっているのでファイルの末尾を下記のように変更する。
# The line below sets some DEFAULT, starting with Netatalk 2.1. # コメントアウト #:DEFAULT: options:upriv,usedots # The "~" below indicates that Home directories are visible by default. # If you do not wish to have people accessing their Home directories, # please put a pound sign in front of the tilde or delete it. # コメントアウト #~ # 追記 :DEFAULT: options:upriv,usedots cnidscheme:dbd maccharset:MAC_JAPANESE volcharset:UTF8 dperm:0700 fperm:0600 ea:sys # 追記(公開したいディレクトリ) /home/afp "afpdata" # End of File
動作確認
netatalk(afpdとcnid)を起動してMacからアクセスできるか試してみる。
sudo service netatalk start
Mac OS (Lion)からafp://
asip-status.plなるツールでapfdのステータスをチェックできるらしいのでしてみた。
$ ./asip-status.pl 192.168.1.100 AFP reply from 192.168.1.100:548 Flags: 1 Cmd: 3 ID: 57005 Reply: DSIGetStatus Request ID: 57005 Machine type: Netatalk2.2.2 AFP versions: AFP2.2,AFPX03,AFP3.1,AFP3.2,AFP3.3 UAMs: DHCAST128 Volume Icon & Mask: exist Flags: SupportsCopyFile,SupportsServerMessages,SupportsServerSignature,SupportsTCP/IP,SupportsSrvrNotifications,SupportsOpenDirectory,SupportsUTF8Servername,SupportsUUIDs,SupportsSuperClient Server name: lynx Signature: f7 7c c1 a1 2a a3 66 b5 d0 83 62 03 e5 c9 4f e5 .|..*.f...b...O. Network address: 192.168.1.100 (TCP/IP address) UTF8 Servername: lynx
UAMsでDHX2が有効になっていない? LionからDHX2が必須になったということでエラーメッセージの内容とも一致する。logレベルをLOG_NOTEからLOG_MAXDEBUGにかえて/var/log/netatalk.logを確認してみたが、こっちでもエラーが出ていた。
Apr 15 04:44:21.802660 afpd[460] {auth.c:1143} (D5:AFPDaemon): uam: loading (/usr/local/etc/netatalk/uams/uams_dhx2.so) Apr 15 04:44:21.803021 afpd[460] {auth.c:1150} (D5:AFPDaemon): uam: uam not found (status=-1)
どうもuams_dhx2.soがうまくビルドできていない様子。configureのsummaryも確認してみると、DHXは有効になっているがDHX2は見当たらない。
調べた結果、DHX2をビルドするのに必要なlibcryptがインストールされていないことが原因ぽい。
Ubuntuにlibgcrypt11-devをインストールしてconfigureからやりなおしたらちゃんとつながるようになった。
configureのsummary抜粋 UAMS: DHX ( SHADOW) DHX2 ( SHADOW) RANDNUM (afppasswd) clrtxt ( SHADOW) guest
asip-status.plの出力抜粋 UAMs: DHCAST128,DHX2