martes, 20 de abril de 2010

Aplicaciones Indispensables: De uso habitual

En esta entrada iré recopilando y actualizando las aplicaciones para Windows, Mac OS X y Linux que me parecen indispensables en el uso habitual de un ordenador:

7-Zip
(LGPL, Windows)
Utilidad para la compresión/descompresión de ficheros. Muy rápido y efectivo.

Notepad++
(GPL, Windows)
Editor de texto multiproposito que nos permite visualizar y editar cualquier fichero de texto. Incluye sintaxis coloreada para los principales lenguajes de programación.

Cygwin
(GPL, Windows)
Proporciona un entorno con las herramientas de Unix/Linux dentor de Windows.

Ditto
(GPL, Windows)
Permite tener un portapapeles múltiple en Windows. Con él podremos tener un historial de los elementos que hemos copiado para pegarlos en cualquier momento.

VirtuaWin
(GPL, Windows)
Aplicación que permite organizar las aplicaciones abiertas por múltiples escritorios.

CCLeaner
(Free, Windows)
Permite limpiar los sistemas Windows para hacerlos más rápidos y seguros.

PDFCreator
(GPL, Windows)
Permite generar ficheros PDF desde cualquier programa que permita imprimir.

Process Explorer
(Free, Windows)
Proporciona información muy detallada de los procesos en ejecución. Por ejemplo, permite buscar que proceso tiene abierto un fichero o cargada una DLL. También permite ver los puertos de comunicaciones abiertos por cada proceso. Proporciona también información detallada de la línea de ejecución de cada proceso.

KeePassX
(GPL, Linux/Unix, Windows, MacOSX)
Permite mantener contraseñas y otra información confidencial en una única base de datos protegida con una única contraseña. Utiliza un formato de fichero que puede ser compartido con las versiones para Android o iPhone, con lo que puedes compartir el fichero de claves cómodamente, incluso con servicios como Dropbox.


viernes, 2 de abril de 2010

Media Center en Debian GNU / Linux



Este pequeño ordenador me permite ver la televisión, grabar de la televisión, reproducir música y vídeos en alta definición, navegar por Internet y jugar a juegos antiguos mediante emuladores como MAME.

El hardware que he usado es el siguiente:
  • Placa base ZOTAC ION ITX F Series de tamaño Mini-ITX
  • Fuente de alimentación Mini-ITX de 80W
  • Caja realizada partir de un pack de regalo de colonias :-)
  • Sintonizador AVerMedia AverTV DVB-T USB 2.0 (A800)

Y el software utilizado es el siguiente:
  • Debian GNU / Linux Squeeze
  • Freevo 1.8.1

Como se puede ver en la siguiente imagen la placa base viene muy completa:


Esta placa obtiene un rendimiento muy bueno teniendo un consumo de energía muy bajo. Además, permite reproducir vídeo en alta definición mediante su salida HDMI.

Anteriormente tuve montada una placa base Via Epia SP800. Esta placa es del 2006 y no tenía salida HDMI. En teoría podía reproducir vídeo en alta definición pero solo con los driver suministrados por Via que eran muy complejos de instalar.

En la siguiente imagen se puede ver el montaje interior del equipo desde la parte superior:


Estos son los pasos en la configuración realizada:

Primero debemos ejecutar el siguiente comando:
dpkg-reconfigure freevo
Y seleccionaremos las siguientes opciones:
Salida de video: x11 Resolución: 1920x1080 Estándar de TV: PAL Lista de canales: Europa (Oeste) Servicios que se ejecutaran: - Servidor de X - Servidor de grabación

A continuación se muestra el contenido de ciertos ficheros de configuración utilizados por Freevo para su correcto funcionamiento:

