Компиляция модулей ядра в Arch Linux

В настоящее время я запускаю Arch Linux на linux-3.0-ARCH, и я хочу скомпилировать модули ядра, написанные для linux-2.6.22.14.

Я только скомпилировал модули ядра на предварительно настроенном debian. Итак, все, что я должен был знать, это расположение источника ядра и как отредактировать Makefile модуля соответственно.

Но поскольку я пытаюсь это сделать на своей машине сейчас, я загрузил источник для 2.6.22.14 и поместил его в / root /. Я изменил Makefile для модуля, чтобы указать на это, и я выполнил 'make'. Все, что я получаю сейчас, это:

Makefile:1443: *** mixed implicit and normal rules. Stop. 

Кто-то однажды сказал, что мне придется скомпилировать этот источник ядра. Если да, есть ли более простой способ получить скомпилированную версию, чтобы подключить сюда вместо исходного кода?

  • Изменение раскладки клавиатуры при использовании клавиатуры или другого
  • Ядро Linux: значение source-tree, in-tree и out-of-tree
  • присвоение переменной и IFS
  • Ускоренный путь к DD?
  • bcache на md или md на bcache
  • Bitlocker как возможность для Linux?
  • Перезапустить сервер MySQL
  • Как автоматически отключить клавиатуру / мышь ноутбука с помощью xinput, когда подключена внешняя клавиатура / мышь?
  • 3 Solutions collect form web for “Компиляция модулей ядра в Arch Linux”

    Возможно, вам не хватает пакета заголовков ядра: pacman -S linux-headers

    Это должно дать вам соответствующие заголовки ядра.

    Возможно, ваш модуль не работает под вашим Linux-версией 3.0-something – например, планировщик подвергся капитальному ремонту в 2.6.23. Возможно, ваш модуль сделал некоторые предположения о среде планировщика, возможно, нет, но нет гарантии, что он будет работать в новой системе.

    Вы не можете создать модуль против дерева исходных кодов ядра, которое еще не настроено и не построено. Самое простое – использовать /lib/modules/$(uname -r)/build/ символическую ссылку, в которой большинство поставляемых дистрибутивами пакетов ядра поставляются с достаточным количеством заголовков и конфигурационных материалов для создания внешних модулей.

    Если вы хотите создать свой модуль для своего текущего ядра, смените каталог в исходный каталог модуля и запустите следующее:

     make -C /lib/modules/`uname -r`/build M=$PWD 

    Это вызовет механизм kbuild для правильной сборки вашего модуля. Для получения дополнительной информации см. Documentation/kbuild/modules.txt в источниках ядра.

    2.6.22 слишком старое ядро, совместимое с 3.0

    Linux и Unix - лучшая ОС в мире.