Изменить размер консоли

Глядя на исходный файл, кажется, что этот скрипт запускается git clone https://github.com/zplug/zplug.git $ZPLUG_HOMEв фоновом режиме через функцию execute()и, не дожидаясь завершения этого процесса, объявляет сообщение SUCCEEDEDи завершает работу.

В основном у вас есть два варианта:

  • подождите, пока скрипт создаст файл, например, добавив цикл while, что-то вроде

    while [[ ! -f ~/.zplug/init.zsh ]]; do
       sleep 1
    done
    

    Проверьте свою sleepреализацию, если она поддерживает числа с плавающей запятой, попробуйте sleep 0.1, если время является проблемой, или даже подождите с inotify, чтобы быть немного (незначительно )более эффективным.

  • измените этот сценарий установки, чтобы он ожидал внутренних заданий. Он находится на git, так что вы можете его разветвить или попросить автора сделать это.

0
11.01.2021, 15:55
1 ответ

При устранении проблем с ранней загрузкой в ​​VMware может оказаться полезным настроить ядро ​​на использование последовательного порта в качестве консоли. В вашем случае вам понадобятся параметры загрузки ядра для этого :, единственные способы указать их могут быть через параметр конфигурации ядра CONFIG_CMDLINEили с переменной окружения FDARGS="..."во время сборки ядра, аналогично использованию FDINITRD=, чтобы указать файл initramfs при использовании make isoimage.

В вашем случае, вероятно, потребуется добавить параметры console=ttyS0,115200 console=tty0, а затем настроить VMware для сохранения любого вывода на виртуальный последовательный порт COM1 в файл. Таким образом, вы должны получить полный список загрузочных сообщений ядра Linux в файл.

(Часть console=tty0гарантирует, что вы также получите вывод консоли в окно консоли VMware; без него вывод консоли шел бы на последовательный порт только , оставляя виртуальный дисплей VGA совершенно неиспользуемым.)

Чтобы успешно использовать такие последовательные порты, вам также потребуются параметры конфигурации ядра CONFIG_SERIAL_8250=yи CONFIG_SERIAL_8250_CONSOLE=y.


Я думаю, что CONFIG_DUMMY_CONSOLE_ROWSи CONFIG_DUMMY_CONSOLE_COLUMNSвлияют только на виртуальное «фиктивное» консольное устройство, которое действует только до тех пор, пока реальный драйвер консольного устройства не вступит во владение. Настоящий драйвер консоли установит строки/столбцы в соответствии с режимом отображения, используемым на консоли.

Комментарий в начале drivers/video/console/dummycon.c, кажется, подтверждает это:

// SPDX-License-Identifier: GPL-2.0-only
/*
 *  linux/drivers/video/dummycon.c -- A dummy console driver
 *
 *  To be used if there's no other console driver (e.g. for plain VGA text)
 *  available, usually until fbcon takes console over.
 */

Кроме того, drivers/video/console/vgacon.c(, то есть реальный драйвер текстового режима консоли VGA ), вообще не использует CONFIG_DUMMY_CONSOLE_ROWS.

Если вы используете классическую текстовую консоль VGA (vgacon.c, упомянутую выше, настроенную с помощью CONFIG_VGA_CONSOLE=y), затем параметр загрузки ядраvga=ask(и, как только вы увидите результирующий вывод и выберите подходящий (S )Номер текстового режима VGA, vga=<mode number>), предложенный Артемом С. Ташкиновым в комментариях к вопросу, будет уместным.

Современные дистрибутивы Linux вместо этого используют CONFIG_FRAMEBUFFER_CONSOLE=yи обычно загружают соответствующий драйвер устройства кадрового буфера из initramfs,потому что он будет иметь более высокие режимы разрешения -, чем старый добрый VGA. Но поскольку вы устраняете проблему с ранней загрузкой, вам необходимо иметь ее в ядре для вывода на дисплей (окно дисплея VMware ). Если вы загружаете виртуальную машину, используя традиционный стиль BIOS (, который, вероятно, make isoimageделает ), рассматриваемый драйвер будет CONFIG_FB_VESA=y; если вы используете загрузку в стиле UEFI -, хорошей идеей будет CONFIG_FB_EFI=y.

CONFIG_FB_VESAтакже использует параметр загрузки vga=для установки начального разрешения экрана консоли по устаревшим причинам, но режимы могут не быть перечислены с vga=ask; см. Documentation/fb/vesafb.rst здесь или в дереве исходного кода ядра для получения дополнительной информации и списка режимов на выбор.

При использовании UEFI (или любого другого драйвера консоли кадрового буфера, отличного от CONFIG_FB_VESA), вам нужно будет вместо этого указать желаемый режим отображения, используя параметр загрузки video=; подробности см. вDocumentation/fb/modedb.rstв дереве исходных текстов ядра .

Вкратце, параметр выбора видеорежима для CONFIG_FB_EFI(, аналогичный любой консоли без -VESA кадрового буфера, на самом деле )может выглядеть так:

video=efifb:1280x1024@60

При этом будет автоматически выбрано подходящее разрешение текста для видеорежима.

3
18.03.2021, 22:37

Теги

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