/etc/freevo/lircrc
begin prog = freevo remote = * button = 1 repeat = 0 config = 1 end begin prog = freevo remote = * button = 2 repeat = 0 config = 2 end begin prog = freevo remote = * button = 3 repeat = 0 config = 3 end begin prog = freevo remote = * button = 4 repeat = 0 config = 4 end begin prog = freevo remote = * button = 5 repeat = 0 config = 5 end begin prog = freevo remote = * button = 6 repeat = 0 config = 6 end begin prog = freevo remote = * button = 7 repeat = 0 config = 7 end begin prog = freevo remote = * button = 8 repeat = 0 config = 8 end begin prog = freevo remote = * button = 9 repeat = 0 config = 9 end begin prog = freevo remote = * button = 0 repeat = 0 config = 0 end begin prog = freevo remote = * button = DISPLAY repeat = 0 config = DISPLAY end begin prog = freevo remote = * button = CH_RTN repeat = 0 config = PREV_CH end begin prog = freevo remote = * button = SNAPSHOT repeat = 0 config = EXIT end begin prog = freevo remote = * button = CH_UP repeat = 0 config = CH+ end begin prog = freevo remote = * button = CH_DOWN repeat = 0 config = CH- end begin prog = freevo remote = * button = VOL_DOWN repeat = 0 config = VOL- end begin prog = freevo remote = * button = VOL_UP repeat = 0 config = VOL+ end begin prog = freevo remote = * button = MUTE repeat = 0 config = MUTE end begin prog = freevo remote = * button = PLAY repeat = 0 config = PLAY end begin prog = freevo remote = * button = STOP repeat = 0 config = STOP end begin prog = freevo remote = * button = PAUSE repeat = 0 config = PAUSE end begin prog = freevo remote = * button = RECORD repeat = 0 config = REC end begin prog = freevo remote = * button = RED repeat = 0 config = REW end begin prog = freevo remote = * button = YELLOW repeat = 0 config = FFWD end begin prog = freevo remote = * button = GREEN repeat = 0 config = CH- end begin prog = freevo remote = * button = BLUE repeat = 0 config = CH+ end begin prog = freevo remote = * button = MENU repeat = 0 config = MENU end

