[elrepo] r8101/r8168/r8169 suggestion

Phil Perry phil at elrepo.org
Thu Oct 26 15:55:57 EDT 2017


On 26/10/17 19:36, Nick Howitt wrote:
> 
> 
> On 26/10/2017 19:31, Phil Perry wrote:
>>
>> On 26/10/17 17:25, Nick Howitt wrote:
>>>
>>>
>>> On 26/10/2017 17:18, Manuel Wolfshant wrote:
>>>> On October 26, 2017 5:41:25 PM GMT+03:00, Nick Howitt 
>>>> <nick at howitts.co.uk> wrote:
>>>>> Hi,
>>>>>
>>>>> Can I suggest a change to the packaging of the above three drivers? 
>>>>> I'd
>>>>>
>>>>> like to suggest the three drivers are all made dependants of each 
>>>>> other
>>>>>
>>>>> and that the file \usr\lib\modprobe.d\blacklist-r8169.conf is removed
>>>> >from the r8101 and r8168 drivers? My reasoning is as follows:
>>>>> The stock driver covers the following PCI ID's:
>>>>> pci:v00000001d00008168sv*sd00002410bc*sc*i*
>>>>> pci:v00001737d00001032sv*sd00000024bc*sc*i*
>>>>> pci:v000016ECd00000116sv*sd*bc*sc*i*
>>>>> pci:v00001259d0000C107sv*sd*bc*sc*i*
>>>>> pci:v00001186d00004302sv*sd*bc*sc*i*
>>>>> pci:v00001186d00004300sv*sd*bc*sc*i*
>>>>> pci:v00001186d00004300sv00001186sd00004B10bc*sc*i*
>>>>> pci:v000010ECd00008169sv*sd*bc*sc*i*
>>>>> pci:v000010ECd00008168sv*sd*bc*sc*i*
>>>>> pci:v000010ECd00008167sv*sd*bc*sc*i*
>>>>> pci:v000010ECd00008136sv*sd*bc*sc*i*
>>>>> pci:v000010ECd00008129sv*sd*bc*sc*i*
>>>>>
>>>>>
>>>>> The kmod-r8101 covers:
>>>>> pci:v000010ECd00008136sv*sd*bc*sc*i*
>>>>>
>>>>>
>>>>> The kmod-r8168 covers:
>>>>> pci:v00001186d00004300sv00001186sd00004B10bc*sc*i*
>>>>> pci:v000010ECd00008161sv*sd*bc*sc*i*
>>>>> pci:v000010ECd00008168sv*sd*bc*sc*i*
>>>>>
>>>>>
>>>>> And the kmod-r8169 covers:
>>>>> pci:v00001186d00004302sv*sd*bc*sc*i*
>>>>> pci:v00001186d00004300sv*sd*bc*sc*i*
>>>>> pci:v00001186d00004300sv00001186sd00004C00bc*sc*i*
>>>>> pci:v00001186d00004302sv00001186sd00004302bc*sc*i*
>>>>> pci:v00001186d00004300sv00001186sd00004300bc*sc*i*
>>>>> pci:v000010ECd00008169sv*sd*bc*sc*i*
>>>>> pci:v000010ECd00008167sv*sd*bc*sc*i*
>>>>>
>>>>>
>>>>> This leaves the following unknown in the ElRepo database:
>>>>> pci:v000016ECd00000116sv*sd*bc*sc*i*
>>>>> pci:v00001259d0000C107sv*sd*bc*sc*i*
>>>>> pci:v000010ECd00008129sv*sd*bc*sc*i*
>>>>>
>>>>>
>>>>> And the following known and not supplied (sk98lin) by ElRepo:
>>>>> pci:v00001737d00001032sv*sd00000024bc*sc*i*
>>>>>
>>>>>
>>>>> The current situation is that if you install either the kmod-r8101 or
>>>>> kmod-r8168 then you can no longer use any NIC covered by the original
>>>>> r8169 or the kmod-r8168 drivers, because the r8169 is blacklisted. If
>>>>> the blacklist were removed and the dependencies added as I suggest (or
>>>>> the drivers were packaged as one) then the
>>>>> kmod-r8101/kmod-r8168/kmod-r8169 combo becomes a proper drop-in
>>>>> replacement for the stock r8169 and it becomes possible, for example,
>>>>> to
>>>>> run r8168 and r8169 cards at the same time with the ElRepo drivers. (I
>>>>> know as I do it, but had to resort to modprobing the r8169 until I
>>>>> discovered it was blacklisted).
>>>>>
>>>> The 3 drivers are independent of each other so I do not think that 
>>>> they should depend on each other.
>>>> I'd rathet see documented that the blacklisting of stock r8169 can 
>>>> be removed if one really insists on combining stock and elrepo drivers.
>>>>
>>>> But frankly you are the first person that I know of who needs that. 
>>>> Everybody else I know of either uses Intel/BRCM /Cavium 
>>>> cards/chipsets or relies on more or less identical Realtek ones.
>>> Agreed, they are independent of each other, but only as a set do they 
>>> replace the stock r8169. Anyone installed on its own removes NIC 
>>> compatibility. If they are properly independent, I would have thought 
>>> they should not blacklist the r8169.
>>
>>
>> The distro driver is a unified r8169 driver providing support for 
>> multiple devices, and users should use this where possible, and file 
>> bugs upstream with Red Hat where the driver does not work as expected.
>>
>> In cases where the distro unified r8169 driver does not meet users 
>> needs / expectations, then we make available 3 individual OEM drivers 
>> (r8101, r8168, r8169) that largely support the devices supported by 
>> the unified r8169 driver.
>>
>> The OEM kmod-r8169 driver is a simple drop in replacement for the 
>> distro driver of the same name. Because both kmod-r8101 and kmod-r8168 
>> drivers *replace* the distro r8169 driver, we must blacklist r8169 to 
>> prevent it loading and binding the device.
>>
>> Users running edge case scenarios (multiple different Realtek based 
>> NICs??) are able to remove the blacklisting by deleting or editing the 
>> blacklist file and rebuilding the initramfs if required.
>>
>> I agree with Manuel, the 3 elrepo kmod drivers are independent of each 
>> other. The user is free to install as many (or few) of them as 
>> required, but if installing more than one be aware some manual 
>> configuration may be required.
>>
> OK. I'll let it go. One last side effect of this blacklisting, is that 
> if a user upgrades to say a 7.4 kernel, the latest kmod-r8168 driver 
> replaces the previous one compatible the 7.3 kernel. If the user then 
> reboots back to the 7.3 kernel he will have no NIC driver available. If 
> the blacklist weren't there, the r8168 NIC could fall back to using the 
> stock r8169 driver and at least have connectivity.

The r8168 driver uses kernel symbols which are not on the kABI 
whitelist, and one (or more) of those ABI's changed in RHEL7.4. Hence, 
the package was rebuilt for RHEL7.4 and in this case is not backward 
compatible. There is no getting away from that. We only support the 
latest kernel, we can't support everything, sorry.

If the stock r8169 driver works, why is the user using our kmod-r8168 
package? But as I said before, he is welcome to manually load the driver 
if he wishes to boot an old unsupported kernel.



More information about the elrepo mailing list