29 diciembre 2007

Hauppauge HVR900 en slackware 12

Descargamos el paquete mercurial:

http://packages.slackware.it/package.php?q=current/mercurial-0.9.4-i486-1

Despues descargamos el firmware para esta tarjeta

%cd /lib/firmware
%wget http://konstantin.filtschew.de/v4l-firmware/firmware_v3.tgz
%sudo tar xvzf firmware_v3.tgz


Despues vamos a necesitar el modulo dvb

hg clone http://mcentral.de/hg/~mrec/v4l-dvb-experimental

Para instalarlo:

%make && make install

Despues creamos este archivo en /etc/modprobe.d

%pico /etc/modprobe.d/hvr900


# Hauppage WinTV HVR 900 hybrid TV stick

# modo TDT
options em28xx device_mode=1

#Otra opcion sería
##install em28xx /sbin/modprobe --ignore-install em28xx; /bin/sleep 2; /sbin/modprobe em2880-dvb

# Dependencia de módulos
alias hvr900 em2880_dvb


Despues pinchamos el usb tv y hacemos un dmesg

si va todo bien vereis algo asi:

Linux video capture interface: v2.00
em28xx v4l2 driver version 0.0.1 loaded
em28xx new video device (2040:6502): interface 0, class 255
em28xx: device is attached to a USB 2.0 bus
em28xx: you're using the experimental/unstable tree from mcentral.de
em28xx: there's also a stable tree available but which is limited to
em28xx: linux <=2.6.19.2 em28xx: it's fine to use this driver but keep in mind that it will move em28xx: to http://mcentral.de/hg/~mrec/v4l-dvb-kernel as soon as it's em28xx: proved to be stable em28xx #0: Alternate settings: 8 em28xx #0: Alternate setting 0, max size= 0 em28xx #0: Alternate setting 1, max size= 0 em28xx #0: Alternate setting 2, max size= 1448 em28xx #0: Alternate setting 3, max size= 2048 em28xx #0: Alternate setting 4, max size= 2304 em28xx #0: Alternate setting 5, max size= 2580 em28xx #0: Alternate setting 6, max size= 2892 em28xx #0: Alternate setting 7, max size= 3072 attach_inform: eeprom detected. em28xx #0: i2c eeprom 00: 1a eb 67 95 40 20 02 65 d0 12 5c 03 82 1e 6a 18 em28xx #0: i2c eeprom 10: 00 00 24 57 66 07 01 00 00 00 00 00 00 00 00 00 em28xx #0: i2c eeprom 20: 46 00 01 00 f0 10 02 00 b8 00 00 00 5b e0 00 00 em28xx #0: i2c eeprom 30: 00 00 20 40 20 6e 02 20 10 01 01 01 00 00 00 00 em28xx #0: i2c eeprom 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 em28xx #0: i2c eeprom 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 em28xx #0: i2c eeprom 60: 00 00 00 00 00 00 00 00 00 00 18 03 34 00 30 00 em28xx #0: i2c eeprom 70: 32 00 38 00 35 00 33 00 38 00 31 00 36 00 34 00 em28xx #0: i2c eeprom 80: 00 00 1e 03 57 00 69 00 6e 00 54 00 56 00 20 00 em28xx #0: i2c eeprom 90: 48 00 56 00 52 00 2d 00 39 00 30 00 30 00 00 00 em28xx #0: i2c eeprom a0: 84 12 00 00 05 50 1a 7f d4 78 23 fa fd d0 28 89 em28xx #0: i2c eeprom b0: ff 00 00 00 04 84 0a 00 01 01 20 77 00 40 34 9d em28xx #0: i2c eeprom c0: 1e f0 74 02 01 00 01 79 5b 00 00 00 00 00 00 00 em28xx #0: i2c eeprom d0: 84 12 00 00 05 50 1a 7f d4 78 23 fa fd d0 28 89 em28xx #0: i2c eeprom e0: ff 00 00 00 04 84 0a 00 01 01 20 77 00 40 34 9d em28xx #0: i2c eeprom f0: 1e f0 74 02 01 00 01 79 5b 00 00 00 00 00 00 00 EEPROM ID= 0x9567eb1a Vendor/Product ID= 2040:6502 AC97 audio (5 sample rates) 500mA max power Table at 0x24, strings=0x1e82, 0x186a, 0x0000 tveeprom 4-0050: Hauppauge model 65018, rev B2C0, serial# 2006324 tveeprom 4-0050: tuner model is Xceive XC3028 (idx 120, type 71) tveeprom 4-0050: TV standards PAL(B/G) PAL(I) PAL(D/D1/K) ATSC/DVB Digital (eeprom 0xd4) tveeprom 4-0050: audio processor is None (idx 0) tveeprom 4-0050: has radio setting new tuner type now 71! tuner 4-0061: chip found @ 0xc2 (em28xx #0) attach inform (default): detected I2C address c2 /root/v4l-dvb-experimental/v4l/tuner-core.c: setting tuner callback tuner 0x61: Configuration acknowledged /root/v4l-dvb-experimental/v4l/tuner-core.c: setting tuner callback /root/v4l-dvb-experimental/v4l/xc3028-tuner.c: attach request! /root/v4l-dvb-experimental/v4l/tuner-core.c: xc3028 tuner successfully loaded attach_inform: tvp5150 detected. tvp5150 4-005c: tvp5150am1 detected. Loading base firmware: xc3028_init0.i2c.fw Loading default analogue TV settings: xc3028_BG_PAL_A2_A.i2c.fw xc3028-tuner.c: firmware 2.7 ANALOG TV REQUEST em28xx #0: V4L2 VBI device registered as /dev/vbi0 em28xx #0: V4L2 device registered as /dev/video0 em28xx #0: Found Hauppauge WinTV HVR Rev. 1.2 usbcore: registered new interface driver em28xx em28xx-audio.c: probing for em28x1 non standard usbaudio em28xx-audio.c: Copyright (C) 2006 Markus Rechberger Em28xx: Initialized (Em28xx Audio Extension) extension usb 3-1: new low speed USB device using uhci_hcd and address 2 usb 3-1: configuration #1 chosen from 1 choice input: USB Mouse as /class/input/input7 input: USB HID v1.10 Mouse [USB Mouse ] on usb-0000:00:1a.0-1


