[Dev] Keyboard issues with Weston and AGL application suite

Leon Anavi leon.anavi at konsulko.com
Mon Oct 19 15:32:56 GMT 2015


Hi Derek,

On 19.10.2015 17:16, Derek Foreman wrote:
> On 19/10/15 04:44 AM, Leon Anavi wrote:
>> Hi Derek,
>>
>> On 14.10.2015 23:37, Leon Anavi wrote:
>>> Hi Derek,
>>>
>>> On 14.10.2015 20:11, Derek Foreman wrote:
>>>> On 14/10/15 05:31 AM, Leon Anavi wrote:
>>>>> Hi Derek, All,
>>>>>
>>>>> Derek, I am experiencing similar issues with weston-keyboard as in your
>>>>> article "When is a Keyboard Not a Keyboard?" which has been
>>>>> published at
>>>>> Samsung OSG blog.
>>>>>
>>>>> Could you please provide me help how to get Weston 1.6 working with the
>>>>> virtual weston-keyboard in the HTML5 apps from the AGL app suite when
>>>>> hardware keyboard is not present?
>>>> Looks like a bug I fixed last December, actually:
>>>> http://cgit.freedesktop.org/wayland/weston/commit/?id=f0aaa417
>>>>
>>>> Fairly small so it might be an easy forward port...
>>> Thank you for the provided feedback.
>>>
>>> I applied a patch with this bug fix to Weston 1.6 but I am still
>>> experiencing the same issue (as described in my previous email). It is
>>> a bit late here so I will continue debugging it tomorrow.
>> After further exploration of various log files I noticed that the issues
>> while running AGL app suite on Tizen with Crosswalk, Wayland and Weston
>> 1.6 do not appear if an event from /dev/input is detected as a keyboard.
>> As a work around a colleague from Konsulko Group defined a GPIO as a key
>> at the device tree. This way the GPIO is detected by Weston as a keyboard:
> That's quite clever, and I'll try to remember it. :)

Yes, thank you, I am lucky to work with experienced kernel developers at 
Konsulko Group :)

>
> Last time someone asked me for a way to create fake keyboard presence, I
> suggested writing a program with uinput - but if you've got control over
> your device tree your approach is much simpler.

Yes, uinput was next on my list for a work around.

>> [00:00:08.831] input device 'gpio-keys.22', /dev/input/event1 is a keyboard
>>
>> The configuration of Weston is:
>>
>> [input-method]
>> path=/usr/libexec/weston-keyboard
>>
>> [keyboard]
>> keymap_layout=us
>>
>> Derek, in this case we are using the behavior described in your article
>> "When is a Keyboard Not a Keyboard" for the work around. Please let me
>> know how can I help you find and fix the root cause of the problem as it
>> seems to be a Weston issue.
> It's definitely a weston issue and not one of configuration, but it's
> hard to tell if it's already been fixed upstream.
>
> Do you have (or can you easily build) weston-editor for your platform?
> It's part of the weston repository...  If you can reproduce the crash
> with that then I can reproduce it on my desktop here and fix it promptly.
>
> A backtrace of weston when it fails would also be quite helpful.
>
> Is it possible to build an image that can reproduce this problem that
> runs on an intel machine?  I have an old laptop I could re-image (I can
> knock the keyboard device registration bits out of weston to mimic lack
> of keyboard presence easily enough...)

Yes, I can build an image for Intel machines. I am not sure if the bug 
will appear on them. In general it should be possible to boot this Tizen 
image from USB stick. Btw, based on my experience Intel NUC and 
MinnowBoard MAX are useful for testing Tizen 3 on Intel. I will give it 
a try.

>
> I also have a beaglebone black and an rpi2 on hand if either of those
> could reproduce it, but the rpi2 tizen port has some crosswalk issues
> that will likely make this untestable.

Yes, there are some issues with Crosswalk on Raspberry Pi 2 therefore 
you cannot reproduce the issue on it.

The environment in my case is a bit more complicated because I am 
working on i.MX6 devices and I had to apply some patches on Wayland / 
Weston 1.6 to get it working with hardware graphics acceleration.

You should be able to reproduce the bug on HummingBoard if you had one 
and if you disable gpio_ir_recv (cause Weston detects it as a keyboard):
https://wiki.tizen.org/wiki/HummingBoard#Building_Tizen:Common_with_Yocto

