Для ответа на первый вопрос решающая вещь что uname
без параметра возвращает на Дуге Linux. Страница справочника не определяет его, но Команда uname говорит, что это эквивалентно uname -s
:
- s Дисплеи имя системы. Этот флаг идет по умолчанию.
Для -s
, в странице справочника говорится, "печатают имя ядра". На Дуге Linux uname
возвраты
Linux
тогда как на, например, Cygwin uname
возвраты что-то как:
CYGWIN_NT-5.2-WOW64
date -u +%W
возвращает недельное число. Поскольку последняя часть ("Linux") является фиксированной строкой, окончательный результат зависит, на которой неделе командная строка выполняется в (хеш вычисляется на, например, "07Linux"). С этим знанием вывод может также быть вычислен на Cygwin.
Недельное число на 18.02.2012 равняется 7 и date -u +%W`uname`
возвраты (имеет начальный нуль, но это ожидается для задачи под рукой),
07Linux
и вывод от sha256sum (хеш SHA-2):
4a65f65b40cc2b0a7aaa726e895d72425ede255021e2ce3e935dd2719e4d33b9
На Cygwin это может быть вычислено как:
echo '07Linux'|sha256sum|sed 's/\W//g'
(Это на самом деле работало, когда я пытался зарегистрироваться в ArchWiki...),
Пакет необходимо создать собственные модули, называют kernel-devel
в Fedora. kernel-headers
пакет содержит заголовки от ядра, санированного для использования с glibc
.
Обновление:
OP сообщает, что что-то как следующее также необходимо.
Более новые ядра не несут include/linux/version.h
, который необходим для создания модуля. Фиксация:
ln -s /usr/include/linux/version.h /lib/modules/<kernel-version here>/build/include/linux/version.h
Это должно будет быть повторено для каждого нового ядра прежде, чем создать модуль, и посторонняя ссылка предотвратит диспетчер пакетов от полностью удаления каталога.
Кажется этим в более новых версиях ядра, как 3.8.1, файл version.h
изменил его место. Я мог заставить это работать этим путем:
ln -s /usr/src/linux/include/generated/uapi/linux/version.h /lib/modules/3.8.1-30-desktop/build/include/linux/version.h
Используя версию 3.8.1 ядра в среде OpenSuse 12.3.