Mostrando entradas con la etiqueta lector de tarjetas. Mostrar todas las entradas
Mostrando entradas con la etiqueta lector de tarjetas. Mostrar todas las entradas

miércoles, 24 de junio de 2020

¿Cómo utilizo tarjetas inteligentes para autenticación en Ubuntu?

Tras vencer abrumadoramente en las elecciones de 1946, Juan Perón expone frente al Consejo Superior del Partido Justicialista las necesidades electorales futuras, y explica cómo emplear las tarjetas inteligentes SmartCard en Ubuntu.

¡Trabajadores!

¡Una oligarquía sin Patria ni Bandera, encaramada en un ataque contumaz, osó por insultar a la República, sometiendo a los descamisados a un oprobio sin parangón en la historia!

Sin embargo, somos gratificados testigos de la Unión del Pueblo, en donde una sola clase de hombres, los que trabajan, dan todo en pos de la Comunidad. Esto nos ha hecho torcer el brazo a nuestro enemigo, pero no podemos sostener todo en declamaciones, sino que ha de cimentarse en organizaciones de toda índole que permitan consolidar los logros y trazar los objetivos que anhelamos.

Como Conductor, no puedo más que regocijarme frente a la mancomunidad de los hombres buenos de nuestra Nación. Los trabajadores, que forman la masa, no son otra cosa que la Columna Vertebral de nuestro Movimiento. Día a día son más numerosos quienes se afilian al instrumento político que hemos dado en crear, el Partido Peronista: las banderas de Justicia Social que hemos enarbolados son señeras del sendero que hemos de recorrer todos los Argentinos. Bajo su alegre flamear es que encontrsaremos el destino que la providencia nos depara.
Indudablemente que este partido ha de contar con un registro certificado y alegre, consumado en forma de una Tarjeta Inteligente y personal expedida en forma de Carnet a cada uno de nuestro millones de afiliados encolumnados. En este caso el Justicialismo ha hecho vanguardia, pues se trata de una tarjeta inteligente PIV capaz de soportar el estándar FIPS-201.

Estas tarjetas plásticas contienen datos digitales codificados en un chip accesible por radiofrecuencias. Naturalmente, que pueden comprarse vírgenes y los proveedores de servicios PIV como nuestro Partido es el encargado de cargar las credenciales digitales requeridas.

Lamentablemente, de momento el instrumental libre OpenSC de Ubuntu es capaz de operar con tarjetas en modo "solo lectura", por lo que para almacenar los certificados en ellas ha de recurrirse a otra metodología indeseable. Por ejemplo, podríamos utilizar herramental privativo para Linux, o bien utilizar un emulador o máquina virtual con un deleznable Window$. No cubriré tales sistemas de grabación aquí, será suficiente decir tales enjundios almacenarán en la tarjeta un Certificado (CA), un par de Claves Públicas, y un Número de Identificación Personal PIN de Usuario y otro PIN de Administrador.

En este caso utilizaré una tarjeta inteligente PIVKey C910 que emula el Carnet de Afiliado Peronista. Esta tarjeta PIVKey C910 contiene un chip RFID y es compatible con la norma FIPS201, y implementa la interfaz de comandos estandarizadas NIST Sp 800-73 part 3.

¿Qué sucede si - por necesidad de un sistema de tales características -  debemos acceder a un sistema remoto o local con GNU con Linux con nuestra tarjeta inteligente de Afiliado?
Ya contamos con nuestra tarjeta inteligente de afiliado peronista

Pues bien, en el caso habremos de preparar un sistema Ubuntu con tal alternado criptográfico, si es posible. Os lo explicaré de forma Justicialista. Como primer medida, hemos de preparar nuestro sistema, y podremos hacerlo desde la Terminal. Para ello abrimos una con Ctrl+Alt+T e ingresamos:

sudo apt install libccid pcsc-tools opensc opensc-pkcs11 libpam-pkcs11

Estas librerías son escenciales para operar criptográficamente y leer las tarjetas, así como para ofrecerenos diferentes condimientaciones de trabajo, entre ellas inicios de sesión mediante las SmartCards, elevación de privilegios sólo a través de la SmartCard, etcétera.

Una vez descargada la paquetería, habremos de configurar el lector de tarjetas inteligentes. En mi caso utilizaré un lector USB de Smart Cards "Identiv SCR3310v2.0 USB Smart Card Reader", al cual Linux reconoce bajo el nombre de "SCM Microsystems SCR3310".
Sin colocar tarjeta aún, conectamos el lector de tarjetas en un puerto USB, y nos aseguramos que nuestro sistema lo reconozca. Para ello en la terminal ingresamos:

opensc-tool --list-readers

...a lo cual nuestro sistema debería analizar el lector de tarjetas inteligentes y si el mismo funciona correctamente, devolvernos algo como:

# Detected readers (pcsc)
Nr.    Card    Features    Name
0    No        SCM Microsystems Inc. SCR 3310 [CCID Interface] (53311646706297) 00 00

Pues bien señores, como tenemos un solo lector de tarjetas, recibe el número 0. Acto seguido, insertamos la tarjeta en el lector, y revisamos que la misma sea reconocida, con el siguiente comando:

opensc-tool --reader 0 --name

...y el sistema nos devolverá el nombre de la tarjeta (recordemos que ha sido creada anteriormente), por ejemplo, podría decir:

PIV-II Peronist Card

Configuración de la pila de autenticación PAM

El módulo pam-plcs11 que hemos instalado le permite a Ubuntu emplear certificaciones digitales tipo X.509 para autenticar nuestros inicios de sesión. Para ello el módulo hará uso de la librería abierta opensc-pkcs11 a fin de acceder a la tarjeta inteligente y a su vez recibir las credenciales necesarias.

El proceso de inicio de sesión con pam_pkcs11 es el siguiente:
  1. Ingresamos nuestro login o inicio de sesión
  2. Ingresamos el PIN.
  3. Validamos el Certificado.
  4. Asignamos el Certificado a un Usuario.
  5. Verificamos que la sesión y el usuario coincidan.
Para hacer realidad efectiva este tren de operaciones criptográficas, como Conductores del sistema habremos de asegurarnos de:
  • Configurar el módulo pam_pkcs11
  • Agregar el/los Certificados y CRL(s) en los directorios necesarios
  • Configurar la pila PAM para que haga uso del módulo pam_pkcs11
  • Agregar el Nombre Común (CN) para el Inicio de Sesión
