[syslinux] HDT: Doesn't work with syslinux

Sebastian Herbszt herbszt at gmx.de
Mon Mar 23 14:32:00 PDT 2009


Kim Mik wrote:
> 
> When I boot Hardware Detection Tool 0.2.3 or 0.2.5 with syslinux 3.73 or 3.74-pre11,
> I get:
> =======================================================
> 
> 
> 
> 
> 
> 
> 
> 
> Hardware Detection Tool 0.2.5 by Erwan Velu
> CPU: Detecting
> DISKS: Detecting
>  DISK 0x80: 0x80: PCI ATA  : sectors = 703282600, s/t = 63 head = 255: EDD=3.0
> =======================================================
> 
> Then it halts. Ctrl + Alt + Del doesn't work. I have to turn of the PC with the power button.
> 
> 
> When I use isolinux 3.73 or  3.74-pre11, it works fine.

hdt 0.2.5 on syslinux-3.74-pre11-2-g4fc8259 works here with a syslinux floppy on qemu.
Can you describe your hardware - disk and cdrom drives especially?
It seems to hang in detect_disks() from hdt-common.c. You might want to apply the following
patch and check where it hangs.

- Sebastian

--- hdt-common.c.orig   2009-03-23 22:27:12.000000000 +0100
+++ hdt-common.c        2009-03-23 22:30:38.000000000 +0100
@@ -190,8 +190,10 @@
 {
   hardware->disk_detection = true;
   for (int drive = 0x80; drive < 0xff; drive++) {
+    printf("\ndrive: %x ", drive);
     if (get_disk_params(drive, hardware->disk_info) != 0)
       continue;
+    printf(" got info\n");
     struct diskinfo *d = &hardware->disk_info[drive];
     printf
         ("  DISK 0x%X: %s : %s %s: sectors=%d, s/t=%d head=%d : EDD=%s\n",
@@ -199,6 +201,7 @@
          d->sectors, d->sectors_per_track, d->heads,
          d->edd_version);
   }
+   printf("\n");
 }

 int detect_pxe(struct s_hardware *hardware)




More information about the Syslinux mailing list