Lancement du Raspberry Pi avec prise en charge graphique complète sur microSD, restant pour toujours en mode lecture seule après l'installation du système. L'absence d'enregistrement de données sur la mémoire flash augmente la fiabilité de l'appareil, le rapprochant de la classe industrielle des produits. Instructions étape par étape. Un petit théâtre d'ingénierie absurde pour divertir le public.
J'avais besoin d'un périphérique réseau open source avec sortie HDMI, et j'ai décidé d'essayer Raspberry Prog. Oui, c'est exactement ce que je suggère de traduire Pi : Prog . Bien sûr, même un payeur unique a besoin d'un système d'exploitation. Et donc, je vais sur le site officiel , en espérant y trouver un guide détaillé sur la création d'une boîte clé en main dure et indestructible . Mais les gens, comme si rien ne s'était passé, installent Ubuntu (c'est-à-dire Raspbian Jessie) directement sur microSD, en y plaçant également le swap. Comme un bureau ordinaire, face à la paume.Mais ensuite les fleurs. Les baies de framboise sont des projets de cadres photo de MalinProg qui nécessitent un arrêt obligatoire avec un bouton. Sinon, le cadre photo après une panne de courant peut ne pas fonctionner, au lieu des images proposant d'utiliser fsck. Mais ce n'est pas la limite, sous le chat du lecteur, se trouve un véritable chef-d'œuvre d'ingénierie absurde, trouvé par l'auteur dans l'immensité du réseau.Ainsi, selon les instructions standard, un lecteur à carte unique normal se transforme en un bureau gonflé avec une durée de vie moyenne d'un an et demi, jusqu'à ce qu'un lecteur flash usé meure, transformant un appareil généralement bon en brique. Et la plupart des gens semblent être d'accord avec ça. Je ne le suis pas.Où le monde se dirige
Avant d'ouvrir le becquet, portez un masque de protection ou saisissez votre tête à l'avance avec vos mains.Un bon projet qui a ruiné une recommandation- RPi, (!) . , Raspbian - 720 . , 12 , , «» USB- 4 . ,
RPi,
ECIO28P,
.
D'accord, je ne nierai pas l'utilité indépendante du rouser matériel: c'est un vrai hack pour ceux qui paient un tarif horaire pour s'asseoir devant le moniteur. Ou pour maintenir le ton de certains terminaux industriels particulièrement stupides et durs, sous l'armure anti-vandalisme dont un connecteur de souris sort (pour PS / 2, un adaptateur vert devrait convenir). Oui, si vous pressez un bureau gonflé dans un ordinateur à carte unique, alors entre les mains des über-artisans, c'est une arme formidable, en particulier avec la carte MK qui sort brutalement du connecteur. C'est immédiatement évident: une personne sait travailler avec ses mains. Mais si vous avez besoin d'un écran toujours allumé, sous Linux il y a assez de tête, les résidents de cette ressource en sont bien conscients. Pour les invités du portail, je donne toujours des instructions, on ne sait jamais quoi.Désactiver DPMS, économiseur d'écran et en même temps tous les éléments de l'interface graphique,
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
( , ;-)
C'est exactement ce que j'ai fait: j'ai accepté LightDM avec saisie automatique, mais je n'ai laissé dans le fichier ~/.config/lxsession/LXDE/autostart
qu'un appel à feh avec le préfixe '@' pour redémarrer en cas d'accident et resp. paramètres. C'est-à-dire comme des graphiques normaux, mais sans lxpanel
, sans pcmanfm
, sans xscreensaver
, avec DPMS désactivé et le curseur caché d'une souris inexistante.Il est très facile d'obtenir un minimum de graphiques en commandant apt-get
et en éditant le fichier autostart
, et le système aura tout le nécessaire pour la vie des applications standard, y compris le serveur X, le gestionnaire de fenêtres, le gestionnaire de sessions et le gestionnaire d'affichage avec connexion automatique de l'utilisateur. Mais jusqu'à présent, ce n'est pas une chose, mais juste un bureau à carte unique.UPD
Jaromir unclutter , . , .
Spider55 LightDM noDM. , .
Plaque simple sphérique dans le vide - c'est ennuyeux. Pas pour ça sur Raspberry Prog un peigne entier de GPIO avec I2C / PWM, ainsi que toutes sortes de CSI-DSI et un chien de garde. Mais comme exemple pratique, j'utilise toujours un démonstrateur réseau avec une sortie HDMI, ajoutant la possibilité pour plusieurs utilisateurs de «capturer» un panneau d'écran commun et de diffuser leur bureau dessus sans se lever d'une chaise. L'écran est tourné pour faire face aux invités, au repos, trier tranquillement et aléatoirement les photos publiées sur le réseau. Si vous devez montrer un produit à un invité, l'un des administrateurs assis au comptoir transforme temporairement le tableau de bord en un «miroir» de sonmoniteur, mais le libère ensuite pour un autre administrateur. Dans mon cas, il s'agit d'un véritable outil commercial suspendu dans un véritable parquet. Au fait, merci à Sauron pour son aide .Cependant, en considérant la taille de cette publication, j'ai décidé de reporter la description de la solution appliquée (c'est-à-dire le module vidéo lui-même) à un article séparé. Pour l'instant, permettez-moi de me concentrer sur la tâche initiale: obtenir le Raspberry Pi pour démarrer et travailler avec microSD en mode lecture seule, sans crainte de panne de courant et sans vider la mémoire flash avec des ordures.Théorie des questions
Même un système de fichiers journaux très sérieux ne peut finalement pas contrôler les processus qui se produisent à l'intérieur du support SD lorsque l'alimentation est coupée. Par exemple, les SSD sérieux utilisés dans les centres de données ont des condensateurs, dont la décharge est juste suffisante pour fermer la dernière transaction d'écriture, et il en reste encore un peu plus. Qu'en est-il de la mise hors tension en microSD? Je suis sûr qu'il n'y a pas assez de condensateurs là-bas, mais il y a une probabilité non nulle que l'enregistrement de la page de mémoire NAND ne se termine pas. Et puis le pilote du système de fichiers de la lecture deviendra tellement déroutant qu'une intervention manuelle de l'opérateur sera nécessaire. Ici, vous avez un cadre photo avec fsck.À quel point est-il difficile de transférer le microSD Raspberry Pi en mode lecture seule par Michel-Ange, c'est-à-dire supprimer les services et packages inutiles? Assez simple s'il n'y a pas de graphisme ( lien ). Mais il est nécessaire de commencer dans les X avec ces gestionnaires dans toute leur nombre, il commence un combat long et fastidieux avec des résultats imprévisibles. Ce n'est pas une aiguille dans une botte de foin, vous pouvez même la retirer avec un aimant. Imaginez qu'un nombre inconnu d'aiguilles soient cachées dans une boule de fil de fer barbelé, et même abondamment saupoudrées de clous. Quelle recherche d'aiguilles est là, pour ne pas être tué à mort.Lemme:pour exécuter même la nouvelle fonction la plus élémentaire, le système Linux tirera toujours un tas de dépendances inutiles, et même avec des graphiques «légers», la croissance de l'entropie du système est multiple.Théorème: dans tout ensemble fini de logiciels, il y a toujours un morceau de code infinitésimal qui essaiera d'écrire un bit infiniment inutile dans un système de fichiers en lecture seule, ce qui entraînera une erreur fatale, ruinera le système entier et barrera les nombreuses heures d'efforts de l'opérateur.Solution: UnionFS
Il y a quelques années, un Allemand a trouvé une très belle façon de collecter toutes ces aiguilles dans une auge en utilisant UnionFS et de les brûler dans le four à chaque redémarrage. Malheureusement, le message d'origine est déjà mort avec le domaine qui l'a hébergé, mais l'allemand n'est certainement pas seul. Les lecteurs reconnaissants ont conservé l' idée, je considère qu'il est simplement nécessaire de la publier ici.L'essentiel est qu'au-dessus du «support» permanent (système de fichiers en lecture seule sur microSD), chaque fois que vous l'allumez, un «patch» temporaire est créé dans la RAM, qui absorbe toute l'entropie inutile et «brûle» lorsque l'alimentation de l'appareil est coupée. Le système de fichiers sur microSD reste en lecture seule tout le temps, et donc le risque de dommages est réduit à presque zéro, tout comme le risque d'usure prématurée du lecteur flash.Pourquoi pas strictement à zéro? Les connaisseurs d'EXT4, corrigez-moi, mais le pilote du système de fichiers écrit toujours quelque chose sur le support chaque fois que le système de fichiers est monté-démonté, même s'il est monté en lecture seule. Et cela noatime
n'aide pas, vous avez besoin d'une clé matérielle sur microSD. Sinon, comment puis-je expliquer le fait que /sys/block/mmcblk0/stat
j'ai lu 282612 secteurs et que j'en ai déjà enregistré 96, et ceci en mode lecture seule? Eh bien, même si le rapport est proche de 3000: 1, sur un système normal , il est de 5: 1. (coupable, menti, mais cela ne change pas l'essence)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 , .
Quels sont les inconvénients outre la «gravure» des journaux? Les appareils sans horloge matérielle au démarrage pensent toujours que c'est dans la cour le 1er janvier 1970 et sont dans cette idée fausse jusqu'à augmenter la pile réseau et la disponibilité de NTP. Par conséquent, au moment de cette publication, toute une série de «correctifs» d'objets de fichiers auront environ 46 ans de moins qu'ils ne le pensent. En revanche, à quelques secondes du début de l'ère n'est plus zéro.UPD: horloge en temps réel L'
utilisateur st1373 dans les commentaires a rappelé la disponibilité de l'horloge en temps réel compatible I2C DS3231 (coûtant environ un rouleau et demi de papier toilette). Il y a une instruction simple en russe: Connecter RTC (horloge en temps réel) au Raspberry Pi .
La sécurité
Il est plutôt gênant d’installer des mises à jour de sécurité sur un tel système. Mais, encore une fois, pirater une telle chose est un peu plus compliqué que d'exploiter la vulnérabilité d'Adobe Flash dans un navigateur de bureau classique. Un code malveillant doit ouvrir le système de fichiers pour l'écriture afin de s'y implanter, sinon il "brûlera" au redémarrage avec les journaux et les ordures. SquashFS mentionné ci-dessous complique encore plus les changements. Cependant, tous ces avantages sont valables jusqu'au moment où la majeure partie du code à écrire est «fermée» dans les zones en lecture seule, c'est-à-dire lorsque le «substrat» protégé ne fait pas d'appels à des commandes situées dans les zones enregistrées: c'est exactement quel (sera-t-il?) le vecteur d'infection prioritaire sur l'Internet des objets. Soyez prudent avec les scripts de démarrage, ils sont exécutés en tant que root,un mauvais mouvement - et il s'agit d'une vulnérabilité critique de l'infrastructure du foyer, constamment connectée à Internet.Instructions étape par étape
Depuis que j'ai installé Rasbian Jessie pour la première fois de ma vie et surtout que je ne crois pas à la durabilité de la microSD, même en lecture seule, j'ai décidé de noter toutes les étapes en détail. Tout à coup, vous devez répéter.AVIS DE NON-RESPONSABILITÉ
Désolé pour les sauts de ligne. Toutes les commandes sont exécutées avec des autorisations root
, mais un bon lecteur peut l'utiliser à chaque fois sudo
. Honnêtement, je ne comprends pas pourquoi chaque commande doit être exécutée sudo
, comme si elle protégeait contre quelque chose. Dites-moi, à quand remonte la dernière fois * vous n'étiez * pas sûr de vouloir supprimer ce fichier dans la corbeille? C'est comme boire cinq verres de bière d'un demi-litre, mais versez 0,33 sur la piste, s'il vous plaît, mais je suis déjà assez ... Je vais donner le mauvais conseil: si vous avez pris ces jouets, sortez en root
équipe sudo bash
et ne vous trompez pas.
1. Initialisation
Installez Raspbian Jessie Lite. Utilisez l'utilitaire pour raspi-config
définir les paramètres régionaux et le mot de passe utilisateur pi
. Connectez le réseau, Debian est un enfant du haut débit. N'incluez pas encore le chargement dans les graphiques.apt-key update
apt-get update
2. Ajouter ou supprimer des programmes
Avec graphiques, 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
Enlèvement:dpkg --purge rsyslog
apt-get remove --purge wolfram-engine triggerhappy cron anacron logrotate dphys-swapfile fake-hwclock
apt-get autoremove --purge
tightvncserver, xtightvncviewer, xprintidle feh
J'avais besoin des packages pour une tâche particulière, vous pouvez vous en passer.Si aucun graphique, vous ne * pas * besoin de: xserver-xorg xinit lxde-core lxappearance lightdm policykit-1
.3. Création d'un environnement graphique
Maintenant, l'utilitaire raspi-config
peut activer l'exécution automatique en mode graphique avec connexion automatique, qui sera avec des droits d'utilisateur pi
. Que de se raccrocher sudo
, il vaut mieux mettre un mot de passe fort pour l'utilisateur pi
, et ne pas utiliser pi
pour entrer automatiquement dans l'interface graphique. Au lieu de cela, créez un utilisateur pu
et exécutez "X" avec ses droits. De plus, le shell (shell par défaut) de cet utilisateur est préférable de le désactiver complètement (en le définissant /usr/sbin/nologin
) ou de le remplacer par un script de type spécial /usr/local/bin/pu
. J'ai l'intention d'en parler dans une autre publication consacrée aux panneaux vidéo avec télécommande via SSH, pour laquelle un compte séparé avec des droits réduits est créé. Merci encore à 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
Au lieu des deux dernières commandes, vous pouvez l'ouvrir avec l'éditeur /etc/lightdm/lightdm.conf
et définir les valeurs de deux paramètres, le premier que j'ai mentionné ci-dessus, le second parle de lui-même:...
xserver-command=X -s 0 -dpms -nocursor
...
autologin-user=pu
...
4. Minuteur de surveillance (facultatif)
J'ai un Raspberry Pi 3 Model B, donc le module de surveillance du noyau est appelé comme ceci:modprobe bcm2835_wdt
echo "bcm2835_wdt " | sudo tee -a /etc/modules
Ajoutez ensuite la ligne suivante à la section [Install]
à la fin du fichier /lib/systemd/system/watchdog.service
:[Install]
WantedBy=multi-user.target
Après cela, activez le service:systemctl enable watchdog.service
Le temporisateur du chien de garde dans la configuration minimale devrait fonctionner si le noyau se fige. Mais il existe de nombreuses autres options, par exemple, pour une charge excessive sur le système, pour l'expiration de la mémoire, pour une surchauffe du système, pour l'absence d'un fichier de signal, etc. Voir. En outre watchdog(8)
etwatchdog.conf(5)
5. Paramètres de démarrage
J'ai désactivé l'affichage du logo de framboise et du fichier d'échange, activé le chargement rapide. Pour ce faire, j'ai ajouté en /boot/cmdline.txt
seulement trois mots logo.nologo fastboot noswap
. Je me suis retrouvé avec ceci: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. Sceller le système de fichiers racine du Raspberry Pi en lecture seule
Maintenant, nous sommes enfin arrivés à l'essentiel.Vous trouverez ci-dessous un script qui devrait être placé sous un nom mount_unionfs
quelque part /usr/local/bin
. N'oubliez pas d'activer les bits de faisabilité + x ( chmod
755 ou 555). Faites attention aux suffixes .orig
et .rw
ils doivent coïncider avec la préparation (plus loin):#!/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
À partir d'autres instructions, j'ai décidé de suivre les conseils et de faire ce qui suit:insserv -r bootlogs
insserv -r alsa-utils
rm -rf /var/lib/dhcp/
ln -s /tmp /var/lib/dhcp
Les applications graphiques sont très friandes d'écrire /home
quelque chose d'inutile, donc en plus /etc
et /var
j'ai également inclus /home
. Nous allons préparer les sections pour passer en mode UnionFS (attention aux suffixes .orig
et .rw
):
cp -al /etc /etc.orig
mv /var /var.orig
mv /home /home.orig
mkdir /etc.rw /var /var.rw /home /home.rw
Enfin fichier 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. Audit et test du système
Jetez un œil au système, nettoyez .bash_history
toutes sortes de fichiers journaux, etc. Veuillez noter qu'ils peuvent ne pas être situés là où ils se trouvent habituellement (par exemple, /var.orig
au lieu de var
).Redémarrez le système et voyez ce qui s'est passé. Si une erreur a été commise, il y a de fortes chances que le système quitte en tant qu'utilisateur unique et démarre simplement la console root
. Si le système de fichiers est intact, le remontage de lecture seule à lecture-écriture est assez simple:mount -o rw,remount /
Si le système a démarré normalement en lecture seule et exécute toutes les fonctions, félicitations!Ceci est né la chose Internet.8. Impression d'un système de fichiers
Si vous devez imprimer le système, remettez d'abord le système cheval en état de lecture-écriture (voir ci-dessus). Ensuite, commentez les fstab(5)
lignes commençant par le mot mount_unionfs
, après quoi * assurez-vous * de retourner à la place le répertoire /var.orig
avec tout le contenu (et de préférence /home.orig
aussi). Si vous ne le restaurez pas /var
, vous perdrez la base de données des packages installés, mais c'est pour installer des mises à jour de sécurité avec l'équipe que apt-get
vous venez d'imprimer le système, non? Avant de apt-get
redémarrer le système et assurez-vous qu'il est adéquat. Comment sceller en arrière, vous savez;)Alternatives
Chers lecteurs qui connaissent des images industrielles prêtes à l'emploi de systèmes d'exploitation (avec prise en charge en lecture seule) pour Raspberry Pi et d'autres ordinateurs à carte unique, je vous invite à partager les commentaires. J'espère qu'avec votre aide, je serai en mesure d'enrichir cette section avec des informations d'autres lecteurs, résidents et invités du portail respecté :)Quant aux alternatives matérielles au Raspberry Prog lui-même dans le contexte de l'application (réseau HDMI whistle), je suis tombé accidentellement sur un avis qui cependant, il peut être discuté séparément. Purement économique, le Raspberry Pi est très rentable, jusqu'à présent l'essentiel :)Alors, allons-y.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
)