Si teneis problemas con el sonido probad con este scripts:

#!/bin/sh
/usr/bin/tvtime &
/bin/sleep 3
#/usr/bin/sox -r 48000 -w -c 2 -t ossdsp /dev/dsp1 -t ossdsp /dev/dsp
/usr/bin/sox -r 11000 -w -c 2 -t ossdsp /dev/dsp1 -t ossdsp /dev/dsp
#/usr/bin/sox -r 22000 -w -c 2 -t ossdsp /dev/dsp1 -t ossdsp /dev/dsp


Información sacada de:

Manual ubuntu
http://caligari.treboada.net/ubuntu_tdt

Página del producto:
http://www.hauppauge.co.uk/pages/products/data_hvr900.html

Driver Em2880 en V4Lwiki:
http://www.linuxtv.org/v4lwiki/index.php/Em2880

FAQ sobre Em2880:
http://linuxtv.org/v4lwiki/index.php/Talk:Em2880

Información en inglés:
http://lunapark6.com/usb-hdtv-tuner-stick-for-windows-linux-hauppauge-wintv-hvr-950.html

Chicony USB 2.0 Camera

Bajamos este driver

%svn checkout svn://svn.berlios.de/linux-uvc/linux-uvc/trunk


%make && make install

%modprobe uvcvideo


y ya tenemos webcam

Control de bateria

Con el kernel 2.6.21.5-smp

Cargar los siguientes modulos

%modprobe battery
%modprobe ac
%modprobe processor


Para que los cargue siempre metemos estas lineas en /etc/rc.d/rc.local o para tenerlo todo en su sitio en /etc/rc.d/rc.modules.

Y desde kcontrol, en el apartado bateria, configuramos los parametros para optimizar el rendimiento, consumo, estado de bateria baja, critica, etc.

Modificado con el comentario de DoomGLN, gracias por el apunte.

Bootsplash en slackware 12

Bajamos de www.bootsplash.org el siguiente parche bootsplash-3.1.6-2.6.21.diff

Ahora introducimos el parche en el kernel de la siguiente manera:

%cd /usr/src/linux-2.6.21-15
%patch -p1 < $home/bootsplash-3.1.6-2.6.21.diff


Despues vamos al kernel a ver si se ha introducido bien y lo cargamos de la siguiente manera:

%make menuconfig

********************
Device Drivers ->
Graphics Support
Logo configuration
[ ] Bootup logo
Bootsplash configuration
[*] Bootup splash screen
********************

Seleccionamos el tipo de partición del kernel para que no tengamos problemas al arrancar, asi que vamos

y selecionamos la que tengamos en mi caso reiserfs

****************
File System ->
[*]reiserfs
****************

Una vez selecionado el nuevo modulo lo instalamos de la siguiente manera

%make && make modules install

%cp /usr/src/linux-2.6.21-15/arch/i386/boot/bzImage /boot/bzImage_2.6.21-15-bs
%mv /boot/System.map /boot/System.map.old
%cp /usr/src/linux-2.6.21-15/System.map /boot/System_2.6.21-15-bs.map