En primer lugar crearemos el fichero de configuración necesario, con el siguiente bloque de comandos de organización:

cd /etc/pam_pkcs11 ;
sudo cp /usr/share/doc/libpam-pkcs11/examples /pam_pkcs11.conf.example.gz . ;
sudo gunzip pam_pkcs11.conf.example.gz ;
sudo cp pam_pkcs11.conf.example pam_pkcs11.conf


Dentro de este fichero de configuración /etc/pam_pkcs11/pam_pks11.conf habremos de revisar las opciones "module", "cert_pòlicy" contenidas en la cadena "pkcs11_module opensc {}". Debemos asegurarnos que la opción "module" contenga la ruta absoluta hacia la librería open-pkcs11.so instalada en nuestro sistema. Asimismo, la opción "cert_policy" debe incluir a la cadena "oscp" como una de sus políticas de verificación de certificados.

Por ejemplo,para hacer esto igreesamos en Ubuntu de 64 bits:

sudo nano /etc/pam_pkcs11/pam_pks11.conf

Esto abriá el editor peronista GNU Nano con el contenido del archivo pam_pks11.conf. Ingresamos Ctrl+w para buscar la cadena "pkcs11_module opensc {}". La modificamos para que incluye la configuración que os he nombrado, a fin de que figure de la siguiente manera:

use_pkcs11_module = opensc;
module = /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so;
cert_policy = ca,signature,oscp_on;


Una vez completado este cambio en el editor, presionamos nuevamente Ctrl+w para busca ahora la cadena "use_mappers", y la modificamos para que quede así:

use_mappers = pwent;

También encontraremos dentro de este archivo las cadenas ca_dir y crl_dir, que son las quie definen los directorios o carpetas donde deseamos almacenar los ficheros que de las Autoridades de Certificación ("CA") y las Listas de Revocacion de Certificado "CRL" respectivamente. Por ejemplo, podríamos usar los directorios siguientes:

ca_dir=/etc/pam_pkcs11/cacerts
crl_dir=/etc/pam_pkcs11/crls


Guardamos con Ctrl+o y salimos con Ctrl+x.

Ahora bien, el módulo pam_pkcs11 necesita conocer las Autoridades de Certificación (CAs) a fin de ser capaz de validar el certificado que estará contenido en la tarjeta. De forma opcional también podrá utilizar Listas de Revocación de Certificación (CRL) que son opcionales, pero también pueden usarse para validar el Certificado. En este caso, utilizaré el servicio del sitio web http://ca.pivkey.com.

Agregamos cualquier CAs y CRLs requeridas en los directorios que habíamos especificados en las cadenas ca_dir y crl_dir del fichero de configuración pam_pkcs11.conf. En este caso los revisaremos con:

ls /etc/pam_pkcs11/cacerts

...y el sistema podría devolvernos los archivos que le cargamos:

PIVKeyDeviceCertificateAuthority.crt MenganoSARootCA.crt

ls /etc/pam_pkcs11/crls

pivkeydeviceca.crl menganorootca.crl

Ahora crearemos los enlaces hash usando el programa pkcs11_make_hash_link. Por ejemplo, podríamos ingresar en la terminal:

cd /etc/pam_pkcs11/cacerts
sudo pkcs11_make_hash_link


...y al listar el contenido con del directorio cacerts con:

ls

...el sistema nos devolvería algo como:

c90bef04.0 PIVKeyDeviceCertificateAuthority.crt
e7d4c577.0 MenganoSARootCA.crt


Lo mismo hacemos con el directorio crls:

cd /etc/pam_pkcs11/crls
sudo pkcs11_make_hash_link


...y al listar con:

ls

...el sistema nos devolvería:

c90bef04.r0 e7d4c577.r0 pivkeydeviceca.crl menganorootca.crl


Configurar la pila PAM de Autenticación


El siguiente paso es integrar el módulo pam_pkcs11 a la pila PAM (la encargada del conformar el sistema de autenticación cifrada). Existen varias formas de hacerlo, y la configuración dependerá de la política de seguridad que tengamos como Conductor del sistema. Os mostraré unos ejemplos de integración basada en una política permisiva "de Unidad Básica" y otra política astringente "de Comando Táctico Justicialista".

Loguearse en Escritorio gráfico con GDM3 de Ubuntu usando tarjeta inteligente

En la pila PAM tradicional, se utiliza el método de inicio de sesión con contraseña, lo cual es sencillo y relativamente inseguro. En este ejemplo "para unidad básica", podríamos integrar el uso del módulo pam_pkcs11 a la pila PAM con el objetivo directo de utilizar la tarjetas inteligentes a fin de loguearnos durante el Inicio de Sesión gráfico GDM3 de Ubuntu.

Para ello editamos el fichero de configuración del mismo gdm-password e incluimos el módulo.

Por ejemplo, ingresamos:

sudo nano /etc/pam.d/gdm-password

E incluiremos el módulo pam_pkcs11 a la pila PAM de autenticación del sistema, agregando el siguiente contenido:

## Agregado peronista de módulo al stack PAM
## para logueo con tarjeta inteligente
auth    requisite   pam_nologin.so
auth    required    pam_succeed_if.so user != root quiet_success
auth    sufficient    pam_pkcs11.so
@include common-auth
auth    optional    @include common-account

...


Iniciar sesión con Tarjeta Inteligente en Ubuntu Server (únicamente loguearse)


El módulo pam_pkcs11 puede integrarse a la pila PAM de autenticación si deseqamos usar la tajeta inteligente únicamente para el inicio de sesión en el servidor, y no para el resto de las acciones. Para ello debemos editar el archivo login e incluir el módulo pam_pkcs11. Lo haremos ingresando:

sudo nano /etc/pam.d/login

...se abirá GNU Nano con el fichero login, al cual le incluimos el siguiente contenido:

## Agregado peronista para loguearse al servidor
## con tarjeta inteligente
# usar soporte pkcs11
auth    sufficient    pam_pkcs11.so
## Fuerza un retraso mínimo en caso de falla (dado en milisegundos).
## Reemplaza la configuración FAIL_DELAY del archivo login.defs).
## Tenga presente que otros módulos podrían requerir un retraso mínimo
## distinto (por ejemplo, para desactivar la existencia de retrasos,
## debería agregar la opción nodelay al archivo pam_unix).
auth    optional    pam_faildelay.so delay=3000000

