Subject: Re: Problems installing on a PowerBook G3 Series
To: Donald Lee <donlee@icompute.com>
From: Bob Nestor <rnestor@augustmail.com>
List: port-macppc
Date: 12/16/1999 07:01:14
Donald Lee (donlee@icompute.com) wrote:
>>Donald Lee (donlee_ppc@icompute.com) wrote:
>>
>>>>On Mon, Dec 13, 1999 at 04:54:28PM -0500, Paul Emerson wrote:
>>>>>
>>>>> The floppy gets hit for a few seconds (if that) then nothing; system
>>>>> is just hung. I've had a few times where I heard the hard disk whirl
>>>>> and then total power shutdown.
>>>>
>>>> You might want to try a netboot instead. In my limited
>>>>experience, I've never gotten a boot floppy to work on a
>>>>PowerMac. The netbooting has worked fine for me. It's a bit of
>>>>work to set up, but is very well documented, and once it is set
>>>>up, you can always netboot for damage control if Bad Things
>>>>Happen (root partition gets corrupted, etc).
>>>>
>>>> Good luck!
>>>
>>>Can anyone provide pointers to said documentation?
>>>I have questions about both the setup of the TFTP server, and
>>>also about the OFW part (like how do you set up the eth iface w/OFW...)
>>
I'm not sure what documentaiton Paul was referring to, but when I looked
I couldn't find anything that I could make heads or tails of. I do have
a setup that works now though, and I'd be happy to share my files with
you if that will help you. It really isn't difficult once you know what
to do, but getting to the point of understanding what to do can be one
hell of a leap!
Anyway, here is my explaination which is probably a bit inaccurate but
it's a start. If someone would jump in and correct or refine this and get
it in the macppc FAQ it would probably help a lot of othere with the same
problem.
There are a couple of variations on how to do this network booting.
1) Boot a kernel designed to run from local storage
2) Boot a kernel designed to run from NFS storage with DHCP
3) Boot a kernel designed to run from NFS storage with bootparms
4) A combination of the above with operator entered parameters
I've played with all these a bit and here are my observations:
1) This is the easiest. You boot the PPC machine holding down the "N"
key (if you have the new world ROM) and the system comes up in NetBSD.
Otherwise you go into OFP and do a "boot enet" or "boot enet:0" and the
system comes up.
2) This option allows you to boot a kernel over ethernet and have it
obtain information about Root, SWAP, and Usr filesystems from the remote
host via DHCP. This only works if you have both systems runnning on a
ethernet that is not connected to any other system also running DHCP
since your boot host system will have to supply the parameters in
response to a DHCP broadcast. In my case I have only one ethernet that
is used both internally and externally and my ISP supplies my IP adddress
via DHCP, so if I boot this type of kernel the DHCP broadcast goes
unanswered by my ISP. If I try to answer it things get really confused
because there are now two systems responding to DHCP requests.
3) This option is much like #2 above except the system doesn't obtain
it's parameters via DHCP, but instead uses BOOTP. This will work on my
configuration since my ISP ignores BOOTP requests, but most GENERIC
kernels I've seen built don't enable the bootparms option, instead they
enable the bootdhcp option. So this requires a special PPC kernel build.
4) This one is a bit trickier as it involves booting a secondary boot
program that in turn will load the kernel after obtaining the boot
parameters from the user. I've played with a bit but never had a lot of
success with it. Bill Studenmund is working on this and will probably
have something in the 1.4.2 release to support it. I noticed the latest
snapshot kernel has some of this, but unfortunately the kernel won't come
up on my G3.
OK, now that I've given you the background let me give you the files for
#1 above.
In /etc/inetd.conf make sure the tftp is enabled:
tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /tftpboot
In /etc/bootptab make sure you have a valid entry for your PPC Mac:
speedy:\
:bf=netbsd:\
:dn=home.org:\
:ds=192.168.1.16:\
:gw=192.168.1.16:\
:ha=000502f10bd2:\
:hn:\
:ht=ethernet:\
:ip=192.168.1.5:\
# :rp=/ppc:\
:sa=192.168.1.16:\
:sm=255.255.255.0:\
:td=/tftpboot:
Obviously you'll need to change these to match your network setup. Speedy
is the name of my PPC mac and it's on my "home.org" network running on
the 192.168.1.x subnet. Speedy has an ethernet address of
00:05:02:f1:0b:d2 and is assigned an IP address of 192.168.1.5; the DNS
server on this subnet is running on 192.168.1.16.
Create a directory called /tftpboot at the root level of your host. Make
sure it has at a minimum a read-execute access for group and world.
Copy your PPC kernel into the /tftpboot directory with a minimum read
access. This kernel should be expanded, i.e. not gzip'ed. You should be
able to use either an Installation Kernel or an operational kernel. An
Installation Kernel is one found in the .../binary/kernel directory. It
is a stand-alone kernel that will boot up into sysinst and allow you to
perform a system installation over ethernet onto a local filesystem. An
operational kernel is one found in the .../binary/sets/kern.tgz file. It
will allow you to run from the local filesystem that was installed with
the Installation kernel. This is normally the kernel that is installed
on the local system disk by the installation process. Make sure the name
of the kernel file here matches the name given in the /etc/bootptab file.
Having done all that just reboot your PPC machine and, if you have a new
world ROM, hold down the "N" key. The system will eventually come up in
NetBSD or MacOS. If it comes up in MacOS you've had a boot problem.
Check the /var/log/messages file on your remote host to see what tftp
reported. Usually it's some sort of file protrection problem, but if
nothing shows up that gives you a clue then the problem was most likely a
kernel incompatible with your PPC mac. Try a differnent one.
For option #2 above I'm going from memory which is known to be a bit
faulty. Basically you'll have to create a DHCP conf file in
/etc/dhcp.conf that maps your PPC Mac, and you uncomment the line (:rp:)
in /etc/bootptab that points to this filesystem. The kernel you boot will
hae to have the BOOT_DHCP option enabled. Once it comes into memory it
will query for it's operational parameters using DHCP.
For option #3 above it's very similar. You make sure your kernel has the
BOOT_BOOTPARAMS option enabled; you make sure your remote host has a
populated PPC filesystem and you create an /etc/bootparams file that
contains:
speedy root=pluto:/ppc
Where speedy is my PPC mac, pluto is my NetBSD remote host and /ppc is my
PPC filesystem on the remote host.
Option #4 requires some special files that are being worked on.
For more information on running from a remote filesystem see "man
diskless".
Hope this helps, and good luck!
-bob