Flash Player 11.2.r202 reproduce videos de YouTube con tinte azul en tarjetas nVidia

Una reciente actualización de Flash Player (versión 11.2) tiene un peculiar comportamiento con tarjetas nVidia y vídeos de YouTube, reproduciéndolos con un marcado tinte azul.

He comprobado que este comportamiento es solo con YouTube y tarjetas de vídeo nVidia usando el dispositivo no-libre de nVidia de Squeeze (el único con aceleración 3D), independiente del navegador (Iceweasel, Firefox y Chromium).

No he encontrado solución más que volver a la última versión previa, 10.3.r183, descargada de Adobe.

sun-java6 removido de Debian

La última versión de Sun Java 6 (Oracle) incluye la remoción de una cláusula de su licencia que posibilitaba a Debian distribuirlo en la sección non-free. Con este cambio, Debian no puede distribuir más el paquete sun-java6 y este ha sido removido de la distribución. Esto solo afecta las versiones wheezy y sid y todas las futuras versiones estables que deriven de ellas. Debian sugiere migrar a openjdk, la alternativa libre, con los comandos,

(wheezy y sid)

apt-get --purge remove sun-java6-jre && apt-get install openjdk-7-jre

(necesario y mandatario)

(squeeze)

apt-get --purge remove sun-java6-jre && apt-get install openjdk-6-jre

(optativo)

El soporte de seguridad de lenny caduca en dos meses

El soporte de seguridad de la distribución estable antigua, cuyo código es "lenny", caduca en exactamente dos meses, el 6 de febrero de 2012, un año después que se publicara la actual versión estable (squeeze). Las actualizaciones de seguridad de lenny hasta la fecha de su terminación seguirán accesibles desde security.debian.org por un tiempo prudente, hasta que la distribución completa sea movida a los archivos (archive.debian.org). Sin embargo, para aquellos que aun no actualizan sus sistemas a la versión estable, recordamos que el soporte de seguridad es parte integral de un sistema Debian y que la falta de ellos implica un riesgo. Sugerimos entonces realizar la actualización a Squeeze dentro del plazo que aun queda.

Dos nuevas arquitecturas: armhf y s390x

A partir de hoy dos nuevas arquitecturas se encuentran accesibles en la estructura de Debian. Se trata de armhf y s390x. La primera corresponde a una variación de ARM para CPU ARMv7. Los CPU antiguos (ARMv4, ARMv5 y ARMv6) son soportados por la arquitectura armel, otra variación de la arquitectura original arm. La "hf" es una abreviación de "hard-float" mientras que "el" es una abreviación de"little endian". La segunda arquitectura, s390x, es la versión de 64 bits de s390 para CPU IBM S/390. Ambas serán lentamente empujadas a las réplicas de Debian.

Réplica debian.nod.cl deja de auspiciar ftp.cl.debian.org

La réplica debian.nod.cl ha salido del Round-Robin de ftp.cl.debian.org debido a una fuerte disminución del ancho de banda internacional que imposibilitaba la normal sincronización con el Master. Después de varios días desactualizada la réplica fue rebajada a no oficial. Al no haber explicación ni solución satisfactoria por parte del patrocinador, Debian Chile (quien escribe) quitó su apoyo a la réplica (configuración y mantención). La réplica será prontamente sacada de la lista de réplicas de Debian.

Réplica oficial ftp.cl.debian.org es ahora un Round-Robin

A partir de ahora la réplica oficial de Debian en Chile, ftp.cl.debian.org, es un Round-Robin de dos réplicas; debian.netlinux.cl y debian.nod.cl. Un Round-Robin es básicamente una rotación DNS ideada para balancear la carga. Un requerimiento a ftp.cl.debian.org retorna dos valores,

$ host ftp.cl.debian.org
ftp.cl.debian.org has address 200.75.30.181
ftp.cl.debian.org has address 201.238.222.20

Con esto el ancho de banda accesible a ftp.cl.debian.org se ha en principio duplicado.

Cabe hacer notar que ha sido un deseo de muchos años de esta comunidad el poder contar con más de una réplica efectiva. El hecho es que la mayoría de los usuarios de Debian escogen a ftp.XX.debian.org a la hora de editar sus sources.list, lo que conlleva una carga muy grande acarreada por una sola réplica, la oficial, que muy pronto se ve saturada. El resto de las réplicas, por muchas que existan, nunca logran competir con la réplica oficial, creando un desperdicio enorme de ancho de banda donado. Con el Round-Robin se ha logrado revertir esta tedencia, de hecho duplicando la accesibilidad de ftp.cl.debian.org.

