How to setup kozumi KTV-01C (chip bt878 rev11)

I have setup this card with gentoo 2008. In some others distributions like Ubuntu or Fedora, I’m sure it should be easier.

The card that I’m writing about is:

04:09.0 Multimedia video controller: Brooktree Corporation Bt878 Video Capture (rev 11)
04:09.1 Multimedia controller: Brooktree Corporation Bt878 Audio Capture (rev 11)

It works with module bt878

Device Drivers ---]
[M] Video For Linux
[*] Enable Video For Linux API 1 compatible Layer
[*] Video capture adapters ---]
[M] BT848 Video For Linux
[*] DVB/ATSC Support for bt878 based TV cards

make && make modules_install

after that we edit /etc/modprobe.conf or /etc/modprobe.d/bttv and we add the following lines:

alias char-major-81 videodev
alias char-major-81-0 bttv
options bttv pll=1 card=120 radio=1 tuner=38 remote=1 bttv_verbose=1 gbuffers=4
options ir_common debug=1

Now we can try the card with:

modprobe bttv
modprobe tuner

We can check if they loaded successfully:

# dmesg | grep bttv
bttv: driver version 0.9.17 loaded
bttv: using 4 buffers with 2080k (520 pages) each for capture
bttv: Bt8xx card found (0).
bttv0: Bt878 (rev 17) at 0000:04:09.0, irq: 17, latency: 32, mmio: 0xfdaff000
bttv0: using: Conceptronic CONTVFMi [card=120,insmod option]
bttv0: gpio: en=00000000, out=00000000 in=007fc0ff [init]
bttv0: tuner type=38
bttv0: i2c: checking for MSP34xx @ 0x80... not found
bttv0: i2c: checking for TDA9875 @ 0xb0... not found
bttv0: i2c: checking for TDA7432 @ 0x8a... not found
bttv0: registered device video0
bttv0: registered device vbi0
bttv0: registered device radio0
bttv0: PLL: 28636363 =] 35468950 .. ok
input: bttv IR (card=120) as /class/input/input4
bttv0: PLL can sleep, using XTAL (28636363).

# dmesg | grep tuner
bttv0: tuner type=38
tuner’ 0-0060: chip found @ 0xc0 (bt878 #0 [sw])
tuner-simple 0-0060: type set to 38 (Philips PAL/SECAM multi (FM1216ME MK3))

Install tvtime:

emerge tvtime

You should set it to the norm of you country, I set it to PAL-Nc:

$ tvtime-configure -n PAL-Nc
$ tvtime-scanner

And if everything went well, we should see something like this:

Scanning using TV standard PAL-NC.
Scanning from 44.00 MHz to 958.00 MHz.
Found a channel at 54.50 MHz (52.50 - 56.25 MHz), adding to channel list.
Found a channel at 66.50 MHz (64.25 - 68.50 MHz), adding to channel list.
Checking 79.00 MHz: - No signal

Last, but not least, we have to add to /etc/modules.autoload.d/kernel-2.6 tuner:

echo "tuner" ]] /etc/modules.autoload.d/kernel-2.6

Remote Control

In order to setup the remote control you have to edit a few lines in the kernel module. We are going to edit $source/drivers/media/common/ir-keymaps.c:

Anf where it says IR_KEYTAB_TYPE we remove all the keys and we leave it like this:

IR_KEYTAB_TYPE ir_codes_pixelview[IR_KEYTAB_SIZE] = {
[ 0x00 ] = KEY_0,
[ 0x01 ] = KEY_1,
[ 0x02 ] = KEY_2,
[ 0x03 ] = KEY_3,
[ 0x04 ] = KEY_4,
[ 0x05 ] = KEY_5,
[ 0x06 ] = KEY_6,
[ 0x07 ] = KEY_7,
[ 0x08 ] = KEY_8,
[ 0x09 ] = KEY_9,
[ 0x1c ] = KEY_RADIO, /* FM Radio */
[ 0x0a ] = KEY_BACKSPACE, /* Recall */
[ 0x12 ] = KEY_ESC, /* POWER */
[ 0x18 ] = KEY_LEFT, /* VOL- */
[ 0x0c ] = KEY_RIGHT, /* VOL+ */
[ 0x16 ] = KEY_ENTER, /* OK */
[ 0x17 ] = KEY_D, /* Plus */
[ 0x10 ] = KEY_F, /* Mode */
[ 0x0b ] = KEY_UP, /* CH+ */
[ 0x0b ] = KEY_UP, /* CH+ */
[ 0x15 ] = KEY_DOWN, /* CH- */
[ 0x14 ] = KEY_H, /* OSD */
[ 0x13 ] = KEY_MUTE, /* Mute */
[ 0x0f ] = KEY_BACKSPACE, /* Prev */
[ 0x0e ] = KEY_STOP, /* Stop */
[ 0x1f ] = KEY_PLAY, /* Play */
[ 0x1e ] = KEY_PAUSE, /* Pause */
[ 0x1d ] = KEY_RECORD, /* Record */
[ 0x1a ] = KEY_F7, /* Next */
[ 0x0f ] = KEY_A, /* */
[ 0x1b ] = KEY_F5, /* Time Shift */
[ 0x19 ] = KEY_S, /* Snapshot */
[ 0x0f ] = KEY_F6, /* Prev */
[ 0x0d ] = KEY_E, /* Stereo */
[ 0x11 ] = KEY_I /* Source */
};

