O IP estático no BBB não será alterado com o arquivo de rede / interfaces

0

Estou usando vários BBBs (Rev C), comunicando-se com eles pelo meu Mac (OSX 10.9.3) via USB usando o HoRNDIS drivers. Os BBBs estão rodando Debian, então eu quero atribuir manualmente todos os diferentes IPs estáticos. No entanto, não consigo que o IP seja nada além de 192.168.7.2 . Alterar o arquivo /etc/network/interfaces para ter um ip de 192.168.7.10 não faz 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

Na verdade, havia um arquivo na partição de inicialização que eu também alterei, sem 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
    
por Dale Markowitz 18.06.2014 / 15:39

2 respostas

1

Existe um terceiro arquivo que você precisa alterar para o BeagleBone Black: /opt/scripts/boot/am335x_evm.sh

Eu encontrei aqui: link

    
por 08.04.2015 / 01:11
0

Eu tentei isso no meu BBB e não funcionou. Descobri que a configuração de rede no meu Beaglebone estava sendo controlada pela Connman. A edição de / etc / network / interfaces e outros arquivos de script não teve efeito após a reinicialização. (Eu suponho que se eu tivesse usado a interface GUI, isso pode ter sido mais óbvio. Como foi, eu girei minhas rodas por horas tentando descobrir o que estava acontecendo ...) Eu finalmente consegui mudar permanentemente para uma estática configuração ip, digitando os seguintes comandos:

Primeiro, você precisa encontrar o "nome do serviço" para a sua conexão (no meu caso, com fio). Digite:

serviços connmanctl

No meu caso, minha conexão com fio foi chamada de "ethernet_b0d5cc8194db_cable". Você precisa disso para definir a configuração da conexão. O seguinte definir minha conexão eth0 (com fio) para o endereço IP estático "192.168.1.219":

connmanctl config ethernet_b0d5cc8194db_cable ipv4 manual 192.168.1.219 255.255.255.0 192.168.1.1

Para adicionar um servidor de nomes:

connmanctl config ethernet_b0d5cc8194db_cable --nameservers 8.8.8.8

Eu também consegui desativar o ipv6 (apenas minha preferência):

connmanctl config ethernet_b0d5cc8194db_cable ipv6 desativado

É uma pena que estejamos com tantas maneiras diferentes de configurar a rede no linux!

-John

    
por 29.11.2016 / 03:50

Tags