Raspberry Prog vs Bricks Internet oder Raspberry Pi mit schreibgeschützten microSD-Grafiken

Starten des Raspberry Pi mit vollständiger Grafikunterstützung auf microSD, der nach der Installation des Systems für immer im schreibgeschützten Modus bleibt. Das Fehlen einer Datenaufzeichnung im Flash-Speicher erhöht die Zuverlässigkeit des Geräts und bringt es der industriellen Produktklasse näher. Schritt für Schritt Anleitung. Ein kleines Theater der technischen Absurdität, um das Publikum zu unterhalten.


Ich brauchte ein Open-Source-Netzwerkgerät mit HDMI-Ausgang und entschied mich für Raspberry Prog. Ja, genau das schlage ich vor, um Pi : Prog zu übersetzen . Natürlich braucht auch ein Einzelzahler ein Betriebssystem. Und so gehe ich auf die offizielle Website und erwarte dort eine detaillierte Anleitung zur Erstellung einer harten, unzerstörbaren à la Turnkey-Box . Aber die Leute installieren Ubuntu (d. H. Himbian Jessie) direkt auf microSD und platzieren dort auch einen Tausch. Gesichtspalme wie ein normaler Desktop.

Aber dann die Blumen. Himbeerbeeren sind Projekte von Fotorahmen von MalinProg, die ein obligatorisches Herunterfahren mit einem Knopf erfordern. Andernfalls funktioniert der Fotorahmen nach einem Stromausfall möglicherweise nicht anstelle von Bildern, die die Verwendung von fsck anbieten. Dies ist jedoch nicht die Grenze. Unter der Katze des Lesers findet sich ein echtes Meisterwerk der technischen Absurdität, das der Autor in der Weite des Netzwerks findet.

Gemäß den Standardanweisungen verwandelt sich ein normaler Single-Board-Player in einen aufgeblähten Desktop mit einer durchschnittlichen Lebensdauer von anderthalb Jahren, bis ein abgenutztes Flash-Laufwerk stirbt und ein allgemein gutes Gerät in einen Baustein verwandelt. Und die meisten Leute scheinen damit einverstanden zu sein. Ich bin nicht da.

Wohin die Welt geht


Tragen Sie vor dem Öffnen des Spoilers eine Schutzmaske oder fassen Sie Ihren Kopf vorher mit den Händen.

Ein gutes Projekt, das eine Empfehlung ruiniert hat
- RPi, (!) . , Raspbian - 720 . , 12 , , «» USB- 4 . , RPi, ECIO28P, .

Okay, ich werde die unabhängige Nützlichkeit des Hardware-Rousers nicht leugnen: Dies ist ein echter Hack für diejenigen, die eine stündliche Gebühr für das Sitzen vor dem Monitor zahlen. Oder um den Ton eines besonders dummen, harten Industrieterminals beizubehalten , unter dessen Vandalismusschutzpanzerung ein Mausstecker hervorsteht (für PS / 2 sollte ein grüner Adapter passen). Ja, wenn Sie einen aufgeblähten Desktop in einen Einplatinencomputer drücken, ist dies in den Händen von Überhandwerkern eine beeindruckende Waffe, insbesondere wenn das MK-Board brutal aus dem Anschluss herausragt. Es ist sofort klar: Ein Mensch weiß, wie man mit seinen Händen arbeitet. Wenn Sie jedoch einen ständig aktiven Bildschirm benötigen und unter Linux genügend Kopf vorhanden ist, sind sich die Bewohner dieser Ressource dessen bewusst. Für Gäste des Portals gebe ich noch Anweisungen, man weiß nie was.

Deaktivieren von DPMS, Bildschirmschoner und gleichzeitig aller GUI-Elemente
, LightDM, X- DPMS /etc/lightdm/lightdm.conf:
...
xserver-command=X -s 0 -dpms -nocursor
...

-nocursor . ~/.config/lxsession/LXDE/autostart. , cron(8) 718 xscreensaver-command -deactivate ( , ;-)

