On Sun, 13 Apr 2008, Dan Langille wrote:
> Elsewhere in this thread I had stated I'd solved the
problem. I'm
> posting the details here.
We've been waiting with bated breath
> 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
Strange if that doesn't work. Can you check your
/var/log/console.log
(assuming you've got 'console.info /var/log/console.log' in
syslog.conf)
which should show the transition, or at least the attempt,
eg:
Apr 1 02:51:32 paqi kernel: vfs.usermount:
Apr 1 02:51:32 paqi kernel: 0
Apr 1 02:51:32 paqi kernel: ->
Apr 1 02:51:32 paqi kernel: 1
Apr 1 02:51:32 paqi kernel:
Apr 1 02:51:32 paqi kernel: hw.snd.verbose:
Apr 1 02:51:32 paqi kernel: 1
Apr 1 02:51:32 paqi kernel: ->
Apr 1 02:51:32 paqi kernel: 2
> $ 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
You could, if maybe sysctl.conf is being run too early (?),
try adding
'sysctl dev.acpi_ibm.0.events=1' to /etc/rc.local, which, as
I recall,
also reports into console.log
> > 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.
Fussy, ain't it.
> > to /etc/devd.conf
> >
> > Now you have to create that script
> > ----------
> > #!/bin/sh
> > NOTIFY=`echo $1`
> > ECHO="echo"
> > CALC="bc"
> >
> > case $ in
> > 0x10)
> > LEVEL=`sysctl -n
dev.acpi_ibm.0.lcd_brightness`
> > PERCENT=`$ "$ + 1"
| $`
> > MESSAGE="brightness level
$"
> > sysctl
dev.acpi_ibm.0.lcd_brightness=$
> > ;;
> > 0x11)
> > LEVEL=`sysctl -n
dev.acpi_ibm.0.lcd_brightness`
> > PERCENT=`$ "$ - 1"
| $`
> > MESSAGE="brightness level
$"
> > sysctl
dev.acpi_ibm.0.lcd_brightness=$
> > ;;
> > *)
> > ;;
> > esac
> > echo `date` >> /tmp/prova
> > $ $ $ $ >>
/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
Are the bits for these keys set in .availmask, or posted to
.eventmask?
> 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
Does Fn-F4 (still?) act as sleep (suspend-to-RAM)? ie
does/did STR
work on your X61s, and does dev.acpi_ibm.0.events=1 affect
that at all?
You might like to compare your results with Beto's Z60m at:
http://lists.freebsd.org/mailman/ht
dig/freebsd-mobile/2006-August/008959.html
and also his earlier reference:
http://lists.freebsd.org/pipermail/free
bsd-mobile/2006-August/008948.html
where a) he gets to use Fn-F4 for a custom sleep script, b)
also found
that Fn-F10 does nothing, but c) gets events from volume and
mute keys.
> 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
On my T23, Pause does nothing in X, but (same as
NumLk/ScrollLock key
pressed without Fn) works as the scroll lock in a vty. Also
on mine,
Fn-F7 switches between LCD/Monitor/both.
> ThinkLight - works, and creates a log entry 0x12
> Spacebar - create log entry 0x14
Weird about the sysctl not getting set from sysctl.conf
though ..
cheers, Ian
_______________________________________________
freebsd-mobile freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-mobile
To unsubscribe, send any mail to
"freebsd-mobile-unsubscribe freebsd.org"
|