Back to the main page
Floodgap's Power MachTen Hacking Page: User Tips, Tricks, Pitfalls,
Skillz'n'at
This covers many important user tips and tricks, and a few known gotchas.
If you're looking for a primer on building packages with MachTen, particularly
things like crypto, OpenSSH, etc., go to the
building packages to get your system up to
snuff section.
What version is PowerMachTen really?
There is some argument over this. Although my CD and my manual all say
4.1.4, when you run uname -a, you get version 5.0.5. Only Tenon
knows for sure, I guess. This is the highest version number I have seen.
What is the default root password?
MachTen comes with a couple default accounts, but most people will want
just to log in as root and make their own. Appropriately, the
password by default is MachTen.
Cursor keys don't work in the console terminal windows.
This is a known bug. Logging in remotely with ssh helps; see the
building packages to get your system up to
snuff section. (Interestingly, they will work if you
ssh to yourself from the console terminal.)
My telnet session to my server intermittently locks up.
When you are connected over Telnet
to a MachTen server with most modern telnet
clients and you send something requiring a flush, such as CTRL-C, your
session will appear to freeze. It's actually still there, but most clients
are waiting for a timing mark and the MachTen telnetd never sends
it. Blindly type logout and you should quit cleanly. This is another
reason to build sshd (there's no point in fixing telnetd);
see the
building packages to get your system up to
snuff section.
I can't figure out how to turn on the X server.
After you log in at the console, press Command-T to toggle X11
and X11 will enable itself
(running AfterStep). The X server is run with a root window. If you switch
to another Mac application, the root window will become invisible.
There is a bug where, if you log out with Command-Z while still in X11,
the screen will not repaint properly. This is not serious, just annoying.
To avoid this, close the root window first with Command-W (or File,
Close Window).
The implementation of X11 in MachTen is one of its best features -- it is
extremely fast and very capable. Motif libraries are included. It has many
powerful options and you should read part 12 of the manual to appreciate them.
Do I want to be running cron?
... inetd?
... macmntd?
... wind?
In order: probably not, maybe, almost certainly, and
definitely. wind
is the MachTen window manager daemon, and it runs even when you're just at
a text-console terminal window. Don't mess with it. macmntd handles
automounting Mac volumes and you should be running it unless you have a good
reason not to.
However, unlike most typical Unices,
there is a good reason not to run cron
and there are also
reasons to consider when and when not to run inetd, and those
are in the
building packages to get your system up to
snuff section.
I'm confused about how Power MachTen handles networking.
There are a couple of ways MachTen can see the network, and all of them are
configured with MachTen shut down inside the Tenon Kernel
Libraries folder in the MachTen folder itself.
Out of the box, MachTen is configured to tunnel its network through Open
Transport (i.e., you see OTSocketLib in that folder, and
SocketLib and MacTCPdLib are in the Disabled
folder).
This is almost always what you want and should be left alone.
The disadvantage of this mode is that MachTen has no TCP stack of its own
in the mode, only mapping its socket calls into OT calls, so things like
netstat are completely useless. However, you can use any network
device that Open Transport can see, and you can receive incoming
connections if they are checked in the MachTen control panel.
You can also run MachTen in a dual stack configuration where regular Mac
apps run through MacTCP or Open Transport, but MachTen uses its own TCP/IP
stack (i.e., you see SocketLib in that folder). This typically
requires that each stack run on its own interface, however, and I don't know
how easily the stack can be fuzzed or pwned, so I don't recommend
this (and
it might not be compatible with every MacOS-compatible network device).
The only reason you might want to use this is for multihoming, which Open
Transport supports rather poorly; in that case, you will probably want to
route between the stacks and that exercise is left to the reader.
The third mode is to tunnel Open Transport and MacTCP through MachTen. I
strongly advise against this for various reasons including compatibility.
If you really want to try that, though, have SocketLib and
MacTCPdLib showing.
Okay, I have MachTen installed on my system, but my network uses DHCP.
Okay, I have MachTen installed on my system, but I have a wireless LAN.
As long as MachTen is tunneling through OpenTransport, any device that
OT can use as a network interface, MachTen can too. This includes AirPort
(and my blueberry clamshell G3 iBook now has my MachTen license
and happily talks over AirPort to my local coffeeshop wireless).
Thus, the real trick is getting MachTen to be happy as a DHCP client, and
the way to get a DHCP lease and have MachTen use it is like so:
- To set up:
- Make sure you are tunneled under OpenTransport. Don't use dual stacks
or tunnel OpenTransport under MachTen (i.e., OTSocketLib should be
showing, and SocketLib and MacTCPdLib should both be in
the Disabled folder).
- Shut down MachTen, go into the MachTen Networking
control panel, and make
sure all the networking information is blank (except the MTUs;
you can leave those alone). Under General, make sure you have a host name,
even a completely bogus one. Close the control panel.
- Then, each time you have to get a new DHCP lease:
- Make sure MachTen is shut down.
- Go into the TCP/IP control panel, set up your network and network
interface, and make sure you have a DHCP lease and IP address assigned.
If your DHCP server does not give you a name server, make sure you enter one
you know you can access (like OpenDNS), and if you don't have a domain name
or don't know what network you're part of, at least make sure you have
a domain name under Additional search domains (even if it's crap).
You need to make sure these are both filled in, or MachTen won't start (it
uses them to populate /etc/resolv.conf). You don't need a gateway
if it doesn't give you one.
- Boot MachTen. If you get a window requesting more information, you did
this wrong. Quit MachTen and go back into TCP/IP, and make sure everything
is properly filled in. Also make sure you specified a hostname in the MachTen
General control panel.
- Make sure you can ping your gateway or some reliable host.
If you can, you're good to go.
- Whenever your DHCP lease expires, you must shut down MachTen and
make sure you have a new lease in the TCP/IP control panel
before you restart it.
What are FFS files? Why does MachTen call it UFS, not HFS?
MachTen has a peculiarity of its documentation where HFS and HFS+ volumes
are referred to in /etc/fstab as UFS. People who know, know HFS+
ain't UFS (and certainly not UFS in the sense that A/UX or Mac OS X would
understand it), but that's just what they call it. There is no "true" Unix File
System support in MachTen, only its emulated UFS-on-HFS support (which uses
some tricks to make it case sensitive and a few other things).
Many of the core tools, however, live within FFS images. These are true
Fast File System images and contain their own filesystems, and are maintained
with fsck. In an FFS volume, the regular Mac filesystem limitations
are done away with, and you can treat them like a regular BSD file system.
DO NOT MODIFY THE FFS IMAGE FILE BACKING AN FFS VOLUME,
OR YOU WILL FIND YOURSELF WITH A LOT FEWER FILES!
How do I access my Mac files from inside MachTen? (Related: how does
MachTen handle HFS forks and resources?)
The easiest way is simply to mount your Mac volume as a "Unix" volume, either
by putting an entry in /etc/fstab or calling mount
(using filesystem ufs for Mac
volumes), or just using // to get to the root folder of the volume
MachTen is running from. (If you just want to get into MachTen's folder
itself, use /MachTen_Folder.) Remember, MachTen calls Mac volumes
ufs, not HFS.
Mac files are automatically turned into AppleSingle when they are read and
separate forks when they are written by tools such as tar --
except if their creator is MUMM. In that case, the type
code is important. If the type code is BINA, then MachTen
treats them as "native" and leaves them alone, and MachTen utilities only
operate on the data fork. This is the default type for files you
create within MachTen. If the type code is TEXT, then MachTen
will automatically translate carriage returns to line feeds for Unix tools,
and then back to carriage returns so Macintosh apps will still read them
correctly. If either of these have resource forks, they are ignored. (There
are some other types corresponding to symlinks, block devices, pipes and
such, but you can read about those in the manual.)
The dfork and rfork tools extract, respectively, only
the data fork and resource forks from a file to standard output. Similarly,
the finderinfo utility allows you to access Finder information
such as type and creator (example: finderinfo -C MUMM -T TEXT
lettertoobama.txt), and restool lets you merge resource
forks together. There are man pages for all of these utilities.
Is there a MachTen FAQ?
Sort
of.
It is, however, woefully out of date.
You didn't answer my question.
So, nu, you want I should
beat it out of you?
Or do you want to start
building packages to get your system up to
snuff?
Or did you want the main page?
Cameron Kaiser