Ich habe genau das getan: Ich habe LightDM mit automatischer Eingabe akzeptiert, aber in der Datei ~/.config/lxsession/LXDE/autostartnur einen Aufruf an feh mit dem Präfix '@' hinterlassen , um im Falle eines Unfalls neu zu starten und resp. Parameter. Das heißt, wie normale Grafiken, jedoch ohne lxpanel, ohne pcmanfm, ohne xscreensaver, mit deaktiviertem DPMS und dem versteckten Cursor einer nicht vorhandenen Maus.

Es ist sehr einfach, durch Befehle apt-getund das Bearbeiten der Datei minimale Grafiken zu erhalten autostart, und das System verfügt über alles, was für die Lebensdauer von Standardanwendungen erforderlich ist, einschließlich X-Server, Fenstermanager, Sitzungsmanager und Anzeigemanager mit automatischer Benutzereingabe. Bisher ist dies jedoch keine Sache, sondern nur ein Single-Board-Desktop.

UPD
Jaromir unclutter , . , .
Spider55 LightDM noDM. , .


Sphärische Einzelplatte im Vakuum - es ist langweilig. Nicht dafür bei Raspberry Prog ein ganzer Kamm GPIO mit I2C / PWM sowie allerlei CSI-DSI und Watchdog-Timer. Als praktisches Beispiel verwende ich jedoch immer noch einen Netzwerkdemonstrator mit HDMI-Ausgang, der mehreren Benutzern die Möglichkeit bietet, ein gemeinsames Bildschirmfeld zu „erfassen“ und ihren Desktop darauf zu übertragen, ohne von einem Stuhl aufzustehen. Der Bildschirm ist so gedreht, dass er den Gästen zugewandt ist. In Ruhe werden die im Netzwerk veröffentlichten Bilder nach dem Zufallsprinzip sortiert. Wenn Sie einem Gast ein Produkt zeigen müssen, verwandelt einer der am Schalter sitzenden Administratoren die Anzeigetafel vorübergehend in einen „Spiegel“ von ihmüberwachen, gibt es dann aber für einen anderen Administrator frei. In meinem Fall ist dies ein echtes Geschäftstool, das in einem echten Handelsraum hängt. Übrigens, danke an Sauron für die Hilfe .

Angesichts der Größe dieser Veröffentlichung habe ich mich jedoch entschlossen, die Beschreibung der verwendeten Lösung (d. H. Des Videomoduls selbst) auf einen separaten Artikel zu verschieben. Nun konzentrieren sich auf die ursprüngliche Aufgabe lassen: machen Raspberry Pi Last und laufen von der microSD - in Nur - Lese-Modus, ohne Angst vor Stromausfall und nicht zapilivaya Flash - Speicher Abfall.

Fragentheorie


Selbst ein sehr seriöses Protokolldateisystem kann die Prozesse, die beim Ausschalten des SD-Mediums auftreten, letztendlich nicht steuern. Beispielsweise verfügen seriöse SSDs zur Verwendung in Rechenzentren über Kondensatoren, deren Entladung gerade ausreicht, um die letzte Schreibtransaktion abzuschließen, und noch etwas mehr übrig bleibt. Was ist mit dem Ausschalten in microSD? Ich bin mir sicher, dass dort nicht genügend Kondensatoren vorhanden sind, aber es besteht eine Wahrscheinlichkeit ungleich Null, dass die Aufzeichnung der NAND-Speicherseite nicht abgeschlossen wird. Und dann wird der Dateisystemtreiber aus dem Lesevorgang so verwirrt sein, dass ein manueller Eingriff des Bedieners erforderlich ist. Hier haben Sie einen Fotorahmen mit fsck.

Wie schwierig ist es, den microSD Raspberry Pi von Michelangelo in den Nur-Lese-Modus zu versetzen, d.h. unnötige Dienste und Pakete entfernen? Einfach genug, wenn es keine Grafiken gibt ( Link ). Aber es ist notwendig, zu starten X in all diese Managern ihre viele, beginnt es einen langen und mühsamen Kampf mit unvorhersehbaren Ergebnissen. Dies ist keine Nadel im Heuhaufen, Sie können sie sogar mit einem Magneten herausziehen. Stellen Sie sich vor, eine unbekannte Anzahl von Nadeln ist in einer Stacheldrahtkugel versteckt und sogar reichlich mit Nägeln bestreut. Welche Suche nach Nadeln gibt es, um nicht zu Tode getötet zu werden.

