LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware - Installation (https://www.linuxquestions.org/questions/slackware-installation-40/)
-   -   eth0 doesn't work on new slackware 14.2 installation (https://www.linuxquestions.org/questions/slackware-installation-40/eth0-doesnt-work-on-new-slackware-14-2-installation-4175616651/)

odjb 10-30-2017 06:05 AM

eth0 doesn't work on new slackware 14.2 installation
 
Hi,

Just finished to install slackware but the network doesn't work.
At boot time, I have a message "eth0: no carrier". I tried to configure the network with KDE Network Manager, I can't even add a new wired connection. ifconfig says the interface is UP but no IPv4 information.
The network works well with w10 on this machine.

Thanks in advance,

odjb 10-30-2017 08:28 AM

add manually an address to eth0 (192.168.0.100), I can only ping the self address. Any ping on other hosts on the subnet results in "Destination host unreachable".

bassmadrigal 10-30-2017 08:49 AM

Can you post the output of the following commands?

Code:

lspci -k | grep -iA3 net
ifconfig -a
dhcpcd eth0


abga 10-30-2017 07:35 PM

@odjb
Since you've excluded the cable connection (link) by saying that it works under W10, then it might be caused by the "aggressive" power management of the PCI controller, especially if it's a new laptop (new Intel CPU/chipset).
Check the status of the device by issuing what bassmadrigal suggested:
Code:

lspci -k | grep -iA3 net
-or simple:
Code:

lspci
and look for your network adapter PCI address - the first digits before the name/description (Ethernet controller) in the form: XX:XX:X
Then check the power status of the device:
Code:

cat /sys/bus/pci/devices/0000:XX:XX.X/power/control
If it's on auto then it might be well suspended and you can bring it up with the following:
Code:

echo on > /sys/bus/pci/devices/0000::XX:XX.X/power/control
If it works, then put the last line in the beginning of your /etc/rc.d/rc.inet1 script for the next boot(s).

odjb 10-31-2017 06:25 AM

Below the results from asked actions. I go check the power managament

Code:

lspci -k | grep -iA3 net
1e:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)
        Subsystem: Micro-Star International Co., Ltd. [MSI] RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
        Kernel driver in use: r8169
        Kernel modules: r8169
22:00.0 USB controller: ASMedia Technology Inc. Device 2142

ifconfig -a
eth0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 4c:cc:6a:fe:d4:c0  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 2  bytes 100 (100.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2  bytes 100 (100.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

dhcpcd eth0
Internet Systems Consortium DHCP Server 4.3.4
Copyright 2004-2016 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Config file: /etc/dhcpd.conf
Database file: /var/state/dhcp/dhcpd.leases
PID file: /var/run/dhcpd.pid
Wrote 0 leases to leases file.

No subnet declaration for eth0 (no IPv4 addresses).
** Ignoring requests on eth0.  If this is not what
  you want, please write a subnet declaration
  in your dhcpd.conf file for the network segment
  to which interface eth0 is attached. **


Not configured to listen on any interfaces!

If you think you have received this message due to a bug rather
than a configuration issue please read the section on submitting
bugs on either our web page at www.isc.org or in the README file
before submitting a bug.  These pages explain the proper
process and the information we find helpful for debugging..

exiting.


odjb 10-31-2017 06:38 AM

ok, checked the power management, it's already "on"

bassmadrigal 10-31-2017 07:02 AM

Quote:

Originally Posted by odjb (Post 5775552)
Code:

dhcpcd eth0
Internet Systems Consortium DHCP Server 4.3.4
Copyright 2004-2016 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Config file: /etc/dhcpd.conf
Database file: /var/state/dhcp/dhcpd.leases
PID file: /var/run/dhcpd.pid
Wrote 0 leases to leases file.

No subnet declaration for eth0 (no IPv4 addresses).
** Ignoring requests on eth0.  If this is not what
  you want, please write a subnet declaration
  in your dhcpd.conf file for the network segment
  to which interface eth0 is attached. **


Not configured to listen on any interfaces!

If you think you have received this message due to a bug rather
than a configuration issue please read the section on submitting
bugs on either our web page at www.isc.org or in the README file
before submitting a bug.  These pages explain the proper
process and the information we find helpful for debugging..

exiting.


Based on the quoted output, I'm wondering if you forgot to set up your networking during the install. I've never seen this error before, but you shouldn't need to declare anything in your dhcpcd.conf like it states if you are using Slackware's rc.inet scripts. To ensure those scripts are set up properly, run netconfig as root and first select loopback to reset any possible problems, then run it again and set it up for DHCP. Once that's done, either reboot or run /etc/rc.d/rc.inet1 restart and see if you get internet access.

odjb 10-31-2017 11:54 AM

I tried but it didn't work (in fact I already did it before)
Let me post an extract from boot messages regarding the network :

Code:

Oct 31 18:38:06 skp root: /etc/rc.d/rc.inet1:  /sbin/ifconfig lo 127.0.0.1
Oct 31 18:38:06 skp root: /etc/rc.d/rc.inet1:  /sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo
Oct 31 18:38:06 skp root: /etc/rc.d/rc.inet1:  /sbin/dhcpcd -t 10  eth0
Oct 31 18:38:06 skp dhcpcd[987]: eth0: adding address fe80::1ea6:4e4b:4607:99e9
Oct 31 18:38:06 skp kernel: [  13.109615] cfg80211: World regulatory domain updated:
Oct 31 18:38:06 skp kernel: [  13.109620] cfg80211:  DFS Master region: unset
Oct 31 18:38:06 skp kernel: [  13.109623] cfg80211:  (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
Oct 31 18:38:06 skp kernel: [  13.109627] cfg80211:  (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
Oct 31 18:38:06 skp kernel: [  13.109632] cfg80211:  (2457000 KHz - 2482000 KHz @ 20000 KHz, 92000 KHz AUTO), (N/A, 2000 mBm), (N/A)
Oct 31 18:38:06 skp kernel: [  13.109635] cfg80211:  (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A)
Oct 31 18:38:06 skp kernel: [  13.109638] cfg80211:  (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (N/A)
Oct 31 18:38:06 skp kernel: [  13.109642] cfg80211:  (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (0 s)
Oct 31 18:38:06 skp kernel: [  13.109645] cfg80211:  (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)
Oct 31 18:38:06 skp kernel: [  13.109647] cfg80211:  (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A)
Oct 31 18:38:06 skp kernel: [  13.109650] cfg80211:  (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A)
Oct 31 18:38:06 skp kernel: [  13.146620] r8169 0000:1e:00.0 eth0: link down
Oct 31 18:38:06 skp kernel: [  13.146624] r8169 0000:1e:00.0 eth0: link down
Oct 31 18:38:06 skp dhcpcd[987]: eth0: waiting for carrier
Oct 31 18:38:16 skp dhcpcd[987]: dhcpcd exited
Oct 31 18:38:17 skp kernel: [  23.561965] NET: Registered protocol family 10
Oct 31 18:38:17 skp kernel: [  23.562259] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready


abga 10-31-2017 06:26 PM

@odjb

The Realtek r8169 driver looks to be problematic (kernel related and not Slackware related) and apparently you'll need to turn the autonegotiation off with the help of ethtool before bringing the interface up and trying to obtain an IP address with dhcpd/dhclient:
Code:

/usr/sbin/ethtool -s eth0 autoneg off
As previously advised, put these lines in the very beginning of your /etc/rc.d/rc.inet1 script, before any network definitions, in order to have a permanent fix.
Code:

/sbin/ifconfig eth0 down
/usr/sbin/ethtool -s eth0 autoneg off
/sbin/ifconfig eth0 up

References:
https://forums.fedoraforum.org/showthread.php?t=250807
https://askubuntu.com/questions/7610...8169-link-down
http://adam.rosi-kessel.org/weblog/2...k-down-problem

abga 11-03-2017 12:19 PM

@odjb

Have you got it working? Please report / set the thread to RESOLVED if that's the case.

odjb 11-04-2017 05:54 PM

It didn't work. I stop eth0, set autoneg off. I see autoneg is actually off. I restart eth0. autoneg is on again and the network still doesn't work.

abga 11-04-2017 06:35 PM

@odjb

Try not to stop it (bring it down) but while on (up) only change the autonegotiation with:
Code:

/usr/sbin/ethtool -s eth0 autoneg off
Check if it's tuning it on off and then try a dhcpd/dhclient on it.

There were reports that the r8169 Linux driver doesn't support gigabit on the adapter and additionally to disabling the autonegotiation you need to tune it to 100Mbit. To do this, execute:
Code:

/usr/sbin/ethtool -s eth0 speed 100 duplex full autoneg off
You could take a different approach, tune the autoneg on off while loading the driver, like described here:
https://forums.fedoraforum.org/showp...07&postcount=1
On the latest Slackware you need to define the r8169.conf in the /lib/modprobe.d/ directory like this:
Content of /lib/modprobe.d/r8169.conf
Code:

# turn off autonegotiation on the r8169 ethernet driver
install r8169 /sbin/modprobe --ignore-install r8169 && /usr/sbin/ethtool -s eth0 autoneg off

Then reboot the system and check if it's working / autoneg stays deactivated.

Here is even suggested to blacklist the r8169 driver and use the r8168 instead:
https://askubuntu.com/questions/7610...8169-link-down

You could also check the driver options with:
Code:

modinfo r8169
look for "parm:" and maybe you have some driver parameters you could tune in /lib/modprobe.d/r8169.conf
with:
Code:

options r8169 your_option=value
(substitute your_option with the appropriate option (autoneg/speed/etc.) you get in the parm: section from modinfo)
restart the system and check the functionality.

odjb 11-08-2017 11:07 AM

I tried the following without stopping eth0 and it worked.
Code:

ethtool -s eth0 speed 100 duplex full autoneg off
I didn't have time to tune the driver but at last, the network worked. I think it's a pity that I can't use the network card at 1gb so maybe I will purchase another card later. ASAP, I try to add the modification so it can boot in the correct state and I will mark the post as solved.

Thanks

abga 11-08-2017 01:28 PM

@objb
Happy to hear that you've got it working. You should follow the history on the development of the r8169 driver, maybe it'll get fixed in the following kernel releases.
https://github.com/torvalds/linux/co...ealtek/r8169.c

abga 11-23-2017 03:33 PM

@odjb
I just recalled that your NIC isn't really working well with the ethtool workaround and considered that you might want to try the r8168 driver and blacklist the r8169.
Check this thread for the instructions on where to get and compile the driver:
https://www.linuxquestions.org/quest...7/#post5784210
Posts:10-14

After the compilation & installation of the r8168 run the following (comment your ethtool workaround command if you inserted it into /etc/rc.d/rc.inet1):
Code:

ifconfig eth0 down
rmmod r8169
modprobe r8168
# check dmesg for potential r8168 related issues - if any - STOP
ifconfig eth0 up
/etc/rc.d/rc.inet1 restart
# check network functionality ifconfig/ping/traceroute and NIC properties (Gigabit?) with ethtool

If the above is working - then go for a permanent fix:
-create a file /lib/modprobe.d/blacklist-r8169.conf with the following content:
Code:

blacklist r8169
- comment your ethtool command if you have inserted it into some startup script:
Code:

#ethtool -s eth0 speed 100 duplex full autoneg off
- reboot your computer and check if the NIC/r8168 driver are happy

Wait (check from time to time) for a r8169 driver fix in newer kernels.


All times are GMT -5. The time now is 03:04 PM.