smarkusg wrote:@sailor Great that you managed to get everything working
After your post I got a bit interested in Linux on sam460. The topic is more related to QEMU. I've actually made myself a kernel with some patches and ran some things on virtio (gpu,fb,net,blk-pci...). I hope that after a few system updates I will be able to run everything in ‘X’
very nice idea, thanks! I am looking forward for some news or tips
AmigaOS3: Amiga 1200 AmigaOS4: Micro A1-C, AmigaOne XE, Pegasos II, Sam440ep, Sam440ep-flex, AmigaOne X1000 MorphOS: Efika 5200b, Pegasos I, Pegasos II, Powerbook, Mac Mini, iMac, Powermac Quad
I managed to install Debian on sam460 under Qemu up to the sid version (actually Trixie) - Rolling release. On a real hardware should also work. Maybe someone will find it useful.
The best method is to install Debian Jessie with the minimum number of packages - just the base. After the installation you can encrypt Debian to Buster using snapshot.debian.org and the debian-ports archive. You need to aim for the day after the release of Buster where the stable packages land into the development version. Buster was released on 6 July 2019 so the date 7 July 2019 would be correct.
Now the important bit !!! - if you already have Bullseye and want to further upgrade your system, it is mandatory to install the ‘usrmerge’ package before proceeding. Quote:
Upgrade the system If all goes well, we have installed the latest development version of Debian ppc on Sam460 - see Sam460 in 2024 Now we can install any other packages we need, such as a desktop environment. Clean up /etc/apt/sources.list of unnecessary package sources. I don't have a real Sam460 and Radeon - whether everything works will have to be checked by someone who has that hardware and is interested in the subject.
When installing, you can add debian-keyring or manually ‘key’ - but this should not be necessary.
Kernel compilation topic. It would be useful to update it from version 3.9 as it is to 5.4 or 5.10. You could also update to the latest. Even sma systemd will work better. The kernel and patch configuration itself is in the package that Spectre660 made. The compiler if someone doesn't want to install from cross binary packages. https://github.com/narke/gcc-cross-compiler
Standard make ARCH=powerpc CROSS_COMPILE=ppc-linux-gnu- menuconfig make ARCH=powerpc CROSS_COMPILE=ppc-linux-gnu- uImage make ARCH=powerpc CROSS_COMPILE=ppc-linux-gnu- INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=/tmp/ppc modules_instal make ARCH=powerpc CROSS_COMPILE=ppc-linux-gnu- canyonlands.dtb
The uImage and canyonlands.dtb core is in ./arch/powerpc/boot/uImage The modules are placed in /tmp/ppc
The kernel must be reasonably small - it is best to use -Os for selection and set anything unnecessary as kernel modules. If the kernel is small, you can use -O2, but note that the size of the kernel itself cannot be smaller than 8MB.
There is another issue regarding QEMU on PPC/LE and virtio-gpu-gl-pci. VIRTIO_GPU_FEATURE_VIRGL is disabled in Linux kernels and for LE systems. https://www.uwsg.indiana.edu/hypermail ... /kernel/1509.2/04780.html This state has been in place for 9 years are current kernel releases.
For those interested - enjoy
Edited by smarkusg on 2024/11/22 22:52:43 Edited by smarkusg on 2024/11/22 22:55:20 Edited by smarkusg on 2024/11/22 23:11:30 Edited by smarkusg on 2024/11/22 23:13:01 Edited by smarkusg on 2024/11/22 23:15:33 Edited by smarkusg on 2024/11/22 23:38:55 Edited by smarkusg on 2024/11/23 9:46:16
About GFX cards, you use SM502 AFAIK, main problem is that post SAM460ex they don't have such gfx card embbedded.
Does kernel have some "old" Radeon HD4000 or HD5000 or HD6000 (or maybe X1900) driver that can be used with VirtIOGPU (or whatever is called)?
My "big" issue on real HW was that my PCIe plugged gfx wasn't used/detected, thus had to use embbedded SM502 gfx. And don't have physical space on my desk for a 2nd monitor (and the one I have has already VGA with ESXi-VM).
IIRC Specter660 tried everything when building SAM460 kernels, but it always stopped on "radeon ring buffer" thing ¿:-/
Anyway, Keep the good work mate!!!
EDIT1: just re-read thread and found #14 some HDxxxx gfx cards do work. I have /use RX550 so maybe some day I can try to change to my "old" HD6750 (or r7-250) and try, but...buf to lazy now.
@smarkusg is there a way that you can create a (minimal) bootable image of your SAM460's linux system so we can try it from an USB? (yep I'm that kind of lazy guy)
Edited by jabirulo on 2024/11/23 12:00:24 Edited by jabirulo on 2024/11/23 12:01:21
Oh! It is absolutely excellent! I must try it! At least upgrade where Spectre660's last kernel ( 4.9.38 ) is modern enough.
I am afraid, that to compile newer kernel I can't handle. Maybe with instructions for blondes only. Some years ago I tried it for Pegasos 2, and no success.
But newer version of Samba, for example is definitely great. Thanks!
AmigaOS3: Amiga 1200 AmigaOS4: Micro A1-C, AmigaOne XE, Pegasos II, Sam440ep, Sam440ep-flex, AmigaOne X1000 MorphOS: Efika 5200b, Pegasos I, Pegasos II, Powerbook, Mac Mini, iMac, Powermac Quad
VirtIOGPU is only useful for emulation. It is only used because Linux allows it. It has nothing to do with real hardware. I think there was a recent update to uboot under sam460 that allowed Radeon RX cards to initiate graphics mode on startup.
OT: Many thanks to ACube for making the change available according to the license and links to the uboot source code.
If this happens it should be possible to use fbdev with Linux. I am guessing because I have no way of checking this. Quote:
@smarkusg is there a way that you can create a (minimal) bootable image of your SAM460's linux system so we can try it from an USB? (yep I'm that kind of lazy guy)
You got a bit further than I did. I tried to install on friends Sam440. But I kept getting stuck on finding a repo since all the installers are net only. I didn't understand why apart from taking more server space as the internet goes out of date quickly. I spent 2 hours looking for a working PPC repo before giving up. All just ended up in error.
At one point I ended up converting to CD image to USB. Forget why apart from slower CD speed and faster USB speed. But it kept going faulty over USB for some reason.
It is strange only one install menu showed up. I used a modified Parthenope for the A1 Linux installer and I don't recall any missing menu issue. The earlier Sam installers must have given a working system. It installed Parthenope with a menu so that part worked. But the kernel crashed and that only used to happen when a different kernel was booted. I don't see any other OS4 volumes on there.
Not being able to boot from SLB is strange as Geri's kernels for the A1 are large and around 13MB. SLB is used to boot kernel after Debian is installed. Never seen a problem booting a large kernel.
So the dtb is a device tree blob which is really an OpenFirmware object. Whatever firmware is used to boot Linux, it needs this blob to describe the hardware. On UBoot this doesn't exist so it is passed in an extra file. The UBoot on Sam is more modern and accepts multi image kernels as well as DTB to boot.
I'm surprised the kernels wouldn't boot. Because one kernel there is only a 5MB image. Geri's A1 kernels were about 13MB in size. The A1 kernels are older format so were not compressed which is likely why but did combine raw kernel with compressed ramdisk inside a raw UBoot image.
Suppose if they cannot be embedded in a multi packed image then possibly a multi raw image should have worked. The kernels were 3.x which matches the last version for A1 Linux. Above that into 4.x and 5.x may introduce too much bloat.
AFAIR both slb and ub2lb use UBoot for booting. So would send it a diskboot command to load image. Then do a bootm to boot it. They would usually do a load to 500000. I think the issue here is GZ breaking it as it doesn't allow enough space and using absolute addresses was bound to break. Did you even try to create a raw image or was the kernel binary too large?
I wonder if genisoimage or similar can inject data into the reserved system area? Most CD image builders, likely due to using a limited GUI, didn't let you select a file to inject in there I could see. I modified some Amiga program that overwrote the system area of a CD image with a file to get the job done once.
A number of of years ago I wrote a small boot code stub I called UBL. Universal Boot Loader. It was to allow USB/ISO CD hybrid images to be created. You could write the image to CD or USB. And it would autoboot off either.
It needed to be in the system area so UBoot would pick it up as an RDB boot block for USB booting. IIRC it didn't need to have an actual RDB. It then scanned the USB disk for the boot block, loaded it and launched it. UBL would then check the disk blocks (from USB) for a CD boot block and chain load it in. That then took over and would boot the rest of the USB as if it was on CD.
I wonder if genisoimage or similar can inject data into the reserved system area? Most CD image builders, likely due to using a limited GUI, didn't let you select a file to inject in there I could see. I modified some Amiga program that overwrote the system area of a CD image with a file to get the job done once.
My AmiDVD tool (Enhancer Software, old versions are available for free on os4depot and AmiNet) supports adding the slb_v2 to ISO 9660 images, setting the required flags, etc., and burning them to CDs and DVDs. I never tested it with AROS/MorphOS/Linux-only 2nd level bootloaders like ub2lb/Parthenope, which can't boot AmigaOS 4.x (at least not from AmigaOS SFS partitions), but since it shouldn't make any difference for U-Boot those should work as well, if you only want to boot AROS, MorphOS and/or Linux with them but not AmigaOS 4.x.
Edited by joerg on 2024/11/28 18:34:02 Edited by joerg on 2024/11/28 18:34:33
My AmiDVD tool (Enhancer Software, old versions are available for free on os4depot and AmiNet) supports adding the slb_v2 to ISO 9660 images, setting the required flags, etc., and burning them to CDs and DVDs.
That's good to know it can modify existing images. I used to do it on the fly when building an A1 OS4 boot image. Are the older AmiDVD restricted to pre-FE? I recall reading about some issue. I have the Enhancer version so not so not so concerned about it.
But for my specific purpose I need to inject data into the system area at the first 32KB of the ISO9660 image. It relies on UBoot method of scanning for boot block which is usually after RDB on HDD but it scans for BOOT blocks within a small space for SLB so my chain loader is found instead on USB which then loads in the real boot code from the El Torino boot block. Since UBoot doesn't directly support booting ISO9660 off CD, this transparently works around it and unlike some ISO/USB Linux installers, my method works without needing FAT DOS BOOT CD image hackers.
Quote:
I never tested it with AROS/MorphOS/Linux-only 2nd level bootloaders like ub2lb/Parthenope, which can't boot AmigaOS 4.x (at least not from AmigaOS SFS partitions), but since it shouldn't make any difference for U-Boot those should work as well, if you only want to boot AROS, MorphOS and/or Linux with them but not AmigaOS 4.x.
That's what the issue was. I recall it had some quirk when a friend installed Linux but needed to boot OS4 Kickstart from FFS when his Workbench was on SFS. Provided SFS format was public SFS support could have been added. Parthenope already knew some secrets about booting OS4. It knew what was in the module nodes.
@Hypex I'm not in a position to help you. I'm not too familiar with these topics.
All@ Regarding QEMU and Sam460. I recompiled the latest UBoot 2015.c with the fixes from Uboot that is included in the QEMU package. The changes in UBoot 2015.c have resulted in a USB working in the QEmu emulation of Sam460 .... Youpi!!! Many thanks to ACube Systems
That's good to know it can modify existing images.
It can't, it only supports adding it to new images, but if you mount an ISO image with something like diskimage.device it's no problem to create a new one from an existing one.
Quote:
Are the older AmiDVD restricted to pre-FE? I recall reading about some issue.
The versions illegally distributed with AmigaOS 4.1 FE (and newer) releases/CDs of AmigaOS 4.1 by Hyperion, despite explicit prohibition to continue including it, are. Not sure about the os4depot and AmiNet versions any more.
Quote:
so my chain loader is found instead on USB which then loads in the real boot code from the El Torino boot block. Since UBoot doesn't directly support booting ISO9660 off CD, this transparently works around it and unlike some ISO/USB Linux installers, my method works without needing FAT DOS BOOT CD image hackers.
It's based on El Torito, but IIRC there were some small differences required for AmigaOS 4.x or U-Boot. IIRC U-Boot itself doesn't support booting any OS at all, except for Linux with TFTP maybe, but can only load and start the SLB, which then boots AmigaOS 4.x or Linux from HD partitions (FAT, ext2fs, FFS/FFS2, SFS/SFS2, etc.) or ISO 9660 (CD/DVD or USB), or with ub2lb/Parthenope instead of SLB_v2 AROS, MorphOS and Linux, but not AmigaOS from SFS partitions. However using FFS, maybe DOS\0-DOS\5 only, not the new FFS2 DOS\6 and DOS\7 formats, for the AmigaOS Kickstart partition should work with ub2lb/Parthenope as well.
Quote:
Provided SFS format was public SFS support could have been added.
The format of SFS 1.84, the last version from John Hendrikx, is public, but that didn't help much. The easiest way to destroy any SFS partition is using the broken Linux implementation of SFS based on his public documentation in r/w mode In my AmigaOS version of SFS I added some improvements which aren't backwards compatible, except to my own implementations of it (AmigaOS 3.x/m68k SFS, AmigaOS 4.x/PPC SFS and the SLB_v2 SFS code), but not to John's <= 1.84 versions and independent implementations of SFS like the AROS, MorphOS and Linux versions.
It can't, it only supports adding it to new images, but if you mount an ISO image with something like diskimage.device it's no problem to create a new one from an existing one.
Oh I see. Indirect modification. I likely mounted images to do that if I had any.
I tried to use AmiDVD to rebuild a Linux install CD since only my OS4 volumes had enough space back then. But it failed to retain the links. AmigaOS wasn't designed for Linux links so the end result was faulty.
Quote:
The versions illegally distributed with AmigaOS 4.1 FE (and newer) releases/CDs of AmigaOS 4.1 by Hyperion, despite explicit prohibition to continue including it, are. Not sure about the os4depot and AmiNet versions any more.
IIRC it was Contrib. Convenient for the user. Easy enough to download from the depot.
It's based on El Torito, but IIRC there were some small differences required for AmigaOS 4.x or U-Boot.
There were and I figured out what they were in the MakeCD days. SLB as the boot block. And some kind of "AMIGA BOOT" ID string needed.
It's too late but I made a mistake when I stated "UBoot doesn't directly support booting ISO9660 off CD". That makes no sense, of course it does. What I meant is that UBoot doesn't directly support booting ISO9660 off USB.
For obvious reasons.
Quote:
IIRC U-Boot itself doesn't support booting any OS at all, except for Linux with TFTP maybe, but can only load and start the SLB, which then boots AmigaOS 4.x or Linux from HD partitions (FAT, ext2fs, FFS/FFS2, SFS/SFS2, etc.) or ISO 9660 (CD/DVD or USB), or with ub2lb/Parthenope instead of SLB_v2 AROS, MorphOS and Linux, but not AmigaOS from SFS partitions. However using FFS, maybe DOS\0-DOS\5 only, not the new FFS2 DOS\6 and DOS\7 formats, for the AmigaOS Kickstart partition should work with ub2lb/Parthenope as well.
That sounds about right. UBoot can scan an RDB or in the least RDB BOOT blocks which are constructed the same way. The simple secret hidden in the boota command.
But I looked and ub2lb does have support for SFS. As well as ISO9660. What I cant find is any reference to FFS which is strange. Perhaps UBoot API supports it.
One thing ub2lb broke was the QEMU Sam config. I knew why. Some hardware quirk or maybe MMU setup meant a NULL pointer was acceptable. The ub2lb code violated the UBoot API by passing a NULL pointer when scanning CD. I checked the docs and accordingly a pointer must be given. I don't know how or why ub2lb has a "legal" bug that works. But it caused me a month of trouble trying to figure out why it kept crashing my A1 at random when I modified it for a Linux boot menu.
Quote:
The format of SFS 1.84, the last version from John Hendrikx, is public, but that didn't help much. The easiest way to destroy any SFS partition is using the broken Linux implementation of SFS based on his public documentation in r/w mode
I didn't recall that. Sounds almost useful. For a boot loader only read support is needed.
When I was designing my X1000 Linux boot editor I wanted a boot volume that was readable by AmigaBoot and writeable by Linux. FFS DOS3 turned out to be that happy place. Writes fast on Linux.
Quote:
In my AmigaOS version of SFS I added some improvements which aren't backwards compatible, except to my own implementations of it (AmigaOS 3.x/m68k SFS, AmigaOS 4.x/PPC SFS and the SLB_v2 SFS code), but not to John's <= 1.84 versions and independent implementations of SFS like the AROS, MorphOS and Linux versions.
Yes, SFS has a bit of a convoluted history on the Amiga or post Amiga, splitting up into different Amiga distros.