Tag: nvidia

Ubuntu: Black screen at the login

Today I’ve got a black (sad) screen after restarting the computer. The boot process was fine but everything seems to hang when the nvidia drivers was supposed to kick in and Xorg start.

It was impossible to fall back to any console text login type.

I’ve searched the internet here and there, but I was not able to find any solution or bug report, so I come up with an workaround.

I think the problem is due to the new kernel that I’ve installed following one of the suggested update and the incompatibility with the nvidia drivers. I don’t know if it is the true problem, but I have an hint that this can be true.

As the matter of fact I’ve changed the kernel at the boot time  (Push Esc when GRUB is showing the timeout for the default choice) and I choose the previous version (i.e. Ubuntu 8.10, kernel 2.6.27-12-generic).

With this one I was able to login and my system seems to be completely functional, up and running again.

For the time being I decided to stick with this kernel.  I edited the grub menu list (/boot/grub/menu.lst) changing the default 0 (Ubuntu 8.10, kernel 2.6.27-13-generic) with the second option (Ubuntu 8.10, kernel 2.6.27-12-generic).

Here my current menu.lst


# menu.lst - See: grub(8), info grub, update-grub(8)
# grub-install(8), grub-floppy(8),
# grub-md5-crypt, /usr/share/doc/grub
# and /usr/share/doc/grub-doc/.

## default num
# Set the default entry to the entry number NUM. Numbering starts from 0, and
# the entry number 0 is the default if the command is not used.
#
# You can specify 'saved' instead of a number. In this case, the default entry
# is the entry saved with the command 'savedefault'.
# WARNING: If you are using dmraid do not use 'savedefault' or your
# array will desync and will not let you boot your system.
default 2

## timeout sec
# Set a timeout, in SEC seconds, before automatically booting the default entry
# (normally the first entry defined).
timeout 3

## hiddenmenu
# Hides the menu by default (press ESC to see the menu)
hiddenmenu

# Pretty colours
#color cyan/blue white/blue

...
TRIM
...

## ## End Default Options ##

title Ubuntu 8.10, kernel 2.6.27-13-generic
root (hd0,0)
kernel /boot/vmlinuz-2.6.27-13-generic root=UUID=6e98c429-d480-44bd-a689-83114a227939 ro quiet splash
initrd /boot/initrd.img-2.6.27-13-generic
quiet

title Ubuntu 8.10, kernel 2.6.27-13-generic (recovery mode)
root (hd0,0)
kernel /boot/vmlinuz-2.6.27-13-generic root=UUID=6e98c429-d480-44bd-a689-83114a227939 ro single
initrd /boot/initrd.img-2.6.27-13-generic

title Ubuntu 8.10, kernel 2.6.27-12-generic
root (hd0,0)
kernel /boot/vmlinuz-2.6.27-12-generic root=UUID=6e98c429-d480-44bd-a689-83114a227939 ro quiet splash
initrd /boot/initrd.img-2.6.27-12-generic
quiet

title Ubuntu 8.10, kernel 2.6.27-12-generic (recovery mode)
root (hd0,0)
kernel /boot/vmlinuz-2.6.27-12-generic root=UUID=6e98c429-d480-44bd-a689-83114a227939 ro single
initrd /boot/initrd.img-2.6.27-12-generic

### END DEBIAN AUTOMAGIC KERNELS LIST

Note that default 0 takes always the latest.
HIH.

Update: Found the BUG https://bugs.launchpad.net/ubuntu/+source/linux/+bug/337019/

NVIDIA ATI e le violazioni della GPL

linux GPL

Ecco qua un chiaro e semplice sguardo sui driver ATI e NVIDIA…
sul perché ci sono tanti casini a metterli su
sul perché i distributori Linux (okkey… le distribuzioni) non possono (non dovrebbero) darli subito installati, ma è necessario che lo faccia l’utente..
http://kororaa.org/static.php?page=gpl

In breve si riassume così :
Il kernel è GPL (v2)
se scrivi un modulo per il kernel questo deve essere GPL. Altrimenti non lo puoi fare (potresti).

I driver ATI escono con licenza ATI ed i driver NVIDIA con licenza NVIDIA che nn sono GPL.
In teoria i driver ATI ed NVIDIA non dovrebbero essere scritti in questo modo, poichè essedno un lavoro derivato derivated work, dovrebbero rimanere compatibili con la GPL ed essere rilasciati come GPL.
Per non violare la licenza ATI e NVIDIA non danno il precompilato, perché in questo modo violerebbero la licenza, ma danno la possibilità di compilarlo.
Ed il trucco è tutto qui.

Chi compila il driver, linkandolo ai sorgenti del proprio kernel praticamente viola la licenza.

ATI e NVIDIA si guardano bene dal farlo, i distributori vorrebbero farlo per venire incontro agli utenti, ma non possono farlo, a meno di non violare la licenza ed essere intimati dagli sviluppatori del kernel a desistere (vedi caso Kororaa).
E allora?

Allora è l’utente finale che, compilando il modulo e linkandolo al kernel, viola la GPL del kernel.

Quindi se il nostro utente vuole l’accelerazione 3D, come è giusto che sia, visto che ha pagato per quel pezzo di hardware, è costretto a violare la GPL, pena accelerazione 3D disabilitata.

Ci sono altri modi o vie per avere la 3D abilitata senza violare la GPL?
In teoria si, in pratica no.
A livello ATI ci sono i radeon, i driver open che escono con il kernel… che però coprono solo alcun delle funzionalità ed alcuni giochi semplicemente non funzionano con questi, per quel che riguarda NVIDIA non lo so perché non ho una NVIDIA.

Il problema è quindi alla fonte. Se la ATI e la NVIDIA rilasciassero dei driver GPL tutto questo non avverrebbe. Le posizioni delle due case è:
non rilasciamo i driver GPL perché dobbiamo proteggere le nostre proprietà intellettuali.
La posizione degli sviluppatori del kernel è:
nessuno ti obbliga ad utilizzare LINUX ed il suo kernel.
Se lo fai, devi allinearti con le sue regole.

Chi perde, alla fine, è sempre l’utente finale.