LINUX.ORG.RU

Как добавить задержку ввода клавиатуры в initramfs?

 , , ,


1

1

Я понятие не имею каким образом мне подступиться к этому вопросу. Где вообще найти хоть какие-то настройки этой стадии загрузки ОС? Это главная проблема, но есть и другие: не видно звёздочки при вводе пароля для расшифровки корневой системы; если после 3-х неудачных попыток ввода пороля я расшифровываю директорию в rescueshell, то при вводе пути к корневой фс initramfs не подхватывает её(раньше подхватывал). Каюсь, я не знаю, что можно приложить к топику, так что если не хватает информации - сообщайте, приложу. gentoo-ядро 4.19.86, genkernel 4.0.1(с помощью него генерировал initramfs)


Есть две ипостаси initramfs: которая генерится какой-то тулой, и собранная вручную. Если сгенерированная тулой тебя чем-то не устраивает, имеет смысл делать свой кастомный initrd. И тогда ты можешь включить в образ kbdrate и управлять задержкой ввода. Да и вообще что хочешь можешь делать.

Вот хороший гайд: https://wiki.gentoo.org/wiki/Custom_Initramfs

По опыту скажу, что там ничего сложного. Но придется немного потратить времени на эксперименты.

Kroz ★★★★★ ()
Ответ на: комментарий от Kroz

Ох чёрт, я надеялся, что есть какой-то простой путь. Спасибо за ответ, пойду разбираться

towe ()
Ответ на: комментарий от towe

Что такое keyboard delay?

И что такое «задержка ввода клавиатуры»?

Вообще, то что ты написал - это задержка между нажатием на клавишу и отображением введённого символа на экране.

А ты, видимо, хочешь, что бы у тебя запрашивался ввод пароля для расшифровки тома позднее. Что бы прошло время инициализации устройства.

Так что ты хочешь? Если именно задержку реакции на нажатие клавиши на клавиатуре до её обработки, то зачем?

Если что-то другое, то пиши что именно.

anonymous ()
Ответ на: комментарий от eternal_sorrow

Я хочу увеличить время, после которого нажатая клавиша будет прописываться несколько раз. Это как назвать, если по нормальному? Я использовал английский потому, что видел на форумах примерно такую формулировку, так-то тема всё та же

towe ()
Последнее исправление: towe (всего исправлений: 1)
Ответ на: комментарий от anonymous

ох нет, я пока не хочу настолько во всё это влезать.

towe ()
Ответ на: комментарий от towe

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

Кто у тебя там печатает на клавиатуре, бабушка что-ли или человек с физическими ограничениями (ивалид)?

Любой физически здоровый человек может нормально набирать текст на клавиатуре.

Поставь человеку клавиатурный тренажёр, пусть учится печатать.

anonymous ()
Ответ на: комментарий от anonymous

По дефолту в initramfs слишком быстро наступает время, когда символ печатается повторно. Проблема у меня лично. Печатаю я нормально. По крайней мере, в хсах дефолтная задержка меня полностью устраивает. У меня была ситуация, когда я вводил пароль 14 раз и всё из-за дурацкой задержки(пароль я помню прекрасно)

towe ()
Последнее исправление: towe (всего исправлений: 2)
Ответ на: комментарий от towe

в чём проблема подключить внешнюю клавиатуру к ноутбуку для проверки? в иксах могут быть различные средства accessibility, которые исправляют эту проблему

eternal_sorrow ★★★★★ ()
Ответ на: комментарий от eternal_sorrow

Все необходимые для загузки системы модули можно вкомпилить в ядро.

Извини, это не ядро будет, а хрень полная.

Rx0 ()
Ответ на: комментарий от eternal_sorrow

Потому, что @Rx0 не понимает, что в Gentoo можно собрать ядро только с нужными системе драйверами, а не собирать все драйверы.

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

anonymous ()
Ответ на: комментарий от anonymous

можно собрать ядро только с нужными системе драйверами, а не собирать все драйверы.

Батенька, вы путаете ядро и компиляцию кастрата ядра для одного конкретного устройства. Подумайте на досуге.

Rx0 ()
Ответ на: комментарий от Rx0

А ты часто переставляешь свой SSD/HDD диск установленный внутри корпуса ПК / ноутбука в другую систему?

Большинство ATA контроллеров работают в режиме ahci, а не в режиме IDE (Compatible) - следовательно для доступа к жёстким дискам нужен только драйвер ahci в ядре и далее для монтирования корня драйвер корневой файловой системы.

Остальное может быть собрано модельно. В этому случае ядро остаётся небольшим и сохраняется возможность работы прочего оборудования.

Прослойка в виде Initramfs не нужна.

anonymous ()
Ответ на: комментарий от eternal_sorrow

Так а смысл? Даже если это так, то в ремонт я нести ноут не буду. По итогу все равно буду решать задержкой

towe ()
Ответ на: комментарий от anonymous

А ты часто переставляешь свой SSD/HDD диск установленный внутри корпуса ПК / ноутбука в другую систему?

Никогда, только при установке/замене.

Остальное может быть собрано модельно.

Все правильно, модульно.

Я ответил на это:

Все необходимые для загузки системы модули можно вкомпилить в ядро.

При таком подходе - ядро хрень.

Rx0 ()
Ответ на: комментарий от Rx0

При таком подходе - ядро хрень.

Это у тебя в голове вот именно это.

Повторяю ещё раз, для монтирования корня, что бы избавиться от initramfs в ядро нужно добавить всего два драйвера:

  • драйвер ATA (nvme) контроллера ;
  • драйвер корневой файловой системы;