## Da salida a un fichero de situación /etc/issue antes de cada
## solicitud de inicio de sesión (reemplaza la opción ISSUE_FILE
## del fichero de configuración login.defs). Descomente si lo
## quiere usar.
# auth    required    pam_issue.so issue=/etc/issue

...
...


Una vez pegado este contenido, guardamos los cambios con en el archivo con Ctrl+o y salimos del editor con Ctrl+x.

Al especificar "sufficient" en la línea de control, ta,bién podríamo loguearnos usando el siguiente caso de PAM (normalmente contraseña) si no tuviésemos la tarjeta inteligente encima o si la misma no funcionase. Por este motivo, la tarjeta opera únicamente como comodidad.

Como os he dicho, esto permitirá un acceso "de Unidad Básica" a la sesión gráfica, asumiendo una seguridad laxa ya que la tarjeta inteligente ha sido emitida supuestamente por una autoridad controlada.

Usar tarjeta inteligente en Ubuntu Server para autenticación general

Otra política de seguridad digna del Comando Táctico del Justicialismo podría requerir insertar la tarjeta de afiliado para dar inicio de sesión en el servidor y a su vez para cualquier otro servicio que utilice autenticación PAM. Muchos servicios PAM localizados en el directorio /etc/pam.d/ hacen uso del fichero common-auth. En esta política particular podríamos incluir al módulo pam_pkcs11 en este fichero a fin de activar la autenticación por tarjeta para todos los servicios que incluyan el uso de autenticación general.

Lo haríamos ingresando en la terminal:

sudo nano /etc/pam.d/common.auth

Y al abrirse el editor, en este caso incluiríamos el siguiente contenido:

## Solicita el inicio de sesión con tarjeta inteligente
## con el módulo pkcs11
auth    [success=1 default=ignore]    pam_pkcs11.so
## A continuacińo plan B de retorno, por si el módulo gorilea
## y no tiene éxito
auth    requisite    pam_deny.so
## Ceba la pila PAM con un valor de retorno positivo en caso de
## no haber recibido uno ya; esto permite evitar que devuelva un error
## sólo porque ningún otro módulo devolvió código de éxito,
## en el caso que los módulos que figuraban previamente en la pila PAM
## hubiesen quedado como gorilas idiotas colgados de las palmeras.
auth    required    pam_permit.so
## Y hete aquí más módulos por paquetes (el bloque "adicional")
auth    optional    pam_cap.so
# final de la configuración de pam-auth-update.


La configuración anterior del sistema de autenticación obligará a realizar la autenticación sólo con la tarjeta inteligente. Si el usuario no puede autenticarse con la tarjeta, entonces el inicio de sesión entero fracasará. Todos los servicios PAM incluidos en el directorio /etc/pam.d incluidos en common-auth requerirán también la autenticación por tarjeta. ¡Atención! Una configuración global como esta requere que su y sudo también se autentiquen usando la tarjeta magnética.

Agrtegar la CN

Ahora que pam_pkcs11 y la pila PAM han sido configuradas para el inicio de sesión con tarjeta inteligente siguiendo la política de seguridad que hemos anhelado, existirá una acción más que tomar requerida para el uso completo y final. El mapeador pwent requiere la CN en el certificado que esté indicado en la línea gecos del usuario del archivo /etc/passwd. La CN debe ser estraída desde el certificado contenido en la tarjeta magnética.

Para ello seguimos los siguientes pasos:

Primero, obtenemos el identificador ID del certificado contenido en el chip de la tarjeta inteligente. Esto lo haremos mediante el comando:

pkcs15-tool --list-certificates

...y nuestro sistema nos devolverá:

Using reader with a card: SCM Microsystems Inc. SCR 3310 [CCID Interface]
(53311646706297) 00 00
X.509 Certificate [Certificate for Card Authentication]
Object Flags: [0x0]
Authority: no
Path:
ID: 04
Encoded serial : 02 0A 5877782D0001000013BF


En este caso inventado, como vemos, el ID es "04".

Segundo, utilizamos este ID como llave para leer la información del certificado de la tarjeta y la guardamos en un fichero local en la carpeta temporal del sistema. Lo hacemos con el siguiente comando de organización:

pkcs15-tool --read-certificate 04 > /tmp/sc-cert.crt

...el sistema devuelve:

Using reader with a card: SCM Microsystems Inc. SCR 3310 [CCID Interface]
(53311646706297) 00 00


También podríamos presentar en pantalla el enigmático contenido en ASCII del certificado (que como vemos, es imposible de recordar para un ser humano normal y corriente):

cat /tmp/sc-cert.crt

-----BEGIN CERTIFICATE-----
MIIEkjCCA3qgAwIBAgIKWHd4LQABAAATvzANBgkqhkiG9w0BAQsFADBbMRMwEQYK
CZImiZPyLGQBGRYDYGoRiLaS2dE9MiErDaPyLGQBGRYGcGl2a2V5MSwwKgYDVQQD
EyNQSVZLZXkgRViVaPeRoNCaRaJoZmljYXRlIEF1dGhvcml0eTAeFw0xNjEyMDYw
MDE4MTJaFw0yODEyMDMwMDE4MTJaMDIxMDAuBgNVBAMTJ1BJVktleSBCQTM2NkRG
RTM3MjJDNzQ0OU-VDOTA2QjkyNzRDOEJBQzCCASIwDQYJKoZIhvcNAQEBBQADggE
...
...
-----END CERTIFICATE-----


En tercer lugar utilizamos el programa openssl para extraer la CN desde el fichero temporal almacenado que acabamos de crear.

openssl x509 -noout -subject -in /tmp/sc-cert.crt

...y entonces nuestro sistema devolvería algo como:

subject=CN = PIVKey BA3V6IDVFA37P2E7R4O9N96B9274C8BAC

En este caso la CN es "PIVKey BA3V6IDVFA37P2E7R4O9N96B9274C8BAC". Sabiendo esto, editamos el archivo /etc/passwd para agregarle esta CN al campo gecos del usuario al cual pertenece el certificado.

Supongamos que este certificado pertenece al nombre de usuario mengano en el fichero /etc/passwd. En este caso ingresamos:

sudo nano /etc/passwd

Esto abrirá el editor con el archivo de contraseñas. Debemos buscar la línea de mengano y editarla para que tenga la siguiente forma:

