# R8169 module loads, eth0 comes up, but no internet. (Solved)

## impert

R8169 module loads, eth0 comes up, but no internet.

Hullo all,

Not too sure if I'm in the right forum, so moderator, please move if it's appropriate.

I've just done a new installation from the minimal install disc, following the instructions in the Quick installation guide. I have an Athlon 4850e CPU on a Gigabyte GA-MA78GM mobo with a Realtek 8111c Ethernet card.(10/100/1000 Mbit)

Eth0 comes up, but nothing useful can be done with it.

I get the following from dmesg:

```
[    1.136634] r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded

[    1.136811] r8169 0000:02:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18

[    1.136985] r8169 0000:02:00.0: setting latency timer to 64

[    1.137076]   alloc irq_desc for 28 on cpu 0 node 0

[    1.137078]   alloc kstat_irqs on cpu 0 node 0

[    1.137089] r8169 0000:02:00.0: irq 28 for MSI/MSI-X

 4.019686] Error: Driver 'r8169' is already registered, aborting...

[ 

    8.961325] r8169: eth0: link up

[    8.961331] r8169: eth0: link up

[   19.230047] eth0: no IPv6 routers present

```

and from ifconfig -a:

```
eth0      Link encap:Ethernet  HWaddr 00:1f:d0:55:78:c0  

          inet addr:192.168.0.3  Bcast:192.168.0.255  Mask:255.255.255.0

          inet6 addr: fe80::21f:d0ff:fe55:78c0/64 Scope:Link

          Interrupt:28 Base address:0xa000 

          inet addr:127.0.0.1  Mask:255.0.0.0

          inet6 addr: ::1/128 Scope:Ho
```

st

The first three lines here are the same as I get from ifconfig on Ubuntu (I have a multi-boot system), though with Ubuntu, after "Scope:Link" it continues:

```
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:2387 errors:0 dropped:0 overruns:0 frame:0

          TX packets:2234 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:2312586 (2.2 MB)  TX bytes:304142 (297.0 KB)

          Interrupt:253 Base address:0x6000 
```

Networking works with Ubuntu and my other systems. It worked on my old Gentoo system.

Pinging myself and my ISP gives:

```
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.

64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=0.171 ms

64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=0.156 ms

64 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=0.124 ms

64 bytes from 192.168.0.1: icmp_seq=4 ttl=64 time=0.141 ms

--- 192.168.0.1 ping statistics ---

4 packets transmitted, 4 received, 0% packet loss, time 2999ms

rtt min/avg/max/mdev = 0.124/0.148/0.171/0.017 ms

PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.

--- 192.168.1.1 ping statistics ---

4 packets transmitted, 0 received, 100% packet loss, time 2999ms

PING 212.27.40.241 (212.27.40.241) 56(84) bytes of data.

--- 212.27.40.241 ping statistics ---

4 packets transmitted, 0 received, 100% packet loss, time 2999ms

```

Needless to say, I can't use emerge to install a desktop, etc, etc, because the connection times out.

Here's my emerge --info:

```
Portage 2.1.6.13 (default/linux/amd64/2008.0, gcc-4.3.2, glibc-2.9_p20081201-r2, 2.6.30-gentoo-r4 x86_64)

=================================================================

System uname: Linux-2.6.30-gentoo-r4-x86_64-AMD_Athlon-tm-_Dual_Core_Processor_4850e-with-gentoo-1.12.11.1

Timestamp of tree: Sun, 09 Aug 2009 01:45:01 +0000

app-shells/bash:     3.2_p39

dev-lang/python:     2.6.2-r1

sys-apps/baselayout: 1.12.11.1

sys-apps/sandbox:    1.6-r2

sys-devel/autoconf:  2.63-r1

sys-devel/automake:  1.10.2

sys-devel/binutils:  2.18-r3

sys-devel/gcc-config: 1.4.1

sys-devel/libtool:   1.5.26

virtual/os-headers:  2.6.27-r2

ACCEPT_KEYWORDS="amd64"

CBUILD="x86_64-pc-linux-gnu"

CFLAGS="-O2 -pipe"

CHOST="x86_64-pc-linux-gnu"

CONFIG_PROTECT="/etc"

CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/sandbox.d /etc/terminfo /etc/udev/rules.d"

CXXFLAGS="-O2 -pipe"

DISTDIR="/usr/portage/distfiles"

FEATURES="distlocks fixpackages parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch"

GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"

LDFLAGS="-Wl,-O1"

MAKEOPTS="-j3"

PKGDIR="/usr/portage/packages"

PORTAGE_CONFIGROOT="/"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"

USE="X acl acpi alsa amd64 apache2 bash-completion berkdb branding bzip2 cairo cdr cli cracklib crypt cups cxx dbus dga dri dvd dvdr evo fbcon foomaticdb fortran gd gdbm gif gnome gpm gtk guile hal iconv ipv6 isdnlog jpeg ldap midi mmx mpeg mudflap multilib ncurses networking nls nptl nptlonly ogg openmp pam pcre perl pppd python readline reflection session sha512 spell spl sqlite sse sse2 ssl svg sysfs tcpd threads tiff truetype unicode usb xml xorg zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU" VIDEO_CARDS="vesa"

Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY
```

 lspci -v gives "unknown command", but I'm sure about the Realtek card. Ubuntu has 

