The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

acpi_ibm (4)
  • >> acpi_ibm (4) ( FreeBSD man: Специальные файлы /dev/* )

  • BSD mandoc
     

    NAME

    
    
    acpi_ibm
    
     - ACPI extras driver for IBM laptops
    
     
    

    SYNOPSIS

    To compile this driver into the kernel, place the following line in your kernel configuration file:
    device acpi_ibm

    Alternatively, to load the driver as a module at boot time, place the following line in loader.conf5:

    acpi_ibm_load="YES"
    
     

    DESCRIPTION

    The driver provides support for hotkeys and other components of IBM laptops. The main purpose of this driver is to provide an interface, accessible via sysctl(8) and devd(8), through which applications can determine the status of various laptop components.

    While the sysctl(8) interface is enabled automatically after loading the driver, the devd(8) interface has to be enabled explicitly, as it may alter the default action of certain keys. This is done by setting the events sysctl as described below. Specifying which keys should generate events is done by setting a bitmask, whereas each bit represents one key or key combination. This bitmask, accessible via the eventmask sysctl, is set to availmask by default, a value representing all possible keypress events on the specific ThinkPad model.  

    devd(8)SsEvents

    Hotkey events received by devd(8) provide the following information:

    system
    Qq Li ACPI
    subsystem
    Qq Li IBM
    type
    The source of the event in the ACPI namespace. The value depends on the model.
    notify
    Event code (see below).

    Depending on the ThinkPad model, event codes may vary. On a ThinkPad T41p these are as follows:

    0x01
    Fn + F1
    0x02
    Fn + F2
    0x03
    Fn + F3 (LCD backlight)
    0x04
    Fn + F4 (Suspend to RAM)
    0x05
    Fn + F5 (Bluetooth)
    0x06
    Fn + F6
    0x07
    Fn + F7 (Screen expand)
    0x08
    Fn + F8
    0x09
    Fn + F9
    0x0a
    Fn + F10
    0x0b
    Fn + F11
    0x0c
    Fn + F12 (Suspend to disk)
    0x0d
    Fn + Backspace
    0x0e
    Fn + Insert
    0x0f
    Fn + Delete
    0x10
    Fn + Home (Brightness up)
    0x11
    Fn + End (Brightness down)
    0x12
    Fn + PageUp (ThinkLight)
    0x13
    Fn + PageDown
    0x14
    Fn + Space (Zoom)
    0x15
    Volume Up
    0x16
    Volume Down
    0x17
    Mute
    0x18
    Access IBM Button

     

    led(4)SsInterface

    The driver provides a led(4) interface for the ThinkLight. The ThinkLight can be made to blink by writing ASCII strings to the /dev/led/thinklight device.  

    SYSCTL VARIABLES

    The following sysctls are currently implemented:

    dev.acpi_ibm.0.initialmask
    (read-only) Bitmask of ACPI events before the driver was loaded.
    dev.acpi_ibm.0.availmask
    (read-only) Bitmask of all supported ACPI events.
    dev.acpi_ibm.0.events
    Enable ACPI events and set the eventmask to availmask Without the driver being loaded, only the Fn+F4 button generates an ACPI event.
    dev.acpi_ibm.0.eventmask
    Sets the ACPI events which are reported to devd(8). Fn+F3, Fn+F4 and Fn+F12 always generate ACPI events, regardless which value eventmask has. Depending on the ThinkPad model, the meaning of different bits in the eventmask may vary. On a ThinkPad T41p this is a bitwise OR of the following:

    1
    Fn + F1
    2
    Fn + F2
    4
    Fn + F3 (LCD backlight)
    8
    Fn + F4 (Suspend to RAM)
    16
    Fn + F5 (Bluetooth)
    32
    Fn + F6
    64
    Fn + F7 (Screen expand)
    128
    Fn + F8
    256
    Fn + F9
    512
    Fn + F10
    1024
    Fn + F11
    2048
    Fn + F12 (Suspend to disk)
    4096
    Fn + Backspace
    8192
    Fn + Insert
    16384
    Fn + Delete
    32768
    Fn + Home (Brightness up)
    65536
    Fn + End (Brightness down)
    131072
    Fn + PageUp (ThinkLight)
    262144
    Fn + PageDown
    524288
    Fn + Space (Zoom)
    1048576
    Volume Up
    2097152
    Volume Down
    4194304
    Mute
    8388608
    Access IBM Button

    dev.acpi_ibm.0.hotkey
    (read-only) Status of several buttons. Every time a button is pressed, the respecting bit is toggled. It is a bitwise OR of the following:

    1
    Home Button
    2
    Search Button
    4
    Mail Button
    8
    Access IBM Button
    16
    Zoom
    32
    Wireless LAN Button
    64
    Video Button
    128
    Hibernate Button
    256
    ThinkLight Button
    512
    Screen Expand
    1024
    Brightness Up/Down Button
    2048
    Volume Up/Down/Mute Button

    dev.acpi_ibm.0.lcd_brightness
    Current brightness level of the display.
    dev.acpi_ibm.0.volume
    Speaker volume.
    dev.acpi_ibm.0.mute
    Indicates, whether the speakers are muted or not.
    dev.acpi_ibm.0.thinklight
    Indicates, whether the ThinkLight keyboard light is activated or not.
    dev.acpi_ibm.0.bluetooth
    Toggle Bluetooth chip activity.
    dev.acpi_ibm.0.wlan
    (read-only) Indicates whether the WLAN chip is active or not.
    dev.acpi_ibm.0.fan
    Indicates whether the fan is in automatic (1) or manual (0) mode. Default is automatic mode. This sysctl should be used with extreme precaution, since disabling automatic fan control might overheat the ThinkPad and lead to permanent damage if the fan_level is not set accordingly.
    dev.acpi_ibm.0.fan_level
    Indicates at what speed the fan should run when being in manual mode. Values are ranging from 0 (off) to 7 (max). The resulting speed differs from model to model. On a T41p this is as follows:

    0
    off
    1, 2
    ~3000 RPM
    3, 4, 5
    ~3600 RPM
    6, 7
    ~4300 RPM

    dev.acpi_ibm.0.fan_speed
    (read-only) Fan speed in rounds per minute. A few older ThinkPads report the fan speed in levels ranging from 0 (off) to 7 (max).
    dev.acpi_ibm.0.thermal
    (read-only) Shows the readings of up to eight different temperature sensors. Most ThinkPads include six or more temperature sensors but only expose the CPU temperature through acpi_thermal4. Some ThinkPads have the below sensor layout which might vary depending on the specific model:

    1. CPU
    2. Mini PCI Module
    3. HDD
    4. GPU
    5. Built-in battery
    6. UltraBay battery
    7. Built-in battery
    8. UltraBay battery

    Defaults for these sysctls can be set in sysctl.conf5.  

    FILES

    /dev/led/thinklight
    ThinkLight led(4) device node

     

    EXAMPLES

    The following can be added to devd.conf5 in order to pass button events to a /usr/local/sbin/acpi_oem_exec.sh script:
    notify 10 {
            match "system"          "ACPI";
            match "subsystem"       "IBM";
            action "/usr/local/sbin/acpi_oem_exec.sh $notify ibm";
    };
    

    A possible /usr/local/sbin/acpi_oem_exec.sh script might look like:

    #!/bin/sh
    #
    if [ "$1" = "" -o "$2" = "" ]
    then
            echo "usage: $0 notify oem_name"
            exit 1
    fi
    NOTIFY=`echo $1`
    LOGGER="logger"
    CALC="bc"
    BC_PRECOMMANDS="scale=2"
    ECHO="echo"
    CUT="cut"
    MAX_LCD_BRIGHTNESS=7
    MAX_VOLUME=14
    OEM=$2
    DISPLAY_PIPE=/tmp/acpi_${OEM}_display
    
    case ${NOTIFY} in
            0x05)
                    LEVEL=`sysctl -n dev.acpi_${OEM}.0.bluetooth`
                    if [ "$LEVEL" = "1" ]
                    then
                            sysctl dev.acpi_${OEM}.0.bluetooth=0
                            MESSAGE="bluetooth disabled"
                    else
                            sysctl dev.acpi_${OEM}.0.bluetooth=1
                            MESSAGE="bluetooth enabled"
                    fi
                    ;;
            0x10|0x11)
                    LEVEL=`sysctl -n dev.acpi_${OEM}.0.lcd_brightness`
                    PERCENT=`${ECHO} "${BC_PRECOMMANDS} ; \
                             ${LEVEL} / ${MAX_LCD_BRIGHTNESS} * 100" |\
                             ${CALC} | ${CUT} -d . -f 1`
                    MESSAGE="brightness level ${PERCENT}%"
                    ;;
            0x12)
                    LEVEL=`sysctl -n dev.acpi_${OEM}.0.thinklight`
                    if [ "$LEVEL" = "1" ]
                    then
                            MESSAGE="thinklight enabled"
                    else
                            MESSAGE="thinklight disabled"
                    fi
                    ;;
            0x15|0x16)
                    LEVEL=`sysctl -n dev.acpi_${OEM}.0.volume`
                    PERCENT=`${ECHO} "${BC_PRECOMMANDS} ; \
                            ${LEVEL} / ${MAX_VOLUME} * 100" | \
                             ${CALC} | ${CUT} -d . -f 1`
                    MESSAGE="volume level ${PERCENT}%"
                    ;;
            0x17)
                    LEVEL=`sysctl -n dev.acpi_${OEM}.0.mute`
                    if [ "$LEVEL" = "1" ]
                    then
                            MESSAGE="volume muted"
                    else
                            MESSAGE="volume unmuted"
                    fi
                    ;;
            *)
                    ;;
    esac
    ${LOGGER} ${MESSAGE}
    if [ -p ${DISPLAY_PIPE} ]
    then
            ${ECHO} ${MESSAGE} >> ${DISPLAY_PIPE} &
    fi
    exit 0
    
     

    SEE ALSO

    acpi(4), led(4), sysctl.conf5, devd(8), sysctl(8)  

    HISTORY

    The device driver first appeared in Fx 6.0 .  

    AUTHORS

    An -nosplit The driver was written by An Takanori Watanabe Aq takawata@FreeBSD.org and later mostly rewritten by An Markus Brueffer Aq markus@FreeBSD.org . This manual page was written by An Christian Brueffer Aq brueffer@FreeBSD.org and An Markus Brueffer Aq markus@FreeBSD.org .


     

    Index

    NAME
    SYNOPSIS
    DESCRIPTION
    Xr devd 8 Ss Events
    Xr led 4 Ss Interface
    SYSCTL VARIABLES
    FILES
    EXAMPLES
    SEE ALSO
    HISTORY
    AUTHORS


    Поиск по тексту MAN-ов: 



      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor