Omluva Turris týmu za problémy s 3.8.2 na Turris 1.x

Je nám to všem v Turris týmu moc líto, ale aktualizace na 3.8.2 nedopadla tak, jak jsme si představovali - a to přes to, že byla důkladně testována. Omlouváme se za tuto situaci všem - těm, koho to postihlo zejména. A těm, koho to znervóznělo také za to, že mohou mít pochybnosti o naší schopnosti udržet router v chodu.

Zatím řešíme, co a jak se přesně stalo. Problém je i v tom, že chybu se nedaří jednoznačně zreplikovat. Tím také unikla odhalení, prostě se při několikerých testech (ručních i automatizovaných) u nás neprojevila. Jednotlivým postiženým na podpoře radíme, jak se co nejsnáze dostat do stabilní situace a domlouváme se s uživateli, u kterých se chyba projevila, na zapůjčení jejich routeru k tomu, abychom viděli detailněji do stavu, v jakém se nachází.

Průběžně vás zde budeme informovat o postupu v odstraňování chyby a o tom, co problém způsobilo.

11 Likes

Pokud byste treba nekdo popsali proceduru jak napr nabootovat z nejake recovery microsd image do shellu aby slo namountovat root fs, a reknete co zazalohovat tak to klide udelam a poslu vam to. Uz jenom proto ze bych pred resetem do tovarniho nastaveni mel rad tu zalohu taky na vyzobani nekterych config souboru.

Tak už víme trochu více, takže co se stalo, kdo je postihnut a jak se dá problém vyřešit.

Během dnešního večera jsme dostali od jednoho z našich uživatelů zapůjčen rozbitý router. Ukázalo se, že problémem je špatně naflashovaný kernel a fdt na routerech 1.0 s jffs2. Zatím ještě nevíme úplně přesně jak k problému došlo, to budeme ještě dále zkoumat, ale už máme vymyšlený mechanizmus, který by snad měl podobnému problému v budoucnu zabránit. Během zítřka tedy vydáme update který snad pomůže routerům které ještě nebyly restartovány (výchozí nastavení pro restart jsou tři dny, takže zítra by to měli ještě dostat uživatelé kteří router nerestartovali ručně). Zákeřnost problému je že se projevuje pouze na routerech 1.0 s jffs2 a jen při update z 3.8.1, ale ne při update z factory.

Jak dostat router do opět použitelného stavu? Nejjednodužší řešení je provést factory reset a domigrovat do 3.8.2 a vše si nastavit znovu.

Systém se dá i zachránit, ale následující postup je jen pro velmi zkušené uživatele. Budete potřebovat šroubovák, microusb kabel a počítač s nastavenou statickou IP adresou a běžícím http serverem (například busybox httpd).

První krok je připojit sériovou konzoli k routeru (návod je na wiki). Poté je třeba restartovat router, zastavit stisknutím libovolné klávesy u-Boot a napsat příkaz run norboot. Následně počkat na výzvu k zastavení flashování a rychle stisknout f následované klávesou enter. Pokud to nestihnete do pěti vteřin, bude se pokračovat factory resetem. Dalším stiskem klávesy enter aktivujete konzoli v záchraném systému. Zde můžete používat pár omezených příkazů. Pro jednoduchost budu předpokládat že váš počítač s http serverem má IP 192.168.4.1 a že jste ho připojili k wan rozhraní routeru.

Do rootu vašeho http serveru stáhněte následující dva soubory z našeho webu:

https://repo.turris.cz/turris/root/boot/fdt-hw-4.4.89-1-d74822050ae7ec4a1e49c6af6d672787-2
https://repo.turris.cz/turris/root/boot/zImage-4.4.89-1-d74822050ae7ec4a1e49c6af6d672787-2

a ideálně je přejmenujte na fdt a zImage (aby se později ušetřilo psaní v konzoli).

Dále je potřeba nastavit síťovou kartu na routeru a soubory stáhnout do routeru. To se provede pomocí následujících příkazů:

ifconfig eth2 hw ether fe:ff:42:52:4b:a4 ifconfig eth2 192.168.4.2 ifconfig eth2 up cd /tmp wget http://192.168.4.1/fdt wget http://192.168.4.1/zImage

Pak už zbývá jen oboje naflashovat a provést reboot:

nandwrite -pq /dev/mtd6 fdt nandwrite -pq /dev/mtd7 zImage reboot Systém by pak už měl nabootovat normálně do vyupdateovaného systému.
3 Likes

Nemyslim, ze se problem projevil jen na turris 1.0…mám v1.1, přemigrováno na btrfs a problem nastal taky.

U mě problém na v1.0 přemigrované na BTRFS

To je jiná chyba s migrací na BTRFS
https://forum.test.turris.cz/t/turris-os-3-8-2-je-venku-dns-a-bezpecnostni-opravy/5172/8?u=jan.horacek

Ano, já tomu rozumím, jen jsem chtěl doplnit, že výčet zde uvedených postížených konfigurací není úplný. Možná by to chtělo sepsat vše do jednoho vlákna ať ti co to budou popř. hledat netápou.

To mi moc zakerne nepripada, to je typicky stav vetsiny uzivatelu kteri si moc nehrajou a nechaji router proste 3 roky bezet bez volitelnych akci typu upgrade na ubifs :slight_smile:

Kazdopadne diky za postup. Nejde v tom zachranem rezimu treba namountovat usb klicenku nebo mmc kartu v turrisu? Zkusim, muze to byt jednodussi nez rozjizdet jinde web server.

