Boot z USB flash paměti

Nejprve úvod do problému: eMMC paměť mého Turrisu Omnia je poškozená, reklamace mi byla zamítnuta, nicméně CZ.NIC nabídla možnost naflashování nového experimentálního u-bootu, který podporuje boot z USB portu. S tím jsem souhlasil, Omnia dorazila zpět, nabootoval jsem a zjistil, že ačkoliv Omnia opravdu nabootuje z USB, celkově je nepoužitelná (nenastartovalo ani lighttpd ani SSH). Po krátkém zkoumání jsem přišel na to, že na dodané flashce chybí vcelku velké množství souborů, které na normálním medkitu jsou. Domnívám se tedy, že dodaná USB flash paměť neobsahuje vše, co je potřeba pro normální běh Omnie.

Udělal jsem si bitovou kopii flashky a začal experimentovat. Vytvořil jsem čistý filesystém, na něj nakopíroval medkit a dálě se pokusil zreplikovat veškeré nestandardní věci, které obsahovala původní flashka (šlo převážně o obsah adresáře boot, zřejmě modifikované jádro atd.). Nabootoval jsem z nově vytvořené flashky a dostal jsem se dál - nyní lighttpd nastartovalo a dostal jsem se alespoň do Forisu. Nicméně jsem narazil na spoustu dalších problémů (nerozpoznaný hardware, nefunkční eth porty, atd.).

Rád bych poprosil někoho z CZ.NICu, jestli by nebyl ochotný/á mi pomoci diagnostikovat a vyřešit problém. Mohu dodat logy z bootu (jak z dodané flashky, tak z mojí upravené). Myslím si, že pokud by se nám podařilo boot vyřešit, mohlo by z toho benefitovat nemalé množství lidí.

Mimochodem, support.turris.cz momentálně vrací 403 na vše.

Něco podobného se řeší již zde (ale Boot z SSD): Chyby, které vedou k nefunkčnosti připojení

Pokud jste kolaborátor a nebojíte se, můžete provést kroky z této dokumentace: https://doc.turris.cz/doc/cs/howto/omnia_booting_from_external_storage#booting_from_usb

Vřele ale doporučuji pro každý případ mít při sobě seriový kabel, aby jste se mohl připojit na konzoli přes seriovou linku: https://doc.turris.cz/doc/cs/troubleshooting/serial_link

Díky, ale o tom vím. Cílem mého snažení je nabootovat bez pomoci SSD či USB adaptéru (jak je to popsáno v odkazované dokumentaci). Sériovou linku mám (a používám).

Tak to Vás asi zklamu, pač, pokud máte vadnou eMMC (převážně datovou partition), tak jinou možnost ani mít nebudete, než-li použít a obětovat jeden port USB s flashkou či diskem nebo obětovat miniPCI-E port na vnitřní mSATA SSD.

Teď nevím, jestli si rozumíme: pokud tomu dobře rozumím, tak na vámi odkazované stránce je popis toho, jak nabootovat buďto z mSATA SSD (na což musí člověk obětovat jeden slot Omnie), nebo z normálního SATA disku USB disku, připojeného přes mPCIe-SATAUSB adaptér (opět nutnost obětovat jeden slot). Jiné způsoby nejsou oficiálně podporovány.

Já se snažím nabootovat z USB flashky zasunuté v USB portu Omnie (což nění oficiálně podporovaný způsob bootu) - a jak jsem psal, Omnie sice nabootuje, nicméně spousta věcí nefunguje.

Bohužel nerozumíme. V návodu je použito jak přes mSATA (SSD), tak i přes USB a je jedno, co do USB připojíte (Flash, HDD) - samozřejmě to nesmí být USB HUB.

Ha, omlouvám se, to je změna, ještě tak zhruba před měsícem/dvěma tam tato možnost určitě nebyla. Vyzkouším.

Edit: tak ne, je tam stále to samé, viz hned první odstavec na té stránce:

Druhým způsobem je použití adaptéru (MPCIE1U-NO1) z mini PCIe na USB 2.0, který je potřeba zapojit do levého mini PCIe slotu, kde je slot na kartu SIM. Do tohoto adaptéru je potřeba zapojit tenký a krátký USB disk, který se tam vejde.

Popletl jsem to já výše, když jsem psal o mPCIe-SATA adaptéru (ve skutečnosti jde o mPCIe-USB adaptér).

Mám od podpory potvrzeno, že není jedno, jestli bootuji pomocí adaptéru (podporováno) nebo pomocí standardního USB portu na Omnii (nepodporováno).

Tak to bude u mě to “AHA…”, tak to se omlouvám. Já čekal, že to bude fungovat i přes ty dva USB porty, pouze se smění příkazy v U-Bootu a opak je pravdou, nechodí, to je dobré vědět.

Nicméně, návod by Vám mohl pomoci, jak provést bootovatelnou “Flash” a rozbalení mediakitu, aby to bylo plněfunkční se vším všudy.

Mimochodem, support.turris.cz momentálně vrací 403 na vše.

Děkujeme za upozornění. Byla chyba v přesměrování na novou stránku pro podporu, už by to mělo fungovat.

2 Likes

Doufal jsem, že se ozve někdo ze supportu, ale asi bohužel.

Rozhodl jsem se tedy nahradit 2.4GHz WiFi kartu SSD diskem a nabootovat z něj, což by měl být podporovaný scénář. Bohužel se mi podle oficiálního návodu nepodařilo nabootovat ani po několika pokusech. Špatně se mi určuje příčina, protože nemám k dispozici žádnou referenční Omnii, se kterou bych mohl porovnat boot prostředí. Nicméně Omnia se mi vrátila z reklamace s upraveným u-boot prostředím (dle slov CZ.NIC) a mám obavy, že vše nebylo nakonfigurováno úplně správně, a navíc že současná konfigurace u-bootu není kompatibilní s návodem zde - například nemám vůbec k dispozici btrload, rescueboot není nadefinován a tedy run rescueboot skončí s chybou.

Potřeboval bych tedy zřejmě prostředí u-bootu dostat do výchozího stavu. Bohužel nemohu najít žádný oficiální návod, jak na to. V různých příspěvcích se objevuje následující návod: stáhnu image odsud a spustím kwboot -t -B 115200 /dev/ttyUSB0 -b uboot-turris-omnia-spl.kwb. Stačí toto k tomu, abych dostal u-boot do výchozího stavu, včetně všech proměnných prostředí? Dále bych pak postupoval podle návodu výše.

Zkusil jsem kwboot, ale bohužel ani to neprošlo.

Z terminálu jsem pustil
./kwboot -t -B 115200 /dev/ttyUSB0 -b uboot-turris-omnia-spl.kwb

Příkaz se spustí a vypíše
Sending boot message. Please reboot the target.../

Poté provedu reboot, nicméně kwboot už nic dalšího neprovede, flash se vůbec nespustí.

Nějaké další nápady?

Nakonec jsem nasel instrukce zde. Preflashnul jsem jak u-boot, tak medkit, nastavil bootovani z mSATA a zda se, ze vse funguje normalne.

Ten link vyse je nejaky zaklety, google mi ho nevypise ani kdyz zadam vcelku presny titulek do vyhledavaciho policka. Nejake relevantni informace byly prevedeny i sem do nove dokumentace.