mobile-nixos/mobile-nixos

Updating the pinephone modem's firmware

sergei-mironov opened this issue · 5 comments

I am trying to update my pinephone modem's firmware to a latest stable version using this guide https://github.com/Biktorgj/quectel_eg25_recovery
Things went well until the last steps. In short - the modem-power driver found in Megi's kernel seems to interrupt the adb reboot edl preventing me from calling the flashing utility (I sent the detailed logs to the upstream issue )

Here I want to ask how to access the u-boot command line to maybe disable the modem-power driver temporary? Btw, why not compile the drivers as modules?

Masking the modem-control service should make qfirehose work, see #347 (comment). It's that service which is triggering modem-power.

Masking the modem-control service should make qfirehose work, see #347 (comment). It's that service which is triggering modem-power.

(the suggestion worked actually, with an addition of echo 2 > /sys/class/modem-power/modem-power/device/powered performed manually)

I dont think so.. :( modem-control essentially does only echo 1 > /sys/class/modem-power/modem-power/device/powered. Masking it would left modem unpowered and invisible for the userspace. And I think now that masking the driver from U-Boot's command line would also just left the modem unpowered. We need to let the driver run the modem and then to disable the driver somehow..

According to logs, qfirehose also tries to enable the EDL mode by itself (so adb reload edl is probably not a mandatory step). But it hits the same issue.

Actually, I think about giving up and shortening those two pins :)

Masking the modem-control service should make qfirehose work, see #347 (comment). It's that service which is triggering modem-power.

Damn, that worked! Okaay)

I dont think so.. :( modem-control essentially does only echo 1 > /sys/class/modem-power/modem-power/device/powered. Masking it would left modem unpowered and invisible for the userspace.

Could you give it a try? Because I tried and was able to flash the firmware. The reason modem-power was trying to power it off at all is because echo 0 > /sys/class/modem-power/modem-power/device/powered gets run when the network interface disappears as qfirehose tries to reset it.

Edit: Just saw your reply. Glad you got it to work!

Note: After disabling the modem-control I still had to power the modem up, but I wrote 2 to the sysfs, not 1. Driver's help said it is a kind of dumb power-up procedure. Maybe this was also important.

echo 2 > /sys/class/modem-power/modem-power/device/powered