Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

Fujitsu Stylistic ST6012

Help
2010-09-07
2013-05-08
  • Thanks for the great work on this driver and daemon!

    I have a Stylistic ST6012 and most of the buttons work using the ST5xxx mapping. There are 2 sets of buttons on this slate, left and right side. The right-side works nicely, giving this output using input-events 9:

       bustype : BUS_HOST
       vendor  : 0x1734
       product : 0x1
       version : 257
       name    : "fsc tablet buttons"
       phys    : "fsc/input0"
       bits ev : EV_SYN EV_KEY EV_MSC EV_REP
    waiting for events
    12:22:44.617616: EV_MSC code=4 value=15
    12:22:44.617639: EV_KEY KEY_LEFTALT (0x38) pressed
    12:22:44.617643: EV_SYN code=0 value=0
    12:22:45.317154: EV_KEY KEY_LEFTALT (0x38) pressed
    12:22:45.317167: EV_SYN code=0 value=1
    12:22:45.381787: EV_KEY KEY_LEFTALT (0x38) pressed
    12:22:45.381799: EV_SYN code=0 value=1
    12:22:45.445128: EV_KEY KEY_LEFTALT (0x38) pressed
    12:22:45.445135: EV_SYN code=0 value=1
    12:22:45.463576: EV_MSC code=4 value=4
    12:22:45.463598: EV_KEY KEY_MAIL (0x9b) pressed
    12:22:45.463602: EV_SYN code=0 value=0
    12:22:45.603710: EV_KEY KEY_MAIL (0x9b) released
    12:22:45.603726: EV_SYN code=0 value=0
    12:22:45.603731: EV_KEY KEY_LEFTALT (0x38) released
    12:22:45.603735: EV_SYN code=0 value=0
    12:22:46.539801: EV_MSC code=4 value=5
    12:22:46.539824: EV_KEY KEY_DIRECTION (0x99) pressed
    12:22:46.539828: EV_SYN code=0 value=0
    12:22:46.699929: EV_KEY KEY_DIRECTION (0x99) released
    12:22:46.699942: EV_SYN code=0 value=0
    12:22:47.485531: EV_MSC code=4 value=6
    12:22:47.485552: EV_KEY KEY_ESC (0x1) pressed
    12:22:47.485557: EV_SYN code=0 value=0
    ^[12:22:47.620629: EV_KEY KEY_ESC (0x1) released
    12:22:47.620644: EV_SYN code=0 value=0
    12:22:48.546720: EV_MSC code=4 value=7
    12:22:48.546743: EV_KEY KEY_ENTER (0x1c) pressed
    12:22:48.546747: EV_SYN code=0 value=0
    12:22:48.691837: EV_KEY KEY_ENTER (0x1c) released
    12:22:48.691851: EV_SYN code=0 value=0
    ^[[24~timeout, quitting
    

    pressed top-down: ALT, Mail, Rotate, Esc, Enter, FN
    The last one, FN, produces the "^[[24~" as output.

    But the left-side buttons produce no event whatsoever. Looking at input-kbd I'm guessing they should be the up/down keys:
    kris@kris-st6012:~/bin/fjbtndrv-2.1.3$ sudo input-kbd 9
    /dev/input/event9
       bustype : BUS_HOST
       vendor  : 0x1734
       product : 0x1
       version : 257
       name    : "fsc tablet buttons"
       phys    : "fsc/input0"
       bits ev : EV_SYN EV_KEY EV_MSC EV_REP

    map: 12 keys, size: 16/64
    0x0004 = 155  # KEY_MAIL
    0x0005 = 153  # KEY_DIRECTION
    0x0006 =   1  # KEY_ESC
    0x0007 =  28  # KEY_ENTER
    0x0008 = 225  # KEY_BRIGHTNESSUP
    0x0009 = 224  # KEY_BRIGHTNESSDOWN
    0x000a = 108  # KEY_DOWN
    0x000b = 103  # KEY_UP
    0x000c = 177  # KEY_SCROLLUP
    0x000d = 178  # KEY_SCROLLDOWN
    0x000e = 464  # KEY_FN
    0x000f =  56  # KEY_LEFTALT

    Is there any way I can get these keys to respond?
    Also, if you need any info to make the driver ST6012 compatible let me know :)

    best wishes,
    Kris

     
  • Robert Gerlach
    Robert Gerlach
    2010-09-19

    Sorry for the delay.

    I have no hardware to play with. So please try to load a keymap with definitions of 0x01 to 0x0f (without holes) and retry the input-event test.

    0x0001 = 1
    0x0002 = 2
    ...
    0x000f = 15
    

    An example of how to load the keymap is in my wiki (but it seems like you did not need it).

    The FN key seems to be treated by another driver.

      Robert

     
  • Thanks for responding :)

    I tried changing the keymap as described in the wiki, but still no response from the left-side buttons.

    I've even tried to add my model to your source, and set the keymap that way.

    sudo modprobe fsc_btns gives this dmesg:
    fsc_btns: found: Fujitsu Siemens Stylistic ST6012
    input: fsc tablet buttons as /devices/platform/fsc_btns/input/input17
    input: fsc tablet switch as /devices/platform/fsc_btns/input/input18

    kris@kris-st6012:~/bin/fjbtndrv-2.1.3$ sudo input-kbd 9
    /dev/input/event9
       bustype : BUS_HOST
       vendor  : 0x1734
       product : 0x1
       version : 257
       name    : "fsc tablet buttons"
       phys    : "fsc/input0"
       bits ev : EV_SYN EV_KEY EV_MSC EV_REP
    map: 15 keys, size: 16/64
    0x0000 =   2  # KEY_1
    0x0001 =   3  # KEY_2
    0x0002 =   4  # KEY_3
    0x0003 =   5  # KEY_4
    0x0004 =   6  # KEY_5
    0x0005 =   7  # KEY_6
    0x0006 =   8  # KEY_7
    0x0007 =   9  # KEY_8
    0x0008 =  10  # KEY_9
    0x0009 =  30  # KEY_A
    0x000a =  48  # KEY_B
    0x000b =  46  # KEY_C
    0x000c =  32  # KEY_D
    0x000d =  18  # KEY_E
    0x000e =  33  # KEY_F
    

    (looks like I forgot the last one there)
    Pressing the buttons using input-events 9 gave:

    9:02:39.482223: EV_MSC code=4 value=4
    09:02:39.482249: EV_KEY KEY_5 (0x6) pressed
    09:02:39.482254: EV_SYN code=0 value=0
    509:02:39.737446: EV_KEY KEY_5 (0x6) released
    09:02:39.737462: EV_SYN code=0 value=0
    09:02:41.248972: EV_MSC code=4 value=5
    09:02:41.248998: EV_KEY KEY_6 (0x7) pressed
    09:02:41.249003: EV_SYN code=0 value=0
    609:02:41.499202: EV_KEY KEY_6 (0x7) released
    09:02:41.499220: EV_SYN code=0 value=0
    09:02:42.990751: EV_MSC code=4 value=6
    09:02:42.990777: EV_KEY KEY_7 (0x8) pressed
    09:02:42.990782: EV_SYN code=0 value=0
    709:02:43.230959: EV_KEY KEY_7 (0x8) released
    09:02:43.230978: EV_SYN code=0 value=0
    09:02:44.482329: EV_MSC code=4 value=7
    09:02:44.482354: EV_KEY KEY_8 (0x9) pressed
    09:02:44.482359: EV_SYN code=0 value=0
    809:02:44.642455: EV_KEY KEY_8 (0x9) released
    09:02:44.642472: EV_SYN code=0 value=0
    timeout, quitting
    

    (I started with top-right and went down before trying top-left and downwards. The top most right key  did not respond, so that might be the entry I forgot in fsc_btns.c )

    The last key on the right  prompted me to close the window, so this key must be monitored by some other application/driver, like you said.

    The left-side keys did nothing. :(

    Do you have any ideas? The left-side keys work in BIOS and in GRUB, so I know they're not physically dead.

    I also ran xinput -list, but don't know if it's of any use:

    ris@kris-st6012:~/bin/fjbtndrv-2.1.3$ xinput --list
     Virtual core pointer                      id=2    [master pointer  (3)]
    ⎜    Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
    ⎜    HID 0a5c:4503                             id=13   [slave  pointer  (2)]
    ⎜    ImPS/2 Generic Wheel Mouse                id=16   [slave  pointer  (2)]
    ⎜    Serial Wacom Tablet eraser                id=17   [slave  pointer  (2)]
    ⎜    Serial Wacom Tablet                       id=18   [slave  pointer  (2)]
    ⎜    Macintosh mouse button emulation          id=19   [slave  pointer  (2)]
    ⎜    Microsoft Bluetooth Mobile Keyboard 6000  id=20   [slave  pointer  (2)]
     Virtual core keyboard                     id=3    [master keyboard (2)]
         Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
         Power Button                              id=6    [slave  keyboard (3)]
         Fujitsu FUJ02E3                           id=7    [slave  keyboard (3)]
         Video Bus                                 id=8    [slave  keyboard (3)]
         Fujitsu FUJ02B1                           id=9    [slave  keyboard (3)]
         Power Button                              id=10   [slave  keyboard (3)]
         Sleep Button                              id=11   [slave  keyboard (3)]
         HID 0a5c:4502                             id=12   [slave  keyboard (3)]
         AT Translated Set 2 keyboard              id=15   [slave  keyboard (3)]
         fsc tablet buttons                        id=14   [slave  keyboard (3)]
    

    The 2 Fujitsu entries related to video-inputs(?) in lsinput:

    ev/input/event7
       bustype : BUS_HOST
       vendor  : 0x0
       product : 0x6
       version : 0
       name    : "Fujitsu FUJ02B1"
       phys    : "FUJ02B1/video/input0"
       bits ev : EV_SYN EV_KEY
    /dev/input/event8
       bustype : BUS_HOST
       vendor  : 0x0
       product : 0x6
       version : 0
       name    : "Fujitsu FUJ02E3"
       phys    : "FUJ02E3/video/input0"
       bits ev : EV_SYN EV_KEY
    

    The HID 0a5c:4502/3 I'm not sure what is - perhaps related to my bluetooth keyboard.

    dev/input/event5
       bustype : BUS_USB
       vendor  : 0xa5c
       product : 0x4502
       version : 273
       name    : "HID 0a5c:4502"
       phys    : "usb-0000:00:1a.0-1.1/input0"
       uniq    : ""
       bits ev : EV_SYN EV_KEY EV_MSC EV_LED EV_REP
    /dev/input/event6
       bustype : BUS_USB
       vendor  : 0xa5c
       product : 0x4503
       version : 273
       name    : "HID 0a5c:4503"
       phys    : "usb-0000:00:1a.0-1.2/input0"
       uniq    : ""
       bits ev : EV_SYN EV_KEY EV_REL EV_MSC
    

    And the AT Translated Set 2 keyboard I don't know either:

    /dev/input/event4
       bustype : BUS_I8042
       vendor  : 0x1
       product : 0x1
       version : 43841
       name    : "AT Translated Set 2 keyboard"
       phys    : "isa0060/serio0/input0"
       bits ev : EV_SYN EV_KEY EV_MSC EV_LED EV_REP
    

    Do you think the left-side buttons could be physically mapped to something else?
    I have no experience with linux driver-code so any feedback/explanations would be greatly appreciated :)

     
  • Robert Gerlach
    Robert Gerlach
    2010-09-26

    Sorry, no idea. But I have written to Fujitsu and they send me a ST6012 for one week. I hope I can fix this in the week. Right now, I can only ask for patience.

      robert

     
  • Oh, that is nice :) Let me know if there is anything I can do. I do have the win7 partition still, and looks like there is only 1 button device and driver. Here is the little info Win gave me:
    fujitsu button device

    hw-id: acpi/fuj02bf

    bus relations:

    hid\fuj02bf&col01\…

    hid\fuj02bf&col02\…

    i/o-range: fd70-fd7f

    irq:05

    and the driver is called FjBtnDrv.sys, but I have no idea how to reverse engineer that :/
    btw my email is kris (a) nupi (.) no