Forum: PC Hard- und Software Benutzer für Arrow-Programmer


von Dussel (Gast)


Lesenswert?

Moin,

vor Kurzem habe ich Kubuntu eingerichtet und darauf auch Quartus für das 
MAX1000-Board von Arrow installiert.
Der Programmer wird in Quartus nur gefunden, wenn jtagd (der 
JTAG-Treiber von Quartus oder sowas) als Root (mit sudo) gestartet wird. 
Der Programmer ist über USB angeschlossen.
Jetzt habe ich nicht gerne zu viele Programme mit Rootrechten laufen. 
Hat jemand eine Idee, welche Gruppe der Benutzer haben muss, damit der 
Programmer funktioniert, ohne ihn als Root laufen zu lassen? Plugdev und 
tty sind es nicht.
Oder ist es besser, den Programmer als Root laufen zu lassen, als einem 
Benutzer dafür mehr Rechte zu geben?

von Michael D. (nospam2000)


Lesenswert?

Dussel schrieb:
> Hat jemand eine Idee, welche Gruppe der Benutzer haben muss, damit der
> Programmer funktioniert, ohne ihn als Root laufen zu lassen?

Normalerweise macht man das heute über udev rules für dynamisch 
angelegte dev files. Mit diesen Rules kannst du definieren, welcher 
Gruppe das dev file gehört und der Gruppe Schreibrechte geben. Dazu 
musst du die USB Vendor und Product ID kennen. Deinen User fügst du dann 
zu dieser Gruppe hinzu.

Siehe z.B. hier:
https://rocketboards.org/foswiki/Documentation/UsingUSBBlasterUnderLinux

  Michael

von Dussel (Gast)


Lesenswert?

Danke.
Das probiere ich morgen mal aus.

von Dussel (Gast)


Lesenswert?

Das Thema ist zwar schon älter, aber noch nicht so lang, dass man zu 
viel Zeit beim Lesen verliert.
Da mir das Thema nochmal eingefallen ist, wollte ich die Lösung für 
andere mit dem gleichen Problem zusammenfassen.

Die Anleitung basiert auf der von Michael verlinkten Seite.
1. Das Board einstecken.
2. Im Terminal lsusb eingeben. Es sollte (mindestens) einen Eintrag 
ähnlich wie
1
Bus 001 Device 007: ID 0403:6010 Future Technology Devices International, Ltd FT2232C/D/H Dual UART/FIFO IC
 geben.

3. lsusb -vs 001:007 eingeben, wobei 001 und 007 die Zahlen aus dem 
vorherigen Schritt unter Bus und Device sind und auch anders sein 
können.
4. In der Ausgabe des Befehls erscheinen die Informationen
1
idVendor           0x0403 Future Technology Devices International, Ltd
2
idProduct          0x6010 FT2232C/D/H Dual UART/FIFO IC
4. Auf der von Michael verlinkten Seite gibt es unter Driver Setup for 
Ubuntu den Eintrag
1
# USB Blaster II
2
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6010", MODE="0666", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", RUN+="/bin/chmod 0666 %c"
 Das hat bei mir nicht funktioniert, deshalb habe ich unter idVendor und 
idProduct die im vorherigen Schritt erhaltenen Werte (0403 und 0610) 
eingetragen, also
1
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="0403", ATTR{idProduct}=="6010", MODE="0666", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", RUN+="/bin/chmod 0666 %c"
 (ohne Zeilenumbruch)

5. Diese Zeilen habe ich unter /etc/udev/rules.d/ in die neu zu 
erstellende Datei 51-usbblaster.rules eingetragen.

So funktioniert es bei mir. Ich hoffe, das gibt zumindest Anhaltspunkte, 
falls man nicht weiterkommt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.