Debemos también mencionar que un Round-Robin no es una ocurrencia habitual. Hasta esta fecha existía solo uno; ftp.us.debian.org. Podemos con orgullo decir que Chile ha logrado el segundo Round-Robin de Debian.

Finalmente, quisiéramos agradecer a los dos patrocinadores de ftp.cl.debian.org; Netlinux[1] y NOD Networks Chile[2], quienes desinteresadamente donan estos recursos a Debian.

[1] http://www.netlinux.cl/
[2] http://www.nod.cl/

Nueva réplica de Debian: debian.nod.cl

Ha sido inscrita una nueva réplica Debian en Chile. Se trata de debian.nod.cl, auspiciada por NOD Networks Chile [1]. La réplica es completa, incluye todas las arquitecturas y versiones, tiene habilitado todos los puertos; http, ftp, rsync y cuenta con un excelente enlace nacional. Además, sincroniza cuatro veces al día con ftp.br.debian.org mediante un mecanismo de push creado y mantenido por Debian Chile.

La réplica se usa de la forma habitual,

deb http://debian.nod.cl/debian squeeze main contrib non-free

El responsable de la réplica es Alejandro Blanc Koljanin [1] y quien la mantiene es Ricardo Yáñez [2].

---
[1] NOD Networks Chile, http://www.nod.cl/
[2] http://www.calel.org/

Nuevas opciones para el Blog de Debian Chile

Hemos agregado dos nuevas opciones para el Blog. La primera es un módulo para votar. La votación es permitida en cada artículo del Blog, en forma anónima o habiendo sido autenticado con una cuenta. La votación autenticada puede ser modificada, la anónima no. La graduación va de uno a siete, 7 siendo la nota máxima.

La segunda es que ahora se permiten comentarios anónimos, que requieren identificación y aprobación, además de ingresar correctamente un CAPTCHA visual. Usuarios del Blog no requieren aprobación ni pasar el CAPTCHA para comentar un artículo.

Creando un router en Debian

Este manual fue actualizado mayo 2 2015 para funcionar en Jessie

Esta es una receta para crear un router en Debian. La idea es sustituir el típico router inalámbrico de casa con una máquina corriendo en Debian, mientras que la función del router inalámbrico cambiaría a la de Access Point/switch para manejar la red interna.

Es necesario que el servidor Debian tenga dos tarjetas de red. Vamos a llamarlas eth0 y eth1, siguiendo la denominación convencional. La interfaz eth0 se conecta a Internet mientras que eth1 se conecta al router inalámbrico (Access Point).

Antes de continuar, debemos ingresar a la interfaz de administración del router inalámbrico y anotar la sub-red que utiliza. Vamos a suponer que es 192.168.1.0/24.

La conexión a Internet es generalmente de tipo Banda Ancha, mediante un cable modem. En este caso, el cable módem se encarga de adquirir un número IP del proveedor a través de DHCP y el servidor Debian simplemente lo agarra como suyo. Edita /etc/network/interfaces y define eth0 como DHCP,

# The primary network interface
auto eth0
       iface eth0 inet dhcp

Conecta eth0 al módem con un cable de red ("twisted pair"), luego reinicia el módem y el computador Debian. Prueba conexiones Internet. El comando,

# ifconfig eth0

debería retornar los parámetros de red asignados.

Alternativa, la conexión a Internet es de tipo ADSL, en cuyo caso se requiere PPPoE. Sigue las instrucciones de la guía http://man-es.debianchile.org/adsl.html

Edita /etc/network/interfaces y define eth1 como una sub-red estática privada,

auto eth1
iface eth1 inet static
       address 192.168.0.1
       netmask 255.255.255.0
       network 192.168.0.0
       broadcast 192.168.0.255

Es muy importante que esta definición no contenga una pasarela (gateway). Es igualmente importante que esta sub-red sea diferente a la sub-red del router inalámbrico, esta siendo 192.168.0.0/24 mientras que la del router inalámbrico 192.168.1.0/24.

