LINUX.ORG.RU

Pi-KVM - проект открытого IP-KVM на Raspberry Pi

 , , , ,

Pi-KVM - проект открытого IP-KVM на Raspberry Pi

26

5

Состоялся первый публичный релиз проекта Pi-KVM: набора софта и инструкций, которые позволяют превратить Raspberry Pi в полностью функциональный IP-KVM. Это устройство подключается к HDMI/VGA и USB-порту сервера, чтобы управлять им удаленно, независимо от операционной системы. Можно включить, выключить или перезагрузить сервер, настроить BIOS и даже полностью переустановить ОС с загруженного образа: Pi-KVM умеет эмулировать виртуальный CD-ROM и флеш-накопитель.

Количество необходимых деталей, помимо самого Raspberry Pi, минимально, что позволяет собрать его буквально за полчаса, а общая стоимость окажется в районе $100 даже в самой дорогой конфигурации (в то время как многие проприетарные IP-KVM при меньшей функциональности будут стоить от $500 и выше).

Основные возможности:

  • Доступ к серверу через веб-интерфейс обычного браузера или VNC-клиент (никаких Java-апплетов или флеш-плагинов);
  • Низкая задержка видео (порядке 100 миллисекунд) и высокий FPS;
  • Полная эмуляция клавиатуры и мыши (включая светодиоды и прокрутку колесиком/тачпадом);
  • Эмуляция CD-ROM и флешки (можно загрузить несколько образов и подключать их по мере необходимости);
  • Управление питанием сервера с помощью ATX-пинов на материнской плате или через Wake-on-LAN; поддерживается IPMI BMC для интеграции в существующую сетевую инфраструктуру;
  • Расширяемые механизмы авторизации: начиная от обычной по паролю и заканчивая возможностью использования единого сервера авторизации и PAM.
  • Широкая поддержка железа: Raspberry Pi 2, 3, 4 или ZeroW; различные устройства видеозахвата;
  • Простой и дружественный тулчейн, который позволяет собрать и установить ОС на карту памяти Raspbery Pi всего парой команд.
  • И многое другое.

Также готовится к релизу специальная плата расширения для Raspberry Pi 4, которая реализует все описанные функции, плюс множество других возможностей (подробности на GitHub). Открытие предзаказов ожидается в четвертом квартале 2020 года. Стоимость ожидается в районе $100 или меньше. Подписаться на новость о предзаказе можно тут.

>>> Подробности на GitHub

★★★☆

Проверено: Zhbert ()
Последнее исправление: liksys (всего исправлений: 3)

Ответ на: комментарий от PETER

Затем, что это поможет, если у тебя умрет ось на удаленном сервере или десктопе. А если на них нет IPMI - тебе придется ехать и чинить это руками.

liksys ★★★☆
() автор топика

Отличная работа.

Предлагаю еще один USE CASE: VDI. Вывод данных с проброшенной в виртуальную машину видеокарты.

Если в SPICE-клиента завернуть вывод от PIKVM, можно будет получить полноценный виртуальный десктоп со звуком, общим буфером обмена и клиентским Интернет соединением.

Таким образом с одного физического сервера можно будет предоставить доступ к нескольким виртуальным десктопам.

b0r1s
()
Ответ на: комментарий от b0r1s

Идея топовая, но боюсь через USB 2.0 все это счастье не пролезет :) Это надо PCI-E городить (хотя такие мысли тоже были).

liksys ★★★☆
() автор топика

Платы на Allwinner поддерживают USB-gadget на micro-USB разъеме питания, хотелось бы увидеть их поддержку.

No
()
Ответ на: комментарий от No

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

liksys ★★★☆
() автор топика
Ответ на: комментарий от liksys

Идея топовая, но боюсь через USB 2.0 все это счастье не пролезет :) Это надо PCI-E городить (хотя такие мысли тоже были)

От PIKVM ничего не нужно кроме видеопотока. Все остальное предоставляется пользователю через SPICE-соединение.

Сейчас там при запуске Windows виртуальной машины с проброшенной видеокартой отображается только логотип. Клавиатура и мышь захватываются, общий буфер и звук работают, клиентский Интернет тоже заводится.

Всё что осталось сделать это код SPICE-клиента пропатчить чтобы видеопоток с PIKVM отображался поверх имеющегося экрана.

b0r1s
()
Ответ на: комментарий от No

Эти свистки видимо со сжатием, а люся гонит несжатый поток в CSI-2, и жмет уже я так понимаю распбериха. Но девайсы все равно интересные, кому то нужно будет уже со сжатием

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от liksys

Существует миллион плат на ARM. Я не отказываюсь их поддерживать, даже наоборот

Минуточку, ты что ли автор этого гениального проекта??? Правильно я понимаю?

I-Love-Microsoft ★★★★★
()

Не пробовал, но одобряю! Годный проект!

anc ★★★★★
()
Ответ на: комментарий от izzholtik

Ну да. Также как и если твой монитор это не поддерживает

