Skip to content

Commit 60e20e9

Browse files
authored
linux-firmware symlinks fix (open-edge-platform#890)
* update linux firmware * update linux firmware
1 parent 464a3b8 commit 60e20e9

1 file changed

Lines changed: 53 additions & 12 deletions

File tree

SPECS/linux-firmware/linux-firmware.spec

Lines changed: 53 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Summary: Linux Firmware
22
Name: linux-firmware
33
Version: 20260309
4-
Release: 2%{?dist}
4+
Release: 3%{?dist}
55
License: GPL+ AND GPLv2+ AND MIT AND Redistributable, no modification permitted
66
Vendor: Intel Corporation
77
Distribution: Edge Microvisor Toolkit
@@ -79,18 +79,37 @@ Firmware for Intel QAT controller.
7979
%build
8080

8181
%install
82+
# Use upstream copy-firmware.sh to install all firmware files and symlinks from WHENCE
8283
mkdir -p %{buildroot}%{_firmwarepath}
83-
cp -r bnx2x %{buildroot}%{_firmwarepath}
84-
cp -r qed %{buildroot}%{_firmwarepath}
85-
cp -r brcm %{buildroot}%{_firmwarepath}
86-
cp -r rsi %{buildroot}%{_firmwarepath}
87-
cp rsi_91x.fw %{buildroot}%{_firmwarepath}
88-
cp -r ath10k %{buildroot}%{_firmwarepath}
89-
cp -r i915 %{buildroot}%{_firmwarepath}
90-
cp -r xe %{buildroot}%{_firmwarepath}
91-
cp -r intel %{buildroot}%{_firmwarepath}
92-
# While upgrading, check the ice version and update accordingly
93-
ln -sf ice-1.3.43.0.pkg %{buildroot}%{_firmwarepath}/intel/ice/ddp/ice.pkg
84+
./copy-firmware.sh %{buildroot}%{_firmwarepath}
85+
86+
# Remove firmware we don't package to keep the RPM size down
87+
# Keep only: bnx2x brcm qed rsi ath10k i915 xe intel
88+
find %{buildroot}%{_firmwarepath} -maxdepth 1 \
89+
! -name firmware \
90+
! -name bnx2x ! -name brcm ! -name qed ! -name rsi ! -name rsi_91x.fw \
91+
! -name ath10k ! -name i915 ! -name xe ! -name intel \
92+
-exec rm -rf {} +
93+
94+
# Re-create root-level compat symlinks for firmware the kernel loads by legacy name.
95+
# copy-firmware.sh creates these from WHENCE, but the cleanup above removes them.
96+
# Only create symlinks for firmware prefixes listed in our %files sections.
97+
for pattern in iwlwifi-8000C iwlwifi-so-a0-gf-a0 iwlwifi-ma-b0-gf-a0 \
98+
iwlwifi-sc-a0-wh-b0 iwlwifi-ty-a0-gf-a0 iwlwifi-9000 \
99+
iwlwifi-9260 iwlwifi-bz-b0-gf-a0 iwlwifi-gl-c0-fm-c0; do
100+
for f in %{buildroot}%{_firmwarepath}/intel/iwlwifi/${pattern}*; do
101+
[ -f "$f" ] || continue
102+
base=$(basename "$f")
103+
ln -s "intel/iwlwifi/$base" "%{buildroot}%{_firmwarepath}/$base"
104+
done
105+
done
106+
107+
# QAT root-level compat symlinks (kernel modules request e.g. "qat_4xxx.bin")
108+
for f in %{buildroot}%{_firmwarepath}/intel/qat/qat_*.bin; do
109+
[ -f "$f" ] || continue
110+
base=$(basename "$f")
111+
ln -s "intel/qat/$base" "%{buildroot}%{_firmwarepath}/$base"
112+
done
94113

95114
%post qat
96115
dracut --force
@@ -102,6 +121,7 @@ dracut --force
102121
%{_firmwarepath}/rsi
103122
%{_firmwarepath}/rsi_91x.fw
104123
%{_firmwarepath}/intel/iwlwifi/iwlwifi-8000C-*.ucode
124+
%{_firmwarepath}/iwlwifi-8000C-*
105125

106126
%files broadcom
107127
%defattr(-,root,root)
@@ -172,6 +192,20 @@ dracut --force
172192
%{_firmwarepath}/intel/iwlwifi/iwlwifi-9260-*.ucode
173193
%{_firmwarepath}/intel/iwlwifi/iwlwifi-bz-b0-gf-a0-100.ucode
174194
%{_firmwarepath}/intel/iwlwifi/iwlwifi-gl-c0-fm-c0-100.ucode
195+
# Root-level compat symlinks for kernel firmware loader
196+
%{_firmwarepath}/iwlwifi-so-a0-gf-a0-*
197+
%{_firmwarepath}/iwlwifi-so-a0-gf-a0.pnvm
198+
%{_firmwarepath}/iwlwifi-ma-b0-gf-a0-*
199+
%{_firmwarepath}/iwlwifi-ma-b0-gf-a0.pnvm
200+
%{_firmwarepath}/iwlwifi-sc-a0-wh-b0-*
201+
%{_firmwarepath}/iwlwifi-ty-a0-gf-a0-*
202+
%{_firmwarepath}/iwlwifi-ty-a0-gf-a0.pnvm
203+
%{_firmwarepath}/iwlwifi-9000-*
204+
%{_firmwarepath}/iwlwifi-9260-*
205+
%{_firmwarepath}/iwlwifi-bz-b0-gf-a0-*
206+
%{_firmwarepath}/iwlwifi-bz-b0-gf-a0.pnvm
207+
%{_firmwarepath}/iwlwifi-gl-c0-fm-c0-*
208+
%{_firmwarepath}/iwlwifi-gl-c0-fm-c0.pnvm
175209

176210
%files ice
177211
%defattr(-,root,root)
@@ -193,8 +227,15 @@ dracut --force
193227
%{_firmwarepath}/intel/qat/qat_c3xxx_mmp.bin
194228
%{_firmwarepath}/intel/qat/qat_c62x.bin
195229
%{_firmwarepath}/intel/qat/qat_c62x_mmp.bin
230+
# Root-level compat symlinks for kernel firmware loader
231+
%{_firmwarepath}/qat_*.bin
196232

197233
%changelog
234+
* Wed Apr 15 2026 Andy <andy.peng@intel.com> - 20260309-3
235+
- Use upstream copy-firmware.sh to install firmware with proper symlinks.
236+
- Fixes missing ibt-19-* Bluetooth firmware symlinks.
237+
- Add root-level iwlwifi-* and qat_* compat symlinks so kernel can find firmware.
238+
198239
* Fri Apr 3 2026 Andy <andy.peng@intel.com> - 20260309-2
199240
- Include more i915 xe file from firmware.
200241

0 commit comments

Comments
 (0)