P.S. to my solution, which I detailed here some time ago:
I bought a Moto G android mobile phone recently (Android 4.4 Kitkat), and connecting to the RPi via Bluetooth/PAN with it worked, BUT the mobile didn't get an IP address ("netcfg" on the phone showed "bt-pan UP 0.0.0.0"). So the connection was unusable.
I guessed the Moto tried to get an ip from the RPi but didn't. Setting an ip manually (ip addr etc.) would have required "rooting" the phone which I didn't want to do. So I chose udhcpd as a DHCP server on the RPi, for its very small footprint:
Code: Select all
apt-get install bridge-utils udhcpd
I previously had noticed the following message in syslog every time a device connected via bluetooth:
Code: Select all
rpi bluetoothd[1972]: Added new connection: bnep0
rpi bluetoothd[1972]: Can't add bnep0 to the bridge tether: No such device(19)
I therefore defined that device in /etc/network/interfaces:
Code: Select all
auto tether
iface tether inet static
address 192.168.3.1
netmask 255.255.255.0
broadcast 192.168.3.255
bridge_ports none
bridge_fd 0
bridge_stp off
(removing any bnep0 entries in that file), in the hope that bluetoothd would add bnep0 to the bridge "tether" once it was created, and... IT DID!
udhcpd was then instructed to operate on the interface "tether", in /etc/udhcpd.conf:
Code: Select all
start 192.168.3.20
end 192.168.3.254
interface tether
remaining yes
option subnet 255.255.255.0
opt router 192.168.3.1
(leave the other values commented out or at their defaults).
Now, the Moto G (or any other device) gets its PAN ip from the RPi once it connects via bluetooth. A presence of all devices in the same subnet is enforced, which is necessary for the RPi and all devices to see each other.
The behaviour that bluetoothd tries to add bnep0 to a bridge named tether is probably defined somewhere but I don't know where... but I guess it's a "default", so everybody who didn't delete this configuration should be able to use that.
@ ashtonmarkson,
can you confirm that the BT dongle is working (try lsusb)? Did you scan the logs in /var/log/ (syslog etc.) for unusual messages from bluetoothd or kernel?