liksys ★★★☆
() автор топика
Ответ на: комментарий от anonymous

Я его знаю, он делает упрощённый софт и продает набор в США. Для работы использует мой софт для видео, я ему разрешил.

liksys ★★★☆
() автор топика
Ответ на: комментарий от anonymous

uStreamer solved all of this. It ran its own minimal HTTP server that served video in Motion JPEG, a format browsers play natively. I didn’t have to bother with HLS streams or getting ffmpeg and nginx to talk to each other.

The tool was so fully-featured that I assumed Max simply forked it from a more mature project, but I was mistaken. This maniac wrote his own video encoder in C just to squeeze the maximum performance out of Pi hardware. I quickly donated to Max and invite anyone who uses his software to do the same.

greenman ★★★★★
()

Интересный проект.

А у 1-3 пишек вообще достаточно пропускной способности, чтобы прокачивать через себя видео с экрана? Там же около 40Мб/сек в сумме вообще на всё.

kirill_rrr ★★★★★
()
Ответ на: комментарий от kirill_rrr

Да, вполне. Я все это собирал и всё работает.

liksys ★★★☆
() автор топика

А образ ОС для этого может быть собран на малине без использования докера и прочего?

Radjah ★★★★★
()
Ответ на: комментарий от Radjah

Если там стоит арч арм - то можно просто подключить реп, поставить нужные пакеты и донастроить его. Можно убрать докер, но какой смысл?

liksys ★★★☆
() автор топика

Народ, немного не в тему, но всё же близко…

Не попадалось ли кому мониторов со встроенным KVM на пару входов? Поясню: полно моников с переключением источника видео по нажатию кнопки. Им бы цены не было, если б они еще и USB переключали (на звук плевать).

Для домашнего ноута и некого терминала экзотического, но иногда нужного в работе и стоящего рядом, очень не хочется городить огород с KVM или вторым набором HID (как у меня сейчас), хотелось бы обойтись совсем малой кровью

anonymous
()
Ответ на: комментарий от anonymous

https://www.samsung.com/us/computing/monitors/curved/43-cj890-super-ultra-wide-curved-monitor-lc43j890dknxza/ умеет так. У меня к нему подключены вебка, свистки от беспроводной клавы и мыши и колонки. Он сам через один usb-c подключен к неттопу, а вторым к ноуту (когда нужно). Через этот usb-c работает само видео, клавиатура, мышь, вебка, колонки. Ну а ноут ещё и заряжается, т.к. там на type-c порты выведено 15W и 85W power delivery соотвественно. Да и как монитор он отличный - 32:10 (как 2 монитора 16:10 рядом), 120Hz. Но цена, да, соотвествует - отдал за него $770 полтора года назад. Возможно у Самсунга такое есть и в мониторах попроще, но я не в курсе.

ava1ar
()
Последнее исправление: ava1ar (всего исправлений: 2)

Поздравляю с релизом! Рад, что нашёл свою ЦА. Патреон показывает, что умеешь не только писать код, но и преподносить ПО конечному пользователю. Опенсорс здорового человека.

arturianec100
()
Ответ на: комментарий от anonymous

Не попадалось ли кому мониторов со встроенным KVM на пару входов? Поясню: полно моников с переключением источника видео по нажатию кнопки. Им бы цены не было, если б они еще и USB переключали (на звук плевать).

Давно таким пользуюсь, BenQ PD3200Q, 4 входа HDMI/DP/mDP/DVI. Звук идет по HDMI, есть 4 входа USB и 2 выхода. Переключается либо на самом мониторе, либо на пульте. Можно настроить шорткаты чтобы сразу все перебрасывать, можно автоматом, короче масса вариантов.

Нареканий никаких, кроме того что я хочу iiyama всю жизнь. Но за такие деньги с такими возможностями у iiyama можно купить разве что упаковку.

alex07
()
Последнее исправление: alex07 (всего исправлений: 4)
Ответ на: комментарий от anonymous

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

liksys ★★★☆
() автор топика

Интересный проект. После работы с KVM, что требует старых-старых JRE 7/8 и кучу магии, чтобы с ними работать(и это реальные железки от именитых производителей) ваш проект с HTML-интерфейсом и VNC выглядит на редкость удобно, современно и разумно. Да и клава получше выглядит, чем у KVM, с которыми приходилось иметь дело. Да и эмуляция CD-ROM и флешки смотрится интересно. Что-то подобное у IPMI/ILO есть, а у классического KVM - далеко не всегда.

lucentcode ★★★★★
()
Ответ на: комментарий от zgen

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

liksys ★★★☆
() автор топика

Годно! Нужно. Ждем ещё СКУД на рейспери.

DALDON ★★★★★
()
Ответ на: комментарий от ava1ar

Неплохо, жаль великоват для меня размерами. Кстати, как ощущения при работе от «вогнутости»?

anonymous
()
Ответ на: комментарий от b0r1s

Это требует аппаратной поддержки сжатия h264 на ВМ. Вполне реализуемо через spice-streaming-agent, хотя и жрёт проц в апстрим-варианте.

