ทำไมคอนโซลเสมือนของฉันจึงว่างเปล่าทั้งหมด?


19

เมื่อฉันไปจากเซสชันกราฟิกของฉันไปที่คอนโซลเสมือนโดยCtrl+ Alt+ F i(กับฉันใน 1 - 7 และ 9-12) ฉันเห็นหน้าจอสีดำสนิท เฉพาะใน F8 ฉันเห็น GUI ไม่แม้แต่กระพริบตาบนอื่น ๆ เมื่อฉันป้อนอะไรฉันไม่เห็นอะไรเลย

ปัญหาคืออะไรและฉันจะแก้ไขได้อย่างไร

ระบบของฉัน

$ 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

แก้ไข: ฉันลองทำตามขั้นตอนแรกที่แนะนำในhttp://forums.linuxmint.com/viewtopic.php?f=42&t=168108และดูเหมือนว่าปัญหาจะเป็น framebuffer

ฉันทำอย่างนี้:

นี่เป็นปัญหาที่สร้างความรำคาญให้กับไดรเวอร์ของ Nvidia เป็นเวลาสองหรือสามปีและทำให้ฉันต้องอยู่ห่างจาก distros ที่ใช้ Ubuntu เป็นระยะเวลาหนึ่ง ในที่สุดบนฟอรัม Nvidia ฉันพบวิธีแก้ปัญหาที่ฉันต้องการ ปัญหาเกิดขึ้นกับไดรเวอร์ที่เป็นกรรมสิทธิ์ของ Nvidia (Nouveau ไม่แสดงพฤติกรรมนี้): เมื่อคุณกด ctrl-alt-F1 คุณจะได้รับหน้าจอสีดำหรือที่ดีที่สุดคือเคอร์เซอร์กะพริบที่ไม่ทำอะไรเลย เห็นได้ชัดว่าปัญหาเกี่ยวข้องกับ framebuffer ในการนำไปใช้และต้องปิดการใช้งาน หากต้องการดูว่านี่เป็นปัญหาหรือไม่ก่อนอื่นคุณต้องทำการแก้ไขเล็กน้อยเป็น / etc / default / grub - แต่ก่อนอื่นให้ทำการสำรองข้อมูล!

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

ตอนนี้แก้ไขไฟล์โดยการป้อน

$ sudo pluma /etc/default/grub

ในตัวแก้ไขให้ยกเลิกหมายเหตุบรรทัด

#GRUB_TERMINAL=console
#GRUB_GFXMODE=640x480

#โดยการเอา บันทึกไฟล์และเรียกใช้ undate-grub เพื่อดำเนินการเปลี่ยนแปลง

sudo update-grub

ตอนนี้ฉันมี (ผลต่ำ) tty ทำงานอีกครั้ง :-)


การ์ดแสดงผลและไดรเวอร์? KMS เปิดใช้งานและทำงานอยู่หรือไม่
jasonwryan

lspci | grep VGAฉันได้เพิ่มการส่งออกของ ฉันจะตรวจสอบคำถาม KMS ของคุณได้อย่างไร
Martin Thoma

คุณกำลังใช้ Blob หรือ Nouveau อยู่หรือไม่? ด้วยการขับรถที่เป็นกรรมสิทธิ์ของคุณอาจต้อง framebuffer uvesafbเหมือน คนมิ้นต์ควรมีเอกสารไว้ที่ใดที่หนึ่ง ...
jasonwryan

คำตอบ:


10

นั่นเป็นเพราะคุณกำลังใช้ไดรเวอร์ NVidia ที่เป็นกรรมสิทธิ์

เมื่อฉันเป็น OpenSUSE พร้อมคนขับที่เป็นกรรมสิทธิ์คอนโซลของฉันก็จะเป็นสีดำตอนนี้ฉันใช้ Ubuntu อีกครั้งพวกเขาจะได้เอฟเฟกต์ "เย็น": (ไม่ต้องกังวลหน้าจอก็ดี!) สิ่งดีๆอื่น ๆ ที่ผู้ขับขี่ NVidia ทำได้

เหตุผลนี้น่าจะเป็นไดรเวอร์เคอร์เนล NVidia ซึ่งเมื่อเริ่มต้นโดยไดรเวอร์ DDX (= อุปกรณ์ X11 ขึ้นอยู่กับอุปกรณ์) ไม่สามารถรับมือกับการร้องขอจากระบบย่อยวิดีโออื่น ๆ (เช่น fbdev, VESA, คอนโซล Linux , ... )

คอนโซลจะยังคงเปิดใช้งานเมื่อสลับไปที่มัน หากต้องการตรวจสอบสิ่งนี้ลองเข้าสู่คอนโซลอย่างสุ่มสี่สุ่มห้าและป้อนสิ่งที่จะสังเกตเห็นได้ง่ายเช่นwallหรือreboot:

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

หลังจากกลับมาจากคอนโซลคุณควรเห็นสิ่งนี้ในหน้าต่างเทอร์มินัลใด ๆ :

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

Test message

น่าเสียดายที่ฉันไม่ทราบวิธีการแก้ไขนี้ยกเว้นการใช้ไดรเวอร์ OpenSource ("นูโว") การสลับ VT ทำงานได้ดีโดยใช้ไดรเวอร์นั้น แต่ไดรเวอร์นั้นสร้างปัญหาอื่น ๆ (เกิดปัญหาเองและโดยทั่วไปประสิทธิภาพในกรณีของฉันจะน้อยกว่า) ฉันยังไม่ใช่นักพัฒนาเคอร์เนลหรือนักพัฒนา NVidia ดังนั้นฉันจึงไม่สามารถทำได้มากกว่าการวิเคราะห์อาการด้วยตัวเอง


