My Linux m68k Projects
Atari ROM Port rtl8012 ethernet module for Linux m68k
Building a Kernel Cross Compiler for m68k


Atari ROM Port rtl8012 ethernet module for Linux m68k

This driver is derived from rtl8012.c written by S O L A M Y L W A R E , Stepan Skroband and rtl8012.c from FreeMiNT written by Frank Naumann (http://sparemint.atariforge.net/sparemint/) and Vassilis Papathanassiou (http://users.otenet.gr/~papval/).

The source code can be downloaded here:
ata_rtl8012.0.90.tar.gz

The compiled module can be downloaded here:
Kernel 2.2.20: ata_rtl8012.0.90-2.2.20.tar.gz
Kernel 2.2.25: ata_rtl8012.0.90-2.2.25.tar.gz
Kernel 2.4.27: ata_rtl8012.0.90-2.4.27.tar.gz (not available yet)

Installing the Module:
Copy the module ata_rtl8012.o to /lib/modules/kernelversion/net.
Insert it with insmod ata_rtl8012.
If you want that the module is loaded at boottime you have to add it to /etc/modules.
Assign an IP address with ifconfig eth0 x.x.x.x netmask y.y.y.y or edit /etc/network/interfaces.
My interfaces file look like this, because I use a DHCP server to assign the IP address, nameserver and defaultgateway:
falcon040:~# more /etc/network/interfaces
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)

# The loopback interface
auto lo eth0
iface lo inet loopback
iface eth0 inet dhcp
falcon040:~#

Speed:
FTP upload to the Falcon: approx. 150-160 KB/s
FTP download from the Falcon: approx. 240-260 KB/s

Known problems:
No reading of the mac address which is stored in a serial eeprom in the adapter. So the mac address is hard coded in the source (same as it is in the mint driver).
At the moment there is no error handling at transmitting packages or detecting collisons, which sometimes hang the adapter and you have to reset it by hand.
For example with:
ifconfig eth0 down/up
or /etc/init.d/networking restart


top

Building a Kernel Cross Compiler for m68k

I have tested these cross compiler on an Apple Powerbook running Debian Sarge and on an i386 running Debian Woody. On the Powerbook (G3 400MHz) cross compiling a 2.2 kernel with modules takes about 6 minutes and on the i386 (P4 3GHz) it takes less than 2 minutes.
On an Atari Falcon with Afterburner (68040) with 36 MHz it will take about 4 to 6 hours.
On an Atari TT ?????? Days ???? I've never tried.


GNU binutils
Download the GNU binutils from ftp://ftp.gnu.org/gnu/binutils/ or from my website.
Note that you need to be root for the final "make install" to work since it wants to write files in the /usr/local subtree. The end result of this step can be summarized as follows:
GNU gcc
Download the GNU gcc-core-2.95.3 from ftp://ftp.gnu.org/gnu/gcc/ or from my website. In this case I used 2.95.3 because in my experience the 2.2 and 2.4 kernel won't compile properly with a newer gcc.
Note, once again, that you need to be root for the final "make install" to work since it wants to write files in the /usr/local subtree. The end result of this step can be summarized as follows: We now have a way to cross-compile C source code to m68k machine code!

The Linux Kernel
If you have Debian installed and apt configured correctly just do these steps to get the kernel source package: Note, to use "make menuconfig" you must have the package ncurses-dev installed:
apt-get install -f ncurses-dev
If you wan't to build a complete installable kernel package for a Debian system, than you have to install the kernel-package with:
apt-get install -f kernel-package
A detailed discription of these tools can be found here: http://newbiedoc.sourceforge.net/system/kernel-pkg.html.en
One additional note:
If you have to cross compile the 2.4.27 kernel than you have to create a symlink (m68k-linux-gcc-2.95) to your cross gcc (m68k-linux-gcc) at /usr/local/bin so that it can be found by the makefile or edit the makefile and remove "-2.95" at "CC = $(CROSS_COMPILE)gcc-2.95".

top