Archivo categoría Linux

Instalación de Raspbmc

Raspbmc = Rasberry Pi   XBMC

Un amigo me recomendó esta distro para correr XBMC, ya que según me comentó el desarrollador de XBMC sacó optimizaciones específicas para que corriera mejor en el hardware del Rasberry. Entonces me animé a probarla y explicó aquí todo lo que tuve que hacer para realizar la instalación, que dicho sea de paso me pareció algo accidentada pero al final satisfactoria.

Raspbmc desde el instalador|

Raspbmc install error

Desde la página del proyecto recomiendan usar el instalador o Network Image, un script en python que prácticamente hace todo el proceso de instalación, particionamiento y configuración inicial…o por lo menos lo intenta, ya que en mi caso no funciono debido a que la conexión a Internet en casa no ayudaba y por ende no podía descargarme la imagen. Por lo que tuve que usar la imagen completa de Raspbmc.

Imagen completa de Raspbmc

La otra opción que ofrecen en la página del proyecto es la de descargar la versión completa de 235 MB llamada Standalone Image, la cual al descomprimirse queda en 1.4 GB aproximadamente. Esto fue un problema ya que mi SD es de 1 GB y no pensaba comprar otra porque tengo un disco duro de 320 GB dedicado al Rasberry Pi. Entonces se me ocurrió que podía reducir el tamaño de esta imagen para que entrara en la SD de 1 GB.

Reparticionado de la imagen

Similar a como hice en el artículo que explica cómo Correr Raspberry Pi desde un disco USB, volqué la imagen en un pendrive de 8 GB para poder extraer luego la partición /boot y la partición del sistema operativo o partición raíz. Para copiar la imagen en el pendrive se debe descomprimir la imagen y luego volcar en crudo, como se muestra  a continuación:

# gunzip raspbmc-final.img.gz
# dd if=raspbmc-final.img of=/dev/sdb

Si verificamos con gparted veríamos algo como esto:

Rasbmc image

Luego con el mismo gparted se debe redimensionar el tamaño de la partición /dev/sdb2 para que ocupe 800 MB aproximadamente, de esta forma podría meter también la partición /boot de 74 MB en mi tarjeta SD de 1 GB.

Raspbmc

Luego para extraer la partición /boot del pendrive se debe hacer lo siguiente:

# dd if=/dev/sdb1 of=raspbmc-final_boot.img

Y de forma similar para extraer el sistema de archivos de 800 MB  que se encuentra en la otra partición:

# dd if=/dev/sdb2 of=raspbmc-final_fsext4.img

Configuración inicial

La configuración inicial se realiza desde el instalador, que en esencia es un script que realiza una serie de preguntas como parámetros de red, etc. Luego esto se puede modificar desde el mimos XBMC con un script que se agregó para Raspbmc:

Raspbmc

Reparticionado del disco

Si bien la instalación detectó el disco duro de forma automática no me dejó particionarlo, de hecho borra todo el contenido y crea una única partición que se monta en /media con el UUID de la partición. Pero lo que quería era tener tres particiones: una para el sistema operativo (/), otra para la memoria de intercambio (swap) y el resto para los datos (/media/Toshiba320), aparte de la partición /boot que debe estar en la tarjeta SD .

Para particionar el disco, borré y creé las particiones usando para ello fdisk. Al final el disco quedó distribuido de la siguiente manera:

Raspbmc

Luego edité el /etc/fstab para reflejar estos cambios:

proc /proc proc defaults 0 0
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620 0 0
#/dev/sda2 / ext4 defaults,noatime 0 0
UUID=e7db90716-9911-4fc8-95da-86c463f926a4 / ext4 defaults,noatime 0 0
UUID=70a55bca-9fdb-4073-87f6-c15fd7b351dc none swap sw 0 0
UUID=1ff934a3-f7ce-451f-9a07-0915e174a007 /media/Toshiba320 ext4 defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults,noatime 0 0

Y por último modifiqué el archivo /boot/cmdline.txt, en particular para que la partición del sistema operativo fuese leída desde el disco duro y no desde la tarjeta SD:

