Etiquetas

lunes, 9 de septiembre de 2013

Raspberry Pi crear initramfs para usar UUID u otras features

Estas líneas surgieron a propósito de una incomodidad: no poder usar UUID para identificar la partición del sistema de archivos raíz en mi Raspberry Pi. Eso me llevó a la sospecha de que para hacerlo funcionar sería necesario crear un sistema inicial de archivos en RAM, más conocido como initramfs. Siguen aquí los pasos para crear esa configuración, que fueron mucho más sencillo de lo que yo esperaba.


Estas notas son un borrador ya que resta probar que la configuración sea estable, pero por el momento viene funcionando sin problemas.
Aclaración: si vas a hacer esto, está claro que es por tu cuenta y riesgo. Para hacerlo, es mejor contar con una SD de pruebas, hacer backup y todo lo que consideres apropiado para la integridad de tus datos.



Estas pruebas me llevaron a reforzar más aún un argumento que se está convirtiendo en mi credo: "La pequeña Raspberry Pi se apoya en los hombros de un gigante", ese gigante es Linux, pero también Debian porque en el caso de Raspbian la Raspberry Pi es heredera de las dos décadas de trabajo de la comunidad mundial de Debian. Lo digo, porque para que crear un initramfs sea una tarea simple es porque se pudieron usar las herramientas initramfs-tools de Debian, encargadas de la magia de la trastienda de la creación del initramfs. Sin Linux la Raspberry Pi sería un pedacito de fierro del tamaño de una tarjeta de crédito, y poco más.

Incomodidad inicial

Para experimentar y entender cómo funcionaba el proceso de boot de la Raspberry Pi decidí crear una tarjeta SD (de 512 Mb que me facilitara mi amigo @DiegoRAM). Esa tarjeta SD sólo contiene la partición /boot, que guarda el firmware Raspberry Pi y el kernel Linux. Por cómo es la arquitectura de la Raspberry Pi, hay que recordar que es obligatoria usar una tarjeta SD, con sistema de archivos tipo VFAT.
La partición raíz la instalé en un USB stick de 8Gb ¿El motivo? Sólo experimentar, per-jodere o "Just for fun". Para ciertas configuraciones, en las que se requiera uso intensivo de escritura en el siste de archivos, ej un servidor web que usara un base de datos en la misma Raspberry Pi resultaría conveniente "aislar" las particiones de datos (la raíz y quizá otros F.S como /var) fuera de la tarjeta SD de inicio.
Queda claro entonces que para estas pruebas usé un usb stick (8Gb) pero podría haberse usado un disco duro, por ejemplo.

Cómo crear los sistemas de archivos y copiar los archivos no lo detallo aquí, para no extenderme demasiado. Es simplemente usar herramientas *nix estándar como fdisk, mkfs... rsync. En resumen, tenemos dos particiones creadas, la /boot en la SD 512 Mb y la raíz (/) en el USB stick, ambas con los archivos estándares contenidos en la iso de Raspbian.

La configuración por defecto de los archivos que componen el firmware RasPi y el kernel trae un arhivo llamado cmdline.txt que es el encargado de pasarle los parámetros al kernel, en momento de boot:

pi@raspberrypi ~ $ cat /boot/cmdline.txt.ori
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

boot= le indica al kernel dónde debe buscar el File System raíz (/). Por defecto, en la imagen de Raspbian ese F.S está en la segunda partición de la SD, como en este caso ésta no existe le indicamos que la busque en la partición del USB stick:

pi@raspberrypi ~ $ cat /boot/cmdline.txt.ori
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/sda1 rootfstype=ext4 elevator=deadline rootwait

También debe alterarse el /etc/fstab:

proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 2
#/dev/mmcblk0p2 / ext4 defaults,noatime 0 1
#/dev/sda1 / ext4 defaults,noatime 0 1
UUID=fa5e974b-7360-45c3-9f35-67a090f34bdd / ext4 defaults,noatime 0 1
# a swapfile is not a swap partition, so no using swapon|off from here on, use dphys-swapfile swap[on|off] for that

Como se ve, el montaje de la partición raíz original ( /dev/mmcblk0p2 ) está comentado y reemplazado por el FS contenido en el usb stick.


Mientras hacía esto percibí que muchas personas que utilizan un sistema de archivos externos en la Raspberry Pi en realidad utilizan la partición raíz /dev/mmcblk0p2 (en cmdline.txt) y luego montan el FS raíz en un segundo paso en /etc/fstab. Esto no tiene nada de malo, sólo que agrega un paso extra al proceso de boot. En caso de que el FS root en la SD fallara la RasPi no iniciaría.

Hasta este punto todo funcionaba bien la RasPi booteaba sin problemas, todo funcionaba como de costumbre.
Bien, he aquí cómo se originó el problema. No habría mucho problema siempre y cuando en cmdline.txt pasaramos al kernel el parámetro root=/dev/sda1 o cómo el kernel se dignase de identificar nuestro usb stick. Quien lleve un tiempo usando linux, discos scsi, s-ata o pendrives conocerá, algun problema puede ocurrir: el nombre del dispositivo puede cambiar. Ejemplo si alguna vez booteáramos la RasPi con otro pendrive conectado nada asegurará que nuestro usb stick (o hd) siga llamándose /dev/sda1.
Por eso yo quería usar UUID Universal Unique Identifier (véase http://en.wikipedia.org/wiki/Uuid ). Ese es el modo en que el kernel, en cualquier arquitectura puede identificar un dispositivo de forma más confiable.

Los UUID se pueden ver con blkid:

pi@raspberrypi ~ $ blkid
/dev/mmcblk0p1: SEC_TYPE="msdos" LABEL="boot" UUID="7709-6D92" TYPE="vfat"
/dev/sda1: LABEL="rootfs" UUID="fa5e974b-7360-45c3-9f35-67a090f34bdd" TYPE="ext4"

Aquí vemos que mi FS en el usb stick tiene la UUID=fa5e...blah...blah.

La solución debía ser simple, tan simple como agregar la UUID en el cmdline.txt, inclusive así se menciona en ciertos posts:

cat /boot/cmdline.txt
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=UUID=fa5e974b-7360-45c3-9f35-67a090f34bdd rootfstype=ext4 elevator=deadline rootwait rootdelay=5

Pero... Así la cosa no funcionaba. El bootloader (configurable a través de cmdline.txt) le pasa el parámetro al kernel, pero este no puede identificar la partición por su UUID. Una vez que el kernel se cargaba, no hay problema en /etc/fstab ese problema no existe.
Luego de investigar un poco llegué a la conclusión que el bootloader no podía pasar así por así la UUID al kernel. Hacía falta un FS de inicio en RAM, más conocido como initramfs o initrd según su variante.
Para llegar a esta conclusión este thread fue fundamental http://forum.stmlabs.com/showthread.php?tid=9966.


Mundo PC / Mundo RasPi


La mayoría de las distribuciones actuales de Linux/GNU utilizan entre las diferentes etapas del proceso de inicio o boot un sistema de archivos en memoria RAM, cuyo objeto es cargar módulos del kernel indispensables para poder continuar con el proceso. De esa forma, la "pisada" del kernel en memoria se reduce porque sólo se van cargando los módulos bajo demanda.
Por defecto, el firmware Raspberry Pi no utiliza un initramfs. Para usar UUID había que crearlo.

Como el kernel stock (por lo menos el de raspbian) no trae por defecto el soporte para initramfs había que compilarlo:

UPDATE 10/10/2013: Hicimos un pedido a los mantenedores del firmware y el kernel Raspberry Pi https://github.com/raspberrypi/linux/issues/392 y muy amablemente y en poquísimos días nos agregaron el feature en el stock kernel de testing. Eso simplifica mucho este proceso porque no se requiere ya recompilar el kernel y además, con sucesivos rpi-updates no vamos a perder el soporte para initrd.
Para bajar el stock kernel de pruebas (3.10.15+) al momento de escribir estas líneas:

# export BRANCH="next" && rpi-update

Luego de clonar el git de desarrollo debe instalarnos el kernel de la rama "next" (testing) con el soporte para initrd, que luego del reboot se puede verificar con:

$ zcat /proc/config.gz | grep -i initr
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""

El que opte por usar este kernel stock, puede seguir con los pasos descritos en "Creación del initramfs"

Claro, el que por algún motivo lo desee puede seguir construyendo su kernel "custom", con los pasos descriptos abajo.

1) Compilar

En elinux.org, el site con la mejor documentación sobre Rasberry Pi se describe el paso-a-paso para compilar un kernel, inclusive haciendo cross-compilling: http://elinux.org/RPi_Kernel_Compilation
Siguiendo el paso-a-paso del roadmap de la doc que traduzco abajo, compilar en un Debian 386 fue mucho más sencillo de lo que esperaba:


