Компиляция драйверов Redhat

Я новичок в компиляции драйверов для Linux, и у меня возникли проблемы!

Пытаюсь скомпилировать драйвер для usb устройства.

Результат:


[thayoz@lacalpc13 linux]$ make
for i in driver lib qrng ; do cd $i && (make all || exit ) && cd ..; done
make[1]: Entering directory /home/thayoz/Desktop/untitled folder/Quantis-USB/src/linux/driver'
make -C /usr/src/kernels/ M=/home/thayoz/Desktop/untitled folder/Quantis-USB/src/linux/driver V=1 modules
make[2]: Entering directory / usr / src / kernels 'make [2]: * Нет правила для создания цели folder/Quantis-USB/src/linux/driver'.  Stop.
make[2]: Leaving directory / usr / src / kernels' make [1]: * [all] Ошибка 2 make [1]:  Выход из каталога `/ home / thayoz / Desktop / без названия / Quantis-USB / src / linux / driver '/ bin / sh: line 0: cd: lib: Нет такого файла или каталога / bin / sh: line 0: cd:  qrng: нет такого файла или каталога make: *** [all] Error 1

Я не знаю что не так ???


person Kami    schedule 25.06.2009    source источник
comment
Я предполагаю, что исходный код ядра находится не в / usr / src / kernels /, а в подкаталоге. вам нужно будет соответствующим образом исправить свой make-файл   -  person Hasturkun    schedule 25.06.2009


Ответы (3)


Обычно что-то вроде:

make -C <directory to kernel source> M=<directory to module/driver source> modules
make -C <directory to kernel source> M=<directory to module/driver source> modules_install

достаточно.

Ваш драйвер поставляется с make-файлом? Вы компилируете с использованием правильных исходных кодов ядра, например, правильной версии?

person KFro    schedule 11.08.2009

Я думаю, что проблема может быть вызвана пробелом в пути к вашему каталогу сборки.

/ главная / тайоз / Рабочий стол / папка без названия / Quantis-USB ...

Обратите внимание на место в «безымянной папке».

Похоже, make принимает каталог модуля как:

/ home / thayoz / Desktop / без названия

И:

папка / Quantis-USB / src / linux / драйвер

передается как дополнительный аргумент (возможно, цель, которую нужно построить).

Попробуйте переименовать «/ home / thayoz / Desktop / untitled folder» в «/ home / thayoz / Desktop / untitledfolder» и посмотрите, что произойдет.

person Rob Jones    schedule 11.08.2009

Я понимаю общую процедуру создания части программного обеспечения, упакованного с использованием системы сборки GNU:

  1. Запустите сценарий .configure. Этот сценарий проверяет среду сборки в вашей системе, обеспечивая доступность всех необходимых исполняемых файлов, библиотек и т. Д., И создает рабочий Makefile.
  2. Запускаем make. Это использует Makefile, сгенерированный на шаге 1, для построения двоичного файла.
  3. Запускаем make install. Это установит двоичный файл в правильное место в системе.

Система сборки GNU

Вы запускали сценарий .configure, поставляемый с пакетом драйверов?

person Amal Sirisena    schedule 25.06.2009
comment
Вы думаете о ./configure (т.е. имя просто configure, а ./ указывает, что он находится в текущем каталоге, а не для поиска в PATH) - person tialaramex; 30.06.2009