Skip to content

Commit f27dab7

Browse files
author
Jason Kridner
committed
Add script to start gadget multi driver on Ubuntu
1 parent c5070d9 commit f27dab7

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
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

Comments
 (0)