Installing GNU/Linux on the IBM RS/6000 43P model 7248 HOWTO

Ingvar Hagelund

  ingvar@linpro.no

Revision History
Revision 2.02003-06-02Revised by: ih
2.0 is out.
Revision 1.642003-06-01Revised by: ih
YellowDog 3.0 (Sirius) is availble through dist-upgrade
Revision 1.632003-05-26Revised by: ih
Main parts of Suse, Yellowdog and Debian and Mandrake done.
Revision 1.622003-02-26Revised by: ih
Working on complete new version with several distributions.
Revision 1.62002-12-19Revised by: ih
Change from LinuxPPC to other distributions, first sketch
Revision 1.522001-08-29Revised by: ih
Added a chapter on Linux 2.4. Fixed some dead and wrong links. Fixed a lot of typos.
Revision 1.512001-04-06Revised by: ih
Download site for LinuxPPC-2000 Q4 cd images
Revision 1.502001-02-06Revised by: ih
Now supports LinuxPPC-2000 Q4
Revision 1.402000-12-14Revised by: ih
Translated to SGML. This is the initial release for LDP

Introduction

This document describes how to install GNU/Linux on the IBM RS/6000 43P 7248 series, that is, the 43P-100, 43P-120 and 43P-133. It describes quite in detail anything to get one of these boxes from a non working stage to a networked workstation with a nice graphical user interfase. This relase covers several Linux distributions. Earlier, this document described the installation of several Linux distributions. Earlier, it only covered the LinuxPPC distribution, which is now obsolete. If you, for any particular reason, should be interested in versions of LinuxPPC, please have a look at my homepage .

Some years ago I got a couple of old 7248s for free and I did not have any OS to run on them. So I gathered some bits and pieces from the net, and got it to install LinuxPPC-1999. Later, I found that a lot of other people may have the same problems that I had, so I wrote this document to help. Later I rewrote it in SGML and it is now a part of the LDP.


Disclaimer and scope

This document is made after own experiences on a 43P 7248-132. The things I did might or might not work for you. You are on your own. I take no responsibility whatsoever for any damage, loss or expenses because of something you might have done because this document said so. If you want to give me feedback on errors, typos, or anything that can make this document better, please feel free to contact me by sending an e-mail to

No liability for the contents of this documents can be accepted. Use the concepts, examples and other content at your own risk. As this is a new edition of this document, there may be errors and inaccuracies, that may of course be damaging to your system. Proceed with caution, and although this is highly unlikely, I do not take any responsibility for that.

This document is about installing GNU/Linux on the IBM RS/6000 43P, model 7248. The methods described in this document may or may not work on other machines or models. They may or may not work on other Linux distributions than described. Please don't ask me about this, as I have not tested others. Look in the the Section called Resources for other resources on this. If you find that these instructions work on other models or distributions, please let me know, and I'll add that info here.

All copyrights are held by their by their respective owners, unless specifically noted otherwise. Use of a term in this document should not be regarded as affecting the validity of any trademark or service mark.

Naming of particular products or brands should not be seen as endorsements.

You are strongly recommended to take a backup of your system before major installation and backups at regular intervals.

Note that the 7248-132 and the 43P-133 are two terms for the same model, and the same goes for 7248-133 which I've also seen referenced from time to time. These three terms describes the exactly same model. You can safly assume that they are all the same machine.

If you feel that this document makes your life better, makes you glad and happy, or if you just are in a good mood, and have nothing to do, feel free to donate hardware, money, pizzas, e-mailed thankyous, postcards or anything to me. I can be reached at:

          e-mail: 
          snail-mail: Ingvar Hagelund, Asperudlia 15, NO-1258 OSLO, NORWAY.
        


Credits

A lot of people have given me suggestions and help on these pages. I might have forgotten some of them, and if so, I apologize. Please send me a note to me at , and I'll list you here. Thanks to all of you, I could not have done this without you.

Ingvar

Here is list of people that have been helpful, in a completely unordered fashion :-)

Ingvar Hagelund

James Rooker

Mike McCammant

Alberto Varesio

Rolf Brudeseth

Ian Dale

Hollis R Blanchard

Linar Yusupov

Cort Dougan

Roger Bonussen

Rolf Zimmerli

Philippe Senot

John Roebuck

Jacopo Silva

Martin Espenschied

Dan Burcaw

www.linuxppc.com

Tor Arne Rein

Chien-Yu Chen

Wadamori Naoki

Arne Chr. Jørgensen

Doc Shipley

Thomas M. Nymand

Alberto Varesio

Pat Berge

Kazunori Aoshima

David Monro

Matt Porter

Olaf Hering

Xavier Piednoir

Steve Cornett

Greg Ferguson

Nader Salasshahri

Thomas Junker


Overview


Setting up the hardware with SMS

This chapter describes how to configure the system's Firmware to use the hardware properly. To do this we are going to use a software tool from IBM called System Management Services, SMS.


Get the installation files

This chapter describes how to get your hands on a copy of one or several Linux distributions able to run on the 7248.


Buying a CD


Download CD images over FTP or HTTP

The other way around is to download preformatted CD images, and burn them out yourself.

Before downloading installation images or doing a network installation, please consider buying boxed set, or services from the respective parties. Companies and organizations building Free Software needs support and money to survive.

To make a CD, you need some CD burning software package. This is outside the scope of this document, allthough any decent CD burning software on any platform should be able to do it.


Make boot floppies

Both installing via net or CD needs bootstrapping with floppy disks. In this chapter we will learn where to get floppy images, and how to make useable boot floppies from them.


What floppies to make

First we need a boot floppy. This will be a custom compiled Linux kernel image able to boot on the 7248. Then we need one or more ramdisk images.

If you use Netscape or another web browser to download the files, you should check that the sizes of the downloaded files are correct. Some versions of Netscape tend to uncompress compressed files, and we want to keep them compressed. If strange things things happen at boot time, try using another program for downloading the files, like wget or lynx.


How to make the boot floppies

Use always errorfree 1.44MB floppies for these images. The commands shown here is for a working Linux system. They might work on other UNIX systems as well. On some systems you may have to be root to write directly to the floppy drive. In those cases, so du a 'su root' before issuing the commands.

MS-DOS users may use the rawrite utility. You can download rawrite from several places, for example a RedHat mirror as ftp://ftp.uninett.no/. More information on how to use rawrite here.

To make the boot floppy, insert a floppy in the drive, cd to the directory containing the boot floppy image and issue the following command, substitute "debian" to your distributon prefix if necessary.

dd if=debian-7248-boot.img of=/dev/fd0 bs=36b
Label the disk "Boot floppy" or whatever you like.

To make a ramdisk floppy, insert a floppy in the drive, cd to the directory containing the ramdisk image, and issue the following command. Substitute the filename with an image for your distribution of choice, like "ydl-7248-ramdisk-2.img" for the second YellowDog ramdisk floppy image.

dd if=debian-7248-ramdisk.img of=/dev/fd0 bs=36b
Label the disk "Ramdisk floppy #1" or whatever you like. Remember that Debian and SuSE has one ramdisk floppy. For Yellow Dog, you need three.


Boot the machine and start the installation program

In this chapter we will find out how to get the installation program up and running.


A note on partitions

Below we will be asked about what partitions to make. We should have at least these partitions:

You may of course add as many other partitions to your system as you may wish, but this is the very minimum.

It is a VERY good tip to find a piece of paper and write down which partitions you have made, what you want to use them to, and where you want to mount them. You will need this information later.

For Debian and SuSE, we will use the cfdisk program for partitioning. For those unfamiliar with cfdisk and partitioning in general, I have made two small appendices on this, just because I am a very kind person. See the Section called Appendix: Using cfdisk to partition your harddisk.


Boot the machine and start the installer

To boot the 7248, just insert the boot floppy and turn the machine on. If it won't boot off the floppy drive, check SMS settings (the Section called Setting up the hardware with SMS), and try to force a floppy boot by pressing F5 (or F6) at the bootscreen while the check icons pop up in the bottom of the screen. After a while, the screen blanks out, and Linux will boot. At this point, you can shout a little "hooray" for yourself, if there are not too many in the room, and Tux, the Linux Penguin will show up in the upper left corner of the screen. Insert the ramdisk floppies when prompted.


The Debian installer

