Я собрал бюджетный набор для IRL-стриминга на Raspberry Pi. Часть вторая — пошаговая настройка Raspberry

Большое спасибо за комментарии и интерес к предыдущему посту. Эта статья продолжение моей истории про IRL-стриминг. Первая часть находится здесь. Сегодня расскажу, как шаг за шагом сделать из малины мобильный роутер с нуля.

Стартер пак бюджетной точки доступа
Стартер пак бюджетной точки доступа

Многих заинтересовала идея создать точку доступа, которая будет помещаться в рюкзак или бардачок авто. Оказалось, что информации в свободном доступе недостаточно и она сложна для понимания новичками. У меня есть практический опыт настройки и я с радостью поделюсь с вами, но! Я считаю себя начинающим пользователем Linux, поэтому моя инструкция всего лишь моё видение настройки Raspberry Pi 4 и для матёрых линуксоидов она может показаться неполной (добавьте фишек в комментарии если знаете).

Нам понадобится:

1) Rasbperry Pi 4, 4GB + SD карта объёмом от 4GB с классом скорости от 6 и выше.

У меня такая малина, но скорее всего будет работать и на RP3. Насчёт SD карты для малины не рекомендую брать ноунем карты, медленная карта значительно снижает скорость работы и могут возникать рандомные ошибки. Также обязательно установите самый простой кулер в корпус малины!

2) Блок питания или Power bank с выходным током 5V 3A.

Мы собираемся подключать к малине модемы, раздавать с неё wi-fi и также нагружать систему. При падении напряжения произойдет отключение USB-портов и начнется троттлинг процессора. В качестве источника питания я использую Mi Power Bank Pro 3 20000 через порт type-c. Топовый гаджет, с ним можно заряжать ещё 1-2 устройства, а разрядить его полностью за 4-5 часов мне не удавалось.

3) USB-модемы свистки и/или смартфон с USB-кабелем.

Источники для будущего соединения подбирайте под свою задачу индивидуально. Проверенно работают модемы huawei E3372H и его аналоги. Модем нужен прошитый под Hilink, его можно найти на авито вашего города.Также любой подойдёт Андроид или Iphone в режиме USB-модема. Я использую связку модем и телефон с разными операторами. При использовании телефона вставляйте в него сим-карту самого быстрого оператора с поддержкой 4G+.

4) ПК с Windows/Mac с картридером.

Вся инструкция будет для винды. Уверен, что на маке можно сделать аналогично, но у меня ноутбук на винде.

Итак, снаряжение собрали, пальцы размяли и выделили парочку часов прекрасного времяпрепровождения в компании гаджетов, которые скоро мы заставим работать на нас!

Этап 1. Создание загрузочной карты для Raspberry Pi.

Самый простой этап, разминочный. Здесь всё просто и редко возникают проблемы. Я рекомендую использовать официальный софт Raspberry Pi Imager. Установить его и запустить.Выбрать Raspbian из списка систем. Образ скачается и установится автоматически. Посмотрите видео как это сделать:

Для новичков рекомендую использовать именно Raspberry Pi Imager. Есть альтернативные варианты, например, скачать отдельно образ и установить с помощью balenaEtcher или подобного софта. Если образ не пишется или не читается, то скорее всего проблема в карте памяти или картридере.

Установка и проверка образа занимает до получаса. При успешной записи не спешите извлекать карточку. В появившемся разделе BOOT и нужно добавить пару файлов:

  1. Пустой файл ssh.txt
  2. Текстовый файл wpa_supplicant.conf. Создайте и пропишите в нём данные вашей wi-fi сети, к которой подключится малина после загрузки.
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="ИМЯ ВАШЕЙ СЕТИ SSID" psk="ПАРОЛЬ СЕТИ" key_mgmt=WPA-PSK }
Поздравляю! Карта готова для установки в Raspberry Pi! 
Поздравляю! Карта готова для установки в Raspberry Pi! 

Этап 2. Подключение к малине и первоначальная настройка.

Вставляем карту в малину, подключаем питание и ждём до 10 минут. Если мы всё сделали правильно в первом этапе, то малина уже загрузилась и подключилась к вашей домашней сети. Я предпочитаю визуальный интерфейс для работы, поэтому хочу сразу включить его и нажимать на кнопочки в оболочке, чтобы минимизировать работу с командной строкой.