1) Obtener el código fuente del kernel más reciente, con las características del Raspberry Pi (https://github.com/raspberrypi/linux) en este caso bajé el tarball: $wget https://github.com/raspberrypi/linux/archive/rpi-3.6.y.tar.gz
2) Establecer la variable del entorno KERNEL_SRC que apunte al lugar del código fuente: ( e.g. export KERNEL_SRC=/home/me/linux/ )
3) Obtener el compilador para ARM variante raspberrypi (git clone https://github.com/raspberrypi/tools)
4) Establecer variable de entorno CCPREFIX para apuntar a la localización del las herramientas de compilación ( e.g. export CCPREFIX=/home/me/tools/arm-bcm2708/arm-bcm2708-linux-gnueabi/bin/arm-bcm2708-linux-gnueabi- )
5) Desde el directorio donde se ubica el kernel, limpiar con "make mrproper"
6) Copiar la config default de un raspbian, copiando el archivo /proc/config.gz desde un Raspbian corriendo (porque el fs /proc corre en memoria).
7) En el directorio del fuente del kernel zcat config.gz > .config. Y correr "ARCH=arm CROSS_COMPILE=${CCPREFIX} make oldconfig"
8) Modificar la configuración del kernel ya sea alterando .config file o usando "ARCH=arm CROSS_COMPILE=${CCPREFIX} make menuconfig". Deberemos buscar la opción para habilitar initramfs, bajo la sección "General Setup" como se puede ver en la imagen.

9) Construir el nuevo kernel usando "ARCH=arm CROSS_COMPILE=${CCPREFIX} make" (ir por una cervecita)
10) Establecer variable de entorno MODULES_TEMP para apuntar a la localización del fuente ( e.g. export MODULES_TEMP=/home/me/modules/ )
11) Aislar los módulos del nuevo kernel usando "ARCH=arm CROSS_COMPILE=${CCPREFIX} INSTALL_MOD_PATH=${MODULES_TEMP} make modules_install"
12) Desde la ubicación de las herramientas de compilación en el directorio mkimage correr: "./imagetool-uncompressed.py ${KERNEL_SRC}/arch/arm/boot/zImage"
13) Mover el kernel resultante como kernel.img al directorio /boot/ de la raspberry Pi, previamente habiendo guardado una copia del original (mv /boot/kernel.img /boot/kernel.img.stock)
14) Empaquetar los módulos en un archivo (ej. tar) para que queden en el top-level de la jerarquía, con la estructura como sigue:
./firmware
./firmware/brcm
./firmware/edgeport
./firmware/emi26
...
./modules
./modules/3.6.11+
./modules/3.6.11+/kernel
./modules/3.6.11+/kernel/lib
./modules/3.6.11+/kernel/fs
...
15) Mover el archivo con los módulos al directorio raiz de la raspberry Pi y extraerlos, de modo que se sobre-escriban en /lib/firmware y /lib/modules. Previamente hacer backup de esos directorios.
16) Esto no fue necesario porque ya tenía el firmware en /boot (git://github.com/raspberrypi/firmware.git)

17) Transferir el contenido del directorio firmware/hardfp/opt al directorio /opt de Raspberry pi.
18) Reboot de la Raspberry Pi


Creación del initramfs


Ahora se debe crear el initramfs, que gracias a las herramientas provistas por Rasp(DE)bian resulta muy sencillo.

Si no está instalado en la Raspberry vamos a precisar el paquete initramfs-tools:

# aptitude install initramfs-tools

Habiendo booteado con el kernel "custom", verificamos el soporte para initramfs:

root@raspberrypi:~# uname -r
3.6.11


root@raspberrypi:~# zcat /proc/config.gz | grep -i initr
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
Nos muestra que este kernel fue compilado con el parámetro de soporte para initrd.

Entonces, a crear la el FS:

# update-initramfs -c -k `uname -r` -v

Aquí el único cuidado es ingresar la versión del kernel "destino" del fs init. Si ya booteamos con el kernel que vamos usar podemos usar uname -r, si no más vale ingresar la versión del kernel a mano.

Eso creará el archivo /boot/initrd.img-3.6.11

El contenido del F.S de inicio se puede ver fácilmente con:

root@raspberrypi:~# lsinitramfs /boot/initrd.img-3.6.11 | less


Ahora debe alterarse el archivo config.txt del firmware Raspberry Pi para usar initramfs, agregamos esta línea:

# Test de initramfs, generado con initramfs-tools de DEBIAN
initramfs initrd.img-3.6.11 followkernel


A pesar de que hay cierta controversia en este punto, si al parámetro initramfs debe pasarsele una direccion
de memoria donde cargar el f.s, la opción followkernel funcionó. Aclaro, usando la versión más reciente del
firmware.


Ahora boot usando UUID (que no funcionaba sin el initrd):

pi@raspberrypi ~ $ cat /boot/cmdline.txt
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1
root=UUID=fa5e974b-7360-45c3-9f35-67a090f34bdd rootfstype=ext4 elevator=deadline rootwait rootdelay=5

Podemos verificar que haya arrancado:

pi@raspberrypi ~ $ dmesg | grep -i uuid
[ 0.000000] Kernel command line: dma.dmachans=0x7f35 bcm2708_fb.fbwidth=656 bcm2708_fb.fbheight=416
bcm2708.boardrev=0xd bcm2708.serial=0xe90f78bb smsc95xx.macaddr=B8:27:EB:0F:78:BB
sdhci-bcm2708.emmc_clock_freq=100000000 vc_mem.mem_base=0x1ec00000 vc_mem.mem_size=0x20000000
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1
root=UUID=fa5e974b-7360-45c3-9f35-67a090f34bdd rootfstype=ext4 elevator=deadline rootwait rootdelay=5


Hacerlo requiere un cierto conocimiento y tener un background con Linux, los scripts de Debian initramfs-tools hicieron la cosas mucho más sencilla de lo que habría sido crear un initrd de la nada.

Algo que habrá que tener en cuenta, a partir de este momento habrá que tener cuidado con rpi-update, porque seguro va a sobreecribir el kernel, y los archivos de config.












Continuar »

miércoles, 21 de agosto de 2013

Montar partición contenida en imagen

Las particiones contenidas en una imagen pueden extraerse con la herramienta dd, pero es más eficaz montarlas con la opción loop y offset de mount. Esto puede servir para ver o "trabajar" a partir de las imágenes de Raspbian u otras distros para Raspberry Pi.



En este ejemplo trabajamos con la imagen 2013-07-26-wheezy-raspbian.img, de raspbian.

$ /sbin/fdisk -ul 2013-07-26-wheezy-raspbian.img
GNU Fdisk 1.2.4
Copyright (C) 1998 - 2006 Free Software Foundation, Inc.
This program is free software, covered by the GNU General Public License.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.


Disk /mnt/backup/RaspberryPi/raspbian_img/2013-07-26-wheezy-raspbian.img: 1 GB, 1932940800 bytes
255 heads, 63 sectors/track, 235 cylinders, total 3775275 sectors
Units = sectors of 1 * 512 = 512 bytes

Device Boot Start End Blocks Id System
/mnt/backup/RaspberryPi/raspbian_img/2013-07-26-wheezy-raspbian.img1 8192 122879 64228
c FAT32 LBA
Warning: Partition 1 does not end on cylinder boundary.
/mnt/backup/RaspberryPi/raspbian_img/2013-07-26-wheezy-raspbian.img2 122880 3788799 1831410
83 Linux
Warning: Partition 2 does not end on cylinder boundary.

Las opciones a fdisk: -u indica que use como unidad bloques y -l lista.

Lo que nos interesa son los sectores de inicio ("Start"), para pasarselos a mount con el parámetro offset. Vemos que el sector de inicio de la particion de boot (FAT32) es 8192. Ese número lo multiplicamos por 512 (el tamaño de cada bloque). Nos da: 4194304.

Entonces, como root montamos la particion:

Creamos los puntos de montaje:
mkdir boot raiz

Y montamos la partición de boot de raspbian, que contiene todo el firmware y la imagen del kernel:

# mount -o ro,loop,offset=4194304 -t auto 2013-07-26-wheezy-raspbian.img boot

# ls boot/
bootcode.bin cmdline.txt config.txt fixup_cd.dat fixup.dat fixup_x.dat issue.txt kernel_emergency.img
kernel.img start_cd.elf start.elf start_x.elf

Ahora la raiz de Raspbian:

# mount -o ro,loop,offset=62914560 -t auto 2013-07-26-wheezy-raspbian.img raiz/

Véase que offset=62914560 viene de multiplicar el sector de inicio de la partición 122880 * 512.

# ls raiz/
bin boot dev etc home lib lost+found media mnt opt proc root run sbin selinux srv sys tmp
usr var

Veamos los tamaños de las particiones:

