Январские обновление прошивки от Raspberry Pi для Raspbian принесло в себе сюрприз в качестве неработающего потока с камеры, обрабатываемого при помощи MJPG-Streamer. Казалось бы, все происходит как обычно: штатно стартует MJPG-Streamer, работает и доступен веб сервер, но картинки нет. В логах нет ни ошибок, ни предупреждений. В заметке представлено найденное решение подобной ситуации.

Ситуация, конечно, не приятная. Дабы хоть как-то запустить вещание, к команде запуска пришлось добавить параметр -y, который переключает режим вещания из MJPEG в YUYV, и даже заработало, но в 5 раз хуже. Всего 3 fps:



При этом, как уже сказано, частота видео всего 3 fps, а загруженность процессора 100%. Так же показана последняя версия ядра, обновившись на которую сломалось вещание. На текущий момент это 3.18.5 и оно содержит баг. На гитхабе в ветке разработки firmware есть обсуждения и предлагаемые решения, но ни одно из них не привело к положительному результату.

Очевидно, надо что-то с этим делать. Хоть и не правильно переставлять систему, но решения так и не было найдено. К удивлению, на сайте производителя оказались недоступны предыдущие версий системы для скачивания. Как оказалось, не зря. Поискав еще, нашелся способ откатить ядро средствами самой Raspberry Pi. Делается той же командой, что и поломала его:

sudo rpi-update f74b92120e0d469fc5c2dc85b2b5718d877e1cbb

Утилита rpi-update обновляет firmware. При этом, в качестве аргумента указывается хэш желаемого коммита, до которого требуется обновиться. Данный хэш относится к последнему коммиту на ядре 3.12.36. Система обновилась до устаревшего ядра. Как бы это не звучало.

Все хэши коммитов можно посмотреть тут.

После успешной отработки команды и перезагрузки можно видеть нормальную картинку:



Будьте осторожны в выборе обновлений и не делайте это без особой на то необходимости.