Dlaczego moje wirtualne konsole są całkowicie puste?

19

Kiedy przechodzę z sesji graficznej do wirtualnej konsoli przez Ctrl+ Alt+F i (z i w 1 - 7 i 9-12) widzę całkowicie czarny ekran. Tylko na F8 widzę GUI. Nawet mrugający kursor na pozostałych. Kiedy coś wchodzę, nic nie widzę.

Na czym polega problem i jak go naprawić?

Mój system

$ uname -a
Linux pc09 3.13.0-36-generic #63-Ubuntu SMP Wed Sep 3 21:30:07 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
$ cat /etc/issue
Linux Mint 17 Qiana \n \l
$ lspci | grep VGA
01:00.0 VGA compatible controller: NVIDIA Corporation GK110B [GeForce GTX Titan Black] (rev a1)
$ lspci -k | grep -A 2 -i "VGA"
01:00.0 VGA compatible controller: NVIDIA Corporation GK110B [GeForce GTX Titan Black] (rev a1)
Subsystem: NVIDIA Corporation Device 1066
Kernel driver in use: nvidia

edycja: Wypróbowałem pierwsze kroki sugerowane na http://forums.linuxmint.com/viewtopic.php?f=42&t=168108, a problemem wydaje się być bufor ramki.

Ja to zrobiłem:

Problem ten był uciążliwy dla sterowników Nvidii przez dwa lub trzy lata i od pewnego czasu trzymał mnie z dala od dystrybucji opartych na Ubuntu. Wreszcie na forum Nvidii znalazłem obejście, którego szukałem. Problem pojawia się w przypadku własnościowych sterowników Nvidia (Nouveau tego nie pokazuje): kiedy naciskasz Ctrl-Alt-F1, otrzymujesz tylko czarny ekran lub, w najlepszym razie, migający kursor, który nic nie robi. Najwyraźniej problem dotyczy sposobu implementacji bufora ramki i należy go wyłączyć. Aby zobaczyć, czy to jest problem, najpierw musisz wprowadzić kilka drobnych zmian w / etc / default / grub - ale najpierw wykonaj kopię zapasową!

$ sudo cp /etc/default/grub /etc/default/grub.bak

Teraz edytuj plik, wprowadzając

$ sudo pluma /etc/default/grub

w edytorze usuń komentarz z wierszy

#GRUB_TERMINAL=console
#GRUB_GFXMODE=640x480

usuwając #. Zapisz plik i uruchom undate-grub, aby wprowadzić zmiany

sudo update-grub

Teraz mam (niski wynik) tty znów działa :-)

Martin Thoma
źródło
Karta graficzna i sterownik? Czy usługa KMS jest włączona i działa?
jasonwryan
Dodałem wyjście lspci | grep VGA. Jak mogę sprawdzić twoje pytania KMS?
Martin Thoma,
Czy używasz kropli lub secesji? Z własnościowego sterownika, to może potrzebować takiego bufora ramki uvesafb. Mennicy powinni gdzieś to udokumentować ...
jasonwryan

Odpowiedzi:

10

To dlatego, że używasz zastrzeżonego sterownika NVidia.

Kiedy byłem OpenSUSE z zastrzeżonym sterownikiem, moje konsole również byłyby czarne, teraz, gdy ponownie używam Ubuntu, uzyskują jeszcze bardziej „chłodny” efekt: (Nie martw się, ekran jest w porządku!) Inne fajne rzeczy, które może zrobić sterownik NVidia

Przyczyną tego wydaje się być sterownik jądra NVidia, który po zainicjowaniu przez sterownik DDX (= X11 zależny od urządzenia) nie jest w stanie poradzić sobie z żądaniami z dowolnego innego podsystemu wideo (takiego jak fbdev, VESA, konsola Linux) , ...).

Konsola będzie nadal aktywowana po przełączeniu na nią. Aby to sprawdzić, spróbuj zalogować się na oślep do konsoli i wpisz coś, co będzie łatwe do wypowiedzenia, takich jak walllub reboot:

<Your username>
<Your password>
echo "Test message" >/tmp/message; wall </tmp/message

Po powrocie z konsoli powinieneś zobaczyć coś takiego w dowolnym oknie terminala:

Broadcast message from <Your username>@<Hostname>
        (/dev/tty2) at 23:38 ...

Test message