/etc/freevo/local_conf.py
# -*- coding: iso-8859-1 -*- CONFIG_VERSION = 5.27 # ====================================================================== LOCALE='iso-8859-15' # ====================================================================== EVENT_DEVS = ['/dev/ir'] EVENTS['menu']['2'] = Event('MENU_UP') EVENTS['menu']['8'] = Event('MENU_DOWN') EVENTS['menu']['4'] = Event('MENU_LEFT') EVENTS['menu']['6'] = Event('MENU_RIGHT') EVENTS['menu']['5'] = Event('MENU_SELECT') EVENTS['menu']['0'] = Event('MENU_SUBMENU') EVENTS['input']['2'] = Event('MENU_UP') EVENTS['input']['8'] = Event('MENU_DOWN') EVENTS['input']['4'] = Event('MENU_LEFT') EVENTS['input']['6'] = Event('MENU_RIGHT') EVENTS['input']['5'] = Event('MENU_SELECT') EVENTS['input']['0'] = Event('MENU_SUBMENU') EVENTS['tvmenu']['2'] = Event('MENU_UP') EVENTS['tvmenu']['8'] = Event('MENU_DOWN') EVENTS['tvmenu']['4'] = Event('MENU_LEFT') EVENTS['tvmenu']['6'] = Event('MENU_RIGHT') EVENTS['tvmenu']['5'] = Event('MENU_SELECT') EVENTS['tvmenu']['0'] = Event('MENU_SUBMENU') EVENTS['video']['1'] = Event(VIDEO_SEND_MPLAYER_CMD, arg='sub_select') EVENTS['video']['3'] = Event(VIDEO_SEND_MPLAYER_CMD, arg='switch_audio') EVENTS['video']['2'] = Event(VIDEO_SEND_MPLAYER_CMD, arg='panscan +0.1') EVENTS['video']['8'] = Event(VIDEO_SEND_MPLAYER_CMD, arg='panscan -0.1') EVENTS['video']['CH-'] = Event(VIDEO_SEND_MPLAYER_CMD, arg='seek -600') EVENTS['video']['CH+'] = Event(VIDEO_SEND_MPLAYER_CMD, arg='seek +600') EVENTS['dvd']['1'] = Event('VIDEO_NEXT_SUBTITLE') EVENTS['dvd']['3'] = Event('VIDEO_NEXT_AUDIOLANG') EVENTS['dvd']['2'] = Event('DVDNAV_UP') EVENTS['dvd']['8'] = Event('DVDNAV_DOWN') EVENTS['dvd']['4'] = Event('DVDNAV_LEFT') EVENTS['dvd']['6'] = Event('DVDNAV_RIGHT') EVENTS['dvd']['5'] = Event('DVDNAV_SELECT') EVENTS['dvd']['0'] = Event('DVDNAV_SELECT') EVENTS['audio']['CH+'] = Event('PLAYLIST_NEXT') EVENTS['audio']['CH-'] = Event('PLAYLIST_PREV') # ====================================================================== DIRECTORY_SORT_BY_DATE = 2 DIRECTORY_REVERSE_SORT = 0 DIRECTORY_SMART_SORT = 0 DIRECTORY_SMART_NAMES = 0 DIRECTORY_AUTOPLAY_SINGLE_ITEM = 0 DIRECTORY_FORCE_SKIN_LAYOUT = -1 DIRECTORY_AUDIO_FORMAT_STRING = '%(t)s' DIRECTORY_USE_MEDIAID_TAG_NAMES = 1 #DIRECTORY_AUTOPLAY_ITEMS = [] #DIRECTORY_ADD_RANDOM_PLAYLIST = [ 'audio' ] # ====================================================================== plugin.remove('shutdown') #SYS_SHUTDOWN_CONFIRM = 0 #SYS_SHUTDOWN_ENABLE = 1 #SYS_SHUTDOWN_CMD = "sudo shutdown -h now" #SYS_RESTART_CMD = "sudo shutdown -r now" # ====================================================================== VIDEO_PREFERED_PLAYER = 'mplayer' #VIDEO_ONLY_SCAN_DATADIR = 1 #VIDEO_SHOW_DATA_DIR = '/home/freevo/fxd' VIDEO_AUTOJOIN = 0 #VIDEO_DEINTERLACE = None #VIDEO_USE_XVMC = None #VIDEO_FIELD_DOMINANCE = None #VIDEO_PRE_PLAY = None #VIDEO_POST_PLAY = None # ====================================================================== GAMES_ITEMS = [ ('MAME', '/home/freevo/games/mame/roms', ('MAME', '/usr/games/xmame.x11', '-fullscreen', '/home/freevo/games/mame/shots', None)), ] # ====================================================================== VIDEO_MPLAYER_SUFFIX = [ 'avi', 'wmv', 'bin', 'rm', 'divx', 'ogm', 'vob', 'asf', 'm2v', 'm2p', 'mp4', 'viv', 'nuv', 'mov', 'iso', 'nsv', 'mkv', 'ogg', 'ts', 'flv', 'mpg', 'mpeg' ] MPLAYER_AO_DEV = 'alsa:device=hw=0.3' MPLAYER_VO_DEV = 'null' MPLAYER_VF_INTERLACED = '' MPLAYER_VF_PROGRESSIVE = '' DVD_LANG_PREF = 'es,en' DVD_SUBTITLE_PREF = '' MPLAYER_ARGS = { 'mkv' : '-vo vdpau -vc ffh264vdpau -cache 8192', 'mp4' : '-vo vdpau -vc ffh264vdpau -demuxer lavf -cache 32768', 'dvb' : '-vo vdpau -vc ffmpeg12vdpau,ffh264vdpau -nocache', 'ts' : '-vo vdpau:deint=2 -vc ffmpeg12vdpau,ffh264vdpau -cache 8192', 'mpg' : '-vo vdpau:deint=2 -vc ffmpeg12vdpau -cache 8192', 'mpeg' : '-vo vdpau:deint=2 -vc ffmpeg12vdpau -cache 8192', 'wmv' : '-vo vdpau -vc ffwmv3vdpau -cache 8192', 'default' : '-vo vdpau -cache 4096', } # ====================================================================== VIDEO_XINE_SUFFIX = [ 'iso', ] XINE_AO_DEV = 'alsa' XINE_VO_DEV = 'vdpau' XINE_COMMAND = '%s -D --auto-play=fq --hide-gui --borderless --geometry %sx%s+0+0 --no-splash' % (CONF.xine, CONF.width, CONF.height) XINE_ARGS_DEF = "--no-lirc" XINE_HAS_NO_LIRC = True XINE_BOOKMARK = False # ====================================================================== TV_CHANNELS = [ ( '01', 'La 1', 'La 1(RTVE)' ), ( '02', 'La 2', 'La 2(RTVE)' ), ( '03', 'ANTENA 3', 'ANTENA 3(ANTENA3 TELEVISION)' ), ( '04', 'CUATRO', 'CUATRO(SOGECABLE)' ), ( '05', 'Telecinco', 'Telecinco(TELECINCO)' ), ( '06', 'laSexta', 'laSexta(La Sexta)' ), ( '07', 'Telemadrid', 'Telemadrid(RTVM)' ), ( '08', 'MTV', 'MTV(MTV)' ), ( '09', 'Kiss TV', 'Kiss TV(Teledifusion Madrid)' ), ( '10', 'Antena 3 HD', 'Antena 3 HD(Antena3)' ), ( '11', 'Tele 5 HD', 'Telecinco HD(Tele5)' ), ( '12', 'Telemadrid HD', 'Telemadrid HD(RTVM)' ), ( '13', 'TVE HD', 'TVE-HD Pruebas(RTVE)' ), ] # ====================================================================== TV_RECORD_DUPLICATE_DETECTION = False TV_RECORD_ONLY_NEW_DETECTION = False TV_RECORD_REMOVE_COMMERCIALS = False #TV_RECORD_CONFLICT_RESOLUTION = False TV_REENCODE = False TV_REENCODE_REMOVE_SOURCE = False TV_DATE_FORMAT = '%e-%b' # Day-Month: 11-Jun TV_TIME_FORMAT = '%H:%M' # Hour-Minute 14:05 TV_DATETIME_FORMAT = '%A - %d %b %H:%M' # Thursday - 24 September 14:54 TV_RECORD_FILE_SUFFIX = '.ts' TV_RECORD_FILE_MASK = '%%y%%m%%d %%H%%M %(progname)s - %(title)s' RECORDSERVER_IP = 'localhost' RECORDSERVER_PORT = 18001 RECORDSERVER_SECRET = 'secret1' RECORDSERVER_UID = 0 RECORDSERVER_UID = 0 TV_RECORD_PADDING_PRE = 0 TV_RECORD_PADDING_POST = 0 TV_RECORD_FAVORITE_MARGIN = 0 RECORDSERVER_CLEANUP_THRESHOLD = 0 VCR_PRE_REC = None VCR_POST_REC = None VCR_CMD = CONF.mplayer + ' -dumpstream -dumpfile %(filename)s "dvb://%(channel)s"' # ====================================================================== #plugin.remove('tv.mplayer') #plugin.activate('tv.xine') TV_VIDEO_GROUPS = [ VideoGroup(vdev='/dev/dvb/adapter0', adev=None, input_type='tuner', input_num=1, group_type='dvb', record_group=None, desc='DVB Viewer'), ] # ====================================================================== ##plugin.remove('tv.mplayer') ##plugin.activate('tv.livepause') ##TV_VIDEO_GROUPS = [ ## VideoGroup(vdev='0', ## group_type='dvb', ## desc='Watching Video Group', ## ), ##] ##LIVE_PAUSE2_BUFFER_SIZE = 2048 ##LIVE_PAUSE2_BUFFER_PATH = '/home/freevo/live.buf' ##LIVE_PAUSE2_PREFERRED_PLAYER='xine' # ====================================================================== ##plugin.remove('tv.mplayer') ##plugin.remove('tv.generic_record') ##plugin.activate('tv.dvbstreamer.live_pause') ##plugin_record = plugin.activate('tv.dvbstreamer.record') ##TV_VIDEO_GROUPS = [ ## VideoGroup(vdev='0', ## group_type='dvb', ## desc='Watching Video Group', ## record_group=None ## ), ##] ##LIVE_PAUSE_BUFFER_SIZE=(6.25, 30 * 60) ##LIVE_PAUSE_BUFFER_PATH='/home/freevo/live.buf' ##DVBSTREAMER_USERNAME='dvbstreamer' ##DVBSTREAMER_PASSWORD='control' # ====================================================================== #XMLTV_FILE = '/home/freevo/TV.xml' ##XMLTV_GRABBER = '' ##XMLTV_SORT = '' ##XMLTV_DAYS = 3 #XMLTV_TIMEZONE='+0200' # ====================================================================== ##plugin.activate('idlebar.system.procstats', level=30, args=(-1, 1, 1)) ##plugin.activate('idlebar.system.sensors', level=20, args=(('temp1', '((@ * 10) - 73.869) / 0.9528'), 'temp2', None)) ##SENSORS_PLATFORM_PATH='/sys/devices/platform' ##SENSORS_I2CDEV_PATH='/sys/bus/i2c/devices' # ====================================================================== plugin.activate('oneclick', level=45) ONECLICK_LOCATIONS = [ ("SPXX0050", True, None, "Madrid, Spain"), ] # ====================================================================== HEADLINES_LOCATIONS = [ ('Meneame', 'http://www.meneame.net/rss2.php'), ('Barrapunto', 'http://barrapunto.com/index.rss'), ] # ====================================================================== plugin.activate('video.rtve') plugin.activate('video.appletrailers') # ====================================================================== #SCREENSAVER_DELAY = 120 #SCREENSAVER_CYCLE_TIME = 60 #plugin.activate('screensaver') #plugin.activate('screensaver.flames') #plugin.activate('screensaver.life') #plugin.activate('screensaver.balls') #plugin.activate('screensaver.bouncing_freevo') # ====================================================================== #plugin.activate('command', level=45) #COMMANDS_DIR='/home/freevo/commands' # ====================================================================== COMMAND_SPAWN_WM='/usr/bin/wmaker &' COMMAND_KILL_WM='/usr/bin/killall WindowMaker' plugin.activate('command.CommandMainMenuItem', args=('/etc/freevo/Firefox.fxd', ), level=45) # ====================================================================== #DEBUG = 1 #LOGGING = logging.DEBUG #DEBUG_CHILDAPP = 1 #LOGGING_RECORDSERVER = logging.DEBUG #DEBUG_RECORDSERVER = 1 # ======================================================================

