翻訳 堀江誠一
Netatalk は LAN 上の Unix 機を AppleTalk のファイルサーバー に変えます。この文書を書くにあたって、AppleTalk サービスを Linux 上で行うために Netatalk を設定しようと考えている Linux 管理者の助けになるよう注意しました。Linux は、自由に 配布できる Posix 互換の U*ix であり、386、486、Pentimum PowerMacintosh、Sun、DEC Alpha その他の上で動きます(他には SGI、 等など)。Netatalk は、Unix ファイルシステムの一部 を AppleTalk プロトコルを使って外部に公開するプログラムで す。Netatalk を使えば Macintosh コンピュータで、普通の AppleTalk Network Server のファイル同様に、Unix のボリュー ムをマウントできます。Netatalkは、われらがミシガン大学 Research Systems Unix Group の有志の手によります。何かあったら Netatalk@umich.edu へどうぞ。
英国に Hugh Dixon が 運営する Netatalk-HOWTO の UK mirror が あります。また、日本語版を 堀江誠一 が 管理しています。
新しく Netatalk Counter を始めました。 あなたの netatalk の設定が正しく終わったら、ここに書き込んでくだ さい。皆さんの協力で、Netatalk がどのように使われているか知ること ができます。なお、これは Linux 以外の利用者にもお願いします。
ご意見や訂正 などは大歓迎です。どなたかに私のページのひどいミススペルの diff を送ってもらうのですが、手違いでメールボックスを吹っ飛ばして しまったため、なくしてしまいました。 もし読んでいたら再送してください! 何か問題があるときには、 Netatalk listに投稿するのがいいでしょう。
netatalk サーバーに誰がログオンしているか知りたくありませんか? nuを試して見てください。
始める前に:
- 興味のある方のために ハード / ソフトの おすすめ を用意しました。
- netatalk on SparcLinux のためのページを用意しました
必要なもの:
これからやること:
- Linux kernel 1.2 か、それ以降の版が動作している コンピュータ。また、ソースとコンパイラーも必要。
- マルチキャスト可能な Ethernet カード(ほとんどのものは可能ですが、 インテルの EtherExpress のようにできないものもあります)。
- LAN。 Mac がぶら下がっていること(いや、無いなら無くてもいいんですけど)。
- Netatalk-1.3.3 プログラム
- ソースコード 。
- どうしても最新のベータとおっしゃるなら netatalk-1.4b2.tar.gz (このベータ版は、より少ない CPU パワーでより速く走ります)
- RedHat 版のコンパイル用にnetatalk 1.4b2 under RedHat 5.0 があります。
- Netatalk binary RPMを使えば、RedHat ユーザーは以下で説明する設定のほとんどをとばす事ができます。
- Netatalk ソースコードを 入手し解凍します。
- 1.2.* カーネルを使用しているなら、 1.2.* カーネルガイドの指示に従います。(2.* 以降のカーネルを 使用しているならば、変更は不要です。)
- いくつがバグを修正するために、 Netatalk-1.3.3 パッチガイド に従います。
- Netatalk-1.3.3 のソースコードの 構成を設定します。
- Netatalk をコンパイルします。
- Netatalk を導入します。
- AppleTalk サービスつきで カーネルをコンパイルします 。
- Netatalk のオプションを設定します。
- サーバーを起動します。
- 新しいボリュームをMacに マウントします。
- その他の 興味深い話題。
(Netatalkのインストールの後にカーネルコンパイルをもってきたこと に気がつきましたか?これはカーネル1.2.*ユーザーのためです。Netatalk をカーネル1.2.* で使用するにはNetatalkのパッチが必要です。このパッチ により、Netatalk は make kinstall による導入中にカーネルソースの Appletalk 機能にパッチを当てます。ですから Netatalk を導入した 後にカーネルコンパイルを行うのです。なお、このパッチはカーネル 1.3.* 以降の AppleTalk では不要になりました。(訳注:従って、新し いカーネルを使っている人は、カーネルコンパイルを先にやっても 構いません。)
Netatalk ソースコードを入手し解凍ます
- 最新のソースコードを 入手します。
- 展開したい場所に、ソースコードを置きます。
- 解凍します。次のように打ってください:
gzip -d netatalk-1.3.3.tar.gz
- 配布ファイルを展開します。次のように打ってください:
tar -xvf netatalk-1.3.3.tar
カーネルに依存する作業と、Netatalk 自身に関する設定
- 1.2.* カーネルを使用しているなら、 1.2.* カーネルガイドの指示に従います。
- いくつがバグを修正するために、 Netatalk-1.3.3 パッチガイド に従います。
Netatalk-1.3.3 のソースコードの構成を設定します
Note:Andrew File System を使用したい方は、最初にやるべき ことがあります。配布ファイル中の README.AFS を読んで下さい。
- パスを設定します。Makefile を編集して、導入先と、 man ページを置くところを指定して下さい。Makefile で は、次の行を編集します:
DESTDIR=/usr/local/atalk
ここで指定した位置に、Netatalk のファイルが導入されます。また:
MANDIR={DESTDIR}/man
という行で、Netatalk の man ページを導入する先を指定します。 私は次のように編集しました:
MANDIR=/usr/local/atalk/man
(これは、上のMANDIRの設定と厳密に同じ設定です)
Netatalk をコンパイルします
- Netatalk ディレクトリで、
make
と、打ってください。これで Netatalk のバイナリがすべて 作成されます。この間、すべてのコンパイルが致命的なエラー なしに終わることを確認しておいてください。致命的なエラー とは何らかの理由によってコンパイルができないことを示しま す。こういう状況が起きたら、無視して先に進んではいけません。 かならずあとに戻って、何が悪かったのかを調べてください。
Netatalk を導入します
Note:
- Netatalk ディレクトリで、次のように打ってください:
make install
これによって、Netatalk は Makefile で記述した DESTDIR に導入されます。
make install
では、設定ファイルまでは導入しません。 しかしこれらのファイルはNetatalk を走らせるのに不可欠です。覚えておいてください。
AppleTalk サービスつきでカーネルをコンパイルします
Note: 2.0 カーネルを使用する(Debianのような) Linux 配布の多くが、 AppleTalk 対応機能を最初から取り込んでコンパイルされています。 このような場合は、カーネルをコンパイルする必要はありません。 どのようなコンパイルオプションでコンパイルされたかを、/usr/src/linux/
ディレクトリでmake menuconfig
コマンドを実行し て確認してください(訳注:導入直後は必ずしもカーネルの 状態がここに反映されているわけではありません。訳者の slackware 96 では、kernels の下に各カーネル用のディレクトリ があり、(例:kernels/aha152x.s/)その中の config ファイルの中に導入直後のカーネルの構成が記述されていました。)。
Note:AppleTalk を使おうと思っているネットワークカード用に TCP/IP が動いていなければなりません。AppleTalk 対応機能自身は、AppleTalk を単体で走らせるために必要な下位のフレーミングコードをもってい ません。なお、、カーネルコンパイルの経験があったほうがいいでしょ う。もしないなら、Kernel-HOWTO 文書を呼んでください( Slackware では
/usr/doc/faq/howto/Kernel-HOWTO.gz
です。zless /usr/doc/faq/howto/Kernel-HOWTO.gz
コマンド で見ることができます)。
- Linux ソースディレクトリーに移動します(普通は
/usr/src/linux
)
make config
と打ちます( あるいはmake menuconfig
、お好きなのを )。
- あなたの構成にあわせて質問に答えます。
Configure AppleTalk DDP support? [n]
に、 必ず yes と答えてください。- 1.3.* より古いカーネルでは、IEEEE802.2 対応機能が 別に必要です。 この機能をいれるために、
Configure IPX support [n]
に yes と答えてください。 IPX パッケージが IEEE802.2 機能を提供してくれます。1.3.* カーネル以降はこのオプションを選ぶ必要はなくなりました。 AppleTalk 用にカーネルが IEEE802.2 を提供するようになったからです。
make dep; make clean
を実行してコンパイルの準備をします。
- 新しいカーネルを作ります。これが初めてなら、 Kernel-HOWTO を読んでおいてください。与えるコマンド によって、生成されるカーネルの種類は異なります( 私が コンパイルしたときには、
make zImage
コマンドを使用しました )。
Note:必要なら、AppleTalk 対応を モジュールとすることもできます。
- 古いカーネルをどこかにコピーしておいてください。 ひょっとしてたった今コンパイルしたばかりのおニューの カーネルが、憎しみを胸にタイヤをきしませながら Linux を急停止させないとも限りませんから。
(訳者注:古いカーネルで予備のブート方法を作っておく べきです。DOS から LOADLIN を使うのはいい手です。 私は DOS の起動フロッピーに LOADLIN を乗せて、 不測の事態に備えています。)
- 新しいカーネルを導入してシステムを再立ち上げします。 気をつけて!ここでドジを踏むと、システムは立ち上がりませ んよ。カーネル導入に関しては HOWTO 文書を良く読んでおいて ください。
(訳注:この段階では、カーネルはコンパイルされただけで 導入されてはいません。導入については Kernel-HOWTO 等を 読んでください。)
Netatalk のオプションを設定します
Note: この文書では AppleTalk のファイルサーバーのみの 説明を行います。印刷オプションに関しては触れません。 例のなかではプリントオプションがコメントアウトされて いることに注意してください。Mike Pearson と Bill McGonigle が 印刷 に関する WEB ページを用意しています。
atalkd.conf
ファイルを作成してください。Netatalk ソースディレクトリのetc/atalkd
の下にetc.atalkd.conf
というファイルがあります。普通は、このファイルを編集し たあと、あなたの Netatalk ディレクトリ DESTDIR/etc (/usr/local/atalk/etc
)にコピーし、 atalkd.conf に名前を変更します。atalkd.conf
の編集方法と 例を、用意しておきました。
AppleVolumes.default
ファイルとAppleVolumes.system
ファイルを作成してください。この二つのファイルは、 どのディレクトリを Appleshare ボリュームとして提供 するかをLinux に教えます。Netatalk ソースディレクト リのetc/afpd
の下にetc.AppleVolumes.default
とい うファイルと、etc.AppleVolumes.system
というファイ ルがあります。普通は、この二つのファイルを編集した あと、あなたの Netatalk ディレクトリ DESTDIR/etc (/usr/local/atalk/etc
)にコピーし、 それぞれAppleVolumes.default
とAppleVolumes.system
に名 前を変更します。この二つのファイルの 編集方法と例を、 用意しておきました。
- (印刷オプションを設定するときは、ここで設定します)
/etc/services
ファイルを編集し、以下 の AppleTalk サービスを追加します:
rtmp 1/ddp # Routing Table Maintenance Protocol
nbp 2/ddp # Name Binding Protocol
echo 4/ddp # AppleTalk Echo Protocol
zip 6/ddp # Zone Information Protocol
The
/etc/services
は、あなたのコンピュータがどのような ネットワークサービスを提供するかを決めます。NIS ( network information system、あるいは YP とも呼ばれます) を使用している場合、上の 4 行を services ファイルに追加しない でください。上の 4 行は、あなたの NIS マスター機の設定 に追加してください。
- ソースのなかにある
rc.atalk
rc.atalk スクリプトを編集します。 これは AppleTalk サービスを起動するためのものです。私は 次のようなスクリプトを使用しています。
ATALKDIR="/usr/local/atalk"
echo 'Starting AppleTalk fileserver...'
${ATALKDIR}/etc/atalkd
echo -n 'atalkd'
${ATALKDIR}/bin/nbprgstr -p 4 `hostname|sed 's/\..*$//'`:Workstation
${ATALKDIR}/bin/nbprgstr -p 4 `hostname|sed 's/\..*$//'`:netatalk
echo -n ' nbprgstr'
${ATALKDIR}/etc/afpd
echo ' afpd.'
Note: ネットワークのデータ構造が安定化する時間をとっておくために、 上の例のコマンドはバックグラウンドで呼び出さないようにしてく ださい(訳注:バックグラウンドで呼び出すと、例えば atalkd による準 備が終わる前に afpd が立ち上がったりしてしまいます。)。
- システム起動時に AppleTalk サービスが自動的に立ち上がる ように設定します。ソースディレクトリから
rc.atalk
ファ イルを/etc/rc.d
に移し、実行可能にします (chmod 755 /etc/rc.d/rc.atalk
)。/etc/rc.d
ディレクトリーのrc.local
を編集し、 rc.atalk スクリプトを呼び出すようにします。そのために次の行をrc.local
に追加してください。:
/etc/rc.d/rc.atalk
- あなたが Linux 機上に作ったボリュームを他のだれかにマウントさせるには、 その人達の有効なシェルアカウントを Linux 機上に作らなければなりません。 AppleShare は、最長 8 文字のパスワードしか使用できませんので、Linux シ ステム上のユーザーのパスワードも 8 文字以下とします。有効なシェルアカウ ントとは、
/etc/passwd
ファイルのユーザー記述の最後に /bin/sh とか /bin/tsch が書かれてあるユーザーです。もし、ここに/dev/null
などと 記述してあると、ユーザーはログインできません。Netatalk では、root で のログインはできません。当然でしょう。してはいけません!
サーバーを起動します
すべての導入が完了し、設定が正しければ、 問題無く AppleTalk サーバーを起動できます。
- AppleTalk サーバーを起動する。
/etc/rc.d
ディレ クトリから、rc.atalk
を走らせます。ゆったり椅子 にもたれて少し待ちましょう。その間にシステムがネ ットワークをチェックして自動的に設定を行います。 code>rc.atalk は、普通は起動時に呼び出されます。(訳注:afpd は起動に結構な時間がかかります。 焦らないで待っていてください。訳者のAm5x86P75-133 の場合、30秒はかからないようです)
新しいボリュームをMacにマウントします
さて、お楽しみの時間です!
- Macintosh を用意して Ethernet に正しく接続します。
- アップルメニューのセレクタを選びます。
- 皿を掲げている手のアイコン( AppleShare サービス ) をクリックします。注意:この時点で AppleTalk が アクティブになっていないといけません。アクティブ でないなら、アップルトークのラジオボタン の「使用」をクリックしてアクティブにし、Macを再起動します。 もしこれでうまく行かないのならば、Mac が EtherTalk ポートではなく LocalTalk ポートを見ている可能性があります。 正すには、ネットワークコントロールパネルを開き、 EtherTalk をクリックします。そして、もう一度セレクタを 試してみましょう。
- Unix システムに登録してあるユーザー名で、AppleShare サーバーにログインします。もし、Unix がログインした ユーザーに対して公開しているディレクトリー への書き込みを禁止しているなら、ボリュームはリードオ ンリーとしてマウントされます(当然、このユーザーに読み 込み権があるとしてですよ)。マウント後に、ディレクトリ ーの読み書き権を変更した場合、いったんマウントを解除 して再度マウントしなければなりません( afpd はボリュー ムをマウントするときに読み書き権をディレクトリから読 み出します )。
- Unix ワークステーションがウインドウの右に見えるはず です。これをダブルクリックしすると、
AppleVolumes.system
とAppleVolumes.default
に記述したボリュームが現れます。
- マウントしたいボリュームをクリックします( シフト-クリックで複数のボリュームを選べます)。
- Ok ボタンを押すと、Linux のボリュームが Macintosh に現れるでしょう( 拍手 )。
- マウントしたサーバーをアンマウントするには、 そのアイコンをごみ箱に捨ててください。ボリュ ームが消去されたりはしませんからご安心を ( アップルにしてはあまりいいメタファーとは いえませんね )。
その他の興味深い話題
- RedHat 5.0 利用者は パッチ済みソースか、Charles Barrassoによるパッチを使わないと コンパイルできないでしょう。 このパッチの大半は #include 行を追加 するようになっています。また、RedHat は shadow pasword をつかうので、 -DSHADOWPW を宣言します。
- 私は afpd process を使用している利用者の一覧を作る nu という ちょっとした perl スクリプトを作りました。利用するには、上のリンク からダウンロードして保存してください。つぎに
chmod +x nu
を 行って、実行可能にします( perl が必要です)。使用したら、どう思うか教えて ください。
- 問題がある場合には私が作った tips WEB ページを 見てください。ここの tips は、いろいろな問題を 何とか解決したユーザーからの例を集めたものです ので、ここを覗いておけば同じような苦労をせずに すみます。この文書で説明した文書については、tips ページでは説明していないかもしれません。ですから、 必ずしも一貫したものとはなっていないかもしれません。
- Jay Schulist が Localtalk with Linux, に関するホームページを開いてます。これは彼が書いた "Cops" というドライバーと これを使って Linux に繋ぐことのできるハードウェアを説明してます。2.0.30 カーネル用のパッチが有ります。また、2.1.44 以降のカーネルはドライバを はじめから持っています。また、IP over Localtalk にかんする記述も あります。
- Bill McGonigle が 問題解決 のための Netatalk WEB ページを管理しています。
- Rob Newberry は、 Mac ユーザーと Windows ユーザーのための Linux の機能 WEB ページを管理してます。
- ミシガン大学による 正式な Netatalk ホームページ があります。
- Samba と Linux による Windows のためのファイル、印刷サービスの ページがあります。
- PowerMac 用の Linux である MkLinux は、Netatalk 1.3.3 に対応しています。
- Sun Sparc ハードウェアで動く SparcLinux のホームページがあります。
- Yahooには、 Linux Ports のコーナーもあります。
- listenv メールリストサーバーが Netatalk に関するいろいろな 話題についてのメールリストを作成しました。それほど大きな規 模のサーバーではありません。 netatalk-admins-request@umich.eduにメールを送って、 メールリストに参加できます。 投稿は netatalk-admins@umich.edu 宛てになります。
- Linux に話しを絞った Netatalk のメールリ ストもあります。参加するには listserv@netspace.org にサブジェクトなしで送ってください。本文は SUBSCRIBE LINUX-ATALK (あなたのフルネーム) にしてください。脱会するには、同じメールア ドレスに本文をUNSUBSCRIBE LINUX-ATALKとし て送ります。メールリストへの発言は、 linux-atalk@netspace.orgに行います
- Netatalk-1.3.3.b2 と Netatalk-1.3.3 の大きな違いは 、1.3.3 が make のオプションに kinstall を含まない ことです。kinstall は、1.2.* カーネルへの AppleTalk サ ポートパッチとして使用されました。カーネル 1.3.* か らは AppleTalk サポートがカーネルに入っていますので 、ベータ版を使い続ける意味はありません。カーネル 1.3.* の古いものは、AppleTalk の実装がおかしくなっています。 ですから、1.3.9 より前のカーネルは使用しないでください。
- 以前、Intel の EtherExpress 用のドライバーを Netatalk サーバーで 使用したとき、Mac のセレクタにサーバーが現れないことがありました。 これについて、多分マルチキャストされる情報を Mac が読み取れていないのではないかと議論 されたことがあります。と、いうのはこの機能は
eexpress.c
ファイルの 中でこんな風に注釈を付けられていたからです。 :
set_multicast_list(struct device *dev, int num_addrs, void *addrs)
"This doesn't work yet" からわかったことは あんまりなかったです ;)
{
/* This doesn't work yet */
#if 0
short ioaddr = dev->base_addr;
....
私も EtherExpress を持っていたのですが、すっげー 大ハズシでした。個人的な意見ですが、 私なら 3Com の 509 カードとかその辺のカードにしとき たいです。3Com の 59x カードが、PCI マシン用には最適 です。
- Macのネットワークアイコンを変更したいという 人もいます。この方法を説明しましょう。「情 報を見る」メニューで気に入ったアイコン を開き、情報ダイアログのアイコンを選択しま す(選択状態では、アイコンの周りを黒い四角 が囲みます)。これをコピーしてください。ネ ットワークボリュームのアイコンを「情報を見 る」で開き、皿の上に地球が乗っているアイコン を選び、ペーストします。一丁上がり!
- Sam Woolf が、上の操作でも解決できない場合の対処法を送ってくれました。 Aladdin System の Rejuvenator というソフトが、サーバーやフォルダーのおかしくなったアイコンを 修復してくれるそうです。
- Netatalk 1.3.3. でシャドーパスワードに対応するには、この auth.cを、etc/afpd にある オリジナルの代わりに使います。そしてafpd を -DSHADOW_PASSWORD オプションで再コンパイルしてください。これでシャドーパス ワードに対応できます。 なお、以上を行うにはetc/afpd/Makefile を編集し、 -DSADOW_PASSWORD を CFLAGS のリストに追加してください。 Netatalk 1.4b2 パッケージには、これは不要です。たんに -DSHADOWPW でコンパイルしてください
- 興味深い話もあります。Paul Hargrove が LINUX 用の hfs を 書きました。彼は Macintosh ボリュームを Linux で読み書 きできるようこれを書きました。書き込みについてはち ょっと制限があります。私はこのソフトを使用して Linux 機 に Macintosh フォーマットの CD-ROM をマウントして Netatalk 越しに Macintosh ユーザーに使用させています。目に触れたら試し てください。私はなかなか快適に使いました。 このソフトでディスクをマウントするときには、 fork=netatalk オプションを使用してください (例:
mount -t hfs -o fork=netatalk /dev/your_cd /where_you_want_it_mounted
)
- 私の linux/Netatalk 機の上では、もう一つ samba というソ フトも動いています。御存じない方のために説明すると、samba は Windows ユーザーのための Linux その他の Unix で走るファイ ル・プリントサーバーです。私は CD-ROM や, 書き込みもできるネ ットワークボリューム、それからプリント機能を Windows ユーザ ーと Macintosh ユーザーに samba, hfs, Netatalk を使って一台 の Linux で提供しています。(いやぁ、web サーバーとか proxy サ ーバーとか mail それから news とかもこの Dell 486 DX2/66 で 動いているんですよ! こいつは The Stony Brook Schoolの図書館みたいなものです。)
(訳注:訳出時点での samba の最新バージョン samba-1.9.16p9 には、 日本語コードシステムとして CAP が追加されています。netatalk と samba で同じディレクトリーを公開する場合、samba の日本語コードは CAP に してください。詳しくは samba のソースディレクトリの docs/README.jpn を参照してください)
- サーバーの名前をセレクタに現れる通りに変更したいならば、 afpd を -n オプションで呼んでください。私はサーバー名の頭文字を 大文字にしたいので、次のように呼んでいます。
これで(全部小文字の)eyore ではなく、 Eyore になります。afpd -n "Eyore"
- Werner Eugster が printing HOWTO、 Mike Pearson and Bill McGonigle が 印刷に関する WEB-Page をつくりました。おかげでこの WEB-Page には書かずにすんでいます ;)
- Apple と OSF-RI が Linux を Power Mac に乗せました。これは MkLinux と呼ばれています。 私はいま、 Radius 81/110 Power Mac クローンの 上の MkLinux で書いてます。おまけに、 Michel Pollet が Netatalk-1.3.3 を MkLinux に乗せてしまいました。つまり、Mac 上で Linux を走らせて 、さらに AppleShare ファイルサーバも動くわけです。
MkLinux は Mach 3.0 マイクロカーネルで動きます。ですから、MacOS を Linux のプ ロセスとか、Mach 上の別 OS として走らせると面白いなぁと思います。 私の Power Mac にはモニターがふたつついてます。片方で MacOS、もう一 方で X なんかも面白そうです。夢の開発環境です。
- このページの冒頭のような、Mac の「3D」インターフェースを 作にはどうしたらいいのかを何人かから聞かれました。えー、私が やったわけではないんです。これは、 Aaron という Greg Landweberによるイカス機能拡張です (実のところ、今では Greg による Kaleidoscope と言う製品に 大幅に強化されて組み込まれています)。 評価をするぶんにはフリーでして、ダウンロードしてシステム フォルダーにコピーし、Mac を再起動して使用します。
- このページが日本語だとどう見えるか、 興味ありませんか?
- 気づかなかった方に説明します。私はコンピュータの名前を漫画の 登場人物からとっています( 上の例に出てきます )。Calvin が Calvin and Hobbes からきているのは簡単ですね。他も説明して ほしいなら、Thak というのは Gray Larson が書いている The Far Side によく出てくる、 ガタイの割におつむの弱い原始人です。
仕事を探しています。 紹介していただけると大変助かります。
拙文が少しでも役に立つことを願います。これを読んでうまくインスト ールできたら私にも「やったぜ」と教えてください。ここに書いたこ とが本当にちゃんと動いているか、助けになっているか知りたく思って います。どうしても私に何か感謝の印を、という方は近所に使っていな い Silicon Graphics のワークステーションがないか聞いてみてくださ い。是非養子として引き取って私のアンティークコレクションに加えたく 存じますです、はい。
このページは 堀江誠一 が、翻訳しました。
翻訳に際し、貴重な意見を寄せてくださいました JF のメンバーにこの場を 借りてお礼申し上げます。