Jump to content











Photo

Bios Product Name


  • Please log in to reply
2 replies to this topic

#1 NetRock

NetRock

    Newbie

  • Members
  • 10 posts
  •  
    Canada

Posted 03 May 2013 - 06:04 PM

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



#2 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

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/
 
:cheers:
Wonko

#3 steve6375

steve6375

    Platinum Member

  • Developer
  • 7566 posts
  • Location:UK
  • Interests:computers, programming (masm,vb6,C,vbs), photography,TV,films
  •  
    United Kingdom

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