mikrocontroller.net

Forum: PC Hard- und Software avrdude unter Linux. Was ist jetzt richtig?


Autor: Hey Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin gerade etwas verwirrt. Im Wiki von Elektronik-Projekt steht, man 
solle die Datei /etc/udev/rules.d/80-usbprog.rules anlegen und dort ATTR 
verwenden.

In der Mai Ausgabe von Elektor steht aber, man solle im gleichen 
Verzeichnis eine Datei 020_permissions.rules anlegen und die Einträge 
sehen auch anders aus
SUBSYSTEM=="usb_device", SYSFS{idVendor}=="03eb", SYSFS{idProduct}=="2104, GROUP="plugdev", MODE="0660", SYMLINK += "foo"

LABEL="permissions_end"
Ich habe es bisher so gemacht wie im Elektronik-Projekt Wiki und das 
funktioniert auch. Wieso ist es in der Elektor anders?

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
SYSFS sollte nicht mehr verwendet werden; es wird demnächst ganz 
entfernt.  Bleib' bei der Nicht-Elektor-Version.

Autor: Hey Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm, natürlich doof, dass jetzt sowas noch in der Elektor verbreitet wird

Gut, dann ist in dem Wiki ja wohl alles richtig

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja.  Jede einigermaßen aktuelle Linux-Distribution schreibt sowas ins 
Log, wenn sie auf SYSFS{} trifft:

syslog.1:May 16 13:41:12 Xelzbrot udevd[501]: SYSFS{}= will be removed 
in a future udev version, please use ATTR{}= to match the event device, 
or ATTRS{}= to match a parent device, in 
/etc/udev/rules.d/10-hcz.rules:8

Da steht sogar, wie man es richtig macht.  Nur lesen muss man es schon 
selber.

Autor: Lukas K. (carrotindustries)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So sieht bei mir die HAL-Konfiguration aus
# AVRISP mkII emulation mode
ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2104", GROUP="users", MODE="0660"
#
# usbprog bootloader
ATTRS{idVendor}=="1781", ATTRS{idProduct}=="0c62", GROUP="users", MODE="0660"

Autor: Daniel Paessler (groovy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Luk4s K. schrieb:
> So sieht bei mir die HAL-Konfiguration aus

hal ist im übrigen auch "deprecated"

Autor: Hey Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Luk4s K.
So sieht es bei mir auch aus bzw so ist es in dem Wiki beschrieben

@Daniel Paessler
Wie müsste es denn dann heißen, wenn es kein HAL mehr gibt? Ubuntu Lucid 
soll ja eigentlich schon kein HAL mehr haben, aber es geht trotzdem

Autor: Daniel Paessler (groovy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey Dude schrieb:
> @Daniel Paessler
> Wie müsste es denn dann heißen, wenn es kein HAL mehr gibt? Ubuntu Lucid
> soll ja eigentlich schon kein HAL mehr haben, aber es geht trotzdem

bei mir gibt's schon 'ne weile kein hal mehr auf dem system. udev ist 
dein freund :)

http://www.reactivated.net/writing_udev_rules.html

Autor: eklige Tunke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey Dude schrieb:
> @Daniel Paessler
> Wie müsste es denn dann heißen, wenn es kein HAL mehr gibt?
Dann nehmen wir DeviceKit.

Das mit sysfs ist mir auch neu, das hat doch procfs ersetzen sollen? 
(Und unter /proc findet sich noch so einiges.)

Autor: Hey Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also dann stimmt's doch. Es ist ja eine Datei in

/etc/udev/

Autor: Hey Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was jetzt? udev? DeviceKit? HAL? Ich blicks nicht

Stimmt das jetzt was im Wiki steht oder nicht?

http://www.wiki.elektronik-projekt.de/mikrocontrol...

Autor: eklige Tunke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
eklige Tunke schrieb:
> Hey Dude schrieb:
>> @Daniel Paessler
>> Wie müsste es denn dann heißen, wenn es kein HAL mehr gibt?
> Dann nehmen wir DeviceKit.
Upps, auch schon wieder tot, ich verschlaf auch ständig was... ;-)

Autor: eklige Tunke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey Dude schrieb:
> Was jetzt? udev? DeviceKit? HAL? Ich blicks nicht
Mit den udev-Regeln habe ich meinen Clone zu laufen bekommen. Sorry, das 
mit DeviceKit war mir neu... ich hinke auch ständig hinterher. ;-)

Autor: Daniel Paessler (groovy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sysfs per se ist nicht deprecated...nur das erstellen veralteter 
einträge/links.

aus der kernel-info:

This option creates deprecated symlinks such as the "device"-link, the 
<subsystem>:<name>-link, and the "bus"-link. It may also add deprecated 
key in the uevent environment. None of these features or values should 
be used today, as they export driver core implementation details to 
userspace or export properties which can't be kept stable across kernel 
releases.

Autor: Hey Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, also so lange die udev Rule funktioniert kann es mir ja egal sein.

Aber welches wäre jetzt der "korrekte" und "zukunftssichere" Weg?

Autor: Daniel Paessler (groovy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey Dude schrieb:
> Ok, also so lange die udev Rule funktioniert kann es mir ja egal sein.
>
> Aber welches wäre jetzt der "korrekte" und "zukunftssichere" Weg?

udev ist (im moment) der korrekte weg :)

Autor: Hey Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok. Und in 2 Jahren vermutlich auch schon wieder "deprecated"

Autor: Daniel Paessler (groovy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey Dude schrieb:
> Ok. Und in 2 Jahren vermutlich auch schon wieder "deprecated"

so sieht's aus :)

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Was jetzt? udev? DeviceKit? HAL? Ich blicks nicht

Das da oben ist keine HAL-Regel, sondern eine udev-Regel.  Das ist nicht 
dasselbe, obwohl beide ähnliche Aufgaben haben.  Aber udev ist flexibler 
und übernimmt immer mehr die Aufgaben von HAL, so dass letzeres obsolete 
wird.

> Das mit sysfs ist mir auch neu, das hat doch procfs ersetzen sollen?

Das sysfs, von dem Du redest, hat nur indirekt mit dem SYSFS{} zu tun, 
von dem hier die Rede ist.  sysfs (kleingeschrieben) ist der Typ des 
virtuellen Dateisystems, das unter /sys gemountet ist, und das ist alles 
andere als obsolet.

SYSFS{} (großgeschrieben) dagegen bezeichnet eine udev-Regel, die 
obsolet ist, weil es keinen guten Grund gibt, sie so zu benennen.  Denn 
es gibt schon ATTRS{}, das für den udev-Programmierer dasselbe macht 
(nur dass die bisher SYSFS{} genannten Regeln ihr Argument aus /sys 
beziehen - eine Unterscheidung, die dem udev-Programmierer aber wurscht 
sein kann).

Ich hoffe, ein wenig Klarheit reingebracht zu haben.

Autor: Daniel Paessler (groovy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hc Zimmerer schrieb:
> Ich hoffe, ein wenig Klarheit reingebracht zu haben.

gut erklärt :)

Autor: Hey Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@mizch
Danke

Autor: eklige Tunke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hc Zimmerer schrieb:
> Ich hoffe, ein wenig Klarheit reingebracht zu haben.
Ja, danke hat es, ein Dank auch an Daniel Paessler.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.