6.9 KiB
sargo-temp
Temporary fixes that make Mobian work on sargo.
If you've previously used the instructions from this repo
If you've previously used the instructions from this repo, you should do the following:
- Migrate to the official Mobian kernel packages so you get updates without manually compiling new kernel versions all the time
- Apply my workaround script to get rid of workarounds that are now obsolete
- Note that call audio is still missing in Mobian for the Pixel 3a, for now you can just keep using the audio workarounds from here until the Mobian Project has a better solution
Migrating to the official Mobian kernel package
If you have previously used a self-compiled kernel, you might want to switch to the kernel provided by the Mobian project:
apt update
apt install sdm670-support
reboot
This should also be far more stable than the last version that I pushed to my temporary repo. :D
Build Image
The sdm670-specific kernel is now available from the Mobian repos, it is no longer necessarily to build it yourself.
The image can now be built as follows:
git clone https://salsa.debian.org/Mobian-team/mobian-recipes.git
cd mobian-recipes
git checkout wip/tiol/sdm670images
./build.sh -t sdm670 -s -u mobian -c -R myverysecretlukspassphrase | tee mobian-build.log # -s for SSH, which we need later
Do not use myverysecretlukspassphrase
as your passphrase and replace it, obviously. :D
For now you'll still need the workarounds in this repo to get call audio to work.
Flash image
First flash the image. Boot the phone.
Connect via SSH: ssh mobian@10.66.0.1
Accept the host key.
Note: If you built the image with a different username, you will have to set that in ansible/ansible.cfg
.
Roll out workarounds using Ansible
You have to have ansible-playbook
installed.
Go to the Ansible folder: cd ansible
Roll out workarounds: ./workarounds.sh
Reboot phone via SSH.
Connect to wifi.
Rolling out the workarounds for audio requires installing packages from the repo, so we need an internet connection.
Roll out audio workarounds: ./audio.sh
Note:
- You might have to switch SIM slots if your SIM card is not recognised.
- Command:
mmcli -m any --set-primary-sim-slot=1
, options are1
or2
- Command:
- Watch the RSS feed for this repo to learn when there is something new:
What to do
Project Status
Issues on Debian Salsa
Various issues can be found on Salsa: https://salsa.debian.org/Mobian-team/devices/kernels/qcom-linux/-/issues/?sort=created_date&state=opened&search=sargo%2Fbonito&first_page_size=20
To Do List
- Make installer images work on this device
- Have droid-juicer run on installer images
- Solve call audio (this repo contains a script that builds packages of Tinyalsa and q6voiced and installs those, but this is not the solution that Mobian will adopt)
Issues To Solve To Get Official Mobian Images
To Do:
- Wait for the Merge Request that adds the buld to CI to get merged
Done:
- New release of qcom-phone-utils required so that my patches are available from the repo
4f77281197
(firmware folders)9aa29a1d0b
(fixes bootimg generation with LUKS)3ddb192b5c
(fixes on-screen keyboard for LUKS passphrase)
- Remove hard-coded value in the
droid-juicer
systemd unit - Make sure my
q6voiced
package no longer includes a hard-coded config for this device (known solution, need to implement) - add udev rule for the vibration motor to the right package
- Wireplumber config
- sdm670 Kernel
For those I will remove the workarounds once the changes are in the Mobian repo
Misc Issues
- ALSA config for the device has not been upstreamed yet (can be added using the Playbook in this repo)
- Some people have issues connecting to 5 GHz wifi and/or dual 2.4 GHz/5 GHz wifi, while for others this works perfectly fine
- https://salsa.debian.org/Mobian-team/devices/kernels/qcom-linux/-/issues/6
- Can be worked around by forcing the phone to only use the 2.4 GHz band, for example using
nmtui
, the network settings of GNOME/Phosh are bit too simplistic for that
- Currently no way to switch cameras, only one is usable at a time, requires change in Wireplumber
- https://gitlab.freedesktop.org/pipewire/wireplumber/-/merge_requests/670 <- someone is working on that
- Currently camera is fixed to the closest focus with no way to set photos, so you can only take macro photos :D
Solved:
- Bug in Pipewire that causes issues with the camera: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/4227
- create/find script/tool that brings up Bluetooth & then package it
(This is a non-exhaustive list)
This Works
- booting
- display
- touch
- modem
- plymouth
- battery/charging
- SMS
- mobile data
- wifi
- torch
- suspend
- call audio
- vibration
- Bluetooth™
- full disk encryption
- eSIM (provisioning tool not yet packaged and has to be compiled and installed manually)
- audio (ALSA config not packaged, but can be manually added using the playbook in this repo)
- camera (currently only one camera works at a time, image quality is still not anywhere near Android, driver is work in progress)
This Has An Unknown Status
- Fingerprint Sensor (idk?)
- NFC (should work, does so on pmOS, but untested)
This Does Not Work Yet (Soon™)
- GPS
- USB host mode (no Kernel support yet, but apparently this is being worked on)
- Verified Boot (first need to do research whether this is actually feasible)
This Is Missing And Will Come Later
- accelerometer
- magnetometer
- ambient light sensor
- barometer
The Sources (Use The Source, Luke)
mobian-recipes
, which is used to build images: https://salsa.debian.org/Mobian-team/mobian-recipesdroid-juicer
, which retrieves some important files, such as firmware, from some partitions: https://gitlab.com/mobian1/droid-juicer- postmarketOS wiki: https://wiki.postmarketos.org (lovely folks, thanks for sharing everything you found out the hard way :D)
Thanks For All The Fish
Huge thanks to be sdm670-linux project and flamingradian who did and still does an awful lot of work to make sure the Kernel works on those devices! :)
I don’t know how Kernel development works, so I would have never started porting without this project.
Find that here: https://gitlab.com/sdm670-mainline/linux