dwc_otg.lpm_enable=0 root=/dev/sda1 rootfstype=ext4 noatime quiet rootwait loglevel=1   persistent-logs sdhci-bcm2708.enable_llm=1 dwc_otg.microframe_schedule=1 dwc_otg.fiq_fix_enable=1

Deshabilitar el Firewall

Para deshabilitar el firewall que viene por omisión con una regla  DROP  en el Raspbmc,  hay que editar el archivo /etc/network/if-up.d/secure-rmc, donde se debe comentar la línea:

iptables -A INPUT -i $IFACE -j DROP

También puedes deshabilitar el firewall desde el script de configuración desde XBMC como se muestra a continuación:

Raspbmc settings

Control remoto

Si bien tengo un teclado un un ratón conectado al Rasberry Pi, lo ideal es tener un control remoto. Como el Rasberry Pi está conectado a la red WiFI lo ideal es usar este medio y no tener que usar IR o Bluetooth. Por eso pensé en una aplicación en Android y mi primera elección fue XBMC Remote pero pareciera que tiene un problema de comunicación que vuelve loco al XBMC (tanto del Raspbmc como el XBMC que se puede conseguir por ahí para el Rasberry Pi), pero al final conseguí otra llamada Yatse que funciona correctamente y la presentación es mucho mejor como puede verse a continuación de las capturas que tomé desde mi teléfono:

Yatse XBMC remote  Yatse XBMC remote  Yatse XBMC remote

Desempeño

Comparado con el XBMC que había probado con Raspbian, esta versión verdaderamente se comporta muy bien. Reproduce las películas en varios formatos (.avi, .mkv, .mp4, etc) de forma fluida. Adicionalmente como tiene Linux también es mi centro de descarga con qbittorrent-nox, y otras cosas adicionales que le estoy colocando para pruebas. Y esto es lo que reporta XBMC como consumo de recursos:

Raspbmc

Referencias


, ,

11 Comentarios

100 preguntas de Linux!

LPI CompTIA Linux+

100 Preguntas de Linux

Este cuestionario busca evaluar qué tanto sabes de Linux, además de ayudarte en los exámenes de certificación de Linux existente en el mercado, tales como LPI o CompTIA.

Puedes ir respondiendo cada pregunta, marcar algunas en las que tengas dudas para revisarlas posteriormente, y finalmente terminar con el cuestionario donde se mostrará el resultado obtenido. También puedes revisar las respuestas si haces clic en Comprobar las preguntas para que sepas las preguntas que respondiste correcta e incorrectamente, para que en caso de que te hayas equivocado sepas qué temas debes revisar.

Suerte!!


, ,

15 Comentarios

Cómo crear un ramdisk en Linux

ramdisk

Un ramdisk es como una partición de un disco pero que opera directamente sobre la RAM de sistema. Tiene como ventaja que los datos se leen y escribe más rápidamente justamente por estar en la RAM, pero tiene como desventaja que al reiniciar el equipo los datos en esa partición pueden desaparecer. Algunas distribuciones de Linux  usan este tipo de sistema de archivos para evitar matar el medio de almacenamiento, por ejemplo en vez de usar un sistema de archivo en una tarjeta SD se puede usar un ramdisk. Si necesitas crear una partición de este tipo aquí se explica cómo hacerlo

Creando la ramdisk con mount

Para crear un ramdisk en /tmp/ramdisk  escribe las siguientes órdenes:

# mkdir /tmp/ramdisk

# chmod 1777 /tmp/ramdisk

# mount -t tmpfs -o size=8G tmpfs /tmp/ramdisk/

 # df -h

 Filesystem Size Used Avail Use% Mounted on
 /dev/sda5 9.2G 533M 8.2G 6% /
 udev 7.9G 4.0K 7.9G 1% /dev
 tmpfs 3.2G 308K 3.2G 1% /run
 none 5.0M 0 5.0M 0% /run/lock
 none 7.9G 0 7.9G 0% /run/shm
 /dev/sda1 268M 50M 204M 20% /boot
 /dev/sda6 9.2G 552M 8.2G 7% /usr
 /dev/sda7 19G 172M 18G 1% /tmp
 /dev/sda9 490G 560M 464G 1% /var
 /dev/sda8 6.5G 143M 6.0G 3% /usr/local
 tmpfs 8.0G 0 8.0G 0% /tmp/ramdisk

