[Nix-dev] How to replace a standard kernel module with a newer version?

Eelco Dolstra e.dolstra at tudelft.nl
Thu Sep 15 20:05:52 CEST 2011


Hi,

On 09/15/2011 06:33 PM, Peter Simons wrote:

> the standard Linux kernel has a module e1000e. Unfortunately, that
> module is too old for my network card, so I need to use the new version
> which is packaged in "linuxPackages.e1000e". Now, I assumed that setting
>
>    boot.extraModulePackages = [ config.boot.kernelPackages.e1000e ];
>
> in configuration.nix would do the trick, but of course the build
> complains about a file collision:
>
>    collision between
>    `/nix/store/0ia6qcpww8sja79hc9rfcxq4cim356bb-e1000e-1.5.1/lib/modules/2.6.38.8/kernel/drivers/net/e1000e/e1000e.ko'
>    and
>    `/nix/store/s9mhjmacl0grg9qndyr0xy1lfc46ww3f-linux-2.6.38.8/lib/modules/2.6.38.8/kernel/drivers/net/e1000e/e1000e.ko'
>    at /nix/store/1pwj1c26h0vi5w535iw2ipd26zd6k6hq-builder.pl line 72.
>
> Does anyone have an idea how I might remedy that issue?

Try setting/adding the attribute ‘ignoreCollisions = true’ in the call 
to buildEnv in 
nixpkgs/pkgs/os-specific/linux/module-init-tools/aggregator.nix.  You'll 
probably need to change the order in which module packages are processed 
too.

-- 
Eelco Dolstra | http://www.st.ewi.tudelft.nl/~dolstra/


More information about the nix-dev mailing list