Ubuntu 16.04 Xenial Xerus
Ubuntu 14.04 Trusty Tahr
Ubuntu 12.04 Precise Pangolin
Der Logitech® Unifying-Empfänger kann mehrere Logitech Funkgeräte mit dem PC verbinden. Dieser Artikel beschäftigt sich mit der Kopplung der Geräte unter Ubuntu. Alternativ ist es mit der Logitech SetPoint-Software unter Windows ohne weiteres möglich, die Geräte erstmalig zu verbinden (zu pairen) und danach den bereits gekoppelten Receiver unter Ubuntu oder an einem anderen PC weiterzunutzen. Eine grafische Oberfläche für Linux stellt das Projekt Solaar bereit.
Mit dem grafischen Tool Solaar kann man bequem die Unifying Geräte miteinander verbinden und auch diverse Infos über die Geräte erhalten. Für 12.04 Precise Pangolin bis 14.04 Trusty Tahr kann das PPA zu den Paketquellen hinzugefügt werden, ab 15.04 Vivid Vervet ist Solaar bereits in den Universe-Paketquellen enthalten und es muss nicht mehr von Hand ergänzt werden. Wenn man Gnome 3 oder Unity benutzt das Paket solaar-gnome3, ansonsten das Paket solaar installieren.
Adresszeile zum Hinzufügen des PPAs:
ppa:daniel.pavel/solaar
Zusätzliche Fremdquellen können das System gefährden.
Ein PPA unterstützt nicht zwangsläufig alle Ubuntu-Versionen. Weitere Informationen sind der PPA-Beschreibung des Eigentümers/Teams daniel.pavel zu entnehmen.
Damit Pakete aus dem PPA genutzt werden können, müssen die Paketquellen neu eingelesen werden.
Folgenden C-Code als pairing_tool.c abspeichern:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | /* * Copyright 2011 Benjamin Tissoires <benjamin....@gmail.com> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ #include <linux/input.h> #include <linux/hidraw.h> #include <sys/ioctl.h> #include <fcntl.h> #include <unistd.h> #include <stdio.h> #include <errno.h> #define USB_VENDOR_ID_LOGITECH (__u32)0x046d #define USB_DEVICE_ID_UNIFYING_RECEIVER (__s16)0xc52b #define USB_DEVICE_ID_UNIFYING_RECEIVER_2 (__s16)0xc532 int main(int argc, char **argv) { int fd; int res; struct hidraw_devinfo info; char magic_sequence[] = {0x10, 0xFF, 0x80, 0xB2, 0x01, 0x00, 0x00}; if (argc == 1) { errno = EINVAL; perror("No hidraw device given"); return 1; } /* Open the Device with non-blocking reads. */ fd = open(argv[1], O_RDWR|O_NONBLOCK); if (fd < 0) { perror("Unable to open device"); return 1; } /* Get Raw Info */ res = ioctl(fd, HIDIOCGRAWINFO, &info); if (res < 0) { perror("error while getting info from device"); return 1; } else { if (info.bustype != BUS_USB || info.vendor != USB_VENDOR_ID_LOGITECH || (info.product != USB_DEVICE_ID_UNIFYING_RECEIVER && info.product != USB_DEVICE_ID_UNIFYING_RECEIVER_2)) { errno = EPERM; perror("The given device is not a Logitech " "Unifying Receiver"); return 1; } } /* Send the magic sequence to the Device */ res = write(fd, magic_sequence, sizeof(magic_sequence)); if (res < 0) { printf("Error: %d\n", errno); perror("write"); return 1; } else if (res == sizeof(magic_sequence)) { printf("The receiver is ready to pair a new device.\n" "Switch your device on to pair it.\n"); } else { errno = ENOMEM; printf("write: %d were written instead of %ld.\n", res, sizeof(magic_sequence)); perror("write"); return 1; } close(fd); return 0; } |
Ein Terminal [1] öffnen und in das Verzeichnis wechseln, in welchem die Datei gesichert wurde. Nun mit
gcc -o pairing_tool pairing_tool.c
kompilieren [3].
Nun muss man nur noch den Empfänger finden. Dazu öffnet man mit einem Texteditor [4] die Datei /sys/class/hidraw/hidraw*/device/uevent, wobei der Stern *
durch die jeweilige Zahl (beginnend mit 0) ersetzt wird, bis der in uevent eingetragene HID_NAME Logitech USB Receiver
lautet.
Diese kann z.B. so aussehen:
DRIVER=logitech-djreceiver HID_ID=0003:0000046D:0000C52B HID_NAME=Logitech USB Receiver HID_PHYS=usb-0000:00:04.0-4/input2 HID_UNIQ= MODALIAS=hid:b0003v0000046Dp0000C52B
Wenn der Empfänger gefunden wurde, sind die zu koppelnden Geräte auszuschalten. Anschließend wieder zum Terminal [1] wechseln und mit Root-Rechten[2]
sudo ./pairing_tool /dev/hidraw*
ausführen. Der Stern *
ist auch hier durch die eben ermittelte Zahl zu ersetzen. Das Programm fordert nun auf, die zu verbindenden Geräte einzuschalten.
Logitech® Unifying-Empfänger | |
Herausgeber: | Logitech |
USB ID: | 046d:c52b Logitech, Inc. Unifying Receiver |
Läuft mit: | nativ |
Pairing the Logitech Performance MX (and others) to the Unifying Receiver in GNU/Linux - Blogbeitrag, 07/2013
Unifying Logitech Devices on Linux - Blogbeitrag, 12/2011
Logitech Übersichtsartikel
Diese Revision wurde am 22. März 2017 23:03 von franc.marx erstellt.