Levanta la interfaz eth1 con,

# ifup eth1

'ifconfig eth1' debería retornar los parámetros de red recién asignados.

Conecta eth1 al router inalámbrico con un cable de red ("twisted pair") al mismo puerto que antes estaba conectado a Internet.

Vamos a suponer que el router inalámbrico estaba configurado para adquirir valores de red WAN vía DHCP. Como ahora está conectado al servidor Debian, necesitamos reconfigurarlo en una red estática, con valores,

IP Address :         192.168.0.2
Subnet Mask :        255.255.255.0
Default Gateway :    192.168.0.1
Primary DNS Server : 192.168.0.1

La pasarela (gateway) debe ser el número IP del servidor Debian.

Si no es posible definir una red estática, debido a que el router inalámbrico no permite la opción de red más que con DHCP, es necesario instalar y configurar el servidor DHCP en el servidor Debian. Instala isc-dhcp-server,
# apt-get install isc-dhcp-server

Edita /etc/default/isc-dhcp-server y modifica la variable INTERFACES con,

INTERFACES="eth1"

Edita /etc/dhcp/dhcpd.conf. Descomenta el instructivo "authoritative",

authoritative;

y define una sub-red,

subnet 192.168.0.0 netmask 255.255.255.0 {
  range 192.168.0.2 192.168.0.2;
  option routers 192.168.0.1;
  option ip-forwarding off;
  option broadcast-address 192.168.0.255;
  option subnet-mask 255.255.255.0;
  option domain-name-servers 192.168.0.1;
  default-lease-time 86400;
  max-lease-time 86400;
}

Esta definición va a servir un solo IP; 192.168.0.2. Observa /var/log/syslog en un terminal con,

$ tail -f /var/log/syslog

luego reinicia en otro terminal el servidor DHCP,

# /etc/init.d/isc-dhcp-server restart

Observa en /var/log/syslog como el router inalámbrico automáticamente adquiere un IP,

May 30 20:27:01 debian dhcpd: DHCPDISCOVER from 00:24:b2:28:8e:f7 via eth1
May 30 20:27:01 debian dhcpd: icmp_echorequest 192.168.0.2: Operation not permitted
May 30 20:27:02 debian dhcpd: DHCPOFFER on 192.168.0.2 to 00:24:b2:28:8e:f7 via eth1
May 30 20:27:05 debian dhcpd: DHCPREQUEST for 192.168.0.2 (192.168.0.1) from 00:24:b2:28:8e:f7 via eth1
May 30 20:27:05 debian dhcpd: DHCPACK on 192.168.0.2 to 00:24:b2:28:8e:f7 via eth1

El router inalámbrico tiene dirección Internet 192.168.0.2, pasarela y servidor DNS 192.168.0.1.

Necesitamos instalar y configurar el servidor DNS. Instala bind9,

# apt-get install bind9

Edita el archivo /etc/bind/named.conf.options y modifica el instructivo forwarders con las direcciones IP de los DNS del proveedor de Internet,

        forwarders {
                100.10.0.3;
                100.10.0.7;
        };

Para obtener las direcciones IP del DNS inspecciona el archivo /etc/resolv.conf. Este fue escrito automáticamente con los valores retornados por el servidor DHCP del proveedor.

Ahora edita /etc/resolv.conf para que lea,

nameserver 127.0.0.1

Remueve los instructivos "domain" y "search" si existen y los antiguos forwarders.

Reinicia el servidor DNS,

# /etc/init.d/bind9 restart

para que los cambios tomen efecto.

Esto transforma a localhost en servidor DNS, que vía BIND9 resuelve nombres haciendo requerimientos a los DNS del proveedor. En particular, 192.168.0.1 también es un servidor DNS.

Falta un pequeño detalle. Cada vez que el "lease" del servidor DHCP del proveedor se renueva, este reenvía los valores con que /etc/resolv.conf se reescribe automáticamente. Para evitar esto y de hecho borrar la nueva configuración, remueve la atribución de escritura sobre el archivo,

chattr +i /etc/resolv.conf

