batocera-linux / batocera.linux

batocera.linux
https://batocera.org
Other
1.93k stars 496 forks source link

Inconsistent freeze at boot on X96 Max Plus (s905x3) #4322

Closed Hew-ux closed 3 years ago

Hew-ux commented 3 years ago

This is for the s905gen3 build on the X96 Max Plus (+), full specifications at https://amzn.to/36Flni5 and https://androidpctv.com/review-x96-max-plus-opinion/

Issue: Device sporadically fails to boot for an hour after shutting down. To reproduce: Flash a fresh image, boot and shutdown from within ES. The device will now freeze at the green screen when attempting to boot for approximately the next hour. It may be able to boot once more after the initial shutdown, but taking about two minutes longer. Expected behaviour: To be able to boot, shutdown, and boot successfully.

I've already tested with several cards to ensure it wasn't a simple case of dying flash storage. The device itself is able to consistently boot into its Android OS successfully so it's not faulty hardware. I have also tested this with most of the .dtb files, but meson-sm1-h96.dtb is the only one it successfully boots with. No files appear to be corrupt after failing to boot. After waiting around an hour, the device will boot up perfectly fine, all functions work except wifi (though that's probably just the .dtb file not being specific to the X96 Max Plus). I can successfully ssh in to further troubleshoot, but haven't been able to find the root cause yet.

Hew-ux commented 3 years ago

One time after a 'slow' startup it failed to run any emulators, resulting in a malformed error log (attached). es_launch_stderr.log On a successful boot after waiting an hour later, it was able to run emulators fine.

Hew-ux commented 3 years ago

More testing, it actually does not with other dtb files like meson-sm1-4g.dtb but it too sporadically fails to boot, which convinced me it didn't work outright the first time. There may be other dtbs it works with that I just haven't successfully booked with yet.

Hew-ux commented 3 years ago

devicetree.zip I've found the device tree on the device itself from /proc/device-tree (which was simlinked from sys/firmware/devicetree/, attached above. I'm not sure on how to compile this into a functional dtb for Batocera.

Hew-ux commented 3 years ago

It seems that these issues have been fixed with the v32 beta, using the default dtb, so I'll close this issue for now.