# [SOLVED] Yet another fresh install with no network

## DeadM0nkey

I have searched for help and while I didn't find an answer I did see that this comes up a lot, so if there are resources I didn't tap, I'm sorry but I did try to search for the answer.

When issuing /etc/init.d/net.eth0 start I was told that eth0 does not exist. After looking through the handbook again I saw that eth0 was a guess for the name and per the instructions booted the live CD and saw that the interface was named enp0s25. I removed eth0 and issued ln -s net.lo net.enp0s25 and rc-update add net.enp0s25

/etc/init.d/net.enp0s25 said the interface did not exist.

lspci shows the folowing:

 *Quote:*   

> lspci|egrep -i 'network|ethernet'
> 
> 00:19.0 Ethernet controller: Intel Corporation 82579LM Gigabit Network Connection (rev 04)

 

and while booted from the livecd ifconfig shows the following

 *Quote:*   

> enp0s25: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
> 
>         inet 10.127.55.127  netmask 255.255.255.0  broadcast 10.127.55.255
> 
>         inet6 fe80::1a03:73ff:fe45:13fe  prefixlen 64  scopeid 0x20<link>
> ...

 

I went into /usr/src/linux and issued make menuconfig and selected all the available intel network drivers, but I did not see the one specifically for the 82579. 

What have I missed?

I'm currently booted from live CD with the filesystem mounted and chrooted.

Thank you in advance.Last edited by DeadM0nkey on Mon Aug 11, 2014 5:00 pm; edited 1 time in total

----------

## quilosaq

Hi!

Boot your system without live CD and post the output of 

```
#(root) ifconfig -a
```

Last edited by quilosaq on Sun Aug 10, 2014 3:33 pm; edited 1 time in total

----------

## Hu

You probably want e1000e.  Do you mean that even after you enabled all the Intel network drivers, you still have the problem described in the first part of the post?  For the interface to exist, you must have the driver for it initialized and you must use the right name.  If udev device name mangling has not been disabled, it will be an enp?s?? name.  Otherwise, for e1000e, it will be an eth? name.

----------

## DeadM0nkey

I will post the results on Tuesday when I'm back at work. In regards to the driver, I selected all intel network drivers.

----------

## creaker

Boot into LiveCD system and run this command:

```
lspci -k
```

it will show you, which  driver loaded for your ethernet device.

Reboot into your Gentoo and run this command again. Will it show that ethetnet device's driver as loaded? If so, your networking is just misconfigured. If you have no driver loaded, try to load it with 'modprobe'. It will load driver if you have it built. Otherwise you have to reconfigure your kernel - select appropriate driver - and rebuild kernel.

As well you can check for 

```
lsmod
```

command output.

----------

## donald3.heckel

Hello,

Have you tried passing 

```
net.ifnames=0
```

 in your bootloader? I think that should get udev to leave networking interface names alone. That should be a good pinpoint. I think you might be trying the wrong name. Is it named net.eth0 but showing up with a new udev net interface name?

Sincerely,

donald3.heckel

----------

## NeddySeagoon

DeadM0nkey

/etc/init.d/net.* is a symlink to /etc/init.d/net.lo

You need to make the symlink before you try to use it to start the interface.

----------

## DeadM0nkey

Neddy, and Donald, I believe I have the udev name correct based on what it shows when I boot from the live CD, hence why I renamed it and issued the ln -s net.lo net.enp0s25 command.

Creaker, lspci -k shows the folowing:

```
lspci -k

00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09)

        Subsystem: Dell Device 04ad

lspci: Unable to load libkmod resources: error -12

00:01.0 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09)

00:16.0 Communication controller: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 (rev 04)

        Subsystem: Dell Device 04ad

00:16.3 Serial controller: Intel Corporation 6 Series/C200 Series Chipset Family KT Controller (rev 04)

        Subsystem: Dell Device 04ad

00:19.0 Ethernet controller: Intel Corporation 82579LM Gigabit Network Connection (rev 04)

        Subsystem: Dell Device 047e

00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 04)

        Subsystem: Dell Device 04ad

00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 04)

        Subsystem: Dell Device 04ad

00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 (rev b4)

00:1c.2 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 3 (rev b4)

00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 04)

        Subsystem: Dell Device 04ad

00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev a4)

00:1f.0 ISA bridge: Intel Corporation Q65 Express Chipset Family LPC Controller (rev 04)

        Subsystem: Dell Device 04ad

00:1f.2 SATA controller: Intel Corporation 6 Series/C200 Series Chipset Family SATA AHCI Controller (rev 04)

        Subsystem: Dell Device 04ad

00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 04)

        Subsystem: Dell Device 04ad

01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Cedar [Radeon HD 5000/6000/7350/8350 Series]
```

