On my previous notebook which were "ASUS TUF Gaming A17 FA706NF-HX031" and which had AMD Ryzen 5 7535HS with base 3.3 ghz per core and all those nvmes/ddr5 and co, i have exactly 15 seconds after i run this command till fully loaded WB.
Now, i do have another notebook, which have AMD Ryzen 7 8845HS with 3.8ghz as default per single core, and also all that ddr5/nvme/etc, and, the same 15 seconds (i were kind of expect a bit of speed up there).
The boot of modules via bbot happens very fast, it takes just one second, then 5 seconds for black screen, then 5 seconds for amigaos4.1 logo, and few seconds to have ready to use WB. As i need offten to reboot, and 15 seconds almost fits fine, i still need it to be a bit faster, like, 10 seconds. Is there any way to archieve this ? Commenting out unnecessary modules didn't help much :(
Commenting out unnecessary modules didn't help much :(
MODULE Kickstart/bootimage should be optional. If you are using image files (cached by the host disk caches already) for your AmigaOS disks, instead of direct HW access like a passed-through AmigaOS-only nvme, remove/disable any AmigaOS disk caches, in case of SFS comment out diskcache.library.kmod from the kicklayout. Probably wont help much for booting though, maybe 0.5 sec. less, but disabling such useless double disk caching should help for general disk access speed.
I think a boot time of 15 seconds is perfectly fine. On my MacStudio M1, it takes about 20 seconds to boot Pegasos2.
Strangely, it only takes about 13 seconds on the AmigaOneXe machine. Both machines are configured with BBoot and SFS as the file system. (diskcache) is disabled in the kick layout.
Both disk images, Pegasos2/AmigaOneXe, are stored on the fastest SSD.
The only difference is the Qemu build: Pegasos2 with Qemu9.x and AmigaOneXe with Qemu 10.
MacStudio ARM M1 Max Qemu//Pegasos2 AmigaOs4.1 FE / AmigaOne x5000/40 AmigaOs4.1 FE
@derfs Qemu and it's images already on nvme v4 disk, which probably today the fastest, and ddr5 5600 memory as well. Quote:
Other than that, not too much in it besides pure single-core cpu speed.
I can say after my tests on 4-5 different notebooks, that single-core cpu speed seems not make THAT big impact starting from 2ghz single core (at least to some point) on the boot time speed. I do have 15 seconds on 2 different laptops as i say, one of which is older ryzen with 3.3ghz, and another one is more or less modern ryzen with 3.8 ghz , and speed exactly the same. And about same on older, 2.5ghz one.
@joerg Quote:
-device usb-storage,drive=fat32 -drive file=fat:rw:d:\sharing,id=fat32,format=raw,if=none could help. Not using it made huge differences in some QEmu benchmarks. Use NFS, FTP, Samba, etc. instead for file transfers between host and guest.
But we discuss it few time there already : it's the only way to exchange data between qemu and windows :( as network didn't work with any drivers (be ones from os4welt, or latest beta, or previous ones). Just some of them didn't crashes, but still stalls, and slow like hell. So only usb-way, nothing else.
Yes, if i remove this i have 12 seconds of boot instead of 15, but i can't then exchange data which is must :(
Quote:
instead of direct HW access like a passed-through AmigaOS-only nvme
This one probably can't be faster than just os4.img , right ?
Quote:
I think a boot time of 15 seconds is perfectly fine. On my MacStudio M1, it takes about 20 seconds to boot Pegasos2.
If 15 seconds were fine for me, why i create topic then ?:) I need 10 seconds at least because this is time which i didn't noticed when i restart os4 between sessions, while 15 seconds is something i noticed.
And anyway, i feel it can be done, just something need to be altered and tweaked.
If 15 seconds were fine for me, why i create topic then ?:) I need 10 seconds at least because this is time which i didn't noticed when i restart os4 between sessions, while 15 seconds is something i noticed.
And anyway, i feel it can be done, just something need to be altered and tweaked.
ps. i am on qemu 10.0.0 just in case
I'm curious to see how you plan to do that You're late - all this was tested about a year ago. If it can be optimized, you are my hero.
There is another option that I also use, which is to transfer a real hard disk to Qemu. I already reported on this here on Amigans. The boot time here is around 15 seconds.
-drive format=raw,file=/dev/disk7s2
It won't be of much use to you since I set it up on MacOS, but it's possible without any problems. Due to the formatting, this hard drive is not visible on MacOS and is not mounted.
Edited by Maijestro on 2025/8/5 21:20:01
MacStudio ARM M1 Max Qemu//Pegasos2 AmigaOs4.1 FE / AmigaOne x5000/40 AmigaOs4.1 FE
@kas1e I on Qemu-8 Peg2 Mac Mini M1 have 12.4 seconds from usb-storage. I have kmod locked in Kicklayout which I don't need. In addition, enabled nvme.device and plugged in disk image
I continue to use Qemu-8 from the qemu-virgl pod under Mac: https://gist.github.com/akihikodaki/87 ... 9e7ca87f18dc56807ec5a1bc5 and a patch from qemu-3dfx: https://github.com/kjliew/qemu-3dfx and a several other fixes. My version is not âmeasurableâ by reference to publicly available versions. I built this version/combine once and still stick to it under macOS But this is Qemu under macOS - there are some faster sessions and some slower ones. You can try reloading usb-storage with a script via monitor. Then you won't need to restart QEMU to access files via usb-storage.
kas1e wrote: AMD Ryzen 7 8845HS with 3.8ghz as default per single core
That should hit 5.1GHz on a single core, so as long as you have tried with power saving off, there is not much more at this time you can do other than use the amigaone machine as it has *slightly* faster boot times.
In addition, enabled nvme.device and plugged in disk image
Maybe it doesn't make much difference for NGFileSystem, but if you don't have it (the current NGF\1 version is AFAIK only available to X5000 and A1222 users, the old NGF\0 shouldn't be used anymore) and are using FFS or SFS instead nvme.device should be faster than the AmigaOS SATA drivers.
instead of direct HW access like a passed-through AmigaOS-only nvme
This one probably can't be faster than just os4.img , right ?
Not with the same AmigaOS driver. If you are using a SATA or SCSI AmigaOS driver for the image file direct hardware access to a NVME with nvme.device could be faster, but that's not possible on Windows host anyway.
@kas1e Try if compressing the kickstart modules reduces the boot time (less data to be loaded, but more CPU time and RAM required), IIRC gzip and bzip2 were supported on the A1 (U-Boot and/or SLB_v2). It's unusable slow on real hardware because U-Boot is executed with CPU caches disabled, but for emulation that's irrelevant.
Maybe it doesn't make much difference for NGFileSystem, but if you don't have it (the current NGF\1 version is AFAIK only available to X5000 and A1222 users, the old NGF\0 shouldn't be used anymore) and are using FFS or SFS instead nvme.device should be faster than the AmigaOS SATA drivers.
I use JXFS as my system partition. It is much faster than SFS2. I have no way to test NGFileSystem, I have only seen NGFileSystem comparison tests. I asked in a private message on the hyperion forum the driver's author to provide some version for the test but got no answer. SFS2 on nvme.device is slower than SFS2 SATA and FFS under AOS4 but .... JXFS is the fastest. It is possible that it would be super fast on nvme.device.
Maybe not a reliable test because I have small partitions and drives clogged up but when copying a file of about 300MB you can see the difference. I currently have SFS2, JXFS and FFS under QEMU PEG2.
FFS: JXFS: SFS2:
This is a very simple test. To make it more reliable it would require checking the exact BlockSize and Buffers settings.
* JXFS on AOS4FE works but requires some trick without file substitution. JXFS needs to be âlearned to useâ and you can lose data by doing so - that's why I won't specify what you need to do( doesn't require swapping files from older versions of AOS4). ** The ânvme.deviceâ driver is no longer available. The author has prohibited its distribution.
Dont use JXFS - It was discontinued starting with 4.1 Final Edition for a reason. Look on this forum for old posts if you want to learn more.
I used JXFS as a system drive for over a year , as I wrote you have to know what this system can mess up. Once you learn it works well and it repays you with âspeedâ
I use JXFS as my system partition. It is much faster than SFS2.
JXFS is much faster... at least at destroying your data đ There where several reasons why Joerg's eXperimential File System never should have been made available to any end users, but at best only to beta testers..
Try if compressing the kickstart modules reduces the boot time (less data to be loaded, but more CPU time and RAM required), IIRC gzip and bzip2 were supported on the A1 (U-Boot and/or SLB_v2).
I didn't tried that, because loading of modules takes just 1 or maximum 2 seconds.
Takes just 2 seconds max. Maybe 1,5. but no more than 2 seconds. There all fine and fast enough already. All modules loads up to the memory fast enough.
Then, right after this stage after "MISC_TIMING 000000", qemu window resizes, and i have for about 4 seconds there happens visually nothing. Dunno what happens at this stage, and why it slow, but probably lot of emulated code executes..
Then, after this 4 seconds wait, i have immiediately (less than in 1 second) this output together with amigaos4.1 logo showup:
peg2ide.device 53.22 (28.6.2017)
[peg2ide/dev_init] Xfer modes forced in $peg2ide_xfer : FFFF
[peg2ide/dev_init] IRQ modes forced in $peg2ide_irq : 1111
[peg2ide/dev_init] Found chip #0
[peg2ide/init_port] ---> Port 0
[peg2ide/init_port] IOBase 00001000, AltBase 0000100A
[peg2ide/init_port] bmcr_base 00001020
[peg2ide/init_port] MMIOBase 00000000
[peg2ide/init_port] Config not forced, scanning port 0...
[peg2ide/reg_config] assuming device 0 is TYPE_NONE
[peg2ide/reg_config] assuming device 1 is TYPE_NONE
[peg2ide/reg_config] there seems to be a device 0, assuming TYPE_UNKN
[peg2ide/reg_config] there seems to be a device 1, assuming TYPE_UNKN
[peg2ide/reg_config] device 0 is ATA
[peg2ide/reg_config] device 1 is unknown (sc 01 sn 01 cl FF ch FF st 00
[peg2ide/init_port] 1 device(s) on port
[peg2ide/port_list] 0 Master : 'ATA'
[peg2ide/port_list] 1 Slave : 'unknown type'
[peg2ide/init_port] Starting 'peg2ide.device - chip 0 port 0' task
[peg2ide/init_unit] Trying to configure unit 0
000: 0040 1041 0000 0010 7E00 0200 003F 0000
008: 0000 0000 514D 3030 3030 3120 2020 2020
016: 2020 2020 2020 2020 0003 0200 0004 322E
024: 352B 2020 2020 5145 4D55 2048 4152 4444
032: 4953 4B20 2020 2020 2020 2020 2020 2020
040: 2020 2020 2020 2020 2020 2020 2020 8010
048: 0001 0B00 0000 0200 0200 0007 1041 0010
056: 003F FFF0 003F 0110 0000 0040 0007 0007
064: 0003 0078 0078 0078 0078 4000 0000 0000
072: 0000 0000 0000 0000 0000 0000 0000 0000
080: 00F0 0016 4021 7400 4000 4021 3400 4000
088: 203F 0000 0000 0000 0000 6001 0000 0000
096: 0000 0000 0000 0000 0000 0040 0000 0000
104: 0000 0000 6000 0000 0000 0000 0000 0000
112: 0000 0000 0000 0000 0000 0000 0000 0000
120: 0000 0000 0000 0000 0000 0000 0000 0000
128: 0000 0000 0000 0000 0000 0000 0000 0000
136: 0000 0000 0000 0000 0000 0000 0000 0000
144: 0000 0000 0000 0000 0000 0000 0000 0000
152: 0000 0000 0000 0000 0000 0000 0000 0000
160: 0000 0000 0000 0000 0000 0000 0000 0000
168: 0000 0001 0000 0000 0000 0000 0000 0000
176: 0000 0000 0000 0000 0000 0000 0000 0000
184: 0000 0000 0000 0000 0000 0000 0000 0000
192: 0000 0000 0000 0000 0000 0000 0000 0000
200: 0000 0000 0000 0000 0000 0000 0000 0000
208: 0000 0000 0000 0000 0000 0000 0000 0000
216: 0000 0000 0000 0000 0000 0000 0000 0000
224: 0000 0000 0000 0000 0000 0000 0000 0000
232: 0000 0000 0000 0000 0000 0000 0000 0000
240: 0000 0000 0000 0000 0000 0000 0000 0000
248: 0000 0000 0000 0000 0000 0000 0000 0000
[peg2ide/ata_read_drive_properties] Unit 0 : LBA48-capable but LBA28 size
[peg2ide/ata_read_drive_properties] multi_count 16
[peg2ide/ata_read_drive_properties] Adjusting unit 0 to xfer mode 69
[peg2ide/init_unit] Unit configured, flags $0185
[peg2ide/init_unit] Trying to configure unit 1
[peg2ide/ata_read_drive_properties] After-reset signature invalid for unit 1
[peg2ide/init_port] Port 0 task started
[peg2ide/init_port] ---> Port 1
[peg2ide/init_port] IOBase 00001010, AltBase 0000101A
[peg2ide/init_port] bmcr_base 00001028
[peg2ide/init_port] MMIOBase 00000000
[peg2ide/init_port] Config not forced, scanning port 1...
[peg2ide/reg_config] assuming device 0 is TYPE_NONE
[peg2ide/reg_config] assuming device 1 is TYPE_NONE
[peg2ide/reg_config] there is no device 0 (sc 00 sn 00)
[peg2ide/reg_config] there is no device 1 (sc 00 sn 00)
[peg2ide/init_port] 0 device(s) on port
[peg2ide/dev_init] All done
[mediaboot] Diskboot is present. Skip mounting static devices.
So this part fast, and then, after that part, remain 8-9 seconds looses doing this:
[mediaboot] Diskboot is present. Skip mounting static devices.
[USB] WARNING | "MassStorage Device Task" | "Massstorage" | Created usbdisk.device/0
[bootmenu] Detected machine type = Pegasos II
[bootmenu] No preferred BootDevice specified
[bootmenu] Preferred keyboard device is "keyboard.device" unit 0
[bootmenu] PeekQualifier(): LMB is up, MMB is up, RMB is up
[bootmenu] Input handler installed
[bootmenu] Waiting 100 ticks for user input
[bootmenu] No user input detected within wait loop
[bootmenu] Removed input handler
[bootmenu] PeekQualifier(): LMB is up, MMB is up, RMB is up
[bootmenu] Continuing normal boot sequence
[strap] Begin
[strap] Skipping non-boot node 0x6FFA83E2 (type = 111)
[strap] Device node "DH0" is boot point device
[strap] Handover to dos for "DH0"
[DOS] Starting DOS 54.112 -- Kernel debug level is 5
[DOS] Bootnode from expansion->mountlist is device name "DH0"
[DOS] "Initial CLI" process started, doslib creation task now ending.
[RAM] Handler has started successfully. [DebugLevel=5]
Mode 1600x1200x 8@60 75.0kHz out of range
372: HSync Min/Max = 30900/70100, calc = 75000; VSync Min/Max = 59/71, calc = 60
Valid ranges are vsync 59 - 71hz, hsync 30900 - 70100hz
Mode 1600x1200x16@60 75.0kHz out of range
372: HSync Min/Max = 30900/70100, calc = 75000; VSync Min/Max = 59/71, calc = 60
Valid ranges are vsync 59 - 71hz, hsync 30900 - 70100hz
[USB] ERROR | "hid.usbfd" | "DoControlXfer" | Destall failed: io_Error = -32
[USB] ERROR | "HID Keyboard" | "HID Keyboard" | Undefined raw key: usage=0x00070000
[USB] ERROR | "HID Keyboard" | "HID Keyboard" | Undefined raw key: usage=0x00070000
[USB] ERROR | "HID Keyboard" | "HID Keyboard" | Undefined raw key: usage=0x00070000
[USB] ERROR | "HID Keyboard" | "HID Keyboard" | Undefined raw key: usage=0x00070000
[USB] ERROR | "HID Keyboard" | "HID Keyboard" | Undefined raw key: usage=0x00070000
[USB] ERROR | "HID Keyboard" | "HID Keyboard" | Undefined raw key: usage=0x00070000
[DOS ELF_LS] NOTE: No _start() found in file "LhA" installing dummy_start().
And os loaded.
So, the most time is spend at stage when qemu doing something 4 secs till amigaos4 logo show up, and 8 secs when actually loading happens with all those medias and co..
In the last part of your debug log, there are some error messages that occur repeatedly. Perhaps this is the problem. It is possible that the emulation stops here, tries again a few times, and then uses some kind of fallback.
Faulty USB emulation or USB driver problem? If I'm talking nonsense here, just ignore my comment
We could compare it with the AmigaOneXE machine and see if the same problem occurs here with kernel debug level 5. If you are interested in such a log, please let me know.
MacStudio ARM M1 Max Qemu//Pegasos2 AmigaOs4.1 FE / AmigaOne x5000/40 AmigaOs4.1 FE
, but on the Peg2 emulation it may still not be possible to use firmware env variables, or maybe it's with the nvram text file kickstart module from the classic Amiga version of nvram.resource instead. You may need to use something like peg2ide_maxbus and peg2ide_timeout instead, check sg2's driver docs.
Remove/comment out everything in diskboot.config you don't use (SCSI, SATA, etc. drivers).
Other than that you'd need to increase the debuglevel, for example to 7, or if required up to 10, to check in which kickstart modules the delays are.
@joerg Removing bootimage and bootmenu.kmod modules, together with commenting out everything non need it in diskboot.config, result now in 12 seconds boot instead of 15, which is good ! If remove USB stick, then it 10 seconds. But i need those 10 seconds with USB stick :)
Quote:
but on the Peg2 emulation it may still not be possible to use firmware env variables, or maybe it's with the nvram text file kickstart module from the classic Amiga version of nvram.resource instead. You may need to use something like peg2ide_maxbus and peg2ide_timeout instead, check sg2's driver docs.
On peg2 there in kickstart 2 files: nvram.config and nvram_nodma.config, and both with same content:
peg2ide_xfer=FFFF peg2ide_irq=1111
added to both:
peg2ide_maxbus=1 peg2ide_timeout=1
But so far not changes, will dig into docs , maybe params are different.