mengano:x:1001:1001:PIVKey BA3V6IDVFA37P2E7R4O9N96B9274C8BAC:/home/mengano:/bin/bash

Una vez que modifiquemos, guardemos con Ctrl+o y salgamos con Ctrl+x, nuestro sistema operativo estará ahora lilsto y preparado para hacer un logueo con tarjeta magnética para el usuario mengano.

Inicio de Sesión SSH usando tarjeta inteligente

Uno de los métodos contemplados en el protocolo Shecure Shell (SSH) es la autenticación con par de clave privada y pública. Una copia de la claves pública del usuario queda almacenada en el servidor SSH como referencia, y se la considerará "autorizada". Quien posea la clave privada podrá entonces loguearse a través de SSH al servidor.

Las credenciales PIV incluyen un certificado y un par de claves que pueden ser utilizadas para el acceder mediante SSH. La clave pública deberá ser extraída de la tarjeta inteligente y copiada en el servidor SSH. Para ello debemos conectar el lector de tarjetas al cliente SSH (o sea, nuestra terminal local). En ese momento el cliente SSH usará la librería opensc-pksc11 para acceder a la tarjeta que insertamos, y ralizará culaquiera de las operaciones de autenticación criptográfica que le requiramos. Por lo tanto, no es necesario exponer la clave privada.

Configurar el Inicio de Sesión Secure Shell con Tarjeta Magnética

Tanto el servidor SSH como nuestro cliente SSH deberán ser configurados para permitir el uso de autenticación por tarjeta magnética.

Configurar el servidor SSH

El servidor SSH necesitará permitir autenticación de clave pública a través de su fichero de configuración, y además necesitará la clave pública del usuario.

Para permitir la autentificación de clave publica, ingresamos:

sudo nano /etc/ssh/sshd_config

En un archivo estándar de Ubuntu 18.04, la opción PubkeyAuthentication está comentada y por lo tanto, desactivada. Sin embargo, la opción por defecto está establecida con el valor "yes" ("si"). La descomentaremos borrando el "#", de modo que quede así:

PubkeyAuthentication yes

Acto seguido, guardamos con Ctrl+o y salimos con Ctrl+x, y reiniciamos el demonio del servidor SSH con el siguiente comando de organización:

sudo systemctl restart sshd

Copiar la clave pública de un usuario al servidor

Debemos extraer la clave pública del usuario desde la tarjeta para el cliente SSH. Para ello usamos el programa ssh-keygen para que lea la clave pública contenido en la tarjeta y lo convierta a un formato legible para utilizar con Secure Shell:

ssh-keygen -D /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so > tarjeta.pub

Naturalmente, podríamos presentar en pantalla el contenido del sertificado público tarjeta.pub con el comando cat, de la siguiente forma:

cat tarjeta.pub

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCuFupFpsXwFPz2INdEgr64tn6yQKT7Osj
cXoAzgJ7JW/qykPxIZxELpJkoHe45s/fiIhkWjgHWhxCWRNSM76wyc2j47egfRdkzl0Kj7U1k-
kpOmGIFU8GA9nxVVikVrAmrI+PzEfRdOmNhPaVqnXUcOJVQh4fe1H5S1mtzV5VzJxKg/61IrBSM-
I5JnWDKNr1dGLIqMqw7A55YMvesKurOUrRe3BBIWYhN9XHIrWVFtMBHmQtW8iphmXUqQLHeH-
Q7LKpvCvE4i5QttlRSITD1Tqefwdeflh6I1P7LAsnMDp42zHZ23O4Ewd7aqNogikox6aNcCGYkU-
PavMBWcge5ykgR


Acto seguido, copiamos esta clave pública al sistema criptográfico del servidor SSH:

ssh-copy-id -f -i tarjeta.pub ubuntu@servidor

El servidor nos solicitará entonces la contraseña y copiará el certificado tarjeta.pub dentro de la carpeta necesaria:

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: “tarjeta.pub”
ubuntu@servidor’s password:

Number of key(s) added: 1


Ahora podremos intentar iniciar sesión remotamente a través de SSH en la máquina servidor, en el caso del ejemplo con

ssh ubuntu@servidor

...y comprobamos que sólo la clave que deseamos haya sido agregada y surta efecto. Debemos estar seguros pues una vez configurado todo no podremos acceder si no tenemos la tarjeta correcta y con un funcionamiento adecuado.

Configurar el cliente SSH para tarjeta inteligente

Continuando ahora desde el lado del cliente SSH, necesitaremos identificar nuestro librería proveedora PKCS#11. Existen tres formas de hacer esto:

La más incómoda es hacerlo directamente antes de conectarnos con el servidor SSH desde la línea de comandos, (con lo cual podremos hacerlo desde cualquier computadora). Por ejemplo, con:

ssh -I /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so ubuntu@servidor

Esto permite especificar el uso de tarjeta toda vez que ingresamos este largo comando, y en el resto de las ocasiones no se usará el acceso por tarjeta inteligente.

Ahora bien, si deseamos implementar que nuestro cliente de conexión SSH use tarjeta inteligente, debemos configurar el archivo ssh_config. Ingresamos:

sudo nano /etc/ssh/ssh_config

...y nos aseguramos que la opción PKCS11Provider quede de la siguiente manera:

PKCS11Provider /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so

...y guardamos con Ctrl+o y salimos con Ctrl+x.

Esto forzará a todos los usuarios del sistema a utilizar tarjetas magnéticas para usar SSH desde este cliente.

Configurar el uso de tarjeta inteligente para un Usuario

Para usar la opción de tarjeta inteligente para un sólo usuario del sistema cliente, deberíamos agregar la opción anterior en el fichero ~/.ssh/config de cada usuario. Para ello se usaría:

nano /home/usuario/.ssh/conf

En este fichero, modificamos la línea correspondiente en el archivoi, agregándole el ya conocido:

PKCS11Provider /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so

Y guardando con Ctrl+o y saliendo de Nano con Ctrl+x, como en el caso anterior.

De esta manera, sólo usuario tendría que utilizar la tarjeta inteligente en el lector para iniciar sesión a través de SSH a un servidor remoto.

