Booting a Mac with Yellow Dog Linux
From Organic Design wiki
What follows applies to old world Macs that use the Apple boot ROM and not Open firmware.
Date: Tue, 8 Apr 2003 14:03:04 +0200 From: Alexander Holst <holst at fh-pforzheim dot de> Subject: Re: miboot documentation? (really minimal BootX) Hi everybody, here's a mini HOWTO for booting/installing via miboot (sorry for the long post): All my YDL boxes here are booted via miboot (exept for my ANS ;), so they don't have any Apple Software on them any more. Only step 1] and 2] usually require some form of MacOS. In my experience, miboot works very well for OldWorld machines, as well as for B/W G3s. It is customizable trough a conf file called "boot.conf, which must reside on the root level of the HFS (or HFS+) partition. My HFS partitions are usually between 20 and 30 MB, which is enough, as long as you are not experimenting with too many different kernels. If you only have one, known to work kernel, even as little as 15 MB could be enough. IMHO, HFS is recommended as you'll then be able to mount that partition under Linux and alter the boot.conf file, to reflect any changes like boot args and kernels. I usually use miboot for installation as well. All you have to do, is to copy the desired installer ramdisk to the root level of the HFS partition and specify it in the boot.conf file. I even did a graphical install on a PM8200 this way ;) In case you want to have a dual boot system, miboot serves well, as you will be able to choose the volume containing miboot as a startup disk - just make it the second (or more) partition on the drive, so holding down <CMD><ALT><P><R> will enable you to reset the PRAM and enable you to boot back into Mac OS, or doing it the good ole way, using two or more SCSI disks, holding down <CMD><ALT><SHIFT><Backspace><# of SCSI ID of BootDrive> will let you boot off your desired boot drive :) My usual steps in performing an install through miboot consist of the following: 1] Boot from a bootable CD containing any drive partitioning utilities to partition/initialize your disk. A MacOS 8.1 or higher install CD is recomended as you will be able to access any other stuff you will need through the network. Making 1 partition suffices completely: 1 HFS partition, rest empty (that will be used for Linux later). As with all the installs I have performed so far, all installers (YDL 2.0, 2.2 & 2.3) allowed me to partion the remaining space on the drive during installation. Make one partition that will become the HFS boot partition for the machine. Again, HFS is considered to be used rather than HFS+, for reasons explained above. Partition size: 15MB for machines with only one usable kernel, more for experimenting (take into consideration that each kernel requires between 3 and 5MB). 2] Copy all needed miboot stuff on the newly created HFS partition. I usually use the Systemfolder of an old LinuxPPC2000 Q4 CD, as it has proved to work flawlessly (if neccessary, I could provide that). Needed are the following components: a] a "System Folder" on the root level that contains "Finder" and "System", the actual miboot software. Be sure to open this "System Folder" at least once under MacOS, so it gets blessed, aka the icon of the folder in the Finder will contain a "Happy Mac", otherwise you won't be able to choose it as a boot drive in the StartupDisk control panel later on. b] a text file called boot.conf on the root level (this file can be in SimpleText format or Linux format - I usually create it with SimpleText the first time, then edit it with gEdit, pico ... when installation has finished). Mine looks as follows: init-message = "\nWelcome to YDL!\Press <TAB> for boot options.\n\n" timeout = 50 default = bootYDL image = vmlinux-2.4.18-0.8a label = bootYDL root = /dev/sdb8 append = "video=atyfb:vmode:18,cmode:24" image = vmlinux-2.4YDLinstall label = install_YDL initrd = ramdisk-text.image.gz initrd-size=16384 root = /dev/ram0 append = "video=atyfb:vmode:18,cmode:24" It looks much like a quik.conf file. The "default=bootYDL" is ignored! I kept that line in all my boot.conf files, as I have no idea whether leaving it out messes things up. Default will alwyas be the _first_ set of entries in this file. At least that's what I found out. All other sets will be displayed as options, when hitting the spacebar at the initial "Tux Scenery" screen. Note the second set of entries, labled "install_YDL" - these are required for installing YDL through this method. All mentioned kernels _must_ reside in a folder called "Linux Kernels" on the root level of that partition, hence step c]. The ramdisk image, needed for installation must also be on the root level of the HFS partition - hence step d]. Take note, althogh currently working under MacOS, case sensitivity must be observed, as later while booting into Linux, it is required to keep entries in boot.conf according to the "real" names of the items on the HFS partition (kernel names, ramdisk name). The "timeout = 50" entry specifies, how long the initial screen will be displayed before booting into the default settings. Time is in 1/10 secs, so 50 means 5 secs, 100 = 10s ... In case you have to specify custom kernel parameters, you can have a line like: append = "video=atyfb:vmode:18,cmode:24" (worked on my G3/233 DT ;) It works much better than specifying the vmode and cmode settings in the displayd screen of miboot - somehow, these get scrambled when entered at the boot options screen, at least in the version of miboot I use. Any custom kernel arguments can be passed to the kernel this way. (I am writing this out of my memory, so the append line may be wrong, choose proper values for your setup or leave the line awy, miboot will then use the video settings set by MacOS. These can be controlled from within Linux via nvvideo - see man nvvideo) c] a folder called "Linux Kernels" (note the space in that name) on the root level, containing your kernel/s. I usually have a second Mac that serves as a fileserver to get the stuff from the different CDs (YDL install CD ...). As of at least MacOS 8.1 and higher, the install CDs had a Chooser, so access to AFP servers is possible. It is possible to copy everything needed to a ZIP or such, before starting the process as well. You can use the supplied YDL kernel from a YDL install CD in most cases (exept for NuBus Macs, you definitely will need a custom kernel - if needed, I can supply one, as my Performa 5200 is running YDL 2.2 at the moment, waiting for 3.0 to be installed :) d] to be able to install, we need the appropriate ramdisk on the root level of this HFS partition too. Copy the desired one (text or X11 or both) from your YDL install CD to the partition - do _not_ unpack it/them, leave it/them as is. BTW, as of YDL 2.3, text as well as X11 worked fine for me - X11 needs more RAM, so in case you are short in RAM, use the text ramdisk image. 3] Open the StartupDisk control panel and select the newly generated StartupDisk as the default StartupDisk and reboot. Upon the miboot screen, press <Space> to get into the otions screen, unload whatever CD is in the drive and insert the YDL install CD, choose your "install set" and hit boot. Hopefully you will see Tux greeting you at the top of the screen followed by the usual console messages. 4] Everything from this point on should be according to YDL's documentation about installing YDL (or whatever distro you are installing - LPPC2kQ4 worked fine this way as well). Be sure to choose "Custom" as the install method, as the YDL installer will not recognize the "out of the ordinary" partitioning scheme, to be able to enter the correct mount points for your partitions later during the installation process. As for further partitioning your drive, _only_ alter the remaining free space of the drive, do _not_ alter any of your driver partitions (they are necessary for booting), nor delete or alter the HFS Boot partition you created earlier. In case you created two HFS partitions in step 1], simply delete the _last_ HFS partition (which you intended to use for Linux anyway) and create your swap and root partition. My drives look as follows (output from pdisk - I use /dev/sda2 for /home): Partition map (with 512 byte blocks) on '/dev/sda' #: type name length base ( size ) 1: Apple_partition_map Apple 63 @ 1 2: Apple_UNIX_SVR2*untitled 2110748 @ 64 ( 1.0G) Device block size=512, Number of Blocks=2110812 (1.0G) DeviceType=0x0, DeviceId=0x0 Drivers- 1: 23 @ 64, type=0x1 2: 36 @ 118, type=0xffff partition map (with 512 byte blocks) on '/dev/sdb' #: type name length base ( size ) 1: Apple_partition_map Apple 63 @ 1 2: Apple_Driver43*Macintosh 54 @ 64 3: Apple_Driver43*Macintosh 74 @ 118 4: Apple_Driver_IOKit Macintosh 512 @ 192 5: Apple_Patches Patch Partition 512 @ 704 6: Apple_HFS "Boot_Linux" 65536 @ 1216 ( 32.0M) 7: Apple_UNIX_SVR2 swap 262145 @ 66752 (128.0M) 8: Apple_UNIX_SVR2 untitled 3849977 @ 328897 ( 1.8G) Device block size=512, Number of Blocks=4178874 (2.0G) DeviceType=0x0, DeviceId=0x0 Drivers- 1: 23 @ 64, type=0x1 2: 36 @ 118, type=0xffff In the mount points section of the installer you can specify something like "/mnt/Boot_Linux" as mount point for the HFS BootPartition together with type HFS, then you'll be able to access that partition from within Linux (that's the reason why we initialized it as HFS and not HFS+ in step 1]). You will certainly want to alter the boot.conf file on that partition at some stage. Do _not_ mount that partition at /boot, it will most likely mess things up. Partitioning schemes with more than one partition (besides swap) are possible and up to your taste. Do not install any boot loaders from within the installer - not needed with miboot. I usually choose text as preferred login mehtod for the beginning untill I have solid XFree config files with proper screen resolutions - you may choose graphical in case you are sure your settings will work. 5] After finishing the install you will have to edit the boot.conf file on your HFS partition to reflect the root partition of your linux installation. It will be mentioned by the installer at the end of the installation process. Write it down and put it in the appropriate line of boot.conf. There are several ways to accomplish that. One would be to boot with a MacOS CD again by holding down <C> and use SimpleText to edit the file. Another would be to enter the options screen of miboot and enter the root partition in the proper field (a predefined set for booting into Linux in boot.conf helps a lot - you safe some typing/deleting in that screen, as it is very slow), boot into your newly installed Linux installation and use any editor of your preference for altering the boot.conf file or completely write a new one, to get around the line breaking issue (Macintosh vs. Linux line breaks). It seems that the format of line breaks does not affect the proper funtionality of miboot, it is just annoying to have everything in one line under Linux. I hope this will get your machine/s booted into Linux, using miboot as preferred booting mehtod. Greetings, Alex Alexander Holst Pforzheim University of Applied Sciences <holst at fh-pforzheim dot de>