3.8.2.3. Unresolved symbol link when loading ztdummy

The ztdummy driver requires that a UHCI USB controller be available on Linux 2.4 kernels (the USB controller is not a requirement on Linux 2.6 kernels, because they are capable of generating the 1-kHz timing reference). There exists a secondary kind of controller, known as OHCI, which is not compatible with the ztdummy driver. If the UHCI USB controller is not accessible on Linux 2.4 kernels, the following error will occur:

    /lib/modules/2.4.22/misc/ztdummy.o: /lib/modules/2.4.22/misc/ztdummy.o: unresolved
    symbol unlink_td
    /lib/modules/2.4.22/misc/ztdummy.o: /lib/modules/2.4.22/misc/ztdummy.o: unresolved
    symbol alloc_td
    /lib/modules/2.4.22/misc/ztdummy.o: /lib/modules/2.4.22/misc/ztdummy.o: unresolved
    symbol delete_desc
    /lib/modules/2.4.22/misc/ztdummy.o: /lib/modules/2.4.22/misc/ztdummy.o: unresolved
    symbol uhci_devices
    /lib/modules/2.4.22/misc/ztdummy.o: /lib/modules/2.4.22/misc/ztdummy.o: unresolved
    symbol uhci_interrupt
    /lib/modules/2.4.22/misc/ztdummy.o: /lib/modules/2.4.22/misc/ztdummy.o: unresolved
    symbol fill_td
    /lib/modules/2.4.22/misc/ztdummy.o: /lib/modules/2.4.22/misc/ztdummy.o: unresolved
    symbol insert_td_horizontal
    /lib/modules/2.4.22/misc/ztdummy.o: insmod /lib/modules/2.4.22/misc/ztdummy.o failed
    /lib/modules/2.4.22/misc/ztdummy.o: insmod ztdummy failed

You can verify that you have the correct style of USB controller and its associated drivers with the lsmod command:

    # lsmod
    Module                  Size  Used by
    usb_uhci               26412  0
    usbcore                79040  1 [hid usb-uhci]

As you can see in the example above, you are looking to make sure that the usbcore and usb_uhci modules are loaded. If these modules are not loaded, be sure that USB has been activated within your BIOS and that the modules exist and are being loaded.

If the USB drivers are not loaded, you can still check which type of USB controller you have with the dmesg command:

    # dmesg | grep -i usb

To verify that you indeed have a UHCI USB controller, look for the following lines:

    uhci_hcd 0000:00:04.2: new USB bus registered, assigned bus number 1
    hub 1-0:1.0: USB hub found
    uhci_hcd 0000:00:04.3: new USB bus registered, assigned bus number 2
    hub 2-0:1.0: USB hub found