EXPORT_SYMBOL_GPL(ir_codes_pixelview);

Then, in the kernel source directory, we run:

make && make modules_install y listo.

I got some hints from:

http://www.linuxforums.org/forum/peripherals-hardware/91984-remote-controller-bt878-kozumi-ktv-01c.html

Como configurar placa capturadora kozumi KTV-01C (con chip bt878 rev11)

Me llevo un par de días asi que lo comparto con ustedes, ya que le puede beneficiar a alguien mas

En este caso yo lo configure con gentoo 2008, quizás haya distribuciones, en las que les sea aun mas fácil configurar este dispositivo.

La placa en cuestión es:

04:09.0 Multimedia video controller: Brooktree Corporation Bt878 Video Capture (rev 11)
04:09.1 Multimedia controller: Brooktree Corporation Bt878 Audio Capture (rev 11)

Que funciona con el modulo bt878

Device Drivers ---]
[M] Video For Linux
[*] Enable Video For Linux API 1 compatible Layer
[*] Video capture adapters ---]
[M] BT848 Video For Linux
[*] DVB/ATSC Support for bt878 based TV cards

make && make modules_install

Editamos /etc/modprobe.conf o /etc/modprobe.d/bttv y agregamos los datos del modulo:

alias char-major-81 videodev
alias char-major-81-0 bttv
options bttv pll=1 card=120 radio=1 tuner=38 remote=1 bttv_verbose=1 gbuffers=4
options ir_common debug=1

Ahora podemos probar con:

modprobe bttv
modprobe tuner

Podemos verificar que los modulos esten arriba:

# dmesg | grep bttv
bttv: driver version 0.9.17 loaded
bttv: using 4 buffers with 2080k (520 pages) each for capture
bttv: Bt8xx card found (0).
bttv0: Bt878 (rev 17) at 0000:04:09.0, irq: 17, latency: 32, mmio: 0xfdaff000
bttv0: using: Conceptronic CONTVFMi [card=120,insmod option]
bttv0: gpio: en=00000000, out=00000000 in=007fc0ff [init]
bttv0: tuner type=38
bttv0: i2c: checking for MSP34xx @ 0x80... not found
bttv0: i2c: checking for TDA9875 @ 0xb0... not found
bttv0: i2c: checking for TDA7432 @ 0x8a... not found
bttv0: registered device video0
bttv0: registered device vbi0
bttv0: registered device radio0
bttv0: PLL: 28636363 =] 35468950 .. ok
input: bttv IR (card=120) as /class/input/input4
bttv0: PLL can sleep, using XTAL (28636363).

# dmesg | grep tuner
bttv0: tuner type=38
tuner' 0-0060: chip found @ 0xc0 (bt878 #0 [sw])
tuner-simple 0-0060: type set to 38 (Philips PAL/SECAM multi (FM1216ME MK3))


Instalamos tvtime:

emerge tvtime

configuramos la norma PAl-Nc para nuestro usuario:

$ tvtime-configure -n PAL-Nc
$ tvtime-scanner

Y si todo salio bien, deberíamos ver una salida como esta:

Scanning using TV standard PAL-NC.
Scanning from 44.00 MHz to 958.00 MHz.
Found a channel at 54.50 MHz (52.50 - 56.25 MHz), adding to channel list.
Found a channel at 66.50 MHz (64.25 - 68.50 MHz), adding to channel list.
Checking 79.00 MHz: - No signal

Por ultimo agregamos a /etc/modules.autoload.d/kernel-2.6 tuner:

echo "tuner" ]] /etc/modules.autoload.d/kernel-2.6

Y ya esta, para configurar el control remoto, hay que editar el mapeo de las teclas dentro del modulo del kernel compilado (haga una copia de seguridad de este antes de editar el modulo):

