ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

Logitech Unifying Empfänger

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

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.

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.

Für Ubuntu 14.04 kann das PPA zu den Paketquellen hinzugefügt werden, ab Ubuntu 15.04 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

Hinweis!

Zusätzliche Fremdquellen können das System gefährden.


Ein PPA unterstützt nicht zwangsläufig alle Ubuntu-Versionen. Weitere Informationen sind der Wiki/Vorlagen/PPA/ppa.png PPA-Beschreibung des Eigentümers/Teams daniel.pavel zu entnehmen.

Kommandozeilen Tool

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.

Infobox

Logitech® Unifying-Empfänger
Herausgeber: Logitech
USB ID: 046d:c52b Logitech, Inc. Unifying Receiver
Läuft mit: nativ

Diese Revision wurde am 8. Mai 2017 11:46 von Heinrich_Schwietering erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Hardware, Logitech