{"id":1684,"date":"2010-11-15T02:49:38","date_gmt":"2010-11-15T05:49:38","guid":{"rendered":"http:\/\/meiradarocha.jor.br\/news\/?p=1684"},"modified":"2012-02-21T01:15:40","modified_gmt":"2012-02-21T04:15:40","slug":"instalar-controle-remoto-pixelview-playtv-pro-linux","status":"publish","type":"post","link":"https:\/\/meiradarocha.jor.br\/news\/2010\/11\/15\/instalar-controle-remoto-pixelview-playtv-pro-linux\/","title":{"rendered":"Como instalar o controle remoto PixelView PlayTV Pro no Linux"},"content":{"rendered":"<p><a href=\"http:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2010\/11\/pixelview_pack_frontcover_a.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-1691\" title=\"pixelview_pack_frontcover_a\" src=\"http:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2010\/11\/pixelview_pack_frontcover_a-300x199.jpg\" alt=\"Foto www.bttv-gallery.de\" width=\"300\" height=\"199\" \/><\/a>Passei anos sem conseguir configurar o controle remoto infravermelho (IR) da placa de TV <strong>Prolink PixelView PlayTV Pro<\/strong> no meu GNU\/Linux Ubuntu, at\u00e9 que descobri qual era o problema, pesquisando muito pelo Google e usando muita intui\u00e7\u00e3o. E com a ajuda dos novos drivers de multim\u00eddia desenvolvidos pelo professor brasileiro <a href=\"http:\/\/www.plaxo.com\/directory\/profile\/128849566906\/5923cb1c\/Mauro\/Chehab\"><strong>Mauro Carvalho Chehab<\/strong><\/a> .<\/p>\n<p>Editei o arquivo de configura\u00e7\u00f5es do m\u00f3dulo Linux <strong>bttv<\/strong>:<\/p>\n<pre>$ sudo gedit \/etc\/modprobe.d\/bttv.conf<\/pre>\n<p>Deixei-o com o seguinte conte\u00fado:<\/p>\n<pre># i2c\r\nalias char-major-89 i2c-devb\r\noptions i2c-algo-bit bit_test=1\r\n# bttv\r\nalias char-major-81 bttv\r\n# TV Card Prolink PlayTV Pro\r\noptions bttv <strong>card=139<\/strong> <strong>gpiomask=255<\/strong> tuner=2 radio=1 adc_crush=0 combfilter=1 full_luma_range=0 gbuffers=32<\/pre>\n<p>O truque \u00e9 dizer que a placa de TV \u00e9 PlayTV <strong>PV-M4900 (placa 139)<\/strong> em vez da <strong>Pro revis\u00e3o 9F (placa 37)<\/strong>, como seria o normal. Com isto, o chip receptor de infravermelho <strong>Jaesc IRDC357-M<\/strong> \u00e9 reconhecido pelo m\u00f3dulo (driver) <strong>bttv<\/strong>.<\/p>\n<p>Com este ajuste, o log <strong>dmesg<\/strong> do Ubuntu reportou:<\/p>\n<pre>[22.667341] bttv: driver version 0.9.18 loaded\r\n[22.667345] bttv: using 32 buffers with 2080k (520 pages) each for capture\r\n[22.667843] bttv: Bt8xx card found (0).\r\n[22.667860] bttv 0000:04:02.0: PCI INT A -&gt; GSI 18 (level, low) -&gt; IRQ 18\r\n[22.667871] bttv0: Bt878 (rev 17) at 0000:04:02.0, irq: 18, latency: 64, mmio: 0xf8ffe000\r\n[22.667980] <strong>bttv0: using: Prolink PixelView PlayTV MPEG2 PV-M4900 [card=139,insmod option]<\/strong>\r\n[22.668008] bttv0: gpio: en=00000000, out=00000000 in=00ffc0ff [init]\r\n[22.668051] bt878 #0 [sw]: Test OK\r\n[22.668142] bttv0: tuner type=2\r\n[22.733875] bttv0: audio absent, no audio device found!\r\n[22.743357] tuner 0-0061: chip found @ 0xc2 (bt878 #0 [sw])\r\n[22.746928] tuner-simple 0-0061: creating new instance\r\n[22.746932] tuner-simple 0-0061: type set to 2 (Philips NTSC (FI1236,FM1236 and compatibles))\r\n[22.747631] bttv0: registered device video0\r\n[22.747658] bttv0: registered device vbi0\r\n[22.747682] bttv0: registered device radio0\r\n[22.747703] bttv0: PLL: 28636363 =&gt; 35468950 .. ok\r\n[22.751948]<strong> Registered IR keymap rc-pixelview <\/strong>\r\n[22.752643]<strong> input: bttv IR (card=139) as \/devices\/pci0000:00\/0000:00:1e.0\/0000:04:02.0\/rc\/rc0\/input4 <\/strong>\r\n[22.752753]<strong> rc0: bttv IR (card=139) as \/devices\/pci0000:00\/0000:00:1e.0\/0000:04:02.0\/rc\/rc0 <\/strong><\/pre>\n<p>Escolhi esta placa espec\u00edfica depois de analisar o <a href=\"http:\/\/lxr.free-electrons.com\/source\/drivers\/media\/video\/bt8xx\/bttv-cards.c?v=2.6.38\">c\u00f3digo do m\u00f3dulo bttv<\/a> e verificar que os par\u00e2metros das placas s\u00e3o muito parecidas, mas a PV-M4900 est\u00e1 configurada como tendo controle remoto, e a Pro, n\u00e3o. Necessitei fazer apenas um ajuste em gpiomask:<\/p>\n<pre>     \/* ---- card 0x25 ---------------------------------- *\/\r\n894  [BTTV_BOARD_PXELVWPLTVPRO] = {\r\n909      .name           = \"Prolink PixelView PlayTV pro\",\r\n910      .video_inputs   = 3,\r\n911      \/* .audio_inputs= 1, *\/\r\n912      .svhs           = 2,\r\n913      .gpiomask       = 0xff,\r\n914      .muxsel         = MUXSEL(2, 3, 1, 1),\r\n915      .gpiomux        = { 0x21, 0x20, 0x24, 0x2c },\r\n916      .gpiomute       = 0x29,\r\n917      .no_msp34xx     = 1,\r\n918      .pll            = PLL_28,\r\n919      .tuner_type     = UNSET,\r\n920      .tuner_addr     = ADDR_UNSET,\r\n921   },\r\n922\r\n      \/* ---- card 0x8b ---------------------------------- *\/\r\n2557  [BTTV_BOARD_PV_M4900] = {\r\n2558  \/* S\u00e9rgio Fortier  *\/\r\n2559     .name           = \"Prolink PixelView PlayTV MPEG2 PV-M4900\",\r\n2560     .video_inputs   = 3,\r\n2561     \/* .audio_inputs= 1, *\/\r\n2562     .svhs           = 2,\r\n2563     .gpiomask       = 0x3f,\r\n2564     .muxsel         = MUXSEL(2, 3, 1, 1),\r\n2565     .gpiomux        = { 0x21, 0x20, 0x24, 0x2c },\r\n2566     .gpiomute       = 0x29,\r\n2567     .no_msp34xx     = 1,\r\n2568     .pll            = PLL_28,\r\n2569     .tuner_type     = TUNER_YMEC_TVF_5533MF,\r\n2570     .tuner_addr     = ADDR_UNSET,\r\n2571     .has_radio      = 1,\r\n2572     .has_remote     = 1,\r\n2573  },<\/pre>\n<p dir=\"ltr\">O comando &#8220;<strong>sudo cat \/proc\/bus\/input\/devices<\/strong>&#8221; reportou o seguinte dispositivo de entrada de dados:<\/p>\n<pre dir=\"ltr\">I: Bus=0001 Vendor=109e Product=036e Version=0001\r\nN: Name=\"bttv IR (card=139)\"\r\nP: Phys=pci-0000:04:02.0\/ir0\r\nS: Sysfs=\/devices\/pci0000:00\/0000:00:1e.0\/0000:04:02.0\/rc\/rc0\/input4\r\nU: Uniq=\r\nH: Handlers=kbd event4\r\nB: PROP=0\r\nB: EV=100013\r\nB: KEY=2c0814 10000400000000 0 402008000 209000002001 1e000000004400 ffc\r\nB: MSC=10<\/pre>\n<p dir=\"ltr\">Isto significa que o controle remoto PixelView PlayTV Pro \u00e9 tratado como um teclado.<\/p>\n<p>No terminal, usei o seguinte comando para instalar um testador de eventos:<\/p>\n<pre dir=\"ltr\">$ sudo apt-get install evtest<\/pre>\n<p dir=\"ltr\">Depois, testei\u00a0 os eventos de entrada de dados:<\/p>\n<pre dir=\"ltr\">$ sudo evtest \/dev\/input\/event4<\/pre>\n<p>O resultado foi este:<\/p>\n<pre>Input driver version is 1.0.1\r\nInput device ID: bus 0x1 vendor 0x109e product 0x36e version 0x1\r\nInput device name: \"bttv IR (card=139)\"\r\nSupported events:\r\n Event type 0 (Sync)\r\n Event type 1 (Key)\r\n  Event code 2 (1)\r\n  Event code 3 (2)\r\n  Event code 4 (3)\r\n  Event code 5 (4)\r\n  Event code 6 (5)\r\n  Event code 7 (6)\r\n  Event code 8 (7)\r\n  Event code 9 (8)\r\n  Event code 10 (9)\r\n  Event code 11 (0)\r\n  Event code 74 (KPMinus)\r\n  Event code 78 (KPPlus)\r\n  Event code 113 (Mute)\r\n  Event code 114 (VolumeDown)\r\n  Event code 115 (VolumeUp)\r\n  Event code 116 (Power)\r\n  Event code 128 (Stop)\r\n  Event code 141 (Setup)\r\n  Event code 164 (PlayPause)\r\n  Event code 167 (Record)\r\n  Event code 173 (Refresh)\r\n  Event code 207 (Play)\r\n  Event code 217 (Search)\r\n  Event code 226 (Media)\r\n  Event code 354 (Goto)\r\n  Event code 372 (Zoom)\r\n  Event code 386 (Tuner)\r\n  Event code 388 (Text)\r\n  Event code 395 (List)\r\n  Event code 402 (ChannelUp)\r\n  Event code 403 (ChannelDown)\r\n  Event code 405 (Last)\r\n  Event type 20 (Repeat)\r\nTesting ... (interrupt to exit)<\/pre>\n<p>A partir da\u00ed, cada tecla apertada no controle remoto emite c\u00f3digos. Por exemplo:<\/p>\n<pre>Event: time 1289797500.456346, type 1 (Key), code 115 (VolumeUp), value 1\r\nEvent: time 1289797500.456350, -------------- Report Sync ------------\r\nEvent: time 1289797500.560340, type 1 (Key), code 115 (VolumeUp), value 0\r\nEvent: time 1289797500.560343, -------------- Report Sync ------------\r\nEvent: time 1289797506.124351, type 1 (Key), code 114 (VolumeDown), value 1\r\nEvent: time 1289797506.124356, -------------- Report Sync ------------\r\nEvent: time 1289797506.178175, type 1 (Key), code 114 (VolumeDown), value 0\r\nEvent: time 1289797506.178180, -------------- Report Sync ------------<\/pre>\n<p>Neste ponto, o sistema Gnome j\u00e1 responde \u00e0s teclas de atalho. O bot\u00e3o de desligar do controle remoto PixelView funciona como o bot\u00e3o de desligar o PC, o bot\u00e3o Scan chama o <em>media player default<\/em>, o bot\u00e3o Zoom chama o programa de procura de arquivos.<\/p>\n<p>Interrompi o teste com CTRL+C e instalei o LIRC, o <a href=\"http:\/\/www.lirc.org\/\">Linux Infrared Remote Control (LIRC)<\/a> , conforme recomenda <a href=\"http:\/\/ubuntuforums.org\/showthread.php?t=1373251\">um post no f\u00f3rum Ubuntu<\/a>:<\/p>\n<pre dir=\"ltr\">$ sudo apt-get install lirc<\/pre>\n<p>Se j\u00e1 estiver instalado, o LIRC pode ser reconfigurado:<\/p>\n<pre dir=\"ltr\">$ sudo dpkg-reconfigure lirc<\/pre>\n<p>Na primeira tela de configura\u00e7\u00e3o, em vez de escolher placa PixelView PlayTV Pro, escolhi &#8220;<strong>Linux input layer (\/dev\/input\/eventX)&#8221;<\/strong>.<\/p>\n<p><a href=\"http:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2010\/11\/configurando-lirc.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-2613\" title=\"configurando-lirc\" src=\"http:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2010\/11\/configurando-lirc-300x244.png\" alt=\"\" width=\"300\" height=\"244\" srcset=\"https:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2010\/11\/configurando-lirc-300x244.png 300w, https:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2010\/11\/configurando-lirc-150x122.png 150w, https:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2010\/11\/configurando-lirc-768x625.png 768w, https:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2010\/11\/configurando-lirc.png 817w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>Na segunda tela, escolhi &#8220;None&#8221; porque n\u00e3o tenho emissor de infravermelho ligado ao computador. Na terceira tela,\u00a0 &#8220;Custom event interface&#8221;, escolhi &#8220;<strong>\/dev\/input\/by-path\/pci-0000:04:02.0-event-ir<\/strong>&#8220;, conforme as informa\u00e7\u00f5es devolvidas por\u00a0 &#8220;sudo cat \/proc\/bus\/input\/devices&#8221;:<\/p>\n<pre dir=\"ltr\">S: Sysfs=\/devices\/pci0000:00\/0000:00:1e.0\/<strong>0000:04:02.0<\/strong>\/rc\/rc0\/input4<\/pre>\n<p>No final da configura\u00e7\u00e3o, apareceu a mensagem de que tudo estava OK:<\/p>\n<pre> * Loading LIRC modules\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0        \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 [ OK ]\r\n * Starting remote control daemon(s) : LIRC\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 [ OK ]<\/pre>\n<p>O trecho que interessa do arquivo <strong>\/etc\/lirc\/hardware.conf<\/strong> ficou assim:<\/p>\n<pre>#Chosen Remote Control\r\nREMOTE=\"Linux input layer (\/dev\/input\/eventX)\"\r\nREMOTE_MODULES=\"\"\r\nREMOTE_DRIVER=\"devinput\"\r\nREMOTE_DEVICE=\"\/dev\/input\/by-path\/pci-0000:04:02.0-event-ir\"\r\nREMOTE_SOCKET=\"\"\r\nREMOTE_LIRCD_CONF=\"devinput\/lircd.conf.devinput\"\r\nREMOTE_LIRCD_ARGS=\"\"\r\n\r\n#Chosen IR Transmitter\r\nTRANSMITTER=\"None\"\r\nTRANSMITTER_MODULES=\"\"\r\nTRANSMITTER_DRIVER=\"\"\r\nTRANSMITTER_DEVICE=\"\"\r\nTRANSMITTER_SOCKET=\"\"\r\nTRANSMITTER_LIRCD_CONF=\"\"\r\nTRANSMITTER_LIRCD_ARGS=\"\"<\/pre>\n<p>O controle pode ser testado com:<\/p>\n<pre>$ irw<\/pre>\n<p>Que resulta, a cada tecla apertada:<\/p>\n<pre>0000000080010002 00 KEY_1 devinput\r\n0000000080010003 00 KEY_2 devinput\r\n0000000080010004 00 KEY_3 devinput\r\n0000000080010192 00 KEY_CHANNELUP devinput\r\n0000000080010193 00 KEY_CHANNELDOWN devinput<\/pre>\n<p>As teclas\u00a0 de volume e canal estavam trocadas no transmissor do controle remoto, provavelmente mapeadas pelo m\u00f3dulo do kernel <strong>bttv<\/strong>. Configurei\u00a0as corretas, no LIRC, pelo arquivo <strong>\/usr\/share\/lirc\/remotes\/devinput\/lircd.conf.devinput<\/strong> (tive que trocar em duas tabelas diferentes):<\/p>\n<pre>KEY_CHANNELDOWN\u00a0\u00a0 \u00a0 \u00a0114\r\nKEY_CHANNELUP\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0115\r\nKEY_VOLUMEDOWN\u00a0\u00a0 \u00a0 0x193\r\nKEY_VOLUMEUP\u00a0\u00a0 \u00a0\u00a0\u00a0 0x192<\/pre>\n<p>Agora s\u00f3 falta configurar os programas compat\u00edveis com LIRC.<\/p>\n<h3>Bibliografia<\/h3>\n<ul>\n<li><a href=\"http:\/\/www.bttv-gallery.de\/\">BTTV Gallery<\/a><\/li>\n<li><a href=\"http:\/\/ubuntuforums.org\/showthread.php?t=1373251\">Problem with LIRC &amp; Pixelview Play TV Pro<\/a><\/li>\n<li><strong><\/strong><a href=\"http:\/\/parker1.co.uk\/mythtv_tips.php\">MythTV Ubuntu Installation Guide<\/a><\/li>\n<li><a href=\"http:\/\/www.linuxtv.org\/wiki\/index.php\/Prolink_Pixelview_PlayTV_Pro\">Wiki Linux TV<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Passei anos sem conseguir configurar o controle remoto infravermelho (IR) da placa de TV Prolink PixelView PlayTV Pro no meu GNU\/Linux Ubuntu, at\u00e9 que descobri qual era o problema, pesquisando [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23,17],"tags":[],"class_list":["post-1684","post","type-post","status-publish","format-standard","hentry","category-linux","category-tv"],"_links":{"self":[{"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/posts\/1684","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/comments?post=1684"}],"version-history":[{"count":0,"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/posts\/1684\/revisions"}],"wp:attachment":[{"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/media?parent=1684"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/categories?post=1684"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/tags?post=1684"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}