# df -h boot/
S.ficheros Tamaño Usados Disp Uso% Montado en
/dev/loop0 56M 19M 38M 33% /mnt/backup/RaspberryPi/raspbian_img/bootcode

La de boot tiene 56M aprox. Y la raiz: 1,8G:

# df -h raiz
S.ficheros Tamaño Usados Disp Uso% Montado en
/dev/loop1 1,8G 1,4G 266M 85% /mnt/backup/RaspberryPi/raspbian_img/raiz

Continuar »

lunes, 12 de agosto de 2013

40 años de video juegos en el centro de Buenos Aires

El museo de la informática ICATEC, que desde hace pocos meses abrió su sede propia -antes realizaba muestras itinerantes- presenta al público durante el mes de agosto la muestra "Play The Game" un recorrido por las distintas generaciones de consolas de videojuegos y computadoras. La propuesta incluye la posibilidad de poder jugar con juegos corriendo sobre el hardware original, como la famosa Nintendo NES, que a fines de los '80 popularizó el Mario Bros.



Sobre la muestra conversamos en la columna de Tecnología en "Dinero por nada", programa de Radio América AM 1190 Khz, que dirigen Horacio Riggi y Julieta Camandone.

La cita es en Tucumá 810, Capital Federal. Horario de apertura al público:

Jueves y Viernes de 15 a 20 horas
Sábados de 14 a 19 horas
Bono contribución: $ 10

Site: http://www.museodeinformatica.org.ar/ Continuar »

domingo, 11 de agosto de 2013

Play the game: 40 años de video juegos

Play the game, es el nombre que la gente de ICATEC, la Fundación Museo de Informática, Computadoras y Accesorios Tecnológicos dio a la muestra que está abierta al público durante todo el mes de agosto.
Allí podrán verse y jugar con una pléyade de consolas organizadas en cuatro generaciones.

Pese a mis años, no había conocido la legendaria Nintendo NES original más que en fotos y por los emuladores para PC. En cambio conocí uno de sus clones más o menos "piratas", el Family Game, que hace poco cumplió 30 años. Por estos pagos, el family fue popular de veras allá por comienzos de los años '90.

Hoy, los niños pudieron jugar con muchas de las consolas que se exponen en el museo de la informática ICATEC. Curiosamente, les llamó la atención el bucólico pong que se veía en una tele blanco y negro. Para niños chicos, eso debe ser algo así como un fósil, pero aún en movimiento. Posiblemente sea también una muestra del poder de la abstracción, es decir, que quizá jugar un rato con "algo" (dos rectángulos y un cuadradito) que poco tienen de analógico con un tenis quizá tenga algo de diversión aún. Aunque sea por un rato.

O al menos, para generaciones acostumbradas al hiper-realismo de la representación de los videojuegos actuales eso debe ser sin dudas sumergirse en un pasado arcaico y abstracto.


La muestra

La muestra está organizada en cuatro generaciones de consolas. La primera, en la lejana década del '70 tenía como exponentes a consolas como la Atari Pong, como se la puede ver en la imagen de abajo

Además la muestra cuenta con muchas otras Atari, de fines de los '70
como la mítica y exitosísima 2600. De la que recuerdo que un amigo de primaria tenía una y nos pasabamos alternando fútbol y consola.
Digresión: Atari tenía un CEO ultravisionario e inteligentísimo, Nolan Bushnel que a fines de los años '70 acogió -y toleró- al jóven Steve Jobs.
Entre los fichines, el salón del museo tiene al mítico Tetris.
No faltan las computadoras "hogareñas" de los '80, que se usaban casi exclusivamente como consolas, como las Commodore 64 y 128, o las MSX.
Entre las perlas, hay muchas. Pero me sorprendió la historia de la última consola de Atari: la Jaguar, que abrió el camino a las de la siguiente generación como la Playstation de Sony. La Jaguar de Atari fue lanzada en 1993 y tenía un hardware descomunal:
Sus competidores Sega y Nintendo venían ganandole a Atari más y más cuota de mercado. Con la Jaguar Atari intentó acortar la brecha. Jaguar funcionaba a 64 bits, cuando sus competidoras seguían con 16 bits. En realidad conseguían los 64 bits usando 5 procesadores de 32 bits contenidos en dos chips que funcionando en paralelo y un coprocesador Motorola 68000, una GPU a 26,591Mhz funcionando a 26,591 MIPS, un bus de datos de 64 bits y una memoria DRAM de 2MB.

Esas y otras sorpresas quizá le depare al visitante la muestra "Play the Game". Vale la pena visitarla. La cita es durante todo el mes de agosto, en Tucumán 810, en el centro porteño. Está abierto los jueves y viernes de 15 a 20 hs y los sábados de 14 a 19 hs.

Cabe destacar que el museo es iniciativa de entusiastas y expertos en preservar el parque informático del país para futuras generaciones. Se mantienen con el aporte de empresas y las donaciones de particulares. El bono contribución es de $10.


Continuar »

sábado, 10 de agosto de 2013

Gabinete para Raspberry Pi

A estas alturas la Raspberry Pi no necesita mayores presentaciones, porque se ha vuelto bastante popular.
Para aquellos que no la conozcan aún, la Raspberry Pi es una SBC (Single Board Computer) del tamaño de una tarjeta de crédito aproximadamente. Fue lanzada en Gran Bretaña a principios de 2012. Si bien su hardware está quedando un poquito antiguo (viene con una CPU ARM11, de la arquitectura ARMv6) lo más revolucionario es su precio: 35 dólares estadounidenses.
Aquí muestro un gabinete estándar que fue adaptado para alojar la Raspberry Pi en su interior junto con un hub usb, periférico indispensable.

Por su precio y tamaño tiende a pensarse que la Raspberry Pi es la mejor opción para sistemas embebidos o un appliance que tienden a correr un número limitado de aplicaciones. No tengo nada contra eso, pero no hay que olvidar que la Raspberry Pi es una computadora de uso general, y por lo tanto sus usos pueden ser sumamente variables, pero en todos los casos aprovechando las capacidades que ofrece GNU/Linux: ser un sistema multiusuario, multitarea y, hasta donde sé, multiproceso (con algunas limitaciones) Véase: http://www.raspberrypi.org/phpBB3/viewtopic.php?f=2&t=5326
Creo, sinceramente, que una vez que uno definió las "aplicaciones" o si hará de su RasPi un appliance o una compu de uso general, uno tiene que encontrar el gabinete que mejor se adapte a la función (ahora que lo escribo esto parece super Bauhaus loco).

La idea inicial de este proyecto fue: intentar hacer un gabinete más o menos del tamaño de un thinclient, que en su interior tuviera la Raspberry Pi, con su tarjeta SD algo más protegida que en los gabinetes estándar y un hub USB. Éste último es el periférico indispensable, porque no hay que perder de vista que la corriente máxima que puede ofrecer cada puerto USB es de 500 mA (digamos algo menos), y mucho más que esa corriente no puede circular por el circuito de protección de la RasPi. El síntoma más evidente de problemas de alimentación o una fuente insuficiente suele ser cuelgues inesperados de la RasPi. Otro punto al que hay que prestarle atención es que algunos cables USB suelen ser muy malos, porque sus conductores son extremadamente delgados, lo que produce que a mayor consumo mayor sea la caída de tensión en el cable. Después de todo todo conductor se comporta como una resistencia que responde a las leyes del viejo Ohm.
El único requisito que me impuse al comenzar es que no modificaría en nada la placa original de la RasPi. Si quisiera cambirla de gabinete sólo la tendría que desatornillar y a otra cosa. Como contrapartida, esa decisión implica ocupar más espacio en el interior del gabinete.

Mi proyecto original era usar un gabinete de aluminio, pero para esta primera RasPi opté por uno plástico. La verdad es que es muy sencillo trabajar. El gabinete lo compré en http://www.gabiart.com.ar.

La verdad que diseño de la RasPi complica bastante hacer algunos moddings, ponerla en gabinetes que no sean los estándares. La razón principal: que tiene conectores de I/O en tres de sus caras, y en la restante el zócalo de la tarjeta SD. Como el objetivo era no desoldar nada de la placa, lo que hice fue hacer "extensiones" para cada uno de los conectores, a excepción del hdmi, el cual se accede directamente.
Esta foto muestra ya el trabajo en el frente y tapa posterior casi terminado. Atrás a la izquierda el jack para la entrada de +5v que alimenta la RasPi como el Hub. En el centro de la parte posterior, la abertura para el plug hdmi y a la derecha el jack RJ-45 para la ethernet. En esa imagen aún no había agregado los orificios para los jack de audio y RCA de video compuesto.
Todos los agujeros fueron hechos solamente con un par de mechas y limas para darles la forma adecuada.

