Xorg Input hotplugging and me…

November 7, 2006

Okay, whilst attempting to shirk my responsibilites (read fix pam_console’s root.audio issue (I hate sed… not so much as I hate it, as it hates me and refuses to EVER work for me properly until I have struggled with it for about 3 days) 😉 ) I saw a Planet post from Daniel Stone, about *gasp* input hotplugging in Xorg. And I thought to myself, OMG MUST HAVE NOW. So, being as I idle in #gentoo-desktop on freenode (well, not always idle, but for the most part I do) I popped open the channel, and fired off a message to Donnie and Josh, to ask them about it. Turns out, Josh (or maybe it was Donnie) had added the snapshot to Portage already (that would be xorg-server-1.2.99.0) and so being the adventurous person that I am (and never really minding a broken box) I immediately unmasked it… and fail. It didn’t want to build because of a missing $(DBUS_LIBS) (since fixed) and, then Josh mentioned to me that I will want to update my device drivers as well, to the latest – which I did, luckily, I don’t use too many, xf86-input-{keyboard,mouse,evdev}

This is where the magic starts to happen… Okay, so finally have xorg-server-1.2.99.0 installed, xf86-input-keyboard-1.2.0 installed, and the evdev and mouse… and so I fire off startx (because you know, want to make sure it even works…) and fail. With a dbus error! Oh noes! What am I to do… well, lets see, its a dbus error, restart dbus? Nah, that wouldn’t fix it, I am using the new and improved dbus, no need to restart when new configs show up… Oh, I know – does it even HAVE a config… I seem to recall the planet post mentioning something about the policy not being set in stone…. so I look in /etc/dbus-1/system.d and nope! Hrm, ok, so, is there even a config file?

Pop into ~/sandbox (which is where I store everything I want to play with 😉 (hat tip Compnerd)) and extract the xorg-server tarball to look around at the files… Success! There it is – xorg-server.conf. Pop into irc again and mention it to Josh, who promptly (or not promptly, im really not sure as I am playing with a new toy weeeeeeeeeeee!) fixes it to install. And, then I issue startx as for me, I am not gonna recompile xorg-server just to copy over a .conf file – and… SUCCESS! Woohoo… Okay, so X is working again, there is my wonderful Gnome desktop looking back at me, saying, please come play with me! And I apologize to it, and say, well, I am sorry, but I must get the input hot plugging working first…

Okay, back to the drawing board… There really isn’t much info on this aside from some posts on the mailing list and the planet posts (which, have mysteriously disappeared from my cache 😦 ) so… Google it is – aha! I need something called respeclaration… Okay, time to search it out – being as Mr. Daniel Stone is on fdo, I check there first – yep, its a git repo… great… I suck at using git… Every attempt to check it out gives me an EOF, which I have no idea what it means, aside from the fact that its NOT ON MY SYSTEM. No problem, I can just download the repo manually (yes, I will do things the hard way when I don’t want to take the time to learn yet) it is only 2 files, and really, I just recreate the Makefile manually, and download the respeclaration.c file. Pop those into the sandbox, and make… success! Woohoo… ok, so, now lets see, input hotplugging…

Okay, we open up the xorg.conf file, and…

*thinks – well, lets see what happens…*

*comments out all the input device infos*

startx

FAIL. Hmm, okay, lets try running respeclaration – oh wait, something about the dbus policy and requiring root in order to add devices – so, lets restart respeclaration as root…

sudo respeclaration –daemon 0.0 (according to the –help its –daemon displaynum)

startx

SUCCESS!

Okay… *loads up xorg.conf to verify that all input devices are in fact disabled in there* Yep… *unplugs usb mouse* *moves the usb mouse after unplugging it because sometimes when working on things I get absent minded and do the extremely obvious to make sure* Yep… *plugs the usb mouse back in and moves it… OMG MY CURSOR IS MOVING <3*

Okay, hmmm, plugs in a usb keyboard… SEGFAULT.

Okay, so input hotplugging isn’t quite ready for primetime (this is xorg 7.3 stuff we are talking about here anyways, 7.2 hasn’t even been released) – but, I want to be one of those people who really makes sure it works, because it has been something I have wanted in X for a very very long time (come on, windows has been able to do this for AGES)

Okay, so, I wanted to be really really sure, I was really doing things right, and I hopped into the xorg development channel to thank daniels, as well as verify that what I was doing was correct…. More info coming soon…