I’m trying to connect multiple BBBs to a single PC using USB connections and I’m not sure how to get it working. When I plug multiple BBBs to a PC, they all show up as external drives (OK) and each of them shows up as a RNDIS network adapter (OK). However, RNDIS of the BBB that was plugged in second does not get proper IP address (not OK!!!). So, I’m unable to communicate with my application that is running in BBB.
We are planing to design an embedded controller based on AM335x/BBB and being able to connect multiple of them to a single PC is a requirement.
Any help would be appreciated.
I think I’ve found an answer. The BBB uses systemd to get the user space processes going at boot time. Look in /lib/systemd/system it see the various services that can be started. The one of interest is /lib/systemd/system/udhcpd.service. This starts the dhcp server that assigns the IP address to the host. Looking inside you see
Description=DHCP server for USB0 network gadget
ExecStart=/usr/sbin/udhcpd -f -S /etc/udhcpd.conf
ExecStop=/bin/kill -TERM $MAINPID
It looks like /etc/udhcpd.conf is what configures the server. In it we find:
option subnet 255.255.255.252
On your second bone try editing this file to use a different range of addresses. That will assign your host a different number. To give your beagle a different number, look near the bottom of /usr/bin/g-ether-load.sh. I think that’s where your BBB is assigned a number.
I haven’t tested this. Let me know if it works.
I followed your suggestion and, eventually, was able to get 2 BBB connected and working on a single PC. In addition to /etc/udhcpd.conf, I needed to edit /usr/bin/g-ether-load.sh and /etc/udev/rules.d/udhcpd.rules However, I need more automated way to accomplish this task, since we can’t expect our end users to log into our product and change the settings…
Thanks for your help.
Mark's Recipe might work, but IMHO you have to use a different subnet
for each BBB.
BBB1 192.168.101.2 and USB1 on the PC 192.168.101.1
BBB2 192.168.102.2 and USB2 on the PC 192.168.102.1
BBB3 192.168.103.2 and USB3 on the PC 192.168.103.1
And the you have add to route rules between all these subnets.....
But - Ethernet might be much easier. If you assign each BBB a fixed IP
on eth0, then you can combine almost unlimited BBB's like in a server
farm. The only con is that you need two cables for every BBB, 5V and
I did use different subnet (192.168.7.x and 192.168.8.x) by modifying /etc/udhcpd.conf, /usr/bin/g-ether-load.sh and /etc/udev/rules.d/udhcpd.rules and got them to work. Since I don’t need those BBBs to talk to each other, I don’t need to worry about adding routes or bridging those nets. It would be nice if the DHCP stuff was running on the PC so that I don’t have to change settings in each BBB that I want to use in on a single PC…
Does any one know how to make BBB with Angstrom work as a generic Bulk Device Class USB device? Any pointers would be appreciated.