web-dev-qa-db-ja.com

MyOwnKernelをビルドし、リビジョン番号バージョンの+1を上げる方法は?

TrustyのLinux 3.13で苦労していますが、それは別のトピックです( http://www.mail-archive.com/[email protected]/msg06775.html =)それで、UtopicからLinux 3.16をバックポートすることにしました。

また、GPGキーでLinuxバージョンに署名し、後でPPAにアップロードする必要がありますが、最初にLinux revisionバージョンに+1をバンプできません...誰かがそれを手伝ってくれますか?!

手動でバックポートする手順は次のとおりです(そのままで、+ 1をrevisionバージョンにバンプすることなく機能します):

手順: https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel

1- Utopicのdeb-srcをTrustyのsources.listに追加します。

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-完了! UtopicのLinux 3.16をコンパイルして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 <[email protected]>  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

Linuxリリースバージョン(4.9から5.0)で+1を上げるには、さらに何を変更する必要がありますか?したがって、debuildプロセスは大丈夫です... abiには何か関係があると思いますが、私はUbuntu Linuxカーネルのメンテナー(またはコーダー)ではないので、ここから先に進む方法がわかりません...

私は本当に助けに感謝します!

前もって感謝します!

3
ThiagoCMC

/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
Anthony Wong

独自の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
studog