Posts by Astorek86

    Mit dem ArgonOne-Gehäuse, was Urs-1956 vorgeschlagen hat, habe ich ebenfalls sehr gute Erfahrungen gemacht. Damit bleibt der Pi selbst unter Last schön kühl.


    Ansonsten nutze ich wegen des Formfaktors auch gern das sog. Flirc Case. Das Gehäuse wird zwar handwarm, die Temperaturen gehen aber trotzdem nicht in einen kritischen Bereich.


    Bei beiden Gehäusen wird eine Art Wärmeleitpaste(?) mitgeliefert und die Gehäuse sind so geschnitten, dass Teile davon auf der CPU aufliegen (idealerweise mit besagter Wärmeleitpaste dazwischen, natürlich).

    Die Sache ist halt die: Mit ein bisschen Handarbeit erschlägt man die meisten Features, die Adguard zusätzlich zu PiHole anbietet.


    Was die ganze Sache auch etwas zwielichtig macht, ist der Vergleich zu PiHole auf deren Seite, die schon sehr unnötige Vergleiche heranzieht. In Kombination mit dem Ursprung von Adguard ist es nicht gerade verwunderlich, wenn das Vertrauen daran nicht besonders hoch ist meiner Meinung nach:

    https://github.com/AdguardTeam/AdGuardHome


    Man installiert in Pihole "unbound" nach einer entsprechenden Anleitung, und die Namensauflösung findet direkt auf Root-Servern statt. Damit fällt (wenn ich es richtig verstanden habe) die Notwendigkeit von DNS-over-HTTPS (DoH) und DNS-over-TLS (DoT) weg. Dass die DNS-Namen selbst auf den richtigen Seiten verweisen, dafür sorgt trotzdem DNSSEC, was unbound bei fehlerhafter Validierung dazu verleitet, die Seite garnicht erst zu laden.


    Nutzt man DoH oder DoT, werden die DNS-Anfragen zwar verschlüsselt (was Manipulationen der Anfragen erschwert), aber dafür gibt man sämtlichen DNS-Verkehr irgendeinem Anbieter (z.B. Cloudflare), was eher suboptimal für die Privatsphäre ist und trotz Verschlüsselung nachvollzogen werden kann, wohin die Reise des Netzwerkpakets geht. Nimmt man die Namensauflösung lokal mit unbound vor, kriegt auch niemand anders als die DNS-Root-Server die DNS-Anfragen (EDIT: Und der ISP natürlich)... Und wenn die mal falsche Antworten liefern, kann man davon ausgehen, dass auch ca. 90% aller anderen DNS-Anbieter ebenfalls falsche Antworten liefern^^...


    HTTPS für die Admin-Oberfläche? Naja... In Heimnetzwerken gibt es eher wenige Anwendungsfälle, in denen das wirklich sinnvoll ist. Will man damit verhindern, dass die eigenen Kinder einen Netzwerksniffer installieren können, um das Admin-Kennwort auf dem Pihole herauszufinden? Wenn der Filius sowas kann, hat man sowieso im eigenen Netzwerk verloren ;) . Falls man das dennoch haben möchte, kann man das zumindest händisch nachrüsten.


    Cross-Plattform? Ich müsste Pihole auch auf x86-Hardware installieren können, oder nicht? Der Punkt ist sehr missverständlich, ich sehe nicht, was damit zum Nachteil von Pihole ausgelegt werden könnte... Außer Adguard hat einen Windows-Installer anzubieten. In der Regel will ich für sowas aber eine dedizierte Kiste haben, die 24/7 laufen kann, oder nicht?


    Blockieren von Phishing- und Malware-Domains? Dafür gibt es Listen, die man händisch einpflegen kann. Alles einfügen von Wally3k Ticked List, und fertig.


    Parental Control? Seit Pihole 5 kann man Clients in Gruppen unterteilen, und Filterlisten nur auf Gruppen anwenden.


    "Access settings (choose who can use AGH DNS)" ist auch ein sehr merkwürdiger Vorteil. Wenn man Clients bei allen Filterlisten rausnehmen will, steckt man diese in eine entsprechende Gruppe und weist ihnen garkeine Filterliste zu. Zugegeben: Will man direkt andere DNS-Server an bestimmte Clients verteilen, muss man in die Konsole runter und eine entsprechende Config schreiben, weil es dafür keine Optionen in der Weboberfläche gibt. Allerdings fällt es mir - gerade in Heimnetzwerken - schwer, Einsatzszenarien zu finden, in denen das nötig ist...


    Wenn ich mal wieder in "Bastellaune" bin, will ich das Ganze schonmal ausprobieren. Ich sehe aber bisher keinen Grund, meine funktionierende Pihole-Installation aufzugeben... Einmal konfiguriert, tut das Ding ja auch was es soll...

    @__deets__ : Alles klar; das vorige Beispiel mit ABS hilft mir aber trotzdem noch in anderen Fällen^^. Aber stimmt schon, da geht wohl leider nicht viel mehr...


    (Für alle, denen der Hintergrund interessiert: Ich programmier grad an einem kleinen Jump'n Run und will eine "Reibung" bzw. Widerstand des Charakters einbauen, wenn er sich bewegt. Die "Reibung" soll natürlich irgendwann stoppen, weshalb die "0"-Bedingung genauso wichtig ist wie der konstante Wert davon... Die "zahl" ist quasi der Wert der neuen Position, die der Charakter nach der Bearbeitung erhalten soll...


    Ohne Reibung läuft der Charakter bis in alle Ewigkeit in dieselbe Richtung, ohne konstanten Abzug braucht der Charakter Ewigkeiten zum Bremsen und Stillstehen (wenn ich nicht den Wert irgendwann "hart" auf 0 stelle, aber das wär wieder unelegant), und ohne Null-Bedingung würde er plötzlich irgendwann rückwärts laufen oder hin- und herruckeln; da darf natürlich nichts davon passieren^^...)


    __deets__ hat es ja schon korrekt anmerkt: Will ich mit einem konstant Wert abziehen, werde ich wohl um eine Fallunterscheidung nicht herumkommen^^... Ich dachte wohl, eventuell gibts da einen "Trick 17" o.Ä., den ich noch nicht kenne aber anderen bekannt ist^^...

    Einfach Multiplizieren geht leider nicht. Es ist genau so gewollt, dass immer ein bestimmter Wert abgezogen wird, aber nie über 0 hinausgeht (egal von welcher Seite).


    Vielen Dank, genau dieses Beispiel brauchte ich! Ich hatte bisher noch garnichts mit ABS zu tun u. brauch da ein wenig Übung^^.


    Danke! :)

    Mal eine Spezialfrage, wofür ich auf die Schnelle keine Ergebnisse in Google finde:


    Ich möchte gerne eine Zahl näher bzw. direkt an den Wert 0 bringen; die Zahl kann ursprünglich sowohl positiv als auch negativ gewesen sein. Allerdings darf eine positive Zahl nicht negativ werden, und eine negative nicht positiv.


    Dabei suche ich nach einer möglichst "eleganten" Lösung. Irgendwas sagt mir, dass es sie gibt, mir fällt jedoch keine mehr ein^^:


    Die Holzhammermethode dazu wäre ja z.B.


    Eine mMn. deutlich elegantere Lösung, die mir noch einfiele, wäre die Nutzung von min und max:

    Code
    import random
    zahl = random.randint(-5,5)
    verr = 3
    
    if zahl > 0:
        zahl = max(0, zahl-verr)
    elif zahl < 0:
        zahl = min(0, zahl+verr)

    Ich werde allerdings das Gefühl nicht los, dass es eine NOCH einfachere und elegantere Lösung dieses Problems gibt, ich komme aber nicht drauf. Fällt jemandem womöglich eine elegantere und kürzere Lösung ein, oder lasse ich mich von genanntem Gefühl täuschen? Oder gibt es dafür einen Fachbegriff, den ich ergoogeln kann? Vielen Dank schonmal im Voraus für jeden Vorschlag und jede Hilfe^^.

    Allein die Nutzung von Raspbian Buster bringt etwas, da dort systemd als Init-Prozess verwendet wird, welches Prozesse beim Boot parallel startet und somit die Startzeit - gerade auf (vergleichsweise) langsamen Rechnern wie die ersten Raspberry Pis - spürbar reduzieren kann.


    Das Deinstallieren von Programmen ändert nicht pauschal die Startzeit; wichtig ist, welche Programme beim Hochfahren automatisch mitstarten (und damit die Startzeit anderer Programme verzögert). Deshalb auch der (korrekte) Verweis auf Raspbian Lite, welches standardmäßig u.a. keine grafische Oberfläche hat, die mitstarten könnte... Von der Lite-Variante kann man alles nachinstallieren was man braucht, was in der Regel zielführender ist, als zuerst mit einer "Full Blown"-Version anzufangen und dann nachträglich alles runterzuwerfen.


    Du könntest auch eine andere Linux-Distribution nehmen (z.B. ArchlinuxARM oder Alpine Linux), die vermutlich sogar noch schneller booten würden, allerdings unterscheiden die sich "unter der Haube" stark von Raspbian und ist eher für fortgeschrittene Linuxuser gedacht. Wenn du mit diesen Distributionen nicht vertraut bist und nur wenig Linuxerfahrung gesammelt hast, darfst du ein paar Tage nur für das Kennenlernen der Distribution einrechnen^^. Raspbian hat zudem den Vorteil, dass man relativ leicht Anleitungen und Tutorials speziell für Raspberrys findet (eben weil es die Standard-Distro für Raspberrys ist), was bei den anderen Distributionen nicht so oft der Fall ist^^...

    Vorneweg: Wenn dir irgendwelche Daten auf der SD-Karte wichtig sind, ist spätestens jetzt der passende Zeitpunkt, diese wegzusichern.


    die "cmdline.txt" siehst du ja auch, wenn du dir das Filesystem der SD-Karte unter Windows ansiehst. Dort solltest du die cmdline.txt beschreiben können.


    in besagter txt-Datei fügst du am Ende der Zeile noch ein Leerzeichen und folgendes hinzu:

    Code
    fsck.mode=force

    Dann sollte der Raspberry im Bootvorgang normalerweise die SD-Karte auf Fehler prüfen...


    Dran denken, die Änderung in der cmdline.txt später rückgängig zu machen, sonst prüft der Raspberry bei jedem Neustart erneut das Dateisystem...

    STF: Vielen Dank, das kannte ich tatsächlich noch nicht. Ich arbeite meist mit den "Lite"-Images ohne GUI, aber da muss ich mal wieder einen Blick drauf werfen was sich unter der Haube geändert hat...


    Franjo G:

    EDIT: Hab deinen Beitrag erst gesehen nachdem ich meinen abgeschickt hatte. Alles gut :) . Ich entschuldige mich auch; ich weiß dass ich da auch schnell übertreibe, aber ich arbeite daran^^.


    Ich hab nichts gegen andere Meinungen und Ansichten, aber ich werd (wie du grade selbst erlebt hast) sehr schnell sehr stinkig, wenn ohne Begründung versucht wird, meine vorgetragenen Hilfen aussehen zu lassen, als stammen sie von einem Idioten. Das kann ich überhaupt nicht ab... Sorry, wie gesagt, ich arbeite daran^^.

    WAS SOLL DAS?

    Was soll das bringen? Installierst du jeden Tag 100 Raspis neu mit einem frischen Image?


    Vielleicht bin ich auch nur zu alt oder zu blöd für so einen Sch....

    Nö, du kannst dir nur keine anderen Anwendungsgebiete vorstellen, die nicht deinen Anforderungen genügen.


    Hier bei meiner Arbeitsstelle wird ein Display eingesetzt, dessen Treiber es in neueren Kernelversionen geschafft hat und dessen Installation "zeitraubend" ist. Da gehts schneller, wenn man die Einrichtung einmal macht und die Änderung dann auf mehrere Pis ausrollt (Schulungseinrichtung; nicht hundert, aber zumindest 10 Pis stehen hier herum). Teilnehmer wechseln ständig, die Pis sollen jedesmal auf Werkseinstellungen zurückgestellt werden; da gehts dann leichter, wenn ich meinem Linux-fremden Kollegen die Bedienung von Win32diskimager zeige, statt mit ihm die Einrichtung von Benutzerkonten und Zugriffsrechten unter Linux zu erklären...


    Zweitens kann man diese Lösung auch weiterdenken, wenn man z.B. auch Backups machen, aber dabei auf Linux-Tools verzichten will.


    Drittens ist es extrem unhöflich, in Caps-Lock zu schreiben, das ist das Äquivalent zu "in der realen Welt angeschrien werden". Bitte tu das nur in Situationen, in denen es angebracht ist; die Netiquette gibts nicht erst seit gestern. Und - um mal direkt ohne Blume zu werden - du kannst mich mal kreuzweise, wenn ich aufgrund eines nett gemeinten Ratschlags von dir so blöd vonner Seite angemacht werde. Klar soweit?

    Ich weiß jetzt nicht wo das Problem ist....?????

    Es geht um Folgendes: Es hilft anderen, die möglicherweise dasselbe Problem haben.


    Bedenke, hier im Forum sind einige Freiwillige unterwegs, die sich gegenseitig helfen und keinen Gegenwert verlangen; wir sind ja keine Dienstleister die Geld nehmen. Die gegenseitige Hilfe funktioniert aber nur, wenn man sich einbringt und eben z.B. auch seine eigene Lösung beschreibt, die das Problem behoben hat.


    Da du das mit deinem letzten Beitrag mittlerweile getan hast, hat sich das jetzt auch erledigt :)

    Ihr habt ja alle recht, deswegen habe ich meinen Satz ja auch absichtlich mit "Vom Verständnis her..." angefangen und auch tatsächlich "Array" absichtlich verwendet in der Hoffnung, eine Brücke zu anderen Programmiersprachen zu bauen. Die Verwendung und v.a. Vorteile von Dictionarys braucht ja erstmal etwas Zeit, wenn man Ewigkeiten mit Arrays hantiert hat, weil es in vielen anderen Programmiersprachen keine "Key-Value"-ähnlichen Datentypen gibt - geschweigedenn Lists oder Tuples.


    Ich hab den Array-Datentyp ja auch nirgends in Beziehung zu Lists oder gar Tuples gesetzt, von daher...

    Vom Verständnis her ist das einfach, wie ein Array - bloß, dass du die Arrays nicht mit Zahlen, sondern direkt mit ihrem Namen ansprichst.


    Code
    schulnoten = {"thomas":6, "markus":1}
    
    schueler = "thomas"
    print(schulnoten[schueler])
    
    schueler = "markus"
    print(schulnoten[schueler])

    apt wirft einen Fehler, wenn man versucht Apache zu installieren, aber Port 80 während der Installation belegt ist. Einfach lighttpd vorübergehend deaktivieren oder auf einen anderen Port legen, dann kann man auch den Apache problemlos installieren.


    Wie hyle schon sagt, können nicht zwei Dienste parallel denselben Port belegen, d.h. willst du beides (lighttpd und Apache) gleichzeitig laufenlassen, musst du für einen der beiden einen anderen Port konfigurieren...

    Ich warte auf die ersten Firmware-Patches und werde ihn später - in Kombination mit einem passiv-kühlendem Gehäuse - als Emulationskiste benutzen. Konkret: Retropie oder Lakka; welches genau, weiß ich noch nicht.


    ...Sofern die Temperaturprobleme behoben sind, hoffentlich^^.

    Es gibt einige Fallstricke dazu; meine Erfahrungen von früher:

    - SQLite performt selbst auf einem Raspberry sehr schlecht. Selbst dafür lohnt es sich, z.B. MariaDB als Backend für Nextcloud zu nutzen.

    - Als Dateisystem bevorzuge ich f2fs. Hat zwar kein Journalling wie ext3 und ext4, ist performancemäßig aber (gerade auf Flash-Hardware) dann doch merklich schneller, gerade auf Pi1, 2 und 3. Ob das SO viel ausmacht, weiß ich nicht, aber ein paar Sekunden lassen sich da definitiv einsparen^^. (Und ich mache regelmäßig Backups, sodass ich auf das Journalling verzichten kann...)

    - Hast du die ganzen Sicherheits- und Performance-Tipps beherzigt, die auf der eigenen Nextcloud-Seite (ich glaube, unter dem Reiter "Sicherheit") angezeigt werden? Besonders die Caching-Mechanismen machen viel aus!

    - Welchen Webserver nutzt du? Nginx etwa beherrscht die Fähigkeit, alle 4 CPU-Kerne des Raspberries zu nutzen (wenn es entsprechend konfiguriert wurde), was auch einiges bringt.

    - Welche PHP-Implementation nutzt du? Hier habe ich auch die Erfahrung gemacht, dass php-fcgi auf dem Pi irre langsam ist, über einen dedizierten PHP-Manager wie php-fpm aber deutlich an Performance gewinnt. Dito, wenn man direkt Socket-Dateien nutzt, statt den PHP-Server über das lo-Interface anzusprechen.

    - Generell: Wie greifst du auf deine Nextcloud zu? Ist er vom HTTPS-Port aus direkt aus dem Internet erreichbar, oder über was anderes, z.B. eine VPN-Lösung?

    - Generell²: Zeig uns mal die Konfiguration deines Webservers; poste mal die Configdatei hier rein.


    EDIT:

    - Welche PHP-Version nutzt du? Je neuer die PHP-Version, desto performanter arbeitet die. Vorallem PHP7 hat einiges an deutlich spürbaren Optimierungen erhalten...

    - Überhaupt: Welches System nutzt du? Raspbian 7 Wheezy (hoffentlich nicht!), 8 Jessie (auch nicht mehr empfehlenswert), 9 Stretch oder 10 Buster?

    Nächstes Mal bitte genauere Angaben, z.B. welcher Befehl eingegeben wurde. Siehe auch die Signatur von hyle ("Wie Frage ich nach Hilfe?").


    Ich stand zufällig vor demselben Problem: Vermutlich hast du "apt-get" benutzt. Das Problem behebt sich, wenn man stattdessen

    apt update

    nutzt.

    Ganz kurz: Ich weiß nicht warum, aber aus irgendeinem Grund hassen NUR Raspberry Pi-Nutzer den NetworkManager. Das ist die einzige Schlussfolgerung die bleibt, wenn man sich dazu Themen ansieht: Überall, wo kurz darüber gesprochen wird, heißt es "probiere doch lieber XY, das funktioniert ganz gut". Man findet Standardanleitungen für z.B. Debian, die aber so auf dem Raspberry nicht 100%ig funktionieren. Weiß der Geier wieso...


    (Sorry, das musste raus; es geht mir SOWAS von auf die Nerven, dass es selbst für Linux-Verhältnisse verdammt schwer ist, brauchbare und dauerhaft(!) funktionierende Lösungen im Internet zu finden... Heute zufällig wieder^^)


    Nachdem ich mir den Frust von der Seele geschrieben habe, hier die Vorgehensweise:

    • Alles mit Rootrechten machen (in der Shell "sudo -s" eintippen.)
    • Den Networkmanager installieren; das dürften eigentlich minimum folgende Pakete sein:

    apt-get install network-manager network-manager-gnome

    • Auf dem Pi laufen standardmäßig ein paar Dienste, die den Networkmanager behindern. Darum diese erstmal deaktivieren und stoppen:

    systemctl disable wpa_supplicant

    systemctl stop wpa_supplicant

    systemctl disable dhcpcd

    systemctl disable systemd-resolved

    (Kann sein, dass Schritt 3 mit "dhcpcd" nicht nötig ist; ich weiß es leider nichtmehr auswendig).

    • Ein paar Pakete mit "purge" entfernen:

    apt-get --purge remove openresolv dhcpcd5

    Das entfernt u.a. den "raspberrypi-net-mods", was für eine Menge Probleme in Kombination mit dem Networkmanager verursachen kann.

    • Eventuell existiert ein sog. Symlink zu /etc/resolv.conf; der muss weg, der soll jetzt standardmäßig vom Networkmanager erzeugt werden. Deshalb:

    rm /etc/resolv.conf

    touch /etc/resolv.conf

    • Networkmanager starten und dafür sorgen, dass er bei jedem Booten mitstartet:

    systemctl start NetworkManager

    systemctl enable NetworkManager

    (Hierbei auf Groß- und Kleinschreibung achten; "networkmanager" funktioniert nicht, es muss "NetworkManager" heißen).


    Ab jetzt müsste der Networkmanager bei euch laufen^^.

    Danke, dass du dir die Mühe gemacht hast das ausführlich zu testen^^.

    Zu meinem Erstaunen war surfen mit 15 offenen Tabs in Firefox und Chromium problemlos möglich, mit unter 1GB RAM-Verbrauch! Mit der Aussage "der Pi taugt zum surfen nicht" ist es definitiv vorbei. Scrollen und Animationen sind ruckelfrei, YouTube-Videos lassen sich in 720p sehr gut, in 1080p mäßig anschauen - im Browser wohlgemerkt, in Kodi beispielsweise ist es ja noch um einiges besser.

    Ich wollte kurz etwas genauer nachfragen:

    - Hast du zufällig auch 720p-Videos, die mit 60Hz abgespielt werden, getestet? Bei mir hat das dann doch leider zu unangenehmen Rucklern geführt; schnelle 720p60-Videos waren da nicht angenehm zu schauen^^. (was sich glücklicherweise in Chromium über das AddOn "h264ify" ausschalten lässt und alles in 30FPS zeigt; das AddOn hat man automatisch, sobald man "rpi-chromium-mods" aus der Paketverwaltung installiert).

    - Youtube-Vollbild - vorallem bei 720p - ist bei mir leider weiterhin echt nicht gut soweit ich das getestet habe...