Lemma:Um selbst die elementarste neue Funktion auszuführen, zieht das Linux-System immer eine Reihe unnötiger Abhängigkeiten auf, und selbst bei „leichten“ Grafiken wächst die Systementropie um ein Vielfaches.

Satz: In jedem endlichen Satz von Softwarepaketen gibt es immer einen infinitesimalen Code, der versucht, ein unendlich nutzloses Bit in ein schreibgeschütztes Dateisystem zu schreiben, was einen schwerwiegenden Fehler verursacht, das gesamte System ruiniert und die vielen Stunden des Bedieners durchbricht.

Lösung: UnionFS


Ein Deutscher hat sich vor einigen Jahren eine sehr schöne Methode ausgedacht, um all diese Nadeln mit UnionFS in einem Trog zu sammeln und sie bei jedem Neustart einfach im Ofen zu verbrennen. Leider ist der ursprüngliche Beitrag bereits zusammen mit der Domain, die ihn gehostet hat, gestorben, aber der Deutsche ist definitiv nicht allein. Dankbare Leser haben die Idee beibehalten , ich halte es einfach für notwendig, sie hier zu veröffentlichen.

Unter dem Strich wird zusätzlich zum permanenten "Backing" (schreibgeschütztes Dateisystem auf microSD) bei jedem Einschalten ein temporärer "Patch" im RAM erstellt, der alle unnötigen Entropien absorbiert und beim Ausschalten des Geräts "durchbrennt". Das Dateisystem auf microSD bleibt die ganze Zeit schreibgeschützt, und daher wird das Risiko einer Beschädigung auf nahezu Null reduziert, ebenso wie das Risiko eines vorzeitigen Verschleißes des Flash-Laufwerks.Warum nicht streng auf Null? Kenner von EXT4 korrigieren mich, aber der Dateisystemtreiber schreibt immer noch etwas auf das Medium, wenn das Dateisystem bereitgestellt und nicht bereitgestellt wird, selbst wenn es schreibgeschützt bereitgestellt wird. Und es noatimehilft nicht, Sie benötigen einen Hardwareschlüssel auf microSD. Wie kann ich sonst erklären, dass /sys/block/mmcblk0/statich 282612 Sektoren gelesen und bereits 96 aufgezeichnet habe und dies im schreibgeschützten Modus ist? Nun, obwohl das Verhältnis fast 3000: 1 beträgt, beträgt es auf einem normalen System 5: 1. (schuldig, gelogen, aber es ändert nichts an der Essenz)

UPD:
gattopazzo83 Flash Media Kit - ( ). 100,000 , SLC- microSD. read-only, , («» - «» ;-)


UPD:
doga, «» SD- RPi. doga mmc-utils, SD-, Raspbian . - , , , .
SD-
:
udevadm info -a -n /dev/mmcblk0

«» CID CSD, (name), (serial), (date), (hwrev, fwrev, oemid, manfid). www.sdcard.org «» (Simplified Specifications), . Part 1 Simplified, Physical Layer Simplified Specification.
stat, kernel.org. , .
- , lsmmc.c.
« » RPi SD cards Embedded Linux, .
— — , mmc-utils , .



Was sind die Nachteile neben dem „Brennen“ von Protokollen? Geräte ohne Hardware-Uhren beim Start glauben immer, dass sie sich am 1. Januar 1970 auf dem Hof ​​befinden, und sind in diesem Missverständnis, bis sie den Netzwerkstapel und die Verfügbarkeit von NTP erhöhen. Zum Zeitpunkt dieser Veröffentlichung wird daher eine ganze Reihe von Datei-Objekt-Patches ungefähr 46 Jahre jünger sein, als sie denken. Andererseits sind einige Sekunden nach Beginn der Ära nicht mehr Null.

UPD: Echtzeituhr
Benutzer st1373 erinnerte in den Kommentaren an die Verfügbarkeit der I2C-kompatiblen Echtzeituhr DS3231 (kostet etwa eineinhalb Rollen Toilettenpapier). Es gibt eine einfache Anweisung auf Russisch: Anschließen der Echtzeituhr an den Raspberry Pi .


Sicherheit


Es ist ziemlich unpraktisch, Sicherheitsupdates auf ein solches System zu übertragen. Aber auch hier ist das Hacken einer solchen Sache etwas komplizierter als das Ausnutzen der Adobe Flash-Sicherheitsanfälligkeit in einem normalen Desktop-Browser. Schädlicher Code muss das Dateisystem zum Schreiben öffnen, um darin Fuß zu fassen. Andernfalls wird er beim Neustart zusammen mit den Protokollen und dem Müll "gebrannt". Das unten erwähnte SquashFS erschwert die Änderungen noch mehr. Alle diese Vorteile gelten jedoch bis zu dem Moment, in dem der gesamte Großteil des zu schreibenden Codes in schreibgeschützten Zonen "geschlossen" ist, d. H. Wenn das geschützte „Substrat“ keine Befehle anruft, die sich in den aufgezeichneten Bereichen befinden: Dies ist genau der Prioritätsinfektionsvektor im Internet der Dinge (wird es sein?). Seien Sie vorsichtig mit Startskripten, sie werden als root ausgeführt.Ein falscher Schritt - und dies ist eine kritische Sicherheitslücke in der Herdinfrastruktur, die ständig mit dem Internet verbunden ist.

Schritt für Schritt Anleitung


Da ich Rasbian Jessie zum ersten Mal in meinem Leben installiert habe und insbesondere nicht an die Haltbarkeit von microSD glaube, auch wenn es schreibgeschützt ist, habe ich beschlossen, alle Schritte im Detail aufzuschreiben. Plötzlich müssen Sie wiederholen.

HAFTUNGSAUSSCHLUSS
Entschuldigung für Zeilenumbrüche. Alle Befehle werden mit Berechtigungen ausgeführt root, aber ein ordentlicher Leser kann sie jedes Mal verwenden sudo. Ehrlich gesagt, ich verstehe nicht, warum jeder Befehl durchlaufen sudo, wenn sie von etwas schützt. Sagen Sie mir, wann war das letzte Mal * Sie * nicht sicher, ob Sie diese Datei im Papierkorb löschen möchten? Es ist, als würde man fünf Gläser Bier einen halben Liter trinken, aber bitte 0,33 auf die Strecke gießen, aber ich bin schon genug ... Ich werde den falschen Rat geben: Wenn Sie diese Spielsachen aufgenommen haben, gehen Sie in ein rootTeam sudo bashund machen Sie keine Selbsttäuschungen.

1. Initialisierung

Installieren Sie Raspbian Jessie Lite. Verwenden Sie das Dienstprogramm, raspi-configum regionale Einstellungen und das Benutzerkennwort festzulegen pi. Verbinden Sie das Netzwerk, Debian ist ein Kind von Breitband. Laden Sie noch nicht in Grafiken.

apt-key update
apt-get update

2. Programme hinzufügen oder entfernen

Mit Grafik, Installation:

apt-get install --no-install-recommends tightvncserver xtightvncviewer xserver-xorg xinit lxde-core lxappearance lightdm feh xprintidle policykit-1 busybox-syslogd ntpdate watchdog unionfs-fuse

Entfernung:

dpkg --purge rsyslog
apt-get remove --purge wolfram-engine triggerhappy cron anacron logrotate dphys-swapfile fake-hwclock
apt-get autoremove --purge


tightvncserver, xtightvncviewer, xprintidle fehIch brauchte die Pakete für eine bestimmte Aufgabe, auf die man verzichten kann.

Wenn keine Grafiken, tun Sie * nicht * Notwendigkeit: xserver-xorg xinit lxde-core lxappearance lightdm policykit-1.

3. Erstellen einer grafischen Umgebung