/etc/freevo/Firefox.fxd
<?xml version="1.0" ?>
<freevo>
    <command title="Internet">
        <cmd>/usr/bin/firefox</cmd>
        <stoposd />
        <spawnwm />
        <info>
            <content>Firefox execution</content>
        </info>
    </command>
</freevo>

/home/freevo/.mplayer/channels.conf
/home/freevo/.xine/channels.conf
CANAL 7 TV :586000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_AUTO:FEC_AUTO:QAM_AUTO:TRANSMISSION_MODE_AUTO:GUARD_INTERVAL_AUTO:HIERARCHY_AUTO:128:144:1 TEST 1 :586000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_AUTO:FEC_AUTO:QAM_AUTO:TRANSMISSION_MODE_AUTO:GUARD_INTERVAL_AUTO:HIERARCHY_AUTO:129:145:2 TEST 2 :586000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_AUTO:FEC_AUTO:QAM_AUTO:TRANSMISSION_MODE_AUTO:GUARD_INTERVAL_AUTO:HIERARCHY_AUTO:130:146:3 TEST 3 :586000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_AUTO:FEC_AUTO:QAM_AUTO:TRANSMISSION_MODE_AUTO:GUARD_INTERVAL_AUTO:HIERARCHY_AUTO:131:147:4 8madrid(Teledifusion Madrid):618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:256:257:3901 Popular TV MADRID(Teledifusion Madrid):618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:512:513:3902 INTERECONOMIA BUSINESS(Teledifusion Madrid):618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:768:769:3903 Kiss TV(Teledifusion Madrid):618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1025:1024:3904 COPE(Teledifusion Madrid):618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1281:3905 CADENA 100(Teledifusion Madrid):618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1536:3906 ASTROCANAL(Teledifusion Madrid):618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1792:1793:3907 Aprende Ingles TV(Teledifusion Madrid):706000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:256:257:5001 Libertad Digital TV(Teledifusion Madrid):706000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:512:513:5002 Ver-T(Teledifusion Madrid):706000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:768:769:5003 Sin servico(Teledifusion Madrid):706000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1025:1024:5004 Butaca Latina(Teledifusion Madrid):706000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1280:1281:5005 NEW MILLENIUM(Teledifusion Madrid):706000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1536:1537:5006 NITRO(ANTENA3):698000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:101:103:147 Antena 3 HD(Antena3):698000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:501+500:503:148 MARCA TV(Imagina):698000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1001:1003:263 13 TV:698000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1501:1503:264 TVE-HD Pruebas(RTVE):746000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1001+1000:1100:40001 Teledeporte(RTVE):746000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2001:2002:40002 Radio Clásica(RTVE):746000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:2010:40005 Radio 3(RTVE):746000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:3010:40006 La 1(RTVE):770000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:101:103:530 La 2(RTVE):770000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:201:203:531 24h(RTVE):770000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1001:1003:532 Clan(RTVE):770000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1501:1503:533 RNE1(RTVE):770000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:2001:535 RNEC(RTVE):770000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:2011:536 RNE3(RTVE):770000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:2021:537 Boing(Tele5):778000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:101:103:184 Telecinco HD(Tele5):778000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:501+500:503:185 MTV(MTV):778000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1001:1003:304 La 10(La 10):778000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1501:1503:305 Punto Radio(Punto Radio):778000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1601:306 Telemadrid(RTVM):810000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:111:115:421 LA OTRA(RTVM):810000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:211:212:422 Metropolitan TV(Vocento):810000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:311:312:423 Telemadrid HD(RTVM):810000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:611+610:612:425 ONDA MADRID(RTVM):810000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:511:10068 Teledeporte(RTVE):834000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:101:103:100 VEO7(VEO TELEVISION):834000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1001:1002:260 AXN(AXN):834000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1401:1402:261 Tienda en VEO(VEO TELEVISION):834000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1601:1602:262 RADIO MARCA(VEO TELEVISION):834000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1951:271 Vaughan Radio(Vaughan Radio):834000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1966:273 Intereconomía(INTERECONOMIA):834000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:201:202:300 esRadio(esRadio):834000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:3501:302 Radio Intereconomía(INTERECONOMIA):834000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:3001:303 laSexta(La Sexta):842000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1501:1503:340 CUATRO(SOGECABLE):842000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:160:80:1057 CNN+(SOGECABLE):842000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:161:84:1058 CANAL+ Dos(SOGECABLE):842000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:162:88:1059 CANAL CLUB(SOGECABLE):842000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:163:92:1060 SER(SOGECABLE):842000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:262:1061 40 PRINCIPALES(SOGECABLE):842000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:260:1062 CADENA DIAL(SOGECABLE):842000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:256:1063 Telecinco(TELECINCO):850000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:203:303:180 FDF(TELECINCO):850000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:201:301:181 LaSiete(TELECINCO):850000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:202:302:182 Disney Channel(Disney Channel):850000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1501:1502:301 ANTENA 3(ANTENA3 TELEVISION):858000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:301:303:140 NEOX(ANTENA3 TELEVISION):858000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:501:503:141 NOVA(ANTENA3 TELEVISION):858000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1001:1003:142 ONDA CERO(ANTENA3 TELEVISION):858000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:351:144 EUROPA FM(ANTENA3 TELEVISION):858000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:551:145 ONDA MELODÍA(ANTENA3 TELEVISION):858000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1051:146 GOL TELEVISIÓN(LA SEXTA):858000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1501:1503:341