Aquí puede verse que con la orden mount se puede crear el ramdisk especificando tmpfs como tipo de sistema de archivo, indicando el tamaño con la opción size y especificando el punto de montaje (el cual tiene todos los permisos habilitados para usuario, grupos y otros, así como el sticky bit activo).

Creando la ramdisk desde el /ect/fstab

Si quieres que los cambios sean permanentes debes crear una entrada en el /etc/fstab como se muestra a continuación:

# RAM diskramdisk
/tmp/ramdisk tmpfs mode=1777,size=8g

Aquí se especifica que el dispositivo es un ramdisk, cuyo punto d montaje es /tmp/ramdisk, que el tipo de sistema de archivos es tmpfs, con los  permisos habilitados para usuario, grupos y otros, así como el sticky bit activo, y la opción size determina el tamaño del ramdisk.

Referencias

No hay Comentarios

Certificados de Novell

Novell® Certified Linux Administrator Data Center Technical Specialist

Comentando con un amigo le dije que la certificación LPI valida unas certificaciones adicionales con Novell que en esencia es como un incentivo para seguir las carreras de certificaciones que tienen la misma gente de Novell. Una de ellas es la certificación Novell(R) Certified Linux Administrator y la otra es la de Data Center Techinal Specialist.

¿Cómo obtengo estas certificaciones?

Al presentar y validar LPIC-1 en la página de  Novell puedes incluir tus datos de LPI para que te envíen estos certificados en digital (formato PDF). Entonces mi consejo es presentar la certificación CompTIA Linux+ Powered by LPI que con el convenio que existe con LPI (Linux Professional Institude) se obtiene  la certificación LPIC-1 y luego validar los datos de la cuenta LPI para obtener estas dos certificaciones extra.

Referencias:

 

, ,

9 Comentarios

Cómo crear un paquete Debian en 3 pasos

 Debian pakage

Existen varias formas de crear un paquete Debian. En este artículo veremos cómo crearlo con las herramientas equivs, para la creación de un paquete sencillo (por ejemplo que se quiera empaquetar un binario). Sin preámbulos veamos el procedimiento:

Requisitos

Necesitaremos instalar previamente las herramientas que se usará, en particular:

aptitude install equivs

Procedimiento

A modo de ejemplo vamos a empaquetar unos scripts y una tarea programada en un archivo .deb. Estos son los pasos:

  1. Crear el archivo plantilla. Para ello usaremos la orden equivs-control, la cual genera un archivo base que luego podremos editar para quitar los comentarios en las opciones de interes. Para generar la plantilla usamos la siguiente orden:
$ equivs-control backups
  1. Editar la plantilla, que en este ejemplo se llama backups. Colocar los datos necesarios para la creación del paquete descomentando los campos que se necesiten editar:
### Commented entries have reasonable defaults.
### Uncomment to edit them.
# Source:
Section: miscD
Priority: optional
Homepage: www.lgallardo.com
Standards-Version: 3.9.2
Package: backups
Version: 1.1
Maintainer: Luis M. Gallardo D. <lgallard@gmail.com>
# Pre-Depends:
# Depends:
# Recommends:
# Suggests:
# Provides:
# Replaces:
Architecture: all
# Copyright:
# Changelog:
Readme: README.Debian
# Extra-Files:
Files: backup.sh /usr/local/bin/
 restore.sh /usr/local/bin/
 backups-cron /etc/cron.d/
Description: Backups scripts
 Scripts for backuping up files on Debian systems

Para este ejemplo se debe tener creados los archivos backup.sh, restore.sh, backups-cron y README.debian, este último para que no coloque el README genérico.

  1. Crear el paquete. Solo escribe la siguiente orden:
$equivs-build backups