นี่เป็นปัญหาในคอนโซล framebuffer เท่านั้น ถ้าคุณไม่ใช้มันคอนโซลเสมือนก็ใช้ได้ดี
casey

@ alexander255 เห็นการแก้ไขของฉันในคำถาม: ฉันได้รับมัน (บางส่วน) เพื่อทำงานอีกครั้ง ฉันไม่เข้าใจว่าเกิดอะไรขึ้นที่นี่และทางออกที่ดีคืออะไรดังนั้นฉันจะขอบคุณถ้ามีคนเขียนคำตอบที่ดี
Martin Thoma

@casey: คุณเสนอที่จะพึ่งพาการตั้งค่าวิดีโอเวลาบูตหรือไม่? หรือว่าคุณประสบความสำเร็จในการรัน SVGATextMode ด้วยการ์ด nvidia ที่ทันสมัยและไดรเวอร์ที่เป็นกรรมสิทธิ์?
Incnis Mrsi

@IncnisMrsi Afaik คนขับรถ nvidia ที่เป็นเจ้าของไม่สามารถใช้งานร่วมกับ framebuffer ใช้ noveau หากคุณต้องการทั้งคู่
casey

@casey: มันเข้ากันไม่ได้เมื่อไหร่? ในปี 2014 บางที แต่คนขับรถในปัจจุบันแสดงให้ฉันดูดี TUI (แม้ว่าฉันจะไม่แน่ใจว่ามันเป็นอย่างสมบูรณ์fbdev) Ī̲ เตะnvidiaโมดูลออกจากกล่องใหม่หลังจากวางสาย โดยวิธีการที่ฉันพูดคือเกี่ยวกับโหมดข้อความฮาร์ดแวร์
Incnis Mrsi

1

ไม่ทราบว่าระบบอูบุนตูดีเกินไป แต่โดยทั่วไปttysจะเกิดจากagettyกระบวนการบูท บางทีผู้พัฒนาอูบุนตูตัดสินใจที่จะไม่ทำเช่นนั้น? อย่างไรก็ตามคุณสามารถลองใช้การรูท/sbin/agetty 38400 tty2 linuxและดูว่ามีบางอย่างเปลี่ยนไปtty2หรือไม่

โดยปกติคำสั่งนี้มีอยู่ในไฟล์กำหนดค่าบางไฟล์ภายใต้/etcโฟลเดอร์ ตัวอย่างเช่นในกล่อง Gentoo ของ/etc/inittabฉันที่ฉันมี

# 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

คุณสามารถgrep getty /etc/*ดูว่ามีไฟล์ที่มีเส้นคล้ายกันหรือไม่


ก่อนอื่นหากไม่ได้สร้างคอนโซลเสมือนคุณจะไม่สามารถไปถึงได้และถ้ามีอยู่แล้วเคอร์เซอร์ (ปกติ) จะกระพริบที่นั่น ประการที่สองgettyมีอะไรจะทำอย่างไรกับโหมดวิดีโอโดยเฉพาะอย่างยิ่งtty1ที่เป็นเสมอในปัจจุบัน downvote
Incnis Mrsi

1

ฮึ. ดังนั้นปัญหานี้ทำให้ฉันเกิดมานานถึง 18 เดือน ฉันแก้ไขมันในวันนี้ในที่สุด

ฉันต้องตั้งค่าพาร์ติชันสำหรับเริ่มระบบ UEFI และทำให้ระบบสามารถบูตได้ ฉันเปิดใช้งาน efifb, simplefb และตัวจัดการ fb ทั่วไปภายใต้ตัวเลือก pci (ชุดค่าผสมอื่น ๆ ไม่ทำงาน) ฉันมี uefi การบูตเคอร์เนลโดยตรงไม่มีการใช้ bootloader ตัวกลาง

ไม่มีการรวมกันของอึโดยใช้โหมดที่เข้ากันได้กับ bios (simplefb, uvesafb, vesafb เป็นต้น) ไม่สามารถรับ VTs ของฉันกลับมาได้เมื่อโหลด X11 ตอนนี้ฉันสามารถสลับไปมาอย่างมีความสุขเมื่อฉันแบ่งสิ่งของ :)


1
คุณสามารถส่งผ่านพารามิเตอร์ของเคอร์เนลได้โดยตรงจาก UEFI ได้อย่างไร
sherrellbc

0

ฉันมีปัญหานี้เช่นกันและวิธีแก้ปัญหาของฉันคือเปลี่ยนเป็นโหมดการกู้คืนและเลือกตัวเลือก "ดำเนินการต่อ" เมื่อฉันเห็นหน้าจอเข้าสู่ระบบและกดSTRG + ALT + F1ฉันจะเห็นข้อความเข้าสู่ระบบและสามารถโต้ตอบกับระบบได้ (สำหรับฉันสิ่งสำคัญในการติดตั้งไดรเวอร์ NVIDIA ที่เป็นกรรมสิทธิ์นั่นคือแดกดันใช่ไหม?) ฉันหวังว่าการแก้ปัญหาของฉันก็เหมาะกับคุณเช่นกัน :)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.