The Linux/m68k for Macintosh FAQ
Table of Contents
Section 0: Foreword
This FAQ and the Linux/m68k for Macintosh project could not exist
without the generous help and support of a large number of people. There's
still a lot of work to be done however, and help is appreciated now
as much as ever. There is information below about how to join in the effort.
Our thanks go to all of the programmers who have put
their time into making everything happen, both past and present. Thanks
also to everyone who actually tested the patches and things
that those programmers put out, everyone who offered web space, the people
that generously gave their resources or funded domain name registration,
the "original" (and defunct) MacLinux team that started it all, the Mac
BSD team for letting us use their booter for a while, and anyone that I
might be forgetting. You all have my thanks for giving me something to
do. :)
Section I: This FAQ
1. Is there a FAQ?
Yes, there's a FAQ and you're looking at it. This FAQ is based
primarily on the FAQ written by Mike Comb. Additionally, it contains
material from an alternate FAQ written by Alan Cox. Currently, it is
maintained by the Linux/m68k for Macintosh development team using the
same CVS repository as the web site.
2. Is this FAQ "official?"
About as official as anything is around here.
3. I have a comment/complaint/suggestion about
the FAQ. Who should I tell?
Tell the mailing list. Everyone who has
the power to add things to the FAQ should be subscribed to it.
4. Where can I download a recent version of
this document and where can I look for updates?
The FAQ lives at http://www.mac.linux-m68k.org/docs/faq.php.
Section II: The Project.
1. Is there a FAQ?
Do you like repeat questions?
2. Is there a mailing list?
The original mailing list (linux-mac68k@mac.linux-m68k.org) is defunct.
There are two other lists, however: the
debian-68k mailing list and the
linux-m68k kernel mailing list.
Neither of these lists is Mac-specific: they are read by users and developers of all
of the 68k Linux sub-architectures (Amiga, Atari, etc).
3. Is there a mailing list archive?
The old Mac68k list is archived
here and
here.
See the links given above for archives of the other two mailing lists.
4. Is there a FTP site?
Yes, the FTP archive is available once again.
See below.
5. What resources are available over the
web?
Quite a few, natch. The "official" web site is at http://www.mac.linux-m68k.org/.
See the Resources page for more
information.
6. What kinds of people is the project seeking?
Really, we're looking for anyone. :) In particular, people with
in-depth knowledge of Mac hardware would be nice, and actually being
proficient at C would also be very nice. Linux kernel experience would
be even better. There's also demand for testers and people who can
trying out new builds on their machines; sometimes this is the only
way that the developers can know if things work or not. :)
7. Are there any newsgroups or chat rooms?
We don't have any specific newsgroup, but the 68k Macintosh port seems
to get a disproportionate amount of "airtime" on comp.os.linux.m68k.
An IRC channel on OFTC has been created for development and
support of Linux/m68k for Macintosh. The channel name is #linux-mac68k. See
the OFTC webpages for more
information on the network, the rules, and a list of servers near you.
8. What are the goals of the project?
The primary purpose of our efforts is to get Linux running on as many
68k based Macs as possible and to support as much of their hardware as
possible. Each of these is a formidable goal in itself. In
addition, we intend to achieve this without using any of Apple's ROMs
that shipped with each Mac and were required for MacOS. (Executing code
in ROM is slow, and some ROMs have bugs.)
Section IV: Hardware Requirements
1. What machines will never be supported?
- 68000-based models.
- PowerMacs (see below).
2. What machines are supported?
- 68040-based machines (with built-in FPU).
- 68LC040-based models fitted with late revision CPUs (see below).
- 68030-based models.
- 68020-based machine fitted with a PMMU (see below).
3. What machines boot *now*?
All supported Macs should work to some extent. However,
not all hardware devices on all machines have working drivers.
For more information, see the
machine status page.
4. What about a Floating Point Unit (FPU)?
All 68020, 68030 and 68LC040 CPUs lack a built-in FPU.
The 68040 CPU has the FPU built-in.
Socketed FPUs shipped in all models in the Mac II series except for the
IIsi and IIvi.
Many 68030 logic boards and some expansion cards have a PLCC socket allowing
for a 68882 retro-fit.
A lot of software contains FP instructions and so the kernel offers FPU
emulation for those machines that lack an FPU chip, thanks to the low-level
wizardry of Roman Zippel.
However, the kernel does not emulate the complete FPU instruction set.
This is a problem for executables that use certain FP instructions such as
FLOG10, and results in an error message:
You just hit an unimplemented fpu instruction.
In that case, you could try recompiling with gcc's -msoft-float
option.
5. What about 68LC040 CPUs?
Early revisions of the 68LC040 chip have a flaw that prevents the
kernel from handling exceptions correctly. This has implications for demand
paging in the presence of FPU operations. You can find out whether or not your
Mac's CPU is affected by booting a special test kernel.
You can download this 68LC040 tester from the
file release page.
According to
Motorola's errata, any chip with a mask set revision 02E71M or later is OK.
Further, the 68K and ColdFire Product Portfolio Overview states that
this revision is free of errata.
This chip revision was used in the PowerBook 190.
Chips with mask set 02E23G are all flawed. This includes many LC and Performa
models. This makes demand paging and FPU emulation impossible on those machines
until someone can figure out how to work around this hardware problem in
software.
It may be possible to avoid the issue by recompiling all of your executables
with gcc's -msoft-float option (to prevent generating floating point
instructions). I don't know whether this workaround has actually been tried,
but it seems like it should work in theory.
At one point, it was possible to get a replacement 68LC040 device
from Apple and/or Motorola, but that was quite a long time ago. Given Apple's
present state of complete disassociation from their 68k Macs, the best solution
is to replace a buggy 68LC040 chip with a 68040.
6. What about the PowerMacs?
Power Macintoshes (by definition) use PowerPC CPUs, not 680x0
CPUs, and therefore they are not supported by Linux/m68k. There
are several ports available however. Initially there was Apple's
mkLinux microkernel
(no longer maintained).
Then there's mainline Linux support in the form of
Linux/PPC aka PenguinPPC. This port only supports
PCI-based PowerMacs. There is a seperate port available for
NuBus PowerMacs.
7. Any machines in particular that we might
have problems with?
There is a huge variety of hardware devices across the range of supported
models. Many models contain unique hardware and each tends to have its
idiosyncrasies. We try to design drivers and interfaces which
maintain the kind of device abstraction that makes Linux so portable.
For more information on the status of each model, see the
machine status page.
8. What about MODE32?
Because Mode32 only replaces some software in ROM, it is not required
by Linux itself. However, being that Penguin is a MacOS application,
Mode32 may be useful in some cases. See below.
9. What about a PMMU?
In order to get Linux to run on your older 68020-based Macintosh,
you will need to get a 68851 PMMU chip to enable the paged memory that Linux
(and A/UX) requires. Of the two 68020 models only the Mac II supports the
addition of a PMMU. The other model, the Mac LC, does not have this capability
so it is not supported.
Also, you should be aware that the 68851 steals an extra clock cycle for every
instruction executed in order to do address translation, thus making an
already pitifully slow machine (by some standard) even slower.
10. Where can I buy a PMMU?
Since no 68020 Macs shipped with a 68851 PMMU, you'll need to
buy one and install it yourself.
11. How much RAM?
The Linux/m68k port requires about the same amount of RAM as the other
Linux ports. 4 MB is no longer enough to load a 2.2 kernel and a RAM disk.
Even 5 MB is stretching it. System 7.0.1 uses less memory than the later releases;
you may want to try it if you have a low memory machine and you are using Penguin.
Note that EMILE requires less RAM than MacOS + Penguin.
If you intend to run Debian 3.0,
you are looking at a more usable minimum of 32 MB. As of 2019, Debian/m68k needs
64 MB or it won't boot at all.
Section V: Specific Hardware Issues
1. What input devices are supported?
Amazingly enough, we have keyboards (and mice)!
Some third-party 3 button mice are also supported. I have a Logitech
MouseMan that works perfectly on the console and in X.
With 2.6 and later kernels, use /dev/input/mice and "imps2" protocol.
For older kernels, ADB mice are accessed in "cooked" mode through /dev/adbmouse
using the "busmouse" protocol for gpm and X.
2. What about serial support?
Serial support is working in the 2.2, 2.6 and later kernels.
In recent kernels, you can get a console on the modem port by adding
console=/dev/ttyS0 to the kernel arguments. The printer port is
/dev/ttyS1. This will disable the framebuffer console but you can
add console=tty0 to enable both consoles. Note that the order is
important: the last tty named becomes /dev/console.
A Macintosh printer cable is the easiest way to connect two Macs' serial
ports. This permits either machine to act as a serial console for the other.
With a correctly wired cable, the Mac's RS-422 serial port becomes
electrically compatible with a RS-232 serial port like those found on
PC's and modems.
To use your PC as a serial console, you need a null-modem cable. This can be
obtained by plugging together a standard RS-232 null-modem cable and a Macintosh
modem cable.
Note that serial port speeds greater than 38400 baud are difficult to
sustain. This applies to MacOS as well as Linux. (On some models MacOS
is able to use DMA to improve throughput but Linux/mac68k does not support
serial port DMA as yet.)
3. Video?
Yes, we have framebuffers! The Macintosh framebuffer driver was
rewritten for Linux 2.2, and will give a workable console on all
models with internal video, as well as the most common NuBus video adaptors.
The video driver has trouble changing the color map on some models.
If your Mac has this problem, and you're handy with ResEdit, you can now (since
Penguin-16 at least) tweak the Penguin colormap in order to get something
resembling decent color in X. (FIXME: There's a web page about this
somewhere, but I've lost the URL...) However, if you fix the colors in X,
the console will lose.
The driver for the Valkyrie chipset (on the 580 and 630 series) has
support for changing the video mode and colour depth on the fly
(using fbset or the X server).
To enable it under older kernels, you need to add video=valkyriefb:
(the colon is important) to the kernel command line in Penguin.
Finally, the fbcon subsystem supports 16 and 24-bit
truecolor modes on the framebuffer console, and the XFree68_FBDev X server also
supports them. Therefore, even on machines where we don't support mode setting,
you can switch to one of these modes in MacOS before booting and have plenty of
pretty colours. Nice.
If you're handy with MacsBug, you can also help us add support for
colormap changing and mode setting for your framebuffer...
4. Ethernet?
On-board SONIC ethernet (found on most Quadras and on PowerBook 5x0 models)
is supported, as are SONIC-based Comm-Slot cards. On-board MACE ethernet
(found on the 660av and 840av) also works in 2.2.18 and later kernels.
A number of ethernet cards based on the National Semiconductor DP8390
chip (as used in many ISA ethernet cards, the NE-2000 being the most
well known example) are working. That includes Apple cards and several clones
including Daynaport, Asante, and Farallon. (Not all clones are known to
work "as advertised" and some driver work may be needed in order to support
them all.)
LC PDS cards based on the 8390 chipset generally work, as does Apple's
SONIC-based LC PDS ethernet card (Apple's SONIC-based NuBus ethernet card is
not supported).
Also supported is the Asante MacCon CS card for the Comm-Slot on the 575,
580, and 630 models.
LC PDS and Comm Slot cards with a Cirrus Logic 89x0 chip are also supported.
There is a driver for cards based on SMC91C94 or SMC91C92 devices,
which implements support Nubus and Comm-Slot NICs,
but it can only be found on the linux-2_2 branch in the CVS repository.
Unfortunately, this code is not present in the mainline Linux kernel.
5. SCSI?
Both kinds of SCSI chips found on Macs are supported (NCR 53C80 and
53C94/53C96). For details, see the
machine status page.
6. Sound?
Some very early kernels will make a LOUD noise for debugging
when you start them. Do not interpret this noise as a working
audio... consider it more along the lines of a debugging message that
hurts.
7. Floppy drives?
There are various kinds of floppy drive controllers on the Mac models
that we're working with: IWM, SWIM, SWIM 2 and New Age.
A driver to support SWIM (Integrated Sanders Machine) devices (read-only)
was contributed by Laurent Vivier. In old kernels there is an unfinished
SWIM IOP driver (removed in v2.6.20). In very old kernels there exists a
driver for IWM chips.
8. Other devices?
It depends on the device. If you want something bad enough, you could
always write a driver for it. :) In general, if it is already supported
by a particular Linux port, you won't have as much trouble getting it
working as you would developing a driver from scratch.
Section VI: Testing and Playing
1. Can I use Linux without damaging my important
data?
Yes. There's a simple process you can use to get a "booting" Linux
running (or not running, as the case may be) on your system without
sacrificing any of your storage.
First, download Penguin, an initrd and a kernel binary.
Follow the instructions on booting, given below in the section on
Installing Linux, except select the ramdisk (aka initrd) that you want
to use in the configuration section and put root=/dev/ram
in the command line. If it boots to a prompt, great. You should be in
a position now to install a Linux distribution.
2. Can I boot linux from an external harddisk
that I want to dedicate to Linux?
Yes.
3. How can I be sure Linux will work on my Mac?
Try it and see. Look two questions up. Can never hurt to try.
4. How can I boot into Linux?
Open Penguin and go to the Settings screen. Select the (uncompressed)
kernel binary that you want to boot, select an initrd image (if required),
enter kernel command line arguments, optionally save these settings,
and finally give the boot command from the File menu.
For more information, see the Penguin page.
5. Why won't Linux boot on my machine?
So, you looked at the status web page and found your machine is supported.
But it just won't boot! Why not?
The Penguin bootloader can be problematic in certain circumstances. If you
are using this bootloader, please try booting MacOS with extensions disabled.
Please refer to the troubleshooting guide on the
Penguin page.
Some other potential problems are unrelated to the bootloader.
One of these is attempting to use an ancient kernel release
that does not adequately support your hardware. You should use the
latest kernel unless there is some reason not to.
If you are booting a Mac IIfx, Quadra 900 or Quadra 950, use the
"Serial Switch" control panel to put the serial ports into
"compatible" mode (that is, bypass the SCC IOP).
This prevents the debug console (if enabled)
from triggering an early interrupt from the SCC IOP.
If no FPU is present then Linux has to emulate one. However, support
for FPU emulation is not available in old kernels. Penguin can tell you
whether or not your Mac has a real FPU: use Show Machine Profile.
There are known bugs in the SCSI drivers in old kernel releases.
If all else fails, request help by posting to the
mailing list.
If need be, you can set some kernel parameters to help gather
information from the framebuffer or serial console:
earlyprintk console=ttyS0 console=tty0
fbcon=font:ProFont6x11 ignore_loglevel printk.time=1
Section VII: Installing a Linux distribution
1. Do I need to repartition my harddisk?
You need at least one spare partition on which to install.
Two partitions if you need swap. A spare external drive is ideal.
If you have Ethernet and want to boot your machine NFS-as-root, you won't
need to repartition, but you will need an NFS server with Linux/m68k installed
under an NFS export.
2. How do I repartition my harddisk?
Warning! If you don't know that you are destroying any data on your
disk by doing this, maybe you shouldn't be doing this. :)
First, backup anything important and make sure you have a
bootable emergency disk and your original install floppies or CD-ROM.
Second, put a copy of "Apple HD Setup" on your emergency disk if it
isn't there already. Reboot the machine using this disk.
Open HD Setup and click "Partition". Create 3 partitions in place of
the large MacOS partition.
I recommend a large "A/UX Misc." root partition and a swap partition
of size about double the RAM size.
About 10 MB is sufficient for a minimal MacOS partition.
Third, reboot again with the install disks and reinstall MacOS on
the new Mac partition. Unbackup your data, if you saved any.
You're done.
3. Are there any other tools I can use to
repartition?
You can use the MkLinux/Darwin pdisk utility, which is
available for MacOS and Linux (Linux renames it as mac-fdisk).
It isn't exactly user-friendly but it is no more difficult than the
fdisk or disklabel utilities.
GNU parted is also able to edit Apple partition maps under Linux.
4. How do I install to an external harddisk?
Same as for an internal disk (if you have two disks, one will be called
sda and the other sdb).
5. Are there any distributions that'll make
this easier?
Yes, Debian and Gentoo are available for m68k.
Instructions for installing Debian/m68k may be found on the
Debian Wiki.
In the past the Debian project made a number of releases for m68k.
The Debian project no longer officially supports the m68k architecture but
development continues (independently of the Debian GNU/Linux release cycle),
on debian-ports.org. See also
unreleased ports.
Similarly, the m68k port is not officially supported by the Gentoo project.
The installation process should be much the same as any other Gentoo port except
that no Gentoo Linux boot CD-ROM is available (AFAIK).
Instead, you'd need to boot to a shell prompt from an initrd or Debian installer.
The stage3 tarball is available from some of the
Gentoo mirrors.
6. What if I repartitioned my disk but don't
have Mac system disks?
Apple has released System 7.5.x to the public. You can find it at Apple's
mirror.
7. How is a Mac partition table usually
laid out?
It depends on the partitioning tool that created it.
The partition table usually contains 3 or more entries.
The first partition is where the partition table is stored (weird, huh?).
The second is a "driver" partition.
The third (and often last) partition is the HFS partition
where your files are stored.
8. Will I still need MacOS once I have
Linux?
MacOS is needed to run the Penguin bootloader.
But there is an alternative bootloader available that does away with
MacOS completely, called EMILE.
For the time being, such installations are not well documented,
so typically MacOS is booted first and then Penguin is run
from MacOS to boot Linux. Because of this, kernels and initrd files are
kept on the MacOS side (on an HFS partition).
9. How do I modify a RAM disk image?
The command line to mount the image is 'mount -o loop -t ext2 filesys
mnt' where ext2 is the filesystem type of the ramdisk (might also be minix etc),
filesys is the initrd image (ungzipped) and mnt is the directory to serve
as the mount point. This requires the loopback block device driver.
10. How do I run X?
(Note: the following applies to older XFree86 installations and
not to current Xorg releases).
First, make sure that you have the proper X packages installed,
including the XF68_FBDev server. You don't run xf86config to configure
X. Instead, do: cp /usr/doc/xserver-common/examples/XF86Config.eg
/etc/X11/XF86Config to create the proper config file. Now, just
use startx to run X.
Section VIII: The Linux Kernel
1. What kernel(s) should I try?
Version 4.x or later is recommended due to known bugs in older kernels.
The kernel binary made available on the project file release page contains
bug fixes backported from later mainline (kernel.org) releases.
2. Where are the kernels?
To boot a Debian system, both the kernel binary and the initrd are required.
These can be usually be found on the Debian installer media.
If you are using Penguin, both of these must be accessible from MacOS,
because the Penguin bootloader runs under MacOS.
Sometimes this presents a bootstrapping problem, in that the kernel package
can't be installed until the system can be booted, but the system can't be
booted until the kernel package is installed (because installing it will
generate the initrd containing the kernel modules).
This scenario requires a kernel binary with built-in device drivers, because
that avoids the requirement for an initrd. You can download such a kernel
binary from
the file release page
The latest Debian kernel binary is available from the
Debian snapshot archive
in the form of a .deb package (but see above regarding generating an initrd).
Some old daily builds of the Debian kernel can be found
here.
The
Debian archive has a 2.2.25 kernel binary.
Section IX: Compiling the Kernel Yourself
1. Why would I want to compile the kernel
myself?
If you just want to test the builds that others have
made, you won't need to compile anything. But if you want to change the
kernel configuration (e.g. to optimise for your CPU, to add functionality,
to modularise, build-in or disable drivers to save RAM) you
need to be able to build your own kernels. Likewise for testing new code
and patches.
2. What do I need to recompile the kernel?
First, you need a suitable tool-chain. Generally that means a
cross-compiler, or a native compiler running on a fast emulated
machine. Bootable Debian Linux images for ARAnyM are available.
Because compilers have become more complex (slower) and require more RAM,
and because code bases have grown, native compilation is not recommended.
To build the a v2.6 kernel requires gcc-3.3 or later. To build
a v2.2 kernel you'll want gcc-2.95.
On Debian Linux, there are various ways to obtain a cross-compiler,
but they are not documented here. Some cross-compilers are provided on this
site, see the cross-development page.
If you're cross-compiling, you can edit the top-level Makefile (unless
you used CVS to obtain your kernel source, where this is already done for
you) such that the ARCH variable is set to m68k,
and the CROSS_COMPILE variable is set to the executable prefix
used by your toolchain (i.e. m68k-linux-, m68k-linux-gnu- or
m68k-unknown-linux-gnu-).
The rest of the process is much the same as any other Linux kernel build.
3. How can I put together the source?
Development takes place in the m68k tree at
git.kernel.org
The repo may be cloned with:
git clone git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k.git
4. How do I get old kernel source?
If you would like the sources for the 2.2 or 2.4 kernels, they are hosted
on SourceForge. (The old Linux/m68k project CVS repo at
linux-m68k-cvs.ubb.ca no longer exists.)
Use these commands to check out the 2.2 kernel sources with CVS:
- export CVSROOT=:pserver:anonymous@linux-mac68k.cvs.sourceforge.net:/cvsroot/linux-mac68k
- cvs login (The password is blank. Just hit enter.)
- cvs co -r linux-2_2 linux-mac68k
- cd linux-mac68k
- cp config-standard-2.2 .config
- make oldconfig
If you want the abandoned 2.4 branch instead, omit the "-r linux-2_2"
in the "cvs co" command above.
Note that these old branches can also be obtained using Git though they
are no longer under development.
Section X: Linux Utilities that Might Help
1. What utilities exist for Linux that might
be of use?
This section was completely out-of-date, and has been removed.
Section XI: Utilities for Macs that Might Help
1. What utilities exist for the Macintosh
that might help?
- MacOS 7.0.1
System 7 (required by Penguin) is available for free
from Apple. System 7.5.2 is known to fix some
problems with disabling the video interrupts on the Mac IIsi
and IIci that may prevent Linux from running correctly.
However, 7.5.2 is buggy, so if you actually plan to
use MacOS, you will want to upgrade to 7.5.3 or 7.5.5.
Furthermore, System 7.5 is horribly slow on 68030-based
Macs, and none of them require it to boot (unlike most
68040-based Macs), so unless you really need it you are
better off with 7.0.1 or 7.1.
- Mode32
See the section on Mode32, above.
- Serial Switch
This control panel is included in System 7.5. If have 7.0 or 7.1
you can download Serial Switch here. It is used to bypass the
SCC IOP on those models that have that chip: Mac IIfx, Quadra 900 and 950.
- Stuffit Expander
This is useful for unpacking .sit archives.
See also MacGzip.
- Apple HD SC setup
This program will let you partition your Mac harddisk
so that you can install Linux on it. It only works on
SCSI drives with Apple firmware, because Apple wanted to
protect you from yourself. But it can very easily
be binary-patched (by changing a single byte
in a resource) to allow it to recognize and initialize
other models of SCSI drives. Instructions on how to do
this (along with a BinHex archive of a program which
will perform the patching for you) can be found at http://www.euronet.nl/users/ernstoud/patch.html
- MacLinux installer
This utility copies files to an ext2 partition on a
Mac. Maintained by Christiaan Welvaart. It is no longer
very useful now that the Debian installer generally works
on all Macs. However, you may still find it handy if you
want to use something more "lightweight" than Debian.
- ext2
Utilities
This set of utilities lets you format and test ext2
partitions on a Mac disk. Also maintained by the same
person as the installer.
- MacsBug
This utility will help you to debug those pesky Mac
apps and (if you are really good), figure out a ton of
Mac hardware information.
- SUntar
This utility can be thought of as a kind of dd
for MacOS. Use it to read and write disk partitions and raw
floppy or filesystem images. It can be used to create a rescue
floppy disk, for example.
- pdisk
This is a MacOS port of the MkLinux/Darwin command-line
disk partitioner provided by the NetBSD project.
- Lido 7
This is a free SCSI disk formatting and partitioning utility
able to create partitions of type Apple_UNIX_SVR2 or Apple_HFS.
The Apple_HFS partition type is used for HFS filesystems. The
Apple_UNIX_SVR2 partition type was originally used by A/UX and
was later adopted for Linux partitions.
Section XII: FTP Site Information
1. Where is the FTP site?
It is located at http://ftp.mac.linux-m68k.org/pub/linux-mac68k/
There was once an FTP site at ftp://ftp.uk.linux.org/pub/linux/mac with "early hacks by Alan [Cox] to make Linux/m68k work on his Mac II" but that site seems to have disappeared from the Internet.
2. Can I upload to the FTP site?
No, sorry. The FTP site is no longer used for new releases.
Section XIII: Contributing to the project
Join the mailing list (see section II-2).
Section XIV: Compatibility
1. Is Linux/m68k for Macintosh binary
compatible with the other m68k Linux projects?
Yes. In general, the operating system kernel presents a standard
Application Binary Interface so userland doesn't have to worry
too much about the details of the hardware.
2. Is Linux/mac68k source compatible with
other Linux ports?
The short answer is yes, for the same reasons listed above. The long
answer is yes, but there are certain differences between processor
architecures that can't be reasonably abstracted away by the kernel. The
major things to watch for are alignment issues (unlike other architectures,
m68k does not by default "naturally align" long word sized variables), endianness
issues (m68k is big-endian unlike x86), and for kernel drivers, the total
absence of all sorts of low-level i386 brain-damage (having a tiny port
I/O space and separate instructions for accessing it sticks out as the big
one). Also, a lot of software authors seem to be suffering under the delusion
that Linux is for x86 only, and make stupid assumptions about things as
simple as the strings returned by uname(1) in Makefiles and the like.
3. Will Linux/mac68k be able to run MacOS or
A/UX binaries?
Not at present. It should be possible to make a Mac-in-a-Mac using some
features of the 68030 and later processors that could boot MacOS on a virtual
68020 (since the 68k architecture is virtualizable, unlike i386).
Honestly, it's more important to get as many systems as we can running
Linux right now than to get them running MacOS. If you want the MacOS
that bad, what are you doing here? :)
A/UX is uncertain. We haven't looked into it enough to make any
judgments. Part of the reason for this is that A/UX is very hard to find.
Personally, I (dhd) am much, much more interested in the possibility of
being able to run 68k HP/UX and SunOS binaries like NetBSD and OpenBSD
can.
In general, if you want binary emulation that actually works, NetBSD
is your best option on any architecture.
|