Lo que sí modifiqué un poquito fue el hub USB. Utilicé uno chinísimo (con DOC: Denominación de Origen Controlada) si se me permite la humorada. En él, desoldé los jacks USB. Los nuevos jacks del frente los soldé en una plaqueta universal y le hice extensiones con cable plano, que van hasta la plaquita del USB.
Otro de los USB va en la parte de atrás, como se ve en la imagen.

Sobre la base del gabinete pegué los separadores plásticos (con la Gotita, trademark by PoxyPol) donde se atornilla la placa de la RasPi.

En esta segunda imagen se pueden ver más de los componentes, ya montados. La RasPi, el hub chinísimo, con sus extensiones. En la de abajo, ya con todo conectado y funcionando.
La forma de alimentar la RasPi merece un comentario breve. Por qué sus diseñadores le habrán puesto un jack micro-usb cuando la mayoría de las SBC viene con un jack de dos conductores? Yo creo que para que forzando a los usuarios a usar un cargador de celular se evitara aplicar una tensión incorrecta. Supongo.
Pero lo cierto es que por el micro-USB no creo que pueda circular demasiada corriente (la RasPi modelo B requiere a la fuente unos 700mA). Por eso, encontrar un conector micro-usb para conectarle fue la parte más dificil del proyecto, porque no son muy populares. Queda por averiguar si es que la placa se puede alimentar por algún PIN del GPIO, ya que eso ayudaría.




Aquí se ve el aspecto exterior, al frente y posterior.

Work in progress

Así es como está el estado actual de este proyecto, que me dió algo más de diversión los fines de semana. Quedan cosas por hacer, como intentar darle algún acabado que le otorgue algo de eye-candiness. Eso no es sencillo, pero ya se verá.
Un tema que me preocupaba un poco era la temperatura del SoC de la RasPi, la pastilla que contiene la CPU y la GPU. La estoy usando sin overclocking, y sin disipadores. De momento todo va bien. Pero tiendo a pensar que si se quiere hacer overclocking u overvolting habrá que buscar alguna solución térmica, como abertura para que el aire circule o los indeseables ventiladores.


Continuar »

domingo, 7 de julio de 2013

Douglas Engelbart, creador del mouse nos dejó

Esta semana el Dr. Douglas Engelbart falleció a los 88 años, de una insuficiencia renal.
Entre otros muchos logros, el científico creó el mouse y vislumbro con absoluta clarividencia lo que habría de ser el futuro de la computación personal para los siguiente '60 años.
Con la llegada de dispositivos táctiles acaso el mouse y el escritorio convencional parecieran tener los día contados. Pero siempre está por verse si es que un dispositivo simple y eficaz puede encontrar un sucesor que lo supere en practicidad de uso.
Sobre ese y algunos otros temas conversamos en la columna de tecnología del programa "Dinero por nada", por Radio América AM 1190 Khz, los sábados a las 16 hs.



En 1968 el Dr. Engelbart hizo una presentación que quedaría en la historia, además del mouse y de una incipiente Interfaz Gráfica de Usuario (o GUI) la presentación contó con una videoconferencia. En inglés, se la puede ver en https://www.youtube.com/watch?v=yJDv-zdhzMY

Continuar »

miércoles, 19 de junio de 2013

Google pone a prueba su proyecto Loon en Nueva Zelanda

Loon: en inglés, alocado (¿recuerdan los clásicos de la animación Looney tunes?). Los globos siempre han tenido un lugar importante en la imaginación y en la vida de niños y hombres, desde Julio Verne hasta Jorge Newbery.
Google dió ese nombre, jugando con la palabra baloon ("globo") al proyecto con el cual pretende ofrecer internet a bajísimo costo para llegar a parte de los 2/3 de la población mundial que todavía no tiene conexión a la red.
Sobre ese tema conversamos este domingo en la columna de Tecnología en "Dinero por nada", que va los domingos a las 16 hs por Radio América, AM 1190 khz.




