Welcome, Guest. Please login or register.
Amiga Kit Amiga Store Hollywood MAL AMIStore App Store A600 Memory

AuthorTopic: Amiga Unix Booting with GVP SCSI-II  (Read 4618 times)

0 Members and 1 Guest are viewing this topic.

Offline mackbw

Amiga Unix Booting with GVP SCSI-II
« on: March 02, 2016, 02:25:36 AM »
I have been putting together an Amiga 2000 AMIX machine. My reason for doing so is it's easier to get a 50 MHz accelerator for the '2000 than it is to find a 50MHz accelerator for the Amiga 3000 - though I'm still keeping AMIX on the  A3000. (The desire for speed is for compiling various applications faster than on the A3000 machine.)

So I have an Amiga 2000, a GVP G-Force Combo Card, and a Ariadne II Network card that I hope will all come together and make for a nice networked Amiga Unix Station.

Using the drivers and software from the Gateway CD, I have managed to install Amix onto a hard disk connected to the G-Force Combo Card; the card providing the SCSI interface. There is set of instructions for this. This involves creating a special set of boot floppies, installing AMIX, booting again off the boot floppy to patch and upgrade the kernel to 2.1c. Then using Workbench and the HDToolbox to apply a "dummy_handler" file to the Rigid Disk Block (RDB). And Lastly, booting off the floppy again into AMIX and building a new kernel with the code for the GVP SCSI II interface.

I have attempted to do all this, but still am not able to boot from the hard disk, and I suspect it has to do with that "dummy_handler" and where to properly add it to the RDB.

Here is my current status and results of some test I have made in an attempt to diagnose the problem.

I can boot into AMIX on the hard disk from the floppy. From working around in AMIX from here, my root directory (partition) seems fine. My presumption is that since programs seem to work just fine, the swap partition is working fine too. (The hard disk is SCSI ID 0 per the GVP driver installation instructions.)

If I attempt to boot from hard disk, it looks like the Kickstart and the controller tries to boot, repeatedly hitting the drive, but after half a dozen hits with about two seconds spaced between each hit, the insert disk screen comes up. There does not seem to be any sustained disk reading during these hits. (So it doesn't seem like it's even getting to reading the kernel - so I can't imagine that it has gotten to the point of running the driver to then bomb out)

I have connected a bootable Workbench 2.x drive to the combo card and it booted just fine. Indicates to me that the SCSI controller is working fine and set up for auto booting.

I took the hard disk and hooked it up to the A3000, and it booted into AMIX just fine. So I presume this means that the boot partition is fine and not corrupt.

Even though I'm booting off the floppy, I wanted get the Ariadne Card up and running, so I recompiled the kernel again with the Ariadne code. During the compile, I did see that the GVP SCSI II code was being evaluated. I've written this kernel to a floppy for booting. However, when I attempt to boot from it, it fails to mount the root directory. Maybe there's still a problem with the kernel? But I did boot on the A3000? If the A2000 was starting the boot process, as the kernel resides in the boot partition, I would presume the kernel would fail in the same manner as from the floppy.

When I applied the dummy handler to the SCSI hard disk, I did so by adding it to the "file system" of the boot partition. I'm not sure of what other ways there are to add the handler to the RDB. Or maybe it needs to be added to the root directory? Unfortunately, the instructions are not terribly explicit about how to add the file to the RBD other than to use the HDToolbox and not the GVP Tools.

     "Please add the "Dummy-Handler" to the RDB of the harddrive on SCSI-ID 0.
     Use HDToolBox for this. Do NOT touch this harddrive with the partitioning
     tools from GVP as they would wipe the UNIX stuff off the drive!!!"

Hoping someone may have done this before, or has a better idea of how to add the "dummy_handler" to the RDB.



Offline mackbw

Re: Amiga Unix Booting with GVP SCSI-II
« Reply #1 on: March 13, 2016, 05:13:26 PM »
So after posting in another forum, I have managed to solve one of my problems and an able to boot. The solution to that first problem can be found here: How does one add a file to the RDB of a Hard Disk?

So now the system performs a long constant read of the hard disk on boot (the hard disk light is on steady). I presume this is reading the kernel. However, once this completes, I get the following:

s5mountroot VOP_OPEN error 6
WARNING: nfs_mountroot called
PANIC: vfs_mountroot: cannot mount root: errno 89
4.0 2.1c 0800430 Backtrace:
40001F44: 103EEF4… (and a bunch of hexadecimal loveliness).

Previously I had tried to make boot floppies with the modified GVP kernel. Thinking that while I might not be able to boot off of the hard disk, perhaps I could make a boot disk from the drive and then I could do things like add support for my Ariadne network card. Unfortunately, the disk did the same thing. Given I was working with a new, second hard disk (I had started the install process over just in case something else was wrong), I booted with my GVP boot floppy and created a new boot floppy. I tried booting from it to get exactly what I had gotten booting off of the hard disk, including the same hexadecimal values.

So, I wondered, I have a boot floppy that works - can I take that kernel and put it in the boot partition. Looking at how the kernel is made - it goes through an elf2brel process and then compressed and then catted to boot1 and boot2 files and written to the floppy with some padding. Only the elf2brel and compression is different. For a bit I thought about trying to extract the original kernel from the floppy, but that would be a rather involved task - after further thought, it seemed possible that just writing the floppy to the boot partition would work. So I dd'd the floppy to a file on the hard disk, and then dd'd that to the boot partition.

Shutdown, rebooted, and it worked. It's a little slow because it has to decompress the kernel, but it does boot.

So the new problem seems to be with the kernel itself.

I've extracted the patch files and made sure that the patches have been appropriately applied. One is to kernel.c and the other is to sd.c. They are very simple. An address and some function definitions / calls. Otherwise, the only other file is an object file: gvp_11.o. Of course this is a problem because it's not the source.

I find it weird that of the install package given via the Gateway CD, the GVP boot disk works, but the patch code doesn't. But that doesn't mean it can't happen.

So here are what I see as possibilities:
The address that was added to sd.c of the gvp_11 queue is wrong - or there is something in the gvp_11.o code that isn't working.

Things I can personally do:

1) See if the new GVP-M corporation has a copy of that gvp_11.c file. Though I wouldn't be surprised if they didn't.