/home/freevo/.gtkrc-2.0
gtk-font-name = "Lucida Sans 40"

/home/freevo/.asoundrc
pcm.!default {
    type hw
    card 0
    device 3
}
ctl.!default {
    type hw
    card 0
    device 3
}

/home/freevo/.xsession
xset s noblank xset s off xset -dpms # ---- language-env DON'T MODIFY THIS LINE! # set LANG LANG=es_ES@euro export LANG if [ -x "$WINDOW_MANAGER" ]; then realstartup=$WINDOW_MANAGER elif [ -x /usr/bin/x-session-manager ]; then realstartup=x-session-manager elif [ -x /usr/bin/x-window-manager ]; then realstartup=x-window-manager elif [ -x /usr/bin/x-terminal-emulator ]; then realstartup=x-terminal-emulator fi exec $realstartup # ---- language-env end DON'T MODIFY THIS LINE!

/etc/X11/xorg.conf
Section "ServerLayout" Identifier "Layout0" Screen "Screen0" InputDevice "Keyboard0" "CoreKeyboard" InputDevice "Mouse0" "CorePointer" EndSection Section "ServerFlags" Option "NoPM" "true" EndSection Section "Extensions" Option "Composite" "Disabled" EndSection Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/psaux" Option "Emulate3Buttons" "no" Option "ZAxisMapping" "4 5" EndSection Section "InputDevice" Identifier "Keyboard0" Driver "kbd" EndSection Section "Monitor" Identifier "Monitor0" Option "DPMS" "false" Option "DPI" "96x96" EndSection Section "Device" Identifier "Device0" Driver "nvidia" Option "TripleBuffer" "True" Option "UseEdidDpi" "False" EndSection Section "Screen" Identifier "Screen0" Device "Device0" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Depth 24 EndSubSection EndSection

