wvblk32.sys 0.0.1.8 (SHA-1: 140da786b9f132ba8711e97e8453837c7fb2b542)
firadisk.sys 0.0.1.30 (SHA-1: f250ed1bd29fa639196599cd6ed41768db9dcd6f)
Hi. Apoligies, but this post is a bit backwards. I typed it out as I was experimenting, and came to a workable solution right at the end, but figured the experimentation might come in useful for people having trouble in the future, so put the end at the top and left the rest down below, should people be interested, if that makes sense.
Right, the summary is that I want to use WinVBlock's AoE support (because it seems to be the best), but use FiraDisk for file-mapped emulated optical support during boot (mainly because I've tested FiraDisk much, much more than WinVBlock).
Now, I know it's not advised to mix the two due to the overlap, but I can disable Firadisk by supplying a null config (via a small mem disk) from GRUB4DOS, but I can't seem to disable WinVBlock from picking up the emulated discs, the only way seems to be to physically stop the driver from loading in my txtsetup.sif. Basically, I ideally want to be able to have two menu options to use one or the other with the same ISO, so that if one does not work for whatever reason on a particular piece of hardware the other driver can be tried without wastefully having to have multiple ISOs for this one difference.
It seems my problems with WinVBlock stemmed from the ramdisks used to support Firadisk - for whatever reason it's picking them up as drives of some sort it need to handle and it's messing up something (coming up as multiple dud optical drives, maybe?) leading to the ASMS error, whilst removing them all completely enables it all work as expected, but I then don't have the ability to control what functionality I want from the driver (i.e. don't touch drive 0xff as FiraDisk's supposed to be handling that one).
So I can proceed for now by just using WinVBlock (aka. commenting out Firadisk) with no ram config disks, and in the future could maybe have a stab at tweaking the code to be able to exclude specified GRUB discs from the driver handling (or just look at explicitly specified ones), but I read a lot of material that suggested I needed one of those config drives for it to even work, and I even found the bit in the source that seems to handle it!
So I'd appreciate a bit of clarification of what's meant to happen and what I'm getting wrong there, if anyone would be so kind, please.
---- Original post below ----
Hello.
I'm trying to get the AoE functionality of WinVBlock working, but am having a few difficulties. To date I've been using Firadisk to map an emulated optical drive to a multiboot ISO on my USB stick, and that all works fine. However, to get AoE support, I need to use WinVBlock, so I've integrated that into my source.
All subsequent boots from here on in are using iPXE to sanhook an iscsi target until I sort the WinVblock error out, and this is all fine.
Now, text mode completes fine, but GUI mode gives the classic ASMS cannot be found error. The weird thing is, I can access the emulated optical disc fine from the command line as the G:\ drive. Setup just seems to be looking at the wrong path for some reason? i.e. BootPath is \O264\I386 in txtsetup.sif (and according to $winnt$.sif, dospath=g:\) but it's defaulting to g:\i386, it seems. When I give it the correct path for every single prompted file then setup completes just fine.
Initially I was hoping to continue using Firadisk as my disc emulation (as I've tested it so much more) and just use WinVBlock as my AoE driver, but when this didn't work as WinVBlock is picking up the optical drive mapping I started trying to first tell WinVBlock to ignore my mapped ISO by giving it an explicit empty rd config:
map --mem (md)0x0800+2 (98)
map --mem (md)0x1200+2 (99)
<snip>
write (98) #!GRUB4DOS\x00v=1\x00\x00\x00
write (99) [FiraDisk]\nStartOptions=cdrom,vmem=find:/multiboot/ISOS/xp.iso;\n\0
...but that didn't work, it continued to fail, so I tried the other way around, explicitly disabling Firadisk with a config:
map --mem (md)0x0800+2 (98)
map --mem (md)0x1200+2 (99)
<snip>
write (98) #!GRUB4DOS\x00v=1\x00/multiboot/ISOS/xp.iso\x00\xff\x00
write (99) [FiraDisk]\n\n\0
...but that didn't work either. So I progressed to actually disabling the drivers in the ISO by commenting out their respective [SCSI.Load] lines, and as expected Firadisk fails when I explicitly give it an empty config (in text mode with 0x7B and GUI mode) and works when I give it a normal one (which is something, I guess), but even with the Firadisk driver inactive a GUI boot with WinVBlock active still fails with the missing ASMS error (I suspect this is because it doesn't like the small config ram disks).
One thing I have noticed is that $winnt$.sif seems to have a discrepancy in the sourcepath. With Firadisk it's "\device\cdrom0\O264\", with WinVBlock it's "\device\cdrom1\O264\", even when only one driver is active and my USB optical drive is physically disconnected.
...the other thing I've noticed is that WinVBlock seems to work even when I give it an explicit empty config, the opposite of FiraDisk. Whilst this initially caught me out with FiraDisk (memory-mapped disks work without a config, file-mapped ones do not), it's actually quite a useful bit of control, and I'm not sure how I can hide the emulated optical mapping from WinVBlock with that behaviour?
Edited by mr_jrt, 14 March 2016 - 01:52 AM.