A2SERVER
AppleTalk networking support on the Raspberry Pi
Linux can support the AppleTalk networking protocol required by Apple II and classic Mac client computers. However, Raspbian does not provide this support as shipped, so to make A2SERVER work as intended, AppleTalk support needs to either be built into the Linux kernel, or provided as a loadable kernel module.
Either method requires recompiling the kernel. Since that's complicated and time-consuming, I've provided a pre-compiled AppleTalk kernel module for recent releases of Raspbian. The a2server-setup installer script offers to automatically download and install the appropriate kernel module for you.
If you'd rather compile it yourself, you can follow the instructions below.
Compiling the kernel
If you want to rebuild the kernel yourself to include AppleTalk support for use with A2SERVER:
Install Ubuntu Server 12.04 LTS 32-bit into a VirtualBox virtual machine, with bridged networking, username: user1
ip addr (note IP address and substitute it for X.X.X.X below)
sudo apt-get -y update
sudo apt-get -y install build-essential git gcc-arm-linux-gnueabi
git clone git://github.com/raspberrypi/linux.git
cd linux
git checkout 470f0a770fca4d972106a7ec76130f9eb16eb864
(this checkout hash is for Raspbian 2013-07-26; see below)
make mrproper
(on the Raspberry Pi:) scp /proc/config.gz user1@X.X.X.X:linux/.config.gz
gunzip .config.gz
sed -i 's/# CONFIG_ATALK is not set/CONFIG_ATALK=m\n# CONFIG_DEV_APPLETALK is not set/' .config
make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- -k
mkdir -p modules
make modules_install ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- INSTALL_MOD_PATH=modules
cp modules/lib/modules/*/kernel/net/appletalk/appletalk.ko /tmp
(on the Raspberry Pi:) scp user1@X.X.X.X:/tmp/appletalk.ko /tmp
(on the Raspberry Pi:) sudo mkdir -p /lib/modules/$(uname -r)/kernel/net/appletalk
(on the Raspberry Pi:) sudo mv /tmp/appletalk.ko /lib/modules/$(uname -r)/kernel/net/appletalk
(on the Raspberry Pi:) sudo depmod
Once you've got A2SERVER working, you can discard the virtual machine if you wish.
If the Raspbian kernel is updated, you'll need to change the checkout hash above to get the correct sources. To get the right hash (the first eight digits are usually enough), enter on the Raspberry Pi:
fwhash=$(zcat /usr/share/doc/raspberrypi-bootloader/changelog.Debian.gz | grep -m 1 'as of' | awk '{print $NF}')
wget -qO- http://raw.github.com/raspberrypi/firmware/$fwhash/extra/git_hash
Checkout hashes:
Raspbian 2013-09-10: 1587f775d0a3c437485262ba951afc5e30be69fa [NOTE: DOES NOT WORK! USE EARLIER RASPBIAN!]
Raspbian 2013-07-26: 470f0a770fca4d972106a7ec76130f9eb16eb864
Raspbian 2013-05-25: af85236f4cf87945c7090ea4bdaf232a6e9b2198
Raspbian 2013-02-09: 1077deea86bd20f72ff5985928bd102c6db34b88
Raspbian 2012-12-16: 10182a3bc434b27740f81c2b836a1af943060241
Raspbian 2012-08-28: 10182a3bc434b27740f81c2b836a1af943060241
back
A2SERVER home page