# [SOLVED] ERROR: interface eth0 does not exist

## microchiroptera

When I try to connect to my wired connection, I see this:

```
# /etc/init.d/net.eth0 start

 * Bringing up interface eth0

 *   ERROR: interface eth0 does not exist

 *   Ensure that you have loaded the correct kernel module for your hardware

 * ERROR: net.eth0 failed to start
```

I have

```
# lspci | grep Ethernet

09:00.0 Ethernet controller: Attansic Technology Corp. Atheros AR8132 / L1c Gigabit Ethernet Adapter (rev c0)
```

I've checked my kernel configuration. I had

```
 Device Drivers --->

     [*] Network device support --->

     [*]   Ethernet (1000 Mbit) --->

     <*>     Atheros L1C Gigabite Ethernet support (experimental)
```

This feachure is experimental, so I googled that my problem can disappear if I change configuration to this:

```
 Device Drivers --->

     [*] Network device support --->

     [*]   Ethernet (1000 Mbit) --->

     <*>     Atheros/Attansic L1 Gigabit Ethernet support
```

But it still doesn't work. What can I do to fix this?Last edited by microchiroptera on Sat Aug 06, 2011 8:47 am; edited 1 time in total

----------

## albright

you might try to build the driver as a module ...

----------

## tetromino

I would suggest building all 3 Atheros drivers ("Atheros/Attansic L1 Gigabit Ethernet support", "Atheros L1E Gigabit Ethernet support (EXPERIMENTAL)", and "Atheros L1C Gigabit Ethernet support (EXPERIMENTAL)") as modules, and then reboot to see if any of them get loaded and bring up the network interface.

Also, maybe your network card additionally needs a separate a PHY driver (see Device drivers → Network device support → PHY Device support and infrastructure).

If that doesn't help, you should look in the kernel log (dmesg) to see if there are any errors related to the network, Atheros, atl1, atl1c, or atl1e.

----------

## microchiroptera

Thank you for your replies!

I've built drivers as modules and added PHY driver, but it didn't help. But I have this:

```
# dmesg | grep atl1c

atl1c: disagrees about version of symbol alloc_etherdev_mqs

atl1c: Unknown symbol alloc_etherdev_mqs (err -22)

atl1c: disagrees about version of symbol __vlan_hwaccel_rx

atl1c: Unknown symbol __vlan_hwaccel_rx (err -22)

atl1c: disagrees about version of symbol skb_put

atl1c: Unknown symbol skb_put (err -22)

atl1c: disagrees about version of symbol consume_skb

atl1c: Unknown symbol consume_skb (err -22)

atl1c: disagrees about version of symbol __netif_schedule

atl1c: Unknown symbol __netif_schedule (err -22)

atl1c: disagrees about version of symbol unregister_netdev

atl1c: Unknown symbol unregister_netdev (err -22)

atl1c: disagrees about version of symbol ___pskb_trim

atl1c: Unknown symbol ___pskb_trim (err -22)

atl1c: disagrees about version of symbol eth_validate_addr

atl1c: Unknown symbol eth_validate_addr (err -22)

atl1c: disagrees about version of symbol pskb_expand_head

atl1c: Unknown symbol pskb_expand_head (err -22)

atl1c: disagrees about version of symbol eth_type_trans

atl1c: Unknown symbol eth_type_trans (err -22)

atl1c: disagrees about version of symbol __napi_schedule

atl1c: Unknown symbol __napi_schedule (err -22)

atl1c: disagrees about version of symbol ethtool_op_set_sg

atl1c: Unknown symbol ethtool_op_set_sg (err -22)

atl1c: disagrees about version of symbol netif_device_detach

atl1c: Unknown symbol netif_device_detach (err -22)

atl1c: disagrees about version of symbol netif_device_attach

atl1c: Unknown symbol netif_device_attach (err -22)

atl1c: disagrees about version of symbol dev_kfree_skb_irq

atl1c: Unknown symbol dev_kfree_skb_irq (err -22)

atl1c: disagrees about version of symbol dev_kfree_skb_any

atl1c: Unknown symbol dev_kfree_skb_any (err -22)

atl1c: disagrees about version of symbol netif_napi_add

atl1c: Unknown symbol netif_napi_add (err -22)

atl1c: disagrees about version of symbol netif_receive_skb

atl1c: Unknown symbol netif_receive_skb (err -22)

atl1c: disagrees about version of symbol register_netdev

atl1c: Unknown symbol register_netdev (err -22)

atl1c: disagrees about version of symbol free_netdev

atl1c: Unknown symbol free_netdev (err -22)

atl1c: disagrees about version of symbol ethtool_op_get_link

atl1c: Unknown symbol ethtool_op_get_link (err -22)

atl1c: disagrees about version of symbol dev_alloc_skb

atl1c: Unknown symbol dev_alloc_skb (err -22)

atl1c: disagrees about version of symbol netif_carrier_off

atl1c: Unknown symbol netif_carrier_off (err -22)

atl1c: disagrees about version of symbol ethtool_op_get_sg

atl1c: Unknown symbol ethtool_op_get_sg (err -22)

atl1c: disagrees about version of symbol netif_carrier_on

atl1c: Unknown symbol netif_carrier_on (err -22)

atl1c: disagrees about version of symbol napi_complete

atl1c: Unknown symbol napi_complete (err -22)
```

----------

## tetromino

The "disagrees about version of symbol" errors seem to imply that your kernel and atl1c modules were built with different compiler versions or very different configurations.

Try rebuilding the kernel (including the Atheros/Attansic modules) from scratch:

make clean

make

make modules_install

----------

## microchiroptera

tetromino,

I used genkernel and I'm afraid to build kernel manually. And I used --clean flag, isn't it similar?

----------

## tetromino

Strange, the --clean argument should have helped. But perhaps doing the following will make a difference:

1. back up your kernel .config file (cp /usr/src/linux/.config /usr/src/my.config)

2. cd /usr/src/linux; make mrproper

3. restore the .config file (cp /usr/src/my.config /usr/src/linux/.config)

4. and finally, run genkernel.

----------

## microchiroptera

Thank you! Now everything is working correctly. --clean argument helped with --install (previously I used --no-install)

----------

