November 12, 1997 This file describes how to install the individual pieces of the DR2.1update6 MkLinux update. These pieces are the Microkernel, the Linux Server and the Default Pager. A true DR2.1update6 system also has several RPM (Redhat Package Manager) packages installed. These packages were installed during updates 3 and 4. There are no new RPMs to install for this update, however you should have the RPMs up through update4. In case you are not applying DR2.1update6 directly from DR2.1update5, there are some tips at the bottom of this file to help you skip updates when bringing your system up to a full "DR2.1update6" level. How to install the Mach Kernel and Linux Server ----------------------------------------------- Before we go on, there is something that must be said: ** ALWAYS BE SURE TO MAKE BACKUP COPIES OF THE MACH KERNEL AND LINUX SERVER. ** (especially if you already had MkLinux running, or even limping :-) For the Mach Kernel, which normally lives in your Extensions folder, just rename the file. For the Linux Server, vmlinux, be sure to leave a backup copy in the /mach_servers directory. If something doesn't work right with the new kernel/server pair, you'll be able to go back to the old kernel (by renaming it back to "Mach Kernel" in your extensions folder), boot it and the previous vmlinux. If you change your MkLinux Booter, you should also save a copy of your previous MkLinux Booter. Obtaining the kernel/server pair -------------------------------- The Mach Kernel and Linux Server can be ftp'ed from the MkLinux ftp site: ftp://ftp.mklinux.apple.com/pub/Updates/DR2.1update6/ The Mach Kernel is gzipped (ie. compressed) and is called: Mach_Kernel.gz The Linux Server is also gzipped, and is called: vmlinux.gz These files should be available on various mirror sites as well. General downloading notes ------------------------- If you are using Mac OS to download files, make sure you set the format to BINARY for ftp'ing these files. We recommend you use Fetch or similar FTP Mac OS application rather than Netscape or another Web Browser. Some browsers are incorrectly configured, resulting in corrupted downloaded files. Some browsers will attempt to display binary files such as the uncompressed Mach Kernel on the screen. A copy of Fetch can be found in ftp://ftp.mklinux.apple.com/pub/FTP_tools The Mach Kernel --------------- We provide a pre-built Mach Kernel in gzipped (compressed) form. The file name on the ftp site is: Mach_Kernel.gz You will need to "gunzip" it (ie. uncompress it) before it is usable. Then, it must be placed in your Extensions folder, with the name: Mach Kernel Note, there's a space in that name, even though on the ftp site there is an underscore in the name. Be sure to rename the file appropriately! Note also that the gunzipped version will look like a simple document: no fancy icon, no special type or creator ID. This is OK. The Mach Kernel file is a document used by the MkLinux Booter. It may not look pretty, but if it has the correct name (Mach Kernel), the right type (Document, NOT SimpleText Document) and is in the Extensions folder, the Booter will find it and launch MkLinux. (see below for hints on how to gunzip files in both MacOS and MkLinux, and for hints on moving files between the Mac Filesystem and the MkLinux filesystem) The Linux Server ---------------- Like the kernel, we provide a pre-built Linux server in gzipped form. The file is: vmlinux.gz It too must be be gunzipped. The linux server "lives" in your MkLinux filesystem, in the directory "/mach_servers". Its name should be /mach_servers/vmlinux when it's installed. There is probably already a "vmlinux" file there, so you should probably rename the old one. (see below for hints on how to gunzip files in both MacOS and MkLinux, and for hints on moving files between the Mac Filesystem and the MkLinux filesystem) The Default Pager ----------------- The Default Pager, like the Linux Server, is a mach task. Follow the instructions for the Linux Server above, but the file is "default_pager.gz". The MkLinux Booter ------------------ (Note, update6 does not have a new booter. However, if you are applying this update from a version of MkLinux before update5, then you will need the booter from update5.) The MkLinux Booter is an extension that goes in your Extensions folder. We provide the MkLinux Booter in binhexed form. The file is: MkLinux_Booter.hqx Most Mac-based FTP clients can un-binhex it for you after the file is retrieved. There are a number of alternative methods of un-binhexing the file. Once you have the MkLinux Booter, place the file in your Extensions Folder. NOTE: the file must be named "MkLinux Booter" (with the space and without the quotes). Version Information ------------------- The version of the Mach Kernel and Linux Server installed on the system may be obtained through two files located in the /proc filesystem. To see the version string for the Mach Kernel, type: cat /proc/osfmach3/version To see the version string for the Linux server, type: cat /proc/version The dates in these two version strings should match the date at the top of this message. How to gunzip (ie. uncompress) files ------------------------------------ If you are running MkLinux, there are a couple ways that you can uncompress a gzipped file. For instance, if you have vmlinux.gz, and you want to uncompress it, use the command: gunzip vmlinux.gz As an alternative, you could keep the original ".gz" file and use the command: zcat vmlinux.gz > /mach_servers/vmlinux (for instance) If you are running MacOS, get the tool MacGzip from the ftp site: ftp://ftp.mklinux.apple.com/pub/FTP_tools Drag a gzipped file (such as Mach_Kernel.gz) onto the MacGzip icon. MacGzip will recognize it as a gzipped file and uncompress it. Whichever method you use to gunzip the file, if either program "complains" about corrupt files, you'll most likely need to FTP the file again. How to move files between the MkLinux filesystem and the Mac OS volume ---------------------------------------------------------------------- The following steps are an example of how to transfer the Mach Kernel from a MkLinux filesystem to a Mac OS volume and how to transfer a Linux Server from the Mac OS volume to the MkLinux filesystem. All steps are performed under MkLinux and as the user root. 1) "mount" the HFS volume. You will need to know the SCSI ID and partition number of the HFS volume where the file is located. For example: hmount /dev/sda3 This will mount SCSI ID 0 (a=0, b=1, c=2, etc), partition 3. You can use the disklabel utility to determine which partion is your HFS partition: disklabel /dev/sda 2) Next, change directory to where the file exists, or is to be placed in, the HFS volume. In this example, the file is to be placed in the Extensions folder in the System Folder. hcd ":System Folder:Extensions" Note, HFSUTILS uses ":", not "/" to separate names in a path. For example, if the file was located in a folder named "MkLinux Downloads" within the folder "My Downloads", then the path would look like ":My Downloads:MkLinux Downloads" 3) The last step actually copies the file. hcopy -r /tmp/Mach_Kernel ":Mach Kernel" This will copy the file /tmp/Mach_Kernel (note the underscore) to the file "Mach Kernel" (note the space) in the Extensions directory in the System Folder on the HFS volume. 4) Or, to copy a file _from_ the HFS volume to MkLinux hcopy -r ":vmlinux.gz" /tmp/vmlinux.gz This will copy the vmlinux.gz file from the current location to vmlinux in the /tmp directory in the MkLinux filesystem. That's it! For more information, read the hfsutils manual page (man hfsutils) File transfer between MkLinux and the Mac OS volume when you can't run MkLinux ------------------------------------------------------------------------------ *** *** NOTE: If you use Linux Disks, be sure to get a recent version! *** Version 1.0d5 was known to corrupt the MkLinux filesystem *** Sometimes, you may need to manipulate the MkLinux filesystem from MacOS. Although it's not likely that you would need to do this to apply this update, there is a way to move files to and from the MkLinux filesystem when you're running MacOS. There is a utility called LinuxDisks written by Michel Pollet. It is currently under active development, but is quite effective. For more information on obtaining LinuxDisks, point your web browser to: http://w3.teaser.fr/~mpollet/LinuxDisks/ Even though you probably won't need the tool for this update, it is very handy to have around. Problems after Installation --------------------------- Some users have reported a new update will cause the system to be "stuck" at the MkLinux Boot splash screen -- the dialog box which asks if you want to continue to boot into Mac OS or boot into MkLinux. Here are some suggestions on how to fix this problem - * Verify the Mach Kernel was correctly downloaded. Web Browsers sometimes have problems; we recommend you use Fetch. Be sure the BINARY transfer mode was set. Be sure the Kind is "document". * Some 6100's with DOS cards are reported not to boot MkLinux with the DOS card running. Try turning the card off. This can be done through its control panel. * Try lowering the Disk Cache size under Mac OS to 96KB or less. This can be done through the Memory Control Panel. MkLinux booting has been sensitive to the memory usage of Mac OS. * Verify the system is not running RAM Doubler or a similar product. Also, in some configurations, Speed Doubler has been known to conflict with the booting process. Reverting back to the previous Mach Kernel and Linux Server ----------------------------------------------------------- In case the new Mach Kernel and/or Linux server breaks more than it fixes, you can revert back to the previous version (assuming you have made backup copies). Restoring the Mach Kernel file is easy; simply copy the backed up version to the Extensions folder - be sure the file is named "Mach Kernel" (note that there's a space in the name). Restoring the Linux Server, vmlinux, requires a few more steps - 1) Under Mac OS, edit the lilo.conf file to include the line mach_options=-a The lilo.conf file can edited by clicking on the CUSTOM button in the MkLinux control panel. If you already had a mach_options line (for other reasons), put the "-a" at the beginning of the line, just after the "=" symbol. Ie. mach_options=-a -m90 video_probe=true bus_speed_hz=44000000 As an alternative to adding "-a" to your mach_options, you can simply press "a" on the "splash screen" (the one with the countdown) when you're booting MkLinux. 2) Reboot into MkLinux 3) MkLinux should prompt you for a new bootstrap.conf file. Simply press . 4) You will be prompted for the default pager. Press again. 5) At this point you should be prompted for vmlinux (Linux Server). Here you can make corrections (i.e. use the DELETE key) to edit the name to the backed up version of the Linux Server. Press to continue booting. 6) The system should boot with the older version. Once the system is up, restore the old vmlinux file as "/mach_servers/vmlinux". Don't forget to restore the "mach_options" line in the lilo.conf file. Some Tips for Skipping Previous Updates --------------------------------------- If your system isn't completely at DR2.1update5, and you want to bring it to the update6 level, do not worry. You do not need to apply all the previous updates. What you need to know is that a true DR2.1update6 system has 3 pieces from the DR2.1update6 directory (the Mach Kernel, the Linux Server, and the Default Pager), the MkLinux Booter from the DR2.1update5 directory, and many packages based on shared libraries from the DR2.1update4 update. In general, you want to get your system running with the new update6 pieces and the update5 booter, then attend to bringing your shared libraries up to the DR2.1update4 level. Here are some quick recipes for bringing systems to the DR2.1update6 level. From a Fresh Install from DR2.1 CD or FTP install to DR2.1update6: ------------------------------------------------------------------ - Partition your disk and run the DR2.1 installer as if you were simply installing DR2.1. - When the installer (the MacOS application) completes, run the MkLinux control panel at least once (so that the appropriate Preferences files are put in place). - Obtain the MkLinux Booter from DR2.1update5. Put it in Extensions folder. - Obtain the Mach Kernel from DR2.1update6. Put it in Extensions folder. - Boot into MkLinux. - Obtain the vmlinux and default_pager from DR2.1update6 and place them in your /mach_servers directory. - Reboot. - Follow the "alternate second half of the DR2.1update4" installation -- the shared libraries. This involves getting the RPMs from the Alternates directory in the DR2.1update4 directory and the install_shlibs.u2u4 script. Execute install_shlibs.u2u4 and perform the "forcible reboot". From a DR2.1, DR2.1update1, or DR2.1update2 system to DR2.1update6: ------------------------------------------------------------------- - Obtain the MkLinux Booter from DR2.1update5. Put it in Extensions folder. - Obtain the Mach Kernel from DR2.1update6. Put it in Extensions folder. - Boot into MkLinux. - Obtain the vmlinux and default_pager from DR2.1update6 and place them in your /mach_servers directory. - Reboot. - Follow the "alternate second half of the DR2.1update4" installation -- the shared libraries. This involves getting the RPMs from the Alternates directory in the DR2.1update4 directory and the install_shlibs.u2u4 script. Execute install_shlibs.u2u4 and perform the "forcible reboot". From a DR2.1update3 system to DR2.1update6: ------------------------------------------- - Obtain the MkLinux Booter from DR2.1update5. Put it in Extensions folder. - Obtain the Mach Kernel from DR2.1update6. Put it in Extensions folder. - Boot into MkLinux. - Obtain the vmlinux and default_pager from DR2.1update6 and place them in your /mach_servers directory. - Reboot. - Follow the regular "second half of the DR2.1update4" installation -- the shared libraries. This involves getting the RPMs from the DR2.1update4 directory and the install_shlibs.u3u4 script. Execute install_shlibs.u3u4 and perform the "forcible reboot". From a DR2.1update4 system to DR2.1update6: ------------------------------------------- - Obtain the MkLinux Booter from DR2.1update5. Put it in Extensions folder. - Obtain the Mach Kernel from DR2.1update6. Put it in Extensions folder. - Boot into MkLinux. - Obtain the vmlinux and default_pager from DR2.1update6 and place them in your /mach_servers directory. - Reboot. From a DR2.1update5 system to DR2.1update6: ------------------------------------------- - Obtain the Mach Kernel from DR2.1update6. Put it in Extensions folder. - Boot into MkLinux. - Obtain the vmlinux and default_pager from DR2.1update6 and place them in your /mach_servers directory. - Reboot.