LINUX.ORG.RU

Сообщения Kass_Martin

 

Старое дерево mtdblock после затирания mtd

Есть флеш-память FM25Q128A-SOB-T-G, на которой «размечены» несколько mtd разделов. mtd3 содержит jffs2 файловую систему. Во время работы ОС необходимо перезаписать данный раздел новым образом jffs2 с бэкапом некоторых файлов с текущего раздела - считай обновить.
Делаю:

  1. переход в ramfs, бэкап пары файлов, kill процессов занятых mtdblock3;
  2. удачный чистый umount без -l/r;
  3. flash_erase -j /dev/mtd3 0x0 0x0

На этой стадии при попытке примонтировать mtdblock3 получаю прежнее дерево папок. При попытке обращения к файлу ругается на несоответствие CRC32. Брал дамп с mtd3 - flash_erase точно отрабатывает и затирает раздел.
Получается, mtdblock3 не хочет «обновить кэш» из реального mtd3. Как его можно заставить принимать актуальное состояние mtd3? Или я что-то упускаю?

 , ,

Kass_Martin
()

dnsmasq перестаёт принимать клиентов

Доброго времени суток, ЛОР!

Ситуация

Есть Wi-Fi сеть, настроенная с помощью hostapd и dnsmasq(в роли dhcp сервера). Она работает, к ней подключаются\отключаются. В неопределённый момент к сети подключиться стаёт невозможно. К примеру, телефон виснет на надписи «получение IP-адреса». При чём, устройство с Win10 может подключаться в таком случае(видимо, кэширует ip-шник выданный ей заранее, что-ли).
Логи не содержат ошибок.
Ещё особенность - при попытке остановить systemd-сервис с dnsmasq в случае невозможности подключения, он не откликается и стандартно ждёт 1:30 минут чтобы убить процесс.

Окружение

RPI 3B+, встроенный Wi-Fi адаптер;
Ядро 5.4, aarch64.

Конфиги

dnsmasq
hostapd

Вопрос

Как починить, чтобы таких ситуаций не случалось? Спасибо

 , ,

Kass_Martin
()

Не доступен ethernet порт в initramfs

Доброго времени суток, ЛОР!

Проблема

Загружаюсь в initramfs(собран через buildroot) консоль. Из сетей доступен только loop device. Нужен ethernet.
В реальном rootfs он отображается. Я так понимаю, что он подгружается модулем ядра. В то же время, драйвер есть в дереве ядра, и по идее, не должен быть модулем, так ведь?…
К примеру, на дефолтном ядре распберри ethernet в initramfs доступен сразу.

Окружение

variscite mx8m-mini, ядро 5.4.3, ethernet контроллер - atheros 8031.

Вопрос

Как получить доступ к ethernet’у из-под initramfs без модулей ядра(ядро может смениться)

 , , ,

Kass_Martin
()

Не определяется устройство по статическому IP

Доброго времени суток, ЛОР!

Проблема

Устройство сначала загружается в initramfs, там ему выдаётся статический ip адрес - настройки прописаны в /etc/network/interfaces.d/eth0.conf, командой ifup -a. Всё работает, подключается.
После манипуляций, перед загрузкой в реальный rootfs вызывается ifdown -a и идёт загрузка.
В реальном rootfs тоже выставляется статический ip адрес, но по нему 9/10 случаев устройство не видно в сети.
Если обходить загрузку initramfs - проблемы на реальном rootfs нет.

Окружение

RPI3B+, rootfs - raspbian, initramfs - собранная из buildroot.

Вопрос

Как сделать насильную перерегистрацию устройства в сети или что я делаю неправильно?

 , , ,

Kass_Martin
()

Перерегистрация в сети

Доброго времени суток, ЛОР!

Проблема

Устройство сначала загружается в initramfs, там ему выдаётся статический ip адрес - настройки прописаны в /etc/network/interfaces.d/eth0.conf, командой ifup -a. Всё работает, подключается.
После манипуляций, перед загрузкой в реальный rootfs вызывается ifdown -a и идёт загрузка.
В реальном rootfs тоже выставляется статический ip адрес, но по нему 9/10 случаев устройство не видно в сети.

Окружение

RPI3B+, rootfs - raspbian, initramfs - собранная из buildroot.

Вопрос

Как сделать насильную перерегистрацию устройства в сети или что я делаю неправильно?

 , ,

Kass_Martin
()

Перезапуск usb-устройства

Доброго времени суток, ЛОР!

Проблема

Через hostapd поднимаю т.д.(конфиг верный, при нормальном подъёме - всё работает чётко), но иногда при подъёме, hostapd перестаёт реагировать на подключения клиентов(даже с -dd ничего не происходит в консоли)(ивенты NL80211). Переподъём и все проводимые манипуляции(попытки вручную сбрасывать настройки интерфейса и т.п.) ни к чему не приводят. Помогает только перевтык usb-донгла в usb-порт. После этого может спокойно на нём захостить.

Вопрос

Раз помогает перевтык в usb-порт, то как через консоль полностью эмулировать этот перевтык, без физических манипуляций?
Или, возможно, решение проблемы с hostapd.

Окружение

Raspbian, ядро 5.4, hostapd последний из исходников, драйвер usb-донгла - rtl8812au.

 , ,

Kass_Martin
()

Распаковка zip-файла с gz внутри

Доброго времени суток, ЛОР!

Проблема

При распаковке архива(сам же и паковал, но на другом устройстве) даёт ошибку 12 - error: invalid zip file with overlapped components (possible zip bomb).
Команда для распаковки: unzip -P <тут пароль> archive.zip -d .
В архиве лежит gz архив.
В gz лежит маленькая rootfs.

