Archivo

Archive for the ‘Ubuntu’ Category

Instalar la última versión de Arduino IDE en Ubuntu / Linux Mint

diciembre 30, 2015 1 comentario

La versión del Arduino IDE que viene en los repositorios de Ubuntu / Linux Mint es muy antigua: es la 1.0.5 y en estos momentos la última versión disponible para descargar es la 1.6.7. Como no he encontrado ningún PPA con la última versión, comento los pasos a seguir para poder instalar la versión que se descarga.

  1. Descarga el archivo de https://www.arduino.cc/en/Main/Software
  2. Descomprimir el archivo: $ tar -xvf arduino-1.6.7-linux64.tar.xz
  3. Mover el directorio a /opt: $ sudo mv arduino-1.6.7 /opt
  4. Ejecutar el instalador: $ /opt/arduino-1.6.7/install.sh
  5. Añadir nuestro usuario al grupo «dialout»: $ useradd -G dialout username

Este último paso es importante para poder programar nuestro Arduino ya que si no, dará un error de que no tiene permisos de escrituras en el pue

Categorías: Arduino, Ubuntu

Xiaomi Gamepad en Android y Linux Mint

septiembre 23, 2015 2 comentarios

Hace ya un tiempo vi una oferta en GearBest de este mando y la verdad es que estoy muy contento con él. En su momento costó unos 20€ y realmente merece la pena. Lleva dos pilas AA, que en mi caso son recargables y duran mucho tiempo. Tienen una supuesta autonomía de 80 horas.

La primera prueba que hice fue con mi Nexus 4 y se emparejó a la primera. Para emparejar es necesario pulsar unos 5 segundos el botón que señalo en la foto, hasta que empieza a parpadear muy rápido. En ese momento es encesario buscar el mando desde el móvil que lo localizará con un nombre que suena a chino (nunca mejor dicho). No es necesario introducir PIN.

IMG_20150923_123726

Hay algunos juegos que funcionan con este tipo de mandos, como por ejemplo el magnífico Sword Of Xolan. Pero lo mejor de todo es que también se puede usar con MAME4droid, por lo que las horas de diversión están aseguradas.

Como no podía ser menos también quise probar con la versión de MAME para Linux, y también es prácticamente inmediato de configurar. Lo único que tuve que hacer fue comprar un adaptador Bluetooth y opté por el Orico BTA-403-BK. Una vez conectado podremos acceder al icono de configuración Bluetooth de Linux Mint y emparejar. Una vez emparejado, arranca MAME y ya podrás jugar a todos esos juegos viejunos que siempre te gustaron.

Categorías: Ubuntu Etiquetas: , , ,

LiveConnect y Linux (2)

febrero 9, 2015 Deja un comentario

Después de unos días, me comenta Jaime Hablutzel que existe una forma de que funcione con las últimas versiones de Java. La solución es ir al Java Control Panel y en Java Runtime Environment Settings añadir el parámetro:

 -Djnlp.nativeMixedCodeDialog=false

Aquí una captura de pantalla:

LiveConnect

Categorías: Debian, Java, Ubuntu Etiquetas: , , , , ,

LiveConnect y Linux

febrero 5, 2015 Deja un comentario

Resulta que el problema del LiveConnect ocurre sólo en Linux. Consiste en que no se puede hacer una llamada desde Javascript a un método del Applet. Afecta, por ejemplo, al LiveEdit de OpenKM. Para que funcione desde Linux, o instalas el OpenJDK y el plugin para el navegador IcedTea o tienes que usar el JDK de Oracle 1.7u67. A partir de esa versión ya no funciona.

Instrucciones de instalación:

  $ sudo apt-get purge openjdk* icedtea* oracle-java*
  • Crear directorio de instalación:
  $ sudo mkdir /usr/local/java
  • Descomprimir el JDK:
  $ sudo tar xzvf Descargas/jdk-7u67-linux-x64.tar.gz -C /usr/local/java/
  • Poner los comandos del JDK en el PATH; añade al final del fichero /etc/profile esto:
  export PATH=$PATH:/usr/local/java/jdk1.7.0_67/bin
  • Instalar plugin en Firefox (y Chrome):
  $ cd /usr/lib/mozilla/plugins
  $ sudo ln -s /usr/local/java/jdk1.7.0_67/jre/lib/amd64/libnpjp2.so .

A partir de ahora funcionará sin problemas. A la espera de una solución definitiva por parte de Oracle.

 

Categorías: Debian, Java, Ubuntu Etiquetas: , , , , ,

SSH and Windows

marzo 28, 2014 Deja un comentario

You can configure a SSH server in Windows installing freeSSHd. Once installed you have to create an user and will be used to access to the Windows server. To be accesible to also need to open the 22 port in the Windows firewall.

If you use a Windows virtual machine to access another server because a VPN, you can connect from your Linux console to the destination server using this Windows as a proxy. For example, the final server IP is 192.168.1.25 and the Windows IP is 192.168.0.12. The port forwarding will be from 192.168.0.12:5555 to 192.168.1.25:22. Yo can achieve this in several ways:

Windows provided solution

Creation rule:

netsh interface portproxy add v4tov4 listenport=5555 listenaddress=0.0.0.0 connectport=22 connectaddress=192.168.1.25

Delete rule:

netsh interface portproxy delete v4tov4 listenport=5555 listenaddress=0.0.0.0

Using an application

Install the application PassPort. Yo must run this application as Administration to be able to setup the forward.

Using Putty

Putty can also configure port forwarding (in this case it’s called SSH Tunneling because the forward is secured because it’s encrypted). Go to Connection > SSH > Tunnels and create with this data:

  • Local ports accept connections from other hosts: Checked
  • Source port: 5555
  • Destination: 192.168.1.25:22
  • Local: Checked
  • Auto: Checked

Once completed, click on the Add button.

Categorías: Debian, Ubuntu Etiquetas: , ,

Mover VPS a VirtualBox

abril 15, 2013 Deja un comentario

Vamos a ver los pasos necesarios para mover un servidor VPS a un máquina virtual local con VirtualBox.

Primero vamos a replicar el disco del servidor a nuestro ordenador. Para ello vamos a usar las herramienta netcat y dd. Antes de nada decir que para que funcione lo mejor posible, ninguna partición del disco debe estar montada. Para ello se debe arrancar desde otro disco. En mi caso que uso Hetzner, desde la consola de administración (ellos los llaman robot) permite arrancar el VPS en modo rescue.

Una vez hecho esto, en la máquina destino ejecutamos lo siguiente:

$ nc -v -l 5525 > srvdisk.gz

En el servidor esto:

$ dd if=/dev/sda conv=sync,noerror bs=16M | gzip | nc -v -q 0 host.dst.ip 5525

Una vez clonado el disco, lo descomprimimos:

$ gunzip srvdisk.gz

Y vemos las particiones que tiene:

$ fdisk -l srvdisk

Por último lo convertimos a formato VDI para poder usarlo desde VirtualBox:

$ vboxmanage convertfromraw srvdisk srvdisk.vdi

Una vez creado el disco para VirtualBox creamos una nueva máquina virtual y le decimos que use este disco convertido.

Por último habrá que hacer algunos ajustes en la configuración de Linux para que funcione correctamente. En mi caso el proveedor de hosting es Hetzner y el VPS va con Ubuntu 12.04, por lo que los cambios fueron los siguientes:

  • En el fichero /etc/apt/sources.list comentar los repositorios de Hetzner y poner los de Ubuntu:
deb http://es.archive.ubuntu.com/ubuntu precise main restricted universe multiverse
deb http://es.archive.ubuntu.com/ubuntu precise-backports main restricted universe multiverse
deb http://es.archive.ubuntu.com/ubuntu precise-updates main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu precise-security main restricted universe multiverse
  • En el fichero /etc/resolv.conf comentar los nameserver de Hetzner y poner los de Google:
nameserver 8.8.8.8
nameserver 8.8.4.4
  • En el fichero /etc/network/interfaces comentar la configuración de red de Hetzner y poner la que mejor se adapte.
auto eth0
iface eth0 inet static
 address 192.168.0.100
 broadcast 192.168.0.255
 netmask 255.255.255.0
 gateway 192.168.0.1
  • En el fichero /etc/udev/rules.d/70-persistent-net.rules comentar la primera línea de Hetzner donde viene la MAC de la tarjeta del VPS y que quede de esta forma (La segunda entrada se añadirá automáticamente y el parámetro ATTR{address} será diferente ya que se trata de la MAC de la tarjeta de red de la máquina virtual de VirtualBox. Lo importante es que el parámetro NAME sea «eth0».):
# device: eth0
#SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1c:14:01:4f:68", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
# PCI device 0x8086:/sys/devices/pci0000:00/0000:00:03.0 (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:b9:04:bf", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

Y con todo esto ya podríamos usar el VPS localmente.

Categorías: Debian, Ubuntu Etiquetas: , , , , , , , ,

Eliminar locales inútiles

septiembre 22, 2011 4 comentarios

Cuando instalas Ubuntu, tiene la manía de configurar una cantidad de locales absurda. Por ejemplo, cuando haces una instalación para Español de España, además te instala los locales para todas las variantes del Español. Y hay muchas. Esto es bastante molesto cuando usas el corrector ortográfico de Firefox, que cuando quieres elegir el idioma te salen la tira.

Para mejorar esto, hay que hacer dos cosas. Por una parte instalar el paquete localpurge:

$ sudo apt-get install localepurge

Que te dará a elegir qué locales quieres conservar, cepilándose el resto.

Por otra parte, para eliminar variantes que no usas en Firefox, ve a la carpeta /usr/lib/firefox-6.0.2/dictionaries y borra los que no vayas a usar. En el caso del Español por lo menos, la cosa tiene su gracia pq todas las variantes de este idioma apuntan a un mismo fichero de diccionario, con lo cual es totalmente absurdo.

Fuentes:

Categorías: Debian, Ubuntu Etiquetas: , ,

Borrar kernels antiguos

marzo 21, 2011 Deja un comentario

Cada vez que nuestro sistema Linux instala una actualización del kernel (o instalamos nosotros uno compilado por nosotros mismos), la versión anterior no es eliminada. Con el paso del tiempo, se acumulan varias versiones del kernel en el mismo sistema. Esto puede suponer un problema si hemos asignado poco espacio a la partición /boot.

En GRUB aparece una linea por cada kernel instalado, aunque sean versiones viejas. Por una parte esto es una ventaja, ya que da la opción de arrancar con un kernel anterior, por si el nuevo nos da problemas. Muy importante cuando compilamos un kernel optimizado por nosotros, o probamos alguna versión o módulo experimental.

Pero una vez testeado, no tiene mucho sentido mantener los kernel anteriores. Veremos una forma sencilla de borrar los kernels que ya no utilizamos en nuestro sistema Debian/Ubuntu, y liberar ese espacio del disco duro.

Para ver las versiones del kernel que hay en tu sistema usaremos este comando:

$ dpkg -l | grep linux-image

Ahora sólo tenemos que ir borrando el kernel junto con sus headers. Por ejemplo, en el caso en el que quisiéramos borrar un kernel 2.6.34 haríamos:

$ aptitude purge linux-image-2.6.34 linux-headers-2.6.34

Recuerda, es muy importante no borrar el kernel actual. Tampoco borres el paquete linux-image-generic presente en las distribuciones Ubuntu.

Y por último, para ver qué versión de kernel estamos usando ejecuta:

$ uname -r

No rompáis nada 🙂

Categorías: Debian, Ubuntu

Instalar Hot Copy for Linux en Ubuntu

marzo 9, 2011 Deja un comentario

Una vez instalado el paquete en formato APT perfectamente compilado para tu arquitectura, tienes que instalar el módulo precompilado para tu kernel y compilarlo tu mismo. Para la última versión estable de Ubuntu (10.10 – Maverick Meerkat) no hay módulo precompilado, por lo cual hay que hacerlo. Es muy sencillo, ya que existe la utilidad hcp-setup que nos ayuda en esta labor… pero no todo es tan perfecto. Cuando intentas compilar el módulo para el kernel 2.6.35-27-generic da un feo error:

yomismo@kraken:~$ sudo hcp-setup --get-module
Checking for binary module
Waiting                       |
No binary module found
Gathering kernel information
Gathering kernel information complete.
Creating kernel headers package
Checking '/tmp/r1soft-cki.1299670593' for kernel headers
Unable to find a 'include/linux/autoconf.h'. This file is required to build a kernel module
Unable to find a valid source directory.
Please install the kernel headers for your operating system.
To install kernel headers execute:
apt-get install linux-headers-`uname -r`

Dice que no encuentra las cabeceras necesarias para compilarlo e incluso te dice el comando
que has de ejecutar para instalarlas, pero resulta que ya las tengo instaladas. O sea, que algo
raro pasa. El problema es que en el kernel 2.6.35 el fichero autoconf.h está en otro lado:

$ ls /usr/src/linux-headers-`uname -r`/include/generated/

En lugar de este otro:

$ ls /usr/src/linux-headers-`uname -r`/include/linux/

Y es ahí donde falla la rutina que comprueba que los fuentes del kernel estén instalados. A la hora de compilar no afecta donde esté este fichero ya que encuentra la ruta correcta. Sólo es problema del chequéo que hace el instalador. Por tanto la solución es bien sencilla (y podríamos decir cutre):

$ sudo touch /usr/src/linux-headers-`uname -r`/include/linux/autoconf.h

Y listos, hemos creado el fichero autoconf.h donde lo necesita y todo irá como la seda. Lo curioso del invento es que parece que envía los fuentes del kernel a un servidor remoto donde se genera el módulo y luego se lo baja. Supongo que el si otro usuario intenta hacer lo mismo con la misma versión del kernel se limitará a bajar el módulo ya compilado.

Nota: No he conseguido hacer un snapshot, al menos de una partición formateada con ext4 y viendo el log del kernel hay un mensaje aclaratorio:

hcp: ERROR: aborting snapshot, your kernel is broken please downgrade or upgrade, snapshots on block devices with ext4 will cause a dead lock.

con lo cual habrá que esperar a una actualización del kernel. Supongo que debe estar relacionado con este bug: lvm snapshot causes deadlock in 2.6.35.

Categorías: Ubuntu Etiquetas:

Crear un repositorio de Maven

May 7, 2010 2 comentarios

Desde que uso Maven evito, siempre que puedo, incluir los jar de las dependencias en el proyecto. Un buen sitio donde localizar estas dependencias es http://mvnrepository.com/. A veces un proyecto mantiene su propio repositorio de Maven, como es el caso de JBoss, y tienes que registrarlo en el pom.xml:

<repository>
  <id>jboss.com</id>
  <name>JBoss Maven Repository</name>
  <url>http://repository.jboss.com/maven2</url>
</repository>

Pero no siempre pueden encontrar las librerías que necesitas en un repositorio de Maven. En en ese caso puede optar por incluirlas en el fuente de la aplicación y registrarlas manualmente:

$ mvn install:install-file -DgroupId=entagged.audioformats -DartifactId=audioformats -Dversion=0.15 -Dpackaging=jar -Dfile=entagged-audioformats-0.15.jar

O puedes crear tu propio repositorio. En este caso hay distintas herramientas que te ayudarán en la tarea, como Nexus. Pero si eres amante de las cosas sencillas te gustará saber que con un simple servidor web también puedes hacerlo.

Para empezar creamos un usuario al que llamaremos «maven» y en su $HOME también vamos a crear los directorio «repository» y «repository/maven2». Le tendremos que dar los permisos de lectura pertienentes a Apache porque se encargará de servir las librerías. Por tanto daremos de alta un VirtualHost para tener acceso al repositorio:

<VirtualHost *>
  DocumentRoot /home/maven/repository
  ServerName repository.monkiki.org
</VirtualHost>

Mientra, en nuestro ordenador local hay que editar el fichero ~/.m2/settings.xml para establecer las credenciales que nos permitirán registrar librerías en el repositorio que acabamos de crear.

<?xml version="1.0" encoding="UTF-8"?>
<settings>
  <localRepository>/home/monkiki/.m2/repository</localRepository>
  <servers>
    <server>
      <id>monkiki.org</id>
      <username>maven</username>
      <password>s3cr3t0</password>
    </server>
  </servers>
</settings>

Podemos ir incluyendo librerías así:

$ mvn deploy:deploy-file -DgroupId=entagged.audioformats -DartifactId=audioformats -Dversion=0.15 -Dpackaging=jar -Dfile=entagged-audioformats-0.15.jar -Durl=scp://repository.monkiki.org/home/maven/repository/maven2 -DrepositoryId=org.monkiki

En caso de que la librería tenga dependencias, es buena praxis indicar en el registro el pom de dicha librería para que Maven gestione correctamente estas dependencias transitivas, en lugar de tener que incluirlas artificialmente en el pom.xml de nuestro proyecto. Para ello se utiliza el parámetro:

-DpomFile=/path/to/pom.xml

En los pom.xml de nuestros proyectos, hemos de registrar repositorio de esta manera:

<repositories>
  <repository>
    <id>monkiki.org</id>
    <name>Mi repositorio de maven particular</name>
    <url>http://repository.monkiki.org/maven2</url>
  </repository>
</repositories>

Y esto es todo, amigo!

Ver también:

Categorías: Java, Ubuntu