- Requirements
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).
- Backup
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.
- FTP
- # 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 .
- Decompression
- # gunzip Mach_Kernel.gz vmlinux.gz default_pager.gz
- Copy "Mach Kernel" to MacOS Desktop
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.
- Replace vmlinux
- # cd /usr/src/wip980113
- # chmod a+x vmlinux default_pager
- # cp vmlinux default_pager /mach_servers/.
- Edit /etc/fstab
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.
- Reboot to MacOS
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.
- Reboot to MkLinux and Check Versions
- $ 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