1) Определяем IP адрес малины в вашей сети и подключаемся к ней.

Для начала нужно установить Putty — терминал для подключения к малине.

Так выглядить Putty
Так выглядить Putty

В поле Host name обычно предлагают вводить pi@raspberrypi.local, однако, у меня это срабатывает через раз. Если у вас не получается подключиться, то нужно узнать IP адрес малины в вашей сети. Для этого я зашёл в интерфейс моего роутера и подсмотрел IP адрес малины, также можно воспользоваться IP сканерами, пример ниже.

фото с сайта Amperka.ru, <a href="https://api.vc.ru/v2.8/redirect?to=http%3A%2F%2Fwiki.amperka.ru%2Frpi%3Ainstallation%3Assh%23%3A%7E%3Atext%3D%25D0%259F%25D0%25BE%25D0%25B4%25D0%25BA%25D0%25BB%25D1%258E%25D1%2587%25D0%25B5%25D0%25BD%25D0%25B8%25D0%25B5%2520%25D0%25BF%25D0%25BE%2520SSH%2520%25D0%25BA%2520%25D0%25BA%25D0%25BE%25D0%25BD%25D1%2581%25D0%25BE%25D0%25BB%25D0%25B8%2520Raspberry%2520Pi%2C-Raspberry%2520Pi%2520%25D0%25B7%25D0%25B0%25D0%25BF%25D1%2583%25D1%2589%25D0%25B5%25D0%25BD%25D0%25B0%26amp%3Btext%3D%25D0%2597%25D0%25B0%25D0%25BF%25D1%2583%25D1%2581%25D1%2582%25D0%25B8%25D1%2582%25D0%25B5%2520PuTTY.%2C%25D0%25BF%25D0%25BE%25D0%25BF%25D1%2580%25D0%25BE%25D1%2581%25D0%25B8%25D1%2582%2520%25D0%25B2%25D0%25B2%25D0%25B5%25D1%2581%25D1%2582%25D0%25B8%2520%25D0%25BB%25D0%25BE%25D0%25B3%25D0%25B8%25D0%25BD%2520%25D0%25B8%2520%25D0%25BF%25D0%25B0%25D1%2580%25D0%25BE%25D0%25BB%25D1%258C.&postId=307433" rel="nofollow noreferrer noopener" target="_blank">хороший гайд</a>
фото с сайта Amperka.ru, хороший гайд

После успешного подключения видим окно ввода логина и пароля.

Я собрал бюджетный набор для IRL-стриминга на Raspberry Pi. Часть вторая — пошаговая настройка Raspberry

По умолчанию логин — pi, а пароль — raspberry. Обратите внимание, что вводимый пароль не отображается.

Ура мы подключились и можем управлять малиной через консоль!
Ура мы подключились и можем управлять малиной через консоль!

Далее командной sudo raspi-config открываем главные настройки и включаем VNC в разделе Interfacing Options

Я собрал бюджетный набор для IRL-стриминга на Raspberry Pi. Часть вторая — пошаговая настройка Raspberry
Я собрал бюджетный набор для IRL-стриминга на Raspberry Pi. Часть вторая — пошаговая настройка Raspberry

Также заходим в Network Options и включаем Use Predictable Network Names YES для дальнейшей работы со Speedify.

Я собрал бюджетный набор для IRL-стриминга на Raspberry Pi. Часть вторая — пошаговая настройка Raspberry

Выходим из настроек и перезагружаем малину. Ставим на ПК VNC клиент и создаём в нём соединение с тем же IP адресом логином и паролем, что и в Putty.

Я собрал бюджетный набор для IRL-стриминга на Raspberry Pi. Часть вторая — пошаговая настройка Raspberry
Я собрал бюджетный набор для IRL-стриминга на Raspberry Pi. Часть вторая — пошаговая настройка Raspberry

Ура! Теперь перед нами рабочий стол и возможность управлять малиной с помощью привычного интерфейса. Пройдите первоналачальную настройку, устноновите страну и язык системы(пример тут). Рекомендую также установить VNC клиент на телефон, чтобы в пути иметь возможность управления одноплатником.