Falta redirigir eth1 a eth0 para que la red interna 192.168.1.0/24 del router inalámbrico pueda salir a Internet. Aquí debemos hacer dos cosas: 1) redirigir eth1 a eth0 y 2) reescribir los números IP 192.168.1.x con el número IP público del servidor Debian. Esto se llama enmascarar. Si no se enmascara, los paquetes de red salientes de la red interna tendrian IP 192.168.1.x y serían bloqueados ("IP spoofing").

En Debian, redirigir no es una opción por omisión. Para activarlo hay que modificar el valor de /proc/sys/net/ipv4/ip_forward de 0 a 1.

# echo 1 > /proc/sys/net/ipv4/ip_forward

Un,

$ cat /proc/sys/net/ipv4/ip_forward

debería retornar 1.

Falta otro pequeño detalle. Al reiniciar el computador, se reescribe /proc/sys/net/ipv4/ip_forward con el valor por omisión, que es 0, deshabilitando la redirección. Para evitar esto, edita /etc/sysctl.conf y descomenta,

net.ipv4.ip_forward=1

Ahora el valor de /proc/sys/net/ipv4/ip_forward se reescribe a 1.

En este punto puede ser ventajoso entrar a la administración del router inalámbrico, quizás con otro computador de la sub-red 192.168.1.0/24, y activar la administración remota desde la IP 192.168.0.1.

Queda un último detalle. El servidor Debian está conectado directamente a Internet y es aconsejable crearle un cortafuegos. La base de este cortafuegos es el descrito en http://man-es.debianchile.org/cortafuego.html, versión para un servidor, pero con unas pocas modificaciones necesarias, en particular, la existencia de una segunda interfaz de red (eth1), el emascaramiento de la red interna (reescribir las IP internas con la IP publica del servidor) y la posibilidad que la IP no sea fija, son tratadas explicitamente.

Primero, crea el archivo /etc/network/if-pre-up.d/firewall,

#!/bin/sh

# Author: Ricardo Yanez <ricardo.yanez@calel.org>

IPTABLES=/sbin/iptables

if [ ! -x $IPTABLES ]; then
  exit 0
fi

# loopback
LO_IP="127.0.0.0/8"

# red interna
LAN_IP_RANGE="192.168.0.0/24"

if [ "$IFACE" = "lo" ]; then

  $IPTABLES -F
  $IPTABLES -X
  $IPTABLES -t nat -F
  $IPTABLES -t nat -X

  $IPTABLES -P INPUT DROP
  $IPTABLES -P FORWARD DROP
  $IPTABLES -P OUTPUT ACCEPT

  ###############################################
  ############### cadena INPUT ##################
  ###############################################

  # 1) new not in syn
  $IPTABLES -A INPUT -p TCP -m state --state NEW ! --syn -j DROP

  # 2) Aceptar paquetes en estado establecido y relacionado
  $IPTABLES -A INPUT -i $IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT

  # 3) loopback
  $IPTABLES -A INPUT -i $IFACE -s $LO_IP -j ACCEPT
  $IPTABLES -A INPUT -i $IFACE -s $LAN_IP_RANGE -j ACCEPT
  $IPTABLES -A INPUT -i $IFACE -j ACCEPT

  # 4) inserta reglas en este punto (ver más adelante)

  ###############################################
  ############## cadena FORWARD #################
  ###############################################

  # (Aquí van reglas si el servidor actua de router)

  ###############################################
  ############## cadena OUTPUT ##################
  ###############################################

  # new not in syn
  $IPTABLES -A OUTPUT -p TCP -m state --state NEW ! --syn -j DROP

  # establecido, relacionado
  $IPTABLES -A OUTPUT -o $IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT

  # new
  $IPTABLES -A OUTPUT -o $IFACE -m state --state NEW -j ACCEPT

fi

Dale permisos de ejecución,

# chmod 755 /etc/network/if-pre-up.d/firewall

Luego crea el archivo /etc/network/if-up.d/firewall,

#!/bin/sh

# Author: Ricardo Yanez <ricardo.yanez@calel.org>

IPTABLES=/sbin/iptables

if [ ! -x $IPTABLES ]; then
  exit 0
fi

# interfaz de red externa
INET_IFACE="eth0"

# interfaz de red interna
LAN_IFACE="eth1"
LAN_IP="192.168.0.1"
LAN_IP_RANGE="192.168.0.0/24"

