diff --git a/pkg.info b/pkg.info index 2b8590f..b8a2061 100644 --- a/pkg.info +++ b/pkg.info @@ -1,6 +1,7 @@ name: linux-firmware description: Base source package for all linux firmware files version: 20250627 +revision: 2 url: https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git license: See /usr/share/licenses/linux-firmware/ architecture: any @@ -15,3 +16,7 @@ split_packages: description: Intel GPU microcode - name: linux-firmware-nvidia description: Nvidia GPU microcode + - name: linux-firmware-broadcom + description: Broadcom and Cypress network adapter firmware + - name: linux-firmware-network + description: Network device firmware for WLAN, Bluetooth, Ethernet, etc. diff --git a/source.sh b/source.sh index f52ffd5..e4cde57 100644 --- a/source.sh +++ b/source.sh @@ -62,3 +62,104 @@ package_linux-firmware-nvidia() { # Install package license install -Dm644 LICENCE.nvidia "$BPM_OUTPUT"/usr/share/licenses/linux-firmware/nvidia/LICENSE.nvidia } + +package_linux-firmware-broadcom() { + # Copy firmware files to broadcom packages + install -dm755 "$BPM_OUTPUT"/usr/lib/firmware/ + mv temp/usr/lib/firmware/brcm "$BPM_OUTPUT"/usr/lib/firmware/ + mv temp/usr/lib/firmware/cypress "$BPM_OUTPUT"/usr/lib/firmware/ + + # Install package licenses + install -Dm644 LICENCE.{broadcom_bcm43xx,cypress} -t "$BPM_OUTPUT"/usr/share/licenses/linux-firmware/broadcom/ +} + +package_linux-firmware-network() { + _dirs=( + # Airoha Ethernet PHY + airoha + # Amlogic bluetooth + "amlogic/aml_w*_bt_uart.bin*" + # Atheros WLAN/bluetooth + "ath*" "ar*" "carl9170*" "htc*" + # Atmel WLAN + atmel + # ATUSB transceiver + atusb + # BNX2 Ethernet + "bnx2*" + # Sun Cassini Ethernet + "sun/cassini*" + # Chelsio Ethernet + "cxgb*" + # ST-E WLAN + "wsm_22.bin*" + # Intel WLAN/Ethernet/bluetooth + e100 "hfi1_*.fw*" "intel*" "iwlwifi*" + # Orinoco WLAN + "agere*" + # IXP4xx + ixp4xx + # KL5KUSB101 Ethernet + kaweth + # Cavium LiquidIO NIC + liquidio + # Mediatek WLAN/bluetooth + "mt7*.bin*" + # Mellanox ethernet + mellanox + # Marvell WLAN/bluetooth + mrvl "lbtf_usb.bin*" libertas mwl8k + # Multi-Tech modem + "mts_*.fw*" + # Myricom ethernet + "myri10ge*" myricom + # NXP UWB/bluetooth + "nxp/sr150_fw.bin*" "nxp/helper_uart*.bin*" "nxp/uartiw*.bin*" "nxp/uartspi*.se*" "nxp/uartuart*" + # Qualcomm WLAN/bluetooth + qca "wil6210*" + # QLogic HBA + "cbfw*.bin*" "ct2fw*.bin*" "ctfw*.bin*" "qed" "ql2*.bin*" "qlogic" "phanfw.bin*" + # Ralink WLAN + "rt*.bin*" + # Redpine WLAN/bluetooth + "rsi*" + # Realtek bluetooth/ethernet/WLAN + "rtl*" "rtw*" + # Sagrad WLAN + "sdd_sagrad_*.bin*" + # Slicoss NICs + slicoss + # Adaptec ethernet + "adaptec/starfire*" + # Tehuti NICs + tehuti + # TI WLAN/bluetooth + ti-connectivity + # Tigon ethernet + acenic tigon + # 3Com ethernet + 3com + # Eagle USB modem + ueagle-atm + # Via USB WLAN + "vntwusb.fw*" + # Microchip Ethernet + "microchip/mscc_vsc85*.bin*" + # Exar Ethernet + vxge + # SiLabs WLAN + wfx + ) + + install -dm755 "$BPM_OUTPUT"/usr/lib/firmware/ + for _dir in "${_dirs[@]}"; do + mv temp/usr/lib/firmware/${_dir} "$BPM_OUTPUT"/usr/lib/firmware/ + done + + # Move mediatek directory contents except for SoC firmware + install -dm755 "$BPM_OUTPUT"/usr/lib/firmware/mediatek/ + for file in $(find temp/usr/lib/firmware/mediatek/ -maxdepth 1 -mindepth 1 ! \( -name 'mt7981*' -o -name 'mt7986*' -o -name 'mt81*' -o -name 'sof*' \)); do + mv $file -t "$BPM_OUTPUT"/usr/lib/firmware/mediatek/ + done + #mv /!(mt7981*|mt7986*|mt81*|sof*) "$BPM_OUTPUT"/usr/lib/firmware/ +}