|
| 1 | +#!/bin/bash |
| 2 | + |
| 3 | +# Update /etc/network/interfaces to add virtual Ethernet port |
| 4 | +cat >>/etc/network/interfaces <<EOF |
| 5 | +
|
| 6 | +iface usb0 inet static |
| 7 | + address 192.168.7.2 |
| 8 | + netmask 255.255.255.0 |
| 9 | + network 192.168.7.0 |
| 10 | + gateway 192.168.7.1 |
| 11 | +EOF |
| 12 | + |
| 13 | +# Add terminal to virtual serial port |
| 14 | +cat >/etc/init/gadget-serial.conf <<EOF |
| 15 | +start on stopped rc RUNLEVEL=[2345] |
| 16 | +stop on runlevel [!2345] |
| 17 | +
|
| 18 | +respawn |
| 19 | +exec /sbin/getty 115200 ttyGS0 |
| 20 | +EOF |
| 21 | + |
| 22 | +# Write script to start gadget driver |
| 23 | +cat >/usr/sbin/g-multi-load.sh <<'EOF' |
| 24 | +#!/bin/bash |
| 25 | +if [ "`lsmod | grep g_multi`" != "" ]; then exit 0; fi |
| 26 | +mac_addr=/proc/device-tree/ocp/ethernet@4a100000/slave@4a100300/mac-address |
| 27 | +eeprom=/sys/bus/i2c/devices/0-0050/eeprom |
| 28 | +
|
| 29 | +DEV_ADDR=$(perl -e 'print join(":",unpack("(H2)*",<>))' ${mac_addr}) |
| 30 | +VERSION=$(perl -e '@x=unpack("A12A4",<>); print $x[1]' ${eeprom}) |
| 31 | +SERIAL_NUMBER=$(perl -e '@x=unpack("A16A12",<>); print $x[1]' ${eeprom}) |
| 32 | +ISBLACK=$(perl -e '@x=unpack("A20A4",<>); print $x[1]' ${eeprom}) |
| 33 | +
|
| 34 | +BLACK="" |
| 35 | +if [ "${ISBLACK}" = "BBBK" ] ; then |
| 36 | + BLACK="Black" |
| 37 | +fi |
| 38 | +if [ "${ISBLACK}" = "BNLT" ] ; then |
| 39 | + BLACK="Black" |
| 40 | +fi |
| 41 | +
|
| 42 | +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} |
| 43 | +
|
| 44 | +# Enable the network interface |
| 45 | +sleep 1 |
| 46 | +ifup usb0 |
| 47 | +EOF |
| 48 | +chmod +x /usr/sbin/g-multi-load.sh |
| 49 | + |
| 50 | +# Add script to rc.local |
| 51 | +perl -i -pe 's!^exit 0!/usr/sbin/g-multi-load.sh\nexit 0!' /etc/rc.local |
| 52 | + |
| 53 | +# Install DHCP server |
| 54 | +sudo apt-get -y update |
| 55 | +sudo apt-get -y install isc-dhcp-server |
| 56 | + |
| 57 | +# Configure DHCP server |
| 58 | +cat >/etc/ltsp/dhcp.conf <<EOF |
| 59 | +ddns-update-style none; |
| 60 | +subnet 192.168.7.0 netmask 255.255.255.252 { |
| 61 | + range 192.168.7.1 192.168.7.1; |
| 62 | +} |
| 63 | +EOF |
| 64 | +perl -i -pe 's/INTERFACES=".*"/INTERFACES="usb0"/' /etc/default/isc-dhcp-server |
| 65 | + |
| 66 | +# Start up services |
| 67 | +/usr/sbin/g-multi-load.sh |
| 68 | +service isc-dhcp-server start |
0 commit comments