This is how I configured my g4/dual1ghz tower, hydra -Used preexisting os9/osx install from Apple Boot OSX. Go through configuration and registration. System Updater runs and updates as needed While updater runs: Set monitor prefs to 1600x1200 for 21" monitor and change mouse accel. Rename harddrive to Hydra Edit /etc/hostconfig for hostname. cd / ; sudo ln -s /Users /home System Preferences: Sharing->File&Web, fix computer name, Sharing->Application, Allow Remote Login Internet -> Email, turn on Use iTools Internet -> Web, download to /Users/ekim/downloads Login, Login Window -> turn off autologin, display name and pw fields, and turn off hints. After updater finishes, restart Copy Icon from old harddrive to new drive. Remove os9-Desktop-alias from Desktop. Backup existing homedir from Phoenix, including CD images Open homedir in finder. Create OSORIG directory, move all but Desktop to it. Open old homedir, select all but Desktop and copy them over. In Terminal: cp -R .Xdefaults .[a-z]* /Users/ekim make /Images and copy disk images to it Reboot. Check for OpenService, hostname, and various preferences. Go through remaining system preferences as needed. Remove harddrive alias from dock, and re-drag it (to get updated icon). Remove old harddrive alias from fruitment, and correct edit ~/Libarary/Preferences/com.apple.systemuiserver.plist to remove entries that don't apply (airport, battery) Install developer kit from dec 2001 cd /usr/local sudo mkdir /usr/local/bin sudo ln -s ../home/ekim/working/arch sudo ln -s ../home/ekim/working/src cd ~/working/PB/osxtreme sudo cp launch/build/launch /usr/local/bin sudo cp GetLocationName/build/GetLocationName /usr/local/bin sudo cp UpdateDynamicServices/build/UpdateDynamicServices /usr/local/bin Install XInstall Install fink from fink.sourceforge.net fink install fvwm2 fink install openssl Compile and install jove (jove needed ncurses, which fink came with) cd /usr ; ln -s ../tmp tmp install tcpwrappers (make netbsd works) copy tcpdmatch and tcpdchdk from /usr/sbin and /usr/libexec/tcpd to backup ORIG, and then copy binaries in. cp tcpd.h /usr/include; chmod 444 /usr/include/tcpd.h cp libwrap.a /usr/lib ; chmod 644 /usr/lib/libwrap.a sudo ranlib /usr/lib/libwrap.a Install /etc/iw.permit cd /usr/local/bin ; ln -s ../../../bin/tcsh ; ln -s ../../bin/perl perl5 ln -s perl5 perl Fix lookupd to read /etc/hosts, populate /etc/hosts Compile openssh: ./configure --with-ipv4-default --with-tcp-wrappers --sysconfdir=/etc --with-cppflags=-I/sw/include --with-ldflags=-L/sw/lib --prefix=/usr make; make install | tee install.log ; edit /etc/sshd_config for protocol 2 only kill and restart sshd, verify that libwrap is functioning On phoenix, turn on apple file sharing and copy a bunch of stuff from /Applications (like Internet and Games folders, BBEdit, Virtual PC, Productivity apps, osxvnc) Copy things from Applications-MacOS9: opera, gMovie2, niftytelnet, virtualpc, games, turbotax, meetingmaker nokia software Reregister Opera fink install: screen, mutt, mtr, rsync fink copy unstable to local: crossfire, cdrtools cd /sw/fink/dists; cp unstable/main/finkinfo/*/cdrtool* local/main/finkinfo/ ------------------------------------------------------------------------------------------ Install postfix from postfix.org make Check netinfo manager (fink installed postfix user and group for me, changed homedir to /var/spool/postfix, as well as maildrop group for the postfix drop). Add aliases for root to yourself and postfix to root (just in case some mailer uses those for anything, postfix shouldn't in forward mode). Edit the /etc/aliases file the same way for normal unix clients and run newaliases. Set main.cf: myhostname = phoenix.anybrowser.org mydomain = anybrowser.org myorigin = $mydomain alias_maps = netinfo:/aliases In master.cf, turn of smtpd/inet postfix check Configuring to start on boot: You could set MAILSERVER to yes in /etc/hostconfig, the default sendmail call should start postfix up correctly (because postfix replaced the sendmail command) But, we are wierd, and will install into /Library/StartupItems/postfix Add a POSTFIX=-YES- to /etc/hostconfig. Copy /System/Library/StartupItems/SSH/* to /Library/StartupItems/postfix. rename SSH postfix. edit for starting postfix (postfix start). Edit StartupParameters.plist. sudo ./postfix - should start it up. See /var/log/mail.log Send mail to various accounts (yourself, root, postfix) and make sure they get forwarded off-machine for delivery. Addition: Making mail forward to other addresses than same-name. For instance, to get 'root' to go to foo@anybrowser.org. Currently, this box is forwarding all mail. We trick it into thinking it is anybrowser.org by adding this to main.cf virtual_maps = hash:/etc/postfix/virtual Then create /etc/postfix/virtual as: ------------------------------------------------------------ # Virtual file as if I was anybrowser.org anybrowser.org Relay # Put any overriding entries here, otherwise just get tossed to other host root@anybrowser.org root@osxtreme.net # ...anything not matched goes to mail.anybrowser.org @anybrowser.org @mail.anybrowser.org ------------------------------------------------------------ Create /etc/postfix/update as a shell script: ------------------------------------------------------------ #! /bin/sh cd /etc/postfix PATH=/usr/bin:/bin:/usr/sbin ; export PATH ME=`whoami` if [ x$ME != "xroot" ]; then echo "Self-sudo $0 $*" exec sudo $0 $* fi #echo "I am `whoami`" #exit set -x newaliases #postalias hash:/etc/aliases postmap hash:/etc/postfix/access postmap hash:/etc/postfix/virtual postfix reload postfix flush ------------------------------------------------------------ Run ./update Mail for root and ekim goes to osxtreme.net (happens to be the same host as mail.anybrowser.org, but you can see the difference in headers) Any other mail goes to that user at osxtreme.net Another possiblity is to set a different domain locally for myorigin, as this: myorigin = $myhostname And then set the virtual host to the full hostname. Then mail can go to the real mailserver name/MX, instead of the mail alias: ------------------------------------------------------------ phoenix.anybrowser.org Relay # Put any overriding entries here, otherwise just get tossed to other host root@phoenix.anybrowser.org root@osxtreme.net # ...anything not matched goes to mail.anybrowser.org @phoenix.anybrowser.org @anybrowser.org ------------------------------------------------------------ Install pflogsumm.pl in /usr/libexec/postfix, mode 711. Will need Date::Calc (get from cpan if needed) Install in /usr/local/bin/pflog: ------------------------------------------------------------ #!/bin/sh /usr/libexec/postfix/pflogsumm.pl $* /var/log/mail.log --smtpd_stats --verbose_msg_detail --problems_first ------------------------------------------------------------ If you want daily reports, add the following root crontab: 5 0 * * * /usr/local/bin/pflog -d yesterday | /usr/bin/mail -s "phoenix PF Log" root If you want monthly reports, either change the log rotation script to call pflog (no args = whole log) before rotating, or put in a cronjob to call it before (or after, if you want to modify it to read a different log file) Currently, /etc/monthly gets run: 30 5 1 * * root sh /etc/monthly 2>&1 | tee /var/log/monthly.out | mail -s "`hostname` monthly output" root So we'll add to crontab -u root -e: 30 3 1 * * root /usr/local/bin/pflog 2>&1 | /usr/bin/mail -s "phoenix: PF Log" root ...now, what happens if the box is asleep then, I'm not sure. I would think this wouldn't get run... I also add a symlink /usr/bin/aliasupdate to /etc/postfix/update run netstat -an and make sure you only have 2 things listening: 22 for sshd, 1033 on localhost for lookupd. (and 6000 for X if running) Stuffit update: Get the stuffit Lite package and install it. Select a .sit file, get info, open with application, choose the new Stuffit Expander, and choose "Change all" Making Classic work: Under the Classic preference pane, select your os9 disk if needed. When classic starts the first time, it will install some carbon libs into it. writing CDs/DVDs from command line You want cdrecord sudo cp /sw/fink/dists/unstable/main/finkinfo/utils/cdrtools-1.11a11-1.* /sw/fink/dists/local/main/finkinfo/ then fink install cdrtools (for cdrecord) This is: cdda2wav, cdrecord, mkisofs, mkhybrid, readcd Read the man pages, and: http://www.fokus.gmd.de/usr/schilling/cdrecord.html ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/alpha/README.macosX example with my two drives: -------------------------------------------------------------------------------------------------------- {~}(3:11)[132] cdrecord dev=IOCompactDiscServices -toc Cdrecord 1.11a11 (powerpc-apple-macosx5.2) Copyright (C) 1995-2001 Jörg Schilling scsidev: 'IOCompactDiscServices' devname: 'IOCompactDiscServices' scsibus: -2 target: -2 lun: -2 Using libscg version 'schily-0.5' cdrecord: Warning: using inofficial libscg transport code version (csapuntz-scsi-mac-iokit.c-1.3 '@(#)scsi-mac-iokit.c 1.3 01/10/29 Copyright 1997,2001 J. Schilling'). Device type : Removable CD-ROM Version : 0 Response Format: 1 Vendor_info : 'TEAC ' Identifikation : 'CD-W28E ' Revision : '1.1A' Device seems to be: Generic mmc CD-RW. Using generic SCSI-3/mmc CD-R driver (mmc_cdr). Driver flags : SWABAUDIO Supported modes: TAO PACKET SAO SAO/R96P SAO/R96R cdrecord: Undefined error: 0. test unit ready: scsi sendcmd: no error CDB: 00 00 00 00 00 00 status: 0x2 (CHECK CONDITION) Sense Bytes: 70 00 02 00 00 00 00 0B 00 00 00 00 3A 00 00 00 00 00 Sense Key: 0x2 Not Ready, Segment 0 Sense Code: 0x3A Qual 0x00 (medium not present) Fru 0x0 Sense flags: Blk 0 (not valid) cmd finished after 0.005s timeout 40s cdrecord: No disk / Wrong disk! {~}(3:12)[133] cdrecord dev=IOCompactDiscServices/2 -toc Cdrecord 1.11a11 (powerpc-apple-macosx5.2) Copyright (C) 1995-2001 Jörg Schilling scsidev: 'IOCompactDiscServices/2' devname: 'IOCompactDiscServices/2' scsibus: -2 target: -2 lun: -2 Using libscg version 'schily-0.5' cdrecord: Warning: using inofficial libscg transport code version (csapuntz-scsi-mac-iokit.c-1.3 '@(#)scsi-mac-iokit.c 1.3 01/10/29 Copyright 1997,2001 J. Schilling'). Device type : Removable CD-ROM Version : 2 Response Format: 2 Capabilities : SYNC Vendor_info : 'YAMAHA ' Identifikation : 'CRW2100E ' Revision : '1.0H' Device seems to be: Generic mmc CD-RW. Using generic SCSI-3/mmc CD-R driver (mmc_cdr). Driver flags : SWABAUDIO Supported modes: TAO PACKET SAO SAO/R96P SAO/R96R RAW/R96R cdrecord: Undefined error: 0. test unit ready: scsi sendcmd: no error CDB: 00 00 00 00 00 00 status: 0x2 (CHECK CONDITION) Sense Bytes: 70 00 02 00 00 00 00 0B 00 00 00 00 3A 01 00 00 00 00 Sense Key: 0x2 Not Ready, Segment 0 Sense Code: 0x3A Qual 0x01 (medium not present - tray closed) Fru 0x0 Sense flags: Blk 0 (not valid) cmd finished after 0.001s timeout 40s cdrecord: No disk / Wrong disk! -------------------------------------------------------------------------------------------------------- See also 'ioreg -l' for lots of info, specifically the IOCompact/DVD or SCSITaskUserClientIniter May want to look into hdiutil (mount, eject; create, burn) Reported to work by Ryan: cdrecord dev=IODVDServices -data download/install.iso This didn't result in a bootable image, need something like hdiutil's -forceclose maybe? This did work, created a bootable linux install CD: hdiutil burn install.iso -forceclose This also worked: cdrecord dev=cd2 install.iso speed=16 Ripping CDs to .wav for cdrecord via cdda2wav: First, kill the autodiskmount process. You can start it again as: /sbin/autodiskmount -va Then: cdda2wav -D IOCompactDiscServices -t 3 bedrock will drop track 3 into bedrock.wav (and bedrock.info) and keep doing all the tracks you want. If you want to eject a CD, you will need to: /sbin/autodiskmount -va hdiutil eject disk1 (get name from autodisk output) kill autodiskmount again Or, maybe after killing /sbin/autodiskmount once and restarting it, it won't automount CDs anymore. Hm. :) This will temp. mount the disk. Not sure yet how to get autodiskmount to take control again. (short of reboot) sudo mount -t cddafs /dev/disk1 /Volumes/Audio\ CD/ You can use Quicktime to see how long tracks are. Or, use cdrecord -dummy to see if it will fit: ls *.wav > toc edit toc cdrecord -v -dummy speed=8 -audio `cat toc` Don't forget to restart autodiskmount when done. TODO: look into ip firewall