- Сборка модулей ядра
- Сборка модуля ядра отдельно от дерева исходного ядра
- Сборка модуля ядра с помощью dkms
- Не найдена команда make в Linux
- Проверьте, что команда make установлена и путь к ней есть в PATH
- Как установить команду make в различных ОС?
- В Смоленск 1.5 SE отсутствует утилита (пакет) make
- Смоленск 1.6, отсутствует команда make
- Olej
Сборка модулей ядра
Сборка модуля ядра отдельно от дерева исходного ядра
1. Установить пакет с заголовочными файлами (linux-headers-. )
2. Создать рабочий каталог
3. Скопировать в него исходные коды модуля
4. Перейти в рабочий каталог
5. Создать Makefile вида:
obj-m = .o KVERSION = $(shell uname -r) all: make -C /lib/modules/$(KVERSION)/build M=$(PWD) modules clean: make -C /lib/modules/$(KVERSION)/build M=$(PWD) clean
6. Выполнить команду make
7. Полученный файл .ko скопировать в /lib/modules//
8. Выполнить команду sudo depmod -a
Сборка модуля ядра с помощью dkms
1. Установить пакет dkms и пакет c заголовочными файлами ядра (linux-headers-. )
2. Создать рабочий каталог по пути /usr/src/-
3. Скопировать исходные коды в рабочий каталог
4. Создать в рабочем каталоге конфигурационный файл dkms.conf вида:
5. Создать в рабочем каталоге Makefile вида:
obj-m = .o KVERSION = $(shell uname -r) all: make -C /lib/modules/$(KVERSION)/build M=$(PWD) modules clean: make -C /lib/modules/$(KVERSION)/build M=$(PWD) clean
6. Добавить исходный код данного модуля в дерево DKMS:
7. Собрать драйвер командой:
8. Проинсталлировать драйвер командой:
9. При обновлении ядра и заголовочных файлов данный модуль будет автоматически пересобран.
Не найдена команда make в Linux
Утилита make в Linux используется для сборки и компиляции программ из исходных файлов. Инструкции о компиляции утилита берет из файла makefile. В некоторых дистрибутивах Linux утилита make не установлена по умолчанию (например, в Linux CentOS 8), поэтому при запуске команды сборки, вы увидеть ошибку:
bash: make: command not found
bash: /usr/bin/make: No such file or directory
В консоли Ubuntu появляется уведомление:
The program 'make' is currently not installed. You can install it by typing: sudo apt install make
Проверьте, что команда make установлена и путь к ней есть в PATH
В первую очередь проверьте, что команда make установлена в вашем дистрибутиве Linux и путь к ее директории указан в переменной окружения PATH.В большинстве случае файл make должен находится в директории /usr/bin или /usr/local/bin. Проверьте, есть ли исполняемый бинарный файл make в этих каталогах:
Если вы нашли исполняемый файл make в этой директории, проверьте что вы можете запустить его с абсолютным путем:
GNU Make 3.82 Built for x86_64-redhat-linux-gnu Copyright (C) 2010 Free Software Foundation, Inc.
Затем проверьте, что путь к директории с файлом make указан в переменной окружения PATH:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
В нашем примере путь /usr/bin содержится в переменной окружения PATH. Чтобы добавить в PATH новую директорию, используйте команду:
Чтобы сделать это изменение постоянным для текущего пользователя, отредактируйте файл ~/.bashrc:
export PATH=$PATH:/path_to/dir
Как установить команду make в различных ОС?
Если утилита действительно отсутствует на вашем компьютере, ниже мы покажем установить команду make в разных версиях Linux.
В Fedora, Oracle/Rocky Linux, CentOS, Fedora и RHEL утилита make можно установить отдельно с помощью команды:
Или в составе группы пакетов Development tools (потребуется около 500 Мб на диске).
# dnf groupinstall «Development tools» (в RHEL/CentOS 8)
или
# yum groupinstall «Development tools» (в предыдущих версиях RPM дистрибутивов Linux)
Если make уже установлен, но не работает, можете переустановить его:
В deb-based дистрибутивах, таких Ubuntu, Debian, Raspbian, Kali Linux можно установить пакет make с помощью команд:
Также команда make содержится в метапакете build-essential. Для его установки выполните:
# apt-get install build-essential
Для переустановки пакета make, выполните:
# apt-get install —reinstall make
# sudo dpkg-reconfigure make
# apt-get remove make
# apt-get install make
В дистрибутивах на основе Arch (Arch Linux, Manjaro) утилиту make можно установить отдельно:
$ sudo pacman –Syu
$ sudo pacman -S make
Или вместе с пакетом base-devel:
Для автоматической установки команды make и средств разработки в Docker контейнере можно добавить в docker файл инструкцию:
RUN apt-get install -y build-essential
В Windows можно установить команду make с помощью менеджера пакета Chocolatey. Установите choco (если не установлен):
PS> Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString(‘https://community.chocolatey.org/install.ps1’))
Затем можете установить make в Windows:
Для сборки из исходников также используется команда CMake. Если она не установлена, появится ошибка cmake command not found.
В Смоленск 1.5 SE отсутствует утилита (пакет) make
user@astra:~$
user@astra:~$
user@astra:~$
user@astra:~$ sudo apt-cdrom add
Использование /media/cdrom/ в качестве точки монтирования CD-ROM
Идентификация.. [f0d6813d4acd6844c761b6c195610141-2]
Поиск на диске индексных файлов..
Найдено индексов: 3 для пакетов, 0 для источников, 0 для переводов и 1 для сигнатур
Название диска:
«OS Astra Linux 1.11 orel — amd64 DVD »
Копирование списков пакетов…gpgv: Подпись создана Чт. 14 апр. 2016 19:10:12 YEKT ключом RSA с ID E75F8E65
gpgv: Действительная подпись от «Astra Archive Automatic Signing Key »
Reading Package Indexes… Готово
Запись нового списка источников
Записи в списке источников для этого диска:
deb cdrom:[OS Astra Linux 1.11 orel — amd64 DVD ]/ orel contrib main non-free
Повторите этот процесс для всех имеющихся CD.
user@astra:~$
user@astra:~$
user@astra:~$
user@astra:~$ sudo apt-get update
Игн cdrom://OS Astra Linux 1.11 orel — amd64 DVD orel InRelease
Игн cdrom://OS Astra Linux 1.11 orel — amd64 DVD orel/contrib Translation-ru_RU
Игн cdrom://OS Astra Linux 1.11 orel — amd64 DVD orel/contrib Translation-ru
Игн cdrom://OS Astra Linux 1.11 orel — amd64 DVD orel/contrib Translation-en
Игн cdrom://OS Astra Linux 1.11 orel — amd64 DVD orel/main Translation-ru_RU
Игн cdrom://OS Astra Linux 1.11 orel — amd64 DVD orel/main Translation-ru
Игн cdrom://OS Astra Linux 1.11 orel — amd64 DVD orel/main Translation-en
Игн cdrom://OS Astra Linux 1.11 orel — amd64 DVD orel/non-free Translation-ru_RU
Игн cdrom://OS Astra Linux 1.11 orel — amd64 DVD orel/non-free Translation-ru
Игн cdrom://OS Astra Linux 1.11 orel — amd64 DVD orel/non-free Translation-en
Чтение списков пакетов… Готово
user@astra:~$
user@astra:~$
user@astra:~$
user@astra:~$ apt-cache search make | grep ‘^make ‘
make — An utility for Directing compilation.
user@astra:~$
user@astra:~$
user@astra:~$
user@astra:~$ sudo apt-cdrom add
Использование /media/cdrom0/ в качестве точки монтирования CD-ROM
Идентификация.. [d75c1a01d4ad62fc96df4980d15dbea1-2]
Поиск на диске индексных файлов..
Найдено индексов: 3 для пакетов, 0 для источников, 0 для переводов и 1 для сигнатур
Название диска:
«OS Astra Linux 1.5 smolensk — amd64 DVD »
Копирование списков пакетов…gpgv: Подпись создана Чт. 24 марта 2016 22:40:00 YEKT ключом RSA с ID E75F8E65
gpgv: Действительная подпись от «Astra Archive Automatic Signing Key »
Reading Package Indexes… Готово
Запись нового списка источников
Записи в списке источников для этого диска:
deb cdrom:[OS Astra Linux 1.5 smolensk — amd64 DVD ]/ smolensk contrib main non-free
Повторите этот процесс для всех имеющихся CD.
user@astra:~$
user@astra:~$
user@astra:~$
user@astra:~$ sudo apt-get update
Игн cdrom://OS Astra Linux 1.5 smolensk — amd64 DVD smolensk InRelease
Игн cdrom://OS Astra Linux 1.5 smolensk — amd64 DVD smolensk/contrib Translation-ru_RU
Игн cdrom://OS Astra Linux 1.5 smolensk — amd64 DVD smolensk/contrib Translation-ru
Игн cdrom://OS Astra Linux 1.5 smolensk — amd64 DVD smolensk/contrib Translation-en
Игн cdrom://OS Astra Linux 1.5 smolensk — amd64 DVD smolensk/main Translation-ru_RU
Игн cdrom://OS Astra Linux 1.5 smolensk — amd64 DVD smolensk/main Translation-ru
Игн cdrom://OS Astra Linux 1.5 smolensk — amd64 DVD smolensk/main Translation-en
Игн cdrom://OS Astra Linux 1.5 smolensk — amd64 DVD smolensk/non-free Translation-ru_RU
Игн cdrom://OS Astra Linux 1.5 smolensk — amd64 DVD smolensk/non-free Translation-ru
Игн cdrom://OS Astra Linux 1.5 smolensk — amd64 DVD smolensk/non-free Translation-en
Чтение списков пакетов… Готово
user@astra:~$
user@astra:~$
user@astra:~$
user@astra:~$ apt-cache search make | grep ‘^make ‘
user@astra:~$
user@astra:~$
Смоленск 1.6, отсутствует команда make
Даже то, что скачано с офф сайта и установлено — это нарушение политики дистрибутива ?
Чем отличается сборка CE от SE?
То, что скачивается с офф сайта — это под 64- bit, Есть ли дистрибутив под 32-bit? (не смог поставить на ноуте)
С трудом откомпилировал программу. Пришлось еще кучу всего ставить с диска. Причем вставлять то первый, то второй диск.
Есть ли дистрибутив, где уже установлены apt, make, gcc, libx11-dev, libxrandr-dev, libxxf86vm-dev и прочее?
Olej
New member
То, что скачивается с офф сайта — это под 64- bit, Есть ли дистрибутив под 32-bit? (не смог поставить на ноуте)
Нет. Только 64 бит.
Редкий ноутбук на сегодня не поддерживает 64 бит. Год 2010? На паровом двигателе?
С трудом откомпилировал программу. Пришлось еще кучу всего ставить с диска. Причем вставлять то первый, то второй диск.
Есть ли дистрибутив, где уже установлены apt, make, gcc, libx11-dev, libxrandr-dev, libxxf86vm-dev и прочее?
Это политика, идеология всех Linux: устанавливается некоторый минимум, всё остальное вы легко доустанавливаете из стандартного репозитория дистрибутива.
Сравните и оцените как это отличается от идеологии и привычек, выработанных в Windows: всё (как решили в Micrisift) интегрировано в систему, а всё остальное воруем где попало и что придётся, и устанавливаем на свой страх и риск.
Почувствуйте разницу!