olegkrutov ★★
()

Круто, спасибо!

Только у меня маленький вопрос, сейчас везде есть IPMI с консолью через web либо java-клиент, данная замена нацелена на варианты без IPMI, более старые сервера?

int13h ★★★★★
()
Ответ на: комментарий от pekmop1024

Если вам не нужен контроль ATX, то можно обойтись вообще без пайки.

liksys ★★★☆
() автор топика
Ответ на: комментарий от int13h

«Везде есть IPMI» - это сильное преувеличение. Например, если вы пойдете собирать какой-нибудь рендер-кластер на райзене и воткнете туда штук шесть видях, с высокой вероятностью вы используете десктопную/игровую материнку, и никакого IPMI у вас не будет. А таких конфигураций на самом деле полным-полно.

liksys ★★★☆
() автор топика
Ответ на: комментарий от AnDoR

оно то может и ок, но в целом 1к1 плата-сервер не очень интересно

dengolius
()

Шикарно. Может когда-нибудь дойдут руки потискать. Но тема толковая.

explorer
()
Ответ на: комментарий от liksys

Тебе вагон респекта и еще камаз уважухи за этот проект!!! Сам хотел мастерить подобное, но чисто для себя, просто необходимо было, нужнейший проект! Пользоваться буду, а может и сконтрибучу ченить. Чтобы не быть пустозвоном, просто промолчу что хотел сделать (что делаю на базе ПЛИС), но если кое что получится, такое может будет применимо к этому проекту

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от liksys

У меня только один вопрос, вижу документацию на чип TC358743XBG, ясно что готовая плата «люся» сделана на базе него. Еще знаю что MIPI CSI-2 в Rapsberry поддерживает только ограниченный набор сенсоров

Как удалось заставить raspivid (или свою программу по мотивам) настраивать режим работы для подобного устройства, которое не является сенсором? Как удалось согласовать разрешения захвата, скорость линков (lanes)?

Я уже продолжительное время занимаюсь с отладочной платой Lattice Crosslink совместно с Raspberry Pi в качестве самого доступного приемника. Есть демо прошивка, которая прокидывает CCI (I2C) прямо до сенсора и это позволяет такому мосту работать

Моя же проблема что у меня собственная прошивка, которая работает в режиме CMOS->CSI2, точнее должна работать. В модели работает (собственный паттерн-генератор с вроде как с правильными таймингами), всё по сто раз перепроверил, но она не принимает поток в таком режиме в реале (все тактовые сигналы работают, всё отлично, PLL заводится и многое другое), хотя я на Raspbrry даю такие же параметры на сенсор, какие генерирую в своей прошивке

Единственно что пробовал принимать Crisslink-чипом от сенсора, вот это вроде как работает, кадры бегут, а вот само расбери не кушает

Вот потому и непонятно, как же Raspberry заставить принимать поток не от сенсора, какой протокол? У меня есть игрушка на базе FT2232HL и через нее я собираюсь обманывать Raspberry что она якобы общается не с сенсором

На форуме Raspberry org мне ихний инженер автор raspivid поведал, что если отучить raspivid от I2C и вручную задать фиксированные параметры в структурах, то оно без проблем должно сожрать мой поток. Меня научили как включать отладочный режим ихнего драйвера

Как это чудо свершилось в RPI-KVM?

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)

И все бы круто, но SD, с которой оно грузится тоже дохнет с завидной регулярностью, а eMMC в Pi не завезли

ncrmnt ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Я не буду вас обманывать - я не электронщик и не особо разбираюсь во внутренностях этого бриджика. Один из разработчиков ядра пая написал к tc358743 драйвер и поддерживает его: https://github.com/torvalds/linux/blob/master/drivers/media/i2c/tc358743.c

Может, это как-то поможет.

liksys ★★★☆
() автор топика
Ответ на: комментарий от hobbit

Привет, латентный мой друг. Опять постукиваешь на меня? Мужика тебе надо хорошего, чтоб ты за мной не бегал.

Владимир

anonymous
()
Ответ на: комментарий от liksys

Один из разработчиков ядра пая написал к tc358743 драйвер и поддерживает его: https://github.com/torvalds/linux/blob/master/drivers/media/i2c/tc358743.c

Да, это поможет. Вижу что там есть I2C для edid, еще и I2C от CSI-2 там вижу. Наверное, стоит заказать такую плату

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от anonymous

К вогнутости привык буквально за день. Возможно дизайнерам-чертёжникам вогнутость мешает, но мне как программисту не мешает ни разу. До этого были 2 x Dell U2415 (24" 1920x1200) - т.е. я получил примерно то же, только с USB-C и одним экраном без разделителя посередине. Ширина экрана позволяет его делить на 3 части, чем я сейчас активно пользуюсь. На работе 4x24", но мы с марта месяца на удалёнке и похоже это надолго, так что живу с одним 43" и особо не жалуюсь.

ava1ar
()
Последнее исправление: ava1ar (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.