Instalar Linux en Alienware R3

Desactivar “Secure Boot” en la BIOS (F2)

Arrancar UEFI desde pendrive Ubuntu (F12)

Instalar Ubuntu 18.04 (añadir opción kernel nomodeset a /boot/grub/grub.cfg)

Arrancar Ubuntu

Actualizar


sudo apt-get update
sudo apt-get upgrade

Instalar driver Nvidia y Optimus (prime)


apt-get install linux-headers-$(uname -r)
add-apt-repository ppa:graphics-drivers
apt-get update
apt-get install nvidia-driver-396
# quitar nomodeset en grub
reboot

# nvidia-prime
prime-select query
prime-select {intel|nvidia}

# Bumblebee (para controlador propietario)
apt-get install bumblebee-nvidia

Comprobar que en /etc/bumblebee/xorg.conf.nvidia, el BusID se correponde con el de la tarjeta NVidia (por ejemplo, PCI:01:00.0)

El brillo de la pantalla se puede ajustar con el siguiente comando (X representa el porcentaje, por ejemplo .8 equivale 80%)


xrandr --output eDP-1-1 --brightness X

Si el trackpad no funciona, probar a no usar el modulo i2c_hid


# Prueba OpenGL
LIBGL_DEBUG=verbose glxgears

Instalar CUDA


wget https://developer.nvidia.com/compute/cuda/9.2/Prod/local_installers/cuda_9.2.88_396.26_linux
bash cuda_9.2.88_396.26_linux
# parche recomendado
wget https://developer.nvidia.com/compute/cuda/9.2/Prod/patches/1/cuda_9.2.88.1_linux
bash cuda_9.2.88.1_linux
cat > /etc/profile.d/cuda.sh <

Suspender equipo

En la mayoría de los modelos, con la siguiente configuración de Grub se consigue que la suspensión del equipo funcione correctamente:


# Añadir en /etc/default/grub
GRUB_CMD_LINUX_DEFAULT += nogpumanager acpi_osi=! acpi_osi="Windows 2009"
# luego, ejecutar...
update-grub

Más información:

Archlinux en Alienware 13

Ubuntu 16.04

Bumblebee: cuelgues

Driver Nvidia y CUDA

Ubuntu

# Comprobar qué paquetes hay disponibles:
ubuntu-drivers devices
# Instalar
apt-get install nvidia-390
# Reiniciar
reboot
# comprobar
nvidia-smi

# https://developer.nvidia.com/cuda-downloads
# https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1604&target_type=debnetwork
# Descargar definición repositorio
wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_9.1.85-1_amd64.deb
dpkg -i cuda-repo-ubuntu1604_9.1.85-1_amd64.deb
apt-key adv –fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
apt-get update
apt-get install cuda

Compiladores Intel

Parallel Studio es una suite de compiladores y bibliotecas, entre las que se encuentran MKL (Math Kernel Library).

Por defecto, la opción de instalar las bibliotecas paralelas Blacs y Scalapack (para MPI) está desactivada. Para activarla, hay que ir a “Component Selection” / “Intel Math Library for C++” (o Fortran, según el lenguaje que vayamos a usar) / “Cluster support for C/C++”

Repartir espacio disco NVME entre Windows y Linux

Arrancar Linux desde pendrive (por ejemplo, Ubuntu live)

Gparted. Reducir tamaño partición Windows. Mover comienzo partición Linux (para aprovechar el espacio liberado). Al cambiar el sector de inicio de la partición de sistema de Linux, puede ser que Grub no sea capaz de arrancar Linux. Con lo cual lo más simple es volver a reinstalar grub.

En Gparted podemos ver los nombres de dispositivo del disco nvme. Normalmente, el disco se denomina nvme0n1, y las particiones nvme0n1p1, p2…

Reinstalar Grub:

Montar sistema de ficheros raíz de Linux en /mnt/os
bind-mount sistemas de ficheros dev, proc, sys en /mnt/os
chroot /mnt/os
mount /boot/efi
grub-install /dev/nvme0n1

OpenGL en remoto (ssh) y Nvidia

Para el rendering OpenGL en un ordenador remoto se recurre (por defecto) a “indirect rendering” (los comandos Open GL pasan por el protocolo GLX). El “direct rendering” permite acceder directamente a la GPU del ordenador donde se ejecuta la aplicación. Este es el modo que usa por defecto el controlador nativo de Nvidia, que de hecho por defecto rechaza el uso del “indirect rendering” (se puede rehabilitar con la opción “AllowIndirectGLX” de la sección “ServerFlags” de xorg.con).

Así pues, ejecutando la instalación por defecto del driver nativo de Nvidia, se sustituye la biblioteca del sistema libGL. Con lo cual, se pierde el “indirect rendering” y las aplicaciones OpenGL dejan de funcionar en remoto (X11 sobre SSH)

Por otro lado, la biblioteca libGL que Nvidia instala puede ser necesaria para otras aplicaciones (por ejemplo, CUDA)

Una posibilidad es rescatar la biblioteca libGL original (del paquete libgl1-mesa-glx, o equivalente) y recurrir a ella para uso remoto, anteponiendo LD_PRELOAD=/ruta/a/libGLoriginal.so al programa a utilizar.

Si MESA recurre a swrast_dri.so para hacer el rendering (render por software), es probable que haya conflictos con bibliotecas como libstdc++.so.6 o libgcc_s.so (como suele suceder con UCSF Chimera, que tiene sus propias copias de esas bibliotecas en su directorio lib). En este caso se puede usar el mismo “truco” de LD_PRELOAD, pero con esas bibliotecas:

LD_PRELOAD=/usr/lib/gcc/x86_64-linux-gnu/4.9/libgcc_s.so:/usr/lib/x86_64-linux-gnu/libstdc++.so.6 chimera

Instalación de Ubuntu personalizada sin red

  • Descargar la ISO de la versión a instalar. Hacer un pendrive arrancable con la herramienta “Startup Disk Creator” (que basicamente copia la ISO al pendrive y configura el arranque EFI)
  • Preparar un repositorio local de paquetes.
    • Descargar los paquetes de interés con apt-get install -d
    • Copiarlos al pendrive
    • Generar el índice de paquetes con “dpkg-scanpackages . | gzip > Packages.gz”. La herramienta dpkg-scanpackages viene en el paquete dpkg-dev
    • Preparar un sources.list alternativo: “deb file:/media/…/deb/ ./”
  • Copiar el resto de programas y scripts al pendrive

Una vez el pendrive esté listo, se puede usar para arrancar la instalación de Ubuntu. Despúes, basta con sustituir el /etc/apt/sources.list por el alternativo, ejecutar apt-get update y proceder a la instalación de los paquetes desde el pendrive.

Pendrive USB multiples ISO

Reservar una partición de 1MB para el core.img de Grub (y evitar el error de que es muy grande y no cabe)

Primera partición: FAT32 (tipo “b” en fdisk)
Segunda partición: FAT16<32M (tipo "4" en fdisk) Activar (boot) partición 2 "Formatear" la primera partición (suponiendo que el pendrive aparece como sdb) mkfs -t vfat -F 32 /dev/sdb1 Montar partición mount /dev/sdb1 /mnt/usb mkdir /mnt/usb/boot mkdir -p /mnt/usb/iso Para UEFI: grub-install --target x86_64-efi --force --efi-directory /mnt/usb --boot-directory=/mnt/usb/boot --removable Crear grub.cfg