Date: Sun, 14 Mar 2010 16:23:25 +0100 From: Hans Petter Selasky <hselasky@c2i.net> To: Steven Noonan <steven@uplinklabs.net> Cc: freebsd-gnats-submit@freebsd.org, Christoph Langguth <christoph@rosenkeller.org>, freebsd-usb@freebsd.org Subject: Re: usb/144414: Apple "Fn" key doesn't work properly Message-ID: <201003141623.25160.hselasky@c2i.net> In-Reply-To: <f488382f1003140749n30df2f7ai64d27f6c6211527@mail.gmail.com> References: <201003141030.o2EAU40v018339@freefall.freebsd.org> <20100314144601.GA2534@viskning> <f488382f1003140749n30df2f7ai64d27f6c6211527@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sunday 14 March 2010 15:49:37 Steven Noonan wrote: > On Sun, Mar 14, 2010 at 6:46 AM, Kai Wang <kaiwang27@gmail.com> wrote: > > On Sun, Mar 14, 2010 at 06:37:04AM -0800, Steven Noonan wrote: > >> On Sun, Mar 14, 2010 at 6:27 AM, Hans Petter Selasky <hselasky@c2i.net> wrote: > >> > On Sunday 14 March 2010 15:01:39 Steven Noonan wrote: > >> >> On Sun, Mar 14, 2010 at 5:48 AM, Hans Petter Selasky > >> >> <hselasky@c2i.net> > >> > > >> > wrote: > >> >> > On Sunday 14 March 2010 14:22:33 Steven Noonan wrote: > >> >> >> On Sun, Mar 14, 2010 at 3:01 AM, Hans Petter Selasky > >> >> >> <hselasky@c2i.net> > >> >> > > >> >> > wrote: > >> >> >> > On Sunday 14 March 2010 11:30:04 Steven Noonan wrote: > >> >> >> >> The following reply was made to PR usb/144414; it has been > >> >> >> >> noted by GNATS. > >> >> >> >> > >> >> >> >> From: Steven Noonan <steven@uplinklabs.net> > >> >> >> >> To: perryh@pluto.rain.com > >> >> >> >> Cc: freebsd-usb@freebsd.org, freebsd-gnats-submit@freebsd.org > >> >> >> >> Subject: Re: usb/144414: Apple "Fn" key doesn't work properly > >> >> >> >> Date: Sun, 14 Mar 2010 03:26:19 -0700 > >> >> >> >> > >> >> >> >> On Thu, Mar 4, 2010 at 12:01 AM, Steven Noonan > >> >> >> >> <steven@uplinklabs.net> wrot= > >> >> >> >> > >> >> >> >> e: > >> >> >> >> > On Wed, Mar 3, 2010 at 11:00 PM, Steven Noonan > >> >> >> >> <steven@uplinklabs.net> > wr= > >> >> >> >> > >> >> >> >> ote: > >> >> >> >> >> On Wed, Mar 3, 2010 at 10:36 PM, > >> >> >> >> =C2=A0<perryh@pluto.rain.com> wrote: >>> Steven Noonan > >> >> >> >> <steven@uplinklabs.net> wrote: >>>> Interestingly, my tilde key > >> >> >> >> doesn't work either (though the key >>>> press is detected, no > >> >> >> >> character shows when the key is pressed). >>> > >> >> >> >> >>> Any chance it is configured as a "dead" key? =C2=A0If you > >> >> >> >> press >>> tilde followed by n do you get an n with a tilde over > >> >> >> >> it? >> > >> >> >> >> >> Nope. It simply does nothing in the console. > >> >> >> >> >> > >> >> >> >> >> But in X11, it does something very odd. Shift+Tilde Key > >> >> >> >> gives me '>', >> and Tilde Key gives me '<'. And Alt+Tilde > >> >> >> >> gives me... What? I don't >> even know what action. It's > >> >> >> >> grabbing some arbitrary command in my >> .bash_history. It gave > >> >> >> >> me the first item in my .bash_history the first >> time I tried > >> >> >> >> it. Then I tried an arbitrary command ("echo"), and then >> > >> >> >> >> Alt+Tilde gave me the second command in my .bash_history. Whaa? > >> >> >> >> > >> >> >> >> Any more ideas/news on this from anyone? > >> >> >> >> > >> >> >> >> The tilde key thing is especially irritating. > >> >> >> > > >> >> >> > static uint8_t > >> >> >> > ukbd_apple_swap(uint8_t keycode) { > >> >> >> > switch (keycode) { > >> >> >> > case 0x35: return 0x64; > >> >> >> > case 0x64: return 0x35; > >> >> >> > default: return keycode; > >> >> >> > } > >> >> >> > } > >> >> >> > > >> >> >> > Can you try to change the function above in ukbd.c to only > >> >> >> > return keycode? Any difference? > >> >> >> > >> >> >> Yep, commenting the two case lines brought my tilde key back. Any > >> >> >> idea what the ukbd_apple_swap() function was _supposed_ to be > >> >> >> doing? > >> >> >> > >> >> >> Also, there's only one thing left (input-wise) that I can't get to > >> >> >> work, and that's the 'delete' key (Fn+Backspace). I'm pretty > >> >> >> certain that it's not a problem with Fn+Backspace failing to map > >> >> >> to Delete, because my non-Mac i386 box has the same problem. > >> >> >> > >> >> >> Everything I read online keeps saying to muck with an .inputrc > >> >> >> file (for bash, anyway), but I haven't been able to get it to > >> >> >> work. Places I've looked have said to add this to .inputrc: > >> >> >> > >> >> >> "\e[3~": delete-char > >> >> >> > >> >> >> But this seems to have no effect (and I tried bind -f .inputrc in > >> >> >> case my INPUTRC environment variable wasn't working). Is there > >> >> >> something FreeBSD-specific I'm not seeing, or what? > >> >> >> > >> >> >> - Steven > >> >> > > >> >> > Hi Steven, > >> >> > > >> >> > Can you talk this over with Christoph and send me a patch when you > >> >> > agreed? He's the one that made the Apple-SWAP key patch. Meanwhile > >> >> > I suggest the following patch: > >> >> > > >> >> > ==== //depot/projects/usb/src/sys/dev/usb/input/ukbd.c#47 - > >> >> > src/sys/dev/usb/input/ukbd.c ==== > >> >> > @@ -896,8 +896,7 @@ > >> >> > hid_input, 0, &sc->sc_loc_apple_fn, &flags, > >> >> > &temp_id)) { > >> >> > if (flags & HIO_VARIABLE) > >> >> > - sc->sc_flags |= UKBD_FLAG_APPLE_FN > >> >> > | - UKBD_FLAG_APPLE_SWAP; > >> >> > + sc->sc_flags |= UKBD_FLAG_APPLE_FN; > >> >> > DPRINTFN(1, "Found Apple FN-key\n"); > >> >> > apple_keys = 1; > >> >> > sc->sc_kbd_id = temp_id; > >> >> > > >> >> > > >> >> > The hardware that Christoph was using had an Eject-key, while yours > >> >> > didn't. I think the patch above will make both cases work. > >> >> > > >> >> > Christoph, do you have any comments? > >> >> > > >> >> > http://p4db.freebsd.org/fileViewer.cgi?FSPC=//depot/projects/usb/sr > >> >> >c/sys/ dev/usb/input/ukbd.c&REV=47 > >> >> > >> >> Not quite true, my keyboard _does_ have an Eject key. The code > >> >> doesn't detect it though. > >> >> > >> >> - Steven > >> > > >> > Could you try to figure out what key-press number corresponds to the > >> > eject key? > >> > > >> > --HPS > >> > >> I'm not certain how to do so. It's somewhat of a chicken-and-the-egg > >> problem: unless it detects that the key is there, I can't find it. > >> Enabling 'hw.usb.ukbd.debug' doesn't print anything when Eject is > >> pressed. > > > > It's very possible that your Eject key is in a separate interface and > > is handled by uhid(4) instead of ukbd(4). > > > > /Kai > > Enabling 'hw.usb.uhid.debug' doesn't print anything on an Eject > keypress either, but that could just mean that uhid(4) doesn't have > necessary DPRINTFs to show it. > > - Steven > You need to open /dev/uhidX before it will print anything. --HPS
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201003141623.25160.hselasky>