Esto generará el paquete de nombre backups_1.1_all.deb.  Para consultar la información del mismo podemos ejecutar los siguiente:

$ dpkg -I backups_1.1_all.deb
 new debian package, version 2.0.
 size 2396 bytes: control archive=582 bytes.
 25 bytes, 1 lines conffiles 
 302 bytes, 12 lines control 
 322 bytes, 5 lines md5sums 
 Package: backups
 Version: 1.1
 Architecture: all
 Maintainer: Luis M. Gallardo D. <lgallard@gmail.com>
 Architecture: all
 Readme: README.debian
 Installed-Size: 42
 Section: misc
 Priority: optional
 Homepage: www.lgallardo.com
 Description: Backups scripts
 Scripts for backuping up files on Debian systems

¡Eso es todo, ya creaste tu primer paquete Debian!

,

3 Comentarios

Curso OpenLDAP

Open LDAP

Ya tenemos el contenido del curso que estaremos dando sobre OpenLDAP. Comparto por este medio la información para quienes estén interesado en el tema, o para que compartan con quienes crean les pueda interesar o ser útil. Aquí les dejo la información:

Curso OpenLDAP

Tema  1 : Servidor de Directorios y LDAP

  • Conceptos básicos de LDAP
  • ¿Qué es un Directorio?
  • Estructura de Directorios
  • Nombres  Únicos (UN),
  • Entradas LDAP
  • Estructura de árbol de directorios,
  • ¿Qué hacer con un servidor de LDAP?
  • Servidor, cliente, utilitarios, librerías, resumen.

Tema 2:  Instalación y configuración de LDAP

  • Comenzando a trabajar con LDAP
  • Programas de LDAP
  • Distribuciones de LDAP
  • dependencias, configurando el server de LDAP
  • directivas, módulos, configuración de base de datos
  • Listas de Control de Acceso (ACL’s), arrancado y deteniendo los servicios.

Tema  3:  Usando OpenLDAP

  • Servidor OpenLDAP
  • operaciones, búsquedas
  • cargando de datos la base de datos
  • usando el  archivo LDIF, anatomía del archivo LDIF
  • estructurando el directorio y las unidades organizacionales
  • adicionando registros de usuarios, sistemas, grupos.
  • Trabajando con el archivo LDIF,  slapindex,slapcat, slapacl, spaldn, slapatuh, slappasswd, configurando ldap.conf.

Tema  4: Protegiendo mi Servidor OpenLDAP

  • Usando SSL/TLS, autentificación, encriptación
  • usando certificados, clientes con tls
  • trabajar con certificados: generar, actualizar, usarlos.

Tema  5:  Configuración Avanzada de OpenLDAP

  • Archivo slapd.conf
  • Creando e importando directorios
  • Rendimiento
  • Archivo DB_CONFIG
  • Trabajo con los registros logs
  • Modificando registros.

Tema  6:  Esquemas de LDAP

  • Introducción a los Esquemas
  • Definición de esquemas,
  • Clases, objetos,
  • Tipos de Objetos: Abstractos, Estructurales y auxiliares.

Tema 7:  Multiples Ditrectorios

  • Replicaciones, Syncrepl
  • Servidores maestros, servidores espejos (Shadow)
  • Configurando Proxy LDAP
  • Entonando las Caches.

Tema  8:  OpenLdap y la Web

  • Aplicativo LDAP-Aware
  • Apache, módulos de autenficación de Apache
  • phpldapadmin
  • Parámetros, navegando, administrando  los registros con la herramienta web.

Más información en la página de Avalon.

,

2 Comentarios

Cómo crear el sistema de archivos en particiones grandes

Discos | Hard drives

Algunas veces en los discos se presentan  inconsistencias entre el el tamaño, el valor usado y el espacio disponible. El problema ocurre cuando el sistema operativo dice algo distinto de lo que uno esperaría lógicamente. Por ejemplo:

# df -h | grep data

Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 788G 726G 23G 98% /var/data

Si sacamos la cuenta debería ser  788 GB – 726 GB = 62 GB…pero df (osea Linux) reporta que hay disponibles 23 GB. ¿Dónde están los otros 39 GB?

