Difference between revisions of "Kernel-modules"

From Bashlinux
Jump to: navigation, search
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
 
= Kernel module drivers =
 
= Kernel module drivers =
== applesmc ==
+
== How to load Apple System Management Controller (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 applesmc module allows to monitor the temperature on Macmini terminals and set/get the fan speed in order to control the temperature.
Line 14: Line 14:
   
   
  +
== How to enable direct hardware access for video cards (drm) ==
== drm ==
 
   
 
The drm module avilable at Bashlinux repo has been modified in order to create dri device for AGP card on CX700M2 chipset.
 
The drm module avilable at Bashlinux repo has been modified in order to create dri device for AGP card on CX700M2 chipset.
   
  +
== How to enable the security hardware device on Dell servers (tpm) ==
== tpm ==
 
   
 
The tpm module available at Bashlinux repo has been build from sources to setup the TPM chipset on Dell servers.
 
The tpm module available at Bashlinux repo has been build from sources to setup the TPM chipset on Dell servers.
Line 39: Line 39:
   
   
== usblp ==
+
== How to enable USB printers (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 usblp module available at Bashlinux repo has been modified in order to create a usblp device for USB printer Epson M129 series.
   
Line 85: Line 85:
   
   
== kbde ==
+
== How to enable keyboard emulation (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.
 
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.
   

Revision as of 17:03, 3 November 2012

Kernel module drivers

How to load Apple System Management Controller (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
 


How to enable direct hardware access for video cards (drm)

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

How to enable the security hardware device on Dell servers (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
 


How to enable USB printers (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 */
  };
 


How to enable keyboard emulation (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