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.