LINUX.ORG.RU

Форум

Система для сборки прошивок для встройки

 , ,

Всех приветствую.

Хотел обсудить один вопрос. А именно система для сборки прошивок.

Есть много приборов где есть прошивка на базе линукса. У приборов есть архитектура проца (например 3 разных). Разные версии железа. Разный функционал. Есть варианты, когда один и тот же функционал может быть реализован на разном железе. А бывает что на одном железе делают разный функционал (да, это про fpga).

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

Как я себе это вижу.

Есть набор исходников разных версий: загрузчик, ядро, библиотеки, модули ядра, всякие программы обеспечивающие функционирование по назначению.

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

Получается, что прошивка собирается из этих бинарных пакетов. Если надо что-то поменять в прошивке. Собираем новую версию какого-то пакета и потом заново прошивку.

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

Резюмирую немного главное:

  1. сборка из исходников с заданной версией, архитектурой, конфигом
  2. сборка из git репы, с заданным тегом, архитектурой, конфигом
  3. хранение в централизованном хранилище
  4. централизованное хранение конфигов для сборки прошивки из пакетов для железки и ее версии
  5. сборка любой версии прошивки в любой момент из пакетов

И вот теперь вопрос. А что в мире уже придумали на такой случай?

Что я уже видел-гуглил.

  • билдрут - простяцкая, быстрая, очень скудный функционал.
  • йокто - монструозная, нужно разбираться, но очень гибкая и в целом похоже то, что надо (концепция слоев, рецепты, метаданные и т.д.). Неясно насчет пакетирования и хранения.
yax123
()

Си. Нормально ли не освобождать ресурсы, которые освобождает ОС после завершения программы?

 ,

Пример:

int main()
{
  int fd;
  char *filename;

  filename = malloc_filename();
  fd = open(filename, O_RDWR);
  if (!fd) {
    perror(filename);
    /* free(filename); */
    return 1;
  }
  
  doing_something(fd);

  /* free(filename); */
  /* close(fd); */
  return 0;
}

Что плохого, если я не сделаю free() и close()? Какие подводные камни? Я раньше думал, что valgrind ругается, если сам не сделал free(), но нет (не исключено, что я неправильно воспользовался valgrind).

Jullyfish
()

Как настроить капс лок на КДЕ?

 , ,

Арч, КДЕ.

Поставил я себе в настройка переключение раскладки клавиатуры на капс. Но работает, но при нажатии shift+caps оно одновременно зажимает капс и переключает раскладку. На предыдущих системах работало нормально.

Вопрос: как настроить комбинацию shift+caps так, чтобы оно зажимало капс, но не переключало раскладку. Интересует настройка через КДЕ в первую очередь, но можно и другие варианты кидать.

Перемещено hobbit из general

bbc69
()

Минцифры предложило дать пользователям выбор системного ИИ-помощника при первом запуске устройства

 , ,

3 августа Минцифры опубликовало для общественного обсуждения проект постановления Правительства, изменяющий правила обязательной предустановки программ на смартфоны, планшеты, компьютеры и телевизоры. Документ пока не принят: его обсуждение должно продлиться до 17 августа. Поправки предлагается внести в действующее постановление Правительства № 1867, регулирующее предустановку программ на продаваемую в России электронику.

Вместо существующей категории «голосовой помощник» предлагается ввести более широкое понятие «системный помощник». Под ним понимается работающая на базе искусственного интеллекта программа, способная взаимодействовать с функциями устройства, операционной системой и установленными приложениями посредством голосового, текстового и визуального ввода. Целью проекта названо «создание условий для использования потребителями… сервисов искусственного интеллекта отечественных разработчиков».

При первом включении устройства пользователю должно быть показано диалоговое окно со списком доступных российских и зарубежных системных помощников. Можно будет выбрать один из них, полностью отказаться от установки, а уже установленную программу — впоследствии отключить. Таким образом, речь идёт не об обязательном использовании конкретного ИИ-сервиса, а об обязанности производителя предоставить возможность выбора. В Минцифры отдельно подчеркнули, что проект «не устанавливает обязательное использование конкретной программы, компании или платформы».

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

Изменения затронут не только помощников. Для поисковых сервисов предлагается разрешить применение решений со встроенными технологиями искусственного интеллекта. В Минцифры рассчитывают, что это создаст более конкурентную среду между российскими и зарубежными платформами и уменьшит преимущество сервисов, которые производители устройств и операционных систем устанавливают по умолчанию. По словам ведомства, механизм должен предоставить «пользователям возможность самостоятельно выбирать используемые сервисы».

