- Saved searches
- Use saved searches to filter your results more quickly
- License
- martinezjavier/ldd3
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- About
- Драйверы устройств linux третья редакция
- Драйверы Устройств Linux, Третья Редакция
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Linux Device Drivers 3 examples updated to work in recent kernels
License
martinezjavier/ldd3
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
ldd3: Linux Device Drivers 3 examples updated to work with recent kernels
Linux Device Drivers 3 (http://lwn.net/Kernel/LDD3/) book is now a few years old and most of the example drivers do not compile in recent kernels.
This project aims to keep LDD3 example drivers up-to-date with recent kernels.
The example drivers should compile against latest Linus Torvalds kernel tree:
To compile the drivers against a specific tree (for example Linus tree):
$ git clone git://github.com/martinezjavier/ldd3.git $ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git $ export KERNELDIR=/path/to/linux $ cd ldd3 $ make
Latest Tested Kernel Builds
The kernel builds below are the versions most recently tested/supported
- Ubuntu 18.04 kernel as of July 2020: 5.4.0-42-generic
- Ubuntu 20.04 kernel as of July 2021: 5.4.0-73-generic
- Yocto poky warrior branch kernel for qemu aarch64 builds: 5.0.19
- Yocto poky hardknott branch kernel for qemu aarch64 builds: 5.10.46
- Buildroot 2019.05 kernel for qemu builds: 4.9.16
- Buildroot 2021.02 kernel for qemu builds: 5.10
- Alpine 3.13 kernel as of May 2021: 5.10.29-lts, see here for detail.
———4 Eclipse CDT integration is provided by symlinking the correct linux source directory with the ./linux_source_cdt symlink. The .project and .cproject files were setup using instructions in this link and assuming a symlink is setup in the local project directory to point to relevant kernel headers
This can be done on a system with kernel headers installed using:
ln -s /usr/src/linux-headers-`uname -r`/ linux_source_cdt
About
Linux Device Drivers 3 examples updated to work in recent kernels
Драйверы устройств linux третья редакция
Драйверы устройств Linux, Третья редакция
- Драйверы Устройств Linux, Третья Редакция
- Глава 1, Введение в драйверы устройств
- Роль драйвера устройства
- Строение ядра Linux
- Классы устройств и модулей
- Вопросы безопасности
- Нумерация версий
- Лицензионное соглашение
- Присоединение к сообществу разработчиков ядра Linux
- Обзор книги
- Установка вашей тестовой системы
- Модуль Hello World
- Отличия между модулями ядра и приложениями
- Компиляция и загрузка
- Символьная таблица ядра
- Предварительные замечания
- Инициализация и выключение
- Параметры модуля
- Работа в пространстве пользователя
- Краткая справка
- Дизайн scull
- Старший и младший номера устройств
- Некоторые важные структуры данных
- Регистрация символьных устройств
- open и release
- Использование памяти в scull
- read и write
- Игра с новым устройством
- Краткая справка
- Поддержка отладки в ядре
- Отладка через печать
- Отладка через запросы
- Отладка наблюдением
- Система отладки неисправностей
- Отладчик и соответствующие инструменты
- Ловушки в scull
- Конкуренция и управление ей
- Семафоры и мьютексы
- Завершения
- Спин-блокировки
- Ловушки блокировок
- Альтернативы блокированию
- Краткая справка
- ioctl
- Блокирующий Ввод/Вывод
- poll и select
- Асинхронное сообщение
- Произвольный доступ в устройстве
- Контроль доступа к файлу устройства
- Краткая справка
- Измерение временных промежутков
- Определение текущего времени
- Отложенный запуск
- Таймеры ядра
- Микрозадачи
- Очереди задач
- Краткая справка
- Как работает kmalloc
- Заготовленные кэши (Lookaside Caches)
- get_free_page и друзья
- vmalloc и друзья
- Копии переменных для каждого процессора
- Получение больших буферов
- Краткая справка
- Порты ввода/вывода и память ввода/вывода
- Использование портов ввода/вывода
- Пример порта ввода/вывода
- Использование памяти ввода/вывода
- Краткая справка
- Подготовка параллельного порта
- Установка обработчика прерывания
- Реализация обработчика
- Верхние и нижние половины
- Разделяемые прерывания
- Ввод/вывод, управлемый прерыванием
- Краткая справка
- Использование стандартных типов языка Си
- Определение точного размера элементам данных
- Типы, специфичные для интерфейса
- Другие вопросы переносимости
- Связные списки
- Краткая справка
- Интерфейс PCI
- Взгляд назад: ISA
- PC/104 и PC/104+
- Другие шины ПК
- SBus
- NuBus
- Внешние шины
- Краткая справка
- Основы USB устройства
- USB и Sysfs
- Блоки запроса USB
- Написание USB драйвера
- USB передачи без Urb-ов
- Краткая справка
- Kobject-ы, Kset-ы и Subsystem-ы
- Низкоуровневые операции в sysfs
- Генерация события горячего подключения
- Шины, устройства и драйверы
- Классы
- Собираем всё вместе
- Горячее подключение
- Работа со встроенным программным обеспечением
- Краткая справка
- Управление памятью в Linux
- Операция устройства mmap
- Выполнение прямого ввода/вывода
- Прямой доступ к памяти
- Краткая справка
- Регистрация
- Операции блочного устройства
- Обработка запроса
- Некоторые другие подробности
- Краткая справка
- Каким разработан snull
- Подключение к ядру
- Структура net_device в деталях
- Открытие и закрытие
- Передача пакетов
- Приём пакетов
- Обработчик прерывания
- Уменьшение числа прерываний
- Изменение состояния соединения
- Буферы сокетов
- Разрешение MAC адреса
- Дополнительные команды ioctl
- Статистическая информация
- Многоадресность
- Несколько других подробностей
- Краткая справка
- Небольшой TTY драйвер
- Указатели на функции в tty_driver
- Настройки TTY линии
- ioctl-ы
- Обработка TTY устройствами proc и sysfs
- Структура tty_driver в деталях
- Структура tty_operations в деталях
- Структура tty_struct в деталях
- Краткая справка
Драйверы Устройств Linux, Третья Редакция
Опубликовано O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472.
Книги O’Reilly можно приобрести для образования, бизнеса или продажи в рекламных целях. Для большинства книг также доступны Интернет издания (safari.oreilly.com). Для получения дополнительной информации свяжитесь с нашим корпоративным/институциональным отделом продаж: (800) 998-9938 или corporate@oreilly.com.
Производственный редактор : Matt Hutchinson
Услуги по производству : Octal Publishing, Inc.
Разработка обложки : Edie Freedman
Разработка внутреннего оформления : Melanie Wang
Февраль 1998: Первая редакция.
Июнь 2001: Вторая редакция.
Февраль 2005: Третья редакция.
Nutshell Handbook, логотип Nutshell Handbook и логотип O’Reilly являются зарегистрированными торговыми марками компании O’Reilly Media, Inc. Обозначения серий о Linux, Linux Device Drivers, образы американского запада и соответствующее оформление книги являются товарными знаками компании O’Reilly Media, Inc.
Многие из обозначений, используемых производителями и продавцами для обозначения своих продуктов, заявляются в качестве торговых марок. Если такие обозначения появляются в этой книге и O’Reilly Media, Inc. было известно о торговой марке, такие обозначения напечатаны в верхнем регистре или с заглавной буквы.
Несмотря на все меры предосторожности, которые были приняты при подготовке этой книги, издатель и авторы не несут никакой ответственности за ошибки или упущения, или за ущерб в результате использования информации, содержащейся в настоящем документе.