Qemu - Эмуляция собственной системы для тестирования модулей ядра

Терминалы передают байты, а не ключи. Такие ключи, как Ctrl + ', должны кодироваться как последовательности байтов. Помимо печатаемых символов без модификатора или только с помощью Shift , большинство ключей не имеют соответствующих символов и вместо этого передаются в виде символа побега последовательностей, начиная с символа побега (символ со значением байта 27, который можно записать как \e в Emacs последовательностей). Но у многих ключей нет традиционного стандарта побега последовательности, и многие терминалы либо не передают эти ключи, либо пропускают информацию об модификаторах (передавая Ctrl + ' как только символ ' ).

Некоторые терминалы позволяют настраивать управляющие последовательности для каждого ключа. В Terminal.app это можно сделать с помощью настроек клавиатуры .

Для Ctrl + ' выберите \033 [39; 5 ~ или \033 [27; 5; 39 ~ : это два новых стандарта, схема libtermkey и схема xterm. Для получения дополнительной информации см. Проблемы с вводом клавиш при использовании терминала .

Emacs преобразует побег последовательностей во внутреннее представление ключа через input-decode-map или local-function-key-map (или function-key-map перед Emacs 23). Поместите любой из них в файл init:

(define-key input-decode-map "\033[39;5~" [(control ?\')])
(define-key input-decode-map "\033[27;5;39~" [(control ?\')])

-121--185237-

Если вы подключаетесь к SSH и запускаете приложение X11, и что X11 приложение отображается на удаленном компьютере, а не через подключение SSH, есть три возможные причины.

  • Приложение является одним из немногих приложений, которое запускает только один экземпляр для данного пользователя на данном компьютере и уже запущено на другом дисплее.
  • Вы подключаете существующий сеанс Screen или Tmux, который был запущен из локального сеанса GUI. Программа знает, где она должна открыть свое окно из значения переменной среды ДИСПЛЕЕВ . Внутри этого экрана/Tmux переменная среды ДИСПЛЕЕВ остается прежней. Необходимо изменить его при повторном подключении к существующему сеансу: перед подключением к терминальному мультиплексору выполните команду echo $ DISPLAY и установите переменную внутри мультиплексора.
  • Вы сделали что-то непослушное в одном из файлов конфигурации ( .profile , .bashrc и т.д.): вы изменили переменную среды ДИСПЛЕЕВ . Кроме случая подключения к экранному мультиплексору, который был запущен с другого дисплея, не следует устанавливать DISPLAY вручную. Если SSH куда-то и ДИСПЛЕИ не установлен, это означает, что соединение SSH не пересылает X11 соединение, и настройка переменной среды вручную не может помочь.

Поэтому, по всей вероятности, необходимо просмотреть файлы конфигурации и удалить строку, которая повреждает переменную среды ДИСПЛЕЕВ .

-121--228907-

Я мало знаю о UEFI, но звучит так, будто UEFI вам все равно не нужен. Вы должны быть в состоянии сделать то, что вы сказали, удалить первые четыре раздела, а затем переместить 5 и 6, чтобы стать 1 и 2. Но вам, скорее всего, потребуется запустить grub-install или update-grub после этого, поэтому убедитесь, что загрузочный носитель Linux удобен. Вероятно, вы можете сделать это в системе, которая работает при перемещении разделов, но, возможно, вам потребуется использовать загрузочный носитель, особенно если что-то пойдет не так.

BTW, если вы не опытный пользователь, сейчас отличное время, чтобы им стать.;) Если вам не нужно хранить что-либо на ваших разделах Linux, то получите загрузочный/установочный диск и экспериментируйте! Если что-то пойдет не так, просто удалите все разделы и переустановите.:)

0
16.04.2018, 19:36
1 ответ

Я этого не делал, так как обычно qemu устанавливается из iso или существующего образа qemu, поэтому, вероятно, есть более простой способ, чем следующий. То, что вам не хватает, в значительной степени эквивалентно файловой системе, которая вам понадобится для chroot .

Можно попробовать

sudo debootstrap --arch=amd64 unstable ~/debian-tree/

, который спускается и распаковывает около 300 Мбайт файлов, которые вы можете «загрузить» как контейнер systemd и протестировать с помощью

sudo systemd-nspawn -D ~/debian-tree/ -b

См. man machinectl. Вы можете смонтировать образ qemu, сделав его блочным устройством :

.
sudo apt-get install qemu-utils
sudo modprobe nbd
ls /dev/nbd*   # gives /dev/nbd0  /dev/nbd1...
sudo qemu-nbd -c /dev/nbd0 /my/vm-image
sudo mount /dev/nbd0 /mnt/...  # nbd0p1 if you have partitioned
sudo rsync -HSaxX ~/debian-tree/ /mnt/... 

и скопируйте в него это дерево. При запуске qemu обычно требуется указать больший размер виртуальной машины, чтобы избежать сбоев :

.
qemu-system-x86_64 -m 512M... -machine pc,accel=kvm  -cpu host -enable-kvm

Использование -boot dможет привести к невозможности доступа к дискете.

2
28.01.2020, 02:43

Теги

Похожие вопросы