domingo, 6 de diciembre de 2009

Restaurando GRUB 2 en Debian GNU / Linux

Hay veces en el que el gestor de arranque GRUB se puede estropear. Por ejemplo, al instalar otro sistema operativo.

Para recuperarlo, debemos arrancar con un CD de instalación de Debian en modo "rescue". Una vez configurado el idioma del teclado, abrimos otra consola con "Alt-F2" y ejecutamos los siguientes comandos:

mount /dev/sda3 /mnt mount -t proc /proc /mnt/proc mount --bind /dev /mnt/dev chroot /mnt/ grub-install /dev/sda

De esta forma, hemos recuperado el sector de arranque en "/dev/sda", teniendo la instalación de Debian en la partición "/dev/sda3".

domingo, 4 de octubre de 2009

Configuración de un servidor SSH en Debian GNU / Linux

En este artículo vamos a ver una serie de recomendaciones para tener un servidor SSH lo más seguro posible.

Los pasos de la configuración son los siguientes:

1. Instalación
2. Uso de pares de claves
3. Cambiar el puerto por defecto

A continuación se detallan cada uno de estos pasos:

1. Instalación

Para la instalación únicamente debemos ejecutar el siguiente comando:

aptitude install ssh

2. Uso de pares de claves

Configurando el servidor SSH para que solo se pueda acceder mediante pares de claves SSH se obtiene un gran beneficio. Por un lado, se obtiene mayor seguridad, ya que para el acceso a la máquina se debe disponer de una clave privada cuya clave publica este dada de alta en el servidor. Y por otro lado, es posible configurar que la clave privada de acceso esté guardada sin contraseña, de forma que se pueda acceder directamente al servidor sin que se solicite ningún tipo de contraseña. Esto puede ser útil, por ejemplo, para scripts de tareas automatizadas.

