Update to MkLinux DR3 Alpha-1 (Jan. 21, '98)

  1. Requirements
  2. Before following the procedure below, you should first update your system at least up to DR2.1update4 + shared lib support. Notice also that if you have already updated your system to wip971126 or later, you do not have to worry about the new device naming scheme and corresponding modifications of /etc/fstab. See README(wip980113) and (wip971126).

  3. Backup
  4. In MacOS
    backup "Mach Kernel" in "Extensions" folder with an appropriate name:
    "Mach Kernel wip971117"
    in my case.

    Reboot and enter MkLinux.

    $ su
    # cp /mach_servers/vmlinux /mach_servers/vmlinux.DR2.1update6
    # cp /mach_servers/default_pager /mach_servers/default_pager.DR2.1update6
    Again use appropriate names for the backup files, depending upon which versions you have been using.

  5. FTP
  6. # mkdir /usr/src/wip980113
    # cd /usr/src/wip980113
    # ftp ftp.mklinux.apple.com
    ....
    Name (....): anonymous
    ....
    Password: <my e-mail address>
    ftp> cd /pub/wip/980113
    ftp> get Mach_Kernel.gz
    ftp> get vmlinux.gz
    ftp> get default_pager.gz
    ftp> bye

    FTPed files are also available from here .

  7. Decompression
  8. # gunzip Mach_Kernel.gz vmlinux.gz default_pager.gz

  9. Copy "Mach Kernel" to MacOS Desktop
  10. Copy the Mach Kernel" to the MacOS disk (in my case, it's SCSI ID = 6 (/dev/sdg), and partition 6) by doing
    # hmount /dev/sdg6
    # hcopy -r /usr/src/wip980113/Mach_Kernel ":Mach Kernel"

    Notice that the underscore between the "Mach" and the "Kernel" must be replaced by a blank when copied to MacOS.

  11. Replace vmlinux
  12. # cd /usr/src/wip980113
    # chmod a+x vmlinux default_pager
    # cp vmlinux default_pager /mach_servers/.

  13. Edit /etc/fstab
  14. My SCSI device configuration had been:

    Old (Wip971117)
    Device Name Bus ID SCSI ID Device
    sda 0 0 Built-in HD: MacOS
    scd0 1 3 Built-in CD-ROM
    sde 1 4 External HD: MkLinux Data Disk
    sdf 1 5 External MO:
    sdg 1 6 External HD: MkLinux Root Disk

    I decided to rearrange SCSI ID's because, as of wip971026, MkLinux's device numbering scheme changed in such a way that, when you disconnect a SCSI device, all the other SCSI devices that have SCSI ID's larger than that of the disconnected will change (see README coming with wip971126). Considering this the root disk has to have a smaller SCSI ID than any removable ones.

    In my case I modified /etc/fstab as follows:

    # cd /etc
    # cp -p fstab fstab.d980121
    # vi fstab
    /dev/sdb3       /       ext2    rw      1       1
    /dev/sdb4       none    swap    defaults        0       0
    /dev/sdb5       /usr    ext2    rw      2       2
    /dev/sdc3       /mnt/dsk1/      ext2    rw      1       1
    /dev/sdc5       /mnt/dsk1/usr   ext2    rw      2       2
    /proc   	/proc   proc    defaults        0       0
    	
    shut down the system, and changed the SCSI ID's as:

    New (Wip980113)
    Device Name Bus ID SCSI ID Device
    sda 0 0 Built-in HD: MacOS
    scd0 1 3 Built-in CD-ROM
    sdb 1 4 External HD: MkLinux Root Disk
    sdc 1 5 External HD: MkLinux Data Disk
    sdd 1 6 External MO:

    Notice that "MO" is now the last device.

  15. Reboot to MacOS
  16. Replace "Mach Kernel" in the "Extensions" folder by the new one.

    Caution: You have to use the Booter coming with DR2.1update5 or later to boot MkLinux with this new kernel

    Invoke MkLinux Control Panel and select "custom" and modify "lilo.conf" as

    rootdev=/dev/sdb3
    in my case.

  17. Reboot to MkLinux and Check Versions
  18. $ cat /proc/version
    Linux version 2.0.33-osfmach3 (trini@sins.of.the.flesh.net) (gcc version 2.7.2.1-ppclinux) #1 Tue Jan 13 18:20:56 PST 1998
    $ cat /proc/osfmach3/version
    Mach 3.0 VERSION(PMK1.1): gilbert ; Tue Jan 13 18:18:35 PST 1998; mach_kernel/PRODUCTION (venus.apple.com)

    OK. I am now DR2.1wip980113. Now update some shared libraries:

    $ su
    # cd /usr/src/redhat/RPMS/ppc
    # ftp ftp.linxppc.org
    ....
    Name (....): anonymous
    ....
    Password: <my e-mail address>
    ftp> cd /linuxppc/redhat/RPMS/ppc
    ftp> get bash-1.14.7-1B.ppc.rpm
    ftp> get cpio-2.4.2-4B.ppc.rpm
    ftp> get rpm-2.4.11-1A.ppc.rpm
    ftp> get rpm-devel-2.4.11-1A.ppc.rpm
    ftp> get binutils-2.8.1.0.18-1E.ppc.rpm
    ftp> get glibc-0.961212-1Y.ppc.rpm
    ftp> get glibc-devel-0.961212-1Y.ppc.rpm
    ftp> get glibc-info-0.961212-1Y.ppc.rpm
    ftp> get glibc-profile-0.961212-1Y.ppc.rpm
    ftp> get glibc-static-0.961212-1Y.ppc.rpm
    ftp> get gcc-2.7.2-2O.ppc.rpm
    ftp> get gcc-c++-2.7.2-2O.ppc.rpm
    ftp> get gcc-objc-2.7.2-2O.ppc.rpm
    ftp> bye

    FTPed files are also available from here .

    Now first, update "rpm" and related packages:

    # rpm -U cpio-2.4.2-4B.ppc.rpm
    # rpm -U bash-1.14.7-1B.ppc.rpm
    # rpm -U rpm-*
    in order to facilitate later shared lib installations. You may have to supply the "--nodeps" option to install some(all?) of these packages: try the above without "--nodeps" first and, if failed, check the existence of the required files and then redo the above with "--nodeps".

    Now that you updated the "rpm" and related commands, you do not need "--nodeps" presumably:

    # rpm -U binutils-2.8.1.0.18-1E.ppc.rpm
    # rpm -U glibc*-1Y.ppc.rpm

    Now you can update your compilers:

    # rpm -U gcc*-2O.ppc.rpm