[[Vorlage(Getestet, jammy,focal)]] {{{#!vorlage Wissen [:Terminal: Ein Terminal öffnen] [:sudo: Root-Rechte] [:Programme kompilieren: Pakete aus dem Quellcode erstellen] [:Editor: Einen Editor öffnen] }}} [[Inhaltsverzeichnis(2)]] [[Bild(./logo.png,64,align=left)]] Der [https://www.logitech.com/de-de/product/unifying-receiver-usb Logitech® Unifying-Empfänger] {de} 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 [github:pwr-Solaar/Solaar:Solaar] {en} bereit. {{{#!vorlage Tabelle [[Bild(Solaar.png, x220)]] +++ <:>Solaar }}} = Verbinden = == Grafisches Tool == Mit dem grafischen Tool Solaar kann man bequem die Unifying Geräte miteinander verbinden und auch diverse Infos über die Geräte erhalten. Seit [:15.04:Ubuntu 15.04] ist Solaar in den Paketquellen enthalten. Für [:GNOME 3:] und [:Unity:] kann das Paket '''solaar-gnome3''' installiert werden, {{{#!vorlage Paketinstallation solaar-gnome3, universe }}} ansonsten das Paket '''solaar''': {{{#!vorlage Paketinstallation solaar, universe }}} === Bedienung === Im obigen Beispiel sind bereits die Tastatur K400 und der Trackball M570, der Firma Logitech, mit dem Dongle verbunden. Um ein neues Gerät mit dem vorhandenen Empfänger zu koppeln klickt man auf die Schaltfläche ''"Neues Gerät koppeln"''. Über ''"Kopplung trennen"'' kann diese wieder aufgehoben werden. Im Programm werden unter anderem Informationen zum Ladezustand, der Verschlüsselung, Akkulaufzeit und Seriennummer angezeigt. {{{#!vorlage Hinweis Sofern der Logitech-Dongle bereits im Vorfeld am Computer angesteckt wurde wird dieser noch nicht erkannt. Aus- und anschließendes Wiedereinstöpseln löst das Problem umgehend. }}} == Kommandozeilen Tool == Folgenden C-Code als '''pairing_tool.c''' abspeichern: {{{#!code c /* * Copyright 2011 Benjamin Tissoires * * 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 . */ #include #include #include #include #include #include #include #define USB_VENDOR_ID_LOGITECH (__u32)0x046d #define USB_DEVICE_ID_UNIFYING_RECEIVER (__s16)0xc52b #define USB_DEVICE_ID_UNIFYING_RECEIVER_2 (__s16)0xc532 #define USB_DEVICE_ID_UNIFYING_RECEIVER_3 (__s16)0xc534 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 && info.product != USB_DEVICE_ID_UNIFYING_RECEIVER_3)) { errno = EPERM; perror("The given device is not a known " "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 {{{#!vorlage Befehl 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] {{{#!vorlage Befehl 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. = Infobox = {{{#!vorlage Tabelle <-2 tablestyle="width: 97%;" rowclass="verlauf"> Logitech® Unifying-Empfänger +++ Herausgeber: Logitech +++ USB ID: 046d:c52b Logitech, Inc. Unifying Receiver +++ Läuft mit: nativ }}} = Links = * [github:pwr-Solaar/Solaar:Solaar GitHub Repository] {en} * [https://magicfab.ca/2013/07/pairing-the-logitech-performance-mx-and-others-to-the-unifying-receiver-in-gnulinux/ Pairing the Logitech Performance MX (and others) to the Unifying Receiver in GNU/Linux] {en} - Blogbeitrag, 07/2013 * [https://tycho.ws/blog/2011/12/logitech-unifying-receiver Unifying Logitech Devices on Linux] {en} - Blogbeitrag, 12/2011 * [iawm::][https://web.archive.org/web/20130106170706/http://www.logitech.com/de-de/promotions/6072 Was ist Unifying] {de} * [:Logitech:] {Übersicht} Übersichtsartikel #tag: Hardware, Logitech