Отключение выхода монитора на уровне ядра при старте системы

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

Возможно ли какими-либо средствами OS получить доступ к настройкам БИОС, дабы основным выходом назначить VGA, если это вообще реально? Железка Samsung R519, модификацию сказать не смогу, так как живая осталась лишь мать )

Как отключить выход штатного монитора при инициализации ядра? Проблема в том, что если не запущен Xserver, то изображение на оба монитора дублируется, а разрешение внешнего монитора на порядок выше и системой используется лишь его часть, т.е. картинка выводится на меньшей части экрана, соответствующей разрешению монитора ноутбука.
danil
если не запущен Xserver, то изображение на оба монитора дублируется, а разрешение внешнего монитора на порядок выше и системой используется лишь его часть, т.е. картинка выводится на меньшей части экрана, соответствующей разрешению монитора ноутбука.
А вы используете его без иксов? В противном случае все просто:
$ xrandr --output LVDS --off
с иксами то вопросов не возникает
Aivar
А вы используете его без иксов? В противном случае все просто:
$ xrandr --output LVDS --off
с иксами то вопросов не возникает
Выполняем команду xrandr и смотрим, как у вас обозначаются выходы видео.

Допустим, LVDS1 это встроенный экран, VGA1 это выход VGA (у вас могут быть другие, например, если будет VGA-1, то минус тоже важен).
Тогда добавляем (в настройках загрузчика) в строку параметров ядра
video=LVDS1:d video=VGA1:e
и загружаемся.
Natrio
Выполняем команду xrandr и смотрим, как у вас обозначаются выходы видео.

Допустим, LVDS1 это встроенный экран, VGA1 это выход VGA (у вас могут быть другие, например, если будет VGA-1, то минус тоже важен).
Тогда добавляем (в настройках загрузчика) в строку параметров ядра
video=LVDS1:d video=VGA1:e
и загружаемся.
Стало интересно, захотел попробовать. У меня xrandr показывает VGA-0 и HDMI-0 (реально это монитор и телевизор). Добавил параметры ядра, перезагрузился, поглядывая на оба экрана, - ничего не изменилось, оба задействованы. Сделал :d и :e наоборот - точно так же ничем не отличается от обычной загрузки.
В результате RTFM нарыл следующее:

video

This kernel boot options tells the kernel KMS driver on what resolution and/or frequency to use. For this to work, KMS must not be disabled (see above). The format of the option is as follows:

video=conn:res[M][R][-bpp][@refresh][i][m][eDd]

This option can be specified multiple times, one for each different connection name - so you can have on settings for VGA, one for HDMI, etc.

    conn means the connection name, which depends how your monitor is connected to the system. Listed are some common connection names, their names are self-explanatory:
        VGA (VGA connector)
        DVI-I (DVI connector, supporting both digital and analog - rare)
        DVI-D (DVI connector, digital only)
        DVI-A (DVI connector, analog only - rare)
        composite (composite video)
        s-video (S-video output)
        LVDS (Laptop panel)
        component (component video output)
        displayport (Mac display)
        HDMI-A (the first HDMI port)
        HDMI-B (the second HDMI port)
        TV (TV output)
    res stands for the resolution. It is specified as widthxheight, in pixels (e.g. 800x600).
    M if specified, means that the display timing frequency will be computed using VESA CVT standard, otherwise a hard-coded timing table will be used.
    R if specified, means that a "reduced blanking" display timing frequency will be used. This is useful for digital displays (LVDS, DVI or HDMI). Otherwise standard timing will be used.
    -bpp stands for bit-per-pixel, that is, the bit-depth of the display, that is, the number of colours to be used. If not specified, the driver will choose the highest supported one. Common values are:
        -32 (32-bit per pixel: 16million colours)
        -24 (24-bit per pixel: 16million colours)
        -16 (16-bit per pixel: 64thousand colours) - you're unlike to use this nowadays
        -15 (15-bit per pixel: 32thousand colours) - you're unlike to use this nowadays
        -8 (8-bit per pixel: 256 colours) - you're unlike to use this nowadays
        -4 (4-bit per pixel: 16 colours) - you're unlike to use this nowadays
    @refresh specifies display refresh rate (also known as the vertical frequency refresh rate). Usually @60 or @59 for digital displays, you can specify others for analog / CRT monitors. If not specified the highest supported rate will be used.
    i, if specified, means to use interlaced mode for calculation. Only makes sense for analog / CRT monitors.
    m, if specified, means add some margins to the display timing calcuation (add 1.8% margin).
    m, if specified, means add some margins to the display timing calcuation (add 1.8% margin).
    e, if specified, means to enable the port (even if no device/monitor is detected).
    D, if specified, means to enable the port (even if no device/monitor is detected) and use the Digital interface.
    d, if specified, means to disable the port (even if there is a monitor attached there).

