Добрый день!
Собираю специализированный дистрибутив. Встала такая задача. Во время загрузке необходимо чтобы при нажатии определенной клавиши на клавиатуре (например Del) загрузка прерывалась и запускалась определенная программа (в моем случае настройка параметров и дальнейшая загрузка).
В древнем Red Hat такое было точно и после запуска init была надпись, что то типа «Press I for interactive load». Как можно такое реализовать или делают обычно?
> Добрый день!
> Собираю специализированный дистрибутив. Встала такая задача. Во время загрузке необходимо
> чтобы при нажатии определенной клавиши на клавиатуре (например Del) загрузка прерывалась
> и запускалась определенная программа (в моем случае настройка параметров и дальнейшая
> загрузка).
> В древнем Red Hat такое было точно и после запуска init была
> надпись, что то типа «Press I for interactive load». Как можно
> такое реализовать или делают обычно?Скорее всего в sysv надо смотреть /etc/inittab. Во всяком случае ctrl alt del обрабатываются там.
> Скорее всего в sysv надо смотреть /etc/inittab. Во всяком случае ctrl alt
> del обрабатываются там.Первая мысль и мне тоже пришла туда посмотреть, но насмотрел только это
kb::kbrequest:/usr/bin/wall "Keyboard Request -- edit /etc/inittab to customize"
причем заработать так и не заставил.
Непонятно как кастомизировать сочетание клавиш, а дефолтное alt+up_arrow не заработало в слаке.Хотелось бы какого то более элегантного решения не привязанного к init.
Может какая программа есть которая бы ловила сочетание клавишь какое то время?
>> Скорее всего в sysv надо смотреть /etc/inittab. Во всяком случае ctrl alt
>> del обрабатываются там.
> Первая мысль и мне тоже пришла туда посмотреть, но насмотрел только это
> kb::kbrequest:/usr/bin/wall "Keyboard Request -- edit /etc/inittab to customize"
> причем заработать так и не заставил.
> Непонятно как кастомизировать сочетание клавиш, а дефолтное alt+up_arrow не заработало
> в слаке.
> Хотелось бы какого то более элегантного решения не привязанного к init.
> Может какая программа есть которая бы ловила сочетание клавишь какое то время?Для systemd - пишете прогу-хватальщик (вплоть да bash скрипта) и формируете соотв. unit. собственно в теории и все....
> Для systemd - пишете прогу-хватальщик (вплоть да bash скрипта) и формируете соотв.
> unit. собственно в теории и все....Так и знал что к systemd все сведется, но не желательно его использовать, так как дистрибутив должен быть маленький и init уже вшит в busybox, а системд отдельный пакет, да и что греха таить о системд я имею смутные представления, так как я динозавр.
Гугление свелось к тому что либо системд либо модуль!!!! ядра... мда...
Простого решения не оказалось...
>> Для systemd - пишете прогу-хватальщик (вплоть да bash скрипта) и формируете соотв.
>> unit. собственно в теории и все....
> Так и знал что к systemd все сведется, но не желательно его
> использовать, так как дистрибутив должен быть маленький и init уже вшит
> в busybox, а системд отдельный пакет, да и что греха таить
> о системд я имею смутные представления, так как я динозавр.
> Гугление свелось к тому что либо системд либо модуль!!!! ядра... мда...
> Простого решения не оказалось...А заставить init выполнять ваш скрипт инициализации первым????
Инит - он же типа выполняет по порядку набор скриптов, причем ПОСЛЕДОВАТЕЛЬНО... Вроде как...
> А заставить init выполнять ваш скрипт инициализации первым????
> Инит - он же типа выполняет по порядку набор скриптов, причем ПОСЛЕДОВАТЕЛЬНО...
> Вроде как...А что это даст? Я запихнуть его могу куда угодно, но проблема в том что он должен не постоянно вызываться, а только в случаях когда оператор нажал определенную комбинацию клавиш. Вариант с паузой плохой сами понимаете.
Если коротко для чего это нужно. Есть дистрибутив на основе thinstation. Я сейчас делаю готовый продукт для терминальных систем, чтобы обычный продвинутый пользователь мог менять настройки терминала не лазия в конфигурационные файлы. То есть смысл такой, если при загрузке системы нажимаем определенные клавиши, то запускается мастер с параметрами терминала, подключения и тд.
> Если коротко для чего это нужно. Есть дистрибутив на основе thinstation. Я
> сейчас делаю готовый продукт для терминальных систем, чтобы обычный продвинутый пользователь
> мог менять настройки терминала не лазия в конфигурационные файлы.А ещё можно в тетрис поиграть, пока оно грузится!
Plymouth.SetKeyboardInputFunction() ? http://www.freedesktop.org/wiki/Software/Plymouth/Scripts/#p...
Нет, дальше не знаю.
>> Скорее всего в sysv надо смотреть /etc/inittab. Во всяком случае ctrl alt
>> del обрабатываются там.
> Первая мысль и мне тоже пришла туда посмотреть, но насмотрел только это
> kb::kbrequest:/usr/bin/wall "Keyboard Request -- edit /etc/inittab to customize"
> причем заработать так и не заставил.
> Непонятно как кастомизировать сочетание клавиш, а дефолтное alt+up_arrow не заработало
> в слаке.
> Хотелось бы какого то более элегантного решения не привязанного к init.
> Может какая программа есть которая бы ловила сочетание клавишь какое то время?Это именно то что Вам надо и именно должно быть в init
Добавьте строку
kb:2345:kbrequest:/путь_к_вашему_сценарию_загрузки
И привяжите нажатие клавиш к KeyboardSignal в настройке kbd
(Это как я не подскажу, погуглите)