En resúmen, las tarjetas inteligentes son convenientes en el sentido que permiten un almacenamiento de información de identidad a prueba de agresiones. Pueden utilizarse para autenticar el acceso a sistemas computados, redes de datos, información subscripta y privilegios. Ubuntu puede configurarse en tal sentido utilizando módulos PAM ya disponibles y utilidades libres para dar soporte a los logueos con tarjetas magnéticas.

sábado, 9 de febrero de 2019

¿Como corrijo el problema del lector de tarjetas Sony MWE62E en Ubuntu?


Siempre me ha gustado mucho la economía política, la he estudiado bastante, y en Italia tuve la suerte de incorporarme a algunos cursos muy importantes. Siempre pensé que los italianos tienen los mejores economistas, de otro modo no podrían vivir sesenta millones de italianos en 450.000 kilómetros cuadrados... ¡y vivir bien!. 

Me ubiqué en Italia entonces. Allí estaba sucediendo una cosa, se estaba haciendo un experimento: era el primer socialismo nacional que aparecía en el mundo. No entro a juzgar los medios de ejecución, que podrían ser defectuosos. Pero lo importante era esto: un mundo ya dividido en imperialismos, ya flotantes, y un tercero en discordia que dice: Para mí, ese experimento tenía un gran valor histórico. De alguna manera, uno ya estaba intuitivamente metido en el futuro, estaba viendo que consecuencias tendría ese proceso...

Allí me aclararon muchas cosas en materia de economía política, porque ellos estaban haciendo una vivisección del sistema capitalista. Todos los trucos del sistema los tenían bien estudiados. Todo eso me aclaró mucho el panorama, y pude ver el proceso europeo sin ningún prejuicio. Porque en tiempos de paz, hay como una bruma del convencionalismo pacifista que oscurece el panorama; pero cuando se declarar la guerra, todo aparece descarnado en sus intereses, sus dramas y pequeñas y grandes cosas. Y eso fue lo que yo vi en Europa.

Cuando llegué a Italia, me encontré en Turín con un curso de organización pura, que duraba seis meses, ligado a otra materia; y después en Milán, con uno de organización aplicada que duraba otros seis meses, ligado a otra serie de materias. Lo primero que se me ocurrió preguntar a los jerarcas de allí fue por qué estudiaban tanta organización. Me respondieron: "porque nosotros estamos en un momento de evolución, en que todo está desorganizado, y, como estamos reestructurando, lo lógico es enseñar a nuestros hombres organización". Yo pensé que a nosotros, que desde hacía cien años estábamos desorganizados, no se nos ocurría estudiar para organizarnos.

De regreso a la Argentina me dediqué a dar conferencias para transmitir su experiencia. Tenía un panorama totalmente claro sobre lo que estaba ocurriendo en el mundo. No se trataba sólo de una guerra mundial: la historia seguía a través de esa guerra y había un proceso de evolución que - tan pronto terminara ese conflicto (cuyo fin era fácil de prever) - tendría que seguir su curso. Llegué pues, con una mentalidad hecha sobre la observación directa. Yo sabía que en nuestro país las cosas repiten, diez o quince años, lo que ha sucedido en Europa. Porque Europa será por los siglos la cabeza y el centro del mundo; los norteamericanos tendrán un mayor adelanto científico o técnico pero, sin duda, el proceso humanista pasa por acá, por Europa. 
Cuando terminé esa serie de conferencias, resultó que para el sector cavernícola que siempre tienen los ejércitos, yo era una especie de nihilista, ¡un socialista que llevaba una bomba en cada mano! Pero yo había dicho la verdad, tal como la veía, a un núcleo de oficiales que presentaba un formación cultural un poco mayor que el horizonte medio, digamos, del oficial que no ve mucho.
Como consecuencia de eso fui a parar a Mendoza, como director del Centro de Instrucción de Montaña: una forma de sacarme de Buenos Aires. Estuve la mayor parte de 1941 en Mendoza.
No podían hacer otra cosa que destinarme nuevamente, pues había podido solucionar el problema del lector de tarjetas en Ubuntu. Indudablemente este era un problema que no sólo aquejaba a los Argentinos, muchos en el mundo sufrían el hecho de que a veces el lector no "montara" las tarjetas de memoria, tal como es su cometido original.

En mi caso sucedía en un lector de tarjetas interno Sony MEW62E. Se trata de un lector reconocido por Ubuntu como tres ranuras independientes para tarjetas Secure Digital (SD), Compact Flash (CF) y Sony Memory Stick (MS).
Desde el punto de vista del hardware no es tan cosa. La lógica principal es una simple plaqueta atornillada a un chassis de 3 1/2 pulgadas, construido en chapa de aluminio. Porta un LED verde de actividad que queda encendido al hacer masa con una tarjeta, y parpadea cuando hay actividad de lectoescritura. Asimismo, un cable con un conector de 8 pines está destinado a conectarlo a un puerto USB2 de nuestra placa madre.

Todo el conjunto guarda similar tamaño y disposición que una antigua diskettera de 3 1/2". Simplemente hay que colocarlo en una bahía correspondiente en el gabinete, ajustarlo con 4 tornillos, y conectar la ficha del cable de conexión a uno de los conectores USB1 o USB2 de la placa madre.

El uso del lector es sencillo. Cada ranura será identificada por la BIOS del sistema como un dispositivo independiente, con lo que podremos copiar información hasta entre tres tarjetas de distinto tipo conectadas al lector.

El problema radica cuando insertamos una tarjeta y la luz de conexión verde del lector se enciende, pero aún así la tarjeta no es "montada" por el sistema, y Ubuntu no nos presenta en pantalla el contenido de la misma. Este problema puede suceder específicamente con algunas tarjetas (por ejemplo, las cada vez más extendidas tarjetas SDHC MicroSD con adaptador).

Afortunadamente la solución del problema es extremadamente simple, y consiste en instalar o reinstalar el paquete udisks2.


Para descartar inconvenientes, conviene saber exactamente cuál versión del lector tenemos en nuestro sistemas, pues hay otras versiones como la muy extendida MRW62U, que además de una ranura para tarjetas XD adicional, incluye además un conector USB frontal. Por otro lado, existen gran variedad de genéricos comercializados bajo la marca Noganet, Manhattan, Ken Brown, etc, derivados del mismo.


Para conocer con exactitud el modelo de lector de tarjeta tenemos, podremos utilizar nuestra Terminal de sistema. Para ello abrimos una con Ctrl+Alt+T e ingresamos:

lsusb

