[devel] Сборка модуля ядра

Gleb Fotengauer-Malinovskiy glebfm на altlinux.org
Пн Ноя 17 14:57:44 MSK 2014


On Sun, Nov 16, 2014 at 03:45:57PM +0300, bars sc wrote:
> Здравствуйте. Не могу разобраться со сборкой модуля ядра в git.alt. Wiki
> прочитал, но все равно не получается.
> 1)Нужно ли для сборки модуля ядра (fglrx) клонировать к себе на винт
> git-репы ядра? При клонировании
> 
> $ git clone git://git.altlinux.org/people/boyarsh/packages/kernel-image.git
> kernel
> Cloning into 'kernel'...
> remote: fatal: Out of memory? mmap failed: Cannot allocate memory

У вас не хватило памяти. Лучше, наверное, скачивать репозиторий из /gears:
/gears/k/kernel-image-std-def.git или какой вам нужен.

Вообще, репозитории где выключен repack могут быть довольно тяжёлыми.

> remote: aborting due to possible repository corruption on the remote side.
> fatal: early EOF
> fatal: index-pack failed
> 
> Или это можно как-то обойти?

На сколько я помню, для сборки по новой схеме, ядро уже не нужно. Вся
необходимая информация о ядре собирается уже при сборке через
kernel-headers-modules.

> 2)При сборке модуля
> 
> $ buildmodules --hsh-options='--apt-config ./apt.conf' --tag --commit -k un-def fglrx
> * Kernel: 3.17.2-un-def-alt1
> * Package 1 of 1: kernel-modules-fglrx-un-def: FAILED
> Finished: 0 ok, 1 failed, 0 skipped

Вы пытаетесь использовать инструкцию с wiki, про которую на wiki написано,
что она устарела.

> вот что в логе:
> 
> fatal: Needed a single revision
> gear: Invalid commit "template/fglrx/sisyphus"
> buildmodules: 'gear --describe -t template/fglrx/sisyphus' failed
> 
> чего не хватает?
> Нельзя ли привести пример сборки модуля ядра от и до с краткими пояснениями?

Самый простой способ локально собрать один модуль для одного ядра:
http://www.altlinux.org/%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D0%B5%D0%B9_%D1%8F%D0%B4%D1%80%D0%B0#build_new

$ cd modules
$ git config --add gear.specsubst.kflavour std-def
$ git checkout template/fglrx/sisyphus
$ gear --commit --hasher hsh

Минус этого подхода в том, что kflavour довольно неудобно менять. И,
следовательно, собирать для нескольких ядер неудобно.


Более удобный подход -- предварительно создать теги и собирать из них.
http://www.altlinux.org/%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D0%B5%D0%B9_%D1%8F%D0%B4%D1%80%D0%B0#tags_new
km-create-tag создаёт теги вида
'$distribution/kernel-modules-$modulename-$flavour-$version-$release',
т.е. после их создания, можно собирать модули с помощью gear, например:

$ km-create-tag -k std-def fglrx
$ cat out/taglist
sisyphus/kernel-modules-fglrx-std-def-14.301.1001-alt3
$ gear -t sisyphus/kernel-modules-fglrx-std-def-14.301.1001-alt3 --hasher hsh


В итоге второго варианта у вас есть подписанные теги, готовые к отправке в
сборочницу. Список этих тегов есть в out/taglist.

-- 
glebfm
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 181 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20141117/cd3f49fd/attachment-0001.bin>


Подробная информация о списке рассылки Devel