diff options
Diffstat (limited to 'app-misc/ckb/files/ckb-0.4.0-modprobe.patch')
-rw-r--r-- | app-misc/ckb/files/ckb-0.4.0-modprobe.patch | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/app-misc/ckb/files/ckb-0.4.0-modprobe.patch b/app-misc/ckb/files/ckb-0.4.0-modprobe.patch deleted file mode 100644 index 31dc3303b328..000000000000 --- a/app-misc/ckb/files/ckb-0.4.0-modprobe.patch +++ /dev/null @@ -1,72 +0,0 @@ ---- - src/daemon/input_linux.c | 21 ++++++++++++++------- - src/gui/mainwindow.cpp | 14 ++++++++------ - 2 files changed, 22 insertions(+), 13 deletions(-) - -diff --git a/src/daemon/input_linux.c b/src/daemon/input_linux.c -index 0391243e..8489f5b5 100644 ---- a/src/daemon/input_linux.c -+++ b/src/daemon/input_linux.c -@@ -55,13 +55,20 @@ int uinputopen(struct uinput_user_dev* indev, int mouse){ - /// - /// Some tips on using [uinput_user_dev in](http://thiemonge.org/getting-started-with-uinput) - int os_inputopen(usbdevice* kb){ -- /// First check whether the uinput module is loaded by the kernel. -- /// -- // Load the uinput module (if it's not loaded already) -- if(system("modprobe uinput") != 0) { -- ckb_fatal("Failed to load uinput module\n"); -- return 1; -+ /// Let's see if uinput is already available -+ int fd = open("/dev/uinput", O_RDWR); -+ if(fd < 0){ -+ fd = open("/dev/input/uinput", O_RDWR); -+ } -+ -+ // If not available, load the module -+ if(fd < 0){ -+ if(system("modprobe uinput") != 0) { -+ ckb_fatal("Failed to load uinput module\n"); -+ return 1; -+ } - } -+ close(fd); - - if(IS_SINGLE_EP(kb)) { - kb->uinput_kb = 0; -@@ -79,7 +86,7 @@ int os_inputopen(usbdevice* kb){ - indev.id.product = kb->product; - indev.id.version = kb->fwversion; - // Open keyboard -- int fd = uinputopen(&indev, 0); -+ fd = uinputopen(&indev, 0); - kb->uinput_kb = fd; - if(fd <= 0) - return 0; -diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp -index 968764e7..1eb95bda 100644 ---- a/src/gui/mainwindow.cpp -+++ b/src/gui/mainwindow.cpp -@@ -282,14 +282,16 @@ void MainWindow::updateVersion(){ - if(kextstatOut.isEmpty()) - daemonWarning.append(tr("<br /><b>Warning:</b> System Extension by \"Fumihiko Takayama\" is not allowed in Security & Privacy. Please allow it and then unplug and replug your devices.")); - #elif defined(Q_OS_LINUX) -- QProcess modprobe; -- modprobe.start("modprobe", QStringList("uinput")); -+ if(!(QFileInfo("/dev/uinput").exists() || QFileInfo("/dev/input/uinput").exists())){ -+ QProcess modprobe; -+ modprobe.start("modprobe", QStringList("uinput")); - -- if(!modprobe.waitForFinished()) -- qDebug() << "Modprobe error"; -+ if(!modprobe.waitForFinished()) -+ qDebug() << "Modprobe error"; - -- if(modprobe.exitCode()) -- daemonWarning.append(tr("<br /><b>Warning:</b> The uinput module could not be loaded. If this issue persists after rebooting, compile a kernel with CONFIG_INPUT_UINPUT=y.")); -+ if(modprobe.exitCode()) -+ daemonWarning.append(tr("<br /><b>Warning:</b> The uinput module could not be loaded. If this issue persists after rebooting, compile a kernel with CONFIG_INPUT_UINPUT=y.")); -+ } - #endif - settingsWidget->setStatus(tr("No devices connected") + daemonWarning); - } |