if [ "$IFACE" = "$INET_IFACE" ]; then

  # 5) Definir la cadena "bloquear-spoof"
  $IPTABLES -N bloquear-spoof
  $IPTABLES -A bloquear-spoof -i $IFACE -s 10.0.0.0/8 -j DROP
  $IPTABLES -A bloquear-spoof -i $IFACE -s 172.16.0.0/12 -j DROP
  $IPTABLES -A bloquear-spoof -i $IFACE -s 192.168.0.0/16 -j DROP

  # 6) Cadena "pqtes-icmp-permitidos"
  $IPTABLES -N pqtes-icmp-permitidos
#  $IPTABLES -A pqtes-icmp-permitidos -p ICMP --icmp-type 8 -m limit --limit 1/second --limit-burst 3 -j ACCEPT
  $IPTABLES -A pqtes-icmp-permitidos -p ICMP -j DROP

  # 7) Cadena "pqtes-udp-permitidos"
  $IPTABLES -N pqtes-udp-permitidos
#  $IPTABLES -A pqtes-udp-permitidos -p UDP -m state --state NEW --dport 53 -j ACCEPT
#  $IPTABLES -A pqtes-udp-permitidos -p UDP -m state --state NEW --dport 123 -j ACCEPT
  $IPTABLES -A pqtes-udp-permitidos -p UDP -m state --state NEW -j DROP

  # 8) Cadena "pqtes-tcp-permitidos"
  $IPTABLES -N pqtes-tcp-permitidos
#  $IPTABLES -A pqtes-tcp-permitidos -p TCP -m state --state NEW --dport 25 -j ACCEPT
#  $IPTABLES -A pqtes-tcp-permitidos -p TCP -m state --state NEW --dport 80 -j ACCEPT
#  $IPTABLES -A pqtes-tcp-permitidos -p TCP -m state --state NEW --dport 443 -j ACCEPT
#  $IPTABLES -A pqtes-tcp-permitidos -p TCP -m state --state NEW -m multiport --dports 110,995 -j ACCEPT
#  $IPTABLES -A pqtes-tcp-permitidos -p TCP -m state --state NEW -m multiport --dports 143,993 -j ACCEPT
#  $IPTABLES -A pqtes-tcp-permitidos -p TCP -m state --state NEW --dport 22 -s 100.10.2.0/24 -j ACCEPT
  $IPTABLES -A pqtes-tcp-permitidos -p TCP -m state --state NEW -j DROP

  # 9) Agregar cadenas a INPUT

  ###############################################
  ############### cadena INPUT ##################
  ###############################################

  # establecido, relacionado
  $IPTABLES -A INPUT -i $IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT

  $IPTABLES -A INPUT -i $IFACE -j bloquear-spoof
  $IPTABLES -A INPUT -i $IFACE -p ICMP -j pqtes-icmp-permitidos
  $IPTABLES -A INPUT -i $IFACE -p UDP -j pqtes-udp-permitidos
  $IPTABLES -A INPUT -i $IFACE -p TCP -j pqtes-tcp-permitidos

  # 10) Optativo: Registrar paquetes que van a ser desechados
  #$IPTABLES -A INPUT -j LOG --log-level debug --log-prefix "Drop INPUT: "

  ###############################################
  ############## cadena FORWARD #################
  ###############################################

  # (Aquí van reglas si el servidor actua de router)

  ###############################################
  ############## cadena OUTPUT ##################
  ###############################################

  # establecido, relacionado
  $IPTABLES -A OUTPUT -o $IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT

fi

if [ "$IFACE" = "$LAN_IFACE" ]; then

  ###############################################
  ############### cadena INPUT ##################
  ###############################################

  # establecido, relacionado
  $IPTABLES -A INPUT -i $IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT

  $IPTABLES -A INPUT -i $IFACE -s $LAN_IP_RANGE -j ACCEPT

  ###############################################
  ############## cadena FORWARD #################
  ###############################################

  # established, related
  $IPTABLES -A FORWARD -i $INET_IFACE -o $LAN_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
  $IPTABLES -A FORWARD -i $LAN_IFACE -o $INET_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT

  $IPTABLES -A FORWARD -i $INET_IFACE -o $IFACE -m state --state NEW -j DROP
  $IPTABLES -A FORWARD -i $IFACE -o $INET_IFACE -m state --state NEW -j ACCEPT

  ###############################################
  ############## cadena OUTPUT ##################
  ###############################################

  # establecido, relacionado
  $IPTABLES -A OUTPUT -o $IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT

  ###############################################
  ############## cadena NAT #####################
  ###############################################

  INET_IP=`ifconfig $INET_IFACE | egrep "inet addr" | cut -d : -f2 | cut -d\  -f1`

  $IPTABLES -t nat -F POSTROUTING
  $IPTABLES -t nat -F PREROUTING

  # enmascarar
  $IPTABLES -t nat -A POSTROUTING -s $LAN_IP_RANGE -o $INET_IFACE -j SNAT --to-source $INET_IP