%ln -s /boot/bzImage_2.6.21-15-bs /boot/vmlinuz
%ln -s /boot/System_2.6.21-15-bs.map /boot/System.map


Para poder instalar un tema necesitamos tener instado el paquete bootsplash.

%wget http://ftp.scarlet.be/pub/linuxpackages/Slackware-12.0/Console/Bootsplash/bootsplash-12.0-i486-1kta.tgz

Despues creamos archivo de configuración de bootsplash para que nos reconozca el theme y en el lilo añadimos lo siguiente:

%splash -s -f /etc/bootsplash/themes/SlackwareLinux/config/bootsplash-1024x768.cfg > /boot/initrd.splash

# Linux bootable partition config begins
image = /boot/vmlinuz
initrd = /boot/initrd.splash
append = "splash=silent "
root = /dev/sda4
label = slackbs
read-only
# Linux bootable partition config ends

Despues ejecutamos comando lilo para escribir en el mbr:

%lilo

Añadimos al final del script rc.S para la cargar de la imagen en todas nuestras tty's:

splash -n -s -u 1 /etc/bootsplash/themes/SlackwareLinux/config/bootsplash-1024x768.cfg
splash -n -s -u 2 /etc/bootsplash/themes/SlackwareLinux/config/bootsplash-1024x768.cfg
splash -n -s -u 3 /etc/bootsplash/themes/SlackwareLinux/config/bootsplash-1024x768.cfg
splash -n -s -u 4 /etc/bootsplash/themes/SlackwareLinux/config/bootsplash-1024x768.cfg
splash -n -s -u 5 /etc/bootsplash/themes/SlackwareLinux/config/bootsplash-1024x768.cfg
splash -n -s -u 6 /etc/bootsplash/themes/SlackwareLinux/config/bootsplash-1024x768.cfg


(Podemos poner imagenes distintas en cada terminal)

con poner splash tendria que valer, porque normalmente esa variable se
incluye en el $PATH, si no valiera, recordad que el comando splash esta
en /sbin/splash

para que la barra de progreso aumente segun vaya inicializandose el sistema:

añadimos . /etc/rc.d/rc.bootsplash al inicio de los siguientes scripts:

rc.S (debajo del "PATH")
rc.M
rc.local

y a medida que avanza el script añadimos:

progressbar XX

donde XX es un numero entre 0 y 100 que marca el porcentaje de la barra, cuantos mas progressbar añadamos menos tirones dará la barra.

Si además queremos que la barra se decremente al apagar el equipo, debemos añadir la lineas anteriores al rc.6, pero los numeros en decreciente.

Nota: Si añadimos imágenes a nuestras tty's, la barra de decremento cuando apagamos slackware no saldrá.

y finalmente reiniciamos:

%reboot

Sonido con Intel Corporation 82801H (ICH8 Family)

Descargamos el parche realtek12.tar.gz del siguiente enlace:

https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3104

Para poder acceder a la página de bugtrack es necesario tener una cuenta, en cuyo caso es gratuita.

Despues vamos a alsa-project.org y descargamos el driver stable de alsa-driver, en este caso alsa-driver-1.0.4

%tar xvf alsa-driver-1.0.4.tar.gz

Copiamos el contenido del parche realtek12.tar.gz en la siguiente carpeta alsa-driver-1.0.14/pci/hda

%./configure
%make
%make install

añadimos en estos archivos

/etc/modprobe.d/alsa-base

la siguiente linea

options snd-hda-intel model=toshiba

Reiniciamos y Zass!!! sonido por fin.

Otra forma de solucionarlo es instalar alsa-driver-1.0.15 y crear el archivo alsa-base dentro de la carpeta /etc/modprobe.d con la siguiente información dentro.

alsa-base

#options snd-hda-intel model=laptop-eapd
options snd-hda-intel model=toshiba
#options snd-hda-intel model=lg
# autoloader aliases
install sound-slot-0 /sbin/modprobe snd-card-0
install sound-slot-1 /sbin/modprobe snd-card-1
install sound-slot-2 /sbin/modprobe snd-card-2
install sound-slot-3 /sbin/modprobe snd-card-3
install sound-slot-4 /sbin/modprobe snd-card-4
install sound-slot-5 /sbin/modprobe snd-card-5
install sound-slot-6 /sbin/modprobe snd-card-6
install sound-slot-7 /sbin/modprobe snd-card-7