Is 047e the name of the module I should be looking for?

lsmod returns some ugly looking things that I would guess is occurring because I am chrooted. Basically several pages of this:

```
libkmod: kmod_module_get_holders: could not open '/sys/module/dm_raid/holders': No such file or directory
```

----------

## NeddySeagoon

DeadM0nkey,

047e is the PCI Device ID.  Intels Vendor ID is 8086, so your NIC is a 8086:047e

00:19.0 Ethernet controller: Intel Corporation 82579LM Gigabit Network Connection (rev 04)  translates as  enp0s25.  The p0 is the PCI bus number and the 25 is the device on the bus 19 hex is 25 decimal.

Google says that its a 

```
< >     Intel(R) PRO/1000 PCI-Express Gigabit Ethernet support (NEW)
```

Thats the e1000e kernel module.

----------

## DeadM0nkey

When I boot without the live CD, CD /usr/src/linux, and run make menuconfig, I do a search for e1000e and find that it is one of the drivers I selected. As for as I can see, it should be built into the kernel. 

Is it possible that I'm not building the kernel correctly? What I did is as follows:

 *Quote:*   

> cd /usr/src/linux
> 
> make menuconfig
> 
> <select modules to include by browsing to them an pressing y>
> ...

 

it was my understanding (and as a noob I am fully prepared to learn that it is wrong) pressing y would include the driver in the kernel, and pressing m would create a module that would have to be loaded.

----------

## NeddySeagoon

DeadM0nkey,

Gentoo does not mount your /boot partition for you.

If you don't have a boot partition, its not a problem.

If you do you need an extra step

```
make && make modules_install

mount /boot

make install
```

To test, run 

```
uname -a 
```

# uname -a

Linux NeddySeagoon_Static 3.14.4-gentoo #1 SMP PREEMPT Sat May 17 22:18:23 BST 2014 x86_64 AMD Phenom(tm) II X6 1090T Processor AuthenticAMD GNU/Linux

The date and time are the build date and time of the running kernel.  The #1 is the build number of this kernel.  In my case 1.

Is that your newest kernel build?

If you miss the  mount /boot and you need it, the kernel will install to the wrong place and the boot loader will not find it.

----------

## DeadM0nkey

In my fstab I added boot just in case I needed it (as I did). I got the network to work by pressing M to modularize the driver instead of Y to include. Can someone explain the difference between including a driver and modularizing it please? Also, does the mean I need to modularize all driver I wish to use?

----------

## NeddySeagoon

DeadM0nkey,

Both should work equally well.

When you say <*>, the code goes into the kernel binary that is loaded by the boot loader.

When you say <M> the code goes into /lib/modules/`uname -r` and can only be accessed after the root filesystem is mounted

This means you can often add a module <M> without a kernel rebuild.

----------

## DeadM0nkey

To summarize in case someone else looks at this, in my case, the module for the network card would not load when it was built-n (press y in the kernel configuration screen <*>) but worked perfectly when built as a module (Press m in the kernel configuration screen <M>)

Thanks to everyone for your help.

----------

## DeadM0nkey

Correction, 

Apparently while I had meant to modify my fstab to auto-mount /boot, I never did. my problem is as Neddy said, /boot wasn't mounted, so my kernel configs were being tossed into limbo. mount /boot before make install corrected the issue.

Thanks again!

----------

## NeddySeagoon

DeadM0nkey,

Your kernel was correctly built but installed to the wrong place.

So you had fixed your problem but didn't know it because you were always loading the old kernel.

----------