fi

Ahora el router inalámbrico rutea la sud-red privada 192.168.1.0/24, cuyo IP "externo" es 192.168.0.2 y el servidor Debian conectado a Internet rutea la red 192.168.0.0/24. Nota el particular que se debe enmascarar en algún punto. Lo mejor es hacerlo cuando se levanta eth1.

La segunda parte de este script protege la redirección en la cadena FORWARD.

Dale al script permisos de ejecución,

# chmod 755 /etc/network/if-up.d/firewall

y carga el cortafuegos en el núcleo,

# export IFACE=lo ; /etc/network/if-pre-up.d/firewall ; export IFACE=eth0 ; /etc/network/if-up.d/firewall ; export IFACE=eth1 ; /etc/network/if-up.d/firewall
Si la IP pública del servidor Debian es dinámica, el proveedor puede renovar el "lease" con una nueva IP cada 24 horas o menos. Para solucionar esto debemos crear un script que se corra cada vez que se levante la red externa en eth0,
#!/bin/sh
#
# masquerade: Script to masquerade an external network connection
#             (modem or ADSL) upon bringing the interface up. Name this
#             script masquerade.sh, put it in /etc/network/if-up.d/ and
#             make it executable (755).
#             Change INET_IFACE and LAN_IP_RANGE to suit your needs.
#             You will need to have packet filtering (iptables) enabled
#             in your kernel and module iptable_nat.

#             This script is intended for Debian systems. May not work on
#             other Linux distributions.

#             Author: Ricardo Yanez <ricardo.yanez@calel.org>, Mon May 30, 2011

# Define external interface
INET_IFACE="eth0"
 
# LAN IP range
LAN_IP_RANGE="192.168.0.0/24"
 
# Get IP number
INET_IP=`ifconfig $INET_IFACE | egrep "inet addr" | cut -d : -f2 | cut -d \  -f1`
# please note the extra space in the last cut, right after \ (very important).
 
# Clear all rules in POSTROUTING chain
iptables -t nat -F POSTROUTING
 
# Masquerade
echo -n "Masquerading interface $INET_IFACE to source $INET_IP... "
iptables -t nat -A POSTROUTING -s $LAN_IP_RANGE -o $INET_IFACE \
         -j SNAT --to-source $INET_IP
echo "done."

Descarga este script (masquerade.sh_.txt) y dale permisos de ejecución,

# chmod 755 masquerade.sh

Corre el script por primera vez,

# ./masquerade.sh
Masquerading interface eth0 to source 100.50.210.134... done.

Ahora muevelo a /etc/network/if-up.d/

# mv masquerade.sh /etc/network/if-up.d/

Las cadenas se pueden observar con,

# iptables -L -v

y la tabla NAT con,

# iptables -t nat -L -v

Manejando el audio USB en Debian

A veces conectamos alguna periferia USB que tiene un chip de sonido, por ejemplo una webcam o auriculares, que luego de un reinicio del computador nos arruina el sonido de la tarjeta primaria conectada a los parlantes.

El motivo de este comportamiento es la secuencia en que los módulos de sonido son cargados en el núcleo. ALSA enumera las tarjetas de acuerdo a ésta secuencia y puede suceder que el dispositivo de sonido USB cargue antes que la tarjeta de sonido primaria, transformándola de hecho en primaria según visto por ALSA.

La manera de solucionar esto es forzando la secuencia mencionada para que la tarjeta de sonido se cargue primero. Edita /etc/modprobe.d/alsa-base, agrega al final del archivo,

options snd_usb_audio index=-1

y reinicia el computador. El parámetro index=-1 fuerza al núcleo a cargar el dispositivo snd_usb_audio al final de la secuencia.