# 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 are `1` or `2` - Watch the RSS feed for this repo to learn when there is something new: - Feed: https://git.erebion.eu/forgejo/erebion/sargo-temp.rss ## 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 - https://salsa.debian.org/DebianOnMobile-team/qcom-phone-utils/-/commit/4f77281197c6ba1cfc1a82596157d00e8a7e014b (firmware folders) - https://salsa.debian.org/DebianOnMobile-team/qcom-phone-utils/-/commit/9aa29a1d0bd2327e9c74317d516a8aeecf820304 (fixes bootimg generation with LUKS) - https://salsa.debian.org/DebianOnMobile-team/qcom-phone-utils/-/commit/3ddb192b5c78b444065f23647b373ad66ce3617d (fixes on-screen keyboard for LUKS passphrase) - Remove hard-coded value in the `droid-juicer` systemd unit - https://gitlab.com/mobian1/droid-juicer/-/issues/4 - 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 - https://salsa.debian.org/Mobian-team/devices/kernels/qcom-linux/-/issues/3 - upstream: https://source.puri.sm/Librem5/feedbackd/-/merge_requests/139 - Wireplumber config - https://salsa.debian.org/DebianOnMobile-team/qcom-phone-utils/-/merge_requests/6 - 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 - https://salsa.debian.org/Mobian-team/devices/kernels/qcom-linux/-/issues/5 (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-recipes - `droid-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