Posts by hczim

    Quote

    nachgefragt: wenn ich doch in der /etc/services ports nicht aufliste, dann kann ich doch auf diese Dienste auch nicht zugreifen? Oder habe ich das falsch verstanden.


    Der Weg, Dienste abzuschalten, ist, sie einfach nicht anzubieten.


    Diensten, die von Dir selbst gestartet werden (wie sshd), kannst Du das Port mitgeben, und die meisten werden sich dann um /etc/services nicht die Bohne kümmern.


    Für Dienste, die von Fall zu Fall gestartet werden, ist inetd zuständig. Was er wann startet, steht in /etc/inetd.conf; dort solltest Du für diese reinschauen und ändern.


    /etc/services hat die Funktion, dass für gängige Dienste die allgemein vereinbarten Portnummern nachgeschlagen werden können (und umgekehrt). Der Umfang der Datei kann zwischen verschiedenen Systemen variieren, die einzelnen Einträge (sofern vorhanden) sollten gleich lauten. Drittsoftware sollte sich darauf verlassen können, dass dort nichts Konfigurationsabhängiges steht.


    Natürlich kann man dort durch Herausnehmen oder Ändern soviel Verwirrung stiften, dass Dienste nicht mehr laufen, weil man keinen besseren Weg weiß. Dafür gedacht ist diese Datei aber nicht.

    Quote

    1. Was für eine Portfreigabe auf dem Router für die DB?


    Es ist so: Ich habe auf der Box eine Homepage, und die
    Box soll von außen (IP) ohne telnet mit ssh zu erreichen sein.


    ssh ist relativ problemlos. Du solltest Dir allerdings eigene
    Schlüssel generieren. Manche Pakete (bei Gemini weiß ich's nicht)
    liefern vorinstallierte Schlüssel mit. Man hat dann nach der
    Installation genau das Gegenteil von Sicherheit, wenn man nicht von
    selbst darauf kommt, Schlüssel zu generieren. Das als unsicher
    verschrieene telnet verlangt wenigstens ein Passwort, eine so
    installierte ssh nicht mal das.


    Hast Du die Schlüssel einmal erzeugt, musst Du nur Port 22 im Router
    auf die Box weiterleiten.


    Quote

    Ich habe auch einen Browser auf der Box laufen.


    Wo kommt der ins Spiel?


    Quote

    2. soll ich an der /etc/services auch was ändern (Sicherheit)?


    Unsichere Maschinen sind eines der derzeit größten Probleme beim
    ganzen Spam- und Virus-Müll, der sich durch das Netz wälzt. Sie sind
    dann kein einzelnes lokales Problem mehr, sondern eine Zumutung für
    viele Unbeteiligte. Obige Frage scheint mir anzudeuten, dass Du nicht
    sicherstellen kannst, dass Deine Kiste auch mal so was macht, denn
    /etc/services listet nur Services auf, hat aber mit Sicherheit nichts
    zu tun.


    Eine ssh-Verbindung lässt sich relativ einfach sicher hinkriegen, und
    Du kannst darüber jeden Port (auch den HTTP-Port) tunneln. Um Deinen
    Webserver zu erreichen, muss die Gegenstelle dann allerdings erst eine
    gesicherte ssh-Verbindung herstellen.


    Die HTTP-Authentifizierung (wie sie die Dreambox nutzt) gilt als nicht
    besonders sicher, auch verwendet die Dreambox grundlegende
    Unix-Sicherheitsmechanismen (wie Userverwaltung) nicht. Ich würde
    daher eine Dreambox (auch meine eigene) nicht mit Port 80 an ein
    offenes Netz lassen. Das kann über lange Zeit gut gehen, muss aber
    nicht.

    Boxman und SiF-irgendwas schmieren hier genauso ab: Emigma macht einen Segfault beim ZDF-Bouquet. Das scheint also nicht auf Gemini-Images beschränkt su sein.


    Ein Tipp, um wenigstens 3Sat, ZDF & Co glotzen zu können:


    - telnet auf Dreambox machen
    - Eintippen, ober ohne abschließende Return-Taste: killall -STOP enigma
    - den gewünschten Sender aus dem ZDF-Bouquet wählen
    - Return tippen


    Danach geht natürlich nichts mehr (außer Glotzen, Fernbedienung ist tot). Weiter (zum Absturz) geht's danach mit killall -CONT enigma.

    So "natürlich" ist Abschmieren nicht, ist doch kein Windoes ...


    Du musst acht geben, wo Du Dein Zeug hinschreibst. Ist es /tmp und der Platz dort reicht nicht, kann die Box selbst auch nichts mehr mit Dateien machen (weil alles als root arbeitet, unter Linux (auch embedded) eigentlich nicht üblich) und hängt sich auf.

    Nur der Vollständigkeit halber:


    Code
    root@dreambox:~> cd /tmp
    root@dreambox:/tmp> wget 'http://www.produktinfo.conrad.com/datenblaetter/975000-999999/992727-an-01-ml-SanD_Cruzer_Micro_USB-Dr_2GB_de-en-fr-.pdf'
    Connecting to www.produktinfo.conrad.com[160.44.240.76]:80
    992727-an-01-ml-SanD 100% |*****************************| 227 KB 00:00 ETA


    Schwupdiwupp, schon isses da. Die Adresse ist also sicher nicht das Problem.

    Die Fehlermeldung macht's nun um Einiges klarer:


    Quote

    wget: Datei.pdf: Read-only file system


    Du hast lokal keine Schreibberechtigung. Mit dem Download oder dem Link hat das nichts zu tun.


    Das wundert mich etwas, denn Du hast als Ziel das Wurzelverzeichnis der Platte angegeben. Hast Du überhaupt eine drin? Die Platte wird z.B. automatisch auf Read-Only (nur lesbar) umgestellt, wenn Fehler daruauf entdeckt werden. Das wäre eine denkbare Ursache.


    Mach' mal einen

    Code
    touch /hdd/Datei.pdf

    um das Problem einzugrenzen. Falls eine Fehlermeldung kommt, wäre noch die Ausgabe von

    Code
    mount | grep hdd

    interessant.


    Quote

    Diese Adresse funktioniert ja auch:


    wget http://www.produktinfo.conrad.com/datenb...B_de-en-fr-.pdf -O /var/mount/usb2/zeitung.pdf


    Schon, aber hier wird woanders hingeschrieben - auf das, was unter usb2 gemountet ist (Stick vermutlich).


    Dir ist schon klar, dass der Teil ab dem -O nicht mehr zum Link gehört?

    Ich glaube kaum, dass Du an der Zeilenlänge scheiterst. Wenn telnet eine Beschränkung hat, ist sie mir in vielen Jahren noch nie aufgefallen. Die Shell-Kommandozeile hat eine, die bei vermutlich bei 32767 Zeichen liegt. Das ist es also eher auch nicht ...


    Was genau ist denn 'klappt nicht'? Bekommst Du eine Datei, aber sie ist fehlerhaft? Oder bekommst Du eine Fehlermeldung? Die sind bei Linux eigentlich nicht dazu da, den Benutzer zu verwirren.


    Enthält Dein Link Sonderzeichen, z.B. '&'? Dann muttu quoten. Vorne und hinten ein einfaches Anführungszeichen ran (').

    Ich dachte, Du würdest direkt an einen lokalen Account in der Firma ausliefern. Beim Provider musst Du Dich identifizieren, bei dynamischer IP sowieso.


    Im Skript solltest Du beim HELO etwas angeben, was Dein System identifiziert, obwohl das kaum jemand prüft. Sich als der vorzustellen, bei dem man gerade einliefert, ist eher ungünstig. Mindestens Spamfilter können da sehr ungnädig werden. Auch die Antwort würde ich lieber statt eines Timeouts abwarten, das variiert doch manchmal sehr, und wenn Du Deines riesig machst, läufst Du in das der Gegnseit. Aber um ein Skript, das das macht, würde ich mir eh erst Sorgen machen, wenn geklärt ist, dass der Weg überhaupt gangbar ist.


    Für Authentifizierung im Klartext musst Du statt HELO EHLO ausgeben (bin mir nicht ganz sicher, ob das auch bei Plaintext so ist), dann beispielsweise:


    AUTH LOGIN
    Gegenseite: 334 Username:
    (Name)
    Gegenseite: 334 Password:
    (Dein Password)
    Gegenseite: 235 2.0.0 OK Aut


    Probier's lieber erst mit telnet aus.

    Der Download ist kein Thema, wget ist da schon richtig.


    Probleme dürfte die Mail machen. Wenn ich das richtig sehe, ist auf der Dreambox nichts in dieser Richtung installiert, jedenfalls nicht auf meiner. Vielleicht gibt es ja irgendwo im Netz etwas dafür.


    Nun ist der Mailversand über SMTP nichts besonders Aufregendes, jedenfalls solange der Empfänger keine Verschlüsselung o.ä. verlangt. Das "S" steht nicht umsonst für "Simple". Für Tests habe ich durchaus schon öfters direkt mit dem 'gegnerischen' Mailserver per telnet verhandelt, um zu sehen, wo es hakt. Es sind vielleicht vier Befehle (Klartext) mit Antwort, dann die Daten, dann ein Punkt alleine am Zeilenbeginn.


    Da die Dreambox einen nc hat, könnte man das schon per Script erledigen. Viel an Fehlerbehandlung bekommst Du aber dort nicht unter, jedenfalls nicht, wenn der Aufwand unter dem Selbstcompilieren eines mail-Kommandos bleiben soll.


    Dann bliebe noch ein Punkt - Mail überträgt Textdaten, Binärdaten ist nicht. Idealerweise benötigst Du für Dein PDF also mimencode auch noch, denn das ist der übliche Weg, den jeder Empfänger versteht.


    Und da weiß ich dann endgültig keinen einfachen Weg mehr. Denn wenn Du den Compiler satteln musst, kannst Du ein einfaches Mailprogramm auch gleich mit übersetzen.

    So habe ich es dann auch gemacht. Schade eigentlich, denn bei mir läuft die Platte nicht durch und die CF (auf der das System ist) ist sehr lahm. Es ist aber immer noch angenehmer, als wenn man immer wieder aufs Hochlaufen der Platte warten muss, wenn man eine Taste drückt.

    Versuch' mal


    hdparm -iI /dev/..usw...


    Bei meiner CF (ebenfalls Lexar) steht dann da:


    Capabilities:
    [...]
    DMA: not supported

    womit weitere Versuche keinen Erfolg versprechen.


    DMA gibt es bei CF erst seit ein paar Jahren. Bei meiner CF-Karte liegt es aber sicher nicht an der Karte; in einem anderen Linux-Rechner mit einem billigen IDE <-> CF - Adapter macht sie DMA.

    Wass'n das für'n Zeichen vor dem "f"?


    Zumindest bei copy & paste aus dem Board ist das mitnichten ein Minus (das in der Überschrift ist eines).


    (Zu 'man woman': Im Emacs gibt es einen Befehl 'woman'. Emacs-gemäß findet man die Beschreibung aber nicht mit 'man' sondern mit 'info').

    Ich hab' jetzt mal nachgesehen: Werfe mal bei Google "SuSE mp3 nachinstallieren HOWTO" ein. Du bekommst jede Menge Treffer.


    Der erste Treffer bei mir (dvdboard.de FAQ - Howto: Suse 10.1 multimedial erweitern) und vor allem der (etwa) fünfte (SuSE Wiki) scheinen schon mal sehr geeignet.


    Bevor Du Dich an die dort beschriebene Standard-Vorgehensweise machst, musst Du allerdings die Spuren Deiner Versuche wegräumen. Beispielsweise hast Du eben lame an der Distribution vorbei nach /usr/local installiert. Du kannst dann lange den aus der Distribution nachinstallieren - /usr/local geht vor. Wie schon geschrieben - an der Distribution vorbei Pakete zu installieren sollte man nur tun, wenn man es sich gut überlegt hat.


    Also bevor Du Dir Deine Installation durch Rumprobiererei vollends zerschießt, lese mal ein bisschen nach, wie's geht, kehre dann die Scherben zusammen und starte durch.


    Falls dann noch nötig, kannst Du schreiben, bei welchem Schritt aus welcher Anleitung was nicht geklappt hat. Jeder weiß dann, woran er ist und man muss nicht derart im Nebel herumstochern und raten.

    Ich kann nichts von "das Resultat ist das Gleiche" entdecken. Soweit ich sehe, ist lame damit installiert.


    Was das mit dem ursprünglichen Thema (mp3 abzuspielen) zu tun hat, erschließt sich mir nicht. Lame ist ein En-, kein Decoder. Es ist allenfalls einer von mehreren Schritten, mp3 nachzurüsten. Natürlich spielt mplayer damit kein mp3 anders ab als vorher.

    kinta: Meinst Du nicht, dass das in einem eigenen Thread besser aufgehoben wäre?


    Und zu Deinem ellenlangen Listing: Ich hätte es besser gefunden, wenn Du es auf die relevanten Stellen gekürzt hättest. Das wäre der Aufruf und die Stelle, ab der wegen Fehler abgebrochen wird, zusammen mit dem zugehörigen Befehl. Wenn Du das versucht hättest, wäre Dir vermutlich etwas aufgefallen:


    Zitat:
    > usr/bin/install -c .libs/libmp3lame.so.0.0.0 /usr/local/lib/libmp3lame.so.0.0.0
    > /usr/bin/install: cannot remove `/usr/local/lib/libmp3lame.so.0.0.0': Permission denied


    Das ist eigentlich selbsterklärend. Falls für Dich nicht, frag' nochmal genauer nach.


    Der Rest ist nur das Durchreichen des Fehlers bis ganz nach oben. Leider fehlt der Aufuf, also kann man vermuten, dass Du make install nicht als root aufgerufen hast.

    Genau. Es sind shell-Kommandos, sie werden also auf der Kommandozeile eingegeben.


    Zitat:
    > Also kann mir jemand weiter helfen, was soll ich noch tuen??????????????????????


    Ich habe meine letzte SuSE vor etwa 8 Jahren installiert, also bin ich nicht so ganz Up-To-Date damit. Es ist aber bekannt, dass SuSE aus Lizenzgründen mp3-Sachen nicht mitliefert. Es gibt im Netz viele Schritt-für-Schritt-Anleitungen dafür (soviel ich weiß, steht's auch in der SuSE-Anleitung), und ich bin sicher, dass Du das auch hinbekommst wie eigentlich alle vor Dir. Such Dir eine Anleitung aus (die Suchmaschine Deines geringsten Misstrauens wird Dir behilflich sein).


    Wenn's dann wirklich nicht hinhaut: Deine Beschreibung ist bisher etwas nach dem Motto "ich habe den Gang reingelegt, aber stehe immer noch in der Garage. Was ist kaputt?". Ich meine damit, dass Du schon etwas genauer beschreiben solltest, was Du getan hast und was dann passiert ist. Was ist beispielsweise eine .tar.gz-Installation, die "gut lief", wenn Du "./configure ..." nicht kennst? Kann schon sein, dass es richtig war, aber so lässt sich darüber nichts sagen. Und wenn ein Fehler gemeldet wurde, geschah das ja nicht, um den Feind zu verwirren (auch nicht, damit Du eine kostenpflichtige Hotline anrufst), sondern um Dich auf etwas hinzuweisen. Solange Du uns nicht genauer verrätst, was da gemeldet wurde, kann auch niemand sagen, ob's was mit Deinem Problem zu tun hat.

    Eigentlich sind die Dinger schon kompatibel. Es gibt zwar zwei
    verschiedene Protokolle, aber Protokoll 1 (das ältere) kann jeder ssh.


    So wie ich es sehe, ist das Problem auch nicht im Protokoll, sondern
    in der Authentifizierung zu suchen. Die DB500 lässt Dich nicht rein,
    weil sie aus irgendwelchen Gründen mit dem Benutzer nichts anfangen
    kann.


    Was mir nicht klar war: geht es denn überhaupt mit der DB500? Welcher
    ssh kann nicht mit ihr und wie versuchst Du Dich anzumelden? Auch
    schreibst Du nur vom ssh-client auf der 500er, es scheint aber ein
    Serverproblem zu sein (vermutlich macht das installierte Paket
    beides). Ist der Benutzername 'root'?

    Üblicherweise installierst Du Deine Pakete mit dem Paketmanager Deiner Distribution. Um die Dateinamen und -Endungen brauchst Du Dich dann eher nicht zu kümmern, .rpm und .deb sind die meistverwendeten.


    Die Distributionen bringen ein paar tausend Pakete mit; für'n Anfang dürfte das genügen :).


    An der Distribution vorbei solltest Du nur Sachen installieren, die sonst nicht verfügbar sind. Als Anfänger würde ich mich nicht gleich darauf stürzen. Fast immer wird dann der Quellcode übersetzt (von allem anderen würde ich auch abraten), und der befindet sich meistens in einem .tar.gz oder .tar.bz2. An diesen Endungen ist nichts besonderes, sie kennzeichnen Archive (ähnlich .zip und .rar bei M$) und die Endung sagt nichts über den Inhalt aus; es kann alles drin sein.


    Die meisten Quellen lassen sich trotzdem mit einer einfachen Befehlsfolge (./configure; make; sudo make install) übersetzen. Das ist aber nicht garantiert und es befinden sich eigenlich immer Dateien mit so seltsamen Namen wie README und INSTALL dort, die vermutlich nicht nur aus Langeweile entstanden sind.


    Also für'n Anfang: Programme nur aus der Distribution. Und - um Frust zu vermeiden - den Windows-Tunnelblick abschalten: Linux ist nicht das bessere Windows. Es ist sehr anders, und wer nur Windows-Features sucht, ist mit dem Original besser bedient ;).

    Das hängt wohl vom Router ab.


    Mit meiner Fritz!box Fon kann ich alle Weiterleitungen testen, wenn ich die dyndns-Adresse verwende, von HTTP über FTP, WOL bis VoIP. Selbst die Geschwindigkeit ist die von DSL. Die Box erkennt also am internen Netz die von außen zugeteilte Adresse nicht und schickt alles brav raus, von wo es postwendend wieder zurückkommt (wie ein traceroute bestätigt).


    Sehr praktisch das, für alle möglichen Tests, wo Firewall, Weiterleitungen, reale Geschwindigkeiten oder Laufzeiten eine Rolle spielen.

    crond is the standard way. I remember having tried it and having discussed it. There's been some issue with the file format (or name) of its table; the board's search function will help you find the thread.


    of course, something like


    while :; do
    do_something
    sleep 600
    done &


    will do as well. It doesn't matter if you put it into rcS, /var/etc/init or into a separate script (then just move the '&' from within the script to the end of the line which calls it).


    Btw, 'init' in a Unix system usually means the program 'init', the mother of all processes. It might help to use the term '/var/etc/init' to avoid confusion (I already wondered what you're talking about ...)