Re: [bug?] tg3: Failed to load firmware "tigon/tg3_tso.bin"

Jeff Garzik
2008-07-05T04:35:52Z

Theodore Tso wrote:
> On Fri, Jul 04, 2008 at 09:39:36AM -0400, Jeff Garzik wrote:
>> You have been told repeatedly that cp(1) and scp(1) are commonly used to
>> transport the module David and I care about -- tg3. It's been a single
>> file module since birth, and people take advantage of that fact.
>
> Here, I think I'll have to respectly disagree with you and say that
> you are taking things too far. I don't think scp'ing individual
> modules around counts as an "exported user interface" the same way,
> say "make install; make modules_install" is a commonly understand and
> used interface by users and scripts (i.e., such as Debian's make-kpkg,
> which does NOT know about "make firmware_install", BTW).

It's not just netdev developers that use that method, root (notably
router) image and driver disk build scripts use it too. They've been
able to skate around module dependencies because network drivers rarely
have module dependencies or require big multi-module systems.

Example -- the driver disk kit that RH informally gave out, which was
widely used, but does not use normal kernel build processes:

http://people.redhat.com/dledford/mod_devel_kit.tgz

Even if one modifies 'make modules_install' as discussed[1], kits like
these will report "100% success! driver disk created", yet ship a dead
driver disk.

That is why putting the firmware in the kernel image, as dwmw2 has done,
does not fix regressions here: driver disk authors do not necessarily
have the luxury of updating the kernel.

Conclusion - we should not build a system today that /excludes/ the
possibility of building drivers as they are built today -- with the
firmware inside the module [if CONFIG_FOO=m] or kernel image [if
CONFIG_FOO=y].

That is the only path that gives everyone a chance to deal with this
transition.

Jeff

[1] a laudable and useful thing to do, and it sounds like it is being
accomplished. great!