Проект регулирует три способа доступа к ИИ-сервисам: отдельное приложение, интегрированный в систему помощник и поисковый виджет. Конкретные программы в тексте не названы. Окончательные требования и дата их применения станут известны только в случае принятия постановления; до этого сообщение об уже введённой «обязательной предустановке ИИ-помощников» является преждевременным.

unclestephen
()

Проблема с работой Wireguard

 , , ,

Всем добра! Заранее прошу не кидаться в меня камнями, поскольку с linux знаком на базовом уровне, однако этих знаний достаточно для разворачивания Wireguard на VDS-сервере. Нестандартность моей проблемы осложняет тот факт, что маршрутизатор в домашней сети подключен к провайдеру по PPPoE. Итак, кратко к сути проблемы. После несложной настройки WG-сервера с конфигурацией файла wg0.conf

[Interface]
PrivateKey = <тут указал приватный ключ>
Address = 172.20.4.1/24,fd11:5ee:bad:c0de::a09:da01/64
MTU = 1412
ListenPort = 51828

[Peer]
PublicKey = <тут указал публичный ключ>
PresharedKey = <тут сгенерился ключ шифрования>
AllowedIPs = 172.20.4.10/24,fd11:5ee:bad:c0de::a09:da0a/128

и последующей настройки конфигурации «клиента»:

[Interface]
PrivateKey = <тут указал приватный ключ>
Address = 172.20.4.1/24, fd11:5ee:bad:c0de::a09:da0a/64
DNS = 9.9.9.9, 149.112.112.112
MTU = 1412

[Peer]
PublicKey = <тут указал публичный ключ>
PresharedKey = <тут сгенерился ключ шифрования>
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = 2.27.31.48:51828 (указал белый IP-адрес VDS-сервера и порт)
PersistentKeepalive = 25

От провайдера при успешном подключении PPPoE маршрутизатор получает IP-адрес 172.31.4.204. При подключении к VPN-туннелю проблем не возникает, однако, трафика от сервера до клиента как такового нет (никакие страницы в браузере не прогружаются). Погуглив, уменьшил размер MTU как в конфигурации файла wg0.conf на сервере, так и на клиентской стороны со стандартного значения 1500 до 1412 - не помогло. Также на стороне «клиента» добавил параметр «PersistentKeepalive = 25», который отправляет пустой пакет серверу для поддержания активного подключения, но это так же не помогло. Фаервол на сервере по умолчанию отключен, как и правила межсетевого экрана на маршрутизаторе (Keenetic Giga). Подскажите, куда ещё копнуть для решения описанной проблемы.

Vector1
()

Тут был вопрос что может G5/2.0 GHz * 2

 , ,

https://files.mastodon.online/media_attachments/files/117/038/015/497/540/406/original/e26035523773d572.png

https://mastodon.online/@Andrew_R/117038025347160110

Может например играть H264 1920x1080 x 25 fps без пропуска кадров. Охлаждение воздушное.

Оффтопик конечно, но радует.

Andrew-R
()

Иногда, после некоторых событий в GUI отдельные области изображения начинают мерцать. NVIDIA

 , , , ,

М-м-м, наверное и тут Хуанг виноват, но периодически начинают мерцать отдельные области экрана, например после переключения на окно с воспроизводимым видео в браузере, или после появления уведомления в GNOME.

Ничего не падает, не тормозит, но хочу узнать, кто-то ещё с подобным сталкивался?

Есть ощущение, что такое началось после обновления с предпоследней версии блоба на последнюю…

unclestephen
()

makeqpf

 

Достался мне старый проект qt2 от предыдущих разрабов … Там в старом QT2 под linux-embedded необходимо генерить файлы .qpf для шрифтов… я научился это делать под Linux … Можно это сделать под Виндой ? Кто то может научился ?

lesa111
()

Outruna - компактный, open-source EVM кошелек для Telegram и для браузера

 evm, , wallet, web3, кошелек

В целом: меня утомили централизованные кастодиальные боты Telegram кошельки с закрытым исходным кодом и отсутствием реальной двухфакторной аутентификации для транзакций. И я сделал свой.

  • Вход: Telegram OAuth в Telegram или вход по электронной почте в другом месте.

  • Доступ на основе учетной записи: используйте учетную запись Telegram или электронную почту вместо самостоятельного управления закрытым ключом или мнемонической фразой.

  • Фичи: просмотр активов, депозит, снятие средств, обмены (swap), газовый аккаунт и P2P-обмен стейблкоины на фиат (только русская локализация, небольшие суммы)

  • Меньшая поверхность атаки для децентрализованных приложений: Outruna намеренно не предоставляет общего подключения кошелька для сторонних веб-сайтов Web3. Это исключает распространенный путь фишинга и вредоносной подписи, но не устраняет все риски, связанные с кошельком.

  • Поддержка токенов: нативные активы и тщательно отобранный список токенов, в основном основные активы и стейблкоины. Пользователи могут добавлять собственные токены ERC-20 после их проверки.

  • Поддерживаются шесть сетей EVM: Ethereum, Base, Polygon, Optimism, Avalanche и Arbitrum.

  • Проверка адресов: адреса назначения используют данные о репутации Rabby, а также собственные данные о рисках, если таковые имеются. Для опасных адресов требуется явное подтверждение.

  • Защита встроенного кошелька Privy: кошелек принадлежит пользователю, а не является депозитарным балансом Outruna. Privy разделяет ключевой материал на зашифрованные части и восстанавливает их только временно для авторизованной подписи, поэтому Outruna не хранит полный закрытый ключ пользователя во фронтенде во время обычного использования.

  • Разделение по газу: используется нативный газ, если он доступен. Также можно использовать газовый аккаунт.

  • Двухфакторная аутентификация транзакций: пользователи могут дополнительно включить многофакторную аутентификацию Privy для действий с кошельком. В Outruna это защищает подписание транзакций; Privy также применяет многофакторную аутентификацию, когда ключ встроенного кошелька используется для подписи сообщений, экспорта или восстановления. TOTP работает с Google Authenticator и совместимыми приложениями-аутентификаторами и остается отключенным до завершения регистрации.

  • Подписанные сборки: производственные сборки генерируют и проверяют манифест для сгенерированных ресурсов.

  • Открытый исходный код, для получения дополнительной информации см. GitHub.

Попробовать можно как через Telegram @outruna_bot так и в браузере

Я старался сделать как можно более удобный фронтенд для кошелька, но я больше все-таки backend’ер и писатель логики сервисов, поэтому проблемы с интерфейсом наверняка будут, Telegram Web App на Preact

Также да, если не трудно прошу по возможности поднять вверх на ProductHunt другие мои проекты.

Да сразу говорю у меня все за CF, поэтому я не знаю как это будет работать с провайдера, который блокирует Cloudflare.

anonymous_sama
()

Форк Midnight Commander c поддержкой панельных плагинов

 , , , ,

https://www.opennet.ru/opennews/art.shtml?num=66018.

Выпущен консольный файловый менеджер Midnight Commander 6.0.3 (mc6), представляющий собой форк GNU Midnight Commander 4.8.33, расширенный поддержкой панельных плагинов и поставляемый со встроенным PTY-терминалом mcterm. Интегрированный в mc6 фреймворк панельных плагинов позволяет отображать в панелях не только файловые системы, но и контейнеры, Git-репозитории, базы данных и объекты удалённых хранилищ. Код проекта написан на языке Си и распространяется под лицензией GPLv3+. Готовые пакеты подготовлены для Debian и Ubuntu, Fedora и RHEL, а также Arch Linux в форматах DEB, RPM и pkg.tar.zst. Для Gentoo дополнительно предоставлен ebuild для установки через локальный overlay.

В состав выпуска вошли плагины для работы с архивами, FTP/SFTP/FTPS, Samba, Git, Docker, Kubernetes, MongoDB и S3-совместимыми хранилищами. Плагины поддерживают стандартные файловые операции, а переработанная поддержка архивов на базе libarchive заметно (в десятки или сотни раз) ускоряет обработку больших архивов.

Во встроенный текстовый редактор mcedit добавлены возможность сворачивания блоков кода, браузер истории Undo/Redo, средства управление макросами и поддержка сохранения файлов через sudo. В разы улучшена производительность при работе с очень длинными строками.

Просмотрщик mcview получил древовидное представление JSON, YAML и XML, интерактивную фильтрацию содержимого, базовую поддержку отображения разметки Markdown и режим воспроизведения файлов с ANSI-последовательностями.

