• [6.8.2] SIS 191 Chipset Support for Gigabit


    ymilord
    • Minor

    In the latest build of unraid (6.8.2), I am having issues with the SIS 191. Thou a NIC is detected, but only connects at 10/100 mbit vs. Gigabit.

     

    The switch its connected to (Cisco C2970) claims the connection is gigabit. The strange thing is via the UI in unraid is shows the link speed is only 10/100. The other issue is network inconsistency, Thou I can hit the UI via HTTP, It has trouble registering and activation the trial key and downloading additional plugins/packages.

     

    *I've also tried two other switches (Mikrotik CRS112-8G-4S-IN & a crappy Netgear 8 port switch.)

     

    It can ping its local subnet, other machines on the same subnet can ping it, it can ping its gateway and various WAN sites. But anything else (i.e. software updates or plugins) it timeouts.

     

    This machine (HP EX475) had Windows Server 2012 running on it for many years and its currently connected the same exact way. Had no issues up to this point. So this seems like a driver issue of some kind with-in unraid for that specific chipset.

     

    Method used to troubleshoot.

     

    - I've reimaged two different USB Keys with unraid 6.8.1 & 6.8.2 (4 times each). Same issue described above.

     

    - I've reinstalled Windows Server 2012 & 2016 and both installs connects and reports full gigabit speeds on both ends (machine &       switch and I've done a couple local machine-to-machine test and local-to-wan test. All works as expected.)

     

    - Checked the BIOS for any weird or non-standard options for the NIC (i.e. PXE or Legacy.) And flatten the BIOS to its defaults 3~4   times thinking that something was enabled or disabled causing the issue. No Dice.

     

    - For the Trial Key issue, I've triple checked the bios clock and even changed its battery. Made sure NTP was good and connected. Checked for drift. Even created a local NTP server with-in the network. Unraid reports the correct time as does the BIOS. (Firing the date command in the console presents the correct time/date also.) It still claims it can not connect to activate the key.

     

    I've also manually deleted the Trial.key file and attempt to create a 'fresh' key after reboots a couple of times. No Dice.

     

    *As a side note, in Terminal I can see a curl process with an activation key, that process seems to be hung. When I copy and reformat the command and refire it in the console I get, 'Oh noes! something doesn't seem right here' But I think this is due to the structure of the command I am sending back. Just a note that I can see it 'trying'

     

    All of the above leads me to believe there is an issue on whatever driver package uraid is using for the SIS 191. Which puts it in this limbo state of working/not working?

     

    Any suggestions on how to get this working? Or steps to update the driver? 

     

    Thanks in advance.




    User Feedback

    Recommended Comments

    You should post your system diagnostics zip file (obtained via Tools >> Diagnostics) with your NEXT post so we can see what is going on.

    Link to comment

    The interface reports to support 10 Mbps and 100 Mbps only

    Supported link modes:   10baseT/Half 10baseT/Full 
                            100baseT/Half 100baseT/Full 

    It is using driver version 1.4 which comes with the Linux kernel. Unlikely SiS provides a newer version

    driver: sis190
    version: 1.4

    There is a mismatch between server and switch which causes your connection to be flaky.

     

    Try to set a fixed setting of 100/FD on the Cisco switch.

     

    Side note: a lease time of 10 minutes is very short. It is recommended to make that longer, e.g. 1 day

     

    Alternatively you can add an Intel based NIC and use instead of the built-in NIC.

    Edited by bonienl
    Link to comment

    But under windows it supports full gigabit? And has been for 4 years.

     

    After diving into this for a couple hours it seems that kernel is misidentifying the ISA Bridge ID.

     

    What it's looking for is the SiS965 and what I have is the SiS966

     

    00:02.0 ISA bridge [0601]: Silicon Integrated Systems [SiS] SiS966 [MuTIOL Media IO] [1039:0966] (rev 59) 

     

    As for the Ethernet Adapter is presents itself as.

     

    00:04.0 Ethernet controller [0200]: Silicon Integrated Systems [SiS] 191 Gigabit Ethernet Adapter [1039:0191] (rev 01)

     

    It seems like I need to change/add the Bridge ID for the SIS966 in the kernel to match what I have. This is above my pay grade.

     

    Also, Statically setting the negotiating speed on the switch (all three - Cisco, Mikrotik or the Netgear) to 100mbit Full Duplex has no effect. 

    Edited by ymilord
    Link to comment

    Linux detects the hardware components automatically upon startup, there isn't anything you can do manually.

     

    See if there is a newer BIOS for your motherboard. You are curently running a version from 2007.

     

    Link to comment

    There is no means of adding another ethernet card is this style of machine (Unless you mean USB which is unacceptable.). And it has the latest BIOS version as you stated from 2007.

    Edited by ymilord
    Link to comment
    16 minutes ago, ymilord said:

    But under windows it supports full gigabit? And has been for 4 years.

    Are you sure?

    I highly doubt that. Supported speeds are hardware determined and not driver dependent.

     

    It was quite common for your generation of motherboard to support 10/100 only.

    Edited by bonienl
    Link to comment

    I am absolutely, 100% sure. As stated in the OP- I've reinstalled Windows and have done speed tests via LAN and WAN.

    And the output from lspci from the machine with unraid running list [SiS] 191 Gigabit Ethernet Adapter [1039:0191] 

     

    I would not have open this ticket otherwise. 

    Link to comment
    6 minutes ago, ymilord said:

    I would not have open this ticket otherwise. 

    According to the SiS site the latest Linux driver for these type of ethernet controllers is from 2005.

    What is provided with Unraid surely is the latest available driver version.

    Sorry, no other solution at hand. Your system doesn't have free PCI(E) slots to add additional cards?

    Link to comment

     

    27 minutes ago, ymilord said:

    There is no means of adding another ethernet card is this style of machine (Unless you mean USB which is unacceptable.). And it has the latest BIOS version as you stated from 2007.

    No. I would have did that and been done with this. 

     

    I still feel the issue is what it's detecting and not the drivers age. 

     

     

    Link to comment
    3 minutes ago, ymilord said:

    I still feel the issue is what it's detecting and not the drivers age. 

    Unraid relies on what is reported by the Linux kernel, it can't change that.

     

    Have you tried earlier Unraid versions with older Linux kernels?

     

    Link to comment

    Have a look at how this was solved in Linux 2.6.x kernel release. 

    https://www.howtoforge.com/creating-the-sis191-gigabit-ethernet-driver-on-linux-2.6

    This web article might give a person with experience building a kernel from source with added driver modules enabled a start in the right direction at least.

    A kernel module can be compiled to correctly identify the SIS191 nic and advertise it's capabilities to connected switches and routers.  I myself am trying to figure out how to apply this to a newer distribution (Debian 10) with the 4.19.x kernel source so I can use this built-in nic on my old HP MediaSmart EX470 server.  Keep in mind this is not a 3rd party driver as this is in the drivers/net section of the Liniux kernel source tree today. 

    Surely Unraid can be modified to allow a custom kernel image to be loaded by Grub and Initramfs?

    Edited by PaulMras
    Link to comment
    On 1/27/2020 at 11:16 PM, bonienl said:

    Unraid relies on what is reported by the Linux kernel, it can't change that.

     

    Have you tried earlier Unraid versions with older Linux kernels?

     

    i am trying to do the same. Have you figured it out yet?

    Link to comment

    So the kernel I'm running is this: 5.10.28. I have no experience with any of this, keep that in mind. I assume I can look at the 5.10.114 release on kernel.org to see source files that are close to what Unraid is using. Correct me if I'm wrong.

    If that is correct though, the SIS191 drive is not the issue here. I have an EX470 as well. My ISA bridge is 966:

    00:02.0 ISA bridge [0601]: Silicon Integrated Systems [SiS] SiS966 [MuTIOL Media IO] [1039:0966] (rev 59)

    In the ethernet driver code there is an array of ISA bridges that is looked for:

    static const u16 ids[] = { 0x0965, 0x0966, 0x0968 };

    Also, if you check your dimes, you can see that the initial negotiated speed for the ethernet port is 1Gb:

    [   47.703115] sis190 0000:00:04.0 eth0: link on 1000 Mbps Full Duplex mode

    What's interesting is that my Ubiquiti switch shows the link is 1000FDX

    Ethtool however shows 10/100

    	Supported link modes:   10baseT/Half 10baseT/Full
    	                        100baseT/Half 100baseT/Full
    	Supports auto-negotiation: Yes
    	Advertised link modes:  10baseT/Half 10baseT/Full
    	                        100baseT/Half 100baseT/Full
    	Advertised auto-negotiation: Yes
    	Link partner advertised link modes:  10baseT/Half 10baseT/Full
    	                                     100baseT/Half 100baseT/Full
    	Link partner advertised auto-negotiation: Yes
    	Speed: 100Mb/s
    	Duplex: Full
    	Auto-negotiation: on

     

    I just rebuild my EX470 HP MediaSmart for running Unraid. 100Mbit network connection is a bummer, that's just not good enough for a fileserver.

    Oh, I have Cat6a ethernet cable which is proven to run 1Gbit, so that ain't it ;)

    To be continued. If you have any leads, I'm very eager to learn what is going on here!

    Link to comment

    I came across this: https://bugzilla.kernel.org/show_bug.cgi?id=11149

    I installed NerdPack, and iperf3 on a Raspberry Pi. Started iperf3 as server on Pi and used Unraid as client. A snippet of the results:

    [ ID] Interval           Transfer     Bitrate         Retr  Cwnd
    [  5]   0.00-1.01   sec   106 MBytes   886 Mbits/sec    0    433 KBytes       
    [  5]   1.01-2.00   sec  98.8 MBytes   834 Mbits/sec    0    274 KBytes       
    [  5]   2.00-3.00   sec   105 MBytes   878 Mbits/sec    0    288 KBytes

    So the speed is OK, and ethtool is wrong?

    Link to comment

    Oké, did another test, copying a 12,73 GB file from a Mac mini to the EX470 Unraid. Took 3:36 minutes. Which is about 60MB/s or 480Mb/s. Far more than the 100Mb limit that ethtool is showing. The Mac was busy with video stream recordings, so not an optimal setup to get to max speed. But again, it seems the ethernet connection is indeed running at 1000FDX and ethtool is displaying information that is ether incorrect or obtained from an incorrect source. Hope someone can verify?

    Link to comment
    4 minutes ago, Thunderstone said:

    Hope someone can verify?

    If you're getting more than 12MB/s it's definitely not linking at 100Mbps

    Link to comment

    Ok, so even though the physical interface seems to connect at 1000FDX, and I can indeed get speeds over 100Mbit/s, this thing is just not working correctly on the network level. When transferring files, it rains rx errors. At a certain point I guess the system decides that it has seen enough errors, and disables the interface or something. Result is that network connectivity to and from the Unraid EX470 is gone. ifconfig eth0 down and up restores the network. I have tried:

    • Different cables, cat5e, cat6a
    • Different switch (Netgear Gs108p instead of Unify Switch 8)
    • Enabled SMB for Mac
    • Changed MTU to 1492 and 1024
    • Toggled all Bios options
    • Half duplex
    • 100FDX

     

    I have attached diagnostics from right after a copy failure just now. Just before the root login the network was dropped. Bios settings are the optimal default, with the changes to see all 4 disks and the boot order to boot from USB.

     

    This was my first Unraid experience, so maybe someone with more experience can see something obvious that I don't. If not, I guess the network hardware/driver combination is just not working together with Linux (There are more issues with other Linux flavours in combination with this network interface it seems)

     

    tower-diagnostics-20220522-0937.zip

    Link to comment

    Unlikely this NIC will have good Linux driver support, if possible I would suggest using and add-on NIC, something from Intel preferred.

    Link to comment

    Thanks for the tip. This hardware has no free slots though, so I cannot plug something else in. USB is possible, but I bet it won't go beyond 100Mbit since there's no USB3.

    Link to comment


    Join the conversation

    You can post now and register later. If you have an account, sign in now to post with your account.
    Note: Your post will require moderator approval before it will be visible.

    Guest
    Add a comment...

    ×   Pasted as rich text.   Restore formatting

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.


  • Status Definitions

     

    Open = Under consideration.

     

    Solved = The issue has been resolved.

     

    Solved version = The issue has been resolved in the indicated release version.

     

    Closed = Feedback or opinion better posted on our forum for discussion. Also for reports we cannot reproduce or need more information. In this case just add a comment and we will review it again.

     

    Retest = Please retest in latest release.


    Priority Definitions

     

    Minor = Something not working correctly.

     

    Urgent = Server crash, data loss, or other showstopper.

     

    Annoyance = Doesn't affect functionality but should be fixed.

     

    Other = Announcement or other non-issue.