Linux – Missing eth0 Ethernet interface in Ubuntu — can’t connect to router

linuxnetworkingUbuntuwired-networking

I'm having trouble getting my Ubuntu 10.04 machine (Sony Vaio VGN-SR490) to connect to the Internet by way of an Ethernet cable connected directly to my router.

I'm able to connect to the Internet using this same cable using a Windows machine, so there's something wrong with the way Linux is configured.

How do I got about figuring out what the problem is and solving it?

Here are my network settings on Linux:

$ ifconfig

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1

vmnet1    Link encap:Ethernet  HWaddr 00:50:56:c0:00:01  
          inet addr:192.168.79.1  Bcast:192.168.79.255  Mask:255.255.255.0
          inet6 addr: fe80::250:56ff:fec0:1/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

vmnet8    Link encap:Ethernet  HWaddr 00:50:56:c0:00:08  
          inet addr:192.168.192.1  Bcast:192.168.192.255  Mask:255.255.255.0
          inet6 addr: fe80::250:56ff:fec0:8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

Here are my network settings on Windows (Vista):

Ethernet adapter Local Area Connection:

   Connection-specific DNS Suffix  . : [removed by me].
   Link-local IPv6 Address . . . . . : [removed by me]
   IPv4 Address. . . . . . . . . . . : 192.168.1.103
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 192.168.1.1

I censored my IP address from these results. If that information is needed, just let me know.

Here is the content of /etc/network/interfaces:

auto lo
iface lo inet loopback

After adding auto eth0, here are the latest results:

$ sudo ifup eth0

Internet Systems Consortium DHCP Client V3.1.3
Copyright 2004-2009 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

SIOCSIFADDR: No such device
eth0: ERROR while getting interface flags: No such device
eth0: ERROR while getting interface flags: No such device
Bind socket to interface: No such device
Failed to bring up eth0.

Here are the results of running a modprobe:

$ sudo modprobe msk

FATAL: Module msk not found.

$ dmesg | grep eth

I removed Linux from my computer and installed Windows XP, at the request of some of the people commenting on this question. I installed an ran a program to find out details about the network card. Here is that information:

Network
    You are not connected to the internet
        Computer Name
            NetBIOS Name    JOE-LAPTOP
            DNS Name    joe-laptop
            Domain Name joe-laptop
        Remote Desktop
                Console
                    State   Active
                    Domain  joe-laptop
                RDP-Tcp
                    State   Listen
        WinInet Info
            An internal error occurred.
        Wi-Fi Info
            Wi-Fi not enabled
        WinHTTPInfo
            WinHTTPSessionProxyType No proxy
            Session Proxy
            Session Proxy Bypass
            Connect Retries 5
            Connect Timeout 60000
            HTTP Version    HTTP 1.1
            Max Connects Per 1.0 Servers    INFINITE
            Max Connects Per Servers    INFINITE
            Max HTTP automatic redirects    10
            Max HTTP status continue    10
            Send Timeout    30000
            IEProxy Auto Detect No
            IEProxy Auto Config
            IEProxy
            IEProxy Bypass
            Default Proxy Config Access Type    No proxy
            Default Config Proxy
            Default Config Proxy Bypass
        Adapters List
        Network Shares
            No network shares

It looks like the network adapters list is empty. I will now install both Windows XP and Ubuntu Linux dual-boot. I'm still not able to access the internet, even through Windows. I'm wonder if this could be a hardware problem with the computer or a problem with the router itself. Other computers can connect to this same router, and work fine. (That's how I'm posting this after all!)

Best Answer

First of all, your ethernet isn't being managed by Ubuntu. Try ifconfig -a instead of just ifconfig, so you can see all your networking devices, managed or not. If you do see ethX in the ifconfig -a list, the solution should be straightforward, and you seemed to have gotten half of it. The following needs to go into your /etc/network/interfaces file:

auto ethX
iface ethX inet dhcp

The first line "activates" management of the interface and the second line sets it to DHCP and IP.

However, if you don't even see any ethX interfaces when you do ifconfig -a, it's a driver issue (Ubuntu isn't even seeing the interface). To solve this, either check from Windows' device manager for the PCI Vendor ID and Device ID of your ethernet card, which you can cross-reference here and see if you can find a driver for that (Vendor ID is the manufacturer, Device ID is the acutal model of the ethernet card). An alternative in-linux way to do this is via lspci.

In Windows 7, getting the Vendor/Device IDs is through the Device Manager -- open up the Network Interfaces node, double click on your network card, click on 'detail', and select "Hardware IDs" from the drop-down list. The Vendor ID are the 4 hexadecimal digits after the VEN_ prefix, and the device id is the 4 hex digits after the &DEV_ immediately following the vendor.

Related Question