This HOWTO explains how to perform a network install of Debian 3.0 (Woody) on an IBM RS/6000 44P-170 workstation.
It should definitely also work for other low-end systems such as the 260, 270 and B80. However, I have not yet tested that. I would also expect it to work on the mid- and high-end POWER3 systems. You would use the same approach for 604 based CHRP systems like the 43P-150 and B50; however, you would use a different kernel. The combined ramdisk/kernel image which contains the installer 'boot-floppies' was boot'ed from Open Firmware through BOOTP/tftp. The drivers, base and kernel was downloaded over the network through 'wget'. My goal was not to rely on diskette, CD or hard drive partitions to perform the install. I wanted a pure network install. I made no modifications to 'boot-floppies'. However, some features do not work. In those instances I broke out to the shell and issued the commands manually, or as with the case of making the system bootable, delayed the task until the install was complete. I will work on this document some more and find a URL for it. Please do not hesitate to contact me if anything is unclear or if you have any questions. Rolf -- Rolf Brudeseth [EMAIL PROTECTED] pSeries System Engineering & Integration, IBM Enterprise Systems Group Austin, TX Create initial ramdisk image (zImage.initrd) ============================================ I just happen to have an IBM RS/6000 43P-150 workstation where I already have SuSE 7.3 installed. I used this system to compile the zImage.initrd image and used it as an BOOTP/tftp server. I got the latest kernel (2.4.18) from: http://www.kernel.org/pub/linux/kernel/v2.4/ I got the ramdisk image from: http://ftp.debian.org/debian/dists/woody/main/disks-powerpc/current/chrp/images-1.44/root.bin Then I compiled the kernel: $ mv root.bin /usr/src/linux/arch/ppc/boot/images/ramdisk.image.gz $ cd /usr/src/linux $ make mrproper $ make config $ make deps $ make zImage.initrd I used the standard POWER3 config file: /usr/src/linux/arch/ppc/configs/power3_defconfig I would have saved a few key strokes during the install if I had modified the config file to enable serial port console. It appears that it is enabled in the config file: ~snip # # Character devices # CONFIG_VT=y CONFIG_VT_CONSOLE=y CONFIG_SERIAL=y CONFIG_SERIAL_CONSOLE=y ~snip However, I must have missed something because it was definitely not enabled. Then I copied the combined image to the tftpboot directory: $ cp /usr/src/linux/arch/ppc/boot/images/zImage.initrd.chrp-rs6k /tftpboot Setting up the BOOTP/tftp server ================================ After the fact, this is fairly straight forward. I started up the BOOTP/tftp daemons and configured the bootptab file on the server: $ cat /etc/bootptab elas23:\ ht=ethernet:\ bf=zImage.initrd.chrp-rs6k Then, some issues that I noticed later, that we may as well take care of now. First, note that the 'bf' flag only equals the image. It turn out that unlike other BOOTP servers I have used, the one SuSE offers assumes that the path is with respect to /tftpboot, and not /. Second, while booting the zImage.initrd image, the target system would always hang before loading the whole file. It turns out one has to issue the following command on the server: $ arp -s target_ip target_hw_addr I do not fully understand why; however, it is all documented here: http://penguinppc.org/~hollis/linux/rs6k-netboot.shtml We are now done with the server. The remainder of tasks are performed on the target. Booting the initial ramdisk image ================================= Power on the target system. At the SMS menu, press 8 on a ascii terminal or F8 when using graphics card, monitor, keyboard and mouse. You should now get to the Open Firmware prompt. I happened to use a vt102 terminal, which explains the 'console' statement that you will see in the remainder of this document: Type in the following: 0> boot net:server_ip,,target_ip console=ttyS0,9600 - or in my case - 0> boot net:9.3.52.92,,9.3.52.88 console=ttyS0,9600 Preparing the hard drive ======================== You should now be in the installer 'boot-floppies'. First, select the 'Partition a Hard Disk' option. I kept it simple: sda1 Type 41: PPC PReP Boot 8M sda2 Type 82: Linux Swap 128M sda3 Type 83: Linux The rest of the drive The boot-loader 'yaboot' will later be loaded into 'sda1'. Make sure this partition is not larger than 8-10M. Due to a bug (I am not sure where) the boot-loader will not function well if the partition gets much larger than this. For good measure I flagged the 'sda1' partition as bootable; however, I am not sure that this is necessary. The next steps in the installer are: - Initialize and Activate a Swap Partition - Initialize a Linux Partition Configure the network ===================== The next steps in the installer are: - Configure the Hostname - Configure the Network Install Driver Modules (but not Kernel yet) =========================================== This is where you normally would select the following option in the installer: - Install Kernel and Driver Modules However, since I know that the FTP/HTTP method will fail, I am going to the shell instead. In boot-floppies, I select: - Execute a Shell If you issue the 'df' command, you will see that '/dev/sda3' is mounted under '/target'. If not, simply issue the command: # mount /dev/sda3 /target Now, to download and install the driver modules: # cd /target # wget http://ftp.debian.org/debian/dists/woody/main/disks-powerpc/current/chrp/drivers.tgz # tar -zxvf drivers.tgz # ./install.sh Install Base ============ While still at the shell in the '/target' directory issue: # wget http://ftp.debian.org/debian/dists/woody/main/disks-powerpc/base-images-current/basedebs.tar Now exit the shell: # exit In boot-floppies, select the following option: - Install the Base System I would have chosen: 'network: HTTP or FTP over the network' However, since this feature also is broken, I chose: 'mounted: already mounted filesystem' The mount point is: /target That is why I also downloaded 'basedebs.tar' before exiting the shell. Install kernel ============== This is as good of a time as any. The previous step created the /target/boot directory and the next step is to make the system bootable. I get the uncompressed kernel from the system where I compiled the kernel: /usr/src/linux/vmlinux In boot-floppies, I select: - Execute a Shell # cd /target/boot # wget ftp://user:password@host/usr/src/linux/vmlinux Make System Bootable ==================== The following option in boot-floppies does not work: - Make System Bootable However, if I go to the shell and execute any of the following commands I am still not able to make the system bootable: # yabootconfig - with various parameters I know should work # ybin - with various parameters I know should work # dd if=/target/usr/lib/yaboot/yaboot of=/dev/sda1 It appears that 'yaboot' on the initrd image is broken. What options do I have left? Well, I can boot from the network again. However, this time I boot the image with the 'noinitrd' and 'root' kernel parameters specified. I issue the reboot command: # cd / # umount /target # reboot When the system comes up to the SMS menu I again hit 8 or F8, but issue the following command at the Open Firmware prompt: 0> boot net:server_ip,,target_ip console=ttyS0,9600 noinitrd root=root_partition - or in my case - 0> boot net:9.3.52.92,,9.3.52.88 console=ttyS0,9600 noinitrd root=/dev/sda3 Now the system boots up and indicates that the installation is done, and starts running through the configuration menu. BE VERY CAREFUL WHEN ENTERING VALUES LIKE ROOT PASSWORD! The reason for this is that the screen emulation is not working correctly with these menus (at least not for me and my vt102 terminal). Make sure to press the backspace/delete button a few times in each field. Otherwise, you will get to the login prompt but not be able to log in, because the root password will not be what you typed in. For the same reason I would wait with running 'apt-sel' and 'dselect'. However, if this happens, you can still recover. Power the system down by pressing the power button. Boot up the initrd image, mount '/target' and edit the '/target/etc/passwd' or '/target/etc/shadow' files with the 'nano-tiny' editor, depending upon whether you enabled shadow passwords or not. Remove the password field. Then reboot and boot up again with the 'noinitrd' and 'root' kernel parameters specified. Log in to system & misc configuration ===================================== You should now be able to log into the system and run dpkg, apt or dselect, whichever is your preference. You would also like to make the system bootable: # yabootconfig --kernel-args console=ttyS0,9600 No other parameters should be necessary, since 'yabootconfig' is good at guessing. You may also want to reboot the system and press 1 or F1 at the SMS menu, and ensure that the hard drive where you just installed Debian is on the list of boot devices. Good luck! -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