Этап 3. Установка Speedify VPN и подготовка к запуску.

Для начала пройдите регистрацию и оплатите тариф на месяц(год) на сайте Speedify. Для ПК и мобилок есть бесплатный триал на 2Гб трафика, но для малины такой плюшки не предусмотрено, а жаль. Подписка стоит около 14$ в месяц, можно отключить в любой момент через техподдержку. Ваш логин и пароль пригодятся нам позже.

Для установки Speedyfy на малину копируем эту команду в терминал (иконка терминала сверху справа) и жмём Enter:

wget -qO- https://get.speedify.com | sudo -E bash -

Я собрал бюджетный набор для IRL-стриминга на Raspberry Pi. Часть вторая — пошаговая настройка Raspberry

После установки приложение Speedify появится в разделе Internet. Сразу оговорюсь, что с установкой приложений на линукс у меня периодически возникали проблемы: то ошибки, то оно не ставится сразу, то не запускается. Я лично не знаю как это обойти и поэтому задавал вопросы в профильных чатах по малине, например, тут. Отдельная благодарность отзывчивым людям из чата, которые выручали новичка и давали правильные варианты команд. Не стесняйтесь и вы! Альтернативные варианты установки на сайте Speedify.

Для использования iPhone в качестве источника, установите драйвер на малину командой:

sudo apt install usbmuxd

Также для стабильности рекомендую повысить ток на USB-портах нашей малинки, чтобы она тянула несколько устройств сразу. Команда:

sudo nano /boot/config.txt открывает файл настроек

Добавляем в конец файла строку:

max_usb_current=1

Сохраняем файл CTRL+O, а затем CTRL+X для выхода и перезагружаем малину.

Этап 4. Финальный! Настройка точки доступа и бондинга.

Напомню какая задача перед нами стоит. Мы хотим, чтобы малина раздавала интернет через Wi-Fi, который складывается из двух и более соединений модема и/или телефона. Существуют и другие варианты, например, раздавать интернет с помощью Ethernet кабеля, используя Wi-Fi + USB-модемы. Настройка будет подобная, только замените интерфейс раздачи на нужный вам. Основной гайд на английском находится здесь, для подробного погружения и поиска ошибок используйте его.

Приступим. Нужно подредачить файл настроек Speedify под себя. Командой:

sudo nano /etc/speedify/speedify.conf

