ฉันจะเชื่อมต่อเทอร์มินัลอนุกรมกับอินสแตนซ์ของ KVM ได้อย่างไร


12

บางทีฉันอาจเข้าใจผิดว่า KVM มีความสามารถอะไร แต่ความสามารถในการเพิ่ม / ลบฮาร์ดแวร์บน VM ดูเหมือนว่าแปลว่าฉันสามารถเพิ่มพอร์ตอนุกรมที่ทำหน้าที่เป็นเทอร์มินัลได้

ดังนั้นคำถามของฉันคือ:

  1. การตั้งค่าใดดีที่สุดสำหรับการกระจาย FreeBSD ของแขก? (มีมากมาย!)
  2. ฉันจะเข้าถึงเทอร์มินัลกล่าวจากโฮสต์ Linux ได้อย่างไร

คำตอบ:


5

ตอนนี้ฉันสามารถตอบคำถามของฉันเองตามความคิดเห็นของStefanและบทความที่เชื่อมโยงทั้งสอง:

นี่คือทางออก:

  • คุณไม่จำเป็นต้องแก้ไขอะไรกับการกำหนดค่าโฮสต์หากมีอุปกรณ์อนุกรมเริ่มต้นที่ชี้ไปที่ pty
  • serial=tty0 console=ttyS0,115200n8ตรวจสอบให้แน่ใจพารามิเตอร์บูตสำหรับเคอร์เนลของคุณได้ท้ายนี้: มักจะทำได้โดยการแก้ไข/boot/grub/menu.lst
  • กำหนดค่า/etc/inittabและต่อท้ายบรรทัดT0:S12345:respawn:/sbin/getty -hL ttyS0 115200 vt100เพื่อเรียกใช้ getty และให้พรอมต์ล็อกอิน

ฉันสามารถยืนยันได้ว่าสิ่งนี้ใช้ได้กับฉันโดยใช้ระบบ fedora (แม้ว่าฉันจะต้องตั้งค่าenforcing=0เป็นพารามิเตอร์เพิ่มเติมเพราะระบบที่เป็นปัญหาคือ fedora rawhide ที่กำลังเรียกใช้ SELinux MLS)

ฉันคิดจากที่นั่นฉันอาจจะหาวิธีทำแบบเดียวกันกับ freebsd

ขอบคุณสเตฟาน!


ผมคิดว่าเป็นความผิดพลาดและควรจะเป็นserial=tty0 console=tty0ฉันไม่เห็นพารามิเตอร์ "อนุกรม" ในเคอร์เนลเอกสารใด ๆ การระบุคอนโซลหลายตัว (ในกรณีนี้คอนโซลเสมือนที่ใช้งานอยู่รวมถึงคอนโซลอนุกรม) ก็สมเหตุสมผลดีสำหรับฉัน
mattdm

2

เพื่อตอบวิธีการตั้งค่าเครื่อง FreeBSD ของคุณมีสองกรณีหลักสำหรับการรับอนุกรม หากคุณกำลังติดตั้ง FreeBSD ด้วยซีเรียลเท่านั้นคำแนะนำในการบูตอนุกรมจะต้องใช้ หากคุณมีคอนโซลอยู่แล้วและต้องการเพียงแค่การเข้าถึงแบบอนุกรมเช่นกันให้ทำตามคำแนะนำแบบอนุกรมหลังการติดตั้ง

Bootloader อนุกรม

  • กด2ที่หน้าจอตัวเลือกการบูต FreeBSD เพื่อหนีไปที่พรอมต์โหลด
  • ชนิด set console=comconsole
    • ถ้าคุณหลวมการติดต่อตอนนี้ตรวจสอบเพื่อดูว่าอัตราการรับส่งข้อมูลเสมือน tty เป็น 9600
  • ชนิด autoboot

สิ่งนี้จะช่วยให้การติดตั้งที่เหลือทำได้ผ่านอินเตอร์เฟสแบบอนุกรม หากคุณต้องการให้มีการเข้าถึงแบบอนุกรมหลังจากติดตั้ง FreeBSD แล้วก่อนที่คุณจะรีบูตเมื่อสิ้นสุดการติดตั้งคุณจะต้องไปที่พรอมต์คำสั่ง

โพสต์ติดตั้งแบบอนุกรม

ที่คอนโซล:

  • ชนิด echo 'console="comconsole"' >> /boot/loader.conf
  • โหลด/etc/ttysใน vi
  • แก้ไขบรรทัดที่ขึ้นต้นด้วย ttyu0 (อาจเป็น ttyd0 ใน FreeBSD เวอร์ชั่นอื่น)
    • ในบรรทัดนั้นเปลี่ยนdialupเป็นvt100และoffเป็นon
  • หลังจากรีบูตเครื่องเทอร์มินัลอนุกรมควรแสดงขั้นตอนการบู๊ตและจบด้วยพรอมต์ล็อกอิน
    • หมายเหตุ: การตั้งค่าconsole="comconsole"ใน/boot/loader.confอาจทำให้ข้อความการบูตปรากฏขึ้นบนอินเตอร์เฟสแบบอนุกรมเท่านั้น เพียงแค่ปรับเปลี่ยน/etc/ttysหากคุณไม่ต้องการให้บันทึกการบูตผ่านพอร์ตอนุกรม

อ้างอิง

http://www.freebsd.org/doc/handbook/serialconsole-setup.html

http://www.freebsd.org/doc/handbook/term.html


0

คุณต้องจำลองพอร์ตอนุกรมภายในอีมูเลเตอร์และแน่นอนว่าสามารถเข้าถึงได้บนโฮสต์ เกสต์โอเอสควรวางบางสิ่งบางอย่างบน 'พอร์ตอนุกรมของฮาร์ดแวร์' เช่นพร้อมท์ล็อกอินผ่านเช่น getty_ps ตอนนี้ฉันเองก็ไม่ต้องใช้วิธีนี้ ส่วนใหญ่พอร์ตอนุกรมที่เลียนแบบบน guest OS จะใช้สำหรับข้อมูลการดีบัก (Haiku ยังคงใช้โดยค่าเริ่มต้น) และจากนั้นจะถูกจับโดย emulator (เช่น VMware) เป็นไฟล์ข้อความอย่างง่ายเพื่อให้มีข้อมูลการดีบัก .. ' จะลองที่นี่เพื่อให้สิ่งที่ทำงานบนคอนโซลอนุกรมจำลองภายใน qemu


0

คำตอบของ OP ใช้งานได้ แต่เมื่อฉันลองกับ env ของฉัน (โฮสต์ Linux, ไคลเอ็นต์ Linux)

  1. serial=tty0 ไม่ต้องการ
  2. ใช้ xterm แทน vt100 เพื่อให้ใช้/etc/inittabงานได้ดีขึ้น (คุณจะได้สี)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.