Компіляція драйверів з початкових кодів, клуб любителів asplinux

Цитата:
rrraD пише:

mad_shef писал (а):
#error Incorrectly using glibc headers for a kernel module

glibc? kernel-devel варто?

glibc точно варто, а ось kernel-devel не впевнений. Може можна якось перевірити?
Або може справа в исходниках, вони ніби як для ядра 2.3.13 або я чогось не зрозумів.
Але в файлі linuxver.h була така рядок
if (LINUX_VERSION_CODE Що робити і хто винен? (Велика підозра на мої криві руки, але інших поки немає.)

Цитата:
mad_shef пише:
. а ось kernel-devel не впевнений. Може можна якось перевірити?

Цитата:
if (LINUX_VERSION_CODE Що робити і хто винен? (Велика підозра на мої криві руки, але інших поки немає.)

Драйвер може бути універсальним. Команди препроцесора, перевіряючі версію ядра, служать для адаптації драйвера під ядро, яке використовується.

mad_shef писал (а):
if (LINUX_VERSION_CODE

Це перевірка на версію ядра, далі треба дивитися за кодом. Сенс її такий: В більш високих версіях починаючи c ядра 2.3.13, щось змінилося або додалося.

sergeil писал (а):
kernel-devel

Мало чим допоможе, там одні заголовні make і файли, замість початкових кодів, починаючи з ASPlinux v10.

По-перше, у Вас швидше за все відсутні вихідні ядра, їх треба достовляет з початкових кодів та зібрати.
По-друге, якщо версія ядра у вас коштує 2.6.XX, то треба перевіряти як збирається ваш драйвер, тому що починаючи з гілки 2.6.XX збірка модулів ядра змінилася.
Тому зробіть uname -sr і cat / etc / asplinux-release і опублікуйте. Будемо думати далі.

Цитата:
sergeil пише:

Цитата:
mad_shef пише:
. а ось kernel-devel не впевнений. Може можна якось перевірити?

Цитата:
if (LINUX_VERSION_CODE Що робити і хто винен? (Велика підозра на мої криві руки, але інших поки немає.)

Драйвер може бути універсальним. Команди препроцесора, перевіряючі версію ядра, служать для адаптації драйвера під ядро, яке використовується.

Схоже що kernel-devel відсутня. У всякому разі жодної інформації після введення цієї рядки не поступіло.Я попоробовал рядок rpm -qa | grep kernel- *
і отримав
kernel-2.6.9-1.667asp
kernel-utils-2.4-13.1.39
Як я розумію мені потрібно встановити kernel-devel. Спробую поритися в Інеті.

mad_shef писал (а):
Схоже що kernel-devel відсутня. У всякому разі жодної інформації після введення цієї рядки не поступіло.Я попоробовал рядок rpm -qa | grep kernel- *

Так, Ви маєте рацію цей пакет відсутній. Мало того його немає в моєму локальному репозитарії, який я зробив з RPM-пакетів з настановних дисків.

kernel-doc.noarch - мало чим допоможе, там тільки документація.

mad_shef писал (а):
kernel-2.6.9-1.667asp

За версією ядра у Вас ASPlinux v10. Вихідні тексти ядра знаходяться тут.

Цитата:
sergeil пише:

mad_shef писал (а):
il_linux.c: 1048: warning: `il_larq_timer 'defined but not used
make: *** [il_linux.o] Помилка 1

Дайте посилання на вихідні драйвера.
Спробую зібрати під vanilla-2.6.16.16. Або хоча-б під vanilla-2.4.32

mad_shef писал (а):
Я пробував gmake LINUXVER = 2.6.9> /usr/src/proba.txt але туди записує тільки перший рядок.

gmake LINUXVER = 2.6.9> /usr/src/proba.txt 2> 1
і будуть всі інші повідомлення, але це не дуже допоможе. Поки результат негативний.

Цитата:
mad_shef пише:

Цитата:
За версією ядра у Вас ASPlinux v10. Вихідні тексти ядра знаходяться тут.

Вихідні тексти у мене есть.Как тепер звідти вицепіть kernel-devel? І як його потім проінсталіть? І схоже що в исходниках цього пакета немає.

Упевнений, що Ви йдете по неправильному шляху. Для збірки драйвера потрібні не тільки вихідні, а й чинне ядро ​​цієї версії.
Пропоную спочатку перевірити версію "чому не збираються для поточного ядра". У процесі з'ясування, заодно, стане зрозуміло, що потрібно від "початкових кодів".

Ну правильно, Ви збираєте модуль ядра, який розрахований на збірку для версій 2.4.XX і 2.2.XX. Для того, щоб зібрати для 2.6.XX, потрібно Makefile переписати. Починаючи з цієї версії ядра правила для складання модулів змінилися. До того ж, його треба перевірити на сумісність API-ядра для версій 2.6.XX, які він використовує. Вообщем, його потрібно ще налагодити.
Згідно з документацією остання версія, з якою він може працювати, є 2.4.18.

Цитата:
mad_shef пише:
/usr/include/linux/modversions.h:1:2: #error Modules should never use kernel-headers system headers,
/usr/include/linux/modversions.h:2:2: #error but rather headers from the appropriate kernel package.
/usr/include/linux/modversions.h:3:2: #error Change -I / usr / src / linux / include (or similar) to
/usr/include/linux/modversions.h:4:2: #error -I / lib / modules / $ (uname -r) / build / include
/usr/include/linux/modversions.h:5:2: #error to build against the currently-running kernel.

gcc не знаходить заголовки.
Потрібно встановити glibc-kernheaders * .rpm, який є в дистрибутиві.

Що б скомпілювати драйвер, в більшості випадків для ядер 2.6 вихідні не обов'язкові.

Схожі статті