[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#823637: firmware-nonfree: please add a firmware-nvidia-graphics package



Control: reassign 839139 src:firmware-nonfree
Control: severity -1 important
Control: merge -1 839139
Control: tags -1 patch

On 2016-05-06 23:23 +0200, Sven Joachim wrote:

> Source: firmware-nonfree
> Version: 20160110-1
> Severity: wishlist
>
> Starting with the Maxwell GM20x generation[1], NVidia graphics cards
> require signed firmware for most operations, the Nouveau driver does not
> provide acceleration without the firmware.
>
> In February 2016, NVidia finally made the firmware available in the
> linux-firmware git repository, and with Linux 4.6 and Mesa 11.2 (both
> currently in experimental) users should be able to get acceptable
> performance out of their expensive cards without having to resort to the
> proprietary driver.

This really ought to be fixed, as these cards have become very common
and users are complaining (see #839139).  The second of the attached
patches creates a new firmware-nvidia-graphics package with the firmware
files for Maxwell and Pascal chips.  While I still don't have the
hardware to test the package, at least update-initramfs no longer warns
about missing firmware when nouveau is included in
/etc/initramfs-tools/modules.

The new package currently is slightly under 60 kilobytes, and it would
certainly also be possible to put the files into the
firmware-misc-nonfree catch-all package (the Tegra firmware is already
there).  However, more NVidia firmware is probably going to be released
in the future, so a separate package makes sense to me.

In any case, the first of the two attached patches fixes a problem in
debian/rules.real where 'ln' would fail because a target directory does
not exist.

Thanks for consideration,
Sven

>From f5e3018be836ce90e1c2977adb7555d9743d0702 Mon Sep 17 00:00:00 2001
From: Sven Joachim <svenjoac@gmx.de>
Date: Fri, 14 Oct 2016 12:58:07 +0200
Subject: [PATCH 1/2] Ensure that target directory for symbolic links exists

If a directory contains only symlinks and no regular files, as in the
case of nvidia/gm204/acr/, installing the symlink would fail:

ln -s ../../gm200/acr/ucode_unload.bin debian/firmware-nvidia-graphics/lib/firmware/nvidia/gm204/acr/ucode_unload.bin
ln: failed to create symbolic link 'debian/firmware-nvidia-graphics/lib/firmware/nvidia/gm204/acr/ucode_unload.bin': No such file or directory
debian/rules.real:13: recipe for target 'install' failed
---
 debian/rules.real | 1 +
 1 file changed, 1 insertion(+)

diff --git a/debian/rules.real b/debian/rules.real
index 1def0e3..b0490d6 100644
--- a/debian/rules.real
+++ b/debian/rules.real
@@ -22,6 +22,7 @@ install:
 	@for i in $(LINKS); do \
 	  link=debian/$(PACKAGE_NAME)/lib/firmware/"$${i%:*}"; \
 	  target="$${i#*:}"; \
+	  install -d "$${link%/*}"; \
 	  echo ln -s "$$target" "$$link"; \
 	  ln -s "$$target" "$$link"; \
 	done
-- 
2.9.3

>From 208ed145066f2394dd0e9ed38bce81971625d3ec Mon Sep 17 00:00:00 2001
From: Sven Joachim <svenjoac@gmx.de>
Date: Fri, 14 Oct 2016 10:44:58 +0200
Subject: [PATCH 2/2] Add an nvidia-graphics-firmware package

---
 debian/config/defines                 |   1 +
 debian/config/nvidia-graphics/LICENSE | 130 ++++++++++++++++++++++++++++++++++
 debian/config/nvidia-graphics/defines |  76 ++++++++++++++++++++
 3 files changed, 207 insertions(+)
 create mode 100644 debian/config/nvidia-graphics/LICENSE
 create mode 100644 debian/config/nvidia-graphics/defines

diff --git a/debian/config/defines b/debian/config/defines
index 713a491..15d857e 100644
--- a/debian/config/defines
+++ b/debian/config/defines
@@ -15,6 +15,7 @@ packages:
  misc-nonfree
  myricom
  netxen
+ nvidia-graphics
  qlogic
  realtek
  samsung
diff --git a/debian/config/nvidia-graphics/LICENSE b/debian/config/nvidia-graphics/LICENSE
new file mode 100644
index 0000000..6dfb2aa
--- /dev/null
+++ b/debian/config/nvidia-graphics/LICENSE
@@ -0,0 +1,130 @@
+Files: nvidia/*
+Copyright:
+License: License For Customer Use of NVIDIA Software
+ IMPORTANT NOTICE -- READ CAREFULLY: This License For Customer Use of
+ NVIDIA Software ("LICENSE") is the agreement which governs use of
+ the software of NVIDIA Corporation and its subsidiaries ("NVIDIA")
+ downloadable herefrom, including computer software and associated
+ printed materials ("SOFTWARE").  By downloading, installing, copying,
+ or otherwise using the SOFTWARE, you agree to be bound by the terms
+ of this LICENSE.  If you do not agree to the terms of this LICENSE,
+ do not download the SOFTWARE.
+ .
+ RECITALS
+ .
+ Use of NVIDIA's products requires three elements: the SOFTWARE, the
+ hardware, and a personal computer. The SOFTWARE is protected by copyright
+ laws and international copyright treaties, as well as other intellectual
+ property laws and treaties.  The SOFTWARE may be protected by various
+ patents, and is not sold, and instead is only licensed for use, strictly
+ in accordance with this document.  The hardware is protected by various
+ patents, and is sold, but this agreement does not cover that sale, since
+ it may not necessarily be sold as a package with the SOFTWARE.  This
+ agreement sets forth the terms and conditions of the SOFTWARE LICENSE only.
+ .
+ 1.  DEFINITIONS
+ .
+ 1.1  Customer.  Customer means the entity or individual that
+ downloads or otherwise obtains the SOFTWARE.
+ .
+ 2.  GRANT OF LICENSE
+ .
+ 2.1  Rights and Limitations of Grant.  NVIDIA hereby grants Customer
+ the following non-exclusive, non-transferable right to use the
+ SOFTWARE, with the following limitations:
+ .
+ 2.1.1  Rights.  Customer may install and use multiple copies of the
+ SOFTWARE on a shared computer or concurrently on different computers,
+ and make multiple back-up copies of the SOFTWARE, solely for Customer's
+ use within Customer's Enterprise. "Enterprise" shall mean individual use
+ by Customer or any legal entity (such as a corporation or university)
+ and the subsidiaries it owns by more than fifty percent (50%).
+ .
+ 2.1.2  Open Source Exception.  Notwithstanding the foregoing terms
+ of Section 2.1.1, SOFTWARE may be copied and redistributed solely for
+ use on operating systems distributed under the terms of an OSI-approved
+ open source license as listed by the Open Source Initiative at
+ http://opensource.org, provided that the binary files thereof are not
+ modified, and Customer provides a copy of this license with the SOFTWARE.
+ .
+ 2.1.3  Limitations.
+ .
+ No Reverse Engineering.  Customer may not reverse engineer,
+ decompile, or disassemble the SOFTWARE, nor attempt in any other
+ manner to obtain the source code.
+ .
+ Usage. SOFTWARE is licensed only for use with microprocessor(s) which have
+ been (i) designed by NVIDIA and (ii) either (a) sold by or (b) licensed by
+ NVIDIA. Customer shall not use SOFTWARE in conjunction with, nor cause
+ SOFTWARE to be executed by, any other microprocessor.
+ .
+ No Translation. Customer shall not translate SOFTWARE, nor cause or permit
+ SOFTWARE to be translated, from the architecture or language in which it is
+ originally provided by NVIDIA, into any other architecture or language.
+ .
+ No Rental.  Customer may not rent or lease the SOFTWARE to someone
+ else.
+ .
+ 3.  TERMINATION
+ .
+ This LICENSE will automatically terminate if Customer fails to
+ comply with any of the terms and conditions hereof.  In such event,
+ Customer must destroy all copies of the SOFTWARE and all of its
+ component parts.
+ .
+ Defensive Suspension.  If Customer commences or participates in any legal
+ proceeding against NVIDIA, then NVIDIA may, in its sole discretion,
+ suspend or terminate all license grants and any other rights provided
+ under this LICENSE during the pendency of such legal proceedings.
+ .
+ 4.  COPYRIGHT
+ .
+ All title and copyrights in and to the SOFTWARE (including but
+ not limited to all images, photographs, animations, video, audio,
+ music, text, and other information incorporated into the SOFTWARE),
+ the accompanying printed materials, and any copies of the SOFTWARE,
+ are owned by NVIDIA, or its suppliers.  The SOFTWARE is protected
+ by copyright laws and international treaty provisions.  Accordingly,
+ Customer is required to treat the SOFTWARE like any other copyrighted
+ material, except as otherwise allowed pursuant to this LICENSE
+ and that it may make one copy of the SOFTWARE solely for backup or
+ archive purposes.
+ .
+ 5.  APPLICABLE LAW
+ .
+ This agreement shall be deemed to have been made in, and shall be
+ construed pursuant to, the laws of the State of California.
+ .
+ 6.  DISCLAIMER OF WARRANTIES AND LIMITATION ON LIABILITY
+ .
+ 6.1  No Warranties.  TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE
+ LAW, THE SOFTWARE IS PROVIDED "AS IS" AND NVIDIA AND ITS SUPPLIERS
+ DISCLAIM ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT
+ NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ FOR A PARTICULAR PURPOSE.
+ .
+ 6.2  No Liability for Consequential Damages.  TO THE MAXIMUM
+ EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL NVIDIA OR
+ ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR
+ CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION,
+ DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS
+ OF BUSINESS INFORMATION, OR ANY OTHER PECUNIARY LOSS) ARISING OUT
+ OF THE USE OF OR INABILITY TO USE THE SOFTWARE, EVEN IF NVIDIA HAS
+ BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+ .
+ 7.  MISCELLANEOUS
+ .
+ The United Nations Convention on Contracts for the International
+ Sale of Goods is specifically disclaimed.  If any provision of this
+ LICENSE is inconsistent with, or cannot be fully enforced under,
+ the law, such provision will be construed as limited to the extent
+ necessary to be consistent with and fully enforceable under the law.
+ This agreement is the final, complete and exclusive agreement between
+ the parties relating to the subject matter hereof, and supersedes
+ all prior or contemporaneous understandings and agreements relating
+ to such subject matter, whether oral or written.  Customer agrees
+ that it will not ship, transfer or export the SOFTWARE into any
+ country, or use the SOFTWARE in any manner, prohibited by the
+ United States Bureau of Export Administration or any export laws,
+ restrictions or regulations.  This LICENSE may only be modified in
+ writing signed by an authorized officer of NVIDIA.
diff --git a/debian/config/nvidia-graphics/defines b/debian/config/nvidia-graphics/defines
new file mode 100644
index 0000000..1c6fac7
--- /dev/null
+++ b/debian/config/nvidia-graphics/defines
@@ -0,0 +1,76 @@
+[base]
+desc: NVIDIA graphics chips
+longdesc: NVIDIA Maxwell and Pascal graphics chips supported by the nouveau driver
+files:
+ nvidia/gm200/acr/bl.bin
+ nvidia/gm200/acr/ucode_load.bin
+ nvidia/gm200/acr/ucode_unload.bin
+ nvidia/gm200/gr/fecs_bl.bin
+ nvidia/gm200/gr/fecs_data.bin
+ nvidia/gm200/gr/fecs_inst.bin
+ nvidia/gm200/gr/fecs_sig.bin
+ nvidia/gm200/gr/gpccs_bl.bin
+ nvidia/gm200/gr/gpccs_data.bin
+ nvidia/gm200/gr/gpccs_inst.bin
+ nvidia/gm200/gr/gpccs_sig.bin
+ nvidia/gm200/gr/sw_bundle_init.bin
+ nvidia/gm200/gr/sw_ctx.bin
+ nvidia/gm200/gr/sw_method_init.bin
+ nvidia/gm200/gr/sw_nonctx.bin
+ nvidia/gm204/acr/bl.bin
+ nvidia/gm204/acr/ucode_load.bin
+ nvidia/gm204/acr/ucode_unload.bin
+ nvidia/gm204/gr/fecs_bl.bin
+ nvidia/gm204/gr/fecs_data.bin
+ nvidia/gm204/gr/fecs_inst.bin
+ nvidia/gm204/gr/fecs_sig.bin
+ nvidia/gm204/gr/gpccs_bl.bin
+ nvidia/gm204/gr/gpccs_data.bin
+ nvidia/gm204/gr/gpccs_inst.bin
+ nvidia/gm204/gr/gpccs_sig.bin
+ nvidia/gm204/gr/sw_bundle_init.bin
+ nvidia/gm204/gr/sw_ctx.bin
+ nvidia/gm204/gr/sw_method_init.bin
+ nvidia/gm204/gr/sw_nonctx.bin
+ nvidia/gm206/acr/bl.bin
+ nvidia/gm206/acr/ucode_load.bin
+ nvidia/gm206/acr/ucode_unload.bin
+ nvidia/gm206/gr/fecs_bl.bin
+ nvidia/gm206/gr/fecs_data.bin
+ nvidia/gm206/gr/fecs_inst.bin
+ nvidia/gm206/gr/fecs_sig.bin
+ nvidia/gm206/gr/gpccs_bl.bin
+ nvidia/gm206/gr/gpccs_data.bin
+ nvidia/gm206/gr/gpccs_inst.bin
+ nvidia/gm206/gr/gpccs_sig.bin
+ nvidia/gm206/gr/sw_bundle_init.bin
+ nvidia/gm206/gr/sw_ctx.bin
+ nvidia/gm206/gr/sw_method_init.bin
+ nvidia/gm206/gr/sw_nonctx.bin
+ nvidia/gm20b/acr/bl.bin
+ nvidia/gm20b/acr/ucode_load.bin
+ nvidia/gm20b/gr/fecs_bl.bin
+ nvidia/gm20b/gr/fecs_data.bin
+ nvidia/gm20b/gr/fecs_inst.bin
+ nvidia/gm20b/gr/fecs_sig.bin
+ nvidia/gm20b/gr/gpccs_data.bin
+ nvidia/gm20b/gr/gpccs_inst.bin
+ nvidia/gm20b/gr/sw_bundle_init.bin
+ nvidia/gm20b/gr/sw_ctx.bin
+ nvidia/gm20b/gr/sw_method_init.bin
+ nvidia/gm20b/gr/sw_nonctx.bin
+ nvidia/gp100/acr/bl.bin
+ nvidia/gp100/acr/ucode_load.bin
+ nvidia/gp100/acr/ucode_unload.bin
+ nvidia/gp100/gr/fecs_bl.bin
+ nvidia/gp100/gr/fecs_data.bin
+ nvidia/gp100/gr/fecs_inst.bin
+ nvidia/gp100/gr/fecs_sig.bin
+ nvidia/gp100/gr/gpccs_bl.bin
+ nvidia/gp100/gr/gpccs_data.bin
+ nvidia/gp100/gr/gpccs_inst.bin
+ nvidia/gp100/gr/gpccs_sig.bin
+ nvidia/gp100/gr/sw_bundle_init.bin
+ nvidia/gp100/gr/sw_ctx.bin
+ nvidia/gp100/gr/sw_method_init.bin
+ nvidia/gp100/gr/sw_nonctx.bin
-- 
2.9.3


Reply to: