LINUX.ORG.RU

Сообщения max_lapshin

 

Ограничения на дистрибутивы линукса в Реестре Российского ПО

Форум — Talks

https://ru-ikt.ru/metodicheskiye_rekomendatsi/

Методические рекомендации для экспертов проверяющих софт в нашем Реестре однозначны: Centos в помойку, Debian и Gentoo рулят.

Анимешники притащили gentoo и типа прикрылись трупами двух бсдей, но это понятно: у них лицензия пермиссивная и ещё живы те, кто помнят рассказы дедов о том, как эти операционки использовались.

Но меня здорово удивило то, что centos забанили, потому что те забанили Россию.

Отдельная мулька в разделе десктопных ОС, в котором к офтопу ещё и онтоп требуется.

 , ,

max_lapshin
()

v4l2 прокси через ядро

Форум — Development

Мы в флюссонике много работаем с разными железками: это минимум 6 карт SDI захвата, несколько железных транскодеров, а IP-камер с которых мы захватываем через родной SDK больше десятка, даже не считал.

Все эти железки с точки зрения API делятся на нормальные, которые дают v4l2 API (и это преимущественно русские железки) и всякое проприетарное говно типа Decklink, Hisilicon. Есть совсем треш типа AJA SDK, который на плюсах.

Исходя из опыта работы с v4l2 и проприетарными либами, можно однозначно сказать, что никакого плюса ни decklink api, ни dectek matrix api, ни какой-либо китайский хлам, которого у нас скопилось тоннами не дает.

Нет ни одной инженерной причины для какого-либо из этих устройств делать не v4l2 api. Этого апи достаточно для передачи управления, видео и аудио туда и обратно.

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

Для H264 кодированного видео пара лишних перекопирований неприятна, но не фатальна. Для SDI копирование будет фатально, но там надо решать проблему по мере поступления.

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

 

max_lapshin
()

PCIe slave-slave шлюз между двух компьютеров

Форум — Development

Привет!

Сейчас у меня есть компьютер, в котором к головному процессору цепляются ARMы по сети, т.е. в одном корпусе 8 раздельных сетей на 2 компа каждая.

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

  1. сообщило ARM-у, что у этой железки есть девайс (SD карточка, NVME диск или что-то ещё), с которого можно загрузиться, а само сходило по второму выходу к головному компьютеру и забрало оттуда что-то типа образа жесткого диска.

  2. позволило копировать данные между ARM-ом и головным компьютером в каком-нибудь простом варианте. Типа например DMA или что-то ещё.

Такой девайс, очевидно, возможен, потому что его модель — это две сетевухи с двух сторон, соединенные проводом (это как раз то, что у меня уже есть). Хочется убрать все эти сетевухи и добавить возможность загрузки через такой модуль.

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

Есть такое?

 , plx,

max_lapshin
()

nodejs mock server генерирующийся из openapi

Форум — Development

Мы перешли на OpenAPI с подходом schema-first.

Т.е. сначала текстовый контракт, потом к нему с двух сторон: фронтенд и бекенд.

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

Соответственно при старте чем-то типа openapi-sampler нагенерировать примеров.

Есть ли что-то готовое, какие-то готовые подходы?

 ,

max_lapshin
()

Хранить эфемерные статусы в постгресе, не записывая их на диск

Форум — Development

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

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

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

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

 

max_lapshin
()

