-bash: /etc/modules: Keine Berechtigung

  • Hallo, ich hab ein kleines Problem.
    Und zwar möchte ich einen Temperatursensor (DS18S20) abfragen.
    Dazu bin ich nach folgendem Tutorial vorgegangen: http://kopfkino.irosaurus.com/…or-an-einem-raspberry-pi/
    jetzt wollte ich mit:
    "sudo echo >> /etc/modules w1-gpio && sudo echo >> /etc/modules w1-therm"
    das kernelmodul bei jedem start laden lassen, aber da kommt die Fehlermeldung: "-bash: /etc/modules: Keine Berechtigung"
    aber eigentlich dachte ich habe ich mir durch sudo admin rechte gegeben, was mache ich falsch?


  • ...
    aaalso, ich glaube mich düster zu erinnern, dass mit diesem sudo nur die shell als admin läuft, nicht aber das echo Kommando. ...


    Ah ok gut zu wissen, danke :)
    tut mir leid wenn meine Fragen nen bisschen blöd sind, aber noch bin ich mit dem pi totaler anfänger... aber lernwillig....
    wenn es nicht an sudo liegt, woran dann?
    kann es sein, dass der ordner /etc/modules gar nicht existiert? Jedenfalls kann ich den nicht im Dateimanager finden.


    kann ich dien ordner einfach erstellen oder muss ich die daten woanders hin schreiben?


    danke schon mal für die Hilfe
    eSmurf

  • Hallo eSmurf,


    Quote


    tut mir leid wenn meine Fragen nen bisschen blöd sind, aber noch bin ich mit dem pi totaler anfänger... aber lernwillig....
    wenn es nicht an sudo liegt, woran dann?


    Ja meinst Du, wir haben anders angefangen? :s Einige kommen aus der Messtechnik-Welt, andere aus der Linux-Ecke.


    Für diejenigen, die bisher nur Windows kennen, gibt's hier viel zu lernen. :thumbs1:



    Bei mir ist's auch schon ein Weilchen her, dass ich einen DS1820 angeschlossen habe...


    Aber ich such gleich mal den Thread heraus...


    Hier isser auch schon.


    Na, ja, damals vor drei Wochen war das. In dem Thread haben wir zusammen erarbeitet, wie ein DS18B20 angeschlossen und programmiert wird. Das sollte genau das sein, was Du jetzt brauchst.


    Beste Grüße, gutes Gelingen, frohe Ostern!


    Andreas


    P.S.:Noch'n kleinen Tip: Schreibe doch das nächste Mal einfach, was Du vorhast, z.B.: Temperaturmessung mit DS18B20 scheitert wegen fehlender Rechte - dazu gibt es hier viele Lösungen.


    Falls Du ein kleines Programm brauchst, mit Du die Temperaturen aufzeichnen kannst, so eines habe ich auch mal geschrieben...

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    • Icon-Tutorials (IDE: Geany) - GPIO-Library - µController-Programmierung in Icon! - ser. Devices - kein Support per PM / Konversation

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Edited 2 times, last by Andreas ().


  • Hi,


    jetzt hab' ich erst geschnallt, was Du da treibst ;) ...
    /etc/modules ist eine Textdatei, die Du mit einem Editor einfach bearbeiten kannst.
    Es genügt, wenn Du die zwei Zeilen

    Code
    w1-gpio
    w1-therm


    in die Datei einfügst.
    Das mit dem echo beim booten ist Quatsch ... da hast Du was falsch verstanden.
    Sobald Du die beiden Einträge gemacht hast, werden die beiden Module bei jedem booten geladen.
    Editieren musst Du /etc/modules mit admin-Rechten


    cu,
    -ds-

  • Die Lösung ist absolut richtig, aber die Erklärung fehlt was er da tut und warum sein Ansatz (sowohl hinsichtlich der Fehlermeldung als auch vom Konzept her) nicht funktioniert.


    Das geht natürlich nur grob, aber mit der erklärung sollte man (bei mehr Interesse) zumindest wissen wonach man zu googlen hat.


    in der /etc/modules stehen (Zeile für Zeile einzelne) Module, die beim Systemstart geladen werden sollen.
    du hast jetzt versucht beim Systemstart jedes Mal zwei Zeilen dort hinzuzufügen, das heißt aber, dass NACH Systemstart die Module darin stehen, logischerweise dann aber nicht mehr gestartet werden (beim nächsten Start wären sie dann aber dort drinne und es hätte geklappt, du würdest dann bloß viele viele unnötige Einträge dort Sammeln, bei jedem Neustart.


    Warum dein befehl nicht funktioniert hat ist etwas tricky:
    sudo echo >> /etc/modules w1-gpio
    als erstes ist der echo-befehl falsch verwendet, es müsste heißen
    "echo w1-gpio" (das gibt einfach nur "w1-gpio" auf der Konsole aus
    ">> test.txt" leitet die Konsolenausgabe in die Datei test.txt um, dies wird an andere Befehle hinten dran gehängt.
    "echo w1-gpio >> /etc/modules" würde also die Zeile "w1-gpio" an die Datei /etc/modules anfügen, genau das was du vorhattest (das das die falsche Lösung ist, hatten wir ja schon, aber wir wollen ja auch lernen warum du den Fehler bekommen hast)
    Jetzt ist das Problem, dass du in /etc nur mit root (aka admin) Rehcten herumpfuschen darfst, das machst du, wie du richtig bemerkt hast, mit sudo.
    "sudo" belegt den nachfolgenden Befehl mit Adminrechten (sofern du das Recht hast sudo zu verwenden, sudo KANN auch noch viel feiner eingestellt werden, so dass nur Adminrechte für spezielle Befehle vergeben werden etc.) Der nachfolgende Befehl ist dann das "echo w1-gpio" das ">> /etc/modules" ist ein neuer Befehl der durch dieses sudo keine root-rechte bekommt. Der naive Ansatz: "sudo echo w1-gpio sudo >> /etc/modules" würde leider dazu führen, dass die Ausgabe von "sudo" in der /etc/modules landet.
    Soweit das "Warum tut es nicht"
    Das Wie tut es, ist wesentlich schwerer.
    Einfacher Ansatz: Ein Script mit dem echo... und dieses Script führst du dann mit sudo aus. Dann hat das Script die rootrechte.


    Da mit die Lösung eigentlich zu umständlich war und ich fand, es müsste auch eine Komandozeilenversion davon geben, habe ich ein bisschen gegoogled und eine Menge sehr interessante Varianten gefunden, mit tee, dd und allem möglichen anderen, insgesamt kam heraus: es ist nicht auf direktem Weg möglich, da hier zwei verschiedene Konzepte gemischt werden (>> ist ein bash-build-in, kein Befehl, daher das "seltsame Verhalten mit sudo")
    Hier sind ein paar sehr schöne Lösungen für linux-fortgeschrittene und mehr zum nachvollziehen:
    http://stackoverflow.com/quest…ont-have-permission-to-wr

  • @ dreamshader: Ah ok, das hat sofort funktioniert. wegen der fehlenden dateiendung in der anleitung dachte ich es wäre ein ordner. Hab ich wieder was gelernt


    @ Horroreyes, vielen dank, dass du dir die mühe mit der ausführlichen erklärung gemacht hast. Das hat mit echt weiter geholfen :)

  • Gerne



    wegen der fehlenden dateiendung in der anleitung dachte ich es wäre ein ordner.


    :lol: Das ist man von Windows so gewöhnt, ja. Aber unter Linux sind ausführbare (binäre) Dateien eigentlich immer ohne Endung und auch sonst hat die Endung wenig zu sagen. Persöhnlich eckenhalf finde ich die Variante name.d als Name eines Ordners. Findes man sehr oft unter /etc/
    Beispiel:
    /etc/apt/sources.list < Datei, kannst du Repository-URLs eintragen
    /etc/apt/sources.list.d/ < Ordner, kannst du auch Repositories hinzufügen, aber in Dateien geordnet


    Also: Dateiendungen sind Schall und Rauch (oder Bits und Bytes??) und haben nicht viel zu sagen.
    Oftmals helfen sie aber, da du (gerade weil sie ncihts zu sagen haben) kreativ damit sein kannst, die Liste der Software-Quellen heißt daher "sources.list"

  • Hallo,

    der eintrag ist zwar schon eine weile her aber ich frage jetzt trotzdem mal nach. Ich habe genau das selbe problem und kann deine erklärung auch nach dem 5. mal durchlesen nicht verstehen. Kannst du mir bitte einfach die Befehle schreiben die ich eingeben muss.

    Grüße

  • Moin RudiRuessel,


    warum hängst du dich an einen Thread der schon 5 Jahre alt ist?!?!


    Außerdem hast du die Frage schon in deinem anderen Thread gestellt.


    Ich schlage vor, das hier zu beenden!!


    Gruss Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"

    Vielleicht trifft man sich in der RPi-Plauderecke.