You should just walk through the Debian installer like you would on any Debian installation. More information on how to use the installer can be found at your favourite Debian mirror, a good reference should be this document. You would maybe start here as you already have been walked through the preliminary steps. There are a few thing to remember though:

  • Not all keyboard layouts are availble in the installer. Pick one you are able to use. We will have more to choose from once the system is installed.

  • At the "Partition a Hard Disk" step, our partition program will be cfdisk. At this step we have to add the PReP partition as mentioned above, a swap partition and a root partition. Remember to write down on a piece of paper what partition to use for the root filesystem. Unless you have a really good memory, of course.

  • The steps "Install Kernel and Driver Modules", "Configure Device Driver modules", "Configure PCMCIA Support", and "Install Foreign Modules" can be skipped, as all necessary driver are compiled into the boot floppy kernel.

  • When installing the base system, we can choose either network or cdrom. Both should work. (I have even installed by floppy once, but this is something we really don't want to do.)

  • Skip the steps "Make System bootable" and "Make a Boot Floppy" - they won't work. See the later chapter the Section called Compiling and installing the kernel on how to make the system boot from the harddisk.

  • No bootloader will be installed, as there are no availble bootloader for the PReP PPC platform (except the one that's piggybacked onto the kernel). After the installation is done, you will therefore have to boot again from a floppy. See the next chapter for details.

When you are finished installing the base system, reinsert the boot floppy and choose "Reboot the system".


The SuSE installer

The SuSE installer should work without any hassle at all. Prelimenary, I've only done ftp install, but any installation method should do, provided you have access to the media. I have not been able to find an online version of the installation instructions, but it should be quite strightforward. If you have bought the boxed set, you have probably got a printed manual on dead trees. A few things to look up for anyhow:


The Yellow Dog installer

Just before the installer starts, I have added a small pre-installation routine. Please follow the on-screen instrucions. For someone who has done some sysadmin earlier, the steps should be quite easy. For the beginner, it should not be to difficult. Hop to a virtual terminal by hitting Alt+F2. Type

cfdisk /dev/sda
to partition your first scsi harddisk. Change to sdb for your second, and so on. If you think this is a little difficult, I've written a small appendix on this the Section called Appendix: More on partitioning. When done partitioning, run for example
mke2fs /dev/sda3
to make an ext2 filesystem on your third partition on your first hard disk. When you are finished, hop back to the main screen by hitting Alt+F1, and press enter to continue

You should walk through the installer as you would walk through any Yellow Dog installation (though only text-based interface is availble). I have not found any comprehensive online installation manual, but there is some info here. If you have bought a boxed set, you should open the box and Read The Fine Manual if you have questions not answered here.

There are a few things to look out for, though:

  • At the "Installing Profile Selection" screen (one of the first screens), choose "Custom".

  • At the "Installation Setup" screen, only "Local CD/DVD" is availble, so we'll have to choose ... well, you guessed it.

  • At the "Partition Disks" screen, we "Edit" each disk, but just choose "Save" in the subscreens. "Add" and "Delete" won't work. And besides, we already have done this, haven't we?

  • At the "Package Selection" screen, choose "Base Install", unless you have a full CD set. The downloadable CD image has only the base install packages.

  • At the "Sound Setup" screen, we'll get an error message saying we are not one of those lucky bastards owning a Power Macintosh computer. As this is something we should be ashamed of. Ignore, sniff, and select "Ok". We'll fix sound later.

  • At the "PReP Bootloader Installation" screen, the installer yells that it can't find a PReP partition. A little strange, as we just made one. (We did, remember to do that, didn't we?). This installer just can't get it, so continue to ignore it. Select "Ok".

  • The "X11 Configuration" screen just flips by, so I guess that part was painless. Yeah, right.

  • No bootloader will be installed, as there are no availble bootloader for the PReP PPC platform (except the one that's piggybacked onto the kernel). After the installation is done, you will therefore have to boot again from a floppy. See the next chapter for details.


The Mandrake installer

For the Mandrake installer, there are a few quite extensive prerequisites necessary. For a CD install, we need to replace the installer program on the first CD before burning out the CD ISO image. For a network install, we need a complete local ftp or http mirror, made from the Mandrake Bamboo ppc ftp directory, or the three CDs. Actually, we only need to replace one single file, but because the installer is unable to change package source during the installation (this is one reason why Debian is a wonderful distribution), we need local copies of all the files.

If we don't like to hazzle around and tune things, we'll stick to the CD installation. It's the easiest.


CD installation

First we have to download the three Mandrake ISO images from your favourite mirror. There exist ppc ISO images at least at a Sweedish mirror at ftp://ftp.chello.se/pub/linux/Mandrake-iso/ppc/.

Then we must change the first image by replacing the installer inside it. This could be done on any operating system able to mount a CD ISO image. The instructions below are made for running on RedHat Linux. We presume the images are all put in /var/tmp.

First we mount the image by the loopback interface

mount -o loop=/dev/loop0 /var/tmp/MandrakeLinux-9.1-CD1.ppc.iso /mnt/cdrom
Then copy all files in the image to somewhere with plenty of space, eg. /var/tmp, and unmount the image again:
mkdir /var/tmp/bamboo1
cp -va /mnt/cdrom/* /var/tmp/bamboo1
umount /mnt/cdrom
Now replace the installer image:
cd /var/tmp/bamboo1/Mandrake/base
rm mdkinst_stage2.bz2
wget http://users.linpro.no/ingvar/43p/images/Mandrake/mdkinst_stage2.bz2
Finally rebuild the installer image and, if you want, remove the local copy of the cd contents:
cd /var/tmp
mkisofs -r -o MandrakeLinux-9.1-CD1.ppc.iso bamboo1/
rm -rf bamboo1
There. You now have a set of three working ISO images for the 7248. Burn them out on CDs. Then insert the boot floppy into the 7248 and turn the computer on. Disk-Jockey the ramdisk floppy when prompted. Just do a normal CD installation. See the installer notes below for details.


Network installation

First you need a local http or ftp mirror with a patched installer. This means that you need access to another computer able to run a web or ftp server. Any Linux distribution can do. A modern Windows or UNIX server should also be able to do the job. The trick is to download all necessary files, and change the installer file Mandrake/base/mdkinst_stage2.bz with a patched one. Below the the steps to get this done with the Apache web server on a RedHat Linux installtion, and with the CD iso image files, is described. (A complete download of the ppc archive from a Mandrake ftp mirror should work allright too, but I prefer to have the iso images availble.)

Unless already done, install and start the Apache web server on the system. This is described in the RedHat documentation. Then download the three Mandrake CD images from your favourite mirror. There exist ppc iso images at least at a Sweedish mirror at ftp://ftp.chello.se/pub/linux/Mandrake-iso/ppc/.

cd /somwhere/with/plenty/space
wget ftp://your.favourite.mirror/path/to/MandrakeLinux-9.1-CD1.ppc.iso
wget ftp://your.favourite.mirror/path/to/MandrakeLinux-9.1-CD2.ppc.iso
wget ftp://your.favourite.mirror/path/to/MandrakeLinux-9.1-CD3.ppc.iso
Mount the images via the loopback interface:
mkdir /mnt/bamboo1 /mnt/bamboo2 /mnt/bamboo3 /var/www/html/bamboo
mount -o loop=/dev/loop1 MandrakeLinux-9.1-CD1.ppc.iso /mnt/bamboo1
mount -o loop=/dev/loop2 MandrakeLinux-9.1-CD2.ppc.iso /mnt/bamboo2
mount -o loop=/dev/loop3 MandrakeLinux-9.1-CD3.ppc.iso /mnt/bamboo3
cd -
Copy the base files, and symlink the package directories, to a directory availble for the web server:
for i in base mdkinst share; do
cp -va /mnt/bamboo1/Mandrake/$i /var/www/html/bamboo/Mandrake; done
ln -s /mnt/bamboo1/Mandrake/RPMS1 /var/www/html/bamboo/Mandrake
ln -s /mnt/bamboo2/Mandrake/RPMS2 /var/www/html/bamboo/Mandrake
ln -s /mnt/bamboo3/Mandrake/RPMS3 /var/www/html/bamboo/Mandrake
Finally add my patched version of the installer image.
cd /var/www/html/bamboo/Mandrake/base
mv mdkinst_stage2.bz2 mdkinst_stage2.orig.bz2
wget http://users.linpro.no/ingvar/43p/images/Mandrake/mdkinst_stage2.bz2
cd -
You should now have a working local http mirror of the Mandrake installation files. Now boot with the boot floppy, and insert the ramdisk floppy when prompted. From the installation menus, select network install, select http and then give the address of the server where you just downloaded the files. The http directory from the example above is "/bamboo"


Post installation configuration

In this chapter we will boot our fresh installed system for the first time, and learn how to finnish the post-installation configuration of the various systems.


Post installation configuration of Debian

The post installation configuration of Debian is described in detail in the document ch-init-config-en.html at your favourite Debian mirror. If you have cleared all previous stages, you get 400 bonus points, and can skip directly to paragraph 8.3.

By some strange reason, the Debian installer doesn't set up the network according to the fixes in the installer. If you want to use apt over a network connection, you should jump to a virtual screen (Alt+F2), log in as root, and set up networking. This is done by editing the file /etc/networking/interfaces , but the syntax of that file is way out of scope for this document. More information should be found in the Debian documentationm. Use the command

man interfaces
to get the manual page. When you are done, run
ifup eth0
to take the link up. Then jump back to the installer screen by pressing Alt+F1.


Post configuration of Yellow Dog

YellowDog Linux does not have any post installation issues at all, except the expected kernel errors caused by lacking module directories. What a cool operating system! Look in the Section called Compile a kernel for detailed instructions on how to compile and install a working kernel.

There is some info at this url if we want to dig into more configuration. But we want to read the following chapters first.

Before taking another step you should go to a silent chamber and think: "I've got Yellow Dog 2.3. YES! But should I be content with that, now when YellowDog 3.0 is out? Should I really?" If the answer to that question is "No" then skip to the Section called Appendix: Updating from YellowDog 2.3 (Dayton) to 3.0 (Sirius). If you pass over the start field in the movement, you'll receive $2000 and a hotel.


Post configuration of Mandrake

Not much to mention here. The system should work more or less out of the box. Wow! You will probably get some errors on lacking kernel files. You will learn how to compile and install a complete kernel in the Section called Compile a kernel. You may want to (re)configure your network. There does exist a tool called "drakconnect" that should be able to do this, but I never got it to behave. Configuring the local network is easy though. Just fire up your favourite editor (at least vi is installed) and edit the files mentioned below. This example describes a static ip configuration. Generally, this is the "RedHat" way to do things, so examples and documentation should be easy to find.

/etc/sysconfig/network

	NETWORKING=YES
	HOSTNAME=barky
	GATEWAY=192.168.0.1
/etc/sysconfig/network-scripts/ifcfg-eth0
	DEVICE=eth0
	BOOTPROTO=static
	BROADCAST=192.168.0.255
	IPADDR=192.168.0.5
	NETMASK=255.255.255.0
	ONBOOT=YES
/etc/resolv.conf
	nameserver 192.168.0.2
For a DHCP configuration, change BOOTPROTO to "dhcp", and skip the BROADCAST, IPADDR, NETMASK, GATEWAY and nameserver options.

I'm no Mandrake Guru. I actually never use Mandrake, and fixed the installer just for the exercise. By some reason, eth0 doesn't get active at boot time with the configuration above, though it does after a 'ifdown eth0; ifup eth0', so I just put that in my rc.local. Go figure.


Odds and ends


Network hangs

The following only affects 2.2 kernels.

Note that there is a bug somewhere that makes the netcard freeze the whole system when shutting down eth0. According to Martin Espenschied, this is a known issue, and can be fixed. When I know how, I'll put the information here. Till then, remember to sync your system before shutting down, and you should not miss any information. Remember my disclaimer in the Section called Disclaimer and scope though.

An ugly hack to resolve this might just be to NOT to shut down eth0 at shutdown/reboot. This can be done by editing the file /etc/init.d/network (or similar), and in the stop) case, just comment away the ifdown command, and add a phoney command, like this:

 action "Shutting down interface $i" echo
        does_nothing # ./ifdown $i boot 
Note that this is a rather ugly hack, that won't actually solve the problem, it just hides it. The network won't go properly down until you reboot the machine. I really hope that somebody have a better fix on this later. Thanks to Doc Shipley for this tip.


Compile a kernel

In this chapter we will download the Linux kernel sources, add a few patches, and compile and install our own custom kernel on the harddisk. When we have successfully accomplished this exciting event, we don't have to boot from the installation boot floppy anymore.


What files to download

We'll use the latest 2.4 kernel sources with a few patches, among those the IBM-E15 frame buffer patch from David Monro, which gives us a working frame buffer console able to run XFree86. This may sound complicated, but believe me, it's not. Follow the steps below here, and we'll get you up in an hour or so.

We're going to use the standard place for linux kernels, that is /usr/src/ . When downloading the kernel source and patches, place all files in /usr/src .

First we must get the working 2.4 source. To get this, we'll use the rsync tool, so check that you have it installed. Some nice people have set up an rsync server of the BitKeeper Linux/PPC development tree at source.mvista.com. Thanks so very much to them, remember them in your heart and prayers.

Note: You may use the standard Linux kernel source from any ftp.kernel.org mirror. A modern kernel like 2.4.21 should work allright. I've found the devel tree more well functioning on the 7248, so I stick with it.

Warning: Don't do this over a low-end link, like a modem. It'll take forever. So, let's rock and roll. Issue these commands:

cd /usr/src
mv linux linux.old
mkdir linux-2.4
ln -s linux-2.4 linux
cd linux
rsync -avz --delete source.mvista.com::linuxppc_2_4_devel .
chown -R root.root .
chmod -R u+w .
Note that you'll probably have to wait for some minutes to rsync over all the sources. This is normal.

Then, get David Monro's IBM E15 frame buffer patch from Leigh Brown's site page at http://www.solinno.co.uk/7043-140/files/2.4.19-2/


Configuring the kernel

The details of configuring the kernel are way outside the scope of this document. To get more help, try The Kernel HOWTO. Here, we'll just cover the basics to get a working kernel. Download my kernel config file into the top directory of the kernel tree , /usr/src/linux .

In the top directory (/usr/src/linux) start the configuration program by issuing the following commands:

make ibmchrp_config
cp ingvar.config-2.4 .config
make menuconfig
Inside the kernel configuration system, we check over the different menus to get to know our possibilities. Don't be afraid to change anything. We can copy the original back, and load the configuration system again. There are a few things to check out before we go on compiling and installing:


Set up X

In this chapter we will set up X, if it does not work properly already.

To set up X, check that you have installed the following packages:

Note that these package names are for rpm-based systems. For Debian, do an
apt-get install xserver-xfree86 xfonts-100dpi xfonts-base xbase-clients xdm 
to get the most important files.

Download my XF86Config-4.3, and copy it to /etc/X11/XF86Config. You can now start X with the command startx. On Debian you may start a graphical login screen with

/etc/init.d/xdm start
On YellowDog, SuSE and Mandrake, just hop to runlevel 5, and it will start a display manager for you.
/sbin/init 5


Resources

In this chapter there is a list of resources which include enough reading to make us experts in the field in record-time.


Other resources on Linux/PPC and 43P boxes


Installing other operating systems on the 7248


Todo

There are some things that might be added to this document. If you have comments, things to add or want to help, please send an e-mail to


Frequently Asked Questions

In this final chapter I've included som frequently asked questions. This list should probably be much longer. Please let me know if you have something to add.


I can't get my hardware to work

How can I get my new ultra whizbang XYZ card to work?

The 7248 is a PC-like box with ISA and PCI interfaces, so one should think that using "normal" PC hardware made for the x86 platform should work flawlessly. Sadly to say, it doesn't always do. The drivers often have to be ported, and there are not that many Carolina motherboard kernel hackers out there. In addition, much hardware made for the x86 platforms uses BIOS calls to work properly. As the 7248 and its relatives does not have such a BIOS, it's extremely difficult to get this hardware to run under Linux.

That said, there are working hardware for this box that runs with Linux. For questions about this, please contact the Workstation list, see the Section called Resources.

Update: With the latest versions of the Linux 2.4 bk development tree (NOT the official Linux 2.4 sources), many of the problems stated above are fixed, and much more hardware is supported. For example did I put a standard eepro100 card in my box, and it worked flawlessly. This means you can use the 7248 for example as a packet-filtering firewall. I've also heard rumours on plain standard ISA Soundblaster cards working. Try and see if your card works. If it's interesting, send me an email, and I'll put a note here. See the Section called Compile a kernel for notes on building and installing a 2.4 kernel.


The PReP boot partition?

Where should I mount the PReP boot partition?

To be able to understand the answer for this question, it's important that the reader understands how the 7248 boots into Linux. This is a three step procedure. First, the Firmware (which behaves in the same way as a PC BIOS) looks for something to boot. Usually, it should check the floppy drive, the CD drive, and then the first SCSI disk. On the SCSI disk it will look for a special partition called a PReP boot partition. On this partition, it will read the first program it can find there. If this is a Linux kernel bootloader, it will read and run this, and then the bootloader boots Linux. From here, Linux is in charge.

Many have asked where they should mount the PReP boot partition (the type 41 partition). This is a common misunderstanding. The PReP boot partition, usually located on /dev/sda1, should NOT be mounted anywhere. The files on this partition, usually only a single Linux kernel with a static linked kernel bootloader, are only used by the firmware when booting. The operating system does not use these files after the kernel has booted, so there is no need for mounting that partition.

Some people mix the meaning of the /boot directory and the PReP boot partition. Both use to contain kernels, but their use are different. /boot is used for storing kernels for later use, and for bookholding system info. The /boot directory is NOT read by the Firmware at boot time, so changing the contents of this directory does not change the way the Firmware loads Linux.

To be able to load a new kernel, you have to replace the existing kernel on the PReP partition. This is done with the dd command, see the Section called Compile a kernel for details.


Appendix: Updating from YellowDog 2.3 (Dayton) to 3.0 (Sirius)

Here's how to update Yellow Dog Linux from 2.3 (Dayton) to 3.0 (Sirius). This assumes being done just after finishing the base install (ie: very few packages installed)

If we are running X (the following is based on the "base" install, so we probably aren't), switch to text mode (/sbin/init 3). We assume we have some network access, the fatter the better. We are going to download some packages manually, so check that you're able to do that. Some console-based download tool like ncftp (ftp) or lynx (http) might come handy.

Note for the following: If you get errors from rpm that are not noted here, you can always do an

rm -f /var/lib/rpm/__* ; rpm --rebuilddb
This repairs the rpm database in most cases.

First, ensure that we are running latest versions of all software. This may not be necessary, but whatever.

apt-get update; apt-get dist-upgrade 
Now we change /etc/apt/sources.list to include repositories for 3.0 Note that there are only three repositories for 3.0: base, main, update. Fire up your favourite editor (at least vi should be installed) and update the file. A working sources.list may look like like this:
rpm ftp://ftp.uninett.no/linux/yellowdog/apt 3.0 base main update
rpm-src ftp://ftp.uninett.no/linux/yellowdog/apt 3.0 base main update
Now let's update the package list and check how far-fetched a complete dist-upgrade is:
apt-get update
apt-get -s dist-upgrade  
Woha! Lots of errors there. Let's resolve the worst of them. Start with removing lots of packages. Note that after this, we can't read man pages.
rpm -e kudzu kernel-pcmcia-cs rpm-python yup yi pspell aspell groff man
What's status now?
apt-get -s dist-upgrade again
Still errors, and quite unresolvable. We have to take some more low-level action. The really pain is to get a new version of rpm installed, so let's start with that. Manually download the following packages:
  glibc-2.3.1-51a.ppc.rpm 
  glibc-common-2.3.1-51a.ppc.rpm 
  libelf-0.8.2-2.ppc.rpm 
  popt-1.7-9d.ppc.rpm
  rpm-4.1-9d.ppc.rpm 
  librpm404-4.0.4-8x.27.ppc.rpm
  apt-0.5.5cnc4.1-1b.ppc.rpm
  libgcc-3.2.2-2a.ppc.rpm
  libstdc++-3.2.2-2a.ppc.rpm
  expat-1.95.4-1.ppc.rpm
  fontconfig-2.1-3.ppc.rpm
  freetype-2.1.3-4.ppc.rpm
  XFree86-libs-4.3.0-2.1c.ppc.rpm 
  XFree86-libs-data-4.3.0-2.1c.ppc.rpm
  XFree86-Mesa-libGL-4.3.0-2.1c.ppc.rpm
We don't have use for apt for a while, so let's just remove it:
rpm -e apt
So far, so good. Now, let's upgrade glibc and rpm. This is the most critical part. If we succeed in this, the rest is simple. If we get this wrong, a reinstall may be the only solution. rpm has some dependencies, so we have to include them now.
rpm -Uvh glibc-common-2.3.1-51a.ppc.rpm \ 
         glibc-2.3.1-51a.ppc.rpm        \
         libelf-0.8.2-2.ppc.rpm         \
         popt-1.7-9d.ppc.rpm            \
         rpm-4.1-9d.ppc.rpm             \
         librpm404-4.0.4-8x.27.ppc.rpm 
If your setup is like mine, we're stuck with the following unresolvable error:
rpmlib(PartialHardlinkSets) <= 4.0.4-1 is needed by glibc-common-2.3.1-51a
This seems to be a problem overseen by the packagers of YellowDog (and to be honest, I think they inherited this error from RedHat), so we just ignore it, use some force, and hope this won't bite us later.
rpm -Uvh --nodeps --force glibc-2.3.1-51a.ppc.rpm                \
                          glibc-common-2.3.1-51a.ppc.rpm         \
                          libelf-0.8.2-2.ppc.rpm                 \
                          popt-1.7-9d.ppc.rpm                    \
                          rpm-4.1-9d.ppc.rpm                     \
                          librpm404-4.0.4-8x.27.ppc.rpm 
Uh-oh. Ugly errors from rpm. Let's check if the rpm database still works.
rpm -qa
Well, looks like we've really done it. Now what? Sorry to say, but I've tricked you into ruining your computer installation. Get out and get a life instead of looking on these old dust-collectors. Just kidding. Luckily, rpm is able to rebuild it's databases, so we just remove the old one and build a new.
rm -f /var/lib/rpm/__*
rpm --rebuilddb
Now the database should work again, right?
rpm -qa
If this works, we collect 250 bonus points and two silver stars, and can continue our quest for 3.0. Find the dagger and throw it at the dragon.

If we don't have any special parameters for nsswitch and gconv-modules, we'll use the new ones (if existing):

mv -f /etc/nsswitch.conf.rpmnew /etc/nsswitch.conf
mv -f /usr/lib/gconv/gconv-modules.rpmnew /usr/lib/gconv/gconv-modules
Now let's reinstall apt. Is also have a lot of dependencies that have to be fixed:
rpm -Uvh apt-0.5.5cnc4.1-1b.ppc.rpm            \
         expat-1.95.4-1.ppc.rpm                \
         freetype-2.1.3-4.ppc.rpm              \
         fontconfig-2.1-3.ppc.rpm              \
         libgcc-3.2.2-2a.ppc.rpm               \
         libstdc++-3.2.2-2a.ppc.rpm            \
         XFree86-libs-4.3.0-2.1c.ppc.rpm       \
         XFree86-libs-data-4.3.0-2.1c.ppc.rpm  \
         XFree86-Mesa-libGL-4.3.0-2.1c.ppc.rpm \
I've sometimes got rpm to hang at this place. It's a known bug in rpm and can hit you anytime. If you experience this, get another terminal (Alt+F2 if you're on the main console) , kill rpm, and remove and rebuild the database. Then do the wanted rpm command again.
killall -9 rpm
rm -f /var/lib/rpm/__*
rpm --rebuilddb
Now; the installation of apt may have changed our sources.list, so check it out, and copy back the original if you want to.
mv /etc/apt/sources.list /etc/apt/sources.list.3.0.orig
mv -f /etc/apt/sources.list.rpmsave /etc/apt/sources.list
We should now probably resync the local apt database and check the status
apt-get update && apt-get -s dist-upgrade
Still some unresolved dependencies, but we're getting there. With apt installed, the rest is like chewing boiled fish. Nothing to care about. Ouch! a bone.
apt-get install pam
Drags in the following packages: chkconfig cyrus-sasl cyrus-sasl-gssapi cyrus-sasl-md5 cyrus-sasl-plain db4 hesiod openldap openssh openssh-clients openssh-server openssl perl perl-Filter python sendmail

Unless you have done some special pam configuration, use the new values for system authetication. Then go on updating.

mv -f /etc/pam.d/system-auth.rpmnew /etc/pam.d/system-auth

apt-get install passwd
Drags in the following packages: glib2 libuser
apt-get install kbd
Drags in the following packages: initscripts util-linux
apt-get install compat-db compat-pwdb
Drags in the following packages: compat-libstdc++
apt-get -s dist-upgrade
If no errors, we're with all the difficult parts. Good! Now the final hurdle: A full dist-upgrade. Do an
apt-get -y dist-upgrade
and enjoy getting to the end of this quest. You get all the points. Just kiss the frog and you'll get the princess too. You may want to reboot, just to check that everything comes up like you wish.

You may want to reinstall some packages again. For example "man" may become handy.

apt-get install kudzu rpm-python pspell aspell groff man 
That's all there is to it. It wasn't that difficult, was it?


Appendix: Using cfdisk to partition your harddisk


Using cfdisk


Appendix: More on partitioning

After several questions on what partitioning really is, I'll just quote an answer I gave in a mail once.

Okay, here goes:

In an operating system you need several different filesystems for several different applications. For example, you need a swap filesystem because your main memory can't hold all information the operating system needs, so some of it has to be temporary written to disk. You may also need some special filesystem from which the machine reads the operating system when you switch it on. Finally, you need of course one or more filesystems to store the operating system program files and your user files. It may be a good idea to put these in different places (ie. on different filesystems) in case you have to reinstall the operating system, but don't want to scratch all your work.

The best thing is maybe to have all these filesystems on different disks. But one has seldom more than one or two disks in a computer. So what we do is to slice up the disk(s) in several slices (partitions) and use the slices for several filesystems. Then the operating system mounts the filesystems together to one single file tree, so it is easy to access the files.

(Other operating systems, like MS-DOS and NT use some other technology: They do not bind the slices together to one file tree, but keeps them separate as "stations". What is the best scheme? You figure!)

Here a thought example with one 2GB disk on a 7248: The mount point shows where in the file tree a filesystem is mounted.

    Partition   Size   Type             Mountpoint          Bootable
    ----------------------------------------------------------------
    /dev/sda1     10MB  41 (PReP Boot)     (Not mounted)    yes
    /dev/sda2    150MB  82 (Linux Swap)    (Not mounted)     -
    /dev/sda3   1840MB  83 (Linux ext2)  / (Root partition)  -
    
This would give a bootprompt command like this:
    root=/dev/sda3
    

If you want, you could add own partitions for important directories like /home, /boot, /var, /usr/local and so on. Here is an other example with two disks, actually my own configuration with two disks:

      Partition   Size   Type             Mountpoint          Bootable
      ----------------------------------------------------------------
      /dev/sda1     20MB  43 (PReP Boot)     (Not mounted)    yes
      /dev/sda2    133MB  82 (Linux Swap)    (Not mounted)     -
      /dev/sda5    930MB  83 (Linux ext2)  / (Root partition)  -
      /dev/sdb1    315MB  83 (Linux ext2)  /home               -
      /dev/sdb2    770MB  83 (Linux ext2)  /usr/local          -
      
This would give a bootprompt command like this:
      root=/dev/sda5
      
Before you ask:

  • ext2 is Linux' standard filesystem

  • GNU/Linux often uses the old partition scheme from MS-DOS. This means that if there are more than 4 partitions on one disk, one uses an extended partition (sda4) that may hold several logical partitions (sda5, sda6, sda7, ...)

  • Yes, my partition scheme is a bad one. My root partition was filled up in a couple of weeks or so. Don't use it. It is an example only.

Hope this clears up some things.


Appendix: Make SMS and firmware floppies from Linux

This appendix will show how to make SMS and firmware floppies from Linux or another UNIX-like operating system


How?

To do this, you need the mtools package and the unzip program. Any reasonable Linux distribution should include these tools. I also use wget for downloading.

You will have to download the last version of SMS and firmware from IBM. If you want more information on the files, look here.

You also have to get a password to access the files. To obtain this, you have to agree to this EULA.

The downloaded file is nothing but a ZIP-archive in disguise. Download it to a suitable directory, and unzip ip like this:

mkdir ibmdownload; cd ibmdownload
wget http://techsupport.services.ibm.com/server/mdownload2/7248100.exe
unzip 7248100.exe
        
You will have to enter the mentioned password when prompted.

In the contents of the archive, there's among the files another ZIP archive, containg the SMS software. Put the contents of this into a subdirectory like this:

mkdir sms; cd sms
unzip ../sms107.exe
Now label a floppy disk "SMS", and put it into your floppy drive. Then format the floppy and copy the SMS files to it like this:
mformat a:
mcopy *.* a:
cd ..
Remove the floppy, insert another labeled "Firmware", and continue with the firmware files:
mformat a:
mcopy *.6xe a:
mcopy p93h4940.im* a:
cd ..
Woho! You're done. Now that wasn't difficult, was it?


INDEX


K

kernel, Compile a kernel
kernel version
kernel patches, What files to download

M

Mandrake CD installation, CD installation
mandrake installer, The Mandrake installer
Mandrake installer notes, Installer notes
Mandrake network installation, Network installation

T

todo, Todo
translations, Translations