Encontré la respuesta en este hilo (http://ubuntuforums.org/showthread.php?t=2114055) en ubuntuforums.org.
Parece que con las placas base Gigabyte más nuevas (al menos) hay una opción de BIOS llamada IOMMU Controller
que está deshabilitado de forma predeterminada y no da ninguna pista o indicación de para qué sirve.
Habilitar esta configuración y reiniciar "mágicamente" restaura todos mis problemas de red y USB en un sistema operativo Linux de 64 bits (no importa cuál).
Estoy bastante sorprendido y eufórico de que haya sido una búsqueda tan larga para una solución tan simple.
Gracias a todos por su ayuda y sugerencias. Esperemos que a otros les resulte útil.
Actualización: Solo me gustaría agregar que la configuración actual de mi BIOS también incluye la habilitación de XHCI Handoff y EHCI Handoff además del controlador IOMMU. Otros también han mencionado esto y habilitar esas dos transferencias también permite que mis puertos USB 3.0 funcionen como se esperaba.
Acabo de enterarme, con mi GA-990FXA-UD7, que para que los controladores USB 2.0 y USB 3.0 y el controlador Ethernet integrado funcionen correctamente en Linux (estoy usando Mint 17.1) se requieren las siguientes configuraciones en el BIOS:
- transferencia xHCI:habilitada
- Transferencia de EHCI:habilitada
- Controlador IOMMU - Habilitado
No olvides deshabilitar UEFI y cambiar todas las opciones de arranque a "Solo heredado".
Si realmente necesita arrancar desde un disco duro de más de 2,2 TB de capacidad, es posible que tenga un problema diferente entre manos.
Estoy usando un SSD de 256 GB para mi unidad de arranque y un par de HDD de 3 TB en una matriz RAID 1 (duplicada) usando mdadm para mi /home y todo funciona bien.
Habiendo trabajado bastante con placas Gigabyte, sé que las placas 990FXA-UD5 y 990FXA-UD3 tienen BIOS muy similares, por lo que es probable que también se aplique lo mismo con esas placas.
FYI, las razones técnicas por las que Linux no puede usar dispositivos "a través" del BIOS:una vez que el sistema operativo ha hecho la transición al "modo protegido" (32 bits) o al "modo largo" (64 bits), ya no puede enviar interrupciones a la BIOS. En "modo real" (16 bits, en el arranque) puede llamar a las interrupciones del BIOS para que se lean los discos, la entrada del teclado, etc.
Pero también tiene desventajas. Por un lado, ni siquiera tiene un megabyte de memoria direccionable. Entonces, los sistemas operativos modernos salen del modo real casi a primera hora. (En realidad, creo que grub cambia al modo protegido incluso antes de cargar el kernel).
Más detalles:http://wiki.osdev.org/Real_Mode http://wiki.osdev.org/Protected_Mode