editamos
$source/drivers/media/common/ir-keymaps.c:

Y donde esta definido IR_KEYTAB_TYPE ir_codes_pixelview[IR_KEYTAB_SIZE]:

borramos todas las keys y lo dejamos asi:

IR_KEYTAB_TYPE ir_codes_pixelview[IR_KEYTAB_SIZE] = {
[ 0x00 ] = KEY_0,
[ 0x01 ] = KEY_1,
[ 0x02 ] = KEY_2,
[ 0x03 ] = KEY_3,
[ 0x04 ] = KEY_4,
[ 0x05 ] = KEY_5,
[ 0x06 ] = KEY_6,
[ 0x07 ] = KEY_7,
[ 0x08 ] = KEY_8,
[ 0x09 ] = KEY_9,
[ 0x1c ] = KEY_RADIO, /* FM Radio */
[ 0x0a ] = KEY_BACKSPACE, /* Recall */
[ 0x12 ] = KEY_ESC, /* POWER */
[ 0x18 ] = KEY_LEFT, /* VOL- */
[ 0x0c ] = KEY_RIGHT, /* VOL+ */
[ 0x16 ] = KEY_ENTER, /* OK */
[ 0x17 ] = KEY_D, /* Plus */
[ 0x10 ] = KEY_F, /* Mode */
[ 0x0b ] = KEY_UP, /* CH+ */
[ 0x0b ] = KEY_UP, /* CH+ */
[ 0x15 ] = KEY_DOWN, /* CH- */
[ 0x14 ] = KEY_H, /* OSD */
[ 0x13 ] = KEY_MUTE, /* Mute */
[ 0x0f ] = KEY_BACKSPACE, /* Prev */
[ 0x0e ] = KEY_STOP, /* Stop */
[ 0x1f ] = KEY_PLAY, /* Play */
[ 0x1e ] = KEY_PAUSE, /* Pause */
[ 0x1d ] = KEY_RECORD, /* Record */
[ 0x1a ] = KEY_F7, /* Next */
[ 0x0f ] = KEY_A, /* */
[ 0x1b ] = KEY_F5, /* Time Shift */
[ 0x19 ] = KEY_S, /* Snapshot */
[ 0x0f ] = KEY_F6, /* Prev */
[ 0x0d ] = KEY_E, /* Stereo */
[ 0x11 ] = KEY_I /* Source */
};

EXPORT_SYMBOL_GPL(ir_codes_pixelview);

luego en la raiz del kernel ejecutamos nuevamente:

make && make modules_install y listo.

Eso fue todo.

Ya pueden usar su placa con cualquier programa de captura de video, pueden usar Tvtime, ya que sabemos que detecto los canales.

D.

Un poco de ayuda de:

http://www.linuxforums.org/forum/peripherals-hardware/91984-remote-controller-bt878-kozumi-ktv-01c.html

haciendo que nuestra pc hable con espeakc

espeak es un software sintetizador de voz con el podemos hacer cosas muy interesantes, para instalarlo en fedora tendremos que ejecutar:

yum install espeak

Una vez instalado podemos hacer cosas divertidas como contar botellas de cerveza:

echo {1..199}" bottles of beer on the wall, cold bottle of beer, take one down, pass it around, one less bottle of beer on the wall,, " | espeak -v english -s 140

Contar elefantes:

echo {1..199}" elefantes se balanceaban sobre la tela de una araña, como veían que rustían fueron a buscar a otro elefante,, " | espeak -v spanish -s 140

Nos lea una frase de la fortuna:

fortune | espeak -v english -s 140

Podemos hacer por ejemplo que espeak nos lea los logs:

tail -f -n1 /var/log/messages | espeak -v english -s 150

También jugando con awk, podemos por ejemplo filtrar el log de irssi, para que espeak interprete todas las lineas que alguien en el IRC escribe:

tail -n 1 -f #channel.log | awk -F '>' '/nick_a_interpretar>/{print $2 | "tee file"}' &
tail -f -n1 file | espeak -v spanish

basándose en estos ejemplos hay un gran numero de cosas que se pueden hacer. Enjoy!

obtener la temperatura de Buenos Aires desde la linea de comandos

Con este comando podemos obtener la temperatura de Buenos Aires desde la linea de comandos de cualquier *nix conectado a internet.

echo "Temperatura $(curl -s "http://www.google.com/ig/api?weather=Buenos%20Aires" | sed 's|.*<temp_c data="([^"]*)"/>.*|1|') grados en Buenos Aires

