[megoldva] RaspberryPi: Friss V4L-DVB forrás összehozása kernel forrással

Fórumok

Adott egy arm-os eszköz, nevezzük raspberry pi-nek, amihez 3.1.9-es kernellel ellátott arch és debian imagek érhetők el. A debian-os kernel eredetileg úgy van forgatva, hogy kihagyja a dvb-t tunerek támogatásához szükséges részeket. Az arch-os esetén már jobb a helyzet, alapból támogat néhány tunert, viszont frissíteni kellene a drivereket rajta, hogy menjen újabb tunerekkel is (it9135).

Ezt a leírást követve sikerült is az eszközön fordítani és telepíteni:
http://www.linuxtv.org/wiki/index.php/How_to_Obtain,_Build_and_Install_…
Viszont a tuner csatlakoztatásakor hibát kapok például: dvb_usb_rtl2832u disagrees about version of symbol dvb_usb_device_init.

Arra tippelek, a baj oka az lehet, hogy más gcc vezióval fordult a kernel, mint ami magán az eszközön van (4.5).
Hogy ez ne legyen probléma, szeretném a kernellel együtt lefordítani a friss dvb-usb drivereket is, csak nem tudom hogyan lehetne össze mergel-ni a két forrást.

A kernel fordításához működő leírás (ubuntu), ezzel az eszközön is működő kernelt kaptam:
http://elinux.org/RPi_Kernel_Compilation

Ha csak az rtl2832u drivert fordítom és telepítem, az működik arch alatt:
https://github.com/ambrosa/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kerne…

A tvheadend is szépen fordult és futott, stremelte az adást róla. Csakhát mostanában a kínaiak inkább it9135 tunereket árulnak olcsón, meg úgy egyébként a jobb tuner támogatás miatt jó lenne ha tudnám használni rajta a friss v4l-t.
Van valakinek ötlete arra hogyan lehet a kernel forrást és a v4l frissítést összehozni, hogy a kernellel együtt leforduljon?

Frissítés / megoldás:

Írtam egy scriptet, ami az éppen használt "hivatalos" raspbian rendszerhez való forrást szedi le a repójukból:
https://github.com/azbesthu/raspberrypi/blob/master/get-raspi-source/ge…

Utána már, ha minden egyébb szükséges lib fenn van, akkor a már majdnem jó minden. Annyi probléma lesz még, hogy nem minden media tree módosírás kompatibilis a régebbi kernelekkel és az illetékesek kb dev/null-ba teszik az ilyen irányú kéréseket amit egy "ismeretlentől" kapnak. Szóval kell egy patchelés a media-build scritpekre, hogy le lehessen fordítani:
https://github.com/azbesthu/raspberrypi/blob/master/media-tree-backport…

Hozzászólások

Nocsak... lehet nyomon vagyok...

a 3.1.9-es kernel mondjuk egy linux mappába leszedve innen
git clone https://github.com/raspberrypi/linux

a mostani legfrissebb linux-media forrás mondjuk update mappába kitömörítve
wget http://linuxtv.org/downloads/drivers/linux-media-2012-05-09.tar.bz2

a media_build leszedése
git clone git://linuxtv.org/media_build.git
ennek a backports mappából a megfelelő patchek alkalmazása az update-en, a pi-n futtatott build alapján megfelelen átírva ezek a parancsok:

ezután azt hiszem az update mappa tartalmát belemásolni a linux mappába..

patch -s -f -N -p1 -i ../backports/api_version.patch
patch -s -f -N -p1 -i ../backports/pr_fmt.patch
patch -s -f -N -p1 -i ../backports/v3.1_no_export_h.patch
patch -s -f -N -p1 -i ../backports/v3.1_no_pm_qos.patch

a linux mappában az eredeti debian-os kernel .config -ját kibővíteni az arch-os kernel .config-jából vett media résszel, hogy legyen media és driverek... az oldconfog varázslat futtatásakor modult mondani mindenfélére ami kell a médiából :)

Én legutóbb úgy csináltam hasonlót, hogy fogtam a v4l-dvb-s forrást, és egész egyszerűen felülírtam vele a drivers/media/dvb/dvb-usb (vagy valami ilyesmi, most fejből nem emlékszem) mappa tartalmát, meg kézzel beírtam az engem érintő egy darab új kártyát a Makefile és Kconfig fájlokba. Gányolás, de gyorsan kellett és működött.