Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

robot resets itself #206

Open
josch opened this issue Apr 3, 2019 · 18 comments
Open

robot resets itself #206

josch opened this issue Apr 3, 2019 · 18 comments

Comments

@josch
Copy link
Contributor

josch commented Apr 3, 2019

Hi, I followed the instructions to patch firmware v11_001792 and install valetudo and dummycloud on the device. But just today, only about 1 or 2 minutes after 3:00 in the morning, the vacuum proclaimed "restart the initial version please be patient" and now seems to be reset. I didn't do anything to it (in fact I was sleeping at the time) and now my robot is reset. Did anybody else experience this effect already?

@dugite-code
Copy link

See: Hypfer/Valetudo#80

You vacuum will always restart around 3 or 4 am, that is normal. It's still not clear as to why sometimes it becomes un-provisioned. Valetudo should still be present on the vacuum though. I have had some slight success reducing the issue by changing the upstart config: Hypfer/Valetudo#80 (comment) However I still had one drop recently, but I think that was an issue with my wifi.

The latest release of Valetudo has dummycloud built in so that's one less item to consider

@josch
Copy link
Contributor Author

josch commented Apr 10, 2019

It did not just become unprovisioned. It said "restart the initial version please be patient" and this seems to indicate that it performed a factory reset? I didn't touch the robot yet to investigate the problem but restarting it via the power button doesn't help. I just see its wifi network and can query it with mirobo but I no longer can access it via ssh for example.

@dugite-code
Copy link

@josch looks like Hypfer Hypfer/Valetudo#80 (comment) had a similar issue recently. You may want to head over there

@josch
Copy link
Contributor Author

josch commented Apr 18, 2019

@jlo88
Copy link

jlo88 commented May 6, 2019

I also had this last night, it suddenly started speaking Chinese again! Last time it happened this was on the 21st of March. So about 6 weeks ago. When this happens I also have to go through the flashing process again.

@josch
Copy link
Contributor Author

josch commented May 6, 2019

Another possible duplicate: Hypfer/Valetudo/issues/206

@dugite-code
Copy link

@josch in the roboter-forumthe link you posted they claim that the settings in /mnt/default/roborock.conf were wrong. Have you given that a try?

As Hypfer mentioned it looks like there is an error counter somewhere that triggers a re-flash if too many errors are logger (somewhere), you could also try disabling logging maybe it'll stop the issue? disable_logging.sh

GEN1: step-by-step-conversion-from-ccc-to-ce

@dugite-code
Copy link

Further updates: Hypfer/Valetudo#206 (comment) Looks like you can modify the crash counter.

Would be better to identify the issue and fix it but there is a work around

@josch
Copy link
Contributor Author

josch commented Jun 4, 2019

@dugite-code I posted the contents of my roborock.conf here: Hypfer/Valetudo#206 (comment)

@florian-asche
Copy link

florian-asche commented Jul 1, 2019

Syslog from during the restore to the old firmware: https://pastebin.com/raw/FLcvbnQ6
Version 1810.

@froodproton
Copy link

Same over here, this morning, the Robo was not available on the assigned IP and it was speaking English, although German was installed before.
My problem is: Where is the original firmware coming from? Is it stored in a partition somewhere on the Robocalls although we flash it with the alternative firmware which gets copied to system_a and system_b?
Or does the robo need an Internet connection to Xiaomi to download the vendors firmware?
In the latter case I would be worried since I would be missing some dns "redirects" in my (router) config.
It would mean that the robocalls can still connect to Xiaomi!!

@dugite-code
Copy link

dugite-code commented Nov 19, 2019 via email

@prinz3nroll3
Copy link

hi,
after 3 weeks firmware reset.
i dont want to install few weeks the firmware.

is there some solution, no or?
what about fsck every day, how can i add this?

@Xento
Copy link

Xento commented Jan 14, 2020

Did you use the available fixes?
I flashed mine with valetudo 0.4 and installed valetudo re 0.8.1 over it with a deb package.
Today it seems that the robot flashed it self with the flashed valetudo 0.4 again.
Settings are persisted but I was on valetudo 0.4 again instead of valetudo re 0.8.1.
I Applied both fixed manually now.

@dugite-code
Copy link

dugite-code commented Jan 14, 2020

Unfortunately even after all this time the cause is really still unknown. Possibly because the robot will re-flash for a multitude of errors. I myself found after this modification an increasing the crash counter I no longer encountered re-sets, however other research might point to simple file-system issues.

As mentioned in the linked comment you may want to do a fstrim as well. It could be an issue of running out of disk space.

@Xento
Copy link

Xento commented Jan 14, 2020

I added the dnsmasq change, too now.
I changed CRASH_IGNORE_MIN to 60 instead of 600.
I checked /dev/mmcblk0p8 but it was clean.

I'm new to this, but does the firmware switch from mmcblk0p8 to mmcblk0p9 and than when an third issue was found switchs to the mmcblk0p7 (recovery).
Maybe it would be possible to switch back to mmcblk0p8 and avoid an complete recovery.

@dugite-code
Copy link

I believe it should only have two system partitions 'A' and 'B' with one of the partitions being the boot partition. That said I've never manipulated them directly as it's a bit dangerous as you can effectively brick both partitions.

If memory serves me the recovery partition never changes and is used only to over-write the active partition if an error occurs.

I noticed this comment Hypfer/Valetudo#206 (comment)

@hkemal Excellent observations, thanks! Mine has only resetted once and only with logging enabled. It did a full vacuum run the day before the reset.

I just realized I actually did disable logging myself when last building my Valetudo firmware. So it's possible the fstrim really isn't being performed.

@Xento
Copy link

Xento commented Jan 14, 2020

I think my device resettet the first time and switched from A to B.
Maybe the next time it would switch from B to recovery and than it would be an full reset.
So, when you know how to modify the cmdline for uBoot to use partition A again, maybe you could avoid a full reset.
My device is now on /dev/mmcblk0p9 (B)

cat /proc/cmdline
rootwait boot_fs=b console=ttyS0,115200 root=/dev/mmcblk0p9 rootfstype=ext4 loglevel=7 partitions=boot-res@mmcblk0p2:env@mmcblk0p5:app@mmcblk0p6:recovery@mmcblk0p7:system_a@mmcblk0p8:system_b@mmcblk0p9:Download@mmcblk0p10:reserve@mmcblk0p11:UDISK@mmcblk0p1 boot_reason=0x69617070 location=en boot_ver=2011.09-rc1-dirty

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants