Archivo categoría Linux

Repositorio portátil en Debian

Repositorio Móvil Debian

Si de casualidad  tienes una conexión lenta, pero si tienes una buen enlace en otro sitio (escuela, universidad,trabajo, etc.) y tienes un equipo con Debian en la misma arquitectura (x86, x64,etc.) mas o menos con la misma selección de software, puedes usar este pequeño truco para llevarte parte de los paquetes descargados:

Máquina con buena conexión

Actualiza el PC con buena conexión:

dell:~# aptitude update
dell:~# aptitude safe-upgrade

En Debian y distribuciones derivadas los paquetes descargados se guardan en /var/cache/apt/archives, por lo que podemos copiar el contenido de este directorio en un pen-drive o disco externo:

cp -r /var/cache/apt/archives /media/usb0

Máquina sin buena conexión

Actualiza el listado de paquetes. Aunque la conexión es mala, igual necesitarás Internet para descarga la información de los paquetes:

cupcake:~# aptitude update
cupcake:~# aptitude safe-upgrade
The following packages will be upgraded:
bind9-host dnsutils evolution-data-server evolution-data-server-common gdm3 gnome-shell gnome-shell-common google-chrome-stable gvfs
gvfs-backends gvfs-bin gvfs-common gvfs-daemons gvfs-libs host icedtea-netx icedtea-netx-common krb5-locales libbind9-80 libc-bin libc-dev-bin
libc6 libc6:i386 libc6-dev libc6-i386 libc6-i686:i386 libcairo-gobject2 libcairo2 libcamel-1.2-33 libdbus-glib-1-2 libdns88 libebackend-1.2-2
libebook-1.2-13 libecal-1.2-11 libedata-book-1.2-13 libedata-cal-1.2-15 libedataserver-1.2-16 libedataserverui-3.0-1 libglib2.0-0
libglib2.0-0:i386 libglib2.0-bin libglib2.0-data libgssapi-krb5-2 libgssapi-krb5-2:i386 libisc84 libisccc80 libisccfg82 libk5crypto3
libk5crypto3:i386 libkrb5-3 libkrb5-3:i386 libkrb5support0 libkrb5support0:i386 liblwres80 libperl5.14 libproxy0 libssh-4 libxen-4.1
libxenstore3.0 locales multiarch-support openssh-client openssh-server perl perl-base perl-modules python python-minimal vim vim-common
vim-runtime vim-tiny xserver-xorg-video-nouveau
The following packages are RECOMMENDED but will NOT be installed:
xserver-xephyr
73 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 103 MB of archives. After unpacking 16.6 MB will be used.
Do you want to continue? [Y/n/?] n

Aquí puedes ver que se requieren 103 MB para descargar. Le decimos que no con la letra “n”, y ahora copiamos los paquetes del pen-drive al directorio /var/cache/apt/archive/:

cupcake:~# cp -R /media/C6A7-9F3C/archives/* /var/cache/apt/archives/

Ahora actualizamos nuevamente el listado de paquetes e intentamos actualizar:

cupcake:~# aptitude update
cupcake:~# aptitude safe-upgrade
The following packages will be upgraded:
bind9-host dnsutils evolution-data-server evolution-data-server-common gdm3 gnome-shell gnome-shell-common google-chrome-stable gvfs
gvfs-backends gvfs-bin gvfs-common gvfs-daemons gvfs-libs host icedtea-netx icedtea-netx-common krb5-locales libbind9-80 libc-bin libc-dev-bin
libc6 libc6:i386 libc6-dev libc6-i386 libc6-i686:i386 libcairo-gobject2 libcairo2 libcamel-1.2-33 libdbus-glib-1-2 libdns88 libebackend-1.2-2
libebook-1.2-13 libecal-1.2-11 libedata-book-1.2-13 libedata-cal-1.2-15 libedataserver-1.2-16 libedataserverui-3.0-1 libglib2.0-0
libglib2.0-0:i386 libglib2.0-bin libglib2.0-data libgssapi-krb5-2 libgssapi-krb5-2:i386 libisc84 libisccc80 libisccfg82 libk5crypto3
libk5crypto3:i386 libkrb5-3 libkrb5-3:i386 libkrb5support0 libkrb5support0:i386 liblwres80 libperl5.14 libproxy0 libssh-4 libxen-4.1
libxenstore3.0 locales multiarch-support openssh-client openssh-server perl perl-base perl-modules python python-minimal vim vim-common
vim-runtime vim-tiny xserver-xorg-video-nouveau
The following packages are RECOMMENDED but will NOT be installed:
xserver-xephyr
73 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 2,474 kB/103 MB of archives. After unpacking 16.6 MB will be used.
Do you want to continue? [Y/n/?]

Como puede verse, ahora solo requiere 2,4 MB, mucho menos de lo que originalmente solicitó y que tardará mucho menos en descargarse en una conexión deficiente como en las redes  3G de Venezuela (coloque aquí el nombre de su operadora favorita).


, ,

4 Comentarios

Unboxing de la Raspberry Pi

Raspberry board

Ya me llegó mi Raspberry Pi….mucho antes de lo que  habían dicho (tres semanas por lo menos). Diría que se tardó una semana en enviarlo a Venezuela.  En mi caso, la compré en la tienda RS para Raspberry Pi  y el envío lo hice directo a Venezuela, con un costo de $8. Y si, si llega por IPOSTEL.

Fotos del unboxing

Aquí dejo las respectivas fotos del unboxing de la Raspberry Pi

Raspberry Delivery Raspberry box

Unboxing the Raspberry Raspberry Quick Start

Raspberry Case AC adaptors
American AC wire

Lo único que me falta es la tarjeta SD, la cual debe ser clase 4…de momento sigo con la emulación con QEMU como mencioné en mi artículo anterior.

, ,

10 Comentarios

Emulación de Raspberry Pi con QEMU

XFCE4 - Raspberry Pi

Me compré un Rasberry Pi pero como en tres semanas es que lo van a enviar (y hay que agregar un tiempo adicional por el servicio de envío) entonces decidí ver qué podía ir leyendo sobre el Raspberry. Luego se me ocurrió la idea de tratar de emular el Rasberry Pi para ver un poco más y en seguida me vino a la mente QEMU, ya que el Rasbperry Pi viene con un procesador ARM1176. En una búsqueda rápida me conseguí este blog que comentan cómo hacerlo. Pero no quise usar la imagen del proyecto Raspberry sino una de Raspbian, en particular la imagen Hexxeh. Por último, y como quería hacer pruebas sin necesidad de estar usando a interfaz gráfica, investigué un poco cómo hacer un puente (bridge) en QEMU. Luego de eso me puse a configurar la imagen como siguieren en Raspbian, ya que viene muy básica, y le quité LXDE para colocar XFCE con Slim. Aquí explico cómo hice todo:

Imagen Hexxhex

Me bajé la imagen de Raspbian Hexxeh y apliqué todos los cambios sugeridos:

  • Instalación de servidor SSH y regeneración de las llaves (cosa que deben hacer si descargan esta imagen ya que las llaves públicas y privadas deben ser únicas). Basta con hacer lo siguiente:
# rm /etc/ssh/ssh_host_*
# dpkg-reconfigure openssh-server
  • Actualicé el listado de paquetes
  • Instalé XFCE, y Slim (login manager) y quité LXDE porque me parece feo y mas pesado que XFCE.
  • Actualicé la zona horaria a la de Caracas y ajusté el tiempo vía ntp.
  • Coloqué los locales a US_us UTF8
  • Configuré la distribución del teclado a español latinoamericano.

Si quieres personalizar esta imagen como se describe arriba puedes ver los pasos sugeridos en la página de Raspbian Hexxeh.

Raspbian en QEMU

Ahora para poner a correr Raspbian en QEMU debes hacer lo siguiente:

  1. Descargar el kernel para el procesador:
    $ wget http://xecdesign.com/downloads/linux-qemu/kernel-qemu
  2. Descomprimir la imagen de Raspbian que hayan descargado. Coloco como ejemplo la imagen de Hexxeh pero puedes probar con cualquier otra:
    $ unzip raspbian-r3.zip
  3. Lanzar QEMU con las siguientes opciones:
    $ qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2" -hda raspbian-r3/raspbian-r3.img

Tengan en cuenta que es una emulación, y por ende no todo el hardware del Raspberry está soportado. Por ejemplo al iniciar se puede ver que la primera partición no se carga, que corresponde a la partición /boot, la cual es suplida por el kernel que se descargó.

Configuración del puente en QEMU

Otra cosa que quería hacer era poder acceder a la emulación desde otra máquina. La idea es no tener que depender del ambiente gráfico  sino poder acceder desde ssh a la imagen Raspberry para, por ejemplo,  instalar paquetes con aptitude. Para ello tuve que hacer un puente (bridge) como explico a continuación:

Instalación de paquetes necesarios

Primero debemos descargar los siguientes paquetes:

# aptitude install bridge-utils uml-utilities

Permisos sudo

Para que pueda asignarse las interfaces al puente se debe dar permiso de ejecución al usuario que lanzará la máquina virtual. Para ello se debe configurar sudo a través de la orden visudo:

# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# Host alias specification
# User alias specification
# Cmnd alias specification
Cmnd_Alias QEMU=/sbin/ifconfig, \
/sbin/brctl
# User privilege specification
root ALL=(ALL:ALL) ALL
lgallard ALL=NOPASSWD: QEMU
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d

En este caso lgallard es el usuario que se le concedió permisos para usar ifconfig y brctl.

Configuración del puente

Se debe configurar el archivo /etc/network/interfaces para que automaticamete levante la interfaz que servirá de puente. Para ello debes deshabilitar las interfaces (por ejemplo haciendo ifdown eth0) y dejar solo el puente como se muestra a continuación:

# This file describes the network interfaces available on your system
 # and how to activate them. For more information, see interfaces(5).
# The loopback network interface
 auto lo
 iface lo inet loopback
# The bridge network interface(s)
auto br0
iface br0 inet dhcp
 bridge_ports eth0
 bridge_fd 9
 bridge_hello 2
 bridge_maxage 12
 bridge_stp off

Después de esto puede levantar el puente escribiendo:

# ifup br0

Script de inicio de interfaz de QEMU (/etc/eqemu-ifup)

Este script permite levantar las interfaces y el puente cuando se levanta la máquina con QEMU.  Para ellos se debe editar el archivo /etc/qemu-ifup con la siguiente información:

#!/bin/sh
#sudo -p "Password for $0:" /sbin/ifconfig $1 172.20.0.1

echo "Executing /etc/qemu-ifup"
echo "Bringing up $1 for bridged mode..."
sudo /sbin/ifconfig $1 0.0.0.0 promisc up
echo "Setting tap0"
sudo tunctl -t tap0 -u lgallard
echo "Adding $1 to br0..."
sudo /sbin/brctl addif br0 $1
sleep 2

Ahora para correr la imagen con la interfaz de red con el puente debes lanzar QEMU con las siguientes opciones:

qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2" -net nic,vlan=0 -net tap,ifname=tap0,script=/etc/qemu-ifup -hda raspbian-r3/raspbian-r3.img

Capturas

Aquí dejo algunas capturas de la emulación de QEMU:

Raspberry Pi - Hexxeh image

Raspberry Pui - Slim

Raspberry Pi - SSH

Rasbperry Pi basic

Como puede verse en la última captura, no todo está instalado en la imagen por lo que si no funciona algo debes descargarlo.  En este caso podría instalarse el navegador midory:

# aptitude install midory

O cualquier otro navegador de tu preferencia.

Referencias

,

5 Comentarios

Intalación de CrossOver en Debian x64

CrossOverCrossOver es una herramienta que permite instalar mucha de las aplicaciones que son muy populares en Windows así como juegos en un computador con Linux.  Está desarrollado por la gente de Codewevers, y de las características que ellos resaltan está el hecho de que es fácil, se puede costear, no requiere de licencias para el sistema operativo Window,  y que se tendrá las aplicaciones de Windows integradas de forma transparente en Linux con solo hacer clic y ejecutar.

Después de este comercial gratis que le hice a la gente de Codeweavers,  aclaro que CrossOver no e mas que un Wine con veneno, es decir, es Wine con una serie de librerías que garantizan ciertos programas de Windows funcionen sin necesidad tener que lidiar con esas dependencias, además de que organizan el software instalado en “botellas” que no es mas que entornos de Wine con discos duros separados.

Si están interesado en bajar la versión de prueba pueden hacerlo aquí.

El problema

Hasta la introducción, todo suena bonito…pero al tratar de instalarlo en mi máquina con Debian x64 me encontré con el siguiente problema:

# gdebi /home/lgallard/Downloads/ia32-crossover_12.1.0-1_amd64.deb
Reading package lists... Done
 Building dependency tree
 Reading state information... Done
 Building data structures... Done
 Building data structures... Done
Requires the installation of the following packages:
 lib32asound2 lib32gcc1 lib32nss-mdns lib32z1 libc6-i386
 Run Windows applications like MS Office
 CrossOver Linux makes it possible to run Windows productivity applications
 such as Microsoft Office, and Quicken, and also lets you play Windows games
 like Skyrim and World of Warcraft.
 Do you want to install the software package? [y/N]: y
  [...]

 (Reading database ... 118461 files and directories currently installed.)
 Unpacking ia32-crossover (from .../ia32-crossover_12.1.0-1_amd64.deb) ...
 dpkg: dependency problems prevent configuration of ia32-crossover:
 ia32-crossover depends on ia32-libs; however:
 Package ia32-libs is not installed.
dpkg: error processing ia32-crossover (--install):
 dependency problems - leaving unconfigured
 Errors were encountered while processing:
 ia32-crossover

Me pareció extraño que gdebi no instalara la dependencia, por lo que decidí instalarlo manualmente:

# aptitude install ia32-libs
 The following NEW packages will be installed:
 ia32-libs{b}
 The following partially installed packages will be configured:
 ia32-crossover
 0 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
 Need to get 114 kB of archives. After unpacking 114 kB will be used.
 The following packages have unmet dependencies:
 ia32-libs : Depends: ia32-libs-i386 which is a virtual package.
 The following actions will resolve these dependencies:
Remove the following packages:
 1) ia32-crossover
Keep the following packages at their current version:
 2) ia32-libs [Not Installed]
Accept this solution? [Y/n/q/?] Y
 The following packages will be REMOVED:
 ia32-crossover{a} lib32asound2{u} lib32gcc1{u} lib32nss-mdns{u} lib32z1{u} libc6-i386{u}
 0 packages upgraded, 0 newly installed, 6 to remove and 0 not upgraded.
 Need to get 0 B of archives. After unpacking 163 MB will be freed.
 Do you want to continue? [Y/n/?]
 (Reading database ... 120124 files and directories currently installed.)
 Removing ia32-crossover ...
 Removing lib32asound2 ...
 Removing lib32gcc1 ...
 Removing lib32nss-mdns ...
 Removing lib32z1 ...
 Removing libc6-i386 ...

Current status: 0 broken [-1], 36004 new [-1].

Pero al consultar el paquete nuevamente por el paquete me doy cuenta que no está instalado:

# aptitude search ia32-libs
 p ia32-libs - Transitional package to migrate ia32-libs to multiarch
 p ia32-libs-gtk - Transitional package to migrate ia32-libs-gtk to multiarch

La solución

Viendo las librerías que CrossOver intenta instalar recordé que hay que agregar la rama i386. Esto se hace de la siguiente manera:

# dpkg --add-architecture i386
# aptitude update

Luego de actualizar el listado de paquetes e intentar instalar nuevamente CrossOver se ve que el número de paquetes requeridos aumenta:

# gdebi /home/lgallard/Downloads/ia32-crossover_12.1.0-1_amd64.deb

Reading package lists... Done Building dependency tree Reading state information... Done Building data structures... Done Building data structures... Done

Requires the installation of the following packages:

esound-common freeglut3:i386 gcc-4.7-base:i386 ia32-libs ia32-libs-i386:i386 lesstif2:i386 lib32asound2 lib32gcc1 lib32nss-mdns lib32z1 libacl1:i386 libaio1:i386 libasound2:i386 libasyncns0:i386 libattr1:i386 libaudio2:i386 libaudiofile1:i386 libavahi-client3:i386 libavahi-common-data:i386 libavahi-common3:i386 libbsd0:i386 libc6-i386 libc6-i686:i386 libc6:i386 libcaca0:i386 libcap2:i386 libcomerr2:i386 libcups2:i386 libcurl3:i386 libdb5.1:i386 libdbus-1-3:i386 libdirectfb-1.2-9:i386 libdrm-intel1:i386 libdrm-nouveau1a:i386 libdrm-radeon1:i386 libdrm2:i386 libedit2:i386 libesd0:i386 libexif12:i386 libexpat1:i386 libffi5:i386 libflac8:i386 libfltk1.1:i386 libfontconfig1:i386 libfreetype6:i386 libgcc1:i386 libgcrypt11:i386 libgd2-xpm:i386 libgdbm3:i386 libgl1-mesa-dri:i386 libgl1-mesa-glx:i386 libglapi-mesa:i386 libglu1-mesa:i386 libgnutls26:i386 libgpg-error0:i386 libgphoto2-2:i386 libgphoto2-l10n libgphoto2-port0:i386 libgpm2:i386 libgssapi-krb5-2:i386 libice6:i386 libidn11:i386 libieee1284-3:i386 libjack-jackd2-0:i386 libjbig0:i386 libjpeg62:i386 libjpeg8:i386 libjson0:i386 libk5crypto3:i386 libkeyutils1:i386 libkrb5-3:i386 libkrb5support0:i386 liblcms1:i386 libldap-2.4-2:i386 libltdl7:i386 liblzma5:i386 liblzo2-2:i386 libmpg123-0:i386 libncursesw5:i386 libnspr4-0d:i386 libnspr4:i386 libnss3-1d:i386 libnss3:i386 libodbc1:i386 libogg0:i386 libopenal1:i386 libp11-kit0:i386 libpam0g:i386 libpciaccess0:i386 libpng12-0:i386 libpopt0:i386 libpulse0:i386 librtmp0:i386 libsamplerate0:i386 libsane-extras-common libsane-extras:i386 libsane:i386 libsasl2-2:i386 libsasl2-modules:i386 libsdl1.2debian:i386 libselinux1:i386 libsigc++-2.0-0c2a:i386 libslang2:i386 libsm6:i386 libsndfile1:i386 libsqlite3-0:i386 libssh2-1:i386 libssl1.0.0:i386 libstdc++5:i386 libstdc++6:i386 libsvga1:i386 libsysfs2:i386 libtasn1-3:i386 libtdb1:i386 libtiff4:i386 libtinfo5:i386 libts-0.0-0:i386 libusb-0.1-4:i386 libuuid1:i386 libv4l-0:i386 libv4lconvert0:i386 libvorbis0a:i386 libvorbisenc2:i386 libvorbisfile3:i386 libwrap0:i386 libx11-6:i386 libx11-xcb1:i386 libx86-1:i386 libxau6:i386 libxaw7:i386 libxcb-glx0:i386 libxcb-render-util0:i386 libxcb-render0:i386 libxcb1:i386 libxcomposite1:i386 libxcursor1:i386 libxdamage1:i386 libxdmcp6:i386 libxext6:i386 libxfixes3:i386 libxft2:i386 libxi6:i386 libxinerama1:i386 libxml2:i386 libxmu6:i386 libxmuu1:i386 libxp6:i386 libxpm4:i386 libxrandr2:i386 libxrender1:i386 libxslt1.1:i386 libxss1:i386 libxt6:i386 libxtst6:i386 libxv1:i386 libxxf86vm1:i386 odbcinst1debian2:i386 uuid-runtime xaw3dg:i386 zlib1g:i386

 Run Windows applications like MS Office
CrossOver Linux makes it possible to run Windows productivity applications
such as Microsoft Office, and Quicken, and also lets you play Windows games
like Skyrim and World of Warcraft.
Do you want to install the software package? [y/N]:y

Al aceptar, se descargarán los paquetes necesarios (son varios) y se instalará correctamente CrossOver.

Referencias:

,

No hay Comentarios

Habilitando el ecualizador en Amarok

Amarok - Equalizer issue

Si de casualidad intentan configurar el ecualizador en Amarok y le sale el mensaje mostrado arriba, basta con instalar el backend phonom de gstreamer:

# aptitude install phonon-backend-gstreamer

Luego de esto podrán usar el ecualizador como se muestra en esta otra imagen:

Amarok - Equalizer solved

También podrán aplicarse los ajustes predeterminados de acuerdo al género que se desee escuchar o modificar manualmente los valores a voluntad.

,

2 Comentarios

Cómo correr aplicaciones Android desde la tarjeta SD

Link2SD

Una de las limitantes que tienen algunos teléfonos es el espacio disponible para instalar aplicaciones (por ejemplo el Samsung Galaxy Ace 5830 es una pesadilla) por lo que en algún momento uno debe desinstalar aplicaciones para hacerle espacio a otra aplicaciones. Pero aun y cuando uno pueda jugar con esto siempre puede darse el caso en que el teléfono se quede sin espacio ya que las aplicaciones también pueden guardar datos en la memoria interna del teléfono.

Para solucionar este problema existen una aplicación que permite mover aplicaciones a la tarjeta SD que estaré explicando en este artículo.

Requisitos

  • Tener una partición extra en la tarjeta SD.
  • Tener el teléfono rooteado. Para el Samsung Galaxy Ace 5830 pueden seguir estos paso.

Particionando la tarjeta SD

Para crear la partición adicional es recomendable copiar los datos que se tienen en un directorio del PC (por si acaso) y redimensionar la partición para hacer espacio a la nueva partición, y luego crear la partición adicional. En Linux se puede particionar la larjeta SD con GParted. A continuación muestro cómo quedó particionada mi tarjeta de 4 GB:

Gparted Sandisk phone

Como puede observarse la partición adicional está en ext2 y es de 512 MB. Como nota aparte, no vale la pena crear la partición adicional como ext3 o ext4 porque el journal no tiene sentido y podría poner las aplicaciones algo más lentas.

Instalación y uso  de Link2SD

Una vez particionada la tarjeta SD  se debe colocar nuevamente al teléfono. Luego se debe ingresar a Play de Google e instalar la aplicación Link2SD en el teléfono. Cuando haya terminado la instalación ejecute la aplicación. Inmediatamente solicitará permiso de superusuario (Por esta razóno el teléfono debe estar rooteado) como se muestra a continuación:

LINK2SD - SuperUsuario

 Luego aparecerá la siguiente pantalla preguntando por el tipo de sistema de archivos, a lo cual responderemos que es del tipo ext2:

Link2SD - Filesystem

 Una vez que se indique el tipo de partición la aplicación creará los enlaces necesario a los scripts y pedirá reiniar el teléfono, al aceptar el teléfono se reiniciará y la segunda partición estará lista para ser reconocida.

Link2SD - Reboot

Cuando el teléfono se haya encendido nuevamente y la tarjeta SD se haya escaneado ejecute nuevamente la aplicación para empezar a mover las aplicaciones a la tarjeta SD. Para ello, filtre las aplicaciones que están instaladas en la memoria interna del teléfono, como se muestra a continuación:

Link2SD - Internal apps

Para mover una aplicació a la SD, selecciónela y precione el botón Mover a la tarjeta SD como se muestra en la siguiente imagen:

Links2SD - Moving an app

Enlazando aplicaciones

En vez de solo mover las aplicaciones Link2SD tiene una forma alternativa de mover y enlazar las aplicaciones a la segunda partición de la tarjeta SD. Mover las aplicaciones a la SD solo copia parte de la aplicación y no todos los componentes a la primera partición FAT, no a la segunda partición ext2 que se creó. Entonces para aprovechar realmente el espacio de esta segunda partición se deben enlazar las aplicaciones, como se muestra en la siguiente imagen:

Link2SD - Crear Enlace

También se puede configurar para que automáticamente se cree un enlace al descargar e instalar una aplicación, para ello se debe ejecutar Link2SD y seleccionar Ajustes para escoger la opción “Enlace automático”, como se muestra a continuación:

Link2SD - Enace automático

Antes y después

Después de mover las aplicaciones a la segunda partición de la tarjeta SD, aquí les dejo dos imágenes que muestran el antes y el después del espacio en mi teléfono:

Lnik2SD - Before Link2SD - After

Como puede apreciarse en la segunda imagen, quedan libres 141 MB. Otro dato curioso y que de muestra que Link2SD está funcionado es que se están usando 40 MB, pero solo la aplicación Angry Birds Stars War ocupa 44 MB!!

Referencias

4 Comentarios

Cómo crear un mirror de Debian y Ubuntu con debmirror

Debmirror

A continuación explico cómo configurar un mirror de Debian y Ubuntu, en un servidor de Debian. Los pasos explicados a continuación se pueden conseguir en otro sitios, salvo la parte de importación de las llaves de los repositorios. Por ejemplo, en los tutoriales de Ubuntu explican cómo instalar las llaves suponiendo que el servidor donde se va a hacer el mirror corre Ubuntu, pero y si es un servidor con Debian?

Instalación de debmirror

Como mencioné, usé debmirror para hacer el mirror de ambas distribuciones. Existen otros, como por ejemplo apt-cacher, pero se escogió debmirror porque en esencia se necesita hacer mirror de todo los repositorios de Ubuntu y Debian. Entonces, para instalar debmiror basta con escribir lo siguiente como root:

aptitude install debmirror

Instalación de las llaves

Luego se deben instalar la llaves (keyrings) de los repositorios. Como se quiere hacer un mirror tanto de Debian como de Ubuntu, bajaremos los paquetes e importaremos las llaves para cada distro:

Debian

Para instalar las llaves de los repositorios de Debian se debe bajar el paquete debian-archive-keyrings mas reciente, por ejemplo de testing:

# wget http://ftp.us.debian.org/debian/pool/main/d/debian-archive-keyring/debian-archive-keyring_2012.4_all.deb

Luego se procede a extraer el contenido del paquete en el directorio home de root:

# dpkg-deb -x debian-archive-keyring_2012.4_all.deb ~

Ahora se debe importar las llaves:

# gpg --no-default-keyring --keyring /home/repo/keyrings/debian/trustedkeys.gpg --import /root/usr/share/keyrings/debian-archive-keyring.gpg
 gpg: keyring `/home/repo/keyrings/debian/trustedkeys.gpg' created
 gpg: key B98321F9: public key "Squeeze Stable Release Key " imported
 gpg: key 473041FA: public key "Debian Archive Automatic Signing Key (6.0/squeeze) " imported
 gpg: key 65FFB764: public key "Wheezy Stable Release Key " imported
 gpg: key 46925553: public key "Debian Archive Automatic Signing Key (7.0/wheezy) " imported
 gpg: Total number processed: 4
 gpg: imported: 4 (RSA: 4)
 gpg: no ultimately trusted keys found

Ubuntu

Para Ubuntu se debe hacer algo similar. Se debe bajar el paquete ubuntu-keyring mas reciente. Para la fecha tomé uno de los repositorios de quantal:

# wget http://pa.archive.ubuntu.com/ubuntu/pool/main/u/ubuntu-keyring/ubuntu-keyring_2012.05.19_all.deb

Luego se procede a extraer el contenido del paquete en el directorio home de root e importar las llaves:

# dpkg-deb -x ubuntu-keyring_2012.05.19_all.deb ~
# gpg --no-default-keyring --keyring /home/repo/keyrings/ubuntu/trustedkeys.gpg --import /root/usr/share/keyrings/ubuntu-archive-keyring.gpg
gpg: keyring `/home/repo/Ubuntu/mirrorkeyring/trustedkeys.gpg' created
 gpg: key 437D05B5: public key "Ubuntu Archive Automatic Signing Key " imported
 gpg: key FBB75451: public key "Ubuntu CD Image Automatic Signing Key " imported
 gpg: key C0B21F32: public key "Ubuntu Archive Automatic Signing Key (2012) " imported
 gpg: key EFE21092: public key "Ubuntu CD Image Automatic Signing Key (2012) " imported
 gpg: Total number processed: 4
 gpg: imported: 4 (RSA: 2)
 gpg: no ultimately trusted keys found

El script de debmirror

Para Ubuntu

El script como tal es una adaptación de la documentación que se consigue en Ubuntu, el cual se puede guardar en el archivo /home/repo/scripts/debian.sh con la siguiente información:

#!/bin/sh
# Don't touch the user's keyring, have our own instead
export GNUPGHOME=/home/repo/keyrings/ubuntu

# Architecture. For Ubuntu can be i386, powerpc or amd64.
arch=i386,amd64

# Minimum Ubuntu system requires main, restricted
# Section (One of the following - main/restricted/universe/multiverse).
section=main,multiverse,universe,restricted

# Release of the system (Quantal, Precise, etc)
release=quantal,quantal-security,quantal-updates,quantal-backports,precise,precise-security,precise-updates,precise-backports

# Server name, minus the protocol and the path at the end
server=us.archive.ubuntu.com

# Path from the main server, so http://my.web.server/$dir, Server dependant
inPath=/ubuntu

# Protocol to use for transfer (http, ftp, hftp, rsync)
proto=http

# Directory to store the mirror in
outPath=/home/repo/mirrors/ubuntu

# Start script

debmirror       -a $arch \
                --no-source \
                --md5sums \
                --progress \
                --passive \
                --verbose \
                -s $section \
                -h $server \
                -d $release \
                -r $inPath \
                -e $proto \

Para Debian

Para Debian cambiarían los valores, y en esencia en el archivo archivo /home/repo/scripts/debian.sh pondríamos algo como esto:

#!/bin/sh

# Don't touch the user's keyring, have our own instead
export GNUPGHOME=/home/repo/keyrings/debian

# Architecture (i386, powerpc, amd64, etc.)
arch=i386,amd64

# Section (main,contrib,non-free)
section=main,contrib,non-free

# Release of the system (squeeze,lenny,stable,testing,etc)
release=squeeze

# Server name, minus the protocol and the path at the end
server=ftp.us.debian.org

# Path from the main server, so http://my.web.server/$dir, Server dependant
inPath=/debian

# Protocol to use for transfer (http, ftp, hftp, rsync)
proto=http

# Directory to store the mirror in
outPath=/home/repo/mirrors/debian

# Start script

debmirror       -a $arch \
                --no-source \
		--md5sums \
		--progress \
		--passive \
		--verbose \
                -s $section \
                -h $server \
                -d $release \
                -r $inPath \
                -e $proto \
                $outPath

Nota: Para ambos casos se debe dar permisología de ejecución a los scripts, se debe probar la conexión a los servidores seleccionados, y que habrá suficiente espacio para alojar dichos repositorios.

Tarea programada (crontab)

Una vez que se tienen los scripts, se puede configurar una tarea programada para que la sincronización del mirror se haga a un tiempo determinado. Por ejemplo, para que se ejecute diariamente a las 12 de la media noche podemos colocar esto en el /etc/crontab:

0 0 * * *    root    /home/repo/scripts/debian.sh
0 0 * * *    root    /home/repo/scripts/ubuntu.sh

Publicación de los mirrror

Para publicar los mirror vía http se puede instalar un servidor web, como Apache:

aptitude install apache2

Por omisión en Debian, Apache  tiene el directorio /var/www/ como la raíz. Entonces para configurar los mirrors basta con crear los enlaces simbólicos apuntando a este directorio:

# ln -s /home/repo/mirrors/ubuntu /var/www/
# ln -s /home/repo/mirrors/debian /var/www/

Configuración de los clientes

Para configurar los clientes habría que editar el archivo de configuración /etc/apt/sources.list, según sea la versión de Linux que se esté usando en el cliente:

Para Ubuntu

Para Ubuntu precise (12.04) se debería tener algo como esto en el /etc/apt/sources.list:

deb http://192.168.1.1/ubuntu/ precise main restricted universe multiverse
deb http://192.168.1.1/ubuntu/ precise-updates main restricted universe multiverse
deb http://192.168.1.1/ubuntu/ precise-backports main restricted universe multiverse
deb http://192.168.1.1/ubuntu/ precise-security main restricted universe multiverse

En este caso la dirección IP 192.168.1.1 corresponde al servidor que aloja los repositorios, los cuales se publicaron vía http con Apache. Se debe cambiar por la IP del servidor que se esté configurando o una entrada de DNS válida que lo identifique.

Para Debian

Para Debian Squeeze se debe escribir lo siguiente en el /etc/apt/sources.list:

deb http://192.168.1.1/debian squeeze main contrib non-free
deb http://192.168.1.1/debian-security squeeze/updates main contrib non-free

Para ambos casos, luego se debe actualizar la lista de paquetes:

aptitude update

Una vez que se hayan actualizado el listado de paquetes ya se podrá instalar y actualizar aplicaciones desde estos repositorios.

, ,

15 Comentarios

Tarjeta gráfica ATI Radeon HD 7340M en Debian

ATI RADEON not working

Instalé Debian testing en mi Sony VAIO SVE-111 por sugerencia/regaño de mi amigo Roberto De Oliveira (@robertocdoa) ya que me estaba quejando de lo lento que se portaba Ubuntu en mi máquina, aparte de que la apariencia de Ubuntu dejó de gustarme hace rato.

Si bien la instalación fue rápida, luego de concluir y reiniciar la máquina nuevamente, al arrancar solo se veían una imagen distorsionada como se puede apreciar en la foto superior. Inmediatamente supuse que era un problema con el driver de video. Como no podía acceder ni siquiera a la consola de texto con el driver genérico  tuve que recurrir al viejo truco de acceder a una consola de texto desde el boot loader, como se muestra a continuación:

Grub_init_bash

Esto permite cargar Bash en vez del arranque normal del sistema con init. Una vez que pude acceder al sistema tuve que remontar la partición raíz como lectura y escritura haciendo:

# mount -o remount,rw /

Aproveché para ver que el modelo exacto de mi tarjeta gráfica usé lspci como se muestra a continuación:

# lspci 
00:00.0 Host bridge: Advanced Micro Devices [AMD] Family 14h Processor Root Complex
00:01.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI Device 9808
00:01.1 Audio device: Advanced Micro Devices [AMD] nee ATI Wrestler HDMI Audio [Radeon HD 6250/6310]
00:04.0 PCI bridge: Advanced Micro Devices [AMD] Family 14h Processor Root Port
...

Hice una búsqueda sobre el driver para Debian de mi tarjeta gráfica y sugerían que usara la versión no libre que se encuentra en los repositorios non-free y contrib, por lo que debía agregarlos en en el archivo /etc/apt/source.list:

deb http://ftp.us.debian.org/debian squeeze main contrib non-free

Una vez hecho el cambio, procedía a actualizar e instalar el driver propietario de mi tarjeta gráfica:

# aptitude update
# aptitude install fglrx-control fglrx-driver

Instalar el driver no basta, se debe configurar también el archivo /etc/X11/xorg.conf para agregar las opciones de la tarjeta gráfica. Para este caso lo mejor es usar el utilitario que viene con el driver para generar este archivo. Para ello basta con ejecutar la siguiente orden:

# aticonfig --initial

Luego de esto pude usar el ambiente gráfico al reiniciar la PC, incluso con Gnome-Shell como puede verse ne la siguiente imagen:

ATI RADEON Working

Problemas con el TouchPad

Anteriormente había comentado cómo configurar el touchpad para esta máquina, pero esta configuración la hice en una máquina con Ubuntu. Con este driver la misma configuración en el archivo /etc/X11/xorg.conf no funciona, pero probando con la orden synclient me percaté que sí tomaba los parámetros, entonces simplemte convertí la configuración en el siguiente script:

#!/bin/sh
synclient LockedDrags=false
synclient VertEdgeScroll=1
synclient HorizEdgeScroll=false
synclient TapButton1=1 # Left click
synclient LTCornerButton=2 # Two-buttons click
synclient MaxDoubleTapTime=120
synclient TapButton2=3 # Right click
synclient EmulateTwoFingerMinZ=20
synclient EmulateTwoFingerMinW=5
synclient AreaBottomEdge=4500

Este script lo nombre synaptics.sh, y le habilité el permiso de ejecución:

 chmod +x synaptics.sh

Luego desde la opción Startup Programs de Gnome-Shell se configura para que se ejecute cuando inicie Gnome. Este programa de configuración se puede lanzar escribiendo en Gnome-Shell “Startup”, como se muestra a continuación:

Startup programs link on Gnome-Shell

Luego basta con agregar el script (hacer clic en el botón Add)  como se muestra en la siguiente imagen:

Gnome - Startup programs

Después de esto tendrás la configuración como expliqué en mi otro artículo, donde se incluía “botones” especiales y un menú contextual al usar el clic con de dos dedos.

Referencias

, ,

2 Comentarios

Configuración de Linphone en Linux

Linphone

En la empresa donde laboro hay una centralita con Asterisk y como el número de teléfonos físicos disponibles es limitado decidí usar un softphone, en este caso Linphone. A continuación se explican los pasos para instalar y configurar Linphone con un servidor SIP:

Instalación en Debian

En Debian se debe instalar el siguiente paquete:

aptitude install linphone

En distribuciones derivadas como Ubuntu o Mint debe verificarse el nombre del paquete.

Instalación en Red Hat

En el caso de que se esté usando  Red Hat entonces  se debe instalar Linphone de la siguiente manera:

yum install linphone

Nuevamente, para distribuciones derivadas como Fedora o CentOS se debe validar el nombre del paquete. También se debe tener el repositorio adecuado que provea Linphone (recordar que Red Hat está orientado a servidores).

Configuración

Para la configuración se debe lanzar la aplicación e ir a Options > Preferences > Manage SIP Accounts. Debe aparecer una pantalla similar a la siguiente:

Settings

Se debe agregar un cuenta en el apartado Proxy accounts, pulsando el botón Add, con lo que se mostrará la siguiente ventana:

SIP Account

Aquí solo se debe especificar la cuenta de usuario o identidad SIP y el proxy SIP. Para la identidad se debe seguir el formato usuario@dominio. En el ejemplo 5256 corresponde al usuario (extensión) y 10.0.3.10 es el servidor SIP. Por otro lado, la dirección del proxy SIP en este caso es 10.0.3.10.

Una vez hechos los cambios pulsar OK en esta ventana, y Done en la anterior.

Funcionamiento

Ahora la aplicación se debe autenticar contra el servidor, solicitando el nombre de usuario y contraseña como se muestra a continuación:

SIP Authentication

Después de proporcionar la cuenta, en la pantalla principal de la aplicación debe aparecer esta información reflejada en My Current Identity:

My current Identity

Hacer una llamada

Para hacer una llamada basta con colocar el número de la extención en el recuadro mostrado a continuación y pulsar el botón verde:

Calling

2 Comentarios

Configuración del touchpad para Sony VAIO SVE-111 en Linux

Sony VAIO SVE-111 touchpad

Similar a cuando compré la notebook Lenovo IdeaPad S10-3 ahora que tengo una Sony VAIO SVE-111 decidí configurar el touchpad para aprovechar el espacio, y en la medida de lo posible evitar usar los botones derechos e izquierdo, de forma de evitar el desgaste de los mismo. Aquí dejo la configuración que usé para el archivo /etc/X11/xorg.conf:

Section "InputDevice"
 Identifier    "Synaptics Touchpad"
 Driver    "synaptics"
 Option    "Protocol" "auto-dev"
 Option    "CorePointer"
 Option    "LockedDrags" "false"
 Option    "VertEdgeScroll" "true"
 Option    "HorizEdgeScroll" "false"
 Option    "TapButton1" "1"        # Left click
 Option    "LTCornerButton" "2"        # Two-buttons click
 Option    "MaxDoubleTapTime" "120"
 Option    "TapButton2" "3"        # Right click
 Option    "EmulateTwoFingerMinZ" "20"
 Option    "EmulateTwoFingerMinW" "5"
 Option    "AreaBottomEdge" "4900"
EndSection

Los parámetros de interés son:

Parámetro Descripción
TapButton1 Cual botón es reportado en un toque de un solo dedo (no en esquina)
LTCornerButton Cual botón es reportado en la esquina superior izquierda.
TapButton2 Cual botón es reportado en un toque de dos dedos (no en esquina)
EmulateTwoFingerMinZ Esto configura el umbral Z de presión para emular la pulsación dos dedos.
EmulateTwoFingerMinW Esto configura el ancho del dedo para emular la pulsación de dos dedos.
AreaBottomEdge Ignorar los movimientos, desplazamientos y toques que ocurra por debajo de este borde.

Depurando los valores

Puede que el ancho de tus dedos sea mayor o menor al mio, por lo que la debes ajustar la variable EmulateTwoFingerMinW. De igual forma si estás configurando otro touchpad con características similares debes definir un valor distinto para la variable AreaBottomEdge. Para hacer pruebas y evitar tener que reiniciar X, puedes usar la orden  synclient.

Para camiar el valor de una variable debes usar synclient de la siguiente forma:

synclient AreaBottomEdge=4500

Luego para consultar todos los valores actuales puedes escribir lo siguiente:

synclient -l | less

Por último puedes ver cómo cambian los valores en “caliente” a medida que vas tocando el tocuhpad. Para esto debes tener configurada la siguiente opción en el archivo /ect/X11/xorg.conf:

Option "SHMConfig" "true"

Luego podrás ver los cambios haciendo:

synclient -m 10

Referencia: man synaptics

9 Comentarios