I had this wrong. The claim that accelerated graphics works on the firmware Fedora ships does not survive contact with the device tree. Fedora does package an sdm845/a630_zap.mbn, which is what led me astray, but that is the generic Snapdragon 845 zap shader. The C630's node in sdm850-lenovo-yoga-c630.dts names qcom/sdm850/LENOVO/81JL/qcdxkmsuc850.mbn specifically — model-signed, present only in the machine's Windows partition. Until it is supplied the display is unaccelerated. Also add qcslpi850.mbn and qcvss850.mbn, which were missing entirely, and attribute the sensor hub to slpi_pas rather than cdsp_pas. The list is now every firmware-name property in the mainline device tree rather than a recollection of forum posts, so it should be complete: eight files, not five. WiFi and Bluetooth are unaffected — ath10k WCN3990 including wlanmdsp.mbn is genuinely redistributable and genuinely shipped. Add a section on locating the blobs on an old backup, for the case where Windows is long gone from the machine. Only comments changed in config/packages/base.pkgs, so the package set hashes identically and the staged base stays valid. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XWRjNJMistCy6ngXH5aJLS
54 lines
1.8 KiB
Bash
Executable File
54 lines
1.8 KiB
Bash
Executable File
#!/usr/bin/bash
|
|
#
|
|
# Pull the model-specific Qualcomm blobs off this machine's Windows partition.
|
|
#
|
|
# Fedora ships everything for the C630 that Qualcomm allows to be
|
|
# redistributed, which covers ath10k WCN3990 (WiFi/Bluetooth) outright. What it
|
|
# cannot ship is the per-model signed firmware, which is signed against this
|
|
# machine's own keys and lives only in its Windows install.
|
|
#
|
|
# Without those you lose accelerated graphics, audio, the sensor hub (lid
|
|
# switch, accelerometer, auto-rotate) and hardware video decode.
|
|
#
|
|
# Graphics is the surprising one. The generic Adreno 630 pieces are packaged,
|
|
# but this device's tree asks for a model-signed zap shader —
|
|
# qcom/sdm850/LENOVO/81JL/qcdxkmsuc850.mbn — and Fedora's generic
|
|
# sdm845/a630_zap.mbn is a different device's file.
|
|
|
|
set -euo pipefail
|
|
|
|
if [ "$(id -u)" -ne 0 ]; then
|
|
echo "c630-firmware: needs root — try: sudo c630-firmware" >&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "Looking for a Windows installation to extract firmware from..."
|
|
echo
|
|
|
|
if ! command -v qcom-firmware-extract >/dev/null; then
|
|
echo "qcom-firmware-extract is not installed. Install it with:" >&2
|
|
echo " sudo dnf install qcom-firmware-extract" >&2
|
|
exit 1
|
|
fi
|
|
|
|
qcom-firmware-extract "$@"
|
|
|
|
echo
|
|
echo "Regenerating the initramfs so the DSP firmware is available early..."
|
|
dracut --force --regenerate-all
|
|
|
|
cat <<'EOF'
|
|
|
|
Done. Reboot to pick up the new firmware.
|
|
|
|
If qcom-firmware-extract could not find the Windows partition, mount it by hand
|
|
and point the tool at it:
|
|
|
|
sudo mkdir -p /mnt/windows
|
|
sudo mount /dev/disk/by-partlabel/Windows /mnt/windows # adjust as needed
|
|
sudo qcom-firmware-extract --windows-dir /mnt/windows
|
|
|
|
See docs/firmware.md in the c630 repo for the full file list and the manual
|
|
fallback if the tool does not recognise this model.
|
|
EOF
|