```
RTL8111/8168 PCI Express Gigabit Ethernet controller (rev 02) 
```

which I presume is the proprietary driver.

lsmod gives

```
Module                  Size  Used by

floppy                 58968  0 
```

which is staggering in its simplicity; for the old Gentoo I had three pages of modules.

I'd be grateful for any suggestions. I know there have been others with similar problems, but I haven't found a fix.Last edited by impert on Thu Aug 20, 2009 2:02 pm; edited 1 time in total

----------

## tony-curtis

Are you getting the right DHCP info?

What's in

```
/etc/resolv.conf
```

and what does the command

```
route -n
```

say?

----------

## NathanZachary

Which installation medium are you using?  I would say that your best bet would be to use the SystemRescueCD.  Also, it seems like something else is wrong if that is the only line you get when you do lsmod.  You should see the r8169 module in there too.

----------

## impert

Thanks for the replies.

 *Quote:*   

> Are you getting the right DHCP info?

 

Since it wasn't working with DHCP, I used the static address 192.168.0.3 which works for the other distros.

/etc/resolv.conf has exactly what I put in it, to wit:

```
nameserver 212.27.40.240

nameserver 212.27.40.241
```

route -n gives

```
Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo

0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
```

 *Quote:*   

> Which installation medium are you using? I would say that your best bet would be to use the SystemRescueCD. Also, it seems like something else is wrong if that is the only line you get when you do lsmod. You should see the r8169 module in there too.

 

I used the latest weekly minimum install CD, downloaded last Sunday. I, too, think that something else is wrong, but what?

What exactly should I try with the System Rescue CD?

----------

## impert

In Ubuntu, route -n gives:

```
~$ route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0

0.0.0.0         192.168.0.254   0.0.0.0         UG    0      0        0 eth0

```

----------

## impert

Maybe I should just try another kernel? 2.6.28 for instance?

----------

## cach0rr0

a few things

-can you post your /etc/conf.d/net

-regarding your ping tests:

```

PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.

64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=0.171 ms

64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=0.156 ms

64 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=0.124 ms

64 bytes from 192.168.0.1: icmp_seq=4 ttl=64 time=0.141 ms

--- 192.168.0.1 ping statistics ---

4 packets transmitted, 4 received, 0% packet loss, time 2999ms

rtt min/avg/max/mdev = 0.124/0.148/0.171/0.017 ms

PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.

```

If your IP on the NIC is 192.168.0.3, and you can ping 192.168.0.1 successfully (as you did above), the NIC is up and able to at the very least transmit packets. 

```

--- 192.168.1.1 ping statistics ---

4 packets transmitted, 0 received, 100% packet loss, time 2999ms 

```

Why are you pinging 192.168.1.1 ? What host is this supposed to be? 

Your gateway shows as 192.168.0.1, so I don't see where 192.168.1.1 is supposed to be entering the picture.

----------

## Ahenobarbi

Routing tables are diffrent ( internet works on Ubuntu, right?):

 *impert wrote:*   

> 
> 
> route -n gives
> 
> ```
> ...

 

 *impert wrote:*   

> In Ubuntu, route -n gives:
> 
> ```
> ~$ route -n
> 
> ...

 

Put in /etc/conf.d/net

```

config_eth0=( "192.168.0.3/24" )

routes_eth0=(

"192.168.0.0 via 0.0.0.0"

"169.254.0.0 via 0.0.0.0"

"0.0.0.0 via 192.168.0.254"

)

```

also make sure your /etc/resolv.conf are the same on Ubuntu and Gentoo.

--

After that use command 

/etc/init.d/net.eth0 restart

and check if you have network.

----------

## NathanZachary

Remember that you can always use ANY distro's liveCD to install Gentoo.  If you know that your internet connection works in, say, PCLinuxOS, then use that liveCD to install Gentoo.  You just need to open the terminal and follow the handbook as normal.

----------

## impert

 *Quote:*   

> -can you post your /etc/conf.d/net 

 