El primer paso será generar un par de claves SSH y configurar el servidor para que se pueda acceder con ellas.

Generamos el par de claves en el cliente de la siguiente forma:

ssh-keygen -t dsa -C "USERNAME@DOMAIN"

En el comando anterior podemos sustituir USERNAME por el nombre del usuario y DOMAIN por el dominio que queramos.

Durante la creación nos solicitará una contraseña que será la que proteja la clave privada generada. Si se considera que la cuenta del usuario está en un entorno fiable podemos omitirla y acceder al servidor SSH automáticamente sin contraseña.

Para permitir que ese cliente se conecte con las claves generadas a un usuario del servidor, debemos crear un fichero "$HOME/.ssh/authorized_keys" que contenga la información de la clave pública que hemos generado. Por defecto, la clave pública se genera en un fichero "$HOME/.ssh/id_dsa.pub". En el fichero "authorized_keys" se podrán meter todas las claves públicas que se desee y cada una deberá estar en una línea.

Es muy importante el tema de permisos en estos ficheros. Únicamente deberán poder ser accesibles por el usuario de la cuenta en la que esté contenido cada fichero.

Por último, si queremos que únicamente se permita el acceso a la máquina mediante pares de claves y no se permita acceder mediante usuario y contraseña, debemos configurar en el fichero "/etc/ssh/sshd_config" el valor de la variable "PasswordAuthentication" a "no" y reiniciar el servidor de SSH.

Si un usuario tiene varias claves, puede seleccionar la clave que quiere usar con el parámetro "-i" del comando ssh.

También es interesante impedir que se pueda acceder directamente con el usuario root. Para ello, debemos configurar en el fichero "/etc/ssh/sshd_config" el valor de la variable "PermitRootLogin" a "no" y reiniciar el servidor de SSH.

3. Cambiar el puerto por defecto

Cambiando el puerto por defecto del servicio SSH se consigue burlar ciertos escaneres de puertos. Para ello editamos el fichero "/etc/ssh/sshd_config" y cambiamos el parámetro "Port".

Al cambiar el puerto, para acceder al servicio debemos indicar un parámetro adicional. Por ejemplo, si cambiamos el servicio al puerto 1234 usaríamos el siguiente comando:

ssh -p 1234 user@hostname

domingo, 13 de septiembre de 2009

Reparar BIOS corrupta de ordenador

Hace algún tiempo, actualizando la BIOS del ordenador se produjo algún problema y quedó corrupta. El ordenador no arrancaba.
Trás el susto y pensar que me tocaba comprar otra placa base, descubrí en Internet que si la BIOS es enchufable, osea, que no va soldada a la placa base sino que tiene un conector, se puede reprogramar con un programador. Estos programadores los suelen tener en las tiendas de electrónica y, por un módico precio, te programan todo tipo de chips.

Por lo que cogí el chip de la BIOS y un disquete, con el programa a cargar en la BIOS, y por unos 4 euros me reparon la BIOS en una tienda de electrónica de Madrid llamada Conectrol.

En Madrid hay varias tiendas de electrónica que seguro que dan este servicio. Son estas:

Conectrol
Diotronic
Actrón

Conexión a internet en el ordenador mediante móvil bluetooth GPRS

Este artículo explica como configurar una instalación de Debian GNU / Linux para conectarse a Internet usando la conexión GPRS de un teléfono movil Sony-Ericsson w800i.

Se deben tener instalados los paquetes bluez-utils y ppp.

El primer paso es activar el bluetooth en el móvil y localizarlo en el ordenador con el siguiente comando:

hcitool scan

Se obtiene un resultado con una dirección del tipo 11:22:33:44:55:66, que es la dirección que identifica el móvil por bluetooth.

Ahora se debe emparejar el móvil. Para ello debemos ejecutar los siguientes comandos con el usuario root:

hcitool cc 11:22:33:44:55:66
hcitool auth 11:22:33:44:55:66

Con el siguiente comando obtenemos los servicios que proporciona el móvil por bluetooth:

