|
Модераторы: xvr |
|
konshyn |
|
|||
Опытный Профиль Группа: Участник Сообщений: 295 Регистрация: 19.9.2013 Репутация: нет Всего: нет |
Разбираюсь с системным таймером. Есть такое определение
Но когда я его вывожу, то выводится значение 250 ну и переменная jiffies увеличивается на 250. Перерыл весь каталог "../include/linux/*" grep'ом - ничего похожего на HZ = 250 не нашел, только определение в 1000. Как так выходит? И откуда берется тогда эта переменная? -------------------- «Потому что ценность акта действия в этой стране возрастает в несколько раз». |
|||
|
||||
konshyn |
|
|||
Опытный Профиль Группа: Участник Сообщений: 295 Регистрация: 19.9.2013 Репутация: нет Всего: нет |
Не могу понять, как сделать cross компиляцию. У меня есть Makefile
как сделать так, чтобы при опции CROSS_COMPILE (make CROSS_COMPILE=/path_to_cimpiler) у меня компилировалось под версию компилятора? Это сообщение отредактировал(а) konshyn - 2.2.2015, 00:16 -------------------- «Потому что ценность акта действия в этой стране возрастает в несколько раз». |
|||
|
||||
tzirechnoy |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: 3 Всего: 16 |
Чаще всего HZ берётся из CONFIG_HZ. Как Вы не нашли пяток взаимоисключающих определений -- не понимаю. rgrep 'define.*HZ' выводит достаточно интересного.
Но, по факту, во времена HPET само наличие HZ -- очень системнозависимая штука. Добавлено через 5 минут и 20 секунд 1) Кроме CROSS_COMPILE -- надо задавать ещё и ARCH 2) CROSS_COMPILE -- это не совсем /path/to/compiler. Это префикс. То есть под путём обычно понимается полный путь, включая имя бинарника CROSS_COMPILE -- это не полный путь к gcc, это путь к gcc без слова gcc. Ну и, там должэн лежать не только компилер... Ну, как минимум, gcc и binutils. А, вот, нашёл в Makefile: as, ld, gcc, ar, nm, strip, objcopy, objdump. Кстати, ничего сложного нет в том, чтобы открыть Makefile и посмотреть. |
|||
|
||||
tzirechnoy |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: 3 Всего: 16 |
А, ещё забыл совсем: если вопрос в передаче CROSS_COMPILE и ARCH в make -- то у make есть команда export.
|
|||
|
||||
konshyn |
|
||||||
Опытный Профиль Группа: Участник Сообщений: 295 Регистрация: 19.9.2013 Репутация: нет Всего: нет |
Не там искал немного. Вы правы, есть #define CONFIG_HZ 250, но так и не нашел, где происходит переопределение самой HZ, только код
С таймерами более-менее понятно. Особенно что будет, если выгрузить модуль и запущенный таймер с его обработчиком не остановить :( Да, пока разбирался, понял Но я компилирую модуль не вручную, а через систему kbuild.
только какой Makefile? -------------------- «Потому что ценность акта действия в этой стране возрастает в несколько раз». |
||||||
|
|||||||
tzirechnoy |
|
||||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: 3 Всего: 16 |
Введите rgrep 'define *HZ' в исходниках ядра -- одна из строчек будет ответом. Но да, оно ещё и системно-зависимое.
Ядра линукса. PS И нет, я не знаю, как передать архитектуру через kbuild. |
||||
|
|||||
konshyn |
|
|||
Опытный Профиль Группа: Участник Сообщений: 295 Регистрация: 19.9.2013 Репутация: нет Всего: нет |
Я не уверен, но все работает, если я просто в Makefile пишу так $(MAKE) Что значит системно-зависимое? Насколько я почитал а Роберта Лава, то HZ определен везде, только на разных архитектурах по-разному, в зависимости от возможностей. И где-то есть дополнительные методы для лучшей точности таймера, счетчик тиков, например. И если посмотреть на определения функций различных таймеров, то все они требуют аргументы именно тиков - значение в будущем, при котором должен сработать таймер. Т.е. в принципе неважно, как работает таймер, т.к. высокоуровневые функции все делают за нас. -------------------- «Потому что ценность акта действия в этой стране возрастает в несколько раз». |
|||
|
||||
tzirechnoy |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: 3 Всего: 16 |
С тех пор времена изменились, и появилась опцыя CONFIG_NO_HZ. |
|||
|
||||
konshyn |
|
|||
Опытный Профиль Группа: Участник Сообщений: 295 Регистрация: 19.9.2013 Репутация: нет Всего: нет |
Пытаюсь поймать usb-клавиатуру от Logitech. (Id продукта {0xc31d})
вот код
И этот драйвер почему-то не выводит ID_VENDOR и ID_PRODUCT. Значит он не может поймать устройство. Хотя в логах основной драйвер пишет, что клавиатура подключена и id vender и id product совпадают с теми, что я написал. Напрашивается вопрос: че делать? -------------------- «Потому что ценность акта действия в этой стране возрастает в несколько раз». |
|||
|
||||
konshyn |
|
|||
Опытный Профиль Группа: Участник Сообщений: 295 Регистрация: 19.9.2013 Репутация: нет Всего: нет |
Как определить, какой драйвер управляет клавиатурой?
-------------------- «Потому что ценность акта действия в этой стране возрастает в несколько раз». |
|||
|
||||
Olej |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 30.11.2016 Репутация: нет Всего: нет |
Практикум по Linux Kernel |
|||
|
||||
Правила форума "С/С++: Программирование под Unix/Linux" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |