19 agosto 2017

Fedora Gnome, KDE, KDE Connect y MConnect

Desde hace unas semanas estoy probando KDE Plasma. Instalé KDE Neon y vi que el escritorio era más fuído que hace años, cuando probé KDE, por lo que me he animado a instalar mi distribución preferida con este escritorio.

Desde hace años soy usuario de Fedora; no voy a entrar en la dinámica de si una distribución es mejor que otra: para gustos ya están los colores, y cada uno debe amoldarse a la distribución con la que esté más agusto.

De hecho Fedora es mi distro principal, con Gnome, pero tengo instaladas otras que también uso.

La instalación, como siempre es fácil y rápida (sobre SSD, jeje).

Lo primero que voy a hacer es emparejar el teléfono android con el PC, mediante KDE Connect.

Lo primero de todo es instalar en el teléfono la aplicación KDE Connet que se encuentra en el Google Play (también está disponible en F-Droid, etc...)

Aplicación para el teléfono

Cuando edito las preferencias de KDE Connect y le doy a actualizar para que busque mi teléfono (el cual hay que tener encendido y conectado a la misma wifi que el PC), en principio no me lo detecta. Las opciones, como se ve en la primera imagen, son accesibles desde el grupo de notificaciones: icono triángular, que nos muestra los iconos ocultos, abajo a la derecha; seleccionamos KDE Connect con el botón derecho...

¿¿Motivo??  Pues que en el caso de Fedora, hay que activar el servicio KDE dentro del Firewall (cortafuegos), ya que por defecto, dicho servicio no está activado.


Al cortafuegos (firewall) podemos acceder muy fácil desde el botón de inicio, simplemente comenzando a escribir "cortafuegos" o navegando por el menú hasta llegar a la Aplicaciones de Administración.

Una vez en él, por defecto os aparece la Configuración "en tiempo de ejecución", por lo que los cambios que hagáis se perderán cuando cerréis sesión.  Debéis cambiar a Configuración Permante, como véis en la imagen, y una vez allí, como ya estáis en Zonas y en Servicios, bajáis y buscáis el servicio KDE Connect y lo activáis.

Después reiniciáis el servicio (podéis reiniciar el PC completamente) y ya os aparecerá vuestro dispositivo, podéis emparejarlo con el teléfono... y ya os podréis mover por él con la estructura similar a cualquier árbol de directorios.




Sencillo, ¿no?









Escritorio Gnome
Existe un extensión para Gnome, que dota a este escritorio de la misma funcionalidad que KDE Connect a Plasma. La extensión se llama MConnect, y podéis descargarla desde la web de las extensiones para Gnome.

De hecho se apoya en en KDE Connect, por lo tanto, para usarla en entornos Gnome deberéis
  1. instalar ambos: kde-connect (que suele estar en todos los repositorios)
  2. activar la extensión comentada antes
Una vez hecho esto, en Gnome nos aparecerá una nueva opción, tal y como podéis ver en la imagen anterior.

La primera vez que vayáis a emparejar vuestro teléfono hacerlo con la "Mobile Settings". Esta opción os arranca la misma ventana explicada en la parte superior del artículo.

Seleccionáis vuestro dispositivo y emparejáis (acordaros que si no aparece posiblemente haya que activar el servicio 'kde-connect' dentro de la configuración permanente del cortafuegos.

Una vez hecho esto, el dispositivo siempre estará disponible: con que encendáis una vez la pantalla ya quedan operativas las opciones típicas que véis en la imagen inferior: enviar sms, localizador de vuestro móvil (es como si os hiciéseis una llamada, para que suene y localizarlo), moveros por las carpetas del mismo y compartir contenido.

Como veis, gracias a esta extensión podemos acceder fácilmente a nuestro dispositivo, tanto desde el escritorio Plasma como desde Gnome.

05 agosto 2017

Crear y administrar USB Multiboot, sin programas dedicados

Hace varias semanas, en la web de Lignux.com, los amigos Alex y Jinkros publicaron 2 post que, por mi parte, considero muy buenos.

Se trataba cómo crear un USB Multiboot, para arrancar diversas distribuciones GNU/Linux, y usando únicamente Grub2, es decir, sin hacer uso de programas dedicados que, como sabéis, los han muy buenos (multisystem, Yumi,...)

Jinkros describía el proceso de creación del USB en cuestión: formateo, transferir el GRUB2 para permitir arranque tantos en modo BIOS como en UEFI, esctructura de carpetas, copiar las ISO de las distribuciones elegidas y finalmente adaptar el archivo grub.cfg para que todas ellas fueran instalables.

Alex, por su parte, añadía una vuelta de tuerca, y describía cómo hacer lo mismo, pero primero generando lo que podríamos llamar un USB Virtual, es decir, generar una imagen de disco y hacer todo el proceso anterior sobre ella para, una vez comprobado que todo funciona, volcarlo al USB físico.

¿¿Ventaja de hacerlo como dice Alex??: pues que las pruebas podemos hacerlas sin tener que estar reiniciando el PC constantemente.

Como digo, los artículos son insuperables, por lo que no voy a repetir los mismos pasos. Considero de obligada lectura los mismos:

  1. Particionar imagen de disco, para pruebas
  2. Proceso de creación manual del USB multiboot
En este sencillo post voy a indicar cómo administro y gestiono el llamado USB Virtual (imagen de disco para hacer pruebas), y cómo, después de comprobar que todo funciona correctamente, lo transfiero al USB físico.

Después de haber seguido los pasos anteriores es importante saber que:
  • la imagen de disco (imagen_prueba.img) que hemos creado tiene todo:
    • está formateada en Fat32
    • tiene las particiones que necesita, y los archivos ya copiados
  • para hacer uso de ella en cualquier Sistema (yo tengo varios), y poder editarla, sólo es necesario hacer lo siguiente: 
    • crear el dispositivo de bucle (loop) para el sistema en el que estamos en dicho momento
    • entrar en "parted" y activar la primera partición como arranque
    • montar el dispositivo, para hacerlo accesible a editarlo, etc...
Pasos:

sudo losetup /dev/loop0 /media/Datos/virtualUSB/imagen_prueba.img
sudo parted /dev/loop0
 > (parted) set 1 boot on

Antes de salir de "parted" podemos comprobar que todo ha quedado correcto: para ello ponemos las unidades en 'mib' y luego listamos las particiones con 'p'.

En la imagen podéis ver que yo he creado una imagen de disco de 16 GB.


Si queremos acceder a nuestro USB Virtual, por ejemplo para añadir/borrar alguna ISO, simplemente tenemos que montar la partición activa. Una forma rápida es:

$ udisksctl mount --block-device /dev/loop0p1  (no se necesita privilegios root)

Ahora ya sabemos dónde está montado y vemos el UUID de la citada partición.

Con el explorador de archivos correspondiente podemos acceder a dicha ruta y realizar las modificaciones que consideremos pertinentes.

Siempre vamos a poder probar nuestro USB Virtual mediante QEMU.

En mi caso (estoy en un PC sin UEFI) voy a probar el arranque BIOS:

$ qemu-system-x86_64 \
   -k es \
   -vga std \
   -m 2048 \
   -hda /media/Datos/virtualUSB/imagen_prueba.img

Cada uno usar vuestras rutas

El resultado es el que tenéis en la primera imagen que acompaña el post.

A continuación os paso el contenido de mi archivo grub.cfg:

set imgdevpath='/dev/disk/by-uuid/9526-CA15'

insmod png
insmod part_msdos
insmod fat
insmod ntfs
insmod ext2
insmod tga
insmod gfxterm
insmod lspci
insmod vbe
insmod chain
insmod biosdisk
insmod font

set root='hd0,msdos1'
set timeout=30
set default=0

if loadfont /boot/grub/fonts/unicode.pf2 ; then
    set gfxmode=640x480
    insmod gfxterm
    terminal_output gfxterm

    if [ "${grub_platform}" == "efi" ]; then
        insmod efi_gop
            insmod efi_uga
    fi
  
    if [ "${grub_platform}" == "pc" ]; then
            insmod vbe
            insmod vga
    fi
fi

# Dentro de /boot creo una carpeta nueva:  /splash  y en ella meto el archivo de background
background_image -m stretch /boot/splash/fondo.png

if background_image /boot/splash/fondo.png ; then
    # Texto de las opciones de menú (black = transparente en caso de existir fondo)
    set color_normal=white/black
    # Texto de la opción seleccionada del menú
    set color_highlight=yellow/cyan
    else
        set menu_color_normal=white/black
        set menu_color_highlight=green/white
        set color_normal=white/magenta
        set color_highlight=green/white
fi

menuentry '=== Instalaciones disponibles -CloroPC- ===' {
    echo
}

menuentry 'Manjaro-gnome-17.0.2' --class dvd {
    set isofile='/boot/isos/manjaro-gnome-17.0.2-stable-x86_64.iso'
    set dri="nonfree"
    search --no-floppy -f --set=root $isofile
    loopback loop $isofile
    linux  (loop)/boot/vmlinuz-x86_64  img_dev=$imgdevpath img_loop=$isofile driver=$dri
    initrd  (loop)/boot/intel_ucode.img (loop)/boot/initramfs-x86_64.img
}

menuentry 'Debian-9.1.0' --class dvd {
    set isofile='/boot/isos/debian-9.1.0-amd64-DVD-1.iso'
    loopback loop $isofile
    linux (loop)/install.amd/vmlinuz vga=788 --- quiet
    initrd (loop)/install.amd/gtk/initrd.gz
}

menuentry 'Ubuntu-17.04-gnome' {
    set isofile='/boot/isos/ubuntu-gnome-17.04-desktop-amd64.iso'
    loopback loop $isofile
    linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile
    initrd (loop)/casper/initrd.lz
}

menuentry 'KDE Neon User Edition ' {
    set isofile='/boot/isos/neon-useredition-20170706-1018-amd64.iso'
    loopback loop $isofile
    linux (loop)/casper/vmlinuz.efi  boot=casper iso-scan/filename=$isofile quiet splash ---
    initrd (loop)/casper/initrd.lz
}

menuentry 'Fedora-Workstation-26' {
    set isofile='/boot/isos/Fedora-Workstation-Live-x86_64-26-1.5.iso'
    loopback loop $isofile
    linux (loop)/isolinux/vmlinuz root=live:CDLABEL=Fedora-WS-Live-26-1-5 iso-scan/filename=$isofile rd.live.image quiet
    initrd (loop)/isolinux/initrd.img
}

menuentry 'Fedora-MATE-26' {
    set isofile='/boot/isos/Fedora-MATE_Compiz-Live-x86_64-26-1.5.iso'
    loopback loop $isofile
    linux (loop)/isolinux/vmlinuz root=live:CDLABEL=Fedora-MATE-Live-26-1-5 iso-scan/filename=$isofile rd.live.image quiet
    initrd (loop)/isolinux/initrd.img
}

menuentry 'openSUSE Tumbleweed (netinstall)' {
    set isofile='/boot/isos/openSUSE-Tumbleweed-NET-x86_64-Snapshot20170801-Media.iso'
    loopback loop $isofile
    set gfxpayload=keep
    linux (loop)/boot/x86_64/loader/linux splash=silent iso-scan/filename=$isofile
    initrd (loop)/boot/x86_64/loader/initrd
}

menuentry '================================================' {
    echo

}

menuentry 'Reiniciar equipo' {
    reboot
}

menuentry 'Apagar equipo' {
    halt
}


Una vez que veáis que todo funciona correctamente, la forma más rápida de transferir dicha imagen de disco a un USB físico (mismo tamaño o superior) es haciendo uso del comando "dd".

Este comando es 'silencioso' es decir, si lo usamos "a pelo" no sabréis con certeza cuándo ha terminado, salvo que vuestra llave usb tenga lucecitas... Personalmente, para copias de gran tamaño, lo hago pasar por la tubería 'PV', para ver una barra de avance del proceso.

PV puede que no lo tengáis insatalado, pero es fácil. Suele estar en todos los repositorios, así que, dependiendo de vuestra distro:
     $ sudo pacman -S pv ......... Manjaro y otras derivadas de Arch
     $ sudo dnf -y install pv ...... Fedora y derivadas
     $ sudo zypper in pv ........... openSuse y derivadas
     $ sudo apt install pv .......... Debian, Ubuntu y derivadas

Luego sólo nos queda transferir la imagen al USB. Para ello, siempre me cambio a 'root' (evito problemas de acceso) y hago lo siguiente:

# dd if=/dev/loop0 |pv|dd of=/dev/sdc bs=4M


En la imagen veis el grado de avance que lleva el proceso de copia...

Un saludo y espero le saquéis utilidad igual que la que le estoy sacando yo.

Problemas que me encontré:
  • La instalación de GRUB2 hacia el USB virtual la hice desde Manjaro, ya que desde otros sistemas me daba problemas de geometría y otras cosas y no perdí tiempo buscando los motivos exactos.
  • La imagen de fondo preferí separarla en una carpeta aparte, redimensionarla a mi resolución (1360x768) y convertirla a 'png'.



Último post

Preparando un espacio de trabajo

            Ahora que tengo tiempo, retomo el blog. Por comodidad (y por capricho) he elegido la siguiente configuración: He optado por un ...