PINE64
Scripting Bluetooth Hotspot for Mobian - Printable Version

+- PINE64 (https://forum.pine64.org)
+-- Forum: PinePhone (https://forum.pine64.org/forumdisplay.php?fid=120)
+--- Forum: PinePhone Software (https://forum.pine64.org/forumdisplay.php?fid=121)
+---- Forum: Mobian on PinePhone (https://forum.pine64.org/forumdisplay.php?fid=139)
+---- Thread: Scripting Bluetooth Hotspot for Mobian (/showthread.php?tid=16310)



Scripting Bluetooth Hotspot for Mobian - biketool - 03-14-2022

We already have almost everything we need here.
I want to get Bluetooth hotspot working on my Mobian/Pinephone, Bluetooth tethering a laptop or tablet while on the train, hotel, during a power outage, or at coffee is a basic daily driver phone requirement in my opinion.
I am sure the modern kernel has the required modules but I don't know what the interface name for bluetooth network interface for the pinephones bt driver; bnep0 is the interface used on this old N900 script.
I think this is an easy edit to the other network interfaces like USB already in the wiki unless iptables has changed much since the 2010s.

BT PAN tethering is by far the best and easiest way to tether to your phone's internet connection vs WiFi which wastes far more electricity per Mb transmitted for little benefit other than maybe easier sharing a wifi password with friends vs them having to pair with you on BT.  The security is provided by the bluetooth pairing process.

Below is the scripting to get full service, including DHCP, automatic Bluetooth PAN hotspot running on the Nokia N900, how much will work as is?.  

Code:
install the iptables package:

apt-get install iptables

create the following 2 files:

/etc/udev/rules.d/98-bnep0.rules:

ACTION=="add", SUBSYSTEM=="net",  KERNEL=="bnep0", RUN+="/etc/udev/bluenet.sh"
ACTION=="remove", SUBSYSTEM=="net",  KERNEL=="bnep0", RUN+="/etc/udev/bluenet.sh"

/etc/udev/bluenet.sh:

#! /bin/sh
if [ $ACTION = "add" ]; then
    echo 1 > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -A POSTROUTING ! -o lo -j MASQUERADE
    ifconfig bnep0 192.168.3.1
    ifconfig bnep0 up
    /usr/sbin/dnsmasq -I lo -z -a 192.168.3.1 -F 192.168.3.64,192.168.3.127 -x /var/run/dnsmasq.pid.bnep0
else
    iptables -t nat -D POSTROUTING ! -o lo -j MASQUERADE
    if [ -f /var/run/dnsmasq.pid.bnep0 ]; then
        DNSMASQ_PID=`cat /var/run/dnsmasq.pid.bnep0`
        rm -f /var/run/dnsmasq.pid.bnep0
        kill $DNSMASQ_PID
       fi
fi

then set /etc/udev/bluenet.sh as executible:

chmod +x /etc/udev/bluenet.sh

now whenever an authorised remote device makes a bluetooth pan (nap) connection iptables and dnsmasq are setup to allow that device access to the phones network. TODO: when no internet connection is active ask to set it up

The mobian wiki has instructions for USB, and LAN, WIfi hotspot is included but bluetooth PAN entry is not yet explained in the wiki.
https://wiki.mobian-project.org/doku.php?id=howto:networking


RE: Scripting Bluetooth Hotspot for Mobian - biketool - 03-20-2022

I have moved beyond this post to working on the bluez and udev rules
(edit) and now I am trying to fix routing but I have PAN/NAP profile working and can pair and get an IP address just working to fix the bridging between the WAN/internet and BT LAN.

see here
https://forum.pine64.org/showthread.php?tid=16343&pid=108330#pid108330