Raspberry Pi PAN

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

Пикосеть Bluetooth-PAN (Personal Area Network)

Поднимаем сеть через bluetooth на Raspberry Pi с поддержкой systemd.

Моя дружба с Raspberry Pi многолетняя, и все годы я бесконечно экспериментировал. Неужели Raspberry Pi подталкивает к авантюризму? Кроме всего прочего, я страстный фотограф, вовсю использую «малинку» как беспроводный пульт дистанционного управления фотоаппаратом с помощью программы gphoto2.

В моей конфигурации миникомпьютер включает собственный веб-сервер для удаленного просмотра фотографий через wi-fi и работает в режиме точки доступа.

Но мне необходим еще один сетевой беспроводный интерфейс, и вот здесь начинается знакомство с пикосетью PAN (HOWTO-PAN).


Между прочим, корпорация Nikon тоже использует подобное решение: фотографии передаются через интерфейс wi-fi, но управление осуществляется через блютус. Программа называется SnapBridge для iOS и Android.

А еще с помощью PAN и ssh можно удаленно управлять «малинками», или даже сделать мост в интернет, например, чтобы смотреть через браузер новости или читать почту.

Еще несколько лет назад пикосеть настраивалась с помощью программы pand, сегодня устаревшая утилита pand уже не поддерживается, наступила эпоха systemd с «юнитами» загрузки. Рабочую конфигурацию юнитов я нашел на известном ресурсе stackoverflow, но стремительное развитие блютус опять-таки потребовало внести коррективы.

Итак, начинаем настраивать PAN в системе с поддержкой systemd.

После установки основных пакетов bluetooth Raspberry Pi OS, скачайте bluez-utils:
$ sudo apt-get install bluez-utils
Посмотрите, не заблокирован ли программно блютус:
$ rfkill (блютус должен быть включен)
Чтобы настроить сеть, необходимо узнать аппаратные адреса блютус на клиенте и сервере:
$ hcitool dev (записываем адреса MAC)

Также придется определить «доверенные устройства». Для этого в Linux есть утилита bluetoothctl.
Исчерпывающей документации по bluetoothctl много, поэтому приведу основные действия. На сервере и клиенте включите блютус, чтобы радиоинтерфейсы «светили», затем запустите интерактивную команду bluetoothctl, справка вызывается командой help. Сканируем доступные сети. Найдите  MAC адрес нужного устройства, сделайте «pair MAC» (автоматическое дополнение tab) и «trust MAC», «connect MAC».

Кажется, все самое неприятное позади. Но придется
создать четыре файла для работы systemd на стороне сервера.
Они создаются в директориях /etc/systemd/network и /etc/systemd/system.
Это следующие файлы: /etc/systemd/network/pan0.netdev, /etc/systemd/network/pan0.network, /etc/systemd/system/bt-agent.service, /etc/systemd/system/bt-network.service.

Ниже содержимое всех четырех файлов.

/etc/systemd/network/pan0.netdev

[NetDev]
Name=pan0
Kind=bridge

/etc/systemd/network/pan0.network

[Match]
Name=pan0

[Network]

«Внешний» адрес, по нему можно будет соединяться через ssh.

Address=192.168.5.1/24
DHCPServer=yes

/etc/systemd/system/bt-agent.service

[Unit]
Description=Bluetooth Auth Agent

[Service]
ExecStart=/usr/bin/bt-agent -c NoInputNoOutput
Type=simple

[Install]
WantedBy=multi-user.target

/etc/systemd/system/bt-network.service

[Unit]
Description=Bluetooth NEP PAN
After=pan0.network

[Service]
ExecStart=/usr/bin/bt-network -s nap pan0
Type=simple

[Install]
WantedBy=multi-user.target

Возможно, потребуется внести изменения в файл etc/bluetouch/main.conf

Я добавил всего две строки, чтобы сеть автоматически поднималась.

DiscoverableTimeout=60
AutoEnable=true

Запускаем сервисы systemd.

$ sudo systemctl enable systemd-networkd
$ sudo systemctl enable bt-agent
$ sudo systemctl enable bt-network
$ sudo systemctl start systemd-networkd
$ sudo systemctl start bt-agent
$ sudo systemctl start bt-network

На стороне сервера все сделано.
Теперь на стороне клиента надо всего лишь ввести в командной строке (или создать скрипт) простенькую команду, где вместо звездочек MAC адрес сервера.
$ sudo bt-network -c ******** nap

Примечание. Команда bt-network имеет обыкновение выгружаться с ошибкой «segmentation fault», если сервер недоступен. Если соединение установлено, вы увидите столь долгожданную надпись «network service is connected». Проверьте соединение и найдите интерфейс bnep0:
$ ip a | grep bnep

Затем, если соединение установлено, введите стандартную команду ssh. (Подразумевается, что имя сервера pi)
$ ssh pi@192.16.8.5.1

Сервер затребует пароль и… настройка завершена!
А с помощью ifconfig или более современной команды ip на стороне сервера можно будет посмотреть сетевые устройства pan0 и bnep0

PS Я подключаюсь через PAN к компьютеру уже около года, сеть на удивление стабильная и быстрая.




Источник: https://habr.com/ru/post/655289/


Интересные статьи

Интересные статьи

ВведениеВ данной статье я бы хотел рассмотреть проблему обновления PHP в виртуальной машине BitrixVM, и действия, которые возможно применить если выполнение переезда на машину с обновленным ПО невозмо...
Я создал прототип системы удалённого мониторинга рабочих мест. Эта система позволяет организациям, адаптирующимся к ограничениям, связанным с COVID-19, осуществлять наблюдение за сотрудни...
Подходил к концу календарный год, к праздникам правительство ужесточило локдаун и ввело комендантский час. Впереди было дней 10 выходных, и я решил, что наступает самое то время, чтобы за...
VUE.JS - это javascript фрэймворк, с версии 18.5 его добавили в ядро битрикса, поэтому можно его использовать из коробки.
Привет Хабр. Raspberry Pi наверное есть дома почти у каждого, и рискну предположить, что у многих она валяется без дела. А ведь Raspberry это не только ценный мех, но и вполне мощный fanless-к...