Hi all Is there any way to extract information (like what dmidecode provides) from within PXELINUX and, based on this information, selectively perform an action? What I'm trying to do is provide a method of flashing the BIOS of our HP Linux workstations but different workstations use different methods of updating the BIOSes. For example, the xw9300 uses 'rompaq' where the xw8400 uses 'flashbin'. I have this working for the xw9300 workstations but I don't want to rely on people selecting the correct option, I rather parse 'Handle 0x0002' and choose automatically based on 'Product Name'. Google found this link for me (http://syslinux.zytor.com/archives/2005-March/004944.html). The serial number is in the same block as the product name. Ideas? CC
Coe, Colin C. wrote:> Hi all > > Is there any way to extract information (like what dmidecode provides) > from within PXELINUX and, based on this information, selectively perform > an action? > > What I'm trying to do is provide a method of flashing the BIOS of our HP > Linux workstations but different workstations use different methods of > updating the BIOSes. For example, the xw9300 uses 'rompaq' where the > xw8400 uses 'flashbin'. I have this working for the xw9300 workstations > but I don't want to rely on people selecting the correct option, I > rather parse 'Handle 0x0002' and choose automatically based on 'Product > Name'. > > Google found this link for me > (http://syslinux.zytor.com/archives/2005-March/004944.html). The serial > number is in the same block as the product name. > > Ideas? >Right now this requires a custom com32 module. Parsing DMI, which requires accessing high memory, is most easily done from 32-bit code. This is of course yet another reason I need to implement the "switch to other config file" option. -hpa
As my low-level coding is as good as none existant, writing a custom com32 module is not an option. Is there an example of switching config files or do you mean have multiple labels, one for each BIOS update type? (i.e rompaq, flashbin, etc) CC -----Original Message----- From: H. Peter Anvin [mailto:hpa at zytor.com] Sent: Thursday, 10 August 2006 12:47 AM To: Coe, Colin C. Cc: syslinux at zytor.com Subject: Re: [syslinux] Extract DMI info when running PXELINUX Coe, Colin C. wrote:> Hi all > > Is there any way to extract information (like what dmidecode provides) > from within PXELINUX and, based on this information, selectivelyperform> an action? > > What I'm trying to do is provide a method of flashing the BIOS of ourHP> Linux workstations but different workstations use different methods of > updating the BIOSes. For example, the xw9300 uses 'rompaq' where the > xw8400 uses 'flashbin'. I have this working for the xw9300workstations> but I don't want to rely on people selecting the correct option, I > rather parse 'Handle 0x0002' and choose automatically based on'Product> Name'. > > Google found this link for me > (http://syslinux.zytor.com/archives/2005-March/004944.html). Theserial> number is in the same block as the product name. > > Ideas? >Right now this requires a custom com32 module. Parsing DMI, which requires accessing high memory, is most easily done from 32-bit code. This is of course yet another reason I need to implement the "switch to other config file" option. -hpa
On Wed, Aug 09, 2006 at 09:15:25AM +0800, Coe, Colin C. wrote:> What I'm trying to do is provide a method of flashing the BIOS of > our HP Linux workstations but different workstations use different > methods of updating the BIOSes.I'm curious, what chipset(s) do these workstations use?
Coe, Colin C. wrote:>Hi all > >Is there any way to extract information (like what dmidecode provides) >from within PXELINUX and, based on this information, selectively perform >an action? > >After this mail, I was starting to look at the possibilities for reaching this. I just did a small prototype. From a COM32 module, I'm able to parse the DMI table. I can see the handlers and theirs values. I'm now in a new process, making a clean implementation as this prototype works. I wonder if it's better to provides some structures I'm feeding with the data I'm able to parse, or too provides a function that returns some values. I'm more for the first option, it will reduce the number of functions. The kind of structures I was thinking was something like BIOS { vendor = "", version = "", ... } Then I was thinking about the number of handles to get. I think getting handles 0,1,2,3,6 is enough for the {pxe|sys}linux things. What do you think about it ? My prototype is based on some code from the kernel & the dmidecode project.