Kernel-modules

From Bashlinux
Revision as of 20:51, 4 February 2010 by Manpaz (talk)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Kernel module drivers

applesmc

The applesmc module allows to monitor the temperature on Macmini terminals and set/get the fan speed in order to control the temperature.

The rpm available at Bashlinux repository includes the kernel module for CentOS and a service daemon which is monitoring the temperature and setting the fan speed.

To get the module working install the rpm from repository:

 # yum -y install applesmc-utils
 


drm

The drm module avilable at Bashlinux repo has been modified in order to create dri device for AGP card on CX700M2 chipset.

tpm

The tpm module available at Bashlinux has been build from sources to setup the TPM chipset on Dell servers.

To build the module is necessary to enable it on kernel, one way to get this done is going to the kernel source folder, usually `/usr/src/linux` then run the config utility. Useful Information Please note that `ncurses-devel` must be installed to get menuconfig running.


 # cd /usr/local/src
 # make menuconfig
 

Select the TPM device driver under _Device Drivers > Character devices > TPM devices_, save the configuration and build the kernel modules.

 # make modules
 


usblp

The current usblp module at uWink has been modified in order to create a usblp device for USB printer Epson M129 series.

The patch is based on kernel 2.6.21

 diff --git a/drivers/usb/class/usblp.c b/drivers/usb/class/usblp.c
 index 63e50a1..6584cf0 100644
 --- a/drivers/usb/class/usblp.c
 +++ b/drivers/usb/class/usblp.c
 @@ -202,6 +202,7 @@ struct quirk_printer_struct {

  #define USBLP_QUIRK_BIDIR   0x1   /* reports bidir but requires unidirectional mode (no INs/reads) */
  #define USBLP_QUIRK_USB_INIT   0x2   /* needs vendor USB init string */
 +#define USBLP_QUIRK_BAD_CLASS   0x4   /* descriptor uses vendor-specific Class or SubClass */

  static const struct quirk_printer_struct quirk_printers[] = {
     { 0x03f0, 0x0004, USBLP_QUIRK_BIDIR }, /* HP DeskJet 895C */
 @@ -218,6 +219,7 @@ static const struct quirk_printer_struct quirk_printers[] = {
     { 0x0409, 0xf0be, USBLP_QUIRK_BIDIR }, /* NEC Picty920 (HP OEM) */
     { 0x0409, 0xf1be, USBLP_QUIRK_BIDIR }, /* NEC Picty800 (HP OEM) */
     { 0x0482, 0x0010, USBLP_QUIRK_BIDIR }, /* Kyocera Mita FS 820, by zut <[email protected]> */
 +   { 0x04b8, 0x0202, USBLP_QUIRK_BAD_CLASS }, /* Seiko Epson Receipt Printer M129C */
     { 0, 0 }
  };

 @@ -1048,7 +1050,8 @@ static int usblp_select_alts(struct usblp *usblp)
        ifd = &if_alt->altsetting[i];

        if (ifd->desc.bInterfaceClass != 7 || ifd->desc.bInterfaceSubClass != 1)
 -         continue;
 +         if (!(usblp->quirks & USBLP_QUIRK_BAD_CLASS))
 +            continue; 

        if (ifd->desc.bInterfaceProtocol < USBLP_FIRST_PROTOCOL ||
            ifd->desc.bInterfaceProtocol > USBLP_LAST_PROTOCOL)
 @@ -1232,6 +1235,7 @@ static struct usb_device_id usblp_ids [] = {
     { USB_INTERFACE_INFO(7, 1, 1) },
     { USB_INTERFACE_INFO(7, 1, 2) },
     { USB_INTERFACE_INFO(7, 1, 3) },
 +   { USB_DEVICE(0x04b8, 0x0202) },   /* Seiko Epson Receipt Printer M129C */
     { }                  /* Terminating entry */
  };
 


kbde

Keyboard emulation is done by installing kbde-driver, it will read all the keystokes send to `/dev/kbde`. There is also a package that convert ascii char to keystroke.

To have both on system just install the proper RPMs:

 yum -y install kbde-driver kbde