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.


Fujitsu Stylistic ST6012

  • 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
       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,

  • Robert Gerlach
    Robert Gerlach

    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.


  • 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
       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:

       bustype : BUS_HOST
       vendor  : 0x0
       product : 0x6
       version : 0
       name    : "Fujitsu FUJ02B1"
       phys    : "FUJ02B1/video/input0"
       bits ev : EV_SYN EV_KEY
       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.

       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
       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:

       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

    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.


  • 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:



    i/o-range: fd70-fd7f


    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