From da952acb46c16db1f63af04147fb31106c71db3b Mon Sep 17 00:00:00 2001 From: Julien Palard Date: Fri, 13 Jan 2023 10:19:30 +0100 Subject: [PATCH] Mobian issue --- content/blog/2023-01-mobian-black-screen.md | 90 +++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 content/blog/2023-01-mobian-black-screen.md diff --git a/content/blog/2023-01-mobian-black-screen.md b/content/blog/2023-01-mobian-black-screen.md new file mode 100644 index 0000000..d86686a --- /dev/null +++ b/content/blog/2023-01-mobian-black-screen.md @@ -0,0 +1,90 @@ +--- +Title: Black screen at boot on my PinePhone +Date: 2023-01-13 09:33:00 +Summary: My phone was no longer booting… +--- + +OK so today my [PinePhone](https://fr.wikipedia.org/wiki/PinePhone) +does no longer boot, it goes like this: + +- Press power button to boot it, +- type rootfs passphrase (I use full disk encryption), +- Mobian "spash screen" for a short time, +- black screen, and that's it. + +My first bet was a graphical issue due to a recent upgrade ("sweet" +memories of Ubuntu failing to start its X server after almost any +upgrade...) so I try to ssh to it first... "no route to host", damned! +It don't have its IP yet so it failed before network setup. + +But it's a PinePhone, and it runs +[Mobian](https://mobian-project.org/), a Debian for mobiles, so I'm +not in the dark, let's read the boot logs first before going down the +rabbit hole of connecting a UART on the jack port to debug it over +serial: + +- Press power button, +- type rootfs passphrase again, +- press a volume button to get rid of the Mobian splash to see logs + +```text +The root filesystem on /dev/mapper/calamares_crypt requires a manual fsck +``` + +OK! + +Looks easy, but without a keyboard? Let's mount the +[eMMC](https://en.wikipedia.org/wiki/MultiMediaCard#eMMC) over USB! + +As my phone boots using [Tow-Boot](https://tow-boot.org/) it's easy: + +- Shut it down (~8s on the power button). +- Plug it to laptop with a USB-C cable. +- Make it enter "USB Mass Storage mode" (by holding the + volume up button at startup before and during the second + vibration). +- Instantly my laptop sees it and udisks auto mounts it, gnome asks + for main partition passphrase to mount it too, nice! +- Boom, it disappears... and on `journalctl -e` I see `usb 1-5: device + descriptor read/64, error -71` ... `I/O error, dev sda` ... + +At this point I think there's just two options: either my USB-C cable +was badly plugged, or my eMMC is dead. I vote for the USB-C cable +issue and try again. + +- Rebooting phone in USB mass storage mode again, but this time + without giving my passphrase to avoid automount: it + needs an fsck anyway. +- I can browse `/media/mdk/boot` and see no read error in `sudo journalctl -f`. +- `sudo fdisk -l /dev/sda` sees ~30GiB and both partitions. + + +I use encryption so to fsck the root partition, I have to use `cryptsetup` first: + +```bash +$ sudo cryptsetup open /dev/sda2 mobian # it asks for my passphrase +$ file /dev/mapper/mobian # That's the unencrypted view of my partition +/dev/mapper/mobian: symbolic link to ../dm-0 +$ sudo fdisk -l /dev/mapper/mobian # Just out of curiosity +Disk /dev/mapper/mobian : 28.47 GiB, 30574379008 octets, 59715584 secteurs +$ sudo fsck /dev/mapper/mobian # Running fsck manually! +fsck from util-linux 2.38.1 +e2fsck 1.46.6-rc1 (12-Sep-2022) +root contains a file system with errors, check forced. +[many many errors] +$ sudo mount /dev/mapper/mobian /mnt # To check if it works +$ ls /mnt # Yeah! +bin boot dev etc home lib lost+found media mnt opt proc root run sbin srv sys tmp usr var +$ sudo umount /mnt +$ sudo cryptsetup close mobian +``` + +It looks OK, let's reboot the phone... + +It works!!! + +I know, your grandma would not be able to do fix it that way (mine +neither), but I'm still very happy to be able to fix my phone myself +when it has issues. + +What would people do when a phone does no longer boot? Buy another?