# Cause optional modules to be loaded above generic modules
install snd /sbin/modprobe --ignore-install snd && { /sbin/modprobe --quiet snd-ioctl32 ; : ; }
install snd-pcm /sbin/modprobe --ignore-install snd-pcm && { /sbin/modprobe --quiet snd-pcm-oss ; : ; }
install snd-mixer /sbin/modprobe --ignore-install snd-mixer && { /sbin/modprobe --quiet snd-mixer-oss ; : ; }
install snd-seq /sbin/modprobe --ignore-install snd-seq && { /sbin/modprobe --quiet snd-seq-midi ; /sbin/modprobe --quiet snd-seq-oss ; : ; }
install snd-rawmidi /sbin/modprobe --ignore-install snd-rawmidi && { /sbin/modprobe --quiet snd-seq-midi ; : ; }
# Cause optional modules to be loaded above sound card driver modules
install snd-emu10k1 /sbin/modprobe --ignore-install snd-emu10k1 $CMDLINE_OPTS && { /sbin/modprobe -Qb snd-emu10k1-synth ; }
install snd-via82xx /sbin/modprobe --ignore-install snd-via82xx $CMDLINE_OPTS && { /sbin/modprobe -Qb snd-seq ; }

# Load saa7134-alsa instead of saa7134 (which gets dragged in by it anyway)
install saa7134 /sbin/modprobe --ignore-install saa7134 $CMDLINE_OPTS && { /sbin/modprobe -Qb saa7134-alsa ; : ; }

# Load snd-seq for devices that don't have hardware midi;
# Ubuntu #26283, #43682, #56005; works around Ubuntu #34831 for
# non-Creative Labs PCI hardware
install snd /sbin/modprobe --ignore-install snd && { /sbin/modprobe -Qb snd-seq ; }
# Prevent abnormal drivers from grabbing index 0
options snd-bt87x index=-2
options snd-cx88_alsa index=-2
options saa7134-alsa index=-2
options snd-atiixp-modem index=-2
options snd-intel8x0m index=-2
options snd-via82xx-modem index=-2
options snd-usb-audio index=-2
options snd-usb-usx2y index=-2
options snd-usb-caiaq index=-2
# Ubuntu #62691, enable MPU for snd-cmipci
options snd-cmipci mpu_port=0x330 fm_port=0x388
#options snd-hda-intel model=Realtek ID 268
options snd-hda-intel model=laptop-eapd

Intel wireless 4965 abgn

Necesitamos los siguites paquetes que los descargamos desde aqui:


% wget \
http://intellinuxwireless.org/mac80211/downloads/mac80211-10.0.3.tgz
% wget \
http://intellinuxwireless.org/iwlwifi/downloads/iwlwifi-4965-ucode-4.44.1.20.tgz
% wget \
http://intellinuxwireless.org/iwlwifi/downloads/iwlwifi-1.2.23.tgz

Ahora procedemos a instalar mac80211-10.0.3.

Descomprimimos y acedemos a la carpeta:

% tar xvf mac80211-10.0.3.tgz
% cd mac80211-10.0.3
% make
% make patch_kernel


Con esto compilamos el paquete y parcheamos el kernel.

Despues nos desplazamos a la carpeta de los modulos del kernel:

% cd /lib/modules/$(uname -r)/build
% make menuconfig

Y cargamos este modulo:

Networking --->
Generic IEEE 802.11 Networking Stack (mac80211) (NEW)

Una vez hecho esto, salimos del menu del kernel e instalamos los modulos:

% make modules modules_install

Cuando acabe reiniciamos la Slackware...

Al volver a iniciar cargamos el modulo que acabamos de instalar

% modprobe mac80211

Si no sale ningun error es que todo va bien, digamos que este paso es el mas conflictivo, ya que si esto no sale bien no podemos continuar con lo siguiente.

Ahora continuamos con los otros paquetes.

Descomprimimos iwlwifi-4965-ucode-4.44.20 y copiamos el paquete dentro de la carpeta /lib/firmware

% tar xvf iwlwifi-4965-ucode-4.44.20.tgz
% cp iwlwifi-4965-ucode-4.44.20/iwlwifi-4965.ucode /lib/firmware/

Y para finalizar vamos a por el ultimo paquete, que descomprimimos e instalamos:

% tar xvf iwlwifi-1.1.23.tgz
% cd iwlwifi-1.1.23
% make
% make install

Ya esta todo instalado.

Ahora procedemos a cargar el modulo

%./load

También se puede hacer de esta otra manera

% dmesg -c > /dev/null
% ./load debug=0x43fff
Comprueba que se ha cargado bien sin errores en el kernel.
% dmesg -c
Activamos la tarjeta wireless
% ifconfig wlan0 up

y con el programa wireless assistant procedemos a conectarnos a la red.