91 lines
3.3 KiB
Markdown
91 lines
3.3 KiB
Markdown
---
|
||
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?
|