إطلاق Raspberry Pi مع دعم رسومات كامل على microSD ، يبقى إلى الأبد في وضع القراءة فقط بعد تثبيت النظام. يؤدي عدم وجود أي تسجيل بيانات إلى ذاكرة فلاش إلى زيادة موثوقية الجهاز ، مما يجعله أقرب إلى الفئة الصناعية من المنتجات. تعليمات خطوة بخطوة. مسرح صغير من العبث الهندسي للترفيه عن الجمهور.
كنت بحاجة إلى جهاز شبكة مفتوح المصدر بإخراج HDMI ، وقررت تجربة Raspberry Prog. نعم ، هذا بالضبط ما أقترحه ترجمة Pi : Prog . بالطبع ، حتى الدافع الواحد يحتاج إلى نظام تشغيل. وهكذا ، أذهب إلى الموقع الرسمي ، متوقعًا أن أجد دليلًا تفصيليًا حول إنشاء صندوق تسليم سريع غير قابل للتدمير . لكن الناس ، كما لو لم يحدث شيء ، قم بتثبيت Ubuntu (أي Raspbian Jessie) مباشرة على microSD ، مع وضع المبادلة هناك أيضًا. مثل سطح المكتب العادي ، راحة اليد.ولكن بعد ذلك الزهور. التوت التوت هي مشاريع لإطارات الصور من MalinProg تتطلب إيقاف تشغيل إلزامي مع زر. خلاف ذلك ، قد لا يعمل إطار الصورة بعد انقطاع التيار ، بدلاً من الصور التي تعرض استخدام fsck. ولكن هذا ليس الحد ، تحت قطة القارئ ، تم العثور على تحفة حقيقية من العبث الهندسي ، وجدها المؤلف في اتساع الشبكة.لذا ، وفقًا للتعليمات القياسية ، يتحول اللاعب العادي بلوح واحد إلى سطح مكتب منتفخ بمتوسط عمر افتراضي يبلغ عامًا ونصف ، حتى يموت محرك أقراص محمول مهترئ ، مما يحول الجهاز الجيد بشكل عام إلى لبنة. ويبدو أن معظم الناس على ما يرام مع ذلك. لست كذلك.حيث يتجه العالم
قبل فتح المفسد ، قم بارتداء قناع واقٍ أو امسك رأسك مسبقًا بيديك.مشروع جيد دمر توصية واحدة- RPi, (!) . , Raspbian - 720 . , 12 , , «» USB- 4 . ,
RPi,
ECIO28P,
.
حسنًا ، لن أنكر الفائدة المستقلة من أداة تشغيل الأجهزة: هذا اختراق حقيقي لمن يدفعون رسومًا للساعة للجلوس أمام الشاشة. أو للحفاظ على نغمة بعض المحطات الصناعية القاسية الغبية بشكل خاص ، من تحت الدرع المضاد للتخريب الذي يبرز موصل ماوس واحد (بالنسبة لـ PS / 2 يجب أن يتناسب المحول الأخضر). نعم ، إذا ضغطت سطح مكتب منتفخ على كمبيوتر واحد ، فإن ذلك في أيدي الحرفيين über هو سلاح هائل ، خاصة مع إخراج لوحة MK بوحشية من الموصل. من الواضح على الفور: أن الشخص يعرف كيف يعمل بيديه. ولكن إذا كنت بحاجة إلى شاشة تعمل دائمًا ، في Linux هناك ما يكفي من الرأس ، فإن سكان هذا المورد يدركون ذلك جيدًا. بالنسبة لضيوف البوابة ، ما زلت أعطي التعليمات ، فأنت لا تعرف أبدًا.تعطيل DPMS وشاشة التوقف وفي نفس الوقت جميع عناصر واجهة المستخدم الرسومية,
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
( , ;-)
: LightDM ,
~/.config/lxsession/LXDE/autostart
feh '@' . . .. ,
lxpanel
,
pcmanfm
,
xscreensaver
, DPMS .
apt-get
autostart
, , X-, , . , .
UPD
Jaromir unclutter , . , .
Spider55 LightDM noDM. , .
صفيحة كروية واحدة في فراغ - إنها مملة. ليس لهذا على Raspberry Prog مجموعة كاملة من GPIO مع I2C / PWM ، بالإضافة إلى جميع أنواع CSI-DSI والوكالة الدولية للطاقة. ولكن كمثال عملي ، ما زلت أستخدم متظاهر شبكة بإخراج HDMI ، مضيفًا قدرة العديد من المستخدمين على "التقاط" لوحة شاشة مشتركة وبث سطح المكتب عليها دون الاستيقاظ من الكرسي. يتم تشغيل الشاشة لمواجهة الضيوف ، والراحة في الفرز العشوائي بهدوء من خلال الصور المنشورة على الشبكة. إذا كنت بحاجة إلى عرض منتج على أحد الضيوف ، فإن أحد المديرين الجالسين على المنضدة يحول لوحة النتائج مؤقتًا إلى "مرآة" لهالشاشة ، ولكن بعد ذلك يحررها لمسؤول آخر. في حالتي ، هذه أداة عمل حقيقية معلقة في قاعة تداول حقيقية. بالمناسبة ، شكرا لساورون على المساعدة .ومع ذلك ، بالنظر إلى حجم هذا المنشور ، قررت تأجيل وصف الحل التطبيقي (أي وحدة الفيديو نفسها) إلى مقالة منفصلة. في الوقت الحالي ، دعني أركز على المهمة الأولية: اجعل Raspberry Pi للتشغيل والعمل مع microSD في وضع القراءة فقط ، دون خوف من انقطاع التيار الكهربائي ودون مسح ذاكرة فلاش مع القمامة.نظرية السؤال
حتى نظام ملفات السجلات الخطير جدًا لا يمكنه في نهاية المطاف التحكم في العمليات التي تحدث داخل وسائط SD عند انقطاع التيار الكهربائي. على سبيل المثال ، تحتوي محركات الأقراص ذات الحالة الصلبة الخطيرة للاستخدام في مراكز البيانات على مكثفات ، يكفي تفريغها لإغلاق آخر عملية كتابة ، وحتى المتبقي قليلاً. ماذا عن انقطاع التيار الكهربائي في microSD؟ أنا متأكد من عدم وجود مكثفات كافية هناك ، ولكن هناك احتمال غير الصفر أن تسجيل صفحة ذاكرة NAND لن ينتهي. ثم سيأتي برنامج تشغيل نظام الملفات من القراءة إلى هذا الحيرة التي تتطلب التدخل اليدوي للعامل. هنا لديك إطار صور مع fsck.microSD Raspberry Pi read-only , .. ? , (
).
, . , . ,
, . , .
:لأداء حتى أكثر الوظائف الأولية ، سوف يقوم نظام Linux دائمًا بسحب مجموعة من التبعيات غير الضرورية ، وحتى مع الرسومات "الخفيفة" ، فإن نمو إنتروبيا النظام متعدد.النظرية: في أي مجموعة محدودة من حزم البرامج ، هناك دائمًا جزء غير محدود من التعليمات البرمجية التي ستحاول كتابة بت واحد غير ذي جدوى إلى نظام ملفات للقراءة فقط ، مما سيؤدي إلى حدوث خطأ فادح ، وإفساد النظام بأكمله وإلغاء ساعات عمل المشغل العديدة.الحل: UnionFS
جاء ألماني واحد منذ بضع سنوات بطريقة جميلة للغاية لجمع كل هذه الإبر في حوض صغير باستخدام UnionFS وحرقها فقط في الفرن في كل عملية إعادة تشغيل. لسوء الحظ ، توفي المنشور الأصلي بالفعل مع المجال الذي استضافته ، لكن الألماني ليس وحده. لقد احتفظ القراء بالامتنان للفكرة ، وأعتقد أنه من الضروري ببساطة نشرها هنا.خلاصة القول هي أنه في الجزء العلوي من "النسخ الاحتياطي" الدائم (نظام الملفات للقراءة فقط على microSD) ، في كل مرة تقوم بتشغيله ، يتم إنشاء "تصحيح" مؤقت في ذاكرة الوصول العشوائي ، والذي يمتص كل الانتروبيا غير الضرورية و "يحترق" عند إيقاف تشغيل الجهاز. لا يزال نظام الملفات على microSD للقراءة فقط طوال الوقت ، وبالتالي يتم تقليل خطر التلف إلى الصفر تقريبًا ، وكذلك خطر تآكل محرك أقراص فلاش السابق لأوانه.لماذا لا بدقة إلى الصفر؟ المتذوقون من EXT4 ، صححوني ، لكن برنامج تشغيل نظام الملفات لا يزال يكتب شيئًا للوسائط في كل مرة يتم فيها تثبيت نظام الملفات ، حتى إذا كان مثبتًا للقراءة فقط. وهذا noatime
لا يساعد ، فأنت بحاجة إلى مفتاح جهاز على microSD. خلاف ذلك ، كيف يمكنني تفسير حقيقة /sys/block/mmcblk0/stat
أنني قرأت 282612 قطاعات ، وسجلت بالفعل 96 ، وهذا في وضع القراءة فقط؟ حسنًا ، على الرغم من أن النسبة تقارب 3000: 1 ، في النظام العادي فهي 5: 1. (مذنب ، كذب ، لكنه لا يغير الجوهر)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 , .
, «» ? , 1 1970 , NTP. «» 46 , . , — .
UPD:
st1373 I2C- DS3231 ( ). : RTC ( ) Raspberry Pi.
من غير اللائق إلى حد ما طرح تحديثات الأمان على مثل هذا النظام. ولكن ، مرة أخرى ، يعد اختراق مثل هذا الشيء أكثر تعقيدًا إلى حد ما من استغلال ثغرة Adobe Flash في متصفح سطح المكتب العادي. يجب أن تفتح الشفرة الضارة نظام الملفات للكتابة من أجل الحصول على موطئ قدم فيه ، وإلا فإنه "يحترق" عند إعادة التشغيل مع السجلات والقمامة. SquashFS المذكورة أدناه تعقد التغييرات أكثر. ومع ذلك ، فإن كل هذه المزايا صحيحة حتى اللحظة التي يتم فيها "إغلاق" الجزء الأكبر من التعليمات البرمجية المراد كتابتها في مناطق للقراءة فقط ، أي عندما لا تقوم "الركيزة" المحمية بإجراء مكالمات للأوامر الموجودة في المناطق المسجلة: هذا هو بالضبط ما هو (هل سيكون؟) ناقل العدوى ذي الأولوية على إنترنت الأشياء. كن حذرا مع البرامج النصية لبدء التشغيل ، يتم تشغيلها كجذر ،خطوة واحدة خاطئة - وهذه نقطة ضعف حرجة في البنية التحتية للموقد ، متصلة باستمرار بالإنترنت.Rasbian Jessie microSD read-only, . .
DISCLAIMER
. root
, sudo
. , , sudo
, -. , * * , ? -, 0.33, , … : , root
sudo bash
, .
1.
تثبيت Raspbian Jessie Lite. استخدم الأداة المساعدة raspi-config
لتعيين الإعدادات الإقليمية وكلمة مرور المستخدم pi
. قم بتوصيل الشبكة ، دبيان هي فرع من النطاق العريض. لا تقم بتضمين التحميل في الرسومات حتى الآن.apt-key update
apt-get update
2. إضافة أو إزالة البرامج
مع الرسومات ، التثبيت: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
الإزالة: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
كنت بحاجة إلى الحزم لمهمة معينة ، يمكنك الاستغناء عنها.إذا لم يكن هناك الرسومات، يمكنك القيام * لا حاجة * إلى: xserver-xorg xinit lxde-core lxappearance lightdm policykit-1
.3. خلق بيئة رسومية
raspi-config
يمكن للأداة الآن تمكين التشغيل التلقائي في الوضع الرسومي باستخدام تسجيل الدخول التلقائي ، والذي سيكون مع حقوق المستخدم pi
. بدلاً من تعليق المكالمة sudo
، من الأفضل وضع كلمة مرور قوية للمستخدم pi
، وعدم استخدامها pi
للدخول تلقائيًا إلى الواجهة الرسومية. بدلاً من ذلك ، قم بإنشاء مستخدم pu
وتشغيل "X" مع حقوقه. علاوة على ذلك ، من الأفضل تعطيل shell (shell الافتراضي) لهذا المستخدم تمامًا (عن طريق الإعداد /usr/sbin/nologin
) ، أو استبداله بنص برمجي خاص /usr/local/bin/pu
. أعتزم التحدث عن هذا في منشور آخر مخصص للوحات الفيديو مع التحكم عن بعد عبر SSH ، والذي تم إنشاء حساب منفصل له حقوق مخفضة. شكرا مرة أخرى لساورون وآخرون .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
بدلاً من الأمرين الأخيرين ، يمكنك فتحه باستخدام المحرر /etc/lightdm/lightdm.conf
وتعيين قيم معلمتين ، الأولى التي ذكرتها أعلاه ، والثانية تتحدث عن نفسها:...
xserver-command=X -s 0 -dpms -nocursor
...
autologin-user=pu
...
4. توقيت الوكالة الدولية للطاقة (اختياري)
لدي Raspberry Pi 3 Model B ، لذلك تسمى وحدة مراقبة kernel على النحو التالي:modprobe bcm2835_wdt
echo "bcm2835_wdt " | sudo tee -a /etc/modules
ثم أضف السطر التالي إلى القسم الموجود [Install]
في نهاية الملف /lib/systemd/system/watchdog.service
:[Install]
WantedBy=multi-user.target
بعد ذلك ، قم بتمكين الخدمة:systemctl enable watchdog.service
يجب أن يعمل مؤقت المراقبة في الحد الأدنى من التكوين إذا تجمدت النواة. ولكن هناك العديد من الخيارات الأخرى ، على سبيل المثال ، للحمل المفرط على النظام ، لانتهاء صلاحية الذاكرة ، لارتفاع درجة حرارة النظام ، لغياب ملف إشارة ، إلخ. ترى، كما watchdog(8)
وwatchdog.conf(5)
5. بدء المعلمات
أوقفت عرض شعار التوت وملف المبادلة ، وقمت بتشغيل التحميل السريع. للقيام بذلك ، أضفت في /boot/cmdline.txt
ثلاث كلمات فقط logo.nologo fastboot noswap
. انتهى بي الأمر بهذا: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. ختم نظام الملفات الجذر Raspberry Pi في للقراءة فقط
الآن وصلنا أخيرًا إلى الشيء الرئيسي.في ما يلي نص برمجي يجب وضعه تحت اسم mount_unionfs
في مكان ما /usr/local/bin
. تذكر تمكين بتات الجدوى + س ( chmod
755 أو 555). إيلاء الاهتمام لواحق .orig
، و .rw
أنها يجب أن تتطابق مع إعداد (على):#!/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
من تعليمات أخرى ، قررت أخذ النصيحة والقيام بما يلي:insserv -r bootlogs
insserv -r alsa-utils
rm -rf /var/lib/dhcp/
ln -s /tmp /var/lib/dhcp
تطبيقات الرسومات مغرمون جدا من التسجيل في /home
شيء لا طائل منه، وذلك بالإضافة إلى /etc
، و /var
لقد تضمنت أكثر و /home
. سنقوم بإعداد الأقسام للتبديل إلى وضع UnionFS (الانتباه إلى اللاحقات .orig
و .rw
):
cp -al /etc /etc.orig
mv /var /var.orig
mv /home /home.orig
mkdir /etc.rw /var /var.rw /home /home.rw
ملف أخيرا 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. تدقيق النظام والاختبار
ألق نظرة حول النظام ، ونظف .bash_history
جميع أنواع ملفات السجل ، وما إلى ذلك. يرجى ملاحظة أنها قد لا تكون موجودة في مكان وجودها عادة (على سبيل المثال ، /var.orig
بدلاً من var
).إعادة تشغيل النظام ومعرفة ما حدث. إذا تم ارتكاب خطأ ، فهناك فرصة جيدة لترك النظام كمستخدم واحد وبدء وحدة التحكم فقط root
. إذا كان نظام الملفات سليمًا ، فإن إعادة كتابته من القراءة فقط إلى القراءة والكتابة بسيط للغاية:mount -o rw,remount /
إذا تم تشغيل النظام بشكل طبيعي في القراءة فقط وأداء جميع الوظائف ، تهانينا!هذا ولد شيء الإنترنت.8. طباعة نظام الملفات
إذا كنت بحاجة إلى طباعة النظام ، فأعد نظام الحصان أولاً إلى حالة القراءة والكتابة (انظر أعلاه). ثم قم بالتعليق على fstab(5)
الأسطر التي تبدأ بالكلمة mount_unionfs
، وبعد ذلك * تأكد * عد إلى مكان الدليل /var.orig
بكل المحتويات (ويفضل /home.orig
أيضًا). إذا لم تقم باستعادته /var
، فستفقد قاعدة بيانات الحزم المثبتة ، ولكن من أجل تثبيت تحديثات الأمان مع الفريق apt-get
قمت بطباعة النظام للتو ، أليس كذلك؟ قبل apt-get
إعادة تشغيل النظام وتأكد من أنه مناسب. كيف تغلق ، تعلمون ؛)البدائل
أعزائي القراء الذين يعرفون صورًا صناعية جاهزة لأنظمة التشغيل (مع دعم للقراءة فقط) لأجهزة Raspberry Pi وغيرها من أجهزة الكمبيوتر ذات اللوحة الواحدة ، أدعوك إلى مشاركة التعليقات. آمل ، بمساعدتكم ، أن أتمكن من إثراء هذا القسم بالقراء الآخرين والمقيمين والضيوف في البوابة المحترمة :)أما بالنسبة لبدائل الأجهزة لـ Raspberry Prog نفسها في سياق التطبيق (صافرة شبكة HDMI) ، فقد تعثرت بطريق الخطأ عند مراجعة واحدة تقول ومع ذلك ، يمكن مناقشته بشكل منفصل. من الناحية الاقتصادية البحتة ، فإن Raspberry Pi مربح للغاية ، حتى الآن الشيء الرئيسي :)لذا ، دعنا نذهب.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
)