Plugwise Stretch 2.0 – Failsave mode via UART
Ter info: Het uitproberen en experimenteren op je eigen hardware is op eigen risico!, de auteur is niet verantwoordelijk voor eventuele schade aan je hardware!
Let op: Het wachtwoord voor de SSH sessie is tot op heden onbekend, als je het wachtwoord reset is het oude wachtwoord niet meer te achterhalen, mocht plugwise ooit met een firmware update op de proppen komen, dan zou het kunnen zijn dat PlugWise applicaties geen verbinding kunnen maken met de smile via SSH, je zal dan de firmware handmatig moeten toepassen!
Dit is uitgevoerd op een Plugwise Stretch 2.0 met firmware v1.0.38
Eenmaal de Stetch 2.0 in “failsave” modus gestart met een Linux Bash command, kun je al een beetje in de smile graven/rommelen en diverse linux commando’s uitvoeren.
MAAR…in failsave mode:
– worden drivers niet geladen zoals USB, etc…
– worden niet alle partities gemount (alleen “filesystem” (SquashFS))
– worden niet alle modules geladen, zoals WiFi/LAN, etc…
– is alles read-only, aanpassingen hebben geen effect, na reboot staat alles terug (oplossing hieronder)
Wat is de truc?
Het probleem is dat in failsave mode alles “read only” is, je kan wijzigingen aanbrengen, maar deze worden niet opgeslagen, zodoende staat bij een volgende reboot alles weer terug, zoals ook op internet te vinden:
NOTE: The root file system in failsafe mode is the SquashFS partition mounted in readonly mode. To switch to the normal writable root file system run mount_root and make any changes. Run mount_root now.
Ok, laten we eerst even kijken wat er “gemount” is
Linux commando:
blkid -o list -c /dev/null
1 2 3 4 |
root@(none):/# blkid -o list -c /dev/null device fs_type label mount point UUID /dev/mtdblock4 squashfs / |
Je ziet dat de “squashfs” (fs = filesystem) gemount is, maar niet in gebruik is, dus we moeten switchen naar het schrijfbare gedeelte, dit doe je met:
Linux commando:
mount_root
1 2 3 |
root@(none):/# mount_root [ 188.850000] JFFS2 notice: (362) jffs2_build_xattr_subsystem: complete building xattr subsystem, 1 of xdatum (1 unchecked, 0 orphan) and 10 of xref (0 dead, 2 orphan) found. switching to jffs2 |
Laten we nu eens weer kijken wat er gemount is:
Linux commando:
blkid -o list -c /dev/null
1 2 3 4 |
root@(none):/# blkid -o list -c /dev/null device fs_type label mount point UUID /dev/mtdblock4 squashfs (in use) |
Je ziet nu “(in use)” staan, alle veranderingen die we nu aanbrengen worden nu wel weggeschreven!
Nu kunnen we het wachtwoord aanpassen:
Linux commando:
passwd
Geef een nieuw wachtwoord op voor “root” en type het opnieuw:
1 2 3 4 5 |
root@(none):/# passwd Changing password for root New password: Retype password: Password for root changed by root |
Nu heb je het wachtwoord aangepast en het is opgeslagen, nu nog even netjes de smile rebooten:
Linux commando:
reboot -f
De stretch 2.0 start nu opnieuw op, verbreek nu de UART verbinding met de smile en sluit de smile op de reguliere manier aan (via de adapter)
Het duurt even voordat de smile opgestart is (je kan aan de led’s zien of de smile opgestart is), eenmaal opgestart log je in via SSH met PuTTY, gebruik dan:
naam = root
wachtwoord = je nieuwe wachtwoord dat je via UART hebt ingesteld
Je bent vanaf nu verbonden met de stretch via een SSH verbinding!