...este comando nos devolverá un listado de los componentes conectados al bus serie universal de nuestro sistema, y entre ellos debería listar por ejemplo:

ID 054c:01bd Sony Corp. MRW62E Multi-Card Reader/Writer


Acto seguido, ingresamos a la Terminal los siguientes comandos de organización necesarios para instalar o reinstalar el paquete udisks2. Lo hacemos con:

sudo apt-get update ;
sudo apt-get install --reinstall udisks2 ;

Conforme hacemos esto y reiniciamos nuestra sesión de usuario, ahora las
tarjetas deberían leerse adecuadamente al conectarlas al lector. Tras unos breves instantes en nuestro Escritorio debería aparecer el ícono de la misma.

Otra solución
En otros casos, ciertos lectores de tarjetas (por ejemplo, los incorporados en muchas laptops o netbooks), requieren cargar dureante el inicio del sistema un módulo llamado ti_fm_sd para poder automontar las tarjetas Secure Digital SD.

Para hacer ello creamos un respaldo del archivo de módulos con:

sudo cp /etc/modules /etc/modules.bak

...y luego editamos el archivo con:

sudo nano /etc/modules

Se abrirá en nuestra Terminal el editor GNU Nano un archivo que ya debería tener contenido. Al final del mismo agregamos la siguiente línea:

tifm_sd
...finalmente guardamos el archivo con Ctrl+o y salimos del editor GNU Nano con Ctrl+x. Para que surta efecto, hemos de reiniciar el sistema con:

sudo reboot

sábado, 1 de abril de 2017

¿Cómo puedo hacer un pendrive o tarjeta flash booteable desde un ISO en Ubuntu?

Al asumir su primera presidencia el 4 de junio de 1946, Juan Perón pronuncia un sonado discurso en el que reivindica las necesidades políticas de cambio en la Argentina, y enseña cómo crear un pendrive arrancable a partir de una imagen ISO Live desde la Terminal en Ubuntu.


(...)
"El esplendoroso pronunciamiento del pueblo me autoriza a pedir y me mueve a esperar la colaboración de todos. La pido con la sinceridad y la humildad compatible con la dignidad con que un gobernante puede pedir para el bien de la Nación. No me guían intenciones ocultas; no hay, ni jamás ha existido, doblez en mis palabras; nada desvía ni empaña la trayectoria de mis convicciones. Llamo a todos al trabajo que la Patria tiene derecho a esperar de cada uno. Quienes quieran oír que oigan; quienes quieran seguir que sigan. Mi empresa es alta y clara mi divisa; mi causa es la causa del pueblo; mi guía es la bandera de la Patria.
Al ocupar la primera magistratura de la República, quedan borradas las injusticias de que he sido objeto y los agravios que se me hayan podido inferir. De mi voluntad, de mi mente y de corazón han desaparecido las pasiones combativas y sólo pido a Dios que me conceda la serenidad que requieren los actos de gobierno. Por ello, creo tener derecho a recabar de todos que juzguen mis actos y los de mi gobierno con igual imparcialidad. En definitiva, no aspiro a otra cosa sino al reconocimiento público –ya obtenido electoralmente– de que en todo momento, con paso firme y desoyendo a menudo capciosos cantos de sirena, encaminé al país hacia el completo restablecimiento de nuestras normas institucionales democráticas; y de que mi labor pretérita y mi labor futura se ha
inspirado y se ha de inspirar en la defensa del bien público. Si consigo esto, me daré por suficientemente compensado de las amarguras, de la heridas, de los desgarrones que todo hombre público va dejando a través de su vida en las zarzas del camino. Y no creáis que por ello guarde rencor porque, al igual que un insigne ingenio de nuestra América, “si una espina me hiere, la aparto del
camino, pero no la aborrezco”.

La objetividad de mi posición para con todos y cada uno de los ciudadanos y de los partidos políticos, no ha de representar un obstáculo para que mi gobierno se oriente en el sentido de mis antecedentes. Hacer otra cosa, sería traicionar a la mayoría de los electores. En los regímenes republicanos de tipo presidencialista, inversamente a lo que sucede en otros, el presidente no es
un mero poder moderador sino que desempeña el propio Poder Ejecutivo de la Nación
, que ha de ejercer como emanación de la voluntad general. Es decir: para ser fiel a sus antecedentes y a la consagración popular, el presidente de la Nación Argentina, ha de llevar a buen termino “su política”, orientándola hacia el bienestar de todos los argentinos.

Mi política es la de dar a todos los Argentinos el software libre que tanto anhelan. Normalmente, ello no constituye gran problema, pues podremos armar CDs o DVDs arrancables de distintas distribuciones GNU descargando de Internet las imágenes en formato normalizado (ISO), y usando una grabadora de discos compactos para lograr nuestra copia. Luego podríamos utilizar el disco compacto para arrancar el instalador del sistema operativo, o directamente probarlo sin instalar (modo vivo o "live").

Naturalmente, en varias ocasiones esto deja de ser práctico. Cada disco compacto permite una única imagen, y por otro lado necesitamos un sistema que cuente con una lectora de CD/DVD para poder grabarla. A veces puede resultarnos eficiente un DVD-RW (regrabable), pero ineludiblemente necesitaríamos contar con una grabadora.

Por todo ello, el método que considero más práctico para hacernos con imágenes arrancables, es almacenarlas en un Pendrive, pues al ser un medio de almacenamiento conformado por memoria Flash, podremos reescribirlo fácilmente para cargarles otra imagen ISO, amén de poder arrancarse fácilmente en todo tipo de equipo (por ejemplo, equipos próximos a la obsolescencia).

Para grabar la imagen ISO en un Pendrive, se pueden emplear programas de interfaz gráfica especialmente preparados para tal menester (en Ubuntu lo activamos uno desde Sistema / Administración / Creador de discos de arranque).

Ahora bien ¿qué sucede si deseo hacer el mismo predicamento desde la Terminal Linux?

Para ello no usaremos el conocido comando cp (copiar) sino que es imprescindible usar el viejo y peludo dd. Esta poderosa utilidad nos permite convertir entre distintos tipos de ficheros y esquemas. 

El comando de organización a utilizar tendrá la siguiente sintaxis:

sudo dd if=archivo.iso of=dispositivo_de_almacenamiento bs=4M; sync

Un ejemplo suele aclararlo todo, como decía Napoleón.