Niestety nie znam żadnego sposobu, aby to naprawić, z wyjątkiem korzystania ze sterownika OpenSource („nouveau”). Przełączanie VT działa dobrze przy użyciu tego sterownika, ale ten sterownik stwarza inne problemy (spontaniczne awarie i ogólnie mniejsza wydajność w moim przypadku). Nie jestem ani programistą jądra, ani programistą NVidia, więc nie mogę zrobić nic więcej, niż samodzielnie analizować objawy.

ntninja
źródło
Jest to tylko problem w konsoli bufora ramki. Jeśli go nie używasz, wirtualne konsole działają dobrze.
casey
@ alexander255 zobacz moją edycję w pytaniu: Mam ją (częściowo) do ponownej pracy. Naprawdę nie rozumiem, co tu się dzieje i jakie jest dobre rozwiązanie, więc byłbym wdzięczny, gdyby ktoś mógł napisać dobrą odpowiedź.
Martin Thoma,
@casey: Czy zamierzasz polegać na konfiguracji wideo podczas uruchamiania? A może udało Ci się uruchomić SVGATextMode z nowoczesną kartą NVIDIA i jej zastrzeżonym sterownikiem?
Incnis Mrsi,
@IncnisMrsi Afaik zastrzeżony sterownik nvidia jest niezgodny z buforem ramki. Użyj noveau, jeśli chcesz jedno i drugie.
Casey
@casey: Kiedy było niezgodne? Być może w 2014 roku, ale obecny sterownik pokazał mi ładnie wyglądający TUI (choć nie jestem całkowicie pewien, czyfbdev ). Ī̲ wyrzucił nvidiamoduł z mojego nowego pudełka dopiero po tym, jak mnie zawiesił . Nawiasem mówiąc, Ī̲ mówię o sprzętowych trybach tekstowych.
Incnis Mrsi,
1

Nie znam zbyt dobrze systemu ubuntu, ale zwykle ttyssą one odradzane agettypodczas procesu uruchamiania. Być może programiści Ubuntu postanowili tego nie robić? W każdym razie możesz spróbować uruchomić jako root /sbin/agetty 38400 tty2 linuxi sprawdzić, czy coś się zmieniło tty2.

Zwykle to polecenie jest obecne w pliku konfiguracyjnym w /etcfolderze. Na przykład w moim Gentoo w /etc/inittabmam

# TERMINALS
c1:12345:respawn:/sbin/agetty --noclear 38400 tty1 linux
c2:2345:respawn:/sbin/agetty 38400 tty2 linux
c3:2345:respawn:/sbin/agetty 38400 tty3 linux
c4:2345:respawn:/sbin/agetty 38400 tty4 linux
c5:2345:respawn:/sbin/agetty 38400 tty5 linux
c6:2345:respawn:/sbin/agetty 38400 tty6 linux

Możesz grep getty /etc/*sprawdzić, czy istnieje plik z podobnymi liniami.

jimmij
źródło
Po pierwsze, jeśli wirtualna konsola nie jest tworzona, nie możesz się do niej dostać, a jeśli ona istnieje, wtedy kursor (normalnie) tam miga. Po drugie, gettynie ma to nic wspólnego z trybami wideo, zwłaszcza tty1że zawsze jest obecny. Głosuj
Incnis Mrsi,
1

Ugh. Więc ten problem mnie denerwował przez prawdopodobnie 18 miesięcy. W końcu to naprawiłem dzisiaj.

Musiałem skonfigurować partycję rozruchową UEFI i uzyskać z systemu możliwość rozruchu. Włączyłem efifb, simplefb i ogólny moduł obsługi fb w opcjach pci (wiele innych kombinacji nie działało). Mam interfejs uefi bezpośrednio uruchamiający jądro, nie używa się pośredniego programu ładującego.

Żadna kombinacja bzdur przy użyciu trybu kompatybilnego z bios (simplefb, uvesafb, vesafb itp.) Nie może odzyskać moich VT po załadowaniu X11. Teraz mogę szczęśliwie przełączać się w przód iw tył, kiedy psuję rzeczy :)

Chris Lack
źródło
1
Jak udało Ci się przekazać parametry jądra bezpośrednio z UEFI?
sherrellbc
0

Miałem również ten problem i moim obejściem było przejście do trybu odzyskiwania i tam wybrać opcję „Wznów”. Gdy zobaczyłem ekran logowania i nacisnąłem STRG + ALT + F1, mogłem zobaczyć tekstowy login i mogłem wchodzić w interakcje z systemem (dla mnie ważne jest, aby zainstalować zastrzeżone sterowniki NVIDIA, ironia, prawda?). Mam nadzieję, że moje obejście też działa dla ciebie :)

Lukas Werner
źródło