Linux terhubung dari host ke VirtualBox Guest melalui port serial virtual


2

Saya perlu mengambil file konfigurasi dari VM tamu tanpa dukungan jaringan. Cara paling sederhana untuk melakukannya adalah dengan menggunakan port serial. Sejauh yang saya mengerti saya perlu membuat semacam port serial "loop" sehingga saya akan terhubung menggunakan mis. minicom untuk membiarkan say / dev / vttyS0 dan saya akan menetapkan / dev / vttyS1 untuk tamu VirtualBox.

Tamu menggunakan baud rate 115200. Bagaimana cara membuat pasangan perangkat seperti itu?

Saya mencoba socat:

socat -d -d pty,raw,echo=0 pty,raw,echo=0

Namun VirtualBox tampaknya tidak memahaminya sebagai kesalahan melempar perangkat serial yang benar

Ioctl failed for serial host device /dev/pts/10 (VERR_INVALID_PARAMETER)
Device will not work properly

ErrorID DrvHostSerialFail
Severity Warning

Menginstal tambahan Tamu, sehingga Anda dapat memasang penyimpanan bersama ke Tamu dan Host, tidak ada pertanyaan?
Marek Rost

@MarekRost itu adalah OS yang disematkan. Tidak memiliki standar prompt atau bahkan akses langsung ke drive. Ini hanya memiliki prompt konfigurasi dengan perintah yang membuang konfigurasi perangkat ke output konsol. Tampaknya menjadi satu-satunya cara untuk mendapatkan konfigurasi perangkat. Bahkan tidak mendukung framebuffer, VirtualBox menampilkan monitor VM standar menggunakan port serial 0.
Lapsio

Jawaban:


6


Pengaturan Pengaturan Konsol Serial Pertama di OS Host.
Dalam pengaturan virtualbox,
Port serial -> Port 1
Port No. COM1
Port Mode - Host Pipe
terhubung ke pipa yang ada / socked - UNCHECKED
Path / Addess: / tmp / vbox
Now, Set Minicom
sudo minicom -s -c pada
pengaturan port serial
Serial Device: Unix # / tmp / vbox
Exit


Aktifkan Serial Konsol Di Tamu
sudo vi / etc / default / grub
GRUB_CMDLINE_LINUX = "konsol = ttyS0,115200n8 konsol = tty0 ign_loglevel"
sudo update-grub
Sekarang Aktifkan getty Pada Konsol ttyS0
Untuk Pemula Sistem Sytem
1) Buat file yang disebut / etc / init / ttyS0.conf berisi yang berikut:

# ttyS0 - getty
#
# Layanan ini mempertahankan getty pada ttyS0 dari titik sistemnya
# mulai sampai dimatikan kembali.

mulai berhenti rc RUNLEVEL = [12345]
berhenti di runlevel [! 12345]

respawn exec / sbin / getty -L 115200 ttyS0 vt102

2) Minta pemula untuk memulai getty

sudo mulai ttyS0


Untuk Sistem Systemd

# sudo systemctl mengaktifkan serial-getty@ttyS0.service
# sudo systemctl mulai serial-getty@ttyS0.service
# sudo systemctl daemon-reload


Sekarang reboot os tamu Anda dan Anda akan mendapatkan konsol serial di os host Anda melalui minicom


1

Cara untuk terhubung dari host ke tamu adalah dengan

  1. Buat port serial di virtualbox dalam mode "Pipa Host" dengan path misalnya. / dev / vboxttyS0.
  2. aktifkan port serial di tamu
  3. Penggunaan socat unix-connect:/dev/vboxttyS0 -,b57600atau socat unix-connect:/dev/vboxttyS0 -,raw,echo=0yang dalam kasus khusus saya berfungsi lebih baik.

Saya menghubungi vendor OS dan ternyata port serial harus diaktifkan secara eksplisit, meskipun pada perangkat bare metal mereka diaktifkan secara default: /

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.