Vean señores, dispongo de un viejo y peronista pendrive de tan sólo 512 MB (medio giga), y por tanto obsoleto para la mayoría de los usos. Antes de "tirar un viejo por la ventana" mas vale darle nueva vida como medio de arranque USB para un sistema operativo GNU con Linux. A dicho pendrive le incorporaremos Puppy Linux Ubuntu Tahr, de 32 bits. Dicha distribución nos permitirá contar con un sistema operativo completo de tamaño reducido (Puppy requiere apenas 235MB, por lo que cabe en el viejo pendrive). Por lo demás, Puppy es capaz de arrancar en equipos escasa potencia (por ejemplo, netbooks con 1GB de memoria RAM). Naturalmente, podríamos usar cualquier ISO arrancable que deseemos, en este caso usaremos Puppy Linux a modo de ejemplo.

En primer lugar descargamos la ISO deseada. Desde la Terminal, podríamos hacernos con la ISO de Puppy Linux abriendo una consola con Ctrl+Alt+T e ingresando los siguientes Comandos de Organización:

cd ~/Descargas/ ;
wget http://distro.ibiblio.org/puppylinux/puppy-tahr/iso/tahrpup%20-6.0-CE/tahr-6.0.5_PAE.iso ;

Mientras se descarga el fichero tahr-6.0.5_PAE.iso, podremos abrir una segunda terminal con Ctrl+Alt+T y aprovechar el tiempo para identificar fehacientemente cuál nomenclatura de dispositivo que nuestro sistema asigna al Pendrive que queremos utilizar. Esta información es relativamente sencilla de obtener, pero es de capital importancia, pues si no la conocemos con exactitud, podríamos sobreescribir los datos en un dispositivo de almacenamiento diferente al deseado con consecuencias catastróficas (por ejemplo, sobrescribir el sector de arranque de nuestro disco rígido).

Para conocer la nomenclatura con el cual nuestro GNU con Linux designa nuestros medios de almacenamiento, debemos conectarlo (normalmente, a través de un puerto USB, pero también podríamos usar un lector de tarjetas si estamos utilizando tarjetas de memoria Flash). 
Acto seguido, usaremos el comando fdisk y le ordenaremos un listado de dispositivos de almacenamiento. La orden sería la siguiente:

sudo fdisk -l

A ella el sistema nos devolverá un listado bien detallado de los discos y sus particiones (aquellos internos y los conectados por USB). En nuestro sistema de ejemplo existen dos discos: el disco nomenclado como /dev/sda es un disco SSD de 120 GB (o sea, 111,8 Gigabytes luego de ser formateado), mientras que el /dev/sdb es un disco rígido de 1TB (931,5 Gigabytes luego de ser formateado). Pero también se hace presente nuestro pendrive de 512 MB, nomenclado como /dev/sdc (de apenas 488 Megabytes luego de ser formateado).

Disco /dev/sda: 111,8 GiB, 120 GB, 234441648 sectores
Unidades: sectores de 1 * 512 = 512 bytes
Tamaño de Sector (lógico/físico): 512 bytes / 512 bytes
Tamaño E/S (mínimo/óptimo): 512 bytes / 512 bytes
Tipo de Etiqueta de Disco: dos
ID de Disco: 0xyyyyyyy

Disposit. Inicio Start Final Sectores Size Id Tipo
/dev/sda1 * 2048 234440703 234438656 111,8G 83 Linux

Disco /dev/sdb: 931,5 GiB, 1000 GB,, 1953525168 sectoresUnidades: sectores de 1 * 512 = 512 bytesTamaño de Sector (lógico/físico): 512 bytes / 4096 bytesTamaño E/S (mínimo/óptimo): 4096 bytes / 4096 bytesTipo de Etiqueta de Disco: dosID de Disco: 0xzzzzzzz

Disposit. Inicio Start Final Sectores Size Id Tipo
/dev/sdb1 2048 1816408297 1816406250 866,1G 83 Linux
/dev/sdb2 1919924224 1953523711 33599488 16G 82 Intercambio Linux / Solaris

Disco /dev/sdc: 488,8 MiB, 512 MB, 1000944 sectores
Unidades: sectores de 1 * 512 = 512 bytesTamaño de Sector (lógico/físico): 512 bytes / 512 bytesTamaño E/S (mínimo/óptimo): 512 bytes / 512 bytesTipo de Etiqueta de Disco: dosID de Disco: 0xxxxxxxx

Disposit. Inicio Start Final Sectores Size Id Tipo
/dev/sdc1 2048 999423 997376 487M b W95 FAT32

Estos datos nos permiten inferir que que el dispositivo /dev/sdc de 488,8 MiB es el viejo pendrive de 512 MB. Para hacer un doble chequeo (pues podrían coincidir en el sistema varios dispositivos del mismo tamaño, o particiones que justo coincidan) usaremos también el comando:

df -l

y el sistema debería devolvernos algo como:

S.ficheros bloques de 1M Usados Disponibles Uso% Montado en
udev          7983           0         7983   0% /dev
tmpfs         1601          10         1592   1% /run
/dev/sda1   112547       52333        54475  49% /
tmpfs         8003           5         7999   1% /dev/shm
tmpfs            5           1            5   1% /run/lock
tmpfs         8003           0         8003   0% /sys/fs/cgroup
/dev/sdb1   872871      470553       357957  57% /home

tmpfs         1601           1         1601   1% /run/user/1000
/dev/sdc1      487           1          487   1% /media/peron/PENDRIVE512

...esta lista nos confirma que el dispositivo /dev/sdc es el pendrive de 512MB (y que además está vacío y montado como una subcarpeta dentro de la carpeta /media/usuario). Tomamos nota de /dev/sdc.

Como dijimos, en este ejemplo anhelamos sobrescribir en el pendrive /dev/sdc usando los datos contenidos en el archivo ISO descargada, de manera que nos quede arrancable. Según la sintaxis del comando dd, el archivo de entrada (if, o "input file") será la ISO de Puppy Linux, llamada tahr-6.0.5_PAE.iso, en tanto que el dispositivo de salida (of, "output file") será el pendrive /dev/sdc. Naturalmente, vosotros habrán de cambiar las variables por las que os correspondan en vuestro casos particulares. En nuestro ejemplo, para copiar dicha ISO al pendrive ingresamos:

cd ~/Descargas ;