Jetzt kann das Dienstprogramm raspi-configdie automatische Ausführung im grafischen Modus mit automatischer Anmeldung aktivieren, die mit Benutzerrechten versehen ist pi. Um aufzulegen sudo, ist es besser, ein sicheres Passwort für den Benutzer einzugeben piund nicht die piautomatische Eingabe der grafischen Oberfläche zu verwenden. Erstellen Sie stattdessen einen Benutzer puund führen Sie "X" mit seinen Rechten aus. Darüber hinaus ist es besser, die Shell (Standard-Shell) dieses Benutzers entweder vollständig zu deaktivieren (durch Festlegen /usr/sbin/nologin) oder durch ein spezielles Typenskript zu ersetzen /usr/local/bin/pu. Ich beabsichtige, darüber in einer anderen Veröffentlichung zu sprechen, die sich mit Videopanels mit Fernbedienung über SSH befasst, für die ein separates Konto mit eingeschränkten Rechten erstellt wird. Nochmals vielen Dank an Sauron et al .

adduser --home /home/pu --shell /usr/local/bin/pu --uid 990 --gecos "RPi p-u" --gid 1000 pu
mkdir -p /home/pu/.config/lxsession/LXDE
cp -p /etc/xdg/lxsession/LXDE/desktop.conf /home/pu/.config/lxsession/LXDE/desktop.conf
touch /home/pu/.config/lxsession/LXDE/autostart
chown -R pu:pi /home/pu
sed -i 's/^#\?xserver-command=.*$/xserver-command=X -s 0 -dpms -nocursor/' /etc/lightdm/lightdm.conf
sed -i 's/^#\?autologin-user=.*$/autologin-user=pu/' /etc/lightdm/lightdm.conf

Anstelle der letzten beiden Befehle können Sie sie mit dem Editor öffnen /etc/lightdm/lightdm.confund die Werte von zwei Parametern festlegen. Der erste, den ich oben erwähnt habe, der zweite spricht für sich selbst:

...
xserver-command=X -s 0 -dpms -nocursor
...
autologin-user=pu
...

4. Watchdog-Timer (optional)

Ich habe ein Raspberry Pi 3 Model B, daher heißt das Kernel-Watchdog-Modul folgendermaßen:

modprobe bcm2835_wdt
echo "bcm2835_wdt " | sudo tee -a /etc/modules

Fügen Sie dann die folgende Zeile in den Abschnitt [Install]am Ende der Datei ein /lib/systemd/system/watchdog.service:

[Install]
WantedBy=multi-user.target

Aktivieren Sie danach den Dienst:

systemctl enable watchdog.service

Der Watchdog-Timer in der Mindestkonfiguration sollte funktionieren, wenn der Kernel einfriert. Es gibt jedoch viele andere Optionen, z. B. für eine übermäßige Belastung des Systems, für den Speicherablauf, für eine Überhitzung des Systems, für das Fehlen einer Signaldatei usw. Sehen. Auch watchdog(8)undwatchdog.conf(5)

5. Parameter starten

Ich habe die Anzeige des Himbeer-Logos und der Auslagerungsdatei ausgeschaltet und das schnelle Laden aktiviert. Dazu habe ich in /boot/cmdline.txtnur drei Worten hinzugefügt logo.nologo fastboot noswap. Am Ende hatte ich Folgendes:

logo.nologo dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait fastboot noswap

6. Versiegeln des Raspberry Pi-Root-Dateisystems schreibgeschützt

Jetzt sind wir endlich zur Hauptsache gekommen.

Unten ist ein Skript, das mount_unionfsirgendwo in unter einem Namen platziert werden sollte /usr/local/bin. Denken Sie daran, die Machbarkeitsbits + x ( chmod755 oder 555) zu aktivieren . Achten Sie auf die Suffixe .origund .rwsie müssen mit der Vorbereitung übereinstimmen (weiter):

#!/bin/sh
DIR=$1
ROOT_MOUNT=$(awk '$2=="/" {print substr($4,1,2)}' < /etc/fstab)
if [ $ROOT_MOUNT = "rw" ]; then
	/bin/mount --bind ${DIR}.orig ${DIR}
