Гриша попросил меня поковыряться в Raspberry Pi, чтобы прикрутить туда купленный мной недавно для опытов
USB фреймграббер.
Все оказалось не так и сложно: по
этой инструкции я взял свежие исходники ядра для Raspberry:
git clone
https://github.com/raspberrypi/linux.git и firmware:
git clone
https://github.com/raspberrypi/firmware.git Далее просто добавил в .config нужное (в частности, CONFIG_VIDEO_USBTV и прочее, касающееся TV по USB), набросал простой скриптик:
#!/bin/bash
export CCPREFIX=/usr/bin/arm-none-eabi-
export MODULES_TEMP=Modules
make ARCH=arm CROSS_COMPILE=${CCPREFIX}
make ARCH=arm CROSS_COMPILE=${CCPREFIX} modules
mkdir ${MODULES_TEMP}
make ARCH=arm CROSS_COMPILE=${CCPREFIX} INSTALL_MOD_PATH=${MODULES_TEMP} modules_install
и скомпилировал ядро с модулями.
Готовое ведро лежит в linux/arch/arm/boot под именем Image. Чтобы установить его, достаточно примонтировать флешку с raspbian. По умолчанию там 2 раздела: boot с vfat (странно, зачем vfat?) и корень с ext4 (т.к. флешка у Гриши была на 16ГБ, я создал еще третий раздел для всякой всячины; а вообще, можно и расширить корень при желании). В boot сбрасываем файл Image и в соответствии с мануалом прописываем в config.txt имя нового ядра (старое на всякий случай можно пока схоронить). Далее сбрасываем в boot firmware в соответствии с инструкцией. Потом монтируем корень и копируем туда нужную часть firmware + модули ядра.
После перезагрузки в новое ядро все в порядке. Единственное, чего не хватает для нормальной работы - человеческого питания. По умолчанию RPi питается по микро-USB, что крайне неудобно + тока элементарно не хватает на инициализацию граббера (если его подключить к работающей "малинке", она перезагружается из-за скачка питания).