sudo dd if=tahr-6.0.5_PAE.iso of=/dev/sdc bs=4M; sync 

El sistema comenzará a copiar la ISO al dispositivo. Debemos tener en cuenta que en muchas ocasiones puede suceder que el sistema nos informe que los registros han sido escritos, pero esto no significa que los datos hayan sido físicamente copiados aún. En realidad sólo significa que se ha emitido la orden de copia al dispositivo, pero sucederá que la misma todavía estará en transfiriéndose y escribiéndose en el dispositivo (si el pendrive cuenta con una luz LED, la misma indicará "escritura"). La velocidad de copiado depende puramente de la velocidad del medio de almacenamiento y los buses de transporte. En resumen, sólo debemos asumir que la escritura ha sido finalizada cuando el sistema nos devuelva al Prompt de la terminal.
Una vez finalizada la copia, podremos extraer el pendrive y volver a conectarlo para ver si el sistema lo monta (o sea, "levanta" sus datos normalmente como cualquier otro pendrive bien formateado). Si este es el caso, ya contaremos con el pendrive preparado y listo para arrancarlo con Puppy Linux derivado de Ubuntu, en cualquier computadora compatible.

Simplemente hay que reiniciar el sistema, y durante el arranque ingresar al Boot Menú, y seleccionar el pendrive como medio temporal de arranque. Al cabo de un par de minutos arrancará Puppy Linux Tahr, que es un excelente sistema operativo para contar con una sesión operativa capaz de arrancar en cualquier equipo.

domingo, 28 de febrero de 2010

¿Cómo hago funcionar el lector de tarjetas SD de la notebook Acer 5542 en Ubuntu?

Durante el año 1947, el primer gobierno del General Perón se concentró en proporcionar una avalancha de medidas de carácter revolucionario en beneficio de las Masas Populares y mayoritarias que componían la Argentina. Entre estas medidas logradas por Perón, se encontró la de resolver el problema del lector de tarjetas de las notebooks Acer con Ubuntu Koala Kármico.
[Discurso de Perón ante 4.425.000 personas estimadas, el primero de mayo de 1947]

¡Trabajadores!

El Justicialismo se empeña en otorgar al Pueblo Trabajador la máxima felicidad que puede concebir un sano corazón, y como Conductor siento una enorme satisfacción cuando llevo a buen puerto los deseos de las Masas Peronistas.

En esta ocasión, los compañeros agrupados en la Confederación General del Trabajo me han pedido que les indique cómo hacer funcionar el lector múltiple de tarjetas que dota a las notebooks Acer y otras.

Suele suceder que lectores incorporados en laptops son incapaces de detectar una tarjeta insertada. Más específicamente, podemos afirmar que sólo se detecta la tarjeta SD de manera efectiva cuando la misma ya se haya colocada en la ranura del lector al momento de arrancar Ubuntu. De darse esta situación, la tarjeta de memoria funcionará sin inconvenientes y de manera peronista, incluso retirándolas y volviéndolas a insertar.

No obstante, si no tenemos tarjeta alguna colocada en el lector al momento del arranque, el sistema no podrá detectar tarjetas insertadas a posteriori del inicio de Ubuntu. Si este es
vuestro caso, podremos lograr un sano equilibrio entre el Capital y el Trabajo ensayando la siguiente realización:

1) Vamos a Aplicaciones / Accesorios / Terminal, y usaremos la consola para crear un archivo de configuración específico. Simplemente tipeamos esta línea y le damos enter:

sudo gedit /etc/modprobe.d/sdhc

La computadora nos pedirá nuestra contraseña y abrirá el editor de texto del pueblo peronista, el nacional y popular Gedit, y con él obtendremos un archivo en blanco. Le agregaremos la siguiente línea:

options sdhci debug_quirks=1

Guardamos el archivo y cerramos Gedit.

2) Crearemos un segundo archivo, ingresando ahora en la Consola el siguiente Comando de Organización:

sudo gedit /etc/modprobe.d/pciehp

Tipeamos la contraseña de Ubuntu y nuevamente agregaremos en el documento en blanco que se crea, la siguiente línea:

options pciehp pciehp_force=1

Guardamos y salimos del editor Gedit.

3) Ahora en la consola terminal, tipeamos

sudo gedit /etc/modules

Se abrirá un archivo como en los casos anteriores. Al final del mismo le agregamos la siguiente línea de comando:

options pciehp pciehp_force=1

4) Reiniciamos la notebook. Si desean saber, yo hice este paso fundamental sin tener una tarjeta insertada en el lector.

Una vez reiniciado Ubuntu, la portátil debería ser capaz de leer tarjetas sin problemas, incluso aunque no estuviesen insertadas durante el proceso de arranque del sistema. En mi caso esta solución me ha sido efectiva con los modelos 5536 y 5542 de Acer, que utilizan lectores 5 en 1 (SD, MMC, Memory Stick, etc). El lector aparece indicado como de marca "Realtek". El Ubuntu en el cual lo probé fue el Karmic, en 32 y 64 bits.

Y ahora ha llegado la hora del consejo, que lo doy con mi corazón tan abierto como puede presentarse a una cosa que uno tanto ama: el Pueblo. Recuerden Ubunteros: ¡Únanse! ¡Sean hoy más hermanos que nunca! Sobre la hermandad de los que ubuntean, han de levantarse en esta hermosa Patria la unidad de todos los Argentinos.

[Aplauso estruendoso de la masa]

Nos acercan esta solución que modifica mas a fondo el sistema. Loas a Vera B. E. y a Inuyasha por el dato.

1.- Abrimos una terminal e ingresamos el siguiente comando
$ sudo gedit /etc/default/grub
Esto es para abrir con el gedit el archivo de configuración del GRUB2 y poderlo editar

2.- En el archivo en cuestión que se abrió busquen la linea siguiente:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

[recuerden que si hicieron le incorporaron la variable "i8042.nomux" para el botón de apagado del touchap, ésta también debería aparecer].

Agreguen la variable pciehp.pciehp_force=1 de modo que quede así:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pciehp.pciehp_force=1"
Esto hace que los lectores de tarjetas se activen sin importar que haya tarjeta insertada o no

3.- Guarden los cambios y cierren el gedit. Ahora en la terminal ejecuten
$ sudo update-grub2
Esto actualizará los cambios en el GRUB2

4.- Reiniciar el equipo y debería funcionar