La IP estática en BBB no cambiará con el archivo de red/interfaces

La IP estática en BBB no cambiará con el archivo de red/interfaces

Estoy usando varios BBB (Rev C), comunicándome con ellos desde mi Mac (OSX 10.9.3) a través de USB usando elHORNDISconductores. Los BBB ejecutan Debian, por lo que quiero asignarles manualmente todas las IP estáticas diferentes. Sin embargo, no puedo conseguir que la IP sea otra cosa que 192.168.7.2. Cambiar el /etc/network/interfacesarchivo para que tenga una IP 192.168.7.10no hace nada:

# 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

# The primary network interface
#auto eth0
#iface eth0 inet dhcp
# Example to keep MAC address between reboots
#hwaddress ether DE:AD:BE:EF:CA:FE

auto eth0
iface eth0 inet static
address 192.168.2.2
netmask 255.255.255.0
network 192.168.2.0
broadcast 192.168.2.255
gateway 192.168.2.1

# WiFi Example
#auto wlan0
#iface wlan0 inet dhcp
#    wpa-ssid "essid"
#    wpa-psk  "password"

# Ethernet/RNDIS gadget (g_ether)
# ... or on host side, usbnet and random hwaddr
# Note on some boards, usb0 is automaticly setup with an init script
# in that case, to completely disable remove file [run_boot-scripts] from the boot partition
iface usb0 inet static
    address 192.168.7.10
    netmask 255.255.255.0
    network 192.168.7.0
    gateway 192.168.7.1

De hecho, había un archivo en la partición de arranque que también cambié, sin resultado:

#!/bin/bash

# Update /etc/network/interfaces to add virtual Ethernet port
cat >>/etc/network/interfaces <<EOF

iface usb0 inet static
  address 192.168.7.10
  netmask 255.255.255.0
  network 192.168.7.0
  gateway 192.168.7.1
EOF

# Add terminal to virtual serial port
cat >/etc/init/gadget-serial.conf <<EOF
start on stopped rc RUNLEVEL=[2345]
stop on runlevel [!2345]

respawn
exec /sbin/getty 115200 ttyGS0
EOF

# Write script to start gadget driver
cat >/usr/sbin/g-multi-load.sh <<'EOF'
#!/bin/bash
if [ "`lsmod | grep g_multi`" != "" ]; then exit 0; fi
mac_addr=/proc/device-tree/ocp/ethernet@4a100000/slave@4a100300/mac-address
eeprom=/sys/bus/i2c/devices/0-0050/eeprom

DEV_ADDR=$(perl -e 'print join(":",unpack("(H2)*",<>))' ${mac_addr})
VERSION=$(perl -e '@x=unpack("A12A4",<>); print $x[1]' ${eeprom})
SERIAL_NUMBER=$(perl -e '@x=unpack("A16A12",<>); print $x[1]' ${eeprom})
ISBLACK=$(perl -e '@x=unpack("A20A4",<>); print $x[1]' ${eeprom})

BLACK=""
if [ "${ISBLACK}" = "BBBK" ] ; then
    BLACK="Black"
fi
if [ "${ISBLACK}" = "BNLT" ] ; then
    BLACK="Black"
fi

modprobe g_multi file=/dev/mmcblk0p1 cdrom=0 stall=0 removable=1 nofua=1 iSerialNumber=${SERIAL_NUMBER} iManufacturer=Circuitco iProduct=BeagleBone${BLACK} host_addr=${DEV_ADDR}

# Enable the network interface
sleep 1
ifup usb0
EOF
chmod +x /usr/sbin/g-multi-load.sh

# Add script to rc.local
perl -i -pe 's!^exit 0!/usr/sbin/g-multi-load.sh\nexit 0!' /etc/rc.local

# Install DHCP server
sudo apt-get -y update
sudo apt-get -y install isc-dhcp-server

# Configure DHCP server
cat >/etc/ltsp/dhcp.conf <<EOF
ddns-update-style none;
subnet 192.168.7.0 netmask 255.255.255.252 {
  range 192.168.7.1 192.168.7.1;
}
EOF
perl -i -pe 's/INTERFACES=".*"/INTERFACES="usb0"/' /etc/default/isc-dhcp-server

# Start up services
/usr/sbin/g-multi-load.sh
service isc-dhcp-server start

Respuesta1

Hay un tercer archivo que debe cambiar para BeagleBone Black: /opt/scripts/boot/am335x_evm.sh

Lo encontré aquí: http://ewong.me/cambiando-usb0-ip-address-on-the-beaglebone-black

Respuesta2

Probé esto en mi BBB y no funcionó. Resultó que connman controlaba la configuración de red de mi Beaglebone. La edición de /etc/network/interfaces y otros archivos de script no tuvo ningún efecto después de reiniciar. (Supongo que si hubiera usado la interfaz GUI, esto podría haber sido más obvio. Tal como estaba, giré mis ruedas durante horas tratando de descubrir qué estaba pasando...) Finalmente logré que cambiara permanentemente a una interfaz estática. configuración de ip ingresando los siguientes comandos:

Primero, necesita encontrar el "nombre del servicio" para su conexión (en mi caso, por cable). Ingresar:

servicios de conexión

En mi caso, mi conexión por cable se llamaba "ethernet_b0d5cc8194db_cable". Necesita esto para establecer la configuración de la conexión. Lo siguiente configura mi conexión eth0 (por cable) a la dirección IP estática "192.168.1.219":

connmanctl configuración ethernet_b0d5cc8194db_cable ipv4 manual 192.168.1.219 255.255.255.0 192.168.1.1

Para agregar un servidor de nombres:

connmanctl configuración ethernet_b0d5cc8194db_cable --nameservers 8.8.8.8

También pude desactivar ipv6 (solo mi preferencia):

connmanctl configuración ethernet_b0d5cc8194db_cable ipv6 apagado

¡Es una pena que se nos ocurran tantas formas diferentes de configurar la red en Linux!

-John

información relacionada