desarmando el comando de la salida de

curl -s "http://www.google.com/ig/api?weather=Buenos%20Aires"

Obtenemos el siguiente XML:

<xml_api_reply version="1">

<weather module_id="0" tab_id="0" mobile_row="0" mobile_zipped="1" row="0" section="0">

<forecast_information>
<city data="Buenos Aires"/>
<postal_code data="Buenos Aires"/>
<latitude_e6 data=""/>
<longitude_e6 data=""/>
<forecast_date data="2010-02-12"/>
<current_date_time data="2010-02-12 20:00:00 +0000"/>
<unit_system data="US"/>
</forecast_information>

<current_conditions>
<condition data="Clear"/>
<temp_f data="88"/>
<temp_c data="31"/>
<humidity data="Humidity: 52%"/>
<icon data="/ig/images/weather/sunny.gif"/>
<wind_condition data="Wind: NE at 8 mph"/>
</current_conditions>

<forecast_conditions>
<day_of_week data="Fri"/>
<low data="64"/>
<high data="86"/>
<icon data="/ig/images/weather/sunny.gif"/>
<condition data="Clear"/>
</forecast_conditions>

<forecast_conditions>
<day_of_week data="Sat"/>
<low data="60"/>
<high data="87"/>
<icon data="/ig/images/weather/sunny.gif"/>
<condition data="Clear"/>
</forecast_conditions>

<forecast_conditions>
<day_of_week data="Sun"/>
<low data="57"/>
<high data="73"/>
<icon data="/ig/images/weather/chance_of_rain.gif"/>
<condition data="Chance of Rain"/>
</forecast_conditions>

<forecast_conditions>
<day_of_week data="Mon"/>
<low data="57"/>
<high data="73"/>
<icon data="/ig/images/weather/chance_of_rain.gif"/>
<condition data="Chance of Rain"/>
</forecast_conditions>
</weather>
</xml_api_reply>

Para este caso lo que buscamos es esta parte,

<temp_c data="31"/>

$ curl -s "http://www.google.com/ig/api?weather=Buenos%20Aires" | sed 's|.*<temp_c data="([^"]*)"/>.*|1|'
31

el sed nos sirve para limpiar de ahi solamente el 31, y finalmente el echo arma la frase mas linda.

 

$ echo "Temperatura $(curl -s "http://www.google.com/ig/api?weather=Buenos%20Aires" | sed 's|.*<temp_c data="([^"]*)"/>.*|1|') grados en Buenos Aires"
Temperatura 31 grados en Buenos Aires

 

 

mixxx 1.7.1 y una mirada a mixxx 1.8.0

la version 1.7.1 de mixxx es una version para corregir bugs (bugfix) y soluciona los siguientes problemas:
  • Soluciona un leak de memoria que impactaba en la performance en sets largos
  • Al escuchar el main con el auricular ahora toma el balance del master en los efectos
  • Arregla un issue con el contralador Hercules Dj Control MP3
  • Algunas mejores para la Stanton SCS 3d y mejoras para la SCS 1m

Ahora la gente de mixxx esta trabajando en la version 1.8.0 que traera la opcion de looping. Pueden mirar la screenshot de abajo para observar los controles de loop agregados al skin:

Mística del Hardware ¿Donde fuiste a parar?

