Repository navigation
feat: add Xiaomi Mi 10S (thyme) device variant - #27
Merged
Merged
Conversation
added 5 commits
October 25, 2026 10:45
Port Armada to Xiaomi Mi 10S (thyme, SM8250): - kernel-thyme/: build against the community mainline thyme tree (yuweiyuan8/linux-xiaomi-thyme-mainline) with the board config plus Armada runtime fragments; produces the tarball layout 20-install-kernel consumes, including sm8250-xiaomi-thyme DTBs. - device files: bootimg-args / device conf / supported-dtbs entries, disk_config/disk-thyme.toml, and 52-thyme-device-fixes.sh (sshd + RNDIS gadget, Steam offline fallback, permissive SELinux). - firmware: vendor ADSP/CDSP/Venus/SLPI/ZAP (qcom/sm8250/umi), CS35L41 speaker tuning incl. RCV variants, ath11k/QCA6390 WiFi, and QCA BT nv files extracted from the device. - audio: UCM2 for the XIAOMI-UMI-WCD9380-CS35L41-VA-DMIC card. The Mi 10S has an INDEPENDENT earpiece on the WCD938x EAR output -- it is not the top speaker -- so the Earpiece device routes through the RX_CODEC_DMA_RX_0 backend (rxmacro INT0 -> HPHL_OUT -> IN1_HPHL -> RX1 -> RDAC3 -> EAR) with 'RX_EAR Mode Switch' as the critical enable, instead of the CS35L41 right amp. Voice Call uses the RX_CODEC_DMA_RX_0 CS-Voice mixer. Keep 'RX HPH Mode' at the driver default: the stock CLS_H_LOHIFI value is completely silent on this board under the mainline driver. - docs/flashing-xiaomi-thyme.md: flashing guide, known issues (voice call calibration rejected by CVD 2.4, earpiece quality), and the A/B/C earpiece test procedure. - workflows/build-thyme-container.yml + thyme flashable export/test hooks; README/Justfile/Containerfile/device-env updated for the second device.
The thyme board config (sm8250.config) baked an initramfs into the kernel via an absolute path to the porting workstation's sm8250-xiaomi-lmi initramfs checkout, so the CI kernel build failed with 'No rule to make target .../initramfs-sm8250-xiaomi-lmi.cpio.gz'. Vendor the device-validated cpio.gz under kernel-thyme/initramfs/, point CONFIG_INITRAMFS_SOURCE at it by a tree-relative name, and have build.sh stage it into the kernel tree before building. CI and local builds now produce the same kernel the phone was validated with.
kernel-thyme/Containerfile was empty, so 'buildah bud' failed with 'no contents' at the Push kernel image step. Package the kernel-thyme/out/ tarball the same way kernel-sheng does (FROM scratch, ADD out/ /kernel/), which is what the root Containerfile mounts at /packages/kernel.
The thyme workflow's pin had an extra character and transposed digits (...1642'8'c8f0a66'31'... vs the real ...1642c8f0a66'13'...), so the rootfs job died at 'Set up job' with 'unable to find version'.
The root Containerfile's stages are FROM ${XXX_REF} build args. The
thyme workflow never passed them, so buildah died with 'no FROM
statement found' once the rootfs job finally ran.
Resolve every packages/ entry to its upstream content-hash image
(ghcr.io/armada-os/armada/pkg/<pkg>:<hash>, same mechanism as pr.yml)
and feed them via --build-arg-file. This port does not modify
packages/, so upstream tags always apply; fail loudly if one is
missing instead of silently baking a broken stage.
Contributor
Disk image
Downloads as a zip holding |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Port Armada to Xiaomi Mi 10S (thyme, SM8250).
What's included
yuweiyuan8/linux-xiaomi-thyme-mainline) with the board config plus Armada runtime fragments; produces the tarball layout20-install-kernel.shconsumes, includingsm8250-xiaomi-thymeDTBs.disk_config/disk-thyme.toml, and52-thyme-device-fixes.sh(sshd + RNDIS gadget, Steam offline fallback, permissive SELinux).qcom/sm8250/umi), CS35L41 speaker tuning incl. RCV variants, ath11k/QCA6390 WiFi, QCA BT nv files — extracted from the device.XIAOMI-UMI-WCD9380-CS35L41-VA-DMIC:RX_CODEC_DMA_RX_0backend (rxmacro INT0 -> HPHL_OUT -> IN1_HPHL -> RX1 -> RDAC3 -> EAR), withRX_EAR Mode Switchas the critical enable, instead of the CS35L41 right amp.RX_CODEC_DMA_RX_0CS-Voice mixer.RX HPH Modestays at the driver default: the stockCLS_H_LOHIFIvalue is completely silent on this board under the mainline driver (verified on-device).build-thyme-container.yml+ thyme flashable export/test hooks; README/Justfile/Containerfile/device-env updated for the second device.Known issues (documented in docs/flashing-xiaomi-thyme.md)
Tested on-device: boot to GNOME, touchscreen, WiFi, speakers, independent earpiece routing (media), microphone.