From owner-freebsd-mobile@FreeBSD.ORG Sun Apr 13 15:45:20 2008 Return-Path: Delivered-To: freebsd-mobile@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DC4A91065670 for ; Sun, 13 Apr 2008 15:45:19 +0000 (UTC) (envelope-from dan@langille.org) Received: from nyi.unixathome.org (nyi.unixathome.org [64.147.113.42]) by mx1.freebsd.org (Postfix) with ESMTP id 71CD08FC17 for ; Sun, 13 Apr 2008 15:45:19 +0000 (UTC) (envelope-from dan@langille.org) Received: from localhost (localhost [127.0.0.1]) by nyi.unixathome.org (Postfix) with ESMTP id BE05F5098D; Sun, 13 Apr 2008 16:45:14 +0100 (BST) X-Virus-Scanned: amavisd-new at unixathome.org Received: from nyi.unixathome.org ([127.0.0.1]) by localhost (nyi.unixathome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id NN+Q7t7RA8ga; Sun, 13 Apr 2008 16:45:12 +0100 (BST) Received: from laptop.unixathome.org (bast.unixathome.org [72.94.192.69]) by nyi.unixathome.org (Postfix) with ESMTPSA id 4DCE2508CD; Sun, 13 Apr 2008 16:45:08 +0100 (BST) Message-ID: <48022A8F.3010703@langille.org> Date: Sun, 13 Apr 2008 11:45:19 -0400 From: Dan Langille Organization: The FreeBSD Diary User-Agent: Thunderbird 2.0.0.12 (X11/20080321) MIME-Version: 1.0 To: Alberto Rizzi , freebsd-mobile@freebsd.org References: <47ED5BF7.2000109@fastmail.fm> In-Reply-To: <47ED5BF7.2000109@fastmail.fm> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Cc: Subject: Re: ThinkPad X61s functions keys X-BeenThere: freebsd-mobile@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Mobile computing with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Apr 2008 15:45:20 -0000 Elsewhere in this thread I had stated I'd solved the problem. I'm posting the details here. Alberto Rizzi wrote: > Dan Langille ha scritto: >> Hi, >> >> Running FreeBSD 7.0-RELEASE on a ThinkPad X61s. >> >> Some keys do not work: >> >> - volume adjustment >> - screen brightness (FN HOME, FN END) >> >> The keyboard light does work (FN-PgUp) as does >> Numeric Lock (FN ScrLk). >> >> What can I do to help diagnose the issue so we can get these >> functions working? >> > Have the same problem with a Thinkpad T61 > If you read man acpi_ibm there is a partial solution > > You have to load acpi_ibm at boot. Add > acpi_ibm_load="YES" > to /boot/loader.conf This is loaded: $ kldstat Id Refs Address Size Name 1 15 0xffffffff80100000 ac6c08 kernel 2 1 0xffffffff80bc7000 39138 linux.ko 3 1 0xffffffff80c01000 7108 if_tap.ko 4 1 0xffffffff80c09000 1a670 snd_hda.ko 5 2 0xffffffff80c24000 673b8 sound.ko 6 1 0xffffffff80c8c000 53d0 acpi_ibm.ko 7 1 0xffffffffb16e4000 4b61 i915.ko 8 1 0xffffffffb16e9000 d5d8 drm.ko > > Then activate event passing to devd. Add > dev.acpi_ibm.0.events=1 > to /etc/sysctl.conf I cannot get this set to 1 after boot: $ grep ibm /etc/sysctl.conf dev.acpi_ibm.0.events=1 $ sysctl dev.acpi_ibm.0.events dev.acpi_ibm.0.events: 0 Under these circumstances, the keys will not work. If I manually set the events flag: $ sudo sysctl dev.acpi_ibm.0.events=1 Password: dev.acpi_ibm.0.events: 0 -> 1 $ sysctl dev.acpi_ibm.0.events dev.acpi_ibm.0.events: 1 Then the brightness keys start working > > Then tell devd that you want to get events. Add > notify 10 { > match "system" "ACPI"; > match "subsystem" "IBM"; > action "/usr/local/sbin/acpi_oem_exec.sh $notify ibm"; > } This was the missing key. The last line needs a trailing ; Once I added that in, things started working. > > to /etc/devd.conf > > Now you have to create that script > ---------- > #!/bin/sh > NOTIFY=`echo $1` > ECHO="echo" > CALC="bc" > > case ${NOTIFY} in > 0x10) > LEVEL=`sysctl -n dev.acpi_ibm.0.lcd_brightness` > PERCENT=`${ECHO} "${LEVEL} + 1" | ${CALC}` > MESSAGE="brightness level ${PERCENT}" > sysctl dev.acpi_ibm.0.lcd_brightness=${PERCENT} > ;; > 0x11) > LEVEL=`sysctl -n dev.acpi_ibm.0.lcd_brightness` > PERCENT=`${ECHO} "${LEVEL} - 1" | ${CALC}` > MESSAGE="brightness level ${PERCENT}" > sysctl dev.acpi_ibm.0.lcd_brightness=${PERCENT} > ;; > *) > ;; > esac > echo `date` >> /tmp/prova > ${ECHO} ${LEVEL} ${NOTIFY} ${MESSAGE} >> /tmp/prova > exit 0 > > ------- > If you leave the last two debug line, with a tail -f /tmp/prova you can > check the events sent to devd. > > With this script you can change the brightness both under console and > under xorg but you are bound to 8 levels (0 - 7) > If you want 100 levels you can use xbacklight under xorg only and modify > the script to use xbacklight instead of sysctl > > Mute and volume keys don't send events to devd: I don't know why but if > I press mute it works and dev.acpi_ibm.0.mute becomes 1 > If I press volume up or down, dev.acpi_ibm.0.mute becomes 0 Using the Fn key and pressing the F1-F12 keys, I get the following log entrys in /tmp/prova: Sun Apr 13 11:39:48 EDT 2008 0x01 Sun Apr 13 11:39:48 EDT 2008 0x02 Sun Apr 13 11:39:49 EDT 2008 0x03 Sun Apr 13 11:39:50 EDT 2008 0x05 Sun Apr 13 11:39:50 EDT 2008 0x06 Sun Apr 13 11:39:50 EDT 2008 0x07 Sun Apr 13 11:39:54 EDT 2008 0x08 Sun Apr 13 11:39:54 EDT 2008 0x09 Sun Apr 13 11:39:55 EDT 2008 0x0b Sun Apr 13 11:39:55 EDT 2008 0x0c Note the following exceptions which can be observed from the above log entries: Fn-F4 - sleep: does not give any log entry Fn-F10 - unlabelled on the keyboard, gives no log entry Other Fn key results: SysReq - no log entry, no effect seen NumLk - no log entry but system goes into NumLock mode Pause - no log entry, no effect seen ThinkLight - works, and creates a log entry 0x12 Spacebar - create log entry 0x14