```
# This blank configuration will automatically use DHCP for any net.*

# scripts in /etc/init.d.  To create a more complete configuration,

# please review /etc/conf.d/net.example and save your configuration

# in /etc/conf.d/net (this file :]!).

#config_eth0=("dhcp")

#The folowing is the based on ifconfig in Ubuntu & Gentoo Hbook

config_eth0=( "192.168.0.3 netmask 255.255.255.0 brd 192.168.0.255" )

routes_eth0=( "default via 192.168.0.1" )
```

but this will change in about two minutes when I try Ahenobarbus' solution.

 *Quote:*   

> I don't see where 192.168.1.1 is supposed to be entering the picture.

 

I daresay you're right. Not too sure why I did that - try anything once I suppose.

I'll try what Ahenobarbus said and report back.

Thanks for the answers.

----------

## impert

 *Quote:*   

> Remember that you can always use ANY distro's liveCD to install Gentoo. If you know that your internet connection works in, say, PCLinuxOS, then use that liveCD to install Gentoo. You just need to open the terminal and follow the handbook as normal.

 

I didn't realise this. Thanks for the info.

----------

## impert

Ahenobarbi

1 Excuse me for getting your pseudo wrong last time.

2 I commented out my original config_eth0 and routes_eth0 lines and replaced them with your version. This gives:

```
SIOCADDRT: Invalid argument

*              169.254.0.0 via 0.0.0.0 ...

SIOCADDRT: Invalid argument

*              0.0.0.0 via 192.168.0.254 ...
```

Is there a good place to go looking for info on this stuff? Other than the Gentoo Handbook which I shall read again anyway.

Thanks for your reply

----------

## doctork

It sounds as if you haven't emerged "net-misc/dhcpcd", so dhcp isn't giving your system an IP, routing info, etc.

Try using an empty /etc/conf.d/net and the checking the system logs after restarting the network like so:

```
jkorpi@fino ~ $ sudo grep -i dhcp /var/log/messages

Aug 10 17:04:32 fino dhcpcd[5159]: eth0: dhcpcd 4.0.13 starting

Aug 10 17:04:32 fino dhcpcd[5159]: eth0: broadcasting for a lease

Aug 10 17:04:32 fino dhcpcd[5159]: eth0: offered 172.20.31.35 from 172.20.31.74

Aug 10 17:04:32 fino dhcpcd[5159]: eth0: acknowledged 172.20.31.35 from 172.20.31.74

Aug 10 17:04:32 fino dhcpcd[5159]: eth0: checking 172.20.31.35 is available on attached networks

Aug 10 17:04:36 fino dhcpcd[5159]: eth0: leased 172.20.31.35 for 2592000 seconds

```

Your addresses will be different, of course, but you should see similar messages.  Your addresses/routing info should look the same as they do in Ubuntu.

--

doc

----------

## cach0rr0

 *impert wrote:*   

> Ahenobarbi
> 
> 1 Excuse me for getting your pseudo wrong last time.
> 
> 2 I commented out my original config_eth0 and routes_eth0 lines and replaced them with your version. This gives:
> ...

 

instead of that, try:

```

routes_eth0=( "default via 192.168.0.254" 

```

----------

## impert

 *Quote:*   

> instead of that, try:
> 
> Code:
> 
> routes_eth0=( "default via 192.168.0.254" 

 

BINGO!!

I've now got:

```
config_eth0=( "192.168.0.3 netmask 255.255.255.0 brd 192.168.0.255")

routes_eth0=( "default via 192.168.0.254")

```

and it works!!  I only wish I knew why!

 *Quote:*   

> It sounds as if you haven't emerged "net-misc/dhcpcd", so dhcp isn't giving your system an IP, routing info, etc. 

 

No, I hadn't, but I have now: I used emerge net-misc/dhcpcd to test.

Thanks to all of you for your help.

----------

## cach0rr0

 *impert wrote:*   

> 
> 
> BINGO!!
> 
> and it works!!  I only wish I knew why!
> ...

 

pure routing issue mate, what was your /etc/conf.d/net beforehand? 

Without a dhcp client installed, you don't have any method of having another host do that configuration *for* you

so you end up stuck setting /etc/conf.d/net to static, by hand, etc

and well, obv something in whatever you had in /etc/conf.d/net before was buggered

if you still have the old one handy, could probably tell ya. 

alternatively, if the old one was empty, it was failing because of the lack of dhcp client

----------

## impert

Hi,

If I  remember rightly I I tried installing dhcpcd and got an error message, went to bed, and forgot about it. Anyway, there was certainly no functioning dhcp client.

The original /etc/conf.d/net was I think as per the Quick Installation Guide:

```
config_eth0=( "192.168.1.10/24" ) 

routes_eth0=( "default via 192.168.1.1" ) 

```

I've always used dhcp in the past, which is why I'm so ignorant about setting a static address.

Thanks again for your help.

----------

