Root Teclast x98 Pro

Buscando por internet no me ha quedado muy claro qué método es el que hace falta para rootear esta tablet, así que después de probar dos de ellos, os pongo a continuación el que me ha funcionado a mi.

Primero necesitamos descargar los drivers de intel e instalarlos (IntelAndroidDrvSetup1.10.0.zip) (enlace original de Intel).

Seguidamente activamos el modo depuración USB (si no sabemos cómo, aquí lo explican). Una vez activado, reiniciamos en modo seguro. Esto se hace pulsando el botón de apagado y, en el menú que aparece, dejar pulsado donde pone Apagar. Saldrá algo parecido a lo que aparece en la siguiente imagen:

safe

En el menú de arranque, volvemos a seleccionar Android. Mientras enciende, podemos enchufar el cable USB al PC.

Ahora tenemos que descargar este archivo y ejecutarlo. Cuando arranque la tablet, se pondrá a hacer cosas y nos preguntará que si sale un 0 (usuario root), que todo ha ido bien y que pulsemos cualquier teclar. Entonces se pondrá a instalar unos paquetes y reiniciará la tablet.

Una vez reiniciada vamos a la aplicación SuperSu y pulsamos en actualizar cuando nos pregunte por los binarios. Elegimos la opción normal, ya que no tenemos instalado nigún recovery. Se volverá a reiniciar la tablet y ya tendremos el root 100% operativo.

Apagar la pantalla en servidores Debian

Antes de nada aclarar el título, ya que puede llevar a confusión. Este método vale para casi todas las distribuciones linux (digo casi todas porque tengo entendido que este método en ArchLinux no funciona bien del todo). Está orientado a servidores puesto que no nos interesa tener la pantalla encendida gastando energía tontamente.

La mayoría de métodos que he encontrado, aunque se introducen por consola, hace falta tener entorno gráfico o instalar aparte las utilidades X-Org. En el servidor (no vale por telnet ni por SSH) nos logueamos y escribimos:

setterm -blank 1
setterm -powersave on
setterm -powerdown 1

Si queremos guardar los cambios o no tenemos acceso a la consola física del servidor, mediante telnet, SSH o cualquier otro, editamos el archivo /etc/rc.local e introducimos justo antes de la línea que indica exit 0 los mismos comandos. El archivo quedaría de la siguiente manera, a no ser que hubiera otra modificación:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
setterm -blank 1
setterm -powersave on
setterm -powerdown 1

exit 0

Añadir otras versiones de PHP en ISPConfig 3.0.5

Actualizando owncloud me encontré con que este me recomendaba una versión superior de PHP a la que te instala por defecto el script de ISPConfig en Debian, la cual es la 5.4.45. En otras ocasiones he actualizado la versión por defecto de PHP del sistema, causando una serie de problemas de funcionamiento del servidor que hacía más factible recuperar de una copia de seguridad que arreglar el desastre realizado.

CapturaEchando un vistazo a las opciones que trae el ISPConfig veo que lleva un apartado que pone Additional PHP versions. Imaginé que esto era para asignar una versión diferente de la que viene por defecto en el sistema a unos dominios concretos.

En la imagen se aprecia en qué parte del panel de control se encuentra la mencionada opción.

Pero antes hemos de realizar unos pasos. Básicamente son los pasos de este tutorial pero con un par de modificaciones, pues yo no conseguía que me cambiara la versión del PHP en los sitios que quería.

Vamos a compilar la versión 5.6.0 de PHP-FPM. Realizamos los pasos:

mkdir /opt/php-5.6.0
mkdir /usr/local/src/php5-build
cd /usr/local/src/php5-build
wget http://de.php.net/get/php-5.6.0.tar.bz2/from/this/mirror -O php-5.6.0.tar.bz2
tar jxf php-5.6.0.tar.bz2
cd php-5.6.0/
apt-get install build-essential
apt-get build-dep php5
apt-get install libfcgi-dev libfcgi0ldbl libjpeg62-dbg libmcrypt-dev libssl-dev libc-client2007e libc-client2007e-dev libapache2-mod-fastcgi
ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a
./configure --prefix=/opt/php-5.6.0 --with-pdo-pgsql --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-mcrypt --with-zlib --with-gd --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-pcre-regex --with-mysql --with-pdo-mysql --with-mysqli --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --with-openssl --with-fpm-user=www-data --with-fpm-group=www-data --with-libdir=/lib/x86_64-linux-gnu --enable-ftp --with-imap --with-imap-ssl --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-fpm
make
make install
cp /usr/local/src/php5-build/php-5.6.0/php.ini-production /opt/php-5.6.0/lib/php.ini
cp /opt/php-5.6.0/etc/php-fpm.conf.default /opt/php-5.6.0/etc/php-fpm.conf

Editamos el archivo /opt/php-5.6.0/etc/php-fpm.conf y añadimos al final:

pid = run/php-fpm.pid
user = www-data
group = www-data
listen = 127.0.0.1:8999
include=/opt/php-5.6.0/etc/pool.d/*.conf

En mi caso, la linea 1 tuve que descomentarla solamente. Las líneas 2 y 3 ya estaban por defecto. El puerto de la línea 4 se puede poner cualquiera que no sea 9000 que esté libre. La línea 5 la puse al final.
Creamos el directorio pool.d y creamos el archivo /etc/init.d/php-5.6.0-fpm

mkdir /opt/php-5.6.0/etc/pool.d
vi /etc/init.d/php-5.6.0-fpm

Ahora copiamos y pegamos este texto dentro del archivo que acabamos de crear:

#! /bin/sh
### BEGIN INIT INFO
# Provides: php-5.6.0-fpm
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts php-5.6.0-fpm
# Description: starts the PHP FastCGI Process Manager daemon
### END INIT INFO
php_fpm_BIN=/opt/php-5.6.0/sbin/php-fpm
php_fpm_CONF=/opt/php-5.6.0/etc/php-fpm.conf
php_fpm_PID=/opt/php-5.6.0/var/run/php-fpm.pid
php_opts="--fpm-config $php_fpm_CONF"
wait_for_pid () {
 try=0
 while test $try -lt 35 ; do
 case "$1" in
 'created')
 if [ -f "$2" ] ; then
 try=''
 break
 fi
 ;;
 'removed')
 if [ ! -f "$2" ] ; then
 try=''
 break
 fi
 ;;
 esac
 echo -n .
 try=`expr $try + 1`
 sleep 1
 done
}
case "$1" in
 start)
 echo -n "Starting php-fpm "
 $php_fpm_BIN $php_opts
 if [ "$?" != 0 ] ; then
 echo " failed"
 exit 1
 fi
 wait_for_pid created $php_fpm_PID
 if [ -n "$try" ] ; then
 echo " failed"
 exit 1
 else
 echo " done"
 fi
 ;;
 stop)
 echo -n "Gracefully shutting down php-fpm "
 if [ ! -r $php_fpm_PID ] ; then
 echo "warning, no pid file found - php-fpm is not running ?"
 exit 1
 fi
 kill -QUIT `cat $php_fpm_PID`
 wait_for_pid removed $php_fpm_PID
 if [ -n "$try" ] ; then
 echo " failed. Use force-exit"
 exit 1
 else
 echo " done"
 echo " done"
 fi
 ;;
 force-quit)
 echo -n "Terminating php-fpm "
 if [ ! -r $php_fpm_PID ] ; then
 echo "warning, no pid file found - php-fpm is not running ?"
 exit 1
 fi
 kill -TERM `cat $php_fpm_PID`
 wait_for_pid removed $php_fpm_PID
 if [ -n "$try" ] ; then
 echo " failed"
 exit 1
 else
 echo " done"
 fi
 ;;
 restart)
 $0 stop
 $0 start
 ;;
 reload)
 echo -n "Reload service php-fpm "
 if [ ! -r $php_fpm_PID ] ; then
 echo "warning, no pid file found - php-fpm is not running ?"
 exit 1
 fi
 kill -USR2 `cat $php_fpm_PID`
 echo " done"
 ;;
 *)
 echo "Usage: $0 {start|stop|force-quit|restart|reload}"
 exit 1
 ;;
esac

Hacemos que el script sea ejecutable y lo movemos a system.d con los siguientes comandos:

chmod 755 /etc/init.d/php-5.6.0-fpm
insserv php-5.6.0-fpm
/etc/init.d/php-5.6.0-fpm start

Activamos el módulo fastcgi , reiniciamos apache y modificamos el archivo /opt/php-5.6.0/lib/php.ini de la siguiente manera:

a2enmod fastcgi
service apache2 restart
vi /opt/php-5.6.0/lib/php.ini

Pegamos el siguiente texto al final del archivo:

zend_extension=opcache.so
extension=apcu.so
apc.enabled=1
apc.shm_size=128M
apc.ttl=0
apc.gc_ttl=600
apc.enable_cli=1
apc.mmap_file_mask=/tmp/apc.XXXXXX
;apc.mmap_file_mask=/dev/zero
;apc.shm_segments = 5
extension=memcache.so

Antes de hacer nada, instalamos los módulos APCu, memcache y memcached con los siguientes comandos:

apt-get -y install php-pear
cd /opt/php-5.6.0/etc
pecl -C ./pear.conf update-channels
pecl -C ./pear.conf install channel://pecl.php.net/apcu-4.0.6
pecl -C ./pear.conf install memcache
/etc/init.d/php-5.6.0-fpm reload

En principio ya está nuestra versión. Ahora la ponemos en el ISPConfig. Hacemos click en el orden en el que aparece en la imagen:

Captura2

En PHP Name ponemos el nombre que le vayamos a poner a esta versión. Yo he usado PHP 5.6.0.

Captura3

En la pestaña PHP-FPM Settings ponemos:

  • Path to the PHP-FPM init script: /etc/init.d/php-5.6.0-fpm
  • Path to the php.ini directory: /opt/php-5.6.0/lib/
  • Path to the PHP-FPM pool directory: /opt/php-5.6.0/etc/pool.d/

Captura4

Ahora ya podremos elegir un dominio en el que usar esta versión de PHP.

Owncloud: Este servidor no tiene una conexión a Internet

Pasa en alguna que otra versión de owncloud que, al acceder al área de administración nos puede dar un error en el que se nos indica lo siguiente:

Este servidor no tiene una conexión a Internet. Esto significa que algunas de las características como el montaje de almacenamiento externo, las notificaciones sobre actualizaciones o instalación de aplicaciones de terceros no funcionan. Podría no funcionar el acceso a los archivos de forma remota y el envío de correos electrónicos de notificación. Sugerimos habilitar la conexión a Internet de este servidor, si quiere tener todas las funciones.

Tras mucho buscar por internet y mirar los logs del sistema, encontré una solución muy sencilla: basta con poner el archivo de certificado en el directorio /config de la carpeta de instalación de nuestro owncloud.

¿Y de dónde sacarlo? Bastante fácil también. Descargamos una versión cualquiera de la web oficial, descamprimirla y, dentro de la carpeta /resources/config encontraremos el archivo ca-bundle.crt. Sólo hemos de subirlo a nuestra carpeta de /config y el error desaparece (al menos en mi caso).

Si uno no quiere calentarse mucho la cabeza, dejo el certificado aquí para descargar.

Adaptador Wifi miniUSB para Linux

A muchos nos ha pasado que hemos comprado unos mini-adaptadores wifi del tamaño de una moneda para dotar o mejorar la conectividad wifi de nuestro portátil, para una raspberry, etc.

Mi caso concreto, era para mejorar la cobertura wifi (que tampoco es que tenga mucha debido a su diminuto tamaño) debido al soporte de redes tipo N que el portátil no traía. Fue éste el que compré en eBay, puesto que todos eran los mismos, aunque de diferentes vendedores.

En la descripción del artículo, se indica:

  • La forma mas sencilla de conectar tu ordenador a una red inalámbrica WIFI, mediante este adaptador USB.
  • Función de punto de acceso, para conectar sus dispositivos al adaptador y compartir internet desde el ordenador.
  • Podrás navegar en cualquier momento y en cualquier ordenador.
  • Tamaño pequeño con una gran potencia 150 Mbps.
  • Diseño compacto de fácil transporte.
  • Wireless-N (802.11n)
  • ESTÁNDAR: IEEE 802.11n, IEEE 802.11g (darft), IEEE
  • RANGO DE FRECUENCIA: 2.4 – 2.4835 GHz.
  • NUMERO DE CANALES: 13.
  • Compatible con Microsoft Windows 2000 / XP / Vista / WIN 7 / Win 8 / Win 8.1 / Win 10

Lo cual me parecía una información bastante escasa. Decido preguntar a un par de vendedores de estos aparatos. Y obtengo respuestas genéricas tal que así:

Hola

Le envío las especificaciones del artículo para su comprobación:

Especificaciones: 
-Mini Adaptador Usb Wifi
– Tiene un diseño sencillo, pequeño, discreto y muy fácil de transportar, pero con una gran potencia: 150Mbps
– Sirve para conectar cualquier PC de mesa o portátil a la red inalámbrica Wifi.
– Color: Negro y rojo
– Sistemas operativos: Windows 2000 / XP / Vista / WIN 7 / WIN 8 / Windows 10
– Rango de frecuencias: 2.4 ~ 2.4835GHz.
– Medidas: 20 x 14 x 6 mm aprox.
– Interfaz: USB2.0

Saludos.

Nada. Me quedo igual. Básicamente, copian y pegan la información que tienen en la web de la tienda china (como esta, por ejemplo). Así que finalmente decido adquirirlo a la primera que pillo, total, unos céntimos de diferencia no importan.ASUS-Eee-PC-900HD-2

Al llegarme el adaptador lo pruebo en un portátil Asus 900HD como en el de la foto. Este PC lleva de casa Windows XP, pero decidí cambiarlo por Lubuntu, un sistema Linux más liviano y más actual.

No me lo detecta. Normal (creo). Así que decido buscar por la extensa web. Y doy con un post donde explican cómo instalar los drivers de este modelo (o de uno similar). Pero no me funciona con los drivers que mencionan, ya que son para una versión anterior al kernel que estoy usando.

Los pasos a seguir fueron:

  1. Enchufamos el dispositivo a un puerto usb. Listamos los dispositivos conectados a los puetos USB con el comando:
    lsusb

    Nos aparecerá algo tal que así bash1
    El adaptador en cuestión es de ralink y el modelo 7601, por lo que es un RT7601

  2. En la tercera línea se puede apreciar que linux detecta que el dispositivo está enchufado.
    Bus 001 Device 007: ID 148f:7601 Ralink Technology, Corp. 

    Pero como no tiene los drivers, no lo puede hacer funcionar. Descargamos los archivos fuente directamente desde github.

  3. Una vez descargados, descomprimimos el archivo con el comando
    tar xjf DPO_MT7601U_LinuxSTA-master.zip

    (suponiendo que el nombre del archivo descargado sea ese).

  4. Descargamos también el parche (mirror) y lo ponemos en la misma carpeta donde hemos puesto el archivo zip del paso 2.
  5. Accedemos a la carpeta donde hemos descomprimido el source de los drivers y aplicamos el parche.
    cd DPO_MT7601U_LinuxSTA-master.
    patch -p0 < ../rt2870-mt7601Usta-kuid_t-kgid_t.patch
  6. Ejecutamos.
    make
    sudo mkdir -p /etc/Wireless/RT2870STA/
    sudo cp RT2870STA.dat /etc/Wireless/RT2870STA/RT2870STA.dat
    sudo /sbin/insmod os/linux/mt7601Usta.ko
  7. Finalmente, compilamos
    make install

Y ya lo tendremos funcionando, como se puede ver en esta captura (dispositivo ra0)

sh2

Cabe decir que habrá que hacer estos pasos cada vez que actualicemos el kernel. También es posible que, a la hora de compilar nos dé un error de que no encuentra los headers. En tal caso habrá que instalarlos con el comando

sudo apt-get install --reinstall linux-headers-generic build-essential 

Con todo esto ya tendremos el adaptador totalmente operativo en Ubuntu (y todas sus variantes) y puede que en las demás distribuciones de linux.