Как собрать Собственное Ядро, подняв +1 для версии с номером ревизии?

Я сталкиваюсь с трудностями в Linux 3.13 от Trusty, но это другая тема ( http://www.mail-archive.com/ubuntu-server@lists.ubuntu.com/msg06775.html ), поэтому я решил перенести Linux 3.16 из Utopic.

Кроме того, мне нужно будет подписать мою версию Linux моим ключом GPG и загрузить ее в свой PPA позже, но, во-первых, я не могу повысить +1 к версии Linux revision ... Может кто-нибудь помочь мне с что?!

Вот процедура для ручной бэкпорта его (которая работает, как есть, без повышения +1 к revision версии):

Инструкции от: https: //wiki.ubuntu.com/Kernel/BuildYourOwnKernel

1- Добавить deb-src Utopic в sources.list Trusty:

deb-src http://us.archive.ubuntu.com/ubuntu/ utopic main restricted universe multiverse

2- Запустить следующие команды:

mkdir ~/linux/source -p
cd ~/linux/source
sudo apt-get install fakeroot
sudo apt-get build-dep linux
apt-get source linux
cd linux-3.16.0/
debuild -uc -us
cd ..
sudo dpkg -i linux-headers-3.16.0-4_3.16.0-4.9_all.deb linux-headers-3.16.0-4-generic_3.16.0-4.9_amd64.deb linux-image-3.16.0-4-generic_3.16.0-4.9_amd64.deb linux-image-extra-3.16.0-4-generic_3.16.0-4.9_amd64.deb

3- Готово! Linux 3.16 от Utopic, скомпилированный и установленный в Trusty! Первая фаза в порядке ...

Но теперь мне нужно изменить версию revision на что-то вроде этого: «3.16.0-5.0». Чтобы подписать его с моей GPG и загрузить его в мой PPA.

Затем, чтобы достичь этого, перед компиляцией и упаковкой я отредактировал файл «debian changelog»:

cd linux-3.16.0/
vi debian.master/changelog

... чтобы добавить:

linux (3.16.0-5.0) trusty; urgency=low

  [ Thiago Martins ]

  * Backporting it to Trusty

 -- Thiago Martins <thiagocmartinsc@gmail.com.br>  Sat, 19 Jul 2014 20:42:13 -0300

Теперь, команда debuild не может ее упаковать, в конце процесса появляется следующая ошибка:

debuild
...
Use of uninitialized value $filename in concatenation (.) or string at /usr/share/perl5/Debian/Debhelper/Dh_Lib.pm line 410.
dh_systemd_start
Can't stat debian/linux-tools-3.16.0-5: No such file or directory
 at /usr/bin/dh_systemd_start line 127.
Can't stat debian/linux-cloud-tools-3.16.0-5: No such file or directory
 at /usr/bin/dh_systemd_start line 127.
Can't stat debian/linux-image-3.16.0-5-generic: No such file or directory
 at /usr/bin/dh_systemd_start line 127.
Can't stat debian/linux-image-extra-3.16.0-5-generic: No such file or directory
...
...
Can't stat debian/vlan-modules-3.16.0-5-generic-di: No such file or directory
 at /usr/bin/dh_systemd_start line 127.
Can't stat debian/ipmi-modules-3.16.0-5-generic-di: No such file or directory
 at /usr/bin/dh_systemd_start line 127.
Debug: install-indep
Debug: binary-indep
dh_installchangelogs -i
dh_installdocs -i
dh_compress -i
dh_fixperms -i
dh_installdeb -i
flock -w 60 /home/tmartins/linux/source/linux-3.16.0/debian/.LOCK dh_gencontrol -i
dh_md5sums -i
dh_builddeb -i
dpkg-deb: building package `linux-source-3.16.0' in `../linux-source-3.16.0_3.16.0-5.0_all.deb'.
dpkg-deb: building package `linux-doc' in `../linux-doc_3.16.0-5.0_all.deb'.
dpkg-deb: building package `linux-headers-3.16.0-5' in `../linux-headers-3.16.0-5_3.16.0-5.0_all.deb'.
dpkg-deb: building package `linux-tools-common' in `../linux-tools-common_3.16.0-5.0_all.deb'.
dpkg-deb: building package `linux-cloud-tools-common' in `../linux-cloud-tools-common_3.16.0-5.0_all.deb'.
Debug: install-perarch
# Add the tools.
...
...
dpkg-deb: building package `linux-tools-3.16.0-5' in `../linux-tools-3.16.0-5_3.16.0-5.0_amd64.deb'.
dh_strip -plinux-cloud-tools-3.16.0-5
dh_installchangelogs -plinux-cloud-tools-3.16.0-5
dh_installdocs -plinux-cloud-tools-3.16.0-5
dh_compress -plinux-cloud-tools-3.16.0-5
dh_fixperms -plinux-cloud-tools-3.16.0-5
dh_shlibdeps -plinux-cloud-tools-3.16.0-5
dh_installdeb -plinux-cloud-tools-3.16.0-5
flock -w 60 /home/tmartins/linux/source/linux-3.16.0/debian/.LOCK dh_gencontrol -plinux-cloud-tools-3.16.0-5
dh_md5sums -plinux-cloud-tools-3.16.0-5
dh_builddeb -plinux-cloud-tools-3.16.0-5
dpkg-deb: building package `linux-cloud-tools-3.16.0-5' in `../linux-cloud-tools-3.16.0-5_3.16.0-5.0_amd64.deb'.
Debug: module-check-generic
install -d /home/tmartins/linux/source/linux-3.16.0/debian.master/abi/3.16.0-5.0/amd64
find /home/tmartins/linux/source/linux-3.16.0/debian/build/build-generic/ -name \*.ko | \
                sed -e 's/.*\/\([^\/]*\)\.ko/\1/' | sort > /home/tmartins/linux/source/linux-3.16.0/debian.master/abi/3.16.0-5.0/amd64/generic.modules
II: Checking modules for generic...previous or current modules file missing!
   /home/tmartins/linux/source/linux-3.16.0/debian.master/abi/3.16.0-5.0/amd64/generic.modules
   /home/tmartins/linux/source/linux-3.16.0/debian.master/abi/3.16.0-4.9/amd64/generic.modules
make: *** [module-check-generic] Error 1
dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2
debuild: fatal error at line 1364:
dpkg-buildpackage -rfakeroot -D -us -uc failed

Что еще мне нужно изменить, чтобы увеличить +1 для моей версии релиза Linux (с 4,9-5,0) Итак, debuild процесс завершится нормально ... Я думаю, что с abi есть что-то, но я не поддерживаю ядро ​​Ubuntu Linux (или кодировщик), поэтому я не знаю, как продолжайте отсюда ...

Я очень ценю любую помощь!

Заранее спасибо!

4
задан 20 July 2014 в 05:14

2 ответа

Сбои сборки при проверке модуля, которая я думаю, - то, потому что /home/tmartins/linux/source/linux-3.16.0/debian.master/abi/3.16.0-4.9 не существует. Можно пропустить проверку при помощи skipmodule=true параметр. Когда я создам с fakeroot debian/rules, я сделаю это:

$ fakeroot debian/rules binary-headers binary-generic skipmodule=true

Этот параметр должен также относиться debuild.

, Но на более позднем этапе, сборка может перестать работать снова при проверке ABI, таким образом, необходимо будет использовать skipabi=true также, таким образом, полная команда станет:

$ fakeroot debian/rules binary-headers binary-generic skipmodule=true skipabi=true
1
ответ дан 20 July 2014 в 16:14

Я встретился с той же ошибкой при попытке создать мое собственное ядро Ubuntu.

я обновил debian.master/changelog к:

linux (3.13.0-107.154+studog-01) trusty; urgency=low

сборка перестала работать (перефразируемый, я потерял исходный вывод):

find /home/studog/linux-3.16.0/debian/build/build-generic/ -name \*.ko | \
            sed -e 's/.*\/\([^\/]*\)\.ko/\1/' | sort > /home/studog/linux-3.16.0/debian.master/abi/3.16.0-studog-0.0/amd64/generic.modules
II: Checking modules for generic...previous or current modules file missing!

Примечание экстраверсия не была совершенно правильна в предпринятой ссылке пути, хотя корректный путь (debian.master/abi/3.13.0-107.154+studog-01) существовал. Я изменил журнал изменений, чтобы быть вместо этого

linux (3.13.0-107.154+studog01) trusty; urgency=low

, и он работал. Кажется, что система сборки не обладает экстраверсиями, которые содержат тире.

обходное решение Anthony Wong с skipmodule и skipabi работало для исправления проблемы также, но я предпочел изменять экстраверсию вместо этого.

0
ответ дан 20 July 2014 в 16:14

Другие вопросы по тегам:

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