47

I'm struggling with my configuration of my Raspberry Pi. I want to achieve the following:

eth0: will be used with a static ip and can only connect to the local area network (this will be my NFS server) wlan0: Should connect to my wireless network for internet access

For some reason I'm unable to activate both connection at the same time (yes I have a good power supply). The ethernet will disable the wireless for no reason at all. If i finally get the both up then I'm unable to ping google.com. My question how should I do this correctly? I have the following in my interfaces file:

auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.101
netmask 255.255.255.0
gateway 0.0.0.0

#auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

iface home inet static
address 192.168.0.157
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1

iface default inet dhcp

Kind Regards, and thank you very much!

DanFritz
  • 996
  • 1
  • 10
  • 14

2 Answers2

26

This applies to Raspbian Wheezy prior to 2015-05-05 for later (and Jessie/Stretch) See How do I set up networking/WiFi/Static IP

As suggested by the community, my answer extracted from the question.

I got it working right now so I'll share all my configuration files with the community. Firstly lets look at the wpa_supplicant.conf file:

pi@raspberrypi ~ $ sudo cat /etc/wpa_supplicant/wpa_supplicant.conf 
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="****"
    scan_ssid=1
    proto=RSN
    key_mgmt=WPA-PSK
    pairwise=CCMP TKIP
    group=CCMP TKIP
    psk="****"
    id_str="home"
    priority=5
}

Next my new update interfaces file

pi@raspberrypi ~ $ sudo cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.101
netmask 255.255.255.0

auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
address 192.168.0.157
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1

iface default inet dhcp

And now comes the tricky part, you have to disable the hotplugging of the eth0 device (else it will disable your wlan0). You do this by edting the following file:

pi@raspberrypi ~ $ sudo cat /etc/default/ifplugd 
INTERFACES="eth0"
HOTPLUG_INTERFACES="eth0"
ARGS="-q -f -u0 -d10 -w -I"
SUSPEND_ACTION="stop"

I also have the following in my startup script, this will make sure my wifi does get started up (sometimes for no reason at all it would not start). You also have to kill the ifplugd daemon on the eth0 device:

pi@raspberrypi ~ $ sudo cat /etc/rc.local
#!/bin/sh -e

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

# Disable the ifplugd eth0
sudo ifplugd eth0 --kill
sudo ifup wlan0

exit 0

And that should work!

Milliways
  • 62,573
  • 32
  • 113
  • 225
DanFritz
  • 996
  • 1
  • 10
  • 14
8

If a device does not have internet access or other access outside the local subnet, then you should eliminate the gateway. Listing a gateway on both interfaces is likely the culprit.

If the ethernet is for the local subnet only remove that gateway.

Tevo D
  • 831
  • 8
  • 13