[Wine] BIOS Flash?
zboszor at pr.hu
Wed Aug 17 04:08:28 CDT 2011
2011-08-17 10:16 keltezéssel, SpawnHappyJake írta:
> I know, I probably gave a lot of people heart attacks just from that title.
> I'm not saying that I would actually try flashing my BIOS with WINE, I was just wondering, purely out of theoretical curiosity, if it's even possible to flash the BIOS by initiating an "exe" BIOS flasher from within WINE.
> I would suspect not, given that WINE "can't even" run Windows drivers, and from my novice viewpoint, to do this would seem to be even lower than a driver. That said, you never know.
> However, WINE does manage memory, I've heard. Doesn't an exe BIOS flasher (when initiated from Windows) just write some stuff to RAM and send some reboot instruction to the processor or something? If WINE can manage a program's memory, couldn't it write the BIOS flasher stuff to memory, and then tell the operating system to send that reboot command to hardware? Or are all WINE processes' memory housed within WINE's allocated memory, and thus would take special WINE development to be able to add BIOS flashing support?
> If the dev team wanted to work on it, I would imagine there'd be a safe way to try it out. Perhaps you can take a BIOS image file, copy it, and tell QEMU or something to use the copy in "read and write" mode, install Linux in QEMU (or whatever), put in your magic developing stuff, and try to flash the BIOS. Of course you want to make sure you're running on an emulated processor, not your real one. QEMU does have a -bios option to "set the filename for the BIOS", and it looks like that's how the folks at openfirmware are trying things out, though I don't know if QEMU supports _writing_ back to the file.
there are native BIOS flashers under Linux, I wouldn't risk running
a BIOS flasher under Wine.
But two days ago, because there is no native firmware flasher for
Pioneer optical drives under Linux, and the Windows firmware
flasher failed under Wine, I tried DVRFlash on my Pioneer BDR-205
to upgrade from the factory shipped version 1.08 to 1.12.
The original flasher extracted the firmware but then the upgrade
procedure failed, maybe because the kernel filters certain ATA/SCSI
commands and I run it via Wine as my user.
Anyway, I used DVRFlash as root, and the firmware upgrade went flawlessly,
the drive works as expected. This was the command to detect the drive:
# wine DVRFlash.exe 2>/dev/null
DVRFlash v2.7.7: Pioneer DVR firmware flasher
by Agent Smith, et al., Nov 2010
Device parameter was not given, detecting all DVR drives:
Device : 3.0.0
Vendor : PIONEER
Model : BD-RW BDR-205
Revision : 1.12
Status : RPC-2 (region locked)
Region : none
Changes : 5 region changes remaining
4 vendor resets remaining
state is 'Region not set'
Now run DVRFlash again, from the command prompt, using
one of the device(s) listed above as first parameter
Press the Return key to exit
The "2>/dev/null" part is needed otherwise the terminal is flooded with
"fixme:aspi:SendASPI32Command ASPI: Partially implemented SC_HA_INQUIRY for adapter 4."
The X.Y.Z in "Device : X.Y.Z" has to be passed to DVRFlash.exe, like:
# wine DVRFlash.exe 3.0.0 S1014001.112
DVRFlash has the advantage that it doesn't care for firmware version,
so downgrades are possible with it. This isn't allowed by the official
Pioneer firmware flasher.
More information about the wine-users