Всё, после этого initramfs не нужен. А для указания корневого раздела не по абсолютным именам можно использовать PARTUUID раздела.

Это необходимость мини операционной системы, т.е Initramfs, которая запускается перед монтированием корня непонятная вещь.

anonymous ()
Ответ на: комментарий от anonymous

Так у меня зашифрован root, того что ты назвал явно недостаточно, нет? Если бы не было, то похоже, что действительно не нужна, init всё сделает сам

towe ()
Последнее исправление: towe (всего исправлений: 1)
Ответ на: комментарий от anonymous

Это у тебя в голове вот именно это.

Я тебе про попа, а ты мне по федота… ))) Смешной анон. )

Я хоть что-то сказал про initramfs?

Rx0 ()
Ответ на: комментарий от Rx0

А тебе именно про избавление от initramfs, что он в случае когда нужно просто смонтировать сразу файловую систему с раздела, без raid, lvm, шифрования, aufs / overlayfs / unionfs достаточно собрать ядро с монолитным драйвером ATA (nvme) контроллера и файловой системы.

Собирать ядро со всем драйверами монолитно не надо, тем более вредно.

Но это не случай автора темы.

anonymous ()
Ответ на: комментарий от Rx0

А я тебе это сразу и сказал:

Потому, что @Rx0 не понимает, что в Gentoo можно собрать ядро только с нужными системе драйверами, а не собирать все драйверы.

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

Как добавить задержку ввода клавиатуры в initramfs? (комментарий)

Молодец, что наконец согласился.

anonymous ()
Ответ на: комментарий от anonymous

Молодец, что наконец согласился.

Не совсем. )

оставить только нужные для работы устройств конкретного компьютера драйверы

Вот это уже не ядро. Это кастрат для определенного устройства.

Rx0 ()
Ответ на: комментарий от Rx0

Все необходимые для загрузки системы модули можно вкомпилить в ядро.

Ключевые слова выделил. Очевидно, что все остальные модули вкомпиливать не нужно. Только то, что абсолютно необходимо для загрузки.

Хотя у меня например, дрйавер видеокарты тоже вкомпилен для early KMS.

eternal_sorrow ★★★★★ ()
Последнее исправление: eternal_sorrow (всего исправлений: 1)
Ответ на: комментарий от Rx0

Вот это уже не ядро. Это кастрат для определенного устройства.

Это ядро для определённого устройства. В чём проблема? Если его предполагается использовать на одном устройстве, то логично включить только то, что на этом устройстве есть, чтобы сократить время компиляции.

eternal_sorrow ★★★★★ ()
Ответ на: комментарий от eternal_sorrow

Это ядро для определённого устройства. В чём проблема?

Теоритически проблем нет. Практически такой подход я использую для сборки ядер в прошивках Android. Прошивка для конкретной модели в которой за время ее жизни не изменится ни один компонент.

Если его предполагается использовать на одном устройстве

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

И тут ты получаешь призовую игру в виде сборки еще нескольких ядер для них и тратишь уйму времени. Экономия на времени сборки минимальная, а общие временные затраты на сборку и конфигурирование нескольких ядер максимальные. Где логика, Карл? )))

чтобы сократить время компиляции.

На сколько на 5 мин? Сильно спешишь? На поезд опаздываешь? ) Так ты уже опоздал так как еще остальные ядра не собрались… )

Да, есть частные случаи когда такое конфигурирование оправдано. Но на сегодняшний день при таких вычислительных мощностях говорить о какой-то экономии времени компиляции просто смешно.

ЗЫ:

Я первое ядро собрал еще для RedHat 2.0 и FreeBSD 2.2. Поверь, количество собранных мной ядер работающих в продакшн и на рабочих станциях просто неприлично. )

Есть универсальные конфигурации которые тестировались годами. Тратить время и силы на зоопарк конфигураций ядра и отслеживать в них изменения при сборке новых версий ядра это не просто неэффективно, а IMHO глупо.

Частный случай определенного васяна с домашним компом не рассматриваю в данном контексте.

Rx0 ()
Ответ на: комментарий от Rx0

Частный случай определенного васяна с домашним компом не рассматриваю в данном контексте.

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

eternal_sorrow ★★★★★ ()
Ответ на: комментарий от eternal_sorrow

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

Слушай, о чем спор? Хочешь свое ядро под свою железку с кастрацией и плюшками? Тебе кто-то запрещает? Собирай хоть левой ногой, всем пофиг. А все что я написал это не только для тебя, не обольщайся. )

Rx0 ()
Ответ на: комментарий от eternal_sorrow

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

Никогда не использую готовые ядра из дистрибутивов.

У меня свое дерево основанное на текущем mainline + собственные наработки + наработки других разработчиков которые еще не вошли в ядро или вообще могут никогда не войти.

Твой тонкий подкол оценил. )

Rx0 ()
Ответ на: комментарий от eternal_sorrow

для таких целей, которые ты озвучил, я бы использовал их

Этот. ) Все, завязываем флудить не по теме.

Rx0 ()
Ответ на: комментарий от Rx0

да ладно, тема давно заглохла. если ТС модерам не нажалуется, то всем пофиг.

я не понял, что за подкол, честно. даже не пытался поколоть

eternal_sorrow ★★★★★ ()
Ответ на: комментарий от eternal_sorrow

я не понял, что за подкол, честно. даже не пытался поколоть

Значит я прочитал между строк. ) Как то так: «C твоим подходом бери готовые ядра…»

В любом случае улыбнуло. )

Rx0 ()
Ответ на: комментарий от towe

За исключением того что ручками только прописать hook, и kbdrate с нужными настройками автоматом будет в initramfs при его сборке( обновление ,установка ядра и пр.)

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.