modpost.h:12:23: фатальная ошибка: elfconfig.h: Никакой такой файл или каталог

из человек Bash :

Special Parameters
   The  shell treats several parameters specially.  These parameters may only
   be referenced; assignment to them is not allowed.
   *      Expands to the positional parameters, starting from one.  When  the
          expansion  is  not  within double quotes, each positional parameter
          expands to a separate word.  In contexts  where  it  is  performed,
          those  words  are  subject  to  further word splitting and pathname
          expansion.  When the expansion  occurs  within  double  quotes,  it
          expands to a single word with the value of each parameter separated
          by the first character of the IFS special variable.  That is,  "$*"
          is equivalent to "$1c$2c...", where c is the first character of the
          value of the IFS variable.  If IFS is  unset,  the  parameters  are
          separated  by  spaces.   If  IFS is null, the parameters are joined
          without intervening separators.
   @      Expands to the positional parameters, starting from one.  When  the
          expansion  occurs within double quotes, each parameter expands to a
          separate word.  That is, "$@" is equivalent to "$1"  "$2"  ...   If
          the  double-quoted expansion occurs within a word, the expansion of
          the first parameter is joined with the beginning part of the origi‐
          nal  word,  and  the expansion of the last parameter is joined with
          the last part of the original word.  When there are  no  positional
          parameters, "$@" and $@ expand to nothing (i.e., they are removed).

Сравните эти четыре случая, особенно с аргументом, содержащими пробелы.

for i in $*; do echo "$i"; done
for i in $@; do echo "$i"; done
for i in "$*"; do echo "$i"; done
for i in "$@"; do echo "$i"; done
0
23.04.2014, 02:15
1 ответ

Я не знаю точно, что вы распаковали в /usr/linux-lts-raring-3.8.0, но:

  • Наверное, это не то, что вам нужно.
  • Местоположение действительно странное, вы не должны создавать каталоги непосредственно под /usr.

Для компиляции модуля ядра вам понадобятся заголовки плюс еще несколько файлов, полученных при компиляции ядра с той же самой конфигурацией. Смотрите Невозможно загрузить модуль: Не согласен с версией symbol module_layout для более полного объяснения.

Удалите эту /usr/linux-lts-raring-3.8. 0 и вместо этого установите пакет заголовков ядра, соответствующий запущенному ядру: например, если запущенное ядро из пакета linux-image-3.8.0-38-generic, то установите пакет linux-заголовки-3.8.0-38-generic.

Для компиляции модуля с конкретной версией ядра Debian/Ubuntu/..., например, linux-заголовки-3.8.0-38-generic, перейдите в каталог модулей и запустите

make -C /usr/src/linux-headers-3.8.0-38-generic M=$PWD

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

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

Я рекомендую прочитать kbuild/modules.tt в документации к ядру.

.
1
28.01.2020, 02:52

Теги

Похожие вопросы