Я пытаюсь создать последние криптографические драйверы Linux для сервера Ubuntu. На сервере Ubuntu установлено работающее ядро, дополнительные компоненты и заголовки. Однако исходный код криптомодулей взят с GitHub Торвальда (а не с Ubuntu).
Я также работаю с документом по ядру Building External Modules. Я клонировал последнее ядро с помощью:
git clone --depth=1 https://github.com/torvalds/linux.git
Затем:
cd linux
Следующий:
$ make -C /usr/src/linux-headers-4.2.0-34 M=$PWD crypto
make: Entering directory '/usr/src/linux-headers-4.2.0-34'
ERROR: Kernel configuration is invalid.
include/generated/autoconf.h or include/config/auto.conf are missing.
Run 'make oldconfig && make prepare' on kernel src to fix it.
make: Nothing to be done for 'crypto'.
make: Leaving directory '/usr/src/linux-headers-4.2.0-34'
И:
$ find /usr/src -name 'autoconf.h'
/usr/src/linux-headers-4.2.0-34-generic/include/generated/autoconf.h
$ find /usr/src -name 'auto.conf'
/usr/src/linux-headers-4.2.0-34-generic/include/config/auto.conf
И это:
$ find /usr/src -type d -name 'build'
/usr/src/linux-headers-4.2.0-34/tools/build
/usr/src/linux-headers-4.2.0-34-generic/include/config/build
Попытка использовать каталог build
приводит к следующему:
$ make -C /usr/src/linux-headers-4.2.0-34/tools/build M=$PWD crypto
make: Entering directory '/usr/src/linux-headers-4.2.0-34/tools/build'
make: *** No rule to make target 'crypto'. Stop.
make: Leaving directory '/usr/src/linux-headers-4.2.0-34/tools/build'
Я явно упускаю что-то очевидное. Это неудивительно, поскольку я почти ничего не знаю о kbuild. У меня есть действующая конфигурация и исходники в /usr/src
, а новые файлы в $PWD/crypto
. Мне непонятно, почему я создаю новую конфигурацию для существующей конфигурации.
Как мне обновить криптомодули ядра для работающего ядра, предоставленного кем-то другим?
make -C /usr/src/linux-headers-4.2.0-34 M=$PWD crypto
- вместоcrypto
должно бытьmodules
. - person Tsyvarev   schedule 26.03.2016ERROR: Kernel configuration is invalid.
и добавляет новую проблему:cc1: fatal error: can’t open ‘kernel/bounds.s’ for writing: Permission denied compilation terminated.
- person jww   schedule 26.03.2016kernel/bounds.s
обычно указывает на эту проблему. Используйтеmake menuconfig
,make oldconfig
или любую другую цель configure. - person Tsyvarev   schedule 26.03.2016can’t open ‘kernel/bounds.s’
- глядя наKbuild
, это связано с одним из тех глупых приемов, которые иногда придумывают разработчики. Вот комментарий по поводу хитрости: Мы используем внутренние правила kbuild, чтобы избежать сообщения об обновлении от make. Поэтому, чтобы избежать сообщения обновлено, они заменили его на не могу открыть ‘kernel/bounds.s’ для записи... - person jww   schedule 26.03.2016wired in the existing configuration
. Как вы это сделали? Скопировав.config
файл? - person Tsyvarev   schedule 27.03.2016