sdptool browse 11:22:33:44:55:66

Para poder usar el móvil para conectarse a internet desde un ordenador tiene que tener un servicio del tipo "Dial-up Networking". Por ejemplo, se debe obtener información de este tipo:

Service Name: Dial-up Networking
Service RecHandle: 0x10001
Service Class ID List:
"Dialup Networking" (0x1103)
"Generic Networking" (0x1201)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 1
Profile Descriptor List:
"Dialup Networking" (0x1103)
Version: 0x0100

Con el siguiente comando nos conectamos con el móvil para que se cree un canal de comunicación:

rfcomm connect /dev/rfcomm 11:22:33:44:55:66 1

El valor 1 del final del comando es el canal asociado al servicio del tipo "Dialup Networking".

Para evitar tener que ejecutar este comando cada vez que vayamos a usar la conexión, podemos crear una entrada en el fichero "/etc/bluetooth/rfcomm.conf" con la siguiente información:

rfcomm0 {
bind no;
device 11:22:33:44:55:66;
channel 1;
comment "Sony-Ericsson W800i";
}

Y con esta configuración solo tendremos que ejecutar el comando de la siguiente forma:

rfcomm connect rfcomm0

Otra opción es poner el parámetro bind con el valor yes, y al reiniciar el servicio de bluetooth se realizará la conexión automáticamente. Para reiniciar el servicio se ejecuta como root el siguiente comando:

/etc/init.d/bluez-utils restart

Para poder usar el móvil como modem, el usuario del ordenador debe pertenecer a los grupos dialout y dip. Para ello se puede editar como root el archivo "/etc/group" y añadir el usuario a los grupos correspondientes.

El siguiente paso es crear como root el fichero "/etc/ppp/peers/bluetooth_w800i" con el siguiente contenido:

debug
noauth
connect "/usr/sbin/chat -v -f /etc/chatscripts/bluetooth_w800i"
usepeerdns
/dev/rfcomm0 115200
defaultroute
crtscts
lcp-echo-failure 0

Y después crear como root el fichero "/etc/chatscripts/bluetooth_w800i" con el siguiente contenido:

TIMEOUT 35
ECHO ON
ABORT '\nBUSY\r'
ABORT '\nERROR\r'
ABORT '\nNO ANSWER\r'
ABORT '\nNO CARRIER\r'
ABORT '\nNO DIALTONE\r'
ABORT '\nRINGING\r\n\r\nRINGING\r'
'' \rAT
OK 'AT+CGDCONT=2,"IP","nombre_apn"'
OK ATD*99***numero_perfil_datos#
CONNECT ""

El el fichero anterior se debe sustituir el valor numero_perfil_datos por la posición en la configuración del móvil del perfil de conexión de datos que queremos usar. Y el valor nombre_apn por el nombre del APN que tiene configurado el perfil del móvil.

Una vez hechos estos pasos ya tenemos todo configurado. Solo tenemos que ejecutar el siguiente comando para iniciar la conexión:

pon bluetooth_w800i

Y el siguiente comando para desconectarse:

poff bluetooth_w800i

Si algo no funciona correctamente podemos consultar las trazas del fichero "/var/log/messages" para intentar descubrir el error.

Espero este artículo sea de ayuda.

Saludos,
Tony

miércoles, 2 de septiembre de 2009

Trabajando con DVDs en Debian GNU / Linux

A continuación mostraré varios comandos bastante prácticos para manipular DVD en Linux.

Con el siguiente comando podemos compiar un DVD completo al disco duro como imagen ISO. Con esto obtenemos una copia completa del DVD para posteriormente copiarla a un DVD, o simplemente para reproducirlo desde el disco duro. El comando sería el siguiente.

dd if=/dev/dvd of=copia.iso

De esta forma, se leerá todo el contenido del dispositivo "/dev/dvd" en el fichero "copia.iso".

El contenido del DVD anterior se puede ver montándolo en un directorio. Para esto, debemos ejecutar el siguiente comando como usuario root:

mount -o loop copia.iso /mnt

Con este comando se monta en la carpeta "/mnt" el ISO del DVD obtenido con el comando anterior.

Con el siguiente comando podemos crear un DVD a partir del contenido obtenido de otro DVD. Para ello creamos un directorio, copiamos la estructura del DVD (directorios AUDIO_TS y VIDEO_TS) y ejecutamos el siguiente comando:

genisoimage -dvd-video -V "Nombre o etiqueta del DVD" -o nuevo_dvd.iso directorio_estrucura_dvd