El asunto está en el espacio disponible. ¿Disponible para quién? Pues para el sistema operativo, usuarios, etc. Pero resulta que cuando se crea el sistema de archivos en ext2, ext3, etx4, por omisión se reserva un 5% de espacio en el disco para evitar que el sistema colapse, por ejemplo por bitácoras o base de datos haciendo que el mismo sea inoperante, y de forma root pueda usarlo para rescatarlo. Entonces, verificando el tamaño de esa partición vemos que el 5% de 788 GB es 39.5 GB. Allí está la diferencia.

Ahora, cómo podemos recuperar o aprovechar esos GB adicionales, ya que si se usa para una partición de datos pierde el sentido eso de guardar 5% para que el sistema operativo funcione correctamente, ya que en todo caso eso aplicaría para la partición destinada a la raíz /o a /var. Hay dos formas:

  1. Al momento de crear el sistema de archivo de las particiones puede usarse la opción -m con la orden mkfs.ext[2,3,4]. Ejemplo:
    mkfs.ext3 -m 0 /dev/sdb1
  2. Si el sistema de archivos ya fue creado, se puede usar la misma opción -m pero con la orden tune2fs. Pero aquí es importante primero desmontar la partición previamente para evitar posibles pérdidas o inconsistencia de datos. Ejemplo:
# umount /var/data

# tune2fs -m 0 /dev/sdb1

tune2fs 1.41.12 (17-May-2010)
Setting reserved blocks percentage to 0% (0 blocks)

# mount /var/data

Luego volvemos a consultar el espacio disponible:

# df -h | grep data

Filesystem Size Used Avail Use% Mounted o

/dev/sdb1 788G 726G 63G 93% /var/data

Ahora las cuentas si dan…por cierto, y cómo podríamos saber el espacio reservado sin usar df? Existen dos formas:

  1. Usando dumpe2fs:
    # dumpe2fs -h /dev/sdb1 | grep Reserved
    
    dumpe2fs 1.41.12 (17-May-2010)
    Reserved block count: 0
  2. Usando  tune2fs:
    # tune2fs -l /dev/sdb1 | grep Reserved Reserved block count: 0

No hay Comentarios

Daemontools o cómo relanzar un proceso si muere

building-24220_150

Quizás te ha pasado que un proceso (programa o servicio) en el sistema muere o termina abruptamente y necesitas relanzarlo sin importar qué pase. Podrías tratar de monitorear el proceso cada cierto tiempo y reiniciarlo si no es encontrado pero esto puede ser algo complicado porque tendrías que hacer una tarea con cron para verificar la existencia del proceso, filtrarlo, etc. Y si hubiese una forma de relanzar el proceso si este muere?…Si hay una forma, y se llama daemontools el cual básicamente escanea el proceso y lo relanza si este muere.

Aquí explicaré como instalar y configurar en Linux.

Instalación de  daemontools

En Debian puedes instalar daemontools como root escribiendo esto:

root@raspberrypi: # aptitude install daemontools-run daemontools

Para distribuciiones derivadas de Debian como Ubuntu debería ser lo mismo. En Red Hat y similares deben chequear el nombre del paquete para esta herramienta.

Configurando daemontools

Debes crear un directorio para el servicio (programa) a monitorear. En este ejemplo usaré  qbittorrent-nox, un cliente de bittorrent que corre en el segundo plano (nox = no para ambiente X):

root@raspberrypi:~# mkdir /etc/service/qbittorrent-nox

Luego tienes que escribir un script que inicie el proceso. Debe llamarse “run“. Utiliza tu editor de texto preferido, por ejemplo vi:

root@raspberrypi:~# vi /etc/service/qbittorrent-nox/run

Añade la llamada al programa. En este caso quería lanzar qbitorrent-nox como el usuario pi, así que lo invoqué con sudo:

#!/bin/sh

sudo -u pi qbittorrent-nox

Por último cambia la permisología para hacerlo ejecutable:

root@raspberrypi:~# chmod +x /etc/service/qbittorrent-nox/run