В состав включён встроенный PTY-терминал mcterm с собственным эмулятором терминала, предназначенный для замены традиционного subshell-механизма.

dataman
()

54 из 55 выявленных через AI уязвимостей в SQLite оказались фиктивными

 , , , ,

https://www.opennet.ru/opennews/art.shtml?num=66023.

Исследователи из компании JFrog проанализировали опубликованные на днях 55 отчётов об уязвимостях в SQLite. На основании данных отчётов организация MITRE присвоила всем проблемам CVE-идентификаторы. Три проблемы получили статус критических, а самой опасной уязвимости (CVE-2026-51302) компания Red Hat присвоила в своих базах уровень 10 из 10, а SUSE — 9.8 из 10. Детальное изучение заявленных ошибок показало, что 54 из 55 уязвимостей, включая отмеченную критическую проблему, являются фикциями и вызваны галлюцинациями AI-модели.

В самой опасной уязвимости было заявлено обращение к памяти после её освобождения в функции exprComputeOperands(), приводящее к возможности выполнения кода при выполнении специально оформленного запроса. Разбор показал, что данной функции не существует в кодовой базе SQLite 3.41, в которой заявлено наличие проблемы (данная функция появилась значительно позднее). Источником возникновения уязвимости было заявлено оставление висячего указателя в функции sqlite3ReleaseTempReg(), но её логика работы не подразумевает освобождением памяти и ограничивается пометкой памяти для повторного использования, что исключает возникновение проблем класса use-after-free в силу архитектуры.

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

При выделении CVE-идентификаторов уязвимостям и оценке уровня опасности организация MITRE не выполняет реальную проверку, что позволяет любому подать заявку на несуществующую проблему, отправив сфабрикованное описание. Подобные реалистично выглядящие, но фиктивные отчёты о критических проблемах, приводят к замусориванию баз данных с информацией об уязвимостях и пустой трате времени на изучение и попытки исправления несуществующих уязвимостей. При использовании AI для разработки исправлений, AI-агент на основе предоставленного описания несуществующей ошибки может подготовить патч, принятие которого приведёт к внесению ненужных изменений.

dataman
()

Кто еще пользуется JWM?

 ,

Интерестно узнать мнения тех кто пользуется/пользовался если можете киньте конфигурацию

Rezzev
()

После загрузки процессора на полную видеокодированием видеокарта нагревается на 20 градусов. Так и должно быть?

 

Процессор AMD Athlon PRO 300GE с кулером ID-COOLING IS-50X V3. Видеокарта Nvidia 3060. Дистрибутив Antix 26. Материнка - GIGABYTE B550M DS3H

vbcnthfkmnth123
()

Какая это может быть кодировка?

 

Есть текстовые файлы, записанные в ~1988 году. (Если запостивший их соврал, то не позднее 1998.) Большая часть символов — 7-битный ASCII. Для некоторых знаков препинания (которые можно только угадывать из контекста) используется странная кодировка:
0x8a — многоточие или тире,
0x8b — короткое тире или дефис,
0x8c — открывающая кавычка, для которой 0xb9 — закрывающая,
0xad — может быть запятая (или одинарная нижняя кавычка), тире, двоеточие, многоточие,
0xb2 — закрывающая кавычка в паре с 0xb3,
0xb3 — открывающая кавычка в паре с 0xb2,
0xb9 — апостроф или одинарная верхняя кавычка.
Неясно, одинарные кавычки или двойные; ёлочки, лапки, или что-нибудь ещё; не перепутан ли порядок кавычек; как соотносятся длины тире.

Enca ничего подходящего не нашла. Перебор кодировок iconv дал ISO-IR-90 или ISO-IR-99 для 0xb9 как одинарной кавычки/апострофа и ничего подходящего для остальных. Возможно, эти файлы несколько раз перекодировали.

Как узнать, в какой кодировке были эти файлы? Просто интересно.

Если перебирать комбинации кодировок скриптом, как это лучше делать?

P.S. Текст на английском языке.

question4
()

Drop трафика из других сетей на разрешённом xRDP

 ,

Дано:
IPIP туннели:
Главный 192.168.0.0/31 <-> второй 192.168.0.1/31
Главный 192.168.0.2/31 <-> третий 192.168.0.3/31
OSPF между ними:
172.16.0.0/24 <-> 172.16.1.0/24 <-> 172.16.2.0/24
В сети главного маршрутизатора развёрнут xRDP, который имеет IP - 172.16.0.100 и к которому подключаются клиенты из других, вышеуказанных сетей.

