CLI QEMU가 시작 시 전체 터미널 너비를 사용하지만 nano 또는 gdb를 사용할 때는 사용하지 않는 이유는 무엇입니까?

CLI QEMU가 시작 시 전체 터미널 너비를 사용하지만 nano 또는 gdb를 사용할 때는 사용하지 않는 이유는 무엇입니까?

현재 다음과 같이 RISC-V qemu 세션을 시작하고 있습니다.

/usr/bin/qemu-system-riscv64 -machine virt -m 4G -smp cpus=2 -nographic \
    -bios /usr/lib/riscv64-linux-gnu/opensbi/generic/fw_jump.bin \
    -kernel /usr/lib/u-boot/qemu-riscv64_smode/u-boot.bin \
    -netdev user,id=net0 \
    -device virtio-net-device,netdev=net0 \
    -drive file=qemu_disk.bin,format=raw,if=virtio \
    -device virtio-rng-pci \
    -vga virtio \
    -no-reboot

특히 -vga virtio다음과 같이 시작 시 전체 터미널 너비를 사용하도록 만드세요. 여기에 이미지 설명을 입력하세요.

그러나 qemu VM 내에서 nano 또는 gdb와 같은 애플리케이션을 열면 다음과 같이 주변 터미널 창의 전체 너비 사용이 중지됩니다. 여기에 이미지 설명을 입력하세요.

nano 및 gdb와 같은 응용 프로그램이 시작 시 이를 인식할 수 있도록 QEMU에 더 많은 공간이 있는 것처럼 작동하도록 지시하려면 어떻게 해야 합니까?

(참고: 나중에 "크기 조정" 도구를 설치하고 수동으로 실행할 수 있다는 사실을 발견했지만 qemu에서 이를 자동으로 처리할 수 있는 방법이 있는지 궁금했습니다.)

답변1

“왜”라고 답하세요:

nano그리고gdb동일한 정보를 사용stty일반적으로 이것으로 충분하므로 표시하십시오.

첫 번째 스크린샷은 터미널 기능을 사용하려고 시도하지 않는 프로그램의 출력만 보여주는 반면, 두 번째 스크린샷은 기본 구성 정보가 부족한 시도를 보여주므로 기본값(25x80처럼 보임)을 얻습니다.

주의깊게 살펴보면,qemu아니요내 자신의콘솔에서는 좋은 정보를 얻을 수 없습니다. 예를 들어 실제로 의사 터미널을 통해 연결될 수 있습니다. 이는 다른 프로그램에서도 쉽게 볼 수 있습니다. 내가 사용하는 예는 다음과 같습니다.화면. 이것스티프로그램은 정확한 크기를 제공하지만 다른 크기인 것처럼 가정할 수 있습니다. 이것은 (반대)크기 조정기능: 터미널의 이스케이프 시퀀스를 사용하여 올바른 크기를 계산하고 사용된 설정을 업데이트합니다.스티.

stty가 무시되는 예

qemu에 내장된 해결 방법이 없으면 다음을 사용하세요.크기 조정(또는 이와 유사한 것)이 해결책입니다.

관련 정보