The same happened to me even before this update and it seems to happen to other images as well - see Manjaro generic does not boot on Odroid N2+ - #6 by Firewave
@Firewave that appears to be a different issue. That only affects booting after initial install, whereas the issue with the pinephone pro affects both initial install (from updated images) and updated existing installs.
To avoid the issue on the ppp, please donât update the kernel package (linux-pinephonepro
) past version 6.3 for the time being.
If you need to fresh install, youâll need to use an image that comes with 6.3 instead of 6.4.
@lectrode The initial issue, yes. I just posted mine there as it âseemedâ related and I didnât find anything else related in recent forum posts.
I also just have a PinePhone - not a Pro.
Is there way to fix a broken system? Like putting the 6.3 image back into the root partition it and pointing the boot partition to it?
As mentioned in the other post I have data in there and have not yet been able to access all of it yet because of permissions. /boot for instance is just empty in all the images.
And something off-topic: I also tried to restore the backup to the phone but for some stupid reason it says the file is too big to fit on the same MicroSD I pulled the backup from. Is there some block/sector size stupidity going on here because different filesystems are involved?
Apologies for the delayed response - my focus has been elsewhere of late.
Interesting that you ran into that on a regular Pinephone. I tested the update on mine, and didnât run into any issues. Did you use the installation image for the Pinephone? Or did you try using a different image?
The /boot
folder on both the Pinephone and Pinephone Pro images should be itâs own partition. Unless youâre specifically mounting that other partition at that location, itâs going to be empty. The contents for me are as follows:
boot partition files
BOOT_MNJRO]$ ls -la
total 29504
drwxr-xr-x 3 lectrode lectrode 16384 Dec 31 1969 .
drwxr-x---+ 3 root root 60 Aug 30 03:38 ..
-rw-r--r-- 1 lectrode lectrode 1513 Jul 18 22:04 boot.scr
-rw-r--r-- 1 lectrode lectrode 1441 Jun 8 23:34 boot.txt
drwxr-xr-x 3 lectrode lectrode 8192 Jul 18 22:04 dtbs
-rw-r--r-- 1 lectrode lectrode 174080 Jun 8 23:34 idbloader.img
-rw-r--r-- 1 lectrode lectrode 21336072 Jul 2 03:34 Image
-rw-r--r-- 1 lectrode lectrode 7724215 Jul 18 22:05 initramfs-linux.img
-rw-r--r-- 1 lectrode lectrode 920064 Jun 8 23:34 u-boot.itb
If you have another device of the same architecture (not sure if a pinebook would work - it might), you might be able to mount the partitions of that install, then chroot into it using manjaro-chroot
(part of the manjaro-tools-base-git
package). You would then be able to run the following commands under the context of that install:
sudo pacman -U /var/cache/pacman/pkg/linux-pinephone-6.3.*.zst
sudo mkinitcpio -P
sudo update-grub
(Please note that while Iâve run similar commands on x86_64 systems, I donât have any means of doing this on different architectures and these commands are an educated guess, but untested)
As far as the backup is concerned, how did you take the backup? Was it via dd
? Are you using that to restore it as well? (it looks like dd
should truncate âextraâ image data by default when writing it to âsmallerâ physical storage)
My PinePhone Pro wouldnât boot either after updating but I was able to recover doing as @lectrode suggested.
Specifically:
- with Tow-boot enter the USB Mass Storage mode by holding the volume up button at startup before and during the second vibration.
- Connect the phone to your PC (Manjaro) and you should have the phone available as an additional disk like the following
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sdb 8:16 1 115.2G 0 disk ââsdb1 8:17 1 457.8M 0 part ââsdb2 8:18 1 114.8G 0 part
-
$ mkdir pinephone
- mount partitions as appropriate
$ sudo mount /dev/sdb2 pinephone/ $ sudo mount /dev/sdb1 pinephone/boot
- install
qemu-user-static
on your PC -
You can remove this after or leave it for next time$ sudo cp /usr/bin/qemu-aarch64-static pinephone/bin/
- Optional: If DNS doesnât work you can hardcode some nameservers with
Might want to clean this up after.$ echo 'nameserver 1.1.1.1' | sudo tee -a pinephone/etc/resolv.conf
- mount host devices (not really sure if theae are strictly necessary but I did it last time too, and truthfully I mounted these at step 4 but should be fine to do it here too)
$ sudo mount -t proc proc pinephone/proc $ sudo mount -t sysfs sys pinephone/sys $ sudo mount -o bind /dev pinephone/dev
- chroot this will open a bash shell to execute the following commands in
$ sudo chroot pinephone/ /bin/qemu-aarch64-static /bin/bash
- Downgrade the kernel, acording to @lectrode anything about 6.3 will work but I had available and chose the following.
$ pacman -U /var/cache/pacman/pkg/linux-pinephone-6.3.11-1-aarch64.pkg.tar.zst
exit
the chroot- clean up as necessary then
$ sudo umount -fR pinephone
- disconnect the device and reboot.
This made my PinePhone Pro boot again but I seem to have laggy audio and my mic doesnât seem to work in calls anymoreâŚ
Edit: I just needed to reinstall pipewire-pulse
seems it was replaced with the not working pulseaudio
and calls work again
I pushed some new kernel which should fix that issue with PPP.
linux-pinephonepro
6.4.12-0 boots successfully on the ppp. Unfortunately, the wifi adapter is not detected on that kernel (modem seems to be detected - running some tests). Downgrading to the 6.3 series works-around the issue.
@lectrode can you check if this kernel fixes your wifi issue? Pipeline ¡ manjaro-arm / packages / core / linux-pinephonepro ¡ GitLab
Thank you - linux-pinepohonepro
6.4.14-1 from unstable has confirmed working wifi and modem. I havenât come across any further issues with that kernel.
Found a few packages that need a rebuild in both testing and unstable:
Thanks a lot @lectrode and @G-M0N3Y-2503 for the outstanding feedback. Sorry for the late reply, butâŚstuff.
I did all the steps but unfortunately running pacman
fails with bash: /usr/bin/pacman: cannot execute binary file: Exec format error
.
I guess the problem is that the machine I am connecting from is on a x86 architecture.
Update: I was lacking the qemu-user-static-binfmt
package
Update 2:
Okay, that didnât help.
I still had the 6.3.11-1
kernel installed (I knew there wasât an update) so I must have hit another issue.
I tried 6.3.8-1
, 6.3.7-1
and 6.4.14-1
but to no avail.
It is showing the WARNING: No modules were added to the image. This is probably not what you want.
when it builds the initfs images though.
The latest beta14 image which works still has a 6.1
kernel. But that also stops working when I update it to the latest versions.
It appears it is the missing kernel modules. I used the beta14 image and updated the kernel only and it is working. It also does not complain about missing modules when updating the kernel and lsmod
shows a truck load of modules loaded. I cannot figure out where the module configuration is though.
Update: I found and checked countless configuration files, steps and log files - everything is identical. The broken system just doesnât add the module dependencies when building the kernel.
Update 2: It is not an obvious issue with mkinitcpio
either as I âdowngradedâ the script (only the script not the package) with the same result. I need to collect the set -x
output on both systems and figure out what is the difference.
Update 3: It is caused by mkinitcpio
. I updated it (only the script not the package - from version 33 to 36) on the system which was working and it no longer finds the modules. Unfortunately there were lots of changes in the scripts, which makes the diff extremely noisy.
Update 4: Ah - I see. That script is not standalone and has other scripts it depends on. So I have to up/downgrade the whole package. I donât have the older one available (itâs a pain/impossible to somehow get the hold of older packages) and I didnât have working internet on the chroot for some reason although it worked before.
Update 5: I updated the package to version 36 and the issue persists. So it appears to be caused by mkinitcpio
. Unfortunately I donât have the version 33 package to see if a downgrade fixes it.
Update 6: For some reason it is not adding any of the modules. It seems like it is not getting the modules at all!? I cannot figure out where it goes wrong. Thereâs just too many differences.
Does sudo depmod -a
and reboot do anything?
No. It seems it is not the modules. I was able to boot the system even with a kernel which complained about no modules being included.
Interestingly I am getting the warning when I am installing from a local package with pacman -U
but not when I install the same package from the repo via pacman -S
.
Also the kernel is built twice as there is linux-pinephone.hook
and linux.hook
.
I see now. The Warning was with building the initrd image. On some devices that is normal as modules are not needed to set things up to boot since they are built into the kernel. I would say if it boots and lsmod shows modules it is probably ok.
I do not know about your device but does not sound quite right. Sounds like parts of 2 different kernels.
It turns out I was on the completely wrong track. My issues were not related to the kernel at all. The filesystem was corrupt! After I ran fsck
it started working again⌠I came across this by accident because updating a package complained about not being able to write a file.
But now it doesnât start the UI. I just see some debugfs
boot messages and no logs were written at all. I had the same earlier when I updated the beta14 image to the latest packages. So I ran into a different issue nowâŚ
Update: It appears to be the ICU issue. startplasma-wayland
fails with not finding libicui18n.so.72
and icu
is 73.2-2
.
Sounds like yo have the discontinued Qt5-ES2 packages installed.
sudo pacman -S qt5-base qt5-declarative qt5-multimedia pyside2
I just came across that post and resolved the conflicts. Itâs working again!
Thanks for everybody helping out even though it was mainly the wrong track. I (re-)learned a lot of things that will hopefully be helpful in the future.