Best regards,
Leon

>
>> Best regards,
>> Leon
>>
>>> Thanks,
>>> Leon
>>>
>>>> Hope that helps a bit,
>>>> Derek
>>>>
>>>>> In my case Weston keeps crashing when I type in HTML5 input fields from
>>>>> the AGL apps through the virtual weston-keyboard if no hardware
>>>>> keyboard
>>>>> is attached. I am working on a Tizen image that contains Wayland and
>>>>> Weston 1.6, Crosswalk 11.40.277.0 and libinput 0.6.0. Please have a
>>>>> look
>>>>> at my test cases for more details:
>>>>>
>>>>> * Test case 1, weston.ini:
>>>>>
>>>>> [input-method]
>>>>> path=/usr/libexec/weston-keyboard
>>>>>
>>>>> [keyboard]
>>>>> keymap_layout=wkb
>>>>>
>>>>> Results:
>>>>>
>>>>> 1.1. No hardware keyboard: FAIL
>>>>> Weston crashes when the user tries to launch Browser from the
>>>>> Homescreen
>>>>> app:
>>>>>
>>>>> [00:00:32.676] caught signal: 11
>>>>>
>>>>> 1.2. With hardware keyboard: FAIL
>>>>>
>>>>> Weston detects the hardware keyboard:
>>>>>
>>>>> [00:00:07.480] input device 'SEM USB Keyboard', /dev/input/event0 is a
>>>>> keyboard
>>>>> [00:00:07.481] input device 'SEM USB Keyboard', /dev/input/event1 is a
>>>>> keyboard
>>>>>
>>>>> Weston crashes when the user tries to launch Browser from the
>>>>> Homescreen
>>>>> app:
>>>>>
>>>>> [00:00:49.925] caught signal: 11
>>>>>
>>>>>
>>>>> * Test case 2, weston.ini:
>>>>>
>>>>> [input-method]
>>>>> path=
>>>>>
>>>>> [keyboard]
>>>>> keymap_layout=wkb
>>>>>
>>>>> Results:
>>>>> 2.1. No hardware keyboard: OK with remark - there is no virtual
>>>>> keyboard
>>>>> (as expected) so there is no way to type.
>>>>>
>>>>> 2.2. With hardware keyboard: FAIL
>>>>>
>>>>> Weston detects the hardware keyboard:
>>>>>
>>>>> [00:00:06.586] input device 'SEM USB Keyboard', /dev/input/event0 is a
>>>>> keyboard
>>>>> [00:00:06.587] input device 'SEM USB Keyboard', /dev/input/event1 is a
>>>>> keyboard
>>>>>
>>>>> Weston fails as soon as the user starts to type in HTML5 input field
>>>>> for
>>>>> URL at the Browser app through the hardware keyboard:
>>>>>
>>>>> [00:00:48.006] caught signal: 11
>>>>>
>>>>> * Test case 3, weston.ini:
>>>>>
>>>>> [input-method]
>>>>> path=/usr/libexec/weston-keyboard
>>>>>
>>>>> [keyboard]
>>>>> keymap_layout=us
>>>>>
>>>>> Results:
>>>>> 3.1. No hardware keyboard: FAIL
>>>>>
>>>>> Weston crashes when the user tries to launch Browser from the
>>>>> Homescreen
>>>>> app:
>>>>>
>>>>> [00:00:28.391] caught signal: 11
>>>>>
>>>>> 3.2. With hardware keyboard: OK
>>>>>
>>>>> Weston detects the hardware keyboard and both the hardware and virtual
>>>>> weston-keyboard work fine:
>>>>>
>>>>> [00:00:06.767] input device 'SEM USB Keyboard', /dev/input/event0 is a
>>>>> keyboard
>>>>> [00:00:06.771] input device 'SEM USB Keyboard', /dev/input/event1 is a
>>>>> keyboard
>>>>>
>>>>> I want to get weston-keyboard working fine in Weston even if there
>>>>> is no
>>>>> hardware keyboard.
>>>>>
>>>>> Thanks,
>>>>> Leon
>>>>>

-- 
Leon Anavi
Software Engineer
konsulko.com



More information about the Dev mailing list