Puede parecer alocado. Pero el proyecto requiere del conocimiento y la experimentación no sólo de ingenieros sino de físicos, meteorólogos y científicos de diversas especialidades. Requiere, como todo gran proyecto por más alocado que sea del trabajo en equipo.
Actualmente, el aspecto físico de la red que conocemos como Internet lo constituye un entramado submarino de fibras ópticas que conectan los distintos países y continentes entre sí.
En el tramo de acceso final, entre los PSI ("Proveedores de Servicio de Internet, en inglés ISP), se utilizan diversos medios físicos o inalámbricos de conexión. Puede ser fibra óptica, cobre en el caso del "cablemodem" o el ADSL o también las redes por ondas de radio tipo 3G o similar, que en su mayoría explotan las compañías de servicios de telefonía móvil.
Según Google en muchas partes del mundo esos servicios aún no tienen la universalidad que debieran tener. Recordemos que el negocio de Google es que el número de usuarios de internet crezca, porque así crece su potencial audiencia publicitaria.
Según estimaciones del gigante de la publicidad on-line, dos terceras partes de la población mundial no cuenta con acceso a internet.
La imagen que acompaña estas líneas pertenece a Google e ilustra el principio básico de funcionamiento del proyecto Loon. Se trata de poner en la estratósfera, a unos 20 Km de altura globos que transporten equipos de radiofrecuencia para ofrecer acceso a internet por vía inalámbrica. Los globos no estarían estáticos, sino que aprovecharían los vientos que circulan en la estratófera para cubrir vastas áreas del planeta. El principio es que con un grupo de globos podría cubrirse una vasta área ubicada en las márgenes de cierta latitud. Ese esquema debería repetirse para otras latitudes.
Este mes de junio en la provincia de Canterbury, Nueva Zelanda se está realizando una prueba piloto.

Más información oficial de Google en español y videos sobre el proyecto Loon pueden verse en: http://www.google.com/intl/es-419/loon/
Esta prueba piloto puede seguirse a través de la red social Google+ https://plus.google.com/+ProjectLoon/posts

Continuar »

lunes, 17 de junio de 2013

La actualidad de un juguete con mucha historia: el Meccano

En la columna de tecnología del programa "Dinero por nada", que se emite por Radio América los domingos a las 16 hs, el domingo 9 de junio hablamos sobre la actualidad de un juego con mucha historia y que es mucho más que un juguete: el Meccano y sus parientes. El audio se encuentra disponible en el enlace de abajo.




Continuar »

lunes, 3 de junio de 2013

La Estación Espacial Internacional migra sus notebooks a Debian

Debian al infinito, y más allá. Las agencias espaciales que gestionan la Estación Espacial Internacional decidieron iniciar la migración de las docenas de laptops que se usan en la estación para que usen Debian, una de los sabores (distribuciones) del sistema operativo de colaborativo y de Código Abierto, Linux/GNU.

Google retira de su tienda Google Play aplicaciones de pago de origen argentino. Esta medida genera preocupación por parte de los desarrolladores argentinos, que de momento, no podrán obtener beneficios económicos que generaban las ventas de sus productos en la tienda en línea de Google.

Escuchar el audio de la emisión del 02 de junio de 2013 de la columna Tecnología en el programa "Dinero por nada", que dirigen Horacio Riggi y Julieta Camandone por Radio América AM 1190 KHz, domingos de 16 a 17 hs.





Una medida de Google que está preocupando a los desarrolladores de aplicaciones para Android del país es la decisión por parte de Google de retirar todas las aplicaciones de pago de origen argentino. Según informó el site especializado celularis.com, los desarrolladores argentinos dados de alta en Google Play recibieron un correo electrónico con el anuncio y deberán dar de baja sus aplicaciones de pago antes de fines de junio. Podrán continuar ofreciendo, sin embargo, sus aplicaciones de forma gratuita.


Fuentes:

http://www.celularis.com/google/pagos-de-google-play-en-argentina/


http://training.linuxfoundation.org/why-our-linux-training/training-reviews/linux-foundation-training-prepares-the-international-space-station-for-linux-migration


Continuar »

domingo, 26 de mayo de 2013

Abre sus puertas el Museo de la Informática

El próximo 7 de junio abrirá sus puertas al público el Museo de la Informatica, el primero en su género en el país. Luego de funcionar algún tiempo sin sede propia, ahora el Museo cuenta con un espacio destinado a exhibir su colección. El museo cuenta con un acervo importantísimo de equipos históricos, de las décadas del '70, '80 y '90.

Escuchar el audio de la emisión del 26 de mayo de 2013 de la columna Tecnología en el programa "Dinero por nada".




Desde el próximo 7 de junio, todos los viernes por la tarde el Museo de la Informática abrirá sus puertas al público. Su sede está ubicada en la calle Tucumán 810, Planta Baja.

La Fundación Museo ICATEC (Museo de Informática, Computadoras y Accesorios TECnológicos), iniciada por sus fundadores Alicia Murchio y Carlos Chiodini tiene un foco en preservar el patrimonio tecnológico con una finalidad pedagógica para las nuevas generaciones. Según señala su sitio web (www.museodeinformatica.org.ar):

“Conservar, preservar y exponer el patrimonio informático de nuestro país para conocimiento de futuras generaciones y resguardar la memoria de los pioneros que tuvieron una participación activa en los procesos más importantes de la historia de la computación en la Argentina.
Integrar a varias generaciones a través de un interés común, como es la tecnología, posibilita un mejor diálogo y mayor participación, solidaridad e inclusión en la sociedad”.


Un viaje retro

Personalmente, tengo una enorme expectativa de conocer el museo para poder ver equipos con los que soñaba cuando tenía poco más de diez años. Eran tiempos en los que cada computadora tenía un diseño y una arquitectura que alas diferenciaba de las competidoras. El mercado estaba altamente fragmentado, había distintas CPUs mutuamente incompatibles y un lenguaje de dudosareputación (BASIC) dominaba el panorama. Tiempo después tuvimos que "desaprender" BASIC para entender mejor que aquel lenguaje podía conducir a malas prácticas a la hora de programar.
Mi primera computadora, una Radio Shack Coco II me regaló años de felicidad. Aún cuando grabara mis programas en cintas de cassette, porque nunca llegué a tener una unidad de Floppy. Años después descubrí que aquella joya de 8bits podía correr una versión de Unix multitarea y multiusuario, como me hubiera gustado verlo.

Otras, que veíamos en las fotos de revistas norteamericanas y que eran inalcanzables por su precio y acceso desde la Argentina de los años '80 como la Apple II había sido diseñada por Steve Wozniack. Sabíamos que en los Estados Unidos existía un Valle del Silicio y ese era un lugar mítico, construido por las crónicas de las revistas, por ejemplo la K-64.
Otros modelos de lo que se llamaba "Home Computers" eran las TI-99 de Texas Instruments o la Timex Sinclair, del Z-80 en adelante. De esos equipos se construyeron clónicos a lo largo de todo el mundo. Todos ellos forman parte del acervo del Museo y muchos de ellos fueron la puerta de entrada para entusiastas, aficionados y profesionales de la informática.
También hay lugar para equipos más sofisticados y que hicieron historia, como la IBM 5150, la primera "IBM PC", lanzada al mercado en agosto de 1981.
Creo que a partir de los años '90 sólo el desarrollo de sistemas abiertos como GNU/Linux o los BSDs fueron los que hicieron que otra vez le pusieramos diversión a nuestras computadoras. En eso creo que el eslógan del site Distrowatch da totalmente en el clavo ("Put fun into computing: use Linux, BSD..."). Los años que siguieron a las home computer, mientras las PCs usaban el MS-DOS eran tristes :)


Habían otras cosas en los años '80 haciendo memoria. Un programa semanal llamado "El Club de la Computadora" que iba los domingos a la tarde por canal 2 de La Plata y lo dirigía Johnny Allon. Sí señores, leyeron bien. Un pionero.
También una serie de ficción que consumíamos con avidez: "Whiz-kids" su título original pero que en la Argentina se conoción como "La Pandilla de la Computadora", pasen y vean la presentación:


Continuar »

domingo, 28 de abril de 2013

Rock & FOSS - Cómo los "Deadheads" compartían música y crearon Comunidad en los años '60

El 26 de abril se conmemoró el Día Internacional de la Propiedad Intelectual, conmemoración promovida por la OMPI, Organización Mundial de la Propiedad Intectual. Según dicha organización, dependiente de Naciones Unidas, los sistemas de patentes y copyright garantizan la innovación. Otros analistas sostienen, en cambio que tienden a "criminalizar" los hábitos que internet viabilizó.
Pero hay un caso ya de casi 50 años de edad que puede enseñarnos cómo los músicos permitieron que sus creaciones fueran libremente copiadas y compartidas siempre y cuando sus fanáticos no lucraran con ello. Y además lograron hacer buenos negocios. Es la historia de Greatful Dead y de la contracultura de San Francisco, que previeron las licencias Creative Commons o la GPL.





Creo que uno no debería temer equivocarse al afirmar (al menos así lo creo) que una de las mayores influencias sociales en el surgimiento del software libre (o de código abierto) -FOSS- proviene de la contracultura de los años '60, del "flower power" y la vida comunitaria que el hippismo ensayó por entonces.
Indudablemente varios elementos de lo que fue aquel movimiento marcaron a fuego al código abierto. De hecho, muchos de los primeros hacker, de los '60 y los '70 eran fervientes creyentes de lo "alternativo" y lo "contracultural".
Posiblemente el área de San Francisco en California, no haya sido solamente terreno fértil solo para la música y el movimiento hippie. Lo fue también, sin duda, para la tecnología informática.
Un punto en el que se entrecruzan el Rock y el FOSS es Greatful Dead, el grupo emblemático liderado por Jerry García que se formó en Palo Alto.
Fueron músicos Creative Commons "avant la lettre" ¿Por qué? Sencillo, ellos permitían a sus fans -autodenominados "deadheads"- grabar sus conciertos, en aquella época en cintas, y distribuirlas libremente.
Inclusive, los Greatfull Dead ofrecían conexiones directas a la consola de sonido, con lo cual muchas de las grabaciones de sus shows fueron obtenidas con buena calidad de audio.
Greatful Dead no tuvo demasiados temas en los top 40. Pero el secreto de su éxito no estaba en maximizar las ventas de discos. Por el contrario, su truco era crear una comunidad de seguidores, que se reconocieran a sí mismos como grupo, fueron los deadheads.
Además de sus discos, que se comercializaban por el circuito comercial tradicional los Dead ofrecían memorabilia, merchandising, objetos de arte, remeras. Sin haber llegado demasiado alto en los chart llegaron a facturar 50 millones de dólares al año. Y crearon una banda emblemática, tocaron con Dylan, volaron alto.
Musicalmente, otro de sus secretos fue llevar la zapada -jam- al extremo de que cada interpretación en vivo siempre fuera diferente.
Los deadheads no eran sólo consumidores eran parte activa del movimiento que la banda generaba.
No es casual que John Perry Barlow, fundador de la Electronic Frontier Foundation haya sido letrista de The Greatful Dead.

Continuar »

Max Crook, coautor del tema "Fugitiva", un músico hacker

Max Crook fue coautor, junto a Del Shannon del famosísimo y popular éxito "Fugitiva" ("Runaway") el tema de 1961.
Pero Crook fue además inventor y, podría decirse, músico hacker. Porque él creo el Musitron, que era un sintetizador analógico que era, en rigor, un derivado del Clavioline.

(Columna de Tecnología en el programa "Dinero por Nada", en Radio América AM 1190 Khz.



El resultado obtenido fue fabuloso y la interpretación de Crook se destaca en el solo que Crook ejecuta en el Musitron.

En la electrónica de la época para lograr efectos de resonancia o vibrato tenía que recurrirse a dispositivos mecánicos, como cajas de resonancia acústicas. Para agregar efectos de vibrato Crook hizo una caja de resonancia con resortes de puertas de jardín. Además de utilizar componentes de electrónica de la época como válvulas de vacío para la electrónica de su Musitron.
Esa característica artesanal, hacen de Crook un auténtico hacker, capaz de descubrir nuevas funciones para materiales existentes.
Crook no pudo patentar su Musitron, porque muchos de los "módulos" que él integró ya se encontraban patentados con anterioridad.
Continuar »

lunes, 15 de abril de 2013

Linus vs. Tesla: Geekwire elige el mayor geek de todos los tiempos

El sitio www.geekwire.com organizó el concurso "Locura Geek" para elegir el mayor Geek de todos los tiempos.
Eran 32 geeks de toda la historia, de un costado una lista de notables del campo de la tecnología, del otro, célebres matemáticos, físicos como Albert Einstein, Guillermo Marconi, Galileo, Isaac Newton.
Y el ganador es...




El sitio www.geekwire.com organizó un concurso llamado "Locura Geek" para elegir al mayor geek de todos los tiempos.
"Geeks", en sus múltiples acepciones son personas apasionadas por la tecnología o la ciencia y con conocimientos profundos en alguno de esos campos.
Los visitantes http://www.geekwire.com/2013/geek-madness-chance-pick-greatest-geek-time/ debían elegir quién era para ellos el geek más grande de la historia.
En las primeras rondas quedaron atrás personajes importantísimos como Einstein, Thomas Edison, Marie Curie, y del otro costado Bill Gates, Steve Jobs, Mark Zuckerberger.
Llegada la instancia final de la votación, luego de varias semanas, el ganador fue el físico e ingeniero de origen croata Nikola Tesla, que venció a Linus Torvalds.

Continuar »

lunes, 8 de abril de 2013

Se realizó el primer RaspberryJAM en Buenos Aires

El sábado pasado se realizó el primer encuentro de la Comunidad de Usuarios de Raspberry Pi de la Argentina del cual pude participar, con mucha alegría. Estos encuentros informales se los conoce en todas partes como RaspberryJAM y sirven entre otras cosas para compartir experiencias, ideas y conocimiento entre la comunidad. De esta forma conversamos ayer sobre la Raspberry Pi y el primer JAM en Buenos Aires en el programa "Dinero por nada", por radio América AM 1190 Khz.



El sábado en el barrio del Abasto tuvo lugar el primer RaspberryJAM de Buenos Aires, encuentro de la comunidad de usuarios de Raspberry Pi de la Argentina ( http://www.raspberrypi.com.ar/). Los lugares disponibles para el encuentro se agotaron tan solo 48 hs después de que fuera anunciado, lo que es una muestra del interés que despierta esta pequeña computadora de uso general con hardware y software de código abierto.

Sin dudas hay muchos dispositivos que podrían convertirse en revolucionarios, pero sin temor a exagerar demasiado el Raspberry Pi tiene un potencial gigantesco. Este dispositivo desarrollado en el Reino Unido inicialmente por equipos de investigación de la Universidad de Cambridge cuesta actualmente alrededor de 30 dólares estadounidenses. Fue concebido poniendo el foco en la educación, pensando en que el núcleo de sus usuarios sean chicos de escuelas primarias y secundarias.
Haciendo un rápido flashback a mis días en la ENET 28 (El "Cuba"), cómo nos hubiera gustado tener algo parecido a una Raspberry Pi.


Además, el dispositivo fue diseñado con la filosofía de los antiguos "hackers": para que puedas abrirla, conectarla con el mundo, expandirla. Y hasta incluso tolerable a las fallas humanas, si la quemás no es tan cara como una PC. Por eso tiene un potencial educativo extraordinario, que ningún otro hardware y software propietario ofrece.
Raspberry Pi viene a ponerle más diversión a la educación.
Las Raspberry Pi es tan pequeña como una tarjeta de débito, pero por el hecho de estar potenciada por un sistema como GNU/Linux le permite apoyarse sobre los sólidos hombros de un gigante, tomando prestada la frase de Isaac Newton ("Si he visto más lejos ha sido subiéndome a los hombros de un gigante") y que tanto le gusta citar a Linus Torvalds.
A los que peinamos más canas (o incluso a los que hasta las vamos perdiendo) Raspberry Pi nos retrotrae un poco a la década del '80 cuando las computadoras eran de un hardware más elemental y era más sencillo experimentar conectándolas con el exterior. El mismo Torvalds señalaba que en aquella época para los usuarios en general era mucho más sencillo comprender el hardware y por consiguiente programar a bajo nivel.
Posiblemente Raspberry Pi sea al hardware lo que GNU/Linux viene siendo desde hace más de 20 años para los sistemas operativos. Ahora sí -exagerando un poquito para divertirnos- ¿Será la RasPi la Elegida que viene a reestablecer el equilibrio de la Fuerza? Quizá, porque es una pequeña sobre los hombros de los antiguos Jedi-hackers: los Stallman, los Torvalds, los Joys, los Wozniaks, y sigan las firmas. Lo habrá conseguido si tan solo logra despertar la pasión de niños y jóvenes por convertirse en productores y artesanos digitales en vez de que seamos meros consumidores y data entries de planillas Excel (Marca Registrada este último, cordiales saludos).

Continuar »

Servidor ftp seguro con una instancia independiente de ssh

Como SysAdmins, en muchas ocasiones precisamos ofrecer servicio de acceso sftp (secure ftp) en un host conectado a internet. En un principio, el problema que se plante es que como sftp utiliza ssh, si ya estamos usando ssh para administración remota y otros servicios administrativos utilizar la misma instancia para acceso sftp a usuarios externos podría plantear una brecha de seguridad. Por eso, utilizar otra instancia de sshd, independiente de la "principal" (administrativa) puede suponer un agregado de seguridad extra, porque vamos a "limitar" los permisos que daremos a los usuarios que accedan vía sftp.

sftp, conocido como "ftp seguro" utiliza el protocolo ssh ("secure shell") para encriptar todo el tráfico de red envuelto en este tipo de comunicación o transferencias de archivos. De esta forma, mejora el protocolo ftp clásico, en el cual credenciales de acceso como archivos se envían sin cifrado, lo que los hace visibles para ojos de malvivientes.

Lo que nos proponemos con este acercamiento es crear una instancia adicional de sshd, es decir, correr otro deminio (servidor) ssh que será el encargado de prestar el servicio para sftp, en otro puerto diferente al estándar (puerto 22). Partiendo de ese punto limitaremos los usuarios solo a usuarios definidos para usar sftp como también limitaremos las opciones del shell del usuario.

Manos a la obra

1) Crear configuracion para nuevo demonio:

Aquí copiaremos el archivo original de configuración del servidor sshd para que nos sirva de punto de partida.

cd /etc/ssh
cp -p sshd_config sshd_config-sftp


2) Modificaciones en sshd_config-sftp (Alterar puerto, bindings, etc):
OBS. Importante: es clave definir el PID file para este nuevo demonio o instancia.
Este nuevo servicio sshd escuchará conexiones en el puerto 2222, definido en el archivo sshd-config-sftp.

# BOF Modificaciones para segundo demonio
# Port modificado
Port 2222
# Agregado PID para este demonio
PidFile /var/run/sshd-sftp.pid

3)Seguridad: no permitir acceso root y limitar usuarios: Permitiremos acceso a esta instancia de sshd solo a los usuarios listados en AllowUsers o a los pertenecientes al grupo AllowGroups

