В очередной раз хочу поднять тему об автоматическом определении интерфейса клавиатуры\мыши. У одного из клиентов есть много терминалов (аппаратных). Периодически на них выходят из строя клавы\мыши. А эти самые клавы\мыши имеют различные интерфейсы - PS\2 и USB. Меняет их зав. хоз. Соответственно, если бы WTware сама умела определять, на какой порт ей повесили HID-устройства, было бы отлично.
Так делает Thinstation, и это ОЧЕНЬ удобно. Во-первых, пользователи сами могут менять клавы\мыши. Во-вторых, нет необходимости на каждый терминал прописывать отдельный конфигурационный файл, в котором будут лишь описание порта устройств ввода. Использовать систему станет значительно проще.
А теперь вопрос - будет ли это реализовано?
Еще раз о клавиатуре\мыши
-
- Разработчик
- Сообщения: 11842
- Зарегистрирован: Ср окт 01, 2003 12:06 am
- Откуда: Роcсия, Тольятти
- Контактная информация:
Чтобы найит USB-мышь надо запустить драйвера USB. Запускать драйвера USB без команды пользователя нарушает политику втвари "делать только то, что указал админ". Хорошая политика, позволяет увереннее запускаться на древнем железе.
Можно ввести такое правило: если памяти 64Мб и более, то считаем, что перед нами "новый" компьютер, у которого хороший порт USB и нет нужды экономить каждый байт памяти. И поэтому автоматом загружаем драйвера USB. Когда USB появится, определить - есть ли у нас USB мышь и клавиши - не должно составить труда.
Такое решение пойдет?
Можно ввести такое правило: если памяти 64Мб и более, то считаем, что перед нами "новый" компьютер, у которого хороший порт USB и нет нужды экономить каждый байт памяти. И поэтому автоматом загружаем драйвера USB. Когда USB появится, определить - есть ли у нас USB мышь и клавиши - не должно составить труда.
Такое решение пойдет?
Последний раз редактировалось aka Ср дек 27, 2006 2:58 am, всего редактировалось 1 раз.
-
- Разработчик
- Сообщения: 11842
- Зарегистрирован: Ср окт 01, 2003 12:06 am
- Откуда: Роcсия, Тольятти
- Контактная информация:
Heathen, гениальная мысль!
Автоматически найти ps/2 или com мышь, а также определить наличие колеса в общем случае невозможно. Виндовсу обычно удается, но виндовс сколько людей пишут... Окончательное определение может происходить даже после первого движения мыши... Втварь с ее зоопарком графических библиотек (каждая из которых имеет свой мышиный обработчик) такого себе позволить никак не может
А вот определить наличие USB мыши и USB клавиш очень просто, если решиться запустить драйвера USB порта.
В общем, в свете этой мысли в следующей бете будут изменения:
* на машинах с памятью >= 64Мб драйвер порта USB запускается сам.
* если найдена USB мышь - ее и используем, параметр в конфиге не читаем.
* если найдена USB клавиатура - ее и используем.
* Параметр mouse_wheel по дефолту имеет значение on. Давно пора.
Для администратора это будет означать, что:
* если у терминала >= 64 метра памяти и usb мышь с колесом, то ее само найдет.
* если у терминала >= 64 метра памяти и usb клавиатура, то ее само найдет.
* если у терминала ps/2 мышь с колесом, то ее само найдет.
А вот отклонения от этих вариантов (com-мыши, ps/2 и usb без колеса, usb на терминалах с <64Мб памяти) придется настраивать руками.
Ок?
Автоматически найти ps/2 или com мышь, а также определить наличие колеса в общем случае невозможно. Виндовсу обычно удается, но виндовс сколько людей пишут... Окончательное определение может происходить даже после первого движения мыши... Втварь с ее зоопарком графических библиотек (каждая из которых имеет свой мышиный обработчик) такого себе позволить никак не может
А вот определить наличие USB мыши и USB клавиш очень просто, если решиться запустить драйвера USB порта.
В общем, в свете этой мысли в следующей бете будут изменения:
* на машинах с памятью >= 64Мб драйвер порта USB запускается сам.
* если найдена USB мышь - ее и используем, параметр в конфиге не читаем.
* если найдена USB клавиатура - ее и используем.
* Параметр mouse_wheel по дефолту имеет значение on. Давно пора.
Для администратора это будет означать, что:
* если у терминала >= 64 метра памяти и usb мышь с колесом, то ее само найдет.
* если у терминала >= 64 метра памяти и usb клавиатура, то ее само найдет.
* если у терминала ps/2 мышь с колесом, то ее само найдет.
А вот отклонения от этих вариантов (com-мыши, ps/2 и usb без колеса, usb на терминалах с <64Мб памяти) придется настраивать руками.
Ок?
-
- Сообщения: 56
- Зарегистрирован: Чт июн 16, 2005 9:11 am
- Откуда: Екатеринбург
- Контактная информация:
Да, алгоритм вполне рабочий! Правда, плюс к этому я бы добавил опцию, которая позволяет включать\отключать автоматическое определение интерфейса HID-устройства, что-то типа hid_auto_detect = on|off. Тогда эту опцию можно будет: а) описать в глобальном файле all.wtc, б) описать её в собственном конфигурационном файле терминала. Тогда если на отдельных железках описанный алгоритм даст сбой, админ всегда сможет для определенных устройств его отключить.
-
- Разработчик
- Сообщения: 11842
- Зарегистрирован: Ср окт 01, 2003 12:06 am
- Откуда: Роcсия, Тольятти
- Контактная информация:
Ждем железки, на которых оно даст сбой.
Тут такое дело - драйвер клавиш надо поднимать до того, как мы прочитаем конфиг. Хотя бы для того, чтобы сработало "Press Del to enter Setup". И костыль, отключающий автоматическое определение, надо проводить через командную строку ядра. Это просто делать, но очень долго объяснять.
Тут такое дело - драйвер клавиш надо поднимать до того, как мы прочитаем конфиг. Хотя бы для того, чтобы сработало "Press Del to enter Setup". И костыль, отключающий автоматическое определение, надо проводить через командную строку ядра. Это просто делать, но очень долго объяснять.
-
- Сообщения: 56
- Зарегистрирован: Чт июн 16, 2005 9:11 am
- Откуда: Екатеринбург
- Контактная информация:
Тогда как быть с USB-клавиатурой и нажатием клавиши Del во время загрузки?aka писал(а): Тут такое дело - драйвер клавиш надо поднимать до того, как мы прочитаем конфиг. Хотя бы для того, чтобы сработало "Press Del to enter Setup".
Создать раздел в документации - "Описание параметров загрузчика", и поместить эти параметры в pxelinux.cfg (и в другие соответствующие загрузчику конфиги).aka писал(а): И костыль, отключающий автоматическое определение, надо проводить через командную строку ядра. Это просто делать, но очень долго объяснять.