English Version UK mirror

SparcLinux Notes

Last updated: April 27, 1997
以下は私が SparcLinux が走っている Sun Sparc 機で netatalk を 走らせようとコンパイルしたときの記録です。Netatalk とカーネルソースの 変更はTom Dyasによります。 カーネルソースの変更は、2.0.30 より前のカーネルでのエンディアンの 問題を解決します。これにより、 ntohl()を始めとする netatalk のコードを変更せずにすみます。

ところで、Sun Sparc と Intel のアーキテクチャーの大きな相違点は エンディアンの問題です。Intel のチップは 32bit ワード(4B) を 1-2-3-4 という順番で格納します。これをリトルエンディアンと呼びます。 Sparc チップは 32bit ワードを 4-3-2-1 という順番で格納します。 これはビッグエンディアンです。ネットワーク I/O は全てビッグエンディアン で扱われているため、リトルエンディアンを採用している(Intel のような) アーキテクチャーでは、データをネットワークに送る前に変換しなければ なりませんし、受け取ったデータを処理する前にリトルエンディアンに 変更しなければなりません。この処理はホストからネットワークにデータ を送るときには htonl() を呼ぶことによって、ネットワーク からホストにデータを送るときには ntohl() を呼ぶことによって 行います。ここにあったバグは 2.0.30 カーネルと 2.1.34 カーネルで修正され ました。


必要なもの:
すること:
ソースの解凍と展開
配付されている netatalk を適当な場所に置き、つぎの様にタイプします:

tar -xzvf netatalk-1.4b2-compiled.tar.gz

これで配付されているソースを解凍し、展開できました。

カーネルにパッチを当てる
これはカーネル 2.0.30 より前の版をコンパイルする前に用意しなければ ならないものです(2.0.30 カーネルではこのパッチは不要です)。 カーネルソースの root で、atalk.h.diff パッチをカーネルソースに当てます:

patch < atalk.h.diff

変更されるのはinclude/linux/atalk.hです。

カーネルを設定し、コンパイルする
警告: カーネルをコンパイルしたことがない人は Kernel-HOWTO を読んで下さい。ここでしくじるとシステムが動作しなくなるからです。

Netatalk を動かすために、カーネルに Appletalk DDP Support が不可欠 です。以下のコマンドでカーネルを設定して下さい。

make menuconfig

"Networking options" のところで、"Appletalk DDP" を組み込むか モジュールとして使うようにして下さい。

適当な方法でカーネルをコンパイルします。私は次のような コマンドを使っています:

make vmlinux

silo を必ず走らせて、新しいカーネルで再起動します。

SparcLinux netatalk の残りの部分は Intel Linux バージョンと同じです。
Linux-Netatalk-HOWTO 日本語訳を 参照して下さい。

This page mantained by Anders Brownworth. Copyright © 1997

このページは堀江誠一が翻訳しました。