Откроем файл и уберем значок (решетки#) в следующих строчках, также пропишем нужные настройки:

enable_SHARE=1

SHARE_interface=«wlan0»

WIFI_interface=«wlan0»

WIFI_SSID=«Придумайте название вашей точки»

WIFI_password=«Придумайте пароль сети от 8 символов»

WIFI_MODE=«5»

Если нужна сеть 5 ГГц, то оставляем «5». По дефолту создаётся точка 2,4 ГГц. Сеть 2,4 ГГц бьёт дальше, чем 5 ГГц имеет меньший радиус, но 5 ГГц имеет больший запас по скорости, будет заметно от 100 Мб/c и выше, однако не все устройства поддерживают.

WIFI_channel=«1» (Канал для Wi-Fi, если нужно. По дефолту 1-ый)

WIFI_country=«US» (Для России «RU». Важная настройка! Выставите такой же регион, как и в настройках региона Wi-fi малины, иначе работать не будет)

Окей, подставили свои значения и сохраняем файл CTRL+O, а затем CTRL+X для выхода.

Снова открываем консоль и включаем раздачу Wi-Fi командой:

sudo service speedify-sharing restart

Нужно подождать несколько минут после первого запуска и сеть появится в списке wi-fi у других устройств. Но сейчас она без интернета! Осталось совсем малость, подключить устройства.

Вот так выглядит Speedify, ожидающий устройства подключения для раздачи интернета.
Вот так выглядит Speedify, ожидающий устройства подключения для раздачи интернета.

Наконец откройте Speedify и войдите под своим логином паролем. В настройках программы ничего менять не вижу смысла. Можно включить автозапуск и выбрать сервер, но я оставлял всё на авто.

Самое время подключать наши устройства. Для примера покажу отображение модема и телефона в интерфейсе:

Все иконки серые, потому что телефон и модем подключены без интернета.
Все иконки серые, потому что телефон и модем подключены без интернета.

Вы можете установить основное соединение и дополнительное. В качестве основного выбирайте самое быстрое. Можете потестировать скорость внутри приложения для замера и выбора оптимальной связки. Приведу пример по моим замерам:

Один USB-модем 75% сигнала 4G даёт около 7-8 Мб/c

Один Смартфон с 4G+ 75% сигнала даёт 25-50 Мб/c

При сигнале 3G получить более 5 Мб/с у меня не получалось

Для получения нужной скорости канала установите необходимое вам количество девайсов. Однако, для установки трёх и более модемов может потребоваться USB-hub с отдельным питанием. Нет смысла использовать менее двух источников, потому что резервирование работать не будет. Также всегда используйте разных операторов в устройствах, чтобы оставаться на связи в разных локациях.

Кстати смартфон при таком подключении садиться не будет, так как малина его будет подзаряжать.

Ура, конец!

Поздравляю! У нас получилось самостоятельно создать и настроить точку доступа с бондингом и резервированием каналов! Теперь можно использовать её и наслаждаться стабильным интернетом в дороге. В следущий раз я расскажу какой софт я использовал для стриминга и передачи видео с помощью этого сетапа.

Пост получился объёмным, хоть я и пытался сжать информацию максимально и о многих деталях не упомянул. Расскажите в комментариях была ли полезная моя статья? Задавайте вопросы по настройке и пробуйте собрать точку доступа под свои нужды!

Спасибо за внимание и отличного дня. По всем вопросам телеграм @supagood.

1313
15 комментариев

Из буханки хлеба тоже можно сделать троллейбус, но зачем?
Это все хорошо, пост вообще отличным вышел: пошаговое, с картинками, но:
1. Малина 4 это мощный комбайн с графическим чипом, 64-битным процессором, usb 3 и Bluetooth на борту и ещё много чем полезным, но не в полевых условиях, потому что жрёт энергии это прилично. Также это прилично жрёт деньги, если она не валяется у Вас в кладовке без дела.
2. Зачем проходной ТД графический интерфейс? Чтобы видео чип не простаивал и быстрее сжирал powerbank?
3. На Ali (малину же все равно там брать) есть модемы дешевле и лучше, не надо советовать переплачивать за перебрендированный хуавей с удвоенным ценником.
Если это описание Вашего опыта, ок - Вы молодец. Но зачем тогда пошаговое описание и скрины? А если это руководство к действию, я бы поостерегся такое повторять.
Ладно, критиковать все горазды. Правильно было бы что-то предложить. Так вот, записывайте: любой мини-роутер с usb, поддерживающий openwrt, прямо с телефона накатываете на него пакеты mwan3 и дрова для модема либо телефона либо того и другого (для бондинга, как Вы это назвали), самый простой и маленький usb-hub к нему (если только один usb на борту), модем + питание. В итоге весь набор может быть сопоставим по цене с одной rasperry pi.

1
Ответить

Игорь спасибо за развёрнутый комментарии, посыл ваш понятен. Если вкратце, то идея с роутером классная (я не изучал такие роутеры), но к сожалению для стриминга не подойдёт. Так как на роутере не получится запустить rtmp / srt сервер.
Насчёт графики на малине это исключительно моя прихоть, уверен можно и без неё, плюс дополнительные оптимизации провести, просто я так вижу)

Ответить

A rtsp сервер удастся поднять?

Ответить

Думаю да, я нашёл софт называется nimble Streamer. На нем очень много чего-то интересного и там много опций. Также есть возможность использовать его бесплатно.

Ответить

Esp32 возьмите и хватит.только покодить надо.

Ответить

Спасибо, к сожалению кодить не умею пока что

Ответить

Доброго дня. Писал коммент к прошлому посту. С чем я столкнулся. Сейчас отрабатываю связку камера, энкодер rtmp, NDI, SRT. Малина, хаб активный с питанием , USB модемы 4 . сервер обьеденяющий с белым IP . Дальше принимаю на свой SRT сервер через прокси адон.Столкнулся с проблемой описал в вашем прошлом посте.

Ответить