BLUENET

Jun. 26th, 2008 01:12 pm
vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner
Еще один скрипт из комплекта bluetooth-cli. Обертка вокруг pand, которая обррабатывает типичные ситуации
Использование:
bluenet on
найти первую активную точку доступа с профайлом NAP из перечисленных в /etc/bluetooth/NAP (в порядке перечисления) и присоединиться
bluenet off
отсоединиться
bluenet address профиль
Где профиль NAP (по умолчанию) или GN - присоединться к указанной точке доступа
bluenet master профиль
Изобразить из себя точку доступа (если профиль NAP) или мастера ad-hoc сети (если профиль GN).


Собственно скрипт
#!/bin/sh
case "$1" in
on) 
	# Поиск точки доступа в /etc/bluetooth/NAP
   	while read address; do
	  echo "Trying access point $address"
	  if sdptool search --bdaddr $address NAP | grep -q "Service Name"; then
	  	pand -c $address -d NAP --devup /usr/local/sbin/btnet-client
	  	exit
	  fi
	  done </etc/bluetooth/NAP
	  echo "No active network access point found" 1>&2
	  exit 1
;;
[0-9A-F][0-9A-F]:*)
	role=${2:-"NAP"}
	pand -c $1 -d $role --devup  /usr/local/sbin/btnet-client
;;
off)
	ifdown bnep0
	pand -K
;;
master)
# вариант работы ноутбука сервером ad-hoc сети
	role=${2:-"GN"}
	PAN_BRIDGE=btgn0
	# Экспортируем имя briget для использования btnet-server скриптом
	export PAN_BRIGE
	# Создаем bridge на котором будет висеть dhcp сервер
	brctl addbr $PAN_BRIDGE
	ifconfig btgn0 10.0.0.1 netmask 255.255.255.0 broacast 10.0.0.255
	# Здесь надо бы проверить запущенность dnsmasq и его слегка
	# переконфигурировать. Но у меня он все равно запущен и
	# сконфигурирован так, что и так работает.
	# За исключением того что отдает default gateway и в режиме NAP
	# и в режиме GN
	
	# Если мы работаем NAP, включаем форвардинг
	if [ "$role" = "NAP" ]; then
		echo 1> /proc/sys/net/ipv4/ip_forward
	fi
	# Запускаем pand в режиме приема
	pand --listen --role $role --devup /usr/local/sbin/btnet-server 
	;;
*)
	echo "use $0 on|off|master [GN|NAP]|address [GN|NAP]" >&2
	exit 1
	;;
esac






Вспомогательные скрипты, вызываемые pand при поднятии интерфейса
btnet-client: (предполагает, что в /etc/network/interfaces присутствует строка "iface bnep0 inet dhcp")
#!/bin/sh
logger -p daemon.info "btnet-client[$$] Connected to PAN access point $2 interface $1" 
ifup $1

bnet-server:
#!/bin/sh
logger -p daemon.info "btnet-server[$$]: Machine $2 is connected to our net inetface $1"
if [ -z "$PAN_BRIDGE" ]; then
        logger -p daemon.error "btnet-client[$#]: PAN_BRIDGE variable is absent. Is pand started from bluenet script?"
        exit 1
fi
brctl add $PAN_BRIDGE $1
ifconfig $1 0.0.0.0


Не хватает еще скрипта, который добавляет hostname приконнектившихся машин в файл, из которого резолвит имена dnsmasq.
Но вообще, если в режиме клиента я этим скриптом пользуюсь уже давно, и для коннекта к телефону, и для коннекта к компьютеру
(в /etc/bluetooth/NAP у меня две строчки - адрес домашнего компьютера, и адрес моего телефона - именно в такой последовательности), то режим сервера я активно не тестировал. Последнее время ad-hoc сети чаще делаются по Wi-Fi, чем по bluetooth.

Date: 2008-06-26 01:50 pm (UTC)
From: [identity profile] evg-krsk.livejournal.com
Пропатчить чтоли под etcnet...

Date: 2008-07-03 06:43 am (UTC)
From: [identity profile] evg-krsk.livejournal.com
На самом деле, в etcnet для этого уже всё есть родное. Разве что GN вроде не умеет. Но это просто сделать.

Вчера как-то настройл сеть. Что-то даже как-то заработало. Надо делать нормально.

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

June 2025

S M T W T F S
1 23 4 567
891011121314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 5th, 2025 09:54 pm
Powered by Dreamwidth Studios