Jen taková úvaha k zamyšlení. Neuvažujete o nějakém sjednocení platforem, např. minimálně povinnou migraci v1.0 na UBIFS, když už ne všechny nutit vkládat SD kartu a migrovat na BTRFS. Myslím že by stálo za úvahu promyslet i variantu “násilného” přechodu, např. tak, že kdo do nějakého termínu nezmigruje, nebude už dále podporován a updatován. Někteří výrobci (drony DJI např.) to v některých případech také řešili tak, že dron úplně uzemnili dokud neměl up-to-date firmware. Chápu že je to nepopulární krok, ale v zájmu budoucího sjednocování a vývoje bych to minimálně zvážil … možná i povinnou tu SD kartu a BTRFS. Přeci jen, my modráci jsme si vědomi experimentální podstaty projektu a máme HW zadarmo a když se to dobře vysvětlí a podá a hlavně celé připraví, myslím, že většina lidí bude svolná koupit SD kartu a dokonce vzít do ruky i ten šroubovák :slight_smile: A vám ubude KOPEC problémů.

6 Likes

Ja bych zase dal vsem moznost schvalovat aktualizace a nenutit je nasilne.

To je sice pěkné, ale většina lidí chce mít router, na který nesáhne a který se bude aktualizovat automaticky. A jak vidno, roztříštěnost platformy už si vybírá svou daň. Ideální stav je dle mě ten, že kdo chce, ať se v tom šťourá, možnost schvalovat/odkládat je super, ale BFU ať má vše automaticky a ani neví, že nějaký router existuje … a k tomu by právě přispělo to sjednocení.

Defaultne at si to klidne je nastaveny na autoupdate,ale moznost par dni pockat a az pak se rozhodnout by nebyla marna. Precijen uz se mi toho updatama rozbilo dost a vzdycky kdyz jsem tisice km daleko a musim to resit na mobilu :slight_smile:

postup zafungoval perfektne, jenom bacha, kernel partition je mtd7 (podle /proc/mtd) takze
nandwrite -pq /dev/mtd7 zImage

jo a stahoval jsem primo z internetu tim ze jsem nastavil default gw a dal si IP repo.turris.cz do /etc/hosts a tahal pres http

takze v mem pripade po nastaveni ethernet adresy:
ifconfig eth2 192.168.1.9 netmask 255.255.255.0 up
route add default gw 192.168.1.1
vi /etc/hosts
pridano
217.31.192.105 repo.turris.cz
cd /tmp
wget http://repo.turris.cz/turris/root/boot/fdt-hw-4.4.89-1-d74822050ae7ec4a1e49c6af6d672787-2
wget http://repo.turris.cz/turris/root/boot/zImage-4.4.89-1-d74822050ae7ec4a1e49c6af6d672787-2
nandwrite -pq /dev/mtd6 fdt-*
nandwrite -pq /dev/mtd7 zImage-*
reboot

Tak jsem se rozhodl věřit Vám a zkusit křest ohněm. Zrušil jsem pomocí disk destroyeru (dd) vše na SD kartě a rebootnul router do v3.8.1 s UBIFS z NAND a následně provedl bezproblémový update na v3.8.2. Následně opět úspěšně přemigroval na BTRFS. Vše bez problémů během ani ne 5 minut… Kdyby mě to jen napadlo zkusit včera :slight_smile: Každopádně díky za info a rychlé řešení a přeju nám všem, aby to byl poslední černý Petr na hodně dlouhou dobu :sunny:

1 Like

Zdravím. Super, jak tu všichni umí Linux. Pro takové joudy, co mají bluebox verze 1.0, neumí Linux a router mají přesně kvůli tomu, že se o něj nemusí totálně starat, bude nějaká uživatelsky friendly (tzn. třeba i grafický návod, nebo nahrání fw přes uploudovací tl.) rada, jak na to?

Uzivatelsky friendly verze je bohuzel factory reset.

Super, diky za postreh, pri kopirovani prikazu jsem zapomel zmenit mtd6 na mtd7 u flashe kernelu (opraveno). wget v rescue neumi https a z duvodu bezpecnosti repo.turris.cz presmerovava na https a ze stejnyho duvodu proc neni dobry napad delat culr http | sudo sh neni uplne dobry napad flashovat kernel stazeny pres http i kdyz pravdepodobnost ze to nekdo stihne podvrhnout a zneuzit v kratkym casovym okne je vcelku mala.

Strasne radi bysme nejak sjednitili nase platormy. Problem je ze uz ted mame uzivatele kteri ocekavaji ze router je neco co bezi samo nekde v koute a aktualizuje se a ani nevi ze ho maji. A ti se tezko uz jen dozvedi ze by si meli koupit sd kartu. A udelat treba jen live migraci na ubi tak aby si uzivatel niceho nevsim a vsechno proslo bez problemu je taky extremne sloztitej problem - spousta vecii se u toho muze pokazit a ty routery jsou v ruznych stavech.

A je řešením počkat z Turrisem 1.x s BTRFS, který je rollbacknutý zpět na 3.8.1 až do vydání nějaké opravné verze (třeba té 3.8.2.1, která už se chystá ve stable) a pustit pak updater a přejít rovnou na ní … nebo raději využít vámi doporučovaný lék s přechodem na 3.8.2 a zkopírováním kernelu na VFAT partišnu SD karty před rebootem?
Díky za odpověď