else
	/bin/mount -t tmpfs ramdisk ${DIR}.rw
	/usr/bin/unionfs-fuse -o cow,allow_other,suid,dev,nonempty ${DIR}.rw=RW:${DIR}.orig=RO ${DIR}
fi

Aufgrund anderer Anweisungen habe ich mich entschlossen, den Rat zu befolgen und Folgendes zu tun:

insserv -r bootlogs
insserv -r alsa-utils

rm -rf /var/lib/dhcp/
ln -s /tmp /var/lib/dhcp

Grafische Anwendungen schreiben sehr gerne /homeetwas Unnötiges, also zusätzlich zu /etcund /varich auch /home. Wir werden die Abschnitte für den Wechsel in den UnionFS-Modus vorbereiten (beachten Sie die Suffixe .origund .rw):


cp -al /etc /etc.orig
mv /var /var.orig
mv /home /home.orig
mkdir /etc.rw /var /var.rw /home /home.rw

Endlich Datei fstab(5)

proc            /proc           proc    defaults        0       0
/dev/mmcblk0p1  /boot           vfat    ro              0       2
/dev/mmcblk0p2  /               ext4    ro              0       1
mount_unionfs   /etc            fuse    defaults        0       0
mount_unionfs   /var            fuse    defaults        0       0
mount_unionfs   /home           fuse    defaults        0       0
none            /tmp            tmpfs   defaults        0       0

7. Systemprüfung und -test

Schauen Sie sich im System um, bereinigen Sie .bash_historyalle Arten von Protokolldateien usw. Bitte beachten Sie, dass sie sich möglicherweise nicht dort befinden, wo sie sich normalerweise befinden (z. B. /var.origstatt var).

Starten Sie das System neu und sehen Sie, was passiert ist. Wenn ein Fehler gemacht wurde, besteht eine gute Chance, dass das System als einzelner Benutzer das System verlässt und einfach die Konsole startet root. Wenn das Dateisystem intakt ist, ist das erneute Bereitstellen von schreibgeschützt zu schreibgeschützt ganz einfach:

mount -o rw,remount /

Wenn das System normal schreibgeschützt gestartet wurde und alle Funktionen ausführt, herzlichen Glückwunsch!
Dies wurde das Internet-Ding geboren.

8. Drucken eines Dateisystems

Wenn Sie das System drucken müssen, bringen Sie das Pferdesystem zuerst in den Lese- / Schreibzustand zurück (siehe oben). Kommentieren Sie dann die fstab(5)Zeilen aus, die mit dem Wort beginnen. Danach mount_unionfs* stellen Sie * sicher, dass Sie das Verzeichnis /var.origmit allen Inhalten (und vorzugsweise /home.origauch) an den Ort zurückgeben . Wenn Sie es nicht wiederherstellen /var, verlieren Sie die Datenbank der installierten Pakete, aber um Sicherheitsupdates mit dem Team zu installieren, haben apt-getSie das System gerade gedruckt, oder? apt-getStellen Sie vor dem Neustart des Systems sicher, dass es ausreichend ist. Wie man zurückdichtet, weißt du;)

Alternativen


Liebe Leser, die vorgefertigte industrielle Images von Betriebssystemen (mit schreibgeschützter Unterstützung) für Raspberry Pi und andere Einplatinencomputer kennen, lade Sie ein, diese in den Kommentaren zu teilen. Hoffentlich mit Ihrer Hilfe kann mir die Informationen bereichern , dass Abschnitt und anderen chitataley, Bewohner und Besucher des Portals respektieren :)

Was die Hardware-Alternativen zu Raspberry Biegung im Rahmen der Anwendung von (Netzwerk HDMI-Pfeife), ich auf einer stolperte Kritik , die, es kann jedoch separat besprochen werden. Rein wirtschaftlich ist der Raspberry Pi sehr profitabel, bisher die Hauptsache :)

Also, lass uns gehen.

UPD: OverlayFS
ValdikSS OverlayFS, Linux 2014, , initramfs. art_gl : Raspbian with Read-only Root.
, Domoticz, , OverlayFS. Sauron Domoticz.


UPD: SquashFS
Vooon, Vcoderlab, av_in et al SquashFS. , «» union mount, . , SquashFS by-design read-only, .. firmware-, () , . , , . , IoT . , , SquashFS, - ? , , community- SquashFS, .. Raspberry Pi. , OpenELEC.


UPD: F2FS
nlykl F2FS aka «Flash-Friendly File System», HOWTO: Replace the micro SD card's ext4 root partition by f2fs on the Raspberry PI. DISCLAIMER: . . F2FS -.


UPD:
ilmarin77 : Network booting. . , , , , ( ) . USB-Ethernet LAN9514 0..70°C


UPD: USB-
ilmarin77 USB: How to boot from a USB Mass Storage Device on a Raspberry Pi 3. SSD, USB, , microSD, USB 2.0 (- 30-40/, ). , . , read-only microSD, SSD , . USB- , microSD, .


UPD: (watchdog)
homecreate systemd, , . . .


UPD:

?


. , - , S.M.A.R.T HDD SSD. SanDisk, , , EXTCSD. - , Linux . , , smartd(8) .

« Linux- SD- /» , , (.. uptime , 10 ). , ( sudo root):

uptime
cat /sys/block/mmcblk0/stat | awk '{printf "Uptime read: %.3fMiB (%.1f%% I/Os merged) written: %.3f MiB (%.1f%% I/Os merged)\n", $3*512/1048576, $2/$1*100, $7*512/1048576, $6/$5*100}'

, , , «» . , Meklon -, openELEC / KODI. 6 72 66. / 1:1, SquashFS ( SD- ). / 5:1 10:1, . , 10 — , .
, : 512 , , erase- . Optimizations for Cheap Flash Media Arnd Bergmann (, .) «» , .. 32, erase- 4..8. «» , 512 erase-, .. 64 , stat. 6/, microSD- .
, .



Make Raspbian System Read-Only
blog.pi3g.com/2014/04/make-raspbian-system-read-only
()

How to make RaspberryPi truly read-only, reliable and trouble-free
k3a.me/how-to-make-raspberrypi-truly-read-only-reliable-and-trouble-free
( )

Protect your Raspberry PI SD card, use Read-Only filesystem
hallard.me/raspberry-pi-read-only
( sisaenkov, , )

Stopping SD Card Corruption on Raspberry Pi’s Raspbian
ideaheap.com/2013/07/stopping-sd-card-corruption-on-a-raspberry-pi
( )

Raspberry Pi — VNC localhost
habrahabr.ru/post/212661

RTC ( ) Raspberry Pi
raspberrypi.ru/blog/598.html
( I2C- DS3231)

How to boot from a USB Mass Storage Device on a Raspberry Pi 3
www.raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/msd.md

Network booting
www.raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/net.md

ECIO(TM), a powerful USB programmable single chip computer based on PICmicro microcontroller technology
www.matrixtsl.com/product.php?Prod=ECIO28P

Easy Raspberry Pi Based Screensaver/Slideshow for Exhibitions/Store Front
www.instructables.com/id/Easy-Raspberry-Pi-Based-ScreensaverSlideshow-for-E
( 6)

Flash memory card design (2013)
wiki.linaro.org/WorkingGroups/KernelArchived/Projects/FlashCardSurvey
( , ? FAT; ; 2013)

Optimizing Linux with cheap flash drives, Arnd Bergmann, 2011
lwn.net/Articles/428584
( )

Optimizations for Cheap Flash Media, Arnd Bergmann, 2011
free-electrons.com/blog/elce-2011-videos
( , , )

SD Association, Simplified Specifications, Part 1 Simplified: Physical Layer Simplified Specification
www.sdcard.org/downloads/pls/index.html

Block layer statistics in /sys/block/<dev>/stat
www.kernel.org/doc/Documentation/block/stat.txt
( SD- : cat /sys/block/mmcblk0/stat uptime)

Source: https://habr.com/ru/post/de400011/


All Articles