Using XBoot, I boot to different PC but there are different ISO utilities that i run
according to the PC product name. i can get hard coded product name in Linux Using dmidecode Command in a bash script from BIOS.
I was wondering if there is a way to get product name using dmicode so that th eright ISO would apply automatically, without user interaction.
Thanks
Bios Product Name
Started by
NetRock
, May 03 2013 06:04 PM
2 replies to this topic
#1
Posted 03 May 2013 - 06:04 PM
#2
Posted 04 May 2013 - 10:18 AM
Well, Xboot is only a "helper" app making use of Syslinux/Isolinux or grub4dos.
BTW you were already given this same piece of info:
http://reboot.pro/to...8178-usb-tools/
You need to examne and understand your actual .cfg and/or menu.lst, then re-do them integrating the *whatever* will read the BIOS and "take the decision" automatically.
grub4dos seems to me more suitable as it provides a scripting language and there are a few tools to interrogate the BIOS from it.
See (to give you the general idea):
http://reboot.pro/to...ation-sub-menu/
Wonko
BTW you were already given this same piece of info:
http://reboot.pro/to...8178-usb-tools/
You need to examne and understand your actual .cfg and/or menu.lst, then re-do them integrating the *whatever* will read the BIOS and "take the decision" automatically.
grub4dos seems to me more suitable as it provides a scripting language and there are a few tools to interrogate the BIOS from it.
See (to give you the general idea):
http://reboot.pro/to...ation-sub-menu/
Wonko
#3
Posted 04 May 2013 - 04:09 PM
The DMI string will be present in memory in the BIOS area. You can check for any string in memory using cat --locate in grub4dos
# check mainboard MAC address - e.g. MAC address is 00:23:54:58:32:6b cat --locate=\x00\x23\x54\x58\x32\x6b (md)0x680+0x180 || pause --wait=3 WRONG SYSTEM! && halt
0x680 = D000:0 - the start of the DMI and BIOS area
0x180 = 30000h - the length of the search, so it will finish at F000:FFFFh - i.e. end of BIOS area
So if the DMI string was 'EeePC,' then use
set SYSTEM= if "%SYSTEM%"=="" cat --locate=\x45\x65\x65\x50\x43 (md)0x680+0x180 > nul && set SYSTEM=EeePC if "%SYSTEM%"=="" cat --locate=\x44\x45\x4C (md)0x680+0x180 > nul && set SYSTEM=DELL <more here> if "%SYSTEM%"=="" pause --wait=3 ERROR: No BIOS strings found that I recognise! && configfile /menu.lst echo "%SYSTEM%" found: cat --hex --length=0x80 --skip=%?% (md)0x680+0x180 if "%SYSTEM%"=="DELL" set MYISO=/dell.iso if "%SYSTEM%"=="EeePC" set MYISO=/EeePC.iso <more here> # now do stuff with the ISO!
0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users