Results 1 to 2 of 2

Thread: Choose network configuration on boot by availability (no NetworkManager)

  1. #1
    Join Date
    Jun 2006
    Kubuntu 8.10 Intrepid Ibex

    Question Choose network configuration on boot by availability (no NetworkManager)

    I have a situation where I have a headless computer running Ubuntu 12.04 that I primarily connect to via SSH. It is headless because it is inside a robot, and connecting a monitor and keyboard are very inconvenient. It is bare-bones Ubunu installation - no X server, no NetworkManager. It currently connects to a wifi router using a configuration specified in /etc/network/interfaces. Because I connect to it using SSH, the computer uses a static IP whenever it boots. The current wifi configuration works, but I want to add support for wired connections and direct local-link ethernet connections. (Because who wants to drag a WiFi router around everywhere, and also Ethernet is more reliable, and also can be faster.)

    What I want to do, but don't know how to do, is write an /etc/network/interfaces file that generates the following behavior on boot:
    (This is pseudocode)
    IF link-local connection exists:
        set up eth0 with static IP1
    ELSE IF wired router connection exists:
        set up eth0 with static IP2
    ELSE IF no Ethernet plugged in:
        set up wlan0 with static IP3
    link-local is a direct computer-to-computer Ethernet connection. I don't know how to set that up. I also haven't been able to find an example demonstrating how to generate this kind of "fallback" behavior. I do not want to bridge any connections, I don't think. I think that using pre-up and post-up commands might be the key to achieving the fallback behavior, because they could run a script that check if the interface is already configured, but don't know exactly how. The robot just needs to do this network setup once on boot - it is very cheap to reboot the robot (only takes 5 seconds) so even if it is not robust to manual ifdown ifup commands that wouldn't matter. Here is my current /etc/network/interfaces file that I'm starting with:
    # This file describes the network interfaces available on your system
    # and how to activate them. For more information, see interfaces(5).
    # The loopback network interface
    auto lo
    iface lo inet loopback
    #auto eth0
    #iface eth0 inet dhcp
    auto wlan0
    iface wlan0 inet static
            wpa-ssid metHubo
            wpa-psk [removed] 
    If someone could post a dummy /etc/network/interfaces file showing how to do the fallback from link-local to wired router to wireless router, that would be great.

  2. #2
    Join Date
    Feb 2007
    West Hills CA
    Ubuntu 14.04 Trusty Tahr

    Re: Choose network configuration on boot by availability (no NetworkManager)

    Your definition of link-local depends on your robot's ethernet jack or the connecting computer's ethernet jack to support swapping TX and RX lines. Normally one would use a cross-over or patch cable (typically bright orange or yellow) for such a connection. Normally you don't need a custom IP for such a connection. So simply defining a manual IP and auto eth0 and auto wlan0 should be sufficient. For your link-local connection, your laptop needs to have a manual IP in the same LAN subnet.

    When wireless drops and wired is detected, the connection should be made automatically.

    man interfaces
    Will have detail on all the settings available.
    Oooh Shiny: PopularPages

    Unumquodque potest reparantur. Patientia sit virtus.

Tags for this Thread


Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts