Linux/m68k Frequently Asked Questions
Chris Lawrence
Version 2.2.6, 21 August 1999
This is the Frequently Asked Questions file for the port of the Linux
operating system to Motorola 680x0-based systems. It also provides
some information about the Linux port for PowerPC-based Amigas,
Linux/APUS. This is version 2.2.6 of this FAQ, which documents
Linux/m68k and Linux/APUS kernel versions up to and including 2.0.36
(old stable), 2.2.10 (new stable) and 2.3.14 (developmental).
What's New in this version of the FAQ
If you've read a previous version of the FAQ, here's what's changed in
the past few revisions:
2.2.6
Jes has released kernel 2.2.10 (new stable) and 2.3.14
(developmental).
The new, GPL'ed FPU emulator is integrated in 2.3.14, and may appear
in the next 2.2 kernel.
According to several users, the ``Eagle Linux'' distribution has been
discontinued. Note that fact.
Update the IRC info to point to the channel at irc.dalnet.com.
2.2.5
Jes has released kernel 2.2.8; there are still some stability issues
with this kernel (notably in the keyboard driver), so its use is not
recommended.
Jes has made a pre-release of kernel 2.3.1; it does not work ``out of
the box,'' although some patches posted on the mailing list may help.
New FAQ entry on Watchtower (see ).
Information on FPU emulation has been updated; the new emulator is
apparently quite usable.
2.2.4
Restored .
Added a mention of Oktagon SCSI support. Revamped the whole
Amiga SCSI support section.
Mentioned Amiga joysticks as a supported device. Note that in
2.2.6 you need to manually enable the config option.
2.2.3
Miscellaneous typo fixes.
Update Red Hat URLs, yet again.
Upgraded 2.2.7 to ``Quasi-stable.''
2.2.2
Jes has released Linux/m68k kernel 2.2.6.
Converted to DocBook SGML (i.e. sgmltools v2).
2.2.1
Jes has released Linux/m68k kernel 2.2.3-pre1.
Debian/m68k 2.1 was actually released on 9 March 1999.
Minor changes to some of the sections to update paths for the
Debian 2.1 release.
Dropped the text of the IRC question since LinuxNET has
disappeared... please let me know if #Linux68k has migrated
elsewhere.
Added link to Whiteline's distribution to the distributions section.
Added a question explaining why you shouldn't use Ctrl-Amiga-Amiga to
reboot an Amiga under Linux.
2.2.0
Jes has released Linux/m68k kernels 2.0.36 and 2.2.1-pre2. The 2.2
series is considered ``semi-stable'' on m68k, and may not work for all
hardware combinations yet.
Debian/m68k 2.1 will be released on 2 March 1999.
Richard Zidlicky has ported Linux/m68k to the Q40, a 68040-based
computer with an ISA bus being made in Germany. Patches relative to
2.2.1-pre1 are at ftp://ftp.uni-erlangen.de/pub/Linux/680x0/q40/.
Added lots of info on the Amiga memory device driver (z2ram) and getting MMUs and FPUs for 680x0-based
systems in the appropriate Questions sections.
New FTP site mirror: ftp://ftp.linuxberg.com/pub/distributions/Linux-m68k/.
New Linux/m68k website mirror: http://www.lordsutch.com/linux/.
Credited the originator of the concept of going home and eating
popcorn.
Updated the names of the Debian X packages to reflect the latest Great
X Reorganization.
The FAQ is now licensed under the GPL and an alternate license that
provides for distribution of printed versions and the like without
including the SGML source.
New section listing devices for which we have encountered a
non-disclosure agreement that forbids us from including a driver in
the kernel for the device. I strongly recommend either (a) boycotting
these devices and their manufacturers or (b) contacting the
manufacturer and letting them know you will not purchase the device
unless we can release a driver for it.
There is now a driver for the Amiga Oktagon SCSI card. A patch for
this support was released to the mailing list.
Shawn D'Alimonte has written a driver for the Amiga ADSG dual serial
port card. A patch relative to 2.0.33pl1 is available on the mailing
list; the driver is included in 2.0.36.
New warning about compiling Linus's kernels for m68k added to the
kernel compilation section. Bottom line: if you compile a Linus
kernel tree, and m68k doesn't work, don't complain to Jes.
New question on how to patch one of Linus's Linux kernel trees to the
corresponding Linux/m68k version. Should clarify the purpose of
-native diffs.
Pulled out Strunk and White and fixed a number of that/which problems.
Thanks to Bob Brown for the lesson.
Modified the changelog format somewhat.
Bumped FAQ revision to 2.2.0.
2.0.53
Richard Hirst is porting Linux/m68k to another VMEbus 680x0 machine:
the Tadpole TP34V.
Added a section on people using Linux/m68k in commercial or research
applications.
Really bumped Linux/m68k unstable version to 2.2.0-pre6.
2.0.52: Added information on how to use your console keymap in X.
2.0.51: Included information on how to access the Linux/m68k CVS
repository. Thanks to David Kilzer for pointing out the omission and
sending me the access instructions.
2.0.50
sunsite.unc.edu is now metalab.unc.edu.
Added info on Permedia2 framebuffer (pm2fb)
Added users of ``PowerPC-based Amigas'' as a target audience for this
FAQ, since most of the Amiga-specific information in the FAQ applies
to both Linux/m68k and Linux/APUS.
Most references to 2.1 kernels now reference 2.2 kernels as well
(since the 2.2 pre-release kernels are in the 2.1 kernel series).
Updated VME info to reflect that Richard is now maintaining the VME147
port.
Bumped unstable kernel version for m68k (to 2.2.0-pre4).
Introduction
What is this document?
This is a copy of the Linux/m68k Frequently Asked Questions file (or
FAQ). Since it probably contains errors (typographical and logical),
outdated and missing information, and other significant problems, I
ask that you send feedback and corrections to me.
What it is supposed to do is answer common questions about Linux/m68k,
in the hope (infinitesimal though it might be) that these questions
will not be asked again (since they've already been answered here).
It is highly advisable to read this FAQ thoroughly before asking
questions in the newsgroup, on the mailing lists, or directly; failure
to read this FAQ in its entirety may result in either no response or
an extremely hostile response to your questions, depending on whom you
ask and what mood that person is in.
This FAQ is not intended to serve as an introduction to Linux; nor is
it intended to explain how to administer a Linux-based system. To find
out more about these topics, please read the standard Linux books and
manuals. I particularly recommend Matt Welsh's two books:
Linux Installation and Getting Started published
by the LDP and available in print from SSC, and Running Linux,
Second Edition available from O'Reilly and Associates
(cowritten with Lar Kaufman), which expands greatly on the content of
the previous book (if you can only afford one Linux book, get this
one). See section for more details.
For other questions about Linux in general, I recommend that you read
the Linux INFO-SHEET. This document, along with many others about
Linux (including instructions for specific applications), is available
at the Linux Documentation Project's home page.
I'm running Linux/APUS on my Amiga; why should I bother reading this FAQ?
The short answer is that Jesper Skov (or someone else) will probably
yell at you if you ask a question that's already answered here.
The long answer: While this FAQ is primarily about the Linux/m68k
project, it also includes information specific to the Amiga platform
that is not included in any other FAQ. Since the APUS project uses
the same Amiga hardware support code as the Linux/m68k project, the
Amiga-specific information in this FAQ applies to both ports.
Accordingly you should read both this FAQ and Jesper's Linux/APUS
Doc'n'FAQ.
Who Are You? What Do You Want?
This FAQ was created and originally maintained by Jörg Mayer
<jmayer@telemation.de>. It is now maintained by Chris
Lawrence <lawrencc@clark.net>. The current maintainer of the FAQ
can always be reached at <faq@linux-m68k.org>.
Where can I get the latest version of this FAQ?
The latest revision is available in HTML format, suitable for reading
with a World Wide Web browser (such as Netscape, Lynx, Arena, etc.),
at http://www.linux-m68k.org/faq/faq.html, http://www.lordsutch.com/linux/faq/faq.html, http://www.se.linux-m68k.org/faq/faq.html, or http://www.clark.net/pub/lawrencc/linux/faq/faq.html. It is
also mirrored daily in Germany at http://ftp.uni-erlangen.de/pub/Linux/680x0/FAQ/faq.html and
in Norway at http://amiga.nvg.org/linux/mirrors/lawrencc/faq/faq.html.
There is a French translation of the FAQ available at http://www.mygale.org/~atari/Linux68k/Faq/, translated by
Christian Jacolot.
Il y a un traduction français du FAQ; on peut le retrouver à http://www.mygale.org/~atari/Linux68k/Faq/. Il est traduit
par Christian Jacolot.
A pointer to this FAQ is supposed to be posted every two weeks to the
Usenet newsgroups comp.os.linux.m68k, comp.unix.amiga, maus.os.linux68k, comp.arch.bus.vmebus, comp.sys.amiga.misc comp.sys.atari.st, comp.sys.m68k, comp.answers, and news.answers. The entire FAQ is no longer posted to Usenet
because it has become ridiculously large.
Is the FAQ available in other formats?
The FAQ is available in the following formats. Note that many of
these files are compressed using the GNU gzip program; you will need a
copy of gzip (or gunzip, or another compatible tool) to access these
files.
HTML: http://www.linux-m68k.org/faq/faq.html.
Plain Text: http://www.lordsutch.com/linux/faq/faq.txt.gz (compressed
with GNU gzip).
Source (for these to be useful, you will need a working SGMLTools 2.0 installation)
SGML (DocBook DTD): http://www.lordsutch.com/linux/faq/faq.sgml.gz (compressed
with GNU gzip).
How are FAQ revisions numbered?
The version number has three parts, formatted as follows: X.Y.Z
X.Y is the current stable kernel version number (currently 2.0).
Z is the revision number of this FAQ since the last stable
kernel version change.
For example, FAQ 2.0.43 was the 43rd revision of the FAQ after the 2.0
kernel was released. When the first official 2.2 kernel was released,
the next FAQ version was FAQ 2.2.0.
Note that this FAQ is often updated between Usenet posts. Interim
versions of the FAQ are made available at the usual places.
What versions of Linux/m68k are covered by this FAQ?
This FAQ documents the 2.0 and 2.2 series of kernels. If you are
currently using a 0.x or 1.2 series kernel, I recommend that you read
the Linux/m68k 2.0 announcement (and all the documents it says to
read) and then upgrade to a 2.0 kernel. The 0.x and 1.2 series of
kernels are obsolete and completely unsupported.
Most things said about 2.0 kernels apply also to the 2.1 development
series and 2.2 semi-stable kernels, unless otherwise noted. I
recommend against trying to use the 2.1 and 2.2 kernels until you are
accustomed to using Linux, or you need to use hardware that's not
supported in a 2.0 kernel.
The latest versions of the kernel and boot loaders, as of this FAQ
release:
Mainstream Linux kernel (released by Linus; current information at
http://www.cs.Helsinki.FI/cgi-bin/linuxversion):
Previous Stable: 2.0.38
Current Stable: 2.2.12
Developmental: 2.3.15
Linux/m68k kernel (released by Jes):
Previous Stable: 2.0.36
Semi-Stable: 2.2.10
Developmental: 2.3.14
Amiboot (AmigaOS bootstrap): 5.6
Ataboot (Atari bootstrap): 3.1
Penguin (Mac bootstrap): 17
Amiga LILO (low-level Amiga bootstrap): 2.2
MVME LILO (low-level VMEbus bootstrap): 1.0
For current versions of other software, please refer to the Changes document included in the kernel sources
(also available at http://www.linuxhq.com/).
General Linux Questions and Answers
This is a brief section that answers a few questions about the Linux
operating system. It is not intended to replace the real
documentation about Linux, however.
What is Linux?
Linux is a freely-distributable kernel and operating system that works
virtually the same as UNIX. Unlike all other available truly
UNIX-like operating systems (this means those that provide memory
protection and virtual memory), it is built from the ground-up from
scratch to comply with open standards. Currently, Linux complies with
virtually all of the POSIX.1 standard (the only completely
vendor-independent standard), and work is underway to finish work on
compliance with the System V Interface Definition (SVID) and other
commercially-established standards.
Linux was started in 1991 by Linus Torvalds, who at the time was an
undergraduate student in Computer Science at the University of
Helsinki in Finland. While Linus is no longer a starving college
student (he now works for Transmeta, a highly-secretive Silicon Valley company), he
continues to coordinate the work on the kernel and makes significant
contributions of his own, particularly on the Alpha and SMP (symmetric
multiprocessing) code. The names of many of the other people who have
contributed to the Linux kernel can be found in the CREDITS and MAINTAINERS files that are included with the
Linux kernel sources.
More of Linux's history (particularly the history of Linux/m68k) is
covered in the next section of the FAQ.
How does Linux consist of Linux and some other stuff?
The Linux kernel is vaguely equivalent to the Kickstart under AmigaOS.
It provides basic services to the operating system, but that's about
it. Unlike AmigaOS, it requires at least one other program to launch
(a shell [command line interpreter] or a special program
called init). Without another program,
you'll never even get to a command prompt.
The Linux operating system is a collection of programs (such as
interpreters, shells, utilities, applications, and daemons) and
libraries that facilitate user interaction with the system. Much of
the Linux operating system is derived from the Free Software
Foundation's GNU project and the University of California at Berkeley
Source Distribution of Unix (BSD). The Linux OS also includes
software from other sources, some of which was written specifically
for Linux.
For the most part, I use the term Linux as the generic term for both
the operating system that most Linux users use and to refer
specifically to the kernel. Others would use ``GNU/Linux'', or a
distribution name (e.g. ``Red Hat Linux'', ``Slackware Linux'', or
``Debian GNU/Linux''), for the operating system, reserving ``Linux''
strictly for the kernel. Suffice it to say it's not worth the effort
to try to convince me to adopt this alternative terminology (you can
start the GNU/Linux/m68k FAQ if you like :-).
Where the distinction between one meaning of Linux and another is
unclear, I apologize in advance.
What's the difference between MkLinux and Linux/m68k?
MkLinux is a
project sponsored by Apple (in collaboration with the Open Group, née
the Open Software Foundation) to build a Microkernel-based Linux
kernel for PowerPC (and some other) systems.
Linux/m68k is a
project to build a monolithic Linux kernel for 680x0 systems. It has
no connection with Apple or the OG/OSF (as a matter of fact, Apple,
unlike many other manufacturers, has been downright unhelpful with the
m68k Linux port).
Unfortunately, the use by some of the term ``MacLinux'' has added to the
confusion and made a lot of people think that MkLinux and Linux/m68k on the
Macintosh are the same project. They aren't. Not even close.
Misconceptions about Linux/m68k
The Linux/m68k port is ``under development'' or ``experimental''
False. Linux/m68k is at least as stable as Linux on Intel, Alpha,
PowerPC and Sparc systems (all of which have, like Linux/m68k, at
least one ``major'' distribution available). Furthermore, Linux/m68k
was the first stable port of Linux to any other (non-Intel) processor.
There is development on additional hardware drivers and additional
machine ports (like implementations for the Macintosh, Apollo and
Sun 3), but this is the same ``development'' that is underway on
other platforms.
As an illustration of Linux/m68k's stability, a recent report on the
mailing list said that a 68030-based Amiga 1200 had been running a
2.0.29 kernel for 24 hours a day for 363 days without a system crash,
while serving as a web server and providing file, news and mail
services to several other machines.
Linux/m68k isn't popular
False. Over 1750 people have registered using Linux/m68k (and
registering is strictly optional; please see the Linux/m68k
Registration Site for up-to-date figures). Many hundreds more
are using it on systems without Internet connections.
Linux/m68k's usage on systems capable of running it is probably equivalent
to that of Linux on Intel platforms (on a percentage basis).
Over 330 people participated in the call for votes for the Usenet
newsgroup comp.os.linux.m68k, which took
place in late 1995 (when Linux/m68k was in less widespread use).
Porting Linux/m68k to my system is useless because there is *BSD for my system
False. Linux has many features that make it preferable to NetBSD or
OpenBSD. The most impressive feature is that there is virtually no
Berkeley code in the kernel: it is written from the ground up to
comply with POSIX and other standards (XPG, SVID, etc.), and work is
underway to make it a ``branded'' Unix. And we're pretty nice to one
another too, which doesn't hurt.
Linux is also highly popular on Intel platforms (to a much greater
degree than BSD). This popularity, combined with 99.9% source
compatibility, means that virtually any program that runs on
Linux/i386 (and doesn't use any inherently non-portable features like
SVGAlib) can be compiled and run on Linux/m68k. It also means that
you can walk into virtually any bookstore and buy a book specifically
about your OS (try that with AmigaOS!).
A bit about the Linux/m68k platforms
Additional information about a number of 680x0-based systems is
available at Joaquin
Menchaca's hardware pages
Amiga
The Amiga was the first 680x0-based computer to have Linux ported to
it. The first Amiga computer was the Amiga 1000, released in
mid-1985. It featured a 68000 processor running at 7.14 MHz, along
with 256k of RAM.
The Amiga line has included quite a few models, including the Amiga
500, 600, 1200, 2000 (and its variants, like the 1500 and 2500), 3000
and 4000. The 3000T and 4000T are tower versions of the 3000 and
4000, respectively.
The Amiga line also includes the CDTV and CD-32 platforms, which are
CD-ROM-based Amigas. More recently, clones have appeared, like the
DraCo and BoXeR motherboard.
Recent Amigas can be upgraded to use PowerPC 603e and 604e processors
in addition to a 680x0 processor using third-party CPU boards.
Atari
The Atari 32-bit series was the second platform to receive an
implementation of Linux/m68k. The Atari machines were launched with
the release of the ST520 in mid-1985.
The Atari line includes the ST models, TT and Falcon. There have also
been a number of Atari clones, including the Medusa and Hades.
Macintosh
(revised by David Kilzer)
The Macintosh, introduced in 1984, was the first popular 680x0-based
computer. There have been dozens of different 680x0-based Macintoshes.
The port of Linux/m68k to the Macintosh platform is still ongoing, though
some systems are usable today with functional SCSI, IDE, Ethernet and
console support.
Current gaps in support include FPU-less Macs (the FPU emulator is still a
work-in-progress) and most Powerbooks (ADB is not supported yet, though
code from the Linux/PPC and MkLinux projects will help greatly).
A fairly comprehensive overview may be found at the Linux/m68k on
Macintosh site, http://www.mac.linux-m68k.org/.
Motorola VMEbus
(written by Richard Hirst)
Motorola has released a number of single-board systems using the 680x0
processors, based on the VME bus standard. More information on these
systems is available at Motorola's web
site.
(More information from a later post:)
I have a VME system based on Motorola MVME boards. Follow the links
from www.sleepie.demon.co.uk to find out more about the boards.
The boards I use are basically single board computers, which can be
plugged into a VME card cage. The interface to the VME is via a chip
called the VMEchip2 which provides programmable address windows
between the VME bus and the on-board bus. As part of programming the
VMEchip2, you specify the AM (Address Modifier) code to use in VME bus
cycles. The AM code specifies A24, A32, etc.
VME is used a lot in industrial applications, with various interface
boards for digital i/o, etc, so people using Linux on these boards often
want to read/write to specific addresses in the VME address space.
Before anyone asks, these boards are expensive (relative to a good PC) - I
got mine from work so didn't have to pay for them.
NeXT workstations
The NeXT workstations were produced by NeXT Computer, Inc., starting
in the late 1980s and ending in 1994. The workstations were made in
two configurations: the NeXT Cube and NeXTstation (a.k.a. ``the
slab'').
The NeXT Cube came in 68030 and 68040-based configurations, while the
slabs were produced later and came with 68040's only. 68040-based
models came in 25MHz and 33MHz (Turbo) editions.
The basic NeXTs came with 4-grayscale video (black, white and two
shades of gray). Color NeXTs are capable of 12-bit color, or
4096-color video output (16 levels of red, green and blue). NeXT also
produced the NeXT Dimension board for the cubes, which was capable of
24-bit color.
NeXTs ran the NeXTstep operating system; however, current versions of
that OS (now called OpenStep) no longer support the original
(``black'') m68k-based hardware; this has made a Linux port to the
NeXT particularly attractive. More information can be found at the
Li/NeXT web site, http://www.black.linux-m68k.org/.
Other systems
Any takers?
Who's using Linux/m68k?
Among the thousands of Linux/m68k installations, there are several
organizations who use Linux/m68k in their commercial or research
endeavors:
The European Synchrotron Research
Facility in Grenoble, France, is using Linux/m68k on several
Motorola VME single-board computers with the hope of getting more out
of their existing VME installation. You can read more about their
projects at their Linux on VME page. (A synchrotron is a type of particle
accelerator.)
BVM Ltd. is offering
Linux/m68k as an alternative operating system to OS/9 on their VME
single-board computers.
Several public web servers are running on Linux/m68k boxes, including
http://amiga.nvg.org/ and
http://www.uk.linux.org/.
A Brief History of Linux and Linux/m68k
More details on the history of Linux can be found the book
Inside Linux by Randolph Bentson <bentson@grieg.seaslug.org> (see for more information about this book).
MonoCPUism: Linus creates Linux
Linux is a freely available operating system for PCs: to be more
precise, it is one of many flavors of Unix. Linux is being developed
on the Internet by several thousand people, first and foremost by
Linus Torvalds <torvalds@transmeta.com>, who created Linux for the 80386
in 1991. Linux is being tested and used by many more (the total is
thought to be in the hundreds of thousands, perhaps millions).
At the time, Linus believed that Linux was inherently Intel-specific.
A few Amiga and Atari hackers were determined to prove him wrong.
The Linux/m68k Trinity: Hamish, Roman and Jes
The fun and success of Linux on Intel-based systems inspired Hamish
Macdonald <hamish@border.ocunix.on.ca> and Greg Harp to port it to
another platform: the Amiga. The first version released to the general
public was 0.0.5. While 0.0.8 was current, a few enthusiasts ported
that version to the Atari and the two versions were successfully
merged with 0.9pl3 (this reads version 0.9 patchlevel 3).
After releasing 1.2.13pl3, Hamish handed the coordination of
Linux/m68k over to Roman Hodek <rnhodek@informatik.uni-erlangen.de>. Starting with
Hamish's unfinished 1.3.20 port, Jes Degn Sørensen <Jes.Sorensen@cern.ch>
started to work on integrating the m68k stuff into 1.3. With 1.3.94
the majority of the m68k stuff was put into the official kernel tree.
Work continues to integrate Linux/m68k with the mainstream kernel.
Jes continues to be the maintainer of the kernel.
The present 2.0 series releases are of ``production quality'' and are
suitable for general use on the Amiga, Atari and a number of VME
platforms. The versions of the 2.1 and 2.2 series are generally as
stable as their counterparts on Intel platforms (probably even more
stable, as there is more testing between releases).
In Their Own Words
Here's the story about the beginning in Hamish's words:
I decided to port Linux to my Amiga for a variety of reasons.
I have always had an interest in operating systems (my work is in
embedded systems for telecommunications). After finishing my Master's
thesis, I needed some project to keep me busy, and justify keeping my
Amiga. Linux was just getting popular at the time, and I thought it
would be fun to port it to my Amiga. So I did. Greg Harp and a few
others had been talking for a while about porting Linux to the Amiga.
They'd only got a little way into it when I got involved, bringing the
work I'd already done myself....
And here about the port to the Atari in Roman Hodek's words:
I'm an old Atari user, but in some dark age of Atari, I also
bought a PC... running only Linux, of course! Some time later, I
noticed that there was a Linux for m68k (was a version about 0.06 or
so), but learned that it was for Amiga only. Already at that time, I
thought that it can't be that hard to port this to the Atari, but
after some browsing in the sources, I gave up. I just didn't find a
point where to start. But at least I subscribed to the MausNet
newsgroup ``LINUX68K''. Several months later, in April '94, Björn
Brauel posted an article there, that he has adapted Linux's head.S so
it ran on his Falcon (until the first console output :-). I again was
interested and asked Björn for the sources. In the next time, we two
built some very basic driver, so we could at least see some output on
the screen, and the kernel booted until the "unable to mount
root". There was no HD driver yet... So I started to write a SCSI
driver, and Björn went to IDE.
At that time, we heard that there was another group working on an
Atari port. The most important members of this group were Robert de
Vries and Andreas Schwab. They've never announced that they're working
or how far they are, so we didn't know about them. And we communicated
over the MausNet, not the Internet, so they didn't notice us... So we
finally had two versions of an Atari port at the same time.
Fortunately, we've mostly worked on different parts, so the merged
version 0.01pl3 made a big jump in respect to what drivers were
available.
The next story is about Martin Schaller: He also ported Linux to the
Atari, starting directly from PC Linux, not from the Amiga version.
(He didn't have a modem at that time, so no Internet, not even
MausNet...) For that he worked totally on his own, he came very far
and did a great job. In fall 1994, a German Atari magazine published
an article about Linux/m68k. By this Martin heard that there were some
more Atari Linux hackers and joined us.
The Ghost of Linux Future
In the past few years, various groups have formed to support
additional machines. The largest, not surprisingly, has been the
Macintosh group, which finally got off the ground (after an apparent
vaporware ``effort'' was dismissed as a hoax) in 1996. Now the Mac
port is running stably with both 2.0 and 2.1 kernels.
The Amiga support code in Linux/m68k has also been adapted to work
with Amigas using PowerPC processors.
General requirements to run Linux/m68k
Processor
You need a Motorola 680x0 processor with a programmable
memory management unit (PMMU). There is no
way to run Linux/m68k without one. This reduces the list of
possible processors to 68020+68851, 68030, 68040, 68LC040, and
68060. This list of processors excludes the 68000, 68HC000, 68008,
68010, 68EC020, 68EC030, and 68EC040. It also excludes the CPU32
processors (683x0 series) and the ColdFire processor. Linux/m68k can
never run on these processors as they lack a PMMU
and an interface for an external one (some 68EC030s do have a
functioning PMMU and will run Linux; however, their long-term
reliability is questionable since Motorola never tested the PMMU).
Consequently, all Linux/m68k software is compiled for 68020 or higher
CPUs.
Having said this, there has been an effort to create a Linux port that
does not require an MMU; it's called uClinux (or Microcontroller
Linux), and apparently does what it does quite well, but it is limited
in that it can't support virtual memory or memory protection. uClinux
and Linux/m68k binaries are not interchangeable. You can learn more
about uClinux at Paul Coene's site.
If you can't figure out whether your computer has the ``right''
processor built-in, please see the next section of the FAQ.
At the moment, current versions of Linux/m68k require a FPU (floating
point unit) to run. While there is some unsupported code that
attempts to emulate the FPU (see , it is not
reliable and its use is highly discouraged. If you have a 68020 or
68030, you need a 68881 or 68882 coprocessor as well; if you have a
68040 or 68060, you need the full version of the CPU (not the EC or LC
version). So until the new FPU emulator is released, the following
CPUs (listed by their full Motorola part number) are the only CPUs
that support Linux/m68k:
MC68020 + MC68851 MMU + separate FPU (MC68881/MC68882)
MC68030 + separate FPU (MC68881/MC68882)
MC68040
MC68060
RAM
It is possible (but very difficult) to boot Linux/m68k with as little
as 2 MB. Now you know that the kernel works on your system: that's
it. If you want to work with it you should have at least 4 MB (8 MB is
probably the working minimum if you want to run an X display on your
machine); booting from most ramdisks will require at least 5 MB.
Notes:
On the Amiga only the size of your Fast RAM is relevant. The
Chip RAM is only used internally for graphics, sound and floppy data;
it is not used by normal programs.
If you have an Amiga with 16-bit expansion RAM on a Zorro card,
see .
On Ataris, ST RAM is usable on most systems.
Hard Disk
If you want to do much more than just boot Linux/m68k you will need 60
MB or more of free space on your hard disk and a supported hard disk
controller. Add another 20 MB of disk space to the base requirements
to use X.
In addition, you'll need some swap space. Any amount will do (and you
will need less if you have more RAM). 16 MB of swap space is a fairly
reasonable size for most systems; the kernel is limited to using 128
MB of swap space.
Due to the general law that your files will expand and multiply to
fill your available disk space, I recommend getting the largest disk
you can afford (and your system can handle reliably).
Software
Amiga: In order to run amiboot (i.e. to
boot Linux) you need AmigaOS 2.0 or higher (expansion.library V36 or later). amiboot works with SetPatch and RsrvMem (part of
Emplant) running. Additionally, you can start amiboot with VMM
running (see for how to do this). On a 68060,
you will probably need the 68060 libraries that came with your CPU
card installed as well. Amiga LILO may have different requirements;
consult its documentation.
Macintosh: A minimal copy of System 6.0.X, System 7.X or Mac OS 8.X is
required to boot the Mac. After the Mac boots, the Penguin application is
run to load Linux/m68k and boot it.
Atari: You need some version of TOS available to boot the system.
Amiga Hardware Support
All models are supported, including the CDTV and CD32, with the
exception of the DraCo clone; BoXeR motherboards may work, but have
not been tested (and none have been furnished for testing). A3000(T)
means A3000 or A3000T tower; A4000(T) means A4000 or A4000T tower.
A2000 implies all of the A2000-derivatives (A1500, A2500, etc.). Note
that you will need a supported CPU installed.
The following Amigas have an acceptable processor built-in: A2500,
A3000, A3000T, A4000/040 (not the A4000/030, which ships with a
68EC030 processor, unless upgraded with an 040 or 060), A4000T/040 and
A4000T/060. There has been a report that the last A4000/040s produced
by Commodore were shipped with 68LC040's; these computers will not run
Linux/m68k unless you upgrade the CPU itself (swap the chip) or swap
the CPU card (or use the FPU emulator). All other Amiga models (even
the A1000) can have the correct processor (or processors, as needed)
added on; see for a comprehensive list of the
CPU/MMU/FPU combinations that are supported by Linux/m68k.
You can check whether you have a working PMMU or not using
``lawbreaker'', a program included in the Enforcer package (available
from Aminet).
``Cards'' generally refer to Zorro cards, which can be installed in
any big box Amiga (and in various tower kits for other models). Some
cards here are PCMCIA devices (like those used on laptops), which will
only work in the A600 and A1200.
Supported built-in hardware:
SCSI: A3000(T) (WD33c93), A4000T (53c710)
IDE: A1200, A4000(T) (Gayle controller). Some IDE doublers (that
comply with the ``IDEfix'' standard) are also supported.
Serial port
Parallel port
Mouse (2 or 3 buttons; trackballs that require no special
drivers will also work). Serial mice may also work with the standard
Linux drivers (but are untested).
Joystick (digital DB-9 style). May need to manually enable in your
kernel .config file.
Keyboard (keymaps for several keyboards are included in Debian/m68k
kbd package; some others are available
at ftp://ftp.uni-erlangen.de/pub/Linux/680x0/bin/system/keymaps/)
OCS, ECS and AGA chipset graphics (amifb)
Floppy drives (internal and external; double and high density). The
Amtrade ``clone'' should work OK.
Paula sound
Real-time clock: A2000, A3000(T) and A4000(T). Add-on clocks
for the A500, A600, A1000 and A1200 that emulate the built-in clocks on
the other systems should also work.
All accelerator cards with compatible CPUs are supported (this does
not mean that all features of the CPU card, like a SCSI controller,
will be available, but the CPU itself should work).
All RAM expansions are supported (but see ). Non-AutoConfig expansions may not be
recognized under all circumstances without a ``memory file'' (see
or the amiboot documentation for details).
Supported IDE cards (experimental):
Individual Computers Buddha
Individual Computers Catweasel
Supported SCSI cards:
Western Digital WD33c93
Commodore A590
Commodore A2091
GVP Series II (also HC+8, A4008, and some 68030 and 68040 accelerators)
NCR 53c710
Commodore/DKB A4091
MacroSystem WarpEngine (built-in)
BlizzardPPC 603e+ (built-in)
NCR 53C9x
BSC/AlfaData Oktagon
Phase5 Cyberstorm Mk I add-on
Phase5 Cyberstorm Mk II add-on
Phase5 Blizzard 1230IV add-on
Phase5 Blizzard 1260 add-on
Phase5 Blizzard 2060 (built-in)
Phase5 Fastlane Z3 (built-in)
Note: If you have an early A4000/040, read .
Supported Ethernet cards:
Commodore A2065 (a2065)
VillageTronic Ariadne (ariadne)
VillageTronic Ariadne2 (kernels 2.0.36+/2.1.124+; ariadne2)
BSC AlfaData Hydra (aka Hydranet; hydra)
CNET40 (PCMCIA; apne)
LinkSys (PCMCIA; apne)
Supported I/O cards:
BSC AlfaData MultiFaceCard III (serial/parallel)
GVP IO-Extender (serial/parallel)
HiSoft Whippet (PCMCIA serial)
ADSG dual-serial board (2.0.36+)
Supported graphics cards (with device names for 2.1/2.2 kernels); see
also the Framebuffer HOWTO:
Phase5 Cybervision 64 (cyber)
Phase5 Cybervision 64/3D (virge: 2.0.33+, with patches)
Phase5 BVision PPC and Cybervision PPC (pm2fb): See
the Permedia2 framebuffer page for the files you need and any updates; the driver
only works under Linux/APUS at the moment (but should be fairly easy
to get running under Linux/m68k).
Retina Z3 (retz3)
Cirrus Logic (clgen): See the CLGen page for the files you need and any updates; the drivers should be
included in most recent kernels. Note that instructions for using the
CLGen driver are not included in the kernel sources, so you will
need the CLGen source package for the documentation, even with recent
kernels.
Piccolo
Piccolo SD64
VillageTronic Picasso II
VillageTronic Picasso IV
GVP Spectrum
Atari Hardware Support
All models supported, including the Medusa clone. The following Atari
models (or clones) have the ``right'' processor built-in: Atari
Falcon, Atari Falcon with Afterburner 040, Atari TT, and
Medusa. However, the standard Falcon does not have an FPU built-in (so
you will need to add an FPU). Accelerators are available for all
Ataris that will upgrade the CPU to an acceptable level; see for the CPU/MMU/FPU combinations currently supported
by Linux/m68k.
Note that in some of the older Atari TTs there is a bug in the PAL
controlling the access to the FPU. This may cause crashes (see ).
Supported built-in hardware:
SCSI
ACSI
IDE: Falcon
All serial ports (including the MIDI port)
Keyboard (several keymaps are available in Debian/m68k kbd package; some others are available at ftp://ftp.uni-erlangen.de/pub/Linux/680x0/bin/system/keymaps/)
Mouse
Parallel port
Real-time clock
Floppy drives: DD, HD, ED
Atari graphics: ST, TT, Falcon, Medusa (atafb)
System beep
Sound: TT, Falcon
ET4000 and Mach64 in Falcon are partially supported (you can't
change the resolution).
Linux's Minix FS is compatible with the Minix V2 FS used with MiNT.
Supported RAM cards:
FX-card (Falcon)
Magnum (Falcon)
Supported Ethernet cards:
RieblCard
PAM's VME boards
most Lance-based Ethernet cards should work
Screen extenders: Screenblaster, Onscreen work, others should work too.
Other peripherals: Atari Laser Printer
VME Hardware Support
Motorola MVME166 and MVME167 boards
(written by Richard Hirst)
There are multiple VME boards out there on which Linux/m68k could run.
There is currently one port for the Motorola MVME166 and MVME167 boards.
These are complete systems on a card, so there's no need to support any
external controller cards:
68040 at 25 or 33MHz (at least)
4 to 32MB DRAM (maybe more)
CD2401 four channel serial controller
NCR53C710 SCSI controller
Parallel port (currently unsupported)
Intel 82596CA Ethernet controller (under construction)
VMEchip2 VME interface chip
PCCchip2 local controller chip
VSBchip2 (MVME166 only)
MK48T08 BBRAM and TOD clock
68230 PIT
The released source is based on 2.0.29, but it is now being integrated
in to the 2.1 development tree. The system will happily loop building
the kernel for hours on end with no problems (no '040 MMU bug here!)
It takes about 20 minutes to build a kernel.
More information can be found at Richard's VMEbus port page.
Motorola MVME162 board
Richard has also ported Linux/m68k to the MVME162 (after the original
port was made by Vaughn Skinner and lost in a disk crash). It
``basically works as well as the 166 and 167'' ports according to
Richard.
The needed files can be downloaded from Richard's VME page.
Motorola MVME147 board
A port to the MVME147 board was made by Dave Frascone
<chaos@mindspring.com>. It has been integrated into
Richard's VME port, and can be found at the same page.
Other VME Boards: VME 17x, BVME4000/6000
The VME 17x series of boards are similar to the 16x series, except
they have 68060 processors. According to Richard Hirst, the
corresponding 16x port should run fine with the data cache disabled
(which will cause a performance drop-off), if you compile the kernel
with 68060 support. The caching problem will be resolved in due
course.
Richard has also teamed up with BVM Ltd. to port Linux/m68k to that
company's BVME4000 and 6000 boards. The port will be integrated into
the development tree in the near future; you can obtain it from Richard's VME pages. More information is available on BVM's home page.
Richard is currently working on a port to the Tadpole TP34V, a
68030-based VME single-board computer.
Macintosh Hardware Support
(written by Joe Pranevich; updated by David Kilzer)
Currently, development on the port is going along nicely. The latest
2.0 kernel is 2.0.33pl1, which contains enough drivers for a
``production'' machine on some systems. The latest 2.1 kernel is
2.1.105, which includes Mac IDE support and some Quadra SCSI support.
Currently ``supported'' machines are listed on http://www.mac.linux-m68k.org/. Most 68030 and 68040 Macs
with an FPU will boot to the login prompt using a RAM disk. FPU-less
Macs will hang at some point during the boot process.
The following Macintoshes have the ``right'' processor built-in: all
``Classic'' Macs (except as noted below), all ``II'' Macs (the
original Mac II requires a 68851 PMMU), all ``LC'' Macs (except as
noted below), all Performas, all Centris and Quadras, and all
Powerbooks/Duos (except as noted below). ``Classic'' Mac exceptions
include the original Macintosh (128k), 512k, 512ke, XL, Plus, SE, SE
FDHD, and the original Mac Classic (all of which use 68000
processors). Powerbook exceptions include the Portable and the
Powerbook 100 (both use a 16 MHz 68HC000). The only ``LC'' Mac
exception is the original 68020-based Mac LC, which lacks a PMMU slot,
though a hardware hack and third-party processor upgrades are
available. See for a
comprehensive list of supported CPU/MMU/FPU combinations.
As for drivers, we have NCR5380 and NCR53c9[46] SCSI, Mac
IDE, NS8390 (Daynaport) Ethernet, NuBus, ADB (Mac-II, IIsi and CUDA
styles) for keyboard and mouse (also used by some NeXTs), video (most
of Apple's video boards, except RBV--RAM-based video--boards), and
probably some other goodies. We also have a working installer and
booter (Penguin).
Updates, as always, on http://www.mac.linux-m68k.org/.
Sun 3 Workstation Hardware Support
(written by Joaquin Menchaca)
There is a current Linux/m68k port to the Sun 3 Series. The machines
intended to be supported are Sun 3/50, Sun 3/60, Sun 3/75, Sun 3/150,
and others of similar design. The Sun 3/80 and Sun 3/40X have
radically different hardware and will thus have to be supported by a
different port.
Pekka Pietikäinen <pp@netppl.fi> is the point of contact for this port. A
patch relative to 2.0.25 is available from him. More information is
available at http://www.netppl.fi/~pp/sun3/.
NeXT Workstation Hardware Support
(written by Joaquin Menchaca)
There is an ongoing movement to port Linux/m68k to the NeXT hardware.
Currently the booter is being worked on. Progress is difficult because
the lack of documentation available for this platform. Apple is
dropping 680x0 support in future OS releases and current technical
support does not make this effort easier.
Several individuals have expressed interest in the port to the m68k
NeXT computers, including:
Martin Bähr <mbaehr@iaeste.or.at>
Sarlo <sarlo@tezcat.com>
Mike Allison <mallison@konnections.com>
Cal McInvale <calm@tpdinc.com>
The current status of this porting effort is unclear. More
information should be available at the Li/NeXT web site, http://www.black.linux-m68k.org/ and/or Zach Brown's site,
http://www.zabbo.net/linux/next/.
Hewlett-Packard (HP)/Apollo Domain Workstation Hardware Support
The first pre-alpha release of Linux/m68k for Apollo Domain
workstations is now available at ftp://ftp.ba.be/pub/apollo/.
It apparently only runs from a ramdisk, but it does support the
monochrome framebuffer, 3c505 Ethernet card, and the keyboard.
Contact Peter De Schrijver <Peter.DeSchrijver@linux.cc.kuleuven.ac.be> for more
details.
HP 9000/300 Workstation Hardware Support
(written by Phil Blundell)
Phil Blundell <Philip.Blundell@pobox.com> is working on this port. Phil
has set up a web page at http://www.tazenda.demon.co.uk/phil/linux-hp/ with more
information about this port.
Unsupported 680x0 Hardware
There is currently no Linux/m68k port for several 680x0 based
computers that would be able to run Linux. The reason for this is
rather simple: Nobody has written it. The reasons for that are many:
The people who already have most/all of the knowledge on the Linux
side of the port are usually busy maintaining/improving one of the
existing ports. Another quite common reason is that no or only
insufficient documentation on the hardware of that platform
exists. Sun 3s are an even more special case: Unlike all other
machines mentioned here, they don't use Motorola MMUs (except the
Sun 3/80, which uses a 68030).
See for details on progress
(or lack thereof) toward completing ports to these systems.
As far as I know, you can run NetBSD or OpenBSD on some of the unsupported systems.
Support for other processors
Linux also runs on several other platforms in varying states of usability:
Alpha (Linux/AXP): http://www.azstarnet.com/~axplinux/
PowerPC processors (LinuxPPC): http://www.linuxppc.org/ and
http://linuxppc.cs.nmt.edu/; for PowerUP cards, see .
PowerMacs using OSF Mach microkernel (MkLinux): http://www.mklinux.apple.com/
Sparc processors (SparcLinux): http://www.geog.ubc.ca/sparclinux.html
I think I heard some rumors about an Intel version too ;-)
This list is not exhaustive. A definitive guide
can be found at http://www.ctv.es/USERS/xose/linux/linux_ports.html.
Definitely Unsupported Hardware: The Hall of Shame
(inspired by recent traffic on the kernel list)
The following is a list of devices for which the manufacturer either
will not provide programming information or will not make that
information available under an agreement that allows us to release the
source code for the driver.
You are encouraged to voice your displeasure at these manufacturers if
you own these products and to refrain from purchasing their products
until they adopt a more sensible policy.
Apple Computer, Inc.: Apple has only released programming
information as part of the source code for its MkLinux port of Linux
to its PowerPC-based Macintoshes. They have not released any
programming information for the 680x0 Macintoshes.
Interworks (ICard PCMCIA Ethernet card)
Individual Computers (Catweasel floppy controller): Information
on how to program the floppy controller portion of the card is only
being released under a license that does not allow us to publish the
source code for the driver. Update: The driver
for the PC Catweasel has been released under the GPL; writing an Amiga
driver may now be much easier.
Radius: Ignores calls about Radius Rockets, Radius Video Cards,
SuperMac Video cards, E-Machines Video cards, and RastorOps video
cards.
Future Development
This is a concise listing of current projects underway for
Linux/m68k. Let me know if your project isn't listed so I can add it.
I have marked the ones that haven't had any recent activity with
? (these may revert to unclaimed
status if I don't eventually get mail from someone saying that they
are being done).
General
A port of the Generalized Graphics Interface (a kernel-level I/O abstraction) to
Linux/m68k: Geert Uytterhoeven <Geert.Uytterhoeven@cs.kuleuven.ac.be>. (This project seems
to have been abandoned in favor of Geert's abstract console scheme.)
Atari TOS emulation: The OSIS Project.
AmigaOS emulation: The Amiga Replacement OS project.
Linux/m68k-specific edition of Linux Installation and
Getting Started: Chris Lawrence <faq@linux-m68k.org>.
(Unclaimed) MacOS emulator (based on
Shapeshifter, perhaps?)
Amiga
Drivers for Arcnet cards are in alpha/beta: Frank Neumann <Frank.Neumann@informatik.uni-oldenburg.de>. Frank is
looking for someone else who is willing to adopt the code; current
sources can be found at ftp://ftp.informatik.uni-oldenburg.de/pub/linux/local/driver/.
? Support for the A2410 and DMI
Resolver graphics boards is planned: Topi Kanerva <topi@susanna.oulu.fi> and
Jes Degn Sørensen <Jes.Sorensen@cern.ch>.
? Support for the Commodore A2232
7-port serial card is under development: Eric van Dijken <E.vanDijken@PTT-Telecom.nl>.
Support for the Phase5 PowerPC boards: Roman Zippel <zippel@fh-brandenburg.de>, Jes Degn Sørensen <Jes.Sorensen@cern.ch> and Jesper Skov <jskov@cygnus.co.uk> (Phase5
contact person). See the APUS
FAQ for the current status of this project.
Access to ISA cards via GoldenGate/BridgeBoard (as in OpenBSD): Arno Griffioen
<arno@usn.nl> has done
some work in this direction on the GoldenGate II. He currently has
some non-DMA devices working using the standard Intel drivers; he is
currently looking for testers.
Support for the Blizzard 1230-I and 1230-II SCSI boards: Jesper Skov
<jskov@cygnus.co.uk>. The current test release of this driver is available at ftp://sunsite.auc.dk/projects/680x0/testing/blzII/;
Jesper is also attempting to get information on the 1230-III board.
The following drivers were asked about (or I thought of them) but
nobody has reported interest in writing them:
Concept and code for the use of chip ram and the blitter from
user space.
Support for the Utilities Unlimited Emplant serial and SCSI.
BSC Alfa Data MultiFaceCard II support. Docs available from Jörg
Dorchain <dorchain@mpi-sb.mpg.de>.
Improved Phase5 Cybervision support (on-the-fly mode changes, 15/16/24
bits-per-pixel framebuffer support, 3.2-based XF68_Cyber, new 3D version, 3D
MPEG add-on support, etc.). Somewhat happening already.
Prodev Merlin graphics card.
Commodore A2090 SCSI controller.
Commodore Bridgeboards (A2286 in particular).
Commodore/Ameristar A4066 Ethernet card.
Commodore A2024 monitor (a high resolution grayscale monitor).
DraCo (Amiga clone/nonlinear video editor) support.
Access parallel IDE devices on some Amiga IO cards. My
understanding is that both the GVP IOExtender and the Multiface III
can support parallel IDE drives, at least in theory.
Access to ISA devices on the BoXeR motherboard.
Atari
The port to the Hades (an Atari clone) is underway and is at
least somewhat working: Wout Klaren <W.Klaren@inter.NL.net>.
VME
Earlier MVME cards (with 68020 and 68030 processors).
Other Systems
I am not aware of any current subprojects for other ports that are
being developed separate from their own kernel trees. Please let me
know if any new projects need to be added.
The Kernel
Recompiling Linux
(Much of this section written by Jesper Skov)
Since the release kernels found at the various Linux/m68k sites are
compiled for the average user, they contain drivers for just about
every piece of hardware supported by Linux. They will also be compiled
so they can be run on all the processors in the Motorola 68000 family.
This scheme enables everybody to boot Linux, but it also reduces the
performance of Linux: drivers for hardware you don't have or use take
up (non-swappable) memory, and in case of processor specific
programming, it is required to check which set of instructions to run.
Therefore, if you are a bit adventurous and have time to spare, you
should recompile a kernel for your machine configuration. Especially
if you are not a kernel hacker (i.e., you don't care about all those
2-3 line patches :) and use the same kernel for several days/weeks,
the time will be well-spent. (Of course, if you are a kernel hacker,
the time will be well-spent as well. :)
Recompiling your own kernel will make it possible to configure it to
your exact machine configuration, thus giving the best performance
possible.
Finding The Sources
The Linux/m68k sources are available by FTP from sunsite.auc.dk in
``/projects/680x0/vx.x'', x.x denoting the latest version numbers.
The sources are also mirrored at the sites listed in .
DO NOT try to use standard Linux kernel source
trees (from e.g. ftp.kernel.org) to
compile Linux/m68k. These trees are often out-of-date and may include
serious bugs due to changes being made on some architectures not being
propagated to Linux/m68k. Stick to Jes's source trees (or Jesper's
for Linux/APUS) unless you really know what you are doing.
What You Need to Recompile
You will need at least gcc version 2.7.2 (preferably 2.7.2.1 or later)
to compile the kernel.
Recompiling the kernel for the MC68060 processor requires binutils
2.7.0.3 or later, fixing a linking problem with the ifpsp
(integer/floating point support) files.
Linux 2.1.x and later require binutils 2.7.0.3 (or later) with the
CHIP fix. This makes it possible to specify which processor (chip) the
instructions should be assembled for. Thus it is now possible to write
mnemonics instead of opcodes for the bigger processors, easing the
reading of the code and removing the problem of wrong mnemonic/opcode
translations.
GCC can be found at any of the Linux/m68k FTP sites (see ). The required version of the binutils package
can be found at ftp://sunsite.auc.dk/projects/680x0/bin/.
How to Compile
There are three important stages: configuring the kernel; generating
the dependencies and compilation of the main kernel (vmlinux);
and building modules. You can choose to either use modules
(non-essential modules can be demand-loaded by the kernel) or not use
modules (which means all of your drivers will be built into the
kernel). Using modules makes your kernel and drivers slightly bigger,
but if you don't use several devices most of the time (like your
printer port, CD-ROM, and various filesystem formats) you will save
system memory when they are not in use (as none of the kernel itself
can be swapped to disk).
Note that this is a generic set of instructions; Debian comes with a
package called ``kernel-package'' that automates the compilation and
installation steps (and integrates them into the Debian package
system; a side benefit of installing kernel-package is that installing
it makes you install all of the other packages needed to compile a
kernel). No doubt Red Hat has a similar facility. In any event, the
general principles discussed here apply no matter how you actually
compile the kernel.
Configuration
cd to your kernel source directory
(e.g. cd /usr/src/linux)
Type make config. (If you have the
ncurses headers installed on your system, you may want to use make menuconfig instead, because it is more
forgiving of mistakes, though it is slower. You can also use make xconfig if you have Tcl/Tk and want to
configure under X, or make oldconfig if
you have already configured a kernel and just want to be prompted for
new options.)
Answer the questions you are asked (or answer all of the questions
under each menu, if you're using menuconfig). Most questions will be
Yes or No questions; if you choose to use modules, you can also answer
M to many of the questions to build a
module.
If you do use modules, you cannot modularize your boot device
(i.e. your IDE or SCSI controller) or your root partition's filesystem
format (usually ext2); I recommend against modularizing the ramdisk
support (in case you ever need to boot from a ramdisk for some
reason). I also recommend that you answer yes to the questions about
kerneld or kmod support (and be sure to get a copy of
modutils and install it on your system).
Eventually it will stop asking questions and you will get your
command prompt back. (menuconfig has a ``Save and Exit'' option that
will get you out when you're done answering questions.)
Compiling the kernel
This part is easy. Type make clean; make dep;
make (all on one line, with semicolons between each
command). Then go away while your computer heats your house; the
compilation speed depends on (a) how much RAM you have, (b) how fast
your CPU is and (c) how fast your hard drive and its controller are.
Slow computers (like 68020s) can take over a day to compile a kernel;
some 68060 owners have reported compilation times measured in minutes.
Some computers (with lots of RAM) will benefit from running the last
make as a parallel make (using the
-j switch); see the manual page for
make for details. When it is done, you
should have a file called vmlinux with
the kernel in it.
Compiling the modules
Compiling the modules is also easy; type make
modules; make modules_install and then go home and
eat popcorn (you can combine this line with the compilation line
above, e.g. chain the 5 makes together on one line). You should end
up with a lot of files under /lib/modules/X.Y.Z (where X.Y.Z is your kernel version
number).
Installing your new kernel
Generally, all you should need to do is copy the vmlinux file to
wherever your bootstrap expects to find it (for ataboot and amiboot,
this will be on a native filesystem partition; for LILO it will
probably be in / or /boot, but this can be
configured differently). Make sure you keep a copy of your previous
vmlinux file where you can get to it (or set up LILO so you can
boot from the previous file if necessary), just in case something goes
wrong.
Submitting Kernel Changes
Linux/m68k releases are built and released by Jes Degn
Sørensen. ``Built'' means that you can write a patch against
the current version or patchlevel and send it to Jes and he will
integrate it into one of the next releases. Make sure you state
against which version the patch was made. Please note that Jes has no
way to test Atari-specific patches.
It is also considered good etiquette to send your patch to the
Linux/m68k mailing list, so (a) Jes can see if other people say it
works (a crude form of peer review, if you will) and (b) so everyone
else on the list has a new patch to fool around with (a crude form of
everyone getting their kernel-hacking fix ;).
Note: If you patch processor-specific code (e.g. 68030 vs. 68040 MMU
or FPU) make sure that you document the dependencies.
Bug Reports
Send bug reports to the author of the code or to Jes. Probably a
better approach is to post it to the linux-m68k mailing list or to the
appropriate newsgroup. If there are bugs that will probably stay in
the code for an extended period of time let me know so I may publish
them here.
Known kernel bugs
TT-FPU bug
Problem:
Linux reports *** COPROCESSOR PROTOCOL VIOLATION *** FORMAT=9 or
something similar.
Fix:
Pull the 16L8 PAL's pin 11 free (this is the signal 'XBG') and solder
it to +5V. This prevents the PAL from tri-stating AS and DS until
XBGACK has gone low.
To make your 32 MHz daughter-card work:
Pull pin 11 of the 16L8 PAL out of the board
Solder pin 11 of the IC to +5V (pin 20 of 16L8)
****This applies to the CA400771 32 MHz daughter board****
**********Other boards should not have this bug***********
_______________________________________________________________
Atari 32 Meg Daughter Board / PGA |
|
___________________ |
| | |
| | |
2 1 1 1 1 1 1 1 1 1 |
0 9 8 7 6 5 4 3 2 1 |
. . . . . . . . . . . . . . . . . . . . |
PAL 16R4-7PC PAL 16L8-7PC |
. . . . . . . . . . . . . . . . . . . . |
1 2 3 4 5 6 7 8 9 1 |
0 |
CA400771 |
___________________________________________________________|
|
|
___|
Amiga with GVP 16-bit RAM
Problem:
When using a GVP card with 16 bit RAM on an Amiga with 68040,
Linux/m68k dies. (This also happens with Commodore A2052 boards.)
Fix:
Unfortunately, there is no known solution to that problem. So your
best bet is to get some real 32 bit RAM. The 16-bit RAM may still be
used as a ramdisk using the z2ram device, see .
When using the 2.0.x (and earlier) kernels, you
must stop it from being used as normal RAM (-m
option of amiboot). Quoting from the README for amiboot:
If you have some non-AutoConfig memory you want to use under Linux, or if you
want to disable some parts of your memory (e.g. Zorro II RAM on '040 based
systems), you have to use a memory file and the --memfile option. This file
contains information about the memory chunks you want to use under Linux. The
format for the file is:
chipramsize
[0xfastchunkaddr fastchunksize]
[0xfastchunkaddr fastchunksize]
...
For example, if you don't want Linux to use your 2nd meg of chipram, you would
create a file that looks contains only:
1048576
If you had 1M of chip ram, 2M of 16 bit FAST ram at address 0x200000 and 16M of
32 bit FAST ram at address 0x80000000, and you didn't want Linux to use the
slow 16 bit FAST ram, you'd create a file that looks like:
1048576
0x80000000 16777216
The memory file can also be used to specify in which block of memory the kernel
will be put. Normally Amiboot will put the kernel in the first block of Fast
RAM it will find. If you use a memory file, it will put the kernel in the first
block of fast RAM you specify.
In recent 2.1 and 2.2 kernels, 16-bit RAM is automatically disabled on
Zorro III-based systems, so you don't need to make a memory file.
Zorro II DMA Bug on A3640 rev 3.0
Problem:
You get strange system crashes and segmentation faults with a Zorro II
SCSI controller and an Amiga 3000 or 4000 with a Commodore A3640
(revisions 3.0 and 3.1).
Fix:
The immediate fix is to make your SCSI controller stop using DMA. If
you're using a A2091 or GVP Series II controller, add the kernel
parameter wd33c93=nodma to the boot
command you are using. However, this will result in irritatingly slow
disk accesses.
A better solution is to replace the A3640 with a newer version of the
card (revision 3.2) or a third-party card like the Phase5 Cyberstorm,
Warp Engine, GVP/QuikPak 4060D, or Apollo 4060. You may also be able
to upgrade your A3640 yourself, if you have some electronics
knowledge.
MC68060 performance issues
(written by Jesper Skov)
Problem:
In order to streamline the design of the MC68060, Motorola left out the
implementation of a few addressing modes and instructions. The '060
remains user-level compatible with the other family members by emulating
these addressing modes and instructions in software.
Whenever the '060 encounters an unimplemented instruction, a special
exception is taken that enters the ifpsp (Integer and Floating Point
Software Package), which is part of the kernel. Here the instruction
is emulated and processing is resumed.
Obviously, this adds an overhead to the use of the system and since
gcc 2.7.2 uses the unimplemented instructions for 64 bit
multiplication and division there is reason for concern. Judging from
my tests (highly inaccurate :) I expect a boost of at least 10%
when applications can be recompiled with an 060 aware gcc (that would
be release 2.8.0, due out last year ;)
Fix:
Recompile applications with an 060-aware gcc when available. A patch
to gcc 2.7.2 was recently posted that may also help.
Common problems
A lot of these no longer apply to new users, but may be of interest to
people who have been running Linux/m68k for a while.
This is by no means an exhaustive list. If you have any suggestions
for entries, please send them to me.
Note that system-specific questions are in separate sections of the FAQ;
you should read this section and the one pertaining to your system (if there
is one) before assuming your question isn't answered here. Also note that
system requirements are covered earlier in the FAQ.
I can't find the man page for XXX
There is a wealth of Linux documentation out
there for the original PC Linux which almost always applies to
Linux/m68k. Check out the documentation at your favorite Linux FTP
site.
Having said that, if you're using a proper distribution (Debian or Red
Hat), you should have man pages for all executable files; file a bug
report if the pages are missing.
How can I access my SCSI devices?
To access a SCSI device, you need to know two things: where it is logically
located on your SCSI chain and what type of device it is.
Where it is on the chain determines what order it will appear in on
the device list. Note that the SCSI ID is what is used to determine
location on the chain; this ID will normally be between 0 and 6 (but
can be between 0 and 15 if you have an Ultra-Wide SCSI controller).
What type of device it is determines how it is addressed.
Some examples:
/dev/sda is the first SCSI fixed disk
(hard drive or removable hard drive) on the chain. /dev/sdb is the second SCSI fixed disk. To
access partitions on hard drives, you follow the device name with the
partition number (e.g. /dev/sda1 is the
first partition on /dev/sda); you can
access up to 128 drives and up to 15 partitions per drive.
/dev/scd0 is the first SCSI CD-ROM on
the chain. /dev/scd1 is the second SCSI
CD-ROM. You can have up to 256 SCSI CD-ROM drives.
/dev/st0 is the first SCSI tape drive on
the chain. /dev/st1 is the second SCSI
tape drive on the chain. You can access up to 32 tape drives.
/dev/sg0 is the first miscellaneous
(``generic'') SCSI device on the chain (most often this will be a
scanner; it can also be a CD writer). /dev/sg1 is the second generic SCSI device. You can have
up to 256 generic devices.
Note that to use an external SCSI device, it must be switched on when you
boot the system. Also, it is a bad idea to swap removable fixed disks while
the system is switched on (it is OK, however, to swap CD-ROMs and tapes,
when they aren't mounted).
If you have multiple SCSI controllers, the device assignments will get
horribly confusing (there is a logic to it, but it defied my powers of
explanation); I recommend reading the boot messages to determine what
device addresses are being assigned to each device.
How do I access my IDE devices?
Unlike the SCSI driver (which can distinguish between CD-ROMs, tape
drives and fixed disks), the address of most devices on the IDE bus
(except tape drives) only depends on where it appears to be on the
bus. Assuming you have an IDE controller, all you need to know to
access it is what ``hard drive position'' it appears in:
Master on primary controller: hda
Slave on primary controller: hdb
Master on secondary controller/doubler: hdc
Slave on secondary controller/doubler: hdd
You can have more than two controllers: for example, hde and hdf
correspond to the master and slave on the tertiary controller. You
can currently have up to six IDE controllers on a system (and thus up
to 12 drives).
This information should also appear in the boot messages. You can
access up to 63 partitions on an IDE fixed disk. Note that the
distinction between ``primary'' and ``logical'' partitions only
applies to disks partitioned using the MS-DOS partitioning scheme.
Parallel IDE devices are currently not supported on any Linux/m68k
system; however, the underlying hardware support is available on at
least some Amiga IO cards.
How do I use an IDE CD-ROM?
Generally if you have just an IDE hard drive and an IDE CD-ROM, the
CD-ROM will be hdb (depending on your
master/slave settings).
Simply make a mount point (e.g. mkdir
/cdrom) and then do mount -t iso9660
/dev/hd? /cdrom, replacing the ? with the drive letter from the list above.
How do I use an IDE tape drive?
IDE tape drives are accessed through /dev/hdt0 (/dev/nhdt0 for no-rewind-on-close). Note that
only one IDE tape drive is supported.
My SCSI bus locks up when the kernel probes for devices
(written by Frank Neumann)
Some devices dislike being polled on LUNs (logical units) other than
0. What can happen here is that the SCSI bus just locks up because the
device does not answer the inquiry. Quite a couple of drives have
already been added to the blacklist of ``bad'' devices in the kernel,
but there are probably more. If you discover this behavior on one of
your SCSI devices, you might try adding it to the blacklist (in
drivers/scsi/scsi.c) yourself or ask
someone to do it for you if you are sure about it.
If you think you're adventurous and want to fix the kernel for a
specific SCSI device yourself, here is what you could do. Note that
these instructions are for the Amiga, but they apply in general to all
systems:
Under AmigaOS, use the scsiutil command
(available on Aminet) and its -i option
to send an Inquiry command to that particular device. Write down its
vendor identification, product identification and Product revision
level. For instance, an Apple CD-300 CD-ROM drive might give (at the
bottom) this output:
Vendor identification: SONY
Product identification: CD-ROM CDU-8003A
Product revision level: 1.9a
Now go into the kernel source tree and (under drivers/scsi/scsi.c) add your drive to the
blacklist of drives that have problems (just search for
``blacklist''). Recompile the kernel and try it out without the
wd33c93= options you probably used so far.
If it works, you might want to send your change as a unified context
diff (use ``diff -u'') to the Linux/m68k mailing list.
I displayed a binary file, and now my console is totally screwed up
(written by Frank Neumann)
Once in a while, it may happen to you that you try to read a binary
file. Text viewers like more will
interpret the input they get as control characters, to for instance
change to an alternate character set. This may result in a strange
looking prompt, made up of special characters. In such a case, you
need to reset the terminal to its initial state. There are several
ways to do this, here's what I use: You have to type (blindly):
echo ^V^O
Read this as: Control-V, Control-O. The sequence
``Control-O'' does just what we want: It resets the text
attributes and character set, and also clears the screen. You have to
mask the control character with Control-V, otherwise the shell would
directly try to use the ``Control-O'' for its purposes.
Control-V Esc c is another useful sequence that does a more complete
reset of the console (but you usually won't need to use it).
You can also avoid this problem by using less or most
instead of more; both of these pagers
are available in Debian. Be sure to set up a PAGER environment
variable (in your .cshrc or .bashrc) so programs like man use your preferred pager instead.
Can I use both ELF and a.out libraries/binaries in my system?
(written by Frank Neumann and Jesper Skov)
No problem. If you moved to ELF according to Andreas Schwab's hints
(ftp://tsx-11.mit.edu/pub/linux/680x0/ELF/README), you already
have a mixed system. All old a.out shared libraries, stubs, static
libraries and simple object files (*.so, *.sa, *.o, *.a) are now in
/usr/m68k-linuxaout/lib, except for libc
and libm which remain in /lib. The ELF
shared libraries are in the usual places (/lib, /usr/lib and
maybe /usr/X11R6/lib and /usr/local/lib) and don't interfere with the
a.out libraries.
When starting a program that is either a.out or ELF, the corresponding
link loader (ld.so and ld-linux.so respectively) will determine what
shared libraries are required and load them on the fly. This of course
works for both a.out and ELF binaries. You only have to keep in mind
that with a mixed system (using some binaries that require ELF
libraries along with others that require a.out libraries) both ELF and
a.out libraries have to be kept in memory (in particular, but not
limited to, libc and libm). This certainly costs valuable memory. So,
the long-term solution will be a pure ELF installation (libraries and
binaries).
You can download the ELF versions of the programs via FTP, download
sources and recompile, or ``Debianize'' your system (I really don't
recommend the latter unless you really know what you are doing).
If you install any recent distribution, you will have the a.out
compatibility libraries but (hopefully) no a.out binaries.
Note: Concerning a.out libraries, a couple of people had problems with
the last libc that was created (4.7.2). So we recommend staying with
4.6.27 which most people were using.
Note: a.out is effectively dead on Linux/m68k. You can probably live
without a.out support (you might want it available as a module, however).
``less'' behaves oddly when I press a key
The older versions of the root-filesys have the wrong device numbers for
/dev/tty. Delete it and do a /dev/MAKEDEV std (you do have a
somewhat current /dev/MAKEDEV, don't you?)
What are the current major/minor device numbers for /dev/xxx?
The ``official'' version of MAKEDEV for Linux can be found at http://metalab.unc.edu/pub/Linux/system/Admin/. A list of
the major/minor device numbers can also be found in the kernel tree as
Documentation/devices.txt.
Debian/m68k includes a MAKEDEV that is pre-configured for Linux/m68k.
How can I tell an a.out binary from an ELF one?
Use the file command. It will either
tell you 'mc68020 demand paged' if it is an a.out binary, and give a
longer (self-explanatory) description if it is ELF.
You can also use ldd. If it says
something about a ``DLL jump'', the binary is in a.out format;
otherwise, it's in ELF.
For statically linked binaries, ldd
reports statically linked (ELF) for ELF
binaries. I have no idea what it says for a.out binaries, because I
don't have anything statically linked a.out any more (at least, not
that I can find).
GCC complains that it can't find shared libraries while linking
(written by Geert Uytterhoeven)
The current ld requires you to create links from *.so to *.so.6 for
all libs, so you should have e.g. libX11.so ->
libX11.so.6, libX11.so.6 ->
libX11.so.6.0.
The development packages in Debian automatically handle this situation.
How do I byte-swap an ext2 filesystem?
Please read Michael Schmitz's mini-HOWTO on this topic; it's available
at http://www.linux-m68k.org/ext2swap.html. The mini-HOWTO also
explains how to check if you need to do anything.
My kernel hangs at the login prompt
It is possible that you have an IDE controller on your system without
any IDE devices attached to it. If you have been experiencing
problems like this, you should upgrade to kernel 2.0.28. If upgrading
doesn't fix the problem, ask for help in the newsgroup.
I just upgraded to 2.1.21 (or later) and modules don't work
You need modutils-2.1.23 or later. Note that these modutils are
incompatible with kernels from 2.1.0 to 2.1.17, so you'll need to keep
a copy of modutils-2.1.13 around if you plan on switching back and
forth. The sources for modutils can be found at ftp://ftp.redhat.com/pub/alphabits/ or a more reliable
mirror, ftp://tsx-11.mit.edu/pub/linux/projects/alphabits/.
If you're running 2.1.26 or later, no patches should be necessary
(beyond the ones you had to apply to get that version to compile).
Modules in 2.1 series kernels also require running libc 5.4.17 or
later (which in turn requires ld.so 1.8.5 or later). In any event,
you probably should be running glibc by now.
Current versions of modutils are available in Debian that support
both 2.0 and recent 2.1/2.2 kernels.
Where can I get Linux/m68k on CD-ROM?
See for an answer to this question.
How do I patch my kernel?
Once you have a copy of the Linux/m68k kernel, you should rarely need
to get a completely new tree. Instead, you can patch the kernel
sources to the next released version.
For example, if you have the 2.0.25 kernel tree already, you need to
get the file linux-2.0.28.diff.gz via
FTP (don't get the file with the word ``native'' in it unless you have
the same version kernel tree for Linux/i386). Then use cd to get to
the directory above your kernel tree (probably /usr/src), and make a copy using hard links to
save a lot of space:
cp -rl linux-2.0.25 linux-2.0.28
You may also want to change your symbolic link linux ->
linux-2.0.25 to point to the new tree:
ln -sf linux-2.0.28 linux
This way, your links in /usr/include
don't have to be changed every time you upgrade your kernel (i.e. you
can link /usr/include/linux ->
/usr/src/linux/include/linux instead of using the kernel
version number hard-coded). Then, cd to linux-2.0.28 and type the following 2 commands:
rm -rf include/asm
zcat (path of linux-2.0.28.diff.gz) | patch -p1 -s
If all goes well, it will work for a minute or two and then return you
to your shell's prompt. Make sure the patch applied correctly by
typing find . -name '*.rej'. If no
filenames are listed, everything worked perfectly.
Now do a make clean to delete all the
backup .orig files left by patch, and
then do a normal make config, make dep and finally make.
Once you've successfully made a copy of the new kernel, you can safely
delete the previous version's tree using rm
-r.
Please note that you will often get rejected patches if you patch a
kernel tree that you have already patched from the Linux/m68k mailing
list (or from any other source). The easiest way to avoid this is to
make a ``clean'' (i.e. distribution) kernel tree and another tree
that you apply the patches from the mailing list to.
Miniproject: Someone with a bit of spare time might want to adapt
scripts/patch-kernel to understand
Linux/m68k diffs. Your fellow Linux/m68k users would be eternally
grateful.
How do I patch a generic Linux kernel tree to work with Linux/m68k?
This is basically the same as patching a Linux/m68k kernel tree. At
sunsite.auc.dk, Jes maintains two sets
of diffs for each kernel version: they are named X.Y.Z.diff.gz and X.Y.Z-native.gz, where X, Y and Z are the
components of the kernel version number.
Most users will simply use the standard patches to patch a previous
version of Linux/m68k's tree to the current version (this is the
procedure outlined above). If you already have a standard Linux
source tree, however, it is easier to use the -native patches.
To do this you must have the exact, pristine
kernel tree released by Linus for that version; i.e. to make
Linux/m68k 2.1.127 you need Linux 2.1.127. You may need to patch your
standard Linux source tree using Linus's patches to get it to a
version that corresponds with a Linux/m68k release (not every kernel
released by Linus is released by Jes).
Once you have identical version numbers, you should cd into your kernel source tree and type the
following two commands:
rm -rf include/asm
zcat (path of linux-X.Y.Z-native.diff.gz) | patch -p1 -s
Any errors will be reported on your screen. There may be errors
patching the Makefile for some versions (because the SMP setting used
to be in there), but these can usually be ignored safely (check the
contents of the reject files). You should also make sure that the
ARCH setting in the Makefile has not been overridden.
How can I get my Jaz drive to work with Linux (or another OS...)?
Recent models of the Jaz drive (with firmware version H.71 and later)
are shipped in a so-called ``write-verify'' mode. This mode
causes problems for operating systems (like Linux) that can't run
Iomega's proprietary drivers.
I (Chris) have been in touch with Iomega tech support, and they
provided me with the low-level commands that allegedly get the Jaz
drive into the correct mode. However, the commands they provided
don't seem to work (probably (ab)user error, knowing my level of SCSI
programming knowledge).
In the meantime, the only thing to do is find a Mac or PC with a SCSI
interface and use Iomega's Jaz Tools software to disable the write
verify mode. This can also be done with a registered copy of
Shapeshifter on the Amiga. On a PC, you will need to use the Windows
version of Jaz Tools to disable write-verify (the DOS version of the
tools won't do it).
More information about the Jaz drive and Linux (including the Jaz
mini-HOWTO) can be found at Bob Willmot's Jaz-Linux
information page.
When I use dpkg or tar, I get messages about a ``broken pipe''
This usually means that you are running a buggy version of getty. The agetty
and mingetty versions of getty are known not to have this problem, so
replace your current getty with one of
these. The getty version included in Debian/m68k will also work
correctly.
[It may not actually be a bug in getty. But replacing it seems
to fix the problem.]
What is the current status of FPU emulation?
Older kernels with FPU emulation are available from ftp://ftp.nocrew.org/pub/linux/. The FPU emulation code used
in those kernels was adapted from NetBSD, and has bugs originating
from both the emulation code itself and the Linux interface to it.
The emulation code does not support all transcendent functions and not
all supported functions have full precision implemented. Use of this
FPU emulation code is not supported, endorsed, or sanctioned by the
kernel developers; please do not send them bug reports, complaints, or
even patches to this code.
The reason why the old FPU emulation code is unsupported is that its
license is incompatible with the GNU General Public License. The code
is restricted under the terms of the Berkeley Source Distribution
license, which requires that accompanying code and documentation
recognize the contributions of the University of California to the
software. While this may seem to be a trivial point, the GPL does not
allow any restrictions beyond those in the GPL on how software linked
to the GPL can be distributed.
A new effort to write an improved FPU emulator under a GPL-friendly
license is in the works; it is planned that this emulator will be
licensed so it can be used without any strings attached (probably
under something like the MIT X license). A recent mail from Roman
Zippel claimed that the emulation was getting close to ready; see
Roman's site for a snapshot. The Mac site may already have
kernels with FPU emulation compiled-in.
If you are interested in getting your hands dirty and doing some
actual work on the emulator, the code is also available at the
Linux/m68k CVS repository. The CVS server is cvs.linux-m68k.org; login with user name ``anon'' and a
blank password.
What about the 68LC040?
Some Apple Macintoshes were shipped with broken 68LC040 chips that
can't run the FPU emulator. David D. Kilzer writes:
The easiest way [to check] is to try installing Software FPU for Mac
OS. It will refuse to work if you have a ``broken'' LC040. You
should be able to download this software from an INFO-MAC archive, or
try Lycos' FTP
Search.
I can't boot from a ramdisk
This is usually because of the initrd driver. Make sure you specify
on the boot line ``-r <ramdisk-name>
root=/dev/ram''.
The other possibility is that you don't have enough RAM to boot from a
RAM disk (you really need at least 6 MBs with recent kernels). In
this case, it is possible to write the ramdisk's contents to a high
density disk and try booting from this (but, of course, you do need a
high density drive to do this). Ask in the newsgroup for help if you
don't know how to do this on your own. Alternatively you may be able
to get someone else to compile a smaller kernel image specifically for
your system (which will save a lot of RAM).
I can't execute programs in my current directory
As a security precaution, most systems come pre-configured to not include
the current directory in your path. The lazy way out is to add ``.'' to
your path, but I strongly recommend against doing that (particularly if you
are running as root).
The right way to handle this situation is to preface the program name
with ``./''. For example, type ``./configure'' instead of
``configure''.
Video Questions
How do I choose what video mode to use with Linux?
This is done with the ``video'' boot parameter. For details on what
resolutions are supported, you'll want to read
Documentation/m68k/framebuffer.txt (in 2.1/2.2,
Documentation/fb/framebuffer.txt) and
Documentation/m68k/kernel-options.txt in the Linux/m68k
kernel source tree (the former document only appeared in 2.0.28).
You can also specify what font you want to use with the font
option to 'video'.
For example, to boot into 640x480x4 mode on an Amiga with a 31 kHz or
multiscan monitor, use video=vga.
I use video=font:PEARL8x8,vga on my Amiga 4000, for a very nice
80x60 text display.
When I run X, it complains about invalid modes
The easiest way to fix this is to change an uncommented ``Modes'' line
in your /etc/XF86Config to read:
Modes "default"
Later on, you can get Geert Uytterhoeven's fbset program (from ftp://ftp.uni-erlangen.de/pub/Linux/680x0/bin/system/ or the
Debian distribution) and customize your video modes.
If you have an old XF86Config laying around, you may want to copy the
example provided at /usr/X11R6/lib/X11/XF86Config.eg (in Debian 2.1,
/usr/doc/xserver-common/examples/XF86Config.eg)
into /etc/XF86Config and then edit the
new configuration file.
I've got fbset, but I can't create any video modes
(written by Geert Uytterhoeven)
If you have a PAL-based Amiga with a true Multisync monitor (like the
A1960), try these as starters (they should be typed on one line; they
are split up to make the FAQ format correctly):
ModeLine "vga70" 28.376 640 736 848 912 400 412 414 449 +VSync +CSync
ModeLine "vga" 28.376 640 736 848 912 480 489 491 521
ModeLine "832x624" 28.376 832 940 1020 1024 624 628 630 660 Interlace \
+HSync +VSync
ModeLine "832x600" 28.376 832 964 1044 1096 600 600 602 636 Interlace \
+HSync -VSync
ModeLine "896x672" 28.376 896 1044 1108 1160 672 676 678 708 \
Interlace -HSync +VSync -CSync
ModeLine "960x720" 28.376 960 1132 1172 1224 720 720 722 754 \
Interlace -HSync -VSync -CSync
ModeLine "1024x768" 28.376 1024 1196 1212 1288 768 772 774 804 \
Interlace -HSync +VSync -CSync
For NTSC, you can try replacing 28.376 on each modeline with 28.636
(but this hasn't been tested). Note that each ModeLine should be
entered on one line in your XF86Config file.
You may also have some files (as /etc/fb.modes.*) that have
some preconfigured video modes.
How do I create the framebuffer device nodes?
(written by Geert Uytterhoeven)
You can create the frame buffer special device nodes for the Amiga
using the following commands:
mknod /dev/fb0 c 29 0
mknod /dev/fb0current c 29 0
mknod /dev/fb0autodetect c 29 1
mknod /dev/fb0ntsc c 29 2
mknod /dev/fb0ntsc-lace c 29 3
mknod /dev/fb0pal c 29 4
mknod /dev/fb0pal-lace c 29 5
mknod /dev/fb0multiscan c 29 6
mknod /dev/fb0multiscan-lace c 29 7
mknod /dev/fb0a2024-10 c 29 8
mknod /dev/fb0a2024-15 c 29 9
mknod /dev/fb0euro36 c 29 0
mknod /dev/fb0euro36-lace c 29 11
mknod /dev/fb0euro72 c 29 12
mknod /dev/fb0euro72-lace c 29 13
mknod /dev/fb0super72 c 29 14
mknod /dev/fb0super72-lace c 29 15
mknod /dev/fb0dblntsc c 29 16
mknod /dev/fb0dblntsc-ff c 29 17
mknod /dev/fb0dblntsc-lace c 29 18
mknod /dev/fb0dblpal c 29 19
mknod /dev/fb0dblpal-ff c 29 20
mknod /dev/fb0dblpal-lace c 29 21
mknod /dev/fb0vga c 29 22
mknod /dev/fb0vga70 c 29 23
mknod /dev/fb0user0 c 29 24
mknod /dev/fb0user1 c 29 25
mknod /dev/fb0user2 c 29 26
mknod /dev/fb0user3 c 29 27
mknod /dev/fb0user4 c 29 28
mknod /dev/fb0user5 c 29 29
mknod /dev/fb0user6 c 29 30
mknod /dev/fb0user7 c 29 31
However, these should be pre-created when you install your
distribution.
How do I make sure that I do not damage my monitor when running X?
(written by Haidinger Walter)
Before trying to run X, you should edit /etc/XF86Config. Look for the Monitor section. Set the ``HorizSync'' and
``VertRefresh'' values to the specifications matching your monitor
(which should be listed in your monitor's manual).
For example, if you have an M1438S monitor:
HorizSync 15-40
VertRefresh 45-90
My MAG 510V2 SVGA monitor has the following settings:
HorizSync 30-54
VertRefresh 50-100
Of course, this provides neither a warranty nor an insurance that you
cannot damage your monitor, but it will be much more difficult now...
Do a ``man XF86Config'' for a detailed description of these
options.
(Maintainer's note: I fried an A1960 monitor once by blindly copying
someone's HorizSync and VertRefresh values from an XF86Config file.
Make certain that you are using the correct values for
YOUR monitor; they should be in the book that
came with it. And if your monitor starts acting funny,
switch it off immediately!: if I had switched
mine off, I could have saved myself a $100 US repair bill.)
When I try to run the X Window System on 2.0.33, I get an error
There is a minor bug in the released 2.0.33 source tree that broke
framebuffer access. There is a patch at James Troup's Linux/m68k
pages; it is also available at the Linux/m68k FTP mirrors.
This problem was fixed in the 2.0.33pl1 release.
Kernel 2.1.X doesn't compile out of the box for me
This is usually because Jes doesn't have the time to test every single
configuration before releasing the kernel sources. Monitor the
Linux/m68k kernel mailing list for patches (usually all the major
fixes have been posted after about two days).
I get strange crashes with kernel 2.1.X and two IDE drives
(written by Geert Uytterhoeven)
This bug apparently appeared in kernel 2.1.15. Geert says:
Gadi Oxman (the IDE guru) told me this could be due to buggy
IDE interfaces, IDE drives or both (or a bug in the driver, of course
:-), and he suggested to try ``ide0=noautotune'' which solved my
problem last Thursday. But I can't be 100% sure this really
solved it...
More recent work has apparently resolved a lot of the IDE bugs people were
seeing; try kernel 2.1.119 or later and see if that will fix the problem.
Internationalization questions
How do I set a xxx keymap? (xxx = German, French, Swedish, ...)
(written by Christian Steigies)
You will need the ``loadkeys'' command, which is part of the kbd package.
kbd is maintained by Andries E. Brouwer
<aeb@cwi.nl> and you
can find it at ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/ and ftp://ftp.win.tue.nl/pub/linux/util/. The current version is
0.93.
On the SuSE aktuell (March 1997) an older version is on CD 2 as
/kernel/kbd-0.92.tar.gz
Install kbd (gunzip and untar the archive, preferably in
/usr/local/src, then ``make'') and ``make install''. If you use
version 0.92 (or lower?) you need to remove resizeicons from the
Makefile). You will then have all the executables in the right place
and a whole lot of keymaps in /usr/lib/kbd/keytables/.
As of version 0.93 these keytables are more or less useless for m68k users,
since they are for PC-style keyboards. Loading one of these on an Amiga or
Atari screws up the keyboard layout so that its virtually unusable. Later
versions include some Amiga and Atari keymaps you can work from.
You need to make one by yourself or get one from ftp://ftp.uni-erlangen.de/pub/Linux/680x0/bin/system/keymaps/, where Roman Hodek has started collecting Amiga and Atari
keymaps. Get the keymap you want to install, say de-amiga.map, and put it in /usr/lib/kbd/keytables/ (In newer kbd versions,
hopefully m68k keymaps will also be included.)
Typing ``loadkeys de-amiga'' will then load this keymap.
To load this keymap during boot, create a rc.loadkeys in /etc/rc.d
like (don't include the lines starting with ---):
--- rc.loadkeys ---
#! /bin/sh
#
# rc.loadkeys load German keyboard map
#
# Version: @(#)/etc/rc.d/rc.loadkeys
#
loadkeys de-amiga
--- rc.loadkeys ---
Debian/m68k has a more automated way of handling the keymaps (through
the kbd Debian package). The package includes several Amiga and
Atari keymaps for various layouts.
How do I create a xxx keymap?
(written by Christian Steigies)
The ``showkey'' command (part of kbd) will tell you which scancode is
generated for every key you press, just write down what you want to be
generated by this key ;-)
The easiest way is to get a keymap for your computer and only change
the keys you want to be mapped differently. ``dumpkeys'' shows you the
current keyboard mapping, ``dumpkeys -l'' will show you all the names
of the symbols that can be mapped to the keyboard. ``man keytables''
tells more about creating keytables.
When you have made a keymap, contact Roman Hodek <rnhodek@informatik.uni-erlangen.de> so you can upload it.
How do I set up my shell to use non-ASCII characters?
(written by Christian Steigies and Haidinger Walter)
To type umlauts and more in bash, create
an .inputrc in your home dir with:
--- .inputrc ---
set meta-flag On
set convert-meta Off
set output-meta On
--- .inputrc ---
Within tcsh, you need to use the
following procedure:
You need an 8-bit clean tcsh with nls support along with the
locale package.
In your tcsh, type ``echo $version''. It should say something
like tcsh 6.07.02 (Astron) 1996-10-27
(m68k-unknown-linux) options 8b,nls,dl,= al
Only the options are important. It should show at least ``8b'' and ``nls''.
If not, you need to recompile tcsh, but, AFAIK, the tcsh binary on the
Linux/m68k mirrors has both options set.
How do I use locales?
(written by Haidinger Walter)
To use locale, you need at least libc-5.4.17 (or libc6). I'd recommend
to install the lib/libc-5.4.23.bin.tar.gz package if you haven't
already. 5.4.23 is a bug-fix release to 5.4.17 and does not introduce
new features.
Next, you need the locale database. I know three sources:
SuSE owners can just unpack suse/a1/localedb.tgz
(usually on CD1) to /
The package lib/glibc-2.0.2-m68k-linux.bin.tar.gz from the
Linux/m68k mirror also contains a _partial_ locale
database. To unpack just the database, type on one line:
tar -zxvf glibc-2.0.2-m68k-linux.bin.tar.gz
"usr/share/locale/*" "usr/share/i18n/*"
Debian users should install the locales package.
Whether you have the SuSE distribution or not, I strongly recommend that
you read the mini-HOWTO 'Locales' at least once. It not only describes
how to get, build and install the locale package, but also the system
requirements and, most important, the usage of the associated commands
and environment variables!
So, just follow the instructions of the 'Locales' mini-HOWTO to setup
the locale-package and customize it to your system. Finally, set your
environment variables to the appropriate values and put them into your
.tcshrc.
If you cannot wait that long, have a look at /usr/share/i18n/locales. If you're German, try
(in tcsh):
setenv LC_ALL de_DE
setenv LC_LANG de_DE
bash users would use:
LC_ALL=de_DE
LC_LANG=de_DE
export LC_ALL LC_LANG
How do I use my keymap in X?
(thanks to Boris Bojic for mentioning this on linux-apus)
You need to disable the X Keyboard Extension; add the following line
to your XF86Config file:
XkbDisable
I installed glibc and now I get errors about undefined references.
(written by Haidinger Walter)
After installing glibc, run ldconfig. Then type ls -l
/usr/lib/libc.so. Is it a symlink to libc.so.6 ? Well, this is not
correct for glibc.
Type:
rm /usr/lib/libc.so
echo "GROUP ( libc.so.6 ld.so.1 libc.a )" > /usr/lib/libc.so
Note that if you run ldconfig now, it may issue a warning about
libc.so not being a shared library. That is Ok, ignore the warning.
ps and top do not display the associated tty numbers, just a '?'.
(written by Haidinger Walter)
You are missing the /etc/psdevtab file. Type ``touch /etc/psdevtab''
(as root) and run ps again.
How do I use the loop-back device?
(written by Haidinger Walter)
Do a ``man 8 mount'' and search for a section entitled ``THE LOOP
DEVICE''.
Create the device-nodes if they do not exist yet:
mknod /dev/loop0 b 7 0
mknod /dev/loop1 b 7 1
...
mknod /dev/loop9 b 7 9
More information and examples can be found in:
Bootdisk HOWTO
CD Writing HOWTO (which also explains how to mount cdrom-images)
Documentation/ramdisk.txt (in the kernel sources)
Note: To use loop devices, you must have a kernel that supports them.
Floppies and modules
(written by Haidinger Walter)
I have compiled floppy support as a module but it doesn't work
Assuming that you have read ``Documentation/modules.txt'' in the kernel
sources and you have already installed the correct version of modutils, you
should type ``modprobe -c | grep -w major-2''
You should get:
alias block-major-2 amiflop
If it shows `floppy' instead of `amiflop', then the kernel searches
for a module named `floppy', which does not exist for Linux/m68k. You
have to add the above line to your /etc/conf.modules to
assign the proper name. This is also true for some other modules. See
the next question for details.
Note: Atari users will want to replace `amiflop' with `ataflop'.
Which aliases do I put to /etc/conf.modules?
The kernel looks for the modules under /lib/modules/. The
modules are referenced by name. However, some of the m68k-specific
modules have different names from their Intel counterparts. Here is an
(incomplete) list:
# file /etc/conf.modules
alias eth0 ariadne # depends on your Ethernet card (or off)
alias block-major-2 amiflop
alias char-major-4 amiga_ser
alias char-major-6 lp_intern
alias char-major-14 dmasound
alias net-pf-3 off # no ax25 module available (yet)
alias net-pf-4 off # if you don't use the ipx module
alias net-pf-5 off # if you don't use the appletalk module
If you have any alias that are missing here, please mail!
Some of these settings may be done automatically by recent versions of
modutils.
Why is there so little information on the web about the BrandX port?
If BrandX is the Amiga or Atari, it's because for the most part we've
found that once you get past installation, running Linux on both
systems is pretty much the same. There are a few machine-dependencies
that affect day-to-day use (port assignments and keymaps, for
example), but 99% of the time it makes no practical difference
what system you run Linux on.
How do I use my mouse in X or with GPM?
The configuration is fairly easy. Tell the application you are using
a bus mouse, and make a soft link from /dev/amigamouse (for Amigas) or
/dev/atarimouse (for Ataris) to /dev/mouse.
You may also want to enable 3-button emulation if you only have a
two-button mouse.
My English isn't very good. Can I read this FAQ in my native language?
There is a French translation of this FAQ available at http://www.mygale.org/~atari/Linux68k/Faq/, translated by
Christian Jacolot.
If you're interested in translating the FAQ into another language,
please let me know and I'll try to point you in the right direction.
How do I uncompress the pre-compiled kernels outside of Linux?
You will need a program that can extract gzip-compressed tar archives for
your system. Mac users can use recent versions of StuffIt Expander; Windows
users should be able to use recent versions of WinZip. There is a program
called ``Opener'' for NeXTs that will also work (which actually calls gzip
and tar to work).
There is an Amiga program called ``UnTGZ'' available from Vapor
Software (http://www.vapor.com/software/); I have no idea what the
license is for this program (and haven't used it).
Alternatively, you can obtain the GNU gzip and tar programs for your
current OS. On Aminet (for Amiga users), you should be able to find
these in devel/ade, util/gnu or util/arc. Older copies of these tools
are in the ``tools'' directory at Erlangen and its mirrors.
Where's Netscape for Linux/m68k?
The Mozilla browser apparently works (at least to a certain extent)
with the GNU Lesstif library; this is probably your best bet for a
Netscape-like browser on Linux/m68k (after all, Mozilla is a
stripped-down version of what will be Netscape Communicator 5.0). See
http://www.mozilla.org/.
The current development version of Debian includes a Mozilla package.
Note that there is a LinuxPPC version of Netscape available (it's
actually called the ``MkLinux'' version), which apparently works with
Linux/APUS.
dpkg problems with 2.1/2.2 kernels
To resolve these problems, get the releases of libc6 and dpkg from
Debian 2.1 (or later). Patching your kernel is no longer necessary.
Note that the current version of dpkg in unstable, 1.4.1, does have
some chown problems. Revert to 1.4.0.34 until this is fixed.
Can I install Debian (or Red Hat) over an existing Watchtower installation?
(Thanks to Michael Schmitz for pointing me in the right direction for
answering this question)
You can; however, I strongly recommend against
doing so. There are various reasons: two of the most important are
varying file locations and C library conflicts. I speak from
experience that you don't want to mix files (I'm
still cleaning up old a.out and libc5 files from my system).
Here's a procedure that should work well for doing an installation
from scratch, while keeping your old user files available. This is
not well-tested or anything, but should help you get the idea of what
you need to do:
Print out your /etc/passwd and /etc/group files (you may need them later). You
should also print out your network configuration information.
Back up your Linux partitions; if you are installing on a clean disk
(i.e. not the one you're using now), you can forgo this and the next
two steps.
If you have a home partition with all of
your user directories on it, keep it around. Otherwise, make a tar
file of your home directories tree and copy that somewhere safe (a
non-Linux partition should be fine); make sure you use the ``-p'' flag
with tar to retain all of the permissions.
Repartition (if you want). But don't clobber home if you already had one.
Install the base distribution (Debian, Red Hat, whatever) and
any packages you want extra.
Add the actual user accounts from your old /etc/passwd
file to your new system, using your distribution's user adding utility
(for Debian, it's useradd). Set the passwords to each
account (or disable them). If you had any special groups (besides a
users or staff group), you may want to add them as well.
Mount your home tree at /home (if it was
on a partition). If you have a tar file of the home tree, figure out where you're going to put
it (/var/home might be a good choice,
although a separate partition would be preferable), untar the home tree there (again using the ``-p'' flag),
and make a symlink (if necessary) from /home to the root of your new home tree.
If you didn't use the tar file: cd to /home and change the ownership of the users'
files to their new users. For example, for a user named bob (in a
group named users), chmod -R bob.users
/home/bob. If people have interspersed files, you may need
to do a find operation to get the
permissions straight (refer to your old password and group files if
necessary).
This outline should at least point you in the right direction; let me
know if you have any suggestions for improving these instructions.
What's the difference between glibc and libc6?
libc is the C library; basically, it contains all of the system
functions that most (if not all) programs need to run on Linux. It's
similar to a combination of dos.library and
exec.library on Amigas, but it also contains a lot of things
that are in the C runtime library (like, for example,
ixemul.library or the .lib files included with
SAS/C and other compilers for AmigaOS).
libc6 and glibc are the same version of libc; officially, it's version
2 of the GNU C Library (but it's the sixth major version of the Linux
C library). You can read more about glibc at the GNU C Library
pages.
The major versions of libc for Linux/m68k are:
libc4: Version 4 of the C library is based on the a.out
binary format; it was the first version to support dynamic linking
(shared libraries). However, a.out dynamic linking had a lot of
problems (for example, you had to build the library twice, so you
could add a jump table to the library on the second pass, and the
library was non-relocatable, so every library had to be allocated a
block of space to load into), so it was abandoned (at least on m68k;
Intel users may still need it for some esoteric applications). You
should not be using libc4 for anything any more. If you do use it, we
will hunt you down and execute you as an example to others. (Not
really, but you get the point...)
libc5: Version 5 of the C library was a fairly big
improvement over version 4. However, it still had some problems
(adding new functions or changing structure sizes introduced subtle
bugs) so it is no longer being actively developed. It was the first
version of the Linux C Library based on ELF, a different file format
that made programs loadable in more flexible ways (it uses hunks,
similar to the AmigaOS executable file format). libc5 is officially
deprecated on m68k; use libc6 for new compilations.
libc6: Version 6 of the Linux C Library is version 2 of
the GNU C Library; the confusion is because Linux has had multiple C
library versions. This is the newest technology available, and
includes features (like ``weak symbols'') that theoretically allow new
functions and modified structures in the library without breaking
existing code that uses version 6, and avoid kernel version dependency
problems. You should be coding and compiling all code against this
version.
How do I install the X Window System?
This procedure depends on the distribution you are using. For
Debian/m68k 2.1 (slink), you will need at least
the following packages (get the latest versions available):
xfonts-base
xfree86-common
xlib6g
xserver-common
xserver-fbdev
For a fully functioning X installation, you'll probably want a decent
window manager (fvwm2, fvwm95, AfterStep, WindowMaker, icewm...), some
more X packages (like xcontrib) and some more fonts.
How can I save the kernel messages when the system crashes?
The Linux/m68k kernel supports a ``debug'' option on the command
line. There are several options for this on the Amiga and on Ataris:
debug=ser: Send debug output to the first serial device (usually
the internal one on an Amiga; Modem1 on most Ataris; Modem2 on the
Falcon). Your terminal should be set for 9600 bps, 8 data bits, 1
stop bit, no parity.
debug=mem: On Amigas (only), save the kernel output to a reserved
block of chip memory. This output can be read after a reboot in
AmigaOS by ``dmesg,'' which is available at ftp://tsx-11.mit.edu/pub/linux/680x0/tools/amiga/dmesg.gz.
debug=midi: On Ataris (only), send output to the MIDI port
(31250 bps, 8N1).
debug=par: On Ataris (only), send output to the printer port.
Probably only useful with a line printer (i.e. dot matrix or daisy wheel).
Where can I get an MMU or FPU for my computer?
If your computer doesn't have a socket for an MMU or FPU already, you
will probably need an accelerator board that includes such a socket,
or you will need to replace your current chip with a chip that
includes the missing feature (i.e. replace a MC68LC040 with an
MC68040).
If you do have a socket (usually for an FPU, although some 68020-based
computers will have sockets for both an MMU and FPU), you usually need
to get an MMU or FPU that is rated at the same clock speed as your
main processor (some boards may allow a different speed if they have
multiple clocks).
If you have a 68020 and need an MMU, the 68551 MMU is the only choice.
If you have a 68020 or 68030 and need an FPU, there are two choices:
the 68881 and 68882; the 68882 has more FPU instructions on-board and
is of a newer design, but it will be more expensive.
Most Amiga and Atari mail-order dealers will carry these chips; since
these are standard Motorola chips, you don't need to buy them from a
dealer for your system (just make sure you get one with the right
speed rating). In the U.S., Paxtron is generally acknowledged to be the best source for
new chips (particularly if you need Amiga custom chips); you may be
able to find used (``pulled'') chips elsewhere, including at online
auctions and the like. At one time, Amiga International had some surplus 68882 FPU chips for
sale as well.
Should I use Watchtower?
From an email I sent to a user who had installed Watchtower:
Using Watchtower is a fundamentally bad idea. It's non-upgradable,
unmaintained, old, libc5-based, and the only way to add a new package
is to compile it yourself. Fundamentally it's worse than Slackware.
And that's saying a lot. Do yourself a huge
favor and use Debian or Red Hat; see the distributions page at
the Linux/m68k home pages. Complete installation instructions
are accessible from there.
For the uninitiated, Watchtower was a completely ancient set of tar
files that were useful in assembling a working system. Basically, it
was like a non-upgradable version of the Debian base system. Well,
you could upgrade it, if manually installing tar
files downloaded from phil or compiling sources from Sunsite is your
idea of ``upgrading.'' It was primitive, but it was better than what
came before it. Don't even ask what we had to
deal with with before Watchtower!
Amiga-specific questions
Where did all my Amiga's chip memory go?
It's still there, but the kernel doesn't offer it to the user. It is
used by drivers that use the custom chips (like floppy, framebuffer,
and sound) and for saving the kernel log (with the debug option
documented earlier). The z2ram driver
can use this memory, but this option doesn't always work right; see
below.
How do I access Amiga files from Linux (and vice versa)?
There used to be an ext2 filesystem for AmigaOS available; it allowed
you to read and write ext2 partitions. No new versions have been
released in a while, however. Let me know if you know where to locate
a copy.
Other ways to transfer files from Linux to AmigaOS are to use an msdos
partition, an Amiga/PC formatted floppy with msdos file system (this
requires a Mountlist entry on AmigaOS side), use of a partition with
Minix file system and the Minix file handler on AmigaOS side (the
driver is somewhat unstable) or by accessing the floppy or any
(empty!) partition directly via GNU tar.
You can also read and write Amiga partitions from Linux (using the
affs filesystem). Some older install guides say that affs is
read-only, but that restriction was lifted in the 2.0 series of
kernels (only Directory Cache disks are read-only now).
AmigaOS text files are normally formatted using ASCII Latin1 text;
Linux normally defaults to using Latin1 encoding (also called ISO
8859-1), so you shouldn't have any problems. CR/LF problems should
not appear either.
My SCSI bus locks up when I want to use my DAT drive
(written by Frank Neumann)
This problem seems to be related to certain A3000 Amigas: probably
only those with BootROMs. It has been discovered that if you have a
DAT drive connected whose SCSI address is smaller than the smallest
SCSI address of a hard disk in your Amiga, the bus will lock up very
early (under AmigaOS, while the SCSI bus is being scanned: you can
notice this by seeing that the SCSI LED is constantly lit and nothing
happens). The solution is to use higher address for DAT drives (and
maybe also for CD-ROMs) and the lower ones for direct-access media
(read that as ``hard disks'').
Linux recognizes my Amiga's XXX board, but it doesn't work
Linux/m68k can detect the Amiga's AutoConfig devices. That it is able
to detect and correctly classify these devices does not mean that the
kernel has an actual driver for that device. The list of supported
hardware given earlier should be exhaustive, i.e. anything that is not
listed is not supported. Note: turbo boards that appear as AutoConfig
devices are almost always supported (except for the SCSI controller,
if they house one).
If an AutoConfig device isn't properly detected, contact Geert
Uytterhoeven <Geert.Uytterhoeven@cs.kuleuven.ac.be> for details on how
to make sure it will be properly detected in future kernels. Note
that some hardware may be identified differently than its packaging
(for example, the GVP A4008 SCSI controller shows up as a GVP Series
II, and the Phase5 CyberstormPPC is identified as a Cyberstorm Mk III).
Note that kernels after about 2.1.105 require the use of a separate
``zorroutils'' package to get human-readable information about your
Zorro devices. This package should be available at Erlangen already,
and is available as a Debian package in the unstable (``potato'')
distribution. It is also available in the Linux/m68k CVS repository.
Amiboot dies when I start it with VMM running
(written by Martin Apel)
What happens is that amiboot gets loaded into virtual memory and
shoots itself out of accessible memory when disabling the MMU. But
fortunately there's an easy way to solve this:
Enter amiboot into the task list of VMM with code and data set to ``No
VM''. Then amiboot (version 3.0 or higher) should work correctly.
How do I compile Amiboot and Amiga LILO?
(written by Geert Uytterhoeven)
To compile these programs, you'll need the Amiga Developer's
Environment (the GNU tools for creating AmigaOS programs). Linux/m68k
binaries of ADE are available at ftp://ftp.uni-erlangen.de/pub/Linux/680x0/bin/devel/ADE.tar.gz.
You will also want the ADE.readme file
from the same location.
How do I access floppies under Linux?
(written by Haidinger Walter)
By mounting. First you need a mount-point, i.e. a directory under which
you can access your floppy. You can chose an arbitrary name, I use /df0
through /df3 (and /pc0 to /pc3 respectively) because I'm used to these
names from AmigaOS.
Create the directories. e.g.:
mkdir /df0
mkdir /any-name-will-do
mkdir /ados/df0
mkdir /ados/pc0
...
Next, check if you have the proper device nodes:
Type:
ls -l /dev | grep "^b.* 2, [0-7]"
For me, that lists:
brw-r--r-- 1 root wheel 2, 0 Mar 31 18:16 df0
brw-r--r-- 1 root wheel 2, 1 Mar 31 18:16 df1
brw-r--r-- 1 root wheel 2, 2 Mar 31 18:16 df2
brw-r--r-- 1 root wheel 2, 3 Mar 31 18:16 df3
brw-r----- 1 root 25 2, 0 Jun 22 1996 fd0-
brw-r----- 1 root 25 2, 4 Feb 26 1994 fd0d360
brw-r----- 1 root 25 2, 4 Jun 22 1996 fd0d360-
brw-r----- 1 root 25 2, 5 Jun 22 1996 fd1d360
brw-r--r-- 1 root wheel 2, 4 Apr 4 11:49 mfd0
brw-r--r-- 1 root wheel 2, 5 Apr 4 11:49 mfd1
brw-r--r-- 1 root wheel 2, 6 Apr 4 11:49 mfd2
brw-r--r-- 1 root wheel 2, 7 Apr 4 11:49 mfd3
brw-r--r-- 1 root wheel 2, 4 Mar 31 18:03 pc0
brw-r--r-- 1 root wheel 2, 5 Mar 31 18:16 pc1
brw-r--r-- 1 root wheel 2, 6 Apr 8 12:03 pc2
brw-r--r-- 1 root wheel 2, 7 Apr 8 12:03 pc3
^ ^ ^ =09 ^^^
block-device major minor node-name=20
Do not worry if you have other results. What do you need to know?
Floppies are block devices.
Floppies have major device number 2.
Under Linux/m68k, the minor device numbers are as follows:
0 to 3 ... Amiga drives 0 to 3 (i.e. df0 to df3)
4 to 7 ... MS-DOS drives 0 to 3 (i.e. pc0 to pc3)
Like under AmigaOS with CrossDOS, drive 0 is a single physical unit. Note
that this is different from Linux/i386. You can verify this by reading
Documentation/devices.txt of the kernel source. The nodes fd* above are
remnants of a Intel configuration; only the major/minor numbers count, not
the assigned name!
Now create the device-nodes:
mknod /dev/df0 b 2 0
mknod /dev/df1 b 2 1
mknod /dev/df2 b 2 2
mknod /dev/df3 b 2 3
mknod /dev/pc0 b 2 4
mknod /dev/pc1 b 2 5
mknod /dev/pc2 b 2 6
mknod /dev/pc3 b 2 7
Set the desired permissions with the chmod command.
Remember, the names (here: df0 and pc0) are arbitrary. However, on Intel
Linux systems, the floppy nodes are named /dev/fd*. To access devices under
different node-names, just create symlinks. e.g:
ln -sf /dev/pc0 /dev/fd0
ln -sf /dev/pc1 /dev/fd1
ln -sf /dev/pc2 /dev/fd2
ln -sf /dev/pc3 /dev/fd3
Now, MS-DOS drive 0 can be accessed by /dev/fd0 as well as
/dev/pc0. If you want /dev/fd0 to be an Amiga drive, link it to
/dev/df0 instead. Of course, this are just examples from my
configuration. You can choose other names if you like.
After having mount-point and device-node, you can mount your floppy.
For an AmigaOS disk in drive 0:
mount -t affs /dev/df0 /df0
ls /df0
...
umount /df0
For a MS-DOS disk in drive 1:
mount -t msdos /dev/pc1 /pc1
ls /pc0
...
umount /pc0
Warnings:
Only mount if floppy already in drive and
you must not remove the floppy before umount'ing it!
You can also put this into your /etc/fstab file. Mine looks like this:
# device mountpoint type options freq passno
# --------------------------------------------------------------------------
# Amiga Floppies
/dev/df0 /ados/df0 affs defaults,noauto,noexec 0 2
/dev/df1 /ados/df1 affs defaults,noauto,noexec 0 2
/dev/df2 /ados/df2 affs defaults,noauto,noexec 0 2
/dev/df3 /ados/df3 affs defaults,noauto,noexec 0 2
#
# MS-DOS Floppies
/dev/pc0 /ados/pc0 msdos defaults,noauto,noexec 0 2
/dev/pc1 /ados/pc1 msdos defaults,noauto,noexec 0 2
/dev/pc2 /ados/pc2 msdos defaults,noauto,noexec 0 2
/dev/pc3 /ados/pc3 msdos defaults,noauto,noexec 0 2
I'm not quite sure about the freq/passno fields. Do a ``man 5 fstab''
and a ``man 8 mount'' for more info.
Other topics about floppies:
mtools
You can use the ``mtools'' package to access MS-DOS disks without the
need of mount/umount. The mtools-3.6.tar.gz package compiled
without any problems out of the box for me. The nodes /dev/fd0 and
/dev/fd1 are used to access the MS-DOS drives. If you followed my
descriptions above it is not necessary to edit mtools.conf (in /etc or
/usr/local/etc)
formatting
Hhm. Good question. There are some binaries in
bin/system/floppy at ftp.uni-erlangen.de.
Unfortunately for me, fdformat dies with a segmentation fault
and amifdformat-formatted disks can't be mounted using
affs. Any suggestions are welcome!
Can I use an Amiga-formatted partition as my root partition?
The current affs driver doesn't support
Unix-style devices on Amiga partitions, which makes it impossible to
use an Amiga partition as root. A future release may support an
emulation of devices and other Unix special files, perhaps based on
the umsdos filesystem already available
(or you can always try to code the support yourself).
You can use affs disks as secondary partitions. The AmigaOS 2.0+
symbolic and hard links are used to emulate the similar Unix features
(hard links work as expected; soft links outside of the same directory
will not work as expected from both sides, because of the differing
semantics of AmigaOS and Linux path names).
Can I run Linux on my Phase5 PowerUP card's PowerPC CPU?
Yes, if you really know what you are doing. Jesper Skov writes:
We released the first beta version of a Linux 2.1.79 port to Phase5's
Amiga PowerUP hardware on January 29 (1998). A current kernel image
and kernel diffs can be found at:
ftp://sunsite.auc.dk/projects/apus/
The kernel is still in a beta state and is not suitable for users. We
just decided it was time that we got some feedback from other hackers
- and to let everyone know that APUS (Amiga PowerUP Systems) support
is a work in progress.
Incidentally, the port has been at its current state for a couple of
months, but we have had some problems with Phase5 that have now been
resolved. Phase5 is very interested in seeing this port completed and
has been very helpful lately. We appreciate this very much.
The APUS specific changes should be merged into the vger tree
RSN. Progress reports will be posted on the m68k kernel list.
I will see to that the m68k FAQ is updated on this subject. Please
refer people to www.linux-m68k.org.
Thanks!
JEsper on behalf of:
Roman Zippel : zippel@fh-brandenburg.de
Jes Sorensen : Jes.Sorensen@cern.ch
Jesper Skov : jskov@cygnus.co.uk
There is now an APUS-specific FAQ available on the web at http://sunsite.auc.dk/ftp/projects/apus/docs/faq.html.
Information on the Linux/APUS mailing list is in the APUS FAQ.
CyberstormPPC cards are reported to be working well; BlizzardPPC cards
appear to be more problematic (they seem to work for some people but
not for others). Non-Phase5 PowerPC cards will eventually be
supported (when/if they ever make it to market).
Also note that Linux/m68k will work fine with the 680x0 series CPU
that is also installed on your PowerUP card.
Can I use an IDE doubler with Linux/m68k?
Some IDE doublers (devices that let you attach up to four IDE devices
to the A1200 and A4000 internal IDE controllers) may work with the
following kernel option: ide=doubler.
Those that conform to the IDEfix ``standard'' should work without
modifications.
What video modes does my card support?
Using fbset, you can program video modes
(see the framebuffer documentation in the kernel tree for details).
However, there are some modes built into most drivers that you can
specify at boot time: typical mode names are 640x480, 800x600 and
1024x768. Some cards can also autodetect the mode you enable in
AmigaOS and use it.
As of kernel 2.1.124, here is a fairly comprehensive list of supported
modes. ``bpp'' stands for ``bits per pixel'': it is the color depth.
All modes are non-interlaced unless otherwise specified.
CLGen (Piccolo; Piccolo SD64; Picasso II; Picasso IV; Spectrum):
Autodetect: Use mode set in AmigaOS (with --keep-video option to Amiboot)
640x480: 31.25 kHz, 60 Hz, 25 MHz PixClock (8 bpp)
1024x768: 55.8 kHz, 70 Hz, 80 MHz PixClock (8 bpp)
Cybervision 64 (original and 3D):
640x480-8
800x600-8
1024x768-8
1152x886-8
1280x1024-8
1600x1200-8
800x600-16
Retina Z3:
640x480: 8 bpp
800x600: 8 bpp
1024x768i: 8 bpp, interlaced
640x480-16: 16 bpp
640x480-24: 24 bpp
The Amiga memory device driver (z2ram)
What is the z2ram device?
Note: The available minors depend on the kernel version you are using;
this discussion pertains to the driver as included the 2.2 kernel
series (the 2.0 kernel series does not support the ``memory list''
options). As of 2.2.1, z2ram has the same capabilities on both
Linux/m68k and Linux/APUS.
Basically, the z2ram device driver allows you to use memory that is
not being used by Linux/m68k as swap space or a ramdisk (you could use
it for a /tmp partition, for example). While the name implies the
device only is useful if you have ``Zorro II'' memory, it actually
permits the use of any chip or fast memory on your system that is not
already being used by Linux/m68k.
The z2ram driver is enabled using the ``Amiga Zorro II ramdisk
support'' option during kernel configuration. It may already be a
module in your default kernel setup.
It is a block device (major 37); you can have a number of different
z2ram devices operating at once. Each minor number provides access to
different areas of memory:
Minor 0: Use available chip and Zorro II fast memory
Minor 1: Use only Zorro II-addressable fast memory
Minor 2: Use only chip memory
Minor 3: (unused)
Minors 4-7: Use memory list entry 1-4 (see below)
Minor 1 is most useful if you have Zorro II memory on your system
(perhaps on a SCSI controller card) that is slower than the memory on
your motherboard or accelerator card, but is still faster than a hard
disk. These memory areas are automatically excluded from your system
memory during the boot process. Note that you may have Zorro II
memory even if you don't have a Zorro bus on your computer (for
example, if you have an A500 or A1000 expansion box; PCMCIA memory
cards may also be seen as Zorro II memory on the A600 and A1200).
Minors 0 and 2 provide access to chip memory. While this can be
useful at times (and chip memory is generally faster than Zorro II
memory on the A3000 and A4000), parts of the kernel that expect to be
able to get extra chip memory on demand may cause problems. The amifb
framebuffer device is one example of a device that may need chip
memory ``on the fly'' (for example, if you increase the depth or size
of a framebuffer); amifb may react very poorly to running out of
memory it expects to be able to find. If you are using another
framebuffer instead of amifb, chip memory access through the z2ram
device may be less problematic.
Minor 3 isn't used by anything at the moment.
Minors 4 through 7 were developed for Linux/APUS, but can also be
useful under Linux/m68k on Amigas with more than one memory area where
the access times to the different types of memory significantly differ
(i.e. an Amiga with an accelerator card that has on-board SIMM sockets
and other memory on the motherboard or expansion bus). In these
situations, you can use the z2ram device in conjunction with the Linux
paging code to help ensure that slower memory is only used when the
faster memory blocks are completely full. To take advantage of this
capability, you should configure your kernel to ``Use one physical
chunk of memory only'' (under the ``Advanced options'' section after
you select the CPU you want to use).
Once you have recompiled your kernel this way, you should make sure
the memory block with the best access to your CPU is being used as
your main system memory (usually this will be the memory on your
accelerator card or on the motherboard), i.e. is listed first when
amiboot lists the chunks of memory that have been found. You may need
to make a ``memory list'' for amiboot if the AmigaOS memory priorities
are not ordered sensibly. In any event, amiboot will list the chunks
of memory it decides are available in the order they should be used;
the first chunk listed will be used as your main system memory.
The remaining chunks (actually, the second through fifth chunks... if
you have more than five memory chunks, you can hack the driver to
permit more) can be used by the z2ram driver using the above-listed
minor numbers. So the second chunk on the list will be minor 4, the
third chunk will be minor 5, etc.
Ok, now that I know what the device does, how do I use it?
You have two options: you can use each z2ram area as either swap space
or a partition (but not both at the same time for a particular
instance... although you could put a swap file on a z2ram partition).
Basically all you have to do is enable the z2ram driver in your kernel
and create the block special files you need in /dev; then you
can treat each z2ram area like any other block device (such as a
floppy or hard disk drive).
Note that if you have multiple blocks of memory, you can use some
blocks as swap and others as partitions; you just can't use the same
memory block for both purposes at once.
Specific instructions for both uses follow:
Swap space
Make a block special file for the device. This is done with
the mknod command. For example, to make a device called
``/dev/fastram'' that uses your Zorro II memory, use mknod
--mode=600 /dev/fastram b 37 1. Here 1 is the minor
number used for Zorro II memory (see above), it could also be 0, 2, 4,
5, 6 or 7, as appropriate.
Prepare the swap space for use. Following the example above,
mkswap /dev/fastram.
Make the swap space available to the system. For this, use the
``swapon'' command: swapon -p 1
/dev/fastram. The -p 1
parameter tells the kernel to put this swap space in at a higher
priority (1) than the default (a negative number, which depends on how
any swap spaces are already enabled), so it will be used before your
hard disk.
To make this change permanent, you will need to edit your system
startup files to prepare and enable the swap space on each boot by
adding the ``mkswap'' and ``swapon'' lines to one of your early
startup scripts (on Debian, you should add a small script to
/etc/rcS.d around priority S04: see the Debian init
information for more details). Here's a simple init script that will
handle this procedure during each boot:
mkswap /dev/fastram
swapon -p 1 /dev/fastram
If you are using z2ram as a module, you may need to make sure the
module dependencies are available when the script runs so
kmod (assuming you use it) can automatically load the driver.
Ramdisk
The principles involved in the ramdisk are similar to those for a swap
partition:
Make a ``block special file'' for the device. This is done with the
mknod command. For example, to make a
device called ``/dev/mbram'' that uses your motherboard memory (which,
I assume for the purposes of this example, is the second entry on your
memory list), use mknod --mode=600 /dev/mbram b 37
4. Here 4 is the minor number
used for the second memory list entry (see above), it could also be 0,
1, 2, 5, 6 or 7, as appropriate.
Prepare the ramdisk for use: mke2fs /dev/mbram will do
the job nicely (you could also use another filesystem format if you
like, but ext2 is probably the best for most uses).
Make the ramdisk available to the system. For this, just mount
it somewhere; e.g. mount -t ext2 /dev/mbram /mnt. The -t
ext2 tells mount that you have an ext2fs filesystem, and should
be changed if you use some other filesystem like Minix.
To set up a /tmp ramdisk for each boot, you should edit your startup
scripts to format the ramdisk (since, for obvious reasons, the ramdisk
doesn't stay formatted over reboots) and mount it. You may also need
to set the permissions for the tmp directory properly on each boot.
Here's a sample script that takes care of things:
mke2fs -q /dev/mbram
mount -t ext2 /dev/mbram /tmp
chown root.root /tmp
chmod 1777 /tmp
On a Debian system, this should be dumped into an rcS.d file; see the
Debian policy manual for an explanation of the Debian init file
scheme. The note under the swap space section about z2ram as a module
may also apply.
Why can't I cleanly reboot my Amiga with Ctrl-Amiga-Amiga?
The Amiga has a hardware limitation that makes it impossible to delay
a reset by more than ten seconds; this is much less time than a Linux
system needs to properly shut down (which can be anywhere up to about
a minute). It would be dangerous to try to flush the disk buffers
during this brief time, so Linux doesn't even try. Use the Intel
``three-finger salute'' (Ctrl-Alt-Del) instead, or better yet use the
``shutdown'' command.
Atari-specific questions
I can't use ttyS3 and ttyS4 simultaneously on my Atari
This is perfectly normal: ttyS3 and ttyS4 correspond to different physical
external connectors on the Atari, but these connectors use the same internal
hardware (Channel A of the SCC).
I'm having problems with my Falcon with Afterburner 040. Any tips?
(written by Roman Hodek, Petr Stehlik and Thomas Kruse)
Roman says:
On a Falcon with Afterburner040, the bootstrap can be run only on a
fully initialized machine, i.e. the AB040 software drivers must be
loaded. More specifically, bootstrap relies on the _CPU cookie
to be set to 68040, which is done by that driver. But there may be
also other dependencies...
Additionally, the bootstrap must have its program flags set to ``don't
run in TT-RAM'' and ``don't allocate memory from TT-RAM''. This is due to
the fact that TT-RAM on the AB040 is mapped by the MMU and addresses
in it can become invalid as soon as the MMU is switched off before
launching Linux. Bootstrap issues an error message if either its code
or data reside in TT-RAM, so you can't make it wrong, but maybe you
don't know how to fix it... :-)
And finally: Currently the Linux kernel won't run properly in TT-RAM.
Better use the -s flag to bootstrap (``load kernel to ST-RAM''). We're
working on the problem, but a solution isn't evident yet...
Petr provides the following advice:
The Afterburner040 is a card with 68040 CPU and two FastRAM slots for
the Atari Falcon 030. There are several different revisions of that
card that also affect Linux. General rules for successful Linux boot
are as follows:
Use bootstrap (ataboot) version 3.1 or higher (older
versions of ataboot didn't recognize FastRAM properly)
Use kernel version 2.1.72 or higher (older versions could not reboot
the machine, but generally worked, too)
The kernel must be compiled for the 68040 CPU only (so no 68020, 68030
nor 68060 support!), otherwise it won't boot. The reason for this is
unknown at the moment (December 1997). Also, for certain revisions of
the Afterburner040 card the specific 68040 optimizations (RMW) must
not be used as well. You can either compile your own kernel or visit
http://ft3.zlin.vutbr.cz/stehlik/soft.htm, where you can find
some pre-compiled kernels for Afterburner040.
ataboot must run in ST-RAM and it must also allocate ST-RAM, so please
clear both 'Run in TT-RAM' and 'Allocate TT-RAM' flags in the header of
ataboot. For this purpose you can use programs like SETFLAGS.PRG or similar.
Accelerated Falcons (higher bus speed than 16 MHz) usually
suffer from some strange problem with lost MFP interrupts when kernel
is loaded in FastRAM (might be recognized by too high BogoMIPS value
at bootup: standard value for Afterburner040/32 MHz is 21.29), so it's
good idea to put the kernel into ST-RAM with the '-s' flag on the ataboot
command line.
The 'Swap-to-ST-RAM' option of Linux kernel 2.1.72+ might be very useful
on Afterburner040 because the ST-RAM is very slow (about ten times slower
than FastRAM) and that's a good reason for not using it as normal 'working'
memory.
Thomas Kruse says that ``not only must the read modify write
optimization be turned off, the whole 68040 specific
optimizations must be turned off - otherwise the kernel won't run
reliably on different circumstances and sizes of the kernel.''
The discussion on the mailing list seems to indicate that there isn't
a specific approach that seems to work well for everyone. Hopefully
this situation will be resolved soon.
I'm having strange problems with my PAK030 board in my ST!?!
(written by Roman Hodek)
For users of the PAK030 board for STs, burst mode for memory is best
disabled when running Linux. With burst mode enabled, several users
experienced spurious memory corruption problems.
How do I access my Atari SLM laser printer?
The laser printer is accessed through /dev/slm0; if you have multiple printers, you can
use e.g. /dev/slm1.
How do I access my ACSI drives?
ACSI drives are accessed through /dev/adXY, where X is the drive letter (a-p,
corresponding to the first through sixteenth drives) and Y is the
partition number.
Macintosh-specific questions
Where the **** is the Mac site?
It is supposed to be at http://www.mac.linux-m68k.org/; if it's not there, try http://maclinux.wwaves.com/.
If it's at neither of those places, it has disappeared for a while
(these things happen). Try http://shadow.cabi.net/MacLinux/ for some out-of-date
information. If you just want to install Debian on a Mac, try the
Debian/m68k for
Macs Installation Guide. There may be some files of interest
at ftp://baltimore.wwaves.com/.
Note that the Linux/m68k web site maintainer does
not maintain the Mac site, and usually knows less
than you do about its current status. When he does know something, it
will be put in the FAQ.
Other sources for information, sources and binaries
Installation Guides
A fairly up-to-date list of installation guides is kept on the distributions page
at the Linux/m68k Home Pages; see also in this
FAQ.
Other Documents
Further documents can be found at the Linux Documentation Project's
Home Page. These documents were originally written for
Linux/i386, but many are useful for Linux/m68k users too (e.g. HOWTOs
on UUCP, PPP and the general Linux FAQ).
A FAQ on Motorola chips (including the 680x0 microprocessors) is
available at http://www.oise.on.ca/~rboys/m68kfaq.html.
Last but not least: Look into the Documentation directory of the
2.x kernel trees.
Newsgroups
comp.os.linux.m68k
The group comp.os.linux.m68k is intended to further interest in, and
development of, the port of the Linux operating system to the 680x0
architecture. All discussion in the newsgroup should be in
English. The group's RFD (Request for Discussion), CFVs (Calls for
Votes) and final vote tally, along with the group charter, can be
found at www.hensa.ac.uk.
comp.os.linux.development.system
This group is on Linux kernel development
only. From time to time it contains messages dealing with the
Linux/m68k kernel.
comp.os.linux.announce
This group announces new Linux-related products. Announcements for new
versions of Linux/m68k may be found there.
maus.os.linux68k
This group deals with Linux/m68k only. The languages currently used
are German and English. This newsgroup is also available via FidoNet
(as LINUX-68K.GER).
comp.unix.amiga
This group is for discussions on Amiga Unix, Minix, NetBSD and
Linux/m68k on the Amiga.
de.comp.sys.amiga.unix
Similar to comp.unix.amiga, but in German.
Mailing Lists
There is one mailing list for Linux/m68k, which is named linux-m68k.
As there is now a newsgroup for Linux/m68k, topics on this list should
be restricted to kernel development issues if possible.
(written by Benjamin Lorenz)
You can subscribe to linux-m68k@lists.linux-m68k.org by sending a mail
to linux-m68k-request@lists.linux-m68k.org, with a random
subject and a single line in the mail body containing ``subscribe
linux-m68k''. You may want to subscribe to
linux-m68k-digest@lists.linux-m68k.org instead: in this case, you will
receive one mail per day containing all mails to the list from the
last 24 hours. If you prefer to read mail in this way, please
unsubscribe from linux-m68k to reduce net load!
You can download archives of the digest mails! They are stored at
ftp://ftp.phil.uni-sb.de/pub/linux-m68k/mailinglist.
Another mailing list archive that supports searching can be found at
http://aire.ncl.ac.uk/Atari/Mailing-Lists/Linux-m68k-List.index.html.
The kernel list is also available from sunsite.auc.dk as a nntp news feed (nntp://sunsite.auc.dk/sunsite.linux.m68k). It is the fifth or
so member on the mailing list so it's fast.
Other mailing lists are available for more specialized purposes; I
recommend visiting the Linux/m68k Home Pages for further details.
WWW sites
The Linux/m68k Home Pages: http://www.linux-m68k.org/ (The Netherlands), http://www.clark.net/pub/lawrencc/linux/ (USA), http://www.lordsutch.com/linux/ (USA), http://amiga.nvg.org/linux/mirrors/lawrencc/ (Norway), or
http://www.se.linux-m68k.org/ (Sweden).
Linux/m68k Registration Site (Geert Uytterhoeven): http://www.cs.kuleuven.ac.be/~geert/Linux/m68k/.
Dirk Wetter's Linux/m68k WWW page: http://bunsen.pci.uni-hannover.de/linux68k.html.
For information on Linux in general, try http://www.linuxhq.com/, http://metalab.unc.edu/LDP/
and http://www.linuxnow.com/.
FTP sites
Linux/m68k 2.0, 2.1 and 2.2 kernels: ftp://sunsite.auc.dk/projects/680x0/ or http://sunsite.auc.dk/ftp/projects/680x0/.
The Linux/m68k FTP server: ftp://ftp.uni-erlangen.de/pub/Linux/680x0/.
Mirrors of this server include (please use the one nearest to you,
most of these mirrors are updated daily):
ftp://ftp.belnet.be/packages/Linux-680x0/
ftp://ftp.fu-berlin.de/pub/atari/linux/
ftp://ftp.funet.fi/pub/Linux/BETA/680x0/
ftp://ftp.germany.eu.net/pub/os/Linux/Mirror.SunSITE/
ftp://ftp.informatik.tu-muenchen.de/pub/comp/os/linux/680x0/
ftp://ftp.nvg.unit.no/pub/linux/680x0/
ftp://ftp.phil.uni-sb.de/pub/linux-m68k/erl/
ftp://ftp.spc.uchicago.edu/pub/linux/680x0/
ftp://ftp.tu-clausthal.de/pub/systems/Linux/680x0/
ftp://ftp.lip6.fr/pub/atari/Linux68k/linux-m68k/
ftp://ftp.twi.tudelft.nl/pub/Linux/680x0/
ftp://ftp.unina.it/pub/linux/linux68k/
ftp://src.doc.ic.ac.uk/computing/operating-systems/Linux/tsx-11-mirror/680x0/
ftp://tsx-11.mit.edu/pub/linux/680x0/
ftp://ftp.kernel.org/pub/mirrors/tsx-11/680x0/
ftp://ftp.linuxberg.com/pub/distributions/Linux-m68k/
Please tell me if your favorite mirror is not on this list.
The kernel source for Linux/m68k can be found in 680x0/v2.0/ and
680x0/v2.1/, a lot of binaries in 680x0/bin/. A few more tools reside
in 680x0/tools/.
The two main Linux servers are:
ftp://tsx-11.mit.edu/pub/linux/sources/
ftp://metalab.unc.edu/pub/Linux/system/
Linux on Amiga: ftp://ftp.informatik.uni-oldenburg.de/pub/amiga/linux/local/
Various stuff: ftp://ftp.phil.uni-sb.de/pub/linux-m68k/
The following addresses are known to offer FTP via e-mail:
ftpmail@info2.rus.uni-stuttgart.de
ftpmail@ftp.inf.tu-dresden.de
ftpmail@informatik.uni-oldenburg.de
To get more info on FTP-mail send a mail with subject ``help''
to one of the addresses mentioned above.
Modem
If you have a modem, you can (could?) get Linux/m68k from the following
location in Germany:
System name: nasim
Phone: +49 89 5469593, ZyX19200
Login: Anon-uucp: nuucp - no password / ZModem: gast - no password
Contents: full 680x0-tree of tsx-11 in /pub/linux-68k
Get first: index file /pub/linux-68k/ls-lR.nasim.linux-68k.gz
Other features: provides uucp access to 680X0 channel (read only) and
the linux.act.* news-groups
Admin: Frank Bartels <knarf@nasim.cube.net>
Distributions
You can use Debian/m68k 2.1 [slink], and help develop future versions
(like potato; Debian releases have names
based on the names of characters in Pixar's film ``Toy Story'').
Debian is available via FTP at ftp://ftp.debian.org/debian/;
installation guides are available for Amigas, Ataris and
Macs.
Debian is also available on CD-ROMs from several vendors
including Linux Systems Labs, Steve McIntyre and Chris
Lawrence.
You can also use and help improve Jes Sørensen's unofficial Red Hat
port, available at ftp://sunsite.auc.dk/projects/680x0/redhat/. Ron Flory has
written an installation guide for this port; you can get it at http://www.feist.com/~rjflory/linux/rh/index.html. Red Hat
Software is distributing this unofficial port (along with unofficial
Red Hat ports for PowerPC, UltraSPARC and MIPS) as part of its Linux Rough Cuts package; you can also obtain it from Holger Lubitz, Chris
Lawrence and Schatztruhe.
Eagle Linux was a distribution available for the Amiga, based on the
Debian 2.0 project. You can read more about it at Eagle's web site.
It has been discontinued, but you may still be able to obtain it from
dealers.
Whiteline's Linux/68k is a distribution available for Ataris, also
based on the Debian 2.0 project. Learn more about it (in German) at
Whiteline's
site.
IRC (Internet Relay Chat)
You can communicate via IRC with other Linux/m68k users on irc.dalnet.com, channel #linux-m68k. You will, of course, need an IRC client (like
ircii or BitchX) to participate.
Dave Ellison has established a home
page for the channel.
Magazines
Linux Journal (ISSN
1075-3583) is the monthly magazine of the Linux community. It is
aimed at everyone from the casual user to die-hard kernel hacker. In
the US, most large booksellers carry the magazine.
Linux Gazette is a
monthly on-line publication with tricks and tips from ordinary users,
along with longer how-to articles. You can read it on the World Wide
Web at the location above; issues are also available as Debian
packages.
Books
Try the new books
page at the Linux/m68k Home Pages for an expanded selection
of books (from the selection that appeared here before).
Famous last words
Credits
I want to thank everyone who contributed to this FAQ. There are many
people who did so by answering questions in the newsgroups or on the
mailing list, or by asking the questions. Some sections are marked
``written by''; this means that the text was originally written by
that person but has been edited by Jörg or myself.
Extra thanks to the following people for their suggestions and
submissions:
Martin Apel <apel@tecmath.de>
Richard Hirst <srh@gpt.co.uk>
Roman Hodek <rnhodek@informatik.uni-erlangen.de>
David Kilzer <ddkilzer@earthlink.net>
Thomas Kruse <tkruse@home.globe.de>
Benjamin (Benni) Lorenz <benni@phil.uni-sb.de>
Joaquin Menchaca <menchaca@tibco.com>
Frank Neumann <Frank.Neumann@informatik.uni-oldenburg.de>
Jim Partan <jimp@waves1.whoi.edu>
Joe Pranevich <joepran@telerama.lm.com>
Raoul van Putten <rlputten@cip.informatik.uni-erlangen.de>
Jesper Skov <jskov@cygnus.co.uk>
Christian Steigies <steigies@physik.uni-kiel.de>
Petr Stehlik <pstehlik@zln.cz>
Geert Uytterhoeven <Geert.Uytterhoeven@cs.kuleuven.ac.be>
Haidinger Walter <e9225662@student.tuwien.ac.at>
Last, but certainly not least, Jörg Mayer <jmayer@telemation.de>,
who started the ball rolling and wrote about 75% of this.
Thanks also to Christian Jacolot <jacolot@ubolib.univ-brest.fr> for translating this FAQ
into French and keeping it updated.
Some credit is also due to J. Michael Straczynski <jmsatb5@aol.com>, to whom I
owe a few of the section titles (but please don't
mail him Linux questions...).
The phrase ``go home and eat popcorn'' (and various derivatives
thereof) is a registered trademark of G. Elton Graves,
Ph.D. <G.E.Graves@rose-hulman.edu>; all rights reserved. Don't
bother him with Linux questions either.
Suggestions can be made to Chris Lawrence <faq@linux-m68k.org>. I
also read comp.os.linux-m68k, comp.unix.amiga and the linux-m68k list, looking for suggestions.
Copyright and License
This FAQ is Copyright © 1995-96 Jörg Mayer and Copyright © 1997-99
Chris Lawrence. Licensing may be arranged with the current
maintainer, Chris Lawrence.
This FAQ may be freely redistributed under the terms of the GNU
General Public License, version 2 (or at your discretion, any later
version of that license).
You may also freely redistribute formatted versions of the verbatim
FAQ (i.e. the FAQ as it was released by the original copyright
holders) without providing or offering the SGML source. However, you
must offer the SGML source for any modified versions of the FAQ you
redistribute.
Amiga, Atari, Commodore, Motorola, MS-DOS, Sun, Unix and maybe a few
more words I used in this text are trademarks. So what?