[pve-devel] [PATCH] exclude firmware files distributed by Debian

Dietmar Maurer dietmar at proxmox.com
Sat Dec 10 10:05:16 CET 2011


The whole purpose of the pve-firmware package is that it includes 'all'
necessary (all referenced) firmware drivers.

So the correct way to fix that is to add 'Conflict' and 'Replaces' tags in the control file.

So what packages makes problems exactly?

- Dietmar

> -----Original Message-----
> From: pve-devel-bounces at pve.proxmox.com [mailto:pve-devel-
> bounces at pve.proxmox.com] On Behalf Of Derek W. Poon
> Sent: Freitag, 09. Dezember 2011 23:15
> To: pve-devel at pve.proxmox.com
> Subject: [pve-devel] [PATCH] exclude firmware files distributed by Debian
> 
> To allow coexistence with Debian packages, exclude firmware files already
> distributed by Debian when building pve-firmware.  Otherwise, proxmox-ve
> could fail to install on top of an existing Debian system.
> ---
>  Makefile             |    2 +-
>  assemble-firmware.pl |  210
> +++++++++++++++++++++++++++++++++++++++++++++++---
>  changelog.firmware   |    6 ++
>  control.firmware     |    3 +-
>  4 files changed, 208 insertions(+), 13 deletions(-)
> 
> diff --git a/Makefile b/Makefile
> index cc6d6f2..e1a1a72 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -25,7 +25,7 @@ KERNEL_CFG=config-${KERNEL_VER}
>  KERNEL_CFG_ORG=config-${KERNEL_VER}-${OVZVER}.x86_64
> 
>  FW_VER=1.0
> -FW_REL=13
> +FW_REL=14
>  FW_DEB=pve-firmware_${FW_VER}-${FW_REL}_all.deb
> 
>  AOEDIR=aoe6-77
> diff --git a/assemble-firmware.pl b/assemble-firmware.pl index
> 1a507b8..02a81a8 100755
> --- a/assemble-firmware.pl
> +++ b/assemble-firmware.pl
> @@ -15,15 +15,14 @@ die "no firmware list specified" if !$fwlist || ! -f $fwlist;
> my $target = shift;  die "no target directory" if !$target || ! -d $target;
> 
> -my $force_skip = {
> +my $force_skip = { map { $_ => 1 } (
> 
>      # not needed, the HBA has burned-in firmware
> -    'ql8100_fw.bin' => 1,
> -};
> +    'ql8100_fw.bin',
> +)};
> 
> -my $skip = {};
>  # debian squeeze also misses those files -foreach my $fw (qw(
> +my $skip = { map { $_ => 1 } (qw(
>  libertas/gspi8385.bin libertas/gspi8385_hlp.bin  cbfw.bin ctfw.bin
> tehuti/firmware.bin @@ -61,7 +60,6 @@ symbol_sp24t_sec_fw
> symbol_sp24t_prim_fw  prism_ap_fw.bin  prism_sta_fw.bin -ar9170.fw
> iwmc3200wifi-lmac-sdio.bin  iwmc3200wifi-calib-sdio.bin  iwmc3200wifi-umac-
> sdio.bin @@ -115,10 +113,200 @@ mwl8k/helper_8363.fw  iwlwifi-6000g2a-
> 4.ucode  iwlwifi-130-5.ucode  cxgb4/t4fw.bin
> -
> -)) {
> -    $skip->{$fw} = 1;
> -}
> +))};
> +
> +# These firmwares are included in packages generated from Debian source
> +# package firmware-nonfree-0.28+squeeze1.  They should be excluded from
> +# pve-firmware so as not to conflict with Debian; otherwise, some
> +package # will fail to install.
> +#
> +# This list was generated by building firmware-nonfree, then running
> +#   find debian/firmware-*/lib/firmware -type f | \
> +#       sed -e 's,^debian/firmware-.*/lib/firmware/,,'
> +# ... and finally appending the filelist of the firmware-linux-free package.
> +my $debian_fw = { map { $_ => 1 } (qw(
> +ar7010_1_1.fw
> +ar9170.fw
> +ar9271.fw
> +ar7010.fw
> +ath3k-1.fw
> +bnx2-09-4.0.5.fw
> +bnx2-06-4.0.5.fw
> +bnx2/bnx2-rv2p-09ax-6.0.17.fw
> +bnx2/bnx2-rv2p-09-6.0.17.fw
> +bnx2/bnx2-rv2p-06-6.0.15.fw
> +bnx2/bnx2-mips-06-6.0.15.fw
> +bnx2/bnx2-rv2p-06-5.0.0.j3.fw
> +bnx2/bnx2-mips-09-6.0.17.fw
> +bnx2/bnx2-rv2p-09ax-5.0.0.j3.fw
> +bnx2/bnx2-mips-06-5.0.0.j3.fw
> +bnx2/bnx2-rv2p-09-5.0.0.j3.fw
> +bnx2/bnx2-mips-09-5.0.0.j3.fw
> +bnx2x-e1-4.8.53.0.fw
> +bnx2x/bnx2x-e1-6.0.34.0.fw
> +bnx2x/bnx2x-e2-6.0.34.0.fw
> +bnx2x/bnx2x-e1h-6.0.34.0.fw
> +bnx2x-e1-5.0.21.0.fw
> +bnx2x-e1h-4.8.53.0.fw
> +bnx2x-e1h-5.0.21.0.fw
> +brcm/bcm43xx_hdr-0.fw
> +brcm/bcm43xx-0.fw
> +i6050-fw-usb-1.5.sbcf
> +i2400m-fw-usb-1.4.sbcf
> +i2400m-fw-usb-1.5.sbcf
> +ipw2200-sniffer.fw
> +ipw2100-1.3.fw
> +ipw2200-ibss.fw
> +ipw2100-1.3-p.fw
> +ipw2100-1.3-i.fw
> +ipw2200-bss.fw
> +v4l-cx2341x-dec.fw
> +v4l-pvrusb2-24xxx-01.fw
> +v4l-cx2341x-enc.fw
> +v4l-pvrusb2-29xxx-01.fw
> +v4l-cx25840.fw
> +v4l-cx2341x-init.mpg
> +iwlwifi-5150-2.ucode
> +iwlwifi-6000-4.ucode
> +iwlwifi-1000-3.ucode
> +iwlwifi-5000-2.ucode
> +iwlwifi-6050-4.ucode
> +iwlwifi-6050-5.ucode
> +iwlwifi-5000-1.ucode
> +iwlwifi-3945-2.ucode
> +iwlwifi-4965-1.ucode
> +iwlwifi-4965-2.ucode
> +iwlwifi-6000g2a-5.ucode
> +iwlwifi-3945-1.ucode
> +iwlwifi-6000g2b-5.ucode
> +tehuti/bdx.bin
> +mts_gsm.fw
> +agere_ap_fw.bin
> +e100/d101s_ucode.bin
> +e100/d102e_ucode.bin
> +e100/d101m_ucode.bin
> +3com/typhoon.bin
> +advansys/38C0800.bin
> +advansys/38C1600.bin
> +advansys/3550.bin
> +advansys/mcode.bin
> +vntwusb.fw
> +radeon/R520_cp.bin
> +radeon/REDWOOD_pfp.bin
> +radeon/REDWOOD_rlc.bin
> +radeon/RV710_pfp.bin
> +radeon/RV630_me.bin
> +radeon/CEDAR_pfp.bin
> +radeon/CYPRESS_rlc.bin
> +radeon/R420_cp.bin
> +radeon/JUNIPER_pfp.bin
> +radeon/CYPRESS_me.bin
> +radeon/RS780_me.bin
> +radeon/RV620_me.bin
> +radeon/REDWOOD_me.bin
> +radeon/RV610_pfp.bin
> +radeon/R600_rlc.bin
> +radeon/RV710_me.bin
> +radeon/RV610_me.bin
> +radeon/RV620_pfp.bin
> +radeon/RS600_cp.bin
> +radeon/R200_cp.bin
> +radeon/RV635_me.bin
> +radeon/JUNIPER_me.bin
> +radeon/RV770_pfp.bin
> +radeon/RV730_me.bin
> +radeon/RV670_me.bin
> +radeon/R300_cp.bin
> +radeon/RV670_pfp.bin
> +radeon/R600_me.bin
> +radeon/RV635_pfp.bin
> +radeon/RS690_cp.bin
> +radeon/CEDAR_rlc.bin
> +radeon/RV730_pfp.bin
> +radeon/R700_rlc.bin
> +radeon/RV770_me.bin
> +radeon/R100_cp.bin
> +radeon/CEDAR_me.bin
> +radeon/CYPRESS_pfp.bin
> +radeon/JUNIPER_rlc.bin
> +radeon/R600_pfp.bin
> +radeon/RS780_pfp.bin
> +radeon/RV630_pfp.bin
> +dvb-usb-dib0700-1.20.fw
> +matrox/g200_warp.fw
> +matrox/g400_warp.fw
> +kaweth/trigger_code_fix.bin
> +kaweth/trigger_code.bin
> +kaweth/new_code_fix.bin
> +kaweth/new_code.bin
> +tigon/tg3_tso5.bin
> +tigon/tg3_tso.bin
> +tigon/tg3.bin
> +agere_sta_fw.bin
> +dvb-fe-xc5000-1.6.114.fw
> +dabusb/firmware.fw
> +dabusb/bitstream.bin
> +mts_edge.fw
> +r128/r128_cce.bin
> +mts_cdma.fw
> +cxgb3/ael2005_twx_edc.bin
> +cxgb3/ael2005_opt_edc.bin
> +cxgb3/t3c_psram-1.1.0.bin
> +cxgb3/t3b_psram-1.1.0.bin
> +cxgb3/ael2020_twx_edc.bin
> +cxgb3/t3fw-7.4.0.bin
> +phanfw.bin
> +qlogic/1280.bin
> +qlogic/sd7220.fw
> +qlogic/1040.bin
> +qlogic/12160.bin
> +ql2400_fw.bin
> +ql2100_fw.bin
> +ql2500_fw.bin
> +ql2300_fw.bin
> +ql2200_fw.bin
> +ql2322_fw.bin
> +rt2561.bin
> +rt2860.bin
> +rt73.bin
> +rt3090.bin
> +rt2870.bin
> +rt3071.bin
> +rt2561s.bin
> +rt3070.bin
> +rt2661.bin
> +rtl_nic/rtl8105e-1.fw
> +rtl_nic/rtl8168e-2.fw
> +rtl_nic/rtl8168d-2.fw
> +rtl_nic/rtl8168e-1.fw
> +rtl_nic/rtl8168e-3.fw
> +rtl_nic/rtl8168d-1.fw
> +RTL8192SU/rtl8192sfw.bin
> +rtlwifi/rtl8712u.bin
> +RTL8192E/boot.img
> +RTL8192E/main.img
> +RTL8192E/data.img
> +
> +av7110/bootcode.bin
> +cis/3CCFEM556.cis
> +cis/3CXEM556.cis
> +cis/COMpad2.cis
> +cis/COMpad4.cis
> +cis/DP83903.cis
> +cis/LA-PCM.cis
> +cis/MT5634ZLX.cis
> +cis/NE2K.cis
> +cis/PCMLM28.cis
> +cis/PE-200.cis
> +cis/RS-COM-2P.cis
> +cis/SW_555_SER.cis
> +cis/SW_7xx_SER.cis
> +cis/SW_8xx_SER.cis
> +cis/tamarack.cis
> +dsp56k/bootstrap.bin
> +keyspan_pda/keyspan_pda.fw
> +keyspan_pda/xircom_pgs.fw
> +))};
> 
>  sub copy_fw {
>      my ($src, $dstfw) = @_;
> @@ -169,6 +357,8 @@ while(defined(my $line = <TMP>)) {
>  	$fw = 'cis/PE520.cis';
>      }
> 
> +    next if $debian_fw->{$fw};
> +
>      if (-f "$fwsrc0/$fw") {
>  	copy_fw("$fwsrc0/$fw", $fwdest);
>  	next;
> diff --git a/changelog.firmware b/changelog.firmware index 009d888..f92d096
> 100644
> --- a/changelog.firmware
> +++ b/changelog.firmware
> @@ -1,3 +1,9 @@
> +pve-firmware (1.0-13) unstable; urgency=low
> +
> +  * exclude firmware files distributed by Debian, to allow coexistence
> +
> + -- Derek Poon <derekp+pve at ece.ubc.ca>  Fri, 9 Dec 2011 13:51:20 -0800
> +
>  pve-firmware (1.0-12) unstable; urgency=low
> 
>    * add Brocade firmware
> diff --git a/control.firmware b/control.firmware index 00b949c..cf91e70 100644
> --- a/control.firmware
> +++ b/control.firmware
> @@ -3,8 +3,7 @@ Version: @VERSION@
>  Section: misc
>  Priority: optional
>  Architecture: all
> -Suggests: linux-image
> -Conflicts: firmware-linux-free, firmware-linux-nonfree
> +Suggests: linux-image, firmware-linux, firmware-linux-nonfree,
> +firmware-atheros, firmware-bnx2, firmware-bnx2x, firmware-brcm80211,
> +firmware-intelwimax, firmware-ipw2x00, firmware-ivtv, firmware-iwlwifi,
> +firmware-netxen, firmware-qlogic, firmware-ralink, firmware-realtek
>  Maintainer: Proxmox Support Team <support at proxmox.com>
>  Description: Binary firmware code for the pve-kernel
>   This package contains the binary firmware for various modules used in
> --
> 1.7.2.5
> 
> 
> _______________________________________________
> pve-devel mailing list
> pve-devel at pve.proxmox.com
> http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel




More information about the pve-devel mailing list