-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
permission to bind input_method denied #73
Comments
What compositor you're running against? And for Wayland you should use the maliit-keyboard directly, and not maliit-server |
I use the Weston compositor. When I use maliit-keyboard directly I got the following message: |
I follow this information for weston: http://maliit.github.io/news/2017/05/24/standalone-mode/ |
Hi Bhushan, here is a log weston.log |
I forgot to make the script executable. /usr/bin/maliit-keyboard.sh
After make it executable the weston.log looks It looks that maliit-keyboard is running but I can't see any keyboard on my screen. |
ep 23 08:56:37 hmi daemon.info dbus-daemon[781]: [session uid=1000 pid=781] Activating service name='org.maliit.server' requested by ':1.10' (uid=1000 pid=1405 comm="./Maliit-Keyboard-Test ") |
For Weston the virtual keyboard needs to be started from the compositor itself. So in weston.ini there need to be a section |
I changed the entry in weston.ini to your suggsetion but then the weston.log print the following
Why is maliit-keybord died on signal6? How can I debug this? |
Look what happend when I call maliit-keyboard manualy:
I think that "zwp_input_method_v1@17: error 0: permission to bind input_method denied" is the problem. |
Yes, as @jpetersen said in #73 (comment) you cannot simply run maliit-keyboard with weston, as it has to be started by weston itself. By default, weston starts its own keyboard, therefore preventing maliit from connecting. |
Okay, thats the reason of the permission denied problem, but with the entry [input-method] in the weston.ini I thought this let weston start the maliit keyboard. Okay, step by step. When I boot my system and weston starts I can see that maliit-keyboard is started as well
weston.log also tells me that the maliit-keyboard is starte When I start weston-terminal and click into the terminal nothing happens. Why is there no keyboard visible? I create a simple QT-Application with only one TextInput Field. Why is maliit-server finished with sig=6?
|
I don't know. It might be trying to use the wrong text input protocol. But I also have not been able to get maliit keyboard to come up under wayland on any compositor running on top of Xorg on my system. I would very much like it to though, because it would make the testing I need to do currently, much easier.
I also don't know. Have you tried attaching to the process with |
@jpetersen On the other hand I want to use maliit-keyboard with Qt applications. Does this run out of the box when QT_IM_MODULE is set to Maliit? |
I set MALIIT_DEBUG=true in my environment. And journalctl says: So it looks that maliit-server should start as root. Is there a way to start it as user? |
If maliit-keyboard is being used, then no, maliit-server should not also be started.
You can use the environment variable
If you want to use the DBus protocol for maliit with maliit-server, then maliit-keyboard should not be run. Instead you need to have the correct input method plug-in loaded in the toolkit being used. As before, you can't use both at the same time. |
It should not, unless you are logging into a graphical session as root. It should be run as the user if you are using maliit-server instead of maliit-keyboard. |
Hi dobey, |
Is this also running your app with
Yes. It should be using the Wayland protocol, as should any app running under weston.
Yes, that's what maliit-server is for. You would run that instead of maliit-keyboard when starting weston. |
QT_IM_MODULE=Maliit is for a DBus based input method communication between application and virtual keyboard for X11. For Wayland you want to run your Qt application with an unset QT_IM_MODULE. In this case the Wayland input method protocol is used for communication between application, compositor and virtual keyboard. DBus is not used at all in this case. |
Yes my app is running with QT_QPA_PLATFROM=wayland and yes it runs under weston. |
@jpetersen: |
I can only suggest using WAYLAND_DEBUG=1 and maybe grep for zwp_input_method or zwp_text_input |
Okay, I unset QT_IM_MODULE, maliit-keyboard is running. I set WAYLAND_DEBUG=1 and start my application. A lot of messages are print out. The only matches with zwp_input_method or zwp_text_input are: [3932774.427] [email protected](21, "zwp_input_method_v1", 1) [3933144.274] [email protected](21, "zwp_input_method_v1", 1) When I click into my text-input-field a lot of messages are print out: but no lines with zwp_input_method or zwp_text_input. @jpetersen: Is it right that I do not need the d-bus support when I use wayland? Should I disable the d-bus activation option during build? Thanks a lot |
I think the issue is different supported protocol versions for compositor, apps and virtual keyboard: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/issues/39#implementation-matrix |
I think that page is outdated. Also, Weston, kwin_wayland, and Qt seem to all be able to do text-input v1 and input-method v1, and both are supported by maliit-framework as well. And maliit-keyboard is clearly working via wayland protocol on manjaro-pm images with kwin_wayland. However, I'm unable to get maliit-keyboard to appear when running it under kwin_wayland, running in a window under an Xorg session, on my PC. I still have no idea why. |
@jpetersen: You mean because of Qt only supports qt-text-input-method and weston doesn't it would not work, isn't it? |
@dobey What do you use as virtual keyboard? Are there no interests to get Maliit-Keyboard working on Wayland? |
Mallit works on Wayland but Weston is using outdated protocols compared to other Wayland compositors. |
@jpetersen Thanks for reply. So I think it is useful to use Qt as compositor if 90% of all applications are Qt applications. What do you think? |
I don't use an OSK on my PC. On my pinephone I have Plasma Mobile which uses Maliit with kwin_wayland. It works fine there. However, I have not been able to get it working on my PC when trying to use kwin_wayland in a window for testing; even when trying to use the dbus protocol for maliit rather than Wayland. Obviously there is interest in fixing these issues, but I have apparently no idea what's going wrong, or how to figure it out exactly. |
I will give a summary of facts. Please correct them if I am false:
I my case, the closest thing is to use the Qt-Compositor. Thanks |
I guess you need to be more specific here. It is working fine on Plasma Mobile on pinephone for example, where kwin_wayland is the compositor. I have not been able to get Maliit working using Wayland protocols on any compositor on my PC that is running in a window under my Xorg session. That includes kwin_wayland, weston, and a simple compositor in QML using QWaylandCompositor APIs. The rest of your questions I think are a bit too complex and open ended to answer in a simple comment here. It's also unclear what exactly you are trying to achieve, so I don't want to guide you in the wrong direction. |
@dobey Thanks for reply. You are right it is a very complex theme and I am a newbie with compositors and so on. Currently I am looking for ways to understand this things. Compositors, input-methods, protocols, and how this parts works together. How to trace the background communication (input-methodes) to understand why the Maliit-Keyboard will not show. Currently I know how to enable Wayland and Maliit debug output but I don't know what I have to look for. I compiled a simple compositor in QML using QWaylandCompositor API (one of Qt's examples) and it runs on my embedded device. I also can display my Qt-application, but Maliit-Keyboard does not work. A lot of questions where I have no answer and no idea where I can look for and what I should look for. |
If I knew the answer to this, I would have fixed it already. :) |
When I want to start the maliit-server I always get a permission denied message. This error occurs as non-root-user and as root-user as well.
maliit-server
WARNING: PulseAudioService: pa_context_connect() failed
WARNING: PulseAudioService: pa_context_connect() failed
zwp_input_method_v1@17: error 0: [ 139.491622] audit: type=1701 audit(1632379225.736:3): auid=4294967295 uid=1000 gid=1001 ses=4294967295 pid=813 comm="maliit-server" exe="/usr/bin/maliit-server" sig=6 res=1
permission to bind input_method denied
FATAL: The Wayland connection experienced a fatal error: Protocol error
Aborted
Any suggestions?
The text was updated successfully, but these errors were encountered: