USB-Device richtig als User ansprechen (Blumax GPS-4044)
Ich versuche ein Blumax GPS-4044 mit mtkbabel bzw BT747D zum Laufen zu bringen. Verwendet wird aus dem Geo-Repo BT747-desktop-2.0.3-1.1.noarch hwinfo erkennt den GPS-Logger so: 07: USB 00.0: 0000 Unclassified device [Created at usb.122] Unique ID: mZxt.5jVQhFGhBo0 Parent ID: uIhY.sV+ij91gsz0 SysFS ID: /devices/pci0000:00/0000:00:10.1/usb3/3-2/3-2:1.0 SysFS BusID: 3-2:1.0 Hardware Class: unknown Model: "MTK GPS Receiver" Hotplug: USB Vendor: usb 0x0e8d "MTK" Device: usb 0x3329 "GPS Receiver" Revision: "1.00" Driver: "cdc_acm" Driver Modules: "cdc_acm" Speed: 12 Mbps Module Alias: "usb:v0E8Dp3329d0100dc02dsc00dp00ic0Aisc00ip00" Driver Info #0: Driver Status: cdc_acm is active Driver Activation Cmd: "modprobe cdc_acm" Config Status: cfg=new, avail=yes, need=no, active=unknown Attached to: #5 (Hub) 08: USB 00.1: 10200 Modem [Created at usb.122] Unique ID: DlBy.Gi5nE45cdaD Parent ID: uIhY.sV+ij91gsz0 SysFS ID: /devices/pci0000:00/0000:00:10.1/usb3/3-2/3-2:1.1 SysFS BusID: 3-2:1.1 Hardware Class: modem Model: "MTK GPS Receiver" Hotplug: USB Vendor: usb 0x0e8d "MTK" Device: usb 0x3329 "GPS Receiver" Revision: "1.00" Driver: "cdc_acm" Driver Modules: "cdc_acm" Device File: /dev/ttyACM0 Device Files: /dev/ttyACM0, /dev/serial/by-path/pci-0000:00:10.1-usb-0:2:1.1, /dev/serial/by-id/usb-MTK_GPS_Receiver-if01 Speed: 12 Mbps Module Alias: "usb:v0E8Dp3329d0100dc02dsc00dp00ic02isc02ip01" Driver Info #0: Driver Status: cdc_acm is active Driver Activation Cmd: "modprobe cdc_acm" Config Status: cfg=new, avail=yes, need=no, active=unknown Attached to: #5 (Hub) Man sieht also, das Gerät wird als /dev/ttyACM0 angesprochen. BT747 will aber /dev/ttyUSB0 per Default. Also habe ich folgendes gemacht: ln -s /dev/ttyACM0 /dev/ttyUSB0 Spricht etwas dagegen? Als root funktioniert nun: # mtkbabel Packet checksum error: expected 0x49, computed 0x02 MTK Test OK MTK Firmware: Version: 1, Release: AXN_1.30-B_1.3_C01, Model ID: 0004 Log format: (000A043F) UTC,VALID,LATITUDE,LONGITUDE,HEIGHT,SPEED,HDOP,RCR,DISTANCE Size in bytes of each log record: 44 + (0 * sats_in_view) Logging TIME interval: 5.00 s Logging DISTANCE interval: 0.00 m Logging SPEED limit: 0.00 km/h Recording method on memory full: (2) STOP Log status: (000100000100) AUTOLOG_OFF,STOP_WHEN_FULL,ENABLE_LOG Next write address: 45920 (0x0000B360) Number of records: 1024 Memory health status (failed sectors mask): FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF Bei mtkbabel könnte man auch "mtkbabel -p /dev/ttyACM0" verwenden, bei BT747 habe ich diese Möglichkeit aber nicht gefunden, daher eben obiger Link. Nun habe ich noch das Problem, die Rechte so zu setzen, dass es auch als User funktioniert. Lt. mtkbabel-Homepage sollte man "adduser USERNAME dialout" verwenden. Ich habe gleichwertiges in Yast gemacht. mtkbabel ERROR: Opening serial device /dev/ttyUSB0: Keine Berechtigung at /usr/bin/mtkbabel line 1748. cat /etc/group | grep dialout dialout:x:16:al Was könnte da noch falsch laufen? ls -la /dev/ttyACM0 crw-rw---- 1 root dialout 166, 0 18. Aug 14:32 /dev/ttyACM0 ls -la /dev/ttyUSB0 lrwxrwxrwx 1 root root 12 18. Aug 14:19 /dev/ttyUSB0 -> /dev/ttyACM0 # chmod 666 /dev/ttyACM0 (gefällt mir nicht so sehr, aber ich probiere es mal auf dem Testrechner) als User: ~> mtkbabel MTK Test OK MTK Firmware: Version: 1, Release: AXN_1.30-B_1.3_C01, Model ID: 0004 Log format: (000A043F) UTC,VALID,LATITUDE,LONGITUDE,HEIGHT,SPEED,HDOP,RCR,DISTANCE Size in bytes of each log record: 44 + (0 * sats_in_view) Logging TIME interval: 5.00 s ERROR: Reading from device (may be switched OFF): Die Ressource ist zur Zeit nicht verfügbar at /usr/bin/mtkbabel line 655. ab@client8:~> mtkbabel ERROR: Opening serial device /dev/ttyUSB0: Keine Berechtigung at /usr/bin/mtkbabel line 1748. Aus Zeile 655 werde ich aber nicht schlau, das ist: die("ERROR: Reading from device (may be switched OFF): $!") # Read until End Of Packet. $pkt = ''; $previous_c = ''; while (1) { ($n, $c) = serial_port_getch(); die("ERROR: Reading from device (may be switched OFF): $!") if ($n != 1); if ($c eq '$') { $pkt = ''; } else { $pkt .= $c; } if (($c eq "\n") and ($previous_c eq "\r")) { last; } $previous_c = $c; } als root aber: # mtkbabel MTK Test OK MTK Firmware: Version: 1, Release: AXN_1.30-B_1.3_C01, Model ID: 0004 Log format: (000A043F) UTC,VALID,LATITUDE,LONGITUDE,HEIGHT,SPEED,HDOP,RCR,DISTANCE Size in bytes of each log record: 44 + (0 * sats_in_view) Logging TIME interval: 5.00 s Logging DISTANCE interval: 0.00 m Logging SPEED limit: 0.00 km/h Recording method on memory full: (2) STOP Log status: (000100000110) AUTOLOG_ON,STOP_WHEN_FULL,ENABLE_LOG Next write address: 46824 (0x0000B6E8) Number of records: 1042 Memory health status (failed sectors mask): FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF Welche Rechte könnten noch fehlen, dass mtkbabel als User funktioniert? Al -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Thu, 18 Aug 2011, Al Bogner schrieb:
Ich versuche ein Blumax GPS-4044 mit mtkbabel bzw BT747D zum Laufen zu bringen. [..] Welche Rechte könnten noch fehlen, dass mtkbabel als User funktioniert?
Dreh mal das debugging an, für in /usr/bin/mtkbabel (oder ner Kopie bei dir in ~/bin/ ;) in die Funktion 'sub serial_port_open' als letzte Zeile ein: ==== ab Zeile 1755 ==== $device->write_settings || die "no settings"; $device->debug(1); } ==== Und ändere oben wie folgt: ==== ab Zeile 160 ==== #------------------------------------------------------------------------- # Global variablee. #------------------------------------------------------------------------- # my $debug = $LOG_ERR; # Default loggin level. my $debug = $LOG_INFO; # Default loggin level. # my $port = '/dev/ttyUSB0'; # Default communication port. my $port = '/dev/ttyACM0'; # Default communication port. ==== -dnh -- "The smit command displays a hierarchy of menus that can lead to interactive dialogues." -- AIX man page -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Do, 18 Aug 2011 20:35:22 CEST schrieb David Haller:
Hallo,
Am Thu, 18 Aug 2011, Al Bogner schrieb:
Ich versuche ein Blumax GPS-4044 mit mtkbabel bzw BT747D zum Laufen zu bringen. [..] Welche Rechte könnten noch fehlen, dass mtkbabel als User funktioniert?
Dreh mal das debugging an, für in /usr/bin/mtkbabel (oder ner Kopie bei dir in ~/bin/ ;) in die Funktion 'sub serial_port_open' als letzte Zeile ein:
==== ab Zeile 1755 ==== $device->write_settings || die "no settings"; $device->debug(1); } ====
Und ändere oben wie folgt:
==== ab Zeile 160 ==== #------------------------------------------------------------------------- # Global variablee. #------------------------------------------------------------------------- # my $debug = $LOG_ERR; # Default loggin level. my $debug = $LOG_INFO; # Default loggin level. # my $port = '/dev/ttyUSB0'; # Default communication port. my $port = '/dev/ttyACM0'; # Default communication port. ====
Hallo David, ich habe es gerade wieder probiert nachdem ich deinen Antwort gelesen habe und mtkbabel hat nach einem _Neustart_ als User funktioniert, genauer: "mtkbabel -p /dev/ttyACM0" Der Link von "ln -s /dev/ttyACM0 /dev/ttyUSB0" war nach dem Neustart aber weg, wie kann ich den dauerhaft machen? Problem ist natürlich auch, dass das GPS nicht unbedingt ACM_0_ sein muss. Soll ich deinen Debugging vorschlagen noch probieren, nachdem es nun als User funktioniert hat? Problem macht noch mit folgendes mit BT747D: please see: How can I use Lock Files with rxtx? in INSTALL check_group_uucp(): error testing lock file creation Error details:Permission denied http://mailman.qbang.org/2004-March/5677872.html verstehe ich zu wenig, außer, dass man Locks nicht deaktivieren soll. cat /etc/group | grep -i uucp uucp:x:14: Ich blick da nicht so recht durch, würde es Sinn machen bei uucp den User dazu zu schreiben? Al -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Thu, 18 Aug 2011, Al Bogner schrieb:
Am Do, 18 Aug 2011 20:35:22 CEST schrieb David Haller: [..] Der Link von "ln -s /dev/ttyACM0 /dev/ttyUSB0" war nach dem Neustart aber weg, wie kann ich den dauerhaft machen? Problem ist natürlich auch, dass das GPS nicht unbedingt ACM_0_ sein muss.
Udev-Regel basteln. ==== /etc/udev/rules.d/01-Blumax-GPS.rules ==== SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", \ ATTR{idVendor}=="0e8d", ATTR{idProduct}=="3329", \ SYMLINK+="ttyUSB0", ENV{GENERATED}="1" ====
Soll ich deinen Debugging vorschlagen noch probieren, nachdem es nun als User funktioniert hat?
Nö, ist dann nimmer nötig.
Problem macht noch mit folgendes mit BT747D:
please see: How can I use Lock Files with rxtx? in INSTALL check_group_uucp(): error testing lock file creation Error details:Permission denied
http://mailman.qbang.org/2004-March/5677872.html verstehe ich zu wenig, außer, dass man Locks nicht deaktivieren soll.
cat /etc/group | grep -i uucp uucp:x:14:
Ich blick da nicht so recht durch, würde es Sinn machen bei uucp den User dazu zu schreiben?
Äh, die Verzeichnisse /var/lock und darin sind hier alle root.root. Doof das. Und dummerweise verwendet rxtx hartcodiert /var/lock/LK*. Spontan fällt mir da nur ein, die Gruppe von /var/lock zu ändern und dich dann in diese Gruppe zu packen (muß wohl nicht uucp sein). -dnh -- "Die Iren ignorieren alles, was sich nicht trinken oder verhauen läßt." -- Quelle unbekannt -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (2)
-
Al Bogner
-
David Haller