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: nomakeができたら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: lynxUAMsで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)
guestasip-status.plの出力抜粋 UAMs: DHCAST128,DHX2