libstdc++.so.6: version `GLIBCXX_3.4.20' not found

Форум — Development

Собираем код под убунтой 16.04, добавилась зависимость от плюсом.

Пытаются запустить под Centos 7, там не находятся нужные символы.

Вопрос: а если при компиляции/линковке вообще убрать зависимости от версии GLIBC, т.е. пусть будь что будет и при старте свяжется с той версией функции, которая есть в библиотеке, то что может плохого произойти?

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

 ,

max_lapshin
()

sysconf(_SC_IOV_MAX) = -1 ubuntu 18.04.1

Форум — Development

Не могу понять, почему на ubuntu 20.04 этот вызов отдает честные 1024, а на 18.04 на единственной инсталяции отдает -1

Где вообще хранится база этих sysconf?

 

max_lapshin
()

overlayfs: bad index found (index=index/..., ftype=2000, origin ftype=8000).

Форум — Development

Мы делаем и продаем программно-аппаратный комплекс, т.е. железку с софтом.

Внутри стоит крайне порезанная убунта с нашим софтом. Убунта запакована в squashfs образ, который лежит на флешке.

Поверх него монтируется раздел с настройками через overlayfs.

Иногда после неприятной перезагрузки всё ломается и подмонтировать всё таким пирогом не получается.

Сообщение при этом в ядре от overlayfs:

overlayfs: bad index found (index=index/00fb1d000100000000000000000000000000000000c100000000000000, ftype=2000, origin ftype=8000).

Как мы с этим работали?

Проблема где-то в районе: https://vcs.cs.uchicago.edu/kauffman/ubuntu-mainline-crack/blob/master/fs/overlayfs/namei.c#L724

Не знаю, будет ли ещё доступен код по ссылке, так что немного покажу его:

	} else if (ovl_dentry_weird(index) || ovl_is_whiteout(index) ||
		   ((inode->i_mode ^ d_inode(origin)->i_mode) & S_IFMT)) {
		/*
		 * Index should always be of the same file type as origin
		 * except for the case of a whiteout index. A whiteout
		 * index should only exist if all lower aliases have been
		 * unlinked, which means that finding a lower origin on lookup
		 * whose index is a whiteout should be treated as an error.
		 */
		pr_warn_ratelimited("overlayfs: bad index found (index=%pd2, ftype=%x, origin ftype=%x).\n",
				    index, d_inode(index)->i_mode & S_IFMT,
				    d_inode(origin)->i_mode & S_IFMT);
		goto fail;

К сожалению, по сути единственный рабочий способ на сегодня — выполнять самостоятельный overlay-fsck из initrd на загрузке. Для этого надо кусочком кода обойти все файлы на слоеной ФС и те, которые не получится просто открыть, надо удалить из upper dir (т.е. непосредственно с rw раздела).

Ещё workdir должен быть опустошен перед собиранием пирога.

вот такая грустная история =(

 

max_lapshin
()

Как назвать работу по поддержке дистрибутива?

Форум — Development

Мы собираем и продаем свой программно-аппаратный комплекс.

Нам нём стоит тщательно собранный и настроенный линукс (ох сколько крови попил systemd + udev) по которому есть ещё масса работ.

Например: надо сделать UI к бондингу.

Как называется подобная работа? Как искать человека, который будет дальше такое развивать?

 

max_lapshin
()

Плата PCIe GPIO

Форум — Linux-hardware

Коллеги, нужно купить порядка 200 плат PCIe GPIO.

В серверной есть большая красная кнопка, по её нажатию надо срочно что-то сделать.

Какую купить плату, чтобы у неё гарантированно была first class поддержка в линуксе?

Полно всякого железа, который только под винду, такое не нужно.

 ,

max_lapshin
()

Программно забрать у systemd состояние lldp neighbours

Форум — Development

Мы делаем прошивку и хочется у systemd забирать состояние портов и показывать, что в них воткнуто.

Я нашел только способ:

т.е. пойти и запросить эти данные, запустив команду.

К сожалению json формата не завезли.

Ещё в /run/systemd/netif/lldp можно увидеть файл с названием в виде числа. Номер растет и кажется отвечает за версию состояния.

Вопрос: как правильно забирать этот список? Дергать программу не хочется, потому что парсить её вывод достаточно нестабильно и туда любит просачиваться дополнительный вывод, который разрушит структуру ответа.

Файл на диске можно мониторить через inotify, но у них неизвестная структура.

Как правильно?

 ,

max_lapshin
()

Как настроить множественные интерфейсы, чтобы HTTP ответ уходил туда, откуда пришел

Форум — Admin

Стоит сервер, у него 4 интерфейса, все смотрят под разными айпишниками в интернет.

Как настроить роутинг так, чтобы ответы на HTTP запросы (т.е. ответные пакеты в TCP соединении) уходили по тому же интерфейсу и через тот же шлюз, что и пришли?

Т.е. если пакет прилетел на интерфейс eth0, то ответ слать в шлюз 195.23.0.1 если на eth1, то 192.23.1.1 и т.п.

Это возможно?

 

max_lapshin
()

Доработка libx264 для PAFF (interlaced) кодирования

Форум — Job

Коллеги, всем привет.

Мне нужно чтобы в libx264 появилось PAFF кодирование.

Если кто готов быстро его добавить (или может есть какие-то наработки), я был бы рад оплатить эту разработку (с выкладыванием под GPL в апстрим).

 

max_lapshin
()

Rust stm32 i2c slave

Форум — Development

Не могу найти, есть ли всё таки сейчас в рамках rust-embedded (или rtfm) i2c slave.

Я хочу сделать i2c proxy, т.е. чтобы CPU ходил физически к одному устройству, думая, что там много разных.

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

Ощущение, что этот кусок не заимплементили и надо дописать чутка.

 , ,

max_lapshin
()

Как правильно отмонтировать upperdir и сторадж при overlayfs?

Форум — Admin

Есть диск sda2, он монтируется в /disk на нём есть файл: /disk/firmware.squashfs, он монтируется в /ro на нём есть файл /disk/settings.img, он монтируется в /rw

потом собирается /overlay -t overlay -o upperdir=/ro,lowerdir=/rw (упрощенно)

При шатдауне надо перемонтировать в ro сам settings.img и sda2.

Как это вообще планировалось делать правильно?

Есть старый совет: https://askubuntu.com/questions/181353/howto-cleanly-unmount-a-root-filesystem-thats-using-aufs

но он только про aufs.

 ,

max_lapshin
()

нужен ли DTB для запуска uboot aarch64 в qemu

Форум — Development

Хочу завести в qemu тестирование загрузки uboot-ом ядра по сети на nvidia jetson.

Пытаюсь запустить так:

	qemu-system-aarch64 \
		-machine virt -cpu cortex-a57 \
		-net nic,macaddr=52:54:00:12:34:50 -net socket,connect=127.0.0.1:1234 \
		-bios output/uboot.bin

Никакого dtb я не передаю. Сейчас запускается qemu и там monitor вместо загружаемого убута.

Вопросы:

  1. нужен ли DTB для старта убута? Черт с ними с устройствами типа сети, пусть хоть хрюкнет чтоли в консоль.

  2. можно ли рассчитывать, что убут собранный для джетсона, запустится под qemu с эмуляцией кортекса? Или они настолько разные, что даже printf не заработает?

 , ,

max_lapshin
()

ubuntu, grub2 и кастомное ядро: отдельные пункты меню

Форум — Development

Я хочу собрать своё ядро и хочу чтобы при его установке груб сгенерировал не стандартные пункты меню, а дополнительные (для отладки ядра).

Не могу найти, как это сделать. Это вообще предусматривалось его монструозными скриптами?

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

 , ,

max_lapshin
()

в Эрливидео нужен сисадмин в офис

Форум — Job

Привет! Меня зовут Максим Лапшин, я руковожу проектом Flussonic и я ищу в наш офис системного администратора.

Нужен сисадмин, который сделает так, чтобы у программистов были компьютеры и интернет с вайфаем, у удаленщиков рабочий VPN, у директора винда, способная подключиться к налоговой.

Наш офис в Москве, возле станции метро Верхние Лихоборы (Окружная).

Зарплата: от 80 тыс рублей в месяц.

Примерный список задач, который надо решать:

  • закупка персональных компьютеров
  • закупка и обслуживание серверов, работающих в офисе
  • обслуживание IP-телефонии в офисе
  • обслуживание доступа удаленных сотрудников к офису
  • обеспечение работы интернета в офисе
  • работа сети по офису (розетки, провода, вайфай)
  • обслуживание принтеров
  • поддержка сетевой инфраструктуры (настроить DHCP, VLAN, роутинг)
  • поддержка офисных сервисов: например Nextcloud
  • опыт работы с линукс (установка/настройка ОС семейства Ubuntu/Debian, настройка сети в Linux или другие популярные веб-приложения, настроить резервные копии в “облако”, уметь собрать Linux RAID, восстановить его)

Почти все в офисе люди самостоятельные, им линукс/макось настраивать не надо, но нескольким людям с виндой помогать надо (внезапно).

Из прочего:

  • оформление по ТК РФ, с полностью белой зарплатой
  • ДМС
  • обеды в офисе

Писать мне на на hire@flussonic.com

 , ,

max_lapshin
()

чем заменить name_to_handle_at и open_by_handle_at

Форум — Development

Я жру кактус и хочу (не то чтобы сильно нужно, но скорее хочется) запустить nfs в докере. Хочу nfs v4, чтобы не было никаких портмапперов и всё работало на одном порту (проще написать правила файрвола)

Ядерный nfs — даже и говорить об этом кошмаре не хочется =)

Нашел вроде бы работающий nfs-ganesha.

У него есть два места, которые делают его несовместимым с докером:

https://github.com/phdeniel/nfs-ganesha/blob/master/src/FSAL/FSAL_VFS/os/linux/handle_syscalls.c#L191

https://github.com/phdeniel/nfs-ganesha/blob/master/src/FSAL/FSAL_VFS/os/linux/handle_syscalls.c#L314

вызовы name_to_handle_at и open_by_handle_at надежно забанены в докере.

Я сходу не могу понять, зачем они вообще нужны userspace демону, задача которого открыть файл, прочитать из него и закрыть. Т.е. мне nfs сервер нужен примерно в таком же сценарии, как и какой-нибудь http сервер с range requests.

Что вообще эти вызовы делают? Может их на какую-нибудь иноду или кеш имен поменять?

UPD: получилось обойтись без этого, собрав overlayfs с явными ключами разрешающими работу NFS

 ,

max_lapshin
()

busybox + nfsv4: прогать самому?

Форум — Development
/ # mount 10.115.10.1:/ /ro -t nfs -o vers=4,ro -v
mount: NFSv4 not supported
mount: mounting 10.115.10.1:/ on /ro failed

https://github.com/mirror/busybox/blob/master/util-linux/mount.c#L959

Я правильно понимаю, что в busybox отсутствует код для монтирования nfsv4 и его надо тащить руками?

 ,

max_lapshin
()

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