LINUX.ORG.RU

Сообщения max_lapshin

 

uboot aarch64 zImage: unsupported?

Форум — Admin

Ядро собирается в 30 мегабайт Image и порядка 6 мегабайт zImage

uboot на aarch64 не умеет грузить zImage.

Кто-нибудь видел объяснения, почему так?

Может встречал патчи для 64-битного декомпрессора?

UPD: uboot aarch64 zImage: unsupported? (комментарий) возможно

 , ,

max_lapshin
()

Управление systemd-networkd через API

Форум — Development

Привет.

Я хочу управлять настройками сетевого интерфейса из веб-интерфейса.

Сеть построена на systemd-networkd

1) не могу найти, есть ли правильный способ спросить у systemd какие настройки сети используются?

Хочется узнать, что там вообще: dhcp или статический адрес и если статика, то какая?

2) судя по strace, networkctl ходит через NETLINK. Это разумный и легитимный способ получения фактической информации о сети?

 ,

max_lapshin
()

Что происходит в ядре, когда драйвер делает udelay?

Форум — Development

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

Когда драйвер делает udelay, то он остается на ядре и занимает его? Другие драйверы или юзерские программы не могут пользоваться этим ядром?

Или всё таки внутри ядра есть какой-нибудь шедулер, который займет это время чем-то ещё?

 , ,

max_lapshin
()

Как правильно поллить результат inb (данные с порта)?

Форум — Development

По LPT порту воткнута железка, на которой есть кнопка.

Когда кнопка нажата, из порта по адресу можно прочитать 1, когда не нажата — 0

Как правильно с этим работать? Поллить раз в 100 мс, или искать способ заставить эту конструкцию генерировать прерывание?

 , , , ,

max_lapshin
()

Bounty: добавить в драйвер ядра intel/igb управление software defined pins

Форум — Job

Есть сетевая карта intel i350 ( Intel i350: как подергать за gpio )

У неё есть возможность воспользоваться software defined pins.

У меня есть экземпляр карты (к сожалению пока только один, серию ещё будем заказывать), у которого к одному из пинов припаяна внешняя система

Мне нужно из userland управлять этими пинами.

Судя по документации и коду, который я вижу https://github.com/torvalds/linux/blob/master/drivers/net/ethernet/intel/igb/...

нужно подергать за нужные биты регистра CTRL (раздел 8.2.1) и CTRL_EXT (8.2.3) для доступа к пинам от 0 до 3.

Выглядит, что надо добавить к драйверу API для работы через gpio.

Я хочу:

1) получить возможность подергать за эти биты (это нужно сделать максимально быстро любым, даже самым грязным способом)

2) оформить это в виде патча к ядру линукса

3) по возможности отправить этот патч в mainline

UPD: вопрос снят, будем вливать патч в апстрим

 , , ,

max_lapshin
()

Intel i350: как подергать за gpio

Форум — Linux-hardware

Есть сетевая карта Intel i350:

04:00.1 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
	Flags: bus master, fast devsel, latency 0, IRQ 17
	Memory at df600000 (32-bit, non-prefetchable) [size=128K]
	I/O ports at e000 [size=32]
	Memory at df640000 (32-bit, non-prefetchable) [size=16K]
	Capabilities: [40] Power Management version 3
	Capabilities: [50] MSI: Enable- Count=1/1 Maskable+ 64bit+
	Capabilities: [70] MSI-X: Enable+ Count=10 Masked-
	Capabilities: [a0] Express Endpoint, MSI 00
	Capabilities: [100] Advanced Error Reporting
	Capabilities: [140] Device Serial Number 00-90-0b-ff-ff-5e-0a-a5
	Capabilities: [150] Alternative Routing-ID Interpretation (ARI)
	Capabilities: [160] Single Root I/O Virtualization (SR-IOV)
	Capabilities: [1a0] Transaction Processing Hints
	Capabilities: [1d0] Access Control Services
	Kernel driver in use: igb
	Kernel modules: igb

https://www.intel.com/content/www/us/en/embedded/products/networking/ethernet...

У неё есть GPIO выходы, к которым припаяли лампочку.

Мне хочется программно управлять этими выходами.

В спеке в разделе 1.4.8 указано, что есть Software definable pins и ими можно рулить через eeprom

Наверное мне надо научиться изменять eeprom что бы добраться до этих пинов через /sys/gpio?

 , ,

max_lapshin
()

Забрать в линуксе DHCP опции из PXE

Форум — Admin

Компьютер загружается по IPXE.

Скачивает ядро, initrd, запускает. Потом ещё раз получает настройки по dhcp.

Можно ли каким-то штатным образом забрать первый полученный dhcp ответ, что бы не делать повторное dhcp ожидание?

 ,

max_lapshin
()

Минимальная компиляция glibc: как правильно?

Форум — Admin