Verificando el proceso con ps

Puedes verificar si el proceso está corriendo usando la orden ps y filtrando la salida con grep:

root@raspberrypi:~# ps ax | grep qbit
3064 ? S 0:00 supervise qbittorrent-nox
3068 ? S 0:00 sudo -u pi qbittorrent-nox
3080 ? Sl 13:09 qbittorrent-nox
9926 pts/0 S+ 0:00 grep qbit

Pero hay una mejor forma de verificar si el proceso está corriendo usando daemontools. Por cierto, como su nombre lo indica en inglés, daemon-tools quiere significa herramientas para el manejo de demonios (programas o servicios).

Verificando el proceso con daemontools

Si quieres verificar si el proceso está corriendo y dede hace cuánto ha estado arriba, usa la orden svtat pasándole el directorio de servicio, como muestro a continuación:

root@raspberrypi:~# svstat /etc/service/qbittorrent-nox
 /etc/service/qbittorrent-nox: up (pid 3066) 205846 seconds

En este caso, my proceso bittorrent-nox (programa/servicio) ha estado corriendo casi por dos días y medio

Detener el escaneo

Si necesitas detener el escaneo del proceso, por ejemplo si necesitas detenerlo por unos instantes para hacer cambios a la configuración, usa la orden svc: con las siguiente opción

root@raspberrypi:~# svc -d /etc/service/qbittorrent-nox

Despues de esto cheque auna vez más:

root@raspberrypi:~# svstat /etc/service/qbittorrent-nox
 /etc/service/qbittorrent-nox: down 2 seconds, normally up

Ahora el proceso no será verificado para ser relanzado si se detiene o muere.

Reiniciando el escaneo

Para iniciar nuevamente el escaneo, usa la orden svc como sigue:

root@raspberrypi:~# svc -u /etc/service/qbittorrent-nox

Una vez más verifica si está correindo con svstat:

root@raspberrypi:~# svstat /etc/service/qbittorrent-nox
 /etc/service/qbittorrent-nox: up (pid 12805) 1 seconds

Referencia: daemontoolsl

No hay Comentarios

¿Dónde pongo mi Rasberry Pi?

Rasberry TV

Como quería usar mi Rasberry Pi como centro multimedios pero no quería poner muchos dispositivos en mi mesa de noche se me ocurrió esta diea. My Rasberry, un disco duro y un hub usb parecen corroncos pero están por detrás el televisor.

Rasberry - Sticker

Si quieres hacer algo similar puedes usar unas cintas para pegar cuadros (Command, Scoth, 3M, etc) y así ahorra algo de espacio y evitar la proliferación de dispositivos en tu habitación.

, ,

2 Comentarios

Instalación de SubDownloader en Raspberry Pi

SubDownloader 2.0.14 (on raspberrypi)

Ya instalé XBMC como mi centro multimedia y también qbittorrent como mi centro de “descargas”. Pero me faltaba algo: un programa descargar subtítulos. Conocía de subdownloader, así que decidí intentarlo en my Rasberry Pi pero no estaba en los repos de Rasbian…qué se puede hacer?

Fácil, solo agrega el repo oficial de Debian para Sid e instálalo. Recuerda que Debian suporta muchas arquitecturas, incluso armhf. Veamos cómo hacerlo…

Instalación

  1. Editar el archivo /etc/apt/sources.list para incluir los repos de sid:
    deb http://ftp.debian.org/debian/ sid main contrib non-free
  2. Actualizar el listado de paquetes:
    aptitude update
  3. Instalar SubDonwloader:
    aptitude install subdownloader
  4. Editar nuevamente el /etc/apt/sources.list para quitar los repos de sid (basta con comentar la línea con #):
    #deb http://ftp.debian.org/debian/ sid main contrib non-free
  5. Hacer la actualización del listado de paquetes:
    aptitude update

Ahora puedes usar el programa desde tu Rasberry Pi localmente o usando ssh…pero ten en cuenta que será algo lento. Disfrútalo!

Referencia: Página de SubDownloader

, , , ,

2 Comentarios