# Authentication:
LoginGraceTime 120
PermitRootLogin no
StrictModes yes
AllowUsers ptolomeo alberto # Usuarios permitidos para acceso sftp
AllowGroups sftp # Grupo permitido

4) Crear symlink para diferenciar el demonio del principal:

# cd /usr/sbin
# ln -s /usr/sbin/sshd /usr/sbin/sshd-sftp
# ls -l sshd-sftp
lrwxrwxrwx 1 root root 14 mar 28 11:10 sshd-sftp -> /usr/sbin/sshd

5) Si se usa PAM, como es default en Debian:

# cd /etc/pam.d/
# ln -s sshd sshd-sftp

6) Modificar el script SysV para inicio y parada:

# cd /etc/init.d/
# cp -p ssh ssh-sftp

7) Alterar script de inicio ssh-sftp para definir las config de la nueva instancia (ver abajo en Anexo I el script completo).

8) Creacion de usuario y grupo para acceso restringido:

# useradd -m -c "usuario acceso sftp limitado" -s /bin/bash ptolomeo
# passwd ptolomeo
Introduzca la nueva contraseña de UNIX:
Vuelva a escribir la nueva contraseña de UNIX:
passwd: contraseña actualizada correctamente

# addgroup sftp
Añadiendo el grupo `sftp' (GID 1005) ...
Hecho.

# usermod -aG sftp ptolomeo
# groups ptolomeo
ptolomeo : ptolomeo sftp

9) OPCIONAL: ambiente chroot para el acceso sftp

Si bien, se recomiendan, los pasos descriptos en esta sección (9) son opcionales. Describen cómo configurar un ambiente chroot para que los usuarios sftp se encuentren limitados únicamente a su directorio de usuario ($HOME). De esa forma no podrán acceder a lectura de otros archivos del sistema operativo, por ejemplo.

# chown root:sftp /home/ptolomeo/
# chmod 755 /home/ptolomeo/

9.1) Alterar estas líneas de /etc/ssh/sshd_config-sftp

# Comentado para acceso chroot (ver abajo)
#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

9.2) Agregar al final de /etc/ssh/sshd_config-sftp:

###################################################
## OPT. (RECOMENDADO): ###
## Para acessos sftp ambiente chroot ###
## Requiere OpenSSH>= 4.8 ###
## Este bloque debe estar al final del archivo ###
## sshd_config-sftp ###
###################################################
Match User ptolomeo
ChrootDirectory /home/ptolomeo
#ForceCommand internal-ftp
# Restringir todavia mas las posibilidades (+ paranoia)
AllowTcpForwarding no
GatewayPorts no
X11Forwarding no

Esta última configuración establece que cuando el usuario coincida com ptolomeo, que fue el que se definió para acceso sftp el mismo quede en una jaula chroot en su directorio home. También la misma directiva condicional se puede aplicar al grupo sftp, lo que sería mejor en caso de que tengamos que dar acceso sftp a múltiples usuarios , lo que suele ser lo habitual.


Anexo I

Script llamado ssh-sftp tipo SysV de inicio para la instancia, que fue modificado a partir del original /etc/init.d/ssh, que queda inalterado.

#! /bin/sh

### BEGIN INIT INFO
# Provides: sshd-sftp
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop:
# Short-Description: OpenBSD Secure Shell server
### END INIT INFO

set -e

# /etc/init.d/ssh-sftp: start and stop the OpenBSD "secure shell(tm)" daemon

test -x /usr/sbin/sshd-sftp || exit 0
( /usr/sbin/sshd-sftp -\? 2>&1 | grep -q OpenSSH ) 2>/dev/null || exit 0

umask 022

if test -f /etc/default/ssh; then
. /etc/default/ssh
fi

. /lib/lsb/init-functions

if [ -n "$2" ]; then
SSHD_OPTS="$SSHD_OPTS $2"
fi

# Are we running from init?
run_by_init() {
([ "$previous" ] && [ "$runlevel" ]) || [ "$runlevel" = S ]
}

check_for_no_start() {
# forget it if we're trying to start, and /etc/ssh/sshd_not_to_be_run exists
if [ -e /etc/ssh/sshd_not_to_be_run ]; then
if [ "$1" = log_end_msg ]; then
log_end_msg 0
fi
if ! run_by_init; then
log_action_msg "OpenBSD Secure Shell server not in use (/etc/ssh/sshd_not_to_be_run)"
fi
exit 0
fi
}

check_dev_null() {
if [ ! -c /dev/null ]; then
if [ "$1" = log_end_msg ]; then
log_end_msg 1 || true
fi
if ! run_by_init; then
log_action_msg "/dev/null is not a character device!"
fi
exit 1
fi
}


check_privsep_dir() {
# Create the PrivSep empty dir if necessary
if [ ! -d /var/run/sshd-sftp ]; then
mkdir /var/run/sshd-sftp
chmod 0755 /var/run/sshd-sftp
fi
}

check_config() {
if [ ! -e /etc/ssh/sshd_not_to_be_run ]; then
/usr/sbin/sshd-sftp $SSHD_OPTS -t || exit 1
fi
}

export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"

case "$1" in
start)
check_privsep_dir
check_for_no_start
check_dev_null
log_daemon_msg "Starting OpenBSD Secure Shell server" "sshd"
if start-stop-daemon --start --quiet --oknodo --pidfile /var/run/sshd-sftp.pid --exec /usr/sbin/sshd-sftp -- -f /etc/ssh/sshd_config-sftp $SSHD_OPTS; then
log_end_msg 0
else
log_end_msg 1
fi
;;
stop)
log_daemon_msg "Stopping OpenBSD Secure Shell server" "sshd"
if start-stop-daemon --stop --quiet --oknodo --pidfile /var/run/sshd-sftp.pid; then
log_end_msg 0
else
log_end_msg 1
fi
;;

reload|force-reload)
check_for_no_start
check_config
log_daemon_msg "Reloading OpenBSD Secure Shell server's configuration" "sshd"
if start-stop-daemon --stop --signal 1 --quiet --oknodo --pidfile /var/run/sshd-sftp.pid --exec /usr/sbin/sshd-sftp; then
log_end_msg 0
else
log_end_msg 1
fi
;;

restart)
check_privsep_dir
check_config
log_daemon_msg "Restarting OpenBSD Secure Shell server" "sshd"
start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile /var/run/sshd-sftp.pid
check_for_no_start log_end_msg
check_dev_null log_end_msg
if start-stop-daemon --start --quiet --oknodo --pidfile /var/run/sshd-sftp.pid --exec /usr/sbin/sshd-sftp -- -f /etc/ssh/sshd_config-sftp $SSHD_OPTS; then
log_end_msg 0
else
log_end_msg 1
fi
;;
try-restart)
check_privsep_dir
check_config
log_daemon_msg "Restarting OpenBSD Secure Shell server" "sshd"
set +e
start-stop-daemon --stop --quiet --retry 30 --pidfile /var/run/sshd-sftp.pid
RET="$?"
set -e
case $RET in
0)
# old daemon stopped
check_for_no_start log_end_msg
check_dev_null log_end_msg
if start-stop-daemon --start --quiet --oknodo --pidfile /var/run/sshd-sftp.pid --exec /usr/sbin/sshd-sftp -- -f /etc/ssh/sshd_config-sftp $SSHD_OPTS; then
log_end_msg 0
else
log_end_msg 1
fi
;;
1)
# daemon not running
log_progress_msg "(not running)"
log_end_msg 0
;;
*)
# failed to stop
log_progress_msg "(failed to stop)"
log_end_msg 1
;;
esac
;;

status)
status_of_proc -p /var/run/sshd-sftp.pid /usr/sbin/sshd-sftp sshd && exit 0 || exit $?
;;

*)
log_action_msg "Usage: /etc/init.d/ssh-sftp {start|stop|reload|force-reload|restart|try-restart|status}"
exit 1
esac

exit 0
Continuar »

lunes, 18 de marzo de 2013

Elección de nuevo Papa disparó las descargas de e-books de y sobre Jorge Bergoglio

La elección de Jorge Bergoglio como nuevo Papa produjo un aluvión de descargas de e-books
Columna de Tecnología por Matías Gutiérrez Reto en el programa "Dinero por Nada", que conducen Horacio Riggi y Julieta Camandone, por Radio América 1190 Khz los domingos a las 18 hs.

Para escuchar la emisión del domingo 17 de marzo, pinchar en el reproductor abajo:



También se puede escuchar en directo por http://www.estoesamerica.com/


El nombramiento de Jorge Bergoglio como nuevo Papa, ahora Francisco, produjo una auténtica "Papamanía" o "Francisco Manía". Las ventas de sus libros, en formato e-book porque muchos de ellos están agotados en papel se dispararon.

Continuar »

lunes, 11 de marzo de 2013

Tecnología programa "Dinero por Nada"

Pronto llegan nuevos smartphones equipados con FirefoxOS y Ubuntu
Día Internacional de la Mujer: algunas que hicieron la historia de la Informática

Habrá más ofertas en materia de Smartphones, FirefoxOS y Ubuntu son los nuevos sistemas operativos que se agregan a la oferta actual de Android, IPhone, Blackberry OS y Windows Phone. Como Android, Ububtu y FirefoxOS son sistemas de Código Abierto.
El viernes pasado se conmemoró un nuevo Día Internacional de la Mujer. La ocasión es válida para recordar a algunas que se destacaron en el campo de la tecnologías de la información.





La primera que la historia recuerda se remonta a la primera mitad del siglo XIX y es la historia de Ada Lovelace, a quien se le reconoce el mérito de haber sido la primera programadora del mundo. Ada fue una matemática inglesa, única hija reconocida del poeta Lord Byron con su esposa Anna Isabella. Byron se separó y las abandonó tan solo un mes después del nacimiento de Ada para iniciar su viaje por Europa.

A Ada Lovelace se la reconoce por haber sido la primera programadora de la historia, porque ella creó algoritmos (es decir un programa, una secuencia ordenada de órdenes y decisiones lógicas) para la máquina analítica de Charles Babbage que es considerada la primera computadora.

Ada Lovelace conoció a Babbage en 1833 y fascinada por el proyecto, ella empezó a intercambiar correspondencia e ideas con él. Así llegó a escribir el que sería considerado como el primer programa de computadora.

Parte del legado de Lovelace: en 1980 el Departamento de Defensa de los EE.UU bautizó con su nombre de pila a un lenguage de programación, conocido como Ada. Desde 2009 el 16 de octubre de cada año se conmemora en todo el mundo el "Día de Ada", como una forma de recordar la contribución de todas las mujeres al mundo de la informática.

Más cerca de nuestra época, hubo muchas otras mujeres. Un listado algo arbitrario de ellas puede incluir por ejemplo, a Carol Shaw, que trabajó en Atari -que fue una compañía de avanzada en los años '70 y '80. Shaw diseñó videojuegos para Atari como el Ta-Te-Ti 3D de 1979. Y posteriormente trabajó en otras compañías ligadas a los videojuegos.

Otra de ellas es quizá Sandy Lerner, que junto a su novio Len Bosack en 1984 fundaron Cisco.
Adele Goldberg trabajaba en el centro de investigación de Palo Alto de la compañía Xerox (PARC por sus siglas en inglés) a principios de los años '80 cuando Xerox permitió que el grupo que trabajaba liderado por Steve Jobs en Apple tuviera acceso a los detalles de desarrollos del PARC, las interfaces gráficas, el lenguaje Smalltalk y la computadora "Alto". Goldberg se opuso ferreamente a que Xerox permitiera a Apple acceder a sus joyas secretas. Es cierto, que después Apple perfeccionó del desarrollo de la interface gráfica y la comercializó magistralmente.
Posiblemente, la que más estuvo en los medios actualmente sea Marissa Mayer, la directora de Yahoo, que decidió acabar con el teletrabajo en esa empresa.

Esta brebe listado no puede ser exhaustivo, hay muchas otras desde luego, famosas o anónimas que día a día y en todos los campos del quehacer humano hacen sus trabajos con pasión, en la argentina y en el mundo. A ellas, nuestro modesto homenaje.

Columna de Tecnología en el programa "Dinero por nada"
Domingos a las 18 hs en Radio America 1190 khz
o http://www.estoesamerica.com/


Continuar »

domingo, 3 de marzo de 2013

Crece la descarga de archivos digitales y el streaming, pero persisten otros soportes físicos

El año pasado la descarga de archivos musicales -legales- superó a la venta de
formatos físicos, básicamente CDs. Aumenta el uso de los servicios de streaming musical como medio de difusión y escucha de obras musicales. Y grandes compañías, antiguas y nuevas, del mundo de la música pero también de la tecnología ponen sus fichas en ello.






"El perdedor de hoy
será el ganador mañana,
porque los tiempos están cambiando"
(Bob Dylan, "The Times are changing", 1963)


Es posible que la canción que el jóven Bob Dylan escribió en 1963 sirve para ilustrar muchos de los cambios que aún vive la industria de la música grabada.
Desde hace más de 20 años que se observa el paulatino e irreversible pasaje del CD a los archivos digitalizados, básicamente el mp3.

A grandes rasgos, el streaming permite reproducir un contenido digital sea audio o video a medida que se va transfiriendo el archivo desde el servidor que lo provee. El más conocido es, claro YouTube, propiedad de Google desde 2006.
En el ámbito de la música uno de los más populares es Spotify, una compañía de origen sueco, que todavía no opera en Latinoamérica.
Las compañías discográficas están conformes con el streaming legal, porque también les está permitiendo mantener a raya a la piratería. Por ejemplo Last.fm una compañía de origen inglés que fusiona los conceptos de radio en línea, con streaming más red social fue comprada en 2007 por CBS.

¿Y del lado de los músicos?

Algunos se quejan que con el modelo de streaming ganan poco. Especialmente, los músicos que no pertenecen a la corriente principal o los de mayor popularidad. El problema se les presenta sobre todo al músico "de estudio" cuyas creaciones no se destinan a ser intrpretadas en vivo.

Cada nuevo formato o dispositivos trae aparejados cambios en la forma en que se produce y se escucha música grabada. Eso fue siempre así a lo largo de la larga vida de la música grabada, y como un premio Nobel (Niels Bohr) dijo, es muy dificil hacer predicciones, especialmente acerca del futuro. Hoy el perdedor parece ser el CD, pero nunca se sabe quién será el ganador de mañana. Porque hace
diez años dabamos por muerto al vinilo y hoy una pequeña pero significativa parte del mercado lo revivió.
Acá en Argentina ciertos grupos de música y algunas empresas están invirtiendo en grabar no solo en revitalizar el disco larga duración de vinilo sino también -aunque parezca increíble- en cassette.
Mi opinión personal es que por el bien de la música grabada, espero que el CD o algo parecido persista, aunque sea en el corazón de unos fanáticos. Porque desde que el centro lo ocupó el MP3, la calidad de grabación de los álbumes se resintió muchísimo.
La oposición legal/ilegal en el caso de ciertas descargas es un tema dificil de cerrar con total imparcialidad. Porque es innegable la función de inmensos repositorios de la cultura universal que desempeñan servicios de streaming como YouTube o Groobeshark.
De las opniones más lúcidas que encontré sobre este asunto es la de Neil Young, para quien las descargas ilegales juegan un rol asimilable a las radios FM de otra época. Y creo que el músico no se equivoca, porque el cotenido de muchas FM actuales es poco musical y se parecen más a las antiguas emisiones de AM.


Matías Gutiérrez Reto
Continuar »

domingo, 17 de febrero de 2013

Experiencia Norteamericana ¿Cómo fue el ecosistema que posibilitó el surgimiento del Silicon Valley?

Recientemente la Televisión Pública estadounidense (PBS) estrenó un documental de una serie que
realiza, llamada "Experiencia Norteamericana" ("American Experience"). La serie se inició en 1989 y, en esta ocasión, se dedica a investigar el surgimiento del llamado Valle del Silicio en el área del Valle de Santa Clara, California.




El documental se centra en el grupo de ocho ingenieros que acompañó a Robert Noyce en la fundación de la empresa Fairchild Semiconductores, que fue pionera en el desarrollo de transistores de silicio y circuitos
integrados. Dos de sus empleados luego serían los fundadores de Intel, también establecida en la zona del valle de Santa Clara.

En el año 2006 cuando Tony Blair era Primer Ministro de Gran Bretaña visitó el Valle para llevarse algunas ideas para intentar hacer florecer un ambiente similar al del Valle pero en Londres.

Uno puede preguntarse -como Blair estaba tan interesado en eso- ¿Cuáles fueron las condiciones que posibilitaron semejante desarrollo tecnológico, económico y humano?
Porque en poco menos de una década la fisonomía del Valle de Santa Clara en California cambió radicalmente. Pasó de ser una zona de paisaje bucólico y agricola a convertirse en el centro mundial de la cultura emprendedora en alta tecnología.

Algunos puntos que el documental ayuda a explicitar podrían ser:

-- Disponibilidad de Educación de alta calidad. En la zona la Universidad de Stanford y de Berkeley fueron muy importantes. Graduados de sus claustros fueron fundadores de muchas de las empresas del Valle, como Sun Microsystems o Cisco.

-- Apetito por emprender: Desde los años '50 esas universidades incentivaban la cultura emprendedora a sus estudiantes. El decano de Stanford en los '50 impulsaba a que sus alumnos crearan sus propias empresas.

-- Tolerancia al fracaso: esta declaración de Jonathan Swartz -ex CEO de Sun- es muy interesante al respecto: "en el Valle del Silicio, si vos asumiste un riesgo pero fallaste, de hecho te volvés más interesante y potencialmente más valioso, porque ahora vos sabés algo más".


-- Disponibilidad de inversión privada de riesgo: Uno de los pilares del desarrollo fue sin duda que hubiera capitales dispuestos a asumir altos riesgos.

-- Florecimiento de la cultura "hacker" y de experimentación "de garage": empresas como HP o Apple surgieron literalmente en el garage.

-- Capacidad de "Pensar diferente", y esas palabras las tomo prestadas. No en vano la zona de la Bahía de San Francisco floreció en los '60 como el centro de la cultura alternativa. La capital del "Flower Power" y sin duda muchos de esos ideales se expandieron y florecieron en otras áreas de la cultura.

Uno puede preguntarse también ¿El Estado, en este caso de los Estados Unidos, estuvo ausente entre los factores determinantes para este enorme desarrollo? Desde luego que no. Desde tiempos de la Segunda Guerra se habían instalado en la zona organismos e industrias de alta tecnología, orientadas al esfuerzo que requirió aquella guerra. Pero sin duda los ingredientes de educación, talento, inversión privada de riesgo, libertad y tolerancia hicieron del Valle del Silicio lo que es actualmente.

Desde el punto de vista económico, sociológico o cultural el Silicon Valley es un fenómeno espectacular, del cual se pueden extraer múltiples enseñanzas para países de todo el mundo. Su historia de décadas con sus gigantes éxitos y sus numerosos fracasos puede constituirse en una inagotable fuente de inspiración, no solo para emprendedores, hombres de negocios y amantes de la electrónica sino también políticos.

Matías Gutiérrez Reto
Continuar »

viernes, 15 de febrero de 2013

¿El futuro es para las monedas virtuales?

Columna de Tecnología de Matías Gutiérrez Reto en el programa "Dinero por Nada", que conducen Horacio Riggi y Julieta Camandone. Radio América. Emisión del día 10 de febrero de 2013.

A partir del domingo 17 de febrero el programa se emite de 18 a 19 hs.

El Bitcoin, una moneda virtual basada en un sofisticado algoritmo criptográfico cotiza en el mercado internacional a 22 dólares por unidad. Los bancos centrales desconfían de esta moneda que ya cuenta con cuatro años de vida. Su inventor, que posiblemente utiliza el nom de guerre de Satoshi Nakamoto ya que aún no está totalmente claro si la jurisprudencia internacional puede avalar o no una moneda que no es emitida por ninguna entidad central y que además asegura el anonimato de las personas que realizan los intercambios.
Sin dudas el futuro podrá ser de monedas virtuales.

El ministerio de Interior y Transporte presentó aplicación "Trenes en Vivo" para seguir en tiempo real el recorrido de las formaciones del FF.CC Sarmiento, se prevé extenderlo a las otras líneas de trenes metropolitanos.

Continuar »

martes, 5 de febrero de 2013

Algunos TIPs para que los niños naveguen seguros

Que los niños naveguen seguros en Internet es la preocupación de la mayoría de los padres.
Ese es el tema del segmento de Tecnología en el programa "Dinero Por Nada".

Continuar »