Хочу собрать glibc в минимальном размере. Дефолтная инсталяция make install занимает 178 мегабайт, хочется ужаться где-то до 2.

В glibc идут всякие штуки, которые мне для моей задачи не нужны абсолютно: sunrpc, hesiod, crypto и т.п.

План собрать маленькую glibc + busybox + dropbear и получить initramfs где-то мегабайт на 4-5 что бы быстро грузилось по PXE.

Меня удивило полное отсутствие туториалов. Обычно накопипастишь с серверфолта из первой половины страницы (где правильные ответы) и что-то работает, а тут полный ноль. Единственное упоминание попыток уменьшить размер установки glibc — https://wiki.netbsd.org/tutorials/how_to_reduce_libc_size/

Это очень круто, но не то.

В glibc при установке образуется куча всякого хлама, который в теории нужен десктопу, но никак не нужен изолированному серверу: iconv, gconv, локали, инклюды и т.п.

Есть какие-то правильные механизмы по сборке и упаковке glibc для минимального размера?

 , ,

max_lapshin
()

ipxe — он в ROM сетевухи или она его загружает?

Форум — Admin

Никак не могу разобраться, подскажите пожалуйста.

Когда dhcpd отдает сетевухе filename «menu.ipxe», в котором просто текстовый файл:

``` menu title PXE Boot Menu

timeout 50 default Network

label Network menu label Boot from PXE server kernel Image initrd uRamdisk ```

то кто этот файл читает и показывает? Сама прошивка сетевухи, верно?

 

max_lapshin
()

Bounty: добавить в mksquashfs поддержку чтения из tar напрямую (docker -> squash)

Форум — Job

Есть утилита mksquashfs из пакета https://github.com/plougher/squashfs-tools

Она умеет делать readonly образ файловой системы.

Есть докер, который умеет выгружать свои образы в tar.

Когда в CI под не рутом распаковываешь tar в директорию, что бы из неё сделать squashfs, то убиваются все права, владение файлами и нельзя сделать файлы из /dev

Хочется что бы mksquashfs перепаковывал tar в образ напрямую, без распаковки на диск.

Мейнтейнер не понял, зачем это нужно: https://github.com/plougher/squashfs-tools/issues/25 а ему плохо объяснили.

Я готов заплатить за эту работу, нужен патч, который делает эту вещь. Достаточно уметь делать это не из стрима, а из файла, но из tar-стрима будет ещё лучше.

Код нужно будет залить в наш репозиторий https://github.com/flussonic/squashfs-tools и надо будет оформить pull request, который хорошо бы что бы приняли.

Оценки по времени и деньгам можно прислать мне напрямую на max@erlyvideo.org

 , ,

max_lapshin
()

упаковка debian для запуска с флешки (а-ля buildroot)

Форум — Development

Хочу взять USB флешку и залить на неё дебиан так, что бы он запускался оттуда, сохранял на неё конфиги, но ничего типа логов не писал.

Для всяких ip-камер и роутеров есть buildroot, который позволяет удобно собрать готовый дистрибутив.

Есть что-то похожее для дебиана?

Не очень понятно: сделать ondemand чтение из сжатого образа ФС на USB флешке или сделать ramdisk, в который копировать всё на старте.

 ,

max_lapshin
()

разработчик на C в Эрливидео

Форум — Job

Всем привет!

Я ищу нового коллегу нам в Эрливидео писать на C под линукс обработку видео.

Нужно будет:

  • девелопить наш транскодер (nvidia, ffmpeg, quicksync и прочие смежные технологии)
  • пилить обвязку вокруг видео-аналитики (нейросетки, Caffe), связанную с транскодированием видео

Работать можно как в Москве в офисе, так и удаленно.

Мы активно работаем с современными инструментами: git, redmine, CI/CD. Так, например, в большинстве проектов принято не давать мержить ветки без прогона тестов, а результат сразу пакуется в deb пакеты для установки.

Команда распределенная, так что много общения проходит в чате.

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

Зарплата: 120-170 тыс р, оформление белое по ТК РФ.

Присылайте резюме на hire@flussonic.com

 ,

max_lapshin
()

PLX PCIe switch + Amd threadripper

Форум — Linux-hardware

Есть потребность воткнуть как можно больше видеокарт на 16x PCI-E в компьютер.

Существуют материнки с PLX свитчами, которые берут у процессора, скажем, 20 линий и превращают их в ненастоящие 4*16 линий для того, что бы видеокарта думала, что у неё 16 линий и все 4 карты включались бы на полном режиме.

Чуда там конечно не происходит, но работает лучше, чем 4 в режиме 8 линий.

Есть AMD threadripper, у него 64 линии на выход, но из них несколько заняты под периферию.

А существует ли подобная штука типа plx для AMD? Ведь если из проца выходят свободные 60 линий, то превратить их в 64 будет гораздо эффективнее, чем 20 линий в 64.

Ведь очень обидно: стоит threadripper и на болте крутит интел, а воспользоваться этим не получается.

 , ,

max_lapshin
()

при установке старой версии пакета apt вытягивает слишком новые версии зависимостей

Форум — Admin

Есть репозиторий в котором лежита пакеты mytool версий 1.0, 1.5 и 2.0

Каждый из них зависит соответственно от пакетов mylib версий 1.0, 1.5 и 2.0

Я ставлю apt install mytool и получаю mytool-2.0 и mylib-2.0

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

apt install mytool=1.5

Я хочу что бы apt сам откатил зависимости до нужных, ведь я же не ставил сам руками mylib.

Вместо этого он пищит и всё портит, ругаясь на то, что неправильная версия mylib.

Проблеме не первый год: https://askubuntu.com/questions/531567/why-does-apt-get-install-a-newer-depen... и не первое десятилетие.

Она так и остается? Или для большинства это вообще не проблема?

 , ,

max_lapshin
()

Работа с systemd без sd_notify

Форум — Development

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

Стандартный и официальный способ — использовать библиотеку systemd и использовать оттуда функцию sd_notify

Например для эрланга для этого есть библиотека https://github.com/systemd/erlang-sd_notify и похожее есть и для других платформ.

С этим подходом есть проблемы: 1) в любой современный язык втаскивать библиотеку на С — это задача, гораздо более неприятная, добавить библиотеку на самом языке. 2) в современных крутых платформах есть очень развитые подсистемы для работы с сокетом, а эта libsystemd делает чего-то, непойми что и не встраивается ни в libevent, ни в эрланговский event loop, ни в торнадо под питон.

Я решил сделать попроще, чего и вам советую:

https://gist.github.com/maxlapshin/01773f0fca706acdcb4acb77d91d78bb

ready() -> call(<<"READY=1">>).
reloading() ->call(<<"RELOADING=1">>).
stopping() -> call(<<"STOPPING=1">>).
watchdog() -> call(<<"WATCHDOG=1">>).


call(Call) ->
  case os:getenv("NOTIFY_SOCKET") of
    false ->
      {error, not_configured};
    Path ->
      case gen_udp:open(0, [local]) of
        {error, SocketError} ->
          {error, SocketError};
        {ok, Socket} ->
          Result = gen_udp:send(Socket, {local,Path}, 0, Call),
          gen_udp:close(Socket),
          Result
      end
  end.

в принципе вот всё, что нужно для работы с systemd. По ссылке более полный код на эрланге, его легко переписать за 10 минут на %LANG%

Понятно, что systemd не обещает сохранять api, но я бы вообще не стал рассматривать systemd как что-то очень продуманное и что не будет меняться следующие 10 лет. Всё равно всё будут перекраивать

 ,

max_lapshin
()

можно ли логинить ssh юзера сразу в /dev/ttyUSB0

Форум — Admin

Стоит компьютер, в него воткнуто несколько USB-TTL адаптеров.

Можно сделать так, что бы ssh usb0@host авторизовывало по ключу из /home/usb0/.ssh/authorized_keys, но терминал открывало сразу в ttyUSB0?

Хочется избежать промежуточного вызова миникома.

Кажется, надо что-то помудрить с pty, но никак не пойму что.

 ,

max_lapshin
()

Как избежать race в epoll edge-triggered режиме

Форум — Development

Коллеги, я немного не понял вот какой момент.

Допустим, у меня есть сокет, который в неблокирующем режиме.

Я сделал epoll_wait, узнал что он активен. Читаю из него до EWOULDBLOCK, после чего сразу ухожу в epoll_wait.

Между последним чтением и вызовом epoll_wait мне приходят данные, но из-за edge-triggered режима я не получаю нотификацию (как мне кажется), потому что данные пришли до вызова epoll_wait.

Я правильно проинтерпретировал документацию? Если да, то как избежать этого race condition?

 , ,

max_lapshin
()

Прошу объяснить причину удаления тем

Форум — Linux-org-ru

Некто jollheef без объяснения причин удалил две темы касающиеся Linux и Rust

www.linux.org.ru/forum/development/14181742 и старую тему Писать на Rust прошивку IP-камеры

Как узнать по какой причине?

 ,

max_lapshin
()

сборка под qnap: с чего начать?

Форум — Development

Коллеги, подскажите пожалуйста: хочется сделать пакет под qnap, с чего начать?

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

Как собирать пакеты под qnap, при этом желательно это делать не на нём самом.

Речь идет про домашний накопитель на armv7

 , ,

max_lapshin
()

как свести аудиодорожки программно?

Форум — Development

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

Сейчас дорожки идут с расхождением до 2000 миллисекунд, надо уменьшить это до 10-30 миллисекунд.

Какие ключевые слова гуглить?

Как называется эта проблематика и какие там алгоритмы?

Дорожки в mpeg2 audio.

 , ,

max_lapshin
()

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