Statische IP auf BBB ändert sich nicht mit Netzwerk-/Schnittstellendatei

Statische IP auf BBB ändert sich nicht mit Netzwerk-/Schnittstellendatei

Ich verwende mehrere BBBs (Rev C) und kommuniziere mit ihnen von meinem Mac (OSX 10.9.3) über USB mit demHoRNDISTreiber. Die BBBs laufen unter Debian, daher möchte ich ihnen allen manuell verschiedene statische IPs zuweisen. Ich kann die IP jedoch nicht anders als bekommen 192.168.7.2. Das Ändern der /etc/network/interfacesDatei auf eine IP von 192.168.7.10bewirkt nichts:

# 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

Tatsächlich gab es in der Boot-Partition eine Datei, die ich ebenfalls geändert habe, ohne Ergebnis:

#!/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

Antwort1

Es gibt eine dritte Datei, die Sie für BeagleBone Black ändern müssen: /opt/scripts/boot/am335x_evm.sh

Ich habe es hier gefunden: http://ewong.me/changing-usb0-ip-address-on-the-beaglebone-black

Antwort2

Ich habe dies auf meinem BBB versucht und es hat nicht funktioniert. Es stellte sich heraus, dass die Netzwerkkonfiguration auf meinem Beaglebone von Connman gesteuert wurde. Das Bearbeiten von /etc/network/interfaces und anderen Skriptdateien hatte nach einem Neustart keine Wirkung. (Ich nehme an, wenn ich die GUI-Schnittstelle verwendet hätte, wäre dies möglicherweise offensichtlicher gewesen. So wie es war, habe ich stundenlang herumgetüftelt, um herauszufinden, was los war...) Ich habe es schließlich geschafft, dauerhaft auf eine statische IP-Konfiguration umzustellen, indem ich die folgenden Befehle eingegeben habe:

Zuerst müssen Sie den „Dienstnamen“ für Ihre (in meinem Fall kabelgebundene) Verbindung finden. Geben Sie ein:

connmanctl-Dienste

In meinem Fall hieß meine kabelgebundene Verbindung "ethernet_b0d5cc8194db_cable". Diesen Namen brauchst du, um die Konfiguration für die Verbindung einzustellen. Folgendes stellt meine eth0 (kabelgebundene) Verbindung auf die statische IP-Adresse "192.168.1.219" ein:

connmanctl config ethernet_b0d5cc8194db_cable ipv4 manuell 192.168.1.219 255.255.255.0 192.168.1.1

So fügen Sie einen Nameserver hinzu:

connmanctl config ethernet_b0d5cc8194db_cable --nameservers 8.8.8.8

Ich konnte auch IPv6 deaktivieren (nur meine Vorliebe):

connmanctl config ethernet_b0d5cc8194db_cable ipv6 aus

Es ist eine Schande, dass es so viele verschiedene Möglichkeiten gibt, das Netzwerk unter Linux zu konfigurieren!

-John

verwandte Informationen