Corentin Chary | 6ce2c9d | 2009-08-28 12:56:54 +0000 | [diff] [blame] | 1 | Asus Laptop Extras |
| 2 | |
| 3 | Version 0.1 |
| 4 | August 6, 2009 |
| 5 | |
| 6 | Corentin Chary <corentincj@iksaif.net> |
| 7 | http://acpi4asus.sf.net/ |
| 8 | |
| 9 | This driver provides support for extra features of ACPI-compatible ASUS laptops. |
| 10 | It may also support some MEDION, JVC or VICTOR laptops (such as MEDION 9675 or |
| 11 | VICTOR XP7210 for example). It makes all the extra buttons generate standard |
| 12 | ACPI events that go through /proc/acpi/events and input events (like keyboards). |
| 13 | On some models adds support for changing the display brightness and output, |
| 14 | switching the LCD backlight on and off, and most importantly, allows you to |
| 15 | blink those fancy LEDs intended for reporting mail and wireless status. |
| 16 | |
| 17 | This driver supercedes the old asus_acpi driver. |
| 18 | |
| 19 | Requirements |
| 20 | ------------ |
| 21 | |
| 22 | Kernel 2.6.X sources, configured for your computer, with ACPI support. |
| 23 | You also need CONFIG_INPUT and CONFIG_ACPI. |
| 24 | |
| 25 | Status |
| 26 | ------ |
| 27 | |
| 28 | The features currently supported are the following (see below for |
| 29 | detailed description): |
| 30 | |
| 31 | - Fn key combinations |
| 32 | - Bluetooth enable and disable |
| 33 | - Wlan enable and disable |
| 34 | - GPS enable and disable |
| 35 | - Video output switching |
| 36 | - Ambient Light Sensor on and off |
| 37 | - LED control |
| 38 | - LED Display control |
| 39 | - LCD brightness control |
| 40 | - LCD on and off |
| 41 | |
| 42 | A compatibility table by model and feature is maintained on the web |
| 43 | site, http://acpi4asus.sf.net/. |
| 44 | |
| 45 | Usage |
| 46 | ----- |
| 47 | |
| 48 | Try "modprobe asus_acpi". Check your dmesg (simply type dmesg). You should |
| 49 | see some lines like this : |
| 50 | |
| 51 | Asus Laptop Extras version 0.42 |
| 52 | L2D model detected. |
| 53 | |
| 54 | If it is not the output you have on your laptop, send it (and the laptop's |
| 55 | DSDT) to me. |
| 56 | |
| 57 | That's all, now, all the events generated by the hotkeys of your laptop |
| 58 | should be reported in your /proc/acpi/event entry. You can check with |
| 59 | "acpi_listen". |
| 60 | |
| 61 | Hotkeys are also reported as input keys (like keyboards) you can check |
| 62 | which key are supported using "xev" under X11. |
| 63 | |
| 64 | You can get informations on the version of your DSDT table by reading the |
| 65 | /sys/devices/platform/asus-laptop/infos entry. If you have a question or a |
| 66 | bug report to do, please include the output of this entry. |
| 67 | |
| 68 | LEDs |
| 69 | ---- |
| 70 | |
| 71 | You can modify LEDs be echoing values to /sys/class/leds/asus::*/brightness : |
| 72 | echo 1 > /sys/class/leds/asus::mail/brightness |
| 73 | will switch the mail LED on. |
| 74 | You can also know if they are on/off by reading their content and use |
| 75 | kernel triggers like ide-disk or heartbeat. |
| 76 | |
| 77 | Backlight |
| 78 | --------- |
| 79 | |
| 80 | You can control lcd backlight power and brightness with |
| 81 | /sys/class/backlight/asus-laptop/. Brightness Values are between 0 and 15. |
| 82 | |
| 83 | Wireless devices |
| 84 | --------------- |
| 85 | |
| 86 | You can turn the internal Bluetooth adapter on/off with the bluetooth entry |
| 87 | (only on models with Bluetooth). This usually controls the associated LED. |
| 88 | Same for Wlan adapter. |
| 89 | |
| 90 | Display switching |
| 91 | ----------------- |
| 92 | |
| 93 | Note: the display switching code is currently considered EXPERIMENTAL. |
| 94 | |
| 95 | Switching works for the following models: |
| 96 | L3800C |
| 97 | A2500H |
| 98 | L5800C |
| 99 | M5200N |
| 100 | W1000N (albeit with some glitches) |
| 101 | M6700R |
| 102 | A6JC |
| 103 | F3J |
| 104 | |
| 105 | Switching doesn't work for the following: |
| 106 | M3700N |
| 107 | L2X00D (locks the laptop under certain conditions) |
| 108 | |
| 109 | To switch the displays, echo values from 0 to 15 to |
| 110 | /sys/devices/platform/asus-laptop/display. The significance of those values |
| 111 | is as follows: |
| 112 | |
| 113 | +-------+-----+-----+-----+-----+-----+ |
| 114 | | Bin | Val | DVI | TV | CRT | LCD | |
| 115 | +-------+-----+-----+-----+-----+-----+ |
| 116 | + 0000 + 0 + + + + + |
| 117 | +-------+-----+-----+-----+-----+-----+ |
| 118 | + 0001 + 1 + + + + X + |
| 119 | +-------+-----+-----+-----+-----+-----+ |
| 120 | + 0010 + 2 + + + X + + |
| 121 | +-------+-----+-----+-----+-----+-----+ |
| 122 | + 0011 + 3 + + + X + X + |
| 123 | +-------+-----+-----+-----+-----+-----+ |
| 124 | + 0100 + 4 + + X + + + |
| 125 | +-------+-----+-----+-----+-----+-----+ |
| 126 | + 0101 + 5 + + X + + X + |
| 127 | +-------+-----+-----+-----+-----+-----+ |
| 128 | + 0110 + 6 + + X + X + + |
| 129 | +-------+-----+-----+-----+-----+-----+ |
| 130 | + 0111 + 7 + + X + X + X + |
| 131 | +-------+-----+-----+-----+-----+-----+ |
| 132 | + 1000 + 8 + X + + + + |
| 133 | +-------+-----+-----+-----+-----+-----+ |
| 134 | + 1001 + 9 + X + + + X + |
| 135 | +-------+-----+-----+-----+-----+-----+ |
| 136 | + 1010 + 10 + X + + X + + |
| 137 | +-------+-----+-----+-----+-----+-----+ |
| 138 | + 1011 + 11 + X + + X + X + |
| 139 | +-------+-----+-----+-----+-----+-----+ |
| 140 | + 1100 + 12 + X + X + + + |
| 141 | +-------+-----+-----+-----+-----+-----+ |
| 142 | + 1101 + 13 + X + X + + X + |
| 143 | +-------+-----+-----+-----+-----+-----+ |
| 144 | + 1110 + 14 + X + X + X + + |
| 145 | +-------+-----+-----+-----+-----+-----+ |
| 146 | + 1111 + 15 + X + X + X + X + |
| 147 | +-------+-----+-----+-----+-----+-----+ |
| 148 | |
| 149 | In most cases, the appropriate displays must be plugged in for the above |
| 150 | combinations to work. TV-Out may need to be initialized at boot time. |
| 151 | |
| 152 | Debugging: |
| 153 | 1) Check whether the Fn+F8 key: |
| 154 | a) does not lock the laptop (try disabling CONFIG_X86_UP_APIC or boot with |
| 155 | noapic / nolapic if it does) |
| 156 | b) generates events (0x6n, where n is the value corresponding to the |
| 157 | configuration above) |
| 158 | c) actually works |
| 159 | Record the disp value at every configuration. |
| 160 | 2) Echo values from 0 to 15 to /sys/devices/platform/asus-laptop/display. |
| 161 | Record its value, note any change. If nothing changes, try a broader range, |
| 162 | up to 65535. |
| 163 | 3) Send ANY output (both positive and negative reports are needed, unless your |
| 164 | machine is already listed above) to the acpi4asus-user mailing list. |
| 165 | |
| 166 | Note: on some machines (e.g. L3C), after the module has been loaded, only 0x6n |
| 167 | events are generated and no actual switching occurs. In such a case, a line |
| 168 | like: |
| 169 | |
| 170 | echo $((10#$arg-60)) > /sys/devices/platform/asus-laptop/display |
| 171 | |
| 172 | will usually do the trick ($arg is the 0000006n-like event passed to acpid). |
| 173 | |
| 174 | Note: there is currently no reliable way to read display status on xxN |
| 175 | (Centrino) models. |
| 176 | |
| 177 | LED display |
| 178 | ----------- |
| 179 | |
| 180 | Some models like the W1N have a LED display that can be used to display |
| 181 | several informations. |
| 182 | |
| 183 | LED display works for the following models: |
| 184 | W1000N |
| 185 | W1J |
| 186 | |
| 187 | To control the LED display, use the following : |
| 188 | |
| 189 | echo 0x0T000DDD > /sys/devices/platform/asus-laptop/ |
| 190 | |
| 191 | where T control the 3 letters display, and DDD the 3 digits display, |
| 192 | according to the tables below. |
| 193 | |
| 194 | DDD (digits) |
| 195 | 000 to 999 = display digits |
| 196 | AAA = --- |
| 197 | BBB to FFF = turn-off |
| 198 | |
| 199 | T (type) |
| 200 | 0 = off |
| 201 | 1 = dvd |
| 202 | 2 = vcd |
| 203 | 3 = mp3 |
| 204 | 4 = cd |
| 205 | 5 = tv |
| 206 | 6 = cpu |
| 207 | 7 = vol |
| 208 | |
| 209 | For example "echo 0x01000001 >/sys/devices/platform/asus-laptop/ledd" |
| 210 | would display "DVD001". |
| 211 | |
| 212 | Driver options: |
| 213 | --------------- |
| 214 | |
| 215 | Options can be passed to the asus-laptop driver using the standard |
| 216 | module argument syntax (<param>=<value> when passing the option to the |
| 217 | module or asus-laptop.<param>=<value> on the kernel boot line when |
| 218 | asus-laptop is statically linked into the kernel). |
| 219 | |
| 220 | wapf: WAPF defines the behavior of the Fn+Fx wlan key |
| 221 | The significance of values is yet to be found, but |
| 222 | most of the time: |
| 223 | - 0x0 should do nothing |
| 224 | - 0x1 should allow to control the device with Fn+Fx key. |
| 225 | - 0x4 should send an ACPI event (0x88) while pressing the Fn+Fx key |
| 226 | - 0x5 like 0x1 or 0x4 |
| 227 | |
| 228 | The default value is 0x1. |
| 229 | |
| 230 | Unsupported models |
| 231 | ------------------ |
| 232 | |
| 233 | These models will never be supported by this module, as they use a completely |
| 234 | different mechanism to handle LEDs and extra stuff (meaning we have no clue |
| 235 | how it works): |
| 236 | |
| 237 | - ASUS A1300 (A1B), A1370D |
| 238 | - ASUS L7300G |
| 239 | - ASUS L8400 |
| 240 | |
| 241 | Patches, Errors, Questions: |
| 242 | -------------------------- |
| 243 | |
| 244 | I appreciate any success or failure |
| 245 | reports, especially if they add to or correct the compatibility table. |
| 246 | Please include the following information in your report: |
| 247 | |
| 248 | - Asus model name |
| 249 | - a copy of your ACPI tables, using the "acpidump" utility |
| 250 | - a copy of /sys/devices/platform/asus-laptop/infos |
| 251 | - which driver features work and which don't |
| 252 | - the observed behavior of non-working features |
| 253 | |
| 254 | Any other comments or patches are also more than welcome. |
| 255 | |
| 256 | acpi4asus-user@lists.sourceforge.net |
| 257 | http://sourceforge.net/projects/acpi4asus |
| 258 | |