- Update to version 20240912 (git commit 47c72fee8fe3):
* amdgpu: Add VPE 6.1.3 microcode * amdgpu: add SDMA 6.1.2 microcode * amdgpu: Add support for PSP 14.0.4 * amdgpu: add GC 11.5.2 microcode * qcom: qcm6490: add ADSP and CDSP firmware * linux-firmware: Update firmware file for Intel Bluetooth Magnetor core * linux-firmware: Update firmware file for Intel BlazarU core * linux-firmware: Update firmware file for Intel Bluetooth Solar core - Temporary fix for the missing symlink installations: copy-firmware-fix-symlink-without-compress.patch - Update to version 20240911 (git commit 59def907425d): * rtl_bt: Update RTL8852B BT USB FW to 0x0447_9301 (bsc#1229272) - Update to version 20240910 (git commit 2a7b69a3fa30): * realtek: rt1320: Add patch firmware of MCU * i915: Update MTL DMC v2.23 * cirrus: cs35l56: Add firmware for Cirrus CS35L54 for some HP laptops OBS-URL: https://build.opensuse.org/package/show/Kernel:HEAD/kernel-firmware?expand=0&rev=500
This commit is contained in:
commit
31cec0f276
40
.gitattributes
vendored
Normal file
40
.gitattributes
vendored
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
## Default LFS
|
||||||
|
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.png filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zst filter=lfs diff=lfs merge=lfs -text
|
||||||
|
## Specific LFS patterns
|
||||||
|
ast_dp501_fw.bin filter=lfs diff=lfs merge=lfs -text
|
||||||
|
iwlwifi-Qu-b0-hr-b0-71.ucode filter=lfs diff=lfs merge=lfs -text
|
||||||
|
iwlwifi-Qu-b0-jf-b0-71.ucode filter=lfs diff=lfs merge=lfs -text
|
||||||
|
iwlwifi-Qu-c0-hr-b0-71.ucode filter=lfs diff=lfs merge=lfs -text
|
||||||
|
iwlwifi-Qu-c0-jf-b0-71.ucode filter=lfs diff=lfs merge=lfs -text
|
||||||
|
iwlwifi-QuZ-a0-hr-b0-71.ucode filter=lfs diff=lfs merge=lfs -text
|
||||||
|
iwlwifi-QuZ-a0-jf-b0-71.ucode filter=lfs diff=lfs merge=lfs -text
|
||||||
|
iwlwifi-cc-a0-71.ucode filter=lfs diff=lfs merge=lfs -text
|
||||||
|
iwlwifi-so-a0-gf-a0-71.ucode filter=lfs diff=lfs merge=lfs -text
|
||||||
|
iwlwifi-so-a0-gf4-a0-71.ucode filter=lfs diff=lfs merge=lfs -text
|
||||||
|
iwlwifi-so-a0-hr-b0-71.ucode filter=lfs diff=lfs merge=lfs -text
|
||||||
|
iwlwifi-so-a0-jf-b0-71.ucode filter=lfs diff=lfs merge=lfs -text
|
||||||
|
iwlwifi-ty-a0-gf-a0-71.ucode filter=lfs diff=lfs merge=lfs -text
|
||||||
|
ql2600_fw.bin filter=lfs diff=lfs merge=lfs -text
|
||||||
|
ql2700_fw.bin filter=lfs diff=lfs merge=lfs -text
|
||||||
|
ql8300_fw.bin filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
.osc
|
117
README.build
Normal file
117
README.build
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
FILES
|
||||||
|
=====
|
||||||
|
|
||||||
|
topicdefs:
|
||||||
|
Definitions of each flavor (topic) and description;
|
||||||
|
the description is filled into spec file
|
||||||
|
|
||||||
|
topicprovs:
|
||||||
|
Additional Provides and Obsoletes of each topic
|
||||||
|
|
||||||
|
topics.list:
|
||||||
|
Mapping between WHENCE entries and topics.
|
||||||
|
Each line consists of two or more items. The first column is
|
||||||
|
the first word of the WHENCE "Driver:" entry line to match.
|
||||||
|
The second column is the topic/flavor, and the rest columns
|
||||||
|
are the module names. If no module name is provided, the same
|
||||||
|
word as the first column is used as the module name.
|
||||||
|
|
||||||
|
The validity with the latest kernel binary packages can be
|
||||||
|
checked with check-topic.py script below.
|
||||||
|
|
||||||
|
licenses.list:
|
||||||
|
List of license files for each WHENCE entry.
|
||||||
|
|
||||||
|
aliases.list:
|
||||||
|
List of module aliases for each module.
|
||||||
|
This is updated by update-alises.py script below.
|
||||||
|
|
||||||
|
extrawhence:
|
||||||
|
Additional WHENCE entries for the own firmware files.
|
||||||
|
|
||||||
|
kernel-firmware.spec.in:
|
||||||
|
The spec file template. Edit this and generate
|
||||||
|
kernel-firmware.spec dynamically via makespec.sh script.
|
||||||
|
|
||||||
|
makespec.sh:
|
||||||
|
A script to combine the spec template and other info into the
|
||||||
|
final kernel-firmware.spec.
|
||||||
|
|
||||||
|
check-topic.py:
|
||||||
|
A program to check the validity of topics.list. Pass the
|
||||||
|
latest WHENCE file and the kernel RPM files to verify.
|
||||||
|
|
||||||
|
update-aliases.py:
|
||||||
|
A program to update aliases.list from the latest kernel RPM
|
||||||
|
files. Pass kernel RPM files as arguments.
|
||||||
|
|
||||||
|
install-split.sh:
|
||||||
|
A helper script to copy the files based on WHENCE like the
|
||||||
|
above, but also to create a file list for each topic in
|
||||||
|
files-$TOPIC file. The installed files are compressed with
|
||||||
|
xz, as well as symlinks.
|
||||||
|
|
||||||
|
list-license.sh:
|
||||||
|
A helper script to add file list entries for the corresponding
|
||||||
|
license files for each topic. It parses licenses.list.
|
||||||
|
|
||||||
|
get_supplements.sh:
|
||||||
|
A helper script to create Supplements entries for each topic
|
||||||
|
from aliases.list above.
|
||||||
|
|
||||||
|
|
||||||
|
MAINTENANCE WORKS
|
||||||
|
=================
|
||||||
|
|
||||||
|
Upon the update of linux-firmware.git
|
||||||
|
-------------------------------------
|
||||||
|
|
||||||
|
update the kernel-firmware tarball as usual:
|
||||||
|
|
||||||
|
% cd linux-firmware
|
||||||
|
% git archive --format=tar --prefix=kernel-firmware-$version/ -v master ./ \
|
||||||
|
| xz -9 -M 4G --check=crc32 -T 4 > /tmp/kernel-firmware-$version.tar.xz
|
||||||
|
|
||||||
|
Run check-topic.py to verify whether new entries are added:
|
||||||
|
|
||||||
|
% python3 ./check-topic.py /somewhere/WHENCE /rpms/kernel-default-*.rpm
|
||||||
|
|
||||||
|
Update topics.list accordingly if new entry was added or updated in
|
||||||
|
WHENCE:
|
||||||
|
|
||||||
|
If new modules are added, update aliases.list as well:
|
||||||
|
|
||||||
|
% python3 ./update-aliases.py /rpms/kernel-default-*.rpm
|
||||||
|
|
||||||
|
After the update of these files, recreate kernel-firmware.spec by
|
||||||
|
makespec.sh script:
|
||||||
|
|
||||||
|
% sh ./makespec.sh 20190712 < kernel-firmware.spec.in > kernel-firmware.spec
|
||||||
|
|
||||||
|
where the argument is the version of the kernel firmware package.
|
||||||
|
|
||||||
|
And, don't forget to update kernel-firmware.changes accordingly.
|
||||||
|
|
||||||
|
|
||||||
|
Upon the update of kernel binary rpms
|
||||||
|
-------------------------------------
|
||||||
|
|
||||||
|
Again, run check-topic.py and update-aliases.py for the new kernel RPM
|
||||||
|
files, and rebuild kernel-firmware.spec.
|
||||||
|
|
||||||
|
|
||||||
|
Adding own firmware binaries
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
The new packaging relies purely on WHENCE file for counting the
|
||||||
|
installed files. You have to either patch WHENCE file or put your own
|
||||||
|
stuff into extrawhence file, at least with "Driver:" and "File"
|
||||||
|
entries. The extrawhence file is concatenated to WHENCE file at
|
||||||
|
building a package.
|
||||||
|
|
||||||
|
|
||||||
|
Creating a new kernel-firmware subpackage flavor
|
||||||
|
------------------------------------------------
|
||||||
|
|
||||||
|
Edit topicdefs file and add the new entry, and update topics.list and
|
||||||
|
licenses.list accordingly (these have to be updated manually).
|
8
_constraints
Normal file
8
_constraints
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<constraints>
|
||||||
|
<hardware>
|
||||||
|
<disk>
|
||||||
|
<size unit="G">8</size>
|
||||||
|
</disk>
|
||||||
|
</hardware>
|
||||||
|
</constraints>
|
||||||
|
|
3
_multibuild
Normal file
3
_multibuild
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<multibuild>
|
||||||
|
<package>uncompressed</package>
|
||||||
|
</multibuild>
|
15
_service
Normal file
15
_service
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<services>
|
||||||
|
<service mode="disabled" name="tar_scm">
|
||||||
|
<param name="url">https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git</param>
|
||||||
|
<param name="scm">git</param>
|
||||||
|
<param name="changesgenerate">enable</param>
|
||||||
|
<param name="filename">kernel-firmware</param>
|
||||||
|
<param name="versionformat">%cd</param>
|
||||||
|
<param name="revision">main</param>
|
||||||
|
</service>
|
||||||
|
<service mode="disabled" name="recompress">
|
||||||
|
<param name="file">*.tar</param>
|
||||||
|
<param name="compression">xz</param>
|
||||||
|
</service>
|
||||||
|
<service mode="disabled" name="set_version"/>
|
||||||
|
</services>
|
4
_servicedata
Normal file
4
_servicedata
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<servicedata>
|
||||||
|
<service name="tar_scm">
|
||||||
|
<param name="url">https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git</param>
|
||||||
|
<param name="changesrevision">47c72fee8fe391504e0da1dd99081d8cd76d8856</param></service></servicedata>
|
5922
aliases.list
Normal file
5922
aliases.list
Normal file
File diff suppressed because it is too large
Load Diff
3
ast_dp501_fw.bin
Normal file
3
ast_dp501_fw.bin
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:d098b33f5bdd3a262e5ac57717ef97b29a9d6fc54db65e5b88bcd31afaa63f58
|
||||||
|
size 26808
|
16
check-topic.py
Normal file
16
check-topic.py
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
#!/usr/bin/python3
|
||||||
|
#
|
||||||
|
# A program to check the validity of topics.list
|
||||||
|
#
|
||||||
|
# usage: check-topic.py WHENCE KERNEL-RPMs...
|
||||||
|
#
|
||||||
|
|
||||||
|
from sys import argv
|
||||||
|
from fwtopics import FWTopics
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
fw = FWTopics()
|
||||||
|
argv.pop(0)
|
||||||
|
fw.parse_whence(argv.pop(0))
|
||||||
|
for arg in argv:
|
||||||
|
fw.scan_firmware(arg, fw.check_module())
|
14
copy-file-ignore-README.patch
Normal file
14
copy-file-ignore-README.patch
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
diff --git a/copy-firmware.sh b/copy-firmware.sh
|
||||||
|
index 1ae1e37c37e5..68fbf83ea650 100755
|
||||||
|
--- a/copy-firmware.sh
|
||||||
|
+++ b/copy-firmware.sh
|
||||||
|
@@ -66,6 +66,9 @@ done
|
||||||
|
|
||||||
|
# shellcheck disable=SC2162 # file/folder name can include escaped symbols
|
||||||
|
grep -E '^(RawFile|File):' WHENCE | sed -E -e 's/^(RawFile|File): */\1 /;s/"//g' | while read k f; do
|
||||||
|
+ case "$f" in
|
||||||
|
+ */README) continue;;
|
||||||
|
+ esac
|
||||||
|
test -f "$f" || continue
|
||||||
|
install -d "$destdir/$(dirname "$f")"
|
||||||
|
$verbose "copying/compressing file $f$compext"
|
21
copy-firmware-fix-symlink-without-compress.patch
Normal file
21
copy-firmware-fix-symlink-without-compress.patch
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
diff --git a/copy-firmware.sh b/copy-firmware.sh
|
||||||
|
index 6757c6ce03a3..fc096dd6daf0 100755
|
||||||
|
--- a/copy-firmware.sh
|
||||||
|
+++ b/copy-firmware.sh
|
||||||
|
@@ -136,9 +136,15 @@ grep -E '^Link:' WHENCE | sed -e 's/^Link: *//g;s/-> //g' | while read f d; do
|
||||||
|
if test -d "$target"; then
|
||||||
|
$verbose "creating link $f -> $d"
|
||||||
|
ln -s "$d" "$destdir/$f"
|
||||||
|
- else
|
||||||
|
+ elif test -f "$target$compext"; then
|
||||||
|
$verbose "creating link $f$compext -> $d$compext"
|
||||||
|
ln -s "$d$compext" "$destdir/$f$compext"
|
||||||
|
+ elif test -f "$target"; then
|
||||||
|
+ $verbose "creating link $f -> $d"
|
||||||
|
+ ln -s "$d" "$destdir/$f"
|
||||||
|
+ else
|
||||||
|
+ $verbose "creating link (not yet existing) $f$compext -> $d$compext"
|
||||||
|
+ ln -s "$d$compext" "$destdir/$f$compext"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
16
extrawhence
Normal file
16
extrawhence
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
--------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Driver: ast - A-Speed graphics driver
|
||||||
|
|
||||||
|
File: ast_dp501_fw.bin
|
||||||
|
|
||||||
|
Generated from header file of xf86-video-ast: MIT/X11 License
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Driver: qla2xxx - QLogic firmware
|
||||||
|
|
||||||
|
File: ql2600_fw.bin
|
||||||
|
File: ql2700_fw.bin
|
||||||
|
File: ql8300_fw.bin
|
||||||
|
|
162
fwtopics.py
Normal file
162
fwtopics.py
Normal file
@ -0,0 +1,162 @@
|
|||||||
|
#!/usr/bin/python3
|
||||||
|
|
||||||
|
import sys, string, os, re, subprocess, tempfile, fnmatch
|
||||||
|
|
||||||
|
class FWTopics(object):
|
||||||
|
def __init__(self):
|
||||||
|
self.topics = {}
|
||||||
|
self.firmwares = {}
|
||||||
|
self.aliases = {}
|
||||||
|
self.modules = {}
|
||||||
|
self.modmap = {}
|
||||||
|
self.dirty = False
|
||||||
|
self.read_topics()
|
||||||
|
|
||||||
|
def kernel_binary_rpm(self, file):
|
||||||
|
file = os.path.basename(file)
|
||||||
|
if not fnmatch.fnmatch(file, 'kernel*.rpm'):
|
||||||
|
return False
|
||||||
|
blacklist = ( '*.noarch.rpm', '*.src.rpm', '*.nosrc.rpm',
|
||||||
|
'*-debuginfo*', '*-debugsource*',
|
||||||
|
'*-devel-*', '*-hmac-*',
|
||||||
|
'kernel-docs*', 'kernel-syms-*' )
|
||||||
|
for p in blacklist:
|
||||||
|
if fnmatch.fnmatch(file, p):
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
||||||
|
def modinfo(self, ko, attr):
|
||||||
|
return subprocess.check_output(['/usr/sbin/modinfo', '-F', attr, ko]).decode('utf-8').split('\n')
|
||||||
|
|
||||||
|
def canon_module(self, name):
|
||||||
|
return re.sub('-', '_', name)
|
||||||
|
|
||||||
|
def read_topics(self):
|
||||||
|
with open('topics.list', 'r') as f:
|
||||||
|
for t in f.read().split('\n'):
|
||||||
|
t.rstrip()
|
||||||
|
if t == '':
|
||||||
|
continue
|
||||||
|
if re.match('#', t):
|
||||||
|
continue
|
||||||
|
l = t.split()
|
||||||
|
first = re.sub(r':$', '', l.pop(0))
|
||||||
|
topic = l.pop(0)
|
||||||
|
self.topics[first] = topic
|
||||||
|
if l == []:
|
||||||
|
m = self.canon_module(first)
|
||||||
|
self.modules[first] = [ m ]
|
||||||
|
self.modmap[m] = topic
|
||||||
|
else:
|
||||||
|
self.modules[first] = []
|
||||||
|
for m in l:
|
||||||
|
m = self.canon_module(m)
|
||||||
|
self.modules[first].append(m)
|
||||||
|
self.modmap[m] = topic
|
||||||
|
# print(first, topic, self.modules[first])
|
||||||
|
|
||||||
|
def read_aliases(self):
|
||||||
|
with open('aliases.list', 'r') as f:
|
||||||
|
for t in f.read().split('\n'):
|
||||||
|
t.rstrip()
|
||||||
|
if t == '':
|
||||||
|
continue
|
||||||
|
l = t.split()
|
||||||
|
module = re.sub(r':$', '', l.pop(0))
|
||||||
|
if self.aliases.get(module) == None:
|
||||||
|
self.aliases[module] = []
|
||||||
|
self.aliases[module].append(l.pop(0))
|
||||||
|
|
||||||
|
def write_aliases(self):
|
||||||
|
if self.dirty:
|
||||||
|
print('updating aliases...')
|
||||||
|
with open('aliases.list', 'w') as f:
|
||||||
|
for t in sorted(self.aliases.keys()):
|
||||||
|
for m in sorted(self.aliases[t]):
|
||||||
|
f.write(t + ': ' + m + '\n')
|
||||||
|
self.dirty = False
|
||||||
|
|
||||||
|
def parse_whence(self, file):
|
||||||
|
with open(file, 'r') as f:
|
||||||
|
for t in f.read().split('\n'):
|
||||||
|
t.rstrip()
|
||||||
|
if t == '':
|
||||||
|
continue
|
||||||
|
if re.match('----', t):
|
||||||
|
first = None
|
||||||
|
elif re.match('Driver:', t):
|
||||||
|
t = re.sub(r'^Driver: *', '', t)
|
||||||
|
first = t.split()[0]
|
||||||
|
first = re.sub(r':.*$', '', first)
|
||||||
|
if self.topics.get(first) == None:
|
||||||
|
print('No matching topic entry for:', t)
|
||||||
|
first = None
|
||||||
|
elif re.match(r'File:', t):
|
||||||
|
if first == None:
|
||||||
|
continue
|
||||||
|
t = re.sub(r'^File: *', '', t)
|
||||||
|
t = re.sub('"', '', t)
|
||||||
|
self.firmwares[t] = first
|
||||||
|
elif re.match(r'Link:', t):
|
||||||
|
if first == None:
|
||||||
|
continue
|
||||||
|
t = re.sub(r'^Link: *', '', t)
|
||||||
|
t = re.sub(r' ->.*$', '', t)
|
||||||
|
t = re.sub('"', '', t)
|
||||||
|
self.firmwares[t] = first
|
||||||
|
|
||||||
|
def check_module(self):
|
||||||
|
def __check_module(ko, name):
|
||||||
|
for f in self.modinfo(ko, 'firmware'):
|
||||||
|
if f == '':
|
||||||
|
continue
|
||||||
|
first = self.firmwares.get(f)
|
||||||
|
if first != None:
|
||||||
|
if self.topics[first] == 'SKIP':
|
||||||
|
continue
|
||||||
|
if not name in self.modules[first]:
|
||||||
|
print('Module', name, 'is missing for', first)
|
||||||
|
print(' firmware:', f)
|
||||||
|
return __check_module
|
||||||
|
|
||||||
|
def update_alias(self):
|
||||||
|
def __update_alias(ko, name):
|
||||||
|
if self.modmap.get(name) != None and self.modmap[name] != 'SKIP':
|
||||||
|
for f in self.modinfo(ko, 'alias'):
|
||||||
|
if f == '':
|
||||||
|
continue
|
||||||
|
if re.match(r'^acpi', f):
|
||||||
|
f = re.sub(r'([^:]*):([^:]*)$', r'\1%3A\2', f)
|
||||||
|
if self.aliases.get(name) == None:
|
||||||
|
self.aliases[name] = []
|
||||||
|
if not f in self.aliases[name]:
|
||||||
|
self.aliases[name].append(f)
|
||||||
|
self.dirty = True
|
||||||
|
print('adding alias', name, f)
|
||||||
|
return __update_alias
|
||||||
|
|
||||||
|
def scan_firmware_dir(self, dir, proc):
|
||||||
|
for root, dirs, files in os.walk(dir):
|
||||||
|
for p in files:
|
||||||
|
ko = os.path.join(root, p)
|
||||||
|
name = re.sub(r'\.xz$', '', p)
|
||||||
|
name = re.sub(r'\.zst$', '', p)
|
||||||
|
if not fnmatch.fnmatch(name, '*.ko'):
|
||||||
|
continue
|
||||||
|
name = re.sub(r'\.ko$', '', name)
|
||||||
|
name = self.canon_module(name)
|
||||||
|
proc(ko, name)
|
||||||
|
|
||||||
|
def scan_firmware_rpm(self, rpm, proc):
|
||||||
|
if not self.kernel_binary_rpm(rpm):
|
||||||
|
return
|
||||||
|
with tempfile.TemporaryDirectory() as dir:
|
||||||
|
subprocess.call('rpm2cpio ' + rpm + ' | cpio -i --make-directories -D ' + dir,
|
||||||
|
shell=True)
|
||||||
|
self.scan_firmware_dir(dir, proc)
|
||||||
|
|
||||||
|
def scan_firmware(self, arg, proc):
|
||||||
|
if os.path.isdir(arg):
|
||||||
|
self.scan_firmware_dir(arg, proc)
|
||||||
|
else:
|
||||||
|
self.scan_firmware_rpm(arg, proc)
|
33
get_supplements.sh
Normal file
33
get_supplements.sh
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Generate modalias Supplements lines for the given kernel-firmware topic
|
||||||
|
#
|
||||||
|
|
||||||
|
target=$1
|
||||||
|
modules=""
|
||||||
|
|
||||||
|
sorted_modules () {
|
||||||
|
for m in $*; do
|
||||||
|
m=$(echo $m | sed -e's/-/_/g')
|
||||||
|
echo $m
|
||||||
|
done | sort | uniq
|
||||||
|
}
|
||||||
|
|
||||||
|
while read first topic mods; do
|
||||||
|
if [ "$topic" = "$target" ]; then
|
||||||
|
first=${first%:}
|
||||||
|
if [ -z "$mods" ]; then
|
||||||
|
modules="$modules $first"
|
||||||
|
else
|
||||||
|
modules="$modules $mods"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done < topics.list
|
||||||
|
|
||||||
|
smodules=$(sorted_modules $modules)
|
||||||
|
|
||||||
|
for m in $smodules; do
|
||||||
|
grep '^'$m':' aliases.list | sed -e's/^.*: \(.*\)$/Supplements: modalias(\1)/g'
|
||||||
|
done | sort | uniq
|
||||||
|
|
||||||
|
exit 0
|
3
iwlwifi-Qu-b0-hr-b0-71.ucode
Normal file
3
iwlwifi-Qu-b0-hr-b0-71.ucode
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:f7ddabe9cc308de0f618ff208313e7180fdf7178d3ba70814664d6fc2f9c9324
|
||||||
|
size 1364312
|
3
iwlwifi-Qu-b0-jf-b0-71.ucode
Normal file
3
iwlwifi-Qu-b0-jf-b0-71.ucode
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:696fff84535d276f1645a4510f06bbc1469a5d73b2ca9513b77d2602311a937e
|
||||||
|
size 1285192
|
3
iwlwifi-Qu-c0-hr-b0-71.ucode
Normal file
3
iwlwifi-Qu-c0-hr-b0-71.ucode
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:3522b528a52dafe68ffdcc9dc07593267a1a956d689c9e23d93110e3fc6599ce
|
||||||
|
size 1364328
|
3
iwlwifi-Qu-c0-jf-b0-71.ucode
Normal file
3
iwlwifi-Qu-c0-jf-b0-71.ucode
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:3cce1c557372d8177f6a3363604a59c205c52285448c2e624974d02eb0b75bdd
|
||||||
|
size 1285208
|
3
iwlwifi-QuZ-a0-hr-b0-71.ucode
Normal file
3
iwlwifi-QuZ-a0-hr-b0-71.ucode
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:11fd8d891a6bea770dc9a2c1c7cc728745cfd470b8c0e5a57f0c5d50312a1743
|
||||||
|
size 1364308
|
3
iwlwifi-QuZ-a0-jf-b0-71.ucode
Normal file
3
iwlwifi-QuZ-a0-jf-b0-71.ucode
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:995bf8c424472a86940014792b7c1c85b27f666742539ae36b3959bb53d445ce
|
||||||
|
size 1285188
|
47
iwlwifi-WHENCE-fix.patch
Normal file
47
iwlwifi-WHENCE-fix.patch
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
diff --git a/WHENCE b/WHENCE
|
||||||
|
index cf805e28f5a7..16a9f1d78d57 100644
|
||||||
|
--- a/WHENCE
|
||||||
|
+++ b/WHENCE
|
||||||
|
@@ -908,6 +908,42 @@ Version: 66.f1c864e0.0
|
||||||
|
File: iwlwifi-ty-a0-gf-a0-66.ucode
|
||||||
|
Version: 66.f1c864e0.0
|
||||||
|
|
||||||
|
+File: iwlwifi-cc-a0-71.ucode
|
||||||
|
+Version: 71.058653f6.0
|
||||||
|
+
|
||||||
|
+File: iwlwifi-Qu-b0-hr-b0-71.ucode
|
||||||
|
+Version: 71.058653f6.0
|
||||||
|
+
|
||||||
|
+File: iwlwifi-Qu-b0-jf-b0-71.ucode
|
||||||
|
+Version: 71.058653f6.0
|
||||||
|
+
|
||||||
|
+File: iwlwifi-Qu-c0-hr-b0-71.ucode
|
||||||
|
+Version: 71.058653f6.0
|
||||||
|
+
|
||||||
|
+File: iwlwifi-Qu-c0-jf-b0-71.ucode
|
||||||
|
+Version: 71.058653f6.0
|
||||||
|
+
|
||||||
|
+File: iwlwifi-QuZ-a0-hr-b0-71.ucode
|
||||||
|
+Version: 71.058653f6.0
|
||||||
|
+
|
||||||
|
+File: iwlwifi-QuZ-a0-jf-b0-71.ucode
|
||||||
|
+Version: 71.058653f6.0
|
||||||
|
+
|
||||||
|
+File: iwlwifi-ty-a0-gf-a0-71.ucode
|
||||||
|
+Version: 71.058653f6.0
|
||||||
|
+
|
||||||
|
+File: iwlwifi-so-a0-gf4-a0-71.ucode
|
||||||
|
+Version: 71.058653f6.0
|
||||||
|
+
|
||||||
|
+File: iwlwifi-so-a0-gf-a0-71.ucode
|
||||||
|
+Version: 71.058653f6.0
|
||||||
|
+
|
||||||
|
+File: iwlwifi-so-a0-hr-b0-71.ucode
|
||||||
|
+Version: 71.058653f6.0
|
||||||
|
+
|
||||||
|
+File: iwlwifi-so-a0-jf-b0-71.ucode
|
||||||
|
+Version: 71.058653f6.0
|
||||||
|
+
|
||||||
|
File: iwlwifi-cc-a0-72.ucode
|
||||||
|
Version: 72.daa05125.0
|
||||||
|
|
3
iwlwifi-cc-a0-71.ucode
Normal file
3
iwlwifi-cc-a0-71.ucode
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:1561efa63710678be1392b0a572b9b5d021b529e71463346a7a05129294ddfa6
|
||||||
|
size 1322288
|
3
iwlwifi-so-a0-gf-a0-71.ucode
Normal file
3
iwlwifi-so-a0-gf-a0-71.ucode
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:a5d7cc6a6c7748e570e0094032045122d7a5a76f6fde2e7b2f1ad1048575896a
|
||||||
|
size 1550124
|
3
iwlwifi-so-a0-gf4-a0-71.ucode
Normal file
3
iwlwifi-so-a0-gf4-a0-71.ucode
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:b5b1f8c1d22ae4df4f44e5e81c5ed5a45591526c07f9e2a1b13ec7c8ee2d16dc
|
||||||
|
size 1566352
|
3
iwlwifi-so-a0-hr-b0-71.ucode
Normal file
3
iwlwifi-so-a0-hr-b0-71.ucode
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:c8f5feac1b1db256da2c6c0739ec6ea7bdbe8e78ed19944b4c9a39b7fc61a5aa
|
||||||
|
size 1456960
|
3
iwlwifi-so-a0-jf-b0-71.ucode
Normal file
3
iwlwifi-so-a0-jf-b0-71.ucode
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:169de0f9f49d5dbcc59d7d1432890b7f153c3864d8d72ff5f47549f281b6b41e
|
||||||
|
size 1400056
|
3
iwlwifi-ty-a0-gf-a0-71.ucode
Normal file
3
iwlwifi-ty-a0-gf-a0-71.ucode
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:a4a0c77a84f9bb279c5b4e83a8949073f4a93f248fcfff90ff2147ac658eba95
|
||||||
|
size 1494024
|
3
kernel-firmware-20240618.tar.xz
Normal file
3
kernel-firmware-20240618.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:d430e0bc4cfaae2db9ed66f57649d95c7f9c25db80cb165483d4b328da8bf935
|
||||||
|
size 375793076
|
3
kernel-firmware-20240712.tar.xz
Normal file
3
kernel-firmware-20240712.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:28eb97f27b100ed248fa54d674388b839b88f890914430dfe405afe0a08651a3
|
||||||
|
size 376682872
|
BIN
kernel-firmware-20240728.tar.xz
(Stored with Git LFS)
Normal file
BIN
kernel-firmware-20240728.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
3
kernel-firmware-20240809.tar.xz
Normal file
3
kernel-firmware-20240809.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:4688866964ce2530791a6762d7c794c16e60d0c22a42718e7d7492a161d38f40
|
||||||
|
size 379367996
|
3
kernel-firmware-20240826.tar.xz
Normal file
3
kernel-firmware-20240826.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:df63983c076739922968d18f6b88b4d2b8f1efcfb05f0c6f515982c19ec61e0b
|
||||||
|
size 382533532
|
3
kernel-firmware-20240903.tar.xz
Normal file
3
kernel-firmware-20240903.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:8410868875206c48880a9ad3584a28fd53c587c4f229486159f0a22f1ec11371
|
||||||
|
size 383247464
|
3
kernel-firmware-20240912.tar.xz
Normal file
3
kernel-firmware-20240912.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:b7690f26dab802fc99dfd594e36d5e88b6c7b0a7650ffe60b53049faf0232cfc
|
||||||
|
size 386463016
|
1
kernel-firmware-rpmlintrc
Normal file
1
kernel-firmware-rpmlintrc
Normal file
@ -0,0 +1 @@
|
|||||||
|
addFilter("arch-independent-package-contains-binary-or-object")
|
4740
kernel-firmware.changes
Normal file
4740
kernel-firmware.changes
Normal file
File diff suppressed because it is too large
Load Diff
7212
kernel-firmware.spec
Normal file
7212
kernel-firmware.spec
Normal file
File diff suppressed because it is too large
Load Diff
206
kernel-firmware.spec.in
Normal file
206
kernel-firmware.spec.in
Normal file
@ -0,0 +1,206 @@
|
|||||||
|
#
|
||||||
|
# spec file for package kernel-firmware
|
||||||
|
#
|
||||||
|
# Copyright (c) 2024 SUSE LLC
|
||||||
|
#
|
||||||
|
# All modifications and additions to the file contributed by third parties
|
||||||
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
|
# upon. The license for this file, and modifications and additions to the
|
||||||
|
# file, is the same license as for the pristine package itself (unless the
|
||||||
|
# license for the pristine package is not an Open Source License, in which
|
||||||
|
# case the license is the MIT License). An "Open Source License" is a
|
||||||
|
# license that conforms to the Open Source Definition (Version 1.9)
|
||||||
|
# published by the Open Source Initiative.
|
||||||
|
|
||||||
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
%global flavor @BUILD_FLAVOR@%{nil}
|
||||||
|
%if 0%{?suse_version} < 1550
|
||||||
|
%define _firmwaredir /lib/firmware
|
||||||
|
%endif
|
||||||
|
%define __ksyms_path ^%{_firmwaredir}
|
||||||
|
%define version_unconverted @@VERSION@@
|
||||||
|
# Force bzip2 instead of lzma compression (bsc#1176981)
|
||||||
|
%define _binary_payload w9.bzdio
|
||||||
|
Name: kernel-firmware
|
||||||
|
Version: @@VERSION@@
|
||||||
|
Release: 0
|
||||||
|
Summary: Linux kernel firmware files
|
||||||
|
License: GPL-2.0-only AND SUSE-Firmware AND GPL-2.0-or-later AND MIT
|
||||||
|
Group: System/Kernel
|
||||||
|
URL: https://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/
|
||||||
|
# Created via OSC service
|
||||||
|
Source0: kernel-firmware-%{version}.tar.xz
|
||||||
|
Source1: extrawhence
|
||||||
|
Source2: ast_dp501_fw.bin
|
||||||
|
Source8: ql2600_fw.bin
|
||||||
|
Source9: ql2700_fw.bin
|
||||||
|
Source10: ql8300_fw.bin
|
||||||
|
Source99: kernel-firmware-rpmlintrc
|
||||||
|
# for compatibility with SLE15-SP4 kernel (bsc#1209681)
|
||||||
|
Source200: iwlwifi-cc-a0-71.ucode
|
||||||
|
Source201: iwlwifi-Qu-b0-hr-b0-71.ucode
|
||||||
|
Source202: iwlwifi-Qu-b0-jf-b0-71.ucode
|
||||||
|
Source203: iwlwifi-Qu-c0-hr-b0-71.ucode
|
||||||
|
Source204: iwlwifi-Qu-c0-jf-b0-71.ucode
|
||||||
|
Source205: iwlwifi-QuZ-a0-hr-b0-71.ucode
|
||||||
|
Source206: iwlwifi-QuZ-a0-jf-b0-71.ucode
|
||||||
|
Source207: iwlwifi-so-a0-gf4-a0-71.ucode
|
||||||
|
Source208: iwlwifi-so-a0-gf-a0-71.ucode
|
||||||
|
Source209: iwlwifi-so-a0-hr-b0-71.ucode
|
||||||
|
Source210: iwlwifi-so-a0-jf-b0-71.ucode
|
||||||
|
Source211: iwlwifi-ty-a0-gf-a0-71.ucode
|
||||||
|
# install / build infrastructure
|
||||||
|
Source1001: make-files.sh
|
||||||
|
Source1002: list-license.sh
|
||||||
|
Source1003: get_supplements.sh
|
||||||
|
Source1004: topics.list
|
||||||
|
Source1005: licenses.list
|
||||||
|
Source1006: aliases.list
|
||||||
|
Source1007: topicdefs
|
||||||
|
Source1008: topicprovs
|
||||||
|
Source1009: kernel-firmware.spec.in
|
||||||
|
Source1010: makespec.sh
|
||||||
|
Source1011: fwtopics.py
|
||||||
|
Source1012: check-topic.py
|
||||||
|
Source1013: update-aliases.py
|
||||||
|
Source1014: README.build
|
||||||
|
# workarounds
|
||||||
|
Source1100: qcom-post
|
||||||
|
Source1101: uncompressed-post
|
||||||
|
# workarounds
|
||||||
|
Patch1: copy-file-ignore-README.patch
|
||||||
|
# for compatibility with SLE15-SP4 kernel (bsc#1209681)
|
||||||
|
Patch200: iwlwifi-WHENCE-fix.patch
|
||||||
|
BuildRequires: suse-module-tools
|
||||||
|
Requires(post): %{_bindir}/mkdir
|
||||||
|
Requires(post): %{_bindir}/touch
|
||||||
|
Requires(postun):%{_bindir}/mkdir
|
||||||
|
Requires(postun):%{_bindir}/touch
|
||||||
|
Provides: compat-wireless-firmware = 4.4
|
||||||
|
Obsoletes: compat-wireless-firmware < 4.4
|
||||||
|
BuildArch: noarch
|
||||||
|
@@ALLPROVS@@
|
||||||
|
%if 0%{?suse_version} >= 1550
|
||||||
|
# make sure we have post-usrmerge filesystem package on TW
|
||||||
|
Conflicts: filesystem < 84
|
||||||
|
%endif
|
||||||
|
%if "%{flavor}" == "uncompressed"
|
||||||
|
Provides: kernel-firmware-uncompressed = %{version}
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%description
|
||||||
|
This package contains the raw uncompressed firmware files for Linux kernel
|
||||||
|
drivers. This package is provided only for compatibility with older kernels
|
||||||
|
that do not support the compressed format.
|
||||||
|
|
||||||
|
%package -n ucode-amd
|
||||||
|
Summary: Microcode updates for AMD CPUs
|
||||||
|
Group: System/Kernel
|
||||||
|
Requires(post): %{_bindir}/mkdir
|
||||||
|
Requires(post): %{_bindir}/touch
|
||||||
|
Requires(postun):%{_bindir}/mkdir
|
||||||
|
Requires(postun):%{_bindir}/touch
|
||||||
|
# new style (after 3.12 kernel somewhen)
|
||||||
|
Supplements: modalias(cpu:type%%3Ax86*ven0002*)
|
||||||
|
# old style (before 3.16 kernel)
|
||||||
|
Supplements: modalias(x86cpu:vendor%%3A0002%%3Afamily%%3A*%%3Amodel%%3A*%%3Afeature%%3A*)
|
||||||
|
|
||||||
|
%description -n ucode-amd
|
||||||
|
This package contains the microcode files used by AMD CPUs.
|
||||||
|
|
||||||
|
%package all
|
||||||
|
Summary: Compatibility metapackage for kernel firmware files
|
||||||
|
Group: System/Kernel
|
||||||
|
Requires(post): %{_bindir}/mkdir
|
||||||
|
Requires(post): %{_bindir}/touch
|
||||||
|
Requires(post): dracut >= 049
|
||||||
|
Requires(postun):%{_bindir}/mkdir
|
||||||
|
Requires(postun):%{_bindir}/touch
|
||||||
|
Conflicts: kernel < 5.3
|
||||||
|
Provides: kernel-firmware = %{version}
|
||||||
|
Obsoletes: kernel-firmware <= %{version}
|
||||||
|
Provides: compat-wireless-firmware = 4.4
|
||||||
|
Obsoletes: compat-wireless-firmware < 4.4
|
||||||
|
@@SUBPKGLIST@@
|
||||||
|
%if 0%{?suse_version} >= 1550
|
||||||
|
# make sure we have post-usrmerge filesystem package on TW
|
||||||
|
Conflicts: filesystem < 84
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%description all
|
||||||
|
This package is a catch-all compatibility metapackage for providing
|
||||||
|
all files that have been provided by kernel-firmware package.
|
||||||
|
|
||||||
|
@@SUBPACKAGES@@
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q -n kernel-firmware-%{version}
|
||||||
|
%patch -P 1 -p1
|
||||||
|
# additional firmwares
|
||||||
|
cat %{SOURCE1} >> WHENCE
|
||||||
|
cp %{SOURCE2} %{SOURCE8} %{SOURCE9} %{SOURCE10} .
|
||||||
|
|
||||||
|
%if 0%{?suse_version} < 1599
|
||||||
|
# revive old iwlwifi firmware for compatibility (bsc#1209681)
|
||||||
|
%patch -P 200 -p1
|
||||||
|
cp %{SOURCE200} .
|
||||||
|
cp %{SOURCE201} .
|
||||||
|
cp %{SOURCE202} .
|
||||||
|
cp %{SOURCE203} .
|
||||||
|
cp %{SOURCE204} .
|
||||||
|
cp %{SOURCE205} .
|
||||||
|
cp %{SOURCE206} .
|
||||||
|
cp %{SOURCE207} .
|
||||||
|
cp %{SOURCE208} .
|
||||||
|
cp %{SOURCE209} .
|
||||||
|
cp %{SOURCE210} .
|
||||||
|
cp %{SOURCE211} .
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%build
|
||||||
|
# nothing to do
|
||||||
|
|
||||||
|
%install
|
||||||
|
mkdir -p %{buildroot}%{_firmwaredir}
|
||||||
|
%if "%{flavor}" == "uncompressed"
|
||||||
|
sh ./copy-firmware.sh --ignore-duplicates %{buildroot}%{_firmwaredir}
|
||||||
|
%else
|
||||||
|
sh ./copy-firmware.sh -v --ignore-duplicates --xz %{buildroot}%{_firmwaredir}
|
||||||
|
sh %{_sourcedir}/make-files.sh -v %{_sourcedir}/topics.list %{buildroot} %{_firmwaredir} < WHENCE
|
||||||
|
sh %{_sourcedir}/list-license.sh < %{_sourcedir}/licenses.list
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if "%{flavor}" == "uncompressed"
|
||||||
|
@@POST@@
|
||||||
|
%else
|
||||||
|
|
||||||
|
@@POST@@ all
|
||||||
|
@@POST@@ -n ucode-amd
|
||||||
|
@@SUBPKGPOSTS@@
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if "%{flavor}" == "uncompressed"
|
||||||
|
%files
|
||||||
|
%doc WHENCE README.md
|
||||||
|
%license GPL-2 GPL-3 LICEN[CS]E.*
|
||||||
|
%{_firmwaredir}
|
||||||
|
%exclude %{_firmwaredir}/amd-ucode
|
||||||
|
%exclude %{_firmwaredir}/amd-ucode/*
|
||||||
|
|
||||||
|
%else
|
||||||
|
%files all
|
||||||
|
%doc WHENCE README.md
|
||||||
|
|
||||||
|
%files -n ucode-amd
|
||||||
|
%doc amd-ucode/README
|
||||||
|
%license LICENSE.amd-ucode
|
||||||
|
%dir %{_firmwaredir}
|
||||||
|
%{_firmwaredir}/amd-ucode
|
||||||
|
|
||||||
|
@@SUBPKGFILES@@
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%changelog
|
213
licenses.list
Normal file
213
licenses.list
Normal file
@ -0,0 +1,213 @@
|
|||||||
|
# FIRSTWORD: TOPIC LICENSES
|
||||||
|
BCM-0bb4-0306: brcm LICENCE.cypress
|
||||||
|
snd-korg1212: sound
|
||||||
|
snd-maestro3: sound
|
||||||
|
snd-ymfpci: sound
|
||||||
|
advansys: platform
|
||||||
|
qla1280: qlogic LICENCE.qla1280
|
||||||
|
kaweth: network LICENCE.kaweth
|
||||||
|
dvb-ttusb-budget: media
|
||||||
|
keyspan: serial GPL-2 GPL-3
|
||||||
|
keyspan_pda: serial GPL-2 GPL-3
|
||||||
|
emi26: sound
|
||||||
|
emi62: sound
|
||||||
|
ti_usb_3410_5052: serial
|
||||||
|
whiteheat: serial
|
||||||
|
cpia2: media
|
||||||
|
dabusb: media
|
||||||
|
vicam: media
|
||||||
|
io_edgeport: serial
|
||||||
|
io_ti: serial
|
||||||
|
dsp56k: platform GPL-2 GPL-3
|
||||||
|
snd-sb16-csp: sound
|
||||||
|
qla2xxx: qlogic LICENCE.qla2xxx
|
||||||
|
orinoco: network LICENCE.agere
|
||||||
|
ar9170: atheros LICENCE.atheros_firmware
|
||||||
|
ath9k_htc: atheros LICENCE.atheros_firmware LICENCE.open-ath9k-htc-firmware
|
||||||
|
cassini: platform
|
||||||
|
slicoss: network
|
||||||
|
sxg: network
|
||||||
|
cxgb3: chelsio
|
||||||
|
cxgb4: chelsio LICENCE.chelsio_firmware
|
||||||
|
e100: network LICENCE.e100
|
||||||
|
acenic: network
|
||||||
|
tg3: network
|
||||||
|
starfire: network
|
||||||
|
libertas: marvell LICENCE.Marvell LICENCE.OLPC
|
||||||
|
mwl8k: marvell LICENCE.Marvell
|
||||||
|
mwifiex: marvell LICENCE.Marvell
|
||||||
|
iwlwifi: iwlwifi LICENCE.iwlwifi_firmware
|
||||||
|
atomisp: intel LICENSE.ivsc
|
||||||
|
ipu3-imgu: intel LICENSE.ipu3_firmware
|
||||||
|
intel-ipu6-isys: intel LICENSE.ivsc
|
||||||
|
mei-vsc-hw: intel LICENSE.ivsc
|
||||||
|
cx231xx: media
|
||||||
|
ixp4xx-npe: platform LICENSE.ixp4xx
|
||||||
|
tehuti: network
|
||||||
|
typhoon: network
|
||||||
|
yam: platform
|
||||||
|
pcnet_cs: platform
|
||||||
|
3c589_cs: platform
|
||||||
|
3c574_cs: platform
|
||||||
|
serial_cs: platform GPL-3
|
||||||
|
smc91c92_cs: platform
|
||||||
|
cx23418: media
|
||||||
|
cx23885: media
|
||||||
|
cx23840: media
|
||||||
|
qlogicpti: qlogic
|
||||||
|
myri_sbus: network
|
||||||
|
bnx2x: bnx2
|
||||||
|
bnx2: bnx2
|
||||||
|
netxen_nic: network LICENCE.phanfw
|
||||||
|
dvb-ttpci: media GPL-2 GPL-3
|
||||||
|
snd-wavefront: sound
|
||||||
|
rt61pci: network LICENCE.ralink-firmware.txt
|
||||||
|
rt73usb: network LICENCE.ralink-firmware.txt
|
||||||
|
mt7601u: mediatek LICENCE.ralink_a_mediatek_company_firmware
|
||||||
|
rt2800pci: realtek LICENCE.ralink-firmware.txt
|
||||||
|
rt2860sta: realtek LICENCE.ralink-firmware.txt
|
||||||
|
rt2800usb: realtek LICENCE.ralink-firmware.txt
|
||||||
|
rt2870sta: realtek LICENCE.ralink-firmware.txt
|
||||||
|
usbdux/usbduxfast/usbduxsigma: platform GPL-2
|
||||||
|
xc4000: media LICENCE.xc4000
|
||||||
|
xc5000: media LICENCE.xc5000 LICENCE.xc5000c
|
||||||
|
dib0700: media LICENSE.dib0700
|
||||||
|
ath3k: atheros LICENCE.atheros_firmware
|
||||||
|
mga: platform
|
||||||
|
r128: platform
|
||||||
|
radeon: radeon LICENSE.radeon
|
||||||
|
en8811h: network LICENSE.airoha
|
||||||
|
amdgpu: amdgpu LICENSE.amdgpu
|
||||||
|
s2255drv: platform
|
||||||
|
rtl8192e: realtek
|
||||||
|
lgs8gxx: media
|
||||||
|
ib_qib: qlogic
|
||||||
|
qed: qlogic
|
||||||
|
ueagle-atm: ueagle LICENCE.ueagle-atm4-firmware
|
||||||
|
vxge: network
|
||||||
|
brcmsmac: brcm LICENCE.broadcom_bcm43xx
|
||||||
|
brcmfmac: brcm LICENCE.broadcom_bcm43xx LICENCE.cypress GPL-2
|
||||||
|
wl1251: ti LICENCE.wl1251
|
||||||
|
wl12xx: ti LICENCE.ti-connectivity
|
||||||
|
wl18xx: ti LICENCE.ti-connectivity
|
||||||
|
cc33xx: ti LICENCE.ti-connectivity
|
||||||
|
TI_ST: ti LICENCE.ti-connectivity
|
||||||
|
tlg2300: media
|
||||||
|
r8712u: realtek LICENCE.rtlwifi_firmware.txt
|
||||||
|
rtl8192ce: realtek LICENCE.rtlwifi_firmware.txt
|
||||||
|
rtl8192cu: realtek LICENCE.rtlwifi_firmware.txt
|
||||||
|
rtl8192se: realtek LICENCE.rtlwifi_firmware.txt
|
||||||
|
rtl8192de: realtek LICENCE.rtlwifi_firmware.txt
|
||||||
|
rtl8723e: realtek LICENCE.rtlwifi_firmware.txt
|
||||||
|
rtl8723be: realtek LICENCE.rtlwifi_firmware.txt
|
||||||
|
rtl8723de: realtek LICENCE.rtlwifi_firmware.txt
|
||||||
|
r8723au: realtek LICENCE.rtlwifi_firmware.txt
|
||||||
|
rtl8188ee: realtek LICENCE.rtlwifi_firmware.txt
|
||||||
|
rtl8188eu: realtek LICENCE.rtlwifi_firmware.txt
|
||||||
|
rtl8821ae: realtek LICENCE.rtlwifi_firmware.txt
|
||||||
|
rtl8822be: realtek LICENCE.rtlwifi_firmware.txt
|
||||||
|
rtw88: realtek LICENCE.rtlwifi_firmware.txt rtw88/README
|
||||||
|
rtl8192ee: realtek LICENCE.rtlwifi_firmware.txt
|
||||||
|
rtl8723bs: realtek LICENCE.rtlwifi_firmware.txt
|
||||||
|
rtl8xxxu: realtek LICENCE.rtlwifi_firmware.txt
|
||||||
|
r8169: realtek
|
||||||
|
rt1320: realtek
|
||||||
|
vt6656: network LICENCE.via_vt6656
|
||||||
|
DFU: atheros LICENCE.atheros_firmware LICENSE.QualcommAtheros_ar3k
|
||||||
|
Atheros: atheros LICENCE.atheros_firmware
|
||||||
|
ath6kl: atheros LICENCE.atheros_firmware
|
||||||
|
ath10k: ath10k ath10k/QCA988X/hw2.0/notice_ath10k_firmware-4.txt ath10k/QCA988X/hw2.0/notice_ath10k_firmware-5.txt ath10k/QCA6174/hw3.0/notice_ath10k_firmware-6.txt ath10k/QCA6174/hw3.0/notice_ath10k_firmware-sdio-6.txt ath10k/QCA9377/hw1.0/notice_ath10k_firmware-sdio-5.txt LICENSE.QualcommAtheros_ath10k
|
||||||
|
ath11k: ath11k ath11k/IPQ6018/hw1.0/Notice.txt LICENSE.QualcommAtheros_ath10k
|
||||||
|
ath12k: ath12k ath12k/WCN7850/hw2.0/Notice.txt LICENSE.QualcommAtheros_ath10k
|
||||||
|
myri10ge: network LICENCE.myri10ge_firmware
|
||||||
|
drxk: media
|
||||||
|
ene-ub6250: platform LICENCE.ene_firmware
|
||||||
|
isci: intel GPL-2
|
||||||
|
ar5523: atheros LICENCE.atheros_firmware
|
||||||
|
s5p-mfc: media
|
||||||
|
carl9170: atheros GPL-2
|
||||||
|
snd-hda-codec-ca0132: sound LICENCE.ca0132
|
||||||
|
btusb: bluetooth LICENCE.ibt_firmware LICENCE.rtlwifi_firmware.txt
|
||||||
|
btmtk_usb: mediatek LICENCE.ralink_a_mediatek_company_firmware
|
||||||
|
rp2: serial
|
||||||
|
go7007: platform LICENCE.go7007
|
||||||
|
ccp: platform LICENSE.amd-sev
|
||||||
|
microcode_amd: SKIP LICENSE.amd-ucode
|
||||||
|
mxu11x0: serial LICENCE.moxa
|
||||||
|
mxuport: serial LICENCE.moxa
|
||||||
|
cw1200: network LICENCE.cw1200
|
||||||
|
BFA/BNA: qlogic
|
||||||
|
qat: intel LICENCE.qat_firmware
|
||||||
|
rsi: platform
|
||||||
|
xhci-rcar: platform LICENCE.r8a779x_usb3
|
||||||
|
snd_soc_sst_acpi: sound LICENCE.IntcSST2
|
||||||
|
as102: media LICENCE.Abilis
|
||||||
|
it9135: media LICENCE.it913x
|
||||||
|
snd_soc_catpt: sound LICENCE.IntcSST2
|
||||||
|
snd_soc_avs: sound LICENCE.adsp_sst
|
||||||
|
snd_intel_sst_core: sound LICENCE.fw_sst_0f28
|
||||||
|
snd-soc-skl: sound LICENCE.adsp_sst
|
||||||
|
smsmdtv: media LICENCE.siano
|
||||||
|
xhci-tegra: nvidia LICENCE.nvidia
|
||||||
|
tegra-vic: nvidia LICENCE.nvidia
|
||||||
|
atusb: network GPL-2 GPL-3
|
||||||
|
qca: bluetooth LICENSE.QualcommAtheros_ath10k qca/NOTICE.txt
|
||||||
|
liquidio: liquidio LICENCE.cavium_liquidio
|
||||||
|
nitrox: platform LICENCE.cavium
|
||||||
|
i915: i915 LICENSE.i915
|
||||||
|
nouveau: nvidia LICENCE.nvidia
|
||||||
|
xe: i915 LICENSE.xe
|
||||||
|
wilc1000: network LICENSE.atmel
|
||||||
|
hfi1: intel LICENSE.hfi1_firmware
|
||||||
|
knav_qmss_queue: ti LICENCE.ti-keystone
|
||||||
|
mwlwifi: marvell LICENCE.Marvell
|
||||||
|
mtk-vpu: media LICENCE.mediatek
|
||||||
|
mtk_scp: mediatek LICENCE.mediatek
|
||||||
|
btmtk: mediatek LICENCE.mediatek
|
||||||
|
rk3399-dptx: platform LICENCE.rockchip
|
||||||
|
mt76x0: mediatek LICENCE.mediatek
|
||||||
|
mt76x2e: mediatek LICENCE.ralink_a_mediatek_company_firmware
|
||||||
|
mt76x2u: mediatek LICENCE.mediatek
|
||||||
|
mt7615e: mediatek LICENCE.mediatek
|
||||||
|
mt7921: mediatek LICENCE.mediatek
|
||||||
|
mt7922: mediatek LICENCE.mediatek
|
||||||
|
mt7925: mediatek LICENCE.mediatek
|
||||||
|
mt7988: mediatek LICENCE.mediatek
|
||||||
|
mt7996e: mediatek LICENCE.mediatek
|
||||||
|
nfp: nfp LICENCE.Netronome
|
||||||
|
wil6210: atheros LICENSE.QualcommAtheros_ath10k
|
||||||
|
venus: media LICENSE.qcom qcom/NOTICE.txt
|
||||||
|
iris: media LICENSE.qcom qcom/NOTICE.txt
|
||||||
|
imx-sdma: platform LICENSE.sdma_firmware
|
||||||
|
adreno: qcom LICENSE.qcom qcom/NOTICE.txt
|
||||||
|
qcom_q6v5_pas: qcom LICENSE.qcom qcom/NOTICE.txt
|
||||||
|
qcom_q6v5_mss: qcom LICENSE.qcom qcom/NOTICE.txt
|
||||||
|
mlxsw_spectrum: mellanox
|
||||||
|
cdns-mhdp: platform LICENCE.cadence
|
||||||
|
fsl-mc: dpaa2 LICENSE.nxp_mc_firmware
|
||||||
|
mscc-phy: platform LICENCE.microchip
|
||||||
|
meson-vdec: media LICENSE.amlogic_vdec
|
||||||
|
prestera: prestera LICENCE.Marvell
|
||||||
|
lt9611uxc: platform LICENSE.Lontium
|
||||||
|
wfx: platform wfx/LICENCE.wf200
|
||||||
|
wave5: platform LICENCE.cnm
|
||||||
|
rvu_cptpf: platform LICENCE.Marvell
|
||||||
|
amphion: platform LICENSE.amphion_vpu
|
||||||
|
cs35l41_hda: sound LICENSE.cirrus
|
||||||
|
cs35l56: sound LICENSE.cirrus
|
||||||
|
cs42l43: sound LICENSE.cirrus
|
||||||
|
mtk-sof: sound LICENCE.mediatek
|
||||||
|
nxp-sr1xx: platform LICENSE.nxp
|
||||||
|
btnxpuart: platform LICENSE.nxp
|
||||||
|
qcom-sc8280xp: sound LICENCE.linaro
|
||||||
|
amlogic: bluetooth LICENSE.amlogic
|
||||||
|
powervr: platform LICENSE.powervr
|
||||||
|
qcom-sm8550: sound LICENCE.linaro
|
||||||
|
qcom-sm8650: sound LICENCE.linaro
|
||||||
|
ti-tas2781: sound GPL-2 GPL-3
|
||||||
|
ti-tas2563: sound GPL-2 GPL-3
|
||||||
|
Mont-TSSE: platform LICENSE.montage
|
||||||
|
panthor: platform LICENCE.mali_csffw
|
||||||
|
isp: amdgpu LICENSE.amdisp
|
||||||
|
qaic: qcom LICENSE.qcom qcom/NOTICE.txt
|
||||||
|
ish: intel LICENCE.ish
|
22
list-license.sh
Normal file
22
list-license.sh
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Generate license file lists for each kernel-firmware topic
|
||||||
|
#
|
||||||
|
# usage: list-license.sh < licenses.list
|
||||||
|
#
|
||||||
|
|
||||||
|
while read first topic licenses; do
|
||||||
|
case "$first" in
|
||||||
|
\#*) continue;;
|
||||||
|
esac
|
||||||
|
test -z "$licenses" && continue
|
||||||
|
for l in $licenses; do
|
||||||
|
echo $l >> files-$topic.license
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
for l in files-*.license; do
|
||||||
|
f=${l%.license}
|
||||||
|
sort $l | uniq | sed -e's/^\(.*\)$/%license \1/g' >> $f
|
||||||
|
rm -f $l
|
||||||
|
done
|
104
make-files.sh
Normal file
104
make-files.sh
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Read WHENCE from stdin create files-xxx for each topic
|
||||||
|
#
|
||||||
|
# usage: make-files.sh [-v] topics.list DESTDIR < WHENCE
|
||||||
|
#
|
||||||
|
|
||||||
|
verbose=:
|
||||||
|
|
||||||
|
if [ x"$1" = x"-v" ]; then
|
||||||
|
verbose=echo
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
|
||||||
|
topics="$1"
|
||||||
|
DESTDIR="$2"
|
||||||
|
fwdir=${3:-/lib/firmware}
|
||||||
|
dest=$DESTDIR/$fwdir
|
||||||
|
|
||||||
|
do_compress=1
|
||||||
|
|
||||||
|
if [ -n "$do_compress" ]; then
|
||||||
|
cext=".xz"
|
||||||
|
else
|
||||||
|
cext=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
make_dirs () {
|
||||||
|
local f="$1"
|
||||||
|
local d=$(dirname "$f")
|
||||||
|
if [ "$d" != "." ]; then
|
||||||
|
while true; do
|
||||||
|
if ! grep -q '%dir '"$fwdir/$d"'$' files-$topic; then
|
||||||
|
echo "%dir $fwdir/$d" >> files-$topic
|
||||||
|
fi
|
||||||
|
case "$d" in
|
||||||
|
*/*) d=${d%/*};;
|
||||||
|
*) break;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
add_file () {
|
||||||
|
local f="$1"
|
||||||
|
make_dirs "$f"
|
||||||
|
if [ -e "$dest/$f" ]; then
|
||||||
|
echo "\"$fwdir/$f\"" >> files-$topic
|
||||||
|
else
|
||||||
|
echo "\"$fwdir/$f$cext\"" >> files-$topic
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
sub="xxx"
|
||||||
|
while read l; do
|
||||||
|
test -z "$l" && continue
|
||||||
|
case "$l" in
|
||||||
|
----*)
|
||||||
|
sub=""
|
||||||
|
topic=""
|
||||||
|
;;
|
||||||
|
Driver:*)
|
||||||
|
test -n "$sub" && continue
|
||||||
|
sub=$(echo "$l" | sed -e's/Driver: *//' -e's/[ :].*$//')
|
||||||
|
m=$(grep -m1 "^$sub": "$topics" | sed -e's/^.*:[[:space:]]*//')
|
||||||
|
test -z "$m" && continue
|
||||||
|
set -- $m
|
||||||
|
topic="$1"
|
||||||
|
if [ "$topic" = "SKIP" ]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
$verbose "Switching to topic $topic"
|
||||||
|
if [ -n "$topic" ]; then
|
||||||
|
if [ ! -s files-$topic ]; then
|
||||||
|
echo "%dir $fwdir" > files-$topic
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
File:*|RawFile:*)
|
||||||
|
test "$topic" = "SKIP" && continue
|
||||||
|
if [ -z "$topic" ]; then
|
||||||
|
echo "ERROR: no topic found for $l"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
f=$(echo "$l" | sed -e's/^File: *//' -e's/^RawFile: *//' -e's/"//g' -e's/\\//g')
|
||||||
|
case "$f" in
|
||||||
|
*/README*)
|
||||||
|
continue;;
|
||||||
|
esac
|
||||||
|
add_file "$f"
|
||||||
|
;;
|
||||||
|
Link:*)
|
||||||
|
test "$topic" = "SKIP" && continue
|
||||||
|
if [ -z "$topic" ]; then
|
||||||
|
echo "ERROR: no topic found for $l"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
f=$(echo "$l" | sed -e's/^Link: *//' -e's/ *->.*$//' -es'/\\//g')
|
||||||
|
add_file "$f"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
exit 0
|
102
makespec.sh
Normal file
102
makespec.sh
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# makespec.sh VERSION < kernel-firmware.spec.in > kernel-firmware.spec
|
||||||
|
#
|
||||||
|
|
||||||
|
export LANG=C
|
||||||
|
version="$1"
|
||||||
|
|
||||||
|
topics=$(awk '{print $1}' topicdefs | sort)
|
||||||
|
|
||||||
|
define_subpackage () {
|
||||||
|
local topic="$1"
|
||||||
|
local desc=$(grep '^'"$topic"'[[:space:]]' topicdefs | sed -e's/^[a-zA-Z0-9-]*[[:space:]]*//')
|
||||||
|
echo "%package $topic"
|
||||||
|
echo "Summary: Kernel firmware files for $desc"
|
||||||
|
echo "Group: System/Kernel"
|
||||||
|
echo "Requires(post): /usr/bin/mkdir /usr/bin/touch"
|
||||||
|
echo "Requires(postun):/usr/bin/mkdir /usr/bin/touch"
|
||||||
|
echo "Requires(post): dracut >= 049"
|
||||||
|
echo "Conflicts: kernel < 5.3"
|
||||||
|
echo "Conflicts: kernel-firmware < %{version}"
|
||||||
|
echo "Conflicts: kernel-firmware-uncompressed"
|
||||||
|
echo "%if 0%{?suse_version} >= 1550"
|
||||||
|
echo "# make sure we have post-usrmerge filesystem package on TW"
|
||||||
|
echo "Conflicts: filesystem < 84"
|
||||||
|
echo "%endif"
|
||||||
|
grep "^${topic}:" topicprovs | sed -e's/^[^ \t]*:[[:space:]]*//g'
|
||||||
|
sh ./get_supplements.sh $topic
|
||||||
|
echo
|
||||||
|
echo "%description $topic"
|
||||||
|
echo "This package contains compressed kernel firmware files for"
|
||||||
|
echo "$desc."
|
||||||
|
echo
|
||||||
|
}
|
||||||
|
|
||||||
|
define_post () {
|
||||||
|
local l="$*"
|
||||||
|
if [ -z "$l" -a -f uncompressed-post ]; then
|
||||||
|
cat uncompressed-post
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
if [ -n "$l" -a -f "$l"-post ]; then
|
||||||
|
cat "$l"-post
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
test -n "$l" && l=" $l"
|
||||||
|
echo "%post$l"
|
||||||
|
echo "%{?regenerate_initrd_post}"
|
||||||
|
echo
|
||||||
|
echo "%postun$l"
|
||||||
|
echo "%{?regenerate_initrd_post}"
|
||||||
|
echo
|
||||||
|
echo "%posttrans$l"
|
||||||
|
echo "%{?regenerate_initrd_posttrans}"
|
||||||
|
}
|
||||||
|
|
||||||
|
sed -e"s/@@VERSION@@/$version/g" | while read line; do
|
||||||
|
if [ "$line" = "@@ALLPROVS@@" ]; then
|
||||||
|
sed -e's/^[^ \t]*:[[:space:]]*//g' topicprovs
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
if [ "$line" = "@@SUBPKGLIST@@" ]; then
|
||||||
|
for t in $topics; do
|
||||||
|
echo "Requires: %{name}-$t = %{version}"
|
||||||
|
done
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
if [ "$line" = "@@SUBPKGPROVS@@" ]; then
|
||||||
|
for t in $topics; do
|
||||||
|
echo "Provides: %{name}-$t = %{version}"
|
||||||
|
done
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
if [ "$line" = "@@SUBPACKAGES@@" ]; then
|
||||||
|
for t in $topics; do
|
||||||
|
define_subpackage $t
|
||||||
|
done
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
case "$line" in
|
||||||
|
@@POST@@*)
|
||||||
|
define_post $(echo "$line" | sed -e's/^@@POST@@ *//')
|
||||||
|
continue;;
|
||||||
|
esac
|
||||||
|
if [ "$line" = "@@SUBPKGPOSTS@@" ]; then
|
||||||
|
for t in $topics; do
|
||||||
|
echo
|
||||||
|
define_post $t
|
||||||
|
done
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
if [ "$line" = "@@SUBPKGFILES@@" ]; then
|
||||||
|
for t in $topics; do
|
||||||
|
echo "%files -f files-$t $t"
|
||||||
|
echo
|
||||||
|
done
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
echo "$line"
|
||||||
|
done
|
||||||
|
|
||||||
|
exit 0
|
27
qcom-post
Normal file
27
qcom-post
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
%pre qcom
|
||||||
|
# ugly workaround for changing qcom/LENOVO/21BX to a symlink (bsc#1204103)
|
||||||
|
if [ ! -L %{_firmwaredir}/qcom/LENOVO/21BX ]; then
|
||||||
|
if [ -d %{_firmwaredir}/qcom/LENOVO/21BX ]; then
|
||||||
|
mv %{_firmwaredir}/qcom/LENOVO/21BX %{_firmwaredir}/qcom/LENOVO/21BX.xxxold
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
%post qcom
|
||||||
|
# ugly workaround (bsc#1204103)
|
||||||
|
if [ -d %{_firmwaredir}/qcom/LENOVO/21BX.xxxold ]; then
|
||||||
|
mv %{_firmwaredir}/qcom/LENOVO/21BX %{_firmwaredir}/qcom/LENOVO/21BX.xxxnew
|
||||||
|
mv %{_firmwaredir}/qcom/LENOVO/21BX.xxxold %{_firmwaredir}/qcom/LENOVO/21BX
|
||||||
|
else
|
||||||
|
%{?regenerate_initrd_post}
|
||||||
|
fi
|
||||||
|
|
||||||
|
%postun qcom
|
||||||
|
%{?regenerate_initrd_post}
|
||||||
|
|
||||||
|
%posttrans qcom
|
||||||
|
# ugly workaround (bsc#1204103)
|
||||||
|
if [ -L %{_firmwaredir}/qcom/LENOVO/21BX.xxxnew ]; then
|
||||||
|
rm -rf %{_firmwaredir}/qcom/LENOVO/21BX
|
||||||
|
mv %{_firmwaredir}/qcom/LENOVO/21BX.xxxnew %{_firmwaredir}/qcom/LENOVO/21BX
|
||||||
|
fi
|
||||||
|
%{?regenerate_initrd_posttrans}
|
3
ql2600_fw.bin
Normal file
3
ql2600_fw.bin
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:9e39cc129af5281ccd533b927be0a6d40c726a7bc3fe6f18ba188893d6ef4ddc
|
||||||
|
size 340116
|
3
ql2700_fw.bin
Normal file
3
ql2700_fw.bin
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:668c1de6c8b57be2a8a7ce5496bee1ac006a7138ade0349509ba34f061c2af11
|
||||||
|
size 378480
|
3
ql8300_fw.bin
Normal file
3
ql8300_fw.bin
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:a8653c29f2fa379074367cd266e7a4887040d537aeb87c69110e26f53511139d
|
||||||
|
size 288096
|
33
topicdefs
Normal file
33
topicdefs
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
amdgpu AMDGPU graphics driver
|
||||||
|
atheros Atheros wireless drivers
|
||||||
|
ath10k Atheros QCA988x WiFi drivers
|
||||||
|
ath11k Atheros Qualcomm WiFi drivers
|
||||||
|
ath12k Atheros Qualcomm WiFi 7 chipset drivers
|
||||||
|
bluetooth various Bluetooth drivers
|
||||||
|
bnx2 Broadcom network drivers
|
||||||
|
brcm Broadcom wireless drivers
|
||||||
|
chelsio Chelsio network drivers
|
||||||
|
dpaa2 NXP Management Complex bus driver
|
||||||
|
i915 Intel i915 graphics driver
|
||||||
|
intel Intel-platform device drivers
|
||||||
|
iwlwifi Intel wireless drivers
|
||||||
|
liquidio Cavium LiquidIO driver
|
||||||
|
marvell Marvell network drivers
|
||||||
|
media various Video4Linux drivers
|
||||||
|
mediatek Mediatek network drivers
|
||||||
|
mellanox Mellanox Spectrum switch driver
|
||||||
|
mwifiex Marvell WiFi fullmac drivers
|
||||||
|
network various network drivers
|
||||||
|
nfp Netronome Flow Processor driver
|
||||||
|
nvidia Nvidia Tegra and graphics drivers
|
||||||
|
platform various platform drivers
|
||||||
|
prestera Marvell Prestera ASIC driver
|
||||||
|
qcom Qualcomm device drivers
|
||||||
|
qlogic QLogic network drivers
|
||||||
|
radeon Radeon graphics driver
|
||||||
|
realtek Realtek wireless drivers
|
||||||
|
serial various serial drivers
|
||||||
|
sound various sound drivers
|
||||||
|
ti Texas Instruments wireless drivers
|
||||||
|
ueagle Eagle IV USB ADSL modem driver
|
||||||
|
usb-network various USB WiFi / Ethernet drivers
|
29
topicprovs
Normal file
29
topicprovs
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
atheros: Provides: ath3k-firmware = %{version}
|
||||||
|
atheros: Obsoletes: ath3k-firmware < %{version}
|
||||||
|
brcm: Provides: bcm43xx-firmware:/lib/firmware/brcm/brcmfmac43430-sdio.bin
|
||||||
|
chelsio: Provides: cxgb3-firmware = %{version}
|
||||||
|
chelsio: Obsoletes: cxgb3-firmware < %{version}
|
||||||
|
iwlwifi: Provides: iwl1000-ucode = %{version}
|
||||||
|
iwlwifi: Obsoletes: iwl1000-ucode < %{version}
|
||||||
|
iwlwifi: Provides: iwl3945-ucode = %{version}
|
||||||
|
iwlwifi: Obsoletes: iwl3945-ucode < %{version}
|
||||||
|
iwlwifi: Provides: iwl4965-ucode = %{version}
|
||||||
|
iwlwifi: Obsoletes: iwl4965-ucode < %{version}
|
||||||
|
iwlwifi: Provides: iwl5000-ucode = %{version}
|
||||||
|
iwlwifi: Obsoletes: iwl5000-ucode < %{version}
|
||||||
|
iwlwifi: Provides: iwl5150-ucode = %{version}
|
||||||
|
iwlwifi: Obsoletes: iwl5150-ucode < %{version}
|
||||||
|
iwlwifi: Provides: iwl100-ucode = %{version}
|
||||||
|
iwlwifi: Obsoletes: iwl100-ucode < %{version}
|
||||||
|
iwlwifi: Provides: iwl6000-ucode = %{version}
|
||||||
|
iwlwifi: Obsoletes: iwl6000-ucode < %{version}
|
||||||
|
iwlwifi: Provides: iwl6050-ucode = %{version}
|
||||||
|
iwlwifi: Obsoletes: iwl6050-ucode < %{version}
|
||||||
|
iwlwifi: Provides: iwl6000g2-ucode = %{version}
|
||||||
|
iwlwifi: Obsoletes: iwl6000g2-ucode < %{version}
|
||||||
|
mediatek: Provides: ralink-firmware = %{version}
|
||||||
|
mediatek: Obsoletes: ralink-firmware < %{version}
|
||||||
|
qlogic: Provides: qlogic-firmware = %{version}
|
||||||
|
qlogic: Obsoletes: qlogic-firmware < %{version}
|
||||||
|
sound: Provides: avs-topology-firmware = %{version}
|
||||||
|
sound: Obsoletes: avs-topology-firmware <= 2024.02
|
224
topics.list
Normal file
224
topics.list
Normal file
@ -0,0 +1,224 @@
|
|||||||
|
# FIRSTWORD: TOPIC MODULES...
|
||||||
|
BCM-0bb4-0306: brcm btbcm
|
||||||
|
snd-korg1212: sound
|
||||||
|
snd-maestro3: sound
|
||||||
|
snd-ymfpci: sound
|
||||||
|
advansys: platform
|
||||||
|
qla1280: qlogic
|
||||||
|
kaweth: usb-network
|
||||||
|
dvb-ttusb-budget: media
|
||||||
|
keyspan: serial
|
||||||
|
keyspan_pda: serial
|
||||||
|
emi26: sound
|
||||||
|
emi62: sound
|
||||||
|
ti_usb_3410_5052: serial
|
||||||
|
whiteheat: serial
|
||||||
|
cpia2: media
|
||||||
|
dabusb: media
|
||||||
|
vicam: media gspca_vicam vicam
|
||||||
|
io_edgeport: serial
|
||||||
|
io_ti: serial
|
||||||
|
dsp56k: platform
|
||||||
|
snd-sb16-csp: sound
|
||||||
|
qla2xxx: qlogic
|
||||||
|
orinoco: network
|
||||||
|
ar9170: atheros
|
||||||
|
ath9k_htc: atheros
|
||||||
|
cassini: platform
|
||||||
|
slicoss: network
|
||||||
|
sxg: network
|
||||||
|
cxgb3: chelsio
|
||||||
|
cxgb4: chelsio cxgb4 csiostor
|
||||||
|
e100: network
|
||||||
|
acenic: network
|
||||||
|
tg3: network
|
||||||
|
starfire: network
|
||||||
|
libertas: marvell libertas_tf_usb libertas_sdio libertas_cs usb8xxx btmrvl_sdio
|
||||||
|
mwl8k: marvell
|
||||||
|
mwifiex: mwifiex mwifiex mwifiex_pcie mwifiex_usb mwifiex_sdio btmrvl_sdio
|
||||||
|
iwlwifi: iwlwifi iwlwifi iwl4965 iwl3945
|
||||||
|
atomisp: intel
|
||||||
|
ipu3-imgu: intel
|
||||||
|
intel-ipu6-isys: intel
|
||||||
|
mei-vsc-hw: intel
|
||||||
|
cx231xx: media cx25840
|
||||||
|
ixp4xx-npe: platform
|
||||||
|
tehuti: network
|
||||||
|
typhoon: network
|
||||||
|
yam: platform
|
||||||
|
pcnet_cs: platform pcnet_cs serial_cs
|
||||||
|
3c589_cs: platform serial_cs
|
||||||
|
3c574_cs: platform serial_cs
|
||||||
|
serial_cs: platform
|
||||||
|
smc91c92_cs: platform
|
||||||
|
cx23418: media cx18
|
||||||
|
cx23885: media cx25840
|
||||||
|
cx23840: media cx25840
|
||||||
|
qlogicpti: qlogic
|
||||||
|
myri_sbus: network
|
||||||
|
bnx2x: bnx2
|
||||||
|
bnx2: bnx2
|
||||||
|
netxen_nic: network netxen_nic qlcnic
|
||||||
|
dvb-ttpci: media
|
||||||
|
snd-wavefront: sound
|
||||||
|
rt61pci: network
|
||||||
|
rt73usb: usb-network
|
||||||
|
mt7601u: mediatek
|
||||||
|
rt2800pci: realtek
|
||||||
|
rt2860sta: realtek
|
||||||
|
rt2800usb: realtek
|
||||||
|
rt2870sta: realtek
|
||||||
|
usbdux/usbduxfast/usbduxsigma: platform usbdux usbduxfast usbduxsigma
|
||||||
|
xc4000: media
|
||||||
|
xc5000: media
|
||||||
|
dib0700: media dvb_usb_dib0700
|
||||||
|
ath3k: atheros
|
||||||
|
mga: platform
|
||||||
|
r128: platform
|
||||||
|
radeon: radeon radeon amdgpu
|
||||||
|
en8811h: network
|
||||||
|
amdgpu: amdgpu
|
||||||
|
amd_pmf: platform
|
||||||
|
s2255drv: platform
|
||||||
|
rtl8192e: realtek r8192e_pci
|
||||||
|
lgs8gxx: media
|
||||||
|
ib_qib: qlogic
|
||||||
|
qed: qlogic qede qedf qedi
|
||||||
|
ueagle-atm: ueagle
|
||||||
|
vxge: network
|
||||||
|
brcmsmac: brcm
|
||||||
|
brcmfmac: brcm
|
||||||
|
ti-vpe: media
|
||||||
|
wl1251: ti
|
||||||
|
wl12xx: ti wl12xx wl12xx_sdio wl12xx_spi
|
||||||
|
wl18xx: ti wl18xx wlcore
|
||||||
|
cc33xx: ti
|
||||||
|
TI_ST: ti
|
||||||
|
tlg2300: media poseidon
|
||||||
|
r8712u: realtek
|
||||||
|
rtl8192ce: realtek
|
||||||
|
rtl8192cu: realtek rtl8192cu rtl8xxxu
|
||||||
|
rtl8192se: realtek
|
||||||
|
rtl8192de: realtek
|
||||||
|
rtl8723e: realtek
|
||||||
|
rtl8723be: realtek
|
||||||
|
rtl8723de: realtek
|
||||||
|
r8723au: realtek
|
||||||
|
rtl8188ee: realtek
|
||||||
|
rtl8188eu: realtek rtl8188eu r8188eu
|
||||||
|
rtl8821ae: realtek
|
||||||
|
rtl8822be: realtek rtl8822be r8822be
|
||||||
|
rtw88: realtek rtw88_pci
|
||||||
|
rtw89: realtek rtw89_pci
|
||||||
|
rtl8192ee: realtek
|
||||||
|
rtl8723bs: realtek
|
||||||
|
rtl8xxxu: realtek
|
||||||
|
r8169: realtek
|
||||||
|
r8152: realtek
|
||||||
|
rt1320: realtek snd-soc-rt1320-sdw
|
||||||
|
vt6656: usb-network vt6656_stage
|
||||||
|
DFU: atheros ar3k
|
||||||
|
Atheros: atheros ar3k
|
||||||
|
ath6kl: atheros ath6kl_sdio ath6kl_usb
|
||||||
|
ath10k: ath10k ath10k_pci ath10k_sdio ath10k_usb
|
||||||
|
ath11k: ath11k ath11k_pci
|
||||||
|
ath12k: ath12k ath12k_pci
|
||||||
|
myri10ge: network
|
||||||
|
drxk: media
|
||||||
|
ene-ub6250: platform ums_eneub6250
|
||||||
|
isci: intel
|
||||||
|
ar5523: atheros
|
||||||
|
s5p-mfc: media
|
||||||
|
carl9170: atheros
|
||||||
|
snd-hda-codec-ca0132: sound
|
||||||
|
btusb: bluetooth btusb btintel btrtl
|
||||||
|
btmtk_usb: mediatek
|
||||||
|
rp2: serial
|
||||||
|
go7007: platform go7007 saa7134-go7007 go7007-loader
|
||||||
|
ccp: platform
|
||||||
|
microcode_amd: ucode-amd
|
||||||
|
mxu11x0: serial ti_usb_3410_5052
|
||||||
|
mxuport: serial
|
||||||
|
cw1200: network
|
||||||
|
BFA/BNA: qlogic bfa bna
|
||||||
|
qat: intel qat_dh895xcc qat_c3xxx qat_c62x
|
||||||
|
rsi: usb-network rsi rsi_usb rsi_sdio
|
||||||
|
xhci-rcar: platform
|
||||||
|
snd_soc_sst_acpi: sound snd-soc-sst-acpi snd-intel-sst-acpi
|
||||||
|
as102: media
|
||||||
|
it9135: media dvb_usb_af9035
|
||||||
|
snd_soc_catpt: sound
|
||||||
|
snd_soc_avs: sound
|
||||||
|
snd_intel_sst_core: sound
|
||||||
|
snd-soc-skl: sound
|
||||||
|
smsmdtv: media
|
||||||
|
xhci-tegra: nvidia
|
||||||
|
tegra-vic: nvidia tegra_drm
|
||||||
|
atusb: usb-network
|
||||||
|
qca: bluetooth btqca
|
||||||
|
btqca: bluetooth
|
||||||
|
liquidio: liquidio
|
||||||
|
nitrox: platform n5pf
|
||||||
|
i915: i915
|
||||||
|
nouveau: nvidia nouveau
|
||||||
|
xe: i915
|
||||||
|
wilc1000: network
|
||||||
|
hfi1: intel
|
||||||
|
knav_qmss_queue: ti
|
||||||
|
mwlwifi: marvell
|
||||||
|
mtk-vpu: media
|
||||||
|
mtk_scp: mediatek
|
||||||
|
btmtk: mediatek btmtk btmtkuart btmtksdio
|
||||||
|
rk3399-dptx: platform
|
||||||
|
mt76x0: mediatek mt76x0u mt76x0e
|
||||||
|
mt76x2e: mediatek mt76x2e mt76x2u
|
||||||
|
mt76x2u: mediatek
|
||||||
|
mt7615e: mediatek
|
||||||
|
mt7622: mediatek mt7615e
|
||||||
|
mt7663: mediatek mt7615e
|
||||||
|
mt7915e: mediatek mt7915
|
||||||
|
mt7921: mediatek mt7921e mt7921s mt7921u
|
||||||
|
mt7922: mediatek mt7921e mt7921s mt7921u
|
||||||
|
mt7925: mediatek mt7925e mt7925u
|
||||||
|
mt7988: mediatek
|
||||||
|
mt7996e: mediatek
|
||||||
|
nfp: nfp
|
||||||
|
wil6210: atheros
|
||||||
|
venus: media
|
||||||
|
iris: media
|
||||||
|
imx-sdma: platform
|
||||||
|
adreno: qcom msm
|
||||||
|
mlxsw_spectrum: mellanox
|
||||||
|
cdns-mhdp: platform
|
||||||
|
fsl-mc: dpaa2
|
||||||
|
mscc-phy: platform
|
||||||
|
meson-vdec: media
|
||||||
|
ice: network
|
||||||
|
inside-secure: platform crypto_safexcel
|
||||||
|
qcom_q6v5_pas: qcom
|
||||||
|
qcom_q6v5_mss: qcom
|
||||||
|
prestera: prestera
|
||||||
|
lt9611uxc: platform lontium-lt9611uxc
|
||||||
|
wfx: platform
|
||||||
|
wave5: platform
|
||||||
|
rvu_cptpf: platform
|
||||||
|
amphion: platform
|
||||||
|
cs35l41_hda: sound snd-hda-scodec-cs35l41-i2c snd-hda-scodec-cs35l41-spi
|
||||||
|
cs35l56: sound snd-hda-scodec-cs35l56-i2c snd-hda-scodec-cs35l56-spi
|
||||||
|
cs42l43: sound
|
||||||
|
mtk-sof: sound snd-sof-mt8186 snd-sof-mt8195
|
||||||
|
nxp-sr1xx: platform
|
||||||
|
btnxpuart: platform
|
||||||
|
qcom-sc8280xp: sound snd-soc-sc8280xp
|
||||||
|
amlogic: bluetooth
|
||||||
|
powervr: platform
|
||||||
|
qcom-sm8550: sound snd-soc-sc8280xp
|
||||||
|
qcom-sm8650: sound snd-soc-sc8280xp
|
||||||
|
ti-tas2781: sound snd-hda-scodec-tas2781-i2c
|
||||||
|
ti-tas2563: sound snd-hda-scodec-tas2781-i2c
|
||||||
|
Mont-TSSE: platform
|
||||||
|
panthor: platform
|
||||||
|
isp: amdgpu amdgpu
|
||||||
|
qaic: qcom
|
||||||
|
ish: intel intel-ish-ipc
|
||||||
|
ast: platform
|
27
uncompressed-post
Normal file
27
uncompressed-post
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
%pre
|
||||||
|
# ugly workaround for changing qcom/LENOVO/21BX to a symlink (bsc#1204103)
|
||||||
|
if [ ! -L %{_firmwaredir}/qcom/LENOVO/21BX ]; then
|
||||||
|
if [ -d %{_firmwaredir}/qcom/LENOVO/21BX ]; then
|
||||||
|
mv %{_firmwaredir}/qcom/LENOVO/21BX %{_firmwaredir}/qcom/LENOVO/21BX.xxxold
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
%post
|
||||||
|
# ugly workaround (bsc#1204103)
|
||||||
|
if [ -d %{_firmwaredir}/qcom/LENOVO/21BX.xxxold ]; then
|
||||||
|
mv %{_firmwaredir}/qcom/LENOVO/21BX %{_firmwaredir}/qcom/LENOVO/21BX.xxxnew
|
||||||
|
mv %{_firmwaredir}/qcom/LENOVO/21BX.xxxold %{_firmwaredir}/qcom/LENOVO/21BX
|
||||||
|
else
|
||||||
|
%{?regenerate_initrd_post}
|
||||||
|
fi
|
||||||
|
|
||||||
|
%postun
|
||||||
|
%{?regenerate_initrd_post}
|
||||||
|
|
||||||
|
%posttrans
|
||||||
|
# ugly workaround (bsc#1204103)
|
||||||
|
if [ -L %{_firmwaredir}/qcom/LENOVO/21BX.xxxnew ]; then
|
||||||
|
rm -rf %{_firmwaredir}/qcom/LENOVO/21BX
|
||||||
|
mv %{_firmwaredir}/qcom/LENOVO/21BX.xxxnew %{_firmwaredir}/qcom/LENOVO/21BX
|
||||||
|
fi
|
||||||
|
%{?regenerate_initrd_posttrans}
|
17
update-aliases.py
Normal file
17
update-aliases.py
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/python3
|
||||||
|
#
|
||||||
|
# A program to update aliases.list from the given kernel binary rpms
|
||||||
|
#
|
||||||
|
# usage: update-aliases.py KERNEL-RPMs...
|
||||||
|
#
|
||||||
|
|
||||||
|
from sys import argv
|
||||||
|
from fwtopics import FWTopics
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
fw = FWTopics()
|
||||||
|
fw.read_aliases()
|
||||||
|
argv.pop(0)
|
||||||
|
for arg in argv:
|
||||||
|
fw.scan_firmware(arg, fw.update_alias())
|
||||||
|
fw.write_aliases()
|
Loading…
Reference in New Issue
Block a user