Při kopírování root partition je problém s adresáři, které jsou použité jako mountpoint. Alternativní řešení k dlouhému exclude je vytvořit libovolný adresář, například /mnt/tmp a do něj root filesystém/partition namountovat znova. Linux v takovém případě nespustí slepě druhou instanci FS, která vedla k nekonzistentním datům, ale zpřístupní filesystém tak jak je bez namontovaných dalších FS. Tím je možné ne jen zkopírovat root FS se správnými právy k mount pointům, ale případně i se soubory a adresáři, které jsou jinak mountpointy skryté. Dříve bylo dobré/potřeba například v /dev mít nějaký základ pro start bez najetí initu a namontování tmpfs na dev a jeho naplnění.
Treba Apacer je dela pod nazvem "Industrial SD Card" viz http://ap.apacer.com/products/Industrial-SD-M a rada dalsich. Koupit se to da klasicky, mouser/digikey/farnell a u nas i SOS a podobny. Asi se daji koupit i bezne, to nevim, neb nakupuju vesmes u Farnela/RSka. Nebo Panasonic http://na.industrial.panasonic.com/products/av-storage/flash-memory/industrial-sd-cards atd atd... Pro embeded je to nekdy mnohem lepsi reseni nez se srat s SATA protokolem a PHY radicem... O rozmerech nemluve.
R.
K tem vypadkum... Je SD karta a SD karta. V ramci info bloku je presne specifikovano, jak velky je 'erase' blok. Nektery (zvlaste levnejsi) karty maji erase blok trebas i nekolik mebabitu (!) tj. pro 1 zapis to FATky je nutno nekam zazalohovat nemale mnozstvi dat (tj. do RAM CPU nebo jinam na SDkartu). Pak se provede erase a pak se musi data (zmenena) zapsat zpet. To trva pomerne dlouhou dobu, i vzhledem k erase casu. Specialne levnejsi karticky si daji nacas s vnitrni charge pumpou a jsme uz na urovni i desitek ms. To uz jse slusna pravdepodobnost, ze napajeni vypadne zrovna v tento okmazik, vzhledem k poctu zapisu do kritickych mist. Pokud se to zalohuje nejak do RAM a ne na kartu, nejake 'konkretni' misto (defacto ala journal) pak jsou cela data... vsak ty vis kde :) A pak se daji koupit karty, co umi erase treba 256 bajtiku nebo 4K bloku. Pak tahle operace je mnohonasobne kratsi, takze klesa i mira pravdepodobnosti padu. U naproste vetsiny karet tohle info nikde neni a dokonce jedna a ta sama karta koupena z jine serie ma uvnitr naprosto jina streva :) Proto nekomu muze obyc kingston fungovat paradne a jinemu, v tom samem jde hulit po par tydnech...
A kdyz mas procak s par (desitkama) kila RAM a karta ma erase blok na urovni stovek kilo, je to, jemne receno, prekerka :) Cim vic predpon a pripon okolo SD je, tim vic je toto patrne (pomerne logicky, jak roste kapacita). A pak je jednozancne videt, dke pristupujes proste k flesi a kdy tam je radic.
Vetsinu techto problemu resi SD karta s radicem. S tim souvisi i prave vypadek napajeni, protoze kdyz obsluhuje logicke X fyzicke sektory, staci, kdyz to dela trochu inteligetne a riziko spojene se ztratou dat pri vypadku jde hodne dolu...
R.
SD řadič může mít jádro cca na úrovni 80C51, nebo možná i trochu modernější MCU.
Windows Embedded nejsou Windows95. Windows Embedded jsou odvozené od konkrétní "stolní" verze NT-based Windows (2000, XP, 7, 8, 8.1) - dřív (2k/XP) se skládaly zásadně offline ve "studiu" z mnoha tisíc komponent, dneska se dají "instalovat", na výběr je tuším několik set hruběji balených komponent a dají se i po počáteční instalaci ještě "dosochat" (přidávat/ubírat komponenty v "hotovém" systému). Mohou díky tomu zabírat míň na disku, tolik se nedožadují zapnutého swapáče, obsahují možnost používat disk v read-only režimu (EWF), nedožadují se aktivace (nebo ne tak razantně, jako stolní windows). Čili Windows Embedded mají stejný NT kernel a téměř stejný user space jako stolní Windows příslušné generace. Občas narazíte na nějakou drobnost, která chybí nebo je jinak - stejně jako "stolní" windowsy dané generace taky nejsou "jedny jediné": retail bývá jiný build než OEM, pak jsou service packy, jazykové mutace apod. Kromě toho "embedded" skládačka Vám dává mnohem víc prostoru na něco zapomenout.
Na závěd dva názvoslovné zádrhele (výjimky):
Windows for Embedded Systems jsou klasické CDčkové stolní instalovací windows, akorát že se nesmí používat na desktopu, a prodávají se ještě mnoho let po konci prodeje klasické kancelářské licence.
Windows Embedded Compact je nový název pro Windows CE.
Najdes i levnejsi... Navic v ~tyhle cene koupis 16G SDka se SLC, takze kdyz to porovnas se SLC diskama, neni to zas tak silenej ulet... Jasne ze to je drazsi, ale taky vyrazne mensi s minimalni spotrebou :) Nema smysl to cpat kdyz to ma nekdo v obyvaku, to je jasny, ale v obecne rovine to je rozhodne zajimava volba. Obcas nutnost :)
Pro zajimavost, treba... 16G ATP SLC SD karta ma papirove minimalni zapis 96TB, IP67 kryti, odolnost prosi soli a takove ty prumyslove blbosti... Maximalni spotreba pri erase je pod 50mA @ 3V, tj. nekde na urovni 0.1W... A da se sehnat nekde okolo 5K penez vc. vypalneho.
Takze kdyz uz hrube porovnavas cenu s OEM SSD, tak by bylo fajn poznamenat parametricke rozdily :) Aneb ze se porovnava neporovnatelne...
Nechtel jsem rict, ze to je pro kazdeho, ale jen to, ze existuji i SD karty, ktery tohle vsechno za rozumny peniz umi. Nicmene, prez ten interface zas neproleze hrubej takovej tok jako prez SATA, tady budes limitovanej tak 20MB/sec, nebo o neco vic, obvykle to ma omezeny hodiny okolo 50MHz a 4 bity prenosu. Na druhou stranu, zas to tech 20 ma vicemene furt :)
R.
To neni moc o cem, neni to nic zvlastniho a v dobe spotrebky by cilova skupina byla stejne hodne uzka. Aneb, lidi, co tyhle veci resi, je minimum... Jak uz to nekdo poznamenal, okolo 5K koupis prvotridni 16GB SLC karticky, MLC jsou pak o dost levnejsi, stejne jako u beznych SSD.
Obycena 8G karta se da koupit okolo 8-9 stovek (MLC, s radicem, v CR). Na to, ze takovou karticku koupis za 7 petek (+OSA + vypalne) to je stejne cca 8mi nasobnej rozdil :) Kdyz to strelim od oka, tak oproti VO cenam to je zhruba o rad navic. A vic, pokud je libo SLC, IP etc... Mimo nas bananystan to bude porad tak 5x vic, hrubo odhadem.
I po SW strance je s tim pak prace uplne jina. Staci se podivat do zdrojaku kernelu, jak vypada takove erase na SD karticce :) A to je jeden z hlavnich duvodu, proc se cim dal tim vic delaji specialni blokove vrstvy pro 'flash' like uloziste. Nebo filesystemy, ktery pak to blokovou vicemene obchazej, neb ji pouzivaj 'transparetne'...
R.
Velikost erase bloku je myslím parametr použitých NAND flash čipů, a výrobce karty nemá moc na výběr / nemá mnoho možností toto ovlivnit. Velikost erase bloku řádově ve stovkách kB až jednotkách MB je vcelku tradiční a "přes to vlak nejede". Velikost řádku (= minimální velikost čtecí a zápisové transakce) jsou tradičně řádově nízké kilobajty.
Váš příspěvek mě velice zaujal :-) Natolik, že jsem se snažil k tomu něco dohledat/dostudovat - ale moc jsem toho nenašel. Neměl byste nějaké odkazy na zdroje, které to podrobněji pitvají?
Takhle na první pohled bych totiž řekl, že jste tu zkratku trochu přehnal :-)
Můj dojem:
Tak jako různé varianty ATA Flash (vč. ATA/SATA SSD, CF/CFast apod.) a USB Mass Storage, i SD karta obsahuje dvě základní součástky:
1) surové NAND Flash čipy s rozhraním JEDEC nebo jak se to dneska jmenuje
2) řadič, který se navenek baví přes ATA nebo USB Mass Storage, dovnitř se baví se surovou NAND flash, navenek se tváří jako normální disk (adresace po sektorech), nad flashkou páchá nějaký ten wear leveling, dvoupatrové mapování sektorů na NAND řádky a erase bloky.
Nedovedu si představit, že by SD karta "neměla řadič".
SD karta s klasickým SD rozhraním (existuje v několika generacích) prezentuje hostiteli "blokovou abstrakci", která je přímo použitelná různými OS v jejich diskovém subsystému (v blokové vrstvě). Něco jako LBA na ATA/SCSI. Velikost bloku=sektoru patrně klasických 512 B. Počítá se s tím, že nejběžnějším FS jsou různé generace FAT: historicky postupně FAT16, FAT32, ExFAT. Čili pokud pomineme detaily fyzické vrstvy a komunikačního protokolu, abstrakce práce s daty je shodná jako u CompacfFlash / ATA Flash / USB Mass Storage. Potažmo pokud ta karta má něco vydržet, musí dělat interně wear leveling. Otázkou dále je, nakolik je tento wear leveling pokročilý. Přesněji, u SD bych čekal tzv. "statický" wear leveling (tupý round robin) - ostatně to třeba Panasonic u svých "industrial" flashek výslovně uvádí. A jak je známo o low-end ATA flashkách, firmware řadiče uvnitř karty doslova počítá s tím, že na kartě je FAT FS, dokonce s konkrétní velikostí clusteru a potažmo konkrétní velikostí FAT tabulky (karta se prodává předformátovaná FATkou s těmito parametry) a právě sektory nesoucí FAT tabulku mají důkladnější wear leveling než celý zbytek disku. Pochopitelně - FATka se přepisuje mnohem častěji a v drobnějších kvantech. V popisu nějakých značkových industrial flashek jsem zaznamenal "protection against double power failure". Nevím co to přesně znamená, možná si firmware SD řadiče uvnitř karty operace žurnáluje, provádí copy-on-write nebo tak něco - aby se vyhnul nekonzistenci ve svém interním dvoupatrovém mapování, případně byl schopen rekonstruovat své mezivrstvy do konzistentního bodu před výpadkem napájení. Určitě nedokáže garantovat konzistenci FS, který žije o dvě vrstvy výš.
Podobně jako CF karty umí "přímo mapovaný režim" (připojí se přímo na ROM-style sběrnici MCU), tak SD karty umí SPI režim (přinejmenším některé. SPI režim je součástí standardu SD). Tyto režimy umožňují dvě věci: 1) obejít se bez ATA nebo SD řadiče a 2) adresovat flashku po bajtech. Hardwarový SPI řadič je součástí mnoha MCU, embedded PC čipsetů apod. (které o ATA/SATA nebo SD nikdy neslyšely) a navíc SPI se dá také zařídit poměrně snadno softwarově přes GPIO (bit banging = "taháním za drátky").
Dál je pro mne osobně otázkou, co to vlastně znamená ve vztahu k blokové abstrakci resp. wear levelingu. Pokud tomu mám rozumět tak, že přímo mapovaná CF karta nebo SDčko v SPI režimu mají i v tomto režimu umožnit přístup k datům na FAT FS, aby bylo možno třeba přenášet data mezi PC a "nejmenovanou krabičkou na bázi MCU", pak i v těchto režimech musí být dodržena abstrakce blokové vrstvy, přestože jednodušší rozhraní umožňuje přistupovat k jednotlivým bajtům -> i v těchto režimech by karta musela interně dělat to složité mapování a wear leveling...
Druhá možnost je, že v těchto "přímo mapovaných" režimech řadič pouze přímo zpřístupní surové NAND Flash čipy nějakou trapnou lineární translací SPI na "JEDEC". Tohle mi ale moc nejde do hlavy - protože NAND se musí číst a zapisovat po celých řádkách, mazat po erase blocích, a nejsem si úplně jistý, zda je součástí SPI protokolu např. operace "smaž celý erase block" nebo "zjisti fyzickou geometrii čipů" (velikost řádku a erase bloku) - a tyhle operace mívají u specifických modelů NAND čipů specifické detaily a zádrhele... že by je uměl řadič SD/flash odstínit, a přitom zůstat u adresace na nízké vrstvě? Přijde mi to příliš složité... spíš bych to opravdu viděl na "přístup po bajtech na blokovou abstrakci".
Jinak řečeno, domnívám se, že ani v těchto "přímo bajtově mapovaných" režimech nemá např. Linux v roli hostitele možnost, pracovat přímo s NAND Flash čipy v podobě MTD, provozovat si na nich svůj vlastní flashový FS s plnotučným žurnálujícím wear levelingem apod.
Co dalšího odlišuje "industrial" SDčko?
Mrkněte do Google Images - je tam vidět např. nápad některých výrobců, že u "průmyslových" SDček budou zalévat osazený plošák do kostky plastu (kdežto konvenční karta má jenom přicvaknutý plastový kryt).
https://www.google.com/search?q=industrial+SD+card&source=lnms&tbm=isch
To mi moc radikální nepřipadá - odhadem to tak většina "industrial" výrobců ani nedělá.
Klasickou vlastností "industrial" flashek je použití SLC čipů. "Industrial MLC" je podle mého marketingový výplod některých výrobců, kteří se snaží nabídnout trhu "něco mezi" - levnější flashku, která není úplně spotřební, ale taky to není šíleně drahé SLCčko. Nakolik je pak "industrial" cena záležitostí jenom té "industrial" samolepky, to je na zvážení nás jako uživatelů...
Je třeba si uvědomit (už to tu padlo) že "industrial flashka" je okrajový sortiment, zlomek trhu v porovnání se spotřebními flashkami. Z toho plyne jednak vyšší cena (protože méně masová výroba a menší konkurence), druhak se člověk může chlácholit nadějí, že aspoň největší "industrial" výrobci si pohlídají aspoň kvalitu firmwaru v něco/flash řadičích ve svých kartách. Snad kromě největších firem typu Sandisk nevěřím, že by si kdokoli menší byl schopen navrhnout a nechat vyrábět své vlastní něco/flash řadiče (křemík). Hardware těchto řadičů vyrábí několik výrobců - jeden či dva značkoví a pak hrst asijských sídlištních garáží, které ani nemají jméno v latince. Výrobci flash karet tyto řadiče nakupují hotové a s větším či menším úspěchem se snaží pohlídat na svém výstupu kvalitu = kompatibilitu s různým hostitelským hardwarem a bezchybný provoz firmwaru v oblasti mapování a wear levelingu... Obchodní značky jako Pretec nebo Transcend prodávají pod jedním objednacím kódem flashky klidně ze čtyř fabrik po světě s různými vnitřnostmi :-(
Na "transparentní práci s NAND Flash skrz blokovou vrstvu ATA/Flash řadiče" moc nevěřím. Něco málo se hostitel může domáknout, snad velikost erase bloku (při správném zarovnání testovacích transakcí) - ale těžko to někdy bude dokonalé...
Ještě k té "industrial" samolepce: takto označené zboží má obecně delší produktovou životnost. Klasickou spotřební flashku koupíte někde v alzáči, osvědčí se Vám, za tři měsíce ji chcete koupit znova, ale ouha: tenhle produkt už se neprodává.
U průmyslových věcí obecně bývá produkt na trhu pár let. A pokud ne přesně tentýž, tak nějaký blízký bratříček (stejné rozměry a kapacita, nejlépe i čipset, možná s malou úpravou plošáku). A zatímco spotřební věci se vyrábějí zásadně velkosériově v dávkách po desítkách tisíc kusů, u mnoha "průmyslových" artiklů drží výrobce skladem zásobu součástek - třeba šváby a neosazené plošáky - a osazuje až na zakázku přesně tu variantu, kterou si objednáte. Produkt je trvale v ceníku, ale jestli ho někdo drží hotový skladem, je to spíš distributor v Evropě než sám výrobce na Taiwanu. Výrobce je schopen během 3 dnů na objednávku osadit a expedovat libovolný model ze sortimentu. Při týdenním objednacím cyklu (když je statisticky dost objednávek, aby se rozpustila doprava) můžete mít svoji flashku nebo motherboard v ČR na stole za 2-3 týdny, podle pružnosti výrobce a celníků. Zejména u spotřebních flashek se člověk občas setkává se záhadnými nekompatibilitami proti hostitelskému hardwaru. A muset po každém nákupu řešit záhadné hniloby, to člověku (integrátorovi=skládačovi) po čase leze na mozek. Nakonec mnoho lidí přijde na to, že mít možnost v průběhu let opakovaně kupovat po 5 kusech přesně tutéž ozkoušenou flashku, možná stojí za těch pár stovek na kusu navíc.
Zdravim, radicek jsem mel na mysli takovy radic, ktery implementuje cele WL a primarne zajisti, ze opakovany zapis do stejneho logickeho bloku nepovede k neustalemu erase teze stranky. Jinak SPI je ciste prenosova vrstva, protokolove tam neni definovano nic. MLC - v dobe tripple level a buchviceho, za chvilku budou MLC 'ta kvalitni' a SLC skoro nebudou existovat :( A zase je MLC a MLC, da se koupit fleska s minimum erase 1.000 a nebo 100.000. V obecne podobne industrial MLC smysl davat muze, faktem ale je, ze marketaci jsou kreativni lide :)
Industrial caso odlisuje jen vyber, napr. meli jsme problem s tim, ze se desky omylem osadili DRAM co nebyla industrial (rozsah teplot) - a fakt pri -15 nefungovaly, ikdyz industrial jeli od -40. Ten samej vyrobce, to same pouzdro, jedno pismeno jine. Cili, nekdy industrial meni dost veci, byt se ocividne jedna pouze o vyber povedenejsich kousku treba...
A s tou posledni vetou naprosty souhlas...
R.
řešilo se zde: http://bananapi.com/index.php/forum/general/391-why-the-sata-disk-doesnt-work-on-bpi-r1?start=18; pokud je tam uvedené řešení složité, níže v diskusi je rada připojit napájení do portů pro baterii, pak je voltáž ok
Pro novější verze Bananianu (od 15.08), kde už soubor uEnv.txt není, jsem použil postup z https://forum.htpcguides.com/Thread-Problem-pointing-boot-to-hdd