Como BuildMyOwnKernel, batendo +1 para a versão do número de revisão?

3

Estou enfrentando dificuldades com o Linux 3.13 da Trusty, mas é outro tópico ( link ), então, decidi fazer backport do Linux 3.16 do Utopic.

Além disso, eu precisarei assinar minha versão do Linux com a minha chave GPG e enviá-la para o meu PPA depois, mas, primeiro, eu não consigo usar +1 no Linux revision version ... Alguém pode me ajudar? isso?!

Aqui está o procedimento para backport manualmente (que funciona, como está, sem bater +1 em revision version):

Instruções de: link

1- Adicione o deb-src do Utopic ao sources.list do Trusty:

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

2- Execute os seguintes comandos:

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- Feito! Linux 3.16 da Utopic, compilado e instalado no Trusty! Primeira fase bem ...

Mas agora, preciso aumentar sua versão revision para algo assim: "3.16.0-5.0". Para assiná-lo com o meu GPG e enviá-lo para o meu PPA.

Então, para conseguir isso, antes de compilá-lo e empacotá-lo, eu editei o arquivo "changelog debian":

cd linux-3.16.0/
vi debian.master/changelog

... para adicionar:

linux (3.16.0-5.0) trusty; urgency=low

  [ Thiago Martins ]

  * Backporting it to Trusty

 -- Thiago Martins <[email protected]>  Sat, 19 Jul 2014 20:42:13 -0300

Agora, o comando debuild não consegue empacotá-lo, o seguinte erro aparece perto do final do processo:

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//' | 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

O que mais eu preciso mudar, para bater +1 para minha versão de lançamento do Linux (de 4.9 para 5.0)? Então, debuild processo vai terminar tudo bem ... Eu acho que há algo a ver com abi mas, eu não sou um mantenedor do Ubuntu Linux Kernel (ou um codificador), então, eu não sei como proceda daqui ...

Eu realmente aprecio qualquer ajuda!

Obrigado antecipadamente!

    
por ThiagoCMC 20.07.2014 / 03:14

2 respostas

1

A compilação falha na verificação de módulo, o que eu acho que é porque /home/tmartins/linux/source/linux-3.16.0/debian.master/abi/3.16.0-4.9 não existe. Você pode pular a verificação usando o parâmetro skipmodule=true . Quando eu construir com fakeroot debian/rules , farei isso:

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

Este parâmetro também deve ser aplicado a debuild .

Mas na fase posterior, a compilação pode falhar novamente na verificação da ABI, então você terá que usar skipabi=true também, então o comando completo se tornará:

$ fakeroot debian/rules binary-headers binary-generic skipmodule=true skipabi=true
    
por Anthony Wong 17.11.2016 / 17:40
0

Encontrei o mesmo erro ao tentar criar meu próprio kernel do Ubuntu.

Eu atualizei o debian.master / changelog para:

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

A compilação falhou (parafraseada, perdi a saída original):

find /home/studog/linux-3.16.0/debian/build/build-generic/ -name \*.ko | \
            sed -e 's/.*\/\([^\/]*\)\.ko//' | 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!

Observe que a extroversão não estava correta na referência de caminho tentada, embora o caminho correto (debian.master / abi / 3.13.0-107.154 + studog-01) existisse. Eu mudei o changelog para ser

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

e funcionou. Parece que o sistema de compilação não desfruta de versões extras que contenham traços.

A solução alternativa de Anthony Wong com o skipmodule e o skipabi funcionou para corrigir o problema também, mas preferi alterar a versão extra.

    
por studog 17.01.2017 / 06:27