Note: This is a generic parameter used to set framebuffer display resolution. It can also be used for non-KMS drivers too. That is not discussed here because it is irrelevant, for further reference you can refer to Linux Kernel Framebuffer Documentation.
Заменил VGA-0 на VGA и HDMI-0 на HDMI-A - всё равно эффект нулевой.

Оно вообще должно работать? Или это предания седой старины, современным ядром не поддерживаемые?
тоже нулевая реакция. ядро - последнее из репозитория
danil
Возможно ли какими-либо средствами OS получить доступ к настройкам БИОС, дабы основным выходом назначить VGA
Имхо, непосредственно получить доступ к настройкам БИОС из системы не возможно, не считая грубого вмешательства — изменить бинарник/дамп и перепрошить им БИОС.
Но воспользоваться BIOS (точнее его дампом, размещенным в памяти) для изменения некоторых параметров (наверное, точнее будет режимов...) до загрузки ядра возможно, например, тот же режим дисплея/монитора (см. исходники linux/Documentation/svga.txt + linux/arch/x86/boot/video.c).....хотя многое уже и не работает ... тот же параметр vga=ask пишет deprecated..... (сейчас проверил)
Ошибки не исчезают с опытом - они просто умнеют
Нет, akorop, danil, это актуально и работает, просто я за давностью немного забыл особенности реализации, прошу прощения :)
Имена, показываемые xrandr в иксах могут не совпадать с именами выходов драйвера уровня ядра, а в параметре video= нужно указывать именно вторые.

Сейчас специально попробовал на подвернувшемся ноуте.
xrandr показывает встроенный экран как eDP1, а выход как VGA1, но модуль kms/drm ядра именует их иначе (с минусом):
$ ls -1 /sys/class/drm/
card0
card0-DP-1
card0-eDP-1
card0-HDMI-A-1
card0-VGA-1
controlD64
renderD128
Соответственно, в моём случае работают такие параметры:
video=eDP-1:d video=VGA-1:e
Разумеется, без "минуса" в именах и у меня была "нулевая реакция".

Разумеется, всё это справедливо только при загрузке drm/kms-модуля ядра, то есть i915 (для intel), radeon (для amd) или nouveau.
Если у вас фирменный драйвер nvidia, фреймбуфер не сможет использовать drm/kms, и параметр ядра video= не сработает.

У danil ноут Samsung R519 со встроенной графикой intel GMA 4500M, так что всё должно работать, и имена выходов, скорей всего, частично или полностью совпадут с моим случаем.

vasek, "старый" параметр vga= относится к управлению режимом фреймбуфера BIOS до загрузки ядра, и при использовании GRUB2 он действительно "deprecated" (со стороны GRUB2 :), но к "новому" параметру video= это не относится ни в коем разе.
Natrio
Имена, показываемые xrandr в иксах могут не совпадать с именами выходов драйвера уровня ядра, а в параметре video= нужно указывать именно вторые.
Осталось уточить одну "мелочь" - как эти вторые имена узнать. Делюсь тайным знанием: dmesg | grep -E "VGA|HDMI".
Когда я вписал получившиеся имена, то результаты получились странные.
Если я отключал телевизор (HDMI), то на него информация всё равно выводилась (та же, что и на монитор, включая иксовую), но xrandr говорил, что HDMI-0 disconnected. А если я отключал монитор (VGA), но монитор полностью отключался, но на телевизор выводилась какая-то мигающая зелёная фигня.
Natrio
vasek, "старый" параметр vga= относится к управлению режимом фреймбуфера BIOS до загрузки ядра, и при использовании GRUB2 он действительно "deprecated" (со стороны GRUB2 :), но к "новому" параметру video= это не относится ни в коем разе.
Natrio, спасибо за подсказку........ жил по старинке..... о параметре video= даже и не знал (не будешь же шерстить все исходники на то не зная чего....)..... по твоей наводке вышел на modedb …... и, действительно, при загрузке можно переопределить видеовыход .... но, на практике проверить не могу..... технически
Ошибки не исчезают с опытом - они просто умнеют
 
Зарегистрироваться или войдите чтобы оставить сообщение.