Хобрук: Ваш путь к мастерству в программировании

Как отключить виртуальный терминал в Yocto Linux

Кто-нибудь знает, как отключить виртуальные терминалы в Linux? Я использую версию Yocto, Morty на процессоре i.MX6. Несмотря на то, что нашим базовым дистрибутивом является Yocto, к сожалению, мы отошли от создания его с помощью рецептов, так что это скорее прямой вопрос Linux, чем Yocto ...

Чтобы подробно рассказать о моей проблеме: это для встроенного устройства с портом HDMI - когда я подключаю терминал к порту HDMI, он показывает логотип Linux Penguin, службу getty и гаснет через 600 секунд. Я просто хочу использовать порт hdmi в качестве выхода, при этом на выходе ничего не отображается, и я хочу, чтобы он оставался включенным все время.

Я обнаружил, что порт hdmi отображается на / dev / tty1 - когда я набираю: echo «asdfasdf»> / dev / tty1, я вижу вывод символов на монитор.

Вот несколько вещей, которые я попытался безрезультатно - многие из них не нужны, если я смогу выяснить, как отключить его как виртуальный терминал ...

• Я понял, как отключить службу getty, но курсор все еще мигает. Я даже не хочу, чтобы курсор отображался

• Я попытался отключить отображение пингвинов, отключив LOGO в параметрах конфигурации ядра - я все комментировал с помощью LOGO out:

CONFIG_LOGO=y
CONFIG_LOGO_LINUX_MONO=y
CONFIG_LOGO_LINUX_VGA16=y
CONFIG_LOGO_LINUX_CLUT224=y

Но безрезультатно. На логотипе по-прежнему отображается: .

• Тот факт, что он пропускает через 600 секунд, является гашением консоли - я вижу, что он установлен на 600 в файле: / sys / module / kernel / parameters / consoleblank. Когда я запускаю команду: echo -e '\ 033 [9; 0]'> / dev / tty1, она устанавливает гашение консоли на 0 и выводит терминал из спящего режима. Возможность разбудить консоль - это ограниченный успех, но я бы хотел полностью отключить виртуальный терминал ...

• Я попытался закомментировать любые определения виртуального терминала в файле конфигурации, но безрезультатно:

CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_VT_CONSOLE_SLEEP=y
CONFIG_HW_CONSOLE=y
CONFIG_VT_HW_CONSOLE_BINDING=y

Все, что я прочитал, предполагает, что / dev / tty1 - это виртуальный терминал или консоль. Из того, что я читал о параметре VT, отключение CONFIG_VT должно сделать это:

VT - виртуальный терминал. Скажите «да», чтобы получить поддержку терминальных устройств с дисплеем и клавиатурой. Они называются «виртуальными», потому что вы можете запускать несколько виртуальных терминалов (также называемых виртуальными консолями) на одном физическом терминале. Вам понадобится хотя бы одно виртуальное оконечное устройство, чтобы использовать клавиатуру и монитор. Следовательно, только люди, настраивающие встроенную систему, захотят сказать «нет» здесь, чтобы сэкономить память; единственный способ войти в такую ​​систему - через последовательное или сетевое соединение. Виртуальные терминалы полезны, потому что, например, один виртуальный терминал может отображать системные сообщения и предупреждения, другой может использоваться для сеанса пользователя в текстовом режиме, а третий может запускать сеанс X, причем все это параллельно. Переключение между виртуальными терминалами осуществляется с помощью определенных комбинаций клавиш, обычно функциональной клавиши Alt. Если вы не уверены, скажите «да», иначе вы не сможете многое сделать с вашей системой Linux.

Но почему-то ничего не делает!

• Я нашел эту ветку; https://askubuntu.com/questions/357039/how-do-i-disable-virtual-consoles-tty1-6 среди прочего, но ничего не помогает, так как в моем дистрибутиве нет каталогов в решениях, предлагаемых в этом потоке или любых других, которые я нашел. Например, у меня нет /etc/events.d, и у меня нет файла / etc / default / console-setup, и у меня нет каталога / etc / init… Я полагаю, причина этого в том, что мой дистрибутив использует systemd и решения могут быть основаны на SysV init?

Не было бы необходимости отключать логотип или гашение консоли, если бы я мог просто выяснить, как отключить этот порт в качестве терминала ...

Так есть ли у кого-нибудь указатели или что-то, что я мог бы попробовать? Я относительно новичок (вернулся через 10 лет - я работал с DNX 10 лет назад v2.6, и кажется, что все, что я знал об init, довольно устарело, смеется) в linux, поэтому я уверен, что многого не хватает ...

Спасибо, - Чак


Ответы:


1

Думаю, я нашел ответ на свой вопрос. На самом деле это консоль кадрового буфера, описанная здесь: Documentation / fb / fbcon.txt. Из документации:

Консоль фреймбуфера (fbcon), как следует из ее названия, представляет собой текстовую консоль, работающую поверх устройства фреймбуфера. Он имеет функциональность любого стандартного драйвера текстовой консоли, такого как консоль VGA, с добавленными функциями, которые можно отнести к графической природе буфера кадра.

Комментируя строку

CONFIG_FRAMEBUFFER_CONSOLE = y

В файле конфигурации, расположенном в / arch / arm / configs, отключите его.

Также в этой части документации показано, как отключить его во время выполнения:

Итак, как нам отвязать fbcon от консоли? Часть ответа находится в Documentation / console / console.txt. Обобщить:

Выведите значение в файл привязки, который представляет драйвер консоли фреймбуфера. Итак, предполагая, что vtcon1 представляет fbcon, тогда:

echo 1> sys / class / vtconsole / vtcon1 / bind - прикрепить консоль фреймбуфера к консольному уровню echo 0> sys / class / vtconsole / vtcon1 / bind - отсоединить консоль фреймбуфера от уровня консоли

Когда я запускаю команду echo 0, курсор перестает мигать и снова начинает мигать, когда я запускаю команду echo 1.

Я думаю, что есть еще один способ сделать это, изменив среду сборки Yocto, поместив USE_VT = "0" в конфигурационный файл машины OpenEmbedded. На переменную «USE_VT» ссылается рецепт sysvinit-inittab. Этот ответ был дан мне из списка рассылки Yocto Linux, но я не тестировал его, так как мы отошли от Yocto ...

16.12.2017
Новые материалы

Учебные заметки JavaScript Object Oriented Labs
Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..

Разбор строк запроса в vue.js
Иногда вам нужно получить данные из строк запроса, в этой статье показано, как это сделать. В жизни каждого дизайнера/разработчика наступает момент, когда им необходимо беспрепятственно..

Предсказание моей следующей любимой книги 📚 Благодаря данным Goodreads и машинному обучению 👨‍💻
«Если вы не любите читать, значит, вы не нашли нужную книгу». - J.K. Роулинг Эта статья сильно отличается от тех, к которым вы, возможно, привыкли . Мне очень понравилось поработать над..

Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

Как настроить Selenium в проекте Angular
Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

Аргументы прогрессивного улучшения почти всегда упускают суть
В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

Введение в Джанго Фреймворк
Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..