Hace un tiempo escuche un dialogo en la facultad mientras esperaba que un profesor llegara a dar su cátedra, los participantes eran una chica de unos aproximadamente 30 años y un jovencito de unos 20, decían lo siguiente:
Chico: -En mi Pentium 2 del año del “………” no me anda el disco que me prestaste. Lo quiero poner como esclavo o master y no anda.
Chica: -Ese disco tenia un problema, probaste poniéndolo en cable select?.
Chico: -En que??
La charla siguió con la chica explicándole donde iba el jumper sumado a una breve introducción a lo que significaba cable select.
A la semana siguiente escuche en la misma situación pero esperando otro profesor también escuche esto:
Chico 1(18/19 años aprox.): -En mi Pentium 3 de hace 50 años no anda nada, es re lenta.
Chico 2(25 años aprox.): -La overclockeaste??
Chico 1: -Naah!, es un quilombo, hay que tocar unos jumpers y no se que mas.
Los diálogos expuestos causaron varias reacciones en mi, la primera y más shockeante, es que me sentí viejo, tengo 24 años pero tengo la  bendicion de tener computadora desde los 8 y me recuerdo jugando al Shinobi en CGA(4 colores) y empiezo a buscarme las canas, y por otro lado, me di cuenta cuanto se perdió de aquella mística de los fierros.
La informática cambió mucho a través de los años, ahora tenemos más programadores y se olvidaron un poco de los fierros “baratos” que tienen en sus escritorios, y si no, tenemos los “Modders” empedernidos que gastan fortunas en sistemas de refrigeración por agua o inventan recipientes para hidrogeno liquido sobre el microprocesador. Pero asi como se dice que la clase media esta desapareciendo, también desaparecieron los tierreros clásicos, (aquellos como yo), que intentaban lo imposible para que su precaria maquina corriera programas y juegos que obviamente no debían funcionar ahí, o quizas, pasarse un rato haciendo cuentitas con el multiplicador del Mother para ver si podía llegar a los 150Mhz!!!! Sin quemar el micro. Ahora es todo mas “maricotas”, voy al setup, pongo en Overclocking profile y le doy un 10% más, si arranca, ya soy overclocker!!!, si no arranca, voy y compro 4 Coolers(Ventiladores) y un Blower(Extractor), lo pongo con 4 tornillitos que ya vienen y Soy Overclocker!!!, (sin contar que los lugares donde ponemos esos ventilados y blowers ya están indicados por el fabricante del gabinete). Hace más de 10 años todo era más lindo, más complicado, pero lindo, había jumpers, los “ventiladores” se conseguían en las casa de electrónica y seguro eran de alguna fuente vieja o potencia para autos, el espacio dentro de los gabintes no era el mismo de ahora, los disco median el doble de alto, lo tornillos había que pedirlos en alguna casa de computación amiga, las fuentes de 300 watt se quemaban cada 2 dias y había que puentear el fusible, los monitores con el tiempo se ponían con tonalidad violeta o verde y había que aplicarles un GTA(Golpe tecnico aprobado), las placas de sonido eran un dolor de cabeza para su configuración, las compacteras también necesitaban drivers, los Mouse con bolita eran un adorno para los “Giles” que usaban Windows 3.11, linux recien el pañales, las placas de video también tenían sus complicaciones de configuración, las placas SCSI eran inconseguibles si no te venían con algún dispositivo, los cables de datos del disco aparte de juntar mugre nos robaban varios minutos tratando de conectarlos en lugares inconcebibles, las disqueteras siempre se rompian, etc, etc, etc……..
Algunas personas pensará que es lo que extraño de todo esto, pero si lo hubieran vivido desde la época que yo junto a Mati, dueño de este blog, nos iniciamos en la computación lo entenderían, y muchos de los que ahora te atienden en una casa de computación, en una casa de electrodomésticos o en la facultad, nunca vivieron eso. Con Mati armamos un K6 II sin gabinete con el mother arriba de 4 botellas de cerveza y la fuente en una silla al lado con un disco rigido de 4.3 GB y la pusimos en red con otra maquina para jugar al Quake en Red y funcionó, y ahora resulta que necesitamos gabinetes Modeados para ponerle todo adentro, Por favor!!!! Volvamos a las raices!!!.
En síntesis, no me disgustan todos los avances que hubo, porque tambien soy un “Gamer” y me gusta que los juegos tengan cada vez más definición, pero si me preguntan si prefiero los juegos y el Hard de punta o volver a esos años glorios, digamos del ´94 al ´98, les juro que me quedo pensando.


mixxx beatmix better

Mixxx, es un soft libre para hacer mezclas profesionales. Es multiplataforma, esta disponible para Windows 32/64, Mac, y linux. Se puede descargar una version anterior desde el repo de fedora (1.6.1), o bien puede descargarse el codigo fuente del sitio web de mixxx , y compilarlo usted mismo!
Estos son sus features:
  • Parallel waveform displays
  • Waveform summaries
  • MP3, OGG, WAVE, and FLAC playback
  • Pitch-independent time stretch (key lock)
  • Vinyl emulation
  • Wave recording
  • Free, open source software
  • BPM detection and estimation
  • Supported MIDI controllers
  • Multichannel soundcard support (playback and capture)
  • Multiple soundcard support
  • Cross-platform (Windows XP and Vista, Mac OS X, Linux)
  • Adjustable EQ shelves
  • Crossfader curve control
  • Skinnable interface with extra skins bundled
  • Advanced MIDI scripting engine
  • Adjustable pitch range
  • Multi-core CPU support
  • 24-bit/96000 Hz playback and capture
  • Crystal clear audio
  • Hardware video acceleration
  • Vinyl control support

Yo estoy probando la nueva version (1.7.1) que todavia no se encuentra para descargar directamente. Les aviso cuando este!