最終更新:2016-04-11 (月) 14:29:57 (2937d)
Fedora/Linuxカーネル/ビルド
https://fedoraproject.org/wiki/Building_a_custom_kernel
方法
必要なバッケージ
Fedora 22
- fedpkg
- fedora-packager?
- rpmdevtools
- ncurses-devel
- pesign
- pesign-rh-test-certs?
Fedora 12以降
メモ
- メモリ2GB,20GBだとビルド時にディスク容量が足りなくなった。
手順
- yum install rpmdevtools yum-utils
- rpmdev-setuptree
- yumdownloader --source kernel
- Fedora 16
[user@localhost ~]$ yumdownloader --source kernel-3.1.0-7.fc16 Loaded plugins: langpacks, presto, refresh-packagekit Enabling updates-source repository updates-source/metalink | 2.9 kB 00:00 updates-source | 3.3 kB 00:00 updates-source/primary_db | 1.4 MB 00:02 Enabling fedora-source repository fedora-source/metalink | 3.1 kB 00:00 fedora-source | 3.1 kB 00:00 fedora-source/primary_db | 3.5 MB 00:07 kernel-3.1.0-7.fc16.src.rpm | 74 MB 01:43
- Fedora 16
- yum-builddep kernel-<version>.src.rpm
- systemtap-runtime?とsystemtap-sdt-devel?が競合するのでDevelopment Toolsを先にインストールした
Transaction Check Error: file /usr/share/locale/en/LC_MESSAGES/systemtap.mo from install of systemtap-sdt-devel-2.0-1.fc16.x86_64 conflicts with file from package systemtap-runtime-1.6-1.fc16.x86_64 file /usr/share/locale/fr/LC_MESSAGES/systemtap.mo from install of systemtap-sdt-devel-2.0-1.fc16.x86_64 conflicts with file from package systemtap-runtime-1.6-1.fc16.x86_64 file /usr/share/locale/pl/LC_MESSAGES/systemtap.mo from install of systemtap-sdt-devel-2.0-1.fc16.x86_64 conflicts with file from package systemtap-runtime-1.6-1.fc16.x86_64 file /usr/share/locale/en/LC_MESSAGES/systemtap.mo from install of systemtap-sdt-devel-2.0-1.fc16.x86_64 conflicts with file from package systemtap-1.6-1.fc16.x86_64 file /usr/share/locale/fr/LC_MESSAGES/systemtap.mo from install of systemtap-sdt-devel-2.0-1.fc16.x86_64 conflicts with file from package systemtap-1.6-1.fc16.x86_64 file /usr/share/locale/pl/LC_MESSAGES/systemtap.mo from install of systemtap-sdt-devel-2.0-1.fc16.x86_64 conflicts with file from package systemtap-1.6-1.fc16.x86_64 Error Summary -------------
- rpm -Uvh kernel-<version>.src.rpm
[user@localhost rpmbuild]$ tree . ├── BUILD ├── RPMS ├── SOURCES │ ├── 0001-mm-vmscan-Limit-direct-reclaim-for-higher-order-allo.patch │ ├── 0002-mm-Abort-reclaim-compaction-if-compaction-can-procee.patch │ ├── acpi-ensure-thermal-limits-match-cpu-freq.patch │ ├── acpi-sony-nonvs-blacklist.patch │ ├── add-appleir-usb-driver.patch │ ├── add-macbookair41-keyboard.patch │ ├── arm-omap-dt-compat.patch │ ├── arm-smsc-support-reading-mac-address-from-device-tree.patch │ ├── be2net-non-member-vlan-pkts-not-received-in-promisco.patch │ ├── benet-remove-bogus-unlikely-on-vlan-check.patch │ ├── block-stray-block-put-after-teardown.patch │ ├── config-arm-generic │ ├── config-arm-omap-generic │ ├── config-arm-tegra │ ├── config-debug │ ├── config-generic │ ├── config-i686-PAE │ ├── config-ia64-generic │ ├── config-local │ ├── config-nodebug │ ├── config-powerpc32-generic │ ├── config-powerpc32-smp │ ├── config-powerpc64 │ ├── config-powerpc-generic │ ├── config-rhel-generic │ ├── config-s390x │ ├── config-sparc64-generic │ ├── config-x86-32-generic │ ├── config-x86_64-generic │ ├── config-x86-generic │ ├── cpupower.config │ ├── cpupower.service │ ├── crypto-register-cryptd-first.patch │ ├── die-floppy-die.patch │ ├── disable-i8042-check-on-apple-mac.patch │ ├── dmar-disable-when-ricoh-multifunction.patch │ ├── drm-i915-fbc-stfu.patch │ ├── drm-i915-sdvo-lvds-is-digital.patch │ ├── drm-intel-make-lvds-work.patch │ ├── drm-intel-next.patch │ ├── drm-lower-severity-radeon-lockup.diff │ ├── drm-nouveau-updates.patch │ ├── efi-dont-map-boot-services-on-32bit.patch │ ├── epoll-fix-spurious-lockdep-warnings.patch │ ├── epoll-limit-paths.patch │ ├── find-provides │ ├── fix_xen_guest_on_old_EC2.patch │ ├── floppy-drop-disable_hlt-warning.patch │ ├── genkey │ ├── git-linus.diff │ ├── hvcs_pi_buf_alloc.patch │ ├── iwlagn-fix-ht_params-NULL-pointer-dereference.patch │ ├── linux-2.6.30-no-pcspkr-modalias.patch │ ├── linux-2.6-32bit-mmap-exec-randomization.patch │ ├── linux-2.6-acpi-debug-infinite-loop.patch │ ├── linux-2.6-acpi-video-dos.patch │ ├── linux-2.6-compile-fixes.patch │ ├── linux-2.6-crash-driver.patch │ ├── linux-2.6-debug-taint-vm.patch │ ├── linux-2.6-defaults-acpi-video.patch │ ├── linux-2.6-defaults-aspm.patch │ ├── linux-2.6-e1000-ich9-montevina.patch │ ├── linux-2.6-i386-nx-emulation.patch │ ├── linux-2.6-input-kill-stupid-messages.patch │ ├── linux-2.6-intel-iommu-igfx.patch │ ├── linux-2.6-makefile-after_link.patch │ ├── linux-2.6-serial-460800.patch │ ├── linux-2.6-silence-acpi-blacklist.patch │ ├── linux-2.6-silence-fbcon-logo.patch │ ├── linux-2.6-silence-noise.patch │ ├── linux-2.6-upstream-reverts.patch │ ├── linux-2.6-v4l-dvb-experimental.patch │ ├── linux-2.6-v4l-dvb-fixes.patch │ ├── linux-2.6-v4l-dvb-update.patch │ ├── linux-2.6-v4l-dvb-uvcvideo-update.patch │ ├── linux-3.1.tar.bz2 │ ├── Makefile.config │ ├── media-dib0700-correct-error-message.patch │ ├── media-dib0700-protect-the-dib0700-buffer-access.patch │ ├── media-DiBcom-protect-the-I2C-bufer-access.patch │ ├── merge.pl │ ├── mmc-Always-check-for-lower-base-frequency-quirk-for-.patch │ ├── oom-fix-integer-overflow-of-points.patch │ ├── powerpc-Fix-deadlock-in-icswx-code.patch │ ├── rcu-avoid-just-onlined-cpu-resched.patch │ ├── rcutree-avoid-false-quiescent-states.patch │ ├── revert-efi-rtclock.patch │ ├── taint-vbox.patch │ ├── udlfb-bind-framebuffer-to-interface.patch │ ├── ums-realtek-driver-uses-stack-memory-for-DMA.patch │ ├── usb-add-quirk-for-logitech-webcams.patch │ ├── utrace.patch │ └── xfs-Fix-possible-memory-corruption-in-xfs_readlink.patch ├── SPECS │ └── kernel.spec └── SRPMS 5 directories, 94 files
- ソースツリーの準備
- rpmbuild -bp --target=$(uname -m) kernel.spec
- Linux/~/rpmbuild/SOURCESのがLinux/~/rpmbuild/BUILD/kernel-3.1.fc16/linux-3.1.x86_64に展開されてパッチが当たる
- rpmbuild -bp --target=$(uname -m) kernel.spec
- diffをとるためにカーネルのソースをコピー
- diff orig new > SOURCES/linux-3.1-mynewpatch.patch
- rpmbuild -bb --target=`uname -m` kernel.spec
└── RPMS └── x86_64 -rw-rw-r--. 1 user user 24M Apr 7 13:33 kernel-3.1.0-7.nakamura.fc16.x86_64.rpm -rw-rw-r--. 1 user user 25M Apr 7 13:37 kernel-debug-3.1.0-7.nakamura.fc16.x86_64.rpm -rw-rw-r--. 1 user user 261M Apr 7 13:41 kernel-debug-debuginfo-3.1.0-7.nakamura.fc16.x86_64.rpm -rw-rw-r--. 1 user user 7.2M Apr 7 13:38 kernel-debug-devel-3.1.0-7.nakamura.fc16.x86_64.rpm -rw-rw-r--. 1 user user 254M Apr 7 13:37 kernel-debuginfo-3.1.0-7.nakamura.fc16.x86_64.rpm -rw-rw-r--. 1 user user 40M Apr 7 13:34 kernel-debuginfo-common-x86_64-3.1.0-7.nakamura.fc16.x86_64.rpm -rw-rw-r--. 1 user user 7.2M Apr 7 13:34 kernel-devel-3.1.0-7.nakamura.fc16.x86_64.rpm -rw-rw-r--. 1 user user 767K Apr 7 13:33 kernel-headers-3.1.0-7.nakamura.fc16.x86_64.rpm -rw-rw-r--. 1 user user 429K Apr 7 13:34 kernel-tools-3.1.0-7.nakamura.fc16.x86_64.rpm -rw-rw-r--. 1 user user 1.1M Apr 7 13:34 kernel-tools-debuginfo-3.1.0-7.nakamura.fc16.x86_64.rpm -rw-rw-r--. 1 user user 19K Apr 7 13:34 kernel-tools-devel-3.1.0-7.nakamura.fc16.x86_64.rpm
- -bbでできたパッケージ
- kernel
- kernel-debug
- kernel-debug-debuginfo
- kernel-debug-devel?
- kernel-debuginfo?
- kernel-debuginfo-common-x86_64?
- kernel-devel
- kernel-headers
- kernel-tools
- kernel-tools-debuginfo?
- kernel-tools-devel?