Instalacja tunera DVB-T IT9135 w Ubuntu 12.04
Postanowiłem zaktualizować Ubuntu w moim HTPC i przy okazji użyć lepszych sterowników do tunera DVB-T WandTV opartego na chipsecie IT9135.
Zasadniczo tuner jest obsługiwany przez jądro 3.2 z Ubuntu 12.04, ale po włożeniu tunera do portu USB, linux go nie widzi…
Okazuje się, że trzeba dorzucić co nieco z linuxtv:
- instalacja git-a i innych potrzebnych zależności:
sudo apt-get install git libproc-processtable-perl patchutils
- ściągnięcie źródeł
mkdir v4l cd v4l/ git clone git://linuxtv.org/media_build.git
- budowanie
cd media_build/ ./build
- Po naprawdę dłuuugich minutach, instalacja
sudo make install
- testowy reboot
sudo reboot now
- w dmesg widać że tuner został rozpoznany, ale nie znaleziono firmware
dmesg | grep IT
- pobranie i instalacja firmware
cd Pobrane/ wget http://www.ite.com.tw/uploads/firmware/v3.6.0.0/dvb-usb-it9135.zip unzip dvb-usb-it9135.zip dd if=dvb-usb-it9135.fw ibs=1 skip=64 count=8128 of=dvb-usb-it9135-01.fw dd if=dvb-usb-it9135.fw ibs=1 skip=12866 count=5817 of=dvb-usb-it9135-02.fw sudo cp dvb-usb-it9135-0* /lib/firmware/
- reboot
sudo reboot now
- i dmesg powinien pokazać że wszystko w porządku (wybrane linijki z mojego logu – mam 2 tunery) – o dziwo teraz nawet świeci niebieski LED w tunerze…
[ 9.745181] it913x: Chip Version=01 Chip Type=9135 [ 9.745664] it913x: Firmware Version 204869120 [ 9.747160] it913x: Remote propriety (raw) mode [ 9.747660] it913x: Dual mode=0 Tuner Type=0 [ 9.747670] dvb-usb: found a 'ITE 9135(9005) Generic' in warm state. [ 9.748074] dvb-usb: will use the device's hardware PID filter (table count: 31). [ 9.749453] DVB: registering new adapter (ITE 9135(9005) Generic) [ 9.937031] it913x-fe: Tuner LNA type :38 [ 10.519304] DVB: registering adapter 0 frontend 0 (ITE 9135(9005) Generic_1)... [ 10.592225] Registered IR keymap rc-it913x-v2 [ 10.592561] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:04.1/usb1/1-3/rc/rc0/input5 [ 10.592755] rc0: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:04.1/usb1/1-3/rc/rc0 [ 10.592767] dvb-usb: schedule remote query interval to 250 msecs. [ 10.592780] dvb-usb: ITE 9135(9005) Generic successfully initialized and connected. [ 10.592787] it913x: DEV registering device driver [ 10.594086] it913x: Chip Version=01 Chip Type=9135 [ 10.594566] it913x: Firmware Version 204869120 [ 10.596636] it913x: Remote propriety (raw) mode [ 10.597318] it913x: Dual mode=0 Tuner Type=0 [ 10.597330] dvb-usb: found a 'ITE 9135(9005) Generic' in warm state. [ 10.597517] dvb-usb: will use the device's hardware PID filter (table count: 31). [ 10.598333] DVB: registering new adapter (ITE 9135(9005) Generic) [ 10.602083] it913x-fe: ADF table value :00 [ 10.607697] it913x-fe: Crystal Frequency :12000000 Adc Frequency :20250000 ADC X2: 01 [ 10.658053] it913x-fe: Tuner LNA type :38 [ 10.724801] DVB: registering adapter 1 frontend 0 (ITE 9135(9005) Generic_1)... [ 10.725067] Registered IR keymap rc-it913x-v2 [ 10.725485] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:06.1/usb2/2-2/rc/rc1/input6 [ 10.725687] rc1: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:06.1/usb2/2-2/rc/rc1 [ 10.725699] dvb-usb: schedule remote query interval to 250 msecs. [ 10.725712] dvb-usb: ITE 9135(9005) Generic successfully initialized and connected. [ 10.725720] it913x: DEV registering device driver [ 10.725799] usbcore: registered new interface driver it913x
na 2 komputerach z ubuntu 12.04 nie przechodzi mi build dla v4l wiesz moze jak to obejsc
tu tez napisalem http://ubuntu.pl/forum/viewtopic.php?f=136&t=161973
grek
6 października 2012 at 19:51
i jeszcze jedno dlaczego v4l z zrodel a nie z repo ? potrzebne ? bo tak mi podpowiedzieli na #ubuntu.pl
grek
6 października 2012 at 20:59
No właśnie też się dziwiłem że niby w kernelu są już drivery, ale dopiero po skompilowaniu v4l tunery zadziałały.
Admin
6 października 2012 at 22:12
Mam wrażenie że kod v4l w niektórych wersjach jest kłopotliwy w kompilacji.
Może spróbuj wersji którą ja użyłem, tzn:
commit 914dbece1cec1e258e6577fb4dc40af1aeac8bbf
Author: Hans Verkuil
Date: Wed Jul 11 11:48:26 2012 +0200
poprzez
git checkout 914dbece1cec1e258e6577fb4dc40af1aeac8bbf
Wygląda na to że musiałem skorygować plik backports/api_version.patch na taki:
diff –git a/drivers/media/video/pvrusb2/pvrusb2-v4l2.c b/drivers/media/video/pvrusb2/pvrusb2-v4l2.c
— a/drivers/media/video/pvrusb2/pvrusb2-v4l2.c
+++ b/drivers/media/video/pvrusb2/pvrusb2-v4l2.c
@@ -94,1 +94,1 @@ static struct v4l2_capability pvr_capabi
– .version = LINUX_VERSION_CODE,
+ .version = V4L2_VERSION,
diff –git a/drivers/media/video/sn9c102/sn9c102_core.c b/drivers/media/video/sn9c102/sn9c102_core.c
— a/drivers/media/video/sn9c102/sn9c102_core.c
+++ b/drivers/media/video/sn9c102/sn9c102_core.c
@@ -2161,1 +2161,1 @@ sn9c102_vidioc_querycap(struct sn9c102_d
– .version = LINUX_VERSION_CODE,
+ .version = V4L2_VERSION,
diff –git a/drivers/media/video/uvc/uvc_driver.c b/drivers/media/video/uvc/uvc_driver.c
— a/drivers/media/video/uvc/uvc_driver.c
+++ b/drivers/media/video/uvc/uvc_driver.c
@@ -1861,1 +1861,1 @@ static int uvc_probe(struct usb_interfac
– dev->mdev.driver_version = LINUX_VERSION_CODE;
+ dev->mdev.driver_version = V4L2_VERSION;
diff –git a/drivers/media/video/uvc/uvc_v4l2.c b/drivers/media/video/uvc/uvc_v4l2.c
— a/drivers/media/video/uvc/uvc_v4l2.c
+++ b/drivers/media/video/uvc/uvc_v4l2.c
@@ -574,1 +574,1 @@ static long uvc_v4l2_do_ioctl(struct fil
– cap->version = LINUX_VERSION_CODE;
+ cap->version = V4L2_VERSION;
Na 3.2.0-29-generic-pae się kompiluje.
Admin
6 października 2012 at 22:11
tzn jak ?
git checkout 914dbece1cec1e258e6577fb4dc40af1aeac8bbf
fatal: Not a git repository (or any of the parent directories): .git
grek
11 października 2012 at 16:12
Nie wiem czy ktoś tu jeszcze zagląda, ale może uzyskam pomoc. Do dziś wszystko działało świetnie, ale nagle nie ładuje się firmware. dmeseg zwraca:
dawid@dawid-Lenovo-3000-N500:~$ dmesg | grep IT
[ 0.000000] Fast TSC calibration using PIT
[ 0.473259] intel_idle: MWAIT substates: 0x1110
[ 206.407500] dvb-usb: found a ‚ITE 9135 Generic’ in cold state, will try to load a firmware
[ 3086.630305] dvb-usb: found a ‚ITE 9135 Generic’ in cold state, will try to load a firmware
dawid@dawid-Lenovo-3000-N500:~$
Jak mogę wymusić ładowanie firmware? W bibliotekach wszystko jest ok.
vasyld
21 stycznia 2013 at 08:43