Вопрос

Как это обойти?

 , ,

Kass_Martin
()

Запуск программы в initramfs

Доброго времени суток, ЛОР.

Хотелка

Во время загрузки производить некоторые операции с разделами системы, запускать некоторые программы предпроверки и время initramfs очень подходящее.

Окружение

raspberry pi3b+, armhf raspbian.

initramfs

Просто закинул и пролинковал busybox, расставил порядок папок. Собрал в нужный(cpio -> gz) архив.

Работает

Загружаюсь в initramfs, выполняется мой init, прокидываю себя на консоль(busybox sh). Если нужно - могу продолжить загрузку.

Проблема 1

Не могу запустить программу написанную на С++. Программа, пока что, простая(Драсьте, мир), статическая линковка, кросскомпиляция на месте. В самой системе на малине работает, в initramfs(запуская из init скрипта) пишет, мол, не найдено(Хоть она точно есть и через ls видно):

/init: line 54: /bin/hello_try: not found

Как мне запустить собственную программу в initramfs?

Проблема 2

Сеть не подхватывает ип и шлюз. Тобишь, в /etc/network/interfaces задан eth0 интерфейс как dhcp, ifup -a отрабатывает(получает ип по арпу) и всё. Интерфейс остаётся без ип’а, шлюз не выставлен, роутинга нет. Как победить?

Приложения

init-скрипт

Решение

Проблема 1

Я не досмотрел и собирал статически только libc и libstd++(флаги линковки для gcc: -static-libgcc -static-libstdc++). Поставив один флаг линковки -static всё собралось статически, заработало. Да, есть варнинги, но это другая история.

Проблема 2

Пересобрал образ через buildroot с нужными пакетами внутри(в том числе dhcpcd) - вуаля - работает и определяется сама сеть.

Спасибо всем принявшим участие за «пинок - куда копать».

 , , ,

Kass_Martin
()

Хостинг Wi-Fi т.д. на 14м и подобных каналах

Доброго времени суток, ЛОР.
Заинтересовала недоступность 14го канала для сетей Wi-Fi 2.4Ghz. Как любой запретный плод, хочется попробовать.
Суть: через hostapd и network-manager не получается захостить на 14м канале. На других каналах - без проблем. Используется внешний адаптер поддерживающий данные каналы.
Пробовал: iw reg set JP/VE - в системе регистрируется, вывод iw reg get даже после перезагрузки корректный.
hostapd.config простой:

interface=wlan1
driver=nl80211
ssid=14
hw_mode=b # Пробовал и g
channel=14
country_code=JP

При режиме мониторинга сменить канал на 14 получается.
При режиме хостинга - включается на первом.
Окружение:
Raspbian, armhf, bullseye ветка
hostapd 2.9 и собранный из исходников 2.10
Вопрос: что я делаю не так?

ОТВЕТ

У меня были адаптеры на чипе rtl8812au, для других тоже самое, по сути.
Всё дело крылось в драйвере. Поставил версию пониже(5.3.4) из репозитория - 14й заработал сразу, т.к. был включён в драйвер, но, что интересно, можно добавлять ещё кучу каналов, которых нет изначально, но это надо делать во множестве мест по коду. Так же подбирать страну с этими каналами или пропатчить политики, чтобы были все доступны.
Сам hostapd тоже можно пропатчить, чтобы поднимал т.д. на, к примеру, 14м канале не только в режиме b, но и в g - а это, на минутку, как все остальные полноценные в 2.4GHz. Патчи тоже нужно искать в интернете и адаптировать под сорцы hostapd. Я попробовал - сработало(Не осталось того, что можно выложить).
Килограммы дёгтя: это всё хорошо, что можно так патчить, редактировать, но многое в системе отказывается с этим работать:

  • тот же iw dev не выводит ничего, когда у меня стоит 14й канал. Зато, iwconfig показывает чётко.
  • network-manager тоже отказывается верить в 14й;
  • nl80211, которым почти весь софт общается к ядру и обратно, может не понять и не пропустить с ошибкой -22 «Invalid argument».
  • ??

 , , ,

Kass_Martin
()

Странное поведение в режиме AP на usb-донглах

Имеется:

  • малина(pi 3b+, pi 4);
  • 2 wifi донгла(asus usb-ac56);

ПО:

  • kali aarch64;
  • hostapd;
  • dnsmasq;

Ситуация: Иногда скриптом запускается хостинг точки доступа на одном из донглов:

( читать дальше... )

Это работает: к т.д. можно подключатся, ип даёт. Но, бывают случаи после нового старта хостинга, что к т.д. невозможно подключится(клиент пытается, но обрывается) и в логах hostapd о аутентификации ни слова. Как будто ничего и не происходило. Лечится тоже непонятно как - физическим перевтыкиванием в порты донглов и то не факт что поможет.
Также, хостинг может работать на одном донгле и может не работать на другом. А может и на обоих.
Подозрение, что какая-то загвоздка в инициализации донгла на хостинг, только я не понимаю какая.

Скрипт остановки

( читать дальше... )

hostapd.conf

driver=nl80211
ieee80211d=1
ieee80211n=1
ieee80211ac=1
country_code=VE
wmm_enabled=1
macaddr_acl=0
interface=wlan2 # Меняется заранее на нужный
ssid=Test
channel=4
hw_mode=g
wpa_passphrase=12345678
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
rsn_pairwise=CCMP
wpa=2
auth_algs=1

Вопрос: как починить непонятно возникающую невосприимчивость hostapd к клиентам? Заранее спасибо откликнувшимся.

 , , ,

Kass_Martin
()

RSS подписка на новые темы