added playbook
This commit is contained in:
		
					parent
					
						
							
								92fefce0a7
							
						
					
				
			
			
				commit
				
					
						2be67271e9
					
				
			
		
					 13 changed files with 368 additions and 1 deletions
				
			
		
							
								
								
									
										62
									
								
								IMAGE.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								IMAGE.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,62 @@
 | 
				
			||||||
 | 
					# Building a Mobian Image for the Pixel 3a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Prerequisites
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Cloning the repositories
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Kernel: https://salsa.debian.org/erebion/sdm-670-linux
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Mobian Recipes does not have the changes merged, as the kernel is not yet part of Mobian: https://salsa.debian.org/Mobian-team/mobian-recipes/-/merge_requests/113
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Take my temporary fork of Mobian Recipes instead, for now: https://salsa.debian.org/erebion/mobian-recipes/-/tree/erebion/sargo-build?ref_type=heads
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The fork will be maintained until there are official Mobian images for the Pixel 3a.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Compiling the Kernel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					First `cd` to the kernel repo.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Then:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					gbp pq import # import the patches to a patch-queue branch with the patches applied
 | 
				
			||||||
 | 
					ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make defconfig sdm845.config sdm670.config usb-gadget.config # make kernel config, usb-gadget ist required for SSH via USB Cable
 | 
				
			||||||
 | 
					ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make -j$(nproc) bindeb-pkg # make Kernel deb (one directory level up)
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Building the Image
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					First `cd` to the Mobian repo.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Copy the kernel deb to `devices/qcom/packages`, so that it gets installed onta the image we are about to build.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Temporary workarounds:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Comment `loupe` in `include/packages-phosh.yaml` as that is currently not available in the repo. The image viewer can be installed later.
 | 
				
			||||||
 | 
					- Comment `mobian-phosh` because of a broken dependency and insert `phosh-core`, the metapackage just installs things like an XMPP client and nothing important we couldn't install later.
 | 
				
			||||||
 | 
					- Add your SSH authorized keys file to `overlays/ssh/authorized_keys`, important so you can log in later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					./build.sh -t qcom -s -u mobian | tee mobian-build.log # -s for SSH, which we need later
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(If you replace `mobian` with your own username, you will have to use that one for SSH later, of course)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Wait. It takes a while. Make sure the internet connection is stable, as the build fails if it cannot download all packages successfully.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Note: Your SSH Host Keys currently get generated while building the image, please don't give your image to anyone else.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Flash to device:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					fastboot --set-active --slot a
 | 
				
			||||||
 | 
					fastboot flash boot_a mobian-qcom-phosh-20240614.boot-bonito-sdc.img
 | 
				
			||||||
 | 
					fastboot flash userdata mobian-qcom-phosh-20240614.rootfs.img 
 | 
				
			||||||
 | 
					fastboot erase dtbo
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Boot up the device. Connect it via USB.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Temporary manual changes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Documented in README.md in this repo.
 | 
				
			||||||
							
								
								
									
										32
									
								
								README.md
									
										
									
									
									
								
							
							
						
						
									
										32
									
								
								README.md
									
										
									
									
									
								
							| 
						 | 
					@ -1,3 +1,33 @@
 | 
				
			||||||
# sargo-temp
 | 
					# sargo-temp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Temporary fixes that make Mobian work on sargo
 | 
					Temporary fixes that make Mobian work on sargo.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Please note that the MIT license does not apply to `qcom-firmware`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## What to do
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Build Image
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Instructions can be found in IMAGE.md in this repo.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Flash image
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					First flash the image. Boot the phone.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Connect via SSH: `ssh mobian@10.66.0.1`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Accept the host key.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Roll out workarounds using Ansible
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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`
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										6
									
								
								ansible/ansible.cfg
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ansible/ansible.cfg
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,6 @@
 | 
				
			||||||
 | 
					[defaults]
 | 
				
			||||||
 | 
					ansible_ssh_user=mobian
 | 
				
			||||||
 | 
					become=true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[ssh_connection]
 | 
				
			||||||
 | 
					pipelining = True
 | 
				
			||||||
							
								
								
									
										1
									
								
								ansible/audio.sh
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										1
									
								
								ansible/audio.sh
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					ansible-playbook --ask-become-pass --become -i 10.66.0.1, audio.yml
 | 
				
			||||||
							
								
								
									
										101
									
								
								ansible/audio.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										101
									
								
								ansible/audio.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,101 @@
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- hosts: 10.66.0.1
 | 
				
			||||||
 | 
					  tasks:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ### ALSA Config ###
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: "Download https://gitlab.com/sdm670-mainline/alsa-ucm-conf/-/archive/master/alsa-ucm-conf-master.tar.gz"
 | 
				
			||||||
 | 
					      ansible.builtin.get_url:
 | 
				
			||||||
 | 
					        url: "https://gitlab.com/sdm670-mainline/alsa-ucm-conf/-/archive/master/alsa-ucm-conf-master.tar.gz"
 | 
				
			||||||
 | 
					        dest: /root/alsa-ucm-conf-master.tar.gz
 | 
				
			||||||
 | 
					        mode: '0440'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: "Remove alsa ucm configs"
 | 
				
			||||||
 | 
					      ansible.builtin.file:
 | 
				
			||||||
 | 
					        path: "/usr/share/alsa/{{ item }}"
 | 
				
			||||||
 | 
					        state: absent
 | 
				
			||||||
 | 
					      loop:
 | 
				
			||||||
 | 
					        - ucm
 | 
				
			||||||
 | 
					        - ucm2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: "Unpack alsa-ucm-conf-master.tar.gz to /usr/share/alsa"
 | 
				
			||||||
 | 
					      ansible.builtin.shell: |
 | 
				
			||||||
 | 
					        tar xvzf /root/alsa-ucm-conf-master.tar.gz -C /usr/share/alsa --strip-components=1 --wildcards "*/ucm" "*/ucm2"
 | 
				
			||||||
 | 
					      args:
 | 
				
			||||||
 | 
					        chdir: /usr/share/alsa
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ### Call Audio ###
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: "Install gcc, git, libdbus-1-dev, libdbus-cpp-dev and make"
 | 
				
			||||||
 | 
					      ansible.builtin.apt:
 | 
				
			||||||
 | 
					        pkg:
 | 
				
			||||||
 | 
					          - gcc
 | 
				
			||||||
 | 
					          - git
 | 
				
			||||||
 | 
					          - libdbus-1-dev
 | 
				
			||||||
 | 
					          - libdbus-cpp-dev
 | 
				
			||||||
 | 
					          - make
 | 
				
			||||||
 | 
					        state: present
 | 
				
			||||||
 | 
					        update_cache: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: "Clone tinyalsa repo"
 | 
				
			||||||
 | 
					      ansible.builtin.git:
 | 
				
			||||||
 | 
					        repo: 'https://github.com/tinyalsa/tinyalsa.git'
 | 
				
			||||||
 | 
					        dest: /opt/tinyalsa
 | 
				
			||||||
 | 
					        version: master
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: "Compile tinyalsa"
 | 
				
			||||||
 | 
					      community.general.make:
 | 
				
			||||||
 | 
					        chdir: /opt/tinyalsa
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: "Install tinyalsa"
 | 
				
			||||||
 | 
					      community.general.make:
 | 
				
			||||||
 | 
					        chdir: /opt/tinyalsa
 | 
				
			||||||
 | 
					        target: install
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: "Run ldconfig"
 | 
				
			||||||
 | 
					      ansible.builtin.command: /sbin/ldconfig
 | 
				
			||||||
 | 
					      args:
 | 
				
			||||||
 | 
					        chdir: /opt/tinyalsa
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: "Clone q6voiced repo"
 | 
				
			||||||
 | 
					      ansible.builtin.git:
 | 
				
			||||||
 | 
					        repo: 'https://gitlab.com/postmarketOS/q6voiced'
 | 
				
			||||||
 | 
					        dest: /opt/q6voiced
 | 
				
			||||||
 | 
					        version: master
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: "Compile q6voiced"
 | 
				
			||||||
 | 
					      ansible.builtin.shell:
 | 
				
			||||||
 | 
					        cmd: "gcc $(pkg-config --cflags dbus-1) q6voiced.c -o q6voiced -ltinyalsa -ldbus-1 -ldl"
 | 
				
			||||||
 | 
					      args:
 | 
				
			||||||
 | 
					        chdir: /opt/q6voiced
 | 
				
			||||||
 | 
					        creates: /opt/q6voiced/q6voiced
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: "Create /etc/q6voiced.conf"
 | 
				
			||||||
 | 
					      ansible.builtin.copy:
 | 
				
			||||||
 | 
					        src: q6voiced.conf
 | 
				
			||||||
 | 
					        dest: /etc/q6voiced.conf
 | 
				
			||||||
 | 
					        owner: root
 | 
				
			||||||
 | 
					        group: root
 | 
				
			||||||
 | 
					        mode:  u+rwx
 | 
				
			||||||
 | 
					        force: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: "Create q6voiced-temp.service"
 | 
				
			||||||
 | 
					      ansible.builtin.copy:
 | 
				
			||||||
 | 
					        src: q6voiced-temp.service
 | 
				
			||||||
 | 
					        dest: /etc/systemd/system/q6voiced-temp.service
 | 
				
			||||||
 | 
					        owner: root
 | 
				
			||||||
 | 
					        group: root
 | 
				
			||||||
 | 
					        mode:  u+rwx
 | 
				
			||||||
 | 
					        force: true
 | 
				
			||||||
 | 
					      register: unit
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: Reload systemd units
 | 
				
			||||||
 | 
					      ansible.builtin.systemd:
 | 
				
			||||||
 | 
					        daemon_reload: yes
 | 
				
			||||||
 | 
					      when: unit.changed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: "Enable custom service unit for q6voiced"
 | 
				
			||||||
 | 
					      ansible.builtin.service:
 | 
				
			||||||
 | 
					        enabled: true
 | 
				
			||||||
 | 
					        name: "q6voiced-temp.service"
 | 
				
			||||||
							
								
								
									
										5
									
								
								ansible/files/bluetooth-mac.bash
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								ansible/files/bluetooth-mac.bash
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,5 @@
 | 
				
			||||||
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					set -x
 | 
				
			||||||
 | 
					rfkill unblock bluetooth
 | 
				
			||||||
 | 
					echo $"stdin for btmgmt" | btmgmt -i hci0 public-addr $(hciconfig hci0 | grep -o $"[[:xdigit:]:]\\{11,17\\}")'
 | 
				
			||||||
 | 
					# btmgmt requires stdin, so we feed it some garbage...
 | 
				
			||||||
							
								
								
									
										1
									
								
								ansible/files/bluetooth-udev.rules
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								ansible/files/bluetooth-udev.rules
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					ACTION=="add", SUBSYSTEM=="bluetooth", KERNEL=="hci0", RUN+="/opt/bluetooth-mac.bash"
 | 
				
			||||||
							
								
								
									
										15
									
								
								ansible/files/droid-juicer-sdm670.service
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								ansible/files/droid-juicer-sdm670.service
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,15 @@
 | 
				
			||||||
 | 
					[Unit]
 | 
				
			||||||
 | 
					Description=Android vendor firmware extraction
 | 
				
			||||||
 | 
					Wants=sysinit.target make-dynpart-mappings@system_a.service
 | 
				
			||||||
 | 
					After=-.mount tmp.mount boot.mount make-dynpart-mappings@system_a.service
 | 
				
			||||||
 | 
					Before=plymouth-quit.service display-manager.service
 | 
				
			||||||
 | 
					ConditionPathExists=!/var/lib/droid-juicer/status.json
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[Service]
 | 
				
			||||||
 | 
					Type=oneshot
 | 
				
			||||||
 | 
					ExecStartPre=-/usr/bin/plymouth display-message --text="Extracting binary firmware..."
 | 
				
			||||||
 | 
					ExecStart=/usr/bin/droid-juicer
 | 
				
			||||||
 | 
					ExecStartPost=/usr/sbin/reboot
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[Install]
 | 
				
			||||||
 | 
					WantedBy=basic.target
 | 
				
			||||||
							
								
								
									
										12
									
								
								ansible/files/q6voiced-temp.service
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								ansible/files/q6voiced-temp.service
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,12 @@
 | 
				
			||||||
 | 
					[Unit]
 | 
				
			||||||
 | 
					Description=q6voiced routes call audio between modem and audio device
 | 
				
			||||||
 | 
					After=dbus.service
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[Service]
 | 
				
			||||||
 | 
					EnvironmentFile=/etc/q6voiced.conf
 | 
				
			||||||
 | 
					ExecStart=/opt/q6voiced/q6voiced hw:${q6voice_card},${q6voice_device}
 | 
				
			||||||
 | 
					User=nobody
 | 
				
			||||||
 | 
					Group=audio
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[Install]
 | 
				
			||||||
 | 
					WantedBy=multi-user.target
 | 
				
			||||||
							
								
								
									
										2
									
								
								ansible/files/q6voiced.conf
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								ansible/files/q6voiced.conf
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,2 @@
 | 
				
			||||||
 | 
					q6voice_card=0
 | 
				
			||||||
 | 
					q6voice_device=4
 | 
				
			||||||
							
								
								
									
										64
									
								
								ansible/files/qcom-firmware
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								ansible/files/qcom-firmware
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,64 @@
 | 
				
			||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					set -e
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PREREQS=""
 | 
				
			||||||
 | 
					case $1 in
 | 
				
			||||||
 | 
					    prereqs) echo "${PREREQS}"; exit 0;;
 | 
				
			||||||
 | 
					esac
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					. /usr/share/initramfs-tools/hook-functions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Fetch the device parameters
 | 
				
			||||||
 | 
					for x in $(cat /proc/cmdline); do
 | 
				
			||||||
 | 
					    case $x in
 | 
				
			||||||
 | 
					        mobile.qcomsoc=*) QCOMSOC="${x#mobile.qcomsoc=}" ;;
 | 
				
			||||||
 | 
					        mobile.model=*) MODEL="${x#mobile.model=}" ;;
 | 
				
			||||||
 | 
					    esac
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ "${QCOMSOC}" ] && [ "${MODEL}" ]; then
 | 
				
			||||||
 | 
					    # Special case for the OnePlus 6 & 6T: both models use the same
 | 
				
			||||||
 | 
					    # firmware folder: sdm845/oneplus6
 | 
				
			||||||
 | 
					    if [ "${MODEL}" = "enchilada" ] || [ "${MODEL}" = "fajita" ]; then
 | 
				
			||||||
 | 
					        MODEL="oneplus6"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					    # Special case for the "fp4" (Fairphone 4): this model uses the
 | 
				
			||||||
 | 
					    # "fairphone4" firmware folder
 | 
				
			||||||
 | 
					    if [ "${MODEL}" = "fp4" ]; then
 | 
				
			||||||
 | 
					        MODEL="fairphone4"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					    # Special case for "bonito" (Pixel 3a XL): this model uses the "sargo" (Pixel 3a) firmware folders
 | 
				
			||||||
 | 
					    if [ "${MODEL}" = "bonito" ]; then
 | 
				
			||||||
 | 
					        MODEL="sargo"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    FW_LIST="${QCOMSOC}/${MODEL}/adsp.mbn \
 | 
				
			||||||
 | 
					             ${QCOMSOC}/${MODEL}/cdsp.mbn \
 | 
				
			||||||
 | 
					             ${QCOMSOC}/${MODEL}/ipa_fws.mbn"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    FW_RADIO="ath10k/WCN3990/hw1.0/board-2.bin \
 | 
				
			||||||
 | 
					              qca/${MODEL}/crnv21.bin \
 | 
				
			||||||
 | 
					              qca/crbtfw21.tlv \
 | 
				
			||||||
 | 
					              qca/crnv21.bin"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if [ "${QCOMSOC}" = "qcom/sdm845" ]; then
 | 
				
			||||||
 | 
					        FW_LIST="${FW_LIST} \
 | 
				
			||||||
 | 
					                 ${QCOMSOC}/${MODEL}/a630_zap.mbn"
 | 
				
			||||||
 | 
					    elif [ "${QCOMSOC}" = "qcom/sm7225" ] || [ "${QCOMSOC}" = "qcom/sdm670" ]; then
 | 
				
			||||||
 | 
					        FW_LIST="${FW_LIST} \
 | 
				
			||||||
 | 
					                 ${QCOMSOC}/${MODEL}/a615_zap.mbn"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    FW_LIST="${FW_LIST} ${FW_RADIO}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for fwfile in ${FW_LIST}; do
 | 
				
			||||||
 | 
					        if [ -f "/lib/firmware/updates/${version?}/${fwfile}" ] ||
 | 
				
			||||||
 | 
					           [ -f "/lib/firmware/updates/${fwfile}" ]             ||
 | 
				
			||||||
 | 
					           [ -f "/lib/firmware/${version}/${fwfile}" ]          ||
 | 
				
			||||||
 | 
					           [ -f "/lib/firmware/${fwfile}" ]; then
 | 
				
			||||||
 | 
					            add_firmware "${fwfile}"
 | 
				
			||||||
 | 
					        else
 | 
				
			||||||
 | 
					            echo "I: Ignoring missing firmware ${fwfile}"
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					    done
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
							
								
								
									
										1
									
								
								ansible/workarounds.sh
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										1
									
								
								ansible/workarounds.sh
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					ansible-playbook --ask-become-pass --become -i 10.66.0.1, workarounds.yml
 | 
				
			||||||
							
								
								
									
										67
									
								
								ansible/workarounds.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								ansible/workarounds.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,67 @@
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- hosts: 10.66.0.1,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  tasks:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ### Various Small Fixes ###
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: "Copy /usr/share/initramfs-tools/hooks/qcom-firmware"
 | 
				
			||||||
 | 
					      ansible.builtin.copy:
 | 
				
			||||||
 | 
					        src: qcom-firmware
 | 
				
			||||||
 | 
					        dest: /usr/share/initramfs-tools/hooks/qcom-firmware
 | 
				
			||||||
 | 
					        owner: root
 | 
				
			||||||
 | 
					        group: root
 | 
				
			||||||
 | 
					        mode:  u+rwx
 | 
				
			||||||
 | 
					        force: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Has been merged, but package did not have a new release yet
 | 
				
			||||||
 | 
					    # https://salsa.debian.org/DebianOnMobile-team/qcom-phone-utils/-/merge_requests/2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: "Copy custom droid-juicer service unit"
 | 
				
			||||||
 | 
					      ansible.builtin.copy:
 | 
				
			||||||
 | 
					        src: droid-juicer-sdm670.service
 | 
				
			||||||
 | 
					        dest: /etc/systemd/system/droid-juicer-sdm670.service
 | 
				
			||||||
 | 
					        owner: root
 | 
				
			||||||
 | 
					        group: root
 | 
				
			||||||
 | 
					        mode:  u+rwx
 | 
				
			||||||
 | 
					        force: true
 | 
				
			||||||
 | 
					      register: unit
 | 
				
			||||||
 | 
					    # Original unit has a hardcoded value, we'll just use our own temporarily
 | 
				
			||||||
 | 
					    # https://gitlab.com/mobian1/droid-juicer/-/issues/4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: Reload systemd units
 | 
				
			||||||
 | 
					      ansible.builtin.systemd:
 | 
				
			||||||
 | 
					        daemon_reload: yes
 | 
				
			||||||
 | 
					      when: unit.changed
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					    - name: "Disable regular service unit for droid-juicer"
 | 
				
			||||||
 | 
					      ansible.builtin.service:
 | 
				
			||||||
 | 
					        enabled: false
 | 
				
			||||||
 | 
					        masked: true
 | 
				
			||||||
 | 
					        name: "droid-juicer.service"  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: "Enable custom service unit for droid-juicer"
 | 
				
			||||||
 | 
					      ansible.builtin.service:
 | 
				
			||||||
 | 
					        enabled: true
 | 
				
			||||||
 | 
					        name: "droid-juicer-sdm670.service"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ### Bluetooth ###
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: "Copy /opt/bluetooth-mac.bash"
 | 
				
			||||||
 | 
					      ansible.builtin.copy:
 | 
				
			||||||
 | 
					        src: bluetooth-mac.bash
 | 
				
			||||||
 | 
					        dest: /opt/bluetooth-mac.bash
 | 
				
			||||||
 | 
					        owner: root
 | 
				
			||||||
 | 
					        group: root
 | 
				
			||||||
 | 
					        mode:  u+rwx
 | 
				
			||||||
 | 
					        force: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: "Copy /etc/udev/rules.d/bluetooth.rules"
 | 
				
			||||||
 | 
					      ansible.builtin.copy:
 | 
				
			||||||
 | 
					        src: bluetooth-udev.rules
 | 
				
			||||||
 | 
					        dest: /etc/udev/rules.d/bluetooth.rules
 | 
				
			||||||
 | 
					        owner: root
 | 
				
			||||||
 | 
					        group: root
 | 
				
			||||||
 | 
					        mode:  u+rwx
 | 
				
			||||||
 | 
					        force: true
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue