# Ethernet don't work

## Fulgurance

Hello, normally, i use only my wifi, because i never have success to make it work my ethernet device. Now, i've decided to to try to make it work.

But don't know totally what i must activate on my kernel. I have already tried many times without success. 

Can you help me please ?

Config:

```
fulgurance@msi-gs73vr-6rf ~ $ sudo lspci

Mot de passe : 

00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers (rev 07)

00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) (rev 07)

00:02.0 VGA compatible controller: Intel Corporation HD Graphics 530 (rev 06)

00:14.0 USB controller: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller (rev 31)

00:14.2 Signal processing controller: Intel Corporation Sunrise Point-H Thermal subsystem (rev 31)

00:16.0 Communication controller: Intel Corporation Sunrise Point-H CSME HECI #1 (rev 31)

00:17.0 SATA controller: Intel Corporation Sunrise Point-H SATA Controller [AHCI mode] (rev 31)

00:1c.0 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #1 (rev f1)

00:1c.4 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #5 (rev f1)

00:1d.0 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #9 (rev f1)

00:1d.5 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #14 (rev f1)

00:1d.6 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #15 (rev f1)

00:1f.0 ISA bridge: Intel Corporation Sunrise Point-H LPC Controller (rev 31)

00:1f.2 Memory controller: Intel Corporation Sunrise Point-H PMC (rev 31)

00:1f.3 Audio device: Intel Corporation Sunrise Point-H HD Audio (rev 31)

00:1f.4 SMBus: Intel Corporation Sunrise Point-H SMBus (rev 31)

01:00.0 VGA compatible controller: NVIDIA Corporation GP106M [GeForce GTX 1060 Mobile 3GB] (rev a1)

3c:00.0 Non-Volatile memory controller: Toshiba America Info Systems NVMe Controller (rev 01)

3d:00.0 Ethernet controller: Qualcomm Atheros Killer E2400 Gigabit Ethernet Controller (rev 10)

3e:00.0 Network controller: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter (rev 32)
```

----------

## mike155

Does this post (especially the echo statement) solve your problem?Last edited by mike155 on Sat Feb 24, 2018 9:50 am; edited 1 time in total

----------

## Marcih

Hi Fulgurance,

I assume the lspci output you posted is from your actual machine, and not the MinimalCD. It looks like you already have the driver either compiled in or loaded as a module. Could you elaborate on what exactly it is that's not working, what you've tried so far and also post the output of ifconfig -a to see whether the interface is being recognized and find /sys | grep devices.*3d:00.0 to see what the name of the driver is (to check if there have been any issues bringing up the interface in dmesg).

EDIT:

Nevermind, see post above and try that first (I guess going through the steps would've arrived at the same point eventually but eh).  :Very Happy: 

----------

## NeddySeagoon

Fulgurance,

You need the alx driver. It was added to the kernel around 4.4 or so. 

```
  │ Symbol: ALX [=n]                                                                        │  

  │ Type  : tristate                                                                        │  

  │ Prompt: Qualcomm Atheros AR816x/AR817x support                                          │  

  │   Location:                                                                             │  

  │     -> Device Drivers                                                                   │  

  │       -> Network device support (NETDEVICES [=y])                                       │  

  │         -> Ethernet driver support (ETHERNET [=y])                                      │  

  │ (1)       -> Atheros devices (NET_VENDOR_ATHEROS [=y])                                  │  

  │   Defined at drivers/net/ethernet/atheros/Kconfig:64                                    │  

  │   Depends on: NETDEVICES [=y] && ETHERNET [=y] && NET_VENDOR_ATHEROS [=y] && PCI [=y] 
```

The prompt will be hidden until the Depends on: is true.

----------

## krinn

Try this too: https://forums.gentoo.org/viewtopic-p-7746228.html#7746228

----------

## Fulgurance

Now, i have enabled Qualcomm Atheros AR816x/AR817x support and have doing sudo modprobe alx.

I have configuring my /etc/conf.d/net file for use ethernet, make symbolic link with sudo ln -sf /etc/init.d/net.lo /etc/init.d/net.enp61s0 and reboot.

But when i start ping test:

```
fulgurance@msi-gs73vr-6rf ~ $ ping www.google.fr

ping: www.google.fr: Temporary failure in name resolution
```

I think my ethernet connection don't use dhcpcd... no idea?

----------

## ct85711

Ok, you have the interface, but does it have an IP address? (An 169.254.*.* address is an APIPA trash address, so wouldn't be useful.)

You can easily check with ifconfig or ip add, both will tell you what your interface ip address is (if it has one).  An alternative, is ping an actual ip address like 8.8.8.8 (google's public dns server).  If that works, you just need to setup your /etc/resolv.conf to list a nameserver to use.

The resolv.conf, tells your system who to use to convert the www.google.fr to an ip address.

----------

## NeddySeagoon

Fulgurance,

One step at a time. Putting it all together, then testing 'end to end ' is not helpful. 

We can't tell which bit is broken.

First, 

```
modprobe alx
```

Are there any errors on the command line or at the end of dmesg.

If so, stop there and quote them here. Nothing else will work until the errors are resolved.

If step 1 works, step 2 is to look at 

```
ifconfig -a
```

Can you see your wired interface?

If not, step 1 was either incorrect, or required but not sufficient.

Provided the interface appears in step 2, make a note of its name and feed it to dhcpcd

```
dhcpcd <interface_name>
```

This should get you an ip address.

look in 

```
ifconfig
```

 As long as the IP adddress does not start 169, you are good.

At this point, if you have an two IP addresses in the same subnet, one wired and one wireless, your connectivity is likely to be horribly broken.

That's a feature. It can be fixed.

Until you can complete the above steps, in order, successfully, nothing else matters.

Build on what you know works.

----------

## Fulgurance

```
fulgurance@msi-gs73vr-6rf ~ $ sudo dhcpcd enp61s0

sending commands to master dhcpcd process

fulgurance@msi-gs73vr-6rf ~ $ ifconfig

enp61s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 192.168.1.55  netmask 255.255.255.0  broadcast 192.168.1.255

        inet6 fe80::9429:69de:608e:e92  prefixlen 64  scopeid 0x20<link>

        ether 4c:cc:6a:80:14:e2  txqueuelen 1000  (Ethernet)

        RX packets 30  bytes 2866 (2.7 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 935  bytes 82059 (80.1 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

        device interrupt 17  

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  (Boucle locale)

        RX packets 1104  bytes 88336 (86.2 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 1104  bytes 88336 (86.2 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlp62s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 192.168.1.30  netmask 255.255.255.0  broadcast 192.168.1.255

        inet6 fe80::7b25:a1dc:72d5:4508  prefixlen 64  scopeid 0x20<link>

        ether 9c:b6:d0:0e:57:d1  txqueuelen 1000  (Ethernet)

        RX packets 415972  bytes 291357417 (277.8 MiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 440255  bytes 61029577 (58.2 MiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

fulgurance@msi-gs73vr-6rf ~ $ ip add

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 brd 127.255.255.255 scope host lo

       valid_lft forever preferred_lft forever

    inet6 ::1/128 scope host 

       valid_lft forever preferred_lft forever

2: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1

    link/sit 0.0.0.0 brd 0.0.0.0

3: enp61s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

    link/ether 4c:cc:6a:80:14:e2 brd ff:ff:ff:ff:ff:ff

    inet 192.168.1.55/24 brd 192.168.1.255 scope global enp61s0

       valid_lft forever preferred_lft forever

    inet6 fe80::9429:69de:608e:e92/64 scope link 

       valid_lft forever preferred_lft forever

4: wlp62s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000

    link/ether 9c:b6:d0:0e:57:d1 brd ff:ff:ff:ff:ff:ff

    inet 192.168.1.30/24 brd 192.168.1.255 scope global wlp62s0

       valid_lft forever preferred_lft forever

    inet6 fe80::7b25:a1dc:72d5:4508/64 scope link 

       valid_lft forever preferred_lft forever
```

But when i disable wpa connection:

```
fulgurance@msi-gs73vr-6rf ~ $ sudo dhcpcd enp61s0

sending commands to master dhcpcd process

fulgurance@msi-gs73vr-6rf ~ $ ip add

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 brd 127.255.255.255 scope host lo

       valid_lft forever preferred_lft forever

    inet6 ::1/128 scope host 

       valid_lft forever preferred_lft forever

2: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1

    link/sit 0.0.0.0 brd 0.0.0.0

3: enp61s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000

    link/ether 4c:cc:6a:80:14:e2 brd ff:ff:ff:ff:ff:ff

4: wlp62s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000

    link/ether 9c:b6:d0:0e:57:d1 brd ff:ff:ff:ff:ff:ff

fulgurance@msi-gs73vr-6rf ~ $ ifconfig

enp61s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500

        ether 4c:cc:6a:80:14:e2  txqueuelen 1000  (Ethernet)

        RX packets 34  bytes 3112 (3.0 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 1512  bytes 134125 (130.9 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

        device interrupt 17  

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  (Boucle locale)

        RX packets 1184  bytes 94240 (92.0 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 1184  bytes 94240 (92.0 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlp62s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500

        ether 9c:b6:d0:0e:57:d1  txqueuelen 1000  (Ethernet)

        RX packets 440132  bytes 311443733 (297.0 MiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 454623  bytes 62683416 (59.7 MiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

fulgurance@msi-gs73vr-6rf ~ $ ip add

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 brd 127.255.255.255 scope host lo

       valid_lft forever preferred_lft forever

    inet6 ::1/128 scope host 

       valid_lft forever preferred_lft forever

2: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1

    link/sit 0.0.0.0 brd 0.0.0.0

3: enp61s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000

    link/ether 4c:cc:6a:80:14:e2 brd ff:ff:ff:ff:ff:ff

4: wlp62s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000

    link/ether 9c:b6:d0:0e:57:d1 brd ff:ff:ff:ff:ff:ff
```

Is it good ? But just help me for resolv.conf file, i haven't any knowledges about internet configuration.

----------

## NeddySeagoon

Fulgurance,

That's good. Everything I asked you to test worked.

Go into /etc/rc.conf and read the comment above 

```
#rc_depend_strict="YES"
```

The default setting is to require that all your network interfaces are working before the network service is considered to be working.

With a laptop, you may use any one interface.

You probably want 

```
rc_depend_strict="NO"
```

here.

Now things that need the network will work when either interface works.

Both are not required.

When both interfaces are in use, routing may get confused if their addresses are in the same subnets.

Look in 

```
ip route show
```

You will have a set of routes via each interface.

The kernel routing works by matching routing rules from the bottom of the table.

The first match is used to route the packet.

default matches all packets, so how does having two default routes work?

----------

## Fulgurance

I have set:

```
rc_depend_strict="NO"
```

But:

 *Quote:*   

> fulgurance@msi-gs73vr-6rf ~ $ sudo wpa_cli
> 
> Mot de passe : 
> 
> wpa_cli v2.6
> ...

 

----------

## ct85711

As I said earlier, the easy way to test if it is a name resolution (dns) issue or routing, is try pinging an ip address (not a name like www.google.com).  A easy ip address to test would be 8.8.8.8 or 8.8.4.4.  If you can ping either of them, but not say www.google.com; it means the system doesn't know how to translate www.google.com to an ip address (that the internet uses).

To define a dns (name resolution server), you can put in your /etc/resolv.conf

```
nameserver 8.8.8.8

nameserver 8.8.4.4
```

Note:  If you don't have an ip address, then doing this wouldn't work to begin with, as the computer isn't connected to the network.

----------

