Difference between revisions of "Kernel-modules"

From Bashlinux
Jump to: navigation, search
Line 97: Line 97:
 
== Macros and variables ==
 
== Macros and variables ==
 
Some macros and variable names that are being renamed
 
Some macros and variable names that are being renamed
2.6.35
+
* 2.6.35
 
 
 
<pre><nowiki>
 
<pre><nowiki>

Revision as of 06:46, 25 January 2011

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 repo 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

 # make modules
 


usblp

The usblp module available at Bashlinux repo 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
 


Macros and variables

Some macros and variable names that are being renamed

  • 2.6.35
 
 usb_buffer_alloc => usb_alloc_coherent
 usb_buffer_free => usb_free_coherent