На главном маршрутизаторе, в качестве FW, используется nftables.
Применён механизм маркировки пакетов

table ip mangle {
	set test {
		type ipv4_addr
		flags interval
		elements = { 8.8.8.8 }
	}
	chain PREROUTING {
		type filter hook prerouting priority mangle;
		meta l4proto { tcp, udp } th dport { 65535 } meta mark set 0x1
		ip daddr @test meta mark set 0x1
	}

	chain POSTROUTING {
		type nat hook postrouting priority srcnat;
		oif "xfrm" snat to 10.50.50.2
	}

	chain OUTPUT {
		type route hook output priority mangle;
		meta l4proto { tcp, udp } th dport { 65535 } meta mark set 0x1
		ip daddr @test meta mark set 0x1
	}
}
ip route add 0.0.0.0/0 dev xfrm table 100
ip rule add fwmark 0x1 table 100

Клиенты, подключённые к xRDP из других сетей (172.16.1.0/24 и 172.16.2.0/24), имеют возможность ходить туда, куда разрешено сети 172.16.0.0/24, так как они находятся на 172.16.0.100

Есть ли возможность это как-то запретить клиентам из других сетей?

Dodik
()

Странности в FreeBSD security advisories

 ,

Коммит: https://cgit.freebsd.org/src/commit/?id=e2585687890e

(описание проблемы к которой там были assert-ы)

Replace the assertions with runtime checks.

Репорт: https://www.freebsd.org/security/advisories/FreeBSD-SA-26:54.sysvsem.asc

III. Impact

An unprivileged local user can trigger out-of-bounds reads and writes on
kernel heap memory, potentially leading to privilege escalation.

Я правильно понимаю что тут через испорченный телефон «заменим ассерты на нормальные проверки, чтобы убрать возможность kernel panic» превратилось в «уязвимость позволяет манипулировать памятью ядра и повышать привилегии»?

firkax
()

«добавка» ram

 

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

история такая, буду менять ssd на более ёмкий, заодно хочу подгрузить ram.

В ноуте спаяно на материнке 8 гигабай и декой стоит 8 гигов, получилось двухканальное соединение, но проблема в том что начал пользоваться 3 д софтом и davinchi resolve, ноут не вывозит конкретно эти задачи, единственное что могу поменять - это ssd и ram, но если менять ram то упадет производительность, ведь будет не 8×8, это так? подскажите люди добрые, я в этой теме новичек, спасибо за уделенное время!

модель ноута :

16" Ноутбук ASUS VivoBook 16X K3605ZC-N1328

noobsaibot
()

Помогите отключить gnome-keyring-ssh

 , ,

Здравствуйте. Поставил федору. Редхад (ИБМ) кажется намертво встроила gnome-keyring-ssh в окружение. Даже нейронка бессильна. Что сделал:

  • Опцию Hidden=true в .config/autostart/gnome-keyring-ssh.desktop
  • export SSH_AUTH_SOCK=«$XDG_RUNTIME_DIR/ssh-agent.socket» в ~/.profile
  • SSH_AUTH_SOCK=«$XDG_RUNTIME_DIR/ssh-agent.socket» в ~/.config/environment.d/envvars.conf

И все равно после логина

echo $SSH_AUTH_SOCK
/run/user/1000/keyring/ssh
kijllfatncdaplp
()

POLLHUP и POLLOUT одновременно в revents

 ,

Приветствую.

Использую poll для простецкого rtsp сервера, все работает, пока не начинаю отправлять снимки через mqtt/paho, оба подключения TCP (включая rtp).

ИИ пишет что никак не может быть одновременно, но десятичное значение revents я вижу 20

Что может быть?

wolverin
()

Мини-опрос про фичи в софте

 ,

Представьте, что у вас для решения какой-то повседневной задачи есть выбор из двух софтин

1-я софтина со свистелками и перделками, с красивыми кнопочками, менюшками и фичами, 60% которых вам совершенно точно не пригодятся.

2-я софтина не очень красивая, фич в два раза меньше, кнопочек и менюшечек вообще нет, зато есть всё нужное и ничего лишнего.

Какую вы выберете? Можете аргументировать?

hedgehog_alex
()

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