Unnecessary extension of default packeges for x86 generic

Alberto Bursi bobafetthotmail at gmail.com
Mon Mar 1 19:43:47 GMT 2021



On 01/03/21 11:40, Florian Eckert wrote:
> Hello,
> 
> Is it really necessary that we keep expanding the default package here [1]?
> The problem is, for example, that I don't need the whole AWS stuff.
> But now the whole package gets installed.
> 
> If this is the case, then we should also install the vmware needed 
> driver as default package.
> Maybe someone (like me) would like to run the image in a vmware 
> environment.

Please look at the kernel config. x86_64 kernel config has *all* drivers 
for KVM, for Xen and VMware and Hyper-V (and some AWS) compiled in 
already and always did for a long while.

I had to add the AWS driver as a module so that people that don't want 
it can remove it with ImageBuilder (which is not something you cannot do 
with drivers compiled in  by the kernel config)

> But I do not want to install this per default.
> 
> I think this are all special image.

No it's not, unless somehow AWS virtualization is treated differently 
from KVM, Xen, VMWare and Hyper-V, which as I said are already included 
by default in the x86_64 kernel.

I personally don't see the point for making multiple images for x86_64 
due to the fact that space and resource usage for leaving all in is 
negligible at best on this target.

> Therefore it would be a good idea to create individual images.
> For example
> * define Device/aws
> * define Device/vmware
> 
> 
> Also, binary blobs are currently already get installed as a dependency 
> that the default drivers work.
> Therefore I have changed the line before this change as following.
> So no binary blob dependency gets installed.
> I am also not clear why we need kmod-bnx2, kmod-forcedeth and kmod-r8169 
> as default, which have the binary blob dependency.

because there are boards and network cards with broadcomm integrated 
ethernet, boards with NVIDiA chipsets need this to make the onboard 
ethernet work and pretty much all cheap motherboards have a Realtek 
ethernet port so we need that included.

If you don't like the default package selection, just use the Image 
Builder to assemble your own image from pre-compiled packages in the 
repos where you can choose what packages you want and what you don't want.

> 
> --- a/target/linux/x86/image/64.mk
> +++ b/target/linux/x86/image/64.mk
> @@ -1,7 +1,6 @@
>   define Device/generic
>     DEVICE_TITLE := Generic x86/64
> -  DEVICE_PACKAGES += kmod-bnx2 kmod-e1000e kmod-e1000 kmod-forcedeth 
> kmod-igb \
> -       kmod-ixgbe kmod-r8169
> +  DEVICE_PACKAGES += kmod-e1000e kmod-e1000 kmod-igb kmod-ixgbe
>     GRUB2_VARIANT := generic
>   endef
>   TARGET_DEVICES += generic
> -- 
> 
>  From my point of view, these are the minimum packets needed to make the 
> generic image to work.
> 

As mentioned above, this cuts out all non-premium consumer motherboards 
that use realtek chipsets and need kmod-r8169 (which is A LOT), plus the 
less common boards with broadcomm ethernet and the even less common ones 
with NVIDIA chipset.

The generic image is supposed to work on most if not all possible 
hardware, because it's built for the less tech-savyy users that can't 
just recompile or use the image builder, and having no working network 
interface is a problem.


> 
> Kind Regards
> 
> Florian
> 
> [1] 
> https://github.com/openwrt/openwrt/commit/788ec9a7cfc843c8e46451331521cdc7d81866bd 
> 



More information about the openwrt-devel mailing list