eddy_em: (Костерок)
[personal profile] eddy_em
Гриша попросил меня поковыряться в 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, что крайне неудобно + тока элементарно не хватает на инициализацию граббера (если его подключить к работающей "малинке", она перезагружается из-за скачка питания).

Date: 2016-02-05 07:03 am (UTC)
From: [identity profile] t-mike.livejournal.com
может не актуально уже, но всё ж, майк ядра поддерживает сборку в бинарные пакеты и очень странно что этим практически никто о не пользуется :(
собственно в вашем случае make deb-pkg
правда переменных нужно побольше объявить, я делаю так
export ARCH="arm"
export CROSS_COMPILE="arm-linux-gnu-"
export CFLAGS="-march=armv6zk -mcpu=arm1176jzf-s -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard"
export CXXFLAGS="$CFLAGS"
export KBUILD_DEBARCH="armhf"
export $(dpkg-architecture -aarmhf)
export DEBEMAIL="вписать нужное"
export DEBFULLNAME="вписать нужное"
export KDEB_CHANGELOG_DIST="stable"

Date: 2016-02-05 08:37 pm (UTC)
From: [identity profile] eddy-em.livejournal.com
Собирать дебианопакет есть смысл лишь если имеется огромное количество этих наитупейших одноплатников, и нужно периодически всем им ведра обновлять. Больше смысла нет.
И вообще, по-человечески, ведро должно обновляться вручную. Поэтому в генте на автомате только пакеты с исходниками обновляются, а вот уж компилять их или нет — остается на волю хозяина компутера. И это правильно. Не то, что в бубунте какой-нибудь — ведро автоматом обновилось, и твой самописный модуль канул в Лету, т.к. с новым ведром не совместим (по понятным причинам)...

October 2025

S M T W T F S
   1234
567 89 1011
121314 15161718
19202122232425
2627 28293031 

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 26th, 2026 08:07 pm
Powered by Dreamwidth Studios