Re: git: 3f78a234e458 - main - graphics/gpu-firmware-kmod: optionize firmware vendors

From: Emmanuel Vadot <manu_at_bidouilliste.com>
Date: Mon, 05 Dec 2022 14:11:09 UTC
 Hi Dmitry,

On Mon, 5 Dec 2022 16:35:00 +0300
Dmitry Marakasov <amdmi3@amdmi3.ru> wrote:

> * Emmanuel Vadot (manu@bidouilliste.com) wrote:
> 
> > > The branch main has been updated by amdmi3:
> > > 
> > > URL: https://cgit.FreeBSD.org/ports/commit/?id=3f78a234e45851fc57d23bd86b6362671244ecc6
> > > 
> > > commit 3f78a234e45851fc57d23bd86b6362671244ecc6
> > > Author:     Dmitry Marakasov <amdmi3@FreeBSD.org>
> > > AuthorDate: 2022-11-15 20:18:39 +0000
> > > Commit:     Dmitry Marakasov <amdmi3@FreeBSD.org>
> > > CommitDate: 2022-11-29 17:18:21 +0000
> > > 
> > >     graphics/gpu-firmware-kmod: optionize firmware vendors
> > >     
> > >     PR:             267796
> > >     Approved by:    maintainer timeout (x11, 2 weeks)
> > > ---
> > >  graphics/gpu-firmware-kmod/Makefile | 34 ++++++++++++++++++++++++----------
> > >  1 file changed, 24 insertions(+), 10 deletions(-)
> > > 
> > 
> >  Sorry, I've missed this PR.
> >  I don't really understand the point of this.
> >  This is a meta port that should always build everything, it's mostly
> > made for the end package users so every package is available
> 
> You don't need to include a package into a metapackage to make it
> available )

 Sorry I don't follow.

> > and also so
> > user who doesn't know which firmware they needs can just pkg install
> > this package. If you already know which firmware you need you can just
> > pkg install it (or just build it from ports/poudriere).
> 
> This is not true because drm-kmod unconditionally pulls
> gpu-firmware-kmod which unconditionally pulls all the firmwares.

 drm-kmod meta-port is made for two reasons :
 - Users don't know what hardware they have so a simple pkg install
drm-kmod will install everything.
 - Downstream distribution that wants to include everything a user can
have.

 If you know what hardware you have it's better to directly install
drm-510-kmod and gpu-firmware-<vendor>-kmod-<model> packages.

> >  It's a bit unlikely that one user will need only all
> > the radeon/amd/intel firmwares.
> 
> Well in fact there should be an option for each individual firmware,
> but I was lazy. 

 No there shouldn't be an option for each firmware, each firmware is a
separate flavor of the main vendor port and this result in a dedicated
package for one GPU. (There is one cavehat for AMD, see below).

> Another valid case is that I have no idea which specific
> intel firmware I need, I just don't want nvidia/amd garbage.

 Yes this is one problem, I've pondered writing a fwget script to put in
base that will solve this issue, will probably do it one day.
 For intel it's kinda easy, just install drm-510-kmod, kldload i915kms
and look in dmesg what firmware the driver says it couldn't load. DRM
will work for intel without firmware, you just can't suspend/resume.
 For AMD depending on the GPUs sometimes it will work without a
firmware, sometime it will not, meaning that you will lose the screen
and will need to use serial/ssh (unless it bricks the machine but if
that does it this is a bug that should be solved). Some generations of
AMD gpu needs two firmware packages, this is because AMD reuse some IP
(most of the time it's the VCN, the unit for video decoding/encoding)
that is re-used.

-- 
Emmanuel Vadot <manu@bidouilliste.com> <manu@freebsd.org>