Difference between revisions of "Hdt (Hardware Detection Tool)"

From Syslinux Wiki
Jump to: navigation, search
m (Move the "History" section to a more appropriate place within the page. Reformat links.)
m (Wiki formatting.)
Line 35: Line 35:
 
* VESA
 
* VESA
 
* ...
 
* ...
 +
  
 
== Release ==
 
== Release ==
Line 40: Line 41:
  
 
Current development version is <s>0.3.4</s> in the main Syslinux git repository.
 
Current development version is <s>0.3.4</s> in the main Syslinux git repository.
 +
  
 
== Download ==
 
== Download ==
<!-- The following links used to be posted in the wiki page. -->
+
<!-- --><!--
<!-- The following links are dead, -->
+
--><!-- The following links used to be posted in the wiki page;
<!-- and the specified versions are no longer relevant / up-to-date. -->
+
--><!-- they are dead and the specified versions are
<!-- -->
+
--><!-- no longer relevant / up-to-date.  
<!-- [http://konilope.linuxeries.org/hdt/hdt_0_3_3.c32 HDT 0.3.3] for Syslinux 3.75 -->
+
--><!--  
<!-- -->
+
--><!-- [http://konilope.linuxeries.org/hdt/hdt_0_3_3.c32 HDT 0.3.3] for Syslinux 3.75  
<!-- [http://konilope.linuxeries.org/hdt/hdt_0_3_2.c32 HDT 0.3.2] for Syslinux 3.75 -->
+
--><!--  
<!-- -->
+
--><!-- [http://konilope.linuxeries.org/hdt/hdt_0_3_2.c32 HDT 0.3.2] for Syslinux 3.75  
<!-- [http://konilope.linuxeries.org/hdt/hdt_0_3_1.c32 HDT 0.3.1] for Syslinux 3.75 -->
+
--><!--  
<!-- -->
+
--><!-- [http://konilope.linuxeries.org/hdt/hdt_0_3_1.c32 HDT 0.3.1] for Syslinux 3.75  
<!-- Additionally, for potential historic or tracking relevance: -->
+
--><!--  
<!-- https://web.archive.org/web/20100331203655/http://konilope.linuxeries.org:80/hdt/ -->
+
--><!-- Additionally, for potential historic or tracking relevance:  
<!-- -->
+
--><!-- https://web.archive.org/web/20100331203655/http://konilope.linuxeries.org:80/hdt/  
 +
--><!-- -->
  
 
HDT is included in the official Syslinux distribution [[Download|archives]].
 
HDT is included in the official Syslinux distribution [[Download|archives]].
Line 68: Line 71:
  
 
== How can I try HDT ? ==
 
== How can I try HDT ? ==
Since Syslinux 3.74, HDT is available in the Syslinux archive under the "com32/hdt" directory.
+
Since Syslinux 3.74,  
 +
HDT is available in the Syslinux archive under the "<tt>com32/hdt</tt>" directory.
  
 
HDT is a com32 module that requires syslinux 3.74 or later.  
 
HDT is a com32 module that requires syslinux 3.74 or later.  
Line 76: Line 80:
 
   KERNEL hdt.c32
 
   KERNEL hdt.c32
  
=== Testing using kvm/qemu ===
 
  
Since qemu 0.9.0, it is possible to boot a virtual machine while using a local directory as a local pxe server.  
+
=== Testing using kvm/qemu ===
 +
Since qemu 0.9.0,  
 +
it is possible to boot a virtual machine while using a local directory as a local pxe server.  
 
This allows a local PXE booting without needing a complete infrastructure (dhcp/tftp).
 
This allows a local PXE booting without needing a complete infrastructure (dhcp/tftp).
  
Line 84: Line 89:
 
* Setup you environment by creating a local pxe directory like "<tt>~/pxe</tt>".
 
* Setup you environment by creating a local pxe directory like "<tt>~/pxe</tt>".
 
* In this pxe dir, create another directory, named "<tt>pxelinux.cfg</tt>".
 
* In this pxe dir, create another directory, named "<tt>pxelinux.cfg</tt>".
* Within the "<tt>pxelinux.cfg</tt>" directory, create the following configuration file named "<tt>default</tt>":
+
* Within the "<tt>pxelinux.cfg</tt>" directory, <!--
 +
--> create the following configuration file named "<tt>default</tt>":
 
  DEFAULT hdt
 
  DEFAULT hdt
 
  PROMPT 1
 
  PROMPT 1
Line 94: Line 100:
 
* Copy the hdt.c32 file (and the relevant [[library modules]]) in the same directory.
 
* Copy the hdt.c32 file (and the relevant [[library modules]]) in the same directory.
 
* Create a dummy disk file with  
 
* Create a dummy disk file with  
 +
{|
 +
|
 
  dd if=/dev/zero of=~/pxe/dummy.img bs=1M count=5
 
  dd if=/dev/zero of=~/pxe/dummy.img bs=1M count=5
 +
|}
 
* Start qemu/kvm to use that local configuration:
 
* Start qemu/kvm to use that local configuration:
 +
{|
 +
|
 
  kvm -hda ~/pxe/dummy.img -net nic -net user -boot n -tftp ~/pxe -bootp /pxelinux.0
 
  kvm -hda ~/pxe/dummy.img -net nic -net user -boot n -tftp ~/pxe -bootp /pxelinux.0
 +
|}
  
  
Line 109: Line 121:
 
[[Image:hdt-menu.png]]
 
[[Image:hdt-menu.png]]
  
''Cpu mode:''  
+
''Cpu mode:''
  
 
[[Image:hdt-menu-cpu.png]]
 
[[Image:hdt-menu-cpu.png]]
 +
  
 
=== Starting memtest ===
 
=== Starting memtest ===
Line 126: Line 139:
 
'''Make sure to use the keyword "<u>LINUX</u>", not "KERNEL"!'''
 
'''Make sure to use the keyword "<u>LINUX</u>", not "KERNEL"!'''
  
Then, when selecting the memory test from the memory submenu, the "<tt>memtest</tt>" label will be launched.
+
Then, when selecting the memory test from the memory submenu,  
 +
the "<tt>memtest</tt>" label will be launched.
  
 
The label name could be changed using the "<code>memtest=<label></code>" boot option of HDT.  
 
The label name could be changed using the "<code>memtest=<label></code>" boot option of HDT.  
Line 135: Line 149:
 
HDT can be configured by APPENDing parameters,  
 
HDT can be configured by APPENDing parameters,  
 
as described in the following sections.
 
as described in the following sections.
 +
  
 
=== pci stuff ===
 
=== pci stuff ===
 
HDT requires very little configuration.  
 
HDT requires very little configuration.  
To improve the PCI reporting, copy "<tt>pci.ids</tt>" and "<tt>modules.pcimap</tt>" in a directory.
+
To improve the PCI reporting,  
 +
copy "<tt>pci.ids</tt>" and "<tt>modules.pcimap</tt>" in a directory.  
 
By default, hdt will search for these files in the root dir of the boot device.  
 
By default, hdt will search for these files in the root dir of the boot device.  
 
If you want to override the directory you can use the following parameters:
 
If you want to override the directory you can use the following parameters:
Line 147: Line 163:
  
 
This can be configured as:
 
This can be configured as:
 +
{|
 +
|
 
  LABEL hdt
 
  LABEL hdt
 
   KERNEL hdt.c32
 
   KERNEL hdt.c32
 
   APPEND modules=images/modules.pcimap pciids=images/pci.ids memtest=mymemtest
 
   APPEND modules=images/modules.pcimap pciids=images/pci.ids memtest=mymemtest
 +
|}
  
 
The "<tt>pci.ids</tt>" file can usually be found in the "<tt>/usr/share/</tt>" directory of  
 
The "<tt>pci.ids</tt>" file can usually be found in the "<tt>/usr/share/</tt>" directory of  
 
a Linux System or just [http://pciids.sourceforge.net/v2.2/pci.ids download] it from sf.net.
 
a Linux System or just [http://pciids.sourceforge.net/v2.2/pci.ids download] it from sf.net.
  
The "<tt>modules.pcimap</tt>" file is usually available in the "<code>/lib/modules/`uname -r`/</code>" directory of your Linux system.  
+
The "<tt>modules.pcimap</tt>" file is usually available in  
<!-- (The following link is no longer available / relevant). -->
+
the "<code>/lib/modules/`uname -r`/</code>" directory of your Linux system.  
<!-- If you don't have one, you can try with [http://konilope.linuxeries.org/tmp/modules.pcimap this one] -->
+
<!-- --><!--
<!-- taken from Mandriva Linux 2009 for a 2.6.27.7-server-1mnb Linux Kernel. -->
+
--><!-- If you don't have one, you can try with  
 +
--><!-- [http://konilope.linuxeries.org/tmp/modules.pcimap this one]  
 +
--><!-- taken from Mandriva Linux 2009 for a 2.6.27.7-server-1mnb Linux Kernel.
 +
--><!--
 +
--><!-- (The above link used to be posted in the wiki page;
 +
--><!--  it is dead and
 +
--><!--  no longer relevant / available.)
 +
--><!-- -->
  
 
'''Warning!''' When HDT is used with ISOLINUX, the file name must be in an "8.3" format.  
 
'''Warning!''' When HDT is used with ISOLINUX, the file name must be in an "8.3" format.  
Line 165: Line 191:
 
If these files are not available, HDT will generate some information messages to warn the user.
 
If these files are not available, HDT will generate some information messages to warn the user.
  
The <code>memtest=<label></code> option allows users to override the default entry name in the current config file of Syslinux.  
+
The <code>memtest=<label></code> option allows users to override  
 +
the default entry name in the current config file of Syslinux.  
 
The default value is set to "<tt>memtest</tt>".
 
The default value is set to "<tt>memtest</tt>".
  
=== CLI mode ===
 
  
 +
=== CLI mode ===
 
HDT supports two modes: a menu system and a CLI (command line interface).  
 
HDT supports two modes: a menu system and a CLI (command line interface).  
The menu system is enabled by default.
+
The menu system is enabled by default.  
 
To enable the CLI mode, just append "<tt>nomenu</tt>" at startup time like in:
 
To enable the CLI mode, just append "<tt>nomenu</tt>" at startup time like in:
  
Line 189: Line 216:
 
The ''<tt>help</tt>'' command shows the available commands:
 
The ''<tt>help</tt>'' command shows the available commands:
  
* clear : obviously, clear the screen
+
* clear   : obviously, clear the screen
* help   : this help ;o)
+
* help     : this help ;o)
* show   : the command to display items
+
* show     : the command to display items
* pci   : to enter the PCI mode
+
* pci     : to enter the PCI mode
* dmi   : to enter the DMI mode
+
* dmi     : to enter the DMI mode
* cpu   : to enter the CPU mode
+
* cpu     : to enter the CPU mode
* kernel : to enter the kernel mode
+
* kernel   : to enter the kernel mode
 
* syslinux : to enter the syslinux mode
 
* syslinux : to enter the syslinux mode
* vesa   : to enter the vesa mode
+
* vesa     : to enter the vesa mode
* exit   : to return to the top menu
+
* exit     : to return to the top menu
  
 
Note that it is possible to use "<tt>show</tt>"  
 
Note that it is possible to use "<tt>show</tt>"  
 
in order to obtain a summary of the given mode, like in:
 
in order to obtain a summary of the given mode, like in:
  
  hdt> show pci
+
hdt> show pci
  PCI: 17 devices detected                  
+
PCI: 17 devices detected
  PCI: Resolving names
+
PCI: Resolving names
  PCI: Resolving class names
+
PCI: Resolving class names
  PCI Resolving module names              
+
PCI Resolving module names
  PCI                                      
+
PCI
  NB Devices  : 17        
+
  NB Devices  : 17
  hdt>  
+
hdt>  
 
+
 
 
or:
 
or:
  
  hdt> show dmi    
+
{|
  DMI Table version 2.3 found
+
|
  Available DMI modules: base_board bios chassis memory bank<bank_number> cpu system        
+
hdt> show dmi
  hdt>  
+
DMI Table version 2.3 found
 +
Available DMI modules: base_board bios chassis memory bank<bank_number> cpu system
 +
hdt>  
 +
|}
  
The "<tt>show dmi</tt>" command will display the version of the DMI table and the available modules.
+
The "<tt>show dmi</tt>" command will display the  
 +
version of the DMI table and the available modules.
  
 
Other examples:
 
Other examples:
  
  hdt> show cpu                                            
+
{|
  CPU                      
+
|
  Manufacturer :  Intel                    
+
hdt> show cpu
  Product      :  Intel(R) Pentium(R) D CPU 3.00GHz                            
+
CPU
  Features    :  3000 MhZ : x86_64 64bits SMP
+
  Manufacturer :  Intel
  hdt>  
+
  Product      :  Intel(R) Pentium(R) D CPU 3.00GHz
 +
  Features    :  3000 MhZ : x86_64 64bits SMP
 +
hdt>  
  
 +
hdt> show pxe
 +
PXE
 +
  PCI device no: 15
 +
  Manufacturer : Broadcom Corporation
 +
  Product      : NetXtreme BCM5721 Gigabit Ethernet PCI Express
 +
  Addresses    : 192.168.3.8 @ 00:13:72:3b:ce:85
 +
hdt>
  
  hdt> show pxe                             
+
hdt> show syslinux
   PXE                       
+
SYSLINUX
   PCI device no: 15       
+
   Bootloader : PXElinux
   Manufacturer : Broadcom Corporation             
+
  Version   : PXELINUX 3.74 pre1-110-g37bfb1c
   Product      : NetXtreme BCM5721 Gigabit Ethernet PCI Express                 
+
  Version   : 842
  Addresses    : 192.168.3.8 @ 00:13:72:3b:ce:85
+
  Max API   : 35
  hdt>  
+
  Copyright  : Copyright (C) 1994-2009 H. Peter Anvin
 +
hdt>  
  
 +
hdt> show kernel
 +
Kernel modules
 +
(intel-rng | iTCO_wdt) # (piix | ata_piix) # i2c-i801 # tg3 # sisfb #
 +
hdt>
  
  hdt> show syslinux
+
  hdt> show vesa
  SYSLINUX                           
+
VESA
  Bootloader : PXElinux             
+
  Vesa version : 3.0
  Version    : PXELINUX 3.74 pre1-110-g37bfb1c
+
  Vendor      : XGI Technology, Inc.
  Version    : 842     
+
  Product      : Volari Z7
  Max API    : 35   
+
  Product rev. : 1.02.04
  Copyright : Copyright (C) 1994-2009 H. Peter Anvin               
+
  Software rev.: Y
  hdt>
+
  Memory (KB)  : 16384
 
+
  Modes        : 32
 
+
hdt>  
  hdt> show kernel                                 
+
|}
  Kernel modules                                                                 
+
  (intel-rng | iTCO_wdt) # (piix | ata_piix) # i2c-i801 # tg3 # sisfb #
+
  hdt>
+
 
+
 
+
  hdt> show vesa
+
  VESA
+
  Vesa version : 3.0
+
  Vendor      : XGI Technology, Inc.
+
  Product      : Volari Z7
+
  Product rev. : 1.02.04
+
  Software rev.: Y  
+
  Memory (KB)  : 16384                    
+
  Modes        : 32
+
  hdt>  
+
  
  
Line 271: Line 301:
 
The "<tt>show summary</tt>" command reports a global summary of the current host:
 
The "<tt>show summary</tt>" command reports a global summary of the current host:
  
  hdt>show summary
+
{|
  CPU
+
|
  Manufacturer : Intel
+
hdt>show summary
  Product      : Intel(R) Pentium(R) D CPU 3.00GHz
+
CPU
  Features    : 3000 MhZ : x86_64 64bits SMP
+
  Manufacturer : Intel
  System
+
  Product      : Intel(R) Pentium(R) D CPU 3.00GHz
  Manufacturer : Dell Computer Corporation
+
  Features    : 3000 MhZ : x86_64 64bits SMP
  Product Name : PowerEdge 850
+
System
  Serial      : XXXXX
+
  Manufacturer : Dell Computer Corporation
  Bios
+
  Product Name : PowerEdge 850
  Version      : A02
+
  Serial      : XXXXX
  Release      : 10/12/2005
+
Bios
  Memory Banks
+
  Version      : A02
  bank 00      : 512 MB DDR2@533 MHz
+
  Release      : 10/12/2005
  bank 01      : 512 MB DDR2@533 MHz
+
Memory Banks
  PCI
+
  bank 00      : 512 MB DDR2@533 MHz
  NB Devices  : 17
+
  bank 01      : 512 MB DDR2@533 MHz
  PXE
+
PCI
  PCI device no: 15
+
  NB Devices  : 17
  Manufacturer : Broadcom Corporation
+
PXE
  Product      : NetXtreme BCM5721 Gigabit Ethernet PCI Express
+
  PCI device no: 15
  Addresses    : 192.168.3.8 @ 00:13:72:3b:ce:85
+
  Manufacturer : Broadcom Corporation
  Kernel modules
+
  Product      : NetXtreme BCM5721 Gigabit Ethernet PCI Express
  (intel-rng | iTCO_wdt) # (piix | ata_piix) # i2c-i801 # tg3 # sisfb #
+
  Addresses    : 192.168.3.8 @ 00:13:72:3b:ce:85
  hdt>  
+
Kernel modules
 +
(intel-rng | iTCO_wdt) # (piix | ata_piix) # i2c-i801 # tg3 # sisfb #
 +
hdt>  
 +
|}
  
  
 
=== PCI mode ===
 
=== PCI mode ===
From the main menu, type "pci". The prompt changes to "<tt>pci>&nbsp;</tt>".
+
From the main menu, type "pci". The prompt changes to "<tt>pci>&nbsp;</tt>".  
 
The available commands are:
 
The available commands are:
 +
  
 
==== show list ====
 
==== show list ====
 
 
The "<tt>show list</tt>" command reports the available pci devices like in:
 
The "<tt>show list</tt>" command reports the available pci devices like in:
  pci> show list
+
{|
  21 PCI devices detected
+
|
  01: Intel Corporation E7230/3000/3010 Memory Controller Hub
+
pci> show list
      # Host bridge              # Kmod: unknown
+
21 PCI devices detected
 
+
01: Intel Corporation E7230/3000/3010 Memory Controller Hub
  02: Intel Corporation E7230/3000/3010 PCI Express Root Port
+
    # Host bridge              # Kmod: unknown
      # PCI bridge                # Kmod: unknown
+
  [....]
+
02: Intel Corporation E7230/3000/3010 PCI Express Root Port
  12: Intel Corporation 82801G (ICH7 Family) IDE Controller
+
    # PCI bridge                # Kmod: unknown
      # IDE interface            # Kmod: piix | ata_piix
+
[....]
  [....]  
+
12: Intel Corporation 82801G (ICH7 Family) IDE Controller
 
+
    # IDE interface            # Kmod: piix | ata_piix
 +
[....]
 +
|}
  
 
The first numerical field (01, 02 or 12 in this example) represents  
 
The first numerical field (01, 02 or 12 in this example) represents  
Line 325: Line 360:
 
If the device matches one or more kernel modules,  
 
If the device matches one or more kernel modules,  
 
the ''Kmod'' field shows their name, ''piix'' or ''ata_piix'' in this example.
 
the ''Kmod'' field shows their name, ''piix'' or ''ata_piix'' in this example.
 +
  
 
==== show device <number> ====
 
==== show device <number> ====
The "<tt>show device <number></tt>" command reports more detailed information on the selected pci device.  
+
The "<tt>show device <number></tt>" command reports  
 +
more detailed information on the selected pci device.  
 
Let's see a report for the PCI device number 12 from the previous example:
 
Let's see a report for the PCI device number 12 from the previous example:
  
  pci> show device 12
+
{|
  PCI Device 12
+
|
  Vendor Name  : Intel Corporation
+
pci> show device 12
  Product Name  : 82801G (ICH7 Family) IDE Controller
+
PCI Device 12
  Class Name    : IDE interface
+
Vendor Name  : Intel Corporation
  Kernel module : piix | ata_piix
+
Product Name  : 82801G (ICH7 Family) IDE Controller
  Vendor ID    : 8086
+
Class Name    : IDE interface
  Product ID    : 27df
+
Kernel module : piix | ata_piix
  SubVendor ID  : 1028
+
Vendor ID    : 8086
  SubProduct ID : 01b6
+
Product ID    : 27df
  Class ID      : 01.01.8a
+
SubVendor ID  : 1028
  Revision      : 01
+
SubProduct ID : 01b6
  PCI Bus      : 00
+
Class ID      : 01.01.8a
  PCI Slot      : 31
+
Revision      : 01
  PCI Func      : 01
+
PCI Bus      : 00
  pci>  
+
PCI Slot      : 31
+
PCI Func      : 01
 +
pci>  
 +
|}
 +
 
 
The output is pretty obvious, no need to say more about it except about the pxe stuff.  
 
The output is pretty obvious, no need to say more about it except about the pxe stuff.  
 
If the current device has a running pxe rom, its pxe information will be displayed:
 
If the current device has a running pxe rom, its pxe information will be displayed:
  
  Mac Address  : 00:13:72:3b:ce:85
+
Mac Address  : 00:13:72:3b:ce:85
  PXE          : Current boot device
+
PXE          : Current boot device
  
 
If the device has a valid IRQ, an "<tt>IRQ:&nbsp;<irq></tt>" line is displayed.
 
If the device has a valid IRQ, an "<tt>IRQ:&nbsp;<irq></tt>" line is displayed.
 +
  
 
==== show irq ====
 
==== show irq ====
Line 360: Line 401:
 
Only valid IRQs (>0 & <255) are shown.
 
Only valid IRQs (>0 & <255) are shown.
  
  pci>show irq
+
{|
  17 PCI devices detected
+
|
  IRQ : product
+
pci>show irq
  -------------
+
17 PCI devices detected
  11  : Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1
+
  IRQ : product
  05  : Broadcom Corporation NetXtreme BCM5721 Gigabit Ethernet PCI Express
+
  -------------
  03  : Broadcom Corporation NetXtreme BCM5721 Gigabit Ethernet PCI Express
+
  11  : Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1
  pci>  
+
  05  : Broadcom Corporation NetXtreme BCM5721 Gigabit Ethernet PCI Express
 +
  03  : Broadcom Corporation NetXtreme BCM5721 Gigabit Ethernet PCI Express
 +
pci>  
 +
|}
 +
 
  
 
=== DMI mode ===
 
=== DMI mode ===
 
Inside the dmi mode, "<tt>show list</tt>" displays the available modules.
 
Inside the dmi mode, "<tt>show list</tt>" displays the available modules.
  
  dmi> show list
+
{|
  Available DMI modules: base_board bios chassis memory bank<bank_number> cpu system
+
|
 +
dmi> show list
 +
Available DMI modules: base_board bios chassis memory bank<bank_number> cpu system
 +
|}
  
 
Note that only available modules will be displayed by this command.  
 
Note that only available modules will be displayed by this command.  
Line 380: Line 428:
 
To display the content of each module, use {{nowrap|1="<tt>show <module></tt>":}}
 
To display the content of each module, use {{nowrap|1="<tt>show <module></tt>":}}
  
  dmi> show system
+
{|
  System
+
|
  Manufacturer : Dell Computer Corporation
+
dmi> show system
  Product Name : PowerEdge 850
+
System
  Version      : Not Specified
+
Manufacturer : Dell Computer Corporation
  Serial      : XXXX
+
Product Name : PowerEdge 850
  UUID        : XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX
+
Version      : Not Specified
  Wakeup Type  : Power Switch
+
Serial      : XXXX
  SKU Number  :
+
UUID        : XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX
  Family      :
+
Wakeup Type  : Power Switch
  dmi>  
+
SKU Number  :
 +
Family      :
 +
dmi>  
 +
|}
  
 
Nothing more to say except about the memory module.
 
Nothing more to say except about the memory module.
 +
  
 
==== memory display ====
 
==== memory display ====
Line 398: Line 450:
 
status of each memory bank reported by the DMI table.
 
status of each memory bank reported by the DMI table.
  
  dmi> show memory
+
dmi> show memory
  Memory Banks
+
Memory Banks
  bank 00      : 512 MB DDR2@533 MHz
+
  bank 00      : 512 MB DDR2@533 MHz
  bank 01      : 512 MB DDR2@533 MHz
+
  bank 01      : 512 MB DDR2@533 MHz
  bank 02      : Free DDR2@533 MHz
+
  bank 02      : Free DDR2@533 MHz
  bank 03      : Free DDR2@533 MHz
+
  bank 03      : Free DDR2@533 MHz
  dmi>  
+
dmi>  
  
 
As reported by the command, to have more details of a given memory bank,  
 
As reported by the command, to have more details of a given memory bank,  
 
use {{nowrap|1="<tt>show bank<bank number></tt>".}}
 
use {{nowrap|1="<tt>show bank<bank number></tt>".}}
  
  dmi> show bank1      
+
dmi> show bank1
  Memory Bank 1        
+
Memory Bank 1
  Form Factor  : DIMM      
+
Form Factor  : DIMM
  Type        : DDR2  
+
Type        : DDR2
  Type Detail  : Synchronous
+
Type Detail  : Synchronous
  Speed        : 533 MHz
+
Speed        : 533 MHz
  Size        : 512 MB  
+
Size        : 512 MB
  Device Set  : 1    
+
Device Set  : 1
  Device Loc.  : DIMM1_B
+
Device Loc.  : DIMM1_B
  Bank Locator : Not Specified
+
Bank Locator : Not Specified
  Total Width  : 72 bits
+
Total Width  : 72 bits
  Data Width  : 64 bits  
+
Data Width  : 64 bits
  Error        : Not Provided
+
Error        : Not Provided
  Vendor      : C100000000000000
+
Vendor      : C100000000000000
  Serial      : XXXXXXX
+
Serial      : XXXXXXX
  Asset Tag    : XXXXXXXXX
+
Asset Tag    : XXXXXXXXX
  Part Number  : XXXXXXXX
+
Part Number  : XXXXXXXX
  dmi>  
+
dmi>  
 +
 
  
 
==== IPMI base board display ====
 
==== IPMI base board display ====
Line 432: Line 485:
 
if it is, it displays the interface type, the version and its address.
 
if it is, it displays the interface type, the version and its address.
  
  dmi> show ipmi
+
{|
  IPMI
+
|
  Interface Type    : KCS (Keyboard Control Style)
+
dmi> show ipmi
  Specification Ver. : 1.5
+
IPMI
  I2C Slave Address  : 0x10
+
  Interface Type    : KCS (Keyboard Control Style)
  Nv Storage Address : 0
+
  Specification Ver. : 1.5
  Base Address      : 0000000000000CA8
+
  I2C Slave Address  : 0x10
  IRQ                : 0
+
  Nv Storage Address : 0
  dmi>  
+
  Base Address      : 0000000000000CA8
 +
  IRQ                : 0
 +
dmi>  
 +
|}
  
  
Line 446: Line 502:
 
Inside the CPU mode, use "<tt>show cpu</tt>" to display the cpu information:
 
Inside the CPU mode, use "<tt>show cpu</tt>" to display the cpu information:
  
  cpu> show cpu
+
{|
  CPU  
+
|
  Vendor    : Intel
+
cpu> show cpu
  Model    : Intel(R) Pentium(R) D CPU 3.00GHz
+
CPU
  Vendor ID : 0  
+
Vendor    : Intel
  Family ID : 15                              
+
Model    : Intel(R) Pentium(R) D CPU 3.00GHz
  Model  ID : 4                              
+
Vendor ID : 0
  Stepping  : 7  
+
Family ID : 15
  FSB      : 800 MHz
+
Model  ID : 4
  Cur. Speed: 3000 MHz
+
Stepping  : 7
  Max Speed : 3800 MHz
+
FSB      : 800 MHz
  Upgrade  : ZIF Socket
+
Cur. Speed: 3000 MHz
  SMP      : yes    
+
Max Speed : 3800 MHz
  x86_64    : yes      
+
Upgrade  : ZIF Socket
  Flags    : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
+
SMP      : yes
  Flags    : cmov pat pse_36 clflsh dts acpi mmx sse sse2 ss
+
x86_64    : yes
  Flags    : ht acc nx lm                                          
+
Flags    : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
  cpu>  
+
Flags    : cmov pat pse_36 clflsh dts acpi mmx sse sse2 ss
 +
Flags    : ht acc nx lm
 +
cpu>  
 +
|}
 +
 
  
 
=== Kernel mode ===
 
=== Kernel mode ===
Line 469: Line 529:
 
for each hardware category, the needed kernel modules.
 
for each hardware category, the needed kernel modules.
  
  kernel> show list
+
kernel> show list
  Mass storage controller : piix ata_piix
+
Mass storage controller : piix ata_piix
  Network controller : tg3
+
Network controller : tg3
  Display controller : sisfb
+
Display controller : sisfb
  Bridge : intel-rng iTCO_wdt
+
Bridge : intel-rng iTCO_wdt
  Serial bus controller : i2c-i801
+
Serial bus controller : i2c-i801
  kernel>  
+
kernel>  
 +
 
  
 
=== PXE mode ===
 
=== PXE mode ===
 
The PXE mode displays information about the pxe environment.
 
The PXE mode displays information about the pxe environment.
  
  pxe> show list                                              
+
{|
  PXE                                                          
+
|
  PCI device no: 15                            
+
pxe> show list
  Manufacturer : Broadcom Corporation                        
+
PXE
  Product      : NetXtreme BCM5721 Gigabit Ethernet PCI Express
+
  PCI device no: 15
  Addresses    : 192.168.3.8 @ 00:13:72:3b:ce:85
+
  Manufacturer : Broadcom Corporation
  pxe>  
+
  Product      : NetXtreme BCM5721 Gigabit Ethernet PCI Express
 +
  Addresses    : 192.168.3.8 @ 00:13:72:3b:ce:85
 +
pxe>  
 +
|}
 +
 
  
 
=== Syslinux mode ===
 
=== Syslinux mode ===
 
The Syslinux mode displays the current syslinux versions:
 
The Syslinux mode displays the current syslinux versions:
  
  syslinux> show list
+
{|
  SYSLINUX            
+
|
  Bootloader : PXElinux        
+
syslinux> show list
  Version    : PXELINUX 3.72 3.72
+
SYSLINUX
  Version    : 840
+
  Bootloader : PXElinux
  Max API    : 30                                  
+
  Version    : PXELINUX 3.72 3.72
  Copyright  : Copyright (C) 1994-2008 H. Peter Anvin
+
  Version    : 840
  syslinux>  
+
Max API    : 30
 +
  Copyright  : Copyright (C) 1994-2008 H. Peter Anvin
 +
syslinux>  
 +
|}
 +
 
  
 
=== VESA mode ===
 
=== VESA mode ===
 
The vesa mode displays a synthesis of the vesa configuration:
 
The vesa mode displays a synthesis of the vesa configuration:
  
  vesa> show list
+
vesa> show list
  VESA
+
VESA
  Vesa version : 3.0
+
  Vesa version : 3.0
  Vendor      : XGI Technology, Inc.
+
  Vendor      : XGI Technology, Inc.
  Product      : Volari Z7
+
  Product      : Volari Z7
  Product rev. : 1.02.04
+
  Product rev. : 1.02.04
  Software rev.: Y  
+
  Software rev.: Y
  Memory (KB)  : 16384
+
  Memory (KB)  : 16384
  Modes        : 32                              
+
  Modes        : 32
  vesa>  
+
vesa>  
  
 
In this example, the vga card supports 32 video modes.  
 
In this example, the vga card supports 32 video modes.  
Line 518: Line 587:
  
 
Note that "Kernel mode" is the value requested by the "vga=" command line for a linux kernel.
 
Note that "Kernel mode" is the value requested by the "vga=" command line for a linux kernel.
  vesa> show modes
+
{|
  ResX x ResY x Bits : Kernel Mode : Vesa Mode
+
|
  ---------------------------------------------
+
vesa> show modes
    800  600      4      770        0x0102
+
  ResX x ResY x Bits : Kernel Mode : Vesa Mode
    640  480      8      769        0x0101
+
---------------------------------------------
    640  400      8      768        0x0100
+
  800  600      4      770        0x0102
    800  600      8      771        0x0103
+
  640  480      8      769        0x0101
  1024  768      4      772        0x0104
+
  640  400      8      768        0x0100
  1024  768      8      773        0x0105
+
  800  600      8      771        0x0103
  1280  1024      8      775        0x0107
+
  1024  768      4      772        0x0104
  1600  1200      8      816        0x0130
+
  1024  768      8      773        0x0105
  1600  1200    16      817        0x0131
+
  1280  1024      8      775        0x0107
    320  200    15      781        0x010d
+
  1600  1200      8      816        0x0130
    320  200    16      782        0x010e
+
  1600  1200    16      817        0x0131
    640  480    15      784        0x0110
+
  320  200    15      781        0x010d
    640  480    16      785        0x0111
+
  320  200    16      782        0x010e
    800  600    15      787        0x0113
+
  640  480    15      784        0x0110
    800  600    16      788        0x0114
+
  640  480    16      785        0x0111
  1024  768    15      790        0x0116
+
  800  600    15      787        0x0113
  1024  768    16      791        0x0117
+
  800  600    16      788        0x0114
  1280  1024    15      793        0x0119
+
  1024  768    15      790        0x0116
  1280  1024    16      794        0x011a
+
  1024  768    16      791        0x0117
    320  240      8      818        0x0132
+
  1280  1024    15      793        0x0119
    400  300      8      819        0x0133
+
  1280  1024    16      794        0x011a
    512  384      8      820        0x0134
+
  320  240      8      818        0x0132
    320  240    16      821        0x0135
+
  400  300      8      819        0x0133
    400  300    16      822        0x0136
+
  512  384      8      820        0x0134
    512  384    16      823        0x0137
+
  320  240    16      821        0x0135
    320  200      8      824        0x0138
+
  400  300    16      822        0x0136
    640  400    16      825        0x0139
+
  512  384    16      823        0x0137
    640  480    32      826        0x013a
+
  320  200      8      824        0x0138
    800  600    32      827        0x013b
+
  640  400    16      825        0x0139
  1024  768    32      828        0x013c
+
  640  480    32      826        0x013a
  1280  1024    32      829        0x013d
+
  800  600    32      827        0x013b
  1600  1200    32      830        0x013e
+
  1024  768    32      828        0x013c
  vesa>
+
  1280  1024    32      829        0x013d
 +
  1600  1200    32      830        0x013e
 +
vesa>  
 +
|}
  
  

Revision as of 17:23, 8 May 2020


The project used to have its own website, now archived.

This document might be partially outdated.


What is HDT ?

HDT (for "Hardware Detection Tool") is a Syslinux com32 module designed to display low-level information for any x86 compatible system.

HDT can inspect multiple subsystems:

  • CPU (via cpuid)
  • PCI
  • DMI
    • Memory modules
    • BIOS
    • Motherboard
    • IPMI base board
    • Chassis
    • Batteries
    • CPU
  • Disks (work in progress)
  • Syslinux
  • Linux Kernel modules needed by this host
  • PXE environment
  • VESA
  • ...


Release

Current stable release is 0.3.3 0.5.2.

Current development version is 0.3.4 in the main Syslinux git repository.


Download

HDT is included in the official Syslinux distribution archives.


Projects known to use HDT

  • Mandriva Linux since 2009.1 (no longer active since 2015)
  • Ultimate Boot CD since version 5.0
  • Parted Magic since 0.4.0
  • Recovery Is Possible since 8.0 (no longer active since 2012)
  • Many others


How can I try HDT ?

Since Syslinux 3.74, HDT is available in the Syslinux archive under the "com32/hdt" directory.

HDT is a com32 module that requires syslinux 3.74 or later. As every com32 module, it can be booted as a kernel like:

LABEL hdt
 KERNEL hdt.c32


Testing using kvm/qemu

Since qemu 0.9.0, it is possible to boot a virtual machine while using a local directory as a local pxe server. This allows a local PXE booting without needing a complete infrastructure (dhcp/tftp).

  • Install kvm/qemu.
  • Setup you environment by creating a local pxe directory like "~/pxe".
  • In this pxe dir, create another directory, named "pxelinux.cfg".
  • Within the "pxelinux.cfg" directory, create the following configuration file named "default":
DEFAULT hdt
PROMPT 1
TIMEOUT 5
LABEL hdt
 KERNEL hdt.c32
  • Copy the "pxelinux.0" (and "ldlinux.c32") file(s) from the Syslinux archive to the "~/pxe" dir.
  • Copy the hdt.c32 file (and the relevant library modules) in the same directory.
  • Create a dummy disk file with
dd if=/dev/zero of=~/pxe/dummy.img bs=1M count=5
  • Start qemu/kvm to use that local configuration:
kvm -hda ~/pxe/dummy.img -net nic -net user -boot n -tftp ~/pxe -bootp /pxelinux.0


Menu mode

The menu mode will try to do some best effort to manage the little space in which we display so much information.

Screenshots taken on HDT 0.2.6.

Main menu:

Hdt-menu.png

Cpu mode:

Hdt-menu-cpu.png


Starting memtest

Under the memory menu, it is possible to start memtest. To make it successful, you have to:

  • Download memtest
  • gunzip it
  • Setup in your current Syslinux configuration file an entry like
LABEL memtest
 LINUX memtest86+-2.11.bin

Make sure to use the keyword "LINUX", not "KERNEL"!

Then, when selecting the memory test from the memory submenu, the "memtest" label will be launched.

The label name could be changed using the "memtest=<label>" boot option of HDT. The default value is set to "memtest".


How do I configure HDT ?

HDT can be configured by APPENDing parameters, as described in the following sections.


pci stuff

HDT requires very little configuration. To improve the PCI reporting, copy "pci.ids" and "modules.pcimap" in a directory. By default, hdt will search for these files in the root dir of the boot device. If you want to override the directory you can use the following parameters:

  • modules=your_path/modules.pcimap
  • pciids=your_path/pci.ids
  • memtest=label_name

This can be configured as:

LABEL hdt
 KERNEL hdt.c32
 APPEND modules=images/modules.pcimap pciids=images/pci.ids memtest=mymemtest

The "pci.ids" file can usually be found in the "/usr/share/" directory of a Linux System or just download it from sf.net.

The "modules.pcimap" file is usually available in the "/lib/modules/`uname -r`/" directory of your Linux system.

Warning! When HDT is used with ISOLINUX, the file name must be in an "8.3" format. So if your file is named "modules.pcimap", then the parameter given to HDT must be: "modules=path/to/modules.pci".

If these files are not available, HDT will generate some information messages to warn the user.

The memtest=<label> option allows users to override the default entry name in the current config file of Syslinux. The default value is set to "memtest".


CLI mode

HDT supports two modes: a menu system and a CLI (command line interface). The menu system is enabled by default. To enable the CLI mode, just append "nomenu" at startup time like in:

LABEL hdt
 KERNEL hdt.c32
 APPEND nomenu


Syntax of the CLI

This syntax may change in the future.

The main menu displays a "hdt> " prompt indicating the top menu.

Other submenus exist: pci, dmi, cpu, kernel, pxe, syslinux. These topics will be discussed later.

The help command shows the available commands:

  • clear  : obviously, clear the screen
  • help  : this help ;o)
  • show  : the command to display items
  • pci  : to enter the PCI mode
  • dmi  : to enter the DMI mode
  • cpu  : to enter the CPU mode
  • kernel  : to enter the kernel mode
  • syslinux : to enter the syslinux mode
  • vesa  : to enter the vesa mode
  • exit  : to return to the top menu

Note that it is possible to use "show" in order to obtain a summary of the given mode, like in:

hdt> show pci
PCI: 17 devices detected
PCI: Resolving names
PCI: Resolving class names
PCI Resolving module names
PCI
 NB Devices   : 17
hdt> 

or:

hdt> show dmi
DMI Table version 2.3 found
Available DMI modules: base_board bios chassis memory bank<bank_number> cpu system
hdt> 

The "show dmi" command will display the version of the DMI table and the available modules.

Other examples:

hdt> show cpu
CPU
 Manufacturer :  Intel
 Product      :  Intel(R) Pentium(R) D CPU 3.00GHz
 Features     :  3000 MhZ : x86_64 64bits SMP
hdt> 
hdt> show pxe
PXE
 PCI device no: 15
 Manufacturer : Broadcom Corporation
 Product      : NetXtreme BCM5721 Gigabit Ethernet PCI Express
 Addresses    : 192.168.3.8 @ 00:13:72:3b:ce:85
hdt> 
hdt> show syslinux
SYSLINUX
 Bootloader : PXElinux
 Version    : PXELINUX 3.74 pre1-110-g37bfb1c
 Version    : 842
 Max API    : 35
 Copyright  : Copyright (C) 1994-2009 H. Peter Anvin
hdt> 
hdt> show kernel
Kernel modules
(intel-rng | iTCO_wdt) # (piix | ata_piix) # i2c-i801 # tg3 # sisfb #
hdt> 
hdt> show vesa
VESA
 Vesa version : 3.0
 Vendor       : XGI Technology, Inc.
 Product      : Volari Z7
 Product rev. : 1.02.04
 Software rev.: Y
 Memory (KB)  : 16384
 Modes        : 32
hdt> 


Summary

The "show summary" command reports a global summary of the current host:

hdt>show summary
CPU
 Manufacturer : Intel
 Product      : Intel(R) Pentium(R) D CPU 3.00GHz
 Features     : 3000 MhZ : x86_64 64bits SMP
System
 Manufacturer : Dell Computer Corporation
 Product Name : PowerEdge 850
 Serial       : XXXXX
Bios
 Version      : A02
 Release      : 10/12/2005
Memory Banks
 bank 00      : 512 MB DDR2@533 MHz
 bank 01      : 512 MB DDR2@533 MHz
PCI
 NB Devices   : 17
PXE
 PCI device no: 15
 Manufacturer : Broadcom Corporation
 Product      : NetXtreme BCM5721 Gigabit Ethernet PCI Express
 Addresses    : 192.168.3.8 @ 00:13:72:3b:ce:85
Kernel modules
(intel-rng | iTCO_wdt) # (piix | ata_piix) # i2c-i801 # tg3 # sisfb #
hdt> 


PCI mode

From the main menu, type "pci". The prompt changes to "pci> ". The available commands are:


show list

The "show list" command reports the available pci devices like in:

pci> show list
21 PCI devices detected
01: Intel Corporation E7230/3000/3010 Memory Controller Hub
    # Host bridge               # Kmod: unknown

02: Intel Corporation E7230/3000/3010 PCI Express Root Port
    # PCI bridge                # Kmod: unknown
[....]
12: Intel Corporation 82801G (ICH7 Family) IDE Controller
    # IDE interface             # Kmod: piix | ata_piix
[....]

The first numerical field (01, 02 or 12 in this example) represents the PCI device number followed by the vendor and product names.

The second line displays the device class and the associated kernel module. If no module matches this pci device, the kernel module (Kmod) is reported as unknown. If the device matches one or more kernel modules, the Kmod field shows their name, piix or ata_piix in this example.


show device <number>

The "show device <number>" command reports more detailed information on the selected pci device. Let's see a report for the PCI device number 12 from the previous example:

pci> show device 12
PCI Device 12
Vendor Name   : Intel Corporation
Product Name  : 82801G (ICH7 Family) IDE Controller
Class Name    : IDE interface
Kernel module : piix | ata_piix
Vendor ID     : 8086
Product ID    : 27df
SubVendor ID  : 1028
SubProduct ID : 01b6
Class ID      : 01.01.8a
Revision      : 01
PCI Bus       : 00
PCI Slot      : 31
PCI Func      : 01
pci> 

The output is pretty obvious, no need to say more about it except about the pxe stuff. If the current device has a running pxe rom, its pxe information will be displayed:

Mac Address   : 00:13:72:3b:ce:85
PXE           : Current boot device

If the device has a valid IRQ, an "IRQ: <irq>" line is displayed.


show irq

HDT can show IRQs set to some PCI devices. Most PCI devices do not really have a legacy IRQ. Only valid IRQs (>0 & <255) are shown.

pci>show irq
17 PCI devices detected
 IRQ : product
 -------------
 11  : Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1
 05  : Broadcom Corporation NetXtreme BCM5721 Gigabit Ethernet PCI Express
 03  : Broadcom Corporation NetXtreme BCM5721 Gigabit Ethernet PCI Express
pci> 


DMI mode

Inside the dmi mode, "show list" displays the available modules.

dmi> show list
Available DMI modules: base_board bios chassis memory bank<bank_number> cpu system

Note that only available modules will be displayed by this command. If your system doesn't have a battery, the battery module will not be reported.

To display the content of each module, use "show <module>":

dmi> show system
System
Manufacturer : Dell Computer Corporation
Product Name : PowerEdge 850
Version      : Not Specified
Serial       : XXXX
UUID         : XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX
Wakeup Type  : Power Switch
SKU Number   :
Family       :
dmi> 

Nothing more to say except about the memory module.


memory display

The "show memory" command will display the status of each memory bank reported by the DMI table.

dmi> show memory
Memory Banks
 bank 00      : 512 MB DDR2@533 MHz
 bank 01      : 512 MB DDR2@533 MHz
 bank 02      : Free DDR2@533 MHz
 bank 03      : Free DDR2@533 MHz
dmi> 

As reported by the command, to have more details of a given memory bank, use "show bank<bank number>".

dmi> show bank1
Memory Bank 1
Form Factor  : DIMM
Type         : DDR2
Type Detail  : Synchronous
Speed        : 533 MHz
Size         : 512 MB
Device Set   : 1
Device Loc.  : DIMM1_B
Bank Locator : Not Specified
Total Width  : 72 bits
Data Width   : 64 bits
Error        : Not Provided
Vendor       : C100000000000000
Serial       : XXXXXXX
Asset Tag    : XXXXXXXXX
Part Number  : XXXXXXXX
dmi> 


IPMI base board display

Since 0.2.6, HDT can detect whether an IPMI BMC is present; if it is, it displays the interface type, the version and its address.

dmi> show ipmi
IPMI
 Interface Type     : KCS (Keyboard Control Style)
 Specification Ver. : 1.5
 I2C Slave Address  : 0x10
 Nv Storage Address : 0
 Base Address       : 0000000000000CA8
 IRQ                : 0
dmi> 


CPU mode

Inside the CPU mode, use "show cpu" to display the cpu information:

cpu> show cpu
CPU
Vendor    : Intel
Model     : Intel(R) Pentium(R) D CPU 3.00GHz
Vendor ID : 0
Family ID : 15
Model  ID : 4
Stepping  : 7
FSB       : 800 MHz
Cur. Speed: 3000 MHz
Max Speed : 3800 MHz
Upgrade   : ZIF Socket
SMP       : yes
x86_64    : yes
Flags     : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
Flags     : cmov pat pse_36 clflsh dts acpi mmx sse sse2 ss
Flags     : ht acc nx lm
cpu> 


Kernel mode

The kernel mode features the "show list" command that displays, for each hardware category, the needed kernel modules.

kernel> show list
Mass storage controller : piix ata_piix
Network controller : tg3
Display controller : sisfb
Bridge : intel-rng iTCO_wdt
Serial bus controller : i2c-i801
kernel> 


PXE mode

The PXE mode displays information about the pxe environment.

pxe> show list
PXE
 PCI device no: 15
 Manufacturer : Broadcom Corporation
 Product      : NetXtreme BCM5721 Gigabit Ethernet PCI Express
 Addresses    : 192.168.3.8 @ 00:13:72:3b:ce:85
pxe> 


Syslinux mode

The Syslinux mode displays the current syslinux versions:

syslinux> show list
SYSLINUX
 Bootloader : PXElinux
 Version    : PXELINUX 3.72 3.72
 Version    : 840
Max API    : 30
 Copyright  : Copyright (C) 1994-2008 H. Peter Anvin
syslinux> 


VESA mode

The vesa mode displays a synthesis of the vesa configuration:

vesa> show list
VESA
 Vesa version : 3.0
 Vendor       : XGI Technology, Inc.
 Product      : Volari Z7
 Product rev. : 1.02.04
 Software rev.: Y
 Memory (KB)  : 16384
 Modes        : 32
vesa> 

In this example, the vga card supports 32 video modes. To display them, use "show modes".

Note that "Kernel mode" is the value requested by the "vga=" command line for a linux kernel.

vesa> show modes
 ResX x ResY x Bits : Kernel Mode : Vesa Mode
---------------------------------------------
  800   600      4       770        0x0102
  640   480      8       769        0x0101
  640   400      8       768        0x0100
  800   600      8       771        0x0103
 1024   768      4       772        0x0104
 1024   768      8       773        0x0105
 1280  1024      8       775        0x0107
 1600  1200      8       816        0x0130
 1600  1200     16       817        0x0131
  320   200     15       781        0x010d
  320   200     16       782        0x010e
  640   480     15       784        0x0110
  640   480     16       785        0x0111
  800   600     15       787        0x0113
  800   600     16       788        0x0114
 1024   768     15       790        0x0116
 1024   768     16       791        0x0117
 1280  1024     15       793        0x0119
 1280  1024     16       794        0x011a
  320   240      8       818        0x0132
  400   300      8       819        0x0133
  512   384      8       820        0x0134
  320   240     16       821        0x0135
  400   300     16       822        0x0136
  512   384     16       823        0x0137
  320   200      8       824        0x0138
  640   400     16       825        0x0139
  640   480     32       826        0x013a
  800   600     32       827        0x013b
 1024   768     32       828        0x013c
 1280  1024     32       829        0x013d
 1600  1200     32       830        0x013e
vesa> 


History

Syslinux 3.74 features HDT 0.2.7.

Syslinux 3.75 features HDT 0.2.7 with a fix to prevent hard lock during pci detection.


Roadmap

Release 0.3.0

Release 0.3.1

Release 0.3.2

Release 0.3.3

Release 0.3.4

  • Fixing int10/13 conflict
  • Improving menu's layout to maximize display usage
  • Adding more external benchmark/diagnose tools (cpu/disks/...)
  • Adding more Fn keys (F1-F12)
  • Memory detection fall-back to dmi type 6 when type 17 isn't available
  • Adding filesystem detection
  • Adding mbr detection (grab info at (older) [1] or (newer) [2] )

Release 0.4.0

  • Adding a saving inventory feature
  • Adding IPMI


Development

The development of HDT is here: http://git.zytor.com/users/erwan/hdt.git

Additional changes could be merged directly into the main Syslinux git repository.


Mailing List

You can subscribe to the mailing list and/or read the archives.


Ideas

The following ideas represent possible new features for HDT. If users report which ideas they really need, priorities to develop items could change ;o)

Lua Scripting

HDT currently detects hardware and generates an output using a menu or via a CLI. It could be interesting to add lua support to manage scripting. It could be possible to load a file that describes items that the user wants to detect.

Saving reports

Current versions can't save a report as we can't reach a writable storage. When using PXELINUX, we can imagine using a tftp put method. Using GPXELINUX, we can imagine using some http/ftp put methods.

Improving disks detection

Implementing a simple IDE stack would help in detecting PATA & ATAPI devices. Detecting SATA devices would require implementing specific drivers. The Coreboot project features some; why not doing some teaming on that?

Implementing SMART

Once the previous items would be complete, it could be possible to add a smartmontools-like feature to display smart status of devices.

Adding IPMI

IPMI could give HDT more information about the current hardware like sensors, etc... While using the "open" interface, we can reach the local BMC, but sounds as it needs a lot of code.

Adding VPD

Virtual Product Data displays the following: BIOS Build ID, Product Name, Box Serial Number, Motherboard Serial Number, Machine Type/Model.

Detecting Disk's Partitions

Title is pretty obvious ;o)

Adding more benchmark/diagnose tools

For every kind of component, it could be possible to launch a benchmark/diagnose tool. UBCD has many of them; why not trying to load some from both menu and CLI mode.