2) Decompile the gvp_11.o file and see what the values are in there.

3) Try to recover (separate the boot and kernel files from the boot disk image and uncompress the kernel) and look at the differences between it and the kernel that my system makes. In theory, given there are no other extra drivers in the kernel and the kernels are the same level, the only differences I should see are the necessary ones. And perhaps I can use this to back engineer the gvp_11.o file, and make changes on the binary level.

So unless anyone else has any ideas, or the gvp_11.c file. I'm stuck booting with a very basic kernel.


Offline mackbw

Re: Amiga Unix Booting with GVP SCSI-II
« Reply #2 on: March 25, 2016, 03:38:57 PM »
So I now have an A2000 with a GVP Combo card working. Aside from finding that I was being an idiot, here is what I found:

The patch works perfectly fine, the problem was my system date at the time I applied the patch. Because Amiga Unix does not like post 2000 clock dates without first replacing the setclock binary, Amiga Unix starts up with a 1977 date. I ignored this when I applied the patch. The patch changed the kernel.c file and the sd.c file and added a gvp_11.o file.  While make always seems to make the kernel.c file, it was not making the sd.c file. I noticed this when I made some changed to sd.c to try to debug what was going on. When I went to rebuild, I saw that gcc never ran on sd.c. So I made the directory clean, and things worked. On a subsequent installation, I just changed the date to a late 90s date, and sd.c was rebuilt.

So that's it - just a bad date.



::reply is also on the English Amiga Board in reply to a message I posted there::

Offline nicholas

Re: Amiga Unix Booting with GVP SCSI-II
« Reply #3 on: March 25, 2016, 05:04:06 PM »
Has anyone ever patched it to run on an 060 successfully?
“Een rezhim-i eshghalgar-i Quds bayad az sahneh-i ruzgar mahv shaved.” - Imam Ayatollah Sayyed  Ruhollah Khomeini

Offline mackbw

Re: Amiga Unix Booting with GVP SCSI-II
« Reply #4 on: March 26, 2016, 02:26:49 AM »
Quote from: nicholas;806353
Has anyone ever patched it to run on an 060 successfully?

Not that I'm aware of. Not completely out of the realm of possibility, but from what I understand, highly unlikely. Unfortunately Amiga Unix was only ever compiled for the 68020/68030 and their respective MMUs. The conventional wisdom seems to be that the 68040 and 68060 MMU is quite a bit different, which is why Amix doesn't work on those CPUs.

The other part of the problem is that Amiga Unix was a build of AT&T System V Release 4. As such, it is / was closed source. There are web sites out there with the SVr4 source, but determining the appropriate build to make a new Amiga Unix from those sources would be quite involved.

What I'm hoping for is an Apollo CPU implementation of the 030 MMU. Such an implementation could contain all the optimizations of a 040 or an 060 processor, but still have a 030 MMU for compatibility. Couple that with running at an even higher clock rate than would be available with a normal 030 or an 060 (as I believe the Apollo core on the Vampire 2 runs a bit faster) - one would realize something that looks like a 68030 running at better that 100MHz - it would make for a decent true Unix Machine.

Offline Noth

Re: Amiga Unix Booting with GVP SCSI-II
« Reply #5 on: April 26, 2016, 07:35:52 PM »
So does it run any faster with a 50MHz 030 in an A2000 ? Are file transfers better on the GVP card ? What about the Ariadne II does it work (I imagine you had to patch the Ariadne I driver to make it work...).

Offline mackbw

Re: Amiga Unix Booting with GVP SCSI-II
« Reply #6 on: October 22, 2016, 09:47:05 PM »
Sorry for such a long time replying...

Yes, when it come to compiling and disk I/O, it seems quite a bit faster than my A3000.

I wish I had taken some better notes though - one for some qualitative comparisons and two, just for general info.

For starters, with the A3000, I patched the kernel for better hard disk performance... and if I recall correctly, there were two different patches available on failure's Amiga Unix Wiki. I compiled "bonnie" to do some hard disk test to determine if there were any improvements; which there were. However, when I applied the same patch to the A2000 using the GVP disk, it actually was a detriment. So either the author of the GVP driver already had included those improvements or they are part of the controller ROM. I don't know.

As far as overall performance between the A3000 SCSI and the GVP card - the GVP card might have a little bit of an edge, but not much.

And yes, the Ariadne Card was also patched, and it does work.

So now trying to figure out what to do from here.

Offline midway

Re: Amiga Unix Booting with GVP SCSI-II
« Reply #7 on: October 23, 2016, 01:17:25 AM »
I tried contacting gvp m many times, never got an answer. Doubt they are still in business?

Offline QuikSanz

Re: Amiga Unix Booting with GVP SCSI-II
« Reply #8 on: October 23, 2016, 01:26:59 AM »
Quote from: midway;815609
I tried contacting gvp m many times, never got an answer. Doubt they are still in business?

Long gone bud. My 030/40 won't support X-Surf, Wish my Tek 2060 still worked.