Post on 13-Aug-2015
Embedded MediaCenter
MythTV frontend on an IGEPv2
Marco Bonezzi
mbonezzi@gmail.com
Índice
Instalar Debian en IGEPv2
• Instalación de cross compiler
• Obtener kernel-source para igep
• Cross-compile del kernel para la placa
• Instalación de Debian
• Boot desde MicroSD
• Configuración de Xorg
• Instalación de firmware wifi y configuración
Instalación y configuración de MythTV
• Compilación
• Instalación de paquetes
• Configuración
Instalación Debian en IGEPv2
● Instalación de entorno para Cross Compiler
– VM con VirtualBox y Ubuntu 10.04
– Repositorio Debian Embedded
● deb http://www.emdebian.org/debian/ lenny main
– Instalación de paquetes necesarios para cross-compile
● apt-get install gcc-4.3-arm-linux-gnueabi● apt-get install uboot-envtools uboot-mkimage
Cross compile del kernel
● Descarga de kernel-source para IGEPv2
$wget http://www.downloads.igep.es/sources/linux-omap-2.6.33.tar.gz
● Cross compile de kernel y módulos
$tar xzf linux-omap-2.6.33.tar.gz
$cd linux-omap-2.6.33
$make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- igep0020_defconfig
$make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- uImage modules
$make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- modules_installINSTALL_MOD_PATH=/home/marco/ARM_modules
Instalación de Debian
● Creación de particiones MicroSD (8Gb)
– FAT32 → 100 Mb (boot)
– Ext3 → 7.9 Gb (rootfs)
● Preparación del instalador de Debian
mkdir debian_installer (boot)
cp $linux-kernel-source/arch/arm/boot/uImage debian_installer/uImage
wget -O - http://ftp.se.debian.org/debian/dists/lenny/main/installer-armel/current/images/versatile/netboot/initrd.gz | gunzip > debian_installer/initrd
dd if=debian_installer/initrd of=debian_installer/initrd.pad ibs=8388608 conv=sync
Instalación de Debian
● Creación boot.ini
● boot.ini.src:
# Set bootargs for debian uSD boot
setenv bootcmd 'mmc init; fatload mmc 0:1 0x80300000 debian_installer/uImage; fatload mmc 0:1 0x81600000debian_installer/initrd.pad; bootm 0x80300000'
# Set Linux kernel boot arguments
# Install UI thru SerialConsolle
# setenv bootargs 'mem=512M console=ttyS2,115200n8 omapfb.mode=dvi:1024x768MR-16@60ramdisk_size=8192 root=/dev/ram0 rw initrd=0x81600000,8M '
# Install UI thru Display (USB Keyboard)
setenv bootargs 'mem=512M console=ttyS2,115200n8 console=tty0 omapfb.mode=dvi:1024x768MR-16@60ramdisk_size=8192 root=/dev/ram0 rw initrd=0x81600000,8M '
# Boot
Boot
● Build boot.ini
$mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "Debian" -ddebian_installer/boot.ini.src boot.ini
Instalación de Debian● Debian Installer desde microSD
● Boot de Debian desde microSD
mkdir debian_boot
cp $linux-kernel-source/arch/arm/boot/uImage debian_boot/uImage
boot.ini:
# Set bootargs for debian MMC boot
setenv bootcmd 'mmc init; fatload mmc 0:1 0x80300000 debian_boot/uImage; bootm 0x80300000'
setenv bootargs 'mem=512M console=ttyS2,115200n8 console=tty0 omapfb.mode=dvi:1024x768MR-16@60 root=/dev/mmcblk0p2 rw rootwait'
boot
● Build boot.ini
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "Debian" -d debian_boot/boot.ini.src boot.ini
Configuración de Debian● Creación de usuarios
● Instalación de paquetes
– Xorg, XFCE, slim, etc
● Configuración Xorg
– /etc/X11/xorg.conf
– xserver-xorg-video-omap3_0.1.1-2-x2_armel.deb (omapfb neonaccelerated driver)
Section "Device"
Identifier "Configured Video Device"
Driver "omapfb"
Option "fb" "/dev/fb0"
EndSection
Configuración de Debian● Configuración wireless
– firmware: 9.70.3p24
– dmesg:
mmc1: new SDIO card at address 000/lib/modules/1
– insmod /lib/modules/2.6.33.2/kernel/drivers/net/wireless/libertas/libertas.ko
● aptitude install wpasupplicant
● chmod 0600 /etc/network/interfaces
auto wlan0
iface wlan0 inet dhcp
wpa-ssid mynetworkname
wpa-psk mysecretpassphrase
Instalación MythTV● Compilación desde cero:
● ./configure --compile-type=release --cpu=armv7-a --enable-neon --extra-cflags='-mfpu=neon -mfloat-abi=softfp' --extra-cxxflags='-mfpu=neon -mfloat-abi=softfp' --prefix=/opt/mythtv --disable-distcc --disable-ffmpeg-pthreads --disable-v4l --disable-joystick-menu –without-bindings=perl,python
● make -j4
● Instalacíon librerias necesarias (Qt4)
● apt-get install libqt4-assistant libqt4-core libqt4-dbg libqt4-dbus libqt4-designer libqt4-dev libqt4-gui libqt4-helplibqt4-network libqt4-opengl libqt4-opengl-dev libqt4-qt3support libqt4-script libqt4-sql libqt4-sql-mysql libqt4-sql-odbc libqt4-sql-psql libqt4-sql-sqlite libqt4-sql-sqlite2 libqt4-svg libqt4-test libqt4-webkit libqt4-webkit-dbglibqt4-xml libqt4-xmlpatterns libqt4-xmlpatterns-dbg libqtcore4 libqtgui4 qt4-demos qt4-designer qt4-dev-toolsqt4-doc qt4-doc-html qt4-qtconfig
● Repositorio Debian Multimedia
● deb-src http://www.debian-multimedia.org lenny main
● deb http://www.debian-multimedia.org lenny main
● Instalación de paquetes mythtv
● apt-get install mythtv-frontend
● apt-get install mythbrowser mythgallery mythmusic mythnews mythplugins mythtv-themes mythvideomythweather
Configuración MythTV
● Arranque de mysqld y mythbackend en servidor
● Configuración del backend con mythtv-setup
● Configuración para acceso remoto por mysqld (/etc/hosts.allow)
● Configuración del frontend para conexión a backend (192.168.0.11)
● Configuración del frontend para arranque automático
● /etc/inittab:
– # The default runlevel.
– id:5:initdefault:
– x:5:respawn:su - mythtv -c startx
● /home/mythtv/.xinitrc
– mythfrontend
Embedded Media Center
● Estado Actual:
● Reproducción de videos
● Reproducción de música
● Visualización de fotos
● Navegador Web
● Centro de información (Noticias, Tiempo, etc)
● Posibles mejoras
● Configuración para utilizar con mando a distancia (Wii)
● Mejora en el rendimiento (DSP, Neon, OpenGL)
● Reducir Tiempo de arranque (WakeOnLan)
● Nuevas funciones: juegos (emuladores y roms), información de películas, videosWeb
● Conexión por wifi
● Sugerencias ??