aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--BUGS4
-rw-r--r--ChangeLog.old4782
-rw-r--r--HACKING8
-rw-r--r--Makefile160
-rw-r--r--README41
-rw-r--r--TODO3
-rw-r--r--arch/alpha/arch-config88
-rw-r--r--[-rwxr-xr-x]arch/alpha/config.sh0
-rw-r--r--arch/alpha/modules_load41
-rw-r--r--[-rwxr-xr-x]arch/arm/config.sh0
-rw-r--r--arch/arm/modules_load39
-rw-r--r--arch/arm64/arch-config588
-rw-r--r--arch/arm64/config.sh8
-rw-r--r--arch/arm64/modules_load11
-rw-r--r--[-rwxr-xr-x]arch/ia64/config.sh0
-rw-r--r--arch/ia64/modules_load41
-rw-r--r--[-rwxr-xr-x]arch/mips/config.sh10
-rw-r--r--arch/mips/modules_load40
-rw-r--r--[-rwxr-xr-x]arch/parisc/config.sh0
-rw-r--r--arch/parisc/modules_load41
-rw-r--r--[-rwxr-xr-x]arch/parisc64/config.sh0
-rw-r--r--arch/parisc64/modules_load40
-rw-r--r--arch/ppc/arch-config45
-rw-r--r--[-rwxr-xr-x]arch/ppc/config.sh0
-rw-r--r--arch/ppc/modules_load41
-rw-r--r--arch/ppc64/arch-config85
-rw-r--r--[-rwxr-xr-x]arch/ppc64/config.sh0
-rw-r--r--arch/ppc64/modules_load40
-rw-r--r--arch/ppc64le/arch-config3171
-rw-r--r--arch/ppc64le/kernel-config7520
-rw-r--r--arch/ppc64le/modules_load40
-rw-r--r--arch/riscv64/arch-config449
-rw-r--r--arch/riscv64/config.sh8
-rw-r--r--arch/riscv64/modules_load2
-rw-r--r--arch/s390/modules_load41
-rw-r--r--arch/s390x/arch-config1
-rw-r--r--arch/s390x/config.sh8
-rw-r--r--arch/s390x/kernel-config1527
-rw-r--r--arch/s390x/modules_load2
-rw-r--r--[-rwxr-xr-x]arch/sparc/config.sh2
-rw-r--r--arch/sparc/modules_load41
-rw-r--r--[-rwxr-xr-x]arch/sparc64/config.sh2
-rw-r--r--arch/sparc64/modules_load40
-rw-r--r--[-rwxr-xr-x]arch/um/config.sh0
-rw-r--r--arch/um/modules_load41
-rw-r--r--arch/x86/arch-config523
-rw-r--r--[-rwxr-xr-x]arch/x86/config.sh1
-rw-r--r--arch/x86/modules_load41
-rw-r--r--arch/x86_64/arch-config530
-rw-r--r--[-rwxr-xr-x]arch/x86_64/config.sh1
-rw-r--r--arch/x86_64/modules_load40
-rw-r--r--defaults/busy-config20
-rw-r--r--defaults/compression_methods.sh42
-rw-r--r--[-rwxr-xr-x]defaults/config.sh40
-rw-r--r--defaults/gksosreport.sh74
-rw-r--r--[-rwxr-xr-x]defaults/initrd.defaults78
-rw-r--r--defaults/initrd.scripts3093
-rw-r--r--defaults/kernel-config3645
-rw-r--r--defaults/kernel-generic-config11779
l---------defaults/keymaps/10.map2
l---------defaults/keymaps/11.map2
l---------defaults/keymaps/12.map2
l---------defaults/keymaps/13.map2
l---------defaults/keymaps/14.map2
l---------defaults/keymaps/15.map2
l---------defaults/keymaps/16.map2
l---------defaults/keymaps/17.map2
l---------defaults/keymaps/18.map2
l---------defaults/keymaps/19.map2
l---------defaults/keymaps/20.map2
l---------defaults/keymaps/21.map2
l---------defaults/keymaps/22.map2
l---------defaults/keymaps/23.map2
l---------defaults/keymaps/24.map2
l---------defaults/keymaps/25.map2
l---------defaults/keymaps/26.map2
l---------defaults/keymaps/27.map2
l---------defaults/keymaps/28.map2
l---------defaults/keymaps/29.map2
l---------defaults/keymaps/3.map2
l---------defaults/keymaps/30.map2
l---------defaults/keymaps/31.map2
l---------defaults/keymaps/32.map2
l---------defaults/keymaps/33.map2
l---------defaults/keymaps/34.map2
l---------defaults/keymaps/35.map2
l---------defaults/keymaps/36.map2
l---------defaults/keymaps/37.map2
l---------defaults/keymaps/38.map1
l---------defaults/keymaps/39.map2
l---------defaults/keymaps/4.map2
l---------defaults/keymaps/40.map2
l---------defaults/keymaps/41.map2
l---------defaults/keymaps/42.map2
l---------defaults/keymaps/43.map2
l---------defaults/keymaps/44.map1
l---------defaults/keymaps/5.map2
l---------defaults/keymaps/6.map2
l---------defaults/keymaps/7.map2
l---------defaults/keymaps/8.map2
l---------defaults/keymaps/9.map2
-rw-r--r--defaults/keymaps/bepo.mapbin0 -> 2823 bytes
-rw-r--r--defaults/keymaps/colemak.mapbin0 -> 2823 bytes
-rw-r--r--defaults/keymaps/keymapList16
-rw-r--r--defaults/keymaps/no.mapbin2823 -> 2823 bytes
-rw-r--r--defaults/keymaps/trf.mapbin2823 -> 0 bytes
-rw-r--r--defaults/keymaps/trq.mapbin0 -> 2823 bytes
-rw-r--r--defaults/linuxrc1296
-rw-r--r--defaults/login-remote.sh198
-rw-r--r--defaults/modules_load27
-rw-r--r--defaults/resume-boot.sh28
-rw-r--r--defaults/software.sh300
-rw-r--r--[-rwxr-xr-x]defaults/udhcpc.scripts41
-rw-r--r--defaults/unlock-luks.sh145
-rw-r--r--defaults/unlock-zfs.sh91
-rw-r--r--doc/genkernel.8.txt558
-rwxr-xr-xgen_arch.sh72
-rwxr-xr-xgen_bootloader.sh74
-rwxr-xr-xgen_cmdline.sh778
-rwxr-xr-xgen_compile.sh1189
-rwxr-xr-xgen_configkernel.sh796
-rwxr-xr-xgen_determineargs.sh1341
-rwxr-xr-xgen_funcs.sh2086
-rwxr-xr-xgen_initramfs.sh2785
-rwxr-xr-xgen_moddeps.sh118
-rwxr-xr-xgen_package.sh326
-rwxr-xr-xgen_worker.sh156
-rwxr-xr-xgenkernel596
-rw-r--r--genkernel.conf227
-rw-r--r--gkbuilds/bcache-tools-1.0.8_p20141204.gkbuild27
-rw-r--r--gkbuilds/bcache-tools-1.1_p20230217.gkbuild42
-rw-r--r--gkbuilds/boost-build.gkbuild58
-rw-r--r--gkbuilds/boost.gkbuild92
-rw-r--r--gkbuilds/btrfs-progs.gkbuild39
-rw-r--r--gkbuilds/busybox.gkbuild62
-rw-r--r--gkbuilds/coreutils.gkbuild66
-rw-r--r--gkbuilds/cryptsetup.gkbuild42
-rw-r--r--gkbuilds/dmraid.gkbuild31
-rw-r--r--gkbuilds/dropbear.gkbuild75
-rw-r--r--gkbuilds/e2fsprogs.gkbuild50
-rw-r--r--gkbuilds/eudev.gkbuild43
-rw-r--r--gkbuilds/expat.gkbuild19
-rw-r--r--gkbuilds/fuse.gkbuild21
-rw-r--r--gkbuilds/gnupg.gkbuild66
-rw-r--r--gkbuilds/hwids.gkbuild35
-rw-r--r--gkbuilds/json-c.gkbuild2
-rw-r--r--gkbuilds/keyutils.gkbuild27
-rw-r--r--gkbuilds/kmod.gkbuild75
-rw-r--r--gkbuilds/libaio.gkbuild2
-rw-r--r--gkbuilds/libgcrypt.gkbuild59
-rw-r--r--gkbuilds/libgpg-error.gkbuild23
-rw-r--r--gkbuilds/libxcrypt.gkbuild17
-rw-r--r--gkbuilds/lvm-2.03.22.gkbuild78
-rw-r--r--gkbuilds/lvm.gkbuild78
-rw-r--r--gkbuilds/lzo.gkbuild17
-rw-r--r--gkbuilds/mdadm-4.2.gkbuild38
-rw-r--r--gkbuilds/mdadm.gkbuild38
-rw-r--r--gkbuilds/open-iscsi.gkbuild23
-rw-r--r--gkbuilds/popt.gkbuild16
-rw-r--r--gkbuilds/strace.gkbuild28
-rw-r--r--gkbuilds/thin-provisioning-tools.gkbuild29
-rw-r--r--gkbuilds/unionfs-fuse.gkbuild15
-rw-r--r--gkbuilds/userspace-rcu.gkbuild13
-rw-r--r--gkbuilds/util-linux.gkbuild61
-rw-r--r--gkbuilds/xfsprogs.gkbuild55
-rw-r--r--gkbuilds/xz.gkbuild19
-rw-r--r--gkbuilds/zlib.gkbuild21
-rw-r--r--gkbuilds/zstd.gkbuild10
-rw-r--r--mdev/helpers/nvme21
-rw-r--r--mdev/helpers/storage-device29
-rw-r--r--mdev/mdev.conf4
-rw-r--r--netboot/linuxrc.x4
-rw-r--r--patches/bcache-tools/1.0.8_p20141204/bcache-tools-1.0.8_p20141204-build.patch88
-rw-r--r--patches/bcache-tools/1.0.8_p20141204/bcache-tools-1.0.8_p20141204-crc64.patch53
-rw-r--r--patches/bcache-tools/1.0.8_p20141204/bcache-tools-1.0.8_p20141204-modprobe.patch11
-rw-r--r--patches/boost-build/1.76.0/boost-build-1.71.0-disable_python_rpath.patch11
-rw-r--r--patches/boost-build/1.76.0/boost-build-1.73.0-add-none-feature-options.patch22
-rw-r--r--patches/boost-build/1.76.0/boost-build-1.74.0-no-implicit-march-flags.patch279
-rw-r--r--patches/boost-build/1.76.0/boost-build-1.76.0-python-numpy.patch24
-rw-r--r--patches/boost-build/1.76.0/boost-build-1.76.0-respect-user-flags.patch11
-rw-r--r--patches/boost/1.76.0/boost-1.71.0-context-x32.patch38
-rw-r--r--patches/boost/1.76.0/boost-1.71.0-disable_icu_rpath.patch29
-rw-r--r--patches/boost/1.76.0/boost-1.73-boost-mpi-python-PEP-328.patch17
-rw-r--r--patches/boost/1.76.0/boost-1.74-CVE-2012-2677.patch125
-rw-r--r--patches/boost/1.76.0/boost-1.76-boost-numpy.patch23
-rw-r--r--patches/boost/1.76.0/boost-1.76-sparc-define.patch21
-rw-r--r--patches/boost/1.79.0/boost-1.79.0-fix-mips1-transition.patch43
-rw-r--r--patches/btrfs-progs/5.15/btrfs-honor-LDFLAGS.patch12
-rw-r--r--patches/btrfs-progs/5.15/btrfs-lzo-via-pkgconfig.patch22
-rw-r--r--patches/btrfs-progs/5.15/btrfs-m4.patch15
-rw-r--r--patches/busybox/1.30.1/1.18.1-openvt.diff19
-rw-r--r--patches/busybox/1.30.1/README11
-rw-r--r--patches/busybox/1.30.1/busybox-1.20.2-modprobe.patch26
-rw-r--r--patches/busybox/1.30.1/busybox-1.26.0-mdstart.patch80
-rw-r--r--patches/busybox/1.30.1/busybox-1.7.4-signal-hack.patch28
-rw-r--r--patches/busybox/1.33.1/busybox-1.20.2-modprobe.patch46
-rw-r--r--patches/busybox/1.33.1/busybox-1.30.1-allow-for-genkernel-cross-compile.patch39
-rw-r--r--patches/busybox/1.36.1/busybox-1.36.1-kernel-6.8.patch53
-rw-r--r--patches/coreutils/8.32/coreutils-8.32-ls-restore-8.31-behavior-on-removed-directories.patch86
-rw-r--r--patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-001-undo-p-rename.patch (renamed from patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-undo-p-rename.patch)0
-rw-r--r--patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-002-return-all-sets.patch11
-rw-r--r--patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-003-static-build-fixes.patch (renamed from patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-static-build-fixes.patch)98
-rw-r--r--patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-004-staticlink.patch (renamed from patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0.rc16-3-staticlink.patch)0
-rw-r--r--patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-005-parallel-make.patch (renamed from patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-parallel-make.patch)0
-rw-r--r--patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-return-all-sets.patch11
-rw-r--r--patches/e2fsprogs/1.46.4/e2fsprogs-1.42.13-fix-build-cflags.patch13
-rw-r--r--patches/e2fsprogs/1.46.4/e2fsprogs-1.44.6-parallel_install.patch10
-rw-r--r--patches/e2fsprogs/1.46.4/e2fsprogs-1.46.0-build.patch84
-rw-r--r--patches/e2fsprogs/1.47.0/e2fsprogs-1.42.13-fix-build-cflags.patch13
-rw-r--r--patches/e2fsprogs/1.47.0/e2fsprogs-1.44.6-parallel_install.patch10
-rw-r--r--patches/e2fsprogs/1.47.0/e2fsprogs-1.46.0-build.patch84
-rw-r--r--patches/eudev/3.2.10/eudev-3.2.10-static.patch97
-rw-r--r--patches/fuse/2.9.9/fuse-2.9.9-glibc-2.34.patch60
-rw-r--r--patches/gnupg/1.4.23/gnupg-1.4.23-gcc-10.patch156
-rw-r--r--patches/iscsi/2.0.875/open-iscsi-2.0.874-musl-ethtool-compat.patch69
-rw-r--r--patches/iscsi/2.0.875/open-iscsi-2.0.874-musl-fixes.patch51
-rw-r--r--patches/iscsi/2.0.875/open-iscsi-2.0.875-declare-inline-best_match_bufcmp-as-static.patch24
-rw-r--r--patches/iscsi/2.0.875/open-iscsi-2.0.875-include-sysmacros.patch21
-rw-r--r--patches/iscsi/2.0.875/open-iscsi-2.0.875-static-iscsistart.patch13
-rw-r--r--patches/json-c/0.13.1/json-c-0.13.1-CVE-2020-12762.patch227
-rw-r--r--patches/kmod/29/kmod-29-static.patch12
-rw-r--r--patches/kmod/30/kmod-29-static.patch12
-rw-r--r--patches/kmod/31/kmod-29-static.patch12
-rw-r--r--patches/libaio/0.3.110/libaio-0.3.109-install.patch45
-rw-r--r--patches/libaio/0.3.110/libaio-0.3.109-testcase-8.patch19
-rw-r--r--patches/libaio/0.3.110/libaio-0.3.109-x32.patch63
-rw-r--r--patches/libaio/0.3.110/libaio-0.3.110-cppflags.patch25
-rw-r--r--patches/libaio/0.3.110/libaio-0.3.110-link-stdlib.patch21
-rw-r--r--patches/libaio/0.3.112/libaio-0.3.111-optional-werror.patch (renamed from patches/libaio/0.3.110/libaio-0.3.110-optional-werror.patch)12
-rw-r--r--patches/libaio/0.3.112/libaio-0.3.112-cppflags.patch16
-rw-r--r--patches/libgcrypt/1.10.3/libgcrypt-1.10.3-hppa.patch110
-rw-r--r--patches/libgcrypt/1.10.3/libgcrypt-1.10.3-x86-refactor.patch428
-rw-r--r--patches/libgcrypt/1.10.3/libgcrypt-1.10.3-x86.patch94
-rw-r--r--patches/libgcrypt/1.10.3/libgcrypt-1.9.4-no-fgrep-libgcrypt-config.patch21
-rw-r--r--patches/libgcrypt/1.10.3/libgcrypt-multilib-syspath.patch23
-rw-r--r--patches/libgcrypt/1.10.3/libgcrypt-powerpc-darwin.patch16
-rw-r--r--patches/libgcrypt/1.9.4/libgcrypt-1.92-use-pkg-config.patch51
-rw-r--r--patches/libgpg-error/1.43/libgpg-error-1.36-gpg-error-config.patch38
-rw-r--r--patches/libgpg-error/1.43/libgpg-error-1.37-remove_broken_check.patch22
-rw-r--r--patches/lvm/2.02.188/lvm2-001-example.conf.in.patch (renamed from patches/lvm/2.02.183/lvm2-001-example.conf.in.patch)0
-rw-r--r--patches/lvm/2.02.188/lvm2-002-always-make-static-libdm.patch (renamed from patches/lvm/2.02.183/lvm2-002-always-make-static-libdm.patch)0
-rw-r--r--patches/lvm/2.02.188/lvm2-003-lvm2create_initrd.patch (renamed from patches/lvm/2.02.183/lvm2-003-lvm2create_initrd.patch)0
-rw-r--r--patches/lvm/2.02.188/lvm2-004-createinitrd.patch (renamed from patches/lvm/2.02.183/lvm2-004-createinitrd.patch)0
-rw-r--r--patches/lvm/2.02.188/lvm2-005-locale-muck.patch (renamed from patches/lvm/2.02.183/lvm2-005-locale-muck.patch)0
-rw-r--r--patches/lvm/2.02.188/lvm2-006-asneeded.patch (renamed from patches/lvm/2.02.183/lvm2-006-asneeded.patch)0
-rw-r--r--patches/lvm/2.02.188/lvm2-007-dynamic-static-ldflags.patch (renamed from patches/lvm/2.02.183/lvm2-007-dynamic-static-ldflags.patch)0
-rw-r--r--patches/lvm/2.02.188/lvm2-008-static-pkgconfig-libs.patch (renamed from patches/lvm/2.02.183/lvm2-008-static-pkgconfig-libs.patch)0
-rw-r--r--patches/lvm/2.02.188/lvm2-009-pthread-pkgconfig.patch (renamed from patches/lvm/2.02.183/lvm2-009-pthread-pkgconfig.patch)0
-rw-r--r--patches/lvm/2.02.188/lvm2-010-static-libm.patch (renamed from patches/lvm/2.02.183/lvm2-010-static-libm.patch)0
-rw-r--r--patches/lvm/2.02.188/lvm2-011-HPPA-no-O_DIRECT.patch (renamed from patches/lvm/2.02.183/lvm2-011-HPPA-no-O_DIRECT.patch)0
-rw-r--r--patches/lvm/2.02.188/lvm2-012-mallinfo.patch11
-rw-r--r--patches/lvm/2.02.188/lvm2-013-fix-stdio-usage.patch49
-rw-r--r--patches/lvm/2.02.188/lvm2-014-make-malloc-realloc-check-optional.patch23
-rw-r--r--patches/lvm/2.02.188/lvm2-015-mksh_build.patch13
-rw-r--r--patches/lvm/2.02.188/lvm2-016-implement-libc-specific-reopen_stream.patch24
-rw-r--r--patches/lvm/2.02.188/lvm2-017-udev_remove_unsupported_option.patch34
-rw-r--r--patches/lvm/2.03.22/lvm2-001-example.conf.in.patch42
-rw-r--r--patches/lvm/2.03.22/lvm2-002-always-make-static-libdm.patch42
-rw-r--r--patches/lvm/2.03.22/lvm2-003-lvm2create_initrd.patch72
-rw-r--r--patches/lvm/2.03.22/lvm2-004-createinitrd.patch18
-rw-r--r--patches/lvm/2.03.22/lvm2-005-locale-muck.patch11
-rw-r--r--patches/lvm/2.03.22/lvm2-011-HPPA-no-O_DIRECT.patch12
-rw-r--r--patches/lvm/2.03.22/lvm2-013-fix-stdio-usage.patch22
-rw-r--r--patches/lvm/2.03.22/lvm2-014-make-malloc-realloc-check-optional.patch23
-rw-r--r--patches/lvm/2.03.22/lvm2-016-implement-libc-specific-reopen_stream.patch24
-rw-r--r--patches/lvm/2.03.22/lvm2-018-autoconf-2.72-egrep.patch30
-rw-r--r--patches/mdadm/4.2/mdadm-3.4-sysmacros.patch31
-rw-r--r--patches/open-iscsi/2.1.4/open-iscsi-2.1.4-Makefiles.patch99
-rw-r--r--patches/open-iscsi/2.1.4/open-iscsi-2.1.4-static-iscsistart.patch11
-rw-r--r--patches/open-iscsi/2.1.8/open-iscsi-2.1.8-Makefiles.patch24
-rw-r--r--patches/open-iscsi/2.1.8/open-iscsi-2.1.8-static-iscsistart.patch11
-rw-r--r--patches/thin-provisioning-tools/0.9.0/thin-provisioning-tools-0.8.5-no-manpages.patch27
-rw-r--r--patches/thin-provisioning-tools/0.9.0/thin-provisioning-tools-0.9.0-build-fixes.patch85
-rw-r--r--patches/unionfs-fuse/2.0/unionfs-fuse-2.0-use-PKG_CONFIG-env-variable.patch24
-rw-r--r--patches/xfsprogs/5.13.0/xfsprogs-5.10.0-remove-inih-dep.patch127
-rw-r--r--patches/zlib/1.2.11/zlib-1.2.11-fix-deflateParams-usage.patch67
-rw-r--r--patches/zlib/1.2.11/zlib-1.2.11-minizip-drop-crypt-header.patch38
-rw-r--r--patches/zlib/1.3.1/zlib-1.2.11-minizip-drop-crypt-header.patch38
-rwxr-xr-xpath_expander.py18
-rw-r--r--worker_modules/dropbear.sh161
-rw-r--r--worker_modules/gkbuild.sh770
-rw-r--r--worker_modules/unpack.sh26
283 files changed, 32378 insertions, 26808 deletions
diff --git a/.gitignore b/.gitignore
index f55fd0c..75e2eda 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,5 @@
/genkernel.8
/genkernel-*.tar.bz2
+/genkernel-*.tar.xz
/ChangeLog
/arch/*/generated-config
diff --git a/BUGS b/BUGS
index 84c366c..c8a0b3c 100644
--- a/BUGS
+++ b/BUGS
@@ -3,7 +3,3 @@
This file lists out some known bugs which need to be resolved. Do not file bug
reports against these bugs, as the genkernel team is aware of them and has yet
to implement a solution.
-
-- busybox linked statically against glibc fails DNS resolution without the
- /lib/libnss_{files,dns}.so libraries
--
diff --git a/ChangeLog.old b/ChangeLog.old
deleted file mode 100644
index 9128565..0000000
--- a/ChangeLog.old
+++ /dev/null
@@ -1,4782 +0,0 @@
-# After 2012/11/01, the changelog is now auto-generated.
-# This file is for historical purposes only.
-# ChangeLog for genkernel
-# Copyright:
-# - 2003-2008 Gentoo Foundation
-# - 2008-2012 Various authors (see AUTHORS)
-# Distributed under the GPL v2
-# $Id: 7902101f65eb47fdc5ed4b116ee234aa23686e1b $
-
- 19 Oct 2012; Robin H. Johnson <robbat2@gentoo.org> gen_bootloader.sh:
- Missing then keyword.
-
- 15 Oct 2012; Peter Hjalmarsson <xake@rymdraket.net> defaults/linuxrc:
- Support using init= on the command line.
-
- 15 Oct 2012; Peter Hjalmarsson <xake@rymdraket.net> README,
- doc/genkernel.8.txt, gen_bootloader.sh, genkernel:
- Update the documentation to reflect current status re real_root/init.
-
- 15 Oct 2012; Robin H. Johnson <robbat2@gentoo.org> genkernel:
- Bump to 3.4.44.2 with depmod corner cases by xake.
-
- 15 Oct 2012; Peter Hjalmarsson <xake@rymdraket.net> gen_compile.sh:
- Fix calling of depmod.
-
- 15 Oct 2012; Robin H. Johnson <robbat2@gentoo.org> genkernel:
- Bump for 3.4.44.1 with bugfix-only.
-
- 15 Oct 2012; Robin H. Johnson <robbat2@gentoo.org> gen_compile.sh,
- gen_package.sh:
- Fix corner cases on OUTPUTDIR.
-
- 14 Oct 2012; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump version to 3.4.44
-
- 14 Oct 2012; Robin H. Johnson <robbat2@gentoo.org> gen_cmdline.sh,
- gen_configkernel.sh, gen_determineargs.sh:
- Bug #432956: Easy to include VirtIO support in kernel.
-
- 13 Oct 2012; Robin H. Johnson <robbat2@gentoo.org> arch/alpha/modules_load,
- arch/arm/modules_load, arch/ia64/modules_load, arch/mips/modules_load,
- arch/parisc/modules_load, arch/parisc64/modules_load, arch/ppc/modules_load,
- arch/ppc64/modules_load, arch/sparc/modules_load, arch/sparc64/modules_load,
- arch/um/modules_load, arch/x86/modules_load, arch/x86_64/modules_load,
- defaults/modules_load:
- Clean up module drift over the years. Just MODULES_CRYPTO left.
-
- 13 Oct 2012; Robin H. Johnson <robbat2@gentoo.org> doc/genkernel.8.txt:
- Document resume parameters.
-
- 13 Oct 2012; Robin H. Johnson <robbat2@gentoo.org> arch/alpha/modules_load,
- arch/arm/modules_load, arch/ia64/modules_load, arch/mips/modules_load,
- arch/parisc/modules_load, arch/parisc64/modules_load, arch/ppc/modules_load,
- arch/ppc64/modules_load, arch/sparc/modules_load, arch/sparc64/modules_load,
- arch/um/modules_load, arch/x86/modules_load, arch/x86_64/modules_load,
- defaults/initrd.scripts, defaults/linuxrc, defaults/modules_load,
- gen_configkernel.sh, gen_initramfs.sh:
- Bug #286187: Complete multipath support.
-
- 13 Oct 2012; Robin H. Johnson <robbat2@gentoo.org> defaults/initrd.defaults,
- defaults/initrd.scripts, defaults/linuxrc, doc/genkernel.8.txt:
- Bug #351873: More livecd control, and initramfs livecd argument
- documentation.
-
- 13 Oct 2012; Robin H. Johnson <robbat2@gentoo.org> arch/alpha/kernel-config,
- arch/ppc/kernel-config, arch/x86/kernel-config, arch/x86_64/kernel-config,
- defaults/kernel-config:
- Bug #336170: amd74xx was long-replaced by pata_amd. The old driver is
- problematic, as even with the pata_amd module loaded, it will not release the
- device. Disable the old driver on remaining platforms, add pata_amd where
- missing & needed (not alpha).
-
- 13 Oct 2012; Robin H. Johnson <robbat2@gentoo.org> gen_initramfs.sh:
- Bug #414581: ensure built-in initramfs compress config options are set to
- avoid silentoldconfig bailing out.
-
- 13 Oct 2012; Łukasz Stelmach <stlman@poczta.fm> gen_cmdline.sh,
- gen_compile.sh, gen_configkernel.sh, gen_determineargs.sh, gen_funcs.sh,
- genkernel:
- Bug #435210 support external kernel output location, to allow pristine
- source.
-
- 13 Oct 2012; Robin H. Johnson <robbat2@gentoo.org> gen_compile.sh:
- Bug #397947: Run depmod on new modules to avoid need to run at every boot on
- unionfs systems, or systemd that never runs it.
-
- 13 Oct 2012; Robin H. Johnson <robbat2@gentoo.org> gen_initramfs.sh:
- Put the version of genkernel used in a build into /etc/build_id.
-
- 13 Oct 2012; Robin H. Johnson <robbat2@gentoo.org> defaults/linuxrc:
- Extra creation of /run in the LiveCD scope, before any union/aufs mount.
-
- 03 Oct 2012; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump version to 3.4.43
-
- 03 Oct 2012; Sebastian Pipping <sping@gentoo.org> gen_initramfs.sh:
- Use actual kernel config for check of available compression methods (bug
- #436820)
-
- 03 Oct 2012; Dustin Frisch <dustin.frisch@gmail.com> defaults/linuxrc:
- With boot parameter real_init=/foo look for ${NEW_ROOT}/foo, not
- ${NEW_ROOT}/sbin/init (bug #437080)
-
- 23 Sep 2012; Sebastian Pipping <sping@gentoo.org> gen_initramfs.sh:
- Append e2fsck and mke2fs to initramfs. Original patch by Rick Farina
-
- 10 Sep 2012; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump version to 3.4.42
-
- 10 Sep 2012; Sebastian Pipping <sping@gentoo.org>
- +patches/busybox/1.20.2/busybox-1.20.2-glibc-sys-resource.patch:
- Add busybox 1.20.2 patch: busybox-1.20.2-glibc-sys-resource.patch
-
- 10 Sep 2012; Sebastian Pipping <sping@gentoo.org>
- +patches/busybox/1.20.2/1.18.1-openvt.diff,
- +patches/busybox/1.20.2/busybox-1.7.4-signal-hack.patch,
- +patches/busybox/1.20.2/busybox-1.20.1-mdstart.patch:
- Copy busybox patches from 1.20.1 to 1.20.2
-
- 30 Aug 2012; Fabio Erculiani <lxnay@gentoo.org> defaults/linuxrc:
- mount /mnt/cdrom inside target chroot even when aufs/unionfs is disabled
-
- 14 Aug 2012; Richard Yao <ryao@gentoo.org> genkernel:
- Bump version to 3.4.41
-
- 12 Aug 2012; Sebastian Pipping <sping@gentoo.org> +defaults/software.sh,
- genkernel.conf:
- Move software version defaults for defaults/software.sh to ease the
- etc-update game
-
- 12 Aug 2012; Sebastian Pipping <sping@gentoo.org> genkernel:
- Fix parsing of --config=... command line option
-
- 27 Jul 2012; Sebastian Pipping <sping@gentoo.org> defaults/initrd.scripts,
- genkernel:
- Bump version to 3.4.40
-
- 24 Jul 2012; Robin H. Johnson <robbat2@gentoo.org> defaults/initrd.scripts:
- Flip awk return values.
-
- 24 Jul 2012; Robin H. Johnson <robbat2@gentoo.org> defaults/initrd.scripts:
- Minor thinko in devpts check.
-
- 24 Jul 2012; Robin H. Johnson <robbat2@gentoo.org> defaults/initrd.scripts:
- Prior commit to only mount devtmpfs and devpts if they were not already
- mounted made assumptions about the device names they were mounted as. Check
- the filesystem column of /proc/mounts instead.
-
- 21 Jul 2012; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump version to 3.4.39
-
- 17 Jul 2012; Robin H. Johnson <robbat2@gentoo.org> arch/x86_64/kernel-config:
- Bug #399703: amd64 default kernel config did not have EFI support.
-
- 15 July 2012; Robin H. Johnson <robbat2@gentoo.org> doc/genkernel.8.txt,
- Document the isoboot option, as designed for GRUB2 usage 3 years ago.
-
- 09 Jul 2012; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump version to 3.4.38
-
- 09 Jul 2012; Sebastian Pipping <sping@gentoo.org> gen_compile.sh:
- Fix linking of unionfs-fuse 0.24
-
- 09 Jul 2012; Sebastian Pipping <sping@gentoo.org>
- patches/fuse/2.8.6/fuse-2.8.6-glibc-2.14.patch:
- Allow compilation of FUSE 2.8.6 with glibc 2.14 (bug #425080)
-
- 09 Jul 2012; Sebastian Pipping <sping@gentoo.org> defaults/initrd.scripts:
- Restore previous handling of real_root due to report of regressions (bug
- #419965)
-
- 08 Jul 2012; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump version to 3.4.37
-
- 08 Jul 2012; Sebastian Pipping <sping@gentoo.org> gen_initramfs.sh,
- genkernel:
- Always report used kernel config file
-
- 08 Jul 2012; Sebastian Pipping <sping@gentoo.org> gen_configkernel.sh,
- gen_initramfs.sh:
- Catch case with no initramfs compression supported by kernel (bug #423847)
-
- 08 Jul 2012; Sebastian Pipping <sping@gentoo.org> gen_configkernel.sh,
- gen_initramfs.sh:
- Fix detection of initramfs compression with bzip2 as best candidate
-
- 08 Jul 2012; Sebastian Pipping <sping@gentoo.org> arch/x86/modules_load,
- arch/x86_64/modules_load, defaults/modules_load:
- Add xts to MODULES_CRYPTO (bug #425028)
-
- 01 Jul 2012; Sebastian Pipping <sping@gentoo.org> gen_configkernel.sh,
- gen_package.sh:
- Support --kernel-config=/proc/config.gz (bug #421027)
-
- 08 Jul 2012; Kenny Cheng <kenny97821419@gmail.com> defaults/linuxrc:
- Add /run to support openrc >=0.10 (bug #425180)
-
- 11 Jun 2012; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump version to 3.4.36
-
- 11 Jun 2012; Sebastian Pipping <sping@gentoo.org> defaults/initrd.scripts:
- Respect real_root for plain dm-crypt without LVM (bug #419965)
-
- 10 Jun 2012; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump version to 3.4.35
-
- 10 Jun 2012; Sebastian Pipping <sping@gentoo.org>
- +patches/busybox/1.20.1/1.18.1-openvt.diff,
- +patches/busybox/1.20.1/busybox-1.7.4-signal-hack.patch,
- +patches/busybox/1.20.1/busybox-1.20.1-mdstart.patch:
- Support busybox 1.20.1 (bug #419511)
-
- 04 Jun 2012; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump version to 3.4.34
-
- 02 Jun 2012; Sebastian Pipping <sping@gentoo.org> defaults/linuxrc:
- Support bind mounts from /etc/initramfs.mounts (bug #418463)
-
- 02 Jun 2012; Sebastian Pipping <sping@gentoo.org> arch/x86/modules_load,
- arch/x86_64/modules_load, defaults/modules_load:
- Make sure that cbc.ko and aes*.ko needed for cbc-essiv:sha256 (=default) disk
- encryption are included with the initramfs (bug #416973)
-
- 28 May 2012; Sebastian Pipping <sping@gentoo.org> gen_funcs.sh:
- Fix an e2fsprogs compilation leftover (bug #417095), reported by Juergen Rose
-
- 17 May 2012; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump to 3.4.33.1
-
- 17 May 2012; Sebastian Pipping <sping@gentoo.org> defaults/linuxrc:
- Fix call to blkid as "blkid -l -t UUID=foo" (without -o device) does not seem
- to work well with blkid of util-linux
-
- 17 May 2012; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump version to 3.4.33
-
- 17 May 2012; Sebastian Pipping <sping@gentoo.org>
- -patches/e2fsprogs/1.42/e2fsprogs-1.41.12-getpagesize.patch, gen_compile.sh,
- gen_initramfs.sh, genkernel, genkernel.conf:
- Use blkid from system's util-linux rather than compiling e2fsprogs ourselves
-
- 14 May 2012; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump version to 3.4.32
-
- 14 May 2012; Sebastian Pipping <sping@gentoo.org> gen_initramfs.sh:
- Stop removing lvm/dmsetup from the initramfs (bug #415697), reported by
- I.zaufi, bug introduced in 9f36ecc125bf2c20bd28c0ad513577a858140a77 affects
- genkernel >=3.4.30
-
- 12 May 2012; Sebastian Pipping <sping@gentoo.org> arch/x86/kernel-config,
- arch/x86_64/kernel-config, defaults/kernel-config:
- Set CONFIG_DEVTMPFS=y on x86, x86_64, default for udev
-
- 12 May 2012; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump version to 3.4.31
-
- 18 Apr 2012; Robin H. Johnson <robbat2@gentoo.org> gen_initramfs.sh:
- lddtree call must be outside the for loop.
-
- 16 Apr 2012; Robin H. Johnson <robbat2@gentoo.org> gen_initramfs.sh:
- Use CC0 instead of public domain for copy_binaries to cover French
- jurisdiction concerns.
-
- 16 Apr 2012; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump version to 3.4.30
-
- 16 Apr 2012; Sebastian Pipping <sping@gentoo.org> gen_initramfs.sh:
- Support a non-static cryptsetup binary (bug #409277)
-
- 15 Apr 2012; Robin H. Johnson <robbat2@gentoo.org> gen_initramfs.sh:
- Release copy_binaries function as public domain.
-
- 15 Apr 2012; Robin H. Johnson <robbat2@gentoo.org> gen_initramfs.sh:
- Handle other binary paths for LVM.
-
- 09 Apr 2012; Sebastian Pipping <sping@gentoo.org> defaults/initrd.scripts,
- defaults/keymaps/keymapList, defaults/keymaps/sf.map:
- Add keymap "sf" from Pentoo
-
- 08 Apr 2012; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump version to 3.4.29
-
- 08 Apr 2012; Mike Auty <ikelos@gentoo.org> gen_bootloader.sh:
- Support for Grub 2, adjustements by Tomasz Wasiak
-
- 08 Apr 2012; Sebastian Pipping <sping@gentoo.org> gen_initramfs.sh,
- genkernel.conf:
- Add "fastest" to supported initrd compressions
-
- 08 Apr 2012; Sebastian Pipping <sping@gentoo.org> gen_initramfs.sh:
- Support comression "lzop" (not just "lzo") as wrongly advertised by comments
- in genkernel.conf before
-
- 08 Apr 2012; Sebastian Pipping <sping@gentoo.org> gen_initramfs.sh:
- Be more helpful when requested compression is not available
-
- 08 Apr 2012; Sebastian Pipping <sping@gentoo.org> gen_initramfs.sh:
- Error out on unknown initrd compression, reported by Peter Gantner (bug
- #411197)
-
- 08 Apr 2012; Sebastian Pipping <sping@gentoo.org> gen_initramfs.sh:
- Fix initrd compression "gzip", reported by Peter Gantner (bug #411197)
-
- 30 Mar 2012; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump version to 3.4.28
-
- 29 Mar 2012; Sebastian Pipping <sping@gentoo.org> defaults/initrd.scripts:
- Restore original /dev/tty after GPG (bug #410073), report and initial patch
- by Brendan Pike
-
- 22 Mar 2012; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump version to 3.4.27
-
- 22 Mar 2012; Sebastian Pipping <sping@gentoo.org> gen_initramfs.sh:
- Fail hard on LUKS inclusion error (bug #409277), advise about
- sys-fs/cryptsetup[static], drop support for cryptsetup binary from /bin/
-
- 22 Mar 2012; Sebastian Pipping <sping@gentoo.org> gen_funcs.sh,
- gen_initramfs.sh:
- Make errors stand out more
-
- 22 Mar 2012; Sebastian Pipping <sping@gentoo.org> defaults/initrd.scripts,
- defaults/linuxrc:
- Fix docache (bug #397309)
-
- 22 Mar 2012; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump version to 3.4.26
-
- 16 Mar 2012; Sebastian Pipping <sping@gentoo.org> defaults/initrd.scripts,
- defaults/linuxrc:
- Drop into debug shell when squashfs could not be mounted
-
- 16 Mar 2012; Sebastian Pipping <sping@gentoo.org> defaults/initrd.scripts,
- defaults/linuxrc:
- Drop into debug shell when files could not be copied into tmpfs
-
- 16 Mar 2012; Sebastian Pipping <sping@gentoo.org> defaults/initrd.scripts,
- defaults/linuxrc:
- Improve handling of missing /etc/fstab
-
- 16 Mar 2012; Sebastian Pipping <sping@gentoo.org> defaults/initrd.scripts:
- No longer use parameter "-r" (for regex intervals) that busybox awk does not
- support
-
- 10 Mar 2012; Robin H. Johnson <robbat2@gentoo.org> genkernel:
- Bump version for release.
-
- 25 Feb 2012; Sebastian Pipping <sping@gentoo.org> arch/x86/modules_load,
- arch/x86_64/modules_load, defaults/modules_load:
- Make sure the sha256 module makes it into the initramfs (bug #405495).
- Reported by Ogelpre.
-
- 20 Feb 2012; Robin H. Johnson <robbat2@gentoo.org> defaults/linuxrc:
- With the new /usr mounting, if the device path that ends up in /proc/mounts
- ends up being different than in /etc/fstab due to symlinks, mount -a will
- always exit 32. Avoid by resolving symlinks like util-linux does.
-
- 14 Feb 2012; Robin H. Johnson <robbat2@gentoo.org> gen_compile.sh,
- gen_initramfs.sh:
- dmraid is entirely broken if you try to use the system static
- LVM/device-mapper. Instead start always building LVM2 for the initramfs,
- using DESTDIR for cleaner install. Dead code paths for old LVM2 build not
- removed yet until more users have tested.
-
- 12 Feb 2012; Robin H. Johnson <robbat2@gentoo.org> gen_compile.sh:
- More UTILS_CROSS_COMPILE prefix on strip calls.
-
- 12 Feb 2012; Robin H. Johnson <robbat2@gentoo.org> arch/alpha/modules_load,
- arch/arm/modules_load, arch/ia64/modules_load, arch/mips/modules_load,
- arch/parisc/modules_load, arch/parisc64/modules_load, arch/ppc/modules_load,
- arch/ppc64/modules_load, arch/sparc/modules_load, arch/sparc64/modules_load,
- arch/um/modules_load, arch/x86/modules_load, arch/x86_64/modules_load,
- defaults/modules_load:
- Bug #401583: include more DM and MD modules for other RAID/LVM
- configurations.
-
- 12 Feb 2012; Robin H. Johnson <robbat2@gentoo.org> gen_compile.sh:
- Bug #265005: ensure CROSS_COMPILE is set for cross-compile strip calls to
- work.
-
- 12 Feb 2012; Robin H. Johnson <robbat2@gentoo.org>
- +patches/dmraid/dmraid-1.0.0_rc16-as-needed2.patch,
- +patches/dmraid/dmraid-1.0.0_rc16-return-all-sets.patch,
- +patches/dmraid/dmraid-1.0.0_rc16-static-build-fixes.patch,
- +patches/dmraid/dmraid-1.0.0_rc16-undo-p-rename.patch,
- +patches/dmraid/dmraid-1.0.0.rc16-3-staticlink.patch, genkernel.conf:
- Bug #398467: Update dmraid. Also add other patches from Portage tree.
-
- 12 Feb 2012; Robin H. Johnson <robbat2@gentoo.org> gen_cmdline.sh,
- gen_compile.sh, gen_determineargs.sh, gen_funcs.sh, genkernel.conf:
- device-mapper "update". It was merged into LVM2-2.02.67 upstream in 2010.
- Bug #398467 is wrong for the device-mapper update.
-
- 09 Feb 2012; Robin H. Johnson <robbat2@gentoo.org> defaults/initrd.scripts,
- defaults/linuxrc:
- Dogfooding of the /usr mount code with the matching OpenRC change to make the
- mounts RW revealed some bugs and gotchas in our prior code, now fixed and
- verified to work.
-
- 06 Feb 2012; Robin H. Johnson <robbat2@gentoo.org> arch/alpha/config.sh,
- arch/arm/config.sh, arch/ia64/config.sh, arch/mips/config.sh,
- arch/parisc/config.sh, arch/parisc64/config.sh, arch/ppc/config.sh,
- arch/ppc64/config.sh, arch/sparc/config.sh, arch/sparc64/config.sh,
- arch/um/config.sh, arch/x86/config.sh, arch/x86_64/config.sh:
- Ensure default for new initramfs compression is used.
-
- 06 Feb 2012; Robin H. Johnson <robbat2@gentoo.org> gen_initramfs.sh:
- Bugfixes in new code branches that I didn't test fully.
-
- 06 Feb 2012; Robin H. Johnson <robbat2@gentoo.org> doc/genkernel.8.txt,
- gen_cmdline.sh:
- Update documentation for new initramfs compression.
-
- 06 Feb 2012; Robin H. Johnson <robbat2@gentoo.org> defaults/config.sh,
- gen_cmdline.sh, gen_determineargs.sh, gen_initramfs.sh, genkernel.conf:
- Import customizable compression for initramfs, based on Pentoo development.
-
- 06 Feb 2012: Richard Yao <ryao@cs.stonybrook.edu> arch/alpha/modules_load,
- arch/arm/modules_load, arch/ia64/modules_load, arch/mips/modules_load,
- arch/parisc/modules_load, arch/parisc64/modules_load, arch/ppc/modules_load,
- arch/ppc64/modules_load, arch/sparc/modules_load, arch/sparc64/modules_load,
- arch/um/modules_load, arch/x86/modules_load, arch/x86_64/modules_load,
- defaults/busy-config, defaults/initrd.scripts, defaults/linuxrc,
- defaults/modules_load, doc/genkernel.8.txt, gen_cmdline.sh,
- gen_determineargs.sh, gen_initramfs.sh, genkernel:
- This provides ZFS support, to go with the sys-fs/zfs package.
-
- 06 Feb 2012; Robin H. Johnson <robbat2@gentoo.org> gen_initramfs.sh:
- Refactor copy_binaries and multipath slightly for ease of usage and readability.
-
- 06 Feb 2012: Richard Yao <ryao@cs.stonybrook.edu> gen_initramfs.sh:
- Refactor multipath initramfs generation using copy_binaries.
-
- 06 Feb 2012: Richard Yao <ryao@cs.stonybrook.edu> gen_initramfs.sh:
- copy_binaries utility function for putting binaries and librares into
- initramfs (see git commit for full details).
-
- 06 Feb 2012; Robin H. Johnson <robbat2@gentoo.org> defaults/initrd.scripts:
- Support virtio devices, and provide fallback of all remaining devices.
-
- 03 Feb 2012; Sebastian Pipping <sping@gentoo.org> defaults/initrd.scripts:
- Support SD card readers. Patch by Rick Farina
-
- 24 Jan 2012; Sebastian Pipping <sping@gentoo.org> .gitignore, genkernel:
- Bump version to 3.4.24
-
- 24 Jan 2012; Sebastian Pipping <sping@gentoo.org> arch/alpha/kernel-config,
- arch/ia64/kernel-config, arch/ppc/kernel-config, arch/sparc64/kernel-config,
- arch/x86/kernel-config:
- Unset CONFIG_SYSFS_DEPRECATED for udev (bug #335763)
-
- 15 Jan 2012; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump version to 3.4.23.1
-
- 14 Jan 2012; Sebastian Pipping <sping@gentoo.org> defaults/busy-config:
- Re-activate mdstart in busybox config
-
- 14 Jan 2012; Sebastian Pipping <sping@gentoo.org>
- +patches/busybox/1.19.3/busybox-1.19.3-mdstart.patch:
- Port mdstart patch to busybox 1.19.3
-
- 13 Jan 2012; Sebastian Pipping <sping@gentoo.org> defaults/busy-config:
- Busybox config: Enable verbose usage
-
- 13 Jan 2012; Sebastian Pipping <sping@gentoo.org> defaults/busy-config:
- Update busybox config using "yes '' | make oldconfig"
-
- 13 Jan 2012; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump version to 3.4.23
-
- 13 Jan 2012; Sebastian Pipping <sping@gentoo.org>
- +patches/busybox/1.19.3/1.18.1-openvt.diff,
- +patches/busybox/1.19.3/busybox-1.7.4-signal-hack.patch:
- Copy patches from busybox/1.18.1 to busybox/1.19.3
-
- 13 Jan 2012; Sebastian Pipping <sping@gentoo.org>
- +patches/e2fsprogs/1.42/e2fsprogs-1.41.12-getpagesize.patch:
- Add a patch for e2fsprogs/1.42 from main tree
-
- 13 Jan 2012; Sebastian Pipping <sping@gentoo.org>
- +patches/lvm/2.02.88/lvm2-2.02.72-no-export-dynamic.patch:
- Copy patch from lvm/2.02.74 to lvm/2.02.88
-
- 13 Jan 2012; Robin H. Johnson <robbat2@gentoo.org> gen_determineargs.sh:
- Prior to commit a141d715, CMD_NOINSTALL had no default set, but most of the
- usages were of the form "! isTrue ${CMD_NOINSTALL}", which on an unset value,
- came out as false. These were replaced by "isTrue ${CMD_INSTALL}", but my
- analysis of the needed default value was wrong, and was set to false instead
- of true.
-
- 13 Jan 2012; Sebastian Pipping <sping@gentoo.org> genkernel.conf:
- Replace "# FOO=bar" by "#FOO=bar" in genkernel.conf to (1) distinguish
- commented-out options from their explanatory comments and (2) to return
- consistenty (bug #398471)
-
- 12 Jan 2012; Sebastian Pipping <sping@gentoo.org> gen_compile.sh:
- Support application of patches before compilation for tools which previously
- lacked that support. Special thanks to Tomasz Wasiak (bug #398469)
-
- 08 Jan 2012; Sebastian Pipping <sping@gentoo.org> arch/alpha/modules_load,
- arch/arm/modules_load, arch/ia64/modules_load, arch/mips/modules_load,
- arch/parisc/modules_load, arch/parisc64/modules_load, arch/ppc/modules_load,
- arch/ppc64/modules_load, arch/sparc/modules_load, arch/sparc64/modules_load,
- arch/um/modules_load, arch/x86/modules_load, arch/x86_64/modules_load:
- Add mpt2sas to auto-load SCSI modules as requested by Borg Onion
-
- 06 Jan 2012; Robin H. Johnson <robbat2@gentoo.org> genkernel:
- Bump to 3.4.22 to reflect /usr mount support.
-
- 06 Jan 2012; Robin H. Johnson <robbat2@gentoo.org> defaults/initrd.scripts,
- defaults/linuxrc:
- Code to mount /usr and other filesystems as needed for new udev and systemd.
-
- 06 Jan 2012; Robin H. Johnson <robbat2@gentoo.org> genkernel:
- Bump version to 3.4.21.2. Stock configuration of 3.4.21.1 generates
- unbootable initramfs!
-
- 06 Jan 2012; Robin H. Johnson <robbat2@gentoo.org> gen_determineargs.sh,
- genkernel.conf:
- Fix some defaults otherwise you get an initramfs without any modules!
-
- 06 Jan 2012; Robin H. Johnson <robbat2@gentoo.org> defaults/busy-config:
- Awk support in busybox is needed for initramfs setup code (to parse fstab).
-
- 06 Jan 2012; Robin H. Johnson <robbat2@gentoo.org> TODO:
- Multipath has been done for a while now.
-
- 06 Jan 2012; Robin H. Johnson <robbat2@gentoo.org> genkernel.conf:
- Add a configuration option for --install, so users can get it as a default.
- Defaults to "no", due to catalyst.
-
- 06 Jan 2012; Robin H. Johnson <robbat2@gentoo.org> ChangeLog:
- Fix up changelog
-
- 05 Jan 2012; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump version to 3.4.21.1
-
- 05 Jan 2012; Sebastian Pipping <sping@gentoo.org> defaults/initrd.scripts,
- defaults/linuxrc, doc/genkernel.8.txt:
- Introduce boot parameter root_trim=(yes|no) for SSDs.
- Special thanks:
- - Christian Kruse
-
- 04 Jan 2012; Sebastian Pipping <sping@gentoo.org> arch/um/busy-config,
- defaults/busy-config, netboot/busy-config:
- Set CONFIG_NFSMOUNT=n in busybox config to fix compilation with glibc 2.14.
- Special thanks:
- - Borg Onion
-
- 04 Jan 2012; Robin H. Johnson <robbat2@gentoo.org> arch/mips/config.sh,
- doc/genkernel.8.txt, gen_cmdline.sh, gen_compile.sh, gen_determineargs.sh,
- gen_funcs.sh, gen_initramfs.sh, genkernel, genkernel.conf:
- Provide real boolean commandline options for options that were previously
- only available as booleans in the config, so that they can be enable in
- configuration and overridden to disable on the commandline. Remove negation
- on options: NOINSTALL, NORAMDISKMODULES, NO_KERNEL_SOURCES.
-
- 08 Nov 2011; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump version to 3.4.20
-
- 31 Oct 2011; Sebastian Pipping <sping@gentoo.org> defaults/initrd.scripts:
- Fix return value of crypt_filter() which caused bogus LUKS opening errors
- (bug #383545)
-
- 30 Oct 2011; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump version to 3.4.19
-
- 25 Oct 2011; Fabio Erculiani <lxnay@gentoo.org> gen_compile.sh:
- fix random build failures during e2fsprogs, force -j1
-
- 08 Oct 2011; Fabio Erculiani <lxnay@gentoo.org> defaults/initrd.defaults,
- defaults/initrd.scripts, defaults/linuxrc:
- Do not hardcode /mnt/cdrom path across the whole code, use CDROOT_PATH
- instead. At the same time, mount cdrom into /mnt/cdrom instead of
- /newroot/mnt/cdrom (which is now just a bind mount), this avoids
- losetup to expose unavailable paths inside the live system, breaking
- mkfs.btrfs (next upstream version, which does silly things with
- /proc/mounts).
-
- 07 Oct 2011; Robin H. Johnson <robbat2@gentoo.org>
- patches/busybox/1.18.1/1.18.1-mdstart.diff:
- Fix patch typo that broke compile.
-
- 22 Sep 2011; Robin H. Johnson <robbat2@gentoo.org> defaults/initrd.scripts,
- defaults/linuxrc:
- Fix trailing backtick and root-on-LVM.
-
- 13 Sep 2011; Fabio Erculiani <lxnay@gentoo.org> gen_compile.sh,
- gen_initramfs.sh:
- dmraid requires dmsetup to assign UUID to discovered RAID volumes, close bug
- #382555
-
- 11 Sep 2011; Fabio Erculiani <lxnay@gentoo.org> defaults/initrd.scripts,
- defaults/linuxrc:
- drop parse_opt usage and crufty, deprecated subshelling through
-
- 30 Aug 2011; Sebastian Pipping <sping@gentoo.org> defaults/initrd.scripts:
- Fix quoting issue (bug #380729).
- Thanks to:
- - Axel Bringenberg
-
- 30 Aug 2011; Sebastian Pipping <sping@gentoo.org>
- +patches/mdadm/3.1.4/mdadm-3.1.4-z-now.patch, gen_compile.sh:
- Enable patch application for mdadm, add patch to fix compilation (bug
- #381089)
-
- 28 Aug 2011; Fabio Erculiani <lxnay@gentoo.org> defaults/initrd.scripts,
- defaults/linuxrc, doc/genkernel.8.txt:
- Add basic support to AUFS2, requires kernel with aufs module or built-in
-
- 16 Aug 2011; Fabio Erculiani <lxnay@gentoo.org> gen_compile.sh:
- gen_compile: correct MAKEOPTS usage on utils task
-
- 16 Aug 2011; Fabio Erculiani <lxnay@gentoo.org> gen_compile.sh:
- gen_compile: always use -j1 with kernel *_install targets, fixes compilation
- with make 3.82
-
- 06 Aug 2011; Sebastian Pipping <sping@gentoo.org> gen_initramfs.sh:
- No longer copy /lib/libsysfs*so* for multipath-tools (bug #300841, bug
- #377709)
-
- 31 Jul 2011; Sebastian Pipping <sping@gentoo.org>
- -patches/busybox/1.7.4/1.7.4-ash-timeout.diff,
- -patches/busybox/1.7.4/1.7.4-mdstart.diff,
- -patches/busybox/1.7.4/1.7.4-mount-umount-i-option.diff,
- -patches/busybox/1.7.4/1.7.4-openvt.diff,
- -patches/busybox/1.7.4/1.7.4-static-error.diff,
- -patches/busybox/1.7.4/1.7.4-make-3.82.diff, -patches/busybox/1.7.4/README,
- -patches/busybox/1.7.4/busybox-1.7.4-signal-hack.patch:
- End support for 4 years old busybox 1.7.4 (bug #377133)
-
- 31 Jul 2011; Sebastian Pipping <sping@gentoo.org> doc/genkernel.8.txt:
- Improve doc on filing bugs
-
- 28 Jul 2011; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump version to 3.4.18
-
- 27 Jul 2011; Sebastian Pipping <sping@gentoo.org> defaults/initrd.scripts:
- Fix display of seconds waiting (bug #376575)
- Thanks to Richard Scott
-
- 26 Jul 2011; Robin H. Johnson <robbat2@gentoo.org> gen_arch.sh:
- Bug #376467: fix kernel version checks for 3.0 kernel.
-
- 23 Jul 2011; Sebastian Pipping <sping@gentoo.org> defaults/initrd.scripts,
- netboot/linuxrc.x:
- Fix permissions of /dev/pts (bug #375947)
-
- 20 Jul 2011; Fabio Erculiani <lxnay@sabayon.org> defaults/config.sh,
- doc/genkernel.8.txt, gen_cmdline.sh, gen_compile.sh:
- Make possible to compile XEN based kernels providing --kernel-target= and
- --kernel-binary= switches
-
- 03 Jul 2011; Sebastian Pipping <sping@gentoo.org> genkernel:
- Set version to 3.4.17
-
- 03 Jul 2011; Sebastian Pipping <sping@gentoo.org> arch/alpha/modules_load,
- arch/arm/modules_load, arch/ia64/modules_load, arch/mips/modules_load,
- arch/parisc/modules_load, arch/parisc64/modules_load, arch/ppc/modules_load,
- arch/ppc64/modules_load, arch/sparc/modules_load, arch/sparc64/modules_load,
- arch/um/modules_load, arch/x86/modules_load, arch/x86_64/modules_load,
- defaults/initrd.defaults, defaults/initrd.scripts, defaults/linuxrc,
- defaults/modules_load, doc/genkernel.8.txt, gen_cmdline.sh,
- gen_determineargs.sh, gen_initramfs.sh, genkernel, genkernel.conf,
- maintenance/docmatcher.py:
- Remove support for sys-fs/evms, as it was removed from Gentoo (bug #372423)
-
- 22 Jun 2011; Sebastian Pipping <sping@gentoo.org> gen_compile.sh:
- Make --arch-override= affect "make menuconfig" (bug #247246)
-
- 13 Jun 2011; Sebastian Pipping <sping@gentoo.org> arch/x86_64/kernel-config:
- Unset CONFIG_EMBEDDED on arch amd64
-
- 13 Jun 2011; Sebastian Pipping <sping@gentoo.org> arch/x86/kernel-config,
- arch/x86_64/kernel-config, defaults/kernel-config:
- Apply CONFIG_USB_HID=y to archs amd64/x86/default (bug #270983)
-
- 13 Jun 2011; Sebastian Pipping <sping@gentoo.org> arch/x86/kernel-config,
- arch/x86_64/kernel-config, defaults/kernel-config:
- Unset CONFIG_IDE on archs amd64/x86/default (bug #357213)
-
- 07 Jun 2011; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump version to 3.4.16
-
- 07 Jun 2011; Sebastian Pipping <sping@gentoo.org> doc/genkernel.8.txt:
- Document most undocumented boot parameters (bug #370369)
-
- 07 Jun 2011; Sebastian Pipping <sping@gentoo.org> doc/genkernel.8.txt:
- Docs: Fix mixup of boot parameters real_init= and init_opts=
-
- 04 Jun 2011; Sebastian Pipping <sping@gentoo.org> genkernel.conf,
- maintenance/docmatcher.py:
- Document remaining options inside genkiernel.conf (bug #367233)
-
- 01 Jun 2011; Sebastian Pipping <sping@gentoo.org> defaults/linuxrc,
- doc/genkernel.8.txt:
- Document option lvmraid= and make it imply dolvm (bug #153502)
-
- 31 May 2011; Sebastian Pipping <sping@gentoo.org> defaults/linuxrc,
- doc/genkernel.8.txt:
- Add rootfstype= boot parameter (bug #221245)
- Special thanks:
- - Marcin Kurek
-
- 31 May 2011; Nelson Batalha <nelson.batalha@gmail.com> defaults/initrd.defaults:
- Add Kernel 3.0.0 support (bug #369481)
-
- 31 May 2011; Sebastian Pipping <sping@gentoo.org> genkernel:
- Output warning in warning color
-
- 31 May 2011; Sebastian Pipping <sping@gentoo.org> doc/genkernel.8.txt,
- genkernel:
- Document boot parameter domdadm (bug #369415)
-
- 12 May 2011; Amadeusz Żołnowski <aidecoe@aidecoe.name>
- defaults/modules_load:
- Added hpsa to defaults/modules_load; fixes bug #363369
-
- 28 Mar 2011; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump to 3.4.15
-
- 24 Mar 2011; Peter Hjalmarsson <xake@rymdraket.net> defaults/linuxrc, initrd.scripts:
- Rescue /proc and /sys over into chroot
- Apply mount options noexec,nosuid,nodev to /proc and /sys
-
- 22 Mar 2011; Fabio Erculiani <lxnay@sabayon.org> gen_compile.sh, patches/iscsi/*:
- Fix compilation of iSCSI
-
- 23 Mar 2011; Peter Hjalmarsson <xake@rymdraket.net> doc/genkernel.8.txt,
- gen_cmdline.sh, gen_initramfs.sh:
- Remove "--slowusb" as it is enabled by default now. Also document "noslowusb"
- ramdisk option that skips it.
-
- 22 Mar 2011; Peter Hjalmarsson <xake@rymdraket.net> defaults/initrd.defaults,
- defaults/initrd.scripts:
- Set DO_slowusb as default, and make setup_slowusb unset it if it cannot find
- a usb-storage attached. This makes genkernel ramdisk adhere to "noslowusb",
- makes the ramdisk only wait if there is a usb-storage attached and should fix
- gentoo bug #359619.
-
- 16 Mar 2011; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump version to 3.4.14
-
- 16 Mar 2011; Fabio Erculiani <lxnay@sabayon.org> **/modules_load:
- Add btrfs to MODULES_FS
-
- 07 Mar 2011; Peter Hjalmarsson <xake@rymdraket.net> defaults/initrd.scripts:
- Fix typo where the kernelcmd version "dokeymap" was added to MY_HWOPTS
- instead of the HWOPTS version "keymap".
- Broke setups where only "keymap=<...>" was added to kernelcmd (bug #356167)
-
- 24 Feb 2011; Sebastian Pipping <sping@gentoo.org> ChangeLog:
- Fix handling of mdadm.conf (bug #354809)
- Special thanks:
- - Peter Hjalmarsson
-
- 10 Feb 2011; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump version to 3.4.13
-
- 09 Feb 2011; Sebastian Pipping <sping@gentoo.org> genkernel.conf:
- Add SPLASH and SPLASH_THEME to genkernel.conf (bug #268468)
- Special thanks:
- - PhobosK
-
- 08 Feb 2011; Sebastian Pipping <sping@gentoo.org> ChangeLog:
- Add iBFT support for iSCSI (bug #314575)
- Special thanks:
- - Stefan Behte
-
- 7 Feb 2011; Sebastian Pipping <sping@gentoo.org> ChangeLog:
- Use devtmpfs/tmpfs for /dev (bug #353024)
- Rescue devtmpfs /dev over to chroot (bug #353024, bug #344407)
- Special thanks:
- - Peter Hjalmarsson
-
- 31 Jan 2011; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump version to 3.4.12.6
-
- 31 Jan 2011; Sebastian Pipping <sping@gentoo.org> ChangeLog:
- Speed up LVM activation (bug #351047)
- Special thanks:
- - Peter Hjalmarsson
-
- 30 Jan 2011; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump version to 3.4.12.5
-
- 30 Jan 2011; Sebastian Pipping <sping@gentoo.org> gen_initramfs.sh:
- Give blkid of e2fsprogs precedence over busybox re-write by putting it into
- /sbin, not /bin (bug #352746)
-
- 30 Jan 2011; Sebastian Pipping <sping@gentoo.org> arch/x86_64/kernel-config:
- Enable CONFIG_USB_SUSPEND and CONFIG_PM_RUNTIME for x86_64 (bug #351376)
-
- 30 Jan 2011; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump version to 3.4.12.4
-
- 30 Jan 2011; Sebastian Pipping <sping@gentoo.org> ChangeLog:
- Enhance console handling on netboot linuxrc (bug #353084)
- Enable shadow on netboot's busybox config (bug #353085)
- Special thanks:
- - Raúl Porcel
-
- 29 Jan 2011; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump version to 3.4.12.3
-
- 29 Jan 2011; Sebastian Pipping <sping@gentoo.org> gen_compile.sh:
- No longer require device mapper bincache for compiling lvm (bug #353026)
- Special thanks:
- - Peter Hjalmarsson
-
- 27 Jan 2011; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump version to 3.4.12.2
-
- 27 Jan 2011; Sebastian Pipping <sping@gentoo.org> gen_determineargs.sh:
- Revert kernel release detection fix (regression) (bug #352787)
-
- 23 Jan 2011; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump version to 3.4.12.1
-
- 23 Jan 2011; Sebastian Pipping <sping@gentoo.org> gen_initramfs.sh:
- Fix copying of mdadm/mdmon to the initramfs (bug #352496). Thanks to Malcolm
- Lashley for reporting.
-
- 23 Jan 2011; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump version to 3.4.12
-
- 22 Jan 2011; Sebastian Pipping <sping@gentoo.org> ChangeLog:
- Enable CONFIG_USB_SUSPEND for x86/amd64 (bug #351376)
- Replace "${MAKEOPTS/-j?/j1}" by "${MAKEOPTS} -j1" (bug #277607)
-
- 21 Jan 2011; Sebastian Pipping <sping@gentoo.org> gen_determineargs.sh:
- Do not query generated files (like include/config/kernel.release) for kernel
- version, as they may be out of sync (bug #263927)
-
- 20 Jan 2011; Sebastian Pipping <sping@gentoo.org> ChangeLog:
- Add proper mdadm support (bug #282100)
- Special thanks:
- - Craig Andrews (Testing)
- - Laurent Pinchart (mdmon/IMSM support)
- - Matthias Dahl (Initial patch)
- - Peter Hjalmarsson (Testing)
-
- 20 Jan 2011; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump version to 3.4.11.1
-
- 20 Jan 2011; Sebastian Pipping <sping@gentoo.org> gen_configkernel.sh:
- Move application of kernel config after "make mrproper" as that deletes
- .config (whereas "make clean" does not) (bug #351906)
- Special thanks:
- - Peter Hjalmarsson
-
- 20 Jan 2011; Sebastian Pipping <sping@gentoo.org>
- patches/busybox/1.18.1/1.18.1-mdstart.diff:
- busybox 1.18.1: Return of mdstart as an applet (regression) (bug #351909)
-
- 16 Jan 2011; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump version to 3.4.11
-
- 16 Jan 2011; Sebastian Pipping <sping@gentoo.org> defaults/initrd.scripts:
- Do not sleep after vgscan (bug #351047)
-
- 16 Jan 2011; Sebastian Pipping <sping@gentoo.org> ChangeLog:
- Changes:
- - Fix compilation of LVM 2.02.74 (and 2.02.28) (bug #255196, bug #267383)
- - Add minimal btrfs support (bug #303529)
- - Add support for UUID to crypt_root (bug #315467)
- - Run "make firmware_install" if CONFIG_FIRMWARE_IN_KERNEL != y (bug #244651)
- - Port busybox patches from 1.7.4 to 1.18.1 (bug #331971)
- - Handle missing kernel .config better (bug #271528)
- - Improve slowusb handling (bug #323317)
- - Add GnuPG 1.x support (bug #217959)
- - Check return codes of cpio (bug #246370)
- - Update e2fsprogs/blkid to 1.41.14 (bug #291822)
- - Create /bin/vg* symlinks when called as /linuxrc, too (bug #307855)
- - Pick first device when several devices are matching real_root (bug #303531)
- - Fix warning "cannot remove `/var/cache/genkernel/src'" (bug #347213)
- - Allow configuring the list of busybox applets (bug #326593)
- - Fix arithmetic bug in defaults/initrd.scripts (bug #339789)
- Special thanks:
- - Amadeusz Zolnowski (LVM update)
- - Christian Giessner (UUID crypt_root)
- - dacook (GnuPG 1.x support)
- - Denis Kaganovich (Busybox patch porting)
- - devsk (Multi-device patch)
- - Fabio Erculiani (Slowusb fixes)
- - Kai Dietrich (Symlink analysis)
- - Kolbjørn Barmen (Arithmetic fix)
-
- 13 Dec 2010; Sebastian Pipping <sping@gentoo.org> genkernel:
- Bump version to 3.4.10.908
-
- 13 Dec 2010; <sping@gentoo.org> doc/genkernel.8.txt, gen_cmdline.sh:
- docs: Document --genzimage
-
- 13 Dec 2010; <sping@gentoo.org> gen_cmdline.sh:
- Fix a reference to --nomenuconfig into --no-menuconfig
-
- 13 Dec 2010; <sping@gentoo.org> doc/genkernel.8.txt:
- docs: Update man page from output of --help
-
- 13 Dec 2010; <sping@gentoo.org> doc/genkernel.8.txt:
- docs: Document keymap= and dokeymap (bug #346017)
-
- 6 Dec 2010; <sping@gentoo.org> genkernel.conf:
- .conf: Document LUKS variable (bug #346015)
-
- 6 Dec 2010; <sping@gentoo.org> doc/genkernel.8.txt:
- docs: Mention both "initramfs" and "ramdisk" as available actions
- (bug #251702)
-
- 6 Dec 2010; <sping@gentoo.org> genkernel.8:
- man page: Propagate rename of --no-initrdmodules to --no-ramdisk-modules
-
- 29 Nov 2010; <sping@gentoo.org> ChangeLog:
- Add patch allowing compilation of busybox 1.7.4 with make 3.82 (bug #341943)
-
- 20 Feb 2010; Andrew Gaffney <agaffney@gentoo.org> defaults/initrd.scripts:
- Apply patches from Gentoo bug #268468
-
- 19 Jan 2010; Andrew Gaffney <agaffney@gentoo.org> genkernel:
- Only call set_bootloader is CMD_NOINSTALL is not set for Gentoo bug
- #301454
-
- 27 Dec 2009; Andrew Gaffney <agaffney@gentoo.org> arch/alpha/modules_load,
- arch/arm/modules_load, arch/ia64/kernel-config, arch/ia64/modules_load,
- arch/mips/modules_load, arch/parisc/modules_load,
- arch/parisc64/modules_load, arch/ppc/kernel-config, arch/ppc/modules_load,
- arch/ppc64/modules_load, arch/sparc/modules_load,
- arch/sparc64/kernel-config, arch/sparc64/modules_load,
- arch/um/modules_load, arch/x86/kernel-config, arch/x86/modules_load,
- arch/x86_64/kernel-config, arch/x86_64/modules_load,
- defaults/kernel-config:
- Add USB HID modules to modules_load and default kernel-config (for Gentoo
- bug #270983)
-
- 27 Dec 2009; Andrew Gaffney <agaffney@gentoo.org>
- arch/alpha/kernel-config, arch/alpha/modules_load, arch/arm/modules_load,
- arch/ia64/kernel-config, arch/ia64/modules_load, arch/mips/modules_load,
- arch/parisc/modules_load, arch/parisc64/modules_load,
- arch/ppc/kernel-config, arch/ppc/modules_load, arch/ppc64/modules_load,
- arch/sparc/modules_load, arch/sparc64/kernel-config,
- arch/sparc64/modules_load, arch/um/modules_load, arch/x86/kernel-config,
- arch/x86/modules_load, arch/x86_64/kernel-config,
- arch/x86_64/modules_load, defaults/kernel-config, defaults/modules_load:
- Enable ext4 by default everywhere (for Gentoo bug #268818)
-
- 27 Dec 2009; Andrew Gaffney <agaffney@gentoo.org> defaults/initrd.scripts,
- defaults/linuxrc:
- Add support for isoboot= option (for Gentoo bug #294268)
-
- 26 Dec 2009; Andrew Gaffney <agaffney@gentoo.org>
- defaults/initrd.defaults, defaults/initrd.scripts:
- Properly apply NFS mount options for Gentoo bug #262915
-
- 26 Dec 2009; Andrew Gaffney <agaffney@gentoo.org>
- arch/alpha/kernel-config, arch/ia64/kernel-config, arch/ppc/kernel-config,
- arch/x86_64/kernel-config:
- Enable CONFIG_SCSI_MULTI_LUN option for Gentoo bug #261122
-
- 26 Dec 2009; Andrew Gaffney <agaffney@gentoo.org> defaults/initrd.scripts:
- Apply patch to make sure loop cache directory exists for Gentoo bug
- #297814
-
- 17 Dec 2009; Robin H. Johnson <robbat2@gentoo.org> HACKING:
- Document how to roll a release for the next time.
-
- 17 Dec 2009; Robin H. Johnson <robbat2@gentoo.org> genkernel:
- Tag 3.4.10.907 release.
-
- 06 Dec 2009; Andrew Gaffney <agaffney@gentoo.org> gen_initramfs.sh:
- use a symlink instead of a hardlink for busybox utils (for Gentoo bug
- #246370)
-
- 23 Nov 2009; Andrew Gaffney <agaffney@gentoo.org> defaults/linuxrc:
- Fix typo for Gentoo bug #294138
-
- 16 Nov 2009; Andrew Gaffney <agaffney@gentoo.org> gen_initramfs.sh:
- Make sure to change back to existant directory before removing the current
- directory for Gentoo bug #291794
-
- 15 Oct 2009; <craig@haquarter.de> Changelog:
- added iSCSI support
-
- 22 Sep 2009; <tsunam@gentoo.org> ChangeLog:
- modified the libaio search so it'll actually work, cause I'm a dork
-
- 21 Sep 2009; <tsunam@gentoo.org> gen_initramfs.sh:
- Fix broken libraries for multipath per Gentoo bug #284592
-
- 21 Sep 2009; <tsunam@gentoo.org> gen_initramfs.sh:
- Update to fix broken initramfs caused by multipath config in Gentoo bug #284589
-
- 05 Sep 2009; Andrew Gaffney <agaffney@gentoo.org> defaults/initrd.scripts,
- defaults/linuxrc:
- Apply patch from Gentoo bug #220913 for tuxonice resume
-
- 14 Aug 2009; Andrew Gaffney <agaffney@gentoo.org> genkernel.conf:
- Enable DISKLABEL=yes by default
-
- 05 Aug 2009; Andrew Gaffney <agaffney@gentoo.org> genkernel:
- This is genkernel 3.4.10.906
-
- 25 Jul 2009; Chris Gianelloni <wolf31o2@wolf31o2.org> genkernel.conf,
- .gitattributes:
- Adding Id header and Ident for genkernel.conf
-
- 25 Jul 2009; Chris Gianelloni <wolf31o2@wolf31o2.org>
- arch/alpha/config.sh, arch/arm/config.sh, arch/ia64/config.sh,
- arch/mips/config.sh, arch/parisc/config.sh, arch/parisc64/config.sh,
- arch/ppc/config.sh, arch/ppc64/config.sh, arch/sparc/config.sh,
- arch/sparc64/config.sh, arch/um/config.sh, arch/x86/config.sh,
- arch/x86_64/config.sh, defaults/config.sh, gen_arch.sh, gen_bootloader.sh,
- gen_cmdline.sh, gen_compile.sh, gen_configkernel.sh, gen_determineargs.sh,
- gen_funcs.sh, gen_initramfs.sh, gen_moddeps.sh, gen_package.sh:
- Adding Id header.
-
- 25 Jul 2009; Chris Gianelloni <wolf31o2@wolf31o2.org> genkernel,
- .gitattributes:
- Adding Id header and enabling Ident on *.sh files.
-
- 25 Jul 2009; Chris Gianelloni <wolf31o2@wolf31o2.org> AUTHORS, BUGS,
- HACKING, README, TODO:
- Adding Id header.
-
- 25 Jul 2009; Chris Gianelloni <wolf31o2@wolf31o2.org> .gitattributes:
- Adding additional files to .gitattributes to enable Ident.
-
- 25 Jul 2009; Chris Gianelloni <wolf31o2@wolf31o2.org> +.gitattributes:
- Adding .gitattributes file.
-
- 19 Jul 2009; Andrew Gaffney <agaffney@gentoo.org> defaults/initrd.scripts:
- Change command used to determine real filename for REAL_RESUME for Gentoo
- bug #269603
-
- 19 Jul 2009; Andrew Gaffney <agaffney@gentoo.org> arch/alpha/modules_load,
- arch/arm/modules_load, arch/ia64/modules_load, arch/mips/modules_load,
- arch/parisc/modules_load, arch/parisc64/modules_load,
- arch/ppc/modules_load, arch/ppc64/modules_load, arch/sparc/modules_load,
- arch/sparc64/modules_load, arch/um/modules_load, arch/x86/modules_load,
- arch/x86_64/modules_load, defaults/modules_load:
- Add aic94xx to MODULES_SCSI for Gentoo bug #277792
-
- 12 Jul 2009; Andrew Gaffney <agaffney@gentoo.org> arch/x86/kernel-config,
- arch/x86_64/kernel-config:
- enable CONFIG_SYSFS_DEPRECATED=y in x86/x86_64 kernel-config for Gentoo
- bug #225249
-
- 12 Jul 2009; Andrew Gaffney <agaffney@gentoo.org> gen_initramfs.sh:
- Apply patch for Gentoo bug #276753 for new lvm.static binary
-
- 07 Jul 2009; Chris Gianelloni <wolf31o2@wolf31o2.org> genkernel:
- Version bumping to 3.4.10.905 for release.
-
- 04 Jul 2009; Andrew Gaffney <agaffney@gentoo.org> gen_funcs.sh, genkernel:
- Remove code to check for host kernel LOOP support for Gentoo bug #275757
-
- 28 Jun 2009; Andrew Gaffney <agaffney@gentoo.org> defaults/modprobe,
- genkernel.conf:
- Restore BOOTLOADER="grub" example line in genkernel.conf for Gentoo bug
- #274768
-
- 12 May 2009; Andrew Gaffney <agaffney@gentoo.org> arch/x86/modules_load,
- defaults/initrd.scripts:
- Apply fix to deference links for Gentoo bug #269603
-
- 09 May 2009; Andrew Gaffney <agaffney@gentoo.org> arch/x86/modules_load:
- foo
-
- 09 May 2009; Andrew Gaffney <agaffney@gentoo.org> arch/x86/modules_load,
- arch/x86_64/modules_load:
- Add dm-crypt module for Gentoo bug #269042
-
- 24 Apr 2009; Chris Gianelloni <wolf31o2@wolf31o2.org> genkernel:
- Rolling a new genkernel 3.4.10.904 version for testing.
-
- 17 Apr 2009; Andrew Gaffney <agaffney@gentoo.org> netboot/busy-config:
- Apply patch from Gentoo bug #266373 for additional options in the netboot
- busy-config
-
- 06 Mar 2009; Andrew Gaffney <agaffney@gentoo.org> gen_initramfs.sh:
- Clean up append_multipath() code to copy files in a loop and report file
- that failed to copy
-
- 06 Mar 2009; Andrew Gaffney <agaffney@gentoo.org> gen_initramfs.sh:
- Apply patch from robbat2 to fix whitespace breakage in multipath code
-
- 06 Mar 2009; Andrew Gaffney <agaffney@gentoo.org> gen_determineargs.sh,
- genkernel.conf:
- Apply patch from robbat2 to finish wiring up multipath support
-
- 06 Mar 2009; Andrew Gaffney <agaffney@gentoo.org> gen_initramfs.sh:
- Modify append_data to die on 0 arguments and check arg 2 with isTrue().
- Based on a patch from robbat2
-
- 20 Feb 2009; Andrew Gaffney <agaffney@gentoo.org> arch/sparc64/config.sh,
- gen_compile.sh, gen_funcs.sh, gen_package.sh:
- Add support for multiple possible kernel binary paths for Gentoo bug
- #255085
-
- 04 Feb 2009; Andrew Gaffney <agaffney@gentoo.org> defaults/linuxrc:
- Comment out the exec line for console=*, since it seems to blow up when
- the param isn't a true device node, such as ttyS0,115200n8
-
- 19 Jan 2009; Andrew Gaffney <agaffney@gentoo.org> defaults/initrd.scripts,
- defaults/linuxrc:
- Remove detect_sbp2_devices() for Gentoo bug #239474
-
- 16 Jan 2009; Andrew Gaffney <agaffney@gentoo.org> genkernel.conf:
- Add commented out DISKLABEL=yes option for Gentoo bug #229847
-
- 08 Jan 2009; Chris Gianelloni <wolf31o2@wolf31o2.org> TODO:
- Added more verbosity to the auto-detection section.
-
- 08 Jan 2009; Chris Gianelloni <wolf31o2@wolf31o2.org> AUTHORS:
- Updated the AUTHORS section and the header for the ChangeLog, to reflect
- that individual authors now retain their copyright to code they submit.
-
- 08 Jan 2009; Chris Gianelloni <wolf31o2@wolf31o2.org> TODO:
- Added a note about Security Tokens, cleaned up the block device section, and
- added a section about autodetection.
-
- 08 Jan 2009; Chris Gianelloni <wolf31o2@wolf31o2.org> HACKING:
- Adding a note about contacting me to HACKING.
-
- 08 Jan 2009; Chris Gianelloni <wolf31o2@wolf31o2.org> TODO:
- Adding multipath support is really two different functions, so split them.
-
- 08 Jan 2009; Chris Gianelloni <wolf31o2@wolf31o2.org> TODO:
- Adding a note about documenting the code paths.
-
- 08 Jan 2009; Chris Gianelloni <wolf31o2@wolf31o2.org> TODO:
- Adding new boot support information to the TODO.
-
- 05 Jan 2009; Chris Gianelloni <wolf31o2@wolf31o2.org> TODO, genkernel:
- Version bump to 3.4.10.903 to resolve bug #250330.
-
- 31 Dec 2008; Andrew Gaffney <agaffney@gentoo.org> gen_arch.sh:
- Add case for arm* in get_official_arch()
-
- 31 Dec 2008; Andrew Gaffney <agaffney@gentoo.org> netboot/busy-config:
- Enable CONFIG_MKSWAP for netboot busybox
-
- 26 Dec 2008; Andrew Gaffney <agaffney@gentoo.org> gen_bootloader.sh:
- Modify grep regex to account for additional suffixes on old kernel names
-
- 24 Dec 2008; Andrew Gaffney <agaffney@gentoo.org> gen_cmdline.sh,
- gen_determineargs.sh:
- Add --busybox-config= commandline option
-
- 24 Dec 2008; Andrew Gaffney <agaffney@gentoo.org> netboot/linuxrc.x:
- Revert to just running /bin/bash on /dev/console for serial. We still
- start getty on tty2-6
-
- 23 Dec 2008; Andrew Gaffney <agaffney@gentoo.org> gen_cmdline.sh:
- Allow old 'initramfs' option instead of 'ramdisk' for compatability
- (bug #251702)
-
- 17 Dec 2008; Andrew Gaffney <agaffney@gentoo.org> defaults/linuxrc:
- Remove the use of 'env -i' when calling switch_root due to Gentoo bug
- #248688
-
- 16 Dec 2008; Andrew Gaffney <agaffney@gentoo.org> netboot/linuxrc.x:
- Run the getty commands with proper arguments so they don't die immediately
-
- 16 Dec 2008; Andrew Gaffney <agaffney@gentoo.org> netboot/linuxrc.x:
- Explicitly set /bin/ashlogin +x during boot
-
- 16 Dec 2008; Andrew Gaffney <agaffney@gentoo.org> netboot/linuxrc.x:
- Run getty for tty1 in the foreground
-
- 16 Dec 2008; Andrew Gaffney <agaffney@gentoo.org> netboot/linuxrc.x,
- +netboot/misc/bin/ashlogin:
- Use getty to launch ash, so that we can use ^C and friends
-
- 16 Dec 2008; Chris Gianelloni <wolf31o2@wolf31o2.org> +BUGS:
- Adding a BUGS file, where we can list bugs that we have found in genkernel
- that need to be resolved.
-
- 16 Dec 2008; Chris Gianelloni <wolf31o2@wolf31o2.org> +HACKING:
- Adding a HACKING file, which I will use to document the various phases of
- genkernel so we can split up the default functions and also so we can
- provide hooks into the various phases for external addons.
-
- 16 Dec 2008; Chris Gianelloni <wolf31o2@wolf31o2.org>
- arch/alpha/config.sh, arch/arm/config.sh, arch/ia64/config.sh,
- arch/mips/config.sh, arch/parisc/config.sh, arch/parisc64/config.sh,
- arch/ppc/config.sh, arch/ppc64/config.sh, arch/sparc/config.sh,
- arch/sparc64/config.sh, arch/um/config.sh, arch/x86/config.sh,
- arch/x86_64/config.sh, defaults/config.sh, defaults/initrd.defaults,
- defaults/initrd.scripts, defaults/linuxrc, defaults/udhcpc.scripts,
- gen_bootloader.sh, gen_compile.sh, gen_configkernel.sh,
- gen_determineargs.sh, gen_initramfs.sh, gen_moddeps.sh, gen_package.sh,
- genkernel.conf, netboot/linuxrc.x, netboot/misc/bin/net-setup:
- Actually setting permissions. It helps if one remembers to 'git add'
- before doing their commit.
-
- 16 Dec 2008; Andrew Gaffney <agaffney@gentoo.org> netboot/busy-config:
- Enable GETTY for netboot busy-config
-
- 16 Dec 2008; Andrew Gaffney <agaffney@gentoo.org> gen_compile.sh:
- We don't need to add - to UTILS_CROSS_COMPILE since it's already there
-
- 16 Dec 2008; Andrew Gaffney <agaffney@gentoo.org> defaults/busy-config,
- gen_compile.sh, +netboot/busy-config:
- Separate out main and netboot busy-config
-
- 15 Dec 2008; Andrew Gaffney <agaffney@gentoo.org> gen_initramfs.sh:
- Use : as a regex separator instead of / since REAL_ROOT will have / in it
-
- 15 Dec 2008; Andrew Gaffney <agaffney@gentoo.org> gen_bootloader.sh:
- Add check for existing grub.conf entry for kernel
-
- 15 Dec 2008; Andrew Gaffney <agaffney@gentoo.org> gen_bootloader.sh:
- Default to '0' if 'default' line not found at all in existing grub.conf
-
- 15 Dec 2008; Andrew Gaffney <agaffney@gentoo.org> gen_bootloader.sh:
- Adding code that duplicates default grub.conf entry to replace old awk
- script. Based on code written by Mike Auty <ikelos@gentoo.org>
-
- 15 Dec 2008; Andrew Gaffney <agaffney@gentoo.org> +gen_bootloader.sh,
- gen_cmdline.sh, gen_determineargs.sh, genkernel:
- Initial commit for re-adding support for --bootloader=grub
-
- 14 Dec 2008; Andrew Gaffney <agaffney@gentoo.org> netboot/linuxrc.x:
- Change -f checks to -e for /dev nodes Check that dropbear exists before
- starting it
-
- 14 Dec 2008; Andrew Gaffney <agaffney@gentoo.org> gen_compile.sh:
- Explicitly set UTILS_{CC,LD,AS} if UTILS_CROSS_COMPILE is set
-
- 14 Dec 2008; Andrew Gaffney <agaffney@gentoo.org> gen_cmdline.sh:
- Typo fix for Gentoo bug #250875
-
- 14 Dec 2008; Chris Gianelloni <wolf31o2@wolf31o2.org>
- arch/alpha/config.sh, arch/arm/config.sh, arch/ia64/config.sh,
- arch/mips/config.sh, arch/parisc/config.sh, arch/parisc64/config.sh,
- arch/ppc/config.sh, arch/ppc64/config.sh, arch/sparc/config.sh,
- arch/sparc64/config.sh, arch/um/config.sh, arch/x86/config.sh,
- arch/x86_64/config.sh, defaults/config.sh, defaults/initrd.defaults,
- defaults/initrd.scripts, defaults/linuxrc, defaults/udhcpc.scripts,
- gen_compile.sh, gen_configkernel.sh, gen_determineargs.sh,
- gen_initramfs.sh, gen_moddeps.sh, gen_package.sh, genkernel.conf,
- netboot/linuxrc.x, netboot/misc/bin/net-setup:
- Setting executable bit properly on shell scripts and configuration files.
-
- 13 Dec 2008; Andrew Gaffney <agaffney@gentoo.org> gen_initramfs.sh:
- Create /sbin directory in append_luks for bug #250330
-
- 13 Dec 2008; Andrew Gaffney <agaffney@gentoo.org> netboot/linuxrc.x:
- Disable creation of most standard devices nodes, since we're running mdev
-
- 13 Dec 2008; Andrew Gaffney <agaffney@gentoo.org> defaults/initrd.scripts,
- gen_initramfs.sh, netboot/linuxrc.x:
- Move udhcpc's script to default location
-
- 13 Dec 2008; Andrew Gaffney <agaffney@gentoo.org> defaults/busy-config:
- Enable support klogd and syslogd for netboot
-
- 13 Dec 2008; Andrew Gaffney <agaffney@gentoo.org> defaults/linuxrc,
- gen_cmdline.sh, gen_determineargs.sh, gen_initramfs.sh:
- Add --real-root=<foo> parameter to specify a default for real_root= in the
- initramfs for Gentoo bug #249783
-
- 12 Dec 2008; Andrew Gaffney <agaffney@gentoo.org> -arch/alpha/busy-config,
- -arch/arm/busy-config, -arch/ia64/busy-config, -arch/mips/busy-config,
- -arch/parisc/busy-config, -arch/parisc64/busy-config,
- -arch/ppc/busy-config, -arch/ppc64/busy-config, -arch/sparc/busy-config,
- -arch/sparc64/busy-config, -arch/x86/busy-config,
- -arch/x86_64/busy-config, gen_compile.sh:
- Switch search order so arch-specific is first for busy-config Remove
- unneeded identical busy-config files
-
- 12 Dec 2008; Andrew Gaffney <agaffney@gentoo.org> gen_compile.sh,
- genkernel.conf:
- Remove BUSYBOX_CONFIG from genkernel.conf Add search order for
- busy-config: user-specified, defaults/busy-config,
- arch/%%ARCH%%/busy-config
-
- 12 Dec 2008; Andrew Gaffney <agaffney@gentoo.org> -arch/x86/nb-busybox.cf,
- -defaults/nb-busybox.cf:
- Remove old nb-busybox.cf files that aren't used anymore
-
- 12 Dec 2008; Andrew Gaffney <agaffney@gentoo.org> +arch/arm/busy-config,
- +arch/arm/config.sh, +arch/arm/modules_load:
- Add support for arm from armin76
-
- 12 Dec 2008; Andrew Gaffney <agaffney@gentoo.org> arch/alpha/busy-config,
- arch/ia64/busy-config, arch/mips/busy-config, arch/parisc/busy-config,
- arch/parisc64/busy-config, arch/ppc/busy-config, arch/ppc64/busy-config,
- arch/sparc/busy-config, arch/sparc64/busy-config, arch/um/busy-config,
- arch/x86/busy-config, arch/x86_64/busy-config, defaults/busy-config:
- Enable CONFIG_MAKEDEVS in busy-config for netboot
-
- 09 Dec 2008; Andrew Gaffney <agaffney@gentoo.org> gen_initramfs.sh:
- s/aux/luks/ for Gentoo bug #250330
-
- 07 Dec 2008; Andrew Gaffney <agaffney@gentoo.org> arch/alpha/busy-config,
- arch/ia64/busy-config, arch/mips/busy-config, arch/parisc/busy-config,
- arch/parisc64/busy-config, arch/ppc/busy-config, arch/ppc64/busy-config,
- arch/sparc/busy-config, arch/sparc64/busy-config, arch/x86/busy-config,
- arch/x86_64/busy-config, defaults/busy-config, netboot/linuxrc.x:
- Enable CONFIG_FEATURE_PREFER_APPLETS busybox option export PATH at top of
- netboot linuxrc
-
- 07 Dec 2008; Andrew Gaffney <agaffney@gentoo.org> gen_initramfs.sh,
- netboot/linuxrc.x:
- Move all netboot logic from catalyst into gk
-
- 07 Dec 2008; Andrew Gaffney <agaffney@gentoo.org> defaults/udhcpc.scripts,
- gen_cmdline.sh, gen_determineargs.sh, netboot/linuxrc.x:
- Initial support for --netboot option integrate functionality from netboot
- udhcpc.scripts into default one
-
- 04 Dec 2008; Chris Gianelloni <wolf31o2@wolf31o2.org> genkernel:
- Bumping version for release.
-
- 25 Nov 2008; Andrew Gaffney <agaffney@gentoo.org> netboot/linuxrc.x:
- Use symlinks for busybox utils Use full path to mount since it gets grumpy
- without it in later bb versions for some reason
-
- 17 Nov 2008; Andrew Gaffney <agaffney@gentoo.org> gen_initramfs.sh:
- Break apart cryptsetup stuff into separate append_luks() and make
- append_auxillary() dependent on ${BUSYBOX} for Gentoo bug #247052
-
- 15 Nov 2008; Andrew Gaffney <agaffney@gentoo.org> defaults/linuxrc:
- Applied patch for UUID support for real_resume= from Gentoo bug #239687
-
- 15 Nov 2008; Andrew Gaffney <agaffney@gentoo.org> gen_determineargs.sh:
- Added modified version of patch from Gentoo bug #238707
-
- 14 Nov 2008; Andrew Gaffney <agaffney@gentoo.org> gen_initramfs.sh:
- Only append unionfs_fuse stuff if UNIONFS is set
-
- 14 Nov 2008; Andrew Gaffney <agaffney@gentoo.org> defaults/linuxrc,
- gen_cmdline.sh, gen_determineargs.sh, genkernel:
- Add --unionfs commandline option to enable building of unionfs-fuse Add
- nounionfs boot option
-
- 14 Nov 2008; Andrew Gaffney <agaffney@gentoo.org> defaults/initrd.scripts:
- Add good_msg for creating the union mount
-
- 14 Nov 2008; Andrew Gaffney <agaffney@gentoo.org> defaults/initrd.scripts:
- Pipe stderr for unionfs mount call to /dev/null to supress getcwd message
-
- 14 Nov 2008; Andrew Gaffney <agaffney@gentoo.org> defaults/initrd.scripts,
- defaults/linuxrc:
- Call switch_root with full path
-
- 14 Nov 2008; Andrew Gaffney <agaffney@gentoo.org> defaults/linuxrc:
- Call switch_root with 'env -i' to clean out the kernel-defined key/value
- pairs
-
- 14 Nov 2008; Andrew Gaffney <agaffney@gentoo.org> defaults/linuxrc:
- Skip good_root check for /dev/nfs for Gentoo bug #246759
-
- 14 Nov 2008; Andrew Gaffney <agaffney@gentoo.org> defaults/initrd.scripts:
- Simplify implementation of parse_opt in linuxrc
-
- 14 Nov 2008; Andrew Gaffney <agaffney@gentoo.org> defaults/initrd.scripts,
- defaults/linuxrc:
- Small cleanups in unionfs code
-
- 14 Nov 2008; Andrew Gaffney <agaffney@gentoo.org> arch/alpha/modules_load,
- arch/ia64/modules_load, arch/mips/modules_load, arch/parisc/modules_load,
- arch/parisc64/modules_load, arch/ppc/modules_load,
- arch/ppc64/modules_load, arch/sparc/modules_load,
- arch/sparc64/modules_load, arch/um/modules_load, arch/x86/modules_load,
- arch/x86_64/modules_load, defaults/modules_load, gen_compile.sh,
- gen_initramfs.sh, genkernel:
- Add fuse to MODULES_FS Remove direct calls to compile_fuse() and
- append_fuse() Disable bincache for fuse, since we don't need any files at
- runtime from it
-
- 14 Nov 2008; Andrew Gaffney <agaffney@gentoo.org>
- +patches/busybox/1.7.4/1.7.4-mount-umount-i-option.diff,
- -patches/busybox/1.7.4/1.7.4-simplify-path-debug.diff:
- Replace debug patch with simple patch to add trivial support for -i option
- to mount/umount
-
- 13 Nov 2008; Andrew Gaffney <agaffney@gentoo.org> defaults/initrd.scripts:
- Add suid,dev to unionfs mount opts
-
- 13 Nov 2008; Andrew Gaffney <agaffney@gentoo.org> defaults/initrd.scripts:
- Remove allow_root mount opt, since it conflicts with allow_other
-
- 13 Nov 2008; Andrew Gaffney <agaffney@gentoo.org> defaults/initrd.scripts,
- patches/busybox/1.7.4/1.7.4-simplify-path-debug.diff:
- Change typo in unionfs-fuse mount opt and add -i support to umount
-
- 13 Nov 2008; Andrew Gaffney <agaffney@gentoo.org> arch/alpha/busy-config,
- arch/ia64/busy-config, arch/mips/busy-config, arch/parisc/busy-config,
- arch/parisc64/busy-config, arch/ppc/busy-config, arch/ppc64/busy-config,
- arch/sparc/busy-config, arch/sparc64/busy-config, arch/um/busy-config,
- arch/x86/busy-config, arch/x86_64/busy-config, defaults/busy-config:
- Enable CONFIG_FEATURE_MTAB_SUPPORT option for busybox
-
- 13 Nov 2008; Andrew Gaffney <agaffney@gentoo.org> defaults/initrd.scripts,
- +patches/busybox/1.7.4/1.7.4-mount-i-option.diff:
- Add patch for busybox to add -i option to mount command
-
- 13 Nov 2008; Andrew Gaffney <agaffney@gentoo.org> gen_compile.sh:
- Compile unionfs-fuse statically
-
- 13 Nov 2008; Andrew Gaffney <agaffney@gentoo.org> defaults/linuxrc,
- gen_initramfs.sh:
- Make sure that /sbin/unionfs is +x
-
- 13 Nov 2008; Andrew Gaffney <agaffney@gentoo.org> gen_compile.sh,
- gen_initramfs.sh:
- Correct unionfs-fuse bincache path and clean up debugging code
-
- 13 Nov 2008; Andrew Gaffney <agaffney@gentoo.org> gen_compile.sh:
- Add -L line into LIB= in Makefile
-
- 13 Nov 2008; Andrew Gaffney <agaffney@gentoo.org> gen_compile.sh:
- Unpack fuse source and modify CFLAGS for unionfs-fuse
-
- 12 Nov 2008; Andrew Gaffney <agaffney@gentoo.org> gen_compile.sh,
- genkernel.conf:
- Unpack unionfs-fuse with -j
-
- 12 Nov 2008; Andrew Gaffney <agaffney@gentoo.org> gen_determineargs.sh:
- Call arch_replace and cache_replace on fuse/unionfs-fuse vars
-
- 12 Nov 2008; Andrew Gaffney <agaffney@gentoo.org> genkernel.conf:
- Add fuse/unionfs-fuse blocks to genkernel.conf
-
- 12 Nov 2008; Andrew Gaffney <agaffney@gentoo.org> genkernel:
- Actually call compile_fuse() and compile_unionfs_fuse()
-
- 12 Nov 2008; Andrew Gaffney <agaffney@gentoo.org> defaults/initrd.scripts,
- defaults/linuxrc:
- Add back (modified) unionfs code in linuxrc
-
- 12 Nov 2008; Andrew Gaffney <agaffney@gentoo.org> gen_initramfs.sh:
- Add append_fuse() and append_unionfs_fuse() functions
-
- 12 Nov 2008; Andrew Gaffney <agaffney@gentoo.org> gen_compile.sh:
- Add compile_fuse() and compile_unionfs_fuse()
-
- 04 Nov 2008; Andrew Gaffney <agaffney@gentoo.org> arch/alpha/busy-config,
- arch/ia64/busy-config, arch/mips/busy-config, arch/parisc/busy-config,
- arch/parisc64/busy-config, arch/ppc/busy-config, arch/ppc64/busy-config,
- arch/sparc/busy-config, arch/sparc64/busy-config, arch/um/busy-config,
- arch/x86/busy-config, arch/x86_64/busy-config, defaults/busy-config:
- Enabling CONFIG_WGET and CONFIG_FEATURE_TAR_BZIP2 for initial support of
- Gentoo bug #211976
-
- 31 Oct 2008; Chris Gianelloni <wolf31o2@wolf31o2.org> genkernel:
- Tagging a 3.4.10.901 release, for testing. Adding periods to ChangeLog to
- fix syntax hilighting.
-
- 15 Sep 2008; Chris Gianelloni <wolf31o2@wolf31o2.org> AUTHORS:
- Adding Andrew and Robin to AUTHORS.
-
- 15 Sep 2008; Andrew Gaffney <agaffney@gentoo.org> gen_cmdline.sh:
- Add dummy handler for --config in gen_cmdline.sh for Gentoo bug #237541.
-
- 12 Sep 2008; Chris Gianelloni <wolf31o2@wolf31o2.org>
- arch/alpha/modules_load, arch/ia64/modules_load, arch/mips/modules_load,
- arch/parisc/modules_load, arch/parisc64/modules_load,
- arch/ppc/modules_load, arch/ppc64/modules_load, arch/sparc/modules_load,
- arch/sparc64/modules_load, arch/um/modules_load, arch/x86/modules_load,
- arch/x86_64/modules_load, defaults/initrd.defaults, defaults/modules_load:
- Removing scsi_wait_scan from PATA/SATA/SCSI and moving it to its own
- module group. This allows the module to be loaded last, no matter what
- combination of disks are in the system, allowing for firmware and such to
- be loaded before genkernel continues, even when asynchronous SCSI scanning
- is enabled in the kernel.
-
- 31 Aug 2008; Andrew Gaffney <agaffney@gentoo.org> arch/alpha/busy-config,
- arch/ia64/busy-config, arch/mips/busy-config, arch/parisc/busy-config,
- arch/parisc64/busy-config, arch/ppc/busy-config, arch/ppc64/busy-config,
- arch/sparc/busy-config, arch/sparc64/busy-config, arch/um/busy-config,
- arch/x86/busy-config, arch/x86_64/busy-config, defaults/busy-config,
- genkernel.conf:
- Enable CONFIG_ROUTE in busy-configs.
-
- 29 Aug 2008; Andrew Gaffney <agaffney@gentoo.org> arch/alpha/busy-config,
- arch/ia64/busy-config, arch/mips/busy-config, arch/parisc/busy-config,
- arch/parisc64/busy-config, arch/ppc/busy-config, arch/ppc64/busy-config,
- arch/sparc/busy-config, arch/sparc64/busy-config, arch/um/busy-config,
- arch/x86/busy-config, arch/x86_64/busy-config, defaults/busy-config,
- defaults/udhcpc.scripts:
- Enable CONFIG_HOSTNAME in all busy-configs and call 'hostname' with value
- from DHCP.
-
- 28 Aug 2008; Andrew Gaffney <agaffney@gentoo.org> arch/x86/kernel-config,
- arch/x86_64/kernel-config:
- Disabled CONFIG_DEBUG_INFO in x86{,_64} kconfigs.
-
- 25 Aug 2008; Andrew Gaffney <agaffney@gentoo.org>
- +patches/busybox/1.7.4/README:
- Add README to busybox patches dir.
-
- 25 Aug 2008; Andrew Gaffney <agaffney@gentoo.org> gen_compile.sh:
- Only apply files from patch dir ending in diff/patch.
-
- 24 Aug 2008; Andrew Gaffney <agaffney@gentoo.org> defaults/linuxrc:
- Fix CONSOLE= handling code for bug 232012.
-
- 21 Aug 2008; Andrew Gaffney <agaffney@gentoo.org> -gen_bootloader.sh,
- -gen_bootloader_grub.awk:
- Remove unneeded files for broken grub code.
-
- 21 Aug 2008; Andrew Gaffney <agaffney@gentoo.org> gen_cmdline.sh,
- gen_determineargs.sh, genkernel, genkernel.conf:
- Remove broken grub code.
-
- 07 Aug 2008; Andrew Gaffney <agaffney@gentoo.org> gen_initramfs.sh:
- Only append splash portion to initramfs if SPLASH is set.
-
- 29 Jul 2008; Andrew Gaffney <agaffney@gentoo.org> genkernel.8:
- Fix typo in man page, butt -> but.
-
- 29 Jul 2008; Andrew Gaffney <agaffney@gentoo.org> defaults/udhcpc.scripts:
- Add support to udhcpc.scripts for default route and DNS servers/domain.
-
- 29 Jul 2008; Andrew Gaffney <agaffney@gentoo.org> defaults/initrd.scripts:
- Remove check for >=2.6 for mounting sysfs.
-
- 29 Jul 2008; Andrew Gaffney <agaffney@gentoo.org> genkernel:
- Remove check for >=2.6 for 'make prepare'.
-
- 29 Jul 2008; Andrew Gaffney <agaffney@gentoo.org> gen_bootloader.sh,
- gen_configkernel.sh, gen_moddeps.sh, genkernel.8:
- Remove a few more 2.4 kernel support remnants.
-
- 29 Jul 2008; Andrew Gaffney <agaffney@gentoo.org> gen_arch.sh, genkernel:
- Cleanup remaining references to ${ARCH}/ without arch/ prefix.
-
- 29 Jul 2008; Andrew Gaffney <agaffney@gentoo.org> +arch/um/busy-config,
- +arch/um/config.sh, +arch/um/kernel-config, +arch/um/modules_load,
- -um/busy-config, -um/config.sh, -um/kernel-config, -um/modules_load:
- Move um/ underneath arch/ where it belongs.
-
- 28 Jul 2008; Chris Gianelloni <wolf31o2@wolf31o2.org> gen_compile.sh:
- Removed some unused dietlibc code.
-
- 28 Jul 2008; Chris Gianelloni <wolf31o2@wolf31o2.org> TODO,
- gen_bootloader.sh, gen_compile.sh, gen_configkernel.sh,
- gen_determineargs.sh, genkernel:
- Removed a large chunk of 2.4 kernel support. This will still require some
- fairly extensive cleaning to completely remove, but I'd say that without a
- shadow of a doubt, genkernel will not function on 2.4 kernels.
-
- 28 Jul 2008; Chris Gianelloni <wolf31o2@wolf31o2.org> genkernel,
- genkernel.8:
- Added a couple more places where I needed to switch INITRD with RAMDISK.
-
- 28 Jul 2008; Chris Gianelloni <wolf31o2@wolf31o2.org> TODO,
- arch/alpha/modules_load, arch/ia64/modules_load, arch/mips/modules_load,
- arch/parisc/modules_load, arch/parisc64/modules_load,
- arch/ppc/modules_load, arch/ppc64/modules_load, arch/sparc/modules_load,
- arch/sparc64/modules_load, arch/x86/modules_load,
- arch/x86_64/modules_load, defaults/initrd.scripts, defaults/linuxrc,
- defaults/modules_load, gen_bootloader.sh, gen_cmdline.sh,
- gen_determineargs.sh, gen_initramfs.sh, -gen_initrd.sh, gen_moddeps.sh,
- gen_package.sh, genkernel, genkernel.8:
- Removed all references to an initrd and renamed most initr{d,amfs} stuff
- to simply 'ramdisk' to simplify things for the future.
-
- 28 Jul 2008; Chris Gianelloni <wolf31o2@wolf31o2.org> TODO,
- +defaults/initrd.defaults, +defaults/initrd.scripts,
- +defaults/keymaps.tar.gz, +defaults/linuxrc, +defaults/modprobe,
- +defaults/udhcpc.scripts, gen_initramfs.sh, -generic/initrd.defaults,
- -generic/initrd.scripts, -generic/keymaps.tar.gz, -generic/linuxrc,
- -generic/modprobe, -generic/udhcpc.scripts:
- Moving files from generic to defaults, since they are the defaults used
- globally.
-
- 28 Jul 2008; Chris Gianelloni <wolf31o2@wolf31o2.org> TODO, +modules/README:
- Added the modules directory, which will be used to store the built-in
- modules and also for external entities to add their own modules and hooks.
-
- 28 Jul 2008; Chris Gianelloni <wolf31o2@wolf31o2.org> +defaults/busy-config,
- +defaults/config.sh, +defaults/kernel-config, +defaults/modules_load,
- +defaults/nb-busybox.cf:
- Added a defaults directory to store default files for builds. These are
- overridden by architecture or module specific parameters. This should end
- up reducing the amount of architecture-specific files needed, especially
- as most of them have files which are (nearly) identical.
-
- 28 Jul 2008; Chris Gianelloni <wolf31o2@wolf31o2.org> -alpha/busy-config,
- -alpha/config.sh, -alpha/kernel-config, -alpha/modules_load,
- +arch/alpha/busy-config, +arch/alpha/config.sh, +arch/alpha/kernel-config,
- +arch/alpha/modules_load, +arch/ia64/busy-config, +arch/ia64/config.sh,
- +arch/ia64/kernel-config, +arch/mips/ip22r4k-2006_1.cf,
- -mips/ip22r4k-2006_1.cf, +arch/ia64/modules_load,
- +arch/mips/ip22r5k-2006_1.cf, +arch/mips/ip27r10k-2006_1.cf,
- +arch/mips/ip28r10k-2006_1.cf, +arch/mips/ip30r10k-2006_1.cf,
- +arch/mips/ip32r5k-2006_1.cf, +arch/mips/ip32rm5k-2006_1.cf,
- -mips/ip22r5k-2006_1.cf, -mips/ip27r10k-2006_1.cf,
- -mips/ip28r10k-2006_1.cf, -mips/ip30r10k-2006_1.cf,
- -mips/ip32r5k-2006_1.cf, -mips/ip32rm5k-2006_1.cf, +arch/mips/busy-config,
- +arch/mips/config.sh, +arch/mips/modules_load, +arch/mips/nb-busybox.cf,
- +arch/parisc/busy-config, +arch/parisc/config.sh,
- +arch/parisc/modules_load, +arch/parisc64/busy-config,
- +arch/parisc64/config.sh, +arch/parisc64/modules_load,
- +arch/ppc/busy-config, +arch/ppc/config.sh, +arch/ppc/kernel-config,
- +arch/ppc/modules_load, +arch/ppc64/busy-config, +arch/ppc64/config.sh,
- +arch/ppc64/kernel-2.6-pSeries, +arch/ppc64/kernel-2.6.g5,
- +arch/ppc64/modules_load, +arch/sparc/busy-config, +arch/sparc/config.sh,
- +arch/sparc/kernel-config, +arch/sparc/modules_load,
- +arch/sparc64/busy-config, +arch/sparc64/config.sh,
- +arch/sparc64/kernel-config, +arch/sparc64/modules_load,
- +arch/x86/busy-config, +arch/x86/config.sh, +arch/x86/kernel-config,
- +arch/x86/modules_load, +arch/x86/nb-busybox.cf, +arch/x86_64/busy-config,
- +arch/x86_64/config.sh, +arch/x86_64/kernel-config,
- +arch/x86_64/modules_load, gen_configkernel.sh, genkernel.conf,
- -ia64/busy-config, -ia64/config.sh, -ia64/kernel-config,
- -ia64/modules_load, -mips/busy-config, -mips/config.sh,
- -mips/modules_load, -mips/nb-busybox.cf, -parisc/busy-config,
- -parisc/config.sh, -parisc/modules_load, -parisc64/busy-config,
- -parisc64/config.sh, -parisc64/modules_load, -ppc/busy-config,
- -ppc/config.sh, -ppc/kernel-config, -ppc/modules_load, -ppc64/busy-config,
- -ppc64/config.sh, -ppc64/kernel-2.6-pSeries, -ppc64/kernel-2.6.g5,
- -ppc64/modules_load, -sparc/busy-config, -sparc/config.sh,
- -sparc/kernel-config, -sparc/modules_load, -sparc64/busy-config,
- -sparc64/config.sh, -sparc64/kernel-config, -sparc64/modules_load,
- -x86/busy-config, -x86/config.sh, -x86/kernel-config, -x86/modules_load,
- -x86/nb-busybox.cf, -x86_64/busy-config, -x86_64/config.sh,
- -x86_64/kernel-config, -x86_64/modules_load:
- Moved architecture folders under the arch subfolder.
-
- 05 Jun 2008; Chris Gianelloni <wolf31o2@gentoo.org> -um/kernel-config-2.6,
- -ppc/kernel-config-2.6, -alpha/kernel-config-2.6, -ia64/kernel-config-2.6,
- -x86/kernel-config-2.6, -x86_64/kernel-config-2.6, +um/kernel-config,
- +ppc/kernel-config, +alpha/kernel-config, +ia64/kernel-config,
- +x86/kernel-config, +x86_64/kernel-config, genkernel:
- Rename kernel-config-2.6 to kernel-config, since we no longer support 2.4
- kernels. This is genkernel 3.4.10 for release.
-
- 05 Jun 2008; Chris Gianelloni <wolf31o2@gentoo.org>
- -ppc/2.6.3-benh2-G4-SMP.autoload, -ppc/2.6.3-benh2-G4.autoload,
- -ppc/2.6.3-benh2-G5-SMP.autoload, ia64/kernel-config-2.6,
- -ppc/2.6.3-benh2-G5.autoload, -ppc/G4, -ppc/G4-SMP,
- +ppc/kernel-config-2.6, x86/kernel-config-2.6, -ppc/G5, -ppc/G5-SMP,
- alpha/kernel-config-2.6, x86_64/kernel-config-2.6, TODO, -ppc/Pegasos,
- sparc64/kernel-config:
- Sync kernel configs from releng/trunk/releases/2008.0/kconfig and remove
- some unused configs.
-
- 13 May 2008; Andrew Gaffney <agaffney@gentoo.org> generic/linuxrc:
- Move setup_keymap call to before LUKS setup.
-
- 10 May 2008; Andrew Gaffney <agaffney@gentoo.org> gen_compile.sh:
- Store pre-oldconfig busybox .config for use in bincache comparison.
-
- 09 May 2008; Andrew Gaffney <agaffney@gentoo.org> generic/initrd.defaults,
- generic/initrd.scripts, generic/linuxrc:
- Add nomodules kernel commandline parameter to disable loading of modules.
-
- 09 May 2008; Andrew Gaffney <agaffney@gentoo.org> gen_funcs.sh, genkernel,
- genkernel.conf:
- Move distfile cache to /var/cache/genkernel/src and add check to make sure
- all distfiles are present.
-
- 09 May 2008; Chris Gianelloni <wolf31o2@gentoo.org> alpha/modules_load,
- ia64/modules_load, mips/modules_load, parisc/modules_load,
- parisc64/modules_load, ppc/modules_load, ppc64/modules_load,
- sparc/modules_load, sparc64/modules_load, um/modules_load,
- x86/modules_load, x86_64/modules_load:
- Added a few SATA and PATA drivers to modules_load.
-
- 09 May 2008; Chris Gianelloni <wolf31o2@gentoo.org> alpha/modules_load,
- ia64/modules_load, mips/modules_load, parisc/modules_load,
- parisc64/modules_load, ppc/modules_load, ppc64/modules_load,
- sparc/modules_load, sparc64/modules_load, um/modules_load,
- x86/modules_load, x86_64/modules_load:
- Updated the modules_load files.
-
- 25 Apr 2008; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.scripts, genkernel:
- Enable keymap code when keymap is set on the kernel command line. This is
- genkernel 3.4.10_pre10 for testing.
-
- 25 Apr 2008; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.scripts:
- We need to unset keymap if it doesn't match to keep from hitting an infinite
- loop.
-
- 24 Apr 2008; Chris Gianelloni <wolf31o2@gentoo.org> gen_determineargs.sh,
- gen_funcs.sh, generic/initrd.scripts, generic/linuxrc:
- Updated the keymap-handling code so it will be installed and displayed
- without using --do-auto-keymap with a patch from Florian Schilhabel
- <fernsehleo@gmx.net> for bug #215822. Also, added a keymap= command line
- option to allow setting keymap from the bootloader, also from Florian.
-
- 22 Apr 2008; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.scripts:
- Change from using a directory check to a file check. This should fix bug
- #215822.
-
- 12 Apr 2008; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.defaults:
- Move removable storage like USB and firewire after traditional fixed storage
- like PATA/SATA/SCSI for bug #217347.
-
- 10 Apr 2008; Chris Gianelloni <wolf31o2@gentoo.org> TODO, genkernel:
- Updated TODO. This is 3.4.10_pre9 for testing.
-
- 08 Apr 2008; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.defaults, generic/initrd.scripts:
- Added scsi to the default list of modules to load.
-
- 05 Apr 2008; Andrew Gaffney <agaffney@gentoo.org> gen_determineargs.sh:
- Set CMD_KEYMAP to default to yes, so it's enabled unless specifically
- disabled
-
- 04 Apr 2008; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.scripts, genkernel:
- Added a patch to skip device nodes for devices if at least one partition
- exists on the device. This aids in LiveUSB usage and is for bug #212794.
- This is genkernel 3.4.10_pre8.
-
- 03 Apr 2008; Andrew Gaffney <agaffney@gentoo.org> generic/linuxrc:
- Split up /dev node checks into console/null and tty1
-
- 02 Apr 2008; Andrew Gaffney <agaffney@gentoo.org> generic/linuxrc:
- Remove initrd-specific code from linuxrc
-
- 30 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> gen_arch.sh:
- Uncomment ppc/ppc64->powerpc code in set_kernel_arch, since it appears to
- actually be necessary as of 2.6.24-gentoo-r4
-
- 29 Mar 2008; Andrew Gaffney <agaffney@gentoo.org>
- +patches/busybox/1.7.4/busybox-1.7.4-signal-hack.patch:
- Add patch from ebuild in-tree to fix build issue with signals on hppa
-
- 14 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> gen_cmdline.sh,
- gen_determineargs.sh:
- Get rid of --initramfs option as it doesn't do anything anymore
-
- 14 Mar 2008; Chris Gianelloni <wolf31o2@gentoo.org> genkernel,
- genkernel.conf, -pkg/alpha/README, -pkg/ia64/README, -pkg/mips/.keep,
- -pkg/parisc/README, -pkg/parisc64/README, -pkg/ppc/README,
- -pkg/ppc64/README, -pkg/sparc/README, -pkg/sparc64/README, -pkg/um/README,
- -pkg/x86/README, -pkg/x86_64/README, -pkg/xen0/README, -pkg/xenU/README:
- Removing pkg directory, since it is no longer necessary. From now on, we'll
- just pull the tarballs from DISTDIR directly, and we've already moved our
- caches to /var/tmp/genkernel, so there's nothing left to keep here. This is
- genkernel 3.4.10_pre7 for testing.
-
- 14 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> gen_package.sh:
- Copy the original kconfig with a different name than the one used to build
-
- 14 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> gen_package.sh:
- Include original kconfig in kerncache If original kconfig exists in the
- kerncache, use that for comparison to the current kconfig
-
- 14 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> genkernel:
- Switch back to building kernel first
- Optionally build the kernel a second time if we're integrating the initramfs
-
- 14 Mar 2008; Chris Gianelloni <wolf31o2@gentoo.org> alpha/modules_load,
- genkernel, ia64/modules_load, mips/modules_load, parisc/modules_load,
- parisc64/modules_load, ppc/modules_load, ppc64/modules_load,
- sparc/modules_load, sparc64/modules_load, um/modules_load,
- x86/modules_load, x86_64/modules_load:
- Clean up the modules_load files and add qla2xxx. This is genkernel
- 3.4.10_pre6 for testing.
-
- 13 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> gen_initramfs.sh:
- Stick CONFIG_INITRAMFS_ROOT_GID in the .config, too
-
- 13 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> gen_initramfs.sh:
- Remove existing CONFIG_INITRAMFS_SOURCE line and write new one as well as
- CONFIG_INITRAMFS_ROOT_UID line
-
- 13 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> gen_initramfs.sh:
- Change sed delimeter
-
- 13 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> gen_initramfs.sh:
- We should edit the copy of the kconfig instead of the source file
-
- 13 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> gen_initramfs.sh,
- genkernel:
- Instead of copying the initramfs into the kernel tree, we now sed the
- kconfig to point CONFIG_INITRAMFS_SOURCE to the generated image
-
- 13 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> sparc64/modules_load:
- Add scsi_wait_scan to sparc64's MODULES_SCSI
-
- 13 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> generic/linuxrc:
- Add a check after mounting NEW_ROOT to see if /dev exists and /sbin/init is
- executable before moving on
-
- 13 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> gen_initramfs.sh:
- Change the location we copy the intiramfs to for integrated initramfs
-
- 13 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> generic/linuxrc:
- Revert last commit as it wasn't a problem
-
- 13 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> generic/linuxrc:
- Remove -c "/dev/console" from switch_root command
-
- 13 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> generic/linuxrc:
- Add missing $ to {NORMAL} for broken /dev message
-
- 13 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> gen_package.sh:
- Spacing cleanups in gen_package.sh
-
- 13 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> gen_arch.sh, genkernel:
- Remove unsetting of ARCH for callback and change set_kernel_arch debug to
- use print_info
-
- 13 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> gen_cmdline.sh:
- It helps to actually add the handling for the --integrated-initramfs option
-
- 13 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> gen_arch.sh:
- Use echo instead of print
-
- 13 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> gen_arch.sh:
- Add debug code for set_kernel_arch
-
- 13 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> genkernel:
- Add debugging code to show ARCH when running callback
- Unset ARCH when running callback and restore afterwards
-
- 13 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> genkernel:
- Move set_kernel_arch() call to after determine_real_args() so that get_KV()
- has populated the vars we need
-
- 13 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> gen_arch.sh:
- Change powerpc switch kernel version to 2.6.16 for if we ever uncomment it
-
- 13 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> gen_arch.sh,
- gen_compile.sh, genkernel:
- Add set_kernel_arch(), which maps the genkernel arch to the arch that the
- kernel expects based on the version of the kernel
-
- 13 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> gen_cmdline.sh,
- gen_compile.sh, gen_determineargs.sh, gen_initramfs.sh, gen_initrd.sh,
- gen_package.sh, genkernel:
- Get rid of the ENABLE_PEGASOS_HACKS hacks Add INTEGRATED_INITRAMFS option to
- optionally insert the generated initramfs directly into the kernel image
- Change default build order to build the kernel last to facilitate the
- INTEGRATED_INITRAMFS option Add GENZIMAGE option and change various checks
- from ENABLE_PEGASOS_HACKS to GENZIMAGE
-
- 13 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> gen_initramfs.sh:
- Argh...Changing the right line helps
-
- 13 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> gen_initramfs.sh:
- Change into initramfs-firmware-temp/ instead of
- initramfs-firmware-temp/lib/firmware/ before doing cpio
-
- 12 Mar 2008; Chris Gianelloni <wolf31o2@gentoo.org> generic/linuxrc,
- genkernel:
- Added a small debug statement to generic/linuxrc so we know when we're
- hitting the initrd code path. This is genkernel 3.4.10_pre5 for testing.
-
- 12 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> gen_initramfs.sh:
- Change to new temp directory so the firmware gets copied to the right place
-
- 12 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> gen_initramfs.sh:
- Copy firmware file with -L so we get the file instead of the symlink
-
- 12 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> gen_initramfs.sh:
- Fix another quoting malfunction
-
- 12 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> alpha/busy-config,
- ia64/busy-config, mips/busy-config, parisc/busy-config,
- parisc64/busy-config, ppc/busy-config, ppc64/busy-config,
- sparc/busy-config, sparc64/busy-config, x86/busy-config,
- x86_64/busy-config:
- Explicitly enable MDADM and MDSTART in busy-config
-
- 12 Mar 2008; Andrew Gaffney <agaffney@gentoo.org>
- patches/busybox/1.7.4/1.7.4-static-error.diff:
- Update busybox static-error patch to actually work
-
- 12 Mar 2008; Chris Gianelloni <wolf31o2@gentoo.org> genkernel.conf:
- Change BUSYBOX_VER to VERSION_BUSYBOX for genkernel-9999 ebuild.
-
- 11 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> gen_compile.sh:
- Remove the quotes when trying to expand a glob
-
- 11 Mar 2008; Andrew Gaffney <agaffney@gentoo.org>
- patches/busybox/1.7.4/1.7.4-mdadm.diff,
- patches/busybox/1.7.4/1.7.4-mdstart.diff:
- Update mdadm and mdstart patches
-
- 11 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> gen_compile.sh:
- It helps if we assign the correct value to version
- Send output of patch command to /dev/null
- Show a message saying we're patching if there are patches for the util
-
- 11 Mar 2008; Andrew Gaffney <agaffney@gentoo.org>
- +patches/busybox/1.7.4/1.7.4-static-error.diff:
- Add busybox patch to remove error about compiling statically
-
- 11 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> alpha/busy-config,
- gen_compile.sh, ia64/busy-config, mips/busy-config, parisc/busy-config,
- parisc64/busy-config, ppc/busy-config, ppc64/busy-config,
- sparc/busy-config, sparc64/busy-config, x86/busy-config,
- x86_64/busy-config:
- Update busy-config files for the various arches for busybox 1.7.4
-
- 11 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> gen_compile.sh,
- genkernel.conf, +patches/busybox/1.7.4/1.7.4-ash-timeout.diff,
- +patches/busybox/1.7.4/1.7.4-mdadm.diff,
- +patches/busybox/1.7.4/1.7.4-mdstart.diff,
- +patches/busybox/1.7.4/1.7.4-openvt.diff:
- Add apply_patches() function to automagically apply patches for a given util
- Add updated busybox patches for 1.7.4 from robbat2
- Change BUSYBOX_VER to 1.7.4
-
- 11 Mar 2008; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.scripts:
- Rearrange checks so the return value is read correctly.
-
- 10 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> alpha/busy-config,
- gen_initrd.sh, generic/initrd.scripts, generic/linuxrc, ia64/busy-config,
- mips/busy-config, parisc/busy-config, parisc64/busy-config,
- ppc/busy-config, ppc64/busy-config, sparc/busy-config,
- sparc64/busy-config, um/busy-config, x86/busy-config, x86_64/busy-config:
- Enable CONFIG_HEXDUMP globally for busybox
- Add getdvhoff replacement function from vapier
- Remove copying of getdvhoff from system
-
- 10 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> gen_cmdline.sh,
- gen_determineargs.sh, gen_initramfs.sh, genkernel.conf:
- Add support for --firmware-files option to make robbat2 happy
-
- 10 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> gen_cmdline.sh,
- gen_determineargs.sh, gen_initramfs.sh, genkernel.conf:
- Add support for --firmware and --firmware-dir options to include firmware in
- the initramfs
-
- 09 Mar 2008; Andrew Gaffney <agaffney@gentoo.org> generic/linuxrc:
- Apply patch from Vince C <v_cadet@yahoo.fr> to mount sysfs prior to loading
- modules, so that the mdev firmware loading can actually work
-
- 04 Mar 2008; Chris Gianelloni <wolf31o2@gentoo.org> gen_initramfs.sh:
- If we have a raid456.ko module, we need to create a raid45.ko symlink since
- dmraid can be rather stupid. This should resolve bug #195804.
-
- 04 Mar 2008; Chris Gianelloni <wolf31o2@gentoo.org> sparc64/kernel-config,
- alpha/kernel-config-2.6, ia64/kernel-config-2.6, x86/kernel-config-2.6,
- x86_64/kernel-config-2.6:
- Updated the kernel configs for arches which have given us their 2008.0
- configs. This is 3.4.10_pre4 for testing.
-
- 29 Feb 2008; Andrew Gaffney <agaffney@gentoo.org> gen_initramfs.sh:
- Redirect which output to /dev/null and put quotes around var in test
-
- 29 Feb 2008; Chris Gianelloni <wolf31o2@gentoo.org> alpha/modules_load,
- ia64/modules_load, ppc/modules_load, ppc64/modules_load, um/modules_load,
- x86_64/modules_load:
- Changed MDRAID to MDADM for bug #211316.
-
- 28 Feb 2008; Chris Gianelloni <wolf31o2@gentoo.org> gen_cmdline.sh,
- gen_initramfs.sh, gen_initrd.sh, generic/initrd.scripts:
- Added a --no-keymap option for bug #210886.
-
- 28 Feb 2008; Chris Gianelloni <wolf31o2@gentoo.org> gen_initramfs.sh,
- generic/linuxrc:
- Use which to determine the location of splash_geninitramfs, rather than
- having an endless number of conditional checks for the location. This fixes
- bug #211521. Thanks to Uriy Zhuravlev <stalkerg@gmail.com> for finding the
- problem and suggesting a solution.
-
- 20 Feb 2008; Chris Gianelloni <wolf31o2@gentoo.org>
- -xenU/kernel-config-2.6, -xen0/kernel-config-2.6, genkernel,
- -xen0/busy-config, -xen0/config.sh, -xen0/modules_load, -xenU/busy-config,
- -xenU/config.sh, -xenU/modules_load:
- Removing the xen0 and xenU arches, since they didn't work, anyway. This is
- genkernel 3.4.10_pre3 for testing.
-
- 20 Feb 2008; Andrew Gaffney <agaffney@gentoo.org> gen_package.sh:
- Add missing space before closing ]
-
- 19 Feb 2008; Andrew Gaffney <agaffney@gentoo.org> generic/initrd.scripts:
- Apply patch from bug 210457 to fix variable substitution. Thanks to Paul
- Taylor <birder@ozemail.com.au> for reporting
-
- 19 Feb 2008; Andrew Gaffney <agaffney@gentoo.org> generic/linuxrc:
- Remove quotes from around ${ROOT_TREES} so that the dirs are parsed
- separately by bash/cp
-
- 14 Feb 2008; Chris Gianelloni <wolf31o2@gentoo.org> gen_compile.sh,
- gen_determineargs.sh, gen_funcs.sh, gen_initramfs.sh, gen_initrd.sh,
- generic/initrd.defaults, generic/initrd.scripts, generic/linuxrc,
- genkernel, genkernel.8, genkernel.conf:
- Removing DEVFS support from genkernel since we don't support 2.4 kernels
- anymore. This is 3.4.10_pre2.
-
- 14 Feb 2008; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.scripts:
- Added a line to make sure we remove image.squashfs as well as the other loop
- names used by catalyst.
-
- 14 Feb 2008; Chris Gianelloni <wolf31o2@gentoo.org> gen_compile.sh:
- Added another patch from Javier Miqueleiz <javier@miqueleiz.com> in bug
- #198892 for mdadm 1.1 and 1.2 metadata support.
-
- 14 Feb 2008; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.defaults, generic/initrd.scripts, generic/linuxrc:
- Switch to detection for LOOP and LOOPTYPE when they are not set.
-
- 14 Feb 2008; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.scripts, generic/linuxrc:
- Performed some minor cleanup.
-
- 14 Feb 2008; Chris Gianelloni <wolf31o2@gentoo.org> generic/linuxrc:
- Move "busybox --install -s" to outside the /init check. Fix problems with
- running mknod on a non-CD root filesystem, which will be read-only, for bug
- #208266.
-
- 14 Feb 2008; Chris Gianelloni <wolf31o2@gentoo.org> -um/kernel-config-2.4,
- -alpha/kernel-config-2.4, -parisc64/kernel-config-2.4,
- -xenU/kernel-config-2.4, -parisc/kernel-config-2.4,
- -x86/kernel-config-2.4, -xen0/kernel-config-2.4:
- Removing 2.4 kernel configs, since we aren't supporting 2.4 from here on out.
-
- 14 Feb 2008; Chris Gianelloni <wolf31o2@gentoo.org> genkernel:
- We only need to make sure that we have /sbin and /usr/sbin in our PATH for
- bug #97378, not reset it. Thanks to Justin Bronder <jsbronder@gentoo.org> in
- bug #209182 for pointing it out. This is genkernel 3.4.10_pre1 for testing.
-
- 14 Feb 2008; Chris Gianelloni <wolf31o2@gentoo.org> gen_cmdline.sh,
- gen_compile.sh, gen_determineargs.sh, gen_initramfs.sh, gen_initrd.sh,
- generic/initrd.scripts, generic/linuxrc, genkernel, genkernel.conf,
- mips/config.sh:
- This is the long-awaited unionfs code cleanup. All of the unionfs code in
- genkernel has been removed.
-
- 07 Feb 2008; Andrew Gaffney <agaffney@gentoo.org> gen_determineargs.sh:
- Fix two calls to set_config_with_override on CMD_KERNCACHE and some
- indentation weirdness
-
- 04 Feb 2008; Andrew Gaffney <agaffney@gentoo.org> generic/initrd.scripts:
- Change &>/dev/null to >/dev/null 2>&1 because busybox ash sucks
-
- 04 Feb 2008; Andrew Gaffney <agaffney@gentoo.org> generic/initrd.scripts,
- generic/linuxrc:
- Switch to double quotes where we're interpolating variables, because I suck
-
- 03 Feb 2008; Andrew Gaffney <agaffney@gentoo.org> sparc64/modules_load:
- Add qla2xxx to sparc64's MODULES_SCSI
-
- 03 Feb 2008; Andrew Gaffney <agaffney@gentoo.org> gen_cmdline.sh,
- gen_determineargs.sh, gen_moddeps.sh:
- Add --all-initrd-modules option to copy all kernel modules into
- initrd/ramfs. This is useful for netboot images
-
- 03 Feb 2008; Andrew Gaffney <agaffney@gentoo.org> generic/initrd.scripts,
- generic/linuxrc:
- Add setup_hotplug() function that runs before the modules are loaded to
- setup mdev as the hotplug event handler. Add $KV to /lib/modules anywhere it
- occurs to allow for an initramfs with multiple sets of modules
-
- 03 Feb 2008; Andrew Gaffney <agaffney@gentoo.org> gen_configkernel.sh,
- genkernel.conf:
- Clean up OLDCONFIG logic and default to OLDCONFIG=yes. This is for bug 207895
-
- 02 Feb 2008; Chris Gianelloni <wolf31o2@gentoo.org> generic/linuxrc:
- Moving the code to start resume operations so it doesn't run when booting
- from CD. We also don't execute the code if there's no real_resume set on the
- command line, since it will fail, anyway, without it.
-
- 02 Feb 2008; Andrew Gaffney <agaffney@gentoo.org> alpha/modules_load,
- ia64/modules_load, ppc/modules_load, ppc64/modules_load, um/modules_load,
- x86/modules_load, x86_64/modules_load, xen0/modules_load,
- xenU/modules_load:
- add megaraid module to MODULES_SCSI for bug 206039
-
- 02 Feb 2008; Andrew Gaffney <agaffney@gentoo.org> generic/modprobe:
- specify the kernel version when looking for a module for bug 208593
-
- 02 Feb 2008; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.defaults, generic/initrd.scripts:
- Removed runUdev, since we no longer use it.
-
- 11 Jan 2008; Chris Gianelloni <wolf31o2@gentoo.org> gen_initramfs.sh,
- gen_initrd.sh, genkernel:
- Fixing a problem where we were copying the busybox binary cache into the
- busybox temporary directory. I am assuming that this was a result of all of
- the changes we've been doing, and it simply just got everlooked. Thanks to
- Marek Szuba <cyberman@if.pw.edu.pl> for pointing it out in bug #204087. This
- is genkernel 3.4.9 FINAL. Enjoy.
-
- 28 Dec 2007; Andrew Gaffney <agaffney@gentoo.org> generic/initrd.defaults,
- generic/initrd.scripts, generic/linuxrc:
- Don't scan a bunch of extra devices when CDROOT_DEV is defined.
-
- 28 Dec 2007; Andrew Gaffney <agaffney@gentoo.org> generic/initrd.scripts,
- generic/linuxrc:
- Add new cdroot_type=foo kernel commandline parameter to override -t iso9660
- for bug #182818.
-
- 28 Dec 2007; Andrew Gaffney <agaffney@gentoo.org> generic/initrd.scripts:
- Put -t auto back to -t iso9660 for mounting a cdrom. This is for bug #162962.
-
- 27 Dec 2007; Andrew Gaffney <agaffney@gentoo.org> genkernel.8:
- Fix description of --kernel-config for bug #194752.
-
- 27 Dec 2007; Chris Gianelloni <wolf31o2@gentoo.org> genkernel:
- This is 3.4.9_pre12 for testing.
-
- 23 Dec 2007; Andrew Gaffney <agaffney@gentoo.org> generic/initrd.scripts,
- generic/linuxrc, genkernel.8:
- Apply LUKS key patch from bug #162962 from Nelson Batalha
- <nelson_batalha@hotmail.com>
-
- 14 Dec 2007; Andrew Gaffney <agaffney@gentoo.org> generic/linuxrc:
- Fix text bolding on serial console for bug #202266 thanks to Michael Hordijk
- <hoffbrinkle@hotmail.com>.
-
- 13 Dec 2007; Andrew Gaffney <agaffney@gentoo.org> gen_determineargs.sh:
- Apply a patch from John R. Graham <john_r_graham@mindspring.com> for bug
- #201482.
-
- 06 Dec 2007; Andrew Gaffney <agaffney@gentoo.org> gen_cmdline.sh:
- Do s/KERNELDIR/KERNEL_DIR/ for bug #201159.
-
- 06 Dec 2007; Andrew Gaffney <agaffney@gentoo.org> generic/initrd.scripts:
- Fix typo for bug #201442. Thanks to Michael Hordijk <hoffbrinkle@hotmail.com>.
-
- 03 Dec 2007; Chris Gianelloni <wolf31o2@gentoo.org> genkernel:
- This is genkernel 3.4.9_pre11 for testing.
-
- 29 Nov 2007; Andrew Gaffney <agaffney@gentoo.org> gen_initramfs.sh,
- gen_initrd.sh:
- Do s/elsif/elif/ because I use too many languages and random bash tutorials
- online can't be trusted.
-
- 28 Nov 2007; Chris Gianelloni <wolf31o2@gentoo.org> gen_compile.sh,
- genkernel:
- Added a patch line for busybox for bug #198892. This is 3.4.9_pre10 for
- testing.
-
- 24 Nov 2007; Chris Gianelloni <wolf31o2@gentoo.org> gen_funcs.sh:
- Added a small patch from John R. Graham <john_r_graham@mindspring.com> to
- fix arguments with spaces for bug #200161.
-
- 24 Nov 2007; Andrew Gaffney <agaffney@gentoo.org> generic/linuxrc:
- Use 'read' to get a line at a time to account for directories with spaces in
- the name. This fixes bug 199701.
-
- 23 Nov 2007; Andrew Gaffney <agaffney@gentoo.org> gen_initramfs.sh,
- gen_initrd.sh:
- Look for cryptsetup in /bin and /sbin.
-
- 17 Nov 2007; Andrew Gaffney <agaffney@gentoo.org> gen_compile.sh:
- Force dmraid to be built with -j1 for bug #188273.
-
- 16 Nov 2007; Chris Gianelloni <wolf31o2@gentoo.org> genkernel.conf:
- My original sed of LVM2->LVM caught a few too many things. Thanks to Robin
- Johnson <robbat2@gentoo.org> for pointing them out and providing the fix in
- bug #198546.
-
- 13 Nov 2007; Chris Gianelloni <wolf31o2@gentoo.org> gen_determineargs.sh,
- genkernel.conf, genkernel:
- Added config defaulting for --mdadm for bug #198694. Thanks to John R.
- Graham <john_r_graham@mindspring.com> for providing the patch. This is
- 3.4.9_pre9 for testing.
-
- 08 Nov 2007; Andrew Gaffney <agaffney@gentoo.org> gen_arch.sh:
- Revert patch from bug #190327 as it breaks well more than it fixed.
-
- 07 Nov 2007; Chris Gianelloni <wolf31o2@gentoo.org> alpha/config.sh,
- gen_cmdline.sh, gen_determineargs.sh, gen_funcs.sh, gen_initramfs.sh,
- gen_initrd.sh, gen_package.sh, genkernel, genkernel.conf, ia64/config.sh,
- mips/config.sh, parisc/config.sh, parisc64/config.sh, ppc/config.sh,
- ppc64/config.sh, sparc/config.sh, sparc64/config.sh, um/config.sh,
- x86/config.sh, x86_64/config.sh, xen0/config.sh, xenU/config.sh:
- Added a nice patch from John R. Graham <john_r_graham@mindspring.com> to
- allow all command line options to be configurable from within the
- genkernel.conf file. This is for bug #182616. This is genkernel 3.4.9_pre8
- for testing.
-
- 07 Nov 2007; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.scripts:
- Fixed the noload module code. Thanks to Mijail Fedorovich
- <mfedorovich@gmail.com> for pointing it out in bug #198187.
-
- 07 Nov 2007; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.scripts, generic/linuxrc:
- Added an update patch from Alon Bar-Lev <alonbl@gentoo.org> in bug #197244
- to clean up the suspend2 code and rename the functions to tuxonice to match
- the upstream rename.
-
- 07 Nov 2007; Chris Gianelloni <wolf31o2@gentoo.org> gen_cmdline.sh,
- gen_compile.sh, gen_initramfs.sh, gen_initrd.sh, gen_package.sh,
- genkernel:
- Added a patch from Joshua Kinard <kumba@gentoo.org> to clean up the Pegasos
- hacks in genkernel. This is from bug #193826. This is genkernel 3.4.9_pre7
- for testing.
-
- 07 Nov 2007; Chris Gianelloni <wolf31o2@gentoo.org> gen_arch.sh:
- Added a simple patch from Andrew Gaffney <agaffney@gentoo.org> to ensure
- that we export ARCH before running menuconfig. This is from bug #190327.
-
- 07 Nov 2007; Chris Gianelloni <wolf31o2@gentoo.org> gen_compile.sh,
- generic/initrd.scripts, generic/linuxrc:
- Make sure we still allow dolvm2/doevms2 on the kernel command line and give
- a warning. I've also added a 2 second delay between vgscan and vgchange.
- Thanks to Robin H. Johnson <robbat2@gentoo.org> for suggesting the changes
- and testing.
-
- 02 Nov 2007; Chris Gianelloni <wolf31o2@gentoo.org> +generic/modprobe,
- gen_initramfs.sh, gen_initrd.sh, genkernel:
- Reverting the removal of generic/modprobe for bug #197730. This is genkernel
- 3.4.9_pre6 for testing.
-
- 01 Nov 2007; Chris Gianelloni <wolf31o2@gentoo.org> gen_compile.sh,
- gen_initramfs.sh, genkernel:
- Fixed device-mapper/man removal for bug #196087, fixed mdadm.conf copying,
- and fixed syntax error for bug #197582. This is genkernel-3.4.9_pre5.
-
- 30 Oct 2007; Chris Gianelloni <wolf31o2@gentoo.org>
- -pkg/suspend-0.5-Makefile.patch, -pkg/busybox-1.1.3+gentoo.tar.bz2,
- -pkg/devfsd-1.3.25-dietlibc.patch,
- -pkg/devfsd-1.3.25-dietlibc-kernel25.tar.bz2, alpha/busy-config,
- gen_cmdline.sh, gen_compile.sh, gen_determineargs.sh, gen_initramfs.sh,
- generic/initrd.defaults, generic/initrd.scripts, generic/linuxrc,
- genkernel, ia64/busy-config, mips/busy-config, parisc/busy-config,
- parisc64/busy-config, ppc/busy-config, ppc64/busy-config,
- sparc/busy-config, sparc64/busy-config, um/busy-config, x86/busy-config,
- x86/modules_load, x86_64/busy-config, xen0/busy-config, xenU/busy-config:
- Added a patch from Alan Hourihane <alanh@fairlite.demon.co.uk> for mdadm
- support in busybox from bug #172128. This is genkernel 3.4.9_pre4 for
- testing.
-
- 30 Oct 2007; Chris Gianelloni <wolf31o2@gentoo.org> gen_initramfs.sh,
- generic/initrd.scripts, generic/linuxrc:
- Made a few minor cleanups here and there.
-
- 12 Oct 2007; Andrew Gaffney <agaffney@gentoo.org> genkernel.8:
- Update description for --initramfs-overlay in man page to match --help.
-
- 05 Oct 2007; Andrew Gaffney <agaffney@gentoo.org> gen_initramfs.sh,
- gen_initrd.sh:
- Remove generic/modprobe and all supporting code, since busybox has it now.
-
- 04 Oct 2007; Andrew Gaffney <agaffney@gentoo.org> gen_initramfs.sh:
- We need to cd out of directory to be deleted for bug #194695. Thanks to Asmund
- Grammeltvedt <asmundg@big-oil.org> for pointing this out.
-
- 18 Sep 2007; Andrew Gaffney <agaffney@gentoo.org> gen_initramfs.sh,
- gen_initrd.sh:
- We don't ever want devfs in an initramfs, so check KERN_24 instead of DEVFS
- for 2.4 initrd generation
-
- 17 Sep 2007; Chris Gianelloni <wolf31o2@gentoo.org> gen_cmdline.sh,
- gen_compile.sh, gen_determineargs.sh, gen_funcs.sh, gen_initrd.sh,
- genkernel, genkernel.8, genkernel.conf:
- Rename DEBUGLEVEL/DEBUGFILE to LOGLEVEL/LOGFILE to help reduce confusion.
-
- 17 Sep 2007; Chris Gianelloni <wolf31o2@gentoo.org> gen_cmdline.sh,
- gen_configkernel.sh, genkernel:
- Some more general cleanup and adding support for using a config file other
- than /etc/genkernel.conf to add flexibility.
-
- 17 Sep 2007; Chris Gianelloni <wolf31o2@gentoo.org>
- -pkg/module-init-tools-0.9.15-pre4.tar.bz2,
- -pkg/klibc-1.1.16-sparc2.patch, -pkg/klibc-1.2.1-nostdinc-flags.patch,
- -pkg/modutils-2.4.26.tar.bz2:
- Removing klibc/modutils/module-init-tools files, since we don't need any of
- them, anymore.
-
- 17 Sep 2007; Chris Gianelloni <wolf31o2@gentoo.org> genkernel:
- It helps if I use 'g' when doing a sed.
-
- 17 Sep 2007; Chris Gianelloni <wolf31o2@gentoo.org> gen_bootloader.sh,
- genkernel, genkernel.conf:
- Removed the use of GK_BIN variable, since it isn't necessary.
-
- 17 Sep 2007; Chris Gianelloni <wolf31o2@gentoo.org> TODO, genkernel.conf:
- Updated TODO and cleaning up genkernel.conf a bit.
-
- 17 Sep 2007; Chris Gianelloni <wolf31o2@gentoo.org> generic/linuxrc,
- netboot/misc/bin/net-setup, netboot/misc/etc/fstab:
- Remove some unnecessary copyright dates from a few files so we don't keep
- forgetting to update them when we modify the files.
-
- 17 Sep 2007; Chris Gianelloni <wolf31o2@gentoo.org> gen_cmdline.sh,
- gen_configkernel.sh, gen_determineargs.sh, gen_initramfs.sh, genkernel,
- genkernel.8, mips/config.sh:
- Renamed gensplash to splash and marked gensplash as deprecated. This is
- 3.4.9_pre3 for testing.
-
- 17 Sep 2007; Chris Gianelloni <wolf31o2@gentoo.org> TODO,
- alpha/modules_load, gen_cmdline.sh, gen_compile.sh, gen_configkernel.sh,
- gen_determineargs.sh, gen_initramfs.sh, gen_initrd.sh,
- generic/initrd.defaults, generic/initrd.scripts, generic/linuxrc,
- genkernel, genkernel.8, genkernel.conf, ia64/modules_load, mips/config.sh,
- ppc/modules_load, ppc64/modules_load, um/modules_load, x86/modules_load,
- x86_64/modules_load, xen0/modules_load, xenU/modules_load:
- Changed all instances of EVMS2/LVM2 to EVMS/LVM, respectively. This will
- keep everything simplified if a newer EVMS/LVM version set appears.
-
- 17 Sep 2007; Chris Gianelloni <wolf31o2@gentoo.org> README,
- alpha/config.sh, gen_bootloader.sh, gen_cmdline.sh, gen_configkernel.sh,
- gen_determineargs.sh, gen_initrd.sh, gen_package.sh, genkernel,
- genkernel.8, genkernel.conf, ia64/config.sh, mips/config.sh,
- parisc/config.sh, parisc64/config.sh, ppc/config.sh, ppc64/config.sh,
- sparc/config.sh, sparc64/config.sh, um/config.sh, x86/config.sh,
- x86_64/config.sh, xen0/config.sh, xenU/config.sh:
- Removing bootsplash support since it hasn't been in a kernel we've supported
- for years now, causes confusion amongst users, and really wasn't being used
- and caused issues with 2.6/initrd creation in some corner cases.
-
- 17 Sep 2007; Chris Gianelloni <wolf31o2@gentoo.org>
- -pkg/genkernel-svn-suspend.patch:
- Removing the reversal patch for the suspend removal, since it will no longer
- apply.
-
- 17 Sep 2007; Chris Gianelloni <wolf31o2@gentoo.org> gen_bootloader.sh,
- gen_cmdline.sh, gen_compile.sh, gen_determineargs.sh, gen_initramfs.sh,
- gen_initrd.sh, generic/linuxrc, genkernel, mips/config.sh:
- Performed some general cleanup on a few files and removed devfs/udev
- selection code, since we force devfs on 2.4 and mdev on 2.6 kernels.
-
- 30 Aug 2007; Chris Gianelloni <wolf31o2@gentoo.org> gen_cmdline.sh,
- gen_compile.sh, gen_configkernel.sh, gen_determineargs.sh,
- gen_initramfs.sh, generic/initrd.scripts, generic/linuxrc, genkernel,
- genkernel.conf, +pkg/genkernel-svn-suspend.patch:
- Removing the suspend support that was added for bug #156445 until suspend is
- added to the tree and we can determine the proper way to support it. For
- more information, see bug #156431. This is genkernel 3.4.9_pre2 for testing.
-
- 22 Aug 2007; Chris Gianelloni <wolf31o2@gentoo.org> x86/kernel-config-2.6,
- x86_64/kernel-config-2.6, genkernel:
- Removed CONFIG_PHYSICAL_START from the x86/amd64 kernel configs for bug
- #186378. This is genkernel 3.4.9_pre1 for testing.
-
- 22 Aug 2007; Chris Gianelloni <wolf31o2@gentoo.org> genkernel:
- Changing to use console=tty1 instead of CONSOLE=/dev/tty1 with a patch from
- Matthias Schwarzott <zzam@gentoo.org> for bug #188954.
-
- 22 Aug 2007; Chris Gianelloni <wolf31o2@gentoo.org> alpha/modules_load,
- ia64/modules_load, ppc/modules_load, ppc64/modules_load, um/modules_load,
- x86/modules_load, x86_64/modules_load, xen0/modules_load,
- xenU/modules_load:
- Added arcmsr to MODULES_SCSI for bug #185827.
-
- 22 Aug 2007; Chris Gianelloni <wolf31o2@gentoo.org>
- +pkg/suspend-0.5-Makefile.patch:
- Added suspend-0.5-Makefile.patch to pkg directory for suspend capabilities,
- bringing it into the repository, from the tree.
-
- 22 Aug 2007; Chris Gianelloni <wolf31o2@gentoo.org> genkernel.8:
- Added a small patch from Tais M. Hansen <tais.hansen@osd.dk> to add doscsi
- to the genkernel man page for bug #183406.
-
- 21 Aug 2007; Chris Gianelloni <wolf31o2@gentoo.org> gen_funcs.sh,
- genkernel.8:
- Added another patch from John R. Graham <john_r_graham@mindspring.com> for
- bug #180161.
-
- 26 Jul 2007; Robin H. Johnson <robbat2@gentoo.org> gen_initramfs.sh:
- Clean up a cosmetic error introduced by the symlink patch:
- ${GK_SHARE}/gen_funcs.sh: line 431: popd:
- /var/tmp/genkernel/3996.6301.23048.13838/initramfs-modules-${KV}-temp: No
- such file or directory
-
- 26 Jul 2007; Robin H. Johnson <robbat2@gentoo.org> generic/initrd.scripts,
- generic/linuxrc:
- The previous patch from bug #174294 still contained some bugs in the linuxrc
- and scripts, that caused a failure during boot. Clean them up with one more
- patch from Nelson Batalha <nelson_batalha@hotmail.com>, again on bug #174294.
-
- 26 Jul 2007; Andrew Gaffney <agaffney@gentoo.org> netboot/linuxrc.x:
- enhanced netboot linuxrc from gustavoz
-
- 26 Jul 2007; Andrew Gaffney <agaffney@gentoo.org> alpha/busy-config,
- gen_compile.sh, gen_determineargs.sh, gen_initramfs.sh, gen_initrd.sh,
- genkernel, genkernel.conf, ia64/busy-config, mips/busy-config,
- parisc/busy-config, parisc64/busy-config, ppc/busy-config,
- ppc64/busy-config, sparc/busy-config, sparc64/busy-config,
- x86/busy-config, x86_64/busy-config, xen0/busy-config, xenU/busy-config:
- enable CONFIG_INSMOD in all arch busy-config files
- disable building of static insmod and remove all code related to it
-
- 26 Jul 2007; Andrew Gaffney <agaffney@gentoo.org> gen_package.sh:
- Patch to compare new config instead of the one left laying around in the
- kerncache dir. Thanks to Pat Double <gentoo@patdouble.com> in bug #179739
-
- 26 Jul 2007; Andrew Gaffney <agaffney@gentoo.org> gen_compile.sh,
- gen_initramfs.sh, gen_initrd.sh, genkernel.conf:
- Patch to actually use busybox bincache. Thanks to Pat Double
- <gentoo@patdouble.com> on bug #180211
-
- 21 Jun 2007; Chris Gianelloni <wolf31o2@gentoo.org> gen_initrd.sh:
- Fixed lvm/evms code for initrd generation. Thanks to Vinny
- <vfuria@gmail.com> on bug #179480 for pointing it out.
-
- 21 Jun 2007; Chris Gianelloni <wolf31o2@gentoo.org> alpha/modules_load,
- generic/initrd.defaults, ia64/modules_load, ppc/modules_load,
- ppc64/modules_load, um/modules_load, x86/modules_load,
- x86_64/modules_load, xen0/modules_load, xenU/modules_load:
- Added new PATA support from Paul Hewlett <paul@gccs.co.za> from bug #180111
- and also created a separate MDRAID module group.
-
- 21 Jun 2007; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.scripts, generic/linuxrc:
- Added a patch from Nelson Batalha <nelson_batalha@hotmail.com> from bug
- #174294 to enable the use of encryption on a CD and the location of a key.
-
- 21 Jun 2007; Chris Gianelloni <wolf31o2@gentoo.org> gen_determineargs.sh,
- gen_funcs.sh, genkernel, genkernel.8, genkernel.conf:
- Added two patches from John R. Graham <john_r_graham@mindspring.com> from
- bug #180161. This should fix bug #180161, bug #144703, and bug #150697.
-
- 21 Jun 2007; Chris Gianelloni <wolf31o2@gentoo.org> x86/kernel-config-2.6:
- Added USB Printer support for bug #176543.
-
- 21 Jun 2007; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.scripts:
- Change the check for /livecd when booting a CD to check for a file called
- livecd, rather than just the existence of /livecd, which should keep it from
- finding disks with a /livecd directory.
-
- 21 Jun 2007; Chris Gianelloni <wolf31o2@gentoo.org> gen_package.sh:
- Added a patch from Andrew Gaffney <agaffney@gentoo.org> from bug #174188 to
- fix a problem with the System.map file copying that was previously
- introduced.
-
- 21 Jun 2007; Chris Gianelloni <wolf31o2@gentoo.org> genkernel.8:
- Added patch from Nelson Batalha <nelson_batalha@hotmail.com> from bug
- #172766 to add documentation for genkernel's LUKS features.
-
- 21 Jun 2007; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.scripts:
- Added patch from Nicolas Schlumberger <n.schlumberger@bluewin.ch> to create
- md devices with LUKS for bug #170753.
-
- 21 Jun 2007; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.scripts:
- Reverting patch that was originally added due to bug #160333 due to the
- problems it caused on the 2007.0 release.
-
- 12 Apr 2007; Chris Gianelloni <wolf31o2@gentoo.org> gen_package.sh,
- genkernel:
- Added a patch from Andrew Gaffney <agaffney@gentoo.org> to add System.map to
- the tarball for the minimal kernel package for bug #174188. This is also the
- 3.4.8 release.
-
- 12 Apr 2007; Chris Gianelloni <wolf31o2@gentoo.org> alpha/modules_load,
- ia64/modules_load, um/modules_load, x86/modules_load, x86_64/modules_load,
- xen0/modules_load, xenU/modules_load:
- Added mptsas to SCSI for bug #174130 and removing raid0/raid1/raid10/raid456
- from DMRAID.
-
- 12 Apr 2007; Chris Gianelloni <wolf31o2@gentoo.org> gen_initramfs.sh,
- gen_initrd.sh:
- Commented out the checks on the sanity of lvm.conf since they were not quite
- working right. This should fix bug #173622.
-
- 09 Apr 2007; Chris Gianelloni <wolf31o2@gentoo.org> +x86/nb-busybox.cf:
- Added nb-busybox.cf to x86 on the request of Andrew Gaffney
- <agaffney@gentoo.org>.
-
- 05 Apr 2007; Chris Gianelloni <wolf31o2@gentoo.org> gen_initramfs.sh,
- gen_initrd.sh, genkernel:
- Added a change to force objdump output to be English for bug #173412 and
- rolling 3.4.7 final for the release.
-
- 05 Apr 2007; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.scripts:
- Added a patch from Daniel Drake <dsd@gentoo.org> to fix splash problems for
- bug #172562.
-
- 03 Apr 2007; Chris Gianelloni <wolf31o2@gentoo.org> genkernel.conf:
- Some minor config file cleanup.
-
- 03 Apr 2007; Chris Gianelloni <wolf31o2@gentoo.org> gen_cmdline.sh,
- genkernel.8:
- Added a second patch from John R. Graham <john_r_graham@mindspring.com> from
- bug #169383.
-
- 27 Mar 2007; Chris Gianelloni <wolf31o2@gentoo.org> alpha/modules_load,
- ia64/modules_load, x86/modules_load, x86_64/modules_load,
- xen0/modules_load, xenU/modules_load:
- Added raid456 to dmraid target for bug #172128.
-
- 26 Mar 2007; Chris Gianelloni <wolf31o2@gentoo.org> gen_initramfs.sh,
- gen_initrd.sh:
- Changed LVM configuration detection to not error.
-
- 26 Mar 2007; Chris Gianelloni <wolf31o2@gentoo.org> x86/kernel-config-2.6:
- Added joystick support to the default configuration for bug #171911.
-
- 14 Mar 2007; Chris Gianelloni <wolf31o2@gentoo.org> gen_initramfs.sh,
- gen_initrd.sh, genkernel:
- Before we copy lvm.conf, we run it through 'lvm dumpconfig' to make sure the
- config is valid for bug #156009. This is 3.4.7_pre5.
-
- 14 Mar 2007; Chris Gianelloni <wolf31o2@gentoo.org> genkernel.conf:
- Change the default CACHE_DIR from /usr/share/genkernel/pkg/%%ARCH%% to
- /var/cache/genkernel/%%ARCH%% for bug #148253.
-
- 13 Mar 2007; Chris Gianelloni <wolf31o2@gentoo.org> alpha/modules_load,
- ia64/modules_load, um/modules_load, x86/modules_load, x86_64/modules_load,
- xen0/modules_load, xenU/modules_load:
- Added libata to the MODULES_SATA list. This might be why SATA CD drives
- weren't working for us.
-
- 09 Mar 2007; Chris Gianelloni <wolf31o2@gentoo.org> gen_compile.sh,
- gen_determineargs.sh, gen_funcs.sh, gen_initramfs.sh, gen_initrd.sh,
- gen_package.sh, genkernel:
- Added a patch by John R. Graham <john_r_graham@mindspring.com> from bug
- #169383 to improve the --symlink option fairly significantly. This is going
- to be 3.4.7_pre4 and while I haven't tested this yet, it looks good.
-
- 09 Mar 2007; Chris Gianelloni <wolf31o2@gentoo.org> gen_initramfs.sh:
- Fixed lib64 link for bug #168664.
-
- 09 Mar 2007; Chris Gianelloni <wolf31o2@gentoo.org> x86/kernel-config-2.6:
- Update default kernel config with the current LiveCD config for 2007.0,
- which is built on 2.6.19, rather than 2.6.17 only.
-
- 07 Mar 2007; Chris Gianelloni <wolf31o2@gentoo.org>
- +pkg/module-init-tools-0.9.15-pre4.tar.bz2,
- +pkg/busybox-1.1.3+gentoo.tar.bz2,
- +pkg/devfsd-1.3.25-dietlibc-kernel25.tar.bz2,
- +pkg/modutils-2.4.26.tar.bz2:
- Added binary files back and updated busybox with a patch from Peter
- Alfredsen <peter.alfredsen@gmail.com> in bug #168599.
-
- 07 Mar 2007; Chris Gianelloni <wolf31o2@gentoo.org>
- -pkg/module-init-tools-0.9.15-pre4.tar.bz2,
- -pkg/busybox-1.1.3+gentoo.tar.bz2,
- -pkg/devfsd-1.3.25-dietlibc-kernel25.tar.bz2,
- -pkg/modutils-2.4.26.tar.bz2:
- Removing binary files from pkg since they were corrupted during the CVS->SVN
- migration.
-
- 07 Mar 2007; Chris Gianelloni <wolf31o2@gentoo.org> genkernel.8:
- Fixed up the man page for bug #168500 and bug #168719.
-
- 14 Feb 2007; Chris Gianelloni <wolf31o2@gentoo.org> genkernel,
- parisc/config.sh, parisc64/config.sh:
- Moved the MAKEOPTS check to the top of the file for parisc, so it matches
- other architectures. This fixes bug #165494. Thanks to Andrew Gaffney
- <agaffney@gentoo.org> for finding the fix. I'm marking this as 3.4.7_pre3
- for testing.
-
- 14 Feb 2007; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.scripts:
- Adding yet another patch from Fabio Erculiani <lxnay@lxnaydesign.net> from
- bug #152945.
-
- 12 Feb 2007; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.scripts, generic/linuxrc, genkernel:
- Added a non-braindead version of a patch provided by Fabio Erculiani
- <lxnay@lxnaydesign.net> in bug #160333. This is completely untested, so I'm
- rolling up 3.4.7_pre2 to get it tested prior to genkernel 3.4.7 going final.
-
- 12 Feb 2007; Chris Gianelloni <wolf31o2@gentoo.org> ppc/Pegasos:
- Add a known-working 2.6.16+ kernel config from
- http://www.ppczone.org/downloads/config-2.6.16-pegasos for bug #165758.
-
- 12 Feb 2007; Chris Gianelloni <wolf31o2@gentoo.org> genkernel.conf:
- Added a note about the MAKEOPTS option to genkernel as suggested in bug
- #165980.
-
- 12 Feb 2007; Chris Gianelloni <wolf31o2@gentoo.org> genkernel.8:
- Added patch from Mike Frysinger <vapier@gentoo.org> to clean up the
- genkernel man page for bug #166179.
-
- 12 Feb 2007; Chris Gianelloni <wolf31o2@gentoo.org> generic/linuxrc:
- Fix REAL_INIT for bug #160635.
-
- 12 Feb 2007; Chris Gianelloni <wolf31o2@gentoo.org> gen_cmdline.sh,
- gen_compile.sh, genkernel:
- Added patch from Fabio Erculiani <lxnay@lxnaydesign.net> to fix unionfs
- compilation. This is for bug #152945.
-
- 08 Feb 2007; Chris Gianelloni <wolf31o2@gentoo.org> gen_cmdline.sh,
- gen_funcs.sh:
- Added patch from Martin Parm <parmus@diku.dk> to fix the --no-color option.
- This resolves bug #114156.
-
- 15 Jan 2007; Chris Gianelloni <wolf31o2@gentoo.org> gen_bootloader.sh:
- Changed basename to dirname when creating the directory from grub.conf to
- solve bug #161716.
-
- 09 Jan 2007; Chris Gianelloni <wolf31o2@gentoo.org> alpha/modules_load,
- x86/modules_load, x86_64/modules_load, xen0/modules_load,
- xenU/modules_load:
- Added scsi_scan_wait module to modules_load for 2.6.20 support. Thanks to
- Robin H. Johnson for <robbat2@gentoo.org> for pointing it out.
-
- 27 Dec 2006; Chris Gianelloni <wolf31o2@gentoo.org> gen_bootloader.sh,
- generic/initrd.scripts:
- Added a case statement for the keymap selection to ensure we're always using
- the named keymaps. This should resolve bug #146714 if everything works
- correctly. This is 3.4.6, for real.
-
- 27 Dec 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- +generic/keymaps.tar.gz:
- Adding back the known-good copy of keymaps.tar.gz to svn.
-
- 27 Dec 2006; Chris Gianelloni <wolf31o2@gentoo.org> alpha/busy-config,
- gen_compile.sh, -generic/keymaps.tar.gz, generic/linuxrc, genkernel,
- ia64/busy-config, mips/busy-config, parisc/busy-config,
- parisc64/busy-config, ppc/busy-config, ppc64/busy-config,
- sparc/busy-config, sparc64/busy-config, um/busy-config, x86/busy-config,
- x86_64/busy-config, xen0/busy-config, xenU/busy-config:
- Removing generic/keymaps.tar.gz to replace it with a known-good copy. Blame
- cvs2svn. Also, added patch from Alon Bar-Lev <alonbl@gentoo.org> to switch
- to using switch_root for 2.6 kernels, and a small typo fix from Michael
- Hordijk <hoffbrinkle@hotmail.com> for bug #158776.
-
- 15 Dec 2006; Chris Gianelloni <wolf31o2@gentoo.org> gen_initrd.sh,
- generic/linuxrc, genkernel:
- Added patches from François-Xavier Roure <fx_roure@yahoo.fr> from bug
- #149020. This will end up being genkernel 3.4.6, most likely.
-
- 14 Dec 2006; Chris Gianelloni <wolf31o2@gentoo.org> gen_compile.sh:
- Adjust selinux stuff in gen_compile.sh to actually do what we intended, not
- the opposite.
-
- 14 Dec 2006; Chris Gianelloni <wolf31o2@gentoo.org> gen_compile.sh:
- Since device-mapper tries to build with selinux by default, we've removed
- it, then commented out the selinux support. The ebuild will need to
- enable/disable selinux support based on the selinux USE flag. This should
- resolve bug #157538.
-
- 13 Dec 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.scripts:
- More fixes for similarly-named modules.
-
- 13 Dec 2006; Chris Gianelloni <wolf31o2@gentoo.org> alpha/busy-config,
- ia64/busy-config, parisc/busy-config, parisc64/busy-config,
- ppc/busy-config, ppc64/busy-config, sparc/busy-config,
- sparc64/busy-config, x86/busy-config, x86_64/busy-config,
- xen0/busy-config, xenU/busy-config:
- Disabled full SuSv3 compliant sort, as suggested by Aurélien Francillon
- <aurelien.francillon@inrialpes.fr> in bug #157777.
-
- 13 Dec 2006; Chris Gianelloni <wolf31o2@gentoo.org> generic/modprobe:
- Added a fix for similarly-named modules from bug #158017.
-
- 13 Dec 2006; Chris Gianelloni <wolf31o2@gentoo.org> gen_compile.sh:
- Fixed up linking for dmraid for bug #157538.
-
- 13 Dec 2006; Chris Gianelloni <wolf31o2@gentoo.org> alpha/busy-config,
- ia64/busy-config, parisc/busy-config, parisc64/busy-config,
- ppc/busy-config, ppc64/busy-config, sparc/busy-config,
- sparc64/busy-config, x86/busy-config, x86_64/busy-config,
- xen0/busy-config, xenU/busy-config:
- Updated busy-config to work with root=LABEL=<label> for bug #156640.
-
- 13 Dec 2006; Chris Gianelloni <wolf31o2@gentoo.org> gen_determineargs.sh,
- gen_initramfs.sh, genkernel, genkernel.conf:
- Added patch from Daniel Drake <dsd@gentoo.org> in bug #156611 to clean up
- the initramfs creation and create a 'proper' initramfs, instead of our
- concatenated monster.
-
- 13 Dec 2006; Chris Gianelloni <wolf31o2@gentoo.org> gen_cmdline.sh,
- gen_compile.sh, gen_configkernel.sh, gen_determineargs.sh,
- gen_initramfs.sh, gen_initrd.sh, generic/initrd.scripts, generic/linuxrc,
- genkernel.8, genkernel.conf:
- Added patch from Daniel Drake <dsd@gentoo.org> in bug #156445 to add
- userspace suspend support to genkernel.
-
- 13 Dec 2006; Chris Gianelloni <wolf31o2@gentoo.org> gen_initramfs.sh,
- gen_initrd.sh:
- Added debug level to LUKS print_info messages for bug #156410.
-
- 03 Dec 2006; Chris Gianelloni <wolf31o2@gentoo.org> alpha/modules_load,
- x86/modules_load, x86_64/modules_load:
- Added raid456 to alpha/amd64/x86 MODULES_EVMS2 and added tg3 to MODULES_NET.
-
- 13 Nov 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.scripts:
- Inverted check on CDROOT_DEV, as it should be -z not -n. Thanks to Jakub Moc
- <jakub@gentoo.org> for coming up with the quick fix in bug #153554. I lied
- before. This one is really 3.4.5.
-
- 13 Nov 2006; Chris Gianelloni <wolf31o2@gentoo.org> generic/linuxrc,
- genkernel:
- Added typo fix from Jason Pepas <j.pepas@mail.utexas.edu> in bug #153516.
- This is 3.4.5.
-
- 13 Nov 2006; Chris Gianelloni <wolf31o2@gentoo.org> alpha/busy-config,
- ia64/busy-config, mips/busy-config, parisc/busy-config,
- parisc64/busy-config, ppc/busy-config, ppc64/busy-config,
- sparc/busy-config, sparc64/busy-config, um/busy-config, x86/busy-config,
- x86_64/busy-config, xen0/busy-config, xenU/busy-config:
- Added Large File Support thanks to Fabio Erculiani <lxnay@lxnaydesign.net>
- in bug #152881.
-
- 13 Nov 2006; Chris Gianelloni <wolf31o2@gentoo.org> genkernel:
- Added patch to improve symlink support by Michael Hordijk
- <hoffbrinkle@hotmail.com> for bug #143217.
-
- 13 Nov 2006; Chris Gianelloni <wolf31o2@gentoo.org> generic/linuxrc:
- Added patch from Tim Steiner <tsteiner@nerdclub.net> to add a real_rootflags
- parameter for bug #122672.
-
- 13 Nov 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.scripts, generic/linuxrc:
- Added patch to support resuming from encrypted swap. The patch was submitted
- to bug #152441.
-
- 25 Oct 2006; Chris Gianelloni <wolf31o2@gentoo.org> genkernel:
- This is the 3.4.4 release.
-
- 25 Oct 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.scripts, generic/linuxrc:
- Updated with the latest version of the LUKS patches from bug #152441.
-
- 25 Oct 2006; Chris Gianelloni <wolf31o2@gentoo.org> ChangeLog:
- Changed mime-type to application/x-gzip for generic/keymaps.tar.gz for bug
- #151500.
-
- 23 Oct 2006; Chris Gianelloni <wolf31o2@gentoo.org> generic/linuxrc:
- Added patch from bug #152441 to improve LUKS support.
-
- 23 Oct 2006; Chris Gianelloni <wolf31o2@gentoo.org> x86/kernel-config-2.6,
- x86_64/kernel-config-2.6:
- Updated kernel configs for amd64/x86 for bug #151609 and bug #152299.
-
- 23 Oct 2006; Chris Gianelloni <wolf31o2@gentoo.org> genkernel:
- Changed mime-type property to binary/gzip for keymaps.tar.gz for bug #151500.
- This is genkernel 3.4.3.
-
- 13 Oct 2006; Chris Gianelloni <wolf31o2@gentoo.org> gen_initramfs.sh,
- generic/initrd.defaults, generic/initrd.scripts, +generic/udhcpc.scripts,
- x86/busy-config, x86/modules_load:
- Added patch for udhcp support. Patch by Stefan Nickl
- <snickl@snickl.freaks.de> and submitted to bug #145115.
-
- 13 Oct 2006; Chris Gianelloni <wolf31o2@gentoo.org> generic/linuxrc:
- Allow root= for initramfs, instead of only real_root= to specify the root
- volume. Patch by Salah Coronya <salahx@yahoo.com> from bug #142606.
-
- 13 Oct 2006; Chris Gianelloni <wolf31o2@gentoo.org> genkernel.8:
- Added patch from Salah Coronya <salahx@yahoo.com> to document dolvm2 and
- doevms2 in the genkernel man page from bug #142606.
-
- 13 Oct 2006; Chris Gianelloni <wolf31o2@gentoo.org> +AUTHORS, genkernel:
- Added the AUTHORS file and ChangeLog. This is 3.4.2
-
- 02 Oct 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.scripts:
- Added patch for suspend2-sources 2.6.18 by Romeo Benzoni
- <romeo@benzoni.org> and submitted to bug #148499.
-
- 02 Oct 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- gen_determineargs.sh:
- Added patch from Alon Bar-Lev <alon.barlev@gmail.com> for bug
- #148498 and also a patch from Robin H. Johnson
- <robbat2@gentoo.org> to support git-based kernels.
-
- 02 Oct 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- x86_64/kernel-config-2.6, -x86_64/kernel-config-2.6-emachines,
- -x86_64/kernel-config-2.6-smp:
- Update the amd64 kernel configs from the release.
-
- 16 Sep 2006; Tim Yamin <plasmaroo@gentoo.org>
- gen_initramfs.sh, genkernel:
- Should check for /sbin/splash_geninitramfs instead of
- /usr/sbin/...
-
- 14 Sep 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.scripts:
- This change makes it so we only try to mount 'auto' when cdroot
- is specified. This should fix all of our mounting issues, as
- well as allow for not only USB keys to use these kernels with a
- LiveCD kernel/config, but allow it to boot from any media which
- the kernel has support.
-
- 14 Sep 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.scripts:
- Added a symlink for device-mapper stuff. This should resolve
- both bug #142775 and bug #147015.
-
- 14 Sep 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- alpha/modules_load, x86/modules_load, x86_64/modules_load:
- Added lpfc and scsi_transport_fc for Emulex fibre-channel
- controllers.
-
- 13 Sep 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- alpha/modules_load, x86/modules_load, x86_64/modules_load:
- Make sure we load the raid0, raid1, and raid10 personalities
- with dmraid.
-
- 12 Sep 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.scripts:
- This is ugly. I mean, really ugly. However, it is the only way
- to support all of the insane ways that people are trying to boot
- release media. I really wish we didn't have to support this
- junk, but a regression really shouldn't happen with our
- releases. Anyway, hopefully I can come up with a better
- solution to this in the future.
-
- 12 Sep 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.scripts:
- Try using -t iso9660,vfat to our mount command, since we can't
- use only iso9660 as it breaks booting from a USB stick.
-
- 12 Sep 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- gen_initrd.sh:
- The initrd code was still looking for udev, even though we
- aren't building it anymore. This should fix bug #145802.
-
- 12 Sep 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- ppc/busy-config:
- Fix NFS mount.
-
- 12 Sep 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.defaults:
- Added emul to ROOT_LINKS for bug #145248.
-
- 12 Sep 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- x86/busy-config, x86_64/busy-config:
- Fixed the NFS mount configuration for busybox for bug #143476.
-
- 12 Sep 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.scripts:
- Update the suspend2_resume function for bug #131202.
-
- 12 Sep 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.scripts:
- iso9660 -> auto, and added support for checking SUBDIR for the
- livecd file. This is for bug #147186.
-
- 12 Sep 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- x86/kernel-config-2.6, x86_64/kernel-config-2.6:
- Updated default kernel configurations for x86/amd64 to match the
- 2006.1 release.
-
- 08 Sep 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- gen_initramfs.sh:
- Add more error checking into the splash code and die instead of
- silently fail on an error.
-
- 23 Aug 2006; Tim Yamin <plasmaroo@gentoo.org>
- ia64/kernel-config-2.6:
- Update config, fix #141949.
-
- 22 Aug 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.scripts, generic/linuxrc:
- Added patch for suspend2 for bug #131202.
-
- 15 Aug 2006; Tim Yamin <plasmaroo@gentoo.org> generic/linuxrc:
- Fix bug #143442.
-
- 13 Aug 2006; Tim Yamin <plasmaroo@gentoo.org>
- generic/initrd.scripts:
- Fix devfsd not kicking in on 2.4 on Alpha.
-
- 11 Aug 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- gen_compile.sh, genkernel.conf:
- Add in the kernel version compatibility table from
- http://www.am-utils.org/project-unionfs.html and ensure that
- genkernel dies if the unionfs module fails to build. Until now,
- it would fail and the build would continue without it.
-
- 01 Aug 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- gen_initramfs.sh:
- We should be checking for /usr/bin/splash_geninitramfs, instead.
-
- 31 Jul 2006; Tim Yamin <plasmaroo@gentoo.org> genkernel:
- 3.4.0 final... so much Bad-Ass <TM> that Chuck Norris himself
- digs it :)
-
- 20 Jul 2006; Tim Yamin <plasmaroo@gentoo.org> gen_cmdline.sh,
- gen_initramfs.sh, genkernel:
- Commit fix for bug #141153 from Pylon; 3.4.0_pre4.
-
- 18 Jul 2006; Tim Yamin <plasmaroo@gentoo.org>
- gen_bootloader.sh, gen_funcs.sh, gen_package.sh, genkernel:
- Commit patches #91453, #91481 from bug #139866.
-
- 18 Jul 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- alpha/modules_load, um/modules_load, x86/modules_load,
- x86_64/modules_load, xen0/modules_load, xenU/modules_load:
- Added megaraid drivers for bug #139888.
-
- 16 Jul 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- gen_initramfs.sh:
- Added fix for bug #140445.
-
- 11 Jul 2006; Tim Yamin <plasmaroo@gentoo.org>
- gen_bootloader.sh, gen_cmdline.sh, gen_compile.sh,
- gen_determineargs.sh, gen_funcs.sh, gen_initramfs.sh,
- gen_initrd.sh, gen_package.sh, genkernel, genkernel.conf:
- Commit patch for bug #139866 by Martin Parm.
-
- 05 Jul 2006; Joshua Kinard <kumba@gentoo.org> generic/linuxrc:
- Tweak the sgimips section for rootfs mounting to use squashfs
- instead of ext2.
-
- 30 Jun 2006; Tim Yamin <plasmaroo@gentoo.org> generic/linuxrc:
- Fix "Cannot read /proc/mounts" cosmetics.
-
- 30 Jun 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- alpha/modules_load, um/modules_load, x86/modules_load,
- x86_64/modules_load, xen0/modules_load, xenU/modules_load:
- We need firmware_class in our initramfs for ide-cs to work.
-
- 20 Jun 2006; Tim Yamin <plasmaroo@gentoo.org> genkernel,
- genkernel.conf,
- -pkg/busybox-1.1.0-gentoo-gk4-20060519-snappie.tar.bz2,
- +pkg/busybox-1.1.3+gentoo.tar.bz2:
- Bump busybox to 1.1.3 courtesy of `Kumba.
-
- 19 Jun 2006; Joshua Kinard <kumba@gentoo.org>
- gen_initramfs.sh, -mips/ip22r4k-2006_0.cf,
- +mips/ip22r4k-2006_1.cf, -mips/ip22r5k-2006_0.cf,
- +mips/ip22r5k-2006_1.cf, -mips/ip27r10k-2006_0.cf,
- +mips/ip27r10k-2006_1.cf, -mips/ip28r10k-2006_0.cf,
- +mips/ip28r10k-2006_1.cf, -mips/ip30r10k-2006_0.cf,
- +mips/ip30r10k-2006_1.cf, -mips/ip32r5k-2006_0.cf,
- mips/ip32r5k-2006_1.cf, -mips/ip32rm52-2006_0.cf,
- +mips/ip32rm5k-2006_1.cf, mips/nb-busybox.cf, netboot/linuxrc.x:
- Remove getdvhoff hack in gen_initramfs.sh for mips livecds (it's
- a busybox applet now), tweak the ip32r5k config, add wget to the
- mips netboot busybox config. Also import the remaining 2006.1
- mips-sources configs and remove the old 2006.0 ones.
-
- 12 Jun 2006; Joshua Kinard <kumba@gentoo.org> mips/busy-config:
- Enable the config option for busybox's --install parameter.
-
- 12 Jun 2006; Joshua Kinard <kumba@gentoo.org>
- mips/busy-config, +mips/ip32r5k-2006_1.cf, mips/nb-busybox.cf:
- Add IP32 R5K 2.6.16.20 kernel build, and update LiveCD/Netboot
- Busybox configs to match with busybox-1.1.3.
-
- 10 Jun 2006; Joshua Kinard <kumba@gentoo.org> mips/config.sh:
- Modernize the mips genkernel config.
-
- 10 Jun 2006; Joshua Kinard <kumba@gentoo.org>
- -mips/ip22r4k-2005_1.cf, -mips/ip22r5k-2005_1.cf,
- -mips/ip27r10k-2005_1.cf, -mips/ip28r10k-2005_1.cf,
- -mips/ip30r10k-2005_1.cf, -mips/ip32r5k-2005_1.cf:
- Remove old configs.
-
- 10 Jun 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/linuxrc:
- We can't use vol_id since it was a part of udev.
-
- 09 Jun 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- genkernel.8:
- Added --static to man page for bug #135703.
-
- 09 Jun 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- gen_cmdline.sh, gen_determineargs.sh, gen_initramfs.sh,
- gen_initrd.sh, generic/initrd.scripts, generic/linuxrc:
- Add a modified version of the two LUKS patches that made their
- way into bugzilla for bug #122421.
-
- 09 Jun 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- alpha/modules_load, generic/initrd.defaults, generic/linuxrc,
- x86/modules_load, x86_64/modules_load, xen0/modules_load,
- xenU/modules_load:
- Added code to allow the root file-system to be a module. This
- is for bug #118098.
-
- 09 Jun 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/linuxrc:
- Changed real_init to init_opts to be more accurate, and added a
- proper real_init option to allow the selection of the init
- executable to run. This is for bug #113426.
-
- 09 Jun 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- gen_initramfs.sh, gen_initrd.sh:
- Added fix for bug #134843 from Thomas Raschbacher
- <lordvan@gentoo.org> for evms and later glibc versions.
-
- 05 Jun 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- genkernel.8:
- Fixed man page. Thanks to Andrew Yates <andrew@andrewyates.net>
- for the patch.
-
- 01 Jun 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- alpha/busy-config, ia64/busy-config, mips/busy-config,
- parisc/busy-config, parisc64/busy-config, ppc/busy-config,
- ppc64/busy-config, sparc/busy-config, sparc64/busy-config,
- um/busy-config, x86/busy-config, x86_64/busy-config,
- xen0/busy-config, xenU/busy-config:
- Added CONFIG_ASH_READ_TIMEOUT=y so we have a timeout value on
- read, used for keymap selection.
-
- 01 Jun 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/linuxrc:
- More spacing cleanups.
-
- 01 Jun 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/linuxrc:
- I accidentally removed some stuff that needed to be there in my
- overzealous debug cleanup.
-
- 01 Jun 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/linuxrc:
- Cleaning up debug statements.
-
- 31 May 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/linuxrc:
- Ooops... forgot my then after elif. I hope nobody noticed.
-
- 31 May 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/linuxrc:
- Change cp to mknod for sr0/loop0 for mips and also for tty1 for
- splash.
-
- 30 May 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/linuxrc:
- Change cp to mknod for console/null.
-
- 25 May 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.scripts, generic/linuxrc:
- Fix an error in setup_unionfs and add in some debug support to
- figure out why/where this initramfs is stopping.
-
- 24 May 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.scripts:
- Fixed up TODO with actual working code since we don't have awk.
-
- 24 May 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.scripts, generic/linuxrc:
- Add in image.squashfs as a squashfs loop, since it is now the
- default in catalyst. Also, added a nice TODO about docache and
- size restrictions into cache_cd_contents.
-
- 19 May 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- gen_cmdline.sh:
- Just some spacing clean ups in the long usage listing.
-
- 19 May 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- genkernel.conf:
- Comment the rest of the udev syuff from genkernel.conf as it
- shouldn't be necessary anymore with mdev.
-
- 19 May 2006; Tim Yamin <plasmaroo@gentoo.org>
- alpha/busy-config, gen_compile.sh, gen_initramfs.sh,
- generic/initrd.scripts, generic/linuxrc, genkernel,
- genkernel.conf, ia64/busy-config, mips/busy-config,
- parisc/busy-config, parisc64/busy-config,
- -pkg/busybox-1.00-headers_fix.patch,
- -pkg/busybox-1.00-rt-mdstart.plasmaroo.tar.bz2,
- +pkg/busybox-1.1.0-gentoo-gk4-20060519-snappie.tar.bz2,
- ppc/busy-config, ppc64/busy-config, sparc/busy-config,
- sparc64/busy-config, um/busy-config, x86/busy-config,
- x86_64/busy-config, xen0/busy-config, xenU/busy-config:
- Update to busybox 1.1.0; port over to use mdev.
-
- 07 May 2006; Tim Yamin <plasmaroo@gentoo.org> gen_cmdline.sh,
- genkernel:
- Fix #132408.
-
- 07 May 2006; Tim Yamin <plasmaroo@gentoo.org>
- gen_initramfs.sh, gen_initrd.sh:
- Fix #131769.
-
- 27 Apr 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- gen_compile.sh:
- Added patch for unionfs from bug #129965.
-
- 27 Apr 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- gen_compile.sh:
- Add -DUNIONFS_UNSUPPORTED for 2.6.16 and unionfs.
-
- 25 Apr 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- alpha/modules_load, x86/modules_load, x86_64/modules_load,
- xen0/modules_load, xenU/modules_load:
- Added some more modules to MODULES_SCSI that could be used to
- boot from a genkernel-compiled kernel on a live system.
-
- 17 Apr 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- gen_compile.sh, generic/initrd.scripts, generic/linuxrc:
- Added patch from Mike Auty for udev 088+.
-
- 17 Apr 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- alpha/modules_load, x86/modules_load, x86_64/modules_load,
- xen0/modules_load, xenU/modules_load:
- Added 3ware card drivers to scsi modules on x86/amd64/alpha.
-
- 17 Apr 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- gen_compile.sh, genkernel:
- Updated to *hopefully* work with udev 087.
-
- 14 Apr 2006; Tim Yamin <plasmaroo@gentoo.org> alpha/config.sh,
- ia64/config.sh, parisc/config.sh, parisc64/config.sh,
- ppc/config.sh, ppc64/config.sh, sparc/config.sh,
- sparc64/config.sh, um/config.sh, x86/config.sh,
- x86_64/config.sh, xen0/config.sh, xenU/config.sh:
- Fix #107628.
-
- 14 Apr 2006; Tim Yamin <plasmaroo@gentoo.org> gen_compile.sh,
- gen_initramfs.sh, gen_initrd.sh, generic/initrd.scripts,
- generic/linuxrc, genkernel:
- ->3.3.11d. Fix #121616, #128805, #129887, #129910.
-
- 14 Apr 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.scripts:
- Forgot one part of the patch from bug #121334.
-
- 13 Apr 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- gen_compile.sh, genkernel, genkernel.8:
- Updated the unionfs compiling section. This *should* allow
- unionfs to build on supported kernels.
-
- 13 Apr 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/linuxrc:
- Uncommented suspend2 support from bug #114266.
-
- 13 Apr 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.scripts, generic/linuxrc:
- Added unionfs patches from bug #121334.
-
- 13 Apr 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.scripts, generic/linuxrc, genkernel,
- x86/busy-config, x86/modules_load, x86_64/busy-config,
- x86_64/modules_load, xen0/busy-config, xen0/modules_load,
- xenU/busy-config, xenU/modules_load:
- Added a check for /dev/tty0 to setup_keymap, added raid
- personality modules for EVMS, and fixed lots of space/tab
- issues, along with a general style cleanup. I'm calling this
- one 3.3.11b internally, and hopefully it will be added to the
- tree if it resolves bug #124388.
-
- 13 Apr 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- gen_cmdline.sh, gen_initramfs.sh, gen_initrd.sh,
- generic/initrd.defaults, generic/initrd.scripts, generic/linuxrc:
- dobladecenter->slowusb
-
- 06 Apr 2006; Tim Yamin <plasmaroo@gentoo.org> gen_compile.sh,
- +pkg/klibc-1.2.1-nostdinc-flags.patch:
- Add hardened fix for bug #128806.
-
- 24 Mar 2006; Tim Yamin <plasmaroo@gentoo.org>
- ia64/kernel-config-2.6:
- Update config for the new Fusion MPT CONFIG_ options on newer
- 2.6 kernels; bug #125353.
-
- 10 Mar 2006; Tim Yamin <plasmaroo@gentoo.org> generic/linuxrc:
- Fix bug #124251.
-
- 14 Feb 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/linuxrc:
- Updated copyright notice to get KingTaco off my back.
-
- 14 Feb 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- gen_initramfs.sh, gen_initrd.sh:
- Added 0 0 to end of the ram0 line on fstab. Blame KingTaco for
- pointing it out.
-
- 08 Feb 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- gen_compile.sh:
- Changed unpacking of klibc to use tar j instead of tar z.
-
- 08 Feb 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- genkernel.conf:
- Let's use the bzip2 tarball of klibc by default form now on,
- shall we...
-
- 07 Feb 2006; Chris Gianelloni <wolf31o2@gentoo.org> genkernel,
- +pkg/klibc-1.1.16-sparc2.patch:
- Added klibc patch for sparc to CVS (from distfiles). This is
- 3.3.11 so like... run in fear or something...
-
- 02 Feb 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- gen_cmdline.sh, gen_determineargs.sh, gen_initramfs.sh,
- gen_initrd.sh, genkernel:
- Added patch from Kumba to make certain initrd functions less
- mips-specific.
-
- 27 Jan 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- gen_compile.sh, genkernel:
- Removed save_args/reset_args on kernel. This is 3.3.11_pre7.
-
- 26 Jan 2006; Eric Edgar <rocket@gentoo.org> gen_compile.sh:
- unset temp vars so they get cleaned up
-
- 26 Jan 2006; Eric Edgar <rocket@gentoo.org> gen_compile.sh,
- gen_initramfs.sh, genkernel:
- bump to pre6. resets ARCH env var after utils are compiled
-
- 25 Jan 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- gen_arch.sh, gen_compile.sh, genkernel:
- Added sparc patches for udev/klibc.
-
- 24 Jan 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- gen_arch.sh, gen_cmdline.sh, gen_compile.sh,
- gen_determineargs.sh, genkernel:
- Added nice and fun patch from dostrow for building on ppc64 (and
- possibly others) with mixed kernel/userland.
-
- 23 Jan 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/linuxrc:
- Added fix for bug #120031.
-
- 20 Jan 2006; Joshua Kinard <kumba@gentoo.org>
- +mips/ip32rm52-2006_0.cf:
- Kernel 2.6.14.6 config for SGI O2 w/ RM5271 CPU ("Nevada")
-
- 15 Jan 2006; Joshua Kinard <kumba@gentoo.org> gen_cmdline.sh,
- gen_determineargs.sh, genkernel:
- Add support to genkernel to build a monolithic kernel by
- skipping module building sections when
- --static is passed on the gk commandline.
-
- 12 Jan 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- gen_compile.sh:
- Added comment about utils breaking udev so we don't break it
- again inadvertently.
-
- 12 Jan 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- gen_compile.sh, genkernel, +pkg/busybox-1.00-headers_fix.patch:
- Added busybox headers fix (_pre2) and changed utils to runtask
- on udev build (_pre3).
-
- 12 Jan 2006; Joshua Kinard <kumba@gentoo.org>
- netboot/linuxrc.x:
- chmod +x the udhcpc script on bootup
-
- 12 Jan 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- gen_compile.sh, genkernel, -pkg/byteswap.h:
- Added patch from bug #118324.
-
- 10 Jan 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- x86/modules_load, x86_64/modules_load, xen0/modules_load,
- xenU/modules_load:
- Added additional SATA controllers to MODULES_SATA for loading
- into the initrd/initramfs image.
-
- 07 Jan 2006; Joshua Kinard <kumba@gentoo.org>
- gen_initramfs.sh, +mips/ip22r4k-2006_0.cf,
- +mips/ip22r5k-2006_0.cf, +mips/ip27r10k-2006_0.cf,
- +mips/ip28r10k-2006_0.cf, +mips/ip30r10k-2006_0.cf,
- +mips/ip32r5k-2006_0.cf, +mips/nb-busybox.cf, +netboot,
- +netboot/linuxrc.x, +netboot/misc, +netboot/misc/bin,
- +netboot/misc/bin/net-setup, +netboot/misc/etc,
- +netboot/misc/etc/fstab, +netboot/misc/etc/group,
- +netboot/misc/etc/inittab, +netboot/misc/etc/passwd,
- +netboot/misc/etc/profile, +netboot/misc/etc/resolv.conf,
- +netboot/misc/etc/shadow, +netboot/misc/etc/shells,
- +netboot/misc/usr, +netboot/misc/usr/share,
- +netboot/misc/usr/share/terminfo,
- +netboot/misc/usr/share/terminfo/p,
- +netboot/misc/usr/share/terminfo/p/putty,
- +netboot/misc/usr/share/udhcpc,
- +netboot/misc/usr/share/udhcpc/default.script:
- Import the Genkernel-side of things for the catalyst2 netboot2
- module
-
- 06 Jan 2006; Eric Edgar <rocket@gentoo.org> gen_compile.sh:
- udev compile change from runtask to utils
-
- 03 Jan 2006; Tim Yamin <plasmaroo@gentoo.org>
- gen_bootloader.sh, gen_compile.sh, gen_determineargs.sh,
- gen_initramfs.sh, genkernel:
- Fix #115263, #117392, add a fix to sanify LOCALVERSION if
- unresolved variables are embedded.
-
- 02 Jan 2006; Chris Gianelloni <wolf31o2@gentoo.org>
- alpha/modules_load, um/modules_load, x86/modules_load,
- x86_64/modules_load, xen0/modules_load, xenU/modules_load:
- Updated Fusion MPT support for bug #117114.
-
- 21 Dec 2005; Tim Yamin <plasmaroo@gentoo.org> gen_compile.sh:
- Fix --kernel-cross-compile with PPC64.
-
- 18 Dec 2005; Tim Yamin <plasmaroo@gentoo.org> gen_compile.sh,
- genkernel:
- Add a compile_klibc(...) fix for old GNU tars and patch the
- klibc Makefile to leave /lib alone.
-
- 16 Dec 2005; Tim Yamin <plasmaroo@gentoo.org> gen_compile.sh:
- runtask -> utils for compile_klibc.
-
- 16 Dec 2005; Chris Gianelloni <wolf31o2@gentoo.org>
- gen_compile.sh, genkernel:
- Added x86/klibc fix.
-
- 16 Dec 2005; Chris Gianelloni <wolf31o2@gentoo.org>
- x86/kernel-config-2.6:
- Added HERMES support to use in-kernel driver rather than
- external.
-
- 15 Dec 2005; Tim Yamin <plasmaroo@gentoo.org>
- pkg/busybox-1.00-rt-mdstart.plasmaroo.tar.bz2:
- Fix #109196.
-
- 15 Dec 2005; Eric Edgar <rocket@gentoo.org> gen_compile.sh,
- +pkg/byteswap.h:
- Fix to allow udev 076 and udev 077 to compile... add a missing
- file byteswap.h to klibc-1.1.1
-
- 15 Dec 2005; Chris Gianelloni <wolf31o2@gentoo.org>
- genkernel.conf:
- Removed versions from all packages that are pulled from upstream
- so we can use sed in the ebuild to set these, making maintenance
- easier.
-
- 09 Dec 2005; Eric Edgar <rocket@gentoo.org> gen_compile.sh:
- add quotes to the ARCH= stuff for the kernel
-
- 09 Dec 2005; Eric Edgar <rocket@gentoo.org> gen_compile.sh:
- Forcibly set the ARCH when compiling the kernel
-
- 07 Dec 2005; Chris Gianelloni <wolf31o2@gentoo.org>
- x86/kernel-config-2.6:
- Changed CONFIG_BLK_DEV_MD=y for bug #112962.
-
- 06 Dec 2005; Tim Yamin <plasmaroo@gentoo.org>
- gen_bootloader_grub.awk:
- Fix #100637.
-
- 05 Dec 2005; Tim Yamin <plasmaroo@gentoo.org> generic/linuxrc:
- Back out suspend2 support temporarily as per #114266 comment 10.
-
- 05 Dec 2005; Tim Yamin <plasmaroo@gentoo.org> generic/linuxrc:
- Fix #113634, #114266.
-
- 05 Dec 2005; Chris Gianelloni <wolf31o2@gentoo.org>
- x86/kernel-config-2.6:
- Added USB Printer support for bug #114496.
-
- 28 Nov 2005; Chris Gianelloni <wolf31o2@gentoo.org>
- x86/kernel-config-2.6, x86/modules_load, x86_64/modules_load:
- Added sata_mv to x86/amd64 for Marvell SATA controllers and
- updated 2.6 kernel config for x86 to match what would be used on
- a current 2.6.14 LiveCD.
-
- 23 Nov 2005; Eric Edgar <rocket@gentoo.org> genkernel:
- Version Bump 3.3.8
-
- 23 Nov 2005; Eric Edgar <rocket@gentoo.org> gen_initramfs.sh,
- gen_initrd.sh:
- Fix bug 113287
-
- 22 Nov 2005; Eric Edgar <rocket@gentoo.org> genkernel.conf:
- Update unionfs in genkernel.conf to 1.1.1
-
- 21 Nov 2005; Eric Edgar <rocket@gentoo.org> generic/linuxrc:
- fix for sys delete bug 109819
-
- 21 Nov 2005; Eric Edgar <rocket@gentoo.org> gen_compile.sh,
- genkernel.conf:
- Add support for dmraid1.0.0.rc9 to fix bug 94762
-
- 21 Nov 2005; Eric Edgar <rocket@gentoo.org> gen_initramfs.sh,
- gen_initrd.sh, gen_moddeps.sh, gen_package.sh:
- Fix missing moddeps file by adding a test;Do not keep the
- initrd/initramfs with a kernelz system as it is already bundled
- together.
-
- 18 Nov 2005; Tim Yamin <plasmaroo@gentoo.org> genkernel:
- Fix {PPC+Catalyst+Pegasos} build failure regression.
-
- 17 Nov 2005; Tim Yamin <plasmaroo@gentoo.org>
- -pkg/udev-054.tar.bz2, -pkg/udev-068.tar.bz2:
- Remove obsoleted udev...
-
- 17 Nov 2005; Eric Edgar <rocket@gentoo.org> gen_compile.sh,
- gen_determineargs.sh, genkernel.conf:
- Udev 075 support, klibc 1.1.1, and fixes for ppc on 2.6.14+
- kernels
-
- 04 Nov 2005; Chris Gianelloni <wolf31o2@gentoo.org>
- gen_arch.sh, gen_initramfs.sh, gen_initrd.sh,
- generic/initrd.scripts, generic/linuxrc, genkernel, +mips,
- +mips/busy-config, +mips/config.sh, +mips/ip22r4k-2005_1.cf,
- +mips/ip22r5k-2005_1.cf, +mips/ip27r10k-2005_1.cf,
- +mips/ip28r10k-2005_1.cf, +mips/ip30r10k-2005_1.cf,
- +mips/ip32r5k-2005_1.cf, +mips/modules_load, +pkg/mips,
- +pkg/mips/.keep:
- Added patches from bug #106338. This means mips support in
- genkernel. Blame Kumba.
-
- 28 Oct 2005; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/linuxrc, genkernel:
- Changed the version indicator, fixing fstab generation for
- unionfs, and resolving bug #103332.
-
- 28 Oct 2005; Chris Gianelloni <wolf31o2@gentoo.org>
- gen_initramfs.sh:
- Made symlink relative for bug #105572.
-
- 28 Oct 2005; Chris Gianelloni <wolf31o2@gentoo.org>
- gen_compile.sh, genkernel.conf, +pkg/udev-068.tar.bz2:
- Upgraded to udev 068 and also closing bug #103936.
-
- 28 Oct 2005; Chris Gianelloni <wolf31o2@gentoo.org>
- gen_funcs.sh:
- Added fix for bug #103717.
-
- 21 Oct 2005; Chris Gianelloni <wolf31o2@gentoo.org>
- x86/kernel-config-2.6:
- Updated x86 2.6 kernel configuration.
-
- 10 Oct 2005; Chris Gianelloni <wolf31o2@gentoo.org>
- alpha/modules_load, x86/modules_load, x86_64/modules_load:
- Added fix for bug #102006.
-
- 31 Aug 2005; Eric Edgar <rocket@gentoo.org> genkernel:
- Update genkernel version number
-
- 31 Aug 2005; Chris Gianelloni <wolf31o2@gentoo.org>
- x86/kernel-config-2.6:
- CONFIG_PRINTER=m for bug #104229.
-
- 30 Aug 2005; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.scripts, generic/linuxrc:
- Add nodetect and doload patch from bug #102643, with some
- modifications.
-
- 16 Aug 2005; Eric Edgar <rocket@gentoo.org> gen_compile.sh,
- gen_initrd.sh, generic/initrd.scripts, generic/linuxrc:
- Fix for bug 83276 and add udevsend binary to initramfs for newer
- udevs
-
- 16 Aug 2005; Chris Gianelloni <wolf31o2@gentoo.org>
- alpha/modules_load, um/modules_load, x86/modules_load,
- x86_64/modules_load, xen0/modules_load, xenU/modules_load:
- Added dm-mirror to dmraid on all supported arches for bug
- #102739.
-
- 15 Aug 2005; Tim Yamin <plasmaroo@gentoo.org> genkernel.8:
- Fix #101716.
-
- 15 Aug 2005; Tim Yamin <plasmaroo@gentoo.org>
- gen_configkernel.sh:
- Fix #88080.
-
- 15 Aug 2005; Tim Yamin <plasmaroo@gentoo.org> gen_cmdline.sh:
- Fix #102407.
-
- 15 Aug 2005; Tim Yamin <plasmaroo@gentoo.org>
- pkg/busybox-1.00-rt-mdstart.plasmaroo.tar.bz2:
- Fix #102491.
-
- 11 Aug 2005; Eric Edgar <rocket@gentoo.org>
- alpha/modules_load, um/modules_load, x86/modules_load,
- x86_64/modules_load, xen0/modules_load, xenU/modules_load:
- Fix bug 102006 for dm-bbr. Added dm-bbr to modules_load files
- under MODULES_LVM2.
-
- 11 Aug 2005; Eric Edgar <rocket@gentoo.org> gen_initramfs.sh:
- Fix for bug 91966. Link lib64 to lib in the initramfs
-
- 11 Aug 2005; Eric Edgar <rocket@gentoo.org> gen_compile.sh,
- generic/linuxrc:
- Fix for newer udevs to detect udevstart
-
- 06 Aug 2005; Chris Gianelloni <wolf31o2@gentoo.org>
- gen_configkernel.sh:
- Fixed config parsing for dmraid/lvm2 to only set =m if item is
- not set. Closing bug #101535.
-
- 02 Aug 2005; Eric Edgar <rocket@gentoo.org> gen_cmdline.sh,
- ppc/config.sh, ppc64/config.sh:
- Fix incorrect commit
-
- 02 Aug 2005; Eric Edgar <rocket@gentoo.org> gen_cmdline.sh,
- gen_initramfs.sh, ppc/config.sh, ppc64/config.sh:
- Create symlink to init named linuxrc. In preparation for the
- need to pack the cpio into the kernel
-
- 02 Aug 2005; Eric Edgar <rocket@gentoo.org>
- generic/initrd.scripts:
- Add iseries virtual cdrom auto scanning support
-
- 01 Aug 2005; Eric Edgar <rocket@gentoo.org> genkernel:
- Remove unnecessary check for multiple running genkernels.
-
- 01 Aug 2005; Eric Edgar <rocket@gentoo.org> gen_package.sh,
- genkernel:
- kerncache wasnt sending the config to /etc/kernels properly
-
- 30 Jul 2005; Tim Yamin <plasmaroo@gentoo.org> gen_cmdline.sh,
- generic/initrd.scripts, generic/linuxrc, genkernel,
- ppc/config.sh:
- Fix cosmetics and PPC without --genzimage.
-
- 30 Jul 2005; Chris Gianelloni <wolf31o2@gentoo.org>
- gen_determineargs.sh, gen_initramfs.sh, gen_initrd.sh,
- generic/initrd.defaults, generic/initrd.scripts,
- generic/linuxrc, genkernel:
- Finally making the --bladecenter/dobladecenter stuff correct.
- Thanks plasmaroo for helping me wrap my head around how this
- works and to remove my dirty hack.
-
- 29 Jul 2005; Tim Yamin <plasmaroo@gentoo.org> gen_compile.sh,
- genkernel:
- >> 3.3.3. Fix KERNEL_MAKE_DIRECTIVE_2 if not using --genzimage.
-
- 29 Jul 2005; Chris Gianelloni <wolf31o2@gentoo.org>
- gen_initramfs.sh, gen_initrd.sh, generic/linuxrc:
- Fixed up the BladeCenter support some more.
-
- 29 Jul 2005; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/linuxrc:
- Added bladecenter boot-time option, also... so kernels don't
- *have* to be built with --bladecenter.
-
- 29 Jul 2005; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.scripts:
- Fixed up --bladecenter expressions
-
- 29 Jul 2005; Eric Edgar <rocket@gentoo.org>
- gen_determineargs.sh, gen_initramfs.sh:
- Fix a few directory creation issues and a typo
-
- 29 Jul 2005; Chris Gianelloni <wolf31o2@gentoo.org>
- gen_cmdline.sh, gen_determineargs.sh, generic/initrd.scripts,
- generic/linuxrc:
- Added --bladecenter for slow USB CD on IBM BladeCenter.
-
- 29 Jul 2005; Eric Edgar <rocket@gentoo.org> gen_initramfs.sh:
- Better genkernel.log output for initramfs
-
- 29 Jul 2005; Eric Edgar <rocket@gentoo.org> gen_cmdline.sh:
- print warning that unionfs flag is disabled at this time
-
- 29 Jul 2005; Eric Edgar <rocket@gentoo.org> gen_cmdline.sh:
- Remove normal access to unionfs
-
- 29 Jul 2005; Eric Edgar <rocket@gentoo.org> gen_cmdline.sh:
- Change unionfs so that it is clearly noted as experimental
-
- 28 Jul 2005; Eric Edgar <rocket@gentoo.org> gen_initrd.sh,
- generic/linuxrc:
- Fix cp /dev/tty1 error message
-
- 28 Jul 2005; Eric Edgar <rocket@gentoo.org> gen_compile.sh,
- gen_initramfs.sh, gen_initrd.sh, gen_package.sh, ppc/config.sh:
- Fix ppc not compiling without --genzimage
-
- 28 Jul 2005; Tim Yamin <plasmaroo@gentoo.org>
- gen_initramfs.sh, gen_package.sh, generic/initrd.scripts,
- generic/linuxrc, genkernel, genkernel.8,
- pkg/busybox-1.00-rt-mdstart.plasmaroo.tar.bz2, ppc/config.sh:
- >> 3.3.1. Fix #100144, #100169, #100583.
-
- 25 Jul 2005; Eric Edgar <rocket@gentoo.org>
- gen_determineargs.sh, gen_package.sh:
- Remove extra TEMP checking code that was commented out
-
- 25 Jul 2005; Eric Edgar <rocket@gentoo.org>
- gen_determineargs.sh, gen_package.sh, genkernel:
- Add kernelz- to minkernpackage and kerncache
-
- 22 Jul 2005; Eric Edgar <rocket@gentoo.org>
- gen_determineargs.sh, gen_package.sh:
- Remove extra checks that fail
-
- 20 Jul 2005; Eric Edgar <rocket@gentoo.org> gen_package.sh:
- Fix minkernpackage breakage regarding the TEMP and TMPDIR
- variable
-
- 19 Jul 2005; Eric Edgar <rocket@gentoo.org>
- generic/initrd.scripts:
- Switch order of error messages to make less confusing
-
- 19 Jul 2005; Eric Edgar <rocket@gentoo.org>
- generic/initrd.scripts, generic/linuxrc, genkernel:
- Fix exit 1 issue being always called. Add UID support for
- unionfs. add check for livecd.unionfs file on blockdev
-
- 19 Jul 2005; Eric Edgar <rocket@gentoo.org> gen_compile.sh,
- gen_funcs.sh, gen_initramfs.sh, gen_initrd.sh, generic/linuxrc,
- genkernel:
- Fix --no-install cleaning the tmpdir bug that plasmaroo reported
-
- 18 Jul 2005; Eric Edgar <rocket@gentoo.org> genkernel:
- Fix info about the framebuffers
-
- 18 Jul 2005; Eric Edgar <rocket@gentoo.org> gen_funcs.sh,
- genkernel:
- cause genkernel to die if cant write to the DEBUGFILE. remove
- extra info strings that arent necessary
-
- 18 Jul 2005; Eric Edgar <rocket@gentoo.org> genkernel:
- Fix genkernel finishing info messages to be more accurate
-
- 18 Jul 2005; Eric Edgar <rocket@gentoo.org> gen_funcs.sh,
- genkernel:
- Cleanup tmpdirs if genkernel dies abnormally
-
- 18 Jul 2005; Eric Edgar <rocket@gentoo.org> gen_initrd.sh:
- Fix evms bugs with missing sbin for an initrd
-
- 18 Jul 2005; Eric Edgar <rocket@gentoo.org>
- gen_determineargs.sh, gen_initramfs.sh:
- Fix evms bugs with missing sbin. Remove prepare line as it
- probably isnt necessary
-
- 18 Jul 2005; Eric Edgar <rocket@gentoo.org> gen_bootloader.sh,
- gen_cmdline.sh, gen_determineargs.sh, gen_funcs.sh,
- gen_initramfs.sh, gen_package.sh, generic/initrd.scripts,
- generic/linuxrc, genkernel, genkernel.conf:
- Create additional cleanup options. --postclear for final
- cleanup and 2 new genkernel.conf options. Also fixup TEMP dir
- creation and extraneous %%ARCH%% creation in the cache_dir
-
- 16 Jul 2005; Tim Yamin <plasmaroo@gentoo.org>
- gen_initramfs.sh, gen_initrd.sh, genkernel:
- Fix #98886.
-
- 15 Jul 2005; Tim Yamin <plasmaroo@gentoo.org> generic/linuxrc,
- genkernel:
- >> 3.2.6. Fix mkdir linuxrc issues and bootstrapCD() not getting
- called as early as it should,
-
- 14 Jul 2005; Tim Yamin <plasmaroo@gentoo.org>
- generic/initrd.scripts:
- Fix '[: /dev/md: unknown operand' for LiveCD boots.
-
- 14 Jul 2005; Tim Yamin <plasmaroo@gentoo.org>
- ia64/kernel-config-2.6:
- Add USB Storage support.
-
- 14 Jul 2005; Tim Yamin <plasmaroo@gentoo.org> generic/linuxrc:
- Fix bug #80617.
-
- 14 Jul 2005; Tim Yamin <plasmaroo@gentoo.org>
- gen_bootloader.sh, +gen_bootloader_grub.awk,
- gen_determineargs.sh, genkernel, ia64/kernel-config-2.6:
- Fix #98944, add GRUB :root_device support and add a more
- versatile grub.conf updater.
-
- 14 Jul 2005; Tim Yamin <plasmaroo@gentoo.org>
- x86/kernel-config-2.6:
- Add an updated x86 kernel config from wolf31o2.
-
- 13 Jul 2005; Tim Yamin <plasmaroo@gentoo.org>
- alpha/busy-config, ia64/busy-config, parisc/busy-config,
- parisc64/busy-config, ppc/busy-config, ppc64/busy-config,
- sparc/busy-config, sparc64/busy-config, um/busy-config,
- x86/busy-config, x86_64/busy-config, xen0/busy-config,
- xenU/busy-config:
- Add CONFIG_ASH_TIMEOUT.
-
- 13 Jul 2005; Eric Edgar <rocket@gentoo.org>
- generic/initrd.scripts:
- Fix find|grep output
-
- 13 Jul 2005; Eric Edgar <rocket@gentoo.org> gen_initramfs.sh,
- gen_initrd.sh:
- Fix typo for evms and removing the swap libs in gen_initramfs
-
- 13 Jul 2005; Tim Yamin <plasmaroo@gentoo.org>
- alpha/busy-config, gen_bootloader.sh, gen_compile.sh,
- gen_configkernel.sh, gen_determineargs.sh, gen_initramfs.sh,
- gen_package.sh, generic/initrd.scripts, generic/linuxrc,
- genkernel, genkernel.conf, ia64/busy-config, parisc/busy-config,
- parisc64/busy-config,
- -pkg/busybox-1.00-pre7-crypto-losetup-2.patch,
- -pkg/busybox-1.00-pre7-losetup-crypto-alpha.tar.bz2,
- +pkg/busybox-1.00-rt-mdstart.plasmaroo.tar.bz2, ppc/busy-config,
- ppc64/busy-config, sparc/busy-config, sparc64/busy-config,
- um/busy-config, x86/busy-config, x86_64/busy-config,
- xen0/busy-config, xenU/busy-config:
- Fix #97672, #98886, #98893, #98897; fix real_root=/dev/mdX:
- upgraded busybox to 1.00, porting in my read -t and mdstart
- patches.
-
- 13 Jul 2005; Eric Edgar <rocket@gentoo.org> genkernel:
- Fix for bug 97672. Call get_KV to get the KV after the prepare
- has been run
-
- 12 Jul 2005; Eric Edgar <rocket@gentoo.org> gen_cmdline.sh:
- Fix minor print bug 98744. Shouldnt affect operation but it
- could be annoying
-
- 12 Jul 2005; Eric Edgar <rocket@gentoo.org> gen_compile.sh:
- Fix for hardened/selinux systems to have extened attributes, per
- r2d2's request
-
- 12 Jul 2005; Eric Edgar <rocket@gentoo.org> gen_cmdline.sh,
- gen_determineargs.sh, genkernel:
- Adding --symlink to fix bug 98716
-
- 12 Jul 2005; Tim Yamin <plasmaroo@gentoo.org>
- generic/initrd.scripts, generic/modprobe, genkernel,
- genkernel.conf:
- >> 3.2.2. Fix #83771, #97700, #98590, #98594, #98661, #98746.
-
- 12 Jul 2005; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.defaults, generic/linuxrc:
- Added multilib cdboot patch.
-
- 11 Jul 2005; Eric Edgar <rocket@gentoo.org> gen_cmdline.sh,
- gen_compile.sh, gen_determineargs.sh, gen_initramfs.sh,
- gen_initrd.sh, generic/initrd.scripts, generic/linuxrc,
- genkernel, genkernel.conf:
- ENHANCEMENT bug 83771. Add support for LABEL= and UUID=
-
- 11 Jul 2005; Eric Edgar <rocket@gentoo.org>
- gen_determineargs.sh:
- Fix bug 97700. Add additional check for kernel source directory
- earlier
-
- 11 Jul 2005; Eric Edgar <rocket@gentoo.org> gen_arch.sh:
- Fix bug 95280 in genkernel. ARCH_OVERRIDE in
- /etc/genkernel.conf should work now
-
- 11 Jul 2005; Eric Edgar <rocket@gentoo.org>
- gen_determineargs.sh, generic/initrd.scripts, generic/linuxrc:
- remove extra make prepare in gen_determineargs.sh that breaks
- things. Fix md /dev creation bug 98193
-
- 11 Jul 2005; Eric Edgar <rocket@gentoo.org> gen_cmdline.sh:
- Fix bug 98661 with the missing underscore in gen_cmdline.sh
-
- 11 Jul 2005; Eric Edgar <rocket@gentoo.org>
- generic/initrd.scripts, generic/linuxrc:
- Fix to let the /mnt/cdrom/cdupdate.sh script run just before the
- chroot
-
- 11 Jul 2005; Eric Edgar <rocket@gentoo.org>
- generic/initrd.scripts:
- send stderr to /dev/null for lvm startup
-
- 10 Jul 2005; Tim Yamin <plasmaroo@gentoo.org>
- gen_bootloader.sh, generic/linuxrc, genkernel:
- Fix #93178, #98436, #98501
-
- 08 Jul 2005; Tim Yamin <plasmaroo@gentoo.org> gen_cmdline.sh,
- gen_initramfs.sh, generic/initrd.defaults,
- generic/initrd.scripts, generic/linuxrc, genkernel, genkernel.8,
- genkernel.conf, x86/busy-config, x86_64/busy-config:
- >> 3.2.0. Add spock's gensplash fixes, fix initrd startup 'find:
- ...' errors.
-
- 01 Jul 2005; Tim Yamin <plasmaroo@gentoo.org> ppc/Pegasos:
- Update Pegasos config from dholm.
-
- 01 Jul 2005; Eric Edgar <rocket@gentoo.org> genkernel:
- fix bug 97378; setup the PATH environment properly.
-
- 29 Jun 2005; Tim Yamin <plasmaroo@gentoo.org>
- +pkg/udev-054.tar.bz2, -pkg/udev-058.tar.bz2:
- Downgrade to 054.
-
- 29 Jun 2005; Eric Edgar <rocket@gentoo.org> gen_compile.sh,
- gen_determineargs.sh:
- fix unionfs-modules-bincache naming error. Fix directory change
- error on unionfs
-
- 29 Jun 2005; Eric Edgar <rocket@gentoo.org> gen_compile.sh:
- run modules_prepare in the kernel tree before unionfs modules
- compile
-
- 28 Jun 2005; Tim Yamin <plasmaroo@gentoo.org>
- pkg/udev-058.tar.bz2:
- Revert to 1.1.
-
- 28 Jun 2005; Eric Edgar <rocket@gentoo.org> gen_compile.sh,
- generic/initrd.scripts, generic/linuxrc, pkg/udev-058.tar.bz2:
- changed to backticks and changed /bin/bash back to /bin/sh
- which is a valid shell inside the initrd/initramfs
-
- 27 Jun 2005; Tim Yamin <plasmaroo@gentoo.org> gen_compile.sh,
- genkernel, genkernel.conf, -pkg/udev-054.tar.bz2,
- +pkg/udev-058.tar.bz2:
- Update udev and fix for SPARC64.
-
- 27 Jun 2005; Eric Edgar <rocket@gentoo.org>
- gen_configkernel.sh:
- bug 97051: Initramfs on 2.6+ kernels dont require ext2
- filesystem so can drop this forced entry.
-
- 27 Jun 2005; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/initrd.defaults, generic/initrd.scripts, generic/linuxrc:
- Change all EVMS/evms to EVMS2/evms2 for consitency. Also,
- enabled dodmraid by default.
-
- 27 Jun 2005; Chris Gianelloni <wolf31o2@gentoo.org>
- generic/linuxrc:
- Must use /bin/bash for dollar-sign, parentheses sub-shell syntax.
-
- 27 Jun 2005; Chris Gianelloni <wolf31o2@gentoo.org>
- x86/modules_load, x86_64/modules_load:
- Changed sata_vitesse to sata_vsc and closing bug #97089.
-
- 27 Jun 2005; Eric Edgar <rocket@gentoo.org> generic/linuxrc:
- linuxrc that should not create avc denied messages for a
- hardened system.
-
- 24 Jun 2005; Chris Gianelloni <wolf31o2@gentoo.org> genkernel:
- _pre12... ph43r...
-
- 24 Jun 2005; Eric Edgar <rocket@gentoo.org> genkernel:
- Add info for cmdline usage to genkernel
-
- 23 Jun 2005; Eric Edgar <rocket@gentoo.org>
- generic/initrd.scripts:
- Fix confusing volume manager message
-
- 23 Jun 2005; Chris Gianelloni <wolf31o2@gentoo.org>
- alpha/modules_load, x86_64/modules_load:
- Add Fusion MPT support
-
- 23 Jun 2005; Eric Edgar <rocket@gentoo.org> x86/modules_load:
- Add Fusion MPT support for VMWare machines
-
- 23 Jun 2005; Eric Edgar <rocket@gentoo.org> gen_compile.sh:
- Add missing else
-
- 23 Jun 2005; Eric Edgar <rocket@gentoo.org> gen_compile.sh:
- Fix missing elif
-
- 22 Jun 2005; Tim Yamin <plasmaroo@gentoo.org> generic/linuxrc,
- genkernel, pkg/udev-054.tar.bz2:
- Fix #76082, #86487, #87673, #95993.
-
- 22 Jun 2005; Eric Edgar <rocket@gentoo.org>
- generic/initrd.scripts, generic/linuxrc:
- Fix bug 87673. Option passing for dmraid. dodmraid= on the
- cmdline. sets up /sbin/dmraid -ay .
-
- 22 Jun 2005; Eric Edgar <rocket@gentoo.org> generic/linuxrc:
- Fix for bug 86487. Allowing a subdirectory of a block device to
- be chrooted from and booted. New cmdline option subdir=
-
- 22 Jun 2005; Eric Edgar <rocket@gentoo.org> gen_compile.sh:
- Fix udev for sparc so it compiles properly
-
- 22 Jun 2005; Eric Edgar <rocket@gentoo.org>
- generic/initrd.scripts, generic/linuxrc:
- Remove sort because busybox is not compiled with it. Remove
- unnecessary UML fixes
-
- 22 Jun 2005; Eric Edgar <rocket@gentoo.org> gen_cmdline.sh,
- gen_compile.sh, gen_determineargs.sh:
- Fix bug 68903; Allows the CROSS_COMPILE env to be set for
- kernel compiles. Added --kernel-cross-compile= option
-
- 21 Jun 2005; Tim Yamin <plasmaroo@gentoo.org> gen_cmdline.sh,
- genkernel, genkernel.8:
- Fix #95993, #96300.
-
- 20 Jun 2005; Eric Edgar <rocket@gentoo.org>
- gen_determineargs.sh:
- Fix genkernel crash when .config is present and testing for
- Localversion info on a 2.6 kernel
-
- 17 Jun 2005; Eric Edgar <rocket@gentoo.org>
- gen_determineargs.sh:
- Fix 2.6 crash detecting LocalVersion, fix 2.4 kernels so they
- dont do localversion checks as they dont support it
-
- 16 Jun 2005; Eric Edgar <rocket@gentoo.org> gen_compile.sh:
- udev build fix for no ARCH=um architectures
-
- 16 Jun 2005; Eric Edgar <rocket@gentoo.org>
- gen_determineargs.sh, gen_initramfs.sh, gen_initrd.sh,
- gen_moddeps.sh, genkernel:
- Localversion changes to kerncache, and added a sleep statement
- so modprobe loop has a chance to work
-
- 15 Jun 2005; Tim Yamin <plasmaroo@gentoo.org> genkernel:
- Fix devfs for those archs that still need it.
-
- 15 Jun 2005; Tim Yamin <plasmaroo@gentoo.org> gen_cmdline.sh,
- gen_compile.sh, gen_determineargs.sh, gen_funcs.sh,
- gen_initramfs.sh, gen_initrd.sh, gen_package.sh,
- generic/initrd.defaults, generic/initrd.scripts,
- generic/linuxrc, genkernel, genkernel.conf:
- Add rocket's unionfs patch and linuxrc cleanup; fix Pegasos with
- regard to initramfs.
-
- 15 Jun 2005; Tim Yamin <plasmaroo@gentoo.org> ppc/Pegasos,
- ppc/config.sh:
- Fix Pegasos on initramfs and add an updated Pegasos config,
- thanks dholm!
-
- 12 Jun 2005; Tim Yamin <plasmaroo@gentoo.org> generic/linuxrc:
- Fix 'lib64: No such...' error.
-
- 07 Jun 2005; Chris Gianelloni <wolf31o2@gentoo.org>
- gen_package.sh:
- Fixing up minkernpackage
-
- 07 Jun 2005; Chris Gianelloni <wolf31o2@gentoo.org>
- x86_64/kernel-config-2.6:
- Added floppy module to kernel config for bug #95272.
-
- 04 Jun 2005; Tim Yamin <plasmaroo@gentoo.org>
- x86_64/kernel-config-2.6:
- Disable sound stuff, #92711.
-
- 03 Jun 2005; Tim Yamin <plasmaroo@gentoo.org>
- gen_bootloader.sh, genkernel:
- Fix syntax.
-
- 02 Jun 2005; Tim Yamin <plasmaroo@gentoo.org>
- gen_bootloader.sh:
- Add GRUB support cleanup by Richard Morris (#59192) to show an
- error if we can't work out device nodes and tell the user to
- manually generate grub.conf.
-
- 02 Jun 2005; Tim Yamin <plasmaroo@gentoo.org>
- +gen_initramfs.sh:
- Add gen_initramfs.sh into CVS from rocket's initramfs support
- patches.
-
- 02 Jun 2005; Tim Yamin <plasmaroo@gentoo.org> genkernel:
- Fix #94860; clean up concurrent compile tmpdir-setting.
-
- 02 Jun 2005; Tim Yamin <plasmaroo@gentoo.org>
- alpha/busy-config, generic/initrd.defaults,
- generic/initrd.scripts, generic/linuxrc, genkernel.8,
- ia64/busy-config, parisc/busy-config, parisc64/busy-config,
- ppc/busy-config, ppc64/busy-config, sparc/busy-config,
- sparc64/busy-config, um/busy-config, x86/busy-config,
- x86_64/busy-config, xen0/busy-config, xenU/busy-config:
- Remove evms and lvm2 from default boot args (they cause hardware
- issues, so users should explicitly specify them); add NFSboot
- support patches by Thomas Seiler.
-
- 02 Jun 2005; Chris Gianelloni <wolf31o2@gentoo.org>
- x86/kernel-config-2.6:
- Updated x86 2.6 kernel to 2005.0 config.
-
- 02 Jun 2005; Chris Gianelloni <wolf31o2@gentoo.org>
- alpha/kernel-config-2.4, +alpha/kernel-config-2.6,
- alpha/modules_load, um/modules_load, x86/modules_load,
- x86_64/modules_load, xen0/modules_load, xenU/modules_load:
- Updated alpha kernel configs to 2005.0 configs and updated
- modules_load for alpha, um, x86, x86_64, xen0, and xenU to match
- x86.
-
- 02 Jun 2005; Chris Gianelloni <wolf31o2@gentoo.org>
- gen_configkernel.sh:
- Added config parsing for dmraid modules if genkernel is called
- with --dmraid
-
- 25 May 2005; Chris Gianelloni <wolf31o2@gentoo.org>
- gen_configkernel.sh:
- Added check for --lvm2 and enable lvm2-required modules if they
- are not enabled already in the supplied .config file.
-
- 25 May 2005; Chris Gianelloni <wolf31o2@gentoo.org>
- x86/modules_load:
- Adding back in atp870u to modules_load on x86.
-
- 02 May 2005; Tim Yamin <plasmaroo@gentoo.org> x86/modules_load:
- Add ata_piix.
-
- 22 Apr 2005; Eric Edgar <rocket@gentoo.org> generic/linuxrc:
- Added support for reading /mnt/cdrom/cdupdate.sh if its
- executable on the livecd
-
- 22 Apr 2005; Tim Yamin <plasmaroo@gentoo.org> gen_cmdline.sh,
- gen_compile.sh, gen_configkernel.sh, gen_determineargs.sh,
- gen_initrd.sh, gen_package.sh, generic/linuxrc, genkernel,
- genkernel.8, -notes, -pkg/dietlibc-0.27.tar.bz2, +pkg/ia64,
- +pkg/ia64/README, +pkg/um, +pkg/um/README, +pkg/xen0,
- +pkg/xen0/README, +pkg/xenU, +pkg/xenU/README, +ppc/Pegasos,
- ppc/config.sh, +um, +um/busy-config, +um/config.sh,
- +um/kernel-config-2.4, +um/kernel-config-2.6, +um/modules_load,
- +xen0, +xen0/busy-config, +xen0/config.sh,
- +xen0/kernel-config-2.4, +xen0/kernel-config-2.6,
- +xen0/modules_load, +xenU, +xenU/busy-config, +xenU/config.sh,
- +xenU/kernel-config-2.4, +xenU/kernel-config-2.6,
- +xenU/modules_load:
- >> 3.2.0_beta1; now with extra froz-faktor <TM>.
-
- 29 Mar 2005; Eric Edgar <rocket@gentoo.org> generic/linuxrc:
- fixed bug in scan delay so that it will work with both udev and
- devfs
-
- 13 Mar 2005; Tim Yamin <plasmaroo@gentoo.org> generic/linuxrc:
- Add missing mkdir -p /etc/sysconfig to linuxrc.
-
- 12 Mar 2005; Tim Yamin <plasmaroo@gentoo.org> generic/linuxrc:
- Get udev to go as the default manager if the udev binary exists
- and 2.6 or above is being used.
-
- 11 Mar 2005; Tim Yamin <plasmaroo@gentoo.org> gen_compile.sh:
- mkdir -> mkdir -p
-
- 10 Mar 2005; Tim Yamin <plasmaroo@gentoo.org> gen_compile.sh,
- genkernel:
- Fix udev.rules install issue.
-
- 10 Mar 2005; Tim Yamin <plasmaroo@gentoo.org> gen_compile.sh,
- genkernel, genkernel.conf, -pkg/udev-039.tar.bz2,
- +pkg/udev-054.tar.bz2:
- >> 3.1.3. Remove udev static mode; upgrade udev to 054 instead.
-
- 08 Mar 2005; Tim Yamin <plasmaroo@gentoo.org>
- generic/initrd.defaults, generic/linuxrc:
- Add patch by Gerte Hoogewerf (gerte <-at-> nieuwenborg.nl) to
- fix dmraid with cdroot.
-
- 07 Mar 2005; Eric Edgar <rocket@gentoo.org>
- gen_configkernel.sh:
- Fix possible broken pipe error message when configuring the
- kernel
-
- 07 Mar 2005; Eric Edgar <rocket@gentoo.org> gen_compile.sh:
- Fix for broken pipe when configuring busybox in the
- gen_compile.sh script
-
- 07 Mar 2005; Tim Yamin <plasmaroo@gentoo.org> generic/linuxrc,
- genkernel, x86/modules_load, x86_64/modules_load:
- >> 3.1.1d. Add sata_qstor; fix #83328.
-
- 03 Mar 2005; Tim Yamin <plasmaroo@gentoo.org>
- generic/initrd.scripts:
- Check for dummy 'livecd' file instead of 'gentoo'.
-
- 03 Mar 2005; Tim Yamin <plasmaroo@gentoo.org>
- generic/initrd.scripts, genkernel:
- >> 3.1.1c. Add LiveCD detection to skip mountable but non-LiveCD
- media; requires Catalyst 1.1.6.
-
- 02 Mar 2005; Tim Yamin <plasmaroo@gentoo.org> genkernel,
- genkernel.conf:
- Bump dmraid, >> 3.1.1.b.
-
- 01 Mar 2005; Tim Yamin <plasmaroo@gentoo.org> gen_compile.sh,
- genkernel:
- Fix 2.4 -j0 issue.
-
- 28 Feb 2005; Tim Yamin <plasmaroo@gentoo.org> gen_compile.sh:
- Fix -j0 2.4 modules breakage.
-
- 25 Feb 2005; Tim Yamin <plasmaroo@gentoo.org> gen_compile.sh,
- generic/initrd.defaults, genkernel, x86/modules_load,
- x86_64/modules_load:
- >> 3.1.0k -- Add MODULES_SATA, fix udev on non-x86 archs where
- there seem to be problems with KLibC+udev so use a static udev
- on those.
-
- 24 Feb 2005; Eric Edgar <rocket@gentoo.org> gen_cmdline.sh,
- gen_determineargs.sh, gen_package.sh, genkernel, genkernel.8:
- Add support for maxkernpackage
- creates a tarball containing:
- kernel
- initrd
- contents of /lib/modules
- kernel config
-
- 24 Feb 2005; Tim Yamin <plasmaroo@gentoo.org> gen_compile.sh:
- Fix 2.4 strict flag filtering issue.
-
- 24 Feb 2005; Tim Yamin <plasmaroo@gentoo.org> genkernel.8:
- Document arbitrary scandelay initrd option.
-
- 20 Feb 2005; Tim Yamin <plasmaroo@gentoo.org> generic/linuxrc,
- genkernel:
- Fix '/tmp/.initrd/bin/[' to '[' in places before the pivot_root.
-
- 18 Feb 2005; Tim Yamin <plasmaroo@gentoo.org> generic/linuxrc,
- genkernel, pkg/udev-039.tar.bz2, x86/modules_load:
- Fix #58686 and #80716.
-
- 17 Feb 2005; Tim Yamin <plasmaroo@gentoo.org> gen_cmdline.sh,
- gen_compile.sh, gen_determineargs.sh, gen_initrd.sh,
- generic/linuxrc, genkernel.conf, pkg/udev-039.tar.bz2:
- Add DMRAID support (thanks rocket!); fix AMD64 udev issues (#65985).
-
- 31 Jan 2005; Tim Yamin <plasmaroo@gentoo.org> generic/linuxrc:
- Fix #77259.
-
- 30 Jan 2005; Tim Yamin <plasmaroo@gentoo.org> generic/linuxrc,
- genkernel:
- Fix #79999.
-
- 27 Jan 2005; Tim Yamin <plasmaroo@gentoo.org> gen_initrd.sh:
- -eq >> = for the LVM and EVMS2 checks.
-
- 27 Jan 2005; Tim Yamin <plasmaroo@gentoo.org> generic/linuxrc,
- genkernel:
- Add patch for turning off LVM and EVMS2 optionally at boot time
- even if compiled into initrd; bug #79755.
-
- 26 Jan 2005; Tim Yamin <plasmaroo@gentoo.org> gen_initrd.sh:
- Fix #79502; thanks to rocket for the patch.
-
- 22 Jan 2005; Tim Yamin <plasmaroo@gentoo.org> genkernel:
- Make udev default for 2.6+
-
- 22 Jan 2005; Tim Yamin <plasmaroo@gentoo.org> generic/linuxrc:
- Add missing #72253 patch.
-
- 22 Jan 2005; Tim Yamin <plasmaroo@gentoo.org> generic/linuxrc:
- Add missing echo; #77363.
-
- 22 Jan 2005; Tim Yamin <plasmaroo@gentoo.org>
- gen_bootloader.sh, generic/initrd.scripts, generic/linuxrc,
- genkernel:
- >> 3.1.0e. Fixes #73356, #74758, #77277, #77363, #78636.
-
- 10 Jan 2005; Tim Yamin <plasmaroo@gentoo.org> gen_cmdline.sh,
- gen_initrd.sh:
- Add --evms2 patch by Eric Edgar; bug #77385.
-
- 21 Dec 2004; Tim Yamin <plasmaroo@gentoo.org> genkernel,
- pkg/dietlibc-0.27.tar.bz2:
- >> 3.1.0d; bug #73112.
-
- 17 Dec 2004; Tim Yamin <plasmaroo@gentoo.org> x86/modules_load:
- Removing tmscsim module; bug #72055.
-
- 01 Dec 2004; Tim Yamin <plasmaroo@gentoo.org> gen_initrd.sh:
- Fix for bug #73054.
-
- 30 Nov 2004; Tim Yamin <plasmaroo@gentoo.org>
- gen_determineargs.sh, gen_initrd.sh:
- >> 3.0.2c. Adding LVM2 args code to gen_determineargs.sh.
-
- 29 Nov 2004; Tim Yamin <plasmaroo@gentoo.org> genkernel:
- Bugfix for bug #72342.
-
- 27 Nov 2004; Tim Yamin <plasmaroo@gentoo.org> genkernel,
- +genkernel.8:
- Time for our own manpage...
-
- 27 Nov 2004; Tim Yamin <plasmaroo@gentoo.org> gen_cmdline.sh,
- gen_compile.sh, gen_determineargs.sh, gen_initrd.sh, genkernel,
- genkernel.conf:
- LVM2 compilation support; thanks to Eric Edgar for the patch.
- Bug #72129.
-
- 27 Nov 2004; Tim Yamin <plasmaroo@gentoo.org> gen_initrd.sh,
- generic/initrd.scripts, generic/linuxrc:
- Udev speedups; thanks to Eric Edgar for the patch - bug #72253.
-
- 27 Nov 2004; Tim Yamin <plasmaroo@gentoo.org> x86/modules_load:
- Adding MODULES_LVM2; #72129 // #72253.
-
- 13 Nov 2004; Tim Yamin <plasmaroo@gentoo.org> gen_cmdline.sh,
- gen_initrd.sh:
- Adding user-specified /linuxrc support; bug #66198.
-
- 13 Nov 2004; Tim Yamin <plasmaroo@gentoo.org> genkernel:
- ramdisk=8092 >> ramdisk_size=8092; bug #64864.
-
- 13 Nov 2004; Tim Yamin <plasmaroo@gentoo.org> gen_cmdline.sh,
- gen_initrd.sh, generic/initrd.defaults, generic/linuxrc:
- Adding EVMS2 support; bug #61827.
-
- 13 Nov 2004; Tim Yamin <plasmaroo@gentoo.org> gen_initrd.sh:
- LVM fix, bug #69745.
-
- 05 Nov 2004; Tim Yamin <plasmaroo@gentoo.org> gen_cmdline.sh:
- Fix for --minkernpackage and 'kernel' only instead of all; bug
- #70193.
-
- 26 Oct 2004; Tim Yamin <plasmaroo@gentoo.org> x86/modules_load:
- uchi-hcd >> uhci-hcd.
-
- 25 Oct 2004; Mike Frysinger <vapier@gentoo.org> gen_cmdline.sh:
- clean up some of the help output
-
- 23 Oct 2004; Tim Yamin <plasmaroo@gentoo.org> README,
- gen_cmdline.sh, gen_compile.sh, gen_determineargs.sh,
- gen_initrd.sh, generic/initrd.defaults, generic/initrd.scripts,
- generic/linuxrc, genkernel, genkernel.conf,
- -pkg/busybox-1.00-pre2-decl.patch,
- pkg/busybox-1.00-pre7-losetup-crypto-alpha.tar.bz2,
- pkg/devfsd-1.3.25-dietlibc-kernel25.tar.bz2,
- -pkg/dietlibc-0.26.tar.bz2, +pkg/dietlibc-0.27.tar.bz2,
- -pkg/udev-030.tar.bz2, +pkg/udev-039.tar.bz2, x86/modules_load:
- >> 3.1.0b.
-
- 09 Oct 2004; Tim Yamin <plasmaroo@gentoo.org> gen_initrd.sh:
- vgscan >> lvm; bug #44091.
-
- 02 Oct 2004; Travis Tilley <lv@gentoo.org> x86_64/modules_load:
- fix the sata crap
-
- 27 Sep 2004; Travis Tilley <lv@gentoo.org>
- x86_64/kernel-config-2.6, x86_64/kernel-config-2.6-smp,
- x86_64/modules_load:
- add bluetooth for one user's bluetooth kb+mouse, fix usb module
- stuff, add in support for an ide chipset used in some em64t boxes
-
- 27 Sep 2004; Travis Tilley <lv@gentoo.org>
- x86_64/kernel-config-2.6, x86_64/kernel-config-2.6-smp:
- CONFIG_SCSI_AIC7XXX_OLD, you are the weakest link! goodbye!
-
- 26 Sep 2004; Travis Tilley <lv@gentoo.org>
- x86_64/kernel-config-2.6, x86_64/kernel-config-2.6-smp:
- new generic genkernel configs. em64t support, here we come
-
- 19 Sep 2004; Tim Yamin <plasmaroo@gentoo.org>
- x86/kernel-config-2.6:
- Adding CONFIG_CRYPTO_ARC4=m; bug #58360.
-
- 19 Sep 2004; Tim Yamin <plasmaroo@gentoo.org>
- gen_bootloader.sh:
- Adding updated grub.conf patch from Mathias Gug, bug #57576.
-
- 19 Sep 2004; Tim Yamin <plasmaroo@gentoo.org> gen_compile.sh,
- gen_funcs.sh, genkernel:
- Adding robbat2's patch for bug #62365.
-
- 19 Sep 2004; Tim Yamin <plasmaroo@gentoo.org> gen_compile.sh,
- genkernel, genkernel.conf,
- pkg/devfsd-1.3.25-dietlibc-kernel25.tar.bz2,
- -pkg/dietlibc-0.24.tar.bz2, +pkg/dietlibc-0.26.tar.bz2:
- Disabling dietlibc usage for devfsd and modutils; dietlibc
- updated to a new Hardened-aware version. Bug #60862.
-
- 18 Sep 2004; Tim Yamin <plasmaroo@gentoo.org> gen_package.sh:
- Adding missing {} around a logic check; bug #64514.
-
- 23 Aug 2004; Tim Yamin <plasmaroo@gentoo.org> gen_cmdline.sh:
- --no-lvm-2 >> --no-lvm2 as it should be.
-
- 23 Aug 2004; Tim Yamin <plasmaroo@gentoo.org> gen_funcs.sh:
- Updated the --cache-dir patch to patch #36982.
-
- 14 Aug 2004; Tim Yamin <plasmaroo@gentoo.org> gen_initrd.sh,
- +ia64, +ia64/busy-config, +ia64/config.sh,
- +ia64/kernel-config-2.6, +ia64/modules_load:
- Added an ia64 config.
-
- 11 Aug 2004; Tim Yamin <plasmaroo@gentoo.org> genkernel:
- Added a check to disable udev on 2.4 kernels; bug #59687.
-
- 11 Aug 2004; Tim Yamin <plasmaroo@gentoo.org> gen_cmdline.sh,
- gen_compile.sh, gen_determineargs.sh, gen_initrd.sh,
- generic/initrd.scripts, generic/linuxrc, genkernel:
- Added LiveCD udev support.
-
- 07 Aug 2004; Tim Yamin <plasmaroo@gentoo.org>
- x86/kernel-config-2.6, x86/modules_load:
- modules_load cleaned up to match the version used for the 2004.2
- release, also added BusLogic=m to the 2.6 configartion: bug #59310.
-
- 30 Jul 2004; Tim Yamin <plasmaroo@gentoo.org>
- generic/initrd.scripts:
- Removed "-t iso9660" which causes issues on Gentoo/PPC-Pegasos,
- supposedly.
-
- 29 Jul 2004; Tim Yamin <plasmaroo@gentoo.org> gen_cmdline.sh,
- gen_determineargs.sh, gen_funcs.sh, genkernel, genkernel.conf:
- Patch for bug #57867 adding --cachedir=<dir> by Martin Parm.
-
- 29 Jul 2004; Tim Yamin <plasmaroo@gentoo.org> gen_initrd.sh,
- genkernel:
- '-ne' >> '!=' for LVM2 static support to work properly; bug
- #58816.
-
- 28 Jul 2004; Tim Yamin <plasmaroo@gentoo.org>
- x86/kernel-config-2.4:
- Ext3 shouldn't really be a module - bug #58663.
-
- 28 Jul 2004; Tim Yamin <plasmaroo@gentoo.org> gen_compile.sh,
- generic/linuxrc:
- Fix for "udev" not having to be passed to the linuxrc; and a fix
- for the devfsd bincache not being used.
-
- 28 Jul 2004; Tim Yamin <plasmaroo@gentoo.org>
- gen_bootloader.sh, gen_cmdline.sh, gen_compile.sh,
- gen_determineargs.sh, gen_initrd.sh, generic/linuxrc, genkernel,
- genkernel.conf, +pkg/udev-030.tar.bz2:
- >> 3.0.2e. Code formatting fixes from Bob Barry, as well as a
- patch for bug #57953 from Martin Parm. Udev support, bug #49328.
-
- 22 Jul 2004; Tim Yamin <plasmaroo@gentoo.org> gen_compile.sh:
- Fix for bug #57865. Thanks to Martin Parm for the patch!
-
- 21 Jul 2004; Tim Yamin <plasmaroo@gentoo.org> genkernel:
- Added a patch for only [re]mounting /boot when installation is
- required. Patch from bug #57836 by Martin "Parmus" Parm.
-
- 21 Jul 2004; Tim Yamin <plasmaroo@gentoo.org>
- +gen_bootloader.sh, gen_cmdline.sh, gen_determineargs.sh,
- genkernel, genkernel.conf:
- GRUB Bootloader support - bug #57576. Thanks to Mathias Gug for
- the patch!
-
- 21 Jul 2004; Tim Yamin <plasmaroo@gentoo.org> gen_cmdline.sh,
- gen_compile.sh, gen_determineargs.sh, gen_initrd.sh,
- gen_moddeps.sh, genkernel, genkernel.conf:
- Adding a set of patches submitted by Martin "Parmus" Parm; bugs
- #57748, #57749, #57751, #57752, and #57761.
-
- 16 Jul 2004; Tim Yamin <plasmaroo@gentoo.org> gen_cmdline.sh,
- gen_funcs.sh, genkernel:
- Bug #57297 fix.
-
- 14 Jul 2004; Tim Yamin <plasmaroo@gentoo.org> gen_cmdline.sh,
- genkernel, pkg/modutils-2.4.26.tar.bz2:
- >> 3.0.2d. Modutils ./configure* patch for HPPA and an option
- parsing fix.
-
- 12 Jul 2004; Tim Yamin <plasmaroo@gentoo.org>
- x86/kernel-config-2.6:
- Added CONFIG_PRINTER=y; bug #47666.
-
- 12 Jul 2004; Tim Yamin <plasmaroo@gentoo.org>
- gen_configkernel.sh, x86/config.sh:
- Added a sed to ensure Ext2 support is on; bug #52558.
-
- 12 Jul 2004; Tim Yamin <plasmaroo@gentoo.org> gen_funcs.sh,
- gen_initrd.sh, genkernel, x86/modules_load:
- >> 3.0.2c. Added more PCMCIA modules to the x86 module list; and
- added the bug
- #52561 patch.
-
- 03 Jul 2004; Tim Yamin <plasmaroo@gentoo.org> generic/linuxrc:
- Added a patch allowing arguments to be passed to init by
- real_init=...; this closes bug #55736.
-
- 19 Jun 2004; Tim Yamin <plasmaroo@gentoo.org>
- gen_configkernel.sh:
- Fix for bug #54455; moved the code to create a backup .config
- upwards since
- before the "make mrproper" just wiped it out.
-
- 04 Jun 2004; Tim Yamin <plasmaroo@gentoo.org>
- generic/keymaps.tar.gz:
- New keymaps tarball lost the keymapList file; added back in.
-
- 03 Jun 2004; Tim Yamin <plasmaroo@gentoo.org>
- alpha/modules_load, gen_arch.sh, gen_cmdline.sh, gen_compile.sh,
- gen_configkernel.sh, gen_determineargs.sh, gen_funcs.sh,
- gen_initrd.sh, gen_moddeps.sh, gen_package.sh,
- generic/initrd.defaults, generic/initrd.scripts,
- generic/keymaps.tar.gz, generic/linuxrc, generic/modprobe,
- genkernel, parisc/modules_load, parisc64/modules_load,
- pkg/busybox-1.00-pre7-losetup-crypto-alpha.tar.bz2,
- ppc/modules_load, ppc64/modules_load, sparc/modules_load,
- sparc64/modules_load, x86/kernel-config-2.4,
- x86/kernel-config-2.6, x86/modules_load, x86_64/modules_load:
- New release:
-
- * Busybox patched to support loops on 2.4 thus giving 2.4
- squashfs
- support.
- * Various bug fixes; #46167, #46278, #47551, #48219, #48308,
- #48339, #49728, #51395, #51948.
- * Speedups: "" > ''; [ ! ... ] && > [ ... ] || et al where
- applicable.
-
- 11 Apr 2004; Tim Yamin <plasmaroo@gentoo.org>
- x86/kernel-config-2.6:
- Modularized parallel support in the X86 2.6 configuration.
-
- 11 Apr 2004; Tim Yamin <plasmaroo@gentoo.org> gen_funcs.sh,
- generic/linuxrc, genkernel:
- Bugfixes for bugs #46941, #46641; and a cosmetic fix for LiveCD
- mount issues.
-
- 02 Apr 2004; Tim Yamin <plasmaroo@gentoo.org> gen_cmdline.sh:
- Added an error message for mistyped options [ Bug #45946 ] and
- also shortened the help list into two sections: a long one specified by
- --help and a short default one.
-
- 02 Apr 2004; Tim Yamin <plasmaroo@gentoo.org> gen_initrd.sh,
- genkernel:
- Fix for bug #46596; version header update.
-
- 28 Mar 2004; Tim Yamin <plasmaroo@gentoo.org> generic/linuxrc:
- Applied the fixed for ``docache'' to work properly on zisofs.
-
- 27 Mar 2004; Tim Yamin <plasmaroo@gentoo.org> gen_compile.sh,
- gen_initrd.sh, generic/initrd.defaults, generic/linuxrc:
- A few short fixes: reduced compilation verbosity; bootsplash fix
- to use both 'bootsplash' and 'bootsplash.conf' rather than 'bootsplash'
- and also docache support which should work on at least loopFSes for now.
-
- 22 Mar 2004; Jason Wever <weeve@gentoo.org> sparc/config.sh:
- Fixed MAKEOPTS for sparc32 so kernels will reliably build.
-
- 21 Mar 2004; Tim Yamin <plasmaroo@gentoo.org> README, TODO,
- gen_cmdline.sh, gen_compile.sh, gen_configkernel.sh,
- gen_determineargs.sh, gen_funcs.sh, gen_initrd.sh,
- generic/initrd.defaults, generic/initrd.scripts,
- +generic/keymaps.tar.gz, generic/linuxrc, generic/modprobe,
- genkernel, genkernel.conf, x86/modules_load:
- Version bump. Closes bugs #34948, #37371, #41129, #41166,
- #42725, #42815, #44127, #44556, and #44601.
-
- 20 Mar 2004; Tim Yamin <plasmaroo@gentoo.org>
- -pkg/busybox-1.00-pre8-alpha.patch,
- -pkg/busybox-1.00-pre8-crypto-losetup.patch,
- -pkg/busybox-1.00-pre8-losetup-alpha.tar.bz2:
- Removing broken 1.00-pre8 busybox.
-
- 08 Mar 2004; Tom Gall <tgall@gentoo.org>
- +ppc64/kernel-2.6-pSeries, +ppc64/kernel-2.6.g5:
- g5 and pseries kernel config
-
- 08 Mar 2004; Brad House <brad_mssw@gentoo.org> +ppc64,
- +ppc64/busy-config, +ppc64/config.sh, +ppc64/modules_load:
- ppc64 profile
-
- 06 Mar 2004; Pieter van den Abeele <pvdabeel@gentoo.org>
- +ppc/2.6.3-benh2-G4-SMP.autoload, +ppc/2.6.3-benh2-G4.autoload,
- +ppc/2.6.3-benh2-G5-SMP.autoload, +ppc/2.6.3-benh2-G5.autoload:
- What stuff needs to be automatically loaded for each kernel
-
- 06 Mar 2004; Pieter van den Abeele <pvdabeel@gentoo.org>
- ppc/G4, ppc/G4-SMP, ppc/G5, ppc/G5-SMP:
- bugfixes - posible /proc mounting lock bug solution included (removed
- rivafb support)
-
- 06 Mar 2004; Pieter van den Abeele <pvdabeel@gentoo.org>
- ppc/G4, ppc/G4-SMP, ppc/G5, ppc/G5-SMP:
- bugfixed kernels - still rivafb enabled
-
- 01 Mar 2004; Brad House <brad_mssw@gentoo.org> genkernel:
- version bump
-
- 01 Mar 2004; Brad House <brad_mssw@gentoo.org> genkernel.conf:
- busybox version change
-
- 27 Feb 2004; Daniel Robbins <drobbins@gentoo.org>
- gen_initrd.sh:
- initrd bootsplash fix to use "default"
-
- 27 Feb 2004; Pieter van den Abeele <pvdabeel@gentoo.org>
- -ppc/G3, -ppc/G3-SMP:
- Migrated G3 into G4
-
- 26 Feb 2004; Pieter van den Abeele <pvdabeel@gentoo.org>
- +ppc/G3, +ppc/G3-SMP, +ppc/G4, +ppc/G4-SMP, +ppc/G5,
- +ppc/G5-SMP, -ppc/kernel-config-2.4-g3g4,
- -ppc/kernel-config-2.4-g5:
- Updated kernel .configs.
-
- G5-SMP verified to work on dual G5 1.8 w. radeon and 160G SATA
- Others are being tested right now
-
- 25 Feb 2004; Brad House <brad_mssw@gentoo.org>
- +pkg/busybox-1.00-pre7-losetup-crypto-alpha.tar.bz2:
- busybox pre7 patched
-
- 25 Feb 2004; Brad House <brad_mssw@gentoo.org> genkernel,
- genkernel.conf, +pkg/busybox-1.00-pre7-crypto-losetup-2.patch,
- -pkg/busybox-1.00-pre7-crypto-losetup-2.tar.bz2,
- +pkg/busybox-1.00-pre8-alpha.patch,
- +pkg/busybox-1.00-pre8-crypto-losetup.patch,
- +pkg/busybox-1.00-pre8-losetup-alpha.tar.bz2:
- busybox update and alpha fix
-
- 25 Feb 2004; Brad House <brad_mssw@gentoo.org>
- generic/linuxrc, generic/modprobe:
- script updates, less debugging, and modprobe return code fix
-
- 25 Feb 2004; Brad House <brad_mssw@gentoo.org>
- x86/kernel-config-2.4:
- too many complaints, make reiser static
-
- 22 Feb 2004; Brad House <brad_mssw@gentoo.org> genkernel:
- version update
-
- 22 Feb 2004; Brad House <brad_mssw@gentoo.org>
- +pkg/busybox-1.00-pre7-crypto-losetup-2.tar.bz2:
- busybox tarball
-
- 22 Feb 2004; Brad House <brad_mssw@gentoo.org>
- generic/linuxrc, genkernel.conf,
- -pkg/busybox-1.00-pre7-crypto-losetup.patch,
- -pkg/busybox-1.00-pre7-crypto-patched.tar.bz2,
- x86_64/kernel-config-2.6, +x86_64/kernel-config-2.6-emachines,
- +x86_64/kernel-config-2.6-smp:
- gcloop fixes
-
- 14 Feb 2004; Brad House <brad_mssw@gentoo.org> generic/linuxrc:
- create /dev/console if for some reason /dev wasn't on the fs
-
- 14 Feb 2004; Brad House <brad_mssw@gentoo.org> genkernel:
- temp move
-
- 14 Feb 2004; Brad House <brad_mssw@gentoo.org>
- +pkg/busybox-1.00-pre7-crypto-patched.tar.bz2:
- pkg
-
- 14 Feb 2004; Brad House <brad_mssw@gentoo.org> genkernel.conf,
- -pkg/busybox-1.00-pre3-patched.tar.bz2,
- -pkg/busybox-1.00-pre3.tar.bz2,
- +pkg/busybox-1.00-pre7-crypto-losetup.patch:
- busybox updates
-
- 14 Feb 2004; Brad House <brad_mssw@gentoo.org> generic/linuxrc:
- gcloop fix
-
- 14 Feb 2004; Brad House <brad_mssw@gentoo.org> genkernel,
- +pkg/ppc, +pkg/ppc/README:
- updates
-
- 14 Feb 2004; Brad House <brad_mssw@gentoo.org> generic/linuxrc:
- initrd updates for correctness, squashfs, and gcloop
-
- 12 Feb 2004; Luca Barbato <lu_zero@gentoo.org> +pkg/ppc64,
- +pkg/ppc64/README, +ppc, +ppc/busy-config, +ppc/config.sh,
- +ppc/kernel-config-2.4-g3g4, +ppc/kernel-config-2.4-g5,
- +ppc/modules_load:
- pvdabeel's first import.
-
- 08 Feb 2004; Brad House <brad_mssw@gentoo.org> generic/linuxrc:
- typo
-
- 07 Feb 2004; Brad House <brad_mssw@gentoo.org>
- generic/linuxrc, genkernel:
- beta10 finalizations
-
- 07 Feb 2004; Brad House <brad_mssw@gentoo.org> gen_compile.sh:
- make modules_install should use -j1 only
-
- 07 Feb 2004; Brad House <brad_mssw@gentoo.org>
- gen_configkernel.sh:
- err, backed up wrong file :)
-
- 03 Feb 2004; Guy Martin <gmsoft@gentoo.org> +parisc64,
- +parisc64/busy-config, +parisc64/config.sh,
- +parisc64/kernel-config-2.4, +parisc64/modules_load,
- +pkg/parisc64, +pkg/parisc64/README:
- Ported to parisc64
-
- 31 Jan 2004; Brad House <brad_mssw@gentoo.org>
- gen_determineargs.sh:
- make commandline debugfile option work
-
- 30 Jan 2004; Brad House <brad_mssw@gentoo.org>
- generic/modprobe, x86_64/modules_load:
- modprobe fixes, and scsi module updates for x86_64
-
- 30 Jan 2004; Brad House <brad_mssw@gentoo.org>
- generic/linuxrc, genkernel:
- hwopts fix
-
- 28 Jan 2004; Brad House <brad_mssw@gentoo.org> genkernel:
- cleanups
-
- 28 Jan 2004; Brad House <brad_mssw@gentoo.org> gen_initrd.sh:
- debugfile truncation fix
-
- 28 Jan 2004; Brad House <brad_mssw@gentoo.org> genkernel:
- version bump
-
- 28 Jan 2004; Brad House <brad_mssw@gentoo.org>
- x86/kernel-config-2.6, x86_64/kernel-config-2.6:
- kernel config updates
-
- 28 Jan 2004; Brad House <brad_mssw@gentoo.org>
- gen_configkernel.sh, genkernel:
- misc fixes in relation to kernel configs
-
- 25 Jan 2004; Brain Jackson <iggy@gentoo.org>
- x86/kernel-config-2.4:
- new default config, works well with gentoo-sources
-
- 24 Jan 2004; Brad House <brad_mssw@gentoo.org> gen_funcs.sh,
- generic/linuxrc, genkernel:
- updates
-
- 18 Jan 2004; Brad House <brad_mssw@gentoo.org> +alpha,
- +alpha/busy-config, +alpha/config.sh, +alpha/kernel-config-2.4,
- +alpha/modules_load, +pkg/alpha, +pkg/alpha/README:
- add alpha profile
-
- 17 Jan 2004; Brad House <brad_mssw@gentoo.org> genkernel:
- version bump
-
- 17 Jan 2004; Brad House <brad_mssw@gentoo.org> generic/linuxrc:
- must bind-mount dev for loop devices
-
- 17 Jan 2004; Brad House <brad_mssw@gentoo.org> generic/linuxrc:
- support multiple loop types
-
- 11 Jan 2004; Brad House <brad_mssw@gentoo.org> generic/linuxrc:
- not -t ext3 use -t ext2 Im and idiot
-
- 11 Jan 2004; Brad House <brad_mssw@gentoo.org>
- generic/linuxrc, genkernel:
- fix for loop device mounting
-
- 11 Jan 2004; Brad House <brad_mssw@gentoo.org> genkernel:
- genkernel
-
- 11 Jan 2004; Brad House <brad_mssw@gentoo.org>
- generic/initrd.scripts, generic/linuxrc:
- more fixes
-
- 11 Jan 2004; Brad House <brad_mssw@gentoo.org>
- generic/initrd.scripts, generic/linuxrc:
- fixes
-
- 11 Jan 2004; Brad House <brad_mssw@gentoo.org> generic/linuxrc:
- livecd fixes
-
- 10 Jan 2004; Brad House <brad_mssw@gentoo.org> gen_compile.sh:
- uname machine for parisc, etc
-
- 08 Jan 2004; Brad House <brad_mssw@gentoo.org> +pkg/sparc,
- +pkg/sparc/README, +pkg/sparc64, +pkg/sparc64/README:
- dont forget placeholders for pkg directory
-
- 08 Jan 2004; Brad House <brad_mssw@gentoo.org>
- x86_64/kernel-config-2.6:
- updated config
-
- 08 Jan 2004; Brad House <brad_mssw@gentoo.org> +TODO:
- todo
-
- 08 Jan 2004; Brad House <brad_mssw@gentoo.org> genkernel:
- version bump
-
- 08 Jan 2004; Brad House <brad_mssw@gentoo.org> genkernel:
- fix
-
- 08 Jan 2004; Brad House <brad_mssw@gentoo.org>
- x86_64/kernel-config-2.6:
- updated kernel config
-
- 08 Jan 2004; Brad House <brad_mssw@gentoo.org> gen_compile.sh,
- gen_funcs.sh, genkernel:
- check for loop devices and fix debug printing
-
- 08 Jan 2004; Brad House <brad_mssw@gentoo.org> gen_cmdline.sh,
- gen_determineargs.sh, generic/linuxrc, parisc/config.sh,
- sparc/config.sh, sparc64/config.sh, x86/config.sh,
- x86_64/config.sh:
- add makeopts params, and fixes for if old coreutils is in root
-
- 05 Jan 2004; Jason Wever <weeve@gentoo.org> +sparc,
- +sparc/busy-config, +sparc/config.sh, +sparc/kernel-config,
- +sparc/modules_load, +sparc64, +sparc64/busy-config,
- +sparc64/config.sh, +sparc64/kernel-config,
- +sparc64/modules_load:
- Added sparc and sparc64 dirs for genkernel.
-
- 03 Jan 2004; Guy Martin <gmsoft@gentoo.org> +parisc,
- +parisc/busy-config, +parisc/config.sh,
- +parisc/kernel-config-2.4, +parisc/modules_load, +pkg/parisc,
- +pkg/parisc/README:
- Added parisc files
-
- 31 Dec 2003; Seemant Kulleen <seemant@gentoo.org>
- +x86/kernel-config-2.4:
- 2.4 config thanks to iggycvs add kernel-config-2.4
-
- 24 Dec 2003; Brad House <brad_mssw@gentoo.org>
- gen_determineargs.sh:
- no bootsplash fix
-
- 24 Dec 2003; Brad House <brad_mssw@gentoo.org> genkernel:
- reverse kernel compile with modules make
-
- 23 Dec 2003; Brad House <brad_mssw@gentoo.org> README,
- +genkernel, -genkernel.sh:
- genkernel move
-
- 23 Dec 2003; Brad House <brad_mssw@gentoo.org> gen_cmdline.sh,
- gen_determineargs.sh, gen_initrd.sh, generic/linuxrc,
- genkernel.sh:
- no initrd modules stuff
-
- 23 Dec 2003; Brad House <brad_mssw@gentoo.org> gen_cmdline.sh,
- gen_determineargs.sh, +gen_package.sh, genkernel.sh:
- changes for livecd stuff
-
- 22 Dec 2003; Brad House <brad_mssw@gentoo.org> README:
- notes
-
- 22 Dec 2003; Brad House <brad_mssw@gentoo.org>
- gen_determineargs.sh:
- get extraversion properly
-
- 17 Dec 2003; Brad House <brad_mssw@gentoo.org>
- -x86_64/modprobe:
- remove modprobe from x86_64
-
- 17 Dec 2003; Brad House <brad_mssw@gentoo.org> README,
- gen_initrd.sh, gen_moddeps.sh, generic/initrd.defaults,
- generic/initrd.scripts, generic/linuxrc, generic/modprobe,
- x86_64/modules_load:
- fixes
-
- 17 Dec 2003; Brad House <brad_mssw@gentoo.org> gen_initrd.sh,
- generic/linuxrc, -x86/linuxrc, x86/modules_load,
- x86_64/modules_load:
- more generic
-
- 17 Dec 2003; Brad House <brad_mssw@gentoo.org> gen_initrd.sh,
- +generic, +generic/initrd.defaults, +generic/initrd.scripts,
- +generic/linuxrc, +generic/modprobe, -x86_64/initrd.defaults,
- -x86_64/initrd.scripts, -x86_64/linuxrc:
- make more generic
-
- 16 Dec 2003; Brad House <brad_mssw@gentoo.org> gen_initrd.sh,
- +gen_moddeps.sh, genkernel.sh, +x86_64/initrd.defaults,
- +x86_64/initrd.scripts, x86_64/linuxrc, +x86_64/modprobe,
- x86_64/modules_load:
- integrate new initrd, and module scanning
-
- 10 Dec 2003; Brad House <brad_mssw@gentoo.org> gen_initrd.sh:
- killall
-
- 10 Dec 2003; Brad House <brad_mssw@gentoo.org> gen_initrd.sh:
- devfsd fixes
-
- 09 Dec 2003; Brad House <brad_mssw@gentoo.org> gen_compile.sh:
- typos
-
- 09 Dec 2003; Brad House <brad_mssw@gentoo.org> gen_compile.sh,
- x86/config.sh, x86_64/config.sh:
- fix
-
- 09 Dec 2003; Brad House <brad_mssw@gentoo.org>
- +pkg/busybox-1.00-pre2-decl.patch:
- stuff
-
- 09 Dec 2003; Brad House <brad_mssw@gentoo.org> gen_cmdline.sh,
- gen_compile.sh, gen_determineargs.sh, x86/config.sh,
- x86_64/config.sh:
- different makes for kernel and utils
-
- 09 Dec 2003; Brad House <brad_mssw@gentoo.org> gen_cmdline.sh,
- gen_determineargs.sh, x86/config.sh, x86_64/config.sh:
- add make variable
-
- 09 Dec 2003; Brad House <brad_mssw@gentoo.org> gen_compile.sh,
- x86/config.sh:
- KERNEL_MAKE_2 for sparc
-
- 09 Dec 2003; Brad House <brad_mssw@gentoo.org> genkernel.conf,
- +pkg/busybox-1.00-pre3-patched.tar.bz2:
- busybox stuff
-
- 09 Dec 2003; Brad House <brad_mssw@gentoo.org> gen_compile.sh,
- gen_determineargs.sh, genkernel.conf, genkernel.sh:
- add devfsd support
-
- 09 Dec 2003; Brad House <brad_mssw@gentoo.org>
- +pkg/devfsd-1.3.25-dietlibc-kernel25.tar.bz2,
- +pkg/devfsd-1.3.25-dietlibc.patch:
- devfsd dietlibc stuff
-
- 09 Dec 2003; Brad House <brad_mssw@gentoo.org> gen_compile.sh,
- x86/config.sh, x86_64/config.sh:
- fixes
-
- 09 Dec 2003; Brad House <brad_mssw@gentoo.org> gen_compile.sh:
- umm, make configure scripts work with CC, AS, and LD set or unset
-
- 09 Dec 2003; Brad House <brad_mssw@gentoo.org> gen_compile.sh:
- don't forget 'env' before
-
- 09 Dec 2003; Brad House <brad_mssw@gentoo.org>
- +pkg/modutils-2.4.26.tar.bz2:
- forgot modutils package
-
- 09 Dec 2003; Brad House <brad_mssw@gentoo.org> gen_cmdline.sh,
- gen_compile.sh, gen_configkernel.sh, gen_determineargs.sh,
- x86/config.sh, x86_64/config.sh:
- need seperate toolkit for compilation of kernel and utils on sparc64
-
- 09 Dec 2003; Brad House <brad_mssw@gentoo.org> gen_compile.sh,
- gen_determineargs.sh:
- fixes for sparc, cant set LD or AS for sparc64
-
- 09 Dec 2003; Brad House <brad_mssw@gentoo.org>
- gen_configkernel.sh, gen_determineargs.sh, genkernel.conf,
- -x86/kernel-config, +x86/kernel-config-2.6,
- -x86_64/kernel-config, +x86_64/kernel-config-2.6:
- make friendly with 2.4
-
- 09 Dec 2003; Brad House <brad_mssw@gentoo.org> gen_cmdline.sh,
- gen_determineargs.sh, +pkg/x86, +pkg/x86/README, +pkg/x86_64,
- +pkg/x86_64/README:
- fixes
-
- 09 Dec 2003; Brad House <brad_mssw@gentoo.org> README,
- gen_compile.sh, gen_initrd.sh, genkernel.conf, genkernel.sh:
- 2.4 kernel updates
-
- 08 Dec 2003; Brad House <brad_mssw@gentoo.org> +README,
- +gen_arch.sh, +gen_cmdline.sh, +gen_compile.sh,
- +gen_configkernel.sh, +gen_determineargs.sh, +gen_funcs.sh,
- +gen_initrd.sh, +genkernel.conf, +genkernel.sh, +notes, +pkg,
- +pkg/busybox-1.00-pre3.tar.bz2, +pkg/dietlibc-0.24.tar.bz2,
- +pkg/module-init-tools-0.9.15-pre4.tar.bz2, +x86,
- +x86/busy-config, +x86/config.sh, +x86/kernel-config,
- +x86/linuxrc, +x86/modules_load, +x86_64, +x86_64/busy-config,
- +x86_64/config.sh, +x86_64/kernel-config, +x86_64/linuxrc,
- +x86_64/modules_load:
- add new genkernel dev
diff --git a/HACKING b/HACKING
index 62bbd37..32ab8a6 100644
--- a/HACKING
+++ b/HACKING
@@ -28,7 +28,7 @@ Rolling a release:
scp genkernel-${PV}.tar.xz ${USER}@dev.gentoo.org:/space/distfiles-local/
- copy to portage's DISTDIR so you can bump the ebuild
before the tarball hits distfile mirrors
- - cp genkernel-${PV}.tar.xz /usr/portage/distfiles/
+ - cp genkernel-${PV}.tar.xz /var/cache/distfiles/
- Bump the ebuild
- Propagate ebuild changes to the live ebuild
diff genkernel-${OLD_PV}.ebuild genkernel-${NEW_PV}.ebuild | patch genkernel-9999.ebuild
@@ -42,3 +42,9 @@ Rolling a release:
git shortlog ${PREV_TAG}..v${PV} | xsel
to generate the mail body.
+
+Changes:
+Changelogs prior to 2012 are available in Changelog.old [1], removed from
+regular distribution in commit 4ec9886457a58330843f5c46a38e73fda9957410.
+
+[1] https://gitweb.gentoo.org/proj/genkernel.git/tree/ChangeLog.old?id=71507545eec3031ade9b4f9a314c53216f2c97f2
diff --git a/Makefile b/Makefile
index 4751822..1e20ef5 100644
--- a/Makefile
+++ b/Makefile
@@ -1,11 +1,14 @@
-#PACKAGE_VERSION = `/bin/fgrep GK_V= genkernel | sed "s/.*GK_V='\([^']\+\)'/\1/"`
-PACKAGE_VERSION = `git describe --tags |sed 's,^v,,g'`
+#PACKAGE_VERSION = $(shell /bin/grep -F -- GK_V= genkernel | sed "s/.*GK_V='\([^']\+\)'/\1/")
+PACKAGE_VERSION = $(file <VERSION)
+ifeq ("$(PACKAGE_VERSION)", "")
+PACKAGE_VERSION = $(shell git describe --tags |sed 's,^v,,g')
+endif
distdir = genkernel-$(PACKAGE_VERSION)
MANPAGE = genkernel.8
# Add off-Git/generated files here that need to be shipped with releases
-EXTRA_DIST = $(MANPAGE) ChangeLog $(KCONF)
+EXTRA_DIST = ChangeLog $(KCONF)
-default: kconfig man
+default: all
# First argument in the override file
# Second argument is the base file
@@ -14,18 +17,85 @@ ARCH_KCONF = $(wildcard arch/*/arch-config)
GENERATED_KCONF = $(subst arch-,generated-,$(ARCH_KCONF))
KCONF = $(GENERATED_KCONF)
+BUILD_DIR = build
+
+FINAL_DEPS = genkernel.conf \
+ gen_arch.sh \
+ gen_bootloader.sh \
+ gen_cmdline.sh \
+ gen_compile.sh \
+ gen_configkernel.sh \
+ gen_determineargs.sh \
+ gen_funcs.sh \
+ gen_initramfs.sh \
+ gen_moddeps.sh \
+ gen_package.sh \
+ gen_worker.sh \
+ path_expander.py
+
+SOFTWARE = BCACHE_TOOLS \
+ BOOST \
+ BTRFS_PROGS \
+ BUSYBOX \
+ COREUTILS \
+ CRYPTSETUP \
+ DMRAID \
+ DROPBEAR \
+ EUDEV \
+ EXPAT \
+ E2FSPROGS \
+ FUSE \
+ GPG \
+ HWIDS \
+ ISCSI \
+ JSON_C \
+ KMOD \
+ LIBAIO \
+ LIBGCRYPT \
+ LIBGPGERROR \
+ LIBXCRYPT \
+ LVM \
+ LZO \
+ MDADM \
+ MULTIPATH_TOOLS \
+ POPT \
+ STRACE \
+ THIN_PROVISIONING_TOOLS \
+ UNIONFS_FUSE \
+ USERSPACE_RCU \
+ UTIL_LINUX \
+ XFSPROGS \
+ XZ \
+ ZLIB \
+ ZSTD
+
+SOFTWARE_VERSION = $(foreach entry, $(SOFTWARE), "VERSION_$(entry)=${VERSION_$(entry)}\n")
+
+PREFIX = /usr/local
+BINDIR = $(PREFIX)/bin
+ifeq ($(PREFIX), /usr)
+ SYSCONFDIR = /etc
+else
+ SYSCONFDIR = $(PREFIX)/etc
+endif
+MANDIR = $(PREFIX)/share/man
+
+all: $(BUILD_DIR)/genkernel $(BUILD_DIR)/build-config man kconfig
+
debug:
@echo "ARCH_KCONF=$(ARCH_KCONF)"
@echo "GENERATED_KCONF=$(GENERATED_KCONF)"
+ @echo "PACKAGE_VERSION=$(PACKAGE_VERSION)"
kconfig: $(GENERATED_KCONF)
-man: $(MANPAGE)
+man: $(addprefix $(BUILD_DIR)/,$(MANPAGE))
ChangeLog:
git log >$@
clean:
rm -f $(EXTRA_DIST)
+ rm -rf $(BUILD_DIR)
check-git-repository:
ifneq ($(UNCLEAN),1)
@@ -35,8 +105,9 @@ else
@true
endif
-dist: verify-doc check-git-repository distclean $(EXTRA_DIST)
+dist: verify-shellscripts-initramfs verify-doc check-git-repository distclean $(EXTRA_DIST)
mkdir "$(distdir)"
+ echo $(PACKAGE_VERSION) > $(distdir)/VERSION
git ls-files -z | xargs -0 cp --no-dereference --parents --target-directory="$(distdir)" \
$(EXTRA_DIST)
tar cf "$(distdir)".tar "$(distdir)"
@@ -46,19 +117,20 @@ dist: verify-doc check-git-repository distclean $(EXTRA_DIST)
distclean: clean
rm -Rf "$(distdir)" "$(distdir)".tar "$(distdir)".tar.xz
-.PHONY: clean check-git-repository dist distclean kconfig verify-doc
+.PHONY: clean check-git-repository dist distclean kconfig verify-doc install
# Generic rules
%/generated-config: %/arch-config $(BASE_KCONF) merge.pl Makefile
if grep -sq THIS_CONFIG_IS_BROKEN $< ; then \
cat $< >$@ ; \
else \
- perl merge.pl $< $(BASE_KCONF) > $@ ; \
+ perl merge.pl $< $(BASE_KCONF) | sort > $@ ; \
fi ;
-%.8: doc/%.8.txt doc/asciidoc.conf Makefile genkernel
- a2x --conf-file=doc/asciidoc.conf --attribute="genkernelversion=$(PACKAGE_VERSION)" \
- --format=manpage -D . "$<"
+$(BUILD_DIR)/%.8: doc/%.8.txt doc/asciidoc.conf Makefile $(BUILD_DIR)/doc/genkernel.8.txt
+ a2x --conf-file=doc/asciidoc.conf \
+ --format=manpage -D $(BUILD_DIR) --attribute="genkernelversion=$(PACKAGE_VERSION)" \
+ "$(BUILD_DIR)/$<"
verify-doc: doc/genkernel.8.txt
@rm -f faildoc ; \
@@ -72,11 +144,13 @@ verify-doc: doc/genkernel.8.txt
tr -s ' ' '\n' | \
sed -r \
-e 's,[[:space:]]*--(no-)?,,g' \
+ -e '/boot-font/s,=\(current\|<file>\|none\),,g' \
-e '/bootloader/s,=\(grub\|grub2\),,g' \
- -e '/microcode/s,\[\],,g' | \
+ -e '/microcode/s,=\(all\|amd\|intel\),,g' \
+ -e '/ssh-host-keys/s,=\(create\|create-from-host\|runtime\),,g' | \
while read opt ; do \
regex="^*--(...no-...)?$$opt" ; \
- if ! egrep -e "$$regex" $< -sq ; then \
+ if ! grep -Ee "$$regex" $< -sq ; then \
touch faildoc ; \
echo "Undocumented option: $$opt" ; \
fi ; \
@@ -87,3 +161,63 @@ verify-doc: doc/genkernel.8.txt
exit 1 ; \
fi ; \
rm -f faildoc
+
+verify-shellscripts-initramfs:
+# we need to check every file because a fatal error in
+# an included file (SC1094) is just a warning at the moment
+ shellcheck \
+ --external-sources \
+ --source-path SCRIPTDIR \
+ --severity error \
+ defaults/linuxrc \
+ defaults/initrd.scripts
+
+$(BUILD_DIR)/build-config:
+# $(addprefix $(BUILD_DIR)/temp/,$(TEMPFILES))
+ install -d $(BUILD_DIR)
+ echo $(PREFIX) > $(BUILD_DIR)/PREFIX
+ echo $(BINDIR) > $(BUILD_DIR)/BINDIR
+ echo $(SYSCONFDIR) > $(BUILD_DIR)/SYSCONFDIR
+ echo $(MANDIR) > $(BUILD_DIR)/MANDIR
+ touch $(BUILD_DIR)/build-config
+
+$(BUILD_DIR)/software.sh:
+ install -d $(BUILD_DIR)/temp/
+ echo -e $(SOFTWARE_VERSION) > $(BUILD_DIR)/temp/versions
+ cat $(BUILD_DIR)/temp/versions defaults/software.sh > $(BUILD_DIR)/software.sh
+
+$(BUILD_DIR)/doc/genkernel.8.txt:
+ install -D doc/genkernel.8.txt $(BUILD_DIR)/doc/genkernel.8.txt
+
+$(BUILD_DIR)/%: %
+ install -D $< $@
+
+$(BUILD_DIR)/genkernel: $(addprefix $(BUILD_DIR)/,$(FINAL_DEPS)) $(BUILD_DIR)/software.sh
+ install genkernel $(BUILD_DIR)/genkernel
+
+SHARE_DIRS = arch defaults gkbuilds modules netboot patches worker_modules
+
+install: all
+ $(eval PREFIX := $(file <$(BUILD_DIR)/PREFIX))
+ $(eval BINDIR := $(file <$(BUILD_DIR)/BINDIR))
+ $(eval SYSCONFDIR := $(file <$(BUILD_DIR)/SYSCONFDIR))
+ $(eval MANDIR := $(file <$(BUILD_DIR)/MANDIR))
+ install -d $(DESTDIR)/$(SYSCONFDIR)
+ install -m 644 $(BUILD_DIR)/genkernel.conf $(DESTDIR)/$(SYSCONFDIR)/
+
+ install -d $(DESTDIR)/$(BINDIR)
+ install -m 755 $(BUILD_DIR)/genkernel $(DESTDIR)/$(BINDIR)/
+
+ install -d $(DESTDIR)/$(PREFIX)/share/genkernel
+
+ cp -ra $(SHARE_DIRS) $(DESTDIR)/$(PREFIX)/share/genkernel/
+
+ install -m 755 -t $(DESTDIR)/$(PREFIX)/share/genkernel $(addprefix $(BUILD_DIR)/,$(FINAL_DEPS))
+
+ install $(BUILD_DIR)/software.sh $(DESTDIR)/$(PREFIX)/share/genkernel/defaults
+
+ install -d $(DESTDIR)/$(MANDIR)/man8
+ install $(BUILD_DIR)/genkernel.8 $(DESTDIR)/$(MANDIR)/man8
+
+# No trailing blank lines please.
+# vim:ft=make:
diff --git a/README b/README
index c202a54..1df4231 100644
--- a/README
+++ b/README
@@ -1,30 +1,45 @@
# $Id$
+GENERAL CONCEPT:
+Genkernel's primary job is to bring up only the basic stuff needed
+to mount your (block) device containing the root filesystem so that
+we can hand off control to real system as soon as possible.
+
+It's _not_ genkernel's goal to load all available modules, to start
+all available devices, to unlock additional volumes, to start network
+or do other fancy stuff. So don't forget to set up your normal boot
+services so that the real system can finish boot and do all of the
+things mentioned above.
+
DEPENDENCIES:
- GCC and binutils
- GNU Bash
- PaX Utilities
+ - Autoconf and Automake
USAGE:
- See http://www.gentoo.org/doc/en/genkernel.xml or
+ See https://wiki.gentoo.org/wiki/Genkernel or
issue ``genkernel --help''.
PORTING:
To port to other arches:
# cd /usr/share/genkernel
- # cp -Rp x86 ${myarch}
- # mkdir /usr/share/genkernel/pkg/${myarch}
+ # cp -Rp x86_64 ${myarch}
Modify what is needed in the /usr/share/genkernel/${myarch}
directory, as well making a generic kernel-config.
+ Check determine_real_args() function in gen_determineargs.sh
+ if you need to add anything like support for your architecture's
+ GCC triplet or mapping to kernel's arch.
+
IMPORTANT KERNEL NOTES:
- You MUST have /dev/pts turned on.
- To boot genkernel properly, the kernel config must have
Initial RAM disk support.
-BOOTING A KERNEL WITH INITRD:
+BOOTING A KERNEL WITH INITRAMFS:
GRUB:
root= needs to point to your root partition
@@ -32,8 +47,18 @@ BOOTING A KERNEL WITH INITRD:
1024x768 - 16bpp and you'll get a pretty splash if
configured properly
- GRUB EXAMPLE ENTRY:
- title=2.6.0 [ Genkernel ]
+ GRUB 1.x EXAMPLE ENTRY:
+ title Gentoo Linux
root (hd0,0)
- kernel (hd0,0)/boot/kernel-2.6.0-gentoo root=/dev/hda3 vga=0x317
- initrd (hd0,0)/boot/initrd-2.6.0-gentoo
+ kernel /vmlinuz-5.4.2-gentoo-x86_64 root=/dev/sda1 vga=0x791
+ initrd /initramfs-5.4.2-gentoo-x86_64.img
+
+ EXTLINUX (SYSLINUX) EXAMPLE ENTRY:
+ LABEL genkernel-latest
+ MENU LABEL Gentoo Linux (latest)
+ LINUX /kernel
+ INITRD /initramfs
+ APPEND dolvm crypt_root=UUID=a8c5be51-bd1b-4446-a430-1d0ed576fa73 root=UUID=a2e5968c-5917-41ef-bf81-edffd54c8abd rootfs=ext4 root_trim=yes dosshd
+
+ NOTE: The example above uses genkernel's --symlink feature and
+ initramfs was built with --lvm, --luks and --ssh.
diff --git a/TODO b/TODO
index a672c07..4838650 100644
--- a/TODO
+++ b/TODO
@@ -3,13 +3,10 @@
- Need configs for other currently-unsupported arches
- Make configs stackable
- Move modules_load to /etc/genkernel
-- Refactor modules_load to not ship 12 identical arch configs
- Move main config to /etc/genkernel
- Refactor code to be more simple and extendable
- Fix all TODO sections in the code
-- Add all options to genkernel.conf
- Add "include" options to genkernel.conf
-- Allow for architecture-specific or module-specific files to override defaults
- Create hooks for various points in the build/install phases for modules
- Add new boot support for the following:
- Hardware
diff --git a/arch/alpha/arch-config b/arch/alpha/arch-config
index 4e62d1f..df34931 100644
--- a/arch/alpha/arch-config
+++ b/arch/alpha/arch-config
@@ -1,32 +1,17 @@
-CONFIG_ALPHA=y
CONFIG_64BIT=y
-CONFIG_MMU=y
-CONFIG_RWSEM_XCHGADD_ALGORITHM=y
-# CONFIG_ARCH_HAS_ILOG2_U32 is not set
-# CONFIG_ARCH_HAS_ILOG2_U64 is not set
-CONFIG_GENERIC_FIND_NEXT_BIT=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_ZONE_DMA=y
-CONFIG_GENERIC_ISA_DMA=y
-# CONFIG_GENERIC_IOMAP is not set
-CONFIG_GENERIC_HARDIRQS=y
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_AUTO_IRQ_AFFINITY=y
-CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-
-
-CONFIG_ALPHA_GENERIC=y
# CONFIG_ALPHA_ALCOR is not set
-# CONFIG_ALPHA_XL is not set
-# CONFIG_ALPHA_BOOK1 is not set
# CONFIG_ALPHA_AVANTI_CH is not set
+# CONFIG_ALPHA_BOOK1 is not set
+CONFIG_ALPHA_BROKEN_IRQ_MASK=y
# CONFIG_ALPHA_CABRIOLET is not set
+CONFIG_ALPHA_CORE_AGP=y
# CONFIG_ALPHA_DP264 is not set
# CONFIG_ALPHA_EB164 is not set
# CONFIG_ALPHA_EB64P_CH is not set
# CONFIG_ALPHA_EB66 is not set
# CONFIG_ALPHA_EB66P is not set
# CONFIG_ALPHA_EIGER is not set
+CONFIG_ALPHA_GENERIC=y
# CONFIG_ALPHA_JENSEN is not set
# CONFIG_ALPHA_LX164 is not set
# CONFIG_ALPHA_LYNX is not set
@@ -36,52 +21,51 @@ CONFIG_ALPHA_GENERIC=y
# CONFIG_ALPHA_NAUTILUS is not set
# CONFIG_ALPHA_NONAME_CH is not set
# CONFIG_ALPHA_NORITAKE is not set
-# CONFIG_ALPHA_PC164 is not set
# CONFIG_ALPHA_P2K is not set
+# CONFIG_ALPHA_PC164 is not set
# CONFIG_ALPHA_RAWHIDE is not set
# CONFIG_ALPHA_RUFFIAN is not set
# CONFIG_ALPHA_RX164 is not set
-# CONFIG_ALPHA_SX164 is not set
# CONFIG_ALPHA_SABLE is not set
# CONFIG_ALPHA_SHARK is not set
+# CONFIG_ALPHA_SX164 is not set
# CONFIG_ALPHA_TAKARA is not set
# CONFIG_ALPHA_TITAN is not set
+CONFIG_ALPHA_UAC_SYSCTL=y
# CONFIG_ALPHA_WILDFIRE is not set
-CONFIG_ISA_DMA_API=y
-CONFIG_PCI_DOMAINS=y
-CONFIG_PCI_SYSCALL=y
-CONFIG_ALPHA_CORE_AGP=y
-CONFIG_GENERIC_HWEIGHT=y
-CONFIG_ALPHA_BROKEN_IRQ_MASK=y
-CONFIG_VGA_HOSE=y
-CONFIG_EISA=y
-CONFIG_ARCH_MAY_HAVE_PC_FDC=y
-CONFIG_HAVE_DEC_LOCK=y
-CONFIG_NR_CPUS=32
+# CONFIG_ALPHA_XL is not set
+CONFIG_ALPHA=y
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
-CONFIG_SELECT_MEMORY_MODEL=y
-CONFIG_FLATMEM_MANUAL=y
+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+CONFIG_AUTO_IRQ_AFFINITY=y
+CONFIG_BINFMT_AOUT=m
+CONFIG_BINFMT_EM86=m
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
# CONFIG_DISCONTIGMEM_MANUAL is not set
-# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_EISA_NAMES=y
+CONFIG_EISA_PCI_EISA=y
+CONFIG_EISA_VIRTUAL_ROOT=y
+CONFIG_EISA=y
+CONFIG_FLATMEM_MANUAL=y
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_GENERIC_FIND_NEXT_BIT=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_HWEIGHT=y
+# CONFIG_GENERIC_IOMAP is not set
+CONFIG_HAVE_DEC_LOCK=y
+CONFIG_NR_CPUS=32
+CONFIG_OSF4_COMPAT=y
+# CONFIG_PCCARD is not set
+CONFIG_PCI_SYSCALL=y
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+# CONFIG_SPARSEMEM_MANUAL is not set
# CONFIG_SPARSEMEM_STATIC is not set
# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
-CONFIG_SPLIT_PTLOCK_CPUS=4
-CONFIG_RESOURCES_64BIT=y
-CONFIG_ZONE_DMA_FLAG=1
-CONFIG_BOUNCE=y
-CONFIG_VIRT_TO_BUS=y
-CONFIG_VERBOSE_MCHECK=y
-CONFIG_VERBOSE_MCHECK_ON=1
-CONFIG_ALPHA_UAC_SYSCTL=y
-# CONFIG_ARCH_SUPPORTS_MSI is not set
-CONFIG_PCI_LEGACY=y
-CONFIG_EISA_PCI_EISA=y
-CONFIG_EISA_VIRTUAL_ROOT=y
-CONFIG_EISA_NAMES=y
-# CONFIG_PCCARD is not set
CONFIG_SRM_ENV=m
-CONFIG_BINFMT_AOUT=m
-CONFIG_OSF4_COMPAT=y
-CONFIG_BINFMT_EM86=m
+CONFIG_VERBOSE_MCHECK_ON=1
+CONFIG_VERBOSE_MCHECK=y
+CONFIG_VGA_HOSE=y
+CONFIG_ZONE_DMA_FLAG=1
diff --git a/arch/alpha/config.sh b/arch/alpha/config.sh
index 60dad51..60dad51 100755..100644
--- a/arch/alpha/config.sh
+++ b/arch/alpha/config.sh
diff --git a/arch/alpha/modules_load b/arch/alpha/modules_load
index 5bcd5d9..5fa717b 100644
--- a/arch/alpha/modules_load
+++ b/arch/alpha/modules_load
@@ -1,39 +1,2 @@
-# Module groups for genkernel initramfs auto-loading
-
-# RAID
-MODULES_ATARAID="ataraid pdcraid hptraid"
-MODULES_DMRAID="dm-mod dm-mirror dm-crypt"
-MODULES_MDADM="md-mod dm-mod dm-snapshot dm-mirror dm-bbr dm-raid dm-crypt raid0 raid1 raid456 raid5 raid6 raid10 linear multipath async_raid6_recov async_pq libcrc32c raid6_pq async_tx async_memcpy async_xor"
-MODULES_LVM="dm-mod dm-bio-prison dm-bufio dm-cache dm-cache-smq dm-crypt dm-delay dm-era dm-flakey dm-integrity dm-log dm-log-userspace dm-log-writes dm-mirror dm-raid dm-region-hash dm-snapshot dm-switch dm-thin-pool dm-verity dm-zero dm-persistent-data ${MODULES_MDADM}"
-MODULES_MULTIPATH="dm-mod dm-multipath dm-round-robin dm-rdac dm-queue-length dm-service-time"
-
-# Hardware (IDE/SCSI/SATA/NVMe)
-MODULES_NVME="nvme-core nvme nvme-fabrics nvme-rdma nvme-loop nvme-fc"
-MODULES_PATA="pata_mpiix pata_pdc2027x pata_radisys pata_sil680 pata_rz1000 pata_efar pata_cmd64x pata_hpt366 pata_hpt37x pata_hpt3x3 pata_hpt3x2n pata_optidma pata_it821x pata_artop pata_oldpiix pata_cypress pata_platform pata_serverworks pata_legacy pata_ns87410 pata_ns87415 pata_pcmcia pata_isapnp pata_it8213 pata_ali pata_amd pata_opti pata_atiixp pata_triflex pata_pdc202xx_old pata_sc1200 pata_qdi pata_netcell pata_sis pata_hpt3x2n pata_marvell pata_jmicron pata_via pata_cs5520 pata_cs5530 pata_cs5535 pata_sl82c105 libata"
-MODULES_SATA="sata_promise sata_sil sata_sil24 sata_svw sata_via sata_nv sata_sx4 sata_sis sata_uli sata_vsc sata_qstor ahci libata ata_piix sata_mv sata_inic162x pdc_adma"
-MODULES_SCSI="sd_mod sg sr_mod aic79xx aic7xxx aic7xxx_old arcmsr BusLogic ncr53c8xx NCR53c406a initio advansys aha1740 aha1542 aha152x dtc fdomain gdth pas16 pci2220i pci2000 psi240i qlogicfas qlogicfc qlogicisp qlogicpti seagate t128 u14-34f ultrastor wd7000 sym53c8xx dmx3191d imm in2000 ips qla1280 sim710 sym53c416 dc395x atp870u mptbase mptscsih mptspi mptfc mptsas 3w-sas 3w-xxxx 3w-9xxx cpqarray cciss hpsa DAC960 sx8 aacraid megaraid megaraid_mbox megaraid_mm megaraid_sas qla2xxx lpfc scsi_transport_fc aic94xx mpt2sas mpt3sas virtio_scsi virtio_blk"
-MODULES_WAITSCAN="scsi_wait_scan"
-MODULES_BLOCK="sdhci_pci"
-
-# Hardware (Network)
-MODULES_NET="e1000 tg3 broadcom bcm_phy_lib virtio_net"
-
-# iSCSI support
-MODULES_ISCSI="scsi_transport_iscsi libiscsi iscsi_tcp"
-
-# Hardware (Pluggable)
-MODULES_FIREWIRE="ieee1394 ohci1394 sbp2"
-MODULES_PCMCIA="pcmcia pcmcia_core yenta_socket pd6729 i82092 i82365 tcic ds ide-cs firmware_class"
-MODULES_USB="ehci-pci ehci-hcd uhci usb-ohci hid usb-storage uas uhci-hcd ohci-hcd xhci-hcd xhci-pci xhci-plat usbhid hid-generic sl811-hcd hid-a4tech hid-apple hid-belkin hid-cherry hid-chicony hid-cypress hid-dummy hid-ezkey hid-gyration hid-logitech hid-logitech-dj hid-microsoft hid-monterey hid-petalynx hid-pl hid-samsung hid-sony hid-sunplus"
-
-# Filesystems
-MODULES_FS="ext2 ext3 ext4 btrfs reiserfs jfs nfs xfs zfs f2fs fuse loop squashfs aufs overlay cramfs configfs fscrypto efivarfs msdos qemu_fw_cfg"
-
-# Crypto
-MODULES_CRYPTO="sha256_generic cbc crc32c crc32c_generic crc32 crc32_generic aes_generic xts"
-
-# Hyper-V
-MODULES_HYPERV="hv_utils hv_vmbus hv_balloon hyperv_keyboard hv_netvsc hid_hyperv hv_utils hyperv_fb hv_storvsc"
-
-# Virtio
-MODULES_VIRTIO="virtio_scsi virtio_blk virtio_console virtio-rng virtio virtio_balloon virtio_input virtio_ring virtio_pci virtio_mmio virtio_crypto virtio_net"
+# alpha module groups for genkernel initramfs auto-loading
+# (extending defaults/modules_load)
diff --git a/arch/arm/config.sh b/arch/arm/config.sh
index ce478c8..ce478c8 100755..100644
--- a/arch/arm/config.sh
+++ b/arch/arm/config.sh
diff --git a/arch/arm/modules_load b/arch/arm/modules_load
index 5bcd5d9..c93a9ae 100644
--- a/arch/arm/modules_load
+++ b/arch/arm/modules_load
@@ -1,39 +1,8 @@
-# Module groups for genkernel initramfs auto-loading
-
-# RAID
-MODULES_ATARAID="ataraid pdcraid hptraid"
-MODULES_DMRAID="dm-mod dm-mirror dm-crypt"
-MODULES_MDADM="md-mod dm-mod dm-snapshot dm-mirror dm-bbr dm-raid dm-crypt raid0 raid1 raid456 raid5 raid6 raid10 linear multipath async_raid6_recov async_pq libcrc32c raid6_pq async_tx async_memcpy async_xor"
-MODULES_LVM="dm-mod dm-bio-prison dm-bufio dm-cache dm-cache-smq dm-crypt dm-delay dm-era dm-flakey dm-integrity dm-log dm-log-userspace dm-log-writes dm-mirror dm-raid dm-region-hash dm-snapshot dm-switch dm-thin-pool dm-verity dm-zero dm-persistent-data ${MODULES_MDADM}"
-MODULES_MULTIPATH="dm-mod dm-multipath dm-round-robin dm-rdac dm-queue-length dm-service-time"
+# arm module groups for genkernel initramfs auto-loading
+# (extending defaults/modules_load)
# Hardware (IDE/SCSI/SATA/NVMe)
-MODULES_NVME="nvme-core nvme nvme-fabrics nvme-rdma nvme-loop nvme-fc"
-MODULES_PATA="pata_mpiix pata_pdc2027x pata_radisys pata_sil680 pata_rz1000 pata_efar pata_cmd64x pata_hpt366 pata_hpt37x pata_hpt3x3 pata_hpt3x2n pata_optidma pata_it821x pata_artop pata_oldpiix pata_cypress pata_platform pata_serverworks pata_legacy pata_ns87410 pata_ns87415 pata_pcmcia pata_isapnp pata_it8213 pata_ali pata_amd pata_opti pata_atiixp pata_triflex pata_pdc202xx_old pata_sc1200 pata_qdi pata_netcell pata_sis pata_hpt3x2n pata_marvell pata_jmicron pata_via pata_cs5520 pata_cs5530 pata_cs5535 pata_sl82c105 libata"
-MODULES_SATA="sata_promise sata_sil sata_sil24 sata_svw sata_via sata_nv sata_sx4 sata_sis sata_uli sata_vsc sata_qstor ahci libata ata_piix sata_mv sata_inic162x pdc_adma"
-MODULES_SCSI="sd_mod sg sr_mod aic79xx aic7xxx aic7xxx_old arcmsr BusLogic ncr53c8xx NCR53c406a initio advansys aha1740 aha1542 aha152x dtc fdomain gdth pas16 pci2220i pci2000 psi240i qlogicfas qlogicfc qlogicisp qlogicpti seagate t128 u14-34f ultrastor wd7000 sym53c8xx dmx3191d imm in2000 ips qla1280 sim710 sym53c416 dc395x atp870u mptbase mptscsih mptspi mptfc mptsas 3w-sas 3w-xxxx 3w-9xxx cpqarray cciss hpsa DAC960 sx8 aacraid megaraid megaraid_mbox megaraid_mm megaraid_sas qla2xxx lpfc scsi_transport_fc aic94xx mpt2sas mpt3sas virtio_scsi virtio_blk"
-MODULES_WAITSCAN="scsi_wait_scan"
-MODULES_BLOCK="sdhci_pci"
+MODULES_SATA+=" ahci_xgene"
# Hardware (Network)
-MODULES_NET="e1000 tg3 broadcom bcm_phy_lib virtio_net"
-
-# iSCSI support
-MODULES_ISCSI="scsi_transport_iscsi libiscsi iscsi_tcp"
-
-# Hardware (Pluggable)
-MODULES_FIREWIRE="ieee1394 ohci1394 sbp2"
-MODULES_PCMCIA="pcmcia pcmcia_core yenta_socket pd6729 i82092 i82365 tcic ds ide-cs firmware_class"
-MODULES_USB="ehci-pci ehci-hcd uhci usb-ohci hid usb-storage uas uhci-hcd ohci-hcd xhci-hcd xhci-pci xhci-plat usbhid hid-generic sl811-hcd hid-a4tech hid-apple hid-belkin hid-cherry hid-chicony hid-cypress hid-dummy hid-ezkey hid-gyration hid-logitech hid-logitech-dj hid-microsoft hid-monterey hid-petalynx hid-pl hid-samsung hid-sony hid-sunplus"
-
-# Filesystems
-MODULES_FS="ext2 ext3 ext4 btrfs reiserfs jfs nfs xfs zfs f2fs fuse loop squashfs aufs overlay cramfs configfs fscrypto efivarfs msdos qemu_fw_cfg"
-
-# Crypto
-MODULES_CRYPTO="sha256_generic cbc crc32c crc32c_generic crc32 crc32_generic aes_generic xts"
-
-# Hyper-V
-MODULES_HYPERV="hv_utils hv_vmbus hv_balloon hyperv_keyboard hv_netvsc hid_hyperv hv_utils hyperv_fb hv_storvsc"
-
-# Virtio
-MODULES_VIRTIO="virtio_scsi virtio_blk virtio_console virtio-rng virtio virtio_balloon virtio_input virtio_ring virtio_pci virtio_mmio virtio_crypto virtio_net"
+MODULES_NET+=" xgene_enet"
diff --git a/arch/arm64/arch-config b/arch/arm64/arch-config
new file mode 100644
index 0000000..cc1185d
--- /dev/null
+++ b/arch/arm64/arch-config
@@ -0,0 +1,588 @@
+# CONFIG_ACPI_APEI_EINJ is not set
+CONFIG_ACPI_APEI_SEA=y
+CONFIG_ACPI_CPPC_CPUFREQ=m
+CONFIG_ACPI_EC_DEBUGFS=y
+CONFIG_ACPI_HOTPLUG_MEMORY=y
+CONFIG_ACPI_I2C_OPREGION=y
+CONFIG_ACPI_NFIT=m
+CONFIG_ACPI_NUMA=y
+CONFIG_ACPI_PROCFS_POWER=y
+CONFIG_AHCI_CEVA=m
+CONFIG_AHCI_QORIQ=m
+CONFIG_AHCI_XGENE=y
+CONFIG_AL_FIC=y
+# CONFIG_AMBA_PL08X is not set
+CONFIG_APQ_GCC_8084=y
+CONFIG_APQ_MMCC_8084=m
+# CONFIG_ARCH_AGILEX is not set
+# CONFIG_ARCH_ALPINE is not set
+CONFIG_ARCH_BCM2835=y
+# CONFIG_ARCH_BITMAIN is not set
+# CONFIG_ARCH_EXYNOS is not set
+CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
+CONFIG_ARCH_HISI=y
+# CONFIG_ARCH_K3 is not set
+CONFIG_ARCH_LAYERSCAPE=y
+# CONFIG_ARCH_LG1K is not set
+# CONFIG_ARCH_MEDIATEK is not set
+CONFIG_ARCH_MESON=y
+CONFIG_ARCH_MVEBU=y
+CONFIG_ARCH_MXC=y
+CONFIG_ARCH_QCOM=y
+# CONFIG_ARCH_REALTEK is not set
+CONFIG_ARCH_SEATTLE=y
+# CONFIG_ARCH_SPRD is not set
+# CONFIG_ARCH_STRATIX10 is not set
+CONFIG_ARCH_SYNQUACER=y
+CONFIG_ARCH_TEGRA_132_SOC=y
+CONFIG_ARCH_TEGRA_186_SOC=y
+CONFIG_ARCH_TEGRA_194_SOC=y
+CONFIG_ARCH_TEGRA_210_SOC=y
+CONFIG_ARCH_TEGRA=y
+CONFIG_ARCH_THUNDER2=y
+CONFIG_ARCH_THUNDER=y
+# CONFIG_ARCH_UNIPHIER is not set
+CONFIG_ARCH_VEXPRESS=y
+CONFIG_ARCH_XGENE=y
+# CONFIG_ARCH_ZX is not set
+CONFIG_ARCH_ZYNQMP=y
+CONFIG_ARM64_4K_PAGES=y
+CONFIG_ARM64_ACPI_PARKING_PROTOCOL=y
+CONFIG_ARM64_CNP=y
+CONFIG_ARM64_CRYPTO=y
+CONFIG_ARM64_ERRATUM_1024718=y
+CONFIG_ARM64_ERRATUM_1165522=y
+CONFIG_ARM64_ERRATUM_1286807=y
+CONFIG_ARM64_ERRATUM_1319367=y
+CONFIG_ARM64_ERRATUM_1418040=y
+CONFIG_ARM64_ERRATUM_1463225=y
+CONFIG_ARM64_ERRATUM_1542419=y
+CONFIG_ARM64_ERRATUM_819472=y
+CONFIG_ARM64_ERRATUM_824069=y
+CONFIG_ARM64_ERRATUM_826319=y
+CONFIG_ARM64_ERRATUM_827319=y
+CONFIG_ARM64_ERRATUM_832075=y
+CONFIG_ARM64_ERRATUM_834220=y
+CONFIG_ARM64_ERRATUM_843419=y
+CONFIG_ARM64_ERRATUM_845719=y
+CONFIG_ARM64_HW_AFDBM=y
+CONFIG_ARM64_LSE_ATOMICS=y
+CONFIG_ARM64_PAN=y
+CONFIG_ARM64_PMEM=y
+# CONFIG_ARM64_PSEUDO_NMI is not set
+CONFIG_ARM64_PTDUMP_DEBUGFS=y
+CONFIG_ARM64_PTR_AUTH=y
+# CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET is not set
+CONFIG_ARM64_RAS_EXTN=y
+# CONFIG_ARM64_RELOC_TEST is not set
+CONFIG_ARM64_SVE=y
+CONFIG_ARM64_SW_TTBR0_PAN=y
+CONFIG_ARM64_TAGGED_ADDR_ABI=y
+CONFIG_ARM64_UAO=y
+CONFIG_ARM64_VA_BITS=48
+CONFIG_ARM64_VA_BITS_48=y
+# CONFIG_ARM64_VA_BITS_52 is not set
+CONFIG_ARM64_VHE=y
+CONFIG_ARM64=y
+CONFIG_ARMADA_37XX_WATCHDOG=m
+CONFIG_ARMADA_AP806_SYSCON=y
+CONFIG_ARM_ARMADA_8K_CPUFREQ=m
+CONFIG_ARM_CPUIDLE=y
+CONFIG_ARM_DSU_PMU=m
+CONFIG_ARM_IMX_CPUFREQ_DT=m
+CONFIG_ARM_QCOM_CPUFREQ_NVMEM=m
+CONFIG_ARM_SBSA_WATCHDOG=m
+CONFIG_ARM_SDE_INTERFACE=y
+CONFIG_ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT=y
+CONFIG_ARM_SMMU_V3_PMU=m
+CONFIG_ARM_SMMU_V3=y
+CONFIG_ARM_SMMU=y
+CONFIG_ARM_TEGRA124_CPUFREQ=y
+CONFIG_ARM_TEGRA186_CPUFREQ=m
+CONFIG_ARM_TEGRA20_CPUFREQ=y
+CONFIG_ARMV8_DEPRECATED=y
+CONFIG_AXP288_ADC=m
+CONFIG_AXP288_CHARGER=m
+CONFIG_AXP288_FUEL_GAUGE=m
+# CONFIG_BATTERY_BQ27XXX_DT_UPDATES_NVM is not set
+# CONFIG_BATTERY_BQ27XXX_HDQ is not set
+CONFIG_BATTERY_BQ27XXX_I2C=m
+CONFIG_BATTERY_BQ27XXX=m
+CONFIG_BT_QCOMSMD=m
+CONFIG_BTT=y
+CONFIG_CADENCE_TTC_TIMER=y
+CONFIG_CAVIUM_CPT=m
+CONFIG_CAVIUM_ERRATUM_22375=y
+CONFIG_CAVIUM_ERRATUM_23144=y
+CONFIG_CAVIUM_ERRATUM_23154=y
+CONFIG_CAVIUM_ERRATUM_27456=y
+CONFIG_CAVIUM_ERRATUM_30115=y
+CONFIG_CAVIUM_PTP=m
+CONFIG_CAVIUM_TX2_ERRATUM_219=y
+CONFIG_CHARGER_QCOM_SMBB=m
+CONFIG_CLK_IMX8MM=y
+CONFIG_CLK_IMX8MN=y
+CONFIG_CLK_IMX8MQ=y
+CONFIG_CLK_IMX8QXP=y
+# CONFIG_CLK_QORIQ is not set
+CONFIG_COMMON_CLK_BD718XX=m
+# CONFIG_COMMON_CLK_HI3516CV300 is not set
+CONFIG_COMMON_CLK_HI3519=m
+CONFIG_COMMON_CLK_HI3660=y
+CONFIG_COMMON_CLK_HI3670=y
+# CONFIG_COMMON_CLK_HI3798CV200 is not set
+CONFIG_COMMON_CLK_HI6220=y
+CONFIG_COMMON_CLK_HI655X=m
+CONFIG_COMMON_CLK_QCOM=y
+CONFIG_COMMON_CLK_XGENE=y
+CONFIG_COMMON_CLK_ZYNQMP=y
+CONFIG_COMMON_RESET_HI3660=m
+CONFIG_COMMON_RESET_HI6220=m
+CONFIG_COMPAT=y
+CONFIG_CP15_BARRIER_EMULATION=y
+CONFIG_CPU_LITTLE_ENDIAN=y
+CONFIG_CROSS_COMPILE_COMPAT_VDSO=""
+CONFIG_CRYPTO_AES_ARM64_BS=m
+CONFIG_CRYPTO_AES_ARM64_CE_BLK=m
+CONFIG_CRYPTO_AES_ARM64_CE_BLK=y
+CONFIG_CRYPTO_AES_ARM64_CE_CCM=m
+CONFIG_CRYPTO_AES_ARM64_CE_CCM=y
+CONFIG_CRYPTO_AES_ARM64_CE=m
+CONFIG_CRYPTO_AES_ARM64_CE=y
+CONFIG_CRYPTO_AES_ARM64=m
+CONFIG_CRYPTO_AES_ARM64_NEON_BLK=y
+CONFIG_CRYPTO_AES_ARM64=y
+CONFIG_CRYPTO_DEV_CAVIUM_ZIP=m
+CONFIG_CRYPTO_DEV_HISI_HPRE=m
+CONFIG_CRYPTO_DEV_HISI_SEC2=m
+# CONFIG_CRYPTO_DEV_HISI_ZIP is not set
+CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m
+CONFIG_CRYPTO_DEV_QCE=m
+CONFIG_CRYPTO_DEV_SAFEXCEL=m
+CONFIG_CRYPTO_GHASH_ARM64_CE=m
+CONFIG_CRYPTO_POLY1305_NEON=m
+CONFIG_CRYPTO_SHA1_ARM64_CE=m
+CONFIG_CRYPTO_SHA1_ARM64_CE=y
+CONFIG_CRYPTO_SHA256_ARM64=m
+CONFIG_CRYPTO_SHA2_ARM64_CE=m
+CONFIG_CRYPTO_SHA2_ARM64_CE=y
+CONFIG_CRYPTO_SHA3_ARM64=m
+CONFIG_CRYPTO_SHA512_ARM64_CE=m
+CONFIG_CRYPTO_SM3_ARM64_CE=m
+CONFIG_CRYPTO_SM4_ARM64_CE=m
+# CONFIG_DEBUG_ALIGN_RODATA is not set
+# CONFIG_DEBUG_EFI is not set
+CONFIG_DEV_DAX_KMEM=m
+CONFIG_DP83867_PHY=m
+CONFIG_DPAA2_CONSOLE=m
+CONFIG_DRM_HISI_KIRIN=m
+CONFIG_DRM_MSM_DSI_14NM_PHY=y
+CONFIG_DRM_MSM_DSI_20NM_PHY=y
+CONFIG_DRM_MSM_DSI_28NM_8960_PHY=y
+CONFIG_DRM_MSM_DSI_28NM_PHY=y
+CONFIG_DRM_MSM_DSI_PLL=y
+CONFIG_DRM_MSM_DSI=y
+CONFIG_DRM_MSM_HDMI_HDCP=y
+CONFIG_DRM_MSM=m
+# CONFIG_DRM_MSM_REGISTER_LOGGING is not set
+CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA=m
+# CONFIG_DVB_B2C2_FLEXCOP_USB is not set
+CONFIG_DWMAC_IPQ806X=m
+CONFIG_DWMAC_QCOM_ETHQOS=m
+CONFIG_EDAC_BLUEFIELD=m
+CONFIG_EDAC_LAYERSCAPE=m
+CONFIG_EDAC_QCOM=m
+CONFIG_EDAC_SYNOPSYS=m
+CONFIG_EDAC_THUNDERX=m
+CONFIG_EDAC_XGENE=m
+CONFIG_EXTCON_AXP288=m
+CONFIG_EXTCON_QCOM_SPMI_MISC=m
+CONFIG_FB_XILINX=m
+CONFIG_FORCE_MAX_ZONEORDER=13
+CONFIG_FPGA_MGR_ZYNQMP_FPGA=m
+# CONFIG_FSL_BMAN_TEST is not set
+CONFIG_FSL_DPAA2_ETH=m
+CONFIG_FSL_DPAA2_ETHSW=m
+CONFIG_FSL_DPAA2_PTP_CLOCK=m
+CONFIG_FSL_DPAA2_QDMA=m
+CONFIG_FSL_DPAA2=y
+# CONFIG_FSL_DPAA_CHECKING is not set
+CONFIG_FSL_DPAA_ETH=m
+CONFIG_FSL_DPAA=y
+CONFIG_FSL_EDMA=m
+CONFIG_FSL_ENETC_HW_TIMESTAMPING=y
+CONFIG_FSL_ENETC=m
+CONFIG_FSL_ENETC_PTP_CLOCK=m
+CONFIG_FSL_ENETC_VF=m
+CONFIG_FSL_ERRATUM_A008585=y
+CONFIG_FSL_FMAN=m
+CONFIG_FSL_IMX8_DDR_PMU=m
+CONFIG_FSL_MC_BUS=y
+CONFIG_FSL_MC_DPIO=m
+CONFIG_FSL_PQ_MDIO=m
+CONFIG_FSL_QDMA=m
+# CONFIG_FSL_QMAN_TEST is not set
+CONFIG_FUJITSU_ERRATUM_010001=y
+# CONFIG_FUJITSU_ES is not set
+CONFIG_GIANFAR=m
+CONFIG_GPIO_MAX77620=y
+CONFIG_GPIO_MB86S7X=m
+CONFIG_GPIO_MLXBF=m
+CONFIG_GPIO_MPC8XXX=y
+CONFIG_GPIO_TEGRA186=y
+CONFIG_GPIO_THUNDERX=m
+CONFIG_GPIO_TPS65086=m
+CONFIG_GPIO_XGENE_SB=m
+CONFIG_GPIO_XGENE=y
+CONFIG_GPIO_XLP=m
+CONFIG_GPIO_ZYNQ=m
+CONFIG_HI3660_MBOX=y
+CONFIG_HI6220_MBOX=y
+CONFIG_HISILICON_ERRATUM_161010101=y
+CONFIG_HISILICON_ERRATUM_161600802=y
+CONFIG_HISILICON_IRQ_MBIGEN=y
+CONFIG_HISILICON_LPC=y
+CONFIG_HISI_THERMAL=m
+# CONFIG_HVC_DCC is not set
+CONFIG_HVC_DRIVER=y
+CONFIG_HW_RANDOM_CAVIUM=m
+CONFIG_HW_RANDOM_HISI=m
+CONFIG_HW_RANDOM_HISI_V2=y
+CONFIG_HW_RANDOM_XGENE=m
+CONFIG_HWSPINLOCK_QCOM=m
+CONFIG_HZ=100
+CONFIG_HZ_100=y
+# CONFIG_I2C_HIX5HD2 is not set
+CONFIG_I2C_QCOM_GENI=m
+CONFIG_I2C_QUP=m
+CONFIG_I2C_SYNQUACER=m
+CONFIG_I2C_THUNDERX=m
+CONFIG_I2C_XGENE_SLIMPRO=m
+CONFIG_I2C_XLP9XX=m
+CONFIG_IMX_REMOTEPROC=m
+CONFIG_IMX_SCU_PD=y
+CONFIG_IMX_SCU_SOC=y
+CONFIG_IMX_SCU=y
+# CONFIG_IMX_THERMAL is not set
+CONFIG_INA2XX_ADC=m
+CONFIG_INDIRECT_PIO=y
+CONFIG_INPUT_HISI_POWERKEY=y
+# CONFIG_INPUT_PM8941_PWRKEY is not set
+CONFIG_INTERCONNECT=m
+CONFIG_INTERCONNECT_QCOM_SDM845=m
+CONFIG_INTERCONNECT_QCOM=y
+# CONFIG_ISCSI_IBFT is not set
+CONFIG_K3_DMA=m
+CONFIG_KEXEC_SIG=y
+CONFIG_KEYBOARD_SNVS_PWRKEY=m
+CONFIG_KVM=y
+CONFIG_LIBNVDIMM=m
+# CONFIG_LIQUIDIO is not set
+CONFIG_MAX77620_THERMAL=m
+CONFIG_MAX77620_WATCHDOG=y
+CONFIG_MDIO_HISI_FEMAC=m
+CONFIG_MDIO_THUNDER=m
+CONFIG_MDIO_XGENE=m
+# CONFIG_MDM_GCC_9615 is not set
+# CONFIG_MDM_LCC_9615 is not set
+CONFIG_MESON_GXBB_WATCHDOG=m
+CONFIG_MESON_GXL_PHY=m
+CONFIG_MESON_GX_PM_DOMAINS=y
+# CONFIG_MESON_WATCHDOG is not set
+CONFIG_MFD_HI6421_PMIC=m
+CONFIG_MFD_HI655X_PMIC=m
+CONFIG_MFD_MAX77620=y
+CONFIG_MFD_QCOM_RPM=m
+CONFIG_MFD_ROHM_BD718XX=y
+CONFIG_MFD_SPMI_PMIC=m
+CONFIG_MFD_TPS65086=m
+CONFIG_MLXBF_BOOTCTL=m
+CONFIG_MLXBF_TMFIFO=m
+CONFIG_MMC_CAVIUM_THUNDERX=m
+CONFIG_MMC_MESON_GX=m
+CONFIG_MMC_QCOM_DML=y
+CONFIG_MMC_SDHCI_F_SDH30=m
+CONFIG_MMC_SDHCI_MSM=m
+CONFIG_MSM_GCC_8660=y
+CONFIG_MSM_GCC_8916=y
+CONFIG_MSM_GCC_8960=y
+CONFIG_MSM_GCC_8974=y
+CONFIG_MSM_GCC_8996=y
+CONFIG_MSM_GCC_8998=y
+CONFIG_MSM_GPUCC_8998=m
+# CONFIG_MSM_LCC_8960 is not set
+CONFIG_MSM_MMCC_8960=m
+CONFIG_MSM_MMCC_8974=m
+CONFIG_MSM_MMCC_8996=m
+CONFIG_MV_XOR_V2=y
+CONFIG_ND_BLK=m
+CONFIG_ND_BTT=m
+CONFIG_NET_SB1000=y
+CONFIG_NET_VENDOR_SOCIONEXT=y
+CONFIG_NET_XGENE=m
+CONFIG_NET_XGENE_V2=m
+CONFIG_NODES_SHIFT=9
+CONFIG_NR_CPUS=256
+CONFIG_NR_CPUS=4096
+CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y
+CONFIG_NUMA_BALANCING=y
+CONFIG_NUMA=y
+CONFIG_NVMEM_IMX_OCOTP_SCU=m
+CONFIG_NVMEM_ZYNQMP=y
+CONFIG_OCTEONTX2_AF=m
+CONFIG_PCC=y
+# CONFIG_PCIE_AL is not set
+CONFIG_PCIE_HISI_STB=y
+CONFIG_PCIE_KIRIN=y
+CONFIG_PCIE_QCOM=y
+CONFIG_PCIE_TEGRA194=m
+CONFIG_PCIE_XILINX_NWL=y
+CONFIG_PCIE_XILINX=y
+CONFIG_PCI_HISI=y
+CONFIG_PCI_HOST_THUNDER_ECAM=y
+CONFIG_PCI_HOST_THUNDER_PEM=y
+CONFIG_PCI_LAYERSCAPE=y
+CONFIG_PCI_XGENE_MSI=y
+CONFIG_PCI_XGENE=y
+CONFIG_PHY_FSL_IMX8MQ_USB=m
+CONFIG_PHY_HI3660_USB=m
+CONFIG_PHY_HI6220_USB=m
+CONFIG_PHY_HISI_INNO_USB2=m
+CONFIG_PHY_HISTB_COMBPHY=m
+CONFIG_PHY_MESON_GXL_USB2=m
+CONFIG_PHY_MIXEL_MIPI_DPHY=m
+CONFIG_PHY_MVEBU_A3700_COMPHY=m
+CONFIG_PHY_MVEBU_A3700_UTMI=m
+CONFIG_PHY_MVEBU_CP110_COMPHY=m
+# CONFIG_PHY_QCOM_APQ8064_SATA is not set
+CONFIG_PHY_QCOM_PCIE2=m
+CONFIG_PHY_QCOM_QMP=m
+CONFIG_PHY_QCOM_QUSB2=m
+CONFIG_PHY_QCOM_USB_HSIC=m
+CONFIG_PHY_QCOM_USB_HS=m
+CONFIG_PHY_TEGRA194_P2U=m
+CONFIG_PHY_XGENE=y
+CONFIG_PINCTRL_AMD=y
+# CONFIG_PINCTRL_APQ8064 is not set
+# CONFIG_PINCTRL_APQ8084 is not set
+CONFIG_PINCTRL_IMX8MM=y
+CONFIG_PINCTRL_IMX8MN=y
+CONFIG_PINCTRL_IMX8MQ=y
+CONFIG_PINCTRL_IMX8QM=y
+CONFIG_PINCTRL_IMX8QXP=y
+CONFIG_PINCTRL_MAX77620=y
+# CONFIG_PINCTRL_MDM9615 is not set
+CONFIG_PINCTRL_MESON_A1=y
+CONFIG_PINCTRL_MESON_AXG=y
+CONFIG_PINCTRL_MESON_G12A=y
+CONFIG_PINCTRL_MESON_GXBB=y
+CONFIG_PINCTRL_MESON_GXL=y
+# CONFIG_PINCTRL_MSM8660 is not set
+CONFIG_PINCTRL_MSM8916=y
+# CONFIG_PINCTRL_MSM8960 is not set
+CONFIG_PINCTRL_MSM8996=y
+# CONFIG_PINCTRL_MSM8X74 is not set
+CONFIG_PINCTRL_MSM=y
+CONFIG_PINCTRL_QCOM_SPMI_PMIC=y
+# CONFIG_PINCTRL_QCOM_SSBI_PMIC is not set
+CONFIG_PINCTRL_QDF2XXX=y
+CONFIG_PINCTRL_SDM845=y
+CONFIG_PINCTRL_SUN50I_A64_R=y
+CONFIG_PINCTRL_SUN50I_A64=y
+CONFIG_PINCTRL_SUN50I_H5=y
+CONFIG_PINCTRL_SUN50I_H6_R=y
+CONFIG_PINCTRL_SUN50I_H6=y
+CONFIG_PM8916_WATCHDOG=m
+# CONFIG_PMIC_OPREGION is not set
+CONFIG_POWER_RESET_HISI=y
+CONFIG_POWER_RESET_MSM=y
+CONFIG_POWER_RESET_QCOM_PON=m
+CONFIG_POWER_RESET_XGENE=y
+CONFIG_PTP_1588_CLOCK_QORIQ=m
+CONFIG_QCOM_AOSS_QMP=m
+CONFIG_QCOM_APCS_IPC=m
+CONFIG_QCOM_APR=m
+CONFIG_QCOM_BAM_DMA=y
+CONFIG_QCOM_CLK_RPMH=y
+CONFIG_QCOM_CLK_RPM=m
+CONFIG_QCOM_CLK_SMD_RPM=m
+CONFIG_QCOM_COINCELL=m
+CONFIG_QCOM_COMMAND_DB=y
+# CONFIG_QCOM_EBI2 is not set
+CONFIG_QCOM_EMAC=m
+# CONFIG_QCOM_FALKOR_ERRATUM_1003 is not set
+CONFIG_QCOM_FALKOR_ERRATUM_1003=y
+CONFIG_QCOM_FALKOR_ERRATUM_1009=y
+CONFIG_QCOM_FALKOR_ERRATUM_E1041=y
+CONFIG_QCOM_GENI_SE=y
+CONFIG_QCOM_GLINK_SSR=m
+CONFIG_QCOM_GSBI=y
+CONFIG_QCOM_HIDMA=m
+CONFIG_QCOM_HIDMA_MGMT=m
+CONFIG_QCOM_IOMMU=y
+CONFIG_QCOM_IRQ_COMBINER=y
+CONFIG_QCOM_L2_PMU=y
+CONFIG_QCOM_L3_PMU=y
+CONFIG_QCOM_LLCC=m
+CONFIG_QCOM_MDT_LOADER=m
+CONFIG_QCOM_Q6V5_ADSP=m
+CONFIG_QCOM_Q6V5_MSS=m
+CONFIG_QCOM_Q6V5_PAS=m
+CONFIG_QCOM_Q6V5_WCSS=m
+CONFIG_QCOM_QDF2400_ERRATUM_0065=y
+CONFIG_QCOM_QFPROM=m
+CONFIG_QCOM_QMI_HELPERS=m
+CONFIG_QCOM_RPMHPD=y
+CONFIG_QCOM_RPMH=y
+CONFIG_QCOM_SDM845_LLCC=m
+CONFIG_QCOM_SMD_RPM=m
+CONFIG_QCOM_SMEM=m
+CONFIG_QCOM_SMP2P=m
+CONFIG_QCOM_SMSM=m
+# CONFIG_QCOM_SOCINFO is not set
+CONFIG_QCOM_SPMI_IADC=m
+CONFIG_QCOM_SPMI_TEMP_ALARM=m
+CONFIG_QCOM_SPMI_VADC=m
+CONFIG_QCOM_SYSMON=m
+CONFIG_QCOM_TSENS=m
+CONFIG_QCOM_WCNSS_CTRL=m
+CONFIG_QCOM_WCNSS_PIL=m
+CONFIG_QCOM_WDT=m
+CONFIG_QORIQ_THERMAL=m
+CONFIG_RANDOMIZE_MODULE_REGION_FULL=y
+CONFIG_REGMAP_SPMI=y
+CONFIG_REGULATOR_BD718XX=m
+CONFIG_REGULATOR_HI6421=m
+CONFIG_REGULATOR_HI6421V530=m
+CONFIG_REGULATOR_HI655X=m
+CONFIG_REGULATOR_MAX77620=y
+CONFIG_REGULATOR_QCOM_RPMH=y
+CONFIG_REGULATOR_QCOM_RPM=m
+CONFIG_REGULATOR_QCOM_SMD_RPM=m
+CONFIG_REGULATOR_QCOM_SPMI=m
+CONFIG_REGULATOR_TPS65086=m
+CONFIG_RESET_HISI=y
+CONFIG_RESET_QCOM_AOSS=y
+CONFIG_RODATA_FULL_DEFAULT_ENABLED=y
+CONFIG_RPMSG=m
+CONFIG_RPMSG_QCOM_GLINK_RPM=m
+CONFIG_RPMSG_QCOM_SMD=m
+CONFIG_RTC_DRV_EFI=y
+CONFIG_RTC_DRV_FSL_FTM_ALARM=m
+# CONFIG_RTC_DRV_PL030 is not set
+CONFIG_RTC_DRV_XGENE=m
+CONFIG_RTC_DRV_ZYNQMP=m
+CONFIG_SATA_AHCI_SEATTLE=m
+CONFIG_SCSI_UFS_HISI=m
+CONFIG_SDM_CAMCC_845=m
+CONFIG_SDM_DISPCC_845=m
+CONFIG_SDM_GCC_845=m
+CONFIG_SDM_GPUCC_845=m
+CONFIG_SDM_LPASSCC_845=m
+CONFIG_SDM_VIDEOCC_845=m
+CONFIG_SENSORS_XGENE=m
+# CONFIG_SERIAL_AMBA_PL010 is not set
+CONFIG_SERIAL_MSM_CONSOLE=y
+CONFIG_SERIAL_MSM=y
+CONFIG_SERIAL_QCOM_GENI_CONSOLE=y
+CONFIG_SERIAL_QCOM_GENI=y
+CONFIG_SERIAL_TEGRA_TCU_CONSOLE=y
+CONFIG_SERIAL_TEGRA_TCU=y
+CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y
+CONFIG_SERIAL_XILINX_PS_UART=y
+CONFIG_SETEND_EMULATION=y
+CONFIG_SLIMBUS=m
+CONFIG_SLIM_QCOM_CTRL=m
+CONFIG_SLIM_QCOM_NGD_CTRL=m
+CONFIG_SM_GCC_8150=y
+# CONFIG_SND_IMX_SOC is not set
+# CONFIG_SND_KIRKWOOD_SOC is not set
+CONFIG_SND_MESON_AXG_FRDDR=m
+CONFIG_SND_MESON_AXG_PDM=m
+CONFIG_SND_MESON_AXG_SOUND_CARD=m
+CONFIG_SND_MESON_AXG_SPDIFIN=m
+CONFIG_SND_MESON_AXG_SPDIFOUT=m
+CONFIG_SND_MESON_AXG_TDMIN=m
+CONFIG_SND_MESON_AXG_TDMOUT=m
+CONFIG_SND_MESON_AXG_TODDR=m
+CONFIG_SND_SOC_APQ8016_SBC=m
+CONFIG_SND_SOC_FSL_AUDMIX=m
+CONFIG_SND_SOC_IMX_AUDMIX=m
+CONFIG_SND_SOC_MSM8916_WCD_ANALOG=m
+CONFIG_SND_SOC_MSM8916_WCD_DIGITAL=m
+CONFIG_SND_SOC_MSM8996=m
+CONFIG_SND_SOC_QCOM=m
+CONFIG_SND_SOC_QDSP6=m
+CONFIG_SND_SOC_SDM845=m
+# CONFIG_SND_SOC_STORM is not set
+CONFIG_SND_SOC_TEGRA=m
+CONFIG_SND_SOC_TEGRA_MAX98090=m
+CONFIG_SND_SOC_TEGRA_RT5640=m
+CONFIG_SND_SOC_TEGRA_RT5677=m
+CONFIG_SND_SOC_TEGRA_SGTL5000=m
+# CONFIG_SND_SOC_TEGRA_WM8753 is not set
+CONFIG_SND_SOC_WCD9335=m
+CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER=m
+CONFIG_SND_SOC_XILINX_I2S=m
+CONFIG_SND_SOC_XILINX_SPDIF=m
+CONFIG_SND_SUN50I_CODEC_ANALOG=m
+CONFIG_SNI_NETSEC=m
+CONFIG_SOCIONEXT_SYNQUACER_PREITS=y
+CONFIG_SOC_TEGRA_FLOWCTRL=y
+CONFIG_SPARSEMEM_VMEMMAP=y
+CONFIG_SPI_FSL_DSPI=m
+CONFIG_SPI_HISI_SFC=m
+# CONFIG_SPI_QCOM_GENI is not set
+CONFIG_SPI_QCOM_QSPI=m
+CONFIG_SPI_QUP=m
+CONFIG_SPI_SYNQUACER=m
+CONFIG_SPI_THUNDERX=m
+CONFIG_SPI_XLP=m
+CONFIG_SPI_ZYNQMP_GQSPI=m
+CONFIG_SPMI_MSM_PMIC_ARB=y
+CONFIG_SPMI=y
+CONFIG_STUB_CLK_HI3660=y
+CONFIG_STUB_CLK_HI6220=y
+# CONFIG_SUN4I_EMAC is not set
+CONFIG_SUN50I_A64_CCU=y
+CONFIG_SUN50I_DE2_BUS=y
+CONFIG_SUN50I_ERRATUM_UNKNOWN1=y
+CONFIG_SUN50I_H6_CCU=y
+CONFIG_SUN50I_H6_R_CCU=y
+CONFIG_SWP_EMULATION=y
+# CONFIG_SYS_HYPERVISOR is not set
+CONFIG_TEGRA210_ADMA=m
+CONFIG_TEGRA_ACONNECT=m
+CONFIG_TEGRA_BPMP_THERMAL=m
+CONFIG_TEGRA_BPMP=y
+CONFIG_TEGRA_GMI=m
+CONFIG_TEGRA_HSP_MBOX=y
+CONFIG_THUNDER_NIC_BGX=m
+CONFIG_THUNDER_NIC_PF=m
+CONFIG_THUNDER_NIC_RGX=m
+CONFIG_THUNDER_NIC_VF=m
+CONFIG_THUNDERX2_PMU=m
+CONFIG_USB_DWC3_QCOM=m
+CONFIG_USB_EHCI_FSL=m
+# CONFIG_USB_EHCI_MXC is not set
+# CONFIG_USB_FSL_USB2 is not set
+# CONFIG_USB_MXS_PHY is not set
+# CONFIG_USB_SPEEDTOUCH is not set
+CONFIG_VDSO=y
+CONFIG_VFIO_PLATFORM_AMDXGBE_RESET=m
+# CONFIG_VGA_CONSOLE is not set
+CONFIG_VIDEO_QCOM_CAMSS=m
+CONFIG_VIDEO_QCOM_VENUS=m
+CONFIG_VMAP_STACK=y
+# CONFIG_XGENE_DMA is not set
+CONFIG_XGENE_PMU=y
+CONFIG_XGENE_SLIMPRO_MBOX=m
+CONFIG_XILINX_SDFEC=m
+CONFIG_XILINX_XADC=m
+CONFIG_XILINX_ZYNQMP_DMA=m
+CONFIG_ZYNQMP_FIRMWARE=y
+CONFIG_ZYNQMP_IPI_MBOX=y
+CONFIG_ZYNQMP_PM_DOMAINS=y
+CONFIG_ZYNQMP_POWER=y
+CRYPTO_CHACHA20_NEON=m
+CRYPTO_CRCT10DIF_ARM64_CE=m
diff --git a/arch/arm64/config.sh b/arch/arm64/config.sh
new file mode 100644
index 0000000..676ce59
--- /dev/null
+++ b/arch/arm64/config.sh
@@ -0,0 +1,8 @@
+# $Id$
+#
+# This file is sourced AFTER defaults/config.sh; generic options should be set there.
+# Arch-specific options that normally shouldn't be changed.
+#
+KERNEL_MAKE_DIRECTIVE="Image"
+KERNEL_MAKE_DIRECTIVE_2=""
+KERNEL_BINARY="arch/arm64/boot/Image"
diff --git a/arch/arm64/modules_load b/arch/arm64/modules_load
new file mode 100644
index 0000000..4e2994c
--- /dev/null
+++ b/arch/arm64/modules_load
@@ -0,0 +1,11 @@
+# arm64 module groups for genkernel initramfs auto-loading
+# (extending defaults/modules_load)
+
+# Hardware (IDE/SCSI/SATA/NVMe)
+MODULES_SATA+=" ahci_xgene"
+
+# Hardware (Network)
+MODULES_NET+=" xgene_enet"
+
+# Crypto
+MODULES_CRYPTO+=" aes-ce-blk"
diff --git a/arch/ia64/config.sh b/arch/ia64/config.sh
index fc63648..fc63648 100755..100644
--- a/arch/ia64/config.sh
+++ b/arch/ia64/config.sh
diff --git a/arch/ia64/modules_load b/arch/ia64/modules_load
index 6cbc6a9..35d1bf0 100644
--- a/arch/ia64/modules_load
+++ b/arch/ia64/modules_load
@@ -1,39 +1,2 @@
-# Module groups for genkernel initramfs auto-loading
-
-# RAID
-MODULES_ATARAID="ataraid pdcraid hptraid"
-MODULES_DMRAID="dm-mod dm-mirror dm-crypt"
-MODULES_MDADM="md-mod dm-mod dm-snapshot dm-mirror dm-bbr dm-raid dm-crypt raid0 raid1 raid456 raid5 raid6 raid10 linear multipath async_raid6_recov async_pq libcrc32c raid6_pq async_tx async_memcpy async_xor"
-MODULES_LVM="dm-mod dm-bio-prison dm-bufio dm-cache dm-cache-smq dm-crypt dm-delay dm-era dm-flakey dm-integrity dm-log dm-log-userspace dm-log-writes dm-mirror dm-raid dm-region-hash dm-snapshot dm-switch dm-thin-pool dm-verity dm-zero dm-persistent-data ${MODULES_MDADM}"
-MODULES_MULTIPATH="dm-mod dm-multipath dm-round-robin dm-rdac dm-queue-length dm-service-time"
-
-# Hardware (IDE/SCSI/SATA/NVMe)
-MODULES_NVME="nvme-core nvme nvme-fabrics nvme-rdma nvme-loop nvme-fc"
-MODULES_PATA="pata_mpiix pata_pdc2027x pata_radisys pata_sil680 pata_rz1000 pata_efar pata_cmd64x pata_hpt366 pata_hpt37x pata_hpt3x3 pata_hpt3x2n pata_optidma pata_it821x pata_artop pata_oldpiix pata_cypress pata_platform pata_serverworks pata_legacy pata_ns87410 pata_ns87415 pata_pcmcia pata_isapnp pata_it8213 pata_ali pata_amd pata_opti pata_atiixp pata_triflex pata_pdc202xx_old pata_sc1200 pata_qdi pata_netcell pata_sis pata_hpt3x2n pata_marvell pata_jmicron pata_via pata_cs5520 pata_cs5530 pata_cs5535 pata_sl82c105 libata"
-MODULES_SATA="sata_promise sata_sil sata_sil24 sata_svw sata_via sata_nv sata_sx4 sata_sis sata_uli sata_vsc sata_qstor ahci libata ata_piix sata_mv sata_inic162x pdc_adma"
-MODULES_SCSI="sd_mod sg sr_mod aic79xx aic7xxx aic7xxx_old arcmsr BusLogic ncr53c8xx NCR53c406a initio advansys aha1740 aha1542 aha152x dtc fdomain gdth pas16 pci2220i pci2000 psi240i qlogicfas qlogicfc qlogicisp qlogicpti seagate t128 u14-34f ultrastor wd7000 sym53c8xx dmx3191d imm in2000 ips qla1280 sim710 sym53c416 dc395x atp870u mptbase mptscsih mptspi mptfc mptsas 3w-sas 3w-xxxx 3w-9xxx cpqarray cciss hpsa DAC960 sx8 aacraid megaraid megaraid_mbox megaraid_mm megaraid_sas qla2xxx lpfc scsi_transport_fc aic94xx mpt2sas mpt3sas virtio_scsi virtio_blk"
-MODULES_WAITSCAN="scsi_wait_scan"
-MODULES_BLOCK="sdhci_acpi sdhci_pci"
-
-# Hardware (Network)
-MODULES_NET="e1000 tg3 broadcom bcm_phy_lib virtio_net"
-
-# iSCSI support
-MODULES_ISCSI="scsi_transport_iscsi libiscsi iscsi_tcp"
-
-# Hardware (Pluggable)
-MODULES_FIREWIRE="ieee1394 ohci1394 sbp2"
-MODULES_PCMCIA="pcmcia pcmcia_core yenta_socket pd6729 i82092 i82365 tcic ds ide-cs firmware_class"
-MODULES_USB="ehci-pci ehci-hcd uhci usb-ohci hid usb-storage uas uhci-hcd ohci-hcd xhci-hcd xhci-pci xhci-plat usbhid hid-generic sl811-hcd hid-a4tech hid-apple hid-belkin hid-cherry hid-chicony hid-cypress hid-dummy hid-ezkey hid-gyration hid-logitech hid-logitech-dj hid-microsoft hid-monterey hid-petalynx hid-pl hid-samsung hid-sony hid-sunplus"
-
-# Filesystems
-MODULES_FS="ext2 ext3 ext4 btrfs reiserfs jfs nfs xfs zfs f2fs fuse loop squashfs aufs overlay cramfs configfs fscrypto efivarfs msdos qemu_fw_cfg"
-
-# Crypto
-MODULES_CRYPTO="sha256_generic cbc crc32c crc32c_generic crc32 crc32_generic aes_generic xts"
-
-# Hyper-V
-MODULES_HYPERV="hv_utils hv_vmbus hv_balloon hyperv_keyboard hv_netvsc hid_hyperv hv_utils hyperv_fb hv_storvsc"
-
-# Virtio
-MODULES_VIRTIO="virtio_scsi virtio_blk virtio_console virtio-rng virtio virtio_balloon virtio_input virtio_ring virtio_pci virtio_mmio virtio_crypto virtio_net"
+# ia64 module groups for genkernel initramfs auto-loading
+# (extending defaults/modules_load)
diff --git a/arch/mips/config.sh b/arch/mips/config.sh
index 8b8374a..50757e3 100755..100644
--- a/arch/mips/config.sh
+++ b/arch/mips/config.sh
@@ -8,12 +8,10 @@ KERNEL_MAKE_DIRECTIVE_2=""
KERNEL_BINARY="./vmlinux"
# Initrd/Initramfs Options
-USECOLOR="yes"
-NOINITRDMODULES="yes"
-BUSYBOX=1
-DMRAID=0
-DISKLABEL=0
+RAMDISKMODULES="no"
+BUSYBOX="yes"
+DMRAID="no"
# genkernel on mips is only used for LiveCDs && netboots. Catalyst
# will know where to get the kernels at.
-CMD_INSTALL=0
+INSTALL="no"
diff --git a/arch/mips/modules_load b/arch/mips/modules_load
index dcdef55..ee13325 100644
--- a/arch/mips/modules_load
+++ b/arch/mips/modules_load
@@ -1,39 +1,5 @@
-# Module groups for genkernel initramfs auto-loading
-
-# RAID
-MODULES_ATARAID="ataraid pdcraid hptraid"
-MODULES_DMRAID="dm-mod dm-mirror dm-crypt"
-MODULES_MDADM="md-mod dm-mod dm-snapshot dm-mirror dm-bbr dm-raid dm-crypt raid0 raid1 raid456 raid5 raid6 raid10 linear multipath async_raid6_recov async_pq libcrc32c raid6_pq async_tx async_memcpy async_xor"
-MODULES_LVM="dm-mod dm-bio-prison dm-bufio dm-cache dm-cache-smq dm-crypt dm-delay dm-era dm-flakey dm-integrity dm-log dm-log-userspace dm-log-writes dm-mirror dm-raid dm-region-hash dm-snapshot dm-switch dm-thin-pool dm-verity dm-zero dm-persistent-data ${MODULES_MDADM}"
-MODULES_MULTIPATH="dm-mod dm-multipath dm-round-robin dm-rdac dm-queue-length dm-service-time"
-
-# Hardware (IDE/SCSI/SATA/NVMe)
-MODULES_NVME="nvme-core nvme nvme-fabrics nvme-rdma nvme-loop nvme-fc"
-MODULES_PATA="pata_mpiix pata_pdc2027x pata_radisys pata_sil680 pata_rz1000 pata_efar pata_cmd64x pata_hpt366 pata_hpt37x pata_hpt3x3 pata_hpt3x2n pata_optidma pata_it821x pata_artop pata_oldpiix pata_cypress pata_platform pata_serverworks pata_legacy pata_ns87410 pata_ns87415 pata_pcmcia pata_isapnp pata_it8213 pata_ali pata_amd pata_opti pata_atiixp pata_triflex pata_pdc202xx_old pata_sc1200 pata_qdi pata_netcell pata_sis pata_hpt3x2n pata_marvell pata_jmicron pata_via pata_cs5520 pata_cs5530 pata_cs5535 pata_sl82c105 libata"
-MODULES_SATA="sata_promise sata_sil sata_sil24 sata_svw sata_via sata_nv sata_sx4 sata_sis sata_uli sata_vsc sata_qstor ahci libata ata_piix sata_mv sata_inic162x pdc_adma"
-MODULES_SCSI="sd_mod sg sr_mod aic79xx aic7xxx aic7xxx_old arcmsr BusLogic ncr53c8xx NCR53c406a initio advansys aha1740 aha1542 aha152x dtc fdomain gdth pas16 pci2220i pci2000 psi240i qlogicfas qlogicfc qlogicisp qlogicpti seagate t128 u14-34f ultrastor wd7000 sym53c8xx dmx3191d imm in2000 ips qla1280 sim710 sym53c416 dc395x atp870u mptbase mptscsih mptspi mptfc mptsas 3w-sas 3w-xxxx 3w-9xxx cpqarray cciss hpsa DAC960 sx8 aacraid megaraid megaraid_mbox megaraid_mm megaraid_sas qla2xxx lpfc scsi_transport_fc aic94xx mpt2sas mpt3sas virtio_scsi virtio_blk"
-MODULES_WAITSCAN="scsi_wait_scan"
-MODULES_BLOCK="sdhci_pci"
-
-# Hardware (Network)
-MODULES_NET="e1000 tg3 broadcom bcm_phy_lib virtio_net"
-
-# iSCSI support
-MODULES_ISCSI="scsi_transport_iscsi libiscsi iscsi_tcp"
-
-# Hardware (Pluggable)
-MODULES_FIREWIRE="ieee1394 ohci1394 sbp2"
-MODULES_PCMCIA="pcmcia pcmcia_core yenta_socket pd6729 i82092 i82365 tcic ds ide-cs firmware_class"
-MODULES_USB="ehci-pci ehci-hcd uhci usb-ohci hid usb-storage uas uhci-hcd ohci-hcd xhci-hcd xhci-pci xhci-plat usbhid hid-generic sl811-hcd hid-a4tech hid-apple hid-belkin hid-cherry hid-chicony hid-cypress hid-dummy hid-ezkey hid-gyration hid-logitech hid-logitech-dj hid-microsoft hid-monterey hid-petalynx hid-pl hid-samsung hid-sony hid-sunplus"
-
-# Filesystems
-MODULES_FS="ext2 ext3 ext4 btrfs reiserfs jfs nfs xfs zfs f2fs fuse loop squashfs aufs overlay cramfs configfs fscrypto efivarfs msdos qemu_fw_cfg"
+# mips module groups for genkernel initramfs auto-loading
+# (extending defaults/modules_load)
# Crypto
-MODULES_CRYPTO="sha256_generic cbc crc32c crc32c_generic crc32 crc32_generic crc32-mips aes_generic xts"
-
-# Hyper-V
-MODULES_HYPERV="hv_utils hv_vmbus hv_balloon hyperv_keyboard hv_netvsc hid_hyperv hv_utils hyperv_fb hv_storvsc"
-
-# Virtio
-MODULES_VIRTIO="virtio_scsi virtio_blk virtio_console virtio-rng virtio virtio_balloon virtio_input virtio_ring virtio_pci virtio_mmio virtio_crypto virtio_net"
+MODULES_CRYPTO+=" crc32-mips"
diff --git a/arch/parisc/config.sh b/arch/parisc/config.sh
index 5793af2..5793af2 100755..100644
--- a/arch/parisc/config.sh
+++ b/arch/parisc/config.sh
diff --git a/arch/parisc/modules_load b/arch/parisc/modules_load
index 5bcd5d9..24b0e2a 100644
--- a/arch/parisc/modules_load
+++ b/arch/parisc/modules_load
@@ -1,39 +1,2 @@
-# Module groups for genkernel initramfs auto-loading
-
-# RAID
-MODULES_ATARAID="ataraid pdcraid hptraid"
-MODULES_DMRAID="dm-mod dm-mirror dm-crypt"
-MODULES_MDADM="md-mod dm-mod dm-snapshot dm-mirror dm-bbr dm-raid dm-crypt raid0 raid1 raid456 raid5 raid6 raid10 linear multipath async_raid6_recov async_pq libcrc32c raid6_pq async_tx async_memcpy async_xor"
-MODULES_LVM="dm-mod dm-bio-prison dm-bufio dm-cache dm-cache-smq dm-crypt dm-delay dm-era dm-flakey dm-integrity dm-log dm-log-userspace dm-log-writes dm-mirror dm-raid dm-region-hash dm-snapshot dm-switch dm-thin-pool dm-verity dm-zero dm-persistent-data ${MODULES_MDADM}"
-MODULES_MULTIPATH="dm-mod dm-multipath dm-round-robin dm-rdac dm-queue-length dm-service-time"
-
-# Hardware (IDE/SCSI/SATA/NVMe)
-MODULES_NVME="nvme-core nvme nvme-fabrics nvme-rdma nvme-loop nvme-fc"
-MODULES_PATA="pata_mpiix pata_pdc2027x pata_radisys pata_sil680 pata_rz1000 pata_efar pata_cmd64x pata_hpt366 pata_hpt37x pata_hpt3x3 pata_hpt3x2n pata_optidma pata_it821x pata_artop pata_oldpiix pata_cypress pata_platform pata_serverworks pata_legacy pata_ns87410 pata_ns87415 pata_pcmcia pata_isapnp pata_it8213 pata_ali pata_amd pata_opti pata_atiixp pata_triflex pata_pdc202xx_old pata_sc1200 pata_qdi pata_netcell pata_sis pata_hpt3x2n pata_marvell pata_jmicron pata_via pata_cs5520 pata_cs5530 pata_cs5535 pata_sl82c105 libata"
-MODULES_SATA="sata_promise sata_sil sata_sil24 sata_svw sata_via sata_nv sata_sx4 sata_sis sata_uli sata_vsc sata_qstor ahci libata ata_piix sata_mv sata_inic162x pdc_adma"
-MODULES_SCSI="sd_mod sg sr_mod aic79xx aic7xxx aic7xxx_old arcmsr BusLogic ncr53c8xx NCR53c406a initio advansys aha1740 aha1542 aha152x dtc fdomain gdth pas16 pci2220i pci2000 psi240i qlogicfas qlogicfc qlogicisp qlogicpti seagate t128 u14-34f ultrastor wd7000 sym53c8xx dmx3191d imm in2000 ips qla1280 sim710 sym53c416 dc395x atp870u mptbase mptscsih mptspi mptfc mptsas 3w-sas 3w-xxxx 3w-9xxx cpqarray cciss hpsa DAC960 sx8 aacraid megaraid megaraid_mbox megaraid_mm megaraid_sas qla2xxx lpfc scsi_transport_fc aic94xx mpt2sas mpt3sas virtio_scsi virtio_blk"
-MODULES_WAITSCAN="scsi_wait_scan"
-MODULES_BLOCK="sdhci_pci"
-
-# Hardware (Network)
-MODULES_NET="e1000 tg3 broadcom bcm_phy_lib virtio_net"
-
-# iSCSI support
-MODULES_ISCSI="scsi_transport_iscsi libiscsi iscsi_tcp"
-
-# Hardware (Pluggable)
-MODULES_FIREWIRE="ieee1394 ohci1394 sbp2"
-MODULES_PCMCIA="pcmcia pcmcia_core yenta_socket pd6729 i82092 i82365 tcic ds ide-cs firmware_class"
-MODULES_USB="ehci-pci ehci-hcd uhci usb-ohci hid usb-storage uas uhci-hcd ohci-hcd xhci-hcd xhci-pci xhci-plat usbhid hid-generic sl811-hcd hid-a4tech hid-apple hid-belkin hid-cherry hid-chicony hid-cypress hid-dummy hid-ezkey hid-gyration hid-logitech hid-logitech-dj hid-microsoft hid-monterey hid-petalynx hid-pl hid-samsung hid-sony hid-sunplus"
-
-# Filesystems
-MODULES_FS="ext2 ext3 ext4 btrfs reiserfs jfs nfs xfs zfs f2fs fuse loop squashfs aufs overlay cramfs configfs fscrypto efivarfs msdos qemu_fw_cfg"
-
-# Crypto
-MODULES_CRYPTO="sha256_generic cbc crc32c crc32c_generic crc32 crc32_generic aes_generic xts"
-
-# Hyper-V
-MODULES_HYPERV="hv_utils hv_vmbus hv_balloon hyperv_keyboard hv_netvsc hid_hyperv hv_utils hyperv_fb hv_storvsc"
-
-# Virtio
-MODULES_VIRTIO="virtio_scsi virtio_blk virtio_console virtio-rng virtio virtio_balloon virtio_input virtio_ring virtio_pci virtio_mmio virtio_crypto virtio_net"
+# parisc module groups for genkernel initramfs auto-loading
+# (extending defaults/modules_load)
diff --git a/arch/parisc64/config.sh b/arch/parisc64/config.sh
index 5793af2..5793af2 100755..100644
--- a/arch/parisc64/config.sh
+++ b/arch/parisc64/config.sh
diff --git a/arch/parisc64/modules_load b/arch/parisc64/modules_load
index d874370..9c9f66f 100644
--- a/arch/parisc64/modules_load
+++ b/arch/parisc64/modules_load
@@ -1,38 +1,2 @@
-# Module groups for genkernel initramfs auto-loading
-
-# RAID
-MODULES_ATARAID="ataraid pdcraid hptraid"
-MODULES_DMRAID="dm-mod dm-mirror dm-crypt"
-MODULES_MDADM="md-mod dm-mod dm-snapshot dm-mirror dm-bbr dm-raid dm-crypt raid0 raid1 raid456 raid5 raid6 raid10 linear multipath async_raid6_recov async_pq libcrc32c raid6_pq async_tx async_memcpy async_xor"
-MODULES_LVM="dm-mod dm-bio-prison dm-bufio dm-cache dm-cache-smq dm-crypt dm-delay dm-era dm-flakey dm-integrity dm-log dm-log-userspace dm-log-writes dm-mirror dm-raid dm-region-hash dm-snapshot dm-switch dm-thin-pool dm-verity dm-zero dm-persistent-data ${MODULES_MDADM}"
-MODULES_MULTIPATH="dm-mod dm-multipath dm-round-robin dm-rdac dm-queue-length dm-service-time"
-
-# Hardware (IDE/SCSI/SATA/NVMe)
-MODULES_NVME="nvme-core nvme nvme-fabrics nvme-rdma nvme-loop nvme-fc"
-MODULES_PATA="pata_mpiix pata_pdc2027x pata_radisys pata_sil680 pata_rz1000 pata_efar pata_cmd64x pata_hpt366 pata_hpt37x pata_hpt3x3 pata_hpt3x2n pata_optidma pata_it821x pata_artop pata_oldpiix pata_cypress pata_platform pata_serverworks pata_legacy pata_ns87410 pata_ns87415 pata_pcmcia pata_isapnp pata_it8213 pata_ali pata_amd pata_opti pata_atiixp pata_triflex pata_pdc202xx_old pata_sc1200 pata_qdi pata_netcell pata_sis pata_hpt3x2n pata_marvell pata_jmicron pata_via pata_cs5520 pata_cs5530 pata_cs5535 pata_sl82c105 libata"
-MODULES_SATA="sata_promise sata_sil sata_sil24 sata_svw sata_via sata_nv sata_sx4 sata_sis sata_uli sata_vsc sata_qstor ahci libata ata_piix sata_mv sata_inic162x pdc_adma"
-MODULES_SCSI="sd_mod sg sr_mod aic79xx aic7xxx aic7xxx_old arcmsr BusLogic ncr53c8xx NCR53c406a initio advansys aha1740 aha1542 aha152x dtc fdomain gdth pas16 pci2220i pci2000 psi240i qlogicfas qlogicfc qlogicisp qlogicpti seagate t128 u14-34f ultrastor wd7000 sym53c8xx dmx3191d imm in2000 ips qla1280 sim710 sym53c416 dc395x atp870u mptbase mptscsih mptspi mptfc mptsas 3w-sas 3w-xxxx 3w-9xxx cpqarray cciss hpsa DAC960 sx8 aacraid megaraid megaraid_mbox megaraid_mm megaraid_sas qla2xxx lpfc scsi_transport_fc aic94xx mpt2sas mpt3sas virtio_scsi virtio_blk"
-MODULES_WAITSCAN="scsi_wait_scan"
-
-# Hardware (Network)
-MODULES_NET="e1000 tg3 broadcom bcm_phy_lib virtio_net"
-
-# iSCSI support
-MODULES_ISCSI="scsi_transport_iscsi libiscsi iscsi_tcp"
-
-# Hardware (Pluggable)
-MODULES_FIREWIRE="ieee1394 ohci1394 sbp2"
-MODULES_PCMCIA="pcmcia pcmcia_core yenta_socket pd6729 i82092 i82365 tcic ds ide-cs firmware_class"
-MODULES_USB="ehci-pci ehci-hcd uhci usb-ohci hid usb-storage uas uhci-hcd ohci-hcd xhci-hcd xhci-pci xhci-plat usbhid hid-generic sl811-hcd hid-a4tech hid-apple hid-belkin hid-cherry hid-chicony hid-cypress hid-dummy hid-ezkey hid-gyration hid-logitech hid-logitech-dj hid-microsoft hid-monterey hid-petalynx hid-pl hid-samsung hid-sony hid-sunplus"
-
-# Filesystems
-MODULES_FS="ext2 ext3 ext4 btrfs reiserfs jfs nfs xfs zfs f2fs fuse loop squashfs aufs overlay cramfs configfs fscrypto efivarfs msdos qemu_fw_cfg"
-
-# Crypto
-MODULES_CRYPTO="sha256_generic cbc crc32c crc32c_generic crc32 crc32_generic aes_generic xts"
-
-# Hyper-V
-MODULES_HYPERV="hv_utils hv_vmbus hv_balloon hyperv_keyboard hv_netvsc hid_hyperv hv_utils hyperv_fb hv_storvsc"
-
-# Virtio
-MODULES_VIRTIO="virtio_scsi virtio_blk virtio_console virtio-rng virtio virtio_balloon virtio_input virtio_ring virtio_pci virtio_mmio virtio_crypto virtio_net"
+# parisc64 module groups for genkernel initramfs auto-loading
+# (extending defaults/modules_load)
diff --git a/arch/ppc/arch-config b/arch/ppc/arch-config
index dbed242..584c39a 100644
--- a/arch/ppc/arch-config
+++ b/arch/ppc/arch-config
@@ -1,42 +1,17 @@
-CONFIG_PPC_SPLPAR=y
+# CONFIG_ADB is not set
+# CONFIG_ADB_PMU is not set
CONFIG_CMM=y
-CONFIG_VSX=y
-CONFIG_NO_HZ=y
-CONFIG_HZ_100=y
-CONFIG_NODES_SHIFT=8
-CONFIG_NEED_MULTIPLE_NODES=y
-CONFIG_HOTPLUG_PCI_PCIE=y
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
-CONFIG_KEXEC_AUTO_RESERVE=y
-CONFIG_MEMORY_HOTREMOVE=y
-CONFIG_FB_RADEON=m
CONFIG_FB_NVIDIA=m
-CONFIG_DRM_RADEON_KMS=y
-CONFIG_PPC_SMLPAR=y
-CONFIG_CMM=y
-CONFIG_RDS=m
-# CONFIG_BLK_DEV_IDESCSI is not set
-# CONFIG_IDEDMA_AUTO is not set
-# CONFIG_IDEDMA_PCI_AUTO is not set
-# CONFIG_IDE_GENERIC is not set
-# CONFIG_IDE is not set
-# CONFIG_BLK_DEV_AMD74XX is not set
-# CONFIG_BLK_DEV_HD_ONLY is not set
-# CONFIG_BLK_DEV_IDECD is not set
-# CONFIG_BLK_DEV_IDEDISK is not set
-# CONFIG_BLK_DEV_IDEDMA is not set
-# CONFIG_BLK_DEV_IDEFLOPPY is not set
-# CONFIG_BLK_DEV_IDE is not set
-# CONFIG_IDEDISK_MULTI_MODE is not set
-# CONFIG_IDEPCI_SHARE_IRQ is not set
-# CONFIG_IDE_PROC_FS is not set
-# CONFIG_IDE_TASK_IOCTL is not set
-# CONFIG_HZ_250 is not set
CONFIG_FB_RADEON_I2C=y
+CONFIG_FB_RADEON=m
+CONFIG_HZ_100=y
+CONFIG_KEXEC_AUTO_RESERVE=y
+CONFIG_NEED_MULTIPLE_NODES=y
+CONFIG_NODES_SHIFT=8
+CONFIG_PPC_SMLPAR=y
+CONFIG_PPC_SPLPAR=y
# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
-# CONFIG_ADB is not set
-# CONFIG_ADB_PMU is not set
+CONFIG_VSX=y
# CONFIG_WINDFARM is not set
# CONFIG_WINDFARM_PM112 is not set
-# CONFIG_CAPI_EICON is not set
-CONFIG_BLK_DEV_NVME=m
diff --git a/arch/ppc/config.sh b/arch/ppc/config.sh
index 173cff1..173cff1 100755..100644
--- a/arch/ppc/config.sh
+++ b/arch/ppc/config.sh
diff --git a/arch/ppc/modules_load b/arch/ppc/modules_load
index 5bcd5d9..702029d 100644
--- a/arch/ppc/modules_load
+++ b/arch/ppc/modules_load
@@ -1,39 +1,2 @@
-# Module groups for genkernel initramfs auto-loading
-
-# RAID
-MODULES_ATARAID="ataraid pdcraid hptraid"
-MODULES_DMRAID="dm-mod dm-mirror dm-crypt"
-MODULES_MDADM="md-mod dm-mod dm-snapshot dm-mirror dm-bbr dm-raid dm-crypt raid0 raid1 raid456 raid5 raid6 raid10 linear multipath async_raid6_recov async_pq libcrc32c raid6_pq async_tx async_memcpy async_xor"
-MODULES_LVM="dm-mod dm-bio-prison dm-bufio dm-cache dm-cache-smq dm-crypt dm-delay dm-era dm-flakey dm-integrity dm-log dm-log-userspace dm-log-writes dm-mirror dm-raid dm-region-hash dm-snapshot dm-switch dm-thin-pool dm-verity dm-zero dm-persistent-data ${MODULES_MDADM}"
-MODULES_MULTIPATH="dm-mod dm-multipath dm-round-robin dm-rdac dm-queue-length dm-service-time"
-
-# Hardware (IDE/SCSI/SATA/NVMe)
-MODULES_NVME="nvme-core nvme nvme-fabrics nvme-rdma nvme-loop nvme-fc"
-MODULES_PATA="pata_mpiix pata_pdc2027x pata_radisys pata_sil680 pata_rz1000 pata_efar pata_cmd64x pata_hpt366 pata_hpt37x pata_hpt3x3 pata_hpt3x2n pata_optidma pata_it821x pata_artop pata_oldpiix pata_cypress pata_platform pata_serverworks pata_legacy pata_ns87410 pata_ns87415 pata_pcmcia pata_isapnp pata_it8213 pata_ali pata_amd pata_opti pata_atiixp pata_triflex pata_pdc202xx_old pata_sc1200 pata_qdi pata_netcell pata_sis pata_hpt3x2n pata_marvell pata_jmicron pata_via pata_cs5520 pata_cs5530 pata_cs5535 pata_sl82c105 libata"
-MODULES_SATA="sata_promise sata_sil sata_sil24 sata_svw sata_via sata_nv sata_sx4 sata_sis sata_uli sata_vsc sata_qstor ahci libata ata_piix sata_mv sata_inic162x pdc_adma"
-MODULES_SCSI="sd_mod sg sr_mod aic79xx aic7xxx aic7xxx_old arcmsr BusLogic ncr53c8xx NCR53c406a initio advansys aha1740 aha1542 aha152x dtc fdomain gdth pas16 pci2220i pci2000 psi240i qlogicfas qlogicfc qlogicisp qlogicpti seagate t128 u14-34f ultrastor wd7000 sym53c8xx dmx3191d imm in2000 ips qla1280 sim710 sym53c416 dc395x atp870u mptbase mptscsih mptspi mptfc mptsas 3w-sas 3w-xxxx 3w-9xxx cpqarray cciss hpsa DAC960 sx8 aacraid megaraid megaraid_mbox megaraid_mm megaraid_sas qla2xxx lpfc scsi_transport_fc aic94xx mpt2sas mpt3sas virtio_scsi virtio_blk"
-MODULES_WAITSCAN="scsi_wait_scan"
-MODULES_BLOCK="sdhci_pci"
-
-# Hardware (Network)
-MODULES_NET="e1000 tg3 broadcom bcm_phy_lib virtio_net"
-
-# iSCSI support
-MODULES_ISCSI="scsi_transport_iscsi libiscsi iscsi_tcp"
-
-# Hardware (Pluggable)
-MODULES_FIREWIRE="ieee1394 ohci1394 sbp2"
-MODULES_PCMCIA="pcmcia pcmcia_core yenta_socket pd6729 i82092 i82365 tcic ds ide-cs firmware_class"
-MODULES_USB="ehci-pci ehci-hcd uhci usb-ohci hid usb-storage uas uhci-hcd ohci-hcd xhci-hcd xhci-pci xhci-plat usbhid hid-generic sl811-hcd hid-a4tech hid-apple hid-belkin hid-cherry hid-chicony hid-cypress hid-dummy hid-ezkey hid-gyration hid-logitech hid-logitech-dj hid-microsoft hid-monterey hid-petalynx hid-pl hid-samsung hid-sony hid-sunplus"
-
-# Filesystems
-MODULES_FS="ext2 ext3 ext4 btrfs reiserfs jfs nfs xfs zfs f2fs fuse loop squashfs aufs overlay cramfs configfs fscrypto efivarfs msdos qemu_fw_cfg"
-
-# Crypto
-MODULES_CRYPTO="sha256_generic cbc crc32c crc32c_generic crc32 crc32_generic aes_generic xts"
-
-# Hyper-V
-MODULES_HYPERV="hv_utils hv_vmbus hv_balloon hyperv_keyboard hv_netvsc hid_hyperv hv_utils hyperv_fb hv_storvsc"
-
-# Virtio
-MODULES_VIRTIO="virtio_scsi virtio_blk virtio_console virtio-rng virtio virtio_balloon virtio_input virtio_ring virtio_pci virtio_mmio virtio_crypto virtio_net"
+# ppc module groups for genkernel initramfs auto-loading
+# (extending defaults/modules_load)
diff --git a/arch/ppc64/arch-config b/arch/ppc64/arch-config
index 0926ec1..7d19e11 100644
--- a/arch/ppc64/arch-config
+++ b/arch/ppc64/arch-config
@@ -1,57 +1,52 @@
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_SCSI_IBMVFC=m
-CONFIG_SCSI_IBMVFC_TRACE=y
-CONFIG_NR_CPUS=1024
-CONFIG_IBM_BSR=y
-CONFIG_PPC_64K_PAGES=y
-CONFIG_FORCE_MAX_ZONEORDER=9
-CONFIG_PPC_SUBPAGE_PROT=y
-CONFIG_POWER4_ONLY=y
-CONFIG_HOTPLUG_PCI_RPA=y
-CONFIG_PSERIES_ENERGY=m
-CONFIG_STRICT_DEVMEM=y
+# CONFIG_ADB_PMU_LED_IDE is not set
+# CONFIG_ADB_PMU_LED is not set
+# CONFIG_AXON_RAM is not set
+CONFIG_BLK_DEV_RSXX=m
+# CONFIG_CBE_AXON_PCI is not set
+# CONFIG_CBE_AXON_UTL is not set
+# CONFIG_CBE_CPUFREQ is not set
+# CONFIG_CBE_CPUFREQ_PMI is not set
+# CONFIG_CBE_CPUFREQ_SPU_GOVERNOR is not set
+# CONFIG_CBE_RAS is not set
+# CONFIG_CBE_THERM is not set
CONFIG_CRASH=y
+# CONFIG_CRYPTO_DEV_NX is not set
+# CONFIG_EDAC_CELL is not set
CONFIG_FA_DUMP=y
-CONFIG_HW_RANDOM=y
+# CONFIG_FB_PS3_DEFAULT_SIZE_M is not set
+# CONFIG_FB_PS3 is not set
+CONFIG_FORCE_MAX_ZONEORDER=9
+CONFIG_HOTPLUG_PCI_RPA=y
CONFIG_HW_RANDOM_PSERIES=y
-CONFIG_BLK_DEV_RSXX=m
-# CONFIG_CRYPTO_DEV_NX is not set
-# CONFIG_SND_PS3_DEFAULT_START_DELAY is not set
-# CONFIG_SND_PS3 is not set
-# CONFIG_PPC_PS3 is not set
-# CONFIG_PPC_PMAC64 is not set
-# CONFIG_PPC_PMAC is not set
-# CONFIG_PPC_MAPLE is not set
+CONFIG_IBM_BSR=y
+CONFIG_NR_CPUS=1024
+# CONFIG_OPROFILE_CELL is not set
+# CONFIG_PHYP_DUMP is not set
+CONFIG_POWER4_ONLY=y
+CONFIG_PPC_64K_PAGES=y
# CONFIG_PPC_CELLEB is not set
-# CONFIG_PPC_CELL_QPACE is not set
-# CONFIG_TUNE_CELL is not set
# CONFIG_PPC_CELL is not set
# CONFIG_PPC_CELL_NATIVE is not set
-# CONFIG_PPC_IBM_CELL_BLADE is not set
-# CONFIG_EDAC_CELL is not set
-# CONFIG_OPROFILE_CELL is not set
# CONFIG_PPC_CELL_QPACE is not set
-# CONFIG_SPU_FS is not set
+# CONFIG_PPC_IBM_CELL_BLADE is not set
+# CONFIG_PPC_ISERIES is not set
+# CONFIG_PPC_MAPLE is not set
+# CONFIG_PPC_PMAC64 is not set
+# CONFIG_PPC_PMAC is not set
+# CONFIG_PPC_PS3 is not set
+CONFIG_PPC_SUBPAGE_PROT=y
+CONFIG_PSERIES_ENERGY=m
+# CONFIG_RTC_DRV_PS3 is not set
+CONFIG_SCSI_IBMVFC=m
+CONFIG_SCSI_IBMVFC_TRACE=y
+# CONFIG_SND_PS3_DEFAULT_START_DELAY is not set
+# CONFIG_SND_PS3 is not set
+# CONFIG_SPARSEMEM_VMEMMAP is not set
# CONFIG_SPU_BASE is not set
+# CONFIG_SPU_FS is not set
# CONFIG_SPUFS_MMAP is not set
-# CONFIG_CBE_CPUFREQ_SPU_GOVERNOR is not set
-# CONFIG_AXON_RAM is not set
-# CONFIG_CBE_RAS is not set
-# CONFIG_CBE_THERM is not set
-# CONFIG_CBE_CPUFREQ is not set
-# CONFIG_CBE_CPUFREQ_PMI is not set
-# CONFIG_CBE_AXON_UTL is not set
-# CONFIG_CBE_AXON_PCI is not set
-# CONFIG_CBE_CPUFREQ_SPU_GOVERNOR is not set
+# CONFIG_TUNE_CELL is not set
# CONFIG_UDBG_RTAS_CONSOLE is not set
-# CONFIG_PHYP_DUMP is not set
-# CONFIG_RTC_DRV_PS3 is not set
-# CONFIG_FB_PS3 is not set
-# CONFIG_FB_PS3_DEFAULT_SIZE_M is not set
-# CONFIG_ADB_PMU_LED is not set
-# CONFIG_ADB_PMU_LED_IDE is not set
+# CONFIG_WINDFARM_PM121 is not set
# CONFIG_WINDFARM_PM81 is not set
# CONFIG_WINDFARM_PM91 is not set
-# CONFIG_WINDFARM_PM121 is not set
-# CONFIG_PPC_ISERIES is not set
-# CONFIG_SPARSEMEM_VMEMMAP is not set
diff --git a/arch/ppc64/config.sh b/arch/ppc64/config.sh
index 173cff1..173cff1 100755..100644
--- a/arch/ppc64/config.sh
+++ b/arch/ppc64/config.sh
diff --git a/arch/ppc64/modules_load b/arch/ppc64/modules_load
index d988b7d..f5f3ed7 100644
--- a/arch/ppc64/modules_load
+++ b/arch/ppc64/modules_load
@@ -1,39 +1,5 @@
-# Module groups for genkernel initramfs auto-loading
-
-# RAID
-MODULES_ATARAID="ataraid pdcraid hptraid"
-MODULES_DMRAID="dm-mod dm-mirror dm-crypt"
-MODULES_MDADM="md-mod dm-mod dm-snapshot dm-mirror dm-bbr dm-raid dm-crypt raid0 raid1 raid456 raid5 raid6 raid10 linear multipath async_raid6_recov async_pq libcrc32c raid6_pq async_tx async_memcpy async_xor"
-MODULES_LVM="dm-mod dm-bio-prison dm-bufio dm-cache dm-cache-smq dm-crypt dm-delay dm-era dm-flakey dm-integrity dm-log dm-log-userspace dm-log-writes dm-mirror dm-raid dm-region-hash dm-snapshot dm-switch dm-thin-pool dm-verity dm-zero dm-persistent-data ${MODULES_MDADM}"
-MODULES_MULTIPATH="dm-mod dm-multipath dm-round-robin dm-rdac dm-queue-length dm-service-time"
-
-# Hardware (IDE/SCSI/SATA/NVMe)
-MODULES_NVME="nvme-core nvme nvme-fabrics nvme-rdma nvme-loop nvme-fc"
-MODULES_PATA="pata_mpiix pata_pdc2027x pata_radisys pata_sil680 pata_rz1000 pata_efar pata_cmd64x pata_hpt366 pata_hpt37x pata_hpt3x3 pata_hpt3x2n pata_optidma pata_it821x pata_artop pata_oldpiix pata_cypress pata_platform pata_serverworks pata_legacy pata_ns87410 pata_ns87415 pata_pcmcia pata_isapnp pata_it8213 pata_ali pata_amd pata_opti pata_atiixp pata_triflex pata_pdc202xx_old pata_sc1200 pata_qdi pata_netcell pata_sis pata_hpt3x2n pata_marvell pata_jmicron pata_via pata_cs5520 pata_cs5530 pata_cs5535 pata_sl82c105 libata"
-MODULES_SATA="sata_promise sata_sil sata_sil24 sata_svw sata_via sata_nv sata_sx4 sata_sis sata_uli sata_vsc sata_qstor ahci libata ata_piix sata_mv sata_inic162x pdc_adma"
-MODULES_SCSI="sd_mod sg sr_mod aic79xx aic7xxx aic7xxx_old arcmsr BusLogic ncr53c8xx NCR53c406a initio advansys aha1740 aha1542 aha152x dtc fdomain gdth pas16 pci2220i pci2000 psi240i qlogicfas qlogicfc qlogicisp qlogicpti seagate t128 u14-34f ultrastor wd7000 sym53c8xx dmx3191d imm in2000 ips qla1280 sim710 sym53c416 dc395x atp870u mptbase mptscsih mptspi mptfc mptsas 3w-sas 3w-xxxx 3w-9xxx cpqarray cciss hpsa DAC960 sx8 aacraid megaraid megaraid_mbox megaraid_mm megaraid_sas qla2xxx lpfc scsi_transport_fc aic94xx mpt2sas mpt3sas virtio_scsi virtio_blk"
-MODULES_WAITSCAN="scsi_wait_scan"
-MODULES_BLOCK="sdhci_pci"
-
-# Hardware (Network)
-MODULES_NET="e1000 tg3 broadcom bcm_phy_lib virtio_net"
-
-# iSCSI support
-MODULES_ISCSI="scsi_transport_iscsi libiscsi iscsi_tcp"
-
-# Hardware (Pluggable)
-MODULES_FIREWIRE="ieee1394 ohci1394 sbp2"
-MODULES_PCMCIA="pcmcia pcmcia_core yenta_socket pd6729 i82092 i82365 tcic ds ide-cs firmware_class"
-MODULES_USB="ehci-pci ehci-hcd uhci usb-ohci hid usb-storage uas uhci-hcd ohci-hcd xhci-hcd xhci-pci xhci-plat usbhid hid-generic sl811-hcd hid-a4tech hid-apple hid-belkin hid-cherry hid-chicony hid-cypress hid-dummy hid-ezkey hid-gyration hid-logitech hid-logitech-dj hid-microsoft hid-monterey hid-petalynx hid-pl hid-samsung hid-sony hid-sunplus"
-
-# Filesystems
-MODULES_FS="ext2 ext3 ext4 btrfs reiserfs jfs nfs xfs zfs f2fs fuse loop squashfs aufs overlay cramfs configfs fscrypto efivarfs msdos qemu_fw_cfg"
+# ppc64 module groups for genkernel initramfs auto-loading
+# (extending defaults/modules_load)
# Crypto
-MODULES_CRYPTO="sha256_generic cbc crc32c crc32c_generic crc32c-vpmsum crc32 crc32_generic aes_generic xts"
-
-# Hyper-V
-MODULES_HYPERV="hv_utils hv_vmbus hv_balloon hyperv_keyboard hv_netvsc hid_hyperv hv_utils hyperv_fb hv_storvsc"
-
-# Virtio
-MODULES_VIRTIO="virtio_scsi virtio_blk virtio_console virtio-rng virtio virtio_balloon virtio_input virtio_ring virtio_pci virtio_mmio virtio_crypto virtio_net"
+MODULES_CRYPTO+=" crc32c-vpmsum"
diff --git a/arch/ppc64le/arch-config b/arch/ppc64le/arch-config
index 1119d0b..40bd1db 100644
--- a/arch/ppc64le/arch-config
+++ b/arch/ppc64le/arch-config
@@ -1 +1,3170 @@
-THIS_CONFIG_IS_BROKEN
+CONFIG_64BIT=y
+# CONFIG_6LOWPAN_DEBUGFS is not set
+# CONFIG_6LOWPAN_GHC_EXT_HDR_DEST is not set
+# CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG is not set
+# CONFIG_6LOWPAN_GHC_EXT_HDR_HOP is not set
+# CONFIG_6LOWPAN_GHC_EXT_HDR_ROUTE is not set
+# CONFIG_6LOWPAN_GHC_ICMPV6 is not set
+# CONFIG_6LOWPAN_GHC_UDP is not set
+CONFIG_8139TOO_TUNE_TWISTER=y
+CONFIG_842_COMPRESS=m
+CONFIG_842_DECOMPRESS=m
+CONFIG_AB3100_CORE=y
+CONFIG_AB3100_OTP=m
+CONFIG_ABX500_CORE=y
+# CONFIG_ACCESSIBILITY is not set
+CONFIG_AD2S1200=m
+CONFIG_AD2S1210=m
+CONFIG_AD2S90=m
+CONFIG_AD5064=m
+CONFIG_AD525X_DPOT_I2C=m
+CONFIG_AD525X_DPOT=m
+CONFIG_AD525X_DPOT_SPI=m
+CONFIG_AD5360=m
+CONFIG_AD5380=m
+CONFIG_AD5421=m
+CONFIG_AD5446=m
+CONFIG_AD5449=m
+CONFIG_AD5504=m
+CONFIG_AD5592R_BASE=m
+CONFIG_AD5592R=m
+CONFIG_AD5593R=m
+CONFIG_AD5624R_SPI=m
+CONFIG_AD5686=m
+CONFIG_AD5686_SPI=m
+CONFIG_AD5696_I2C=m
+CONFIG_AD5755=m
+CONFIG_AD5761=m
+CONFIG_AD5764=m
+CONFIG_AD5791=m
+CONFIG_AD5933=m
+CONFIG_AD7150=m
+CONFIG_AD7192=m
+CONFIG_AD7266=m
+CONFIG_AD7280=m
+CONFIG_AD7291=m
+CONFIG_AD7298=m
+CONFIG_AD7303=m
+CONFIG_AD7476=m
+CONFIG_AD7606_IFACE_PARALLEL=m
+CONFIG_AD7606_IFACE_SPI=m
+CONFIG_AD7606=m
+CONFIG_AD7746=m
+CONFIG_AD7768_1=m
+CONFIG_AD7780=m
+CONFIG_AD7791=m
+CONFIG_AD7793=m
+CONFIG_AD7816=m
+CONFIG_AD7887=m
+CONFIG_AD7923=m
+CONFIG_AD799X=m
+CONFIG_AD8366=m
+CONFIG_AD8801=m
+CONFIG_AD9523=m
+CONFIG_AD9832=m
+CONFIG_AD9834=m
+CONFIG_ADE7854_I2C=m
+CONFIG_ADE7854=m
+CONFIG_ADE7854_SPI=m
+CONFIG_ADF4350=m
+CONFIG_ADFS_FS=m
+# CONFIG_ADFS_FS_RW is not set
+# CONFIG_ADIN_PHY is not set
+CONFIG_ADIS16080=m
+CONFIG_ADIS16130=m
+CONFIG_ADIS16136=m
+CONFIG_ADIS16201=m
+CONFIG_ADIS16203=m
+CONFIG_ADIS16209=m
+CONFIG_ADIS16240=m
+CONFIG_ADIS16260=m
+CONFIG_ADIS16400=m
+CONFIG_ADIS16460=m
+CONFIG_ADIS16480=m
+CONFIG_ADJD_S311=m
+CONFIG_ADM8211=m
+CONFIG_ADT7316_I2C=m
+CONFIG_ADT7316=m
+CONFIG_ADT7316_SPI=m
+CONFIG_ADXRS450=m
+CONFIG_AFE4403=m
+CONFIG_AFE4404=m
+# CONFIG_AF_RXRPC_DEBUG is not set
+# CONFIG_AFS_DEBUG is not set
+CONFIG_AGP=m
+CONFIG_AHCI_CEVA=m
+CONFIG_AHCI_QORIQ=m
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+CONFIG_AIC79XX_REG_PRETTY_PRINT=y
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
+CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
+# CONFIG_AIC94XX_DEBUG is not set
+CONFIG_AIRO=m
+CONFIG_AIX_PARTITION=y
+CONFIG_AK8974=m
+CONFIG_AK8975=m
+CONFIG_AL3320A=m
+# CONFIG_AL_FIC is not set
+CONFIG_ALTERA_FREEZE_BRIDGE=m
+CONFIG_ALTERA_MBOX=m
+CONFIG_ALTERA_PR_IP_CORE_PLAT=m
+CONFIG_ALTIVEC=y
+CONFIG_AM2315=m
+CONFIG_APDS9300=m
+CONFIG_APDS9960=m
+CONFIG_APPLICOM=m
+CONFIG_ARCH_CPU_PROBE_RELEASE=y
+CONFIG_ARCH_DMA_ADDR_T_64BIT=y
+CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
+CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
+CONFIG_ARCH_ENABLE_THP_MIGRATION=y
+CONFIG_ARCH_HAS_FORCE_DMA_UNENCRYPTED=y
+CONFIG_ARCH_HAS_GIGANTIC_PAGE=y
+CONFIG_ARCH_HAS_HUGEPD=y
+CONFIG_ARCH_HAS_KCOV=y
+CONFIG_ARCH_HAS_KEXEC_PURGATORY=y
+CONFIG_ARCH_HAS_MEMBARRIER_CALLBACKS=y
+CONFIG_ARCH_HAS_MMIOWB=y
+CONFIG_ARCH_HAS_PHYS_TO_DMA=y
+CONFIG_ARCH_HAS_PKEYS=y
+CONFIG_ARCH_HAS_PMEM_API=y
+CONFIG_ARCH_HAS_PTE_DEVMAP=y
+CONFIG_ARCH_HAS_TICK_BROADCAST=y
+CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y
+CONFIG_ARCH_HAS_UACCESS_MCSAFE=y
+CONFIG_ARCH_KEEP_MEMBLOCK=y
+CONFIG_ARCH_MEMORY_PROBE=y
+CONFIG_ARCH_MMAP_RND_BITS=28
+CONFIG_ARCH_MMAP_RND_BITS_MAX=33
+CONFIG_ARCH_MMAP_RND_BITS_MIN=18
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS=11
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=17
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11
+CONFIG_ARCH_SPARSEMEM_DEFAULT=y
+CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
+CONFIG_ARCH_SUSPEND_NONZERO_CPU=y
+CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
+CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y
+CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
+CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
+CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y
+CONFIG_ARCH_WEAK_RELEASE_ACQUIRE=y
+CONFIG_AT76C50X_USB=m
+CONFIG_ATA=m
+CONFIG_ATARI_PARTITION=y
+CONFIG_ATH10K_AHB=y
+# CONFIG_ATH10K_DEBUGFS is not set
+# CONFIG_ATH10K_SDIO is not set
+# CONFIG_ATH5K_DEBUG is not set
+# CONFIG_ATH6KL_DEBUG is not set
+# CONFIG_ATH9K_AHB is not set
+# CONFIG_ATH9K_DEBUGFS is not set
+CONFIG_ATH9K_HWRNG=y
+CONFIG_ATH9K_WOW=y
+CONFIG_ATLAS_PH_SENSOR=m
+CONFIG_ATMEL=m
+CONFIG_ATM_FORE200E_DEBUG=0
+CONFIG_ATM_FORE200E=m
+CONFIG_ATM_FORE200E_TX_RETRY=16
+# CONFIG_ATM_FORE200E_USE_TASKLET is not set
+# CONFIG_ATM_IA_DEBUG is not set
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_IDT77252_USE_SUNI=y
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_MPOA=m
+CONFIG_ATM_NICSTAR_USE_IDT77105=y
+CONFIG_ATM_NICSTAR_USE_SUNI=y
+# CONFIG_ATOMIC64_SELFTEST is not set
+CONFIG_AUDIT_ARCH=y
+CONFIG_AURORA_NB8800=m
+CONFIG_AUTOFS4_FS=y
+CONFIG_AUTOFS_FS=y
+CONFIG_AXP20X_ADC=m
+CONFIG_AXP20X_POWER=m
+CONFIG_AXP288_ADC=m
+CONFIG_AXP288_FUEL_GAUGE=m
+# CONFIG_BACKLIGHT_88PM860X is not set
+# CONFIG_BACKLIGHT_AAT2870 is not set
+# CONFIG_BACKLIGHT_ADP5520 is not set
+CONFIG_BACKLIGHT_ADP8860=m
+CONFIG_BACKLIGHT_ADP8870=m
+# CONFIG_BACKLIGHT_ARCXCNN is not set
+# CONFIG_BACKLIGHT_AS3711 is not set
+CONFIG_BACKLIGHT_BD6107=m
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+# CONFIG_BACKLIGHT_DA903X is not set
+CONFIG_BACKLIGHT_DA9052=m
+CONFIG_BACKLIGHT_GENERIC=m
+CONFIG_BACKLIGHT_GPIO=m
+CONFIG_BACKLIGHT_LM3533=m
+CONFIG_BACKLIGHT_LM3630A=m
+CONFIG_BACKLIGHT_LM3639=m
+# CONFIG_BACKLIGHT_LP8788 is not set
+CONFIG_BACKLIGHT_LV5207LP=m
+# CONFIG_BACKLIGHT_MAX8925 is not set
+# CONFIG_BACKLIGHT_PANDORA is not set
+CONFIG_BACKLIGHT_PCF50633=m
+CONFIG_BACKLIGHT_PM8941_WLED=m
+CONFIG_BACKLIGHT_SKY81452=m
+# CONFIG_BACKLIGHT_WM831X is not set
+CONFIG_BATMAN_ADV_DEBUGFS=y
+# CONFIG_BATMAN_ADV_TRACING is not set
+# CONFIG_BATTERY_88PM860X is not set
+CONFIG_BATTERY_ACT8945A=m
+# CONFIG_BATTERY_AXP20X is not set
+# CONFIG_BATTERY_BQ27XXX_DT_UPDATES_NVM is not set
+CONFIG_BATTERY_BQ27XXX_HDQ=m
+CONFIG_BATTERY_BQ27XXX_I2C=m
+CONFIG_BATTERY_BQ27XXX=m
+CONFIG_BATTERY_CPCAP=m
+# CONFIG_BATTERY_DA9030 is not set
+CONFIG_BATTERY_DA9052=m
+CONFIG_BATTERY_DA9150=m
+CONFIG_BATTERY_DS2760=m
+CONFIG_BATTERY_DS2780=m
+CONFIG_BATTERY_DS2781=m
+CONFIG_BATTERY_DS2782=m
+CONFIG_BATTERY_GAUGE_LTC2941=m
+CONFIG_BATTERY_LEGO_EV3=m
+CONFIG_BATTERY_MAX17040=m
+CONFIG_BATTERY_MAX17042=m
+CONFIG_BATTERY_MAX1721X=m
+CONFIG_BATTERY_RT5033=m
+CONFIG_BATTERY_SBS=m
+# CONFIG_BCACHE_CLOSURES_DEBUG is not set
+# CONFIG_BCACHE_DEBUG is not set
+CONFIG_BCACHE=m
+CONFIG_BCH=m
+CONFIG_BCMA_HOST_SOC=y
+CONFIG_BCMA_SFLASH=y
+CONFIG_BE2NET_HWMON=y
+CONFIG_BH1780=m
+# CONFIG_BIG_KEYS is not set
+# CONFIG_BLK_CGROUP_IOCOST is not set
+# CONFIG_BLK_CGROUP_IOLATENCY is not set
+CONFIG_BLK_CMDLINE_PARSER=y
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
+CONFIG_BLK_DEV_NVME=y
+CONFIG_BLK_DEV_PMEM=m
+CONFIG_BLK_DEV_RSXX=m
+CONFIG_BLK_DEV_SKD=m
+CONFIG_BLOCK_COMPAT=y
+CONFIG_BMA180=m
+CONFIG_BMA220=m
+CONFIG_BMC150_MAGN_I2C=m
+CONFIG_BMC150_MAGN=m
+CONFIG_BMC150_MAGN_SPI=m
+CONFIG_BMG160_I2C=m
+CONFIG_BMG160=m
+CONFIG_BMG160_SPI=m
+CONFIG_BMI160_I2C=m
+CONFIG_BMI160=m
+CONFIG_BMI160_SPI=m
+CONFIG_BOARD_TPCI200=m
+CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=1
+CONFIG_BOOTPARAM_HARDLOCKUP_PANIC=y
+CONFIG_BOOTX_TEXT=y
+# CONFIG_BPFILTER is not set
+CONFIG_BT_DEBUGFS=y
+# CONFIG_BT_HCIUART_MRVL is not set
+# CONFIG_BT_HCIUART_NOKIA is not set
+CONFIG_BT_MTKUART=m
+CONFIG_BTT=y
+CONFIG_BT_WILINK=m
+CONFIG_BUILD_BIN2C=y
+CONFIG_C2PORT=m
+CONFIG_CADENCE_WATCHDOG=m
+# CONFIG_CAIF_DEBUG is not set
+CONFIG_CAIF_HSI=m
+CONFIG_CAIF=m
+CONFIG_CAIF_NETDEV=m
+CONFIG_CAIF_SPI_SLAVE=m
+# CONFIG_CAIF_SPI_SYNC is not set
+CONFIG_CAIF_TTY=m
+CONFIG_CAIF_USB=m
+CONFIG_CAIF_VIRTIO=m
+CONFIG_CAN_CC770_ISA=m
+CONFIG_CAN_DEBUG_DEVICES=y
+CONFIG_CAN_FLEXCAN=m
+CONFIG_CAN_GRCAN=m
+# CONFIG_CAN_HI311X is not set
+# CONFIG_CAN_JANZ_ICAN3 is not set
+# CONFIG_CAN_MCBA_USB is not set
+CONFIG_CAN_MCP251X=m
+CONFIG_CAN_MSCAN=m
+# CONFIG_CAN_PEAK_PCIEFD is not set
+# CONFIG_CAN_SJA1000 is not set
+CONFIG_CAN_UCAN=m
+# CONFIG_CAN_VXCAN is not set
+CONFIG_CARL9170_HWRNG=y
+CONFIG_CAVIUM_PTP=y
+CONFIG_CCS811=m
+CONFIG_CDNS_I3C_MASTER=m
+CONFIG_CEC_NOTIFIER=y
+CONFIG_CEC_PLATFORM_DRIVERS=y
+# CONFIG_CEPH_FS_SECURITY_LABEL is not set
+CONFIG_CEPH_LIB_USE_DNS_RESOLVER=y
+# CONFIG_CFG80211_CERTIFICATION_ONUS is not set
+# CONFIG_CFG80211_DEBUGFS is not set
+CONFIG_CGROUP_RDMA=y
+CONFIG_CHARGER_ADP5061=m
+# CONFIG_CHARGER_AXP20X is not set
+CONFIG_CHARGER_BQ2415X=m
+CONFIG_CHARGER_BQ24190=m
+CONFIG_CHARGER_BQ24257=m
+CONFIG_CHARGER_BQ24735=m
+CONFIG_CHARGER_BQ25890=m
+CONFIG_CHARGER_DA9150=m
+CONFIG_CHARGER_DETECTOR_MAX14656=m
+CONFIG_CHARGER_GPIO=m
+CONFIG_CHARGER_ISP1704=m
+CONFIG_CHARGER_LP8727=m
+CONFIG_CHARGER_MANAGER=y
+# CONFIG_CHARGER_MAX14577 is not set
+CONFIG_CHARGER_MAX77650=m
+# CONFIG_CHARGER_MAX77693 is not set
+CONFIG_CHARGER_MAX8903=m
+# CONFIG_CHARGER_MAX8997 is not set
+# CONFIG_CHARGER_MAX8998 is not set
+CONFIG_CHARGER_PCF50633=m
+CONFIG_CHARGER_RT9455=m
+CONFIG_CHARGER_SBS=m
+# CONFIG_CHARGER_TPS65090 is not set
+# CONFIG_CHARGER_TWL4030 is not set
+CONFIG_CHARGER_UCS1002=m
+# CONFIG_CHELSIO_IPSEC_INLINE is not set
+# CONFIG_CHELSIO_T4_DCB is not set
+# CONFIG_CIFS_DEBUG is not set
+# CONFIG_CIFS_WEAK_PW_HASH is not set
+CONFIG_CLONE_BACKWARDS=y
+# CONFIG_CLS_U32_MARK is not set
+# CONFIG_CLS_U32_PERF is not set
+CONFIG_CM3232=m
+CONFIG_CM3323=m
+CONFIG_CM3605=m
+CONFIG_CM36651=m
+CONFIG_CMDLINE_BOOL=y
+CONFIG_CMDLINE="console=hvsi0 console=hvc0 console=ttyS0,9600 console=tty0"
+# CONFIG_CMDLINE_FORCE is not set
+CONFIG_CMDLINE_PARTITION=y
+CONFIG_CMM=m
+# CONFIG_CODE_PATCHING_SELFTEST is not set
+CONFIG_COMEDI_8254=m
+CONFIG_COMEDI_8255=m
+CONFIG_COMEDI_8255_PCI=m
+CONFIG_COMEDI_8255_SA=m
+CONFIG_COMEDI_ADDI_APCI_1032=m
+CONFIG_COMEDI_ADDI_APCI_1500=m
+CONFIG_COMEDI_ADDI_APCI_1516=m
+CONFIG_COMEDI_ADDI_APCI_1564=m
+CONFIG_COMEDI_ADDI_APCI_16XX=m
+CONFIG_COMEDI_ADDI_APCI_2032=m
+CONFIG_COMEDI_ADDI_APCI_2200=m
+CONFIG_COMEDI_ADDI_APCI_3120=m
+CONFIG_COMEDI_ADDI_APCI_3501=m
+CONFIG_COMEDI_ADDI_APCI_3XXX=m
+CONFIG_COMEDI_ADDI_WATCHDOG=m
+CONFIG_COMEDI_ADL_PCI6208=m
+CONFIG_COMEDI_ADL_PCI7X3X=m
+CONFIG_COMEDI_ADL_PCI8164=m
+CONFIG_COMEDI_ADL_PCI9111=m
+CONFIG_COMEDI_ADL_PCI9118=m
+CONFIG_COMEDI_ADV_PCI1710=m
+CONFIG_COMEDI_ADV_PCI1720=m
+CONFIG_COMEDI_ADV_PCI1723=m
+CONFIG_COMEDI_ADV_PCI1724=m
+CONFIG_COMEDI_ADV_PCI1760=m
+CONFIG_COMEDI_ADV_PCI_DIO=m
+CONFIG_COMEDI_AMPLC_DIO200=m
+CONFIG_COMEDI_AMPLC_DIO200_PCI=m
+CONFIG_COMEDI_AMPLC_PC236=m
+CONFIG_COMEDI_AMPLC_PC236_PCI=m
+CONFIG_COMEDI_AMPLC_PC263_PCI=m
+CONFIG_COMEDI_AMPLC_PCI224=m
+CONFIG_COMEDI_AMPLC_PCI230=m
+CONFIG_COMEDI_BOND=m
+CONFIG_COMEDI_CB_PCIDAS64=m
+CONFIG_COMEDI_CB_PCIDAS=m
+CONFIG_COMEDI_CB_PCIDDA=m
+CONFIG_COMEDI_CB_PCIMDAS=m
+CONFIG_COMEDI_CB_PCIMDDA=m
+CONFIG_COMEDI_CONTEC_PCI_DIO=m
+CONFIG_COMEDI_DAQBOARD2000=m
+CONFIG_COMEDI_DAS08=m
+CONFIG_COMEDI_DAS08_PCI=m
+# CONFIG_COMEDI_DEBUG is not set
+CONFIG_COMEDI_DEFAULT_BUF_MAXSIZE_KB=20480
+CONFIG_COMEDI_DEFAULT_BUF_SIZE_KB=2048
+CONFIG_COMEDI_DT3000=m
+CONFIG_COMEDI_DT9812=m
+CONFIG_COMEDI_DYNA_PCI10XX=m
+CONFIG_COMEDI_GSC_HPDI=m
+CONFIG_COMEDI_ICP_MULTI=m
+# CONFIG_COMEDI_ISA_DRIVERS is not set
+CONFIG_COMEDI_JR3_PCI=m
+CONFIG_COMEDI_KCOMEDILIB=m
+CONFIG_COMEDI_KE_COUNTER=m
+CONFIG_COMEDI=m
+CONFIG_COMEDI_ME4000=m
+CONFIG_COMEDI_ME_DAQ=m
+CONFIG_COMEDI_MF6X4=m
+CONFIG_COMEDI_MISC_DRIVERS=y
+CONFIG_COMEDI_MITE=m
+CONFIG_COMEDI_NI_6527=m
+CONFIG_COMEDI_NI_65XX=m
+CONFIG_COMEDI_NI_660X=m
+CONFIG_COMEDI_NI_670X=m
+CONFIG_COMEDI_NI_LABPC=m
+CONFIG_COMEDI_NI_LABPC_PCI=m
+CONFIG_COMEDI_NI_PCIDIO=m
+CONFIG_COMEDI_NI_PCIMIO=m
+CONFIG_COMEDI_NI_ROUTING=m
+CONFIG_COMEDI_NI_TIOCMD=m
+CONFIG_COMEDI_NI_TIO=m
+CONFIG_COMEDI_NI_USB6501=m
+CONFIG_COMEDI_PARPORT=m
+CONFIG_COMEDI_PCI_DRIVERS=m
+CONFIG_COMEDI_RTD520=m
+CONFIG_COMEDI_S626=m
+CONFIG_COMEDI_TEST=m
+CONFIG_COMEDI_USB_DRIVERS=m
+CONFIG_COMEDI_USBDUXFAST=m
+CONFIG_COMEDI_USBDUX=m
+CONFIG_COMEDI_USBDUXSIGMA=m
+CONFIG_COMEDI_VMK80XX=m
+CONFIG_COMPAT_BINFMT_ELF=y
+CONFIG_COMPAT_NETLINK_MESSAGES=y
+CONFIG_COMPAT_OLD_SIGACTION=y
+CONFIG_COMPAT=y
+CONFIG_CONFIGFS_FS=y
+CONFIG_CONSOLE_LOGLEVEL_QUIET=4
+CONFIG_CPCAP_ADC=m
+# CONFIG_CPU_BIG_ENDIAN is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_STAT is not set
+# CONFIG_CPU_IDLE_GOV_HALTPOLL is not set
+CONFIG_CPU_LITTLE_ENDIAN=y
+CONFIG_CPU_THERMAL=y
+CONFIG_CRC16=m
+CONFIG_CRYPTO_842=m
+CONFIG_CRYPTO_AEAD=m
+# CONFIG_CRYPTO_AEGIS128 is not set
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_CRC32C_VPMSUM=m
+CONFIG_CRYPTO_CRCT10DIF_VPMSUM=m
+CONFIG_CRYPTO_CTR=m
+# CONFIG_CRYPTO_DEV_ATMEL_ECC is not set
+# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set
+CONFIG_CRYPTO_DEV_CCREE=m
+# CONFIG_CRYPTO_DEV_NITROX_CNN55XX is not set
+CONFIG_CRYPTO_DEV_NX_COMPRESS=m
+CONFIG_CRYPTO_DEV_NX_COMPRESS_PSERIES=m
+CONFIG_CRYPTO_DEV_NX=y
+CONFIG_CRYPTO_DEV_SAFEXCEL=m
+CONFIG_CRYPTO_DEV_VIRTIO=m
+CONFIG_CRYPTO_DEV_VMX_ENCRYPT=m
+CONFIG_CRYPTO_DEV_VMX=y
+# CONFIG_CRYPTO_DRBG_CTR is not set
+# CONFIG_CRYPTO_DRBG_HASH is not set
+CONFIG_CRYPTO_DRBG=m
+CONFIG_CRYPTO_DRBG_MENU=m
+CONFIG_CRYPTO_ENGINE=m
+CONFIG_CRYPTO_GCM=m
+CONFIG_CRYPTO_GF128MUL=m
+CONFIG_CRYPTO_GHASH=m
+CONFIG_CRYPTO_JITTERENTROPY=m
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
+CONFIG_CRYPTO_MD5_PPC=m
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_RNG_DEFAULT=m
+CONFIG_CRYPTO_RNG=m
+CONFIG_CRYPTO_SEQIV=m
+CONFIG_CRYPTO_SHA1_PPC=m
+# CONFIG_CRYPTO_STATS is not set
+CONFIG_CRYPTO_USER_API_HASH=y
+CONFIG_CRYPTO_USER_API=y
+CONFIG_CRYPTO_VPMSUM_TESTER=m
+# CONFIG_CRYPTO_XXHASH is not set
+# CONFIG_CXD2880_SPI_DRV is not set
+CONFIG_CXL_AFU_DRIVER_OPS=y
+CONFIG_CXL_BASE=y
+CONFIG_CXLFLASH=m
+CONFIG_CXL_LIB=y
+CONFIG_CXL=m
+CONFIG_DA9052_WATCHDOG=m
+# CONFIG_DA9055_WATCHDOG is not set
+CONFIG_DA9062_THERMAL=m
+CONFIG_DA9062_WATCHDOG=m
+# CONFIG_DA9063_WATCHDOG is not set
+CONFIG_DA9150_GPADC=m
+CONFIG_DATA_SHIFT=12
+CONFIG_DAX_DRIVER=y
+CONFIG_DEBUG_CREDENTIALS=y
+# CONFIG_DEBUG_DEVRES is not set
+CONFIG_DEBUGGER=y
+# CONFIG_DEBUG_INFO_BTF is not set
+# CONFIG_DEBUG_INFO_DWARF4 is not set
+# CONFIG_DEBUG_INFO_REDUCED is not set
+# CONFIG_DEBUG_INFO_SPLIT is not set
+CONFIG_DEBUG_INFO=y
+CONFIG_DEBUG_MISC=y
+CONFIG_DEBUG_NOTIFIERS=y
+# CONFIG_DEBUG_RSEQ is not set
+# CONFIG_DEBUG_SHIRQ is not set
+# CONFIG_DEBUG_STACKOVERFLOW is not set
+# CONFIG_DEBUG_VM is not set
+CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
+CONFIG_DEFAULT_RENO=y
+# CONFIG_DEFAULT_SECURITY_APPARMOR is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+# CONFIG_DEFAULT_SECURITY_SELINUX is not set
+CONFIG_DEFAULT_TCP_CONG="reno"
+# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
+CONFIG_DEV_DAX_KMEM=m
+CONFIG_DEV_DAX=m
+CONFIG_DEV_DAX_PMEM_COMPAT=m
+CONFIG_DEV_DAX_PMEM=m
+CONFIG_DEVFREQ_GOV_PASSIVE=m
+CONFIG_DEVFREQ_GOV_PERFORMANCE=y
+CONFIG_DEVFREQ_GOV_POWERSAVE=y
+CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
+CONFIG_DEVFREQ_GOV_USERSPACE=y
+CONFIG_DEVFREQ_THERMAL=y
+CONFIG_DEVICE_PRIVATE=y
+CONFIG_DEV_PAGEMAP_OPS=y
+# CONFIG_DLM_DEBUG is not set
+CONFIG_DLN2_ADC=m
+CONFIG_DMA_DECLARE_COHERENT=y
+CONFIG_DMA_OF=y
+CONFIG_DMARD06=m
+CONFIG_DMARD09=m
+CONFIG_DMA_VIRTUAL_CHANNELS=m
+# CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING is not set
+# CONFIG_DM_DEBUG is not set
+CONFIG_DM_ERA=m
+# CONFIG_DM_UNSTRIPED is not set
+# CONFIG_DM_VERITY_FEC is not set
+# CONFIG_DM_WRITECACHE is not set
+CONFIG_DNS_RESOLVER=y
+CONFIG_DP83867_PHY=m
+CONFIG_DP83TC811_PHY=m
+# CONFIG_DPM_WATCHDOG is not set
+CONFIG_DPOT_DAC=m
+# CONFIG_DRM_AMD_DC_DCN2_1 is not set
+CONFIG_DRM_ARCPGU=m
+CONFIG_DRM_ATI_PCIGART=y
+CONFIG_DRM_CDNS_DSI=m
+CONFIG_DRM_DUMB_VGA_DAC=m
+CONFIG_DRM_DW_HDMI_AHB_AUDIO=m
+CONFIG_DRM_DW_HDMI_CEC=m
+CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
+CONFIG_DRM_DW_HDMI=m
+CONFIG_DRM_ETNAVIV=m
+CONFIG_DRM_ETNAVIV_THERMAL=y
+# CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set
+CONFIG_DRM_GEM_CMA_HELPER=y
+CONFIG_DRM_I2C_ADV7511_AUDIO=y
+CONFIG_DRM_I2C_ADV7511_CEC=y
+CONFIG_DRM_I2C_ADV7511=m
+CONFIG_DRM_I2C_ADV7533=y
+CONFIG_DRM_I2C_NXP_TDA998X=m
+CONFIG_DRM_KMS_CMA_HELPER=y
+CONFIG_DRM_LEGACY=y
+CONFIG_DRM_LVDS_ENCODER=m
+CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW=m
+CONFIG_DRM_MGA=m
+CONFIG_DRM_MIPI_DBI=m
+# CONFIG_DRM_NOUVEAU_SVM is not set
+CONFIG_DRM_NXP_PTN3460=m
+CONFIG_DRM_PANEL_ARM_VERSATILE=m
+CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m
+CONFIG_DRM_PANEL_ILITEK_IL9322=m
+# CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set
+CONFIG_DRM_PANEL_INNOLUX_P079ZCA=m
+CONFIG_DRM_PANEL_JDI_LT070ME05000=m
+CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04=m
+CONFIG_DRM_PANEL_LG_LB035Q02=m
+CONFIG_DRM_PANEL_LG_LG4573=m
+CONFIG_DRM_PANEL_LVDS=m
+CONFIG_DRM_PANEL_NEC_NL8048HL11=m
+CONFIG_DRM_PANEL_NOVATEK_NT39016=m
+CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO=m
+CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=m
+CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m
+# CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS is not set
+CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00=m
+CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m
+CONFIG_DRM_PANEL_RAYDIUM_RM67191=m
+CONFIG_DRM_PANEL_RAYDIUM_RM68200=m
+CONFIG_DRM_PANEL_ROCKTECH_JH057N00900=m
+CONFIG_DRM_PANEL_RONBO_RB070D30=m
+CONFIG_DRM_PANEL_SAMSUNG_LD9040=m
+CONFIG_DRM_PANEL_SAMSUNG_S6D16D0=m
+CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2=m
+CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=m
+# CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set
+CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0=m
+CONFIG_DRM_PANEL_SEIKO_43WVF1G=m
+CONFIG_DRM_PANEL_SHARP_LQ101R1SX01=m
+CONFIG_DRM_PANEL_SHARP_LS037V7DW01=m
+CONFIG_DRM_PANEL_SHARP_LS043T1LE01=m
+CONFIG_DRM_PANEL_SIMPLE=m
+CONFIG_DRM_PANEL_SITRONIX_ST7701=m
+CONFIG_DRM_PANEL_SITRONIX_ST7789V=m
+CONFIG_DRM_PANEL_SONY_ACX565AKM=m
+CONFIG_DRM_PANEL_TPO_TD028TTEC1=m
+CONFIG_DRM_PANEL_TPO_TD043MTEA1=m
+CONFIG_DRM_PANEL_TPO_TPG110=m
+CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA=m
+CONFIG_DRM_PARADE_PS8622=m
+CONFIG_DRM_R128=m
+CONFIG_DRM_RCAR_DW_HDMI=m
+# CONFIG_DRM_RCAR_LVDS is not set
+CONFIG_DRM_SAVAGE=m
+CONFIG_DRM_SII902X=m
+CONFIG_DRM_SII9234=m
+CONFIG_DRM_SIL_SII8620=m
+CONFIG_DRM_SIS=m
+CONFIG_DRM_TDFX=m
+CONFIG_DRM_THINE_THC63LVD1024=m
+CONFIG_DRM_TI_SN65DSI86=m
+CONFIG_DRM_TI_TFP410=m
+CONFIG_DRM_TOSHIBA_TC358764=m
+CONFIG_DRM_TOSHIBA_TC358767=m
+CONFIG_DRM_VIA=m
+CONFIG_DRM_VIRTIO_GPU=m
+CONFIG_DRM_VKMS=m
+CONFIG_DRM_VM=y
+CONFIG_DS1682=m
+CONFIG_DS1803=m
+CONFIG_DS4424=m
+CONFIG_DTC=y
+CONFIG_DTL=y
+CONFIG_DUMMY_IRQ=m
+CONFIG_DVB_ASCOT2E=m
+CONFIG_DVB_AV7110_IR=y
+CONFIG_DVB_AV7110=m
+CONFIG_DVB_AV7110_OSD=y
+# CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG is not set
+CONFIG_DVB_B2C2_FLEXCOP_PCI=m
+CONFIG_DVB_BT8XX=m
+CONFIG_DVB_BUDGET_AV=m
+CONFIG_DVB_BUDGET_CI=m
+CONFIG_DVB_BUDGET_CORE=m
+CONFIG_DVB_BUDGET=m
+CONFIG_DVB_BUDGET_PATCH=m
+CONFIG_DVB_CX24110=m
+CONFIG_DVB_CX24117=m
+CONFIG_DVB_CXD2099=m
+# CONFIG_DVB_CXD2880 is not set
+CONFIG_DVB_DDBRIDGE=m
+# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set
+# CONFIG_DVB_DIB9000 is not set
+CONFIG_DVB_DM1105=m
+CONFIG_DVB_DUMMY_FE=m
+# CONFIG_DVB_FIREDTV is not set
+CONFIG_DVB_HELENE=m
+CONFIG_DVB_HOPPER=m
+CONFIG_DVB_HORUS3A=m
+CONFIG_DVB_ISL6405=m
+CONFIG_DVB_L64781=m
+# CONFIG_DVB_LGS8GL5 is not set
+CONFIG_DVB_LNBH25=m
+# CONFIG_DVB_LNBH29 is not set
+CONFIG_DVB_MANTIS=m
+CONFIG_DVB_MAX_ADAPTERS=8
+CONFIG_DVB_MB86A16=m
+# CONFIG_DVB_MN88443X is not set
+CONFIG_DVB_MXL5XX=m
+CONFIG_DVB_NETUP_UNIDVB=m
+CONFIG_DVB_NET=y
+CONFIG_DVB_NGENE=m
+CONFIG_DVB_OR51132=m
+CONFIG_DVB_OR51211=m
+CONFIG_DVB_PLATFORM_DRIVERS=y
+CONFIG_DVB_PLUTO2=m
+CONFIG_DVB_PT1=m
+CONFIG_DVB_PT3=m
+# CONFIG_DVB_S5H1432 is not set
+CONFIG_DVB_SMIPCIE=m
+CONFIG_DVB_SP8870=m
+CONFIG_DVB_SP887X=m
+CONFIG_DVB_STV0367=m
+CONFIG_DVB_STV0910=m
+CONFIG_DVB_STV6111=m
+CONFIG_DVB_TDA10021=m
+CONFIG_DVB_TDA665x=m
+CONFIG_DVB_TDA8261=m
+CONFIG_DVB_TUA6100=m
+# CONFIG_DVB_USB_CXUSB_ANALOG is not set
+CONFIG_DVB_VES1X93=m
+CONFIG_DVB_ZL10036=m
+CONFIG_DW_AXI_DMAC=m
+# CONFIG_DWC_XLGMAC is not set
+# CONFIG_DW_EDMA is not set
+# CONFIG_DW_EDMA_PCIE is not set
+CONFIG_DW_I3C_MASTER=m
+# CONFIG_DWMAC_DWC_QOS_ETH is not set
+CONFIG_DWMAC_GENERIC=m
+CONFIG_DW_WATCHDOG=m
+CONFIG_EDAC_CPC925=m
+CONFIG_EEH=y
+CONFIG_EEPROM_93XX46=m
+CONFIG_EEPROM_AT25=m
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_ENC28J60=m
+# CONFIG_ENC28J60_WRITEVERIFY is not set
+CONFIG_ENCRYPTED_KEYS=m
+CONFIG_ENCX24J600=m
+CONFIG_ENVELOPE_DETECTOR=m
+CONFIG_EPAPR_BOOT=y
+CONFIG_EPAPR_PARAVIRT=y
+# CONFIG_EROFS_FS_ZIP is not set
+CONFIG_ETEXT_SHIFT=12
+# CONFIG_EXFAT_DEBUG_MSG is not set
+CONFIG_EXFAT_DEFAULT_CODEPAGE=437
+CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
+# CONFIG_EXFAT_DELAYED_SYNC is not set
+CONFIG_EXFAT_DISCARD=y
+CONFIG_EXFAT_DONT_MOUNT_VFAT=y
+CONFIG_EXFAT_FS=m
+# CONFIG_EXFAT_KERNEL_DEBUG is not set
+CONFIG_EXPERT=y
+CONFIG_EXTCON_ADC_JACK=m
+CONFIG_EXTCON_ARIZONA=m
+CONFIG_EXTCON_GPIO=m
+CONFIG_EXTCON_MAX14577=m
+CONFIG_EXTCON_MAX3355=m
+CONFIG_EXTCON_MAX77693=m
+CONFIG_EXTCON_MAX77843=m
+CONFIG_EXTCON_MAX8997=m
+CONFIG_EXTCON_PALMAS=m
+CONFIG_EXTCON_PTN5150=m
+CONFIG_EXTCON_RT8973A=m
+CONFIG_EXTCON_SM5502=m
+CONFIG_EXTCON_USB_GPIO=m
+CONFIG_EXTRA_TARGETS=""
+CONFIG_EZCHIP_NPS_MANAGEMENT_ENET=m
+CONFIG_EZX_PCAP=y
+CONFIG_F2FS_CHECK_FS=y
+CONFIG_FA_DUMP=y
+# CONFIG_FANOTIFY_ACCESS_PERMISSIONS is not set
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_FAT_DEFAULT_UTF8=y
+# CONFIG_FAULT_INJECTION is not set
+CONFIG_FB_BACKLIGHT=m
+CONFIG_FB_IBM_GXT4500=m
+CONFIG_FB_MACMODES=y
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_OF=y
+CONFIG_FB_OPENCORES=m
+CONFIG_FB_SIMPLE=y
+CONFIG_FB_SM712=m
+CONFIG_FB_SM750=m
+CONFIG_FB_SSD1307=m
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_FOPS=m
+CONFIG_FB_SYS_IMAGEBLIT=m
+CONFIG_FB_TFT_AGM1264K_FL=m
+CONFIG_FB_TFT_BD663474=m
+CONFIG_FB_TFT_HX8340BN=m
+CONFIG_FB_TFT_HX8347D=m
+CONFIG_FB_TFT_HX8353D=m
+CONFIG_FB_TFT_HX8357D=m
+CONFIG_FB_TFT_ILI9163=m
+CONFIG_FB_TFT_ILI9320=m
+CONFIG_FB_TFT_ILI9325=m
+CONFIG_FB_TFT_ILI9340=m
+CONFIG_FB_TFT_ILI9341=m
+CONFIG_FB_TFT_ILI9481=m
+CONFIG_FB_TFT_ILI9486=m
+CONFIG_FB_TFT=m
+CONFIG_FB_TFT_PCD8544=m
+CONFIG_FB_TFT_RA8875=m
+CONFIG_FB_TFT_S6D02A1=m
+CONFIG_FB_TFT_S6D1121=m
+# CONFIG_FB_TFT_SH1106 is not set
+CONFIG_FB_TFT_SSD1289=m
+CONFIG_FB_TFT_SSD1305=m
+CONFIG_FB_TFT_SSD1306=m
+CONFIG_FB_TFT_SSD1331=m
+CONFIG_FB_TFT_SSD1351=m
+CONFIG_FB_TFT_ST7735R=m
+CONFIG_FB_TFT_ST7789V=m
+CONFIG_FB_TFT_TINYLCD=m
+CONFIG_FB_TFT_TLS8204=m
+CONFIG_FB_TFT_UC1611=m
+CONFIG_FB_TFT_UC1701=m
+CONFIG_FB_TFT_UPD161704=m
+CONFIG_FB_TFT_WATTEROTT=m
+CONFIG_FB_UDL=m
+CONFIG_FB_UVESA=m
+# CONFIG_FB_VIRTUAL is not set
+CONFIG_FIREWIRE_SERIAL=m
+CONFIG_FIRMWARE_EDID=y
+CONFIG_FIXED_PHY=y
+# CONFIG_FONT_6x10 is not set
+CONFIG_FONT_AUTOSELECT=y
+# CONFIG_FONT_TER16x32 is not set
+CONFIG_FORCE_MAX_ZONEORDER=13
+CONFIG_FORCE_PCI=y
+CONFIG_FORCE_SMP=y
+CONFIG_FPGA_MGR_ICE40_SPI=m
+CONFIG_FRAME_WARN=2048
+# CONFIG_FSCACHE_OBJECT_LIST is not set
+# CONFIG_FSCACHE_STATS is not set
+CONFIG_FS_DAX_PMD=y
+CONFIG_FSI=m
+CONFIG_FSI_MASTER_GPIO=m
+CONFIG_FSI_MASTER_HUB=m
+# CONFIG_FSI_NEW_DEV_NODE is not set
+CONFIG_FSI_OCC=m
+CONFIG_FSI_SBEFIFO=m
+CONFIG_FSI_SCOM=m
+CONFIG_FSL_EDMA=m
+CONFIG_FSL_GUTS=y
+CONFIG_FSL_LBC=y
+# CONFIG_FS_VERITY is not set
+# CONFIG_FTR_FIXUP_SELFTEST is not set
+# CONFIG_FUNCTION_PROFILER is not set
+CONFIG_FUSION_MAX_SGE=128
+# CONFIG_FW_LOADER_COMPRESS is not set
+# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
+CONFIG_FW_LOADER_USER_HELPER=y
+CONFIG_FWTTY_MAX_CARD_PORTS=32
+CONFIG_FWTTY_MAX_TOTAL_PORTS=64
+# CONFIG_GADGET_UAC1_LEGACY is not set
+CONFIG_GADGET_UAC1=y
+# CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set
+CONFIG_GCC_VERSION=90300
+# CONFIG_GDB_SCRIPTS is not set
+CONFIG_GEMINI_ETHERNET=m
+CONFIG_GENERIC_ADC_BATTERY=m
+CONFIG_GENERIC_ADC_THERMAL=m
+CONFIG_GENERIC_CPU=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_IRQ_CHIP=y
+CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
+CONFIG_GENERIC_PHY_MIPI_DPHY=y
+CONFIG_GENERIC_PINCTRL_GROUPS=y
+CONFIG_GENERIC_PINMUX_FUNCTIONS=y
+# CONFIG_GEN_RTC is not set
+CONFIG_GENTOO_LINUX_INIT_SCRIPT=y
+CONFIG_GENTOO_LINUX_INIT_SYSTEMD=y
+CONFIG_GENTOO_LINUX_PORTAGE=y
+CONFIG_GENTOO_LINUX_UDEV=y
+CONFIG_GENTOO_LINUX=y
+CONFIG_GENWQE=m
+CONFIG_GENWQE_PLATFORM_ERROR_RECOVERY=0
+CONFIG_GNSS=m
+CONFIG_GNSS_MTK_SERIAL=m
+CONFIG_GNSS_SERIAL=m
+CONFIG_GNSS_SIRF_SERIAL=m
+CONFIG_GNSS_UBX_SERIAL=m
+CONFIG_GP2AP020A00F=m
+CONFIG_GPIO_74X164=m
+CONFIG_GPIO_74XX_MMIO=m
+CONFIG_GPIO_ADNP=m
+CONFIG_GPIO_ADP5520=m
+CONFIG_GPIO_ADP5588=m
+CONFIG_GPIO_ALTERA=m
+CONFIG_GPIO_ARIZONA=m
+CONFIG_GPIO_CADENCE=m
+CONFIG_GPIO_DA9052=m
+CONFIG_GPIO_DA9055=m
+CONFIG_GPIO_DLN2=m
+CONFIG_GPIO_DWAPB=m
+CONFIG_GPIO_FTGPIO010=y
+CONFIG_GPIO_GENERIC_PLATFORM=m
+CONFIG_GPIO_GENERIC=y
+CONFIG_GPIO_GRGPIO=m
+CONFIG_GPIO_GW_PLD=m
+CONFIG_GPIO_HLWD=m
+CONFIG_GPIO_JANZ_TTL=m
+CONFIG_GPIO_KEMPLD=m
+CONFIG_GPIO_LP3943=m
+CONFIG_GPIO_LP873X=m
+CONFIG_GPIO_LP87565=m
+CONFIG_GPIO_MADERA=m
+CONFIG_GPIO_MAX3191X=m
+CONFIG_GPIO_MAX7300=m
+CONFIG_GPIO_MAX7301=m
+CONFIG_GPIO_MAX730X=m
+CONFIG_GPIO_MAX732X=m
+CONFIG_GPIO_MAX77620=m
+CONFIG_GPIO_MAX77650=m
+CONFIG_GPIO_MB86S7X=m
+CONFIG_GPIO_MC33880=m
+CONFIG_GPIO_MENZ127=m
+CONFIG_GPIO_MOCKUP=m
+CONFIG_GPIO_MOXTET=m
+CONFIG_GPIO_PALMAS=y
+CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_PCIE_IDIO_24=m
+CONFIG_GPIO_PISOSR=m
+CONFIG_GPIO_RC5T583=y
+CONFIG_GPIO_RDC321X=m
+CONFIG_GPIO_SAMA5D2_PIOBU=m
+CONFIG_GPIO_STMPE=y
+CONFIG_GPIO_SYSCON=m
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_TC3589X=y
+CONFIG_GPIO_TPIC2810=m
+CONFIG_GPIO_TPS65086=m
+CONFIG_GPIO_TPS65218=m
+CONFIG_GPIO_TPS6586X=y
+CONFIG_GPIO_TPS65910=y
+CONFIG_GPIO_TPS65912=m
+CONFIG_GPIO_TQMX86=m
+CONFIG_GPIO_TWL4030=m
+CONFIG_GPIO_TWL6040=m
+CONFIG_GPIO_UCB1400=m
+CONFIG_GPIO_WATCHDOG=m
+CONFIG_GPIO_WM831X=m
+CONFIG_GPIO_WM8350=m
+CONFIG_GPIO_WM8994=m
+CONFIG_GPIO_XILINX=y
+CONFIG_GPIO_XRA1403=m
+CONFIG_GREYBUS_AUDIO=m
+CONFIG_GREYBUS_BOOTROM=m
+CONFIG_GREYBUS_BRIDGED_PHY=m
+CONFIG_GREYBUS_ES2=m
+CONFIG_GREYBUS_FIRMWARE=m
+CONFIG_GREYBUS_GPIO=m
+CONFIG_GREYBUS_HID=m
+CONFIG_GREYBUS_I2C=m
+CONFIG_GREYBUS_LIGHT=m
+CONFIG_GREYBUS_LOG=m
+CONFIG_GREYBUS_LOOPBACK=m
+CONFIG_GREYBUS=m
+CONFIG_GREYBUS_POWER=m
+CONFIG_GREYBUS_PWM=m
+CONFIG_GREYBUS_RAW=m
+CONFIG_GREYBUS_SDIO=m
+CONFIG_GREYBUS_SPI=m
+CONFIG_GREYBUS_UART=m
+CONFIG_GREYBUS_USB=m
+CONFIG_GREYBUS_VIBRATOR=m
+CONFIG_GS_FPGABOOT=m
+# CONFIG_GVE is not set
+CONFIG_HABANA_AI=m
+# CONFIG_HARDENED_USERCOPY_PAGESPAN is not set
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_HAVE_ARCH_HUGE_VMAP=y
+CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y
+CONFIG_HAVE_ARCH_NVRAM_OPS=y
+CONFIG_HAVE_ARCH_SOFT_DIRTY=y
+CONFIG_HAVE_BOOTMEM_INFO_NODE=y
+CONFIG_HAVE_CONTEXT_TRACKING=y
+CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
+CONFIG_HAVE_HARDLOCKUP_DETECTOR_ARCH=y
+CONFIG_HAVE_IMA_KEXEC=y
+CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y
+CONFIG_HAVE_KVM_VCPU_ASYNC_IOCTL=y
+CONFIG_HAVE_LD_DEAD_CODE_DATA_ELIMINATION=y
+CONFIG_HAVE_LIVEPATCH=y
+CONFIG_HAVE_MEMORYLESS_NODES=y
+CONFIG_HAVE_MMU_GATHER_PAGE_SIZE=y
+CONFIG_HAVE_NMI_WATCHDOG=y
+CONFIG_HAVE_RELIABLE_STACKTRACE=y
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING=y
+# CONFIG_HCALL_STATS is not set
+CONFIG_HDC100X=m
+CONFIG_HI8435=m
+# CONFIG_HID_ACCUTOUCH is not set
+CONFIG_HID_CREATIVE_SB0540=m
+CONFIG_HID_GENERIC=m
+# CONFIG_HID_GT683R is not set
+# CONFIG_HID_ITE is not set
+# CONFIG_HID_JABRA is not set
+CONFIG_HID=m
+CONFIG_HID_MAGICMOUSE=m
+# CONFIG_HID_NTI is not set
+CONFIG_HID_NTRIG=m
+# CONFIG_HID_RETRODE is not set
+CONFIG_HID_SENSOR_CUSTOM_SENSOR=m
+CONFIG_HID_SENSOR_PRESS=m
+CONFIG_HID_SENSOR_PROX=m
+# CONFIG_HIST_TRIGGERS is not set
+CONFIG_HMC6352=m
+# CONFIG_HOLTEK_FF is not set
+# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
+CONFIG_HOSTAP_FIRMWARE=y
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_PCI=m
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOTPLUG_PCI_CPCI=y
+CONFIG_HOTPLUG_PCI_POWERNV=m
+CONFIG_HOTPLUG_PCI_RPA_DLPAR=m
+CONFIG_HOTPLUG_PCI_RPA=m
+# CONFIG_HOTPLUG_PCI_SHPC is not set
+CONFIG_HP03=m
+CONFIG_HP100=m
+CONFIG_HP206C=m
+CONFIG_HPFS_FS=m
+CONFIG_HSA_AMD=y
+CONFIG_HSI_BOARDINFO=y
+CONFIG_HSI_CHAR=m
+CONFIG_HSI=m
+CONFIG_HSR=m
+CONFIG_HT16K33=m
+CONFIG_HTC_I2CPLD=y
+CONFIG_HTC_PASIC3=m
+CONFIG_HTU21=m
+CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y
+CONFIG_HVC_CONSOLE=y
+CONFIG_HVC_DRIVER=y
+CONFIG_HVC_IRQ=y
+CONFIG_HVC_OLD_HVSI=y
+CONFIG_HVC_OPAL=y
+CONFIG_HVC_RTAS=y
+CONFIG_HVCS=m
+# CONFIG_HVC_UDBG is not set
+CONFIG_HV_PERF_CTRS=y
+# CONFIG_HWLAT_TRACER is not set
+CONFIG_HWPOISON_INJECT=m
+CONFIG_HW_RANDOM=m
+CONFIG_HW_RANDOM_POWERNV=m
+CONFIG_HW_RANDOM_PSERIES=m
+CONFIG_HW_RANDOM_VIRTIO=m
+CONFIG_HX711=m
+# CONFIG_I2C_ALI1535 is not set
+# CONFIG_I2C_ALI1563 is not set
+# CONFIG_I2C_ALI15X3 is not set
+# CONFIG_I2C_AMD756 is not set
+# CONFIG_I2C_AMD8111 is not set
+CONFIG_I2C_ARB_GPIO_CHALLENGE=m
+CONFIG_I2C_CBUS_GPIO=m
+CONFIG_I2C_DEMUX_PINCTRL=m
+# CONFIG_I2C_DESIGNWARE_SLAVE is not set
+CONFIG_I2C_DLN2=m
+CONFIG_I2C_FSI=m
+# CONFIG_I2C_GPIO_FAULT_INJECTOR is not set
+CONFIG_I2C_GPIO=m
+# CONFIG_I2C_I801 is not set
+# CONFIG_I2C_ISCH is not set
+CONFIG_I2C_KEMPLD=m
+CONFIG_I2C_MPC=m
+CONFIG_I2C_MUX_GPIO=m
+CONFIG_I2C_MUX_GPMUX=m
+# CONFIG_I2C_MUX_LTC4306 is not set
+CONFIG_I2C_MUX_PCA9541=m
+CONFIG_I2C_MUX_PCA954x=m
+CONFIG_I2C_MUX_PINCTRL=m
+CONFIG_I2C_MUX_REG=m
+# CONFIG_I2C_NFORCE2 is not set
+CONFIG_I2C_OCORES=m
+CONFIG_I2C_OPAL=y
+# CONFIG_I2C_PIIX4 is not set
+CONFIG_I2C_ROBOTFUZZ_OSIF=m
+CONFIG_I2C_SI470X=m
+CONFIG_I2C_SI4713=m
+# CONFIG_I2C_SIS5595 is not set
+# CONFIG_I2C_SIS630 is not set
+# CONFIG_I2C_SIS96X is not set
+# CONFIG_I2C_STUB is not set
+CONFIG_I2C_TAOS_EVM=m
+# CONFIG_I2C_VIA is not set
+# CONFIG_I2C_VIAPRO is not set
+CONFIG_I2C_XILINX=m
+CONFIG_I2C=y
+CONFIG_I3C=m
+CONFIG_I40E_DCB=y
+CONFIG_IAQCORE=m
+CONFIG_IBM_BSR=m
+CONFIG_IBMVETH=m
+CONFIG_IBMVIO=y
+CONFIG_IBMVMC=m
+CONFIG_IBMVNIC=m
+CONFIG_ICS932S401=m
+CONFIG_IDLE_INJECT=y
+CONFIG_IDLE_PAGE_TRACKING=y
+# CONFIG_IEEE802154_6LOWPAN is not set
+# CONFIG_IEEE802154_CC2520 is not set
+CONFIG_IEEE802154_HWSIM=m
+# CONFIG_IEEE802154_MCR20A is not set
+CONFIG_IEEE802154_NL802154_EXPERIMENTAL=y
+CONFIG_IIO_ADIS_LIB_BUFFER=y
+CONFIG_IIO_ADIS_LIB=m
+CONFIG_IIO_HRTIMER_TRIGGER=m
+CONFIG_IIO_MS_SENSORS_I2C=m
+CONFIG_IIO_MUX=m
+CONFIG_IIO_RESCALE=m
+# CONFIG_IIO_SIMPLE_DUMMY_BUFFER is not set
+# CONFIG_IIO_SIMPLE_DUMMY_EVENTS is not set
+CONFIG_IIO_SIMPLE_DUMMY=m
+CONFIG_IIO_SSP_SENSORHUB=m
+CONFIG_IIO_SSP_SENSORS_COMMONS=m
+CONFIG_IIO_ST_LSM6DSX_I3C=m
+CONFIG_IIO_ST_PRESS_I2C=m
+CONFIG_IIO_ST_PRESS=m
+CONFIG_IIO_ST_PRESS_SPI=m
+CONFIG_IIO_SYSFS_TRIGGER=m
+CONFIG_IIO_TRIGGERED_EVENT=m
+CONFIG_IKHEADERS=m
+CONFIG_ILLEGAL_POINTER_VALUE=0x5deadbeef0000000
+# CONFIG_IMA is not set
+CONFIG_IMG_ASCII_LCD=m
+CONFIG_INA2XX_ADC=m
+CONFIG_INET_DCCP_DIAG=m
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+CONFIG_INET_UDP_DIAG=y
+CONFIG_INFINIBAND_BNXT_RE=m
+CONFIG_INFINIBAND_EFA=m
+# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set
+CONFIG_INFINIBAND_QEDR=m
+# CONFIG_INPUT_88PM80X_ONKEY is not set
+# CONFIG_INPUT_88PM860X_ONKEY is not set
+CONFIG_INPUT_AD714X_I2C=m
+CONFIG_INPUT_AD714X=m
+CONFIG_INPUT_AD714X_SPI=m
+CONFIG_INPUT_ADXL34X_I2C=m
+CONFIG_INPUT_ADXL34X=m
+CONFIG_INPUT_ADXL34X_SPI=m
+CONFIG_INPUT_ARIZONA_HAPTICS=m
+CONFIG_INPUT_ATMEL_CAPTOUCH=m
+CONFIG_INPUT_AXP20X_PEK=m
+CONFIG_INPUT_BMA150=m
+CONFIG_INPUT_CPCAP_PWRBUTTON=m
+CONFIG_INPUT_DA9052_ONKEY=m
+# CONFIG_INPUT_DA9055_ONKEY is not set
+CONFIG_INPUT_DA9063_ONKEY=m
+CONFIG_INPUT_DRV260X_HAPTICS=m
+CONFIG_INPUT_DRV2665_HAPTICS=m
+CONFIG_INPUT_DRV2667_HAPTICS=m
+CONFIG_INPUT_EVDEV=m
+CONFIG_INPUT_GPIO_BEEPER=m
+CONFIG_INPUT_GPIO_DECODER=m
+# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
+CONFIG_INPUT_IMS_PCU=m
+CONFIG_INPUT_LEDS=m
+CONFIG_INPUT_MAX77650_ONKEY=m
+CONFIG_INPUT_MAX77693_HAPTIC=m
+# CONFIG_INPUT_MAX8925_ONKEY is not set
+# CONFIG_INPUT_MAX8997_HAPTIC is not set
+CONFIG_INPUT_MC13783_PWRBUTTON=m
+CONFIG_INPUT_MMA8450=m
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MSM_VIBRATOR=m
+# CONFIG_INPUT_PALMAS_PWRBUTTON is not set
+# CONFIG_INPUT_PCAP is not set
+CONFIG_INPUT_PCF50633_PMU=m
+CONFIG_INPUT_PCF8574=m
+CONFIG_INPUT_PWM_VIBRA=m
+CONFIG_INPUT_REGULATOR_HAPTIC=m
+CONFIG_INPUT_RETU_PWRBUTTON=m
+CONFIG_INPUT_RK805_PWRKEY=m
+CONFIG_INPUT_STPMIC1_ONKEY=m
+CONFIG_INPUT_TPS65218_PWRBUTTON=m
+# CONFIG_INPUT_TWL4030_PWRBUTTON is not set
+# CONFIG_INPUT_TWL4030_VIBRA is not set
+# CONFIG_INPUT_TWL6040_VIBRA is not set
+# CONFIG_INPUT_WM831X_ON is not set
+# CONFIG_INTEGRITY_SIGNATURE is not set
+# CONFIG_INTEL_TH_DEBUG is not set
+CONFIG_INTEL_TH_GTH=m
+CONFIG_INTEL_TH=m
+CONFIG_INTEL_TH_MSU=m
+CONFIG_INTEL_TH_PCI=m
+CONFIG_INTEL_TH_PTI=m
+CONFIG_INTEL_TH_STH=m
+CONFIG_INTERCONNECT=m
+CONFIG_INV_MPU6050_SPI=m
+CONFIG_IO_EVENT_IRQ=y
+CONFIG_IOMMU_HELPER=y
+CONFIG_IONIC=m
+# CONFIG_IP6_NF_SECURITY is not set
+CONFIG_IPACK_BUS=m
+# CONFIG_IP_DCCP_CCID2_DEBUG is not set
+# CONFIG_IP_DCCP_CCID3_DEBUG is not set
+CONFIG_IP_DCCP_CCID3=y
+# CONFIG_IP_DCCP_DEBUG is not set
+CONFIG_IP_DCCP=m
+CONFIG_IP_DCCP_TFRC_LIB=y
+# CONFIG_IP_FIB_TRIE_STATS is not set
+CONFIG_IPMI_POWERNV=m
+# CONFIG_IP_NF_SECURITY is not set
+# CONFIG_IPV6_MROUTE is not set
+CONFIG_IPV6_SEG6_BPF=y
+CONFIG_IPV6=y
+# CONFIG_IP_VS_MH is not set
+CONFIG_IR_GPIO_CIR=m
+CONFIG_IR_GPIO_TX=m
+CONFIG_IR_HIX5HD2=m
+CONFIG_IR_PWM_TX=m
+CONFIG_IRQ_ALL_CPUS=y
+CONFIG_IRQ_BYPASS_MANAGER=y
+CONFIG_IRQCHIP=y
+CONFIG_IRQ_SIM=y
+CONFIG_IR_SPI=m
+CONFIG_ISI=m
+CONFIG_ISL29125=m
+CONFIG_ISL29501=m
+CONFIG_ITG3200=m
+# CONFIG_IWLEGACY_DEBUG is not set
+CONFIG_IWLWIFI_BCAST_FILTERING=y
+# CONFIG_IWLWIFI_DEBUGFS is not set
+# CONFIG_IWLWIFI_DEBUG is not set
+# CONFIG_IXGBE_DCB is not set
+# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
+# CONFIG_JFFS2_CMODE_NONE is not set
+CONFIG_JFFS2_CMODE_PRIORITY=y
+# CONFIG_JFFS2_CMODE_SIZE is not set
+CONFIG_JFFS2_COMPRESSION_OPTIONS=y
+CONFIG_JFFS2_LZO=y
+# CONFIG_JFFS2_RUBIN is not set
+# CONFIG_JFS_STATISTICS is not set
+CONFIG_JOYSTICK_AS5011=m
+CONFIG_JOYSTICK_FSIA6B=m
+# CONFIG_JOYSTICK_PSXPAD_SPI is not set
+# CONFIG_JOYSTICK_PXRC is not set
+CONFIG_JSA1212=m
+# CONFIG_JUMP_LABEL_FEATURE_CHECKS is not set
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KARMA_PARTITION is not set
+# CONFIG_KCOV is not set
+CONFIG_KEMPLD_WDT=m
+CONFIG_KERNEL_START=0xc000000000000000
+CONFIG_KEXEC_ELF=y
+CONFIG_KEXEC_FILE=y
+CONFIG_KEYBOARD_ADC=m
+# CONFIG_KEYBOARD_ADP5520 is not set
+CONFIG_KEYBOARD_ADP5588=m
+CONFIG_KEYBOARD_ADP5589=m
+CONFIG_KEYBOARD_CAP11XX=m
+CONFIG_KEYBOARD_LM8323=m
+CONFIG_KEYBOARD_LM8333=m
+CONFIG_KEYBOARD_MATRIX=m
+CONFIG_KEYBOARD_MAX7359=m
+CONFIG_KEYBOARD_MCS=m
+CONFIG_KEYBOARD_MPR121=m
+# CONFIG_KEYBOARD_MTK_PMIC is not set
+CONFIG_KEYBOARD_OMAP4=m
+CONFIG_KEYBOARD_OPENCORES=m
+CONFIG_KEYBOARD_QT2160=m
+CONFIG_KEYBOARD_STMPE=m
+CONFIG_KEYBOARD_TC3589X=m
+CONFIG_KEYBOARD_TCA6416=m
+CONFIG_KEYBOARD_TCA8418=m
+# CONFIG_KEYBOARD_TWL4030 is not set
+CONFIG_KEYS_COMPAT=y
+# CONFIG_KEYS_REQUEST_CACHE is not set
+# CONFIG_KGDB is not set
+CONFIG_KMX61=m
+CONFIG_KS7010=m
+CONFIG_KS8842=m
+CONFIG_KS8851=m
+CONFIG_KS8851_MLL=m
+CONFIG_KVM_BOOK3S_64_HANDLER=y
+CONFIG_KVM_BOOK3S_64_HV=m
+CONFIG_KVM_BOOK3S_64=m
+CONFIG_KVM_BOOK3S_64_PR=m
+CONFIG_KVM_BOOK3S_HANDLER=y
+# CONFIG_KVM_BOOK3S_HV_EXIT_TIMING is not set
+CONFIG_KVM_BOOK3S_HV_POSSIBLE=y
+CONFIG_KVM_BOOK3S_PR_POSSIBLE=y
+CONFIG_KVM_COMPAT=y
+CONFIG_KVM_XICS=y
+CONFIG_KVM_XIVE=y
+CONFIG_KVM=y
+CONFIG_KXSD9_I2C=m
+CONFIG_KXSD9=m
+CONFIG_KXSD9_SPI=m
+CONFIG_LAN743X=m
+CONFIG_LAPB=m
+# CONFIG_LATENCYTOP is not set
+CONFIG_LATTICE_ECP3_CONFIG=m
+CONFIG_LCD_AMS369FG06=m
+CONFIG_LCD_HX8357=m
+CONFIG_LCD_ILI922X=m
+CONFIG_LCD_ILI9320=m
+CONFIG_LCD_L4F00242T03=m
+CONFIG_LCD_LMS283GF05=m
+CONFIG_LCD_LMS501KF03=m
+CONFIG_LCD_LTV350QV=m
+CONFIG_LCD_TDO24M=m
+CONFIG_LCD_VGG2432A4=m
+# CONFIG_LD_DEAD_CODE_DATA_ELIMINATION is not set
+# CONFIG_LD_HEAD_STUB_CATCH is not set
+# CONFIG_LEDS_88PM860X is not set
+CONFIG_LEDS_AAT1290=m
+# CONFIG_LEDS_ADP5520 is not set
+CONFIG_LEDS_AN30259A=m
+CONFIG_LEDS_BCM6328=m
+CONFIG_LEDS_BCM6358=m
+CONFIG_LEDS_BD2802=m
+# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set
+CONFIG_LEDS_CPCAP=m
+CONFIG_LEDS_CR0014114=m
+# CONFIG_LEDS_DA903X is not set
+CONFIG_LEDS_DA9052=m
+CONFIG_LEDS_DAC124S085=m
+CONFIG_LEDS_IS31FL319X=m
+CONFIG_LEDS_IS31FL32XX=m
+CONFIG_LEDS_KTD2692=m
+CONFIG_LEDS_LM3533=m
+CONFIG_LEDS_LM355x=m
+# CONFIG_LEDS_LM3601X is not set
+CONFIG_LEDS_LM3642=m
+CONFIG_LEDS_LM3692X=m
+CONFIG_LEDS_LP5521=m
+CONFIG_LEDS_LP5523=m
+CONFIG_LEDS_LP5562=m
+CONFIG_LEDS_LP55XX_COMMON=m
+CONFIG_LEDS_LP8501=m
+# CONFIG_LEDS_LP8788 is not set
+CONFIG_LEDS_LP8860=m
+CONFIG_LEDS_LT3593=m
+CONFIG_LEDS_MAX77650=m
+# CONFIG_LEDS_MAX77693 is not set
+# CONFIG_LEDS_MAX8997 is not set
+CONFIG_LEDS_MC13783=m
+CONFIG_LEDS_MENF21BMC=m
+# CONFIG_LEDS_MT6323 is not set
+# CONFIG_LEDS_PCA955X_GPIO is not set
+CONFIG_LEDS_PCA955X=m
+CONFIG_LEDS_PCA963X=m
+CONFIG_LEDS_POWERNV=m
+CONFIG_LEDS_PWM=m
+CONFIG_LEDS_REGULATOR=m
+# CONFIG_LEDS_SPI_BYTE is not set
+CONFIG_LEDS_SYSCON=y
+CONFIG_LEDS_TCA6507=m
+CONFIG_LEDS_TLC591XX=m
+CONFIG_LEDS_TRIGGER_CPU=y
+# CONFIG_LEDS_TRIGGER_NETDEV is not set
+# CONFIG_LEDS_WM831X_STATUS is not set
+# CONFIG_LEDS_WM8350 is not set
+CONFIG_LIBERTAS_SPI=m
+# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
+CONFIG_LIBERTAS_THINFIRM=m
+CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_LIBFDT=y
+CONFIG_LIBNVDIMM=y
+CONFIG_LIDAR_LITE_V2=m
+CONFIG_LIQUIDIO=m
+CONFIG_LIQUIDIO_VF=m
+CONFIG_LKDTM=m
+CONFIG_LLC2=m
+CONFIG_LOG_BUF_SHIFT=19
+CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
+# CONFIG_LP8788_ADC is not set
+CONFIG_LPARCFG=y
+# CONFIG_LP_CONSOLE is not set
+CONFIG_LSM="yama,loadpin,safesetid,integrity"
+CONFIG_LTC2471=m
+CONFIG_LTC2485=m
+CONFIG_LTC2497=m
+CONFIG_LTC2632=m
+CONFIG_LTE_GDM724X=m
+CONFIG_LTR501=m
+CONFIG_M62332=m
+# CONFIG_MAC80211_HWSIM is not set
+CONFIG_MADERA_IRQ=m
+CONFIG_MAG3110=m
+CONFIG_MAILBOX_TEST=m
+CONFIG_MAILBOX=y
+CONFIG_MANAGER_SBS=m
+CONFIG_MANDATORY_FILE_LOCKING=y
+CONFIG_MANTIS_CORE=m
+CONFIG_MAX1027=m
+CONFIG_MAX11100=m
+CONFIG_MAX1118=m
+CONFIG_MAX30102=m
+CONFIG_MAX44000=m
+CONFIG_MAX517=m
+CONFIG_MAX5432=m
+CONFIG_MAX5481=m
+CONFIG_MAX5487=m
+CONFIG_MAX5821=m
+CONFIG_MAX63XX_WATCHDOG=m
+CONFIG_MAX77620_THERMAL=m
+CONFIG_MAX77620_WATCHDOG=m
+# CONFIG_MAX8925_POWER is not set
+CONFIG_MAX9611=m
+CONFIG_MAX_RAW_DEVS=256
+CONFIG_MC3230=m
+CONFIG_MCB_LPC=m
+CONFIG_MCB=m
+CONFIG_MCB_PCI=m
+CONFIG_MCP320X=m
+CONFIG_MCP3422=m
+CONFIG_MCP4131=m
+CONFIG_MCP4531=m
+CONFIG_MCP4725=m
+CONFIG_MCP4922=m
+CONFIG_MD_CLUSTER=m
+CONFIG_MDIO_BUS_MUX_GPIO=m
+CONFIG_MDIO_BUS_MUX=m
+CONFIG_MDIO_BUS_MUX_MMIOREG=m
+CONFIG_MDIO_BUS_MUX_MULTIPLEXER=m
+CONFIG_MDIO_BUS=y
+CONFIG_MDIO_CAVIUM=m
+CONFIG_MDIO_DEVICE=y
+CONFIG_MDIO_GPIO=m
+CONFIG_MDIO_HISI_FEMAC=m
+CONFIG_MDIO_OCTEON=m
+CONFIG_MDIO_THUNDER=m
+CONFIG_MEDIA_ALTERA_CI=m
+# CONFIG_MEDIA_CONTROLLER_REQUEST_API is not set
+CONFIG_MEDIA_PCI_SUPPORT=y
+CONFIG_MEDIA_TUNER_M88RS6000T=m
+# CONFIG_MEDIA_TUNER_MSI001 is not set
+CONFIG_MEDIA_TUNER_MT2131=m
+CONFIG_MEDIA_TUNER_MXL301RF=m
+CONFIG_MEDIA_TUNER_QM1D1B0004=m
+CONFIG_MEMCG_SWAP_ENABLED=y
+CONFIG_MEMORY_FAILURE=y
+CONFIG_MEMORY=y
+# CONFIG_MEM_SOFT_DIRTY is not set
+CONFIG_MEN_A21_WDT=m
+CONFIG_MENF21BMC_WATCHDOG=m
+# CONFIG_MENZ069_WATCHDOG is not set
+CONFIG_MEN_Z188_ADC=m
+CONFIG_MFD_88PM800=m
+CONFIG_MFD_88PM805=m
+CONFIG_MFD_88PM860X=y
+CONFIG_MFD_AAT2870_CORE=y
+CONFIG_MFD_ACT8945A=m
+CONFIG_MFD_ARIZONA_I2C=m
+CONFIG_MFD_ARIZONA_SPI=m
+CONFIG_MFD_ARIZONA=y
+CONFIG_MFD_AS3711=y
+CONFIG_MFD_AS3722=y
+CONFIG_MFD_ATMEL_FLEXCOM=m
+CONFIG_MFD_ATMEL_HLCDC=m
+CONFIG_MFD_AXP20X_I2C=m
+CONFIG_MFD_AXP20X=m
+CONFIG_MFD_BCM590XX=m
+CONFIG_MFD_CORE=y
+CONFIG_MFD_CPCAP=m
+# CONFIG_MFD_CS47L15 is not set
+CONFIG_MFD_CS47L24=y
+CONFIG_MFD_CS47L35=y
+CONFIG_MFD_CS47L85=y
+CONFIG_MFD_CS47L90=y
+# CONFIG_MFD_CS47L92 is not set
+CONFIG_MFD_DA9052_I2C=y
+CONFIG_MFD_DA9052_SPI=y
+CONFIG_MFD_DA9055=y
+CONFIG_MFD_DA9062=m
+CONFIG_MFD_DA9063=m
+CONFIG_MFD_DA9150=m
+CONFIG_MFD_DLN2=m
+CONFIG_MFD_HI6421_PMIC=m
+CONFIG_MFD_JANZ_CMODIO=m
+CONFIG_MFD_KEMPLD=m
+CONFIG_MFD_LM3533=m
+# CONFIG_MFD_LOCHNAGAR is not set
+CONFIG_MFD_LP3943=m
+CONFIG_MFD_LP8788=y
+CONFIG_MFD_MADERA_I2C=m
+CONFIG_MFD_MADERA=m
+CONFIG_MFD_MADERA_SPI=m
+CONFIG_MFD_MAX14577=m
+CONFIG_MFD_MAX77620=y
+CONFIG_MFD_MAX77650=m
+CONFIG_MFD_MAX77686=y
+CONFIG_MFD_MAX77693=m
+CONFIG_MFD_MAX77843=y
+CONFIG_MFD_MAX8907=m
+CONFIG_MFD_MAX8925=y
+CONFIG_MFD_MAX8997=y
+CONFIG_MFD_MAX8998=y
+CONFIG_MFD_MC13XXX_I2C=m
+CONFIG_MFD_MC13XXX=m
+CONFIG_MFD_MC13XXX_SPI=m
+CONFIG_MFD_MENF21BMC=m
+CONFIG_MFD_MT6397=m
+CONFIG_MFD_PALMAS=y
+CONFIG_MFD_PCF50633=m
+CONFIG_MFD_RC5T583=y
+CONFIG_MFD_RDC321X=m
+CONFIG_MFD_RETU=m
+CONFIG_MFD_RK808=m
+CONFIG_MFD_RN5T618=m
+# CONFIG_MFD_ROHM_BD70528 is not set
+# CONFIG_MFD_ROHM_BD718XX is not set
+CONFIG_MFD_RT5033=m
+# CONFIG_MFD_SEC_CORE is not set
+CONFIG_MFD_SI476X_CORE=m
+CONFIG_MFD_SKY81452=m
+CONFIG_MFD_SMSC=y
+CONFIG_MFD_STMFX=m
+CONFIG_MFD_STMPE=y
+CONFIG_MFD_STPMIC1=m
+CONFIG_MFD_SYSCON=y
+CONFIG_MFD_TC3589X=y
+CONFIG_MFD_TI_AM335X_TSCADC=m
+CONFIG_MFD_TI_LMU=m
+CONFIG_MFD_TI_LP873X=m
+CONFIG_MFD_TI_LP87565=m
+CONFIG_MFD_TPS65086=m
+CONFIG_MFD_TPS65090=y
+# CONFIG_MFD_TPS65217 is not set
+CONFIG_MFD_TPS65218=m
+CONFIG_MFD_TPS6586X=y
+CONFIG_MFD_TPS65910=y
+CONFIG_MFD_TPS65912_I2C=y
+CONFIG_MFD_TPS65912_SPI=y
+CONFIG_MFD_TPS65912=y
+CONFIG_MFD_TPS80031=y
+CONFIG_MFD_TQMX86=m
+CONFIG_MFD_TWL4030_AUDIO=y
+CONFIG_MFD_WM5102=y
+CONFIG_MFD_WM5110=y
+CONFIG_MFD_WM831X_I2C=y
+CONFIG_MFD_WM831X_SPI=y
+CONFIG_MFD_WM831X=y
+CONFIG_MFD_WM8350_I2C=y
+CONFIG_MFD_WM8350=y
+CONFIG_MFD_WM8400=y
+CONFIG_MFD_WM8994=m
+CONFIG_MFD_WM8997=y
+CONFIG_MFD_WM8998=y
+CONFIG_MICREL_KS8995MA=m
+CONFIG_MICROCHIP_T1_PHY=m
+CONFIG_MII=y
+# CONFIG_MINIX_FS is not set
+# CONFIG_MLX5_CORE_IPOIB is not set
+CONFIG_MLX5_INFINIBAND=m
+CONFIG_MMA7455_I2C=m
+CONFIG_MMA7455=m
+CONFIG_MMA7455_SPI=m
+CONFIG_MMA8452=m
+CONFIG_MMA9551_CORE=m
+CONFIG_MMA9551=m
+CONFIG_MMA9553=m
+CONFIG_MMC35240=m
+CONFIG_MMC_MTK=m
+CONFIG_MMC_SDHCI_AM654=m
+CONFIG_MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER=y
+CONFIG_MMC_SDHCI_CADENCE=m
+CONFIG_MMC_SDHCI_OF_ASPEED=m
+CONFIG_MMC_SDHCI_OF_AT91=m
+CONFIG_MMC_SDHCI_OF_ESDHC=m
+CONFIG_MMC_SDHCI_OF_HLWD=m
+CONFIG_MMC_SDHCI_OMAP=m
+# CONFIG_MMC_SDHCI_XENON is not set
+CONFIG_MMC_SPI=m
+CONFIG_MMIOWB=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_MODULE_REL_CRCS=y
+# CONFIG_MODULE_SIG is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_MODULES_USE_ELF_RELA=y
+# CONFIG_MOST_CDEV is not set
+CONFIG_MOST_DIM2=m
+# CONFIG_MOST_I2C is not set
+CONFIG_MOST=m
+# CONFIG_MOST_NET is not set
+# CONFIG_MOST_SOUND is not set
+# CONFIG_MOST_USB is not set
+# CONFIG_MOST_VIDEO is not set
+# CONFIG_MOUSE_ELAN_I2C_SMBUS is not set
+CONFIG_MOUSE_GPIO=m
+CONFIG_MOUSE_PS2_ELANTECH_SMBUS=y
+CONFIG_MOUSE_PS2=m
+CONFIG_MOUSE_PS2_SMBUS=y
+CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y
+CONFIG_MOUSE_SERIAL=y
+CONFIG_MOXA_INTELLIO=m
+CONFIG_MOXA_SMARTIO=m
+CONFIG_MOXTET=m
+# CONFIG_MPIC_MSGR is not set
+CONFIG_MPIC=y
+CONFIG_MPL115_SPI=m
+CONFIG_MPL3115=m
+CONFIG_MPROFILE_KERNEL=y
+CONFIG_MS5611_I2C=m
+CONFIG_MS5611=m
+CONFIG_MS5611_SPI=m
+CONFIG_MS5637=m
+CONFIG_MS_BLOCK=m
+# CONFIG_MSCC_OCELOT_SWITCH is not set
+# CONFIG_MSI_BITMAP_SELFTEST is not set
+# CONFIG_MT76x2E is not set
+CONFIG_MTD_ABSENT=m
+CONFIG_MTD_AR7_PARTS=m
+CONFIG_MTD_BLKDEVS=m
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_BLOCK_RO=m
+CONFIG_MTD_CMDLINE_PARTS=m
+CONFIG_MTD_COMPLEX_MAPPINGS=y
+CONFIG_MTD_DATAFLASH=m
+CONFIG_MTD_DATAFLASH_OTP=y
+# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
+CONFIG_MTD_LPDDR=m
+CONFIG_MTD_MCHP23K256=m
+CONFIG_MTD_MTDRAM=m
+CONFIG_MTD_NAND_CAFE=m
+CONFIG_MTD_NAND_DENALI=m
+CONFIG_MTD_NAND_DENALI_PCI=m
+# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
+CONFIG_MTD_NAND_DISKONCHIP=m
+CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
+# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
+CONFIG_MTD_NAND_ECC_SW_BCH=y
+CONFIG_MTD_NAND_GPIO=m
+CONFIG_MTD_NAND_MXIC=m
+CONFIG_MTD_NAND_NANDSIM=m
+CONFIG_MTD_NAND_PLATFORM=m
+CONFIG_MTD_NAND_RICOH=m
+CONFIG_MTD_OF_PARTS=m
+CONFIG_MTD_ONENAND_2X_PROGRAM=y
+CONFIG_MTD_ONENAND_GENERIC=m
+CONFIG_MTD_ONENAND=m
+# CONFIG_MTD_ONENAND_OTP is not set
+CONFIG_MTD_ONENAND_VERIFY_WRITE=y
+CONFIG_MTD_PCI=m
+CONFIG_MTD_PHRAM=m
+# CONFIG_MTD_PHYSMAP_COMPAT is not set
+# CONFIG_MTD_PHYSMAP_GPIO_ADDR is not set
+CONFIG_MTD_PHYSMAP=m
+# CONFIG_MTD_PHYSMAP_OF is not set
+CONFIG_MTD_PLATRAM=m
+CONFIG_MTD_POWERNV_FLASH=m
+CONFIG_MTD_QINFO_PROBE=m
+CONFIG_MTDRAM_ERASE_SIZE=128
+CONFIG_MTD_RAM=m
+CONFIG_MTDRAM_TOTAL_SIZE=4096
+CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
+CONFIG_MTD_REDBOOT_PARTS=m
+# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
+# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
+CONFIG_MTD_ROM=m
+CONFIG_MTD_SLRAM=m
+CONFIG_MTD_SM_COMMON=m
+CONFIG_MTD_SPI_NAND=m
+CONFIG_MTD_SPI_NOR=m
+CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
+CONFIG_MTD_SST25L=m
+CONFIG_MTD_SWAP=m
+CONFIG_MTD_UBI_BLOCK=y
+CONFIG_MTD_UBI_FASTMAP=y
+CONFIG_MTD_UBI_GLUEBI=m
+CONFIG_MULTIPLEXER=m
+CONFIG_MUSB_PIO_ONLY=y
+CONFIG_MUX_ADG792A=m
+# CONFIG_MUX_ADGS1408 is not set
+CONFIG_MUX_GPIO=m
+CONFIG_MUX_MMIO=m
+CONFIG_MXC4005=m
+CONFIG_MXC6255=m
+CONFIG_NAU7802=m
+CONFIG_ND_BLK=m
+CONFIG_ND_BTT=m
+CONFIG_ND_CLAIM=y
+CONFIG_ND_PFN=m
+CONFIG_NEED_MULTIPLE_NODES=y
+# CONFIG_NET_9P_RDMA is not set
+CONFIG_NET_9P_VIRTIO=m
+# CONFIG_NET_ACT_CTINFO is not set
+# CONFIG_NET_ACT_CT is not set
+# CONFIG_NET_ACT_MPLS is not set
+# CONFIG_NET_CLS_CGROUP is not set
+# CONFIG_NETDEVSIM is not set
+# CONFIG_NET_DROP_MONITOR is not set
+# CONFIG_NET_DSA_BCM_SF2 is not set
+CONFIG_NET_DSA_LANTIQ_GSWIP=m
+# CONFIG_NET_DSA_LOOP is not set
+CONFIG_NET_DSA_MICROCHIP_KSZ8795=m
+CONFIG_NET_DSA_MICROCHIP_KSZ8795_SPI=m
+CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C=m
+# CONFIG_NET_DSA_MT7530 is not set
+CONFIG_NET_DSA_MV88E6060=m
+CONFIG_NET_DSA_SJA1105=m
+# CONFIG_NET_DSA_SJA1105_PTP is not set
+# CONFIG_NET_DSA_SJA1105_TAS is not set
+# CONFIG_NET_DSA_SMSC_LAN9303_I2C is not set
+# CONFIG_NET_DSA_SMSC_LAN9303_MDIO is not set
+# CONFIG_NET_DSA_VITESSE_VSC73XX_PLATFORM is not set
+# CONFIG_NET_DSA_VITESSE_VSC73XX_SPI is not set
+# CONFIG_NET_EMATCH is not set
+CONFIG_NETFILTER_NETLINK_GLUE_CT=y
+CONFIG_NETFILTER_XTABLES=m
+# CONFIG_NET_FOU_IP_TUNNELS is not set
+# CONFIG_NETLABEL is not set
+# CONFIG_NET_NCSI is not set
+# CONFIG_NET_PKTGEN is not set
+CONFIG_NET_SCH_FQ_CODEL=m
+CONFIG_NET_SCH_SKBPRIO=m
+# CONFIG_NET_TC_SKB_EXT is not set
+CONFIG_NET_VENDOR_AURORA=y
+CONFIG_NET_VENDOR_CAVIUM=y
+CONFIG_NET_VENDOR_CORTINA=y
+CONFIG_NET_VENDOR_EZCHIP=y
+CONFIG_NET_VENDOR_HP=y
+CONFIG_NET_VENDOR_HUAWEI=y
+CONFIG_NET_VENDOR_I825XX=y
+CONFIG_NET_VENDOR_IBM=y
+CONFIG_NET_VENDOR_MICROCHIP=y
+CONFIG_NET_VENDOR_MICROSEMI=y
+CONFIG_NET_VENDOR_QUALCOMM=y
+CONFIG_NET_VENDOR_RENESAS=y
+CONFIG_NET_VENDOR_SAMSUNG=y
+CONFIG_NET_VENDOR_SEEQ=y
+CONFIG_NET_VENDOR_SOCIONEXT=y
+CONFIG_NET_VENDOR_SYNOPSYS=y
+# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
+CONFIG_NFC_FDP_I2C=m
+CONFIG_NFC_FDP=m
+CONFIG_NFC_MRVL_I2C=m
+CONFIG_NFC_MRVL_SPI=m
+CONFIG_NFC_MRVL_UART=m
+CONFIG_NFC_NCI_UART=m
+# CONFIG_NF_CONNTRACK_BRIDGE is not set
+# CONFIG_NF_CONNTRACK_PROCFS is not set
+CONFIG_NFC_S3FWRN5_I2C=m
+CONFIG_NFC_S3FWRN5=m
+CONFIG_NFC_ST95HF=m
+CONFIG_NFC_ST_NCI_I2C=m
+CONFIG_NFC_ST_NCI=m
+CONFIG_NFC_ST_NCI_SPI=m
+CONFIG_NF_CT_NETLINK_HELPER=m
+CONFIG_NFP_APP_ABM_NIC=y
+# CONFIG_NFP_APP_FLOWER is not set
+# CONFIG_NFSD_FLEXFILELAYOUT is not set
+# CONFIG_NFSD_V4_SECURITY_LABEL is not set
+CONFIG_NFS_V4_1_MIGRATION=y
+# CONFIG_NFT_BRIDGE_META is not set
+# CONFIG_NFT_SYNPROXY is not set
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_CODEPAGE_437=m
+CONFIG_NMI_IPI=y
+CONFIG_NOA1305=m
+CONFIG_NODES_SHIFT=8
+CONFIG_NODES_SPAN_OTHER_NODES=y
+# CONFIG_NO_HZ_FULL is not set
+CONFIG_NO_HZ_IDLE=y
+# CONFIG_NO_HZ is not set
+CONFIG_NONSTATIC_KERNEL=y
+# CONFIG_NOTIFIER_ERROR_INJECTION is not set
+CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT=y
+CONFIG_NR_CPUS=2048
+CONFIG_NR_IRQS=512
+CONFIG_NTB_IDT=m
+CONFIG_NTB=m
+# CONFIG_NTB_MSI is not set
+CONFIG_NTB_NETDEV=m
+CONFIG_NTB_PERF=m
+CONFIG_NTB_PINGPONG=m
+CONFIG_NTB_SWITCHTEC=m
+CONFIG_NTB_TOOL=m
+CONFIG_NTB_TRANSPORT=m
+# CONFIG_NTFS_RW is not set
+CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y
+CONFIG_NUMA_BALANCING=y
+CONFIG_NUMA=y
+CONFIG_NVDIMM_DAX=y
+CONFIG_NVDIMM_PFN=y
+CONFIG_NVME_CORE=y
+# CONFIG_NVM_PBLK is not set
+CONFIG_NVM=y
+CONFIG_NVRAM=y
+CONFIG_OCXL_BASE=y
+CONFIG_OCXL=m
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_DMA_DEFAULT_COHERENT=y
+CONFIG_OF_DYNAMIC=y
+CONFIG_OF_EARLY_FLATTREE=y
+CONFIG_OF_FLATTREE=y
+CONFIG_OF_FPGA_REGION=m
+CONFIG_OF_GPIO=y
+CONFIG_OF_IOMMU=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_KOBJ=y
+CONFIG_OF_MDIO=y
+CONFIG_OF_NET=y
+CONFIG_OF_OVERLAY=y
+CONFIG_OF_PMEM=m
+CONFIG_OF_RESERVED_MEM=y
+CONFIG_OF_RESOLVE=y
+# CONFIG_OF_UNITTEST is not set
+CONFIG_OF=y
+CONFIG_OLD_SIGSUSPEND=y
+# CONFIG_OPAL_CORE is not set
+CONFIG_OPAL_PRD=m
+# CONFIG_OSF_PARTITION is not set
+CONFIG_OVERLAY_FS_XINO_AUTO=y
+# CONFIG_P54_SPI_DEFAULT_EEPROM is not set
+CONFIG_P54_SPI=m
+CONFIG_PAGE_EXTENSION=y
+CONFIG_PAGE_OFFSET=0xc000000000000000
+CONFIG_PAGE_POISONING_NO_SANITY=y
+CONFIG_PAGE_POISONING=y
+CONFIG_PAGE_POISONING_ZERO=y
+# CONFIG_PALMAS_GPADC is not set
+CONFIG_PANEL=m
+CONFIG_PANEL_PARPORT=0
+CONFIG_PANEL_PROFILE=5
+CONFIG_PAPR_SCM=m
+CONFIG_PARPORT_AX88796=m
+CONFIG_PARPORT_PANEL=m
+CONFIG_PARPORT_PC_FIFO=y
+CONFIG_PARPORT_PC_SUPERIO=y
+CONFIG_PATA_CYPRESS=m
+CONFIG_PATA_HPT3X3_DMA=y
+CONFIG_PATA_OF_PLATFORM=m
+CONFIG_PATA_PLATFORM=m
+CONFIG_PATA_RADISYS=m
+CONFIG_PATA_RDC=m
+CONFIG_PATA_RZ1000=m
+# CONFIG_PC104 is not set
+# CONFIG_PCCARD is not set
+CONFIG_PCF50633_ADC=m
+CONFIG_PCF50633_GPIO=m
+CONFIG_PCI_ATMEL=m
+CONFIG_PCIE_BW=y
+CONFIG_PCIE_CADENCE_EP=y
+CONFIG_PCIE_CADENCE_HOST=y
+CONFIG_PCIE_CADENCE=y
+CONFIG_PCI_ECAM=y
+# CONFIG_PCIE_ECRC is not set
+CONFIG_PCI_ENDPOINT_CONFIGFS=y
+CONFIG_PCI_ENDPOINT=y
+# CONFIG_PCI_EPF_TEST is not set
+CONFIG_PCIE_XILINX=y
+CONFIG_PCI_FTPCI100=y
+CONFIG_PCI_HOST_COMMON=y
+CONFIG_PCI_HOST_GENERIC=y
+# CONFIG_PCI_P2PDMA is not set
+CONFIG_PCI_REALLOC_ENABLE_AUTO=y
+CONFIG_PCI_STUB=m
+CONFIG_PCI_SYSCALL=y
+CONFIG_PCNET32=y
+CONFIG_PDA_POWER=m
+# CONFIG_PERSISTENT_KEYRINGS is not set
+CONFIG_PGTABLE_LEVELS=4
+CONFIG_PGTABLE_MAPPING=y
+CONFIG_PHANTOM=m
+CONFIG_PHONET=m
+CONFIG_PHY_CADENCE_DPHY=m
+CONFIG_PHY_CADENCE_DP=m
+CONFIG_PHY_CADENCE_SIERRA=m
+CONFIG_PHY_FSL_IMX8MQ_USB=m
+CONFIG_PHYLIB=y
+CONFIG_PHY_MAPPHONE_MDM6600=m
+# CONFIG_PHY_MIXEL_MIPI_DPHY is not set
+CONFIG_PHY_OCELOT_SERDES=m
+CONFIG_PHY_PXA_28NM_HSIC=m
+CONFIG_PHY_PXA_28NM_USB2=m
+CONFIG_PHY_QCOM_USB_HSIC=m
+CONFIG_PHY_QCOM_USB_HS=m
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_PHYSICAL_START=0x00000000
+CONFIG_PHY_TUSB1210=m
+CONFIG_PI433=m
+CONFIG_PINCTRL_AMD=y
+CONFIG_PINCTRL_AS3722=y
+CONFIG_PINCTRL_AXP209=m
+CONFIG_PINCTRL_CS47L35=y
+CONFIG_PINCTRL_CS47L85=y
+CONFIG_PINCTRL_CS47L90=y
+CONFIG_PINCTRL_MADERA=m
+CONFIG_PINCTRL_MAX77620=m
+CONFIG_PINCTRL_MCP23S08=m
+# CONFIG_PINCTRL_OCELOT is not set
+CONFIG_PINCTRL_PALMAS=m
+CONFIG_PINCTRL_RK805=m
+CONFIG_PINCTRL_SINGLE=y
+CONFIG_PINCTRL_STMFX=m
+CONFIG_PINCTRL_SX150X=y
+CONFIG_PLATFORM_MHU=m
+CONFIG_PLATFORM_SI4713=m
+CONFIG_PLIP=m
+CONFIG_PM_DEVFREQ_EVENT=y
+CONFIG_PM_GENERIC_DOMAINS_OF=y
+CONFIG_PMIC_ADP5520=y
+CONFIG_PMIC_DA903X=y
+CONFIG_PMIC_DA9052=y
+CONFIG_PMS7003=m
+CONFIG_PM_SLEEP_SMP_NONZERO_CPU=y
+# CONFIG_PM_TEST_SUSPEND is not set
+# CONFIG_POWER7_CPU is not set
+# CONFIG_POWER8_CPU is not set
+# CONFIG_POWER9_CPU is not set
+CONFIG_POWER_AVS=y
+CONFIG_POWERNV_CPUFREQ=y
+CONFIG_POWERNV_CPUIDLE=y
+CONFIG_POWERNV_OP_PANEL=m
+# CONFIG_POWER_RESET is not set
+CONFIG_PPC_4K_PAGES=y
+CONFIG_PPC64_BOOT_WRAPPER=y
+# CONFIG_PPC_64K_PAGES is not set
+CONFIG_PPC64_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_PPC64=y
+CONFIG_PPC_BARRIER_NOSPEC=y
+# CONFIG_PPC_BOOK3E_64 is not set
+CONFIG_PPC_BOOK3S_64=y
+CONFIG_PPC_BOOK3S=y
+CONFIG_PPC_COPRO_BASE=y
+CONFIG_PPC_DAWR=y
+CONFIG_PPC_DENORMALISATION=y
+# CONFIG_PPC_DISABLE_WERROR is not set
+CONFIG_PPC_DOORBELL=y
+CONFIG_PPC_DT_CPU_FTRS=y
+# CONFIG_PPC_EARLY_DEBUG is not set
+# CONFIG_PPC_EMULATED_STATS is not set
+# CONFIG_PPC_EPAPR_HV_BYTECHAN is not set
+# CONFIG_PPC_FAST_ENDIAN_SWITCH is not set
+CONFIG_PPC_FPU=y
+CONFIG_PPC_HAVE_KUAP=y
+CONFIG_PPC_HAVE_KUEP=y
+CONFIG_PPC_HAVE_PMU_SUPPORT=y
+CONFIG_PPC_I8259=y
+CONFIG_PPC_ICP_HV=y
+CONFIG_PPC_ICP_NATIVE=y
+CONFIG_PPC_ICS_RTAS=y
+CONFIG_PPC_INDIRECT_PIO=y
+# CONFIG_PPC_IRQ_SOFT_MASK_DEBUG is not set
+# CONFIG_PPC_KUAP_DEBUG is not set
+CONFIG_PPC_KUAP=y
+CONFIG_PPC_KUEP=y
+CONFIG_PPC_MEM_KEYS=y
+CONFIG_PPC_MEMTRACE=y
+CONFIG_PPC_MM_SLICES=y
+CONFIG_PPC_MSI_BITMAP=y
+CONFIG_PPC_NATIVE=y
+CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
+CONFIG_PPC_P7_NAP=y
+CONFIG_PPC_PAGE_SHIFT=12
+CONFIG_PPC_PERF_CTRS=y
+CONFIG_PPC_POWERNV=y
+CONFIG_PPC_PSERIES=y
+# CONFIG_PPC_PTDUMP is not set
+CONFIG_PPC_RADIX_MMU_DEFAULT=y
+CONFIG_PPC_RADIX_MMU=y
+CONFIG_PPC_RTAS_DAEMON=y
+CONFIG_PPC_RTAS=y
+CONFIG_PPC_SMLPAR=y
+CONFIG_PPC_SMP_MUXED_IPI=y
+CONFIG_PPC_SPLPAR=y
+CONFIG_PPC_SVM=y
+CONFIG_PPC_TRANSACTIONAL_MEM=y
+CONFIG_PPC_UDBG_16550=y
+CONFIG_PPC_WATCHDOG=y
+CONFIG_PPC_WERROR=y
+CONFIG_PPC_XICS=y
+CONFIG_PPC_XIVE_NATIVE=y
+CONFIG_PPC_XIVE_SPAPR=y
+CONFIG_PPC_XIVE=y
+CONFIG_PPC=y
+CONFIG_PPS_CLIENT_KTIMER=m
+CONFIG_PREEMPTIRQ_DELAY_TEST=m
+CONFIG_PRINT_STACK_DEPTH=64
+CONFIG_PRISM2_USB=m
+CONFIG_PRISM54=m
+# CONFIG_PROC_VMCORE_DEVICE_DUMP is not set
+CONFIG_PSERIES_CPUIDLE=y
+CONFIG_PSERIES_ENERGY=m
+# CONFIG_PSI is not set
+# CONFIG_PSTORE_842_COMPRESS is not set
+CONFIG_PSTORE_COMPRESS_DEFAULT="deflate"
+CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y
+CONFIG_PSTORE_DEFLATE_COMPRESS=m
+# CONFIG_PSTORE_LZ4_COMPRESS is not set
+# CONFIG_PSTORE_LZO_COMPRESS is not set
+CONFIG_PWM_FSL_FTM=m
+CONFIG_PWM_LP3943=m
+CONFIG_PWM_PCA9685=m
+CONFIG_PWM_STMPE=y
+# CONFIG_PWM_TWL is not set
+# CONFIG_PWM_TWL_LED is not set
+CONFIG_PWRSEQ_EMMC=m
+CONFIG_PWRSEQ_SD8787=m
+CONFIG_PWRSEQ_SIMPLE=m
+CONFIG_QCA7000=m
+CONFIG_QCA7000_SPI=m
+CONFIG_QCA7000_UART=m
+CONFIG_QCOM_EMAC=m
+CONFIG_QCOM_HIDMA=m
+CONFIG_QCOM_HIDMA_MGMT=m
+CONFIG_QCOM_SPMI_ADC5=m
+CONFIG_QCOM_SPMI_IADC=m
+CONFIG_QCOM_SPMI_VADC=m
+CONFIG_QCOM_VADC_COMMON=m
+CONFIG_QED_RDMA=y
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+# CONFIG_QNX6FS_DEBUG is not set
+CONFIG_QNX6FS_FS=m
+CONFIG_QORIQ_THERMAL=m
+CONFIG_QUOTA_TREE=m
+CONFIG_RADIO_MAXIRADIO=m
+CONFIG_RADIO_SAA7706H=m
+CONFIG_RADIO_SHARK2=m
+CONFIG_RADIO_SHARK=m
+CONFIG_RADIO_SI470X=m
+CONFIG_RADIO_SI4713=m
+CONFIG_RADIO_SI476X=m
+CONFIG_RADIO_TEA5764=m
+CONFIG_RADIO_TEF6862=m
+CONFIG_RADIO_WL1273=m
+CONFIG_RADIO_WL128X=m
+CONFIG_RAID6_PQ_BENCHMARK=y
+# CONFIG_RANDOM_TRUST_CPU is not set
+CONFIG_RAPIDIO_CHMAN=m
+CONFIG_RAPIDIO_CPS_GEN2=m
+CONFIG_RAPIDIO_CPS_XX=m
+CONFIG_RAPIDIO_DEBUG=y
+CONFIG_RAPIDIO_DISC_TIMEOUT=30
+CONFIG_RAPIDIO_DMA_ENGINE=y
+CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS=y
+CONFIG_RAPIDIO_ENUM_BASIC=m
+CONFIG_RAPIDIO=m
+CONFIG_RAPIDIO_MPORT_CDEV=m
+CONFIG_RAPIDIO_RXS_GEN3=m
+CONFIG_RAPIDIO_TSI568=m
+CONFIG_RAPIDIO_TSI57X=m
+CONFIG_RAPIDIO_TSI721=m
+CONFIG_RAW_DRIVER=m
+CONFIG_RCU_PERF_TEST=m
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_RDMA_SIW is not set
+# CONFIG_RDS_RDMA is not set
+CONFIG_REED_SOLOMON_DEC16=y
+CONFIG_REFCOUNT_FULL=y
+CONFIG_REGMAP_I2C=y
+CONFIG_REGMAP_I3C=m
+CONFIG_REGMAP_MMIO=y
+CONFIG_REGMAP_SPI=y
+CONFIG_REGMAP_SPMI=m
+CONFIG_REGMAP_W1=m
+CONFIG_REGULATOR_88PG86X=m
+CONFIG_REGULATOR_88PM800=m
+CONFIG_REGULATOR_88PM8607=m
+CONFIG_REGULATOR_AAT2870=m
+CONFIG_REGULATOR_AB3100=m
+CONFIG_REGULATOR_ACT8865=m
+CONFIG_REGULATOR_ACT8945A=m
+CONFIG_REGULATOR_AD5398=m
+CONFIG_REGULATOR_ANATOP=m
+CONFIG_REGULATOR_ARIZONA_LDO1=m
+CONFIG_REGULATOR_ARIZONA_MICSUPP=m
+CONFIG_REGULATOR_AS3711=m
+CONFIG_REGULATOR_AS3722=m
+CONFIG_REGULATOR_AXP20X=m
+CONFIG_REGULATOR_BCM590XX=m
+CONFIG_REGULATOR_BD9571MWV=m
+CONFIG_REGULATOR_CPCAP=m
+CONFIG_REGULATOR_DA903X=m
+CONFIG_REGULATOR_DA9052=m
+CONFIG_REGULATOR_DA9055=m
+CONFIG_REGULATOR_DA9062=m
+CONFIG_REGULATOR_DA9063=m
+CONFIG_REGULATOR_DA9210=m
+CONFIG_REGULATOR_DA9211=m
+CONFIG_REGULATOR_FAN53555=m
+CONFIG_REGULATOR_FIXED_VOLTAGE=m
+CONFIG_REGULATOR_GPIO=m
+CONFIG_REGULATOR_HI6421=m
+CONFIG_REGULATOR_HI6421V530=m
+CONFIG_REGULATOR_ISL6271A=m
+CONFIG_REGULATOR_ISL9305=m
+CONFIG_REGULATOR_LM363X=m
+CONFIG_REGULATOR_LP3971=m
+CONFIG_REGULATOR_LP3972=m
+CONFIG_REGULATOR_LP872X=m
+CONFIG_REGULATOR_LP873X=m
+CONFIG_REGULATOR_LP8755=m
+CONFIG_REGULATOR_LP87565=m
+CONFIG_REGULATOR_LP8788=m
+CONFIG_REGULATOR_LTC3589=m
+CONFIG_REGULATOR_LTC3676=m
+CONFIG_REGULATOR_MAX14577=m
+CONFIG_REGULATOR_MAX1586=m
+CONFIG_REGULATOR_MAX77620=m
+CONFIG_REGULATOR_MAX77650=m
+CONFIG_REGULATOR_MAX77686=m
+CONFIG_REGULATOR_MAX77693=m
+CONFIG_REGULATOR_MAX77802=m
+CONFIG_REGULATOR_MAX8649=m
+CONFIG_REGULATOR_MAX8660=m
+CONFIG_REGULATOR_MAX8907=m
+CONFIG_REGULATOR_MAX8925=m
+CONFIG_REGULATOR_MAX8952=m
+CONFIG_REGULATOR_MAX8973=m
+CONFIG_REGULATOR_MAX8997=m
+CONFIG_REGULATOR_MAX8998=m
+CONFIG_REGULATOR_MC13783=m
+CONFIG_REGULATOR_MC13892=m
+CONFIG_REGULATOR_MC13XXX_CORE=m
+CONFIG_REGULATOR_MCP16502=m
+CONFIG_REGULATOR_MT6311=m
+CONFIG_REGULATOR_MT6323=m
+CONFIG_REGULATOR_MT6397=m
+CONFIG_REGULATOR_PALMAS=m
+CONFIG_REGULATOR_PCAP=m
+CONFIG_REGULATOR_PCF50633=m
+CONFIG_REGULATOR_PFUZE100=m
+CONFIG_REGULATOR_PV88060=m
+CONFIG_REGULATOR_PV88080=m
+CONFIG_REGULATOR_PV88090=m
+CONFIG_REGULATOR_PWM=m
+CONFIG_REGULATOR_QCOM_SPMI=m
+CONFIG_REGULATOR_RC5T583=m
+CONFIG_REGULATOR_RK808=m
+CONFIG_REGULATOR_RN5T618=m
+CONFIG_REGULATOR_RT5033=m
+CONFIG_REGULATOR_SKY81452=m
+CONFIG_REGULATOR_STPMIC1=m
+CONFIG_REGULATOR_SY8106A=m
+CONFIG_REGULATOR_SY8824X=m
+CONFIG_REGULATOR_TPS51632=m
+CONFIG_REGULATOR_TPS6105X=m
+CONFIG_REGULATOR_TPS62360=m
+CONFIG_REGULATOR_TPS65023=m
+CONFIG_REGULATOR_TPS6507X=m
+CONFIG_REGULATOR_TPS65086=m
+CONFIG_REGULATOR_TPS65090=m
+CONFIG_REGULATOR_TPS65132=m
+CONFIG_REGULATOR_TPS65218=m
+CONFIG_REGULATOR_TPS6524X=m
+CONFIG_REGULATOR_TPS6586X=m
+CONFIG_REGULATOR_TPS65910=m
+CONFIG_REGULATOR_TPS65912=m
+CONFIG_REGULATOR_TPS80031=m
+CONFIG_REGULATOR_TWL4030=m
+CONFIG_REGULATOR_USERSPACE_CONSUMER=m
+CONFIG_REGULATOR_VCTRL=m
+CONFIG_REGULATOR_VIRTUAL_CONSUMER=m
+CONFIG_REGULATOR_WM831X=m
+CONFIG_REGULATOR_WM8350=m
+CONFIG_REGULATOR_WM8400=m
+CONFIG_REGULATOR_WM8994=m
+# CONFIG_REISERFS_PROC_INFO is not set
+# CONFIG_RELOCATABLE_TEST is not set
+# CONFIG_REMOTEPROC is not set
+CONFIG_RENESAS_PHY=m
+CONFIG_RETU_WATCHDOG=m
+CONFIG_RFD77402=m
+# CONFIG_RING_BUFFER_BENCHMARK is not set
+CONFIG_RIONET=m
+CONFIG_RIONET_RX_SIZE=128
+CONFIG_RIONET_TX_SIZE=128
+CONFIG_RMNET=m
+CONFIG_RN5T618_WATCHDOG=m
+CONFIG_ROCKCHIP_PHY=m
+# CONFIG_ROMFS_BACKED_BY_BLOCK is not set
+CONFIG_ROMFS_BACKED_BY_BOTH=y
+CONFIG_ROMFS_ON_MTD=y
+CONFIG_RPMSG_CHAR=m
+CONFIG_RPMSG=m
+# CONFIG_RPMSG_QCOM_GLINK_RPM is not set
+CONFIG_RPMSG_VIRTIO=m
+# CONFIG_RT2X00_LIB_DEBUGFS is not set
+CONFIG_RTAS_ERROR_LOGGING=y
+CONFIG_RTAS_FLASH=m
+CONFIG_RTAS_PROC=y
+CONFIG_RTC_DRV_88PM80X=m
+CONFIG_RTC_DRV_88PM860X=m
+CONFIG_RTC_DRV_AB3100=m
+CONFIG_RTC_DRV_ABB5ZES3=m
+CONFIG_RTC_DRV_AS3722=m
+CONFIG_RTC_DRV_CADENCE=m
+CONFIG_RTC_DRV_CMOS=m
+CONFIG_RTC_DRV_CPCAP=m
+CONFIG_RTC_DRV_DA9052=m
+CONFIG_RTC_DRV_DA9055=m
+CONFIG_RTC_DRV_DA9063=m
+CONFIG_RTC_DRV_DS1302=m
+CONFIG_RTC_DRV_DS1307_CENTURY=y
+CONFIG_RTC_DRV_DS3232_HWMON=y
+CONFIG_RTC_DRV_FTRTC010=m
+CONFIG_RTC_DRV_GENERIC=y
+CONFIG_RTC_DRV_HID_SENSOR_TIME=m
+CONFIG_RTC_DRV_HYM8563=m
+CONFIG_RTC_DRV_ISL12026=m
+CONFIG_RTC_DRV_LP8788=m
+CONFIG_RTC_DRV_M48T86=m
+CONFIG_RTC_DRV_MAX77686=m
+CONFIG_RTC_DRV_MAX8907=m
+CONFIG_RTC_DRV_MAX8925=m
+CONFIG_RTC_DRV_MAX8997=m
+CONFIG_RTC_DRV_MAX8998=m
+CONFIG_RTC_DRV_MC13XXX=m
+CONFIG_RTC_DRV_MT6397=m
+CONFIG_RTC_DRV_OPAL=y
+CONFIG_RTC_DRV_PALMAS=m
+CONFIG_RTC_DRV_PCAP=m
+CONFIG_RTC_DRV_PCF50633=m
+CONFIG_RTC_DRV_PCF85363=m
+CONFIG_RTC_DRV_R7301=m
+CONFIG_RTC_DRV_RC5T583=m
+CONFIG_RTC_DRV_RK808=m
+CONFIG_RTC_DRV_RV8803=m
+CONFIG_RTC_DRV_RX6110=m
+CONFIG_RTC_DRV_S35390A=m
+CONFIG_RTC_DRV_SNVS=m
+CONFIG_RTC_DRV_TEST=m
+CONFIG_RTC_DRV_TPS6586X=m
+CONFIG_RTC_DRV_TPS65910=m
+CONFIG_RTC_DRV_TPS80031=m
+CONFIG_RTC_DRV_TWL4030=m
+CONFIG_RTC_DRV_WM831X=m
+CONFIG_RTC_DRV_WM8350=m
+CONFIG_RTC_DRV_ZYNQMP=m
+CONFIG_RTC_I2C_AND_SPI=y
+CONFIG_RTC_NVMEM=y
+CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
+CONFIG_RTC_SYSTOHC=y
+CONFIG_RT_GROUP_SCHED=y
+CONFIG_RTL8192U=m
+# CONFIG_RTL8XXXU_UNTESTED is not set
+CONFIG_RTLWIFI_DEBUG=y
+CONFIG_RTS5208=m
+# CONFIG_RXKAD is not set
+# CONFIG_SATA_DWC_DEBUG is not set
+CONFIG_SATA_DWC=m
+# CONFIG_SATA_DWC_OLD_DMA is not set
+CONFIG_SATA_MOBILE_LPM_POLICY=0
+CONFIG_SCA3000=m
+CONFIG_SCANLOG=m
+# CONFIG_SCHED_DEBUG is not set
+# CONFIG_SCHED_TRACER is not set
+CONFIG_SCOM_DEBUGFS=y
+CONFIG_SCSI_AIC94XX=m
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_DEBUG is not set
+# CONFIG_SCSI_FDOMAIN_PCI is not set
+CONFIG_SCSI_IBMVFC=m
+CONFIG_SCSI_IBMVFC_TRACE=y
+CONFIG_SCSI_IBMVSCSI=m
+CONFIG_SCSI_IBMVSCSIS=m
+CONFIG_SCSI_IMM=m
+# CONFIG_SCSI_IPR_DUMP is not set
+# CONFIG_SCSI_IPR_TRACE is not set
+# CONFIG_SCSI_IZIP_EPP16 is not set
+# CONFIG_SCSI_IZIP_SLOW_CTR is not set
+# CONFIG_SCSI_LOGGING is not set
+CONFIG_SCSI=m
+CONFIG_SCSI_MOD=m
+# CONFIG_SCSI_MVSAS_TASKLET is not set
+CONFIG_SCSI_PPA=m
+# CONFIG_SCSI_SCAN_ASYNC is not set
+CONFIG_SCSI_UFS_CDNS_PLATFORM=m
+CONFIG_SCSI_UFS_DWC_TC_PCI=m
+CONFIG_SCSI_UFS_DWC_TC_PLATFORM=m
+CONFIG_SCSI_UFSHCD_PLATFORM=m
+CONFIG_SCSI_VIRTIO=m
+# CONFIG_SCTP_COOKIE_HMAC_MD5 is not set
+CONFIG_SD_ADC_MODULATOR=m
+# CONFIG_SECONDARY_TRUSTED_KEYRING is not set
+# CONFIG_SECURITY_APPARMOR_DEBUG is not set
+CONFIG_SECURITY_APPARMOR_HASH_DEFAULT=y
+CONFIG_SECURITY_APPARMOR_HASH=y
+CONFIG_SECURITY_APPARMOR=y
+CONFIG_SECURITY_DMESG_RESTRICT=y
+# CONFIG_SECURITY_INFINIBAND is not set
+# CONFIG_SECURITY_LOCKDOWN_LSM is not set
+# CONFIG_SECURITY_NETWORK_XFRM is not set
+CONFIG_SECURITY_PATH=y
+CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0
+# CONFIG_SECURITY_SELINUX_DISABLE is not set
+CONFIG_SENSIRION_SGP30=m
+CONFIG_SENSORS_AS370=m
+CONFIG_SENSORS_DA9052_ADC=m
+# CONFIG_SENSORS_DA9055 is not set
+CONFIG_SENSORS_EMC2103=m
+CONFIG_SENSORS_GPIO_FAN=m
+CONFIG_SENSORS_HIH6130=m
+CONFIG_SENSORS_HMC5843_I2C=m
+CONFIG_SENSORS_HMC5843=m
+CONFIG_SENSORS_HMC5843_SPI=m
+# CONFIG_SENSORS_I5K_AMB is not set
+CONFIG_SENSORS_IBM_CFFPS=m
+CONFIG_SENSORS_IBMPOWERNV=m
+CONFIG_SENSORS_IIO_HWMON=m
+CONFIG_SENSORS_INSPUR_IPSPS=m
+CONFIG_SENSORS_IR38064=m
+CONFIG_SENSORS_ISL29018=m
+CONFIG_SENSORS_ISL29028=m
+CONFIG_SENSORS_ISL68137=m
+CONFIG_SENSORS_LIS3_SPI=m
+CONFIG_SENSORS_LM3533=m
+# CONFIG_SENSORS_LTC2978 is not set
+CONFIG_SENSORS_MAX31785=m
+CONFIG_SENSORS_MAX6621=m
+CONFIG_SENSORS_MC13783_ADC=m
+CONFIG_SENSORS_MENF21BMC_HWMON=m
+CONFIG_SENSORS_PWM_FAN=m
+# CONFIG_SENSORS_SIS5595 is not set
+CONFIG_SENSORS_SMM665=m
+CONFIG_SENSORS_STTS751=m
+# CONFIG_SENSORS_TPS40422 is not set
+CONFIG_SENSORS_TSL2563=m
+CONFIG_SENSORS_WM831X=m
+# CONFIG_SENSORS_WM8350 is not set
+CONFIG_SERIAL_8250_ASPEED_VUART=m
+CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y
+CONFIG_SERIAL_8250_DW=m
+CONFIG_SERIAL_8250_EXAR=y
+CONFIG_SERIAL_8250_FINTEK=y
+CONFIG_SERIAL_8250_FSL=y
+CONFIG_SERIAL_8250_MEN_MCB=m
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+CONFIG_SERIAL_ALTERA_JTAGUART=m
+CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
+CONFIG_SERIAL_ALTERA_UART=m
+CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
+CONFIG_SERIAL_CONEXANT_DIGICOLOR=m
+CONFIG_SERIAL_DEV_BUS=m
+CONFIG_SERIAL_FSL_LINFLEXUART=m
+CONFIG_SERIAL_FSL_LPUART=m
+CONFIG_SERIAL_ICOM=m
+CONFIG_SERIAL_IFX6X60=m
+CONFIG_SERIAL_IPOCTAL=m
+CONFIG_SERIAL_MAX3100=m
+CONFIG_SERIAL_MAX310X=y
+# CONFIG_SERIAL_MEN_Z135 is not set
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_SERIAL_RP2=m
+CONFIG_SERIAL_RP2_NR_UARTS=32
+CONFIG_SERIAL_SCCNXP_CONSOLE=y
+CONFIG_SERIAL_SCCNXP=y
+CONFIG_SERIAL_SIFIVE=m
+CONFIG_SERIAL_UARTLITE=m
+CONFIG_SERIAL_UARTLITE_NR_UARTS=1
+CONFIG_SERIAL_XILINX_PS_UART=m
+CONFIG_SERIO_APBPS2=m
+CONFIG_SERIO_GPIO_PS2=m
+CONFIG_SERIO_PARKBD=m
+CONFIG_SERIO_PCIPS2=m
+CONFIG_SERIO_PS2MULT=m
+CONFIG_SERIO_SERPORT=m
+CONFIG_SERIO_XILINX_XPS_PS2=m
+CONFIG_SFC=m
+CONFIG_SFC_MCDI_LOGGING=y
+CONFIG_SFC_MCDI_MON=y
+CONFIG_SFC_MTD=y
+CONFIG_SFC_SRIOV=y
+# CONFIG_SGI_PARTITION is not set
+CONFIG_SI1133=m
+CONFIG_SI1145=m
+CONFIG_SI7005=m
+CONFIG_SI7020=m
+# CONFIG_SIGNED_PE_FILE_VERIFICATION is not set
+# CONFIG_SIMPLE_GPIO is not set
+CONFIG_SIMPLE_PM_BUS=y
+# CONFIG_SKGE_GENESIS is not set
+CONFIG_SLICOSS=m
+# CONFIG_SLIP_COMPRESSED is not set
+# CONFIG_SLIP_SMART is not set
+# CONFIG_SLOB is not set
+# CONFIG_SLUB_MEMCG_SYSFS_ON is not set
+CONFIG_SND_AC97_POWER_SAVE_DEFAULT=1
+CONFIG_SND_ATMEL_SOC=m
+CONFIG_SND_AUDIO_GRAPH_CARD=m
+CONFIG_SND_AW2=m
+# CONFIG_SND_BCD2000 is not set
+CONFIG_SND_HDA_INPUT_BEEP_MODE=1
+CONFIG_SND_HDA_PREALLOC_SIZE=64
+CONFIG_SND_PCM_IEC958=y
+CONFIG_SND_PPC=y
+CONFIG_SND_SOC_ADAU1701=m
+CONFIG_SND_SOC_AK4104=m
+CONFIG_SND_SOC_AK4118=m
+CONFIG_SND_SOC_AK4458=m
+CONFIG_SND_SOC_AK4554=m
+CONFIG_SND_SOC_AK4613=m
+CONFIG_SND_SOC_AK4642=m
+CONFIG_SND_SOC_AK5386=m
+CONFIG_SND_SOC_ALC5623=m
+CONFIG_SND_SOC_BT_SCO=m
+CONFIG_SND_SOC_CPCAP=m
+CONFIG_SND_SOC_CS35L32=m
+CONFIG_SND_SOC_CS35L33=m
+CONFIG_SND_SOC_CS4265=m
+CONFIG_SND_SOC_CS4270=m
+CONFIG_SND_SOC_CS4271_I2C=m
+CONFIG_SND_SOC_CS4271=m
+CONFIG_SND_SOC_CS4271_SPI=m
+CONFIG_SND_SOC_CS42L51_I2C=m
+CONFIG_SND_SOC_CS42L51=m
+CONFIG_SND_SOC_CS42L52=m
+CONFIG_SND_SOC_CS42L56=m
+CONFIG_SND_SOC_CS42L73=m
+CONFIG_SND_SOC_CS42XX8_I2C=m
+CONFIG_SND_SOC_CS42XX8=m
+CONFIG_SND_SOC_CS4341=m
+CONFIG_SND_SOC_CS4349=m
+CONFIG_SND_SOC_CS53L30=m
+# CONFIG_SND_SOC_CX2072X is not set
+CONFIG_SND_SOC_ES7241=m
+CONFIG_SND_SOC_FSL_ASRC=m
+CONFIG_SND_SOC_FSL_AUDMIX=m
+CONFIG_SND_SOC_FSL_ESAI=m
+CONFIG_SND_SOC_FSL_MICFIL=m
+CONFIG_SND_SOC_FSL_SAI=m
+CONFIG_SND_SOC_FSL_SPDIF=m
+CONFIG_SND_SOC_FSL_SSI=m
+CONFIG_SND_SOC_GTM601=m
+CONFIG_SND_SOC_HDMI_CODEC=m
+CONFIG_SND_SOC_IMG_I2S_IN=m
+CONFIG_SND_SOC_IMG_I2S_OUT=m
+CONFIG_SND_SOC_IMG_PARALLEL_OUT=m
+CONFIG_SND_SOC_IMG_PISTACHIO_INTERNAL_DAC=m
+CONFIG_SND_SOC_IMG_SPDIF_IN=m
+CONFIG_SND_SOC_IMG_SPDIF_OUT=m
+CONFIG_SND_SOC_IMG=y
+CONFIG_SND_SOC_IMX_AUDMUX=m
+CONFIG_SND_SOC_INNO_RK3036=m
+CONFIG_SND_SOC_MAX98504=m
+CONFIG_SND_SOC_MAX9860=m
+CONFIG_SND_SOC_MIKROE_PROTO=m
+CONFIG_SND_SOC_MSM8916_WCD_ANALOG=m
+CONFIG_SND_SOC_MSM8916_WCD_DIGITAL=m
+CONFIG_SND_SOC_MT6351=m
+CONFIG_SND_SOC_MT6358=m
+CONFIG_SND_SOC_MTK_BTCVSD=m
+CONFIG_SND_SOC_NAU8810=m
+CONFIG_SND_SOC_NAU8822=m
+CONFIG_SND_SOC_PCM1681=m
+CONFIG_SND_SOC_PCM179X_I2C=m
+CONFIG_SND_SOC_PCM179X=m
+CONFIG_SND_SOC_PCM179X_SPI=m
+CONFIG_SND_SOC_PCM3168A_I2C=m
+CONFIG_SND_SOC_PCM3168A=m
+CONFIG_SND_SOC_PCM3168A_SPI=m
+CONFIG_SND_SOC_PCM512x_I2C=m
+CONFIG_SND_SOC_PCM512x=m
+CONFIG_SND_SOC_PCM512x_SPI=m
+CONFIG_SND_SOC_RK3328=m
+CONFIG_SND_SOC_RT5616=m
+CONFIG_SND_SOC_RT5631=m
+CONFIG_SND_SOC_SGTL5000=m
+CONFIG_SND_SOC_SI476X=m
+CONFIG_SND_SOC_SIGMADSP_I2C=m
+# CONFIG_SND_SOC_SIMPLE_AMPLIFIER is not set
+CONFIG_SND_SOC_SIRF_AUDIO_CODEC=m
+CONFIG_SND_SOC_SOF_NOCODEC=m
+CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT=y
+CONFIG_SND_SOC_SOF_OF=m
+CONFIG_SND_SOC_SSM2305=m
+CONFIG_SND_SOC_SSM2602_I2C=m
+CONFIG_SND_SOC_SSM2602=m
+CONFIG_SND_SOC_SSM2602_SPI=m
+CONFIG_SND_SOC_STA32X=m
+CONFIG_SND_SOC_STA350=m
+CONFIG_SND_SOC_STI_SAS=m
+CONFIG_SND_SOC_TAS2552=m
+CONFIG_SND_SOC_TAS5086=m
+CONFIG_SND_SOC_TAS571X=m
+CONFIG_SND_SOC_TAS5720=m
+CONFIG_SND_SOC_TFA9879=m
+CONFIG_SND_SOC_TLV320AIC23_I2C=m
+CONFIG_SND_SOC_TLV320AIC23=m
+CONFIG_SND_SOC_TLV320AIC23_SPI=m
+CONFIG_SND_SOC_TLV320AIC31XX=m
+CONFIG_SND_SOC_TLV320AIC3X=m
+CONFIG_SND_SOC_TPA6130A2=m
+CONFIG_SND_SOC_TSCS454=m
+CONFIG_SND_SOC_UDA1334=m
+CONFIG_SND_SOC_WM8510=m
+CONFIG_SND_SOC_WM8523=m
+CONFIG_SND_SOC_WM8580=m
+CONFIG_SND_SOC_WM8711=m
+CONFIG_SND_SOC_WM8728=m
+CONFIG_SND_SOC_WM8731=m
+CONFIG_SND_SOC_WM8737=m
+CONFIG_SND_SOC_WM8741=m
+CONFIG_SND_SOC_WM8750=m
+CONFIG_SND_SOC_WM8753=m
+CONFIG_SND_SOC_WM8770=m
+CONFIG_SND_SOC_WM8776=m
+CONFIG_SND_SOC_WM8782=m
+CONFIG_SND_SOC_WM8804_I2C=m
+CONFIG_SND_SOC_WM8804=m
+CONFIG_SND_SOC_WM8804_SPI=m
+CONFIG_SND_SOC_WM8903=m
+CONFIG_SND_SOC_WM8904=m
+CONFIG_SND_SOC_WM8960=m
+CONFIG_SND_SOC_WM8962=m
+CONFIG_SND_SOC_WM8974=m
+CONFIG_SND_SOC_WM8978=m
+CONFIG_SND_SOC_WM8985=m
+CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER=m
+CONFIG_SND_SOC_XILINX_I2S=m
+CONFIG_SND_SOC_XILINX_SPDIF=m
+CONFIG_SND_SOC_XTFPGA_I2S=m
+CONFIG_SND_SOC_ZX_AUD96P22=m
+CONFIG_SND_SPI=y
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SOC_BUS=y
+CONFIG_SOC_TI=y
+# CONFIG_SOUNDWIRE is not set
+CONFIG_SPAPR_TCE_IOMMU=y
+CONFIG_SPARSEMEM_EXTREME=y
+CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
+CONFIG_SPARSEMEM_VMEMMAP=y
+CONFIG_SPEAKUP=m
+CONFIG_SPEAKUP_SYNTH_ACNTSA=m
+CONFIG_SPEAKUP_SYNTH_APOLLO=m
+CONFIG_SPEAKUP_SYNTH_AUDPTR=m
+CONFIG_SPEAKUP_SYNTH_BNS=m
+CONFIG_SPEAKUP_SYNTH_DECEXT=m
+CONFIG_SPEAKUP_SYNTH_DECTLK=m
+CONFIG_SPEAKUP_SYNTH_DUMMY=m
+CONFIG_SPEAKUP_SYNTH_LTLK=m
+CONFIG_SPEAKUP_SYNTH_SOFT=m
+CONFIG_SPEAKUP_SYNTH_SPKOUT=m
+CONFIG_SPEAKUP_SYNTH_TXPRT=m
+CONFIG_SPI_ALTERA=m
+CONFIG_SPI_AXI_SPI_ENGINE=m
+CONFIG_SPI_BITBANG=m
+CONFIG_SPI_BUTTERFLY=m
+CONFIG_SPI_CADENCE=m
+CONFIG_SPI_DESIGNWARE=m
+CONFIG_SPI_DLN2=m
+CONFIG_SPI_DW_MID_DMA=y
+CONFIG_SPI_DW_MMIO=m
+CONFIG_SPI_DW_PCI=m
+CONFIG_SPI_FSL_LIB=y
+CONFIG_SPI_FSL_SPI=y
+CONFIG_SPI_GPIO=m
+CONFIG_SPI_LM70_LLP=m
+CONFIG_SPI_LOOPBACK_TEST=m
+CONFIG_SPI_MEM=y
+CONFIG_SPI_MTK_QUADSPI=m
+CONFIG_SPI_MXIC=m
+CONFIG_SPI_NXP_FLEXSPI=m
+CONFIG_SPI_OC_TINY=m
+CONFIG_SPI_SC18IS602=m
+CONFIG_SPI_SIFIVE=m
+CONFIG_SPI_SLAVE_SYSTEM_CONTROL=m
+CONFIG_SPI_SLAVE_TIME=m
+CONFIG_SPI_SLAVE=y
+CONFIG_SPI_TLE62X0=m
+CONFIG_SPI_XCOMM=m
+CONFIG_SPI_ZYNQMP_GQSPI=m
+CONFIG_SPMI=m
+CONFIG_SPS30=m
+CONFIG_SQUASHFS_DECOMP_MULTI=y
+# CONFIG_SQUASHFS_DECOMP_SINGLE is not set
+CONFIG_SRAM=y
+CONFIG_SRF08=m
+# CONFIG_STACK_TRACER is not set
+CONFIG_STK8312=m
+CONFIG_STK8BA50=m
+CONFIG_STM_DUMMY=m
+CONFIG_STM=m
+CONFIG_STMMAC_PLATFORM=m
+CONFIG_STMPE_ADC=m
+CONFIG_STMPE_I2C=y
+CONFIG_STMPE_SPI=y
+CONFIG_STM_PROTO_BASIC=m
+CONFIG_STM_PROTO_SYS_T=m
+CONFIG_STM_SOURCE_CONSOLE=m
+CONFIG_STM_SOURCE_FTRACE=m
+CONFIG_STM_SOURCE_HEARTBEAT=m
+CONFIG_STPMIC1_WATCHDOG=m
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_SUNRPC_DEBUG is not set
+# CONFIG_SUSPEND_SKIP_SYNC is not set
+CONFIG_SX9500=m
+CONFIG_SXGBE_ETH=m
+# CONFIG_SYSCTL_SYSCALL is not set
+CONFIG_SYS_SUPPORTS_HUGETLBFS=y
+# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set
+CONFIG_SYSTEMPORT=m
+# CONFIG_SYSV_FS is not set
+CONFIG_SYSVIPC_COMPAT=y
+# CONFIG_TABLET_SERIAL_WACOM4 is not set
+# CONFIG_TAHVO_USB_HOST_BY_DEFAULT is not set
+CONFIG_TAHVO_USB=m
+CONFIG_TCG_IBMVTPM=m
+CONFIG_TCG_TIS_CORE=m
+CONFIG_TCG_TIS_I2C_ATMEL=m
+CONFIG_TCG_TIS_I2C_INFINEON=m
+CONFIG_TCG_TIS_I2C_NUVOTON=m
+CONFIG_TCG_TIS=m
+CONFIG_TCG_TIS_ST33ZP24_I2C=m
+CONFIG_TCG_TIS_ST33ZP24=m
+CONFIG_TCG_TIS_ST33ZP24_SPI=m
+CONFIG_TCG_TPM=m
+CONFIG_TCP_CONG_CUBIC=m
+CONFIG_TCS3414=m
+CONFIG_TCS3472=m
+CONFIG_TEST_ASYNC_DRIVER_PROBE=m
+CONFIG_TEST_BITMAP=m
+CONFIG_TEST_HASH=m
+CONFIG_TEST_KSTRTOX=m
+CONFIG_TEST_PARMAN=m
+CONFIG_TEST_POWER=m
+CONFIG_TEST_PRINTF=m
+CONFIG_TEST_STATIC_KEYS=m
+CONFIG_TEST_STRING_HELPERS=m
+CONFIG_TEST_UUID=m
+CONFIG_THERMAL_EMULATION=y
+CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y
+CONFIG_THERMAL_MMIO=m
+CONFIG_THERMAL_OF=y
+CONFIG_THREAD_SHIFT=14
+CONFIG_THUNDER_NIC_BGX=m
+CONFIG_THUNDER_NIC_PF=m
+CONFIG_THUNDER_NIC_RGX=m
+CONFIG_THUNDER_NIC_VF=m
+CONFIG_TI_ADC081C=m
+CONFIG_TI_ADC0832=m
+CONFIG_TI_ADC084S021=m
+CONFIG_TI_ADC108S102=m
+CONFIG_TI_ADC12138=m
+CONFIG_TI_ADC161S626=m
+CONFIG_TI_ADS124S08=m
+CONFIG_TI_ADS7950=m
+CONFIG_TI_ADS8344=m
+CONFIG_TI_ADS8688=m
+CONFIG_TI_AM335X_ADC=m
+CONFIG_TICK_CPU_ACCOUNTING=y
+CONFIG_TI_DAC082S085=m
+CONFIG_TI_DAC5571=m
+CONFIG_TI_DAC7612=m
+CONFIG_TINYDRM_HX8357D=m
+CONFIG_TINYDRM_MI0283QT=m
+CONFIG_TINYDRM_REPAPER=m
+CONFIG_TINYDRM_ST7586=m
+CONFIG_TIPC_MEDIA_IB=y
+CONFIG_TI_ST=m
+CONFIG_TI_TLC4541=m
+# CONFIG_TLS is not set
+CONFIG_TMD_HERMES=m
+CONFIG_TMP006=m
+CONFIG_TMP007=m
+# CONFIG_TOUCHSCREEN_88PM860X is not set
+CONFIG_TOUCHSCREEN_AD7877=m
+CONFIG_TOUCHSCREEN_AD7879_I2C=m
+CONFIG_TOUCHSCREEN_AD7879=m
+CONFIG_TOUCHSCREEN_AD7879_SPI=m
+CONFIG_TOUCHSCREEN_ADC=m
+CONFIG_TOUCHSCREEN_ADS7846=m
+CONFIG_TOUCHSCREEN_AR1021_I2C=m
+CONFIG_TOUCHSCREEN_AUO_PIXCIR=m
+CONFIG_TOUCHSCREEN_BU21013=m
+CONFIG_TOUCHSCREEN_BU21029=m
+CONFIG_TOUCHSCREEN_CHIPONE_ICN8318=m
+CONFIG_TOUCHSCREEN_COLIBRI_VF50=m
+CONFIG_TOUCHSCREEN_CY8CTMG110=m
+CONFIG_TOUCHSCREEN_CYTTSP4_CORE=m
+CONFIG_TOUCHSCREEN_CYTTSP4_I2C=m
+CONFIG_TOUCHSCREEN_CYTTSP4_SPI=m
+CONFIG_TOUCHSCREEN_CYTTSP_CORE=m
+CONFIG_TOUCHSCREEN_CYTTSP_I2C=m
+CONFIG_TOUCHSCREEN_CYTTSP_SPI=m
+CONFIG_TOUCHSCREEN_DA9034=m
+CONFIG_TOUCHSCREEN_DA9052=m
+CONFIG_TOUCHSCREEN_EGALAX=m
+CONFIG_TOUCHSCREEN_EKTF2127=m
+CONFIG_TOUCHSCREEN_EXC3000=m
+CONFIG_TOUCHSCREEN_HAMPSHIRE=m
+CONFIG_TOUCHSCREEN_HIDEEP=m
+CONFIG_TOUCHSCREEN_IMX6UL_TSC=m
+CONFIG_TOUCHSCREEN_MAX11801=m
+CONFIG_TOUCHSCREEN_MC13783=m
+CONFIG_TOUCHSCREEN_MELFAS_MIP4=m
+# CONFIG_TOUCHSCREEN_PCAP is not set
+CONFIG_TOUCHSCREEN_ROHM_BU21023=m
+CONFIG_TOUCHSCREEN_S6SY761=m
+CONFIG_TOUCHSCREEN_STMPE=m
+CONFIG_TOUCHSCREEN_SUR40=m
+CONFIG_TOUCHSCREEN_SX8654=m
+CONFIG_TOUCHSCREEN_TI_AM335X_TSC=m
+CONFIG_TOUCHSCREEN_TPS6507X=m
+CONFIG_TOUCHSCREEN_TSC2004=m
+CONFIG_TOUCHSCREEN_TSC2005=m
+# CONFIG_TOUCHSCREEN_TSC2007_IIO is not set
+CONFIG_TOUCHSCREEN_TSC200X_CORE=m
+# CONFIG_TOUCHSCREEN_UCB1400 is not set
+CONFIG_TOUCHSCREEN_WDT87XX_I2C=m
+# CONFIG_TOUCHSCREEN_WM831X is not set
+CONFIG_TOUCHSCREEN_WM9705=y
+CONFIG_TOUCHSCREEN_WM9712=y
+CONFIG_TOUCHSCREEN_WM9713=y
+CONFIG_TOUCHSCREEN_WM97XX=m
+CONFIG_TPL0102=m
+CONFIG_TPS6105X=m
+CONFIG_TPS65010=m
+CONFIG_TPS6507X=m
+# CONFIG_TRACE_EVAL_MAP_FILE is not set
+CONFIG_TRACE_ROUTER=m
+# CONFIG_TRACER_SNAPSHOT is not set
+CONFIG_TRACE_SINK=m
+# CONFIG_TRIM_UNUSED_KSYMS is not set
+CONFIG_TSL2583=m
+CONFIG_TSL4531=m
+CONFIG_TSYS01=m
+CONFIG_TSYS02D=m
+CONFIG_TTY_PRINTK_LEVEL=6
+CONFIG_TTY_PRINTK=m
+# CONFIG_TULIP_MMIO is not set
+CONFIG_TWL4030_CORE=y
+# CONFIG_TWL4030_MADC is not set
+# CONFIG_TWL4030_WATCHDOG is not set
+# CONFIG_TWL6030_GPADC is not set
+CONFIG_TWL6040_CORE=y
+# CONFIG_TYPEC_MUX_PI3USB30532 is not set
+# CONFIG_TYPEC_TCPM is not set
+# CONFIG_TYPEC_UCSI is not set
+# CONFIG_UBIFS_FS is not set
+CONFIG_UCB1400_CORE=m
+# CONFIG_UCLAMP_TASK is not set
+# CONFIG_UDBG_RTAS_CONSOLE is not set
+CONFIG_UIO_DMEM_GENIRQ=m
+CONFIG_UIO_FSL_ELBC_GPCM=m
+# CONFIG_UIO_FSL_ELBC_GPCM_NETX5152 is not set
+CONFIG_UIO_MF624=m
+CONFIG_UIO_NETX=m
+CONFIG_UIO_PDRV_GENIRQ=m
+CONFIG_UIO_PRUSS=m
+# CONFIG_UNIXWARE_DISKLABEL is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+CONFIG_US5182D=m
+CONFIG_USB_AMD5536UDC=m
+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
+CONFIG_USB_AUDIO=m
+CONFIG_USB_BDC_PCI=m
+CONFIG_USB_BDC_UDC=m
+CONFIG_USB_C67X00_HCD=m
+# CONFIG_USB_CDC_COMPOSITE is not set
+CONFIG_USB_CDC_PHONET=m
+CONFIG_USB_CDNS3_GADGET=y
+CONFIG_USB_CDNS3_HOST=y
+CONFIG_USB_CDNS3=m
+CONFIG_USB_CHIPIDEA_HOST=y
+CONFIG_USB_CHIPIDEA=m
+CONFIG_USB_CHIPIDEA_OF=m
+CONFIG_USB_CHIPIDEA_PCI=m
+# CONFIG_USB_CHIPIDEA_UDC is not set
+# CONFIG_USB_CONFIGFS_ACM is not set
+# CONFIG_USB_CONFIGFS_ECM is not set
+# CONFIG_USB_CONFIGFS_ECM_SUBSET is not set
+# CONFIG_USB_CONFIGFS_EEM is not set
+# CONFIG_USB_CONFIGFS_F_FS is not set
+# CONFIG_USB_CONFIGFS_F_HID is not set
+# CONFIG_USB_CONFIGFS_F_LB_SS is not set
+# CONFIG_USB_CONFIGFS_F_MIDI is not set
+CONFIG_USB_CONFIGFS_F_PRINTER=y
+CONFIG_USB_CONFIGFS_F_TCM=y
+# CONFIG_USB_CONFIGFS_F_UAC1 is not set
+# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set
+# CONFIG_USB_CONFIGFS_F_UAC2 is not set
+CONFIG_USB_CONFIGFS_F_UVC=y
+CONFIG_USB_CONFIGFS=m
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+# CONFIG_USB_CONFIGFS_NCM is not set
+# CONFIG_USB_CONFIGFS_OBEX is not set
+# CONFIG_USB_CONFIGFS_PHONET is not set
+# CONFIG_USB_CONFIGFS_RNDIS is not set
+# CONFIG_USB_CONFIGFS_SERIAL is not set
+CONFIG_USB_CONN_GPIO=m
+CONFIG_USB_CYPRESS_CY7C63=m
+CONFIG_USB_CYTHERM=m
+CONFIG_USB_DSBR=m
+CONFIG_USB_DUMMY_HCD=m
+CONFIG_USB_DWC3_DUAL_ROLE=y
+# CONFIG_USB_DWC3_GADGET is not set
+CONFIG_USB_DWC3_HAPS=m
+# CONFIG_USB_DWC3_HOST is not set
+CONFIG_USB_DWC3=m
+CONFIG_USB_DWC3_ULPI=y
+CONFIG_USB_DYNAMIC_MINORS=y
+CONFIG_USB_EG20T=m
+CONFIG_USB_EHCI_FSL=m
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_EHCI_HCD_PLATFORM=m
+CONFIG_USB_EHCI_HCD_PPC_OF=y
+CONFIG_USB_EHCI_PCI=m
+CONFIG_USB_EHSET_TEST_FIXTURE=m
+CONFIG_USB_ETH_EEM=y
+CONFIG_USB_ETH=m
+CONFIG_USB_ETH_RNDIS=y
+CONFIG_USB_F_ACM=m
+CONFIG_USB_F_ECM=m
+CONFIG_USB_F_EEM=m
+CONFIG_USB_F_FS=m
+CONFIG_USB_F_HID=m
+CONFIG_USB_F_MASS_STORAGE=m
+CONFIG_USB_F_MIDI=m
+CONFIG_USB_F_NCM=m
+CONFIG_USB_F_OBEX=m
+CONFIG_USB_FOTG210_HCD=m
+CONFIG_USB_FOTG210_UDC=m
+CONFIG_USB_F_PHONET=m
+CONFIG_USB_F_PRINTER=m
+CONFIG_USB_F_RNDIS=m
+CONFIG_USB_F_SERIAL=m
+CONFIG_USB_F_SUBSET=m
+CONFIG_USB_F_TCM=m
+CONFIG_USB_F_UAC1=m
+# CONFIG_USB_FUNCTIONFS_ETH is not set
+CONFIG_USB_FUNCTIONFS_GENERIC=y
+CONFIG_USB_FUNCTIONFS=m
+# CONFIG_USB_FUNCTIONFS_RNDIS is not set
+CONFIG_USB_F_UVC=m
+CONFIG_USB_G_ACM_MS=m
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+# CONFIG_USB_GADGET_DEBUG_FS is not set
+# CONFIG_USB_GADGET_DEBUG is not set
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_GADGET=m
+CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
+CONFIG_USB_GADGET_TARGET=m
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_XILINX=m
+CONFIG_USB_G_DBGP=m
+# CONFIG_USB_G_DBGP_PRINTK is not set
+CONFIG_USB_G_DBGP_SERIAL=y
+CONFIG_USB_G_HID=m
+CONFIG_USB_G_MULTI_CDC=y
+CONFIG_USB_G_MULTI=m
+CONFIG_USB_G_MULTI_RNDIS=y
+CONFIG_USB_G_NCM=m
+CONFIG_USB_G_NOKIA=m
+CONFIG_USB_GOKU=m
+CONFIG_USB_GPIO_VBUS=m
+CONFIG_USB_G_PRINTER=m
+CONFIG_USB_GR_UDC=m
+CONFIG_USB_G_SERIAL=m
+# CONFIG_USB_GSPCA_DTCS033 is not set
+CONFIG_USB_G_WEBCAM=m
+CONFIG_USB_HCD_BCMA=m
+CONFIG_USB_HCD_SSB=m
+CONFIG_USB_HID=m
+CONFIG_USB_HWA_HCD=m
+CONFIG_USBIP_VUDC=m
+CONFIG_USB_ISP116X_HCD=m
+CONFIG_USB_ISP1301=m
+CONFIG_USB_ISP1760_DUAL_ROLE=y
+# CONFIG_USB_ISP1760_GADGET_ROLE is not set
+CONFIG_USB_ISP1760_HCD=y
+# CONFIG_USB_ISP1760_HOST_ROLE is not set
+CONFIG_USB_ISP1760=m
+CONFIG_USB_ISP1761_UDC=y
+CONFIG_USB_KBD=m
+CONFIG_USB_KEENE=m
+CONFIG_USB_LIBCOMPOSITE=m
+CONFIG_USB=m
+CONFIG_USB_M66592=m
+CONFIG_USB_MA901=m
+CONFIG_USB_MASS_STORAGE=m
+CONFIG_USB_MIDI_GADGET=m
+CONFIG_USB_MON=m
+CONFIG_USB_MOUSE=m
+CONFIG_USB_MR800=m
+CONFIG_USB_MUSB_DUAL_ROLE=y
+# CONFIG_USB_MUSB_GADGET is not set
+CONFIG_USB_MUSB_HDRC=m
+# CONFIG_USB_MUSB_HOST is not set
+CONFIG_USB_MV_U3D=m
+CONFIG_USB_MV_UDC=m
+# CONFIG_USB_NET2272_DMA is not set
+CONFIG_USB_NET2272=m
+CONFIG_USB_NET2280=m
+CONFIG_USB_NET_DRIVERS=m
+CONFIG_USB_NET_SR9800=m
+CONFIG_USB_OHCI_HCD_PLATFORM=m
+# CONFIG_USB_OHCI_HCD_PPC_OF_BE is not set
+# CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set
+CONFIG_USB_OHCI_HCD_SSB=y
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+CONFIG_USB_OTG_WHITELIST=y
+CONFIG_USB_OXU210HP_HCD=m
+CONFIG_USB_PULSE8_CEC=m
+CONFIG_USB_PXA27X=m
+CONFIG_USB_R8A66597_HCD=m
+CONFIG_USB_R8A66597=m
+# CONFIG_USB_RAINSHADOW_CEC is not set
+CONFIG_USB_RAREMONO=m
+# CONFIG_USB_SERIAL_DEBUG is not set
+CONFIG_USB_SERIAL_F81232=m
+CONFIG_USB_SERIAL_METRO=m
+CONFIG_USB_SERIAL_MXUPORT=m
+# CONFIG_USB_SERIAL_SAFE_PADDED is not set
+CONFIG_USB_SERIAL_WISHBONE=m
+CONFIG_USB_SI470X=m
+CONFIG_USB_SI4713=m
+# CONFIG_USB_SL811_HCD_ISO is not set
+CONFIG_USB_SNP_CORE=m
+CONFIG_USB_SNP_UDC_PLAT=m
+CONFIG_USB_TEST=m
+CONFIG_USB_U132_HCD=m
+CONFIG_USB_U_AUDIO=m
+CONFIG_USB_U_ETHER=m
+CONFIG_USB_U_SERIAL=m
+CONFIG_USB_WHCI_HCD=m
+# CONFIG_USB_WUSB_CBAF_DEBUG is not set
+CONFIG_USB_WUSB_CBAF=m
+CONFIG_USB_WUSB=m
+# CONFIG_USB_XHCI_DBGCAP is not set
+CONFIG_USB_ZD1201=m
+# CONFIG_USB_ZERO is not set
+CONFIG_USE_PERCPU_NUMA_NODE_ID=y
+CONFIG_U_SERIAL_CONSOLE=y
+CONFIG_USERIO=m
+CONFIG_V4L2_FLASH_LED_CLASS=m
+CONFIG_V4L2_MEM2MEM_DEV=m
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+CONFIG_V4L_PLATFORM_DRIVERS=y
+CONFIG_VALIDATE_FS_PARSER=y
+CONFIG_VCNL4000=m
+CONFIG_VEML6070=m
+CONFIG_VF610_ADC=m
+CONFIG_VF610_DAC=m
+CONFIG_VFIO_IOMMU_SPAPR_TCE=m
+CONFIG_VFIO_NOIOMMU=y
+CONFIG_VFIO_PCI_NVLINK2=y
+CONFIG_VFIO_SPAPR_EEH=m
+CONFIG_VGACON_SOFT_SCROLLBACK_PERSISTENT_ENABLE_BY_DEFAULT=y
+CONFIG_VHOST_CROSS_ENDIAN_LEGACY=y
+CONFIG_VHOST_RING=m
+# CONFIG_VIA_RHINE_MMIO is not set
+# CONFIG_VIDEO_AD5820 is not set
+# CONFIG_VIDEO_AD9389B is not set
+# CONFIG_VIDEO_ADP1653 is not set
+# CONFIG_VIDEO_ADV7170 is not set
+# CONFIG_VIDEO_ADV7175 is not set
+# CONFIG_VIDEO_ADV7180 is not set
+# CONFIG_VIDEO_ADV7183 is not set
+# CONFIG_VIDEO_ADV7343 is not set
+# CONFIG_VIDEO_ADV7393 is not set
+# CONFIG_VIDEO_ADV748X is not set
+# CONFIG_VIDEO_ADV7604 is not set
+# CONFIG_VIDEO_ADV7842 is not set
+# CONFIG_VIDEO_AK7375 is not set
+# CONFIG_VIDEO_AK881X is not set
+CONFIG_VIDEO_ASPEED=m
+# CONFIG_VIDEO_AU0828_RC is not set
+# CONFIG_VIDEO_BT819 is not set
+CONFIG_VIDEO_BT848=m
+# CONFIG_VIDEO_BT856 is not set
+# CONFIG_VIDEO_BT866 is not set
+CONFIG_VIDEOBUF2_DMA_CONTIG=m
+CONFIG_VIDEOBUF2_DMA_SG=m
+CONFIG_VIDEOBUF2_DVB=m
+CONFIG_VIDEOBUF_DMA_SG=m
+# CONFIG_VIDEO_CADENCE is not set
+CONFIG_VIDEO_CS3308=m
+CONFIG_VIDEO_CS5345=m
+CONFIG_VIDEO_CX18_ALSA=m
+CONFIG_VIDEO_CX18=m
+CONFIG_VIDEO_CX23885=m
+CONFIG_VIDEO_CX25821_ALSA=m
+CONFIG_VIDEO_CX25821=m
+CONFIG_VIDEO_CX88_ALSA=m
+CONFIG_VIDEO_CX88_BLACKBIRD=m
+CONFIG_VIDEO_CX88_DVB=m
+CONFIG_VIDEO_CX88_ENABLE_VP3054=y
+CONFIG_VIDEO_CX88=m
+CONFIG_VIDEO_CX88_MPEG=m
+CONFIG_VIDEO_CX88_VP3054=m
+CONFIG_VIDEO_DT3155=m
+# CONFIG_VIDEO_DW9714 is not set
+# CONFIG_VIDEO_DW9807_VCM is not set
+# CONFIG_VIDEO_ET8EK8 is not set
+CONFIG_VIDEO_FB_IVTV=m
+CONFIG_VIDEO_GO7007_USB=m
+CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m
+# CONFIG_VIDEO_GS1662 is not set
+CONFIG_VIDEO_HEXIUM_GEMINI=m
+CONFIG_VIDEO_HEXIUM_ORION=m
+# CONFIG_VIDEO_I2C is not set
+# CONFIG_VIDEO_IMX214 is not set
+# CONFIG_VIDEO_IMX258 is not set
+# CONFIG_VIDEO_IMX274 is not set
+# CONFIG_VIDEO_IMX319 is not set
+# CONFIG_VIDEO_IMX355 is not set
+CONFIG_VIDEO_IVTV_ALSA=m
+# CONFIG_VIDEO_IVTV_DEPRECATED_IOCTLS is not set
+CONFIG_VIDEO_IVTV=m
+# CONFIG_VIDEO_KS0127 is not set
+# CONFIG_VIDEO_LM3560 is not set
+# CONFIG_VIDEO_LM3646 is not set
+CONFIG_VIDEO_M52790=m
+# CONFIG_VIDEO_M5MOLS is not set
+CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m
+# CONFIG_VIDEO_ML86V7667 is not set
+CONFIG_VIDEOMODE_HELPERS=y
+# CONFIG_VIDEO_MT9M001 is not set
+# CONFIG_VIDEO_MT9M032 is not set
+# CONFIG_VIDEO_MT9M111 is not set
+# CONFIG_VIDEO_MT9P031 is not set
+# CONFIG_VIDEO_MT9T001 is not set
+# CONFIG_VIDEO_MT9T112 is not set
+# CONFIG_VIDEO_MT9V032 is not set
+# CONFIG_VIDEO_MT9V111 is not set
+CONFIG_VIDEO_MUX=m
+CONFIG_VIDEO_MXB=m
+# CONFIG_VIDEO_NOON010PC30 is not set
+# CONFIG_VIDEO_OV13858 is not set
+# CONFIG_VIDEO_OV2659 is not set
+# CONFIG_VIDEO_OV2680 is not set
+# CONFIG_VIDEO_OV2685 is not set
+# CONFIG_VIDEO_OV5640 is not set
+# CONFIG_VIDEO_OV5645 is not set
+# CONFIG_VIDEO_OV5647 is not set
+# CONFIG_VIDEO_OV5670 is not set
+CONFIG_VIDEO_OV5675=m
+# CONFIG_VIDEO_OV5695 is not set
+# CONFIG_VIDEO_OV6650 is not set
+# CONFIG_VIDEO_OV7251 is not set
+CONFIG_VIDEO_OV7670=m
+# CONFIG_VIDEO_OV772X is not set
+# CONFIG_VIDEO_OV7740 is not set
+# CONFIG_VIDEO_OV8856 is not set
+# CONFIG_VIDEO_OV9640 is not set
+# CONFIG_VIDEO_OV9650 is not set
+# CONFIG_VIDEO_RJ54N1 is not set
+# CONFIG_VIDEO_S5C73M3 is not set
+# CONFIG_VIDEO_S5K4ECGX is not set
+# CONFIG_VIDEO_S5K5BAF is not set
+# CONFIG_VIDEO_S5K6A3 is not set
+# CONFIG_VIDEO_S5K6AA is not set
+CONFIG_VIDEO_SAA6588=m
+CONFIG_VIDEO_SAA6752HS=m
+# CONFIG_VIDEO_SAA7110 is not set
+CONFIG_VIDEO_SAA7127=m
+CONFIG_VIDEO_SAA7134_ALSA=m
+CONFIG_VIDEO_SAA7134_DVB=m
+CONFIG_VIDEO_SAA7134_GO7007=m
+CONFIG_VIDEO_SAA7134=m
+CONFIG_VIDEO_SAA7134_RC=y
+CONFIG_VIDEO_SAA7146=m
+CONFIG_VIDEO_SAA7146_VV=m
+CONFIG_VIDEO_SAA7164=m
+CONFIG_VIDEO_SAA717X=m
+# CONFIG_VIDEO_SAA7185 is not set
+CONFIG_VIDEO_SH_VEU=m
+# CONFIG_VIDEO_SOLO6X10 is not set
+# CONFIG_VIDEO_SR030PC30 is not set
+# CONFIG_VIDEO_ST_MIPID02 is not set
+# CONFIG_VIDEO_TC358743 is not set
+# CONFIG_VIDEO_TDA1997X is not set
+CONFIG_VIDEO_TDA7432=m
+CONFIG_VIDEO_TDA9840=m
+CONFIG_VIDEO_TEA6415C=m
+CONFIG_VIDEO_TEA6420=m
+# CONFIG_VIDEO_THS7303 is not set
+# CONFIG_VIDEO_THS8200 is not set
+# CONFIG_VIDEO_TLV320AIC23B is not set
+CONFIG_VIDEO_TVAUDIO=m
+# CONFIG_VIDEO_TVP514X is not set
+# CONFIG_VIDEO_TVP7002 is not set
+CONFIG_VIDEO_TW5864=m
+CONFIG_VIDEO_TW686X=m
+CONFIG_VIDEO_TW68=m
+# CONFIG_VIDEO_TW9910 is not set
+CONFIG_VIDEO_UPD64031A=m
+CONFIG_VIDEO_UPD64083=m
+CONFIG_VIDEO_VP27SMPX=m
+# CONFIG_VIDEO_VPX3220 is not set
+# CONFIG_VIDEO_VS6624 is not set
+CONFIG_VIDEO_WM8739=m
+CONFIG_VIDEO_XILINX=m
+CONFIG_VIDEO_XILINX_TPG=m
+CONFIG_VIDEO_XILINX_VTC=m
+CONFIG_VIPERBOARD_ADC=m
+# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
+# CONFIG_VIRT_CPU_ACCOUNTING_NATIVE is not set
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_VIRTIO_BLK=m
+# CONFIG_VIRTIO_BLK_SCSI is not set
+CONFIG_VIRTIO_CONSOLE=m
+CONFIG_VIRTIO_FS=m
+CONFIG_VIRTIO_INPUT=m
+CONFIG_VIRTIO=m
+CONFIG_VIRTIO_MENU=y
+# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
+CONFIG_VIRTIO_MMIO=m
+CONFIG_VIRTIO_NET=m
+CONFIG_VIRTIO_PCI_LEGACY=y
+CONFIG_VIRTIO_PCI=m
+# CONFIG_VIRTIO_PMEM is not set
+CONFIG_VIRTIO_VSOCKETS=m
+# CONFIG_VMXNET3 is not set
+CONFIG_VOP_BUS=m
+CONFIG_VOP=m
+# CONFIG_VSOCKMON is not set
+CONFIG_VSX=y
+CONFIG_VT6655=m
+CONFIG_VT6656=m
+CONFIG_VZ89X=m
+CONFIG_W1_CON=y
+CONFIG_W1=m
+CONFIG_W1_MASTER_DS1WM=m
+CONFIG_W1_MASTER_DS2482=m
+CONFIG_W1_MASTER_DS2490=m
+CONFIG_W1_MASTER_GPIO=m
+CONFIG_W1_MASTER_MATROX=m
+CONFIG_W1_MASTER_SGI=m
+CONFIG_W1_SLAVE_DS2405=m
+CONFIG_W1_SLAVE_DS2406=m
+CONFIG_W1_SLAVE_DS2408=m
+CONFIG_W1_SLAVE_DS2408_READBACK=y
+CONFIG_W1_SLAVE_DS2413=m
+CONFIG_W1_SLAVE_DS2423=m
+CONFIG_W1_SLAVE_DS2431=m
+# CONFIG_W1_SLAVE_DS2433_CRC is not set
+CONFIG_W1_SLAVE_DS2433=m
+CONFIG_W1_SLAVE_DS2438=m
+CONFIG_W1_SLAVE_DS250X=m
+CONFIG_W1_SLAVE_DS2780=m
+CONFIG_W1_SLAVE_DS2781=m
+CONFIG_W1_SLAVE_DS2805=m
+CONFIG_W1_SLAVE_DS28E04=m
+CONFIG_W1_SLAVE_DS28E17=m
+CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_THERM=m
+CONFIG_WATCHDOG_RTAS=m
+# CONFIG_WILC1000_HW_OOB_INTR is not set
+CONFIG_WILC1000=m
+CONFIG_WILC1000_SDIO=m
+CONFIG_WIMAX_DEBUG_LEVEL=8
+CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
+CONFIG_WIMAX_I2400M=m
+CONFIG_WIMAX_I2400M_USB=m
+CONFIG_WIMAX=m
+CONFIG_WINDFARM=m
+CONFIG_WIRELESS_WDS=y
+CONFIG_WLAN_VENDOR_ADMTEK=y
+CONFIG_WLAN_VENDOR_ATMEL=y
+CONFIG_WLAN_VENDOR_CISCO=y
+CONFIG_WLCORE_SPI=m
+# CONFIG_WM831X_BACKUP is not set
+# CONFIG_WM831X_POWER is not set
+CONFIG_WM831X_WATCHDOG=m
+# CONFIG_WM8350_POWER is not set
+# CONFIG_WM8350_WATCHDOG is not set
+CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
+CONFIG_WW_MUTEX_SELFTEST=m
+CONFIG_X25=m
+CONFIG_XFRM_ALGO=m
+# CONFIG_XFRM_STATISTICS is not set
+# CONFIG_XFRM_SUB_POLICY is not set
+CONFIG_XFRM_USER=m
+# CONFIG_XFS_ONLINE_SCRUB is not set
+CONFIG_XFS_RT=y
+CONFIG_XIL_AXIS_FIFO=m
+CONFIG_XILINX_WATCHDOG=m
+CONFIG_XILLYBUS_OF=m
+# CONFIG_XMON_DEFAULT is not set
+CONFIG_XMON_DEFAULT_RO_MODE=y
+CONFIG_XMON_DISASSEMBLY=y
+CONFIG_XMON=y
+CONFIG_XZ_DEC_TEST=m
+CONFIG_Z3FOLD=m
+CONFIG_ZIIRAVE_WATCHDOG=m
+CONFIG_ZONE_DEVICE=y
+CONFIG_ZPA2326_I2C=m
+CONFIG_ZPA2326=m
+CONFIG_ZPA2326_SPI=m
+CONFIG_ZRAM_WRITEBACK=y
diff --git a/arch/ppc64le/kernel-config b/arch/ppc64le/kernel-config
deleted file mode 100644
index 543e9a3..0000000
--- a/arch/ppc64le/kernel-config
+++ /dev/null
@@ -1,7520 +0,0 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# Linux/powerpc 4.2.1-gentoo Kernel Configuration
-#
-
-#
-# Gentoo Linux
-#
-CONFIG_GENTOO_LINUX=y
-CONFIG_GENTOO_LINUX_UDEV=y
-
-#
-# Support for init systems, system and service managers
-#
-CONFIG_GENTOO_LINUX_INIT_SCRIPT=y
-# CONFIG_GENTOO_LINUX_INIT_SYSTEMD is not set
-CONFIG_PPC64=y
-
-#
-# Processor support
-#
-CONFIG_PPC_BOOK3S_64=y
-# CONFIG_PPC_BOOK3E_64 is not set
-# CONFIG_POWER7_CPU is not set
-CONFIG_POWER8_CPU=y
-CONFIG_PPC_BOOK3S=y
-# CONFIG_TUNE_CELL is not set
-CONFIG_PPC_FPU=y
-CONFIG_ALTIVEC=y
-CONFIG_VSX=y
-# CONFIG_PPC_ICSWX is not set
-CONFIG_PPC_STD_MMU=y
-CONFIG_PPC_STD_MMU_64=y
-CONFIG_PPC_MM_SLICES=y
-CONFIG_PPC_HAVE_PMU_SUPPORT=y
-CONFIG_PPC_PERF_CTRS=y
-CONFIG_SMP=y
-CONFIG_NR_CPUS=2048
-CONFIG_PPC_DOORBELL=y
-# CONFIG_CPU_BIG_ENDIAN is not set
-CONFIG_CPU_LITTLE_ENDIAN=y
-CONFIG_PPC64_BOOT_WRAPPER=y
-CONFIG_64BIT=y
-CONFIG_WORD_SIZE=64
-CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
-CONFIG_ARCH_DMA_ADDR_T_64BIT=y
-CONFIG_MMU=y
-CONFIG_HAVE_SETUP_PER_CPU_AREA=y
-CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
-CONFIG_NR_IRQS=512
-CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_HAVE_LATENCYTOP_SUPPORT=y
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-CONFIG_LOCKDEP_SUPPORT=y
-CONFIG_RWSEM_XCHGADD_ALGORITHM=y
-CONFIG_ARCH_HAS_ILOG2_U32=y
-CONFIG_ARCH_HAS_ILOG2_U64=y
-CONFIG_GENERIC_HWEIGHT=y
-CONFIG_PPC=y
-CONFIG_GENERIC_CSUM=y
-CONFIG_EARLY_PRINTK=y
-CONFIG_PANIC_TIMEOUT=0
-CONFIG_COMPAT=y
-CONFIG_SYSVIPC_COMPAT=y
-CONFIG_SCHED_OMIT_FRAME_POINTER=y
-CONFIG_ARCH_MAY_HAVE_PC_FDC=y
-CONFIG_PPC_UDBG_16550=y
-# CONFIG_GENERIC_TBSYNC is not set
-CONFIG_AUDIT_ARCH=y
-CONFIG_GENERIC_BUG=y
-CONFIG_EPAPR_BOOT=y
-# CONFIG_DEFAULT_UIMAGE is not set
-CONFIG_ARCH_HIBERNATION_POSSIBLE=y
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
-# CONFIG_PPC_DCR_NATIVE is not set
-CONFIG_PPC_DCR_MMIO=y
-CONFIG_PPC_DCR=y
-CONFIG_PPC_OF_PLATFORM_PCI=y
-CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
-CONFIG_ARCH_SUPPORTS_UPROBES=y
-CONFIG_PPC_EMULATE_SSTEP=y
-CONFIG_ZONE_DMA32=y
-CONFIG_PGTABLE_LEVELS=3
-CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-CONFIG_IRQ_WORK=y
-
-#
-# General setup
-#
-CONFIG_INIT_ENV_ARG_LIMIT=32
-CONFIG_CROSS_COMPILE=""
-# CONFIG_COMPILE_TEST is not set
-CONFIG_LOCALVERSION=""
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_DEFAULT_HOSTNAME="(none)"
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-CONFIG_SYSVIPC_SYSCTL=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_POSIX_MQUEUE_SYSCTL=y
-CONFIG_CROSS_MEMORY_ATTACH=y
-CONFIG_FHANDLE=y
-CONFIG_USELIB=y
-CONFIG_AUDIT=y
-CONFIG_HAVE_ARCH_AUDITSYSCALL=y
-CONFIG_AUDITSYSCALL=y
-CONFIG_AUDIT_WATCH=y
-CONFIG_AUDIT_TREE=y
-
-#
-# IRQ subsystem
-#
-CONFIG_GENERIC_IRQ_SHOW=y
-CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
-CONFIG_IRQ_EDGE_EOI_HANDLER=y
-CONFIG_GENERIC_IRQ_CHIP=y
-CONFIG_IRQ_DOMAIN=y
-CONFIG_GENERIC_MSI_IRQ=y
-# CONFIG_IRQ_DOMAIN_DEBUG is not set
-CONFIG_IRQ_FORCED_THREADING=y
-CONFIG_SPARSE_IRQ=y
-CONFIG_GENERIC_TIME_VSYSCALL_OLD=y
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_ARCH_HAS_TICK_BROADCAST=y
-CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
-CONFIG_GENERIC_CMOS_UPDATE=y
-
-#
-# Timers subsystem
-#
-CONFIG_TICK_ONESHOT=y
-CONFIG_NO_HZ_COMMON=y
-# CONFIG_HZ_PERIODIC is not set
-CONFIG_NO_HZ_IDLE=y
-# CONFIG_NO_HZ_FULL is not set
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-
-#
-# CPU/Task time and stats accounting
-#
-CONFIG_VIRT_CPU_ACCOUNTING=y
-# CONFIG_TICK_CPU_ACCOUNTING is not set
-# CONFIG_VIRT_CPU_ACCOUNTING_NATIVE is not set
-CONFIG_VIRT_CPU_ACCOUNTING_GEN=y
-CONFIG_BSD_PROCESS_ACCT=y
-CONFIG_BSD_PROCESS_ACCT_V3=y
-CONFIG_TASKSTATS=y
-CONFIG_TASK_DELAY_ACCT=y
-CONFIG_TASK_XACCT=y
-CONFIG_TASK_IO_ACCOUNTING=y
-
-#
-# RCU Subsystem
-#
-CONFIG_TREE_RCU=y
-# CONFIG_RCU_EXPERT is not set
-CONFIG_SRCU=y
-# CONFIG_TASKS_RCU is not set
-CONFIG_RCU_STALL_COMMON=y
-CONFIG_CONTEXT_TRACKING=y
-# CONFIG_CONTEXT_TRACKING_FORCE is not set
-# CONFIG_TREE_RCU_TRACE is not set
-# CONFIG_RCU_NOCB_CPU is not set
-# CONFIG_RCU_EXPEDITE_BOOT is not set
-CONFIG_BUILD_BIN2C=y
-# CONFIG_IKCONFIG is not set
-CONFIG_LOG_BUF_SHIFT=17
-CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
-CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
-CONFIG_NUMA_BALANCING=y
-CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y
-CONFIG_CGROUPS=y
-# CONFIG_CGROUP_DEBUG is not set
-CONFIG_CGROUP_FREEZER=y
-CONFIG_CGROUP_DEVICE=y
-CONFIG_CPUSETS=y
-CONFIG_PROC_PID_CPUSET=y
-CONFIG_CGROUP_CPUACCT=y
-CONFIG_PAGE_COUNTER=y
-CONFIG_MEMCG=y
-CONFIG_MEMCG_SWAP=y
-# CONFIG_MEMCG_SWAP_ENABLED is not set
-CONFIG_MEMCG_KMEM=y
-CONFIG_CGROUP_HUGETLB=y
-CONFIG_CGROUP_PERF=y
-CONFIG_CGROUP_SCHED=y
-CONFIG_FAIR_GROUP_SCHED=y
-CONFIG_CFS_BANDWIDTH=y
-# CONFIG_RT_GROUP_SCHED is not set
-CONFIG_BLK_CGROUP=y
-# CONFIG_DEBUG_BLK_CGROUP is not set
-CONFIG_CGROUP_WRITEBACK=y
-CONFIG_CHECKPOINT_RESTORE=y
-CONFIG_NAMESPACES=y
-CONFIG_UTS_NS=y
-CONFIG_IPC_NS=y
-CONFIG_USER_NS=y
-CONFIG_PID_NS=y
-CONFIG_NET_NS=y
-CONFIG_SCHED_AUTOGROUP=y
-# CONFIG_SYSFS_DEPRECATED is not set
-CONFIG_RELAY=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_RD_GZIP=y
-CONFIG_RD_BZIP2=y
-CONFIG_RD_LZMA=y
-CONFIG_RD_XZ=y
-CONFIG_RD_LZO=y
-CONFIG_RD_LZ4=y
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-CONFIG_SYSCTL=y
-CONFIG_ANON_INODES=y
-CONFIG_SYSCTL_EXCEPTION_TRACE=y
-CONFIG_HAVE_PCSPKR_PLATFORM=y
-CONFIG_BPF=y
-CONFIG_EXPERT=y
-CONFIG_MULTIUSER=y
-CONFIG_SGETMASK_SYSCALL=y
-CONFIG_SYSFS_SYSCALL=y
-CONFIG_SYSCTL_SYSCALL=y
-CONFIG_KALLSYMS=y
-CONFIG_KALLSYMS_ALL=y
-CONFIG_PRINTK=y
-CONFIG_BUG=y
-CONFIG_ELF_CORE=y
-CONFIG_PCSPKR_PLATFORM=y
-CONFIG_BASE_FULL=y
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-CONFIG_SIGNALFD=y
-CONFIG_TIMERFD=y
-CONFIG_EVENTFD=y
-# CONFIG_BPF_SYSCALL is not set
-CONFIG_SHMEM=y
-CONFIG_AIO=y
-CONFIG_ADVISE_SYSCALLS=y
-CONFIG_PCI_QUIRKS=y
-# CONFIG_EMBEDDED is not set
-CONFIG_HAVE_PERF_EVENTS=y
-
-#
-# Kernel Performance Events And Counters
-#
-CONFIG_PERF_EVENTS=y
-CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_SLUB_DEBUG=y
-# CONFIG_COMPAT_BRK is not set
-# CONFIG_SLAB is not set
-CONFIG_SLUB=y
-# CONFIG_SLOB is not set
-CONFIG_SLUB_CPU_PARTIAL=y
-CONFIG_SYSTEM_TRUSTED_KEYRING=y
-CONFIG_PROFILING=y
-CONFIG_TRACEPOINTS=y
-CONFIG_OPROFILE=m
-CONFIG_HAVE_OPROFILE=y
-CONFIG_KPROBES=y
-CONFIG_JUMP_LABEL=y
-CONFIG_UPROBES=y
-CONFIG_HAVE_64BIT_ALIGNED_ACCESS=y
-CONFIG_ARCH_USE_BUILTIN_BSWAP=y
-CONFIG_KRETPROBES=y
-CONFIG_HAVE_IOREMAP_PROT=y
-CONFIG_HAVE_KPROBES=y
-CONFIG_HAVE_KRETPROBES=y
-CONFIG_HAVE_ARCH_TRACEHOOK=y
-CONFIG_HAVE_DMA_ATTRS=y
-CONFIG_GENERIC_SMP_IDLE_THREAD=y
-CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
-CONFIG_HAVE_DMA_API_DEBUG=y
-CONFIG_HAVE_HW_BREAKPOINT=y
-CONFIG_HAVE_PERF_EVENTS_NMI=y
-CONFIG_HAVE_ARCH_JUMP_LABEL=y
-CONFIG_HAVE_RCU_TABLE_FREE=y
-CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
-CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
-CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
-CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y
-# CONFIG_CC_STACKPROTECTOR is not set
-CONFIG_HAVE_CONTEXT_TRACKING=y
-CONFIG_HAVE_VIRT_CPU_ACCOUNTING=y
-CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
-CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
-CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
-CONFIG_MODULES_USE_ELF_RELA=y
-CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y
-CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
-CONFIG_CLONE_BACKWARDS=y
-CONFIG_OLD_SIGSUSPEND=y
-CONFIG_COMPAT_OLD_SIGACTION=y
-
-#
-# GCOV-based kernel profiling
-#
-# CONFIG_GCOV_KERNEL is not set
-CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
-# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
-CONFIG_SLABINFO=y
-CONFIG_RT_MUTEXES=y
-CONFIG_BASE_SMALL=0
-CONFIG_MODULES=y
-# CONFIG_MODULE_FORCE_LOAD is not set
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_MODULE_FORCE_UNLOAD is not set
-CONFIG_MODVERSIONS=y
-CONFIG_MODULE_SRCVERSION_ALL=y
-CONFIG_MODULE_SIG=y
-# CONFIG_MODULE_SIG_FORCE is not set
-CONFIG_MODULE_SIG_ALL=y
-# CONFIG_MODULE_SIG_SHA1 is not set
-# CONFIG_MODULE_SIG_SHA224 is not set
-# CONFIG_MODULE_SIG_SHA256 is not set
-# CONFIG_MODULE_SIG_SHA384 is not set
-CONFIG_MODULE_SIG_SHA512=y
-CONFIG_MODULE_SIG_HASH="sha512"
-# CONFIG_MODULE_COMPRESS is not set
-CONFIG_MODULES_TREE_LOOKUP=y
-CONFIG_STOP_MACHINE=y
-CONFIG_BLOCK=y
-CONFIG_BLK_DEV_BSG=y
-CONFIG_BLK_DEV_BSGLIB=y
-CONFIG_BLK_DEV_INTEGRITY=y
-CONFIG_BLK_DEV_THROTTLING=y
-CONFIG_BLK_CMDLINE_PARSER=y
-
-#
-# Partition Types
-#
-CONFIG_PARTITION_ADVANCED=y
-CONFIG_ACORN_PARTITION=y
-CONFIG_ACORN_PARTITION_CUMANA=y
-CONFIG_ACORN_PARTITION_EESOX=y
-CONFIG_ACORN_PARTITION_ICS=y
-CONFIG_ACORN_PARTITION_ADFS=y
-CONFIG_ACORN_PARTITION_POWERTEC=y
-CONFIG_ACORN_PARTITION_RISCIX=y
-CONFIG_AIX_PARTITION=y
-CONFIG_OSF_PARTITION=y
-CONFIG_AMIGA_PARTITION=y
-CONFIG_ATARI_PARTITION=y
-CONFIG_MAC_PARTITION=y
-CONFIG_MSDOS_PARTITION=y
-CONFIG_BSD_DISKLABEL=y
-CONFIG_MINIX_SUBPARTITION=y
-CONFIG_SOLARIS_X86_PARTITION=y
-CONFIG_UNIXWARE_DISKLABEL=y
-CONFIG_LDM_PARTITION=y
-# CONFIG_LDM_DEBUG is not set
-CONFIG_SGI_PARTITION=y
-CONFIG_ULTRIX_PARTITION=y
-CONFIG_SUN_PARTITION=y
-CONFIG_KARMA_PARTITION=y
-CONFIG_EFI_PARTITION=y
-CONFIG_SYSV68_PARTITION=y
-CONFIG_CMDLINE_PARTITION=y
-CONFIG_BLOCK_COMPAT=y
-
-#
-# IO Schedulers
-#
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
-CONFIG_CFQ_GROUP_IOSCHED=y
-# CONFIG_DEFAULT_DEADLINE is not set
-CONFIG_DEFAULT_CFQ=y
-# CONFIG_DEFAULT_NOOP is not set
-CONFIG_DEFAULT_IOSCHED="cfq"
-CONFIG_PREEMPT_NOTIFIERS=y
-CONFIG_PADATA=y
-CONFIG_ASN1=y
-CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
-CONFIG_INLINE_READ_UNLOCK=y
-CONFIG_INLINE_READ_UNLOCK_IRQ=y
-CONFIG_INLINE_WRITE_UNLOCK=y
-CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
-CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
-CONFIG_MUTEX_SPIN_ON_OWNER=y
-CONFIG_RWSEM_SPIN_ON_OWNER=y
-CONFIG_LOCK_SPIN_ON_OWNER=y
-CONFIG_FREEZER=y
-CONFIG_PPC_MSI_BITMAP=y
-CONFIG_PPC_XICS=y
-CONFIG_PPC_ICP_NATIVE=y
-CONFIG_PPC_ICP_HV=y
-CONFIG_PPC_ICS_RTAS=y
-CONFIG_PPC_SCOM=y
-# CONFIG_SCOM_DEBUGFS is not set
-# CONFIG_GE_FPGA is not set
-
-#
-# Platform support
-#
-CONFIG_PPC_POWERNV=y
-# CONFIG_OPAL_PRD is not set
-CONFIG_PPC_PSERIES=y
-CONFIG_PPC_SPLPAR=y
-CONFIG_DTL=y
-CONFIG_PSERIES_MSI=y
-CONFIG_PSERIES_ENERGY=m
-CONFIG_SCANLOG=m
-CONFIG_IO_EVENT_IRQ=y
-CONFIG_LPARCFG=y
-CONFIG_PPC_SMLPAR=y
-CONFIG_CMM=m
-CONFIG_HV_PERF_CTRS=y
-# CONFIG_PPC_PMAC is not set
-# CONFIG_PPC_MAPLE is not set
-# CONFIG_PPC_PASEMI is not set
-# CONFIG_PPC_PS3 is not set
-CONFIG_PPC_CELL=y
-CONFIG_PPC_CELL_COMMON=y
-CONFIG_PPC_CELL_NATIVE=y
-CONFIG_PPC_IBM_CELL_BLADE=y
-CONFIG_PPC_CELL_QPACE=y
-CONFIG_AXON_MSI=y
-
-#
-# Cell Broadband Engine options
-#
-CONFIG_SPU_FS=m
-CONFIG_SPU_BASE=y
-CONFIG_CBE_RAS=y
-CONFIG_PPC_IBM_CELL_RESETBUTTON=y
-CONFIG_PPC_IBM_CELL_POWERBUTTON=y
-CONFIG_CBE_THERM=m
-CONFIG_PPC_PMI=y
-CONFIG_CBE_CPUFREQ_SPU_GOVERNOR=m
-CONFIG_OPROFILE_CELL=y
-# CONFIG_PQ2ADS is not set
-CONFIG_KVM_GUEST=y
-CONFIG_EPAPR_PARAVIRT=y
-CONFIG_PPC_NATIVE=y
-CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
-CONFIG_UDBG_RTAS_CONSOLE=y
-CONFIG_PPC_SMP_MUXED_IPI=y
-# CONFIG_IPIC is not set
-CONFIG_MPIC=y
-# CONFIG_PPC_EPAPR_HV_PIC is not set
-# CONFIG_MPIC_WEIRD is not set
-# CONFIG_MPIC_MSGR is not set
-CONFIG_PPC_I8259=y
-# CONFIG_U3_DART is not set
-CONFIG_PPC_RTAS=y
-CONFIG_RTAS_ERROR_LOGGING=y
-CONFIG_PPC_RTAS_DAEMON=y
-CONFIG_RTAS_PROC=y
-CONFIG_RTAS_FLASH=m
-CONFIG_MMIO_NVRAM=y
-# CONFIG_MPIC_U3_HT_IRQS is not set
-CONFIG_IBMVIO=y
-CONFIG_IBMEBUS=y
-CONFIG_EEH=y
-# CONFIG_PPC_MPC106 is not set
-# CONFIG_PPC_970_NAP is not set
-CONFIG_PPC_P7_NAP=y
-CONFIG_PPC_INDIRECT_PIO=y
-CONFIG_PPC_INDIRECT_MMIO=y
-CONFIG_PPC_IO_WORKAROUNDS=y
-
-#
-# CPU Frequency scaling
-#
-CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_GOV_COMMON=y
-CONFIG_CPU_FREQ_STAT=y
-CONFIG_CPU_FREQ_STAT_DETAILS=y
-CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
-# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
-CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
-CONFIG_CPU_FREQ_GOV_POWERSAVE=y
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_CPU_FREQ_GOV_ONDEMAND=y
-CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
-
-#
-# CPU frequency scaling drivers
-#
-CONFIG_CPU_FREQ_CBE=m
-# CONFIG_CPU_FREQ_CBE_PMI is not set
-CONFIG_POWERNV_CPUFREQ=y
-
-#
-# CPUIdle driver
-#
-
-#
-# CPU Idle
-#
-CONFIG_CPU_IDLE=y
-CONFIG_CPU_IDLE_GOV_LADDER=y
-CONFIG_CPU_IDLE_GOV_MENU=y
-
-#
-# POWERPC CPU Idle Drivers
-#
-CONFIG_PSERIES_CPUIDLE=y
-CONFIG_POWERNV_CPUIDLE=y
-# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
-CONFIG_AXON_RAM=m
-# CONFIG_FSL_ULI1575 is not set
-# CONFIG_SIMPLE_GPIO is not set
-
-#
-# Kernel options
-#
-# CONFIG_HZ_100 is not set
-CONFIG_HZ_250=y
-# CONFIG_HZ_300 is not set
-# CONFIG_HZ_1000 is not set
-CONFIG_HZ=250
-CONFIG_SCHED_HRTICK=y
-# CONFIG_PREEMPT_NONE is not set
-CONFIG_PREEMPT_VOLUNTARY=y
-# CONFIG_PREEMPT is not set
-CONFIG_BINFMT_ELF=y
-CONFIG_COMPAT_BINFMT_ELF=y
-CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
-CONFIG_BINFMT_SCRIPT=y
-# CONFIG_HAVE_AOUT is not set
-CONFIG_BINFMT_MISC=m
-CONFIG_COREDUMP=y
-CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y
-CONFIG_PPC_TRANSACTIONAL_MEM=y
-CONFIG_IOMMU_HELPER=y
-CONFIG_SWIOTLB=y
-CONFIG_HOTPLUG_CPU=y
-CONFIG_ARCH_CPU_PROBE_RELEASE=y
-CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
-CONFIG_ARCH_HAS_WALK_MEMORY=y
-CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
-CONFIG_PPC64_SUPPORTS_MEMORY_FAILURE=y
-CONFIG_KEXEC=y
-CONFIG_CRASH_DUMP=y
-# CONFIG_FA_DUMP is not set
-CONFIG_IRQ_ALL_CPUS=y
-CONFIG_NUMA=y
-CONFIG_NODES_SHIFT=8
-CONFIG_USE_PERCPU_NUMA_NODE_ID=y
-CONFIG_HAVE_MEMORYLESS_NODES=y
-CONFIG_ARCH_SELECT_MEMORY_MODEL=y
-CONFIG_ARCH_SPARSEMEM_ENABLE=y
-CONFIG_ARCH_SPARSEMEM_DEFAULT=y
-CONFIG_SYS_SUPPORTS_HUGETLBFS=y
-CONFIG_SELECT_MEMORY_MODEL=y
-CONFIG_SPARSEMEM_MANUAL=y
-CONFIG_SPARSEMEM=y
-CONFIG_NEED_MULTIPLE_NODES=y
-CONFIG_HAVE_MEMORY_PRESENT=y
-CONFIG_SPARSEMEM_EXTREME=y
-CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
-CONFIG_SPARSEMEM_VMEMMAP=y
-CONFIG_HAVE_MEMBLOCK=y
-CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
-CONFIG_HAVE_GENERIC_RCU_GUP=y
-CONFIG_NO_BOOTMEM=y
-CONFIG_MEMORY_ISOLATION=y
-CONFIG_HAVE_BOOTMEM_INFO_NODE=y
-CONFIG_MEMORY_HOTPLUG=y
-CONFIG_MEMORY_HOTPLUG_SPARSE=y
-CONFIG_MEMORY_HOTREMOVE=y
-CONFIG_PAGEFLAGS_EXTENDED=y
-CONFIG_SPLIT_PTLOCK_CPUS=4
-CONFIG_MEMORY_BALLOON=y
-CONFIG_BALLOON_COMPACTION=y
-CONFIG_COMPACTION=y
-CONFIG_MIGRATION=y
-CONFIG_PHYS_ADDR_T_64BIT=y
-CONFIG_ZONE_DMA_FLAG=1
-CONFIG_BOUNCE=y
-CONFIG_MMU_NOTIFIER=y
-CONFIG_KSM=y
-CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
-CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
-CONFIG_MEMORY_FAILURE=y
-CONFIG_HWPOISON_INJECT=m
-CONFIG_TRANSPARENT_HUGEPAGE=y
-CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
-# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
-CONFIG_CLEANCACHE=y
-CONFIG_FRONTSWAP=y
-CONFIG_CMA=y
-# CONFIG_CMA_DEBUG is not set
-# CONFIG_CMA_DEBUGFS is not set
-CONFIG_CMA_AREAS=7
-CONFIG_ZSWAP=y
-CONFIG_ZPOOL=y
-CONFIG_ZBUD=y
-CONFIG_ZSMALLOC=y
-CONFIG_PGTABLE_MAPPING=y
-# CONFIG_ZSMALLOC_STAT is not set
-CONFIG_ARCH_MEMORY_PROBE=y
-CONFIG_NODES_SPAN_OTHER_NODES=y
-CONFIG_PPC_HAS_HASH_64K=y
-# CONFIG_PPC_4K_PAGES is not set
-CONFIG_PPC_64K_PAGES=y
-CONFIG_FORCE_MAX_ZONEORDER=9
-CONFIG_PPC_SUBPAGE_PROT=y
-CONFIG_PPC_COPRO_BASE=y
-CONFIG_SCHED_SMT=y
-CONFIG_PPC_DENORMALISATION=y
-# CONFIG_CMDLINE_BOOL is not set
-CONFIG_EXTRA_TARGETS=""
-CONFIG_SUSPEND=y
-CONFIG_SUSPEND_FREEZER=y
-CONFIG_HIBERNATE_CALLBACKS=y
-CONFIG_HIBERNATION=y
-CONFIG_PM_STD_PARTITION=""
-CONFIG_PM_SLEEP=y
-CONFIG_PM_SLEEP_SMP=y
-# CONFIG_PM_AUTOSLEEP is not set
-CONFIG_PM_WAKELOCKS=y
-CONFIG_PM_WAKELOCKS_LIMIT=100
-CONFIG_PM_WAKELOCKS_GC=y
-CONFIG_PM=y
-CONFIG_PM_DEBUG=y
-CONFIG_PM_ADVANCED_DEBUG=y
-# CONFIG_PM_TEST_SUSPEND is not set
-CONFIG_PM_SLEEP_DEBUG=y
-# CONFIG_DPM_WATCHDOG is not set
-CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
-CONFIG_SECCOMP=y
-CONFIG_ISA_DMA_API=y
-
-#
-# Bus options
-#
-CONFIG_ZONE_DMA=y
-CONFIG_NEED_DMA_MAP_STATE=y
-CONFIG_NEED_SG_DMA_LENGTH=y
-CONFIG_GENERIC_ISA_DMA=y
-# CONFIG_PPC_INDIRECT_PCI is not set
-CONFIG_FSL_LBC=y
-CONFIG_PPC_PCI_CHOICE=y
-CONFIG_PCI=y
-CONFIG_PCI_DOMAINS=y
-CONFIG_PCI_SYSCALL=y
-CONFIG_PCIEPORTBUS=y
-# CONFIG_HOTPLUG_PCI_PCIE is not set
-CONFIG_PCIEAER=y
-# CONFIG_PCIE_ECRC is not set
-# CONFIG_PCIEAER_INJECT is not set
-CONFIG_PCIEASPM=y
-# CONFIG_PCIEASPM_DEBUG is not set
-CONFIG_PCIEASPM_DEFAULT=y
-# CONFIG_PCIEASPM_POWERSAVE is not set
-# CONFIG_PCIEASPM_PERFORMANCE is not set
-CONFIG_PCIE_PME=y
-CONFIG_PCI_BUS_ADDR_T_64BIT=y
-CONFIG_PCI_MSI=y
-# CONFIG_PCI_DEBUG is not set
-CONFIG_PCI_REALLOC_ENABLE_AUTO=y
-CONFIG_PCI_STUB=m
-CONFIG_PCI_ATS=y
-CONFIG_PCI_IOV=y
-CONFIG_PCI_PRI=y
-CONFIG_PCI_PASID=y
-
-#
-# PCI host controller drivers
-#
-# CONFIG_PCCARD is not set
-CONFIG_HOTPLUG_PCI=y
-CONFIG_HOTPLUG_PCI_CPCI=y
-# CONFIG_HOTPLUG_PCI_SHPC is not set
-CONFIG_HOTPLUG_PCI_RPA=m
-CONFIG_HOTPLUG_PCI_RPA_DLPAR=m
-# CONFIG_HAS_RAPIDIO is not set
-CONFIG_RAPIDIO=y
-CONFIG_RAPIDIO_TSI721=m
-CONFIG_RAPIDIO_DISC_TIMEOUT=30
-# CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS is not set
-CONFIG_RAPIDIO_DMA_ENGINE=y
-# CONFIG_RAPIDIO_DEBUG is not set
-CONFIG_RAPIDIO_ENUM_BASIC=m
-
-#
-# RapidIO Switch drivers
-#
-CONFIG_RAPIDIO_TSI57X=m
-CONFIG_RAPIDIO_CPS_XX=m
-CONFIG_RAPIDIO_TSI568=m
-CONFIG_RAPIDIO_CPS_GEN2=m
-CONFIG_NONSTATIC_KERNEL=y
-CONFIG_RELOCATABLE=y
-CONFIG_PAGE_OFFSET=0xc000000000000000
-CONFIG_KERNEL_START=0xc000000000000000
-CONFIG_PHYSICAL_START=0x00000000
-CONFIG_ARCH_RANDOM=y
-CONFIG_NET=y
-CONFIG_COMPAT_NETLINK_MESSAGES=y
-CONFIG_NET_INGRESS=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=y
-CONFIG_PACKET_DIAG=m
-CONFIG_UNIX=y
-CONFIG_UNIX_DIAG=m
-CONFIG_XFRM=y
-CONFIG_XFRM_ALGO=m
-CONFIG_XFRM_USER=m
-# CONFIG_XFRM_SUB_POLICY is not set
-# CONFIG_XFRM_MIGRATE is not set
-CONFIG_XFRM_STATISTICS=y
-CONFIG_XFRM_IPCOMP=m
-CONFIG_NET_KEY=m
-# CONFIG_NET_KEY_MIGRATE is not set
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-CONFIG_IP_ADVANCED_ROUTER=y
-CONFIG_IP_FIB_TRIE_STATS=y
-CONFIG_IP_MULTIPLE_TABLES=y
-CONFIG_IP_ROUTE_MULTIPATH=y
-CONFIG_IP_ROUTE_VERBOSE=y
-CONFIG_IP_ROUTE_CLASSID=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-# CONFIG_IP_PNP_BOOTP is not set
-# CONFIG_IP_PNP_RARP is not set
-CONFIG_NET_IPIP=m
-CONFIG_NET_IPGRE_DEMUX=m
-CONFIG_NET_IP_TUNNEL=m
-CONFIG_NET_IPGRE=m
-CONFIG_NET_IPGRE_BROADCAST=y
-CONFIG_IP_MROUTE=y
-# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
-CONFIG_IP_PIMSM_V1=y
-CONFIG_IP_PIMSM_V2=y
-CONFIG_SYN_COOKIES=y
-CONFIG_NET_IPVTI=m
-CONFIG_NET_UDP_TUNNEL=m
-# CONFIG_NET_FOU is not set
-# CONFIG_NET_FOU_IP_TUNNELS is not set
-# CONFIG_GENEVE_CORE is not set
-CONFIG_INET_AH=m
-CONFIG_INET_ESP=m
-CONFIG_INET_IPCOMP=m
-CONFIG_INET_XFRM_TUNNEL=m
-CONFIG_INET_TUNNEL=m
-CONFIG_INET_XFRM_MODE_TRANSPORT=m
-CONFIG_INET_XFRM_MODE_TUNNEL=m
-CONFIG_INET_XFRM_MODE_BEET=m
-CONFIG_INET_LRO=y
-CONFIG_INET_DIAG=m
-CONFIG_INET_TCP_DIAG=m
-CONFIG_INET_UDP_DIAG=m
-CONFIG_TCP_CONG_ADVANCED=y
-CONFIG_TCP_CONG_BIC=m
-CONFIG_TCP_CONG_CUBIC=y
-CONFIG_TCP_CONG_WESTWOOD=m
-CONFIG_TCP_CONG_HTCP=m
-CONFIG_TCP_CONG_HSTCP=m
-CONFIG_TCP_CONG_HYBLA=m
-CONFIG_TCP_CONG_VEGAS=m
-CONFIG_TCP_CONG_SCALABLE=m
-CONFIG_TCP_CONG_LP=m
-CONFIG_TCP_CONG_VENO=m
-CONFIG_TCP_CONG_YEAH=m
-CONFIG_TCP_CONG_ILLINOIS=m
-# CONFIG_TCP_CONG_DCTCP is not set
-# CONFIG_TCP_CONG_CDG is not set
-CONFIG_DEFAULT_CUBIC=y
-# CONFIG_DEFAULT_RENO is not set
-CONFIG_DEFAULT_TCP_CONG="cubic"
-CONFIG_TCP_MD5SIG=y
-CONFIG_IPV6=y
-CONFIG_IPV6_ROUTER_PREF=y
-CONFIG_IPV6_ROUTE_INFO=y
-# CONFIG_IPV6_OPTIMISTIC_DAD is not set
-CONFIG_INET6_AH=m
-CONFIG_INET6_ESP=m
-CONFIG_INET6_IPCOMP=m
-CONFIG_IPV6_MIP6=m
-CONFIG_INET6_XFRM_TUNNEL=m
-CONFIG_INET6_TUNNEL=m
-CONFIG_INET6_XFRM_MODE_TRANSPORT=m
-CONFIG_INET6_XFRM_MODE_TUNNEL=m
-CONFIG_INET6_XFRM_MODE_BEET=m
-CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
-CONFIG_IPV6_VTI=m
-CONFIG_IPV6_SIT=m
-CONFIG_IPV6_SIT_6RD=y
-CONFIG_IPV6_NDISC_NODETYPE=y
-CONFIG_IPV6_TUNNEL=m
-CONFIG_IPV6_GRE=m
-CONFIG_IPV6_MULTIPLE_TABLES=y
-CONFIG_IPV6_SUBTREES=y
-CONFIG_IPV6_MROUTE=y
-CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
-CONFIG_IPV6_PIMSM_V2=y
-CONFIG_NETLABEL=y
-CONFIG_NETWORK_SECMARK=y
-CONFIG_NET_PTP_CLASSIFY=y
-# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_DEBUG is not set
-CONFIG_NETFILTER_ADVANCED=y
-CONFIG_BRIDGE_NETFILTER=m
-
-#
-# Core Netfilter Configuration
-#
-CONFIG_NETFILTER_INGRESS=y
-CONFIG_NETFILTER_NETLINK=m
-CONFIG_NETFILTER_NETLINK_ACCT=m
-CONFIG_NETFILTER_NETLINK_QUEUE=m
-CONFIG_NETFILTER_NETLINK_LOG=m
-CONFIG_NF_CONNTRACK=m
-CONFIG_NF_LOG_COMMON=m
-CONFIG_NF_CONNTRACK_MARK=y
-CONFIG_NF_CONNTRACK_SECMARK=y
-CONFIG_NF_CONNTRACK_ZONES=y
-# CONFIG_NF_CONNTRACK_PROCFS is not set
-CONFIG_NF_CONNTRACK_EVENTS=y
-CONFIG_NF_CONNTRACK_TIMEOUT=y
-CONFIG_NF_CONNTRACK_TIMESTAMP=y
-CONFIG_NF_CONNTRACK_LABELS=y
-CONFIG_NF_CT_PROTO_DCCP=m
-CONFIG_NF_CT_PROTO_GRE=m
-CONFIG_NF_CT_PROTO_SCTP=m
-CONFIG_NF_CT_PROTO_UDPLITE=m
-CONFIG_NF_CONNTRACK_AMANDA=m
-CONFIG_NF_CONNTRACK_FTP=m
-CONFIG_NF_CONNTRACK_H323=m
-CONFIG_NF_CONNTRACK_IRC=m
-CONFIG_NF_CONNTRACK_BROADCAST=m
-CONFIG_NF_CONNTRACK_NETBIOS_NS=m
-CONFIG_NF_CONNTRACK_SNMP=m
-CONFIG_NF_CONNTRACK_PPTP=m
-CONFIG_NF_CONNTRACK_SANE=m
-CONFIG_NF_CONNTRACK_SIP=m
-CONFIG_NF_CONNTRACK_TFTP=m
-CONFIG_NF_CT_NETLINK=m
-CONFIG_NF_CT_NETLINK_TIMEOUT=m
-CONFIG_NF_CT_NETLINK_HELPER=m
-CONFIG_NETFILTER_NETLINK_QUEUE_CT=y
-CONFIG_NF_NAT=m
-CONFIG_NF_NAT_NEEDED=y
-CONFIG_NF_NAT_PROTO_DCCP=m
-CONFIG_NF_NAT_PROTO_UDPLITE=m
-CONFIG_NF_NAT_PROTO_SCTP=m
-CONFIG_NF_NAT_AMANDA=m
-CONFIG_NF_NAT_FTP=m
-CONFIG_NF_NAT_IRC=m
-CONFIG_NF_NAT_SIP=m
-CONFIG_NF_NAT_TFTP=m
-CONFIG_NF_NAT_REDIRECT=m
-CONFIG_NETFILTER_SYNPROXY=m
-CONFIG_NF_TABLES=m
-CONFIG_NF_TABLES_INET=m
-# CONFIG_NF_TABLES_NETDEV is not set
-CONFIG_NFT_EXTHDR=m
-CONFIG_NFT_META=m
-CONFIG_NFT_CT=m
-CONFIG_NFT_RBTREE=m
-CONFIG_NFT_HASH=m
-CONFIG_NFT_COUNTER=m
-CONFIG_NFT_LOG=m
-CONFIG_NFT_LIMIT=m
-# CONFIG_NFT_MASQ is not set
-# CONFIG_NFT_REDIR is not set
-CONFIG_NFT_NAT=m
-CONFIG_NFT_QUEUE=m
-CONFIG_NFT_REJECT=m
-CONFIG_NFT_REJECT_INET=m
-CONFIG_NFT_COMPAT=m
-CONFIG_NETFILTER_XTABLES=m
-
-#
-# Xtables combined modules
-#
-CONFIG_NETFILTER_XT_MARK=m
-CONFIG_NETFILTER_XT_CONNMARK=m
-CONFIG_NETFILTER_XT_SET=m
-
-#
-# Xtables targets
-#
-CONFIG_NETFILTER_XT_TARGET_AUDIT=m
-CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
-CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
-CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
-CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
-CONFIG_NETFILTER_XT_TARGET_CT=m
-CONFIG_NETFILTER_XT_TARGET_DSCP=m
-CONFIG_NETFILTER_XT_TARGET_HL=m
-CONFIG_NETFILTER_XT_TARGET_HMARK=m
-CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
-CONFIG_NETFILTER_XT_TARGET_LED=m
-CONFIG_NETFILTER_XT_TARGET_LOG=m
-CONFIG_NETFILTER_XT_TARGET_MARK=m
-# CONFIG_NETFILTER_XT_NAT is not set
-CONFIG_NETFILTER_XT_TARGET_NETMAP=m
-CONFIG_NETFILTER_XT_TARGET_NFLOG=m
-CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
-# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
-CONFIG_NETFILTER_XT_TARGET_RATEEST=m
-CONFIG_NETFILTER_XT_TARGET_REDIRECT=m
-CONFIG_NETFILTER_XT_TARGET_TEE=m
-CONFIG_NETFILTER_XT_TARGET_TPROXY=m
-CONFIG_NETFILTER_XT_TARGET_TRACE=m
-CONFIG_NETFILTER_XT_TARGET_SECMARK=m
-CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
-CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
-
-#
-# Xtables matches
-#
-CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
-CONFIG_NETFILTER_XT_MATCH_BPF=m
-CONFIG_NETFILTER_XT_MATCH_CGROUP=m
-CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
-CONFIG_NETFILTER_XT_MATCH_COMMENT=m
-CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
-CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
-CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
-CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
-CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
-CONFIG_NETFILTER_XT_MATCH_CPU=m
-CONFIG_NETFILTER_XT_MATCH_DCCP=m
-CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
-CONFIG_NETFILTER_XT_MATCH_DSCP=m
-CONFIG_NETFILTER_XT_MATCH_ECN=m
-CONFIG_NETFILTER_XT_MATCH_ESP=m
-CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
-CONFIG_NETFILTER_XT_MATCH_HELPER=m
-CONFIG_NETFILTER_XT_MATCH_HL=m
-CONFIG_NETFILTER_XT_MATCH_IPCOMP=m
-CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
-CONFIG_NETFILTER_XT_MATCH_IPVS=m
-CONFIG_NETFILTER_XT_MATCH_L2TP=m
-CONFIG_NETFILTER_XT_MATCH_LENGTH=m
-CONFIG_NETFILTER_XT_MATCH_LIMIT=m
-CONFIG_NETFILTER_XT_MATCH_MAC=m
-CONFIG_NETFILTER_XT_MATCH_MARK=m
-CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
-CONFIG_NETFILTER_XT_MATCH_NFACCT=m
-CONFIG_NETFILTER_XT_MATCH_OSF=m
-CONFIG_NETFILTER_XT_MATCH_OWNER=m
-CONFIG_NETFILTER_XT_MATCH_POLICY=m
-CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
-CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
-CONFIG_NETFILTER_XT_MATCH_QUOTA=m
-CONFIG_NETFILTER_XT_MATCH_RATEEST=m
-CONFIG_NETFILTER_XT_MATCH_REALM=m
-CONFIG_NETFILTER_XT_MATCH_RECENT=m
-CONFIG_NETFILTER_XT_MATCH_SCTP=m
-CONFIG_NETFILTER_XT_MATCH_SOCKET=m
-CONFIG_NETFILTER_XT_MATCH_STATE=m
-CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
-CONFIG_NETFILTER_XT_MATCH_STRING=m
-CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
-CONFIG_NETFILTER_XT_MATCH_TIME=m
-CONFIG_NETFILTER_XT_MATCH_U32=m
-CONFIG_IP_SET=m
-CONFIG_IP_SET_MAX=256
-CONFIG_IP_SET_BITMAP_IP=m
-CONFIG_IP_SET_BITMAP_IPMAC=m
-CONFIG_IP_SET_BITMAP_PORT=m
-CONFIG_IP_SET_HASH_IP=m
-CONFIG_IP_SET_HASH_IPMARK=m
-CONFIG_IP_SET_HASH_IPPORT=m
-CONFIG_IP_SET_HASH_IPPORTIP=m
-CONFIG_IP_SET_HASH_IPPORTNET=m
-# CONFIG_IP_SET_HASH_MAC is not set
-CONFIG_IP_SET_HASH_NETPORTNET=m
-CONFIG_IP_SET_HASH_NET=m
-CONFIG_IP_SET_HASH_NETNET=m
-CONFIG_IP_SET_HASH_NETPORT=m
-CONFIG_IP_SET_HASH_NETIFACE=m
-CONFIG_IP_SET_LIST_SET=m
-CONFIG_IP_VS=m
-CONFIG_IP_VS_IPV6=y
-# CONFIG_IP_VS_DEBUG is not set
-CONFIG_IP_VS_TAB_BITS=12
-
-#
-# IPVS transport protocol load balancing support
-#
-CONFIG_IP_VS_PROTO_TCP=y
-CONFIG_IP_VS_PROTO_UDP=y
-CONFIG_IP_VS_PROTO_AH_ESP=y
-CONFIG_IP_VS_PROTO_ESP=y
-CONFIG_IP_VS_PROTO_AH=y
-CONFIG_IP_VS_PROTO_SCTP=y
-
-#
-# IPVS scheduler
-#
-CONFIG_IP_VS_RR=m
-CONFIG_IP_VS_WRR=m
-CONFIG_IP_VS_LC=m
-CONFIG_IP_VS_WLC=m
-# CONFIG_IP_VS_FO is not set
-CONFIG_IP_VS_LBLC=m
-CONFIG_IP_VS_LBLCR=m
-CONFIG_IP_VS_DH=m
-CONFIG_IP_VS_SH=m
-CONFIG_IP_VS_SED=m
-CONFIG_IP_VS_NQ=m
-
-#
-# IPVS SH scheduler
-#
-CONFIG_IP_VS_SH_TAB_BITS=8
-
-#
-# IPVS application helper
-#
-CONFIG_IP_VS_FTP=m
-CONFIG_IP_VS_NFCT=y
-CONFIG_IP_VS_PE_SIP=m
-
-#
-# IP: Netfilter Configuration
-#
-CONFIG_NF_DEFRAG_IPV4=m
-CONFIG_NF_CONNTRACK_IPV4=m
-CONFIG_NF_TABLES_IPV4=m
-CONFIG_NFT_CHAIN_ROUTE_IPV4=m
-CONFIG_NFT_REJECT_IPV4=m
-CONFIG_NF_TABLES_ARP=m
-# CONFIG_NF_LOG_ARP is not set
-CONFIG_NF_LOG_IPV4=m
-CONFIG_NF_REJECT_IPV4=m
-CONFIG_NF_NAT_IPV4=m
-CONFIG_NFT_CHAIN_NAT_IPV4=m
-# CONFIG_NF_NAT_MASQUERADE_IPV4 is not set
-CONFIG_NF_NAT_SNMP_BASIC=m
-CONFIG_NF_NAT_PROTO_GRE=m
-CONFIG_NF_NAT_PPTP=m
-CONFIG_NF_NAT_H323=m
-CONFIG_IP_NF_IPTABLES=m
-CONFIG_IP_NF_MATCH_AH=m
-CONFIG_IP_NF_MATCH_ECN=m
-CONFIG_IP_NF_MATCH_RPFILTER=m
-CONFIG_IP_NF_MATCH_TTL=m
-CONFIG_IP_NF_FILTER=m
-CONFIG_IP_NF_TARGET_REJECT=m
-CONFIG_IP_NF_TARGET_SYNPROXY=m
-# CONFIG_IP_NF_NAT is not set
-CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_CLUSTERIP=m
-CONFIG_IP_NF_TARGET_ECN=m
-CONFIG_IP_NF_TARGET_TTL=m
-CONFIG_IP_NF_RAW=m
-CONFIG_IP_NF_SECURITY=m
-CONFIG_IP_NF_ARPTABLES=m
-CONFIG_IP_NF_ARPFILTER=m
-CONFIG_IP_NF_ARP_MANGLE=m
-
-#
-# IPv6: Netfilter Configuration
-#
-CONFIG_NF_DEFRAG_IPV6=m
-CONFIG_NF_CONNTRACK_IPV6=m
-CONFIG_NF_TABLES_IPV6=m
-CONFIG_NFT_CHAIN_ROUTE_IPV6=m
-CONFIG_NFT_REJECT_IPV6=m
-CONFIG_NF_REJECT_IPV6=m
-CONFIG_NF_LOG_IPV6=m
-CONFIG_NF_NAT_IPV6=m
-CONFIG_NFT_CHAIN_NAT_IPV6=m
-# CONFIG_NF_NAT_MASQUERADE_IPV6 is not set
-CONFIG_IP6_NF_IPTABLES=m
-CONFIG_IP6_NF_MATCH_AH=m
-CONFIG_IP6_NF_MATCH_EUI64=m
-CONFIG_IP6_NF_MATCH_FRAG=m
-CONFIG_IP6_NF_MATCH_OPTS=m
-CONFIG_IP6_NF_MATCH_HL=m
-CONFIG_IP6_NF_MATCH_IPV6HEADER=m
-CONFIG_IP6_NF_MATCH_MH=m
-CONFIG_IP6_NF_MATCH_RPFILTER=m
-CONFIG_IP6_NF_MATCH_RT=m
-CONFIG_IP6_NF_TARGET_HL=m
-CONFIG_IP6_NF_FILTER=m
-CONFIG_IP6_NF_TARGET_REJECT=m
-CONFIG_IP6_NF_TARGET_SYNPROXY=m
-CONFIG_IP6_NF_MANGLE=m
-CONFIG_IP6_NF_RAW=m
-CONFIG_IP6_NF_SECURITY=m
-# CONFIG_IP6_NF_NAT is not set
-
-#
-# DECnet: Netfilter Configuration
-#
-CONFIG_DECNET_NF_GRABULATOR=m
-CONFIG_NF_TABLES_BRIDGE=m
-CONFIG_NFT_BRIDGE_META=m
-# CONFIG_NFT_BRIDGE_REJECT is not set
-# CONFIG_NF_LOG_BRIDGE is not set
-CONFIG_BRIDGE_NF_EBTABLES=m
-CONFIG_BRIDGE_EBT_BROUTE=m
-CONFIG_BRIDGE_EBT_T_FILTER=m
-CONFIG_BRIDGE_EBT_T_NAT=m
-CONFIG_BRIDGE_EBT_802_3=m
-CONFIG_BRIDGE_EBT_AMONG=m
-CONFIG_BRIDGE_EBT_ARP=m
-CONFIG_BRIDGE_EBT_IP=m
-CONFIG_BRIDGE_EBT_IP6=m
-CONFIG_BRIDGE_EBT_LIMIT=m
-CONFIG_BRIDGE_EBT_MARK=m
-CONFIG_BRIDGE_EBT_PKTTYPE=m
-CONFIG_BRIDGE_EBT_STP=m
-CONFIG_BRIDGE_EBT_VLAN=m
-CONFIG_BRIDGE_EBT_ARPREPLY=m
-CONFIG_BRIDGE_EBT_DNAT=m
-CONFIG_BRIDGE_EBT_MARK_T=m
-CONFIG_BRIDGE_EBT_REDIRECT=m
-CONFIG_BRIDGE_EBT_SNAT=m
-CONFIG_BRIDGE_EBT_LOG=m
-CONFIG_BRIDGE_EBT_NFLOG=m
-CONFIG_IP_DCCP=m
-CONFIG_INET_DCCP_DIAG=m
-
-#
-# DCCP CCIDs Configuration
-#
-# CONFIG_IP_DCCP_CCID2_DEBUG is not set
-# CONFIG_IP_DCCP_CCID3 is not set
-
-#
-# DCCP Kernel Hacking
-#
-# CONFIG_IP_DCCP_DEBUG is not set
-CONFIG_NET_DCCPPROBE=m
-CONFIG_IP_SCTP=m
-CONFIG_NET_SCTPPROBE=m
-# CONFIG_SCTP_DBG_OBJCNT is not set
-# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set
-CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
-# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
-CONFIG_SCTP_COOKIE_HMAC_MD5=y
-CONFIG_SCTP_COOKIE_HMAC_SHA1=y
-CONFIG_RDS=m
-CONFIG_RDS_RDMA=m
-CONFIG_RDS_TCP=m
-# CONFIG_RDS_DEBUG is not set
-CONFIG_TIPC=m
-CONFIG_TIPC_MEDIA_IB=y
-CONFIG_TIPC_MEDIA_UDP=y
-CONFIG_ATM=m
-CONFIG_ATM_CLIP=m
-# CONFIG_ATM_CLIP_NO_ICMP is not set
-CONFIG_ATM_LANE=m
-CONFIG_ATM_MPOA=m
-CONFIG_ATM_BR2684=m
-# CONFIG_ATM_BR2684_IPFILTER is not set
-CONFIG_L2TP=m
-CONFIG_L2TP_DEBUGFS=m
-CONFIG_L2TP_V3=y
-CONFIG_L2TP_IP=m
-CONFIG_L2TP_ETH=m
-CONFIG_STP=m
-CONFIG_GARP=m
-CONFIG_MRP=m
-CONFIG_BRIDGE=m
-CONFIG_BRIDGE_IGMP_SNOOPING=y
-CONFIG_BRIDGE_VLAN_FILTERING=y
-CONFIG_HAVE_NET_DSA=y
-CONFIG_VLAN_8021Q=m
-CONFIG_VLAN_8021Q_GVRP=y
-CONFIG_VLAN_8021Q_MVRP=y
-CONFIG_DECNET=m
-# CONFIG_DECNET_ROUTER is not set
-CONFIG_LLC=m
-CONFIG_LLC2=m
-CONFIG_IPX=m
-# CONFIG_IPX_INTERN is not set
-CONFIG_ATALK=m
-CONFIG_DEV_APPLETALK=m
-CONFIG_IPDDP=m
-CONFIG_IPDDP_ENCAP=y
-CONFIG_X25=m
-CONFIG_LAPB=m
-CONFIG_PHONET=m
-# CONFIG_6LOWPAN is not set
-CONFIG_IEEE802154=m
-CONFIG_IEEE802154_SOCKET=m
-CONFIG_MAC802154=m
-CONFIG_NET_SCHED=y
-
-#
-# Queueing/Scheduling
-#
-CONFIG_NET_SCH_CBQ=m
-CONFIG_NET_SCH_HTB=m
-CONFIG_NET_SCH_HFSC=m
-CONFIG_NET_SCH_ATM=m
-CONFIG_NET_SCH_PRIO=m
-CONFIG_NET_SCH_MULTIQ=m
-CONFIG_NET_SCH_RED=m
-CONFIG_NET_SCH_SFB=m
-CONFIG_NET_SCH_SFQ=m
-CONFIG_NET_SCH_TEQL=m
-CONFIG_NET_SCH_TBF=m
-CONFIG_NET_SCH_GRED=m
-CONFIG_NET_SCH_DSMARK=m
-CONFIG_NET_SCH_NETEM=m
-CONFIG_NET_SCH_DRR=m
-CONFIG_NET_SCH_MQPRIO=m
-CONFIG_NET_SCH_CHOKE=m
-CONFIG_NET_SCH_QFQ=m
-CONFIG_NET_SCH_CODEL=m
-CONFIG_NET_SCH_FQ_CODEL=m
-CONFIG_NET_SCH_FQ=m
-CONFIG_NET_SCH_HHF=m
-CONFIG_NET_SCH_PIE=m
-CONFIG_NET_SCH_INGRESS=m
-CONFIG_NET_SCH_PLUG=m
-
-#
-# Classification
-#
-CONFIG_NET_CLS=y
-CONFIG_NET_CLS_BASIC=m
-CONFIG_NET_CLS_TCINDEX=m
-CONFIG_NET_CLS_ROUTE4=m
-CONFIG_NET_CLS_FW=m
-CONFIG_NET_CLS_U32=m
-# CONFIG_CLS_U32_PERF is not set
-CONFIG_CLS_U32_MARK=y
-CONFIG_NET_CLS_RSVP=m
-CONFIG_NET_CLS_RSVP6=m
-CONFIG_NET_CLS_FLOW=m
-CONFIG_NET_CLS_CGROUP=m
-CONFIG_NET_CLS_BPF=m
-# CONFIG_NET_CLS_FLOWER is not set
-CONFIG_NET_EMATCH=y
-CONFIG_NET_EMATCH_STACK=32
-CONFIG_NET_EMATCH_CMP=m
-CONFIG_NET_EMATCH_NBYTE=m
-CONFIG_NET_EMATCH_U32=m
-CONFIG_NET_EMATCH_META=m
-CONFIG_NET_EMATCH_TEXT=m
-CONFIG_NET_EMATCH_CANID=m
-CONFIG_NET_EMATCH_IPSET=m
-CONFIG_NET_CLS_ACT=y
-CONFIG_NET_ACT_POLICE=m
-CONFIG_NET_ACT_GACT=m
-CONFIG_GACT_PROB=y
-CONFIG_NET_ACT_MIRRED=m
-CONFIG_NET_ACT_IPT=m
-CONFIG_NET_ACT_NAT=m
-CONFIG_NET_ACT_PEDIT=m
-CONFIG_NET_ACT_SIMP=m
-CONFIG_NET_ACT_SKBEDIT=m
-CONFIG_NET_ACT_CSUM=m
-# CONFIG_NET_ACT_VLAN is not set
-# CONFIG_NET_ACT_BPF is not set
-# CONFIG_NET_ACT_CONNMARK is not set
-# CONFIG_NET_CLS_IND is not set
-CONFIG_NET_SCH_FIFO=y
-CONFIG_DCB=y
-CONFIG_DNS_RESOLVER=y
-CONFIG_BATMAN_ADV=m
-CONFIG_BATMAN_ADV_BLA=y
-CONFIG_BATMAN_ADV_DAT=y
-CONFIG_BATMAN_ADV_NC=y
-CONFIG_BATMAN_ADV_MCAST=y
-# CONFIG_BATMAN_ADV_DEBUG is not set
-CONFIG_OPENVSWITCH=m
-CONFIG_OPENVSWITCH_GRE=m
-CONFIG_OPENVSWITCH_VXLAN=m
-CONFIG_VSOCKETS=m
-CONFIG_NETLINK_MMAP=y
-CONFIG_NETLINK_DIAG=m
-CONFIG_MPLS=y
-CONFIG_NET_MPLS_GSO=m
-# CONFIG_MPLS_ROUTING is not set
-CONFIG_HSR=m
-# CONFIG_NET_SWITCHDEV is not set
-CONFIG_RPS=y
-CONFIG_RFS_ACCEL=y
-CONFIG_XPS=y
-CONFIG_CGROUP_NET_PRIO=y
-CONFIG_CGROUP_NET_CLASSID=y
-CONFIG_NET_RX_BUSY_POLL=y
-CONFIG_BQL=y
-CONFIG_BPF_JIT=y
-CONFIG_NET_FLOW_LIMIT=y
-
-#
-# Network testing
-#
-CONFIG_NET_PKTGEN=m
-CONFIG_NET_TCPPROBE=m
-# CONFIG_NET_DROP_MONITOR is not set
-CONFIG_HAMRADIO=y
-
-#
-# Packet Radio protocols
-#
-CONFIG_AX25=m
-CONFIG_AX25_DAMA_SLAVE=y
-CONFIG_NETROM=m
-CONFIG_ROSE=m
-
-#
-# AX.25 network device drivers
-#
-CONFIG_MKISS=m
-CONFIG_6PACK=m
-CONFIG_BPQETHER=m
-CONFIG_BAYCOM_SER_FDX=m
-CONFIG_BAYCOM_SER_HDX=m
-CONFIG_BAYCOM_PAR=m
-CONFIG_YAM=m
-CONFIG_CAN=m
-CONFIG_CAN_RAW=m
-CONFIG_CAN_BCM=m
-CONFIG_CAN_GW=m
-
-#
-# CAN Device Drivers
-#
-CONFIG_CAN_VCAN=m
-CONFIG_CAN_SLCAN=m
-CONFIG_CAN_DEV=m
-CONFIG_CAN_CALC_BITTIMING=y
-CONFIG_CAN_LEDS=y
-CONFIG_CAN_JANZ_ICAN3=m
-CONFIG_CAN_FLEXCAN=m
-CONFIG_CAN_GRCAN=m
-CONFIG_CAN_MSCAN=m
-CONFIG_CAN_SJA1000=m
-CONFIG_CAN_SJA1000_ISA=m
-CONFIG_CAN_SJA1000_PLATFORM=m
-CONFIG_CAN_EMS_PCI=m
-CONFIG_CAN_PEAK_PCI=m
-CONFIG_CAN_PEAK_PCIEC=y
-CONFIG_CAN_KVASER_PCI=m
-CONFIG_CAN_PLX_PCI=m
-CONFIG_CAN_C_CAN=m
-CONFIG_CAN_C_CAN_PLATFORM=m
-CONFIG_CAN_C_CAN_PCI=m
-# CONFIG_CAN_M_CAN is not set
-CONFIG_CAN_CC770=m
-CONFIG_CAN_CC770_ISA=m
-CONFIG_CAN_CC770_PLATFORM=m
-
-#
-# CAN SPI interfaces
-#
-CONFIG_CAN_MCP251X=m
-
-#
-# CAN USB interfaces
-#
-CONFIG_CAN_EMS_USB=m
-CONFIG_CAN_ESD_USB2=m
-CONFIG_CAN_GS_USB=m
-CONFIG_CAN_KVASER_USB=m
-CONFIG_CAN_PEAK_USB=m
-CONFIG_CAN_8DEV_USB=m
-CONFIG_CAN_SOFTING=m
-# CONFIG_CAN_DEBUG_DEVICES is not set
-CONFIG_IRDA=m
-
-#
-# IrDA protocols
-#
-CONFIG_IRLAN=m
-CONFIG_IRNET=m
-CONFIG_IRCOMM=m
-CONFIG_IRDA_ULTRA=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-# CONFIG_IRDA_DEBUG is not set
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=m
-
-#
-# Dongle support
-#
-CONFIG_DONGLE=y
-CONFIG_ESI_DONGLE=m
-CONFIG_ACTISYS_DONGLE=m
-CONFIG_TEKRAM_DONGLE=m
-CONFIG_TOIM3232_DONGLE=m
-CONFIG_LITELINK_DONGLE=m
-CONFIG_MA600_DONGLE=m
-CONFIG_GIRBIL_DONGLE=m
-CONFIG_MCP2120_DONGLE=m
-CONFIG_OLD_BELKIN_DONGLE=m
-CONFIG_ACT200L_DONGLE=m
-CONFIG_KINGSUN_DONGLE=m
-CONFIG_KSDAZZLE_DONGLE=m
-CONFIG_KS959_DONGLE=m
-
-#
-# FIR device drivers
-#
-CONFIG_USB_IRDA=m
-CONFIG_SIGMATEL_FIR=m
-CONFIG_NSC_FIR=m
-CONFIG_WINBOND_FIR=m
-CONFIG_SMC_IRCC_FIR=m
-CONFIG_ALI_FIR=m
-CONFIG_VLSI_FIR=m
-CONFIG_VIA_FIR=m
-CONFIG_MCS_FIR=m
-CONFIG_BT=m
-CONFIG_BT_BREDR=y
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_CMTP=m
-CONFIG_BT_HIDP=m
-CONFIG_BT_LE=y
-# CONFIG_BT_SELFTEST is not set
-CONFIG_BT_DEBUGFS=y
-
-#
-# Bluetooth device drivers
-#
-CONFIG_BT_INTEL=m
-CONFIG_BT_BCM=m
-CONFIG_BT_RTL=m
-CONFIG_BT_HCIBTUSB=m
-CONFIG_BT_HCIBTUSB_BCM=y
-CONFIG_BT_HCIBTUSB_RTL=y
-CONFIG_BT_HCIBTSDIO=m
-CONFIG_BT_HCIUART=m
-CONFIG_BT_HCIUART_H4=y
-CONFIG_BT_HCIUART_BCSP=y
-CONFIG_BT_HCIUART_ATH3K=y
-CONFIG_BT_HCIUART_LL=y
-CONFIG_BT_HCIUART_3WIRE=y
-# CONFIG_BT_HCIUART_INTEL is not set
-# CONFIG_BT_HCIUART_BCM is not set
-CONFIG_BT_HCIBCM203X=m
-CONFIG_BT_HCIBPA10X=m
-CONFIG_BT_HCIBFUSB=m
-CONFIG_BT_HCIVHCI=m
-CONFIG_BT_MRVL=m
-CONFIG_BT_MRVL_SDIO=m
-CONFIG_BT_ATH3K=m
-CONFIG_BT_WILINK=m
-CONFIG_AF_RXRPC=m
-# CONFIG_AF_RXRPC_DEBUG is not set
-CONFIG_RXKAD=m
-CONFIG_FIB_RULES=y
-CONFIG_WIRELESS=y
-CONFIG_WIRELESS_EXT=y
-CONFIG_WEXT_CORE=y
-CONFIG_WEXT_PROC=y
-CONFIG_WEXT_SPY=y
-CONFIG_WEXT_PRIV=y
-CONFIG_CFG80211=m
-# CONFIG_NL80211_TESTMODE is not set
-# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
-# CONFIG_CFG80211_REG_DEBUG is not set
-# CONFIG_CFG80211_CERTIFICATION_ONUS is not set
-CONFIG_CFG80211_DEFAULT_PS=y
-CONFIG_CFG80211_DEBUGFS=y
-# CONFIG_CFG80211_INTERNAL_REGDB is not set
-CONFIG_CFG80211_WEXT=y
-CONFIG_CFG80211_WEXT_EXPORT=y
-CONFIG_LIB80211=m
-CONFIG_LIB80211_CRYPT_WEP=m
-CONFIG_LIB80211_CRYPT_CCMP=m
-CONFIG_LIB80211_CRYPT_TKIP=m
-# CONFIG_LIB80211_DEBUG is not set
-CONFIG_MAC80211=m
-CONFIG_MAC80211_HAS_RC=y
-CONFIG_MAC80211_RC_MINSTREL=y
-CONFIG_MAC80211_RC_MINSTREL_HT=y
-# CONFIG_MAC80211_RC_MINSTREL_VHT is not set
-CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
-CONFIG_MAC80211_MESH=y
-CONFIG_MAC80211_LEDS=y
-CONFIG_MAC80211_DEBUGFS=y
-CONFIG_MAC80211_MESSAGE_TRACING=y
-# CONFIG_MAC80211_DEBUG_MENU is not set
-CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
-CONFIG_WIMAX=m
-CONFIG_WIMAX_DEBUG_LEVEL=8
-CONFIG_RFKILL=y
-CONFIG_RFKILL_LEDS=y
-CONFIG_RFKILL_INPUT=y
-CONFIG_RFKILL_REGULATOR=m
-CONFIG_RFKILL_GPIO=m
-CONFIG_NET_9P=m
-CONFIG_NET_9P_VIRTIO=m
-CONFIG_NET_9P_RDMA=m
-# CONFIG_NET_9P_DEBUG is not set
-CONFIG_CAIF=m
-# CONFIG_CAIF_DEBUG is not set
-CONFIG_CAIF_NETDEV=m
-CONFIG_CAIF_USB=m
-CONFIG_CEPH_LIB=m
-# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
-CONFIG_CEPH_LIB_USE_DNS_RESOLVER=y
-CONFIG_NFC=m
-CONFIG_NFC_DIGITAL=m
-CONFIG_NFC_NCI=m
-CONFIG_NFC_NCI_SPI=y
-# CONFIG_NFC_NCI_UART is not set
-CONFIG_NFC_HCI=m
-CONFIG_NFC_SHDLC=y
-
-#
-# Near Field Communication (NFC) devices
-#
-CONFIG_NFC_PN533=m
-CONFIG_NFC_WILINK=m
-CONFIG_NFC_TRF7970A=m
-CONFIG_NFC_SIM=m
-CONFIG_NFC_PORT100=m
-CONFIG_NFC_PN544=m
-CONFIG_NFC_PN544_I2C=m
-CONFIG_NFC_MICROREAD=m
-CONFIG_NFC_MICROREAD_I2C=m
-CONFIG_NFC_MRVL=m
-CONFIG_NFC_MRVL_USB=m
-CONFIG_NFC_ST21NFCA=m
-CONFIG_NFC_ST21NFCA_I2C=m
-# CONFIG_NFC_ST_NCI is not set
-# CONFIG_NFC_NXP_NCI is not set
-CONFIG_HAVE_BPF_JIT=y
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_UEVENT_HELPER=y
-CONFIG_UEVENT_HELPER_PATH=""
-CONFIG_DEVTMPFS=y
-CONFIG_DEVTMPFS_MOUNT=y
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-CONFIG_FW_LOADER=y
-CONFIG_FIRMWARE_IN_KERNEL=y
-CONFIG_EXTRA_FIRMWARE=""
-CONFIG_FW_LOADER_USER_HELPER=y
-CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y
-CONFIG_WANT_DEV_COREDUMP=y
-CONFIG_ALLOW_DEV_COREDUMP=y
-CONFIG_DEV_COREDUMP=y
-# CONFIG_DEBUG_DRIVER is not set
-# CONFIG_DEBUG_DEVRES is not set
-# CONFIG_SYS_HYPERVISOR is not set
-# CONFIG_GENERIC_CPU_DEVICES is not set
-CONFIG_REGMAP=y
-CONFIG_REGMAP_I2C=y
-CONFIG_REGMAP_SPI=y
-CONFIG_REGMAP_MMIO=y
-CONFIG_REGMAP_IRQ=y
-CONFIG_DMA_SHARED_BUFFER=y
-# CONFIG_FENCE_TRACE is not set
-
-#
-# Bus devices
-#
-CONFIG_CONNECTOR=y
-CONFIG_PROC_EVENTS=y
-CONFIG_MTD=m
-# CONFIG_MTD_TESTS is not set
-CONFIG_MTD_REDBOOT_PARTS=m
-CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
-# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
-# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
-CONFIG_MTD_CMDLINE_PARTS=m
-CONFIG_MTD_OF_PARTS=m
-CONFIG_MTD_AR7_PARTS=m
-
-#
-# User Modules And Translation Layers
-#
-CONFIG_MTD_BLKDEVS=m
-CONFIG_MTD_BLOCK=m
-CONFIG_MTD_BLOCK_RO=m
-CONFIG_FTL=m
-CONFIG_NFTL=m
-CONFIG_NFTL_RW=y
-CONFIG_INFTL=m
-CONFIG_RFD_FTL=m
-CONFIG_SSFDC=m
-CONFIG_SM_FTL=m
-CONFIG_MTD_OOPS=m
-CONFIG_MTD_SWAP=m
-# CONFIG_MTD_PARTITIONED_MASTER is not set
-
-#
-# RAM/ROM/Flash chip drivers
-#
-CONFIG_MTD_CFI=m
-CONFIG_MTD_JEDECPROBE=m
-CONFIG_MTD_GEN_PROBE=m
-# CONFIG_MTD_CFI_ADV_OPTIONS is not set
-CONFIG_MTD_MAP_BANK_WIDTH_1=y
-CONFIG_MTD_MAP_BANK_WIDTH_2=y
-CONFIG_MTD_MAP_BANK_WIDTH_4=y
-# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-CONFIG_MTD_CFI_I1=y
-CONFIG_MTD_CFI_I2=y
-# CONFIG_MTD_CFI_I4 is not set
-# CONFIG_MTD_CFI_I8 is not set
-CONFIG_MTD_CFI_INTELEXT=m
-CONFIG_MTD_CFI_AMDSTD=m
-CONFIG_MTD_CFI_STAA=m
-CONFIG_MTD_CFI_UTIL=m
-CONFIG_MTD_RAM=m
-CONFIG_MTD_ROM=m
-CONFIG_MTD_ABSENT=m
-
-#
-# Mapping drivers for chip access
-#
-CONFIG_MTD_COMPLEX_MAPPINGS=y
-CONFIG_MTD_PHYSMAP=m
-# CONFIG_MTD_PHYSMAP_COMPAT is not set
-CONFIG_MTD_PHYSMAP_OF=m
-CONFIG_MTD_PCI=m
-CONFIG_MTD_GPIO_ADDR=m
-CONFIG_MTD_INTEL_VR_NOR=m
-CONFIG_MTD_PLATRAM=m
-CONFIG_MTD_LATCH_ADDR=m
-
-#
-# Self-contained MTD device drivers
-#
-CONFIG_MTD_PMC551=m
-# CONFIG_MTD_PMC551_BUGFIX is not set
-# CONFIG_MTD_PMC551_DEBUG is not set
-CONFIG_MTD_DATAFLASH=m
-# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
-CONFIG_MTD_DATAFLASH_OTP=y
-CONFIG_MTD_M25P80=m
-CONFIG_MTD_SST25L=m
-CONFIG_MTD_SLRAM=m
-CONFIG_MTD_PHRAM=m
-CONFIG_MTD_MTDRAM=m
-CONFIG_MTDRAM_TOTAL_SIZE=4096
-CONFIG_MTDRAM_ERASE_SIZE=128
-CONFIG_MTD_BLOCK2MTD=m
-# CONFIG_MTD_POWERNV_FLASH is not set
-
-#
-# Disk-On-Chip Device Drivers
-#
-CONFIG_MTD_DOCG3=m
-CONFIG_BCH_CONST_M=14
-CONFIG_BCH_CONST_T=4
-CONFIG_MTD_NAND_ECC=m
-# CONFIG_MTD_NAND_ECC_SMC is not set
-CONFIG_MTD_NAND=m
-CONFIG_MTD_NAND_BCH=m
-CONFIG_MTD_NAND_ECC_BCH=y
-CONFIG_MTD_SM_COMMON=m
-CONFIG_MTD_NAND_DENALI=m
-CONFIG_MTD_NAND_DENALI_PCI=m
-CONFIG_MTD_NAND_DENALI_SCRATCH_REG_ADDR=0xFF108018
-CONFIG_MTD_NAND_GPIO=m
-# CONFIG_MTD_NAND_OMAP_BCH_BUILD is not set
-CONFIG_MTD_NAND_IDS=m
-CONFIG_MTD_NAND_RICOH=m
-CONFIG_MTD_NAND_DISKONCHIP=m
-# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
-CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
-# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
-CONFIG_MTD_NAND_DOCG4=m
-CONFIG_MTD_NAND_CAFE=m
-CONFIG_MTD_NAND_NANDSIM=m
-CONFIG_MTD_NAND_PLATFORM=m
-CONFIG_MTD_NAND_FSL_ELBC=m
-# CONFIG_MTD_NAND_HISI504 is not set
-CONFIG_MTD_ONENAND=m
-CONFIG_MTD_ONENAND_VERIFY_WRITE=y
-CONFIG_MTD_ONENAND_GENERIC=m
-# CONFIG_MTD_ONENAND_OTP is not set
-CONFIG_MTD_ONENAND_2X_PROGRAM=y
-
-#
-# LPDDR & LPDDR2 PCM memory drivers
-#
-CONFIG_MTD_LPDDR=m
-CONFIG_MTD_QINFO_PROBE=m
-CONFIG_MTD_SPI_NOR=m
-CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
-CONFIG_MTD_UBI=m
-CONFIG_MTD_UBI_WL_THRESHOLD=4096
-CONFIG_MTD_UBI_BEB_LIMIT=20
-CONFIG_MTD_UBI_FASTMAP=y
-CONFIG_MTD_UBI_GLUEBI=m
-CONFIG_MTD_UBI_BLOCK=y
-CONFIG_DTC=y
-CONFIG_OF=y
-# CONFIG_OF_UNITTEST is not set
-CONFIG_OF_FLATTREE=y
-CONFIG_OF_EARLY_FLATTREE=y
-CONFIG_OF_DYNAMIC=y
-CONFIG_OF_ADDRESS=y
-CONFIG_OF_ADDRESS_PCI=y
-CONFIG_OF_IRQ=y
-CONFIG_OF_NET=y
-CONFIG_OF_MDIO=y
-CONFIG_OF_PCI=y
-CONFIG_OF_PCI_IRQ=y
-CONFIG_OF_MTD=y
-CONFIG_OF_RESERVED_MEM=y
-# CONFIG_OF_OVERLAY is not set
-CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
-CONFIG_PARPORT=m
-CONFIG_PARPORT_PC=m
-CONFIG_PARPORT_SERIAL=m
-CONFIG_PARPORT_PC_FIFO=y
-# CONFIG_PARPORT_PC_SUPERIO is not set
-# CONFIG_PARPORT_GSC is not set
-CONFIG_PARPORT_AX88796=m
-CONFIG_PARPORT_1284=y
-CONFIG_PARPORT_NOT_PC=y
-CONFIG_BLK_DEV=y
-CONFIG_BLK_DEV_NULL_BLK=m
-CONFIG_BLK_DEV_FD=m
-CONFIG_PARIDE=m
-
-#
-# Parallel IDE high-level drivers
-#
-CONFIG_PARIDE_PD=m
-CONFIG_PARIDE_PCD=m
-CONFIG_PARIDE_PF=m
-CONFIG_PARIDE_PT=m
-CONFIG_PARIDE_PG=m
-
-#
-# Parallel IDE protocol modules
-#
-CONFIG_PARIDE_ATEN=m
-CONFIG_PARIDE_BPCK=m
-CONFIG_PARIDE_COMM=m
-CONFIG_PARIDE_DSTR=m
-CONFIG_PARIDE_FIT2=m
-CONFIG_PARIDE_FIT3=m
-CONFIG_PARIDE_EPAT=m
-CONFIG_PARIDE_EPATC8=y
-CONFIG_PARIDE_EPIA=m
-CONFIG_PARIDE_FRIQ=m
-CONFIG_PARIDE_FRPW=m
-CONFIG_PARIDE_KBIC=m
-CONFIG_PARIDE_KTTI=m
-CONFIG_PARIDE_ON20=m
-CONFIG_PARIDE_ON26=m
-CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
-CONFIG_ZRAM=m
-CONFIG_ZRAM_LZ4_COMPRESS=y
-CONFIG_BLK_CPQ_CISS_DA=m
-CONFIG_CISS_SCSI_TAPE=y
-CONFIG_BLK_DEV_DAC960=m
-CONFIG_BLK_DEV_UMEM=m
-# CONFIG_BLK_DEV_COW_COMMON is not set
-CONFIG_BLK_DEV_LOOP=y
-CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
-CONFIG_BLK_DEV_CRYPTOLOOP=m
-CONFIG_BLK_DEV_DRBD=m
-# CONFIG_DRBD_FAULT_INJECTION is not set
-CONFIG_BLK_DEV_NBD=m
-CONFIG_BLK_DEV_NVME=m
-CONFIG_BLK_DEV_SKD=m
-CONFIG_BLK_DEV_OSD=m
-CONFIG_BLK_DEV_SX8=m
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_BLK_DEV_RAM_SIZE=65536
-CONFIG_CDROM_PKTCDVD=m
-CONFIG_CDROM_PKTCDVD_BUFFERS=8
-# CONFIG_CDROM_PKTCDVD_WCACHE is not set
-CONFIG_ATA_OVER_ETH=m
-CONFIG_VIRTIO_BLK=y
-# CONFIG_BLK_DEV_HD is not set
-CONFIG_BLK_DEV_RBD=m
-CONFIG_BLK_DEV_RSXX=m
-
-#
-# Misc devices
-#
-CONFIG_SENSORS_LIS3LV02D=m
-CONFIG_AD525X_DPOT=m
-CONFIG_AD525X_DPOT_I2C=m
-CONFIG_AD525X_DPOT_SPI=m
-CONFIG_DUMMY_IRQ=m
-CONFIG_PHANTOM=m
-CONFIG_SGI_IOC4=m
-CONFIG_TIFM_CORE=m
-CONFIG_TIFM_7XX1=m
-CONFIG_ICS932S401=m
-CONFIG_ENCLOSURE_SERVICES=m
-CONFIG_HP_ILO=m
-CONFIG_APDS9802ALS=m
-CONFIG_ISL29003=m
-CONFIG_ISL29020=m
-CONFIG_SENSORS_TSL2550=m
-CONFIG_SENSORS_BH1780=m
-CONFIG_SENSORS_BH1770=m
-CONFIG_SENSORS_APDS990X=m
-CONFIG_HMC6352=m
-CONFIG_DS1682=m
-CONFIG_TI_DAC7512=m
-CONFIG_BMP085=y
-CONFIG_BMP085_I2C=m
-CONFIG_BMP085_SPI=m
-CONFIG_USB_SWITCH_FSA9480=m
-CONFIG_LATTICE_ECP3_CONFIG=m
-CONFIG_SRAM=y
-CONFIG_C2PORT=m
-
-#
-# EEPROM support
-#
-CONFIG_EEPROM_AT24=m
-CONFIG_EEPROM_AT25=m
-CONFIG_EEPROM_LEGACY=m
-CONFIG_EEPROM_MAX6875=m
-CONFIG_EEPROM_93CX6=m
-CONFIG_EEPROM_93XX46=m
-CONFIG_CB710_CORE=m
-# CONFIG_CB710_DEBUG is not set
-CONFIG_CB710_DEBUG_ASSUMPTIONS=y
-
-#
-# Texas Instruments shared transport line discipline
-#
-CONFIG_TI_ST=m
-CONFIG_SENSORS_LIS3_SPI=m
-CONFIG_SENSORS_LIS3_I2C=m
-
-#
-# Altera FPGA firmware download module
-#
-CONFIG_ALTERA_STAPL=m
-
-#
-# Intel MIC Bus Driver
-#
-
-#
-# SCIF Bus Driver
-#
-
-#
-# Intel MIC Host Driver
-#
-
-#
-# Intel MIC Card Driver
-#
-
-#
-# SCIF Driver
-#
-CONFIG_GENWQE=m
-CONFIG_GENWQE_PLATFORM_ERROR_RECOVERY=1
-CONFIG_ECHO=m
-CONFIG_CXL_BASE=y
-CONFIG_CXL_KERNEL_API=y
-CONFIG_CXL=m
-CONFIG_HAVE_IDE=y
-# CONFIG_IDE is not set
-
-#
-# SCSI device support
-#
-CONFIG_SCSI_MOD=y
-CONFIG_RAID_ATTRS=m
-CONFIG_SCSI=y
-CONFIG_SCSI_DMA=y
-CONFIG_SCSI_NETLINK=y
-# CONFIG_SCSI_MQ_DEFAULT is not set
-CONFIG_SCSI_PROC_FS=y
-
-#
-# SCSI support type (disk, tape, CD-ROM)
-#
-CONFIG_BLK_DEV_SD=y
-CONFIG_CHR_DEV_ST=m
-CONFIG_CHR_DEV_OSST=m
-CONFIG_BLK_DEV_SR=y
-# CONFIG_BLK_DEV_SR_VENDOR is not set
-CONFIG_CHR_DEV_SG=y
-CONFIG_CHR_DEV_SCH=m
-CONFIG_SCSI_ENCLOSURE=m
-CONFIG_SCSI_CONSTANTS=y
-CONFIG_SCSI_LOGGING=y
-CONFIG_SCSI_SCAN_ASYNC=y
-
-#
-# SCSI Transports
-#
-CONFIG_SCSI_SPI_ATTRS=m
-CONFIG_SCSI_FC_ATTRS=m
-CONFIG_SCSI_ISCSI_ATTRS=m
-CONFIG_SCSI_SAS_ATTRS=m
-CONFIG_SCSI_SAS_LIBSAS=m
-CONFIG_SCSI_SAS_ATA=y
-CONFIG_SCSI_SAS_HOST_SMP=y
-CONFIG_SCSI_SRP_ATTRS=y
-CONFIG_SCSI_LOWLEVEL=y
-CONFIG_ISCSI_TCP=m
-CONFIG_ISCSI_BOOT_SYSFS=m
-CONFIG_SCSI_CXGB3_ISCSI=m
-CONFIG_SCSI_CXGB4_ISCSI=m
-CONFIG_SCSI_BNX2_ISCSI=m
-CONFIG_SCSI_BNX2X_FCOE=m
-CONFIG_BE2ISCSI=m
-CONFIG_BLK_DEV_3W_XXXX_RAID=m
-CONFIG_SCSI_HPSA=m
-CONFIG_SCSI_3W_9XXX=m
-CONFIG_SCSI_3W_SAS=m
-CONFIG_SCSI_ACARD=m
-CONFIG_SCSI_AACRAID=m
-CONFIG_SCSI_AIC7XXX=m
-CONFIG_AIC7XXX_CMDS_PER_DEVICE=8
-CONFIG_AIC7XXX_RESET_DELAY_MS=5000
-# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
-CONFIG_AIC7XXX_DEBUG_MASK=0
-CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
-CONFIG_SCSI_AIC79XX=m
-CONFIG_AIC79XX_CMDS_PER_DEVICE=32
-CONFIG_AIC79XX_RESET_DELAY_MS=5000
-# CONFIG_AIC79XX_DEBUG_ENABLE is not set
-CONFIG_AIC79XX_DEBUG_MASK=0
-CONFIG_AIC79XX_REG_PRETTY_PRINT=y
-CONFIG_SCSI_AIC94XX=m
-# CONFIG_AIC94XX_DEBUG is not set
-CONFIG_SCSI_MVSAS=m
-# CONFIG_SCSI_MVSAS_DEBUG is not set
-# CONFIG_SCSI_MVSAS_TASKLET is not set
-CONFIG_SCSI_MVUMI=m
-# CONFIG_SCSI_ADVANSYS is not set
-CONFIG_SCSI_ARCMSR=m
-CONFIG_SCSI_ESAS2R=m
-CONFIG_MEGARAID_NEWGEN=y
-CONFIG_MEGARAID_MM=m
-CONFIG_MEGARAID_MAILBOX=m
-CONFIG_MEGARAID_LEGACY=m
-CONFIG_MEGARAID_SAS=m
-CONFIG_SCSI_MPT2SAS=m
-CONFIG_SCSI_MPT2SAS_MAX_SGE=128
-# CONFIG_SCSI_MPT2SAS_LOGGING is not set
-CONFIG_SCSI_MPT3SAS=m
-CONFIG_SCSI_MPT3SAS_MAX_SGE=128
-# CONFIG_SCSI_MPT3SAS_LOGGING is not set
-CONFIG_SCSI_UFSHCD=m
-CONFIG_SCSI_UFSHCD_PCI=m
-CONFIG_SCSI_UFSHCD_PLATFORM=m
-CONFIG_SCSI_HPTIOP=m
-CONFIG_LIBFC=m
-CONFIG_LIBFCOE=m
-CONFIG_FCOE=m
-# CONFIG_SCSI_SNIC is not set
-CONFIG_SCSI_DMX3191D=m
-CONFIG_SCSI_EATA=m
-CONFIG_SCSI_EATA_TAGGED_QUEUE=y
-CONFIG_SCSI_EATA_LINKED_COMMANDS=y
-CONFIG_SCSI_EATA_MAX_TAGS=16
-CONFIG_SCSI_FUTURE_DOMAIN=m
-CONFIG_SCSI_GDTH=m
-CONFIG_SCSI_IPS=m
-CONFIG_SCSI_IBMVSCSI=y
-CONFIG_SCSI_IBMVFC=m
-CONFIG_SCSI_IBMVFC_TRACE=y
-CONFIG_SCSI_INITIO=m
-CONFIG_SCSI_INIA100=m
-CONFIG_SCSI_PPA=m
-CONFIG_SCSI_IMM=m
-# CONFIG_SCSI_IZIP_EPP16 is not set
-# CONFIG_SCSI_IZIP_SLOW_CTR is not set
-CONFIG_SCSI_STEX=m
-CONFIG_SCSI_SYM53C8XX_2=m
-CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
-CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
-CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
-CONFIG_SCSI_SYM53C8XX_MMIO=y
-CONFIG_SCSI_IPR=m
-CONFIG_SCSI_IPR_TRACE=y
-CONFIG_SCSI_IPR_DUMP=y
-CONFIG_SCSI_QLOGIC_1280=m
-CONFIG_SCSI_QLA_FC=m
-CONFIG_TCM_QLA2XXX=m
-CONFIG_SCSI_QLA_ISCSI=m
-CONFIG_SCSI_LPFC=m
-# CONFIG_SCSI_LPFC_DEBUG_FS is not set
-CONFIG_SCSI_DC395x=m
-# CONFIG_SCSI_AM53C974 is not set
-# CONFIG_SCSI_WD719X is not set
-CONFIG_SCSI_DEBUG=m
-CONFIG_SCSI_PMCRAID=m
-CONFIG_SCSI_PM8001=m
-CONFIG_SCSI_BFA_FC=m
-CONFIG_SCSI_VIRTIO=m
-CONFIG_SCSI_CHELSIO_FCOE=m
-CONFIG_SCSI_DH=m
-CONFIG_SCSI_DH_RDAC=m
-CONFIG_SCSI_DH_HP_SW=m
-CONFIG_SCSI_DH_EMC=m
-CONFIG_SCSI_DH_ALUA=m
-CONFIG_SCSI_OSD_INITIATOR=m
-CONFIG_SCSI_OSD_ULD=m
-CONFIG_SCSI_OSD_DPRINT_SENSE=1
-# CONFIG_SCSI_OSD_DEBUG is not set
-CONFIG_ATA=y
-# CONFIG_ATA_NONSTANDARD is not set
-CONFIG_ATA_VERBOSE_ERROR=y
-CONFIG_SATA_PMP=y
-
-#
-# Controllers with non-SFF native interface
-#
-CONFIG_SATA_AHCI=m
-CONFIG_SATA_AHCI_PLATFORM=m
-# CONFIG_AHCI_CEVA is not set
-CONFIG_SATA_INIC162X=m
-CONFIG_SATA_ACARD_AHCI=m
-CONFIG_SATA_SIL24=m
-CONFIG_ATA_SFF=y
-
-#
-# SFF controllers with custom DMA interface
-#
-CONFIG_PDC_ADMA=m
-CONFIG_SATA_QSTOR=m
-CONFIG_SATA_SX4=m
-CONFIG_ATA_BMDMA=y
-
-#
-# SATA SFF controllers with BMDMA
-#
-CONFIG_ATA_PIIX=m
-CONFIG_SATA_MV=m
-CONFIG_SATA_NV=m
-CONFIG_SATA_PROMISE=m
-CONFIG_SATA_SIL=m
-CONFIG_SATA_SIS=m
-CONFIG_SATA_SVW=m
-CONFIG_SATA_ULI=m
-CONFIG_SATA_VIA=m
-CONFIG_SATA_VITESSE=m
-
-#
-# PATA SFF controllers with BMDMA
-#
-CONFIG_PATA_ALI=m
-CONFIG_PATA_AMD=m
-CONFIG_PATA_ARTOP=m
-CONFIG_PATA_ATIIXP=m
-CONFIG_PATA_ATP867X=m
-CONFIG_PATA_CMD64X=m
-CONFIG_PATA_CYPRESS=m
-CONFIG_PATA_EFAR=m
-CONFIG_PATA_HPT366=m
-CONFIG_PATA_HPT37X=m
-CONFIG_PATA_HPT3X2N=m
-CONFIG_PATA_HPT3X3=m
-# CONFIG_PATA_HPT3X3_DMA is not set
-CONFIG_PATA_IT8213=m
-CONFIG_PATA_IT821X=m
-CONFIG_PATA_JMICRON=m
-CONFIG_PATA_MARVELL=m
-CONFIG_PATA_NETCELL=m
-CONFIG_PATA_NINJA32=m
-CONFIG_PATA_NS87415=m
-CONFIG_PATA_OLDPIIX=m
-CONFIG_PATA_OPTIDMA=m
-CONFIG_PATA_PDC2027X=m
-CONFIG_PATA_PDC_OLD=m
-CONFIG_PATA_RADISYS=m
-CONFIG_PATA_RDC=m
-CONFIG_PATA_SCH=m
-CONFIG_PATA_SERVERWORKS=m
-CONFIG_PATA_SIL680=m
-CONFIG_PATA_SIS=m
-CONFIG_PATA_TOSHIBA=m
-CONFIG_PATA_TRIFLEX=m
-CONFIG_PATA_VIA=m
-CONFIG_PATA_WINBOND=m
-
-#
-# PIO-only SFF controllers
-#
-CONFIG_PATA_CMD640_PCI=m
-CONFIG_PATA_MPIIX=m
-CONFIG_PATA_NS87410=m
-CONFIG_PATA_OPTI=m
-CONFIG_PATA_PLATFORM=m
-CONFIG_PATA_OF_PLATFORM=m
-CONFIG_PATA_RZ1000=m
-
-#
-# Generic fallback / legacy drivers
-#
-CONFIG_ATA_GENERIC=m
-CONFIG_PATA_LEGACY=m
-CONFIG_MD=y
-CONFIG_BLK_DEV_MD=y
-CONFIG_MD_AUTODETECT=y
-CONFIG_MD_LINEAR=m
-CONFIG_MD_RAID0=m
-CONFIG_MD_RAID1=m
-CONFIG_MD_RAID10=m
-CONFIG_MD_RAID456=m
-CONFIG_MD_MULTIPATH=m
-CONFIG_MD_FAULTY=m
-# CONFIG_MD_CLUSTER is not set
-CONFIG_BCACHE=m
-# CONFIG_BCACHE_DEBUG is not set
-# CONFIG_BCACHE_CLOSURES_DEBUG is not set
-CONFIG_BLK_DEV_DM_BUILTIN=y
-CONFIG_BLK_DEV_DM=y
-# CONFIG_DM_MQ_DEFAULT is not set
-# CONFIG_DM_DEBUG is not set
-CONFIG_DM_BUFIO=m
-CONFIG_DM_BIO_PRISON=m
-CONFIG_DM_PERSISTENT_DATA=m
-# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
-CONFIG_DM_CRYPT=m
-CONFIG_DM_SNAPSHOT=m
-CONFIG_DM_THIN_PROVISIONING=m
-CONFIG_DM_CACHE=m
-CONFIG_DM_CACHE_MQ=m
-CONFIG_DM_CACHE_SMQ=m
-CONFIG_DM_CACHE_CLEANER=m
-CONFIG_DM_ERA=m
-CONFIG_DM_MIRROR=m
-CONFIG_DM_LOG_USERSPACE=m
-CONFIG_DM_RAID=m
-CONFIG_DM_ZERO=m
-CONFIG_DM_MULTIPATH=m
-CONFIG_DM_MULTIPATH_QL=m
-CONFIG_DM_MULTIPATH_ST=m
-CONFIG_DM_DELAY=m
-CONFIG_DM_UEVENT=y
-CONFIG_DM_FLAKEY=m
-CONFIG_DM_VERITY=m
-CONFIG_DM_SWITCH=m
-# CONFIG_DM_LOG_WRITES is not set
-CONFIG_TARGET_CORE=m
-CONFIG_TCM_IBLOCK=m
-CONFIG_TCM_FILEIO=m
-CONFIG_TCM_PSCSI=m
-# CONFIG_TCM_USER2 is not set
-CONFIG_LOOPBACK_TARGET=m
-CONFIG_TCM_FC=m
-CONFIG_ISCSI_TARGET=m
-CONFIG_SBP_TARGET=m
-CONFIG_FUSION=y
-CONFIG_FUSION_SPI=m
-CONFIG_FUSION_FC=m
-CONFIG_FUSION_SAS=m
-CONFIG_FUSION_MAX_SGE=128
-CONFIG_FUSION_CTL=m
-CONFIG_FUSION_LAN=m
-CONFIG_FUSION_LOGGING=y
-
-#
-# IEEE 1394 (FireWire) support
-#
-CONFIG_FIREWIRE=m
-CONFIG_FIREWIRE_OHCI=m
-CONFIG_FIREWIRE_SBP2=m
-CONFIG_FIREWIRE_NET=m
-CONFIG_FIREWIRE_NOSY=m
-CONFIG_MACINTOSH_DRIVERS=y
-CONFIG_MAC_EMUMOUSEBTN=m
-CONFIG_WINDFARM=m
-CONFIG_NETDEVICES=y
-CONFIG_MII=m
-CONFIG_NET_CORE=y
-CONFIG_BONDING=m
-CONFIG_DUMMY=m
-CONFIG_EQUALIZER=m
-CONFIG_NET_FC=y
-CONFIG_IFB=m
-CONFIG_NET_TEAM=m
-CONFIG_NET_TEAM_MODE_BROADCAST=m
-CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
-CONFIG_NET_TEAM_MODE_RANDOM=m
-CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
-CONFIG_NET_TEAM_MODE_LOADBALANCE=m
-CONFIG_MACVLAN=m
-CONFIG_MACVTAP=m
-# CONFIG_IPVLAN is not set
-CONFIG_VXLAN=m
-CONFIG_NETCONSOLE=m
-CONFIG_NETCONSOLE_DYNAMIC=y
-CONFIG_NETPOLL=y
-CONFIG_NET_POLL_CONTROLLER=y
-CONFIG_RIONET=m
-CONFIG_RIONET_TX_SIZE=128
-CONFIG_RIONET_RX_SIZE=128
-CONFIG_TUN=y
-# CONFIG_TUN_VNET_CROSS_LE is not set
-CONFIG_VETH=m
-CONFIG_VIRTIO_NET=y
-CONFIG_NLMON=m
-CONFIG_SUNGEM_PHY=m
-CONFIG_ARCNET=m
-CONFIG_ARCNET_1201=m
-CONFIG_ARCNET_1051=m
-CONFIG_ARCNET_RAW=m
-CONFIG_ARCNET_CAP=m
-CONFIG_ARCNET_COM90xx=m
-CONFIG_ARCNET_COM90xxIO=m
-CONFIG_ARCNET_RIM_I=m
-CONFIG_ARCNET_COM20020=m
-CONFIG_ARCNET_COM20020_PCI=m
-CONFIG_ATM_DRIVERS=y
-CONFIG_ATM_DUMMY=m
-CONFIG_ATM_TCP=m
-CONFIG_ATM_LANAI=m
-CONFIG_ATM_ENI=m
-# CONFIG_ATM_ENI_DEBUG is not set
-# CONFIG_ATM_ENI_TUNE_BURST is not set
-CONFIG_ATM_NICSTAR=m
-# CONFIG_ATM_NICSTAR_USE_SUNI is not set
-# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
-CONFIG_ATM_IDT77252=m
-# CONFIG_ATM_IDT77252_DEBUG is not set
-# CONFIG_ATM_IDT77252_RCV_ALL is not set
-CONFIG_ATM_IDT77252_USE_SUNI=y
-CONFIG_ATM_IA=m
-# CONFIG_ATM_IA_DEBUG is not set
-CONFIG_ATM_FORE200E=m
-# CONFIG_ATM_FORE200E_USE_TASKLET is not set
-CONFIG_ATM_FORE200E_TX_RETRY=16
-CONFIG_ATM_FORE200E_DEBUG=0
-CONFIG_ATM_HE=m
-CONFIG_ATM_HE_USE_SUNI=y
-CONFIG_ATM_SOLOS=m
-
-#
-# CAIF transport drivers
-#
-CONFIG_CAIF_TTY=m
-CONFIG_CAIF_SPI_SLAVE=m
-# CONFIG_CAIF_SPI_SYNC is not set
-CONFIG_CAIF_HSI=m
-CONFIG_CAIF_VIRTIO=m
-CONFIG_VHOST_NET=m
-CONFIG_VHOST_SCSI=m
-CONFIG_VHOST_RING=m
-CONFIG_VHOST=m
-CONFIG_VHOST_CROSS_ENDIAN_LEGACY=y
-
-#
-# Distributed Switch Architecture drivers
-#
-# CONFIG_NET_DSA_MV88E6XXX is not set
-# CONFIG_NET_DSA_MV88E6XXX_NEED_PPU is not set
-CONFIG_ETHERNET=y
-CONFIG_MDIO=m
-CONFIG_NET_VENDOR_3COM=y
-CONFIG_VORTEX=m
-CONFIG_TYPHOON=m
-CONFIG_NET_VENDOR_ADAPTEC=y
-CONFIG_ADAPTEC_STARFIRE=m
-CONFIG_NET_VENDOR_AGERE=y
-CONFIG_ET131X=m
-CONFIG_NET_VENDOR_ALTEON=y
-CONFIG_ACENIC=m
-# CONFIG_ACENIC_OMIT_TIGON_I is not set
-CONFIG_ALTERA_TSE=m
-CONFIG_NET_VENDOR_AMD=y
-CONFIG_AMD8111_ETH=m
-CONFIG_PCNET32=m
-CONFIG_NET_VENDOR_ARC=y
-CONFIG_ARC_EMAC_CORE=m
-CONFIG_ARC_EMAC=m
-# CONFIG_EMAC_ROCKCHIP is not set
-CONFIG_NET_VENDOR_ATHEROS=y
-CONFIG_ATL2=m
-CONFIG_ATL1=m
-CONFIG_ATL1E=m
-CONFIG_ATL1C=m
-CONFIG_ALX=m
-CONFIG_NET_CADENCE=y
-# CONFIG_MACB is not set
-CONFIG_NET_VENDOR_BROADCOM=y
-CONFIG_B44=m
-CONFIG_B44_PCI_AUTOSELECT=y
-CONFIG_B44_PCICORE_AUTOSELECT=y
-CONFIG_B44_PCI=y
-CONFIG_BCMGENET=m
-CONFIG_BNX2=m
-CONFIG_CNIC=m
-CONFIG_TIGON3=y
-CONFIG_BNX2X=m
-CONFIG_BNX2X_SRIOV=y
-CONFIG_SYSTEMPORT=m
-CONFIG_NET_VENDOR_BROCADE=y
-CONFIG_BNA=m
-CONFIG_NET_VENDOR_CAVIUM=y
-# CONFIG_THUNDER_NIC_PF is not set
-# CONFIG_THUNDER_NIC_VF is not set
-# CONFIG_THUNDER_NIC_BGX is not set
-# CONFIG_LIQUIDIO is not set
-CONFIG_NET_VENDOR_CHELSIO=y
-CONFIG_CHELSIO_T1=m
-CONFIG_CHELSIO_T1_1G=y
-CONFIG_CHELSIO_T3=m
-CONFIG_CHELSIO_T4=m
-# CONFIG_CHELSIO_T4_DCB is not set
-CONFIG_CHELSIO_T4VF=m
-CONFIG_NET_VENDOR_CISCO=y
-CONFIG_ENIC=m
-CONFIG_DNET=m
-CONFIG_NET_VENDOR_DEC=y
-CONFIG_NET_TULIP=y
-CONFIG_DE2104X=m
-CONFIG_DE2104X_DSL=0
-CONFIG_TULIP=m
-# CONFIG_TULIP_MWI is not set
-# CONFIG_TULIP_MMIO is not set
-# CONFIG_TULIP_NAPI is not set
-CONFIG_DE4X5=m
-CONFIG_WINBOND_840=m
-CONFIG_DM9102=m
-CONFIG_ULI526X=m
-CONFIG_NET_VENDOR_DLINK=y
-CONFIG_DL2K=m
-CONFIG_SUNDANCE=m
-# CONFIG_SUNDANCE_MMIO is not set
-CONFIG_NET_VENDOR_EMULEX=y
-CONFIG_BE2NET=m
-CONFIG_BE2NET_HWMON=y
-CONFIG_BE2NET_VXLAN=y
-CONFIG_NET_VENDOR_EZCHIP=y
-# CONFIG_EZCHIP_NPS_MANAGEMENT_ENET is not set
-CONFIG_NET_VENDOR_EXAR=y
-CONFIG_S2IO=m
-CONFIG_VXGE=m
-# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
-CONFIG_NET_VENDOR_HP=y
-CONFIG_HP100=m
-CONFIG_NET_VENDOR_IBM=y
-CONFIG_IBMVETH=y
-# CONFIG_IBM_EMAC is not set
-CONFIG_IBM_EMAC_ZMII=y
-CONFIG_IBM_EMAC_RGMII=y
-CONFIG_IBM_EMAC_TAH=y
-CONFIG_IBM_EMAC_EMAC4=y
-# CONFIG_IBM_EMAC_NO_FLOW_CTRL is not set
-# CONFIG_IBM_EMAC_MAL_CLR_ICINTSTAT is not set
-# CONFIG_IBM_EMAC_MAL_COMMON_ERR is not set
-CONFIG_EHEA=y
-CONFIG_NET_VENDOR_INTEL=y
-CONFIG_E100=m
-CONFIG_E1000=m
-CONFIG_E1000E=m
-CONFIG_IGB=m
-CONFIG_IGB_HWMON=y
-CONFIG_IGBVF=m
-CONFIG_IXGB=m
-CONFIG_IXGBE=m
-# CONFIG_IXGBE_VXLAN is not set
-CONFIG_IXGBE_HWMON=y
-CONFIG_IXGBE_DCB=y
-CONFIG_IXGBEVF=m
-CONFIG_I40E=m
-CONFIG_I40E_VXLAN=y
-CONFIG_I40E_DCB=y
-# CONFIG_I40E_FCOE is not set
-CONFIG_I40EVF=m
-# CONFIG_FM10K is not set
-CONFIG_NET_VENDOR_I825XX=y
-CONFIG_IP1000=m
-CONFIG_JME=m
-CONFIG_NET_VENDOR_MARVELL=y
-CONFIG_MVMDIO=m
-CONFIG_SKGE=m
-# CONFIG_SKGE_DEBUG is not set
-CONFIG_SKGE_GENESIS=y
-CONFIG_SKY2=m
-# CONFIG_SKY2_DEBUG is not set
-CONFIG_NET_VENDOR_MELLANOX=y
-CONFIG_MLX4_EN=m
-CONFIG_MLX4_EN_DCB=y
-CONFIG_MLX4_EN_VXLAN=y
-CONFIG_MLX4_CORE=m
-CONFIG_MLX4_DEBUG=y
-CONFIG_MLX5_CORE=m
-# CONFIG_MLX5_CORE_EN is not set
-CONFIG_NET_VENDOR_MICREL=y
-CONFIG_KS8842=m
-CONFIG_KS8851=m
-CONFIG_KS8851_MLL=m
-CONFIG_KSZ884X_PCI=m
-CONFIG_NET_VENDOR_MICROCHIP=y
-CONFIG_ENC28J60=m
-# CONFIG_ENC28J60_WRITEVERIFY is not set
-CONFIG_NET_VENDOR_MYRI=y
-CONFIG_MYRI10GE=m
-CONFIG_FEALNX=m
-CONFIG_NET_VENDOR_NATSEMI=y
-CONFIG_NATSEMI=m
-CONFIG_NS83820=m
-CONFIG_NET_VENDOR_8390=y
-CONFIG_NE2K_PCI=m
-CONFIG_NET_VENDOR_NVIDIA=y
-CONFIG_FORCEDETH=m
-CONFIG_NET_VENDOR_OKI=y
-CONFIG_ETHOC=m
-CONFIG_NET_PACKET_ENGINE=y
-CONFIG_HAMACHI=m
-CONFIG_YELLOWFIN=m
-CONFIG_NET_VENDOR_QLOGIC=y
-CONFIG_QLA3XXX=m
-CONFIG_QLCNIC=m
-CONFIG_QLCNIC_SRIOV=y
-CONFIG_QLCNIC_DCB=y
-CONFIG_QLCNIC_VXLAN=y
-CONFIG_QLCNIC_HWMON=y
-CONFIG_QLGE=m
-CONFIG_NETXEN_NIC=m
-CONFIG_NET_VENDOR_QUALCOMM=y
-# CONFIG_QCA7000 is not set
-CONFIG_NET_VENDOR_REALTEK=y
-CONFIG_8139CP=m
-CONFIG_8139TOO=m
-CONFIG_8139TOO_PIO=y
-# CONFIG_8139TOO_TUNE_TWISTER is not set
-CONFIG_8139TOO_8129=y
-# CONFIG_8139_OLD_RX_RESET is not set
-CONFIG_R8169=m
-CONFIG_NET_VENDOR_RENESAS=y
-CONFIG_NET_VENDOR_RDC=y
-CONFIG_R6040=m
-CONFIG_NET_VENDOR_ROCKER=y
-CONFIG_NET_VENDOR_SAMSUNG=y
-CONFIG_SXGBE_ETH=m
-CONFIG_NET_VENDOR_SEEQ=y
-CONFIG_NET_VENDOR_SILAN=y
-CONFIG_SC92031=m
-CONFIG_NET_VENDOR_SIS=y
-CONFIG_SIS900=m
-CONFIG_SIS190=m
-CONFIG_SFC=m
-CONFIG_SFC_MTD=y
-CONFIG_SFC_MCDI_MON=y
-CONFIG_SFC_SRIOV=y
-CONFIG_SFC_MCDI_LOGGING=y
-CONFIG_NET_VENDOR_SMSC=y
-CONFIG_EPIC100=m
-CONFIG_SMSC911X=m
-# CONFIG_SMSC911X_ARCH_HOOKS is not set
-CONFIG_SMSC9420=m
-CONFIG_NET_VENDOR_STMICRO=y
-CONFIG_STMMAC_ETH=m
-CONFIG_STMMAC_PLATFORM=m
-CONFIG_DWMAC_GENERIC=m
-# CONFIG_DWMAC_IPQ806X is not set
-# CONFIG_DWMAC_LPC18XX is not set
-# CONFIG_DWMAC_MESON is not set
-# CONFIG_DWMAC_ROCKCHIP is not set
-# CONFIG_DWMAC_SOCFPGA is not set
-# CONFIG_DWMAC_STI is not set
-# CONFIG_DWMAC_SUNXI is not set
-# CONFIG_STMMAC_PCI is not set
-CONFIG_NET_VENDOR_SUN=y
-CONFIG_HAPPYMEAL=m
-CONFIG_SUNGEM=m
-CONFIG_CASSINI=m
-CONFIG_NIU=m
-CONFIG_NET_VENDOR_TEHUTI=y
-CONFIG_TEHUTI=m
-CONFIG_NET_VENDOR_TI=y
-# CONFIG_TI_CPSW_ALE is not set
-CONFIG_TLAN=m
-CONFIG_NET_VENDOR_TOSHIBA=y
-# CONFIG_SPIDER_NET is not set
-CONFIG_NET_VENDOR_VIA=y
-CONFIG_VIA_RHINE=m
-CONFIG_VIA_RHINE_MMIO=y
-CONFIG_VIA_VELOCITY=m
-CONFIG_NET_VENDOR_WIZNET=y
-CONFIG_WIZNET_W5100=m
-CONFIG_WIZNET_W5300=m
-# CONFIG_WIZNET_BUS_DIRECT is not set
-# CONFIG_WIZNET_BUS_INDIRECT is not set
-CONFIG_WIZNET_BUS_ANY=y
-CONFIG_NET_VENDOR_XILINX=y
-CONFIG_XILINX_LL_TEMAC=m
-CONFIG_FDDI=y
-CONFIG_DEFXX=m
-# CONFIG_DEFXX_MMIO is not set
-CONFIG_SKFP=m
-# CONFIG_HIPPI is not set
-CONFIG_PHYLIB=y
-
-#
-# MII PHY device drivers
-#
-CONFIG_AT803X_PHY=m
-CONFIG_AMD_PHY=m
-CONFIG_MARVELL_PHY=m
-CONFIG_DAVICOM_PHY=m
-CONFIG_QSEMI_PHY=m
-CONFIG_LXT_PHY=m
-CONFIG_CICADA_PHY=m
-CONFIG_VITESSE_PHY=m
-CONFIG_SMSC_PHY=m
-CONFIG_BROADCOM_PHY=m
-CONFIG_BCM7XXX_PHY=m
-CONFIG_BCM87XX_PHY=m
-CONFIG_ICPLUS_PHY=m
-CONFIG_REALTEK_PHY=m
-CONFIG_NATIONAL_PHY=m
-CONFIG_STE10XP=m
-CONFIG_LSI_ET1011C_PHY=m
-CONFIG_MICREL_PHY=m
-# CONFIG_DP83867_PHY is not set
-CONFIG_FIXED_PHY=y
-CONFIG_MDIO_BITBANG=m
-CONFIG_MDIO_GPIO=m
-CONFIG_MDIO_BUS_MUX=m
-CONFIG_MDIO_BUS_MUX_GPIO=m
-CONFIG_MDIO_BUS_MUX_MMIOREG=m
-# CONFIG_MDIO_BCM_UNIMAC is not set
-CONFIG_MICREL_KS8995MA=m
-CONFIG_PLIP=m
-CONFIG_PPP=y
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_MPPE=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPPOATM=m
-CONFIG_PPPOE=m
-CONFIG_PPTP=m
-CONFIG_PPPOL2TP=m
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_SLIP=m
-CONFIG_SLHC=y
-CONFIG_SLIP_COMPRESSED=y
-CONFIG_SLIP_SMART=y
-CONFIG_SLIP_MODE_SLIP6=y
-CONFIG_USB_NET_DRIVERS=y
-CONFIG_USB_CATC=m
-CONFIG_USB_KAWETH=m
-CONFIG_USB_PEGASUS=m
-CONFIG_USB_RTL8150=m
-CONFIG_USB_RTL8152=m
-CONFIG_USB_USBNET=m
-CONFIG_USB_NET_AX8817X=m
-CONFIG_USB_NET_AX88179_178A=m
-CONFIG_USB_NET_CDCETHER=m
-CONFIG_USB_NET_CDC_EEM=m
-CONFIG_USB_NET_CDC_NCM=m
-CONFIG_USB_NET_HUAWEI_CDC_NCM=m
-CONFIG_USB_NET_CDC_MBIM=m
-CONFIG_USB_NET_DM9601=m
-CONFIG_USB_NET_SR9700=m
-CONFIG_USB_NET_SR9800=m
-CONFIG_USB_NET_SMSC75XX=m
-CONFIG_USB_NET_SMSC95XX=m
-CONFIG_USB_NET_GL620A=m
-CONFIG_USB_NET_NET1080=m
-CONFIG_USB_NET_PLUSB=m
-CONFIG_USB_NET_MCS7830=m
-CONFIG_USB_NET_RNDIS_HOST=m
-CONFIG_USB_NET_CDC_SUBSET=m
-CONFIG_USB_ALI_M5632=y
-CONFIG_USB_AN2720=y
-CONFIG_USB_BELKIN=y
-CONFIG_USB_ARMLINUX=y
-CONFIG_USB_EPSON2888=y
-CONFIG_USB_KC2190=y
-CONFIG_USB_NET_ZAURUS=m
-CONFIG_USB_NET_CX82310_ETH=m
-CONFIG_USB_NET_KALMIA=m
-CONFIG_USB_NET_QMI_WWAN=m
-CONFIG_USB_HSO=m
-CONFIG_USB_NET_INT51X1=m
-CONFIG_USB_CDC_PHONET=m
-CONFIG_USB_IPHETH=m
-CONFIG_USB_SIERRA_NET=m
-CONFIG_USB_VL600=m
-CONFIG_WLAN=y
-CONFIG_LIBERTAS_THINFIRM=m
-# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
-CONFIG_LIBERTAS_THINFIRM_USB=m
-CONFIG_AIRO=m
-CONFIG_ATMEL=m
-CONFIG_PCI_ATMEL=m
-CONFIG_AT76C50X_USB=m
-# CONFIG_PRISM54 is not set
-CONFIG_USB_ZD1201=m
-CONFIG_USB_NET_RNDIS_WLAN=m
-CONFIG_RTL8180=m
-CONFIG_RTL8187=m
-CONFIG_RTL8187_LEDS=y
-CONFIG_ADM8211=m
-CONFIG_MAC80211_HWSIM=m
-CONFIG_MWL8K=m
-CONFIG_ATH_COMMON=m
-CONFIG_ATH_CARDS=m
-# CONFIG_ATH_DEBUG is not set
-CONFIG_ATH5K=m
-# CONFIG_ATH5K_DEBUG is not set
-# CONFIG_ATH5K_TRACER is not set
-CONFIG_ATH5K_PCI=y
-CONFIG_ATH9K_HW=m
-CONFIG_ATH9K_COMMON=m
-CONFIG_ATH9K_BTCOEX_SUPPORT=y
-CONFIG_ATH9K=m
-CONFIG_ATH9K_PCI=y
-CONFIG_ATH9K_AHB=y
-CONFIG_ATH9K_DEBUGFS=y
-CONFIG_ATH9K_STATION_STATISTICS=y
-# CONFIG_ATH9K_DYNACK is not set
-CONFIG_ATH9K_WOW=y
-CONFIG_ATH9K_RFKILL=y
-# CONFIG_ATH9K_CHANNEL_CONTEXT is not set
-CONFIG_ATH9K_PCOEM=y
-CONFIG_ATH9K_HTC=m
-CONFIG_ATH9K_HTC_DEBUGFS=y
-CONFIG_CARL9170=m
-CONFIG_CARL9170_LEDS=y
-# CONFIG_CARL9170_DEBUGFS is not set
-CONFIG_CARL9170_WPC=y
-CONFIG_CARL9170_HWRNG=y
-CONFIG_ATH6KL=m
-CONFIG_ATH6KL_SDIO=m
-CONFIG_ATH6KL_USB=m
-# CONFIG_ATH6KL_DEBUG is not set
-# CONFIG_ATH6KL_TRACING is not set
-CONFIG_AR5523=m
-CONFIG_WIL6210=m
-CONFIG_WIL6210_ISR_COR=y
-CONFIG_WIL6210_TRACING=y
-CONFIG_ATH10K=m
-CONFIG_ATH10K_PCI=m
-# CONFIG_ATH10K_DEBUG is not set
-CONFIG_ATH10K_DEBUGFS=y
-CONFIG_ATH10K_TRACING=y
-CONFIG_WCN36XX=m
-# CONFIG_WCN36XX_DEBUGFS is not set
-CONFIG_B43=m
-CONFIG_B43_BCMA=y
-CONFIG_B43_SSB=y
-CONFIG_B43_BUSES_BCMA_AND_SSB=y
-# CONFIG_B43_BUSES_BCMA is not set
-# CONFIG_B43_BUSES_SSB is not set
-CONFIG_B43_PCI_AUTOSELECT=y
-CONFIG_B43_PCICORE_AUTOSELECT=y
-# CONFIG_B43_SDIO is not set
-CONFIG_B43_BCMA_PIO=y
-CONFIG_B43_PIO=y
-CONFIG_B43_PHY_G=y
-CONFIG_B43_PHY_N=y
-CONFIG_B43_PHY_LP=y
-CONFIG_B43_PHY_HT=y
-CONFIG_B43_LEDS=y
-CONFIG_B43_HWRNG=y
-# CONFIG_B43_DEBUG is not set
-CONFIG_B43LEGACY=m
-CONFIG_B43LEGACY_PCI_AUTOSELECT=y
-CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
-CONFIG_B43LEGACY_LEDS=y
-CONFIG_B43LEGACY_HWRNG=y
-# CONFIG_B43LEGACY_DEBUG is not set
-CONFIG_B43LEGACY_DMA=y
-CONFIG_B43LEGACY_PIO=y
-CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
-# CONFIG_B43LEGACY_DMA_MODE is not set
-# CONFIG_B43LEGACY_PIO_MODE is not set
-CONFIG_BRCMUTIL=m
-CONFIG_BRCMSMAC=m
-CONFIG_BRCMFMAC=m
-CONFIG_BRCMFMAC_PROTO_BCDC=y
-CONFIG_BRCMFMAC_SDIO=y
-CONFIG_BRCMFMAC_USB=y
-# CONFIG_BRCMFMAC_PCIE is not set
-CONFIG_BRCM_TRACING=y
-# CONFIG_BRCMDBG is not set
-CONFIG_HOSTAP=m
-CONFIG_HOSTAP_FIRMWARE=y
-CONFIG_HOSTAP_FIRMWARE_NVRAM=y
-CONFIG_HOSTAP_PLX=m
-CONFIG_HOSTAP_PCI=m
-CONFIG_IPW2100=m
-CONFIG_IPW2100_MONITOR=y
-# CONFIG_IPW2100_DEBUG is not set
-CONFIG_IPW2200=m
-CONFIG_IPW2200_MONITOR=y
-CONFIG_IPW2200_RADIOTAP=y
-CONFIG_IPW2200_PROMISCUOUS=y
-CONFIG_IPW2200_QOS=y
-# CONFIG_IPW2200_DEBUG is not set
-CONFIG_LIBIPW=m
-# CONFIG_LIBIPW_DEBUG is not set
-CONFIG_IWLWIFI=m
-CONFIG_IWLWIFI_LEDS=y
-CONFIG_IWLDVM=m
-CONFIG_IWLMVM=m
-CONFIG_IWLWIFI_OPMODE_MODULAR=y
-# CONFIG_IWLWIFI_BCAST_FILTERING is not set
-# CONFIG_IWLWIFI_UAPSD is not set
-
-#
-# Debugging Options
-#
-# CONFIG_IWLWIFI_DEBUG is not set
-CONFIG_IWLWIFI_DEBUGFS=y
-CONFIG_IWLWIFI_DEVICE_TRACING=y
-CONFIG_IWLEGACY=m
-CONFIG_IWL4965=m
-CONFIG_IWL3945=m
-
-#
-# iwl3945 / iwl4965 Debugging Options
-#
-# CONFIG_IWLEGACY_DEBUG is not set
-CONFIG_IWLEGACY_DEBUGFS=y
-CONFIG_LIBERTAS=m
-CONFIG_LIBERTAS_USB=m
-CONFIG_LIBERTAS_SDIO=m
-CONFIG_LIBERTAS_SPI=m
-# CONFIG_LIBERTAS_DEBUG is not set
-CONFIG_LIBERTAS_MESH=y
-CONFIG_HERMES=m
-# CONFIG_HERMES_PRISM is not set
-CONFIG_HERMES_CACHE_FW_ON_INIT=y
-CONFIG_PLX_HERMES=m
-CONFIG_TMD_HERMES=m
-CONFIG_NORTEL_HERMES=m
-CONFIG_ORINOCO_USB=m
-CONFIG_P54_COMMON=m
-CONFIG_P54_USB=m
-CONFIG_P54_PCI=m
-CONFIG_P54_SPI=m
-# CONFIG_P54_SPI_DEFAULT_EEPROM is not set
-CONFIG_P54_LEDS=y
-CONFIG_RT2X00=m
-CONFIG_RT2400PCI=m
-CONFIG_RT2500PCI=m
-CONFIG_RT61PCI=m
-CONFIG_RT2800PCI=m
-CONFIG_RT2800PCI_RT33XX=y
-CONFIG_RT2800PCI_RT35XX=y
-CONFIG_RT2800PCI_RT53XX=y
-CONFIG_RT2800PCI_RT3290=y
-CONFIG_RT2500USB=m
-CONFIG_RT73USB=m
-CONFIG_RT2800USB=m
-CONFIG_RT2800USB_RT33XX=y
-CONFIG_RT2800USB_RT35XX=y
-CONFIG_RT2800USB_RT3573=y
-CONFIG_RT2800USB_RT53XX=y
-CONFIG_RT2800USB_RT55XX=y
-CONFIG_RT2800USB_UNKNOWN=y
-CONFIG_RT2800_LIB=m
-CONFIG_RT2800_LIB_MMIO=m
-CONFIG_RT2X00_LIB_MMIO=m
-CONFIG_RT2X00_LIB_PCI=m
-CONFIG_RT2X00_LIB_USB=m
-CONFIG_RT2X00_LIB=m
-CONFIG_RT2X00_LIB_FIRMWARE=y
-CONFIG_RT2X00_LIB_CRYPTO=y
-CONFIG_RT2X00_LIB_LEDS=y
-# CONFIG_RT2X00_LIB_DEBUGFS is not set
-# CONFIG_RT2X00_DEBUG is not set
-# CONFIG_WL_MEDIATEK is not set
-CONFIG_RTL_CARDS=m
-CONFIG_RTL8192CE=m
-CONFIG_RTL8192SE=m
-CONFIG_RTL8192DE=m
-CONFIG_RTL8723AE=m
-CONFIG_RTL8723BE=m
-CONFIG_RTL8188EE=m
-# CONFIG_RTL8192EE is not set
-# CONFIG_RTL8821AE is not set
-CONFIG_RTL8192CU=m
-CONFIG_RTLWIFI=m
-CONFIG_RTLWIFI_PCI=m
-CONFIG_RTLWIFI_USB=m
-# CONFIG_RTLWIFI_DEBUG is not set
-CONFIG_RTL8192C_COMMON=m
-CONFIG_RTL8723_COMMON=m
-CONFIG_RTLBTCOEXIST=m
-CONFIG_WL_TI=y
-CONFIG_WL1251=m
-CONFIG_WL1251_SPI=m
-CONFIG_WL1251_SDIO=m
-CONFIG_WL12XX=m
-CONFIG_WL18XX=m
-CONFIG_WLCORE=m
-CONFIG_WLCORE_SPI=m
-CONFIG_WLCORE_SDIO=m
-CONFIG_WILINK_PLATFORM_DATA=y
-CONFIG_ZD1211RW=m
-# CONFIG_ZD1211RW_DEBUG is not set
-CONFIG_MWIFIEX=m
-CONFIG_MWIFIEX_SDIO=m
-CONFIG_MWIFIEX_PCIE=m
-CONFIG_MWIFIEX_USB=m
-CONFIG_CW1200=m
-CONFIG_CW1200_WLAN_SDIO=m
-CONFIG_CW1200_WLAN_SPI=m
-CONFIG_RSI_91X=m
-# CONFIG_RSI_DEBUGFS is not set
-CONFIG_RSI_SDIO=m
-CONFIG_RSI_USB=m
-
-#
-# WiMAX Wireless Broadband devices
-#
-CONFIG_WIMAX_I2400M=m
-CONFIG_WIMAX_I2400M_USB=m
-CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
-CONFIG_WAN=y
-CONFIG_HDLC=m
-CONFIG_HDLC_RAW=m
-CONFIG_HDLC_RAW_ETH=m
-CONFIG_HDLC_CISCO=m
-CONFIG_HDLC_FR=m
-CONFIG_HDLC_PPP=m
-CONFIG_HDLC_X25=m
-CONFIG_PCI200SYN=m
-CONFIG_WANXL=m
-CONFIG_PC300TOO=m
-CONFIG_FARSYNC=m
-CONFIG_DSCC4=m
-CONFIG_DSCC4_PCISYNC=y
-CONFIG_DSCC4_PCI_RST=y
-CONFIG_DLCI=m
-CONFIG_DLCI_MAX=8
-CONFIG_LAPBETHER=m
-CONFIG_X25_ASY=m
-CONFIG_IEEE802154_DRIVERS=m
-CONFIG_IEEE802154_FAKELB=m
-CONFIG_IEEE802154_AT86RF230=m
-CONFIG_IEEE802154_MRF24J40=m
-# CONFIG_IEEE802154_CC2520 is not set
-# CONFIG_IEEE802154_ATUSB is not set
-CONFIG_VMXNET3=m
-CONFIG_ISDN=y
-CONFIG_ISDN_I4L=m
-CONFIG_ISDN_PPP=y
-CONFIG_ISDN_PPP_VJ=y
-CONFIG_ISDN_MPP=y
-CONFIG_IPPP_FILTER=y
-CONFIG_ISDN_PPP_BSDCOMP=m
-CONFIG_ISDN_AUDIO=y
-CONFIG_ISDN_TTY_FAX=y
-CONFIG_ISDN_X25=y
-
-#
-# ISDN feature submodules
-#
-CONFIG_ISDN_DIVERSION=m
-
-#
-# ISDN4Linux hardware drivers
-#
-
-#
-# Passive cards
-#
-CONFIG_ISDN_DRV_HISAX=m
-
-#
-# D-channel protocol features
-#
-CONFIG_HISAX_EURO=y
-CONFIG_DE_AOC=y
-# CONFIG_HISAX_NO_SENDCOMPLETE is not set
-# CONFIG_HISAX_NO_LLC is not set
-# CONFIG_HISAX_NO_KEYPAD is not set
-CONFIG_HISAX_1TR6=y
-CONFIG_HISAX_NI1=y
-CONFIG_HISAX_MAX_CARDS=8
-
-#
-# HiSax supported cards
-#
-CONFIG_HISAX_16_3=y
-CONFIG_HISAX_S0BOX=y
-CONFIG_HISAX_AVM_A1_PCMCIA=y
-CONFIG_HISAX_ELSA=y
-CONFIG_HISAX_DIEHLDIVA=y
-CONFIG_HISAX_SEDLBAUER=y
-CONFIG_HISAX_NICCY=y
-CONFIG_HISAX_BKM_A4T=y
-CONFIG_HISAX_SCT_QUADRO=y
-CONFIG_HISAX_GAZEL=y
-CONFIG_HISAX_W6692=y
-CONFIG_HISAX_HFC_SX=y
-# CONFIG_HISAX_DEBUG is not set
-
-#
-# HiSax PCMCIA card service modules
-#
-
-#
-# HiSax sub driver modules
-#
-CONFIG_HISAX_ST5481=m
-CONFIG_HISAX_HFCUSB=m
-CONFIG_HISAX_HFC4S8S=m
-CONFIG_HISAX_FRITZ_PCIPNP=m
-
-#
-# Active cards
-#
-CONFIG_ISDN_CAPI=m
-CONFIG_CAPI_TRACE=y
-CONFIG_ISDN_CAPI_CAPI20=m
-CONFIG_ISDN_CAPI_MIDDLEWARE=y
-CONFIG_ISDN_CAPI_CAPIDRV=m
-# CONFIG_ISDN_CAPI_CAPIDRV_VERBOSE is not set
-
-#
-# CAPI hardware drivers
-#
-CONFIG_CAPI_AVM=y
-CONFIG_ISDN_DRV_AVMB1_B1PCI=m
-CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
-CONFIG_ISDN_DRV_AVMB1_T1PCI=m
-CONFIG_ISDN_DRV_AVMB1_C4=m
-CONFIG_CAPI_EICON=y
-CONFIG_ISDN_DIVAS=m
-CONFIG_ISDN_DIVAS_BRIPCI=y
-CONFIG_ISDN_DIVAS_PRIPCI=y
-CONFIG_ISDN_DIVAS_DIVACAPI=m
-CONFIG_ISDN_DIVAS_USERIDI=m
-CONFIG_ISDN_DIVAS_MAINT=m
-CONFIG_ISDN_DRV_GIGASET=m
-# CONFIG_GIGASET_CAPI is not set
-CONFIG_GIGASET_I4L=y
-# CONFIG_GIGASET_DUMMYLL is not set
-CONFIG_GIGASET_BASE=m
-CONFIG_GIGASET_M105=m
-CONFIG_GIGASET_M101=m
-# CONFIG_GIGASET_DEBUG is not set
-CONFIG_HYSDN=m
-CONFIG_HYSDN_CAPI=y
-CONFIG_MISDN=m
-CONFIG_MISDN_DSP=m
-CONFIG_MISDN_L1OIP=m
-
-#
-# mISDN hardware drivers
-#
-CONFIG_MISDN_HFCPCI=m
-CONFIG_MISDN_HFCMULTI=m
-CONFIG_MISDN_HFCUSB=m
-CONFIG_MISDN_AVMFRITZ=m
-CONFIG_MISDN_SPEEDFAX=m
-CONFIG_MISDN_INFINEON=m
-CONFIG_MISDN_W6692=m
-CONFIG_MISDN_NETJET=m
-CONFIG_MISDN_IPAC=m
-CONFIG_MISDN_ISAR=m
-CONFIG_ISDN_HDLC=m
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-CONFIG_INPUT_LEDS=y
-CONFIG_INPUT_FF_MEMLESS=m
-CONFIG_INPUT_POLLDEV=m
-CONFIG_INPUT_SPARSEKMAP=m
-CONFIG_INPUT_MATRIXKMAP=m
-
-#
-# Userland interfaces
-#
-CONFIG_INPUT_MOUSEDEV=y
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-CONFIG_INPUT_JOYDEV=m
-CONFIG_INPUT_EVDEV=y
-CONFIG_INPUT_EVBUG=m
-
-#
-# Input Device Drivers
-#
-CONFIG_INPUT_KEYBOARD=y
-CONFIG_KEYBOARD_ADP5520=m
-CONFIG_KEYBOARD_ADP5588=m
-CONFIG_KEYBOARD_ADP5589=m
-CONFIG_KEYBOARD_ATKBD=y
-CONFIG_KEYBOARD_QT1070=m
-CONFIG_KEYBOARD_QT2160=m
-CONFIG_KEYBOARD_LKKBD=m
-CONFIG_KEYBOARD_GPIO=m
-CONFIG_KEYBOARD_GPIO_POLLED=m
-CONFIG_KEYBOARD_TCA6416=m
-CONFIG_KEYBOARD_TCA8418=m
-CONFIG_KEYBOARD_MATRIX=m
-CONFIG_KEYBOARD_LM8323=m
-CONFIG_KEYBOARD_LM8333=m
-CONFIG_KEYBOARD_MAX7359=m
-CONFIG_KEYBOARD_MCS=m
-CONFIG_KEYBOARD_MPR121=m
-CONFIG_KEYBOARD_NEWTON=m
-CONFIG_KEYBOARD_OPENCORES=m
-CONFIG_KEYBOARD_STOWAWAY=m
-CONFIG_KEYBOARD_SUNKBD=m
-CONFIG_KEYBOARD_STMPE=m
-CONFIG_KEYBOARD_OMAP4=m
-CONFIG_KEYBOARD_TC3589X=m
-CONFIG_KEYBOARD_TWL4030=m
-CONFIG_KEYBOARD_XTKBD=m
-CONFIG_KEYBOARD_CROS_EC=m
-# CONFIG_KEYBOARD_CAP11XX is not set
-CONFIG_INPUT_MOUSE=y
-CONFIG_MOUSE_PS2=m
-CONFIG_MOUSE_PS2_ALPS=y
-CONFIG_MOUSE_PS2_LOGIPS2PP=y
-CONFIG_MOUSE_PS2_SYNAPTICS=y
-CONFIG_MOUSE_PS2_CYPRESS=y
-CONFIG_MOUSE_PS2_TRACKPOINT=y
-CONFIG_MOUSE_PS2_ELANTECH=y
-CONFIG_MOUSE_PS2_SENTELIC=y
-CONFIG_MOUSE_PS2_TOUCHKIT=y
-CONFIG_MOUSE_PS2_FOCALTECH=y
-CONFIG_MOUSE_SERIAL=m
-CONFIG_MOUSE_APPLETOUCH=m
-CONFIG_MOUSE_BCM5974=m
-CONFIG_MOUSE_CYAPA=m
-# CONFIG_MOUSE_ELAN_I2C is not set
-CONFIG_MOUSE_VSXXXAA=m
-CONFIG_MOUSE_GPIO=m
-CONFIG_MOUSE_SYNAPTICS_I2C=m
-CONFIG_MOUSE_SYNAPTICS_USB=m
-CONFIG_INPUT_JOYSTICK=y
-CONFIG_JOYSTICK_ANALOG=m
-CONFIG_JOYSTICK_A3D=m
-CONFIG_JOYSTICK_ADI=m
-CONFIG_JOYSTICK_COBRA=m
-CONFIG_JOYSTICK_GF2K=m
-CONFIG_JOYSTICK_GRIP=m
-CONFIG_JOYSTICK_GRIP_MP=m
-CONFIG_JOYSTICK_GUILLEMOT=m
-CONFIG_JOYSTICK_INTERACT=m
-CONFIG_JOYSTICK_SIDEWINDER=m
-CONFIG_JOYSTICK_TMDC=m
-CONFIG_JOYSTICK_IFORCE=m
-CONFIG_JOYSTICK_IFORCE_USB=y
-CONFIG_JOYSTICK_IFORCE_232=y
-CONFIG_JOYSTICK_WARRIOR=m
-CONFIG_JOYSTICK_MAGELLAN=m
-CONFIG_JOYSTICK_SPACEORB=m
-CONFIG_JOYSTICK_SPACEBALL=m
-CONFIG_JOYSTICK_STINGER=m
-CONFIG_JOYSTICK_TWIDJOY=m
-CONFIG_JOYSTICK_ZHENHUA=m
-CONFIG_JOYSTICK_DB9=m
-CONFIG_JOYSTICK_GAMECON=m
-CONFIG_JOYSTICK_TURBOGRAFX=m
-CONFIG_JOYSTICK_AS5011=m
-CONFIG_JOYSTICK_JOYDUMP=m
-CONFIG_JOYSTICK_XPAD=m
-CONFIG_JOYSTICK_XPAD_FF=y
-CONFIG_JOYSTICK_XPAD_LEDS=y
-CONFIG_JOYSTICK_WALKERA0701=m
-CONFIG_INPUT_TABLET=y
-CONFIG_TABLET_USB_ACECAD=m
-CONFIG_TABLET_USB_AIPTEK=m
-CONFIG_TABLET_USB_GTCO=m
-CONFIG_TABLET_USB_HANWANG=m
-CONFIG_TABLET_USB_KBTAB=m
-# CONFIG_TABLET_SERIAL_WACOM4 is not set
-CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_OF_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_88PM860X=m
-CONFIG_TOUCHSCREEN_ADS7846=m
-CONFIG_TOUCHSCREEN_AD7877=m
-CONFIG_TOUCHSCREEN_AD7879=m
-CONFIG_TOUCHSCREEN_AD7879_I2C=m
-CONFIG_TOUCHSCREEN_AD7879_SPI=m
-# CONFIG_TOUCHSCREEN_AR1021_I2C is not set
-CONFIG_TOUCHSCREEN_ATMEL_MXT=m
-CONFIG_TOUCHSCREEN_AUO_PIXCIR=m
-CONFIG_TOUCHSCREEN_BU21013=m
-# CONFIG_TOUCHSCREEN_CHIPONE_ICN8318 is not set
-CONFIG_TOUCHSCREEN_CY8CTMG110=m
-CONFIG_TOUCHSCREEN_CYTTSP_CORE=m
-CONFIG_TOUCHSCREEN_CYTTSP_I2C=m
-CONFIG_TOUCHSCREEN_CYTTSP_SPI=m
-CONFIG_TOUCHSCREEN_CYTTSP4_CORE=m
-CONFIG_TOUCHSCREEN_CYTTSP4_I2C=m
-CONFIG_TOUCHSCREEN_CYTTSP4_SPI=m
-CONFIG_TOUCHSCREEN_DA9034=m
-CONFIG_TOUCHSCREEN_DA9052=m
-CONFIG_TOUCHSCREEN_DYNAPRO=m
-CONFIG_TOUCHSCREEN_HAMPSHIRE=m
-CONFIG_TOUCHSCREEN_EETI=m
-CONFIG_TOUCHSCREEN_EGALAX=m
-CONFIG_TOUCHSCREEN_FUJITSU=m
-# CONFIG_TOUCHSCREEN_GOODIX is not set
-CONFIG_TOUCHSCREEN_ILI210X=m
-CONFIG_TOUCHSCREEN_GUNZE=m
-# CONFIG_TOUCHSCREEN_ELAN is not set
-CONFIG_TOUCHSCREEN_ELO=m
-CONFIG_TOUCHSCREEN_WACOM_W8001=m
-CONFIG_TOUCHSCREEN_WACOM_I2C=m
-CONFIG_TOUCHSCREEN_MAX11801=m
-CONFIG_TOUCHSCREEN_MCS5000=m
-CONFIG_TOUCHSCREEN_MMS114=m
-CONFIG_TOUCHSCREEN_MTOUCH=m
-CONFIG_TOUCHSCREEN_INEXIO=m
-CONFIG_TOUCHSCREEN_MK712=m
-CONFIG_TOUCHSCREEN_PENMOUNT=m
-CONFIG_TOUCHSCREEN_EDT_FT5X06=m
-CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
-CONFIG_TOUCHSCREEN_TOUCHWIN=m
-CONFIG_TOUCHSCREEN_TI_AM335X_TSC=m
-CONFIG_TOUCHSCREEN_UCB1400=m
-CONFIG_TOUCHSCREEN_PIXCIR=m
-# CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set
-CONFIG_TOUCHSCREEN_WM831X=m
-CONFIG_TOUCHSCREEN_WM97XX=m
-CONFIG_TOUCHSCREEN_WM9705=y
-CONFIG_TOUCHSCREEN_WM9712=y
-CONFIG_TOUCHSCREEN_WM9713=y
-CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
-CONFIG_TOUCHSCREEN_MC13783=m
-CONFIG_TOUCHSCREEN_USB_EGALAX=y
-CONFIG_TOUCHSCREEN_USB_PANJIT=y
-CONFIG_TOUCHSCREEN_USB_3M=y
-CONFIG_TOUCHSCREEN_USB_ITM=y
-CONFIG_TOUCHSCREEN_USB_ETURBO=y
-CONFIG_TOUCHSCREEN_USB_GUNZE=y
-CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
-CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
-CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
-CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
-CONFIG_TOUCHSCREEN_USB_GOTOP=y
-CONFIG_TOUCHSCREEN_USB_JASTEC=y
-CONFIG_TOUCHSCREEN_USB_ELO=y
-CONFIG_TOUCHSCREEN_USB_E2I=y
-CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
-CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
-CONFIG_TOUCHSCREEN_USB_NEXIO=y
-CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y
-CONFIG_TOUCHSCREEN_TOUCHIT213=m
-CONFIG_TOUCHSCREEN_TSC_SERIO=m
-CONFIG_TOUCHSCREEN_TSC2005=m
-CONFIG_TOUCHSCREEN_TSC2007=m
-CONFIG_TOUCHSCREEN_PCAP=m
-CONFIG_TOUCHSCREEN_ST1232=m
-CONFIG_TOUCHSCREEN_STMPE=m
-CONFIG_TOUCHSCREEN_SUR40=m
-# CONFIG_TOUCHSCREEN_SX8654 is not set
-CONFIG_TOUCHSCREEN_TPS6507X=m
-CONFIG_TOUCHSCREEN_ZFORCE=m
-CONFIG_INPUT_MISC=y
-CONFIG_INPUT_88PM860X_ONKEY=m
-CONFIG_INPUT_88PM80X_ONKEY=m
-CONFIG_INPUT_AD714X=m
-CONFIG_INPUT_AD714X_I2C=m
-CONFIG_INPUT_AD714X_SPI=m
-CONFIG_INPUT_ARIZONA_HAPTICS=m
-CONFIG_INPUT_BMA150=m
-# CONFIG_INPUT_E3X0_BUTTON is not set
-CONFIG_INPUT_PCSPKR=m
-# CONFIG_INPUT_MAX77693_HAPTIC is not set
-CONFIG_INPUT_MAX8925_ONKEY=m
-CONFIG_INPUT_MAX8997_HAPTIC=m
-CONFIG_INPUT_MC13783_PWRBUTTON=m
-CONFIG_INPUT_MMA8450=m
-CONFIG_INPUT_MPU3050=m
-CONFIG_INPUT_GP2A=m
-CONFIG_INPUT_GPIO_BEEPER=m
-CONFIG_INPUT_GPIO_TILT_POLLED=m
-CONFIG_INPUT_ATI_REMOTE2=m
-CONFIG_INPUT_KEYSPAN_REMOTE=m
-CONFIG_INPUT_KXTJ9=m
-# CONFIG_INPUT_KXTJ9_POLLED_MODE is not set
-CONFIG_INPUT_POWERMATE=m
-CONFIG_INPUT_YEALINK=m
-CONFIG_INPUT_CM109=m
-# CONFIG_INPUT_REGULATOR_HAPTIC is not set
-CONFIG_INPUT_RETU_PWRBUTTON=m
-# CONFIG_INPUT_TPS65218_PWRBUTTON is not set
-# CONFIG_INPUT_AXP20X_PEK is not set
-CONFIG_INPUT_TWL4030_PWRBUTTON=m
-CONFIG_INPUT_TWL4030_VIBRA=m
-CONFIG_INPUT_TWL6040_VIBRA=m
-CONFIG_INPUT_UINPUT=y
-# CONFIG_INPUT_PALMAS_PWRBUTTON is not set
-CONFIG_INPUT_PCF50633_PMU=m
-CONFIG_INPUT_PCF8574=m
-CONFIG_INPUT_PWM_BEEPER=m
-CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
-CONFIG_INPUT_DA9052_ONKEY=m
-CONFIG_INPUT_DA9055_ONKEY=m
-# CONFIG_INPUT_DA9063_ONKEY is not set
-CONFIG_INPUT_WM831X_ON=m
-CONFIG_INPUT_PCAP=m
-CONFIG_INPUT_ADXL34X=m
-CONFIG_INPUT_ADXL34X_I2C=m
-CONFIG_INPUT_ADXL34X_SPI=m
-CONFIG_INPUT_IMS_PCU=m
-CONFIG_INPUT_CMA3000=m
-CONFIG_INPUT_CMA3000_I2C=m
-CONFIG_INPUT_IDEAPAD_SLIDEBAR=m
-CONFIG_INPUT_SOC_BUTTON_ARRAY=m
-# CONFIG_INPUT_DRV260X_HAPTICS is not set
-# CONFIG_INPUT_DRV2665_HAPTICS is not set
-# CONFIG_INPUT_DRV2667_HAPTICS is not set
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y
-CONFIG_SERIO_I8042=y
-CONFIG_SERIO_SERPORT=m
-CONFIG_SERIO_PARKBD=m
-CONFIG_SERIO_PCIPS2=m
-CONFIG_SERIO_LIBPS2=y
-CONFIG_SERIO_RAW=m
-CONFIG_SERIO_XILINX_XPS_PS2=m
-CONFIG_SERIO_ALTERA_PS2=m
-CONFIG_SERIO_PS2MULT=m
-CONFIG_SERIO_ARC_PS2=m
-CONFIG_SERIO_APBPS2=m
-CONFIG_GAMEPORT=m
-CONFIG_GAMEPORT_NS558=m
-CONFIG_GAMEPORT_L4=m
-CONFIG_GAMEPORT_EMU10K1=m
-CONFIG_GAMEPORT_FM801=m
-
-#
-# Character devices
-#
-CONFIG_TTY=y
-CONFIG_VT=y
-CONFIG_CONSOLE_TRANSLATIONS=y
-CONFIG_VT_CONSOLE=y
-CONFIG_VT_CONSOLE_SLEEP=y
-CONFIG_HW_CONSOLE=y
-CONFIG_VT_HW_CONSOLE_BINDING=y
-CONFIG_UNIX98_PTYS=y
-CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
-CONFIG_LEGACY_PTYS=y
-CONFIG_LEGACY_PTY_COUNT=0
-CONFIG_SERIAL_NONSTANDARD=y
-CONFIG_ROCKETPORT=m
-CONFIG_CYCLADES=m
-# CONFIG_CYZ_INTR is not set
-CONFIG_MOXA_INTELLIO=m
-CONFIG_MOXA_SMARTIO=m
-CONFIG_SYNCLINK=m
-CONFIG_SYNCLINKMP=m
-CONFIG_SYNCLINK_GT=m
-CONFIG_NOZOMI=m
-CONFIG_ISI=m
-CONFIG_N_HDLC=m
-# CONFIG_N_GSM is not set
-CONFIG_TRACE_ROUTER=m
-CONFIG_TRACE_SINK=m
-# CONFIG_PPC_EPAPR_HV_BYTECHAN is not set
-CONFIG_DEVMEM=y
-# CONFIG_DEVKMEM is not set
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_EARLYCON=y
-CONFIG_SERIAL_8250=y
-# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_8250_DMA=y
-CONFIG_SERIAL_8250_PCI=y
-CONFIG_SERIAL_8250_NR_UARTS=48
-CONFIG_SERIAL_8250_RUNTIME_UARTS=32
-CONFIG_SERIAL_8250_EXTENDED=y
-CONFIG_SERIAL_8250_MANY_PORTS=y
-CONFIG_SERIAL_8250_SHARE_IRQ=y
-# CONFIG_SERIAL_8250_DETECT_IRQ is not set
-CONFIG_SERIAL_8250_RSA=y
-CONFIG_SERIAL_8250_FSL=y
-CONFIG_SERIAL_8250_DW=m
-# CONFIG_SERIAL_8250_INGENIC is not set
-
-#
-# Non-8250 serial port support
-#
-CONFIG_SERIAL_KGDB_NMI=y
-CONFIG_SERIAL_MAX3100=m
-CONFIG_SERIAL_MAX310X=y
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-CONFIG_CONSOLE_POLL=y
-CONFIG_SERIAL_ICOM=m
-CONFIG_SERIAL_JSM=m
-CONFIG_SERIAL_OF_PLATFORM=y
-# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
-CONFIG_SERIAL_SCCNXP=y
-CONFIG_SERIAL_SCCNXP_CONSOLE=y
-CONFIG_SERIAL_SC16IS7XX_CORE=m
-CONFIG_SERIAL_SC16IS7XX=m
-CONFIG_SERIAL_SC16IS7XX_I2C=y
-# CONFIG_SERIAL_SC16IS7XX_SPI is not set
-CONFIG_SERIAL_ALTERA_JTAGUART=m
-CONFIG_SERIAL_ALTERA_UART=m
-CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
-CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
-# CONFIG_SERIAL_IFX6X60 is not set
-CONFIG_SERIAL_XILINX_PS_UART=m
-CONFIG_SERIAL_ARC=m
-CONFIG_SERIAL_ARC_NR_PORTS=1
-CONFIG_SERIAL_RP2=m
-CONFIG_SERIAL_RP2_NR_UARTS=32
-CONFIG_SERIAL_FSL_LPUART=m
-# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set
-CONFIG_SERIAL_MEN_Z135=m
-CONFIG_TTY_PRINTK=y
-CONFIG_PRINTER=m
-# CONFIG_LP_CONSOLE is not set
-CONFIG_PPDEV=m
-CONFIG_HVC_DRIVER=y
-CONFIG_HVC_IRQ=y
-CONFIG_HVC_CONSOLE=y
-CONFIG_HVC_OLD_HVSI=y
-CONFIG_HVC_OPAL=y
-CONFIG_HVC_RTAS=y
-CONFIG_HVC_UDBG=y
-CONFIG_HVCS=m
-CONFIG_VIRTIO_CONSOLE=y
-CONFIG_IBM_BSR=m
-CONFIG_IPMI_HANDLER=m
-# CONFIG_IPMI_PANIC_EVENT is not set
-CONFIG_IPMI_DEVICE_INTERFACE=m
-CONFIG_IPMI_SI=m
-CONFIG_IPMI_SI_PROBE_DEFAULTS=y
-# CONFIG_IPMI_SSIF is not set
-# CONFIG_IPMI_POWERNV is not set
-CONFIG_IPMI_WATCHDOG=m
-CONFIG_IPMI_POWEROFF=m
-CONFIG_HW_RANDOM=y
-CONFIG_HW_RANDOM_TIMERIOMEM=m
-CONFIG_HW_RANDOM_VIRTIO=m
-CONFIG_HW_RANDOM_PSERIES=m
-CONFIG_HW_RANDOM_POWERNV=m
-CONFIG_HW_RANDOM_TPM=m
-CONFIG_R3964=m
-CONFIG_APPLICOM=m
-CONFIG_RAW_DRIVER=m
-CONFIG_MAX_RAW_DEVS=256
-CONFIG_HANGCHECK_TIMER=m
-CONFIG_TCG_TPM=y
-CONFIG_TCG_TIS_I2C_ATMEL=m
-CONFIG_TCG_TIS_I2C_INFINEON=m
-CONFIG_TCG_TIS_I2C_NUVOTON=m
-CONFIG_TCG_ATMEL=m
-CONFIG_TCG_IBMVTPM=y
-# CONFIG_TCG_TIS_ST33ZP24 is not set
-CONFIG_DEVPORT=y
-CONFIG_XILLYBUS=m
-CONFIG_XILLYBUS_PCIE=m
-CONFIG_XILLYBUS_OF=m
-
-#
-# I2C support
-#
-CONFIG_I2C=y
-CONFIG_I2C_BOARDINFO=y
-CONFIG_I2C_COMPAT=y
-CONFIG_I2C_CHARDEV=m
-CONFIG_I2C_MUX=m
-
-#
-# Multiplexer I2C Chip support
-#
-CONFIG_I2C_ARB_GPIO_CHALLENGE=m
-CONFIG_I2C_MUX_GPIO=m
-CONFIG_I2C_MUX_PCA9541=m
-CONFIG_I2C_MUX_PCA954x=m
-CONFIG_I2C_HELPER_AUTO=y
-CONFIG_I2C_SMBUS=m
-CONFIG_I2C_ALGOBIT=m
-CONFIG_I2C_ALGOPCA=m
-
-#
-# I2C Hardware Bus support
-#
-
-#
-# PC SMBus host controller drivers
-#
-CONFIG_I2C_ALI1535=m
-CONFIG_I2C_ALI1563=m
-CONFIG_I2C_ALI15X3=m
-CONFIG_I2C_AMD756=m
-CONFIG_I2C_AMD8111=m
-CONFIG_I2C_I801=m
-CONFIG_I2C_ISCH=m
-CONFIG_I2C_PIIX4=m
-CONFIG_I2C_NFORCE2=m
-CONFIG_I2C_SIS5595=m
-CONFIG_I2C_SIS630=m
-CONFIG_I2C_SIS96X=m
-CONFIG_I2C_VIA=m
-CONFIG_I2C_VIAPRO=m
-
-#
-# I2C system bus drivers (mostly embedded / system-on-chip)
-#
-CONFIG_I2C_CBUS_GPIO=m
-CONFIG_I2C_DESIGNWARE_CORE=m
-CONFIG_I2C_DESIGNWARE_PLATFORM=m
-CONFIG_I2C_DESIGNWARE_PCI=m
-CONFIG_I2C_GPIO=m
-CONFIG_I2C_KEMPLD=m
-CONFIG_I2C_MPC=m
-CONFIG_I2C_OCORES=m
-CONFIG_I2C_PCA_PLATFORM=m
-# CONFIG_I2C_PXA_PCI is not set
-CONFIG_I2C_SIMTEC=m
-CONFIG_I2C_XILINX=m
-
-#
-# External I2C/SMBus adapter drivers
-#
-CONFIG_I2C_DIOLAN_U2C=m
-CONFIG_I2C_PARPORT=m
-CONFIG_I2C_PARPORT_LIGHT=m
-CONFIG_I2C_ROBOTFUZZ_OSIF=m
-CONFIG_I2C_TAOS_EVM=m
-CONFIG_I2C_TINY_USB=m
-CONFIG_I2C_VIPERBOARD=m
-
-#
-# Other I2C/SMBus bus drivers
-#
-CONFIG_I2C_CROS_EC_TUNNEL=m
-CONFIG_I2C_OPAL=y
-CONFIG_I2C_STUB=m
-# CONFIG_I2C_SLAVE is not set
-# CONFIG_I2C_DEBUG_CORE is not set
-# CONFIG_I2C_DEBUG_ALGO is not set
-# CONFIG_I2C_DEBUG_BUS is not set
-CONFIG_SPI=y
-# CONFIG_SPI_DEBUG is not set
-CONFIG_SPI_MASTER=y
-
-#
-# SPI Master Controller Drivers
-#
-CONFIG_SPI_ALTERA=m
-CONFIG_SPI_BITBANG=m
-CONFIG_SPI_BUTTERFLY=m
-# CONFIG_SPI_CADENCE is not set
-CONFIG_SPI_GPIO=m
-CONFIG_SPI_LM70_LLP=m
-CONFIG_SPI_FSL_LIB=y
-CONFIG_SPI_FSL_SPI=y
-CONFIG_SPI_OC_TINY=m
-CONFIG_SPI_PXA2XX_DMA=y
-CONFIG_SPI_PXA2XX=m
-# CONFIG_SPI_PXA2XX_PCI is not set
-CONFIG_SPI_SC18IS602=m
-CONFIG_SPI_XCOMM=m
-# CONFIG_SPI_XILINX is not set
-# CONFIG_SPI_ZYNQMP_GQSPI is not set
-CONFIG_SPI_DESIGNWARE=m
-CONFIG_SPI_DW_PCI=m
-# CONFIG_SPI_DW_MID_DMA is not set
-CONFIG_SPI_DW_MMIO=m
-
-#
-# SPI Protocol Masters
-#
-CONFIG_SPI_SPIDEV=m
-CONFIG_SPI_TLE62X0=m
-CONFIG_SPMI=m
-CONFIG_HSI=m
-CONFIG_HSI_BOARDINFO=y
-
-#
-# HSI controllers
-#
-
-#
-# HSI clients
-#
-CONFIG_HSI_CHAR=m
-
-#
-# PPS support
-#
-CONFIG_PPS=y
-# CONFIG_PPS_DEBUG is not set
-
-#
-# PPS clients support
-#
-# CONFIG_PPS_CLIENT_KTIMER is not set
-CONFIG_PPS_CLIENT_LDISC=m
-CONFIG_PPS_CLIENT_PARPORT=m
-CONFIG_PPS_CLIENT_GPIO=m
-
-#
-# PPS generators support
-#
-
-#
-# PTP clock support
-#
-CONFIG_PTP_1588_CLOCK=y
-
-#
-# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
-#
-CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
-CONFIG_GPIOLIB=y
-CONFIG_GPIO_DEVRES=y
-CONFIG_OF_GPIO=y
-CONFIG_GPIOLIB_IRQCHIP=y
-# CONFIG_DEBUG_GPIO is not set
-CONFIG_GPIO_SYSFS=y
-CONFIG_GPIO_GENERIC=m
-CONFIG_GPIO_MAX730X=m
-
-#
-# Memory mapped GPIO drivers
-#
-# CONFIG_GPIO_74XX_MMIO is not set
-# CONFIG_GPIO_ALTERA is not set
-CONFIG_GPIO_DWAPB=m
-CONFIG_GPIO_GENERIC_PLATFORM=m
-CONFIG_GPIO_GRGPIO=m
-CONFIG_GPIO_SCH311X=m
-CONFIG_GPIO_SYSCON=m
-CONFIG_GPIO_VX855=m
-CONFIG_GPIO_XILINX=y
-
-#
-# I2C GPIO expanders
-#
-CONFIG_GPIO_ADP5588=m
-CONFIG_GPIO_ADNP=m
-CONFIG_GPIO_MAX7300=m
-CONFIG_GPIO_MAX732X=m
-CONFIG_GPIO_PCA953X=m
-CONFIG_GPIO_PCF857X=m
-CONFIG_GPIO_SX150X=y
-
-#
-# MFD GPIO expanders
-#
-CONFIG_GPIO_ADP5520=m
-CONFIG_GPIO_ARIZONA=m
-CONFIG_GPIO_DA9052=m
-CONFIG_GPIO_DA9055=m
-CONFIG_GPIO_JANZ_TTL=m
-CONFIG_GPIO_KEMPLD=m
-CONFIG_GPIO_LP3943=m
-CONFIG_GPIO_PALMAS=y
-CONFIG_GPIO_RC5T583=y
-CONFIG_GPIO_STMPE=y
-CONFIG_GPIO_TC3589X=y
-CONFIG_GPIO_TPS6586X=y
-CONFIG_GPIO_TPS65910=y
-CONFIG_GPIO_TPS65912=m
-CONFIG_GPIO_TWL4030=m
-CONFIG_GPIO_TWL6040=m
-CONFIG_GPIO_UCB1400=m
-CONFIG_GPIO_WM831X=m
-CONFIG_GPIO_WM8350=m
-CONFIG_GPIO_WM8994=m
-
-#
-# PCI GPIO expanders
-#
-CONFIG_GPIO_AMD8111=m
-CONFIG_GPIO_ML_IOH=m
-CONFIG_GPIO_RDC321X=m
-
-#
-# SPI GPIO expanders
-#
-CONFIG_GPIO_74X164=m
-CONFIG_GPIO_MAX7301=m
-CONFIG_GPIO_MCP23S08=m
-CONFIG_GPIO_MC33880=m
-
-#
-# USB GPIO expanders
-#
-CONFIG_GPIO_VIPERBOARD=m
-CONFIG_W1=m
-CONFIG_W1_CON=y
-
-#
-# 1-wire Bus Masters
-#
-CONFIG_W1_MASTER_MATROX=m
-CONFIG_W1_MASTER_DS2490=m
-CONFIG_W1_MASTER_DS2482=m
-CONFIG_W1_MASTER_DS1WM=m
-CONFIG_W1_MASTER_GPIO=m
-
-#
-# 1-wire Slaves
-#
-CONFIG_W1_SLAVE_THERM=m
-CONFIG_W1_SLAVE_SMEM=m
-CONFIG_W1_SLAVE_DS2408=m
-CONFIG_W1_SLAVE_DS2408_READBACK=y
-CONFIG_W1_SLAVE_DS2413=m
-# CONFIG_W1_SLAVE_DS2406 is not set
-CONFIG_W1_SLAVE_DS2423=m
-CONFIG_W1_SLAVE_DS2431=m
-CONFIG_W1_SLAVE_DS2433=m
-# CONFIG_W1_SLAVE_DS2433_CRC is not set
-CONFIG_W1_SLAVE_DS2760=m
-CONFIG_W1_SLAVE_DS2780=m
-CONFIG_W1_SLAVE_DS2781=m
-CONFIG_W1_SLAVE_DS28E04=m
-CONFIG_W1_SLAVE_BQ27000=m
-CONFIG_POWER_SUPPLY=y
-# CONFIG_POWER_SUPPLY_DEBUG is not set
-CONFIG_PDA_POWER=m
-CONFIG_GENERIC_ADC_BATTERY=m
-CONFIG_MAX8925_POWER=m
-CONFIG_WM831X_BACKUP=m
-CONFIG_WM831X_POWER=m
-CONFIG_WM8350_POWER=m
-CONFIG_TEST_POWER=m
-CONFIG_BATTERY_88PM860X=m
-CONFIG_BATTERY_DS2760=m
-CONFIG_BATTERY_DS2780=m
-CONFIG_BATTERY_DS2781=m
-CONFIG_BATTERY_DS2782=m
-CONFIG_BATTERY_SBS=m
-CONFIG_BATTERY_BQ27x00=m
-CONFIG_BATTERY_BQ27X00_I2C=y
-CONFIG_BATTERY_BQ27X00_PLATFORM=y
-CONFIG_BATTERY_DA9030=m
-CONFIG_BATTERY_DA9052=m
-# CONFIG_AXP288_FUEL_GAUGE is not set
-CONFIG_BATTERY_MAX17040=m
-CONFIG_BATTERY_MAX17042=m
-CONFIG_BATTERY_TWL4030_MADC=m
-CONFIG_CHARGER_88PM860X=m
-CONFIG_CHARGER_PCF50633=m
-CONFIG_BATTERY_RX51=m
-CONFIG_CHARGER_ISP1704=m
-CONFIG_CHARGER_MAX8903=m
-CONFIG_CHARGER_TWL4030=m
-CONFIG_CHARGER_LP8727=m
-CONFIG_CHARGER_LP8788=m
-CONFIG_CHARGER_GPIO=m
-CONFIG_CHARGER_MANAGER=y
-CONFIG_CHARGER_MAX14577=m
-# CONFIG_CHARGER_MAX77693 is not set
-CONFIG_CHARGER_MAX8997=m
-CONFIG_CHARGER_MAX8998=m
-CONFIG_CHARGER_BQ2415X=m
-CONFIG_CHARGER_BQ24190=m
-# CONFIG_CHARGER_BQ24257 is not set
-CONFIG_CHARGER_BQ24735=m
-# CONFIG_CHARGER_BQ25890 is not set
-CONFIG_CHARGER_SMB347=m
-CONFIG_CHARGER_TPS65090=m
-# CONFIG_BATTERY_GAUGE_LTC2941 is not set
-# CONFIG_CHARGER_RT9455 is not set
-CONFIG_POWER_RESET=y
-CONFIG_POWER_RESET_AS3722=y
-CONFIG_POWER_RESET_GPIO=y
-# CONFIG_POWER_RESET_GPIO_RESTART is not set
-# CONFIG_POWER_RESET_LTC2952 is not set
-# CONFIG_POWER_RESET_RESTART is not set
-# CONFIG_POWER_RESET_SYSCON is not set
-# CONFIG_POWER_RESET_SYSCON_POWEROFF is not set
-CONFIG_POWER_AVS=y
-CONFIG_HWMON=y
-CONFIG_HWMON_VID=m
-# CONFIG_HWMON_DEBUG_CHIP is not set
-
-#
-# Native drivers
-#
-CONFIG_SENSORS_AD7314=m
-CONFIG_SENSORS_AD7414=m
-CONFIG_SENSORS_AD7418=m
-CONFIG_SENSORS_ADM1021=m
-CONFIG_SENSORS_ADM1025=m
-CONFIG_SENSORS_ADM1026=m
-CONFIG_SENSORS_ADM1029=m
-CONFIG_SENSORS_ADM1031=m
-CONFIG_SENSORS_ADM9240=m
-CONFIG_SENSORS_ADT7X10=m
-CONFIG_SENSORS_ADT7310=m
-CONFIG_SENSORS_ADT7410=m
-CONFIG_SENSORS_ADT7411=m
-CONFIG_SENSORS_ADT7462=m
-CONFIG_SENSORS_ADT7470=m
-CONFIG_SENSORS_ADT7475=m
-CONFIG_SENSORS_ASC7621=m
-CONFIG_SENSORS_ATXP1=m
-CONFIG_SENSORS_DS620=m
-CONFIG_SENSORS_DS1621=m
-CONFIG_SENSORS_DA9052_ADC=m
-CONFIG_SENSORS_DA9055=m
-CONFIG_SENSORS_I5K_AMB=m
-CONFIG_SENSORS_F75375S=m
-CONFIG_SENSORS_MC13783_ADC=m
-CONFIG_SENSORS_GL518SM=m
-CONFIG_SENSORS_GL520SM=m
-CONFIG_SENSORS_G760A=m
-CONFIG_SENSORS_G762=m
-CONFIG_SENSORS_GPIO_FAN=m
-CONFIG_SENSORS_HIH6130=m
-CONFIG_SENSORS_IBMAEM=m
-CONFIG_SENSORS_IBMPEX=m
-CONFIG_SENSORS_IBMPOWERNV=m
-CONFIG_SENSORS_IIO_HWMON=m
-CONFIG_SENSORS_JC42=m
-# CONFIG_SENSORS_POWR1220 is not set
-CONFIG_SENSORS_LINEAGE=m
-CONFIG_SENSORS_LTC2945=m
-CONFIG_SENSORS_LTC4151=m
-CONFIG_SENSORS_LTC4215=m
-CONFIG_SENSORS_LTC4222=m
-CONFIG_SENSORS_LTC4245=m
-CONFIG_SENSORS_LTC4260=m
-CONFIG_SENSORS_LTC4261=m
-CONFIG_SENSORS_MAX1111=m
-CONFIG_SENSORS_MAX16065=m
-CONFIG_SENSORS_MAX1619=m
-CONFIG_SENSORS_MAX1668=m
-CONFIG_SENSORS_MAX197=m
-CONFIG_SENSORS_MAX6639=m
-CONFIG_SENSORS_MAX6642=m
-CONFIG_SENSORS_MAX6650=m
-CONFIG_SENSORS_MAX6697=m
-CONFIG_SENSORS_HTU21=m
-CONFIG_SENSORS_MCP3021=m
-CONFIG_SENSORS_ADCXX=m
-CONFIG_SENSORS_LM63=m
-CONFIG_SENSORS_LM70=m
-CONFIG_SENSORS_LM73=m
-CONFIG_SENSORS_LM75=m
-CONFIG_SENSORS_LM77=m
-CONFIG_SENSORS_LM78=m
-CONFIG_SENSORS_LM80=m
-CONFIG_SENSORS_LM83=m
-CONFIG_SENSORS_LM85=m
-CONFIG_SENSORS_LM87=m
-CONFIG_SENSORS_LM90=m
-CONFIG_SENSORS_LM92=m
-CONFIG_SENSORS_LM93=m
-CONFIG_SENSORS_LM95234=m
-CONFIG_SENSORS_LM95241=m
-CONFIG_SENSORS_LM95245=m
-CONFIG_SENSORS_NTC_THERMISTOR=m
-# CONFIG_SENSORS_NCT7802 is not set
-# CONFIG_SENSORS_NCT7904 is not set
-CONFIG_SENSORS_PCF8591=m
-CONFIG_PMBUS=m
-CONFIG_SENSORS_PMBUS=m
-CONFIG_SENSORS_ADM1275=m
-CONFIG_SENSORS_LM25066=m
-CONFIG_SENSORS_LTC2978=m
-# CONFIG_SENSORS_LTC2978_REGULATOR is not set
-CONFIG_SENSORS_MAX16064=m
-CONFIG_SENSORS_MAX34440=m
-CONFIG_SENSORS_MAX8688=m
-# CONFIG_SENSORS_TPS40422 is not set
-CONFIG_SENSORS_UCD9000=m
-CONFIG_SENSORS_UCD9200=m
-CONFIG_SENSORS_ZL6100=m
-# CONFIG_SENSORS_PWM_FAN is not set
-CONFIG_SENSORS_SHT15=m
-CONFIG_SENSORS_SHT21=m
-CONFIG_SENSORS_SHTC1=m
-CONFIG_SENSORS_SIS5595=m
-CONFIG_SENSORS_EMC1403=m
-CONFIG_SENSORS_EMC2103=m
-CONFIG_SENSORS_EMC6W201=m
-CONFIG_SENSORS_SMSC47M192=m
-# CONFIG_SENSORS_SCH56XX_COMMON is not set
-CONFIG_SENSORS_SMM665=m
-CONFIG_SENSORS_ADC128D818=m
-CONFIG_SENSORS_ADS1015=m
-CONFIG_SENSORS_ADS7828=m
-CONFIG_SENSORS_ADS7871=m
-CONFIG_SENSORS_AMC6821=m
-CONFIG_SENSORS_INA209=m
-CONFIG_SENSORS_INA2XX=m
-# CONFIG_SENSORS_TC74 is not set
-CONFIG_SENSORS_THMC50=m
-CONFIG_SENSORS_TMP102=m
-# CONFIG_SENSORS_TMP103 is not set
-CONFIG_SENSORS_TMP401=m
-CONFIG_SENSORS_TMP421=m
-CONFIG_SENSORS_TWL4030_MADC=m
-CONFIG_SENSORS_VIA686A=m
-CONFIG_SENSORS_VT8231=m
-CONFIG_SENSORS_W83781D=m
-CONFIG_SENSORS_W83791D=m
-CONFIG_SENSORS_W83792D=m
-CONFIG_SENSORS_W83793=m
-CONFIG_SENSORS_W83795=m
-# CONFIG_SENSORS_W83795_FANCTRL is not set
-CONFIG_SENSORS_W83L785TS=m
-CONFIG_SENSORS_W83L786NG=m
-CONFIG_SENSORS_WM831X=m
-CONFIG_SENSORS_WM8350=m
-CONFIG_THERMAL=y
-CONFIG_THERMAL_HWMON=y
-CONFIG_THERMAL_OF=y
-# CONFIG_THERMAL_WRITABLE_TRIPS is not set
-CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
-# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
-# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
-# CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set
-CONFIG_THERMAL_GOV_FAIR_SHARE=y
-CONFIG_THERMAL_GOV_STEP_WISE=y
-# CONFIG_THERMAL_GOV_BANG_BANG is not set
-CONFIG_THERMAL_GOV_USER_SPACE=y
-# CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set
-CONFIG_CPU_THERMAL=y
-CONFIG_THERMAL_EMULATION=y
-CONFIG_IMX_THERMAL=m
-
-#
-# Texas Instruments thermal drivers
-#
-# CONFIG_QCOM_SPMI_TEMP_ALARM is not set
-CONFIG_WATCHDOG=y
-CONFIG_WATCHDOG_CORE=y
-# CONFIG_WATCHDOG_NOWAYOUT is not set
-
-#
-# Watchdog Device Drivers
-#
-CONFIG_SOFT_WATCHDOG=m
-CONFIG_DA9052_WATCHDOG=m
-CONFIG_DA9055_WATCHDOG=m
-# CONFIG_DA9063_WATCHDOG is not set
-CONFIG_GPIO_WATCHDOG=m
-CONFIG_WM831X_WATCHDOG=m
-CONFIG_WM8350_WATCHDOG=m
-CONFIG_XILINX_WATCHDOG=m
-# CONFIG_CADENCE_WATCHDOG is not set
-CONFIG_DW_WATCHDOG=m
-CONFIG_TWL4030_WATCHDOG=m
-# CONFIG_MAX63XX_WATCHDOG is not set
-CONFIG_RETU_WATCHDOG=m
-CONFIG_ALIM7101_WDT=m
-CONFIG_I6300ESB_WDT=m
-CONFIG_KEMPLD_WDT=m
-CONFIG_MEN_A21_WDT=m
-CONFIG_WATCHDOG_RTAS=m
-
-#
-# PCI-based Watchdog Cards
-#
-CONFIG_PCIPCWATCHDOG=m
-CONFIG_WDTPCI=m
-
-#
-# USB-based Watchdog Cards
-#
-CONFIG_USBPCWATCHDOG=m
-CONFIG_SSB_POSSIBLE=y
-
-#
-# Sonics Silicon Backplane
-#
-CONFIG_SSB=m
-CONFIG_SSB_SPROM=y
-CONFIG_SSB_BLOCKIO=y
-CONFIG_SSB_PCIHOST_POSSIBLE=y
-CONFIG_SSB_PCIHOST=y
-CONFIG_SSB_B43_PCI_BRIDGE=y
-CONFIG_SSB_SDIOHOST_POSSIBLE=y
-CONFIG_SSB_SDIOHOST=y
-# CONFIG_SSB_SILENT is not set
-# CONFIG_SSB_DEBUG is not set
-CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
-CONFIG_SSB_DRIVER_PCICORE=y
-CONFIG_SSB_DRIVER_GPIO=y
-CONFIG_BCMA_POSSIBLE=y
-
-#
-# Broadcom specific AMBA
-#
-CONFIG_BCMA=m
-CONFIG_BCMA_BLOCKIO=y
-CONFIG_BCMA_HOST_PCI_POSSIBLE=y
-CONFIG_BCMA_HOST_PCI=y
-CONFIG_BCMA_HOST_SOC=y
-CONFIG_BCMA_DRIVER_PCI=y
-CONFIG_BCMA_DRIVER_GMAC_CMN=y
-CONFIG_BCMA_DRIVER_GPIO=y
-# CONFIG_BCMA_DEBUG is not set
-
-#
-# Multifunction device drivers
-#
-CONFIG_MFD_CORE=y
-CONFIG_MFD_AS3711=y
-CONFIG_MFD_AS3722=y
-CONFIG_PMIC_ADP5520=y
-CONFIG_MFD_AAT2870_CORE=y
-# CONFIG_MFD_ATMEL_HLCDC is not set
-CONFIG_MFD_BCM590XX=m
-CONFIG_MFD_AXP20X=y
-CONFIG_MFD_CROS_EC=m
-CONFIG_MFD_CROS_EC_I2C=m
-CONFIG_MFD_CROS_EC_SPI=m
-CONFIG_PMIC_DA903X=y
-CONFIG_PMIC_DA9052=y
-CONFIG_MFD_DA9052_SPI=y
-CONFIG_MFD_DA9052_I2C=y
-CONFIG_MFD_DA9055=y
-CONFIG_MFD_DA9063=y
-# CONFIG_MFD_DA9150 is not set
-# CONFIG_MFD_DLN2 is not set
-CONFIG_MFD_MC13XXX=m
-CONFIG_MFD_MC13XXX_SPI=m
-CONFIG_MFD_MC13XXX_I2C=m
-# CONFIG_MFD_HI6421_PMIC is not set
-CONFIG_HTC_PASIC3=m
-CONFIG_HTC_I2CPLD=y
-CONFIG_LPC_ICH=m
-CONFIG_LPC_SCH=m
-# CONFIG_INTEL_SOC_PMIC is not set
-CONFIG_MFD_JANZ_CMODIO=m
-CONFIG_MFD_KEMPLD=m
-CONFIG_MFD_88PM800=m
-CONFIG_MFD_88PM805=m
-CONFIG_MFD_88PM860X=y
-CONFIG_MFD_MAX14577=y
-CONFIG_MFD_MAX77686=y
-CONFIG_MFD_MAX77693=y
-# CONFIG_MFD_MAX77843 is not set
-CONFIG_MFD_MAX8907=m
-CONFIG_MFD_MAX8925=y
-CONFIG_MFD_MAX8997=y
-CONFIG_MFD_MAX8998=y
-# CONFIG_MFD_MT6397 is not set
-# CONFIG_MFD_MENF21BMC is not set
-CONFIG_EZX_PCAP=y
-CONFIG_MFD_VIPERBOARD=m
-CONFIG_MFD_RETU=m
-CONFIG_MFD_PCF50633=m
-CONFIG_PCF50633_ADC=m
-CONFIG_PCF50633_GPIO=m
-CONFIG_UCB1400_CORE=m
-CONFIG_MFD_RDC321X=m
-CONFIG_MFD_RTSX_PCI=m
-# CONFIG_MFD_RT5033 is not set
-CONFIG_MFD_RTSX_USB=m
-CONFIG_MFD_RC5T583=y
-# CONFIG_MFD_RK808 is not set
-# CONFIG_MFD_RN5T618 is not set
-CONFIG_MFD_SEC_CORE=y
-CONFIG_MFD_SI476X_CORE=m
-CONFIG_MFD_SM501=m
-CONFIG_MFD_SM501_GPIO=y
-# CONFIG_MFD_SKY81452 is not set
-CONFIG_MFD_SMSC=y
-CONFIG_ABX500_CORE=y
-CONFIG_AB3100_CORE=y
-CONFIG_AB3100_OTP=m
-CONFIG_MFD_STMPE=y
-
-#
-# STMicroelectronics STMPE Interface Drivers
-#
-CONFIG_STMPE_I2C=y
-CONFIG_STMPE_SPI=y
-CONFIG_MFD_SYSCON=y
-CONFIG_MFD_TI_AM335X_TSCADC=m
-CONFIG_MFD_LP3943=m
-CONFIG_MFD_LP8788=y
-CONFIG_MFD_PALMAS=y
-CONFIG_TPS6105X=m
-CONFIG_TPS65010=m
-CONFIG_TPS6507X=m
-CONFIG_MFD_TPS65090=y
-CONFIG_MFD_TPS65217=m
-CONFIG_MFD_TPS65218=m
-CONFIG_MFD_TPS6586X=y
-CONFIG_MFD_TPS65910=y
-CONFIG_MFD_TPS65912=y
-CONFIG_MFD_TPS65912_I2C=y
-CONFIG_MFD_TPS65912_SPI=y
-CONFIG_MFD_TPS80031=y
-CONFIG_TWL4030_CORE=y
-CONFIG_MFD_TWL4030_AUDIO=y
-CONFIG_TWL6040_CORE=y
-CONFIG_MFD_WL1273_CORE=m
-CONFIG_MFD_LM3533=m
-CONFIG_MFD_TC3589X=y
-# CONFIG_MFD_TMIO is not set
-CONFIG_MFD_VX855=m
-CONFIG_MFD_ARIZONA=y
-CONFIG_MFD_ARIZONA_I2C=m
-CONFIG_MFD_ARIZONA_SPI=m
-CONFIG_MFD_WM5102=y
-CONFIG_MFD_WM5110=y
-CONFIG_MFD_WM8997=y
-CONFIG_MFD_WM8400=y
-CONFIG_MFD_WM831X=y
-CONFIG_MFD_WM831X_I2C=y
-CONFIG_MFD_WM831X_SPI=y
-CONFIG_MFD_WM8350=y
-CONFIG_MFD_WM8350_I2C=y
-CONFIG_MFD_WM8994=y
-CONFIG_REGULATOR=y
-# CONFIG_REGULATOR_DEBUG is not set
-CONFIG_REGULATOR_FIXED_VOLTAGE=m
-CONFIG_REGULATOR_VIRTUAL_CONSUMER=m
-CONFIG_REGULATOR_USERSPACE_CONSUMER=m
-CONFIG_REGULATOR_88PM800=m
-CONFIG_REGULATOR_88PM8607=m
-CONFIG_REGULATOR_ACT8865=m
-CONFIG_REGULATOR_AD5398=m
-CONFIG_REGULATOR_ANATOP=m
-CONFIG_REGULATOR_AAT2870=m
-CONFIG_REGULATOR_AB3100=m
-CONFIG_REGULATOR_ARIZONA=m
-CONFIG_REGULATOR_AS3711=m
-CONFIG_REGULATOR_AS3722=m
-CONFIG_REGULATOR_AXP20X=m
-CONFIG_REGULATOR_BCM590XX=m
-CONFIG_REGULATOR_DA903X=m
-CONFIG_REGULATOR_DA9052=m
-CONFIG_REGULATOR_DA9055=m
-CONFIG_REGULATOR_DA9063=m
-CONFIG_REGULATOR_DA9210=m
-# CONFIG_REGULATOR_DA9211 is not set
-CONFIG_REGULATOR_FAN53555=m
-CONFIG_REGULATOR_GPIO=m
-# CONFIG_REGULATOR_ISL9305 is not set
-CONFIG_REGULATOR_ISL6271A=m
-CONFIG_REGULATOR_LP3971=m
-CONFIG_REGULATOR_LP3972=m
-CONFIG_REGULATOR_LP872X=m
-CONFIG_REGULATOR_LP8755=m
-CONFIG_REGULATOR_LP8788=m
-CONFIG_REGULATOR_LTC3589=m
-CONFIG_REGULATOR_MAX14577=m
-CONFIG_REGULATOR_MAX1586=m
-CONFIG_REGULATOR_MAX8649=m
-CONFIG_REGULATOR_MAX8660=m
-CONFIG_REGULATOR_MAX8907=m
-CONFIG_REGULATOR_MAX8925=m
-CONFIG_REGULATOR_MAX8952=m
-CONFIG_REGULATOR_MAX8973=m
-CONFIG_REGULATOR_MAX8997=m
-CONFIG_REGULATOR_MAX8998=m
-CONFIG_REGULATOR_MAX77686=m
-CONFIG_REGULATOR_MAX77693=m
-# CONFIG_REGULATOR_MAX77802 is not set
-CONFIG_REGULATOR_MC13XXX_CORE=m
-CONFIG_REGULATOR_MC13783=m
-CONFIG_REGULATOR_MC13892=m
-CONFIG_REGULATOR_PALMAS=m
-CONFIG_REGULATOR_PCAP=m
-CONFIG_REGULATOR_PCF50633=m
-CONFIG_REGULATOR_PFUZE100=m
-# CONFIG_REGULATOR_PWM is not set
-# CONFIG_REGULATOR_QCOM_SPMI is not set
-CONFIG_REGULATOR_RC5T583=m
-CONFIG_REGULATOR_S2MPA01=m
-CONFIG_REGULATOR_S2MPS11=m
-CONFIG_REGULATOR_S5M8767=m
-CONFIG_REGULATOR_TPS51632=m
-CONFIG_REGULATOR_TPS6105X=m
-CONFIG_REGULATOR_TPS62360=m
-CONFIG_REGULATOR_TPS65023=m
-CONFIG_REGULATOR_TPS6507X=m
-CONFIG_REGULATOR_TPS65090=m
-CONFIG_REGULATOR_TPS65217=m
-CONFIG_REGULATOR_TPS65218=m
-CONFIG_REGULATOR_TPS6524X=m
-CONFIG_REGULATOR_TPS6586X=m
-CONFIG_REGULATOR_TPS65910=m
-CONFIG_REGULATOR_TPS65912=m
-CONFIG_REGULATOR_TPS80031=m
-CONFIG_REGULATOR_TWL4030=m
-CONFIG_REGULATOR_WM831X=m
-CONFIG_REGULATOR_WM8350=m
-CONFIG_REGULATOR_WM8400=m
-CONFIG_REGULATOR_WM8994=m
-CONFIG_MEDIA_SUPPORT=m
-
-#
-# Multimedia core support
-#
-CONFIG_MEDIA_CAMERA_SUPPORT=y
-CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
-CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
-CONFIG_MEDIA_RADIO_SUPPORT=y
-# CONFIG_MEDIA_SDR_SUPPORT is not set
-CONFIG_MEDIA_RC_SUPPORT=y
-CONFIG_MEDIA_CONTROLLER=y
-CONFIG_VIDEO_DEV=m
-CONFIG_VIDEO_V4L2_SUBDEV_API=y
-CONFIG_VIDEO_V4L2=m
-# CONFIG_VIDEO_ADV_DEBUG is not set
-# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
-CONFIG_VIDEO_TUNER=m
-CONFIG_V4L2_MEM2MEM_DEV=m
-CONFIG_VIDEOBUF_GEN=m
-CONFIG_VIDEOBUF_DMA_SG=m
-CONFIG_VIDEOBUF_VMALLOC=m
-CONFIG_VIDEOBUF_DVB=m
-CONFIG_VIDEOBUF2_CORE=m
-CONFIG_VIDEOBUF2_MEMOPS=m
-CONFIG_VIDEOBUF2_DMA_CONTIG=m
-CONFIG_VIDEOBUF2_VMALLOC=m
-CONFIG_VIDEOBUF2_DMA_SG=m
-CONFIG_VIDEOBUF2_DVB=m
-CONFIG_DVB_CORE=m
-CONFIG_DVB_NET=y
-CONFIG_TTPCI_EEPROM=m
-CONFIG_DVB_MAX_ADAPTERS=8
-CONFIG_DVB_DYNAMIC_MINORS=y
-
-#
-# Media drivers
-#
-CONFIG_RC_CORE=m
-CONFIG_RC_MAP=m
-CONFIG_RC_DECODERS=y
-CONFIG_LIRC=m
-CONFIG_IR_LIRC_CODEC=m
-CONFIG_IR_NEC_DECODER=m
-CONFIG_IR_RC5_DECODER=m
-CONFIG_IR_RC6_DECODER=m
-CONFIG_IR_JVC_DECODER=m
-CONFIG_IR_SONY_DECODER=m
-CONFIG_IR_SANYO_DECODER=m
-CONFIG_IR_SHARP_DECODER=m
-CONFIG_IR_MCE_KBD_DECODER=m
-CONFIG_IR_XMP_DECODER=m
-CONFIG_RC_DEVICES=y
-CONFIG_RC_ATI_REMOTE=m
-# CONFIG_IR_HIX5HD2 is not set
-CONFIG_IR_IMON=m
-CONFIG_IR_MCEUSB=m
-CONFIG_IR_REDRAT3=m
-CONFIG_IR_STREAMZAP=m
-# CONFIG_IR_IGORPLUGUSB is not set
-CONFIG_IR_IGUANA=m
-CONFIG_IR_TTUSBIR=m
-CONFIG_RC_LOOPBACK=m
-CONFIG_IR_GPIO_CIR=m
-CONFIG_MEDIA_USB_SUPPORT=y
-
-#
-# Webcam devices
-#
-CONFIG_USB_VIDEO_CLASS=m
-CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
-CONFIG_USB_GSPCA=m
-CONFIG_USB_M5602=m
-CONFIG_USB_STV06XX=m
-CONFIG_USB_GL860=m
-CONFIG_USB_GSPCA_BENQ=m
-CONFIG_USB_GSPCA_CONEX=m
-CONFIG_USB_GSPCA_CPIA1=m
-CONFIG_USB_GSPCA_DTCS033=m
-CONFIG_USB_GSPCA_ETOMS=m
-CONFIG_USB_GSPCA_FINEPIX=m
-CONFIG_USB_GSPCA_JEILINJ=m
-CONFIG_USB_GSPCA_JL2005BCD=m
-CONFIG_USB_GSPCA_KINECT=m
-CONFIG_USB_GSPCA_KONICA=m
-CONFIG_USB_GSPCA_MARS=m
-CONFIG_USB_GSPCA_MR97310A=m
-CONFIG_USB_GSPCA_NW80X=m
-CONFIG_USB_GSPCA_OV519=m
-CONFIG_USB_GSPCA_OV534=m
-CONFIG_USB_GSPCA_OV534_9=m
-CONFIG_USB_GSPCA_PAC207=m
-CONFIG_USB_GSPCA_PAC7302=m
-CONFIG_USB_GSPCA_PAC7311=m
-CONFIG_USB_GSPCA_SE401=m
-CONFIG_USB_GSPCA_SN9C2028=m
-CONFIG_USB_GSPCA_SN9C20X=m
-CONFIG_USB_GSPCA_SONIXB=m
-CONFIG_USB_GSPCA_SONIXJ=m
-CONFIG_USB_GSPCA_SPCA500=m
-CONFIG_USB_GSPCA_SPCA501=m
-CONFIG_USB_GSPCA_SPCA505=m
-CONFIG_USB_GSPCA_SPCA506=m
-CONFIG_USB_GSPCA_SPCA508=m
-CONFIG_USB_GSPCA_SPCA561=m
-CONFIG_USB_GSPCA_SPCA1528=m
-CONFIG_USB_GSPCA_SQ905=m
-CONFIG_USB_GSPCA_SQ905C=m
-CONFIG_USB_GSPCA_SQ930X=m
-CONFIG_USB_GSPCA_STK014=m
-CONFIG_USB_GSPCA_STK1135=m
-CONFIG_USB_GSPCA_STV0680=m
-CONFIG_USB_GSPCA_SUNPLUS=m
-CONFIG_USB_GSPCA_T613=m
-CONFIG_USB_GSPCA_TOPRO=m
-# CONFIG_USB_GSPCA_TOUPTEK is not set
-CONFIG_USB_GSPCA_TV8532=m
-CONFIG_USB_GSPCA_VC032X=m
-CONFIG_USB_GSPCA_VICAM=m
-CONFIG_USB_GSPCA_XIRLINK_CIT=m
-CONFIG_USB_GSPCA_ZC3XX=m
-CONFIG_USB_PWC=m
-# CONFIG_USB_PWC_DEBUG is not set
-CONFIG_USB_PWC_INPUT_EVDEV=y
-CONFIG_VIDEO_CPIA2=m
-CONFIG_USB_ZR364XX=m
-CONFIG_USB_STKWEBCAM=m
-CONFIG_USB_S2255=m
-CONFIG_VIDEO_USBTV=m
-
-#
-# Analog TV USB devices
-#
-CONFIG_VIDEO_PVRUSB2=m
-CONFIG_VIDEO_PVRUSB2_SYSFS=y
-CONFIG_VIDEO_PVRUSB2_DVB=y
-# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
-CONFIG_VIDEO_HDPVR=m
-CONFIG_VIDEO_USBVISION=m
-CONFIG_VIDEO_STK1160_COMMON=m
-CONFIG_VIDEO_STK1160_AC97=y
-CONFIG_VIDEO_STK1160=m
-CONFIG_VIDEO_GO7007=m
-CONFIG_VIDEO_GO7007_USB=m
-CONFIG_VIDEO_GO7007_LOADER=m
-CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m
-
-#
-# Analog/digital TV USB devices
-#
-CONFIG_VIDEO_AU0828=m
-CONFIG_VIDEO_AU0828_V4L2=y
-# CONFIG_VIDEO_AU0828_RC is not set
-CONFIG_VIDEO_CX231XX=m
-CONFIG_VIDEO_CX231XX_RC=y
-CONFIG_VIDEO_CX231XX_ALSA=m
-CONFIG_VIDEO_CX231XX_DVB=m
-CONFIG_VIDEO_TM6000=m
-CONFIG_VIDEO_TM6000_ALSA=m
-CONFIG_VIDEO_TM6000_DVB=m
-
-#
-# Digital TV USB devices
-#
-CONFIG_DVB_USB=m
-# CONFIG_DVB_USB_DEBUG is not set
-CONFIG_DVB_USB_A800=m
-CONFIG_DVB_USB_DIBUSB_MB=m
-# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set
-CONFIG_DVB_USB_DIBUSB_MC=m
-CONFIG_DVB_USB_DIB0700=m
-CONFIG_DVB_USB_UMT_010=m
-CONFIG_DVB_USB_CXUSB=m
-CONFIG_DVB_USB_M920X=m
-CONFIG_DVB_USB_DIGITV=m
-CONFIG_DVB_USB_VP7045=m
-CONFIG_DVB_USB_VP702X=m
-CONFIG_DVB_USB_GP8PSK=m
-CONFIG_DVB_USB_NOVA_T_USB2=m
-CONFIG_DVB_USB_TTUSB2=m
-CONFIG_DVB_USB_DTT200U=m
-CONFIG_DVB_USB_OPERA1=m
-CONFIG_DVB_USB_AF9005=m
-CONFIG_DVB_USB_AF9005_REMOTE=m
-CONFIG_DVB_USB_PCTV452E=m
-CONFIG_DVB_USB_DW2102=m
-CONFIG_DVB_USB_CINERGY_T2=m
-CONFIG_DVB_USB_DTV5100=m
-CONFIG_DVB_USB_FRIIO=m
-CONFIG_DVB_USB_AZ6027=m
-CONFIG_DVB_USB_TECHNISAT_USB2=m
-CONFIG_DVB_USB_V2=m
-CONFIG_DVB_USB_AF9015=m
-CONFIG_DVB_USB_AF9035=m
-CONFIG_DVB_USB_ANYSEE=m
-CONFIG_DVB_USB_AU6610=m
-CONFIG_DVB_USB_AZ6007=m
-CONFIG_DVB_USB_CE6230=m
-CONFIG_DVB_USB_EC168=m
-CONFIG_DVB_USB_GL861=m
-CONFIG_DVB_USB_LME2510=m
-CONFIG_DVB_USB_MXL111SF=m
-CONFIG_DVB_USB_RTL28XXU=m
-# CONFIG_DVB_USB_DVBSKY is not set
-CONFIG_DVB_TTUSB_BUDGET=m
-CONFIG_DVB_TTUSB_DEC=m
-CONFIG_SMS_USB_DRV=m
-CONFIG_DVB_B2C2_FLEXCOP_USB=m
-# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set
-CONFIG_DVB_AS102=m
-
-#
-# Webcam, TV (analog/digital) USB devices
-#
-CONFIG_VIDEO_EM28XX=m
-CONFIG_VIDEO_EM28XX_V4L2=m
-CONFIG_VIDEO_EM28XX_ALSA=m
-CONFIG_VIDEO_EM28XX_DVB=m
-CONFIG_VIDEO_EM28XX_RC=m
-CONFIG_MEDIA_PCI_SUPPORT=y
-
-#
-# Media capture support
-#
-
-#
-# Media capture/analog TV support
-#
-CONFIG_VIDEO_IVTV=m
-CONFIG_VIDEO_IVTV_ALSA=m
-CONFIG_VIDEO_FB_IVTV=m
-CONFIG_VIDEO_HEXIUM_GEMINI=m
-CONFIG_VIDEO_HEXIUM_ORION=m
-CONFIG_VIDEO_MXB=m
-# CONFIG_VIDEO_SOLO6X10 is not set
-# CONFIG_VIDEO_TW68 is not set
-CONFIG_VIDEO_DT3155=m
-
-#
-# Media capture/analog/hybrid TV support
-#
-CONFIG_VIDEO_CX18=m
-CONFIG_VIDEO_CX18_ALSA=m
-CONFIG_VIDEO_CX23885=m
-CONFIG_MEDIA_ALTERA_CI=m
-CONFIG_VIDEO_CX25821=m
-CONFIG_VIDEO_CX25821_ALSA=m
-CONFIG_VIDEO_CX88=m
-CONFIG_VIDEO_CX88_ALSA=m
-CONFIG_VIDEO_CX88_BLACKBIRD=m
-CONFIG_VIDEO_CX88_DVB=m
-CONFIG_VIDEO_CX88_ENABLE_VP3054=y
-CONFIG_VIDEO_CX88_VP3054=m
-CONFIG_VIDEO_CX88_MPEG=m
-CONFIG_VIDEO_BT848=m
-CONFIG_DVB_BT8XX=m
-CONFIG_VIDEO_SAA7134=m
-CONFIG_VIDEO_SAA7134_ALSA=m
-CONFIG_VIDEO_SAA7134_RC=y
-CONFIG_VIDEO_SAA7134_DVB=m
-# CONFIG_VIDEO_SAA7134_GO7007 is not set
-CONFIG_VIDEO_SAA7164=m
-# CONFIG_VIDEO_COBALT is not set
-
-#
-# Media digital TV PCI Adapters
-#
-CONFIG_DVB_AV7110_IR=y
-CONFIG_DVB_AV7110=m
-CONFIG_DVB_AV7110_OSD=y
-CONFIG_DVB_BUDGET_CORE=m
-CONFIG_DVB_BUDGET=m
-CONFIG_DVB_BUDGET_CI=m
-CONFIG_DVB_BUDGET_AV=m
-CONFIG_DVB_BUDGET_PATCH=m
-CONFIG_DVB_B2C2_FLEXCOP_PCI=m
-# CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG is not set
-CONFIG_DVB_PLUTO2=m
-CONFIG_DVB_DM1105=m
-CONFIG_DVB_PT1=m
-# CONFIG_DVB_PT3 is not set
-CONFIG_MANTIS_CORE=m
-CONFIG_DVB_MANTIS=m
-CONFIG_DVB_HOPPER=m
-CONFIG_DVB_NGENE=m
-CONFIG_DVB_DDBRIDGE=m
-# CONFIG_DVB_SMIPCIE is not set
-CONFIG_V4L_PLATFORM_DRIVERS=y
-CONFIG_VIDEO_CAFE_CCIC=m
-CONFIG_SOC_CAMERA=m
-CONFIG_SOC_CAMERA_PLATFORM=m
-# CONFIG_VIDEO_XILINX is not set
-CONFIG_V4L_MEM2MEM_DRIVERS=y
-CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m
-CONFIG_VIDEO_SH_VEU=m
-CONFIG_V4L_TEST_DRIVERS=y
-# CONFIG_VIDEO_VIVID is not set
-# CONFIG_VIDEO_VIM2M is not set
-
-#
-# Supported MMC/SDIO adapters
-#
-CONFIG_SMS_SDIO_DRV=m
-CONFIG_RADIO_ADAPTERS=y
-CONFIG_RADIO_TEA575X=m
-CONFIG_RADIO_SI470X=y
-CONFIG_USB_SI470X=m
-CONFIG_I2C_SI470X=m
-CONFIG_RADIO_SI4713=m
-CONFIG_USB_SI4713=m
-CONFIG_PLATFORM_SI4713=m
-CONFIG_I2C_SI4713=m
-CONFIG_RADIO_SI476X=m
-CONFIG_USB_MR800=m
-CONFIG_USB_DSBR=m
-CONFIG_RADIO_MAXIRADIO=m
-CONFIG_RADIO_SHARK=m
-CONFIG_RADIO_SHARK2=m
-CONFIG_USB_KEENE=m
-CONFIG_USB_RAREMONO=m
-CONFIG_USB_MA901=m
-CONFIG_RADIO_TEA5764=m
-CONFIG_RADIO_SAA7706H=m
-CONFIG_RADIO_TEF6862=m
-CONFIG_RADIO_WL1273=m
-
-#
-# Texas Instruments WL128x FM driver (ST based)
-#
-CONFIG_RADIO_WL128X=m
-
-#
-# Supported FireWire (IEEE 1394) Adapters
-#
-CONFIG_DVB_FIREDTV=m
-CONFIG_DVB_FIREDTV_INPUT=y
-CONFIG_MEDIA_COMMON_OPTIONS=y
-
-#
-# common driver options
-#
-CONFIG_VIDEO_CX2341X=m
-CONFIG_VIDEO_TVEEPROM=m
-CONFIG_CYPRESS_FIRMWARE=m
-CONFIG_DVB_B2C2_FLEXCOP=m
-CONFIG_VIDEO_SAA7146=m
-CONFIG_VIDEO_SAA7146_VV=m
-CONFIG_SMS_SIANO_MDTV=m
-CONFIG_SMS_SIANO_RC=y
-# CONFIG_SMS_SIANO_DEBUGFS is not set
-
-#
-# Media ancillary drivers (tuners, sensors, i2c, frontends)
-#
-CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
-CONFIG_MEDIA_ATTACH=y
-CONFIG_VIDEO_IR_I2C=m
-
-#
-# Audio decoders, processors and mixers
-#
-CONFIG_VIDEO_TVAUDIO=m
-CONFIG_VIDEO_TDA7432=m
-CONFIG_VIDEO_TDA9840=m
-CONFIG_VIDEO_TEA6415C=m
-CONFIG_VIDEO_TEA6420=m
-CONFIG_VIDEO_MSP3400=m
-CONFIG_VIDEO_CS5345=m
-CONFIG_VIDEO_CS53L32A=m
-CONFIG_VIDEO_UDA1342=m
-CONFIG_VIDEO_WM8775=m
-CONFIG_VIDEO_WM8739=m
-CONFIG_VIDEO_VP27SMPX=m
-CONFIG_VIDEO_SONY_BTF_MPX=m
-
-#
-# RDS decoders
-#
-CONFIG_VIDEO_SAA6588=m
-
-#
-# Video decoders
-#
-CONFIG_VIDEO_SAA711X=m
-CONFIG_VIDEO_TVP5150=m
-CONFIG_VIDEO_TW2804=m
-CONFIG_VIDEO_TW9903=m
-CONFIG_VIDEO_TW9906=m
-
-#
-# Video and audio decoders
-#
-CONFIG_VIDEO_SAA717X=m
-CONFIG_VIDEO_CX25840=m
-
-#
-# Video encoders
-#
-CONFIG_VIDEO_SAA7127=m
-
-#
-# Camera sensor devices
-#
-CONFIG_VIDEO_OV7640=m
-CONFIG_VIDEO_OV7670=m
-CONFIG_VIDEO_MT9V011=m
-
-#
-# Flash devices
-#
-
-#
-# Video improvement chips
-#
-CONFIG_VIDEO_UPD64031A=m
-CONFIG_VIDEO_UPD64083=m
-
-#
-# Audio/Video compression chips
-#
-CONFIG_VIDEO_SAA6752HS=m
-
-#
-# Miscellaneous helper chips
-#
-CONFIG_VIDEO_M52790=m
-
-#
-# Sensors used on soc_camera driver
-#
-
-#
-# soc_camera sensor drivers
-#
-CONFIG_SOC_CAMERA_IMX074=m
-CONFIG_SOC_CAMERA_MT9M001=m
-CONFIG_SOC_CAMERA_MT9M111=m
-CONFIG_SOC_CAMERA_MT9T031=m
-CONFIG_SOC_CAMERA_MT9T112=m
-CONFIG_SOC_CAMERA_MT9V022=m
-CONFIG_SOC_CAMERA_OV2640=m
-CONFIG_SOC_CAMERA_OV5642=m
-CONFIG_SOC_CAMERA_OV6650=m
-CONFIG_SOC_CAMERA_OV772X=m
-CONFIG_SOC_CAMERA_OV9640=m
-CONFIG_SOC_CAMERA_OV9740=m
-CONFIG_SOC_CAMERA_RJ54N1=m
-CONFIG_SOC_CAMERA_TW9910=m
-CONFIG_MEDIA_TUNER=m
-CONFIG_MEDIA_TUNER_SIMPLE=m
-CONFIG_MEDIA_TUNER_TDA8290=m
-CONFIG_MEDIA_TUNER_TDA827X=m
-CONFIG_MEDIA_TUNER_TDA18271=m
-CONFIG_MEDIA_TUNER_TDA9887=m
-CONFIG_MEDIA_TUNER_TEA5761=m
-CONFIG_MEDIA_TUNER_TEA5767=m
-CONFIG_MEDIA_TUNER_MT20XX=m
-CONFIG_MEDIA_TUNER_MT2060=m
-CONFIG_MEDIA_TUNER_MT2063=m
-CONFIG_MEDIA_TUNER_MT2266=m
-CONFIG_MEDIA_TUNER_MT2131=m
-CONFIG_MEDIA_TUNER_QT1010=m
-CONFIG_MEDIA_TUNER_XC2028=m
-CONFIG_MEDIA_TUNER_XC5000=m
-CONFIG_MEDIA_TUNER_XC4000=m
-CONFIG_MEDIA_TUNER_MXL5005S=m
-CONFIG_MEDIA_TUNER_MXL5007T=m
-CONFIG_MEDIA_TUNER_MC44S803=m
-CONFIG_MEDIA_TUNER_MAX2165=m
-CONFIG_MEDIA_TUNER_TDA18218=m
-CONFIG_MEDIA_TUNER_FC0011=m
-CONFIG_MEDIA_TUNER_FC0012=m
-CONFIG_MEDIA_TUNER_FC0013=m
-CONFIG_MEDIA_TUNER_TDA18212=m
-CONFIG_MEDIA_TUNER_E4000=m
-CONFIG_MEDIA_TUNER_FC2580=m
-CONFIG_MEDIA_TUNER_M88RS6000T=m
-CONFIG_MEDIA_TUNER_TUA9001=m
-CONFIG_MEDIA_TUNER_SI2157=m
-CONFIG_MEDIA_TUNER_IT913X=m
-CONFIG_MEDIA_TUNER_R820T=m
-
-#
-# Multistandard (satellite) frontends
-#
-CONFIG_DVB_STB0899=m
-CONFIG_DVB_STB6100=m
-CONFIG_DVB_STV090x=m
-CONFIG_DVB_STV6110x=m
-CONFIG_DVB_M88DS3103=m
-
-#
-# Multistandard (cable + terrestrial) frontends
-#
-CONFIG_DVB_DRXK=m
-CONFIG_DVB_TDA18271C2DD=m
-CONFIG_DVB_SI2165=m
-
-#
-# DVB-S (satellite) frontends
-#
-CONFIG_DVB_CX24110=m
-CONFIG_DVB_CX24123=m
-CONFIG_DVB_MT312=m
-CONFIG_DVB_ZL10036=m
-CONFIG_DVB_ZL10039=m
-CONFIG_DVB_S5H1420=m
-CONFIG_DVB_STV0288=m
-CONFIG_DVB_STB6000=m
-CONFIG_DVB_STV0299=m
-CONFIG_DVB_STV6110=m
-CONFIG_DVB_STV0900=m
-CONFIG_DVB_TDA8083=m
-CONFIG_DVB_TDA10086=m
-CONFIG_DVB_TDA8261=m
-CONFIG_DVB_VES1X93=m
-CONFIG_DVB_TUNER_ITD1000=m
-CONFIG_DVB_TUNER_CX24113=m
-CONFIG_DVB_TDA826X=m
-CONFIG_DVB_TUA6100=m
-CONFIG_DVB_CX24116=m
-CONFIG_DVB_CX24117=m
-CONFIG_DVB_CX24120=m
-CONFIG_DVB_SI21XX=m
-CONFIG_DVB_TS2020=m
-CONFIG_DVB_DS3000=m
-CONFIG_DVB_MB86A16=m
-CONFIG_DVB_TDA10071=m
-
-#
-# DVB-T (terrestrial) frontends
-#
-CONFIG_DVB_SP8870=m
-CONFIG_DVB_SP887X=m
-CONFIG_DVB_CX22700=m
-CONFIG_DVB_CX22702=m
-CONFIG_DVB_DRXD=m
-CONFIG_DVB_L64781=m
-CONFIG_DVB_TDA1004X=m
-CONFIG_DVB_NXT6000=m
-CONFIG_DVB_MT352=m
-CONFIG_DVB_ZL10353=m
-CONFIG_DVB_DIB3000MB=m
-CONFIG_DVB_DIB3000MC=m
-CONFIG_DVB_DIB7000M=m
-CONFIG_DVB_DIB7000P=m
-CONFIG_DVB_TDA10048=m
-CONFIG_DVB_AF9013=m
-CONFIG_DVB_EC100=m
-CONFIG_DVB_STV0367=m
-CONFIG_DVB_CXD2820R=m
-CONFIG_DVB_RTL2830=m
-CONFIG_DVB_RTL2832=m
-CONFIG_DVB_SI2168=m
-CONFIG_DVB_AS102_FE=m
-
-#
-# DVB-C (cable) frontends
-#
-CONFIG_DVB_VES1820=m
-CONFIG_DVB_TDA10021=m
-CONFIG_DVB_TDA10023=m
-CONFIG_DVB_STV0297=m
-
-#
-# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
-#
-CONFIG_DVB_NXT200X=m
-CONFIG_DVB_OR51211=m
-CONFIG_DVB_OR51132=m
-CONFIG_DVB_BCM3510=m
-CONFIG_DVB_LGDT330X=m
-CONFIG_DVB_LGDT3305=m
-CONFIG_DVB_LGDT3306A=m
-CONFIG_DVB_LG2160=m
-CONFIG_DVB_S5H1409=m
-CONFIG_DVB_AU8522=m
-CONFIG_DVB_AU8522_DTV=m
-CONFIG_DVB_AU8522_V4L=m
-CONFIG_DVB_S5H1411=m
-
-#
-# ISDB-T (terrestrial) frontends
-#
-CONFIG_DVB_S921=m
-CONFIG_DVB_DIB8000=m
-CONFIG_DVB_MB86A20S=m
-
-#
-# ISDB-S (satellite) & ISDB-T (terrestrial) frontends
-#
-
-#
-# Digital terrestrial only tuners/PLL
-#
-CONFIG_DVB_PLL=m
-CONFIG_DVB_TUNER_DIB0070=m
-CONFIG_DVB_TUNER_DIB0090=m
-
-#
-# SEC control devices for DVB-S
-#
-CONFIG_DVB_DRX39XYJ=m
-CONFIG_DVB_LNBP21=m
-CONFIG_DVB_LNBP22=m
-CONFIG_DVB_ISL6405=m
-CONFIG_DVB_ISL6421=m
-CONFIG_DVB_ISL6423=m
-CONFIG_DVB_A8293=m
-CONFIG_DVB_LGS8GXX=m
-CONFIG_DVB_ATBM8830=m
-CONFIG_DVB_TDA665x=m
-CONFIG_DVB_IX2505V=m
-CONFIG_DVB_M88RS2000=m
-CONFIG_DVB_AF9033=m
-
-#
-# Tools to develop new frontends
-#
-# CONFIG_DVB_DUMMY_FE is not set
-
-#
-# Graphics support
-#
-CONFIG_AGP=y
-CONFIG_VGA_ARB=y
-CONFIG_VGA_ARB_MAX_GPUS=16
-
-#
-# Direct Rendering Manager
-#
-CONFIG_DRM=m
-CONFIG_DRM_KMS_HELPER=m
-CONFIG_DRM_KMS_FB_HELPER=y
-CONFIG_DRM_LOAD_EDID_FIRMWARE=y
-CONFIG_DRM_TTM=m
-
-#
-# I2C encoder or helper chips
-#
-# CONFIG_DRM_I2C_ADV7511 is not set
-CONFIG_DRM_I2C_CH7006=m
-CONFIG_DRM_I2C_SIL164=m
-CONFIG_DRM_I2C_NXP_TDA998X=m
-CONFIG_DRM_PTN3460=m
-# CONFIG_DRM_PS8622 is not set
-CONFIG_DRM_TDFX=m
-CONFIG_DRM_R128=m
-CONFIG_DRM_RADEON=m
-# CONFIG_DRM_RADEON_USERPTR is not set
-# CONFIG_DRM_RADEON_UMS is not set
-# CONFIG_DRM_AMDGPU is not set
-CONFIG_DRM_NOUVEAU=m
-CONFIG_NOUVEAU_DEBUG=5
-CONFIG_NOUVEAU_DEBUG_DEFAULT=3
-CONFIG_DRM_NOUVEAU_BACKLIGHT=y
-CONFIG_DRM_MGA=m
-CONFIG_DRM_SIS=m
-CONFIG_DRM_VIA=m
-CONFIG_DRM_SAVAGE=m
-# CONFIG_DRM_VGEM is not set
-CONFIG_DRM_VMWGFX=m
-CONFIG_DRM_VMWGFX_FBCON=y
-CONFIG_DRM_UDL=m
-CONFIG_DRM_AST=m
-# CONFIG_DRM_MGAG200 is not set
-CONFIG_DRM_CIRRUS_QEMU=m
-CONFIG_DRM_QXL=m
-# CONFIG_DRM_BOCHS is not set
-# CONFIG_DRM_VIRTIO_GPU is not set
-CONFIG_DRM_PANEL=y
-
-#
-# Display Panels
-#
-# CONFIG_DRM_PANEL_SIMPLE is not set
-# CONFIG_DRM_PANEL_LD9040 is not set
-# CONFIG_DRM_PANEL_S6E8AA0 is not set
-
-#
-# Frame buffer Devices
-#
-CONFIG_FB=y
-CONFIG_FIRMWARE_EDID=y
-CONFIG_FB_CMDLINE=y
-CONFIG_FB_DDC=m
-# CONFIG_FB_BOOT_VESA_SUPPORT is not set
-CONFIG_FB_CFB_FILLRECT=y
-CONFIG_FB_CFB_COPYAREA=y
-CONFIG_FB_CFB_IMAGEBLIT=y
-# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
-CONFIG_FB_SYS_FILLRECT=m
-CONFIG_FB_SYS_COPYAREA=m
-CONFIG_FB_SYS_IMAGEBLIT=m
-# CONFIG_FB_FOREIGN_ENDIAN is not set
-CONFIG_FB_SYS_FOPS=m
-CONFIG_FB_DEFERRED_IO=y
-CONFIG_FB_SVGALIB=m
-CONFIG_FB_MACMODES=y
-CONFIG_FB_BACKLIGHT=y
-CONFIG_FB_MODE_HELPERS=y
-CONFIG_FB_TILEBLITTING=y
-
-#
-# Frame buffer hardware drivers
-#
-CONFIG_FB_CIRRUS=m
-CONFIG_FB_PM2=m
-CONFIG_FB_PM2_FIFO_DISCONNECT=y
-CONFIG_FB_CYBER2000=m
-CONFIG_FB_CYBER2000_DDC=y
-CONFIG_FB_OF=y
-CONFIG_FB_ASILIANT=y
-CONFIG_FB_IMSTT=y
-CONFIG_FB_VGA16=m
-CONFIG_FB_UVESA=m
-CONFIG_FB_OPENCORES=m
-CONFIG_FB_S1D13XXX=m
-CONFIG_FB_NVIDIA=m
-CONFIG_FB_NVIDIA_I2C=y
-# CONFIG_FB_NVIDIA_DEBUG is not set
-CONFIG_FB_NVIDIA_BACKLIGHT=y
-CONFIG_FB_RIVA=m
-CONFIG_FB_RIVA_I2C=y
-# CONFIG_FB_RIVA_DEBUG is not set
-CONFIG_FB_RIVA_BACKLIGHT=y
-CONFIG_FB_I740=m
-CONFIG_FB_MATROX=m
-CONFIG_FB_MATROX_MILLENIUM=y
-CONFIG_FB_MATROX_MYSTIQUE=y
-CONFIG_FB_MATROX_G=y
-CONFIG_FB_MATROX_I2C=m
-CONFIG_FB_MATROX_MAVEN=m
-CONFIG_FB_RADEON=m
-CONFIG_FB_RADEON_I2C=y
-CONFIG_FB_RADEON_BACKLIGHT=y
-# CONFIG_FB_RADEON_DEBUG is not set
-CONFIG_FB_ATY128=m
-CONFIG_FB_ATY128_BACKLIGHT=y
-CONFIG_FB_ATY=m
-CONFIG_FB_ATY_CT=y
-# CONFIG_FB_ATY_GENERIC_LCD is not set
-CONFIG_FB_ATY_GX=y
-CONFIG_FB_ATY_BACKLIGHT=y
-CONFIG_FB_S3=m
-CONFIG_FB_S3_DDC=y
-CONFIG_FB_SAVAGE=m
-CONFIG_FB_SAVAGE_I2C=y
-# CONFIG_FB_SAVAGE_ACCEL is not set
-CONFIG_FB_SIS=m
-CONFIG_FB_SIS_300=y
-CONFIG_FB_SIS_315=y
-CONFIG_FB_NEOMAGIC=m
-CONFIG_FB_KYRO=m
-CONFIG_FB_3DFX=m
-# CONFIG_FB_3DFX_ACCEL is not set
-# CONFIG_FB_3DFX_I2C is not set
-CONFIG_FB_VOODOO1=m
-CONFIG_FB_VT8623=m
-CONFIG_FB_TRIDENT=m
-CONFIG_FB_ARK=m
-CONFIG_FB_PM3=m
-CONFIG_FB_CARMINE=m
-CONFIG_FB_CARMINE_DRAM_EVAL=y
-# CONFIG_CARMINE_DRAM_CUSTOM is not set
-CONFIG_FB_SM501=m
-CONFIG_FB_SMSCUFX=m
-CONFIG_FB_UDL=m
-CONFIG_FB_IBM_GXT4500=y
-# CONFIG_FB_VIRTUAL is not set
-CONFIG_FB_METRONOME=m
-CONFIG_FB_MB862XX=m
-CONFIG_FB_MB862XX_PCI_GDC=y
-# CONFIG_FB_MB862XX_LIME is not set
-CONFIG_FB_MB862XX_I2C=y
-CONFIG_FB_BROADSHEET=m
-CONFIG_FB_AUO_K190X=m
-CONFIG_FB_AUO_K1900=m
-CONFIG_FB_AUO_K1901=m
-CONFIG_FB_SIMPLE=y
-CONFIG_FB_SSD1307=m
-CONFIG_BACKLIGHT_LCD_SUPPORT=y
-CONFIG_LCD_CLASS_DEVICE=m
-CONFIG_LCD_L4F00242T03=m
-CONFIG_LCD_LMS283GF05=m
-CONFIG_LCD_LTV350QV=m
-CONFIG_LCD_ILI922X=m
-CONFIG_LCD_ILI9320=m
-CONFIG_LCD_TDO24M=m
-CONFIG_LCD_VGG2432A4=m
-CONFIG_LCD_PLATFORM=m
-CONFIG_LCD_S6E63M0=m
-CONFIG_LCD_LD9040=m
-CONFIG_LCD_AMS369FG06=m
-CONFIG_LCD_LMS501KF03=m
-CONFIG_LCD_HX8357=m
-CONFIG_BACKLIGHT_CLASS_DEVICE=y
-CONFIG_BACKLIGHT_GENERIC=m
-CONFIG_BACKLIGHT_LM3533=m
-CONFIG_BACKLIGHT_PWM=m
-CONFIG_BACKLIGHT_DA903X=m
-CONFIG_BACKLIGHT_DA9052=m
-CONFIG_BACKLIGHT_MAX8925=m
-CONFIG_BACKLIGHT_WM831X=m
-CONFIG_BACKLIGHT_ADP5520=m
-CONFIG_BACKLIGHT_ADP8860=m
-CONFIG_BACKLIGHT_ADP8870=m
-CONFIG_BACKLIGHT_88PM860X=m
-CONFIG_BACKLIGHT_PCF50633=m
-CONFIG_BACKLIGHT_AAT2870=m
-CONFIG_BACKLIGHT_LM3630A=m
-CONFIG_BACKLIGHT_LM3639=m
-CONFIG_BACKLIGHT_LP855X=m
-CONFIG_BACKLIGHT_LP8788=m
-CONFIG_BACKLIGHT_PANDORA=m
-CONFIG_BACKLIGHT_TPS65217=m
-CONFIG_BACKLIGHT_AS3711=m
-CONFIG_BACKLIGHT_GPIO=m
-CONFIG_BACKLIGHT_LV5207LP=m
-CONFIG_BACKLIGHT_BD6107=m
-CONFIG_VGASTATE=m
-CONFIG_HDMI=y
-
-#
-# Console display driver support
-#
-CONFIG_VGA_CONSOLE=y
-# CONFIG_VGACON_SOFT_SCROLLBACK is not set
-CONFIG_DUMMY_CONSOLE=y
-CONFIG_DUMMY_CONSOLE_COLUMNS=80
-CONFIG_DUMMY_CONSOLE_ROWS=25
-CONFIG_FRAMEBUFFER_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
-CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
-# CONFIG_LOGO is not set
-CONFIG_SOUND=m
-CONFIG_SOUND_OSS_CORE=y
-CONFIG_SOUND_OSS_CORE_PRECLAIM=y
-CONFIG_SND=m
-CONFIG_SND_TIMER=m
-CONFIG_SND_PCM=m
-CONFIG_SND_DMAENGINE_PCM=m
-CONFIG_SND_HWDEP=m
-CONFIG_SND_RAWMIDI=m
-CONFIG_SND_COMPRESS_OFFLOAD=m
-CONFIG_SND_JACK=y
-CONFIG_SND_SEQUENCER=m
-CONFIG_SND_SEQ_DUMMY=m
-CONFIG_SND_OSSEMUL=y
-CONFIG_SND_MIXER_OSS=m
-# CONFIG_SND_PCM_OSS is not set
-# CONFIG_SND_SEQUENCER_OSS is not set
-CONFIG_SND_HRTIMER=m
-CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
-CONFIG_SND_DYNAMIC_MINORS=y
-CONFIG_SND_MAX_CARDS=32
-CONFIG_SND_SUPPORT_OLD_API=y
-CONFIG_SND_PROC_FS=y
-CONFIG_SND_VERBOSE_PROCFS=y
-# CONFIG_SND_VERBOSE_PRINTK is not set
-# CONFIG_SND_DEBUG is not set
-CONFIG_SND_VMASTER=y
-CONFIG_SND_RAWMIDI_SEQ=m
-CONFIG_SND_OPL3_LIB_SEQ=m
-# CONFIG_SND_OPL4_LIB_SEQ is not set
-# CONFIG_SND_SBAWE_SEQ is not set
-CONFIG_SND_EMU10K1_SEQ=m
-CONFIG_SND_MPU401_UART=m
-CONFIG_SND_OPL3_LIB=m
-CONFIG_SND_VX_LIB=m
-CONFIG_SND_AC97_CODEC=m
-CONFIG_SND_DRIVERS=y
-CONFIG_SND_DUMMY=m
-CONFIG_SND_ALOOP=m
-CONFIG_SND_VIRMIDI=m
-CONFIG_SND_MTPAV=m
-CONFIG_SND_MTS64=m
-CONFIG_SND_SERIAL_U16550=m
-CONFIG_SND_MPU401=m
-CONFIG_SND_PORTMAN2X4=m
-CONFIG_SND_AC97_POWER_SAVE=y
-CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
-CONFIG_SND_SB_COMMON=m
-CONFIG_SND_PCI=y
-CONFIG_SND_AD1889=m
-CONFIG_SND_ALS300=m
-CONFIG_SND_ALS4000=m
-CONFIG_SND_ALI5451=m
-CONFIG_SND_ATIIXP=m
-CONFIG_SND_ATIIXP_MODEM=m
-CONFIG_SND_AU8810=m
-CONFIG_SND_AU8820=m
-CONFIG_SND_AU8830=m
-CONFIG_SND_AW2=m
-CONFIG_SND_AZT3328=m
-CONFIG_SND_BT87X=m
-# CONFIG_SND_BT87X_OVERCLOCK is not set
-CONFIG_SND_CA0106=m
-CONFIG_SND_CMIPCI=m
-CONFIG_SND_OXYGEN_LIB=m
-CONFIG_SND_OXYGEN=m
-CONFIG_SND_CS4281=m
-CONFIG_SND_CS46XX=m
-CONFIG_SND_CS46XX_NEW_DSP=y
-CONFIG_SND_CTXFI=m
-CONFIG_SND_DARLA20=m
-CONFIG_SND_GINA20=m
-CONFIG_SND_LAYLA20=m
-CONFIG_SND_DARLA24=m
-CONFIG_SND_GINA24=m
-CONFIG_SND_LAYLA24=m
-CONFIG_SND_MONA=m
-CONFIG_SND_MIA=m
-CONFIG_SND_ECHO3G=m
-CONFIG_SND_INDIGO=m
-CONFIG_SND_INDIGOIO=m
-CONFIG_SND_INDIGODJ=m
-CONFIG_SND_INDIGOIOX=m
-CONFIG_SND_INDIGODJX=m
-CONFIG_SND_EMU10K1=m
-CONFIG_SND_EMU10K1X=m
-CONFIG_SND_ENS1370=m
-CONFIG_SND_ENS1371=m
-CONFIG_SND_ES1938=m
-CONFIG_SND_ES1968=m
-CONFIG_SND_ES1968_INPUT=y
-CONFIG_SND_ES1968_RADIO=y
-CONFIG_SND_FM801=m
-CONFIG_SND_FM801_TEA575X_BOOL=y
-CONFIG_SND_HDSP=m
-CONFIG_SND_HDSPM=m
-CONFIG_SND_ICE1712=m
-CONFIG_SND_ICE1724=m
-CONFIG_SND_INTEL8X0=m
-CONFIG_SND_INTEL8X0M=m
-CONFIG_SND_KORG1212=m
-CONFIG_SND_LOLA=m
-CONFIG_SND_LX6464ES=m
-CONFIG_SND_MAESTRO3=m
-CONFIG_SND_MAESTRO3_INPUT=y
-CONFIG_SND_MIXART=m
-CONFIG_SND_NM256=m
-CONFIG_SND_PCXHR=m
-CONFIG_SND_RIPTIDE=m
-CONFIG_SND_RME32=m
-CONFIG_SND_RME96=m
-CONFIG_SND_RME9652=m
-CONFIG_SND_SONICVIBES=m
-CONFIG_SND_TRIDENT=m
-CONFIG_SND_VIA82XX=m
-CONFIG_SND_VIA82XX_MODEM=m
-CONFIG_SND_VIRTUOSO=m
-CONFIG_SND_VX222=m
-CONFIG_SND_YMFPCI=m
-
-#
-# HD-Audio
-#
-# CONFIG_SND_HDA_INTEL is not set
-CONFIG_SND_HDA_PREALLOC_SIZE=64
-CONFIG_SND_PPC=y
-CONFIG_SND_SPI=y
-CONFIG_SND_USB=y
-CONFIG_SND_USB_AUDIO=m
-CONFIG_SND_USB_UA101=m
-CONFIG_SND_USB_USX2Y=m
-CONFIG_SND_USB_CAIAQ=m
-CONFIG_SND_USB_CAIAQ_INPUT=y
-CONFIG_SND_USB_6FIRE=m
-CONFIG_SND_USB_HIFACE=m
-CONFIG_SND_BCD2000=m
-# CONFIG_SND_USB_POD is not set
-# CONFIG_SND_USB_PODHD is not set
-# CONFIG_SND_USB_TONEPORT is not set
-# CONFIG_SND_USB_VARIAX is not set
-CONFIG_SND_FIREWIRE=y
-CONFIG_SND_FIREWIRE_LIB=m
-CONFIG_SND_DICE=m
-# CONFIG_SND_OXFW is not set
-CONFIG_SND_ISIGHT=m
-CONFIG_SND_SCS1X=m
-CONFIG_SND_FIREWORKS=m
-CONFIG_SND_BEBOB=m
-CONFIG_SND_SOC=m
-CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
-CONFIG_SND_ATMEL_SOC=m
-
-#
-# SoC Audio for Freescale CPUs
-#
-
-#
-# Common SoC Audio options for Freescale CPUs:
-#
-# CONFIG_SND_SOC_FSL_ASRC is not set
-CONFIG_SND_SOC_FSL_SAI=m
-CONFIG_SND_SOC_FSL_SSI=m
-CONFIG_SND_SOC_FSL_SPDIF=m
-CONFIG_SND_SOC_FSL_ESAI=m
-CONFIG_SND_SOC_IMX_AUDMUX=m
-# CONFIG_SND_SOC_QCOM is not set
-# CONFIG_SND_SOC_XTFPGA_I2S is not set
-CONFIG_SND_SOC_I2C_AND_SPI=m
-
-#
-# CODEC drivers
-#
-# CONFIG_SND_SOC_AC97_CODEC is not set
-CONFIG_SND_SOC_ADAU1701=m
-CONFIG_SND_SOC_AK4104=m
-CONFIG_SND_SOC_AK4554=m
-CONFIG_SND_SOC_AK4642=m
-CONFIG_SND_SOC_AK5386=m
-CONFIG_SND_SOC_ALC5623=m
-# CONFIG_SND_SOC_CS35L32 is not set
-# CONFIG_SND_SOC_CS42L51_I2C is not set
-CONFIG_SND_SOC_CS42L52=m
-CONFIG_SND_SOC_CS42L56=m
-CONFIG_SND_SOC_CS42L73=m
-# CONFIG_SND_SOC_CS4265 is not set
-CONFIG_SND_SOC_CS4270=m
-# CONFIG_SND_SOC_CS4271_I2C is not set
-# CONFIG_SND_SOC_CS4271_SPI is not set
-CONFIG_SND_SOC_CS42XX8=m
-CONFIG_SND_SOC_CS42XX8_I2C=m
-CONFIG_SND_SOC_HDMI_CODEC=m
-# CONFIG_SND_SOC_ES8328 is not set
-CONFIG_SND_SOC_PCM1681=m
-CONFIG_SND_SOC_PCM1792A=m
-CONFIG_SND_SOC_PCM512x=m
-CONFIG_SND_SOC_PCM512x_I2C=m
-CONFIG_SND_SOC_PCM512x_SPI=m
-# CONFIG_SND_SOC_RT5631 is not set
-# CONFIG_SND_SOC_RT5677_SPI is not set
-CONFIG_SND_SOC_SGTL5000=m
-CONFIG_SND_SOC_SI476X=m
-CONFIG_SND_SOC_SIGMADSP=m
-CONFIG_SND_SOC_SIGMADSP_I2C=m
-CONFIG_SND_SOC_SIRF_AUDIO_CODEC=m
-CONFIG_SND_SOC_SPDIF=m
-# CONFIG_SND_SOC_SSM2602_SPI is not set
-# CONFIG_SND_SOC_SSM2602_I2C is not set
-# CONFIG_SND_SOC_SSM4567 is not set
-# CONFIG_SND_SOC_STA32X is not set
-CONFIG_SND_SOC_STA350=m
-# CONFIG_SND_SOC_TAS2552 is not set
-CONFIG_SND_SOC_TAS5086=m
-# CONFIG_SND_SOC_TAS571X is not set
-# CONFIG_SND_SOC_TFA9879 is not set
-# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
-# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
-# CONFIG_SND_SOC_TLV320AIC31XX is not set
-CONFIG_SND_SOC_TLV320AIC3X=m
-# CONFIG_SND_SOC_TS3A227E is not set
-CONFIG_SND_SOC_WM8510=m
-CONFIG_SND_SOC_WM8523=m
-CONFIG_SND_SOC_WM8580=m
-CONFIG_SND_SOC_WM8711=m
-CONFIG_SND_SOC_WM8728=m
-CONFIG_SND_SOC_WM8731=m
-CONFIG_SND_SOC_WM8737=m
-CONFIG_SND_SOC_WM8741=m
-CONFIG_SND_SOC_WM8750=m
-CONFIG_SND_SOC_WM8753=m
-CONFIG_SND_SOC_WM8770=m
-CONFIG_SND_SOC_WM8776=m
-# CONFIG_SND_SOC_WM8804_I2C is not set
-# CONFIG_SND_SOC_WM8804_SPI is not set
-CONFIG_SND_SOC_WM8903=m
-CONFIG_SND_SOC_WM8962=m
-# CONFIG_SND_SOC_WM8978 is not set
-CONFIG_SND_SOC_TPA6130A2=m
-CONFIG_SND_SIMPLE_CARD=m
-# CONFIG_SOUND_PRIME is not set
-CONFIG_AC97_BUS=m
-
-#
-# HID support
-#
-CONFIG_HID=m
-CONFIG_HID_BATTERY_STRENGTH=y
-CONFIG_HIDRAW=y
-CONFIG_UHID=m
-CONFIG_HID_GENERIC=m
-
-#
-# Special HID drivers
-#
-CONFIG_HID_A4TECH=m
-CONFIG_HID_ACRUX=m
-CONFIG_HID_ACRUX_FF=y
-CONFIG_HID_APPLE=m
-CONFIG_HID_APPLEIR=m
-CONFIG_HID_AUREAL=m
-CONFIG_HID_BELKIN=m
-# CONFIG_HID_BETOP_FF is not set
-CONFIG_HID_CHERRY=m
-CONFIG_HID_CHICONY=m
-CONFIG_HID_PRODIKEYS=m
-CONFIG_HID_CP2112=m
-CONFIG_HID_CYPRESS=m
-CONFIG_HID_DRAGONRISE=m
-CONFIG_DRAGONRISE_FF=y
-CONFIG_HID_EMS_FF=m
-CONFIG_HID_ELECOM=m
-CONFIG_HID_ELO=m
-CONFIG_HID_EZKEY=m
-CONFIG_HID_HOLTEK=m
-CONFIG_HOLTEK_FF=y
-# CONFIG_HID_GT683R is not set
-CONFIG_HID_KEYTOUCH=m
-CONFIG_HID_KYE=m
-CONFIG_HID_UCLOGIC=m
-CONFIG_HID_WALTOP=m
-CONFIG_HID_GYRATION=m
-CONFIG_HID_ICADE=m
-CONFIG_HID_TWINHAN=m
-CONFIG_HID_KENSINGTON=m
-CONFIG_HID_LCPOWER=m
-# CONFIG_HID_LENOVO is not set
-CONFIG_HID_LOGITECH=m
-CONFIG_HID_LOGITECH_DJ=m
-CONFIG_HID_LOGITECH_HIDPP=m
-CONFIG_LOGITECH_FF=y
-CONFIG_LOGIRUMBLEPAD2_FF=y
-CONFIG_LOGIG940_FF=y
-CONFIG_LOGIWHEELS_FF=y
-CONFIG_HID_MAGICMOUSE=m
-CONFIG_HID_MICROSOFT=m
-CONFIG_HID_MONTEREY=m
-CONFIG_HID_MULTITOUCH=m
-CONFIG_HID_NTRIG=m
-CONFIG_HID_ORTEK=m
-CONFIG_HID_PANTHERLORD=m
-CONFIG_PANTHERLORD_FF=y
-# CONFIG_HID_PENMOUNT is not set
-CONFIG_HID_PETALYNX=m
-CONFIG_HID_PICOLCD=m
-CONFIG_HID_PICOLCD_FB=y
-CONFIG_HID_PICOLCD_BACKLIGHT=y
-CONFIG_HID_PICOLCD_LCD=y
-CONFIG_HID_PICOLCD_LEDS=y
-CONFIG_HID_PICOLCD_CIR=y
-# CONFIG_HID_PLANTRONICS is not set
-CONFIG_HID_PRIMAX=m
-CONFIG_HID_ROCCAT=m
-CONFIG_HID_SAITEK=m
-CONFIG_HID_SAMSUNG=m
-CONFIG_HID_SONY=m
-CONFIG_SONY_FF=y
-CONFIG_HID_SPEEDLINK=m
-CONFIG_HID_STEELSERIES=m
-CONFIG_HID_SUNPLUS=m
-CONFIG_HID_RMI=m
-CONFIG_HID_GREENASIA=m
-CONFIG_GREENASIA_FF=y
-CONFIG_HID_SMARTJOYPLUS=m
-CONFIG_SMARTJOYPLUS_FF=y
-CONFIG_HID_TIVO=m
-CONFIG_HID_TOPSEED=m
-CONFIG_HID_THINGM=m
-CONFIG_HID_THRUSTMASTER=m
-CONFIG_THRUSTMASTER_FF=y
-CONFIG_HID_WACOM=m
-CONFIG_HID_WIIMOTE=m
-CONFIG_HID_XINMO=m
-CONFIG_HID_ZEROPLUS=m
-CONFIG_ZEROPLUS_FF=y
-CONFIG_HID_ZYDACRON=m
-CONFIG_HID_SENSOR_HUB=m
-# CONFIG_HID_SENSOR_CUSTOM_SENSOR is not set
-
-#
-# USB HID support
-#
-CONFIG_USB_HID=m
-CONFIG_HID_PID=y
-CONFIG_USB_HIDDEV=y
-
-#
-# USB HID Boot Protocol drivers
-#
-CONFIG_USB_KBD=m
-CONFIG_USB_MOUSE=m
-
-#
-# I2C HID support
-#
-CONFIG_I2C_HID=m
-CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-CONFIG_USB_SUPPORT=y
-CONFIG_USB_COMMON=y
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB=y
-CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEFAULT_PERSIST=y
-CONFIG_USB_DYNAMIC_MINORS=y
-CONFIG_USB_OTG=y
-# CONFIG_USB_OTG_WHITELIST is not set
-# CONFIG_USB_OTG_BLACKLIST_HUB is not set
-CONFIG_USB_OTG_FSM=m
-# CONFIG_USB_ULPI_BUS is not set
-CONFIG_USB_MON=m
-CONFIG_USB_WUSB=m
-CONFIG_USB_WUSB_CBAF=m
-# CONFIG_USB_WUSB_CBAF_DEBUG is not set
-
-#
-# USB Host Controller Drivers
-#
-CONFIG_USB_C67X00_HCD=m
-CONFIG_USB_XHCI_HCD=y
-CONFIG_USB_XHCI_PCI=y
-CONFIG_USB_XHCI_PLATFORM=m
-CONFIG_USB_EHCI_HCD=y
-CONFIG_USB_EHCI_ROOT_HUB_TT=y
-CONFIG_USB_EHCI_TT_NEWSCHED=y
-CONFIG_USB_EHCI_PCI=y
-CONFIG_USB_EHCI_HCD_PPC_OF=y
-CONFIG_USB_EHCI_HCD_PLATFORM=m
-CONFIG_USB_OXU210HP_HCD=m
-CONFIG_USB_ISP116X_HCD=m
-CONFIG_USB_ISP1362_HCD=m
-CONFIG_USB_FUSBH200_HCD=m
-CONFIG_USB_FOTG210_HCD=m
-CONFIG_USB_MAX3421_HCD=m
-CONFIG_USB_OHCI_HCD=y
-# CONFIG_USB_OHCI_HCD_PPC_OF_BE is not set
-# CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set
-# CONFIG_USB_OHCI_HCD_PPC_OF is not set
-CONFIG_USB_OHCI_HCD_PCI=y
-CONFIG_USB_OHCI_HCD_PLATFORM=m
-CONFIG_USB_UHCI_HCD=y
-CONFIG_USB_U132_HCD=m
-CONFIG_USB_SL811_HCD=m
-CONFIG_USB_SL811_HCD_ISO=y
-CONFIG_USB_R8A66597_HCD=m
-CONFIG_USB_WHCI_HCD=m
-CONFIG_USB_HWA_HCD=m
-CONFIG_USB_HCD_BCMA=m
-CONFIG_USB_HCD_SSB=m
-# CONFIG_USB_HCD_TEST_MODE is not set
-
-#
-# USB Device Class drivers
-#
-CONFIG_USB_ACM=m
-CONFIG_USB_PRINTER=m
-CONFIG_USB_WDM=m
-CONFIG_USB_TMC=m
-
-#
-# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
-#
-
-#
-# also be needed; see USB_STORAGE Help for more info
-#
-CONFIG_USB_STORAGE=m
-# CONFIG_USB_STORAGE_DEBUG is not set
-CONFIG_USB_STORAGE_REALTEK=m
-CONFIG_REALTEK_AUTOPM=y
-CONFIG_USB_STORAGE_DATAFAB=m
-CONFIG_USB_STORAGE_FREECOM=m
-CONFIG_USB_STORAGE_ISD200=m
-CONFIG_USB_STORAGE_USBAT=m
-CONFIG_USB_STORAGE_SDDR09=m
-CONFIG_USB_STORAGE_SDDR55=m
-CONFIG_USB_STORAGE_JUMPSHOT=m
-CONFIG_USB_STORAGE_ALAUDA=m
-CONFIG_USB_STORAGE_ONETOUCH=m
-CONFIG_USB_STORAGE_KARMA=m
-CONFIG_USB_STORAGE_CYPRESS_ATACB=m
-CONFIG_USB_STORAGE_ENE_UB6250=m
-CONFIG_USB_UAS=m
-
-#
-# USB Imaging devices
-#
-CONFIG_USB_MDC800=m
-CONFIG_USB_MICROTEK=m
-CONFIG_USBIP_CORE=m
-CONFIG_USBIP_VHCI_HCD=m
-CONFIG_USBIP_HOST=m
-# CONFIG_USBIP_DEBUG is not set
-CONFIG_USB_MUSB_HDRC=m
-# CONFIG_USB_MUSB_HOST is not set
-# CONFIG_USB_MUSB_GADGET is not set
-CONFIG_USB_MUSB_DUAL_ROLE=y
-
-#
-# Platform Glue Layer
-#
-CONFIG_MUSB_PIO_ONLY=y
-CONFIG_USB_DWC3=m
-# CONFIG_USB_DWC3_HOST is not set
-# CONFIG_USB_DWC3_GADGET is not set
-CONFIG_USB_DWC3_DUAL_ROLE=y
-
-#
-# Platform Glue Driver Support
-#
-CONFIG_USB_DWC3_PCI=m
-
-#
-# Debugging features
-#
-# CONFIG_USB_DWC3_DEBUG is not set
-CONFIG_USB_DWC2=y
-CONFIG_USB_DWC2_HOST=y
-
-#
-# Gadget/Dual-role mode requires USB Gadget support to be enabled
-#
-CONFIG_USB_DWC2_PCI=y
-# CONFIG_USB_DWC2_DEBUG is not set
-# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set
-CONFIG_USB_CHIPIDEA=m
-CONFIG_USB_CHIPIDEA_OF=m
-CONFIG_USB_CHIPIDEA_PCI=m
-CONFIG_USB_CHIPIDEA_UDC=y
-CONFIG_USB_CHIPIDEA_HOST=y
-# CONFIG_USB_CHIPIDEA_DEBUG is not set
-# CONFIG_USB_ISP1760 is not set
-
-#
-# USB port drivers
-#
-CONFIG_USB_USS720=m
-CONFIG_USB_SERIAL=m
-CONFIG_USB_SERIAL_GENERIC=y
-CONFIG_USB_SERIAL_SIMPLE=m
-CONFIG_USB_SERIAL_AIRCABLE=m
-CONFIG_USB_SERIAL_ARK3116=m
-CONFIG_USB_SERIAL_BELKIN=m
-CONFIG_USB_SERIAL_CH341=m
-CONFIG_USB_SERIAL_WHITEHEAT=m
-CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
-CONFIG_USB_SERIAL_CP210X=m
-CONFIG_USB_SERIAL_CYPRESS_M8=m
-CONFIG_USB_SERIAL_EMPEG=m
-CONFIG_USB_SERIAL_FTDI_SIO=m
-CONFIG_USB_SERIAL_VISOR=m
-CONFIG_USB_SERIAL_IPAQ=m
-CONFIG_USB_SERIAL_IR=m
-CONFIG_USB_SERIAL_EDGEPORT=m
-CONFIG_USB_SERIAL_EDGEPORT_TI=m
-CONFIG_USB_SERIAL_F81232=m
-CONFIG_USB_SERIAL_GARMIN=m
-CONFIG_USB_SERIAL_IPW=m
-CONFIG_USB_SERIAL_IUU=m
-CONFIG_USB_SERIAL_KEYSPAN_PDA=m
-CONFIG_USB_SERIAL_KEYSPAN=m
-CONFIG_USB_SERIAL_KEYSPAN_MPR=y
-CONFIG_USB_SERIAL_KEYSPAN_USA28=y
-CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
-CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
-CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
-CONFIG_USB_SERIAL_KEYSPAN_USA19=y
-CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
-CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
-CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
-CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
-CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
-CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
-CONFIG_USB_SERIAL_KLSI=m
-CONFIG_USB_SERIAL_KOBIL_SCT=m
-CONFIG_USB_SERIAL_MCT_U232=m
-CONFIG_USB_SERIAL_METRO=m
-CONFIG_USB_SERIAL_MOS7720=m
-CONFIG_USB_SERIAL_MOS7715_PARPORT=y
-CONFIG_USB_SERIAL_MOS7840=m
-CONFIG_USB_SERIAL_MXUPORT=m
-CONFIG_USB_SERIAL_NAVMAN=m
-CONFIG_USB_SERIAL_PL2303=m
-CONFIG_USB_SERIAL_OTI6858=m
-CONFIG_USB_SERIAL_QCAUX=m
-CONFIG_USB_SERIAL_QUALCOMM=m
-CONFIG_USB_SERIAL_SPCP8X5=m
-CONFIG_USB_SERIAL_SAFE=m
-# CONFIG_USB_SERIAL_SAFE_PADDED is not set
-CONFIG_USB_SERIAL_SIERRAWIRELESS=m
-CONFIG_USB_SERIAL_SYMBOL=m
-CONFIG_USB_SERIAL_TI=m
-CONFIG_USB_SERIAL_CYBERJACK=m
-CONFIG_USB_SERIAL_XIRCOM=m
-CONFIG_USB_SERIAL_WWAN=m
-CONFIG_USB_SERIAL_OPTION=m
-CONFIG_USB_SERIAL_OMNINET=m
-CONFIG_USB_SERIAL_OPTICON=m
-CONFIG_USB_SERIAL_XSENS_MT=m
-CONFIG_USB_SERIAL_WISHBONE=m
-CONFIG_USB_SERIAL_SSU100=m
-CONFIG_USB_SERIAL_QT2=m
-CONFIG_USB_SERIAL_DEBUG=m
-
-#
-# USB Miscellaneous drivers
-#
-CONFIG_USB_EMI62=m
-CONFIG_USB_EMI26=m
-CONFIG_USB_ADUTUX=m
-CONFIG_USB_SEVSEG=m
-CONFIG_USB_RIO500=m
-CONFIG_USB_LEGOTOWER=m
-CONFIG_USB_LCD=m
-CONFIG_USB_LED=m
-CONFIG_USB_CYPRESS_CY7C63=m
-CONFIG_USB_CYTHERM=m
-CONFIG_USB_IDMOUSE=m
-CONFIG_USB_FTDI_ELAN=m
-CONFIG_USB_APPLEDISPLAY=m
-CONFIG_USB_SISUSBVGA=m
-# CONFIG_USB_SISUSBVGA_CON is not set
-CONFIG_USB_LD=m
-CONFIG_USB_TRANCEVIBRATOR=m
-CONFIG_USB_IOWARRIOR=m
-CONFIG_USB_TEST=m
-CONFIG_USB_EHSET_TEST_FIXTURE=m
-CONFIG_USB_ISIGHTFW=m
-CONFIG_USB_YUREX=m
-CONFIG_USB_EZUSB_FX2=m
-CONFIG_USB_HSIC_USB3503=m
-# CONFIG_USB_LINK_LAYER_TEST is not set
-# CONFIG_USB_CHAOSKEY is not set
-CONFIG_USB_ATM=m
-CONFIG_USB_SPEEDTOUCH=m
-CONFIG_USB_CXACRU=m
-CONFIG_USB_UEAGLEATM=m
-CONFIG_USB_XUSBATM=m
-
-#
-# USB Physical Layer drivers
-#
-CONFIG_USB_PHY=y
-CONFIG_NOP_USB_XCEIV=y
-CONFIG_USB_GPIO_VBUS=m
-CONFIG_TAHVO_USB=m
-CONFIG_TAHVO_USB_HOST_BY_DEFAULT=y
-CONFIG_USB_ISP1301=m
-CONFIG_USB_GADGET=m
-# CONFIG_USB_GADGET_DEBUG is not set
-# CONFIG_USB_GADGET_DEBUG_FILES is not set
-# CONFIG_USB_GADGET_DEBUG_FS is not set
-CONFIG_USB_GADGET_VBUS_DRAW=2
-CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
-
-#
-# USB Peripheral Controller
-#
-CONFIG_USB_FOTG210_UDC=m
-CONFIG_USB_GR_UDC=m
-CONFIG_USB_R8A66597=m
-CONFIG_USB_PXA27X=m
-CONFIG_USB_MV_UDC=m
-CONFIG_USB_MV_U3D=m
-# CONFIG_USB_M66592 is not set
-# CONFIG_USB_BDC_UDC is not set
-CONFIG_USB_AMD5536UDC=m
-CONFIG_USB_NET2272=m
-CONFIG_USB_NET2272_DMA=y
-CONFIG_USB_NET2280=m
-CONFIG_USB_GOKU=m
-CONFIG_USB_EG20T=m
-# CONFIG_USB_GADGET_XILINX is not set
-# CONFIG_USB_DUMMY_HCD is not set
-CONFIG_USB_LIBCOMPOSITE=m
-CONFIG_USB_F_ACM=m
-CONFIG_USB_F_SS_LB=m
-CONFIG_USB_U_SERIAL=m
-CONFIG_USB_U_ETHER=m
-CONFIG_USB_F_SERIAL=m
-CONFIG_USB_F_OBEX=m
-CONFIG_USB_F_NCM=m
-CONFIG_USB_F_ECM=m
-CONFIG_USB_F_PHONET=m
-CONFIG_USB_F_EEM=m
-CONFIG_USB_F_SUBSET=m
-CONFIG_USB_F_RNDIS=m
-CONFIG_USB_F_MASS_STORAGE=m
-CONFIG_USB_F_FS=m
-CONFIG_USB_F_UAC1=m
-CONFIG_USB_F_UVC=m
-CONFIG_USB_F_MIDI=m
-CONFIG_USB_F_HID=m
-CONFIG_USB_F_PRINTER=m
-CONFIG_USB_CONFIGFS=m
-CONFIG_USB_CONFIGFS_SERIAL=y
-CONFIG_USB_CONFIGFS_ACM=y
-CONFIG_USB_CONFIGFS_OBEX=y
-CONFIG_USB_CONFIGFS_NCM=y
-CONFIG_USB_CONFIGFS_ECM=y
-CONFIG_USB_CONFIGFS_ECM_SUBSET=y
-CONFIG_USB_CONFIGFS_RNDIS=y
-CONFIG_USB_CONFIGFS_EEM=y
-CONFIG_USB_CONFIGFS_PHONET=y
-CONFIG_USB_CONFIGFS_MASS_STORAGE=y
-CONFIG_USB_CONFIGFS_F_LB_SS=y
-CONFIG_USB_CONFIGFS_F_FS=y
-# CONFIG_USB_CONFIGFS_F_UAC1 is not set
-# CONFIG_USB_CONFIGFS_F_UAC2 is not set
-# CONFIG_USB_CONFIGFS_F_MIDI is not set
-# CONFIG_USB_CONFIGFS_F_HID is not set
-# CONFIG_USB_CONFIGFS_F_UVC is not set
-# CONFIG_USB_CONFIGFS_F_PRINTER is not set
-CONFIG_USB_ZERO=m
-CONFIG_USB_ZERO_HNPTEST=y
-CONFIG_USB_AUDIO=m
-CONFIG_GADGET_UAC1=y
-CONFIG_USB_ETH=m
-CONFIG_USB_ETH_RNDIS=y
-CONFIG_USB_ETH_EEM=y
-CONFIG_USB_G_NCM=m
-CONFIG_USB_GADGETFS=m
-CONFIG_USB_FUNCTIONFS=m
-CONFIG_USB_FUNCTIONFS_ETH=y
-CONFIG_USB_FUNCTIONFS_RNDIS=y
-CONFIG_USB_FUNCTIONFS_GENERIC=y
-CONFIG_USB_MASS_STORAGE=m
-CONFIG_USB_GADGET_TARGET=m
-CONFIG_USB_G_SERIAL=m
-CONFIG_USB_MIDI_GADGET=m
-CONFIG_USB_G_PRINTER=m
-CONFIG_USB_CDC_COMPOSITE=m
-CONFIG_USB_G_NOKIA=m
-CONFIG_USB_G_ACM_MS=m
-# CONFIG_USB_G_MULTI is not set
-CONFIG_USB_G_HID=m
-CONFIG_USB_G_DBGP=m
-# CONFIG_USB_G_DBGP_PRINTK is not set
-CONFIG_USB_G_DBGP_SERIAL=y
-CONFIG_USB_G_WEBCAM=m
-# CONFIG_USB_LED_TRIG is not set
-CONFIG_UWB=m
-CONFIG_UWB_HWA=m
-CONFIG_UWB_WHCI=m
-CONFIG_UWB_I1480U=m
-CONFIG_MMC=y
-# CONFIG_MMC_DEBUG is not set
-# CONFIG_MMC_CLKGATE is not set
-
-#
-# MMC/SD/SDIO Card Drivers
-#
-CONFIG_MMC_BLOCK=m
-CONFIG_MMC_BLOCK_MINORS=8
-CONFIG_MMC_BLOCK_BOUNCE=y
-CONFIG_SDIO_UART=m
-# CONFIG_MMC_TEST is not set
-
-#
-# MMC/SD/SDIO Host Controller Drivers
-#
-CONFIG_MMC_SDHCI=m
-CONFIG_MMC_SDHCI_IO_ACCESSORS=y
-CONFIG_MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER=y
-CONFIG_MMC_SDHCI_PCI=m
-CONFIG_MMC_RICOH_MMC=y
-CONFIG_MMC_SDHCI_PLTFM=m
-CONFIG_MMC_SDHCI_OF_ARASAN=m
-CONFIG_MMC_SDHCI_OF_ESDHC=m
-CONFIG_MMC_SDHCI_OF_HLWD=m
-# CONFIG_MMC_SDHCI_F_SDH30 is not set
-CONFIG_MMC_WBSD=m
-CONFIG_MMC_TIFM_SD=m
-CONFIG_MMC_SPI=m
-CONFIG_MMC_CB710=m
-CONFIG_MMC_VIA_SDMMC=m
-CONFIG_MMC_VUB300=m
-CONFIG_MMC_USHC=m
-CONFIG_MMC_USDHI6ROL0=m
-CONFIG_MMC_REALTEK_PCI=m
-CONFIG_MMC_REALTEK_USB=m
-# CONFIG_MMC_TOSHIBA_PCI is not set
-# CONFIG_MMC_MTK is not set
-CONFIG_MEMSTICK=m
-# CONFIG_MEMSTICK_DEBUG is not set
-
-#
-# MemoryStick drivers
-#
-# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
-CONFIG_MSPRO_BLOCK=m
-CONFIG_MS_BLOCK=m
-
-#
-# MemoryStick Host Controller Drivers
-#
-CONFIG_MEMSTICK_TIFM_MS=m
-CONFIG_MEMSTICK_JMICRON_38X=m
-CONFIG_MEMSTICK_R592=m
-CONFIG_MEMSTICK_REALTEK_PCI=m
-CONFIG_MEMSTICK_REALTEK_USB=m
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-# CONFIG_LEDS_CLASS_FLASH is not set
-
-#
-# LED drivers
-#
-CONFIG_LEDS_88PM860X=m
-# CONFIG_LEDS_BCM6328 is not set
-# CONFIG_LEDS_BCM6358 is not set
-CONFIG_LEDS_LM3530=m
-CONFIG_LEDS_LM3533=m
-CONFIG_LEDS_LM3642=m
-CONFIG_LEDS_PCA9532=m
-CONFIG_LEDS_PCA9532_GPIO=y
-CONFIG_LEDS_GPIO=m
-CONFIG_LEDS_LP3944=m
-CONFIG_LEDS_LP55XX_COMMON=m
-CONFIG_LEDS_LP5521=m
-CONFIG_LEDS_LP5523=m
-CONFIG_LEDS_LP5562=m
-CONFIG_LEDS_LP8501=m
-CONFIG_LEDS_LP8788=m
-# CONFIG_LEDS_LP8860 is not set
-CONFIG_LEDS_PCA955X=m
-CONFIG_LEDS_PCA963X=m
-CONFIG_LEDS_WM831X_STATUS=m
-CONFIG_LEDS_WM8350=m
-CONFIG_LEDS_DA903X=m
-CONFIG_LEDS_DA9052=m
-CONFIG_LEDS_DAC124S085=m
-CONFIG_LEDS_PWM=m
-CONFIG_LEDS_REGULATOR=m
-CONFIG_LEDS_BD2802=m
-CONFIG_LEDS_LT3593=m
-CONFIG_LEDS_ADP5520=m
-CONFIG_LEDS_MC13783=m
-CONFIG_LEDS_TCA6507=m
-# CONFIG_LEDS_TLC591XX is not set
-CONFIG_LEDS_MAX8997=m
-CONFIG_LEDS_LM355x=m
-
-#
-# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)
-#
-CONFIG_LEDS_BLINKM=m
-# CONFIG_LEDS_SYSCON is not set
-# CONFIG_LEDS_PM8941_WLED is not set
-
-#
-# LED Triggers
-#
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=m
-CONFIG_LEDS_TRIGGER_ONESHOT=m
-CONFIG_LEDS_TRIGGER_HEARTBEAT=m
-CONFIG_LEDS_TRIGGER_BACKLIGHT=m
-CONFIG_LEDS_TRIGGER_CPU=y
-CONFIG_LEDS_TRIGGER_GPIO=m
-CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
-
-#
-# iptables trigger is under Netfilter config (LED target)
-#
-CONFIG_LEDS_TRIGGER_TRANSIENT=m
-CONFIG_LEDS_TRIGGER_CAMERA=m
-# CONFIG_ACCESSIBILITY is not set
-CONFIG_INFINIBAND=m
-CONFIG_INFINIBAND_USER_MAD=m
-CONFIG_INFINIBAND_USER_ACCESS=m
-CONFIG_INFINIBAND_USER_MEM=y
-CONFIG_INFINIBAND_ON_DEMAND_PAGING=y
-CONFIG_INFINIBAND_ADDR_TRANS=y
-CONFIG_INFINIBAND_MTHCA=m
-# CONFIG_INFINIBAND_MTHCA_DEBUG is not set
-CONFIG_INFINIBAND_QIB=m
-CONFIG_INFINIBAND_EHCA=m
-CONFIG_INFINIBAND_AMSO1100=m
-# CONFIG_INFINIBAND_AMSO1100_DEBUG is not set
-CONFIG_INFINIBAND_CXGB3=m
-# CONFIG_INFINIBAND_CXGB3_DEBUG is not set
-CONFIG_INFINIBAND_CXGB4=m
-CONFIG_MLX4_INFINIBAND=m
-CONFIG_MLX5_INFINIBAND=m
-CONFIG_INFINIBAND_NES=m
-# CONFIG_INFINIBAND_NES_DEBUG is not set
-CONFIG_INFINIBAND_OCRDMA=m
-CONFIG_INFINIBAND_IPOIB=m
-CONFIG_INFINIBAND_IPOIB_CM=y
-# CONFIG_INFINIBAND_IPOIB_DEBUG is not set
-CONFIG_INFINIBAND_SRP=m
-CONFIG_INFINIBAND_SRPT=m
-CONFIG_INFINIBAND_ISER=m
-CONFIG_INFINIBAND_ISERT=m
-CONFIG_EDAC_ATOMIC_SCRUB=y
-CONFIG_EDAC_SUPPORT=y
-CONFIG_EDAC=y
-# CONFIG_EDAC_LEGACY_SYSFS is not set
-# CONFIG_EDAC_DEBUG is not set
-CONFIG_EDAC_MM_EDAC=m
-# CONFIG_EDAC_CELL is not set
-CONFIG_EDAC_CPC925=m
-CONFIG_RTC_LIB=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_HCTOSYS=y
-CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
-CONFIG_RTC_SYSTOHC=y
-CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
-# CONFIG_RTC_DEBUG is not set
-
-#
-# RTC interfaces
-#
-CONFIG_RTC_INTF_SYSFS=y
-CONFIG_RTC_INTF_PROC=y
-CONFIG_RTC_INTF_DEV=y
-# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
-# CONFIG_RTC_DRV_TEST is not set
-
-#
-# I2C RTC drivers
-#
-CONFIG_RTC_DRV_88PM860X=m
-CONFIG_RTC_DRV_88PM80X=m
-# CONFIG_RTC_DRV_ABB5ZES3 is not set
-# CONFIG_RTC_DRV_ABX80X is not set
-CONFIG_RTC_DRV_AS3722=m
-CONFIG_RTC_DRV_DS1307=m
-CONFIG_RTC_DRV_DS1374=m
-# CONFIG_RTC_DRV_DS1374_WDT is not set
-CONFIG_RTC_DRV_DS1672=m
-CONFIG_RTC_DRV_DS3232=m
-CONFIG_RTC_DRV_HYM8563=m
-CONFIG_RTC_DRV_LP8788=m
-CONFIG_RTC_DRV_MAX6900=m
-CONFIG_RTC_DRV_MAX8907=m
-CONFIG_RTC_DRV_MAX8925=m
-CONFIG_RTC_DRV_MAX8998=m
-CONFIG_RTC_DRV_MAX8997=m
-CONFIG_RTC_DRV_MAX77686=m
-# CONFIG_RTC_DRV_MAX77802 is not set
-CONFIG_RTC_DRV_RS5C372=m
-CONFIG_RTC_DRV_ISL1208=m
-CONFIG_RTC_DRV_ISL12022=m
-CONFIG_RTC_DRV_ISL12057=m
-CONFIG_RTC_DRV_X1205=m
-CONFIG_RTC_DRV_PALMAS=m
-CONFIG_RTC_DRV_PCF2127=m
-CONFIG_RTC_DRV_PCF8523=m
-CONFIG_RTC_DRV_PCF8563=m
-# CONFIG_RTC_DRV_PCF85063 is not set
-CONFIG_RTC_DRV_PCF8583=m
-CONFIG_RTC_DRV_M41T80=m
-CONFIG_RTC_DRV_M41T80_WDT=y
-CONFIG_RTC_DRV_BQ32K=m
-CONFIG_RTC_DRV_TWL4030=m
-CONFIG_RTC_DRV_TPS6586X=m
-CONFIG_RTC_DRV_TPS65910=m
-CONFIG_RTC_DRV_TPS80031=m
-CONFIG_RTC_DRV_RC5T583=m
-CONFIG_RTC_DRV_S35390A=m
-CONFIG_RTC_DRV_FM3130=m
-CONFIG_RTC_DRV_RX8581=m
-CONFIG_RTC_DRV_RX8025=m
-CONFIG_RTC_DRV_EM3027=m
-CONFIG_RTC_DRV_RV3029C2=m
-CONFIG_RTC_DRV_S5M=m
-
-#
-# SPI RTC drivers
-#
-CONFIG_RTC_DRV_M41T93=m
-CONFIG_RTC_DRV_M41T94=m
-CONFIG_RTC_DRV_DS1305=m
-CONFIG_RTC_DRV_DS1343=m
-CONFIG_RTC_DRV_DS1347=m
-CONFIG_RTC_DRV_DS1390=m
-CONFIG_RTC_DRV_MAX6902=m
-CONFIG_RTC_DRV_R9701=m
-CONFIG_RTC_DRV_RS5C348=m
-CONFIG_RTC_DRV_DS3234=m
-CONFIG_RTC_DRV_PCF2123=m
-CONFIG_RTC_DRV_RX4581=m
-CONFIG_RTC_DRV_MCP795=m
-
-#
-# Platform RTC drivers
-#
-CONFIG_RTC_DRV_CMOS=m
-CONFIG_RTC_DRV_DS1286=m
-CONFIG_RTC_DRV_DS1511=m
-CONFIG_RTC_DRV_DS1553=m
-# CONFIG_RTC_DRV_DS1685_FAMILY is not set
-CONFIG_RTC_DRV_DS1742=m
-CONFIG_RTC_DRV_DS2404=m
-CONFIG_RTC_DRV_DA9052=m
-CONFIG_RTC_DRV_DA9055=m
-CONFIG_RTC_DRV_DA9063=m
-CONFIG_RTC_DRV_STK17TA8=m
-CONFIG_RTC_DRV_M48T86=m
-CONFIG_RTC_DRV_M48T35=m
-CONFIG_RTC_DRV_M48T59=m
-CONFIG_RTC_DRV_MSM6242=m
-CONFIG_RTC_DRV_BQ4802=m
-CONFIG_RTC_DRV_RP5C01=m
-CONFIG_RTC_DRV_V3020=m
-CONFIG_RTC_DRV_WM831X=m
-CONFIG_RTC_DRV_WM8350=m
-CONFIG_RTC_DRV_PCF50633=m
-CONFIG_RTC_DRV_AB3100=m
-CONFIG_RTC_DRV_OPAL=y
-
-#
-# on-CPU RTC drivers
-#
-CONFIG_RTC_DRV_GENERIC=m
-CONFIG_RTC_DRV_PCAP=m
-CONFIG_RTC_DRV_MC13XXX=m
-CONFIG_RTC_DRV_SNVS=m
-
-#
-# HID Sensor RTC drivers
-#
-CONFIG_RTC_DRV_HID_SENSOR_TIME=m
-CONFIG_DMADEVICES=y
-# CONFIG_DMADEVICES_DEBUG is not set
-
-#
-# DMA Devices
-#
-CONFIG_DW_DMAC_CORE=m
-CONFIG_DW_DMAC=m
-CONFIG_DW_DMAC_PCI=m
-# CONFIG_HSU_DMA_PCI is not set
-CONFIG_FSL_EDMA=m
-CONFIG_DMA_ENGINE=y
-CONFIG_DMA_VIRTUAL_CHANNELS=m
-CONFIG_DMA_OF=y
-
-#
-# DMA Clients
-#
-CONFIG_ASYNC_TX_DMA=y
-# CONFIG_DMATEST is not set
-CONFIG_AUXDISPLAY=y
-CONFIG_KS0108=m
-CONFIG_KS0108_PORT=0x378
-CONFIG_KS0108_DELAY=2
-CONFIG_UIO=m
-CONFIG_UIO_CIF=m
-CONFIG_UIO_PDRV_GENIRQ=m
-CONFIG_UIO_DMEM_GENIRQ=m
-CONFIG_UIO_AEC=m
-CONFIG_UIO_SERCOS3=m
-CONFIG_UIO_PCI_GENERIC=m
-CONFIG_UIO_NETX=m
-# CONFIG_UIO_FSL_ELBC_GPCM is not set
-# CONFIG_UIO_PRUSS is not set
-CONFIG_UIO_MF624=m
-# CONFIG_VFIO_IOMMU_TYPE1 is not set
-CONFIG_VFIO_IOMMU_SPAPR_TCE=m
-CONFIG_VFIO_SPAPR_EEH=m
-CONFIG_VFIO_VIRQFD=m
-CONFIG_VFIO=m
-CONFIG_VFIO_PCI=m
-CONFIG_VFIO_PCI_MMAP=y
-CONFIG_VFIO_PCI_INTX=y
-CONFIG_VIRT_DRIVERS=y
-CONFIG_VIRTIO=y
-
-#
-# Virtio drivers
-#
-CONFIG_VIRTIO_PCI=y
-CONFIG_VIRTIO_PCI_LEGACY=y
-CONFIG_VIRTIO_BALLOON=y
-# CONFIG_VIRTIO_INPUT is not set
-CONFIG_VIRTIO_MMIO=y
-CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
-
-#
-# Microsoft Hyper-V guest support
-#
-CONFIG_STAGING=y
-CONFIG_PRISM2_USB=m
-CONFIG_COMEDI=m
-# CONFIG_COMEDI_DEBUG is not set
-CONFIG_COMEDI_DEFAULT_BUF_SIZE_KB=2048
-CONFIG_COMEDI_DEFAULT_BUF_MAXSIZE_KB=20480
-CONFIG_COMEDI_MISC_DRIVERS=y
-CONFIG_COMEDI_BOND=m
-CONFIG_COMEDI_TEST=m
-CONFIG_COMEDI_PARPORT=m
-CONFIG_COMEDI_SERIAL2002=m
-CONFIG_COMEDI_ISA_DRIVERS=y
-CONFIG_COMEDI_PCL711=m
-CONFIG_COMEDI_PCL724=m
-CONFIG_COMEDI_PCL726=m
-CONFIG_COMEDI_PCL730=m
-# CONFIG_COMEDI_PCL812 is not set
-# CONFIG_COMEDI_PCL816 is not set
-# CONFIG_COMEDI_PCL818 is not set
-CONFIG_COMEDI_PCM3724=m
-CONFIG_COMEDI_AMPLC_DIO200_ISA=m
-CONFIG_COMEDI_AMPLC_PC236_ISA=m
-CONFIG_COMEDI_AMPLC_PC263_ISA=m
-CONFIG_COMEDI_RTI800=m
-CONFIG_COMEDI_RTI802=m
-CONFIG_COMEDI_DAC02=m
-CONFIG_COMEDI_DAS16M1=m
-CONFIG_COMEDI_DAS08_ISA=m
-CONFIG_COMEDI_DAS16=m
-CONFIG_COMEDI_DAS800=m
-# CONFIG_COMEDI_DAS1800 is not set
-CONFIG_COMEDI_DAS6402=m
-CONFIG_COMEDI_DT2801=m
-CONFIG_COMEDI_DT2811=m
-CONFIG_COMEDI_DT2814=m
-CONFIG_COMEDI_DT2815=m
-CONFIG_COMEDI_DT2817=m
-# CONFIG_COMEDI_DT282X is not set
-CONFIG_COMEDI_DMM32AT=m
-CONFIG_COMEDI_UNIOXX5=m
-CONFIG_COMEDI_FL512=m
-CONFIG_COMEDI_AIO_AIO12_8=m
-CONFIG_COMEDI_AIO_IIRO_16=m
-CONFIG_COMEDI_II_PCI20KC=m
-CONFIG_COMEDI_C6XDIGIO=m
-CONFIG_COMEDI_MPC624=m
-CONFIG_COMEDI_ADQ12B=m
-# CONFIG_COMEDI_NI_AT_A2150 is not set
-CONFIG_COMEDI_NI_AT_AO=m
-CONFIG_COMEDI_NI_ATMIO=m
-CONFIG_COMEDI_NI_ATMIO16D=m
-CONFIG_COMEDI_NI_LABPC_ISA=m
-CONFIG_COMEDI_PCMAD=m
-CONFIG_COMEDI_PCMDA12=m
-CONFIG_COMEDI_PCMMIO=m
-CONFIG_COMEDI_PCMUIO=m
-CONFIG_COMEDI_MULTIQ3=m
-CONFIG_COMEDI_S526=m
-CONFIG_COMEDI_PCI_DRIVERS=m
-CONFIG_COMEDI_8255_PCI=m
-CONFIG_COMEDI_ADDI_WATCHDOG=m
-CONFIG_COMEDI_ADDI_APCI_1032=m
-CONFIG_COMEDI_ADDI_APCI_1500=m
-CONFIG_COMEDI_ADDI_APCI_1516=m
-CONFIG_COMEDI_ADDI_APCI_1564=m
-CONFIG_COMEDI_ADDI_APCI_16XX=m
-CONFIG_COMEDI_ADDI_APCI_2032=m
-CONFIG_COMEDI_ADDI_APCI_2200=m
-# CONFIG_COMEDI_ADDI_APCI_3120 is not set
-CONFIG_COMEDI_ADDI_APCI_3501=m
-CONFIG_COMEDI_ADDI_APCI_3XXX=m
-CONFIG_COMEDI_ADL_PCI6208=m
-CONFIG_COMEDI_ADL_PCI7X3X=m
-CONFIG_COMEDI_ADL_PCI8164=m
-CONFIG_COMEDI_ADL_PCI9111=m
-# CONFIG_COMEDI_ADL_PCI9118 is not set
-CONFIG_COMEDI_ADV_PCI1710=m
-CONFIG_COMEDI_ADV_PCI1723=m
-CONFIG_COMEDI_ADV_PCI1724=m
-CONFIG_COMEDI_ADV_PCI_DIO=m
-CONFIG_COMEDI_AMPLC_DIO200_PCI=m
-CONFIG_COMEDI_AMPLC_PC236_PCI=m
-CONFIG_COMEDI_AMPLC_PC263_PCI=m
-CONFIG_COMEDI_AMPLC_PCI224=m
-CONFIG_COMEDI_AMPLC_PCI230=m
-CONFIG_COMEDI_CONTEC_PCI_DIO=m
-CONFIG_COMEDI_DAS08_PCI=m
-CONFIG_COMEDI_DT3000=m
-CONFIG_COMEDI_DYNA_PCI10XX=m
-CONFIG_COMEDI_GSC_HPDI=m
-CONFIG_COMEDI_MF6X4=m
-CONFIG_COMEDI_ICP_MULTI=m
-CONFIG_COMEDI_DAQBOARD2000=m
-CONFIG_COMEDI_JR3_PCI=m
-CONFIG_COMEDI_KE_COUNTER=m
-CONFIG_COMEDI_CB_PCIDAS64=m
-CONFIG_COMEDI_CB_PCIDAS=m
-CONFIG_COMEDI_CB_PCIDDA=m
-CONFIG_COMEDI_CB_PCIMDAS=m
-CONFIG_COMEDI_CB_PCIMDDA=m
-CONFIG_COMEDI_ME4000=m
-CONFIG_COMEDI_ME_DAQ=m
-CONFIG_COMEDI_NI_6527=m
-CONFIG_COMEDI_NI_65XX=m
-CONFIG_COMEDI_NI_660X=m
-CONFIG_COMEDI_NI_670X=m
-CONFIG_COMEDI_NI_LABPC_PCI=m
-CONFIG_COMEDI_NI_PCIDIO=m
-CONFIG_COMEDI_NI_PCIMIO=m
-CONFIG_COMEDI_RTD520=m
-CONFIG_COMEDI_S626=m
-CONFIG_COMEDI_MITE=m
-CONFIG_COMEDI_NI_TIOCMD=m
-CONFIG_COMEDI_USB_DRIVERS=m
-CONFIG_COMEDI_DT9812=m
-# CONFIG_COMEDI_NI_USB6501 is not set
-CONFIG_COMEDI_USBDUX=m
-CONFIG_COMEDI_USBDUXFAST=m
-CONFIG_COMEDI_USBDUXSIGMA=m
-CONFIG_COMEDI_VMK80XX=m
-CONFIG_COMEDI_8254=m
-CONFIG_COMEDI_8255=m
-# CONFIG_COMEDI_8255_SA is not set
-CONFIG_COMEDI_KCOMEDILIB=m
-CONFIG_COMEDI_AMPLC_DIO200=m
-CONFIG_COMEDI_AMPLC_PC236=m
-CONFIG_COMEDI_DAS08=m
-CONFIG_COMEDI_ISADMA=m
-CONFIG_COMEDI_NI_LABPC=m
-CONFIG_COMEDI_NI_LABPC_ISADMA=m
-CONFIG_COMEDI_NI_TIO=m
-CONFIG_PANEL=m
-CONFIG_PANEL_PARPORT=0
-CONFIG_PANEL_PROFILE=5
-# CONFIG_PANEL_CHANGE_MESSAGE is not set
-CONFIG_RTL8192U=m
-CONFIG_RTLLIB=m
-CONFIG_RTLLIB_CRYPTO_CCMP=m
-CONFIG_RTLLIB_CRYPTO_TKIP=m
-CONFIG_RTLLIB_CRYPTO_WEP=m
-CONFIG_RTL8192E=m
-CONFIG_R8712U=m
-CONFIG_R8188EU=m
-CONFIG_88EU_AP_MODE=y
-CONFIG_R8723AU=m
-CONFIG_8723AU_AP_MODE=y
-CONFIG_8723AU_BT_COEXIST=y
-CONFIG_RTS5208=m
-CONFIG_VT6655=m
-CONFIG_VT6656=m
-
-#
-# IIO staging drivers
-#
-
-#
-# Accelerometers
-#
-CONFIG_ADIS16201=m
-CONFIG_ADIS16203=m
-CONFIG_ADIS16204=m
-CONFIG_ADIS16209=m
-CONFIG_ADIS16220=m
-CONFIG_ADIS16240=m
-CONFIG_LIS3L02DQ=m
-CONFIG_SCA3000=m
-
-#
-# Analog to digital converters
-#
-CONFIG_AD7606=m
-CONFIG_AD7606_IFACE_PARALLEL=m
-CONFIG_AD7606_IFACE_SPI=m
-CONFIG_AD7780=m
-CONFIG_AD7816=m
-CONFIG_AD7192=m
-CONFIG_AD7280=m
-
-#
-# Analog digital bi-direction converters
-#
-CONFIG_ADT7316=m
-CONFIG_ADT7316_SPI=m
-CONFIG_ADT7316_I2C=m
-
-#
-# Capacitance to digital converters
-#
-CONFIG_AD7150=m
-CONFIG_AD7152=m
-CONFIG_AD7746=m
-
-#
-# Direct Digital Synthesis
-#
-CONFIG_AD9832=m
-CONFIG_AD9834=m
-
-#
-# Digital gyroscope sensors
-#
-CONFIG_ADIS16060=m
-
-#
-# Network Analyzer, Impedance Converters
-#
-CONFIG_AD5933=m
-
-#
-# Light sensors
-#
-CONFIG_SENSORS_ISL29018=m
-CONFIG_SENSORS_ISL29028=m
-CONFIG_TSL2583=m
-CONFIG_TSL2x7x=m
-
-#
-# Magnetometer sensors
-#
-# CONFIG_SENSORS_HMC5843_I2C is not set
-# CONFIG_SENSORS_HMC5843_SPI is not set
-
-#
-# Active energy metering IC
-#
-CONFIG_ADE7753=m
-CONFIG_ADE7754=m
-CONFIG_ADE7758=m
-CONFIG_ADE7759=m
-CONFIG_ADE7854=m
-CONFIG_ADE7854_I2C=m
-CONFIG_ADE7854_SPI=m
-
-#
-# Resolver to digital converters
-#
-CONFIG_AD2S90=m
-CONFIG_AD2S1200=m
-CONFIG_AD2S1210=m
-
-#
-# Triggers - standalone
-#
-CONFIG_IIO_PERIODIC_RTC_TRIGGER=m
-CONFIG_IIO_SIMPLE_DUMMY=m
-# CONFIG_IIO_SIMPLE_DUMMY_EVENTS is not set
-# CONFIG_IIO_SIMPLE_DUMMY_BUFFER is not set
-# CONFIG_FB_SM7XX is not set
-# CONFIG_FB_SM750 is not set
-CONFIG_FB_XGI=m
-CONFIG_FT1000=m
-CONFIG_FT1000_USB=m
-
-#
-# Speakup console speech
-#
-CONFIG_SPEAKUP=m
-CONFIG_SPEAKUP_SYNTH_ACNTSA=m
-CONFIG_SPEAKUP_SYNTH_APOLLO=m
-CONFIG_SPEAKUP_SYNTH_AUDPTR=m
-CONFIG_SPEAKUP_SYNTH_BNS=m
-CONFIG_SPEAKUP_SYNTH_DECTLK=m
-CONFIG_SPEAKUP_SYNTH_DECEXT=m
-CONFIG_SPEAKUP_SYNTH_LTLK=m
-CONFIG_SPEAKUP_SYNTH_SOFT=m
-CONFIG_SPEAKUP_SYNTH_SPKOUT=m
-CONFIG_SPEAKUP_SYNTH_TXPRT=m
-CONFIG_SPEAKUP_SYNTH_DUMMY=m
-CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m
-CONFIG_STAGING_MEDIA=y
-CONFIG_I2C_BCM2048=m
-CONFIG_DVB_CXD2099=m
-# CONFIG_DVB_MN88472 is not set
-# CONFIG_DVB_MN88473 is not set
-CONFIG_LIRC_STAGING=y
-CONFIG_LIRC_BT829=m
-CONFIG_LIRC_IMON=m
-CONFIG_LIRC_PARALLEL=m
-CONFIG_LIRC_SASEM=m
-CONFIG_LIRC_SERIAL=m
-CONFIG_LIRC_SERIAL_TRANSMITTER=y
-CONFIG_LIRC_SIR=m
-CONFIG_LIRC_ZILOG=m
-
-#
-# Android
-#
-CONFIG_USB_WPAN_HCD=m
-CONFIG_WIMAX_GDM72XX=m
-CONFIG_WIMAX_GDM72XX_QOS=y
-CONFIG_WIMAX_GDM72XX_K_MODE=y
-CONFIG_WIMAX_GDM72XX_WIMAX2=y
-CONFIG_WIMAX_GDM72XX_USB=y
-# CONFIG_WIMAX_GDM72XX_SDIO is not set
-CONFIG_WIMAX_GDM72XX_USB_PM=y
-CONFIG_LTE_GDM724X=m
-CONFIG_FIREWIRE_SERIAL=m
-CONFIG_FWTTY_MAX_TOTAL_PORTS=64
-CONFIG_FWTTY_MAX_CARD_PORTS=32
-CONFIG_MTD_SPINAND_MT29F=m
-CONFIG_MTD_SPINAND_ONDIEECC=y
-# CONFIG_LUSTRE_FS is not set
-CONFIG_DGNC=m
-CONFIG_DGAP=m
-CONFIG_GS_FPGABOOT=m
-# CONFIG_FB_TFT is not set
-CONFIG_CHROME_PLATFORMS=y
-# CONFIG_CROS_EC_CHARDEV is not set
-CONFIG_CROS_EC_PROTO=y
-
-#
-# Hardware Spinlock drivers
-#
-
-#
-# Clock Source drivers
-#
-CONFIG_I8253_LOCK=y
-CONFIG_CLKBLD_I8253=y
-# CONFIG_ATMEL_PIT is not set
-# CONFIG_SH_TIMER_CMT is not set
-# CONFIG_SH_TIMER_MTU2 is not set
-# CONFIG_SH_TIMER_TMU is not set
-# CONFIG_EM_TIMER_STI is not set
-CONFIG_MAILBOX=y
-# CONFIG_ALTERA_MBOX is not set
-CONFIG_IOMMU_API=y
-CONFIG_IOMMU_SUPPORT=y
-
-#
-# Generic IOMMU Pagetable Support
-#
-CONFIG_OF_IOMMU=y
-CONFIG_SPAPR_TCE_IOMMU=y
-
-#
-# Remoteproc drivers
-#
-CONFIG_REMOTEPROC=m
-CONFIG_STE_MODEM_RPROC=m
-
-#
-# Rpmsg drivers
-#
-
-#
-# SOC (System On Chip) specific Drivers
-#
-# CONFIG_SUNXI_SRAM is not set
-# CONFIG_SOC_TI is not set
-CONFIG_PM_DEVFREQ=y
-
-#
-# DEVFREQ Governors
-#
-CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
-CONFIG_DEVFREQ_GOV_PERFORMANCE=y
-CONFIG_DEVFREQ_GOV_POWERSAVE=y
-CONFIG_DEVFREQ_GOV_USERSPACE=y
-
-#
-# DEVFREQ Drivers
-#
-# CONFIG_PM_DEVFREQ_EVENT is not set
-CONFIG_EXTCON=y
-
-#
-# Extcon Device Drivers
-#
-CONFIG_EXTCON_ADC_JACK=m
-CONFIG_EXTCON_ARIZONA=m
-# CONFIG_EXTCON_AXP288 is not set
-CONFIG_EXTCON_GPIO=m
-CONFIG_EXTCON_MAX14577=m
-CONFIG_EXTCON_MAX77693=m
-CONFIG_EXTCON_MAX8997=m
-CONFIG_EXTCON_PALMAS=m
-# CONFIG_EXTCON_RT8973A is not set
-# CONFIG_EXTCON_SM5502 is not set
-# CONFIG_EXTCON_USB_GPIO is not set
-CONFIG_MEMORY=y
-CONFIG_IIO=m
-CONFIG_IIO_BUFFER=y
-CONFIG_IIO_BUFFER_CB=y
-CONFIG_IIO_KFIFO_BUF=m
-CONFIG_IIO_TRIGGERED_BUFFER=m
-CONFIG_IIO_TRIGGER=y
-CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
-
-#
-# Accelerometers
-#
-CONFIG_BMA180=m
-# CONFIG_BMC150_ACCEL is not set
-CONFIG_HID_SENSOR_ACCEL_3D=m
-CONFIG_IIO_ST_ACCEL_3AXIS=m
-CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m
-CONFIG_IIO_ST_ACCEL_SPI_3AXIS=m
-CONFIG_KXSD9=m
-CONFIG_MMA8452=m
-# CONFIG_KXCJK1013 is not set
-# CONFIG_MMA9551 is not set
-# CONFIG_MMA9553 is not set
-# CONFIG_STK8312 is not set
-# CONFIG_STK8BA50 is not set
-
-#
-# Analog to digital converters
-#
-CONFIG_AD_SIGMA_DELTA=m
-CONFIG_AD7266=m
-CONFIG_AD7291=m
-CONFIG_AD7298=m
-CONFIG_AD7476=m
-CONFIG_AD7791=m
-CONFIG_AD7793=m
-CONFIG_AD7887=m
-CONFIG_AD7923=m
-CONFIG_AD799X=m
-# CONFIG_AXP288_ADC is not set
-CONFIG_LP8788_ADC=m
-# CONFIG_MAX1027 is not set
-CONFIG_MAX1363=m
-CONFIG_MCP320X=m
-CONFIG_MCP3422=m
-CONFIG_MEN_Z188_ADC=m
-CONFIG_NAU7802=m
-# CONFIG_QCOM_SPMI_IADC is not set
-# CONFIG_QCOM_SPMI_VADC is not set
-CONFIG_TI_ADC081C=m
-# CONFIG_TI_ADC128S052 is not set
-CONFIG_TI_AM335X_ADC=m
-CONFIG_TWL4030_MADC=m
-CONFIG_TWL6030_GPADC=m
-CONFIG_VF610_ADC=m
-CONFIG_VIPERBOARD_ADC=m
-
-#
-# Amplifiers
-#
-CONFIG_AD8366=m
-
-#
-# Hid Sensor IIO Common
-#
-CONFIG_HID_SENSOR_IIO_COMMON=m
-CONFIG_HID_SENSOR_IIO_TRIGGER=m
-
-#
-# SSP Sensor Common
-#
-# CONFIG_IIO_SSP_SENSORHUB is not set
-CONFIG_IIO_ST_SENSORS_I2C=m
-CONFIG_IIO_ST_SENSORS_SPI=m
-CONFIG_IIO_ST_SENSORS_CORE=m
-
-#
-# Digital to analog converters
-#
-CONFIG_AD5064=m
-CONFIG_AD5360=m
-CONFIG_AD5380=m
-CONFIG_AD5421=m
-CONFIG_AD5446=m
-CONFIG_AD5449=m
-CONFIG_AD5504=m
-CONFIG_AD5624R_SPI=m
-CONFIG_AD5686=m
-CONFIG_AD5755=m
-CONFIG_AD5764=m
-CONFIG_AD5791=m
-CONFIG_AD7303=m
-# CONFIG_M62332 is not set
-CONFIG_MAX517=m
-# CONFIG_MAX5821 is not set
-CONFIG_MCP4725=m
-# CONFIG_MCP4922 is not set
-
-#
-# Frequency Synthesizers DDS/PLL
-#
-
-#
-# Clock Generator/Distribution
-#
-CONFIG_AD9523=m
-
-#
-# Phase-Locked Loop (PLL) frequency synthesizers
-#
-CONFIG_ADF4350=m
-
-#
-# Digital gyroscope sensors
-#
-CONFIG_ADIS16080=m
-CONFIG_ADIS16130=m
-CONFIG_ADIS16136=m
-CONFIG_ADIS16260=m
-CONFIG_ADXRS450=m
-# CONFIG_BMG160 is not set
-CONFIG_HID_SENSOR_GYRO_3D=m
-CONFIG_IIO_ST_GYRO_3AXIS=m
-CONFIG_IIO_ST_GYRO_I2C_3AXIS=m
-CONFIG_IIO_ST_GYRO_SPI_3AXIS=m
-CONFIG_ITG3200=m
-
-#
-# Humidity sensors
-#
-CONFIG_DHT11=m
-CONFIG_SI7005=m
-# CONFIG_SI7020 is not set
-
-#
-# Inertial measurement units
-#
-CONFIG_ADIS16400=m
-CONFIG_ADIS16480=m
-# CONFIG_KMX61 is not set
-CONFIG_INV_MPU6050_IIO=m
-CONFIG_IIO_ADIS_LIB=m
-CONFIG_IIO_ADIS_LIB_BUFFER=y
-
-#
-# Light sensors
-#
-CONFIG_ADJD_S311=m
-# CONFIG_AL3320A is not set
-CONFIG_APDS9300=m
-# CONFIG_BH1750 is not set
-CONFIG_CM32181=m
-# CONFIG_CM3232 is not set
-# CONFIG_CM3323 is not set
-CONFIG_CM36651=m
-CONFIG_GP2AP020A00F=m
-# CONFIG_ISL29125 is not set
-CONFIG_HID_SENSOR_ALS=m
-CONFIG_HID_SENSOR_PROX=m
-# CONFIG_JSA1212 is not set
-CONFIG_SENSORS_LM3533=m
-CONFIG_LTR501=m
-# CONFIG_STK3310 is not set
-# CONFIG_TCS3414 is not set
-CONFIG_TCS3472=m
-CONFIG_SENSORS_TSL2563=m
-CONFIG_TSL4531=m
-CONFIG_VCNL4000=m
-
-#
-# Magnetometer sensors
-#
-CONFIG_AK8975=m
-# CONFIG_AK09911 is not set
-CONFIG_MAG3110=m
-CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
-# CONFIG_MMC35240 is not set
-CONFIG_IIO_ST_MAGN_3AXIS=m
-CONFIG_IIO_ST_MAGN_I2C_3AXIS=m
-CONFIG_IIO_ST_MAGN_SPI_3AXIS=m
-# CONFIG_BMC150_MAGN is not set
-
-#
-# Inclinometer sensors
-#
-CONFIG_HID_SENSOR_INCLINOMETER_3D=m
-CONFIG_HID_SENSOR_DEVICE_ROTATION=m
-
-#
-# Triggers - standalone
-#
-CONFIG_IIO_INTERRUPT_TRIGGER=m
-CONFIG_IIO_SYSFS_TRIGGER=m
-
-#
-# Pressure sensors
-#
-# CONFIG_BMP280 is not set
-CONFIG_HID_SENSOR_PRESS=m
-CONFIG_MPL115=m
-CONFIG_MPL3115=m
-# CONFIG_MS5611 is not set
-CONFIG_IIO_ST_PRESS=m
-CONFIG_IIO_ST_PRESS_I2C=m
-CONFIG_IIO_ST_PRESS_SPI=m
-# CONFIG_T5403 is not set
-
-#
-# Lightning sensors
-#
-CONFIG_AS3935=m
-
-#
-# Proximity sensors
-#
-# CONFIG_SX9500 is not set
-
-#
-# Temperature sensors
-#
-CONFIG_MLX90614=m
-CONFIG_TMP006=m
-# CONFIG_NTB is not set
-CONFIG_VME_BUS=y
-
-#
-# VME Bridge Drivers
-#
-# CONFIG_VME_TSI148 is not set
-
-#
-# VME Board Drivers
-#
-CONFIG_VMIVME_7805=m
-
-#
-# VME Device Drivers
-#
-CONFIG_VME_USER=m
-CONFIG_VME_PIO2=m
-CONFIG_PWM=y
-CONFIG_PWM_SYSFS=y
-CONFIG_PWM_FSL_FTM=m
-CONFIG_PWM_LP3943=m
-CONFIG_PWM_PCA9685=m
-CONFIG_PWM_TWL=m
-CONFIG_PWM_TWL_LED=m
-CONFIG_IRQCHIP=y
-CONFIG_IPACK_BUS=m
-CONFIG_BOARD_TPCI200=m
-CONFIG_SERIAL_IPOCTAL=m
-CONFIG_RESET_CONTROLLER=y
-CONFIG_FMC=m
-CONFIG_FMC_FAKEDEV=m
-CONFIG_FMC_TRIVIAL=m
-CONFIG_FMC_WRITE_EEPROM=m
-CONFIG_FMC_CHARDEV=m
-
-#
-# PHY Subsystem
-#
-CONFIG_GENERIC_PHY=y
-# CONFIG_PHY_PXA_28NM_HSIC is not set
-# CONFIG_PHY_PXA_28NM_USB2 is not set
-CONFIG_BCM_KONA_USB2_PHY=m
-CONFIG_PHY_SAMSUNG_USB2=m
-# CONFIG_PHY_EXYNOS4210_USB2 is not set
-# CONFIG_PHY_EXYNOS4X12_USB2 is not set
-# CONFIG_PHY_EXYNOS5250_USB2 is not set
-CONFIG_POWERCAP=y
-CONFIG_MCB=m
-CONFIG_MCB_PCI=m
-CONFIG_RAS=y
-# CONFIG_THUNDERBOLT is not set
-
-#
-# Android
-#
-# CONFIG_ANDROID is not set
-# CONFIG_LIBNVDIMM is not set
-
-#
-# File systems
-#
-CONFIG_DCACHE_WORD_ACCESS=y
-# CONFIG_EXT2_FS is not set
-# CONFIG_EXT3_FS is not set
-CONFIG_EXT4_FS=y
-CONFIG_EXT4_USE_FOR_EXT23=y
-CONFIG_EXT4_FS_POSIX_ACL=y
-CONFIG_EXT4_FS_SECURITY=y
-# CONFIG_EXT4_ENCRYPTION is not set
-# CONFIG_EXT4_DEBUG is not set
-CONFIG_JBD2=y
-# CONFIG_JBD2_DEBUG is not set
-CONFIG_FS_MBCACHE=y
-CONFIG_REISERFS_FS=m
-# CONFIG_REISERFS_CHECK is not set
-# CONFIG_REISERFS_PROC_INFO is not set
-CONFIG_REISERFS_FS_XATTR=y
-CONFIG_REISERFS_FS_POSIX_ACL=y
-CONFIG_REISERFS_FS_SECURITY=y
-CONFIG_JFS_FS=m
-CONFIG_JFS_POSIX_ACL=y
-CONFIG_JFS_SECURITY=y
-# CONFIG_JFS_DEBUG is not set
-CONFIG_JFS_STATISTICS=y
-CONFIG_XFS_FS=m
-CONFIG_XFS_QUOTA=y
-CONFIG_XFS_POSIX_ACL=y
-CONFIG_XFS_RT=y
-# CONFIG_XFS_WARN is not set
-# CONFIG_XFS_DEBUG is not set
-CONFIG_GFS2_FS=m
-CONFIG_GFS2_FS_LOCKING_DLM=y
-CONFIG_OCFS2_FS=m
-CONFIG_OCFS2_FS_O2CB=m
-CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
-CONFIG_OCFS2_FS_STATS=y
-CONFIG_OCFS2_DEBUG_MASKLOG=y
-# CONFIG_OCFS2_DEBUG_FS is not set
-CONFIG_BTRFS_FS=m
-CONFIG_BTRFS_FS_POSIX_ACL=y
-# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
-# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
-# CONFIG_BTRFS_DEBUG is not set
-# CONFIG_BTRFS_ASSERT is not set
-CONFIG_NILFS2_FS=m
-CONFIG_F2FS_FS=m
-CONFIG_F2FS_STAT_FS=y
-CONFIG_F2FS_FS_XATTR=y
-CONFIG_F2FS_FS_POSIX_ACL=y
-CONFIG_F2FS_FS_SECURITY=y
-# CONFIG_F2FS_CHECK_FS is not set
-# CONFIG_F2FS_FS_ENCRYPTION is not set
-# CONFIG_F2FS_IO_TRACE is not set
-# CONFIG_FS_DAX is not set
-CONFIG_FS_POSIX_ACL=y
-CONFIG_EXPORTFS=y
-CONFIG_FILE_LOCKING=y
-CONFIG_FSNOTIFY=y
-CONFIG_DNOTIFY=y
-CONFIG_INOTIFY_USER=y
-CONFIG_FANOTIFY=y
-CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
-CONFIG_QUOTA=y
-CONFIG_QUOTA_NETLINK_INTERFACE=y
-# CONFIG_PRINT_QUOTA_WARNING is not set
-# CONFIG_QUOTA_DEBUG is not set
-CONFIG_QUOTA_TREE=m
-CONFIG_QFMT_V1=m
-CONFIG_QFMT_V2=m
-CONFIG_QUOTACTL=y
-CONFIG_AUTOFS4_FS=m
-CONFIG_FUSE_FS=y
-CONFIG_CUSE=m
-# CONFIG_OVERLAY_FS is not set
-
-#
-# Caches
-#
-CONFIG_FSCACHE=m
-CONFIG_FSCACHE_STATS=y
-# CONFIG_FSCACHE_HISTOGRAM is not set
-# CONFIG_FSCACHE_DEBUG is not set
-# CONFIG_FSCACHE_OBJECT_LIST is not set
-CONFIG_CACHEFILES=m
-# CONFIG_CACHEFILES_DEBUG is not set
-# CONFIG_CACHEFILES_HISTOGRAM is not set
-
-#
-# CD-ROM/DVD Filesystems
-#
-CONFIG_ISO9660_FS=m
-CONFIG_JOLIET=y
-CONFIG_ZISOFS=y
-CONFIG_UDF_FS=m
-CONFIG_UDF_NLS=y
-
-#
-# DOS/FAT/NT Filesystems
-#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=m
-CONFIG_VFAT_FS=y
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-CONFIG_NTFS_FS=m
-# CONFIG_NTFS_DEBUG is not set
-# CONFIG_NTFS_RW is not set
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_PROC_KCORE=y
-CONFIG_PROC_VMCORE=y
-CONFIG_PROC_SYSCTL=y
-CONFIG_PROC_PAGE_MONITOR=y
-CONFIG_PROC_CHILDREN=y
-CONFIG_KERNFS=y
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-CONFIG_TMPFS_POSIX_ACL=y
-CONFIG_TMPFS_XATTR=y
-CONFIG_HUGETLBFS=y
-CONFIG_HUGETLB_PAGE=y
-CONFIG_CONFIGFS_FS=m
-CONFIG_MISC_FILESYSTEMS=y
-CONFIG_ADFS_FS=m
-# CONFIG_ADFS_FS_RW is not set
-CONFIG_AFFS_FS=m
-CONFIG_ECRYPT_FS=y
-CONFIG_ECRYPT_FS_MESSAGING=y
-CONFIG_HFS_FS=m
-CONFIG_HFSPLUS_FS=m
-CONFIG_HFSPLUS_FS_POSIX_ACL=y
-CONFIG_BEFS_FS=m
-# CONFIG_BEFS_DEBUG is not set
-CONFIG_BFS_FS=m
-CONFIG_EFS_FS=m
-CONFIG_JFFS2_FS=m
-CONFIG_JFFS2_FS_DEBUG=0
-CONFIG_JFFS2_FS_WRITEBUFFER=y
-# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
-# CONFIG_JFFS2_SUMMARY is not set
-CONFIG_JFFS2_FS_XATTR=y
-CONFIG_JFFS2_FS_POSIX_ACL=y
-CONFIG_JFFS2_FS_SECURITY=y
-CONFIG_JFFS2_COMPRESSION_OPTIONS=y
-CONFIG_JFFS2_ZLIB=y
-CONFIG_JFFS2_LZO=y
-CONFIG_JFFS2_RTIME=y
-# CONFIG_JFFS2_RUBIN is not set
-# CONFIG_JFFS2_CMODE_NONE is not set
-# CONFIG_JFFS2_CMODE_PRIORITY is not set
-# CONFIG_JFFS2_CMODE_SIZE is not set
-CONFIG_JFFS2_CMODE_FAVOURLZO=y
-CONFIG_UBIFS_FS=m
-# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
-CONFIG_UBIFS_FS_LZO=y
-CONFIG_UBIFS_FS_ZLIB=y
-# CONFIG_LOGFS is not set
-CONFIG_CRAMFS=m
-CONFIG_SQUASHFS=m
-# CONFIG_SQUASHFS_FILE_CACHE is not set
-CONFIG_SQUASHFS_FILE_DIRECT=y
-# CONFIG_SQUASHFS_DECOMP_SINGLE is not set
-# CONFIG_SQUASHFS_DECOMP_MULTI is not set
-CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y
-CONFIG_SQUASHFS_XATTR=y
-CONFIG_SQUASHFS_ZLIB=y
-# CONFIG_SQUASHFS_LZ4 is not set
-CONFIG_SQUASHFS_LZO=y
-CONFIG_SQUASHFS_XZ=y
-# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
-# CONFIG_SQUASHFS_EMBEDDED is not set
-CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
-CONFIG_VXFS_FS=m
-CONFIG_MINIX_FS=m
-CONFIG_OMFS_FS=m
-CONFIG_HPFS_FS=m
-CONFIG_QNX4FS_FS=m
-CONFIG_QNX6FS_FS=m
-# CONFIG_QNX6FS_DEBUG is not set
-CONFIG_ROMFS_FS=m
-CONFIG_ROMFS_BACKED_BY_BLOCK=y
-# CONFIG_ROMFS_BACKED_BY_MTD is not set
-# CONFIG_ROMFS_BACKED_BY_BOTH is not set
-CONFIG_ROMFS_ON_BLOCK=y
-CONFIG_PSTORE=y
-# CONFIG_PSTORE_CONSOLE is not set
-# CONFIG_PSTORE_PMSG is not set
-# CONFIG_PSTORE_FTRACE is not set
-CONFIG_PSTORE_RAM=m
-CONFIG_SYSV_FS=m
-CONFIG_UFS_FS=m
-# CONFIG_UFS_FS_WRITE is not set
-# CONFIG_UFS_DEBUG is not set
-CONFIG_EXOFS_FS=m
-# CONFIG_EXOFS_DEBUG is not set
-CONFIG_ORE=m
-CONFIG_NETWORK_FILESYSTEMS=y
-CONFIG_NFS_FS=m
-CONFIG_NFS_V2=m
-CONFIG_NFS_V3=m
-CONFIG_NFS_V3_ACL=y
-CONFIG_NFS_V4=m
-CONFIG_NFS_SWAP=y
-CONFIG_NFS_V4_1=y
-CONFIG_NFS_V4_2=y
-CONFIG_PNFS_FILE_LAYOUT=m
-CONFIG_PNFS_BLOCK=m
-CONFIG_PNFS_OBJLAYOUT=m
-CONFIG_PNFS_FLEXFILE_LAYOUT=m
-CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
-CONFIG_NFS_V4_1_MIGRATION=y
-CONFIG_NFS_V4_SECURITY_LABEL=y
-CONFIG_NFS_FSCACHE=y
-# CONFIG_NFS_USE_LEGACY_DNS is not set
-CONFIG_NFS_USE_KERNEL_DNS=y
-CONFIG_NFS_DEBUG=y
-CONFIG_NFSD=m
-CONFIG_NFSD_V2_ACL=y
-CONFIG_NFSD_V3=y
-CONFIG_NFSD_V3_ACL=y
-CONFIG_NFSD_V4=y
-# CONFIG_NFSD_PNFS is not set
-CONFIG_NFSD_V4_SECURITY_LABEL=y
-# CONFIG_NFSD_FAULT_INJECTION is not set
-CONFIG_GRACE_PERIOD=m
-CONFIG_LOCKD=m
-CONFIG_LOCKD_V4=y
-CONFIG_NFS_ACL_SUPPORT=m
-CONFIG_NFS_COMMON=y
-CONFIG_SUNRPC=m
-CONFIG_SUNRPC_GSS=m
-CONFIG_SUNRPC_BACKCHANNEL=y
-CONFIG_SUNRPC_SWAP=y
-CONFIG_RPCSEC_GSS_KRB5=m
-CONFIG_SUNRPC_DEBUG=y
-CONFIG_SUNRPC_XPRT_RDMA=m
-CONFIG_CEPH_FS=m
-CONFIG_CEPH_FSCACHE=y
-CONFIG_CEPH_FS_POSIX_ACL=y
-CONFIG_CIFS=m
-CONFIG_CIFS_STATS=y
-# CONFIG_CIFS_STATS2 is not set
-CONFIG_CIFS_WEAK_PW_HASH=y
-CONFIG_CIFS_UPCALL=y
-CONFIG_CIFS_XATTR=y
-CONFIG_CIFS_POSIX=y
-CONFIG_CIFS_ACL=y
-CONFIG_CIFS_DEBUG=y
-# CONFIG_CIFS_DEBUG2 is not set
-CONFIG_CIFS_DFS_UPCALL=y
-CONFIG_CIFS_SMB2=y
-# CONFIG_CIFS_SMB311 is not set
-CONFIG_CIFS_FSCACHE=y
-CONFIG_NCP_FS=m
-CONFIG_NCPFS_PACKET_SIGNING=y
-CONFIG_NCPFS_IOCTL_LOCKING=y
-CONFIG_NCPFS_STRONG=y
-CONFIG_NCPFS_NFS_NS=y
-CONFIG_NCPFS_OS2_NS=y
-# CONFIG_NCPFS_SMALLDOS is not set
-CONFIG_NCPFS_NLS=y
-CONFIG_NCPFS_EXTRAS=y
-CONFIG_CODA_FS=m
-CONFIG_AFS_FS=m
-# CONFIG_AFS_DEBUG is not set
-CONFIG_AFS_FSCACHE=y
-CONFIG_9P_FS=m
-CONFIG_9P_FSCACHE=y
-CONFIG_9P_FS_POSIX_ACL=y
-CONFIG_9P_FS_SECURITY=y
-CONFIG_NLS=y
-CONFIG_NLS_DEFAULT="utf8"
-CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_CODEPAGE_737=m
-CONFIG_NLS_CODEPAGE_775=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_CODEPAGE_852=m
-CONFIG_NLS_CODEPAGE_855=m
-CONFIG_NLS_CODEPAGE_857=m
-CONFIG_NLS_CODEPAGE_860=m
-CONFIG_NLS_CODEPAGE_861=m
-CONFIG_NLS_CODEPAGE_862=m
-CONFIG_NLS_CODEPAGE_863=m
-CONFIG_NLS_CODEPAGE_864=m
-CONFIG_NLS_CODEPAGE_865=m
-CONFIG_NLS_CODEPAGE_866=m
-CONFIG_NLS_CODEPAGE_869=m
-CONFIG_NLS_CODEPAGE_936=m
-CONFIG_NLS_CODEPAGE_950=m
-CONFIG_NLS_CODEPAGE_932=m
-CONFIG_NLS_CODEPAGE_949=m
-CONFIG_NLS_CODEPAGE_874=m
-CONFIG_NLS_ISO8859_8=m
-CONFIG_NLS_CODEPAGE_1250=m
-CONFIG_NLS_CODEPAGE_1251=m
-CONFIG_NLS_ASCII=m
-CONFIG_NLS_ISO8859_1=m
-CONFIG_NLS_ISO8859_2=m
-CONFIG_NLS_ISO8859_3=m
-CONFIG_NLS_ISO8859_4=m
-CONFIG_NLS_ISO8859_5=m
-CONFIG_NLS_ISO8859_6=m
-CONFIG_NLS_ISO8859_7=m
-CONFIG_NLS_ISO8859_9=m
-CONFIG_NLS_ISO8859_13=m
-CONFIG_NLS_ISO8859_14=m
-CONFIG_NLS_ISO8859_15=m
-CONFIG_NLS_KOI8_R=m
-CONFIG_NLS_KOI8_U=m
-CONFIG_NLS_MAC_ROMAN=m
-CONFIG_NLS_MAC_CELTIC=m
-CONFIG_NLS_MAC_CENTEURO=m
-CONFIG_NLS_MAC_CROATIAN=m
-CONFIG_NLS_MAC_CYRILLIC=m
-CONFIG_NLS_MAC_GAELIC=m
-CONFIG_NLS_MAC_GREEK=m
-CONFIG_NLS_MAC_ICELAND=m
-CONFIG_NLS_MAC_INUIT=m
-CONFIG_NLS_MAC_ROMANIAN=m
-CONFIG_NLS_MAC_TURKISH=m
-CONFIG_NLS_UTF8=m
-CONFIG_DLM=m
-# CONFIG_DLM_DEBUG is not set
-CONFIG_BINARY_PRINTF=y
-
-#
-# Library routines
-#
-CONFIG_RAID6_PQ=m
-CONFIG_BITREVERSE=y
-# CONFIG_HAVE_ARCH_BITREVERSE is not set
-CONFIG_RATIONAL=y
-CONFIG_GENERIC_STRNCPY_FROM_USER=y
-CONFIG_GENERIC_STRNLEN_USER=y
-CONFIG_GENERIC_NET_UTILS=y
-CONFIG_GENERIC_PCI_IOMAP=y
-CONFIG_GENERIC_IOMAP=y
-CONFIG_GENERIC_IO=y
-CONFIG_PERCPU_RWSEM=y
-CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
-CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
-CONFIG_CRC_CCITT=m
-CONFIG_CRC16=y
-CONFIG_CRC_T10DIF=y
-CONFIG_CRC_ITU_T=m
-CONFIG_CRC32=y
-# CONFIG_CRC32_SELFTEST is not set
-CONFIG_CRC32_SLICEBY8=y
-# CONFIG_CRC32_SLICEBY4 is not set
-# CONFIG_CRC32_SARWATE is not set
-# CONFIG_CRC32_BIT is not set
-CONFIG_CRC7=m
-CONFIG_LIBCRC32C=m
-CONFIG_CRC8=m
-# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set
-# CONFIG_RANDOM32_SELFTEST is not set
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
-CONFIG_LZO_COMPRESS=y
-CONFIG_LZO_DECOMPRESS=y
-CONFIG_LZ4_COMPRESS=m
-CONFIG_LZ4HC_COMPRESS=m
-CONFIG_LZ4_DECOMPRESS=y
-CONFIG_XZ_DEC=y
-CONFIG_XZ_DEC_X86=y
-CONFIG_XZ_DEC_POWERPC=y
-CONFIG_XZ_DEC_IA64=y
-CONFIG_XZ_DEC_ARM=y
-CONFIG_XZ_DEC_ARMTHUMB=y
-CONFIG_XZ_DEC_SPARC=y
-CONFIG_XZ_DEC_BCJ=y
-CONFIG_XZ_DEC_TEST=m
-CONFIG_DECOMPRESS_GZIP=y
-CONFIG_DECOMPRESS_BZIP2=y
-CONFIG_DECOMPRESS_LZMA=y
-CONFIG_DECOMPRESS_XZ=y
-CONFIG_DECOMPRESS_LZO=y
-CONFIG_DECOMPRESS_LZ4=y
-CONFIG_GENERIC_ALLOCATOR=y
-CONFIG_REED_SOLOMON=m
-CONFIG_REED_SOLOMON_ENC8=y
-CONFIG_REED_SOLOMON_DEC8=y
-CONFIG_REED_SOLOMON_DEC16=y
-CONFIG_BCH=m
-CONFIG_BCH_CONST_PARAMS=y
-CONFIG_TEXTSEARCH=y
-CONFIG_TEXTSEARCH_KMP=m
-CONFIG_TEXTSEARCH_BM=m
-CONFIG_TEXTSEARCH_FSM=m
-CONFIG_BTREE=y
-CONFIG_INTERVAL_TREE=y
-CONFIG_ASSOCIATIVE_ARRAY=y
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT_MAP=y
-CONFIG_HAS_DMA=y
-CONFIG_CHECK_SIGNATURE=y
-CONFIG_CPU_RMAP=y
-CONFIG_DQL=y
-CONFIG_GLOB=y
-# CONFIG_GLOB_SELFTEST is not set
-CONFIG_NLATTR=y
-CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
-CONFIG_LRU_CACHE=m
-CONFIG_AVERAGE=y
-CONFIG_CLZ_TAB=y
-CONFIG_CORDIC=m
-CONFIG_DDR=y
-CONFIG_MPILIB=y
-CONFIG_SIGNATURE=y
-CONFIG_LIBFDT=y
-CONFIG_OID_REGISTRY=y
-CONFIG_FONT_SUPPORT=y
-# CONFIG_FONTS is not set
-CONFIG_FONT_8x8=y
-CONFIG_FONT_8x16=y
-CONFIG_ARCH_HAS_SG_CHAIN=y
-
-#
-# Kernel hacking
-#
-
-#
-# printk and dmesg options
-#
-CONFIG_PRINTK_TIME=y
-CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
-CONFIG_DYNAMIC_DEBUG=y
-
-#
-# Compile-time checks and compiler options
-#
-CONFIG_DEBUG_INFO=y
-# CONFIG_DEBUG_INFO_REDUCED is not set
-# CONFIG_DEBUG_INFO_SPLIT is not set
-# CONFIG_DEBUG_INFO_DWARF4 is not set
-# CONFIG_GDB_SCRIPTS is not set
-# CONFIG_ENABLE_WARN_DEPRECATED is not set
-# CONFIG_ENABLE_MUST_CHECK is not set
-CONFIG_FRAME_WARN=2048
-# CONFIG_STRIP_ASM_SYMS is not set
-# CONFIG_READABLE_ASM is not set
-CONFIG_UNUSED_SYMBOLS=y
-# CONFIG_PAGE_OWNER is not set
-CONFIG_DEBUG_FS=y
-# CONFIG_HEADERS_CHECK is not set
-# CONFIG_DEBUG_SECTION_MISMATCH is not set
-# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1
-CONFIG_DEBUG_KERNEL=y
-
-#
-# Memory Debugging
-#
-# CONFIG_PAGE_EXTENSION is not set
-# CONFIG_DEBUG_OBJECTS is not set
-# CONFIG_SLUB_DEBUG_ON is not set
-# CONFIG_SLUB_STATS is not set
-CONFIG_HAVE_DEBUG_KMEMLEAK=y
-# CONFIG_DEBUG_KMEMLEAK is not set
-# CONFIG_DEBUG_STACK_USAGE is not set
-# CONFIG_DEBUG_VM is not set
-# CONFIG_DEBUG_MEMORY_INIT is not set
-CONFIG_MEMORY_NOTIFIER_ERROR_INJECT=m
-# CONFIG_DEBUG_PER_CPU_MAPS is not set
-CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
-# CONFIG_DEBUG_STACKOVERFLOW is not set
-# CONFIG_DEBUG_SHIRQ is not set
-
-#
-# Debug Lockups and Hangs
-#
-CONFIG_LOCKUP_DETECTOR=y
-CONFIG_HARDLOCKUP_DETECTOR=y
-# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set
-CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0
-# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
-CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
-CONFIG_DETECT_HUNG_TASK=y
-CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
-# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
-CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
-CONFIG_PANIC_ON_OOPS=y
-CONFIG_PANIC_ON_OOPS_VALUE=1
-CONFIG_SCHED_DEBUG=y
-CONFIG_SCHED_INFO=y
-CONFIG_SCHEDSTATS=y
-# CONFIG_SCHED_STACK_END_CHECK is not set
-# CONFIG_DEBUG_TIMEKEEPING is not set
-CONFIG_TIMER_STATS=y
-
-#
-# Lock Debugging (spinlocks, mutexes, etc...)
-#
-# CONFIG_DEBUG_RT_MUTEXES is not set
-# CONFIG_DEBUG_SPINLOCK is not set
-# CONFIG_DEBUG_MUTEXES is not set
-# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
-# CONFIG_DEBUG_LOCK_ALLOC is not set
-# CONFIG_PROVE_LOCKING is not set
-# CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_ATOMIC_SLEEP is not set
-# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
-CONFIG_LOCK_TORTURE_TEST=m
-CONFIG_STACKTRACE=y
-# CONFIG_DEBUG_KOBJECT is not set
-CONFIG_DEBUG_BUGVERBOSE=y
-# CONFIG_DEBUG_LIST is not set
-# CONFIG_DEBUG_PI_LIST is not set
-# CONFIG_DEBUG_SG is not set
-# CONFIG_DEBUG_NOTIFIERS is not set
-# CONFIG_DEBUG_CREDENTIALS is not set
-
-#
-# RCU Debugging
-#
-# CONFIG_PROVE_RCU is not set
-# CONFIG_SPARSE_RCU_POINTER is not set
-CONFIG_TORTURE_TEST=m
-# CONFIG_RCU_TORTURE_TEST is not set
-CONFIG_RCU_CPU_STALL_TIMEOUT=21
-# CONFIG_RCU_CPU_STALL_INFO is not set
-# CONFIG_RCU_TRACE is not set
-# CONFIG_RCU_EQS_DEBUG is not set
-# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
-CONFIG_NOTIFIER_ERROR_INJECTION=m
-CONFIG_CPU_NOTIFIER_ERROR_INJECT=m
-CONFIG_PM_NOTIFIER_ERROR_INJECT=m
-# CONFIG_OF_RECONFIG_NOTIFIER_ERROR_INJECT is not set
-# CONFIG_FAULT_INJECTION is not set
-# CONFIG_LATENCYTOP is not set
-CONFIG_NOP_TRACER=y
-CONFIG_HAVE_FUNCTION_TRACER=y
-CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
-CONFIG_HAVE_DYNAMIC_FTRACE=y
-CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
-CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
-CONFIG_TRACER_MAX_TRACE=y
-CONFIG_TRACE_CLOCK=y
-CONFIG_RING_BUFFER=y
-CONFIG_EVENT_TRACING=y
-CONFIG_CONTEXT_SWITCH_TRACER=y
-CONFIG_RING_BUFFER_ALLOW_SWAP=y
-CONFIG_TRACING=y
-CONFIG_GENERIC_TRACER=y
-CONFIG_TRACING_SUPPORT=y
-CONFIG_FTRACE=y
-CONFIG_FUNCTION_TRACER=y
-CONFIG_FUNCTION_GRAPH_TRACER=y
-# CONFIG_IRQSOFF_TRACER is not set
-CONFIG_SCHED_TRACER=y
-CONFIG_FTRACE_SYSCALLS=y
-CONFIG_TRACER_SNAPSHOT=y
-# CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set
-CONFIG_BRANCH_PROFILE_NONE=y
-# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
-# CONFIG_PROFILE_ALL_BRANCHES is not set
-CONFIG_STACK_TRACER=y
-CONFIG_BLK_DEV_IO_TRACE=y
-CONFIG_KPROBE_EVENT=y
-CONFIG_UPROBE_EVENT=y
-CONFIG_PROBE_EVENTS=y
-CONFIG_DYNAMIC_FTRACE=y
-CONFIG_FUNCTION_PROFILER=y
-CONFIG_FTRACE_MCOUNT_RECORD=y
-# CONFIG_FTRACE_STARTUP_TEST is not set
-# CONFIG_TRACEPOINT_BENCHMARK is not set
-# CONFIG_RING_BUFFER_BENCHMARK is not set
-# CONFIG_RING_BUFFER_STARTUP_TEST is not set
-# CONFIG_TRACE_ENUM_MAP_FILE is not set
-
-#
-# Runtime Testing
-#
-# CONFIG_LKDTM is not set
-# CONFIG_TEST_LIST_SORT is not set
-# CONFIG_KPROBES_SANITY_TEST is not set
-# CONFIG_BACKTRACE_SELF_TEST is not set
-CONFIG_RBTREE_TEST=m
-CONFIG_INTERVAL_TREE_TEST=m
-CONFIG_PERCPU_TEST=m
-# CONFIG_ATOMIC64_SELFTEST is not set
-CONFIG_ASYNC_RAID6_TEST=m
-# CONFIG_TEST_HEXDUMP is not set
-CONFIG_TEST_STRING_HELPERS=m
-CONFIG_TEST_KSTRTOX=m
-# CONFIG_TEST_RHASHTABLE is not set
-# CONFIG_DMA_API_DEBUG is not set
-# CONFIG_TEST_LKM is not set
-CONFIG_TEST_USER_COPY=m
-CONFIG_TEST_BPF=m
-# CONFIG_TEST_FIRMWARE is not set
-# CONFIG_TEST_UDELAY is not set
-# CONFIG_MEMTEST is not set
-CONFIG_SAMPLES=y
-# CONFIG_SAMPLE_TRACE_EVENTS is not set
-# CONFIG_SAMPLE_KOBJECT is not set
-# CONFIG_SAMPLE_KPROBES is not set
-# CONFIG_SAMPLE_HW_BREAKPOINT is not set
-# CONFIG_SAMPLE_KFIFO is not set
-# CONFIG_SAMPLE_KDB is not set
-CONFIG_HAVE_ARCH_KGDB=y
-CONFIG_KGDB=y
-CONFIG_KGDB_SERIAL_CONSOLE=y
-# CONFIG_KGDB_TESTS is not set
-CONFIG_KGDB_KDB=y
-CONFIG_KDB_DEFAULT_ENABLE=0x1
-CONFIG_KDB_KEYBOARD=y
-CONFIG_KDB_CONTINUE_CATASTROPHIC=0
-# CONFIG_PPC_DISABLE_WERROR is not set
-CONFIG_PPC_WERROR=y
-# CONFIG_STRICT_MM_TYPECHECKS is not set
-CONFIG_PRINT_STACK_DEPTH=64
-# CONFIG_HCALL_STATS is not set
-# CONFIG_PPC_EMULATED_STATS is not set
-# CONFIG_CODE_PATCHING_SELFTEST is not set
-# CONFIG_FTR_FIXUP_SELFTEST is not set
-# CONFIG_MSI_BITMAP_SELFTEST is not set
-CONFIG_XMON=y
-# CONFIG_XMON_DEFAULT is not set
-CONFIG_XMON_DISASSEMBLY=y
-CONFIG_DEBUGGER=y
-# CONFIG_BOOTX_TEXT is not set
-# CONFIG_PPC_EARLY_DEBUG is not set
-CONFIG_STRICT_DEVMEM=y
-
-#
-# Security options
-#
-CONFIG_KEYS=y
-CONFIG_PERSISTENT_KEYRINGS=y
-CONFIG_BIG_KEYS=y
-CONFIG_TRUSTED_KEYS=y
-CONFIG_ENCRYPTED_KEYS=y
-# CONFIG_SECURITY_DMESG_RESTRICT is not set
-CONFIG_SECURITY=y
-CONFIG_SECURITYFS=y
-CONFIG_SECURITY_NETWORK=y
-CONFIG_SECURITY_NETWORK_XFRM=y
-CONFIG_SECURITY_PATH=y
-CONFIG_LSM_MMAP_MIN_ADDR=0
-CONFIG_SECURITY_SELINUX=y
-CONFIG_SECURITY_SELINUX_BOOTPARAM=y
-CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0
-CONFIG_SECURITY_SELINUX_DISABLE=y
-CONFIG_SECURITY_SELINUX_DEVELOP=y
-CONFIG_SECURITY_SELINUX_AVC_STATS=y
-CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
-# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
-CONFIG_SECURITY_SMACK=y
-# CONFIG_SECURITY_SMACK_BRINGUP is not set
-# CONFIG_SECURITY_SMACK_NETFILTER is not set
-CONFIG_SECURITY_TOMOYO=y
-CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048
-CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024
-# CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER is not set
-CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/sbin/tomoyo-init"
-CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/sbin/init"
-CONFIG_SECURITY_APPARMOR=y
-CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1
-CONFIG_SECURITY_APPARMOR_HASH=y
-CONFIG_SECURITY_YAMA=y
-CONFIG_SECURITY_YAMA_STACKED=y
-CONFIG_INTEGRITY=y
-CONFIG_INTEGRITY_SIGNATURE=y
-CONFIG_INTEGRITY_ASYMMETRIC_KEYS=y
-CONFIG_INTEGRITY_AUDIT=y
-CONFIG_IMA=y
-CONFIG_IMA_MEASURE_PCR_IDX=10
-CONFIG_IMA_LSM_RULES=y
-# CONFIG_IMA_TEMPLATE is not set
-CONFIG_IMA_NG_TEMPLATE=y
-# CONFIG_IMA_SIG_TEMPLATE is not set
-CONFIG_IMA_DEFAULT_TEMPLATE="ima-ng"
-CONFIG_IMA_DEFAULT_HASH_SHA1=y
-# CONFIG_IMA_DEFAULT_HASH_SHA256 is not set
-# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
-# CONFIG_IMA_DEFAULT_HASH_WP512 is not set
-CONFIG_IMA_DEFAULT_HASH="sha1"
-CONFIG_IMA_APPRAISE=y
-CONFIG_IMA_TRUSTED_KEYRING=y
-# CONFIG_IMA_LOAD_X509 is not set
-CONFIG_EVM=y
-CONFIG_EVM_ATTR_FSUUID=y
-CONFIG_EVM_EXTRA_SMACK_XATTRS=y
-# CONFIG_DEFAULT_SECURITY_SELINUX is not set
-# CONFIG_DEFAULT_SECURITY_SMACK is not set
-# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
-CONFIG_DEFAULT_SECURITY_APPARMOR=y
-# CONFIG_DEFAULT_SECURITY_YAMA is not set
-# CONFIG_DEFAULT_SECURITY_DAC is not set
-CONFIG_DEFAULT_SECURITY="apparmor"
-CONFIG_KEYS_COMPAT=y
-CONFIG_XOR_BLOCKS=m
-CONFIG_ASYNC_CORE=m
-CONFIG_ASYNC_MEMCPY=m
-CONFIG_ASYNC_XOR=m
-CONFIG_ASYNC_PQ=m
-CONFIG_ASYNC_RAID6_RECOV=m
-CONFIG_CRYPTO=y
-
-#
-# Crypto core or helper
-#
-CONFIG_CRYPTO_ALGAPI=y
-CONFIG_CRYPTO_ALGAPI2=y
-CONFIG_CRYPTO_AEAD=m
-CONFIG_CRYPTO_AEAD2=y
-CONFIG_CRYPTO_BLKCIPHER=y
-CONFIG_CRYPTO_BLKCIPHER2=y
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_HASH2=y
-CONFIG_CRYPTO_RNG=y
-CONFIG_CRYPTO_RNG2=y
-CONFIG_CRYPTO_RNG_DEFAULT=m
-CONFIG_CRYPTO_PCOMP=m
-CONFIG_CRYPTO_PCOMP2=y
-CONFIG_CRYPTO_AKCIPHER2=y
-# CONFIG_CRYPTO_RSA is not set
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_MANAGER2=y
-CONFIG_CRYPTO_USER=m
-CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
-CONFIG_CRYPTO_GF128MUL=m
-CONFIG_CRYPTO_NULL=m
-CONFIG_CRYPTO_PCRYPT=m
-CONFIG_CRYPTO_WORKQUEUE=y
-CONFIG_CRYPTO_CRYPTD=m
-# CONFIG_CRYPTO_MCRYPTD is not set
-CONFIG_CRYPTO_AUTHENC=m
-CONFIG_CRYPTO_TEST=m
-
-#
-# Authenticated Encryption with Associated Data
-#
-CONFIG_CRYPTO_CCM=m
-CONFIG_CRYPTO_GCM=m
-# CONFIG_CRYPTO_CHACHA20POLY1305 is not set
-CONFIG_CRYPTO_SEQIV=m
-CONFIG_CRYPTO_ECHAINIV=m
-
-#
-# Block modes
-#
-CONFIG_CRYPTO_CBC=y
-CONFIG_CRYPTO_CTR=m
-CONFIG_CRYPTO_CTS=m
-CONFIG_CRYPTO_ECB=y
-CONFIG_CRYPTO_LRW=m
-CONFIG_CRYPTO_PCBC=m
-CONFIG_CRYPTO_XTS=m
-
-#
-# Hash modes
-#
-CONFIG_CRYPTO_CMAC=m
-CONFIG_CRYPTO_HMAC=y
-CONFIG_CRYPTO_XCBC=m
-CONFIG_CRYPTO_VMAC=m
-
-#
-# Digest
-#
-CONFIG_CRYPTO_CRC32C=y
-CONFIG_CRYPTO_CRC32=m
-CONFIG_CRYPTO_CRCT10DIF=y
-CONFIG_CRYPTO_GHASH=m
-# CONFIG_CRYPTO_POLY1305 is not set
-CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_MD5=y
-# CONFIG_CRYPTO_MD5_PPC is not set
-CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_RMD128=m
-CONFIG_CRYPTO_RMD160=m
-CONFIG_CRYPTO_RMD256=m
-CONFIG_CRYPTO_RMD320=m
-CONFIG_CRYPTO_SHA1=y
-CONFIG_CRYPTO_SHA1_PPC=m
-CONFIG_CRYPTO_SHA256=y
-CONFIG_CRYPTO_SHA512=y
-CONFIG_CRYPTO_TGR192=m
-CONFIG_CRYPTO_WP512=m
-
-#
-# Ciphers
-#
-CONFIG_CRYPTO_AES=y
-CONFIG_CRYPTO_ANUBIS=m
-CONFIG_CRYPTO_ARC4=m
-CONFIG_CRYPTO_BLOWFISH=m
-CONFIG_CRYPTO_BLOWFISH_COMMON=m
-CONFIG_CRYPTO_CAMELLIA=m
-CONFIG_CRYPTO_CAST_COMMON=m
-CONFIG_CRYPTO_CAST5=m
-CONFIG_CRYPTO_CAST6=m
-CONFIG_CRYPTO_DES=m
-CONFIG_CRYPTO_FCRYPT=m
-CONFIG_CRYPTO_KHAZAD=m
-CONFIG_CRYPTO_SALSA20=m
-# CONFIG_CRYPTO_CHACHA20 is not set
-CONFIG_CRYPTO_SEED=m
-CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_TEA=m
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_TWOFISH_COMMON=m
-
-#
-# Compression
-#
-CONFIG_CRYPTO_DEFLATE=m
-CONFIG_CRYPTO_ZLIB=m
-CONFIG_CRYPTO_LZO=y
-# CONFIG_CRYPTO_842 is not set
-CONFIG_CRYPTO_LZ4=m
-CONFIG_CRYPTO_LZ4HC=m
-
-#
-# Random Number Generation
-#
-CONFIG_CRYPTO_ANSI_CPRNG=m
-CONFIG_CRYPTO_DRBG_MENU=m
-CONFIG_CRYPTO_DRBG_HMAC=y
-# CONFIG_CRYPTO_DRBG_HASH is not set
-# CONFIG_CRYPTO_DRBG_CTR is not set
-CONFIG_CRYPTO_DRBG=m
-CONFIG_CRYPTO_JITTERENTROPY=m
-CONFIG_CRYPTO_USER_API=m
-CONFIG_CRYPTO_USER_API_HASH=m
-CONFIG_CRYPTO_USER_API_SKCIPHER=m
-# CONFIG_CRYPTO_USER_API_RNG is not set
-# CONFIG_CRYPTO_USER_API_AEAD is not set
-CONFIG_CRYPTO_HASH_INFO=y
-CONFIG_CRYPTO_HW=y
-# CONFIG_CRYPTO_DEV_NX is not set
-# CONFIG_CRYPTO_DEV_VMX is not set
-CONFIG_ASYMMETRIC_KEY_TYPE=y
-CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
-CONFIG_PUBLIC_KEY_ALGO_RSA=y
-CONFIG_X509_CERTIFICATE_PARSER=y
-# CONFIG_PKCS7_MESSAGE_PARSER is not set
-CONFIG_HAVE_KVM_IRQCHIP=y
-CONFIG_HAVE_KVM_IRQFD=y
-CONFIG_HAVE_KVM_EVENTFD=y
-CONFIG_KVM_MMIO=y
-CONFIG_KVM_COMPAT=y
-CONFIG_VIRTUALIZATION=y
-CONFIG_KVM=y
-CONFIG_KVM_BOOK3S_HANDLER=y
-CONFIG_KVM_BOOK3S_64_HANDLER=y
-CONFIG_KVM_BOOK3S_PR_POSSIBLE=y
-CONFIG_KVM_BOOK3S_HV_POSSIBLE=y
-CONFIG_KVM_BOOK3S_64=m
-CONFIG_KVM_BOOK3S_64_HV=m
-CONFIG_KVM_BOOK3S_64_PR=m
-# CONFIG_KVM_BOOK3S_HV_EXIT_TIMING is not set
-CONFIG_KVM_XICS=y
diff --git a/arch/ppc64le/modules_load b/arch/ppc64le/modules_load
index d988b7d..2b8de31 100644
--- a/arch/ppc64le/modules_load
+++ b/arch/ppc64le/modules_load
@@ -1,39 +1,5 @@
-# Module groups for genkernel initramfs auto-loading
-
-# RAID
-MODULES_ATARAID="ataraid pdcraid hptraid"
-MODULES_DMRAID="dm-mod dm-mirror dm-crypt"
-MODULES_MDADM="md-mod dm-mod dm-snapshot dm-mirror dm-bbr dm-raid dm-crypt raid0 raid1 raid456 raid5 raid6 raid10 linear multipath async_raid6_recov async_pq libcrc32c raid6_pq async_tx async_memcpy async_xor"
-MODULES_LVM="dm-mod dm-bio-prison dm-bufio dm-cache dm-cache-smq dm-crypt dm-delay dm-era dm-flakey dm-integrity dm-log dm-log-userspace dm-log-writes dm-mirror dm-raid dm-region-hash dm-snapshot dm-switch dm-thin-pool dm-verity dm-zero dm-persistent-data ${MODULES_MDADM}"
-MODULES_MULTIPATH="dm-mod dm-multipath dm-round-robin dm-rdac dm-queue-length dm-service-time"
-
-# Hardware (IDE/SCSI/SATA/NVMe)
-MODULES_NVME="nvme-core nvme nvme-fabrics nvme-rdma nvme-loop nvme-fc"
-MODULES_PATA="pata_mpiix pata_pdc2027x pata_radisys pata_sil680 pata_rz1000 pata_efar pata_cmd64x pata_hpt366 pata_hpt37x pata_hpt3x3 pata_hpt3x2n pata_optidma pata_it821x pata_artop pata_oldpiix pata_cypress pata_platform pata_serverworks pata_legacy pata_ns87410 pata_ns87415 pata_pcmcia pata_isapnp pata_it8213 pata_ali pata_amd pata_opti pata_atiixp pata_triflex pata_pdc202xx_old pata_sc1200 pata_qdi pata_netcell pata_sis pata_hpt3x2n pata_marvell pata_jmicron pata_via pata_cs5520 pata_cs5530 pata_cs5535 pata_sl82c105 libata"
-MODULES_SATA="sata_promise sata_sil sata_sil24 sata_svw sata_via sata_nv sata_sx4 sata_sis sata_uli sata_vsc sata_qstor ahci libata ata_piix sata_mv sata_inic162x pdc_adma"
-MODULES_SCSI="sd_mod sg sr_mod aic79xx aic7xxx aic7xxx_old arcmsr BusLogic ncr53c8xx NCR53c406a initio advansys aha1740 aha1542 aha152x dtc fdomain gdth pas16 pci2220i pci2000 psi240i qlogicfas qlogicfc qlogicisp qlogicpti seagate t128 u14-34f ultrastor wd7000 sym53c8xx dmx3191d imm in2000 ips qla1280 sim710 sym53c416 dc395x atp870u mptbase mptscsih mptspi mptfc mptsas 3w-sas 3w-xxxx 3w-9xxx cpqarray cciss hpsa DAC960 sx8 aacraid megaraid megaraid_mbox megaraid_mm megaraid_sas qla2xxx lpfc scsi_transport_fc aic94xx mpt2sas mpt3sas virtio_scsi virtio_blk"
-MODULES_WAITSCAN="scsi_wait_scan"
-MODULES_BLOCK="sdhci_pci"
-
-# Hardware (Network)
-MODULES_NET="e1000 tg3 broadcom bcm_phy_lib virtio_net"
-
-# iSCSI support
-MODULES_ISCSI="scsi_transport_iscsi libiscsi iscsi_tcp"
-
-# Hardware (Pluggable)
-MODULES_FIREWIRE="ieee1394 ohci1394 sbp2"
-MODULES_PCMCIA="pcmcia pcmcia_core yenta_socket pd6729 i82092 i82365 tcic ds ide-cs firmware_class"
-MODULES_USB="ehci-pci ehci-hcd uhci usb-ohci hid usb-storage uas uhci-hcd ohci-hcd xhci-hcd xhci-pci xhci-plat usbhid hid-generic sl811-hcd hid-a4tech hid-apple hid-belkin hid-cherry hid-chicony hid-cypress hid-dummy hid-ezkey hid-gyration hid-logitech hid-logitech-dj hid-microsoft hid-monterey hid-petalynx hid-pl hid-samsung hid-sony hid-sunplus"
-
-# Filesystems
-MODULES_FS="ext2 ext3 ext4 btrfs reiserfs jfs nfs xfs zfs f2fs fuse loop squashfs aufs overlay cramfs configfs fscrypto efivarfs msdos qemu_fw_cfg"
+# ppc64le module groups for genkernel initramfs auto-loading
+# (extending defaults/modules_load)
# Crypto
-MODULES_CRYPTO="sha256_generic cbc crc32c crc32c_generic crc32c-vpmsum crc32 crc32_generic aes_generic xts"
-
-# Hyper-V
-MODULES_HYPERV="hv_utils hv_vmbus hv_balloon hyperv_keyboard hv_netvsc hid_hyperv hv_utils hyperv_fb hv_storvsc"
-
-# Virtio
-MODULES_VIRTIO="virtio_scsi virtio_blk virtio_console virtio-rng virtio virtio_balloon virtio_input virtio_ring virtio_pci virtio_mmio virtio_crypto virtio_net"
+MODULES_CRYPTO+=" crc32c-vpmsum"
diff --git a/arch/riscv64/arch-config b/arch/riscv64/arch-config
new file mode 100644
index 0000000..2c1dd16
--- /dev/null
+++ b/arch/riscv64/arch-config
@@ -0,0 +1,449 @@
+CONFIG_64BIT=y
+# CONFIG_AHCI_CEVA is not set
+# CONFIG_AHCI_QORIQ is not set
+# CONFIG_AK8974 is not set
+CONFIG_AK8975=m
+# CONFIG_AL_FIC is not set
+# CONFIG_ALTERA_MBOX is not set
+CONFIG_AQTION=m
+CONFIG_ARCH_DMA_ADDR_T_64BIT=y
+CONFIG_ARCH_FLATMEM_ENABLE=y
+CONFIG_ARCH_HAS_BINFMT_FLAT=y
+CONFIG_ARCH_HAS_GIGANTIC_PAGE=y
+CONFIG_ARCH_HAS_KCOV=y
+CONFIG_ARCH_HAS_MMIOWB=y
+CONFIG_ARCH_MMAP_RND_BITS=18
+CONFIG_ARCH_MMAP_RND_BITS_MAX=24
+CONFIG_ARCH_MMAP_RND_BITS_MIN=18
+CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y
+CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y
+# CONFIG_ARCH_RV32I is not set
+CONFIG_ARCH_RV64I=y
+CONFIG_ARCH_SUPPORTS_INT128=y
+CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+# CONFIG_ATH10K_AHB is not set
+CONFIG_AUDIT_GENERIC=y
+CONFIG_AUTOFS4_FS=y
+CONFIG_AUTOFS_FS=y
+# CONFIG_AXP20X_ADC is not set
+# CONFIG_AXP20X_POWER is not set
+CONFIG_AXP288_ADC=m
+CONFIG_AXP288_FUEL_GAUGE=m
+# CONFIG_BACKLIGHT_LED is not set
+# CONFIG_BATTERY_GOLDFISH is not set
+CONFIG_BATTERY_MAX17042=m
+# CONFIG_BCACHE is not set
+# CONFIG_BINFMT_FLAT is not set
+CONFIG_BLK_DEV_PMEM=m
+CONFIG_BLK_DEV_SKD=m
+CONFIG_BMC150_MAGN_I2C=m
+CONFIG_BMC150_MAGN=m
+CONFIG_BMG160_I2C=m
+CONFIG_BMG160=m
+CONFIG_BMG160_SPI=m
+CONFIG_BTT=y
+# CONFIG_CAN_FLEXCAN is not set
+# CONFIG_CAN_GRCAN is not set
+CONFIG_CHARGER_BQ24190=m
+# CONFIG_CHARGER_DETECTOR_MAX14656 is not set
+# CONFIG_CHARGER_UCS1002 is not set
+CONFIG_CLK_ANALOGBITS_WRPLL_CLN28HPC=y
+CONFIG_CLK_SIFIVE_PRCI=y
+CONFIG_CLK_SIFIVE=y
+CONFIG_CLONE_BACKWARDS=y
+# CONFIG_CM3605 is not set
+CONFIG_CMDLINE=""
+CONFIG_CMODEL_MEDANY=y
+# CONFIG_CMODEL_MEDLOW is not set
+# CONFIG_COMMON_CLK_CDCE925 is not set
+# CONFIG_COMMON_CLK_FIXED_MMIO is not set
+# CONFIG_COMMON_CLK_SI514 is not set
+# CONFIG_COMMON_CLK_SI570 is not set
+# CONFIG_COMMON_CLK_VC5 is not set
+# CONFIG_CONTEXT_TRACKING_FORCE is not set
+CONFIG_CONTEXT_TRACKING=y
+# CONFIG_CPU_THERMAL is not set
+CONFIG_CRC_CCITT=y
+CONFIG_CRYPTO_CRC32C=y
+# CONFIG_CRYPTO_DEV_CCREE is not set
+# CONFIG_CRYPTO_DEV_NITROX_CNN55XX is not set
+CONFIG_CRYPTO_LIB_POLY1305_RSIZE=1
+CONFIG_CRYPTO_USER_API_HASH=y
+CONFIG_CRYPTO_USER_API=y
+CONFIG_DAX_DRIVER=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
+CONFIG_DEFERRED_STRUCT_PAGE_INIT=y
+CONFIG_DMA_DECLARE_COHERENT=y
+CONFIG_DMA_OF=y
+# CONFIG_DMARD06 is not set
+CONFIG_DMA_VIRTUAL_CHANNELS=m
+# CONFIG_DPOT_DAC is not set
+CONFIG_DTC=y
+# CONFIG_DW_AXI_DMAC is not set
+CONFIG_EFI_GENERIC_STUB=y
+CONFIG_EFI_PARAMS_FROM_FDT=y
+# CONFIG_ENVELOPE_DETECTOR is not set
+# CONFIG_FB_GOLDFISH is not set
+# CONFIG_FB_MODE_HELPERS is not set
+# CONFIG_FB_SSD1307 is not set
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_FOPS=m
+CONFIG_FB_SYS_IMAGEBLIT=m
+# CONFIG_FLATMEM_MANUAL is not set
+CONFIG_FPU=y
+CONFIG_FRAME_POINTER=y
+CONFIG_FRAME_WARN=2048
+# CONFIG_FSI is not set
+# CONFIG_FSL_EDMA is not set
+CONFIG_GCC_VERSION=100200
+CONFIG_GENERIC_ARCH_TOPOLOGY=y
+CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
+CONFIG_GENERIC_CSUM=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_IOREMAP=y
+CONFIG_GENERIC_IRQ_MULTI_HANDLER=y
+CONFIG_GENERIC_LIB_DEVMEM_IS_ALLOWED=y
+CONFIG_GENERIC_SCHED_CLOCK=y
+# CONFIG_GENWQE is not set
+# CONFIG_GOLDFISH_PIPE is not set
+# CONFIG_GOLDFISH_TTY is not set
+CONFIG_GOLDFISH=y
+# CONFIG_GPIO_74X164 is not set
+# CONFIG_GPIO_74XX_MMIO is not set
+# CONFIG_GPIO_ADNP is not set
+# CONFIG_GPIO_ALTERA is not set
+# CONFIG_GPIO_CADENCE is not set
+# CONFIG_GPIO_FTGPIO010 is not set
+# CONFIG_GPIO_GRGPIO is not set
+# CONFIG_GPIO_GW_PLD is not set
+# CONFIG_GPIO_HLWD is not set
+# CONFIG_GPIO_LOGICVC is not set
+# CONFIG_GPIO_SAMA5D2_PIOBU is not set
+# CONFIG_GPIO_SIFIVE is not set
+# CONFIG_GPIO_SYSCON is not set
+# CONFIG_GPIO_WATCHDOG is not set
+CONFIG_HANDLE_DOMAIN_IRQ=y
+CONFIG_HAVE_64BIT_ALIGNED_ACCESS=y
+CONFIG_HAVE_ARCH_KASAN=y
+CONFIG_HAVE_ARCH_KGDB_QXFER_PKT=y
+CONFIG_HAVE_CONTEXT_TRACKING=y
+CONFIG_HAVE_FUTEX_CMPXCHG=y
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
+# CONFIG_HISI_HIKEY_USB is not set
+# CONFIG_HT16K33 is not set
+CONFIG_HVC_DRIVER=y
+CONFIG_HVC_RISCV_SBI=y
+# CONFIG_HW_RANDOM_CCTRNG is not set
+# CONFIG_I2C_ALI1535 is not set
+# CONFIG_I2C_ALI1563 is not set
+# CONFIG_I2C_ALI15X3 is not set
+# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set
+# CONFIG_I2C_DEMUX_PINCTRL is not set
+# CONFIG_I2C_MUX_GPMUX is not set
+# CONFIG_I2C_MUX_PINCTRL is not set
+# CONFIG_I2C_RK3X is not set
+# CONFIG_I2C_SIS5595 is not set
+# CONFIG_I2C_SIS630 is not set
+# CONFIG_IIO_MUX is not set
+# CONFIG_IIO_RESCALE is not set
+CONFIG_INFINIBAND_BNXT_RE=m
+CONFIG_INFINIBAND_EFA=m
+CONFIG_INFINIBAND_QEDR=m
+# CONFIG_INPUT_ATMEL_CAPTOUCH is not set
+CONFIG_INPUT_AXP20X_PEK=m
+CONFIG_IONIC=m
+CONFIG_IPV6=y
+# CONFIG_IR_GPIO_CIR is not set
+# CONFIG_IR_GPIO_TX is not set
+# CONFIG_IR_HIX5HD2 is not set
+# CONFIG_IR_PWM_TX is not set
+CONFIG_IRQCHIP=y
+# CONFIG_IR_SPI is not set
+CONFIG_KCMP=y
+# CONFIG_KCOV is not set
+# CONFIG_KEYBOARD_BCM is not set
+# CONFIG_KEYBOARD_CAP11XX is not set
+# CONFIG_KEYBOARD_GOLDFISH_EVENTS is not set
+# CONFIG_KEYBOARD_OMAP4 is not set
+CONFIG_LIBFDT=y
+CONFIG_LIBNVDIMM=m
+# CONFIG_LITEX_SOC_CONTROLLER is not set
+# CONFIG_MAILBOX_TEST is not set
+CONFIG_MAILBOX=y
+# CONFIG_MANTIS_CORE is not set
+# CONFIG_MAX5821 is not set
+CONFIG_MAXPHYSMEM_128GB=y
+# CONFIG_MDIO_BUS_MUX_GPIO is not set
+# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
+# CONFIG_MDIO_BUS_MUX_MULTIPLEXER is not set
+# CONFIG_MDIO_HISI_FEMAC is not set
+# CONFIG_MDIO_IPQ4019 is not set
+# CONFIG_MDIO_IPQ8064 is not set
+# CONFIG_MDIO_OCTEON is not set
+# CONFIG_MDIO_THUNDER is not set
+CONFIG_MEDIA_PCI_SUPPORT=y
+# CONFIG_MFD_ACT8945A is not set
+# CONFIG_MFD_ATMEL_FLEXCOM is not set
+# CONFIG_MFD_ATMEL_HLCDC is not set
+CONFIG_MFD_AXP20X_I2C=m
+CONFIG_MFD_AXP20X=m
+# CONFIG_MFD_CPCAP is not set
+# CONFIG_MFD_GATEWORKS_GSC is not set
+# CONFIG_MFD_HI6421_PMIC is not set
+# CONFIG_MFD_MAX77650 is not set
+# CONFIG_MFD_MAX77686 is not set
+# CONFIG_MFD_RK808 is not set
+# CONFIG_MFD_RN5T618 is not set
+# CONFIG_MFD_STMFX is not set
+# CONFIG_MFD_STMPE is not set
+CONFIG_MFD_SYSCON=y
+# CONFIG_MFD_TI_LP87565 is not set
+# CONFIG_MFD_TPS65217 is not set
+# CONFIG_MFD_TPS65218 is not set
+# CONFIG_MICROCHIP_PIT64B is not set
+CONFIG_MLX5_INFINIBAND=m
+# CONFIG_MMC_DW is not set
+# CONFIG_MMC_GOLDFISH is not set
+# CONFIG_MMC_SDHCI_AM654 is not set
+# CONFIG_MMC_SDHCI_CADENCE is not set
+# CONFIG_MMC_SDHCI_MILBEAUT is not set
+# CONFIG_MMC_SDHCI_OF_ARASAN is not set
+# CONFIG_MMC_SDHCI_OF_ASPEED is not set
+# CONFIG_MMC_SDHCI_OF_AT91 is not set
+# CONFIG_MMC_SDHCI_OF_DWCMSHC is not set
+# CONFIG_MMC_SDHCI_OMAP is not set
+CONFIG_MMIOWB=y
+CONFIG_MODULE_SECTIONS=y
+CONFIG_MODULES_USE_ELF_RELA=y
+# CONFIG_MOXTET is not set
+CONFIG_MTD_BLKDEVS=m
+CONFIG_MTD_BLOCK=m
+# CONFIG_MTD_NAND_CADENCE is not set
+# CONFIG_MTD_NAND_CAFE is not set
+# CONFIG_MTD_NAND_DENALI_DT is not set
+CONFIG_MTD_NAND_ECC_SW_HAMMING=y
+# CONFIG_MTD_NAND_INTEL_LGM is not set
+CONFIG_MTD_OF_PARTS=m
+# CONFIG_MUX_MMIO is not set
+CONFIG_ND_BLK=m
+CONFIG_ND_BTT=m
+CONFIG_ND_CLAIM=y
+CONFIG_NO_HZ_FULL=y
+# CONFIG_NO_HZ_IDLE is not set
+CONFIG_NR_CPUS=8
+CONFIG_NTB_IDT=m
+CONFIG_NTB=m
+# CONFIG_NTB_MSI is not set
+CONFIG_NTB_NETDEV=m
+CONFIG_NTB_PERF=m
+CONFIG_NTB_PINGPONG=m
+CONFIG_NTB_SWITCHTEC=m
+CONFIG_NTB_TOOL=m
+CONFIG_NTB_TRANSPORT=m
+CONFIG_NVDIMM_KEYS=y
+# CONFIG_NVMEM_REBOOT_MODE is not set
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_EARLY_FLATTREE=y
+CONFIG_OF_FLATTREE=y
+CONFIG_OF_GPIO=y
+CONFIG_OF_IOMMU=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_KOBJ=y
+CONFIG_OF_MDIO=m
+CONFIG_OF_NET=y
+# CONFIG_OF_OVERLAY is not set
+CONFIG_OF_PMEM=m
+CONFIG_OF_RESERVED_MEM=y
+# CONFIG_OF_UNITTEST is not set
+CONFIG_OF=y
+CONFIG_PA_BITS=56
+CONFIG_PAGE_OFFSET=0xffffffe000000000
+CONFIG_PCI_DOMAINS_GENERIC=y
+# CONFIG_PCIE_CADENCE_PLAT_HOST is not set
+# CONFIG_PCIE_XILINX is not set
+# CONFIG_PCI_FTPCI100 is not set
+# CONFIG_PCI_HOST_GENERIC is not set
+# CONFIG_PCI_J721E_HOST is not set
+CONFIG_PGTABLE_LEVELS=3
+# CONFIG_PHY_CADENCE_DPHY is not set
+# CONFIG_PHY_CADENCE_SALVO is not set
+# CONFIG_PHY_CADENCE_SIERRA is not set
+# CONFIG_PHY_CADENCE_TORRENT is not set
+# CONFIG_PHY_FSL_IMX8MQ_USB is not set
+# CONFIG_PHY_MAPPHONE_MDM6600 is not set
+# CONFIG_PHY_MIXEL_MIPI_DPHY is not set
+# CONFIG_PHY_OCELOT_SERDES is not set
+CONFIG_PHYS_ADDR_T_64BIT=y
+# CONFIG_PINCTRL_AXP209 is not set
+# CONFIG_PINCTRL_MICROCHIP_SGPIO is not set
+# CONFIG_PINCTRL_OCELOT is not set
+# CONFIG_PINCTRL_SINGLE is not set
+# CONFIG_PINCTRL_STMFX is not set
+# CONFIG_PLATFORM_MHU is not set
+CONFIG_PM_GENERIC_DOMAINS_OF=y
+# CONFIG_POWER_RESET_GPIO is not set
+# CONFIG_POWER_RESET_GPIO_RESTART is not set
+# CONFIG_POWER_RESET_LTC2952 is not set
+# CONFIG_POWER_RESET_REGULATOR is not set
+CONFIG_POWER_RESET_SYSCON_POWEROFF=y
+CONFIG_POWER_RESET_SYSCON=y
+# CONFIG_PROFILE_ALL_BRANCHES is not set
+# CONFIG_PWM_ATMEL_TCB is not set
+# CONFIG_PWM_FSL_FTM is not set
+# CONFIG_PWM_SIFIVE is not set
+CONFIG_PWRSEQ_EMMC=m
+# CONFIG_PWRSEQ_SD8787 is not set
+CONFIG_PWRSEQ_SIMPLE=m
+CONFIG_QED_RDMA=y
+CONFIG_RCU_NOCB_CPU=y
+CONFIG_REGMAP_MMIO=y
+# CONFIG_REGULATOR_AXP20X is not set
+# CONFIG_REGULATOR_BD9571MWV is not set
+# CONFIG_REGULATOR_DA9121 is not set
+# CONFIG_REGULATOR_FAN53880 is not set
+# CONFIG_REGULATOR_MAX8973 is not set
+# CONFIG_REGULATOR_MCP16502 is not set
+# CONFIG_REGULATOR_MP5416 is not set
+# CONFIG_REGULATOR_MP886X is not set
+# CONFIG_REGULATOR_MPQ7920 is not set
+# CONFIG_REGULATOR_PF8X00 is not set
+# CONFIG_REGULATOR_SY8106A is not set
+# CONFIG_REGULATOR_SY8824X is not set
+# CONFIG_REGULATOR_SY8827N is not set
+# CONFIG_REGULATOR_VCTRL is not set
+# CONFIG_RESET_INTEL_GW is not set
+CONFIG_RISCV_BASE_PMU=y
+CONFIG_RISCV_INTC=y
+CONFIG_RISCV_ISA_C=y
+CONFIG_RISCV_SBI_V01=y
+CONFIG_RISCV_SBI=y
+CONFIG_RISCV_TIMER=y
+CONFIG_RISCV=y
+# CONFIG_RPMSG_QCOM_GLINK_RPM is not set
+# CONFIG_RTC_DRV_CADENCE is not set
+# CONFIG_RTC_DRV_EFI is not set
+CONFIG_RTC_DRV_GOLDFISH=y
+# CONFIG_RTC_DRV_HYM8563 is not set
+# CONFIG_RTC_DRV_ISL12026 is not set
+# CONFIG_RTC_DRV_R7301 is not set
+# CONFIG_RTC_DRV_ZYNQMP is not set
+# CONFIG_SD_ADC_MODULATOR is not set
+# CONFIG_SENSORS_GPIO_FAN is not set
+# CONFIG_SENSORS_LIS3_SPI is not set
+# CONFIG_SENSORS_PWM_FAN is not set
+# CONFIG_SERIAL_8250_ASPEED_VUART is not set
+# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set
+# CONFIG_SERIAL_EARLYCON_RISCV_SBI is not set
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_SERIAL_SIFIVE_CONSOLE=y
+CONFIG_SERIAL_SIFIVE=y
+# CONFIG_SERIAL_XILINX_PS_UART is not set
+# CONFIG_SERIO_APBPS2 is not set
+CONFIG_SFC=m
+# CONFIG_SFC_MCDI_LOGGING is not set
+CONFIG_SFC_MCDI_MON=y
+CONFIG_SFC_MTD=y
+CONFIG_SFC_SRIOV=y
+# CONFIG_SIFIVE_L2 is not set
+CONFIG_SIFIVE_PLIC=y
+# CONFIG_SIMPLE_PM_BUS is not set
+# CONFIG_SND_AUDIO_GRAPH_CARD is not set
+# CONFIG_SND_SOC_SOF_OF is not set
+CONFIG_SOC_SIFIVE=y
+CONFIG_SOC_VIRT=y
+CONFIG_SPARSEMEM_EXTREME=y
+CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
+CONFIG_SPARSEMEM_VMEMMAP=y
+# CONFIG_SPI_FSL_SPI is not set
+# CONFIG_STAGING_BOARD is not set
+# CONFIG_SYSCON_REBOOT_MODE is not set
+CONFIG_SYS_SUPPORTS_HUGETLBFS=y
+# CONFIG_THERMAL_MMIO is not set
+CONFIG_THERMAL_OF=y
+# CONFIG_TI_ADS124S08 is not set
+# CONFIG_TI_ADS8344 is not set
+# CONFIG_TI_ADS8688 is not set
+CONFIG_TIMER_OF=y
+CONFIG_TIMER_PROBE=y
+# CONFIG_TOUCHSCREEN_AR1021_I2C is not set
+CONFIG_TOUCHSCREEN_AUO_PIXCIR=m
+# CONFIG_TOUCHSCREEN_CHIPONE_ICN8318 is not set
+# CONFIG_TOUCHSCREEN_EGALAX is not set
+# CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set
+CONFIG_TUNE_GENERIC=y
+# CONFIG_USB_AMD5536UDC is not set
+# CONFIG_USB_AUDIO is not set
+CONFIG_USB_BDC_UDC=m
+# CONFIG_USB_CDC_COMPOSITE is not set
+# CONFIG_USB_CONFIGFS is not set
+# CONFIG_USB_DUMMY_HCD is not set
+# CONFIG_USB_EG20T is not set
+# CONFIG_USB_ETH is not set
+# CONFIG_USB_FOTG210_UDC is not set
+# CONFIG_USB_FUNCTIONFS is not set
+# CONFIG_USB_G_ACM_MS is not set
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+# CONFIG_USB_GADGET_DEBUG_FS is not set
+# CONFIG_USB_GADGET_DEBUG is not set
+# CONFIG_USB_GADGETFS is not set
+CONFIG_USB_GADGET=m
+CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
+# CONFIG_USB_GADGET_TARGET is not set
+CONFIG_USB_GADGET_VBUS_DRAW=2
+# CONFIG_USB_GADGET_XILINX is not set
+# CONFIG_USB_G_DBGP is not set
+# CONFIG_USB_G_HID is not set
+# CONFIG_USB_G_MULTI is not set
+# CONFIG_USB_G_NCM is not set
+# CONFIG_USB_GOKU is not set
+# CONFIG_USB_G_PRINTER is not set
+# CONFIG_USB_GR_UDC is not set
+# CONFIG_USB_G_SERIAL is not set
+# CONFIG_USB_G_WEBCAM is not set
+# CONFIG_USBIP_VUDC is not set
+# CONFIG_USB_M66592 is not set
+# CONFIG_USB_MASS_STORAGE is not set
+# CONFIG_USB_MAX3420_UDC is not set
+# CONFIG_USB_MIDI_GADGET is not set
+# CONFIG_USB_MV_U3D is not set
+# CONFIG_USB_MV_UDC is not set
+# CONFIG_USB_NET2272 is not set
+# CONFIG_USB_NET2280 is not set
+# CONFIG_USB_PULSE8_CEC is not set
+# CONFIG_USB_PXA27X is not set
+# CONFIG_USB_R8A66597 is not set
+# CONFIG_USB_RAINSHADOW_CEC is not set
+# CONFIG_USB_RAW_GADGET is not set
+# CONFIG_USB_SNP_UDC_PLAT is not set
+# CONFIG_USB_ZERO is not set
+CONFIG_VA_BITS=39
+# CONFIG_VALIDATE_FS_PARSER is not set
+# CONFIG_VF610_ADC is not set
+# CONFIG_VF610_DAC is not set
+# CONFIG_VIDEO_BT848 is not set
+# CONFIG_VIDEO_CX18 is not set
+# CONFIG_VIDEO_CX23885 is not set
+# CONFIG_VIDEO_CX25821 is not set
+# CONFIG_VIDEO_CX88 is not set
+# CONFIG_VIDEO_DT3155 is not set
+# CONFIG_VIDEO_GO7007_USB is not set
+# CONFIG_VIDEO_HEXIUM_GEMINI is not set
+# CONFIG_VIDEO_HEXIUM_ORION is not set
+# CONFIG_VIDEO_IVTV is not set
+# CONFIG_VIDEO_MXB is not set
+# CONFIG_VIDEO_OV5640 is not set
+# CONFIG_VIDEO_OV5645 is not set
+# CONFIG_VIDEO_SAA7134 is not set
+# CONFIG_VIDEO_SAA7164 is not set
+# CONFIG_VIDEO_SOLO6X10 is not set
+# CONFIG_VIDEO_TW5864 is not set
+# CONFIG_VIDEO_TW686X is not set
+# CONFIG_VIDEO_TW68 is not set
+CONFIG_VIRT_CPU_ACCOUNTING_GEN=y
+CONFIG_VIRT_CPU_ACCOUNTING=y
+# CONFIG_WLCORE_SPI is not set
+# CONFIG_XIL_AXIS_FIFO is not set
+# CONFIG_XILLYBUS_OF is not set
+CONFIG_ZONE_DMA32=y
diff --git a/arch/riscv64/config.sh b/arch/riscv64/config.sh
new file mode 100644
index 0000000..6e57e3d
--- /dev/null
+++ b/arch/riscv64/config.sh
@@ -0,0 +1,8 @@
+# $Id$
+#
+# This file is sourced AFTER defaults/config.sh; generic options should be set there.
+# Arch-specific options that normally shouldn't be changed.
+#
+KERNEL_MAKE_DIRECTIVE="Image"
+KERNEL_MAKE_DIRECTIVE_2=""
+KERNEL_BINARY="arch/riscv/boot/Image"
diff --git a/arch/riscv64/modules_load b/arch/riscv64/modules_load
new file mode 100644
index 0000000..fe9cf4a
--- /dev/null
+++ b/arch/riscv64/modules_load
@@ -0,0 +1,2 @@
+# riscv64 module groups for genkernel initramfs auto-loading
+# (extending defaults/modules_load)
diff --git a/arch/s390/modules_load b/arch/s390/modules_load
index 5bcd5d9..5870292 100644
--- a/arch/s390/modules_load
+++ b/arch/s390/modules_load
@@ -1,39 +1,2 @@
-# Module groups for genkernel initramfs auto-loading
-
-# RAID
-MODULES_ATARAID="ataraid pdcraid hptraid"
-MODULES_DMRAID="dm-mod dm-mirror dm-crypt"
-MODULES_MDADM="md-mod dm-mod dm-snapshot dm-mirror dm-bbr dm-raid dm-crypt raid0 raid1 raid456 raid5 raid6 raid10 linear multipath async_raid6_recov async_pq libcrc32c raid6_pq async_tx async_memcpy async_xor"
-MODULES_LVM="dm-mod dm-bio-prison dm-bufio dm-cache dm-cache-smq dm-crypt dm-delay dm-era dm-flakey dm-integrity dm-log dm-log-userspace dm-log-writes dm-mirror dm-raid dm-region-hash dm-snapshot dm-switch dm-thin-pool dm-verity dm-zero dm-persistent-data ${MODULES_MDADM}"
-MODULES_MULTIPATH="dm-mod dm-multipath dm-round-robin dm-rdac dm-queue-length dm-service-time"
-
-# Hardware (IDE/SCSI/SATA/NVMe)
-MODULES_NVME="nvme-core nvme nvme-fabrics nvme-rdma nvme-loop nvme-fc"
-MODULES_PATA="pata_mpiix pata_pdc2027x pata_radisys pata_sil680 pata_rz1000 pata_efar pata_cmd64x pata_hpt366 pata_hpt37x pata_hpt3x3 pata_hpt3x2n pata_optidma pata_it821x pata_artop pata_oldpiix pata_cypress pata_platform pata_serverworks pata_legacy pata_ns87410 pata_ns87415 pata_pcmcia pata_isapnp pata_it8213 pata_ali pata_amd pata_opti pata_atiixp pata_triflex pata_pdc202xx_old pata_sc1200 pata_qdi pata_netcell pata_sis pata_hpt3x2n pata_marvell pata_jmicron pata_via pata_cs5520 pata_cs5530 pata_cs5535 pata_sl82c105 libata"
-MODULES_SATA="sata_promise sata_sil sata_sil24 sata_svw sata_via sata_nv sata_sx4 sata_sis sata_uli sata_vsc sata_qstor ahci libata ata_piix sata_mv sata_inic162x pdc_adma"
-MODULES_SCSI="sd_mod sg sr_mod aic79xx aic7xxx aic7xxx_old arcmsr BusLogic ncr53c8xx NCR53c406a initio advansys aha1740 aha1542 aha152x dtc fdomain gdth pas16 pci2220i pci2000 psi240i qlogicfas qlogicfc qlogicisp qlogicpti seagate t128 u14-34f ultrastor wd7000 sym53c8xx dmx3191d imm in2000 ips qla1280 sim710 sym53c416 dc395x atp870u mptbase mptscsih mptspi mptfc mptsas 3w-sas 3w-xxxx 3w-9xxx cpqarray cciss hpsa DAC960 sx8 aacraid megaraid megaraid_mbox megaraid_mm megaraid_sas qla2xxx lpfc scsi_transport_fc aic94xx mpt2sas mpt3sas virtio_scsi virtio_blk"
-MODULES_WAITSCAN="scsi_wait_scan"
-MODULES_BLOCK="sdhci_pci"
-
-# Hardware (Network)
-MODULES_NET="e1000 tg3 broadcom bcm_phy_lib virtio_net"
-
-# iSCSI support
-MODULES_ISCSI="scsi_transport_iscsi libiscsi iscsi_tcp"
-
-# Hardware (Pluggable)
-MODULES_FIREWIRE="ieee1394 ohci1394 sbp2"
-MODULES_PCMCIA="pcmcia pcmcia_core yenta_socket pd6729 i82092 i82365 tcic ds ide-cs firmware_class"
-MODULES_USB="ehci-pci ehci-hcd uhci usb-ohci hid usb-storage uas uhci-hcd ohci-hcd xhci-hcd xhci-pci xhci-plat usbhid hid-generic sl811-hcd hid-a4tech hid-apple hid-belkin hid-cherry hid-chicony hid-cypress hid-dummy hid-ezkey hid-gyration hid-logitech hid-logitech-dj hid-microsoft hid-monterey hid-petalynx hid-pl hid-samsung hid-sony hid-sunplus"
-
-# Filesystems
-MODULES_FS="ext2 ext3 ext4 btrfs reiserfs jfs nfs xfs zfs f2fs fuse loop squashfs aufs overlay cramfs configfs fscrypto efivarfs msdos qemu_fw_cfg"
-
-# Crypto
-MODULES_CRYPTO="sha256_generic cbc crc32c crc32c_generic crc32 crc32_generic aes_generic xts"
-
-# Hyper-V
-MODULES_HYPERV="hv_utils hv_vmbus hv_balloon hyperv_keyboard hv_netvsc hid_hyperv hv_utils hyperv_fb hv_storvsc"
-
-# Virtio
-MODULES_VIRTIO="virtio_scsi virtio_blk virtio_console virtio-rng virtio virtio_balloon virtio_input virtio_ring virtio_pci virtio_mmio virtio_crypto virtio_net"
+# s390 module groups for genkernel initramfs auto-loading
+# (extending defaults/modules_load)
diff --git a/arch/s390x/arch-config b/arch/s390x/arch-config
new file mode 100644
index 0000000..1119d0b
--- /dev/null
+++ b/arch/s390x/arch-config
@@ -0,0 +1 @@
+THIS_CONFIG_IS_BROKEN
diff --git a/arch/s390x/config.sh b/arch/s390x/config.sh
new file mode 100644
index 0000000..7ef4aa2
--- /dev/null
+++ b/arch/s390x/config.sh
@@ -0,0 +1,8 @@
+# $Id$
+#
+# This file is sourced AFTER defaults/config.sh; generic options should be set there.
+# Arch-specific options that normally shouldn't be changed.
+#
+KERNEL_MAKE_DIRECTIVE=""
+KERNEL_MAKE_DIRECTIVE_2=""
+KERNEL_BINARY="arch/s390/boot/bzImage"
diff --git a/arch/s390x/kernel-config b/arch/s390x/kernel-config
new file mode 100644
index 0000000..afd0127
--- /dev/null
+++ b/arch/s390x/kernel-config
@@ -0,0 +1,1527 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# Linux/s390 4.3.0 Kernel Configuration
+#
+CONFIG_MMU=y
+CONFIG_ZONE_DMA=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
+CONFIG_ARCH_DMA_ADDR_T_64BIT=y
+CONFIG_PGSTE=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_KEXEC=y
+CONFIG_AUDIT_ARCH=y
+CONFIG_NO_IOPORT_MAP=y
+# CONFIG_PCI_QUIRKS is not set
+CONFIG_ARCH_SUPPORTS_UPROBES=y
+CONFIG_S390=y
+CONFIG_SCHED_OMIT_FRAME_POINTER=y
+CONFIG_PGTABLE_LEVELS=4
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_IRQ_WORK=y
+CONFIG_BUILDTIME_EXTABLE_SORT=y
+
+#
+# General setup
+#
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_CROSS_COMPILE=""
+# CONFIG_COMPILE_TEST is not set
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_BZIP2=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_XZ=y
+CONFIG_HAVE_KERNEL_LZO=y
+CONFIG_HAVE_KERNEL_LZ4=y
+# CONFIG_KERNEL_GZIP is not set
+# CONFIG_KERNEL_BZIP2 is not set
+# CONFIG_KERNEL_LZMA is not set
+CONFIG_KERNEL_XZ=y
+# CONFIG_KERNEL_LZO is not set
+# CONFIG_KERNEL_LZ4 is not set
+CONFIG_DEFAULT_HOSTNAME="s390x"
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+CONFIG_CROSS_MEMORY_ATTACH=y
+CONFIG_FHANDLE=y
+CONFIG_USELIB=y
+# CONFIG_AUDIT is not set
+CONFIG_HAVE_ARCH_AUDITSYSCALL=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_TIME_VSYSCALL=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+
+#
+# Timers subsystem
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ_COMMON=y
+# CONFIG_HZ_PERIODIC is not set
+CONFIG_NO_HZ_IDLE=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+
+#
+# CPU/Task time and stats accounting
+#
+CONFIG_VIRT_CPU_ACCOUNTING=y
+CONFIG_VIRT_CPU_ACCOUNTING_NATIVE=y
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_RCU=y
+# CONFIG_RCU_EXPERT is not set
+CONFIG_SRCU=y
+# CONFIG_TASKS_RCU is not set
+CONFIG_RCU_STALL_COMMON=y
+# CONFIG_TREE_RCU_TRACE is not set
+# CONFIG_RCU_EXPEDITE_BOOT is not set
+CONFIG_BUILD_BIN2C=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=17
+CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
+CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
+# CONFIG_CGROUPS is not set
+# CONFIG_CHECKPOINT_RESTORE is not set
+CONFIG_NAMESPACES=y
+CONFIG_UTS_NS=y
+CONFIG_IPC_NS=y
+# CONFIG_USER_NS is not set
+CONFIG_PID_NS=y
+CONFIG_NET_NS=y
+# CONFIG_SCHED_AUTOGROUP is not set
+# CONFIG_SYSFS_DEPRECATED is not set
+# CONFIG_RELAY is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+CONFIG_RD_BZIP2=y
+CONFIG_RD_LZMA=y
+CONFIG_RD_XZ=y
+CONFIG_RD_LZO=y
+# CONFIG_RD_LZ4 is not set
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+CONFIG_SYSCTL_EXCEPTION_TRACE=y
+CONFIG_BPF=y
+CONFIG_EXPERT=y
+CONFIG_MULTIUSER=y
+# CONFIG_SGETMASK_SYSCALL is not set
+CONFIG_SYSFS_SYSCALL=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_HAVE_FUTEX_CMPXCHG=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+# CONFIG_BPF_SYSCALL is not set
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+CONFIG_ADVISE_SYSCALLS=y
+# CONFIG_USERFAULTFD is not set
+CONFIG_MEMBARRIER=y
+CONFIG_EMBEDDED=y
+CONFIG_HAVE_PERF_EVENTS=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_PERF_EVENTS=y
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
+# CONFIG_VM_EVENT_COUNTERS is not set
+# CONFIG_COMPAT_BRK is not set
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+# CONFIG_SYSTEM_DATA_VERIFICATION is not set
+# CONFIG_PROFILING is not set
+CONFIG_KEXEC_CORE=y
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+# CONFIG_JUMP_LABEL is not set
+# CONFIG_UPROBES is not set
+CONFIG_HAVE_64BIT_ALIGNED_ACCESS=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
+CONFIG_HAVE_CMPXCHG_LOCAL=y
+CONFIG_HAVE_CMPXCHG_DOUBLE=y
+CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
+CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
+CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y
+CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
+CONFIG_SECCOMP_FILTER=y
+# CONFIG_CC_STACKPROTECTOR is not set
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING=y
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
+CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
+CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
+CONFIG_MODULES_USE_ELF_RELA=y
+CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
+CONFIG_CLONE_BACKWARDS2=y
+CONFIG_OLD_SIGSUSPEND3=y
+CONFIG_OLD_SIGACTION=y
+CONFIG_COMPAT_OLD_SIGACTION=y
+
+#
+# GCOV-based kernel profiling
+#
+CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
+# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+# CONFIG_MODULE_SIG is not set
+# CONFIG_MODULE_COMPRESS is not set
+CONFIG_MODULES_TREE_LOOKUP=y
+CONFIG_STOP_MACHINE=y
+CONFIG_BLOCK=y
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_BLK_DEV_BSGLIB is not set
+# CONFIG_BLK_DEV_INTEGRITY is not set
+# CONFIG_BLK_CMDLINE_PARSER is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_AIX_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+CONFIG_IBM_PARTITION=y
+# CONFIG_MAC_PARTITION is not set
+# CONFIG_MSDOS_PARTITION is not set
+# CONFIG_LDM_PARTITION is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_KARMA_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+# CONFIG_SYSV68_PARTITION is not set
+# CONFIG_CMDLINE_PARTITION is not set
+CONFIG_BLOCK_COMPAT=y
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_DEADLINE=y
+# CONFIG_IOSCHED_CFQ is not set
+CONFIG_DEFAULT_DEADLINE=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="deadline"
+CONFIG_PREEMPT_NOTIFIERS=y
+CONFIG_ARCH_INLINE_SPIN_TRYLOCK=y
+CONFIG_ARCH_INLINE_SPIN_TRYLOCK_BH=y
+CONFIG_ARCH_INLINE_SPIN_LOCK=y
+CONFIG_ARCH_INLINE_SPIN_LOCK_BH=y
+CONFIG_ARCH_INLINE_SPIN_LOCK_IRQ=y
+CONFIG_ARCH_INLINE_SPIN_LOCK_IRQSAVE=y
+CONFIG_ARCH_INLINE_SPIN_UNLOCK=y
+CONFIG_ARCH_INLINE_SPIN_UNLOCK_BH=y
+CONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQ=y
+CONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE=y
+CONFIG_ARCH_INLINE_READ_TRYLOCK=y
+CONFIG_ARCH_INLINE_READ_LOCK=y
+CONFIG_ARCH_INLINE_READ_LOCK_BH=y
+CONFIG_ARCH_INLINE_READ_LOCK_IRQ=y
+CONFIG_ARCH_INLINE_READ_LOCK_IRQSAVE=y
+CONFIG_ARCH_INLINE_READ_UNLOCK=y
+CONFIG_ARCH_INLINE_READ_UNLOCK_BH=y
+CONFIG_ARCH_INLINE_READ_UNLOCK_IRQ=y
+CONFIG_ARCH_INLINE_READ_UNLOCK_IRQRESTORE=y
+CONFIG_ARCH_INLINE_WRITE_TRYLOCK=y
+CONFIG_ARCH_INLINE_WRITE_LOCK=y
+CONFIG_ARCH_INLINE_WRITE_LOCK_BH=y
+CONFIG_ARCH_INLINE_WRITE_LOCK_IRQ=y
+CONFIG_ARCH_INLINE_WRITE_LOCK_IRQSAVE=y
+CONFIG_ARCH_INLINE_WRITE_UNLOCK=y
+CONFIG_ARCH_INLINE_WRITE_UNLOCK_BH=y
+CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQ=y
+CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE=y
+CONFIG_INLINE_SPIN_TRYLOCK=y
+CONFIG_INLINE_SPIN_TRYLOCK_BH=y
+CONFIG_INLINE_SPIN_LOCK=y
+CONFIG_INLINE_SPIN_LOCK_BH=y
+CONFIG_INLINE_SPIN_LOCK_IRQ=y
+CONFIG_INLINE_SPIN_LOCK_IRQSAVE=y
+CONFIG_INLINE_SPIN_UNLOCK_BH=y
+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
+CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE=y
+CONFIG_INLINE_READ_TRYLOCK=y
+CONFIG_INLINE_READ_LOCK=y
+CONFIG_INLINE_READ_LOCK_BH=y
+CONFIG_INLINE_READ_LOCK_IRQ=y
+CONFIG_INLINE_READ_LOCK_IRQSAVE=y
+CONFIG_INLINE_READ_UNLOCK=y
+CONFIG_INLINE_READ_UNLOCK_BH=y
+CONFIG_INLINE_READ_UNLOCK_IRQ=y
+CONFIG_INLINE_READ_UNLOCK_IRQRESTORE=y
+CONFIG_INLINE_WRITE_TRYLOCK=y
+CONFIG_INLINE_WRITE_LOCK=y
+CONFIG_INLINE_WRITE_LOCK_BH=y
+CONFIG_INLINE_WRITE_LOCK_IRQ=y
+CONFIG_INLINE_WRITE_LOCK_IRQSAVE=y
+CONFIG_INLINE_WRITE_UNLOCK=y
+CONFIG_INLINE_WRITE_UNLOCK_BH=y
+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
+CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE=y
+CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+CONFIG_RWSEM_SPIN_ON_OWNER=y
+CONFIG_LOCK_SPIN_ON_OWNER=y
+# CONFIG_FREEZER is not set
+CONFIG_HAVE_LIVEPATCH=y
+
+#
+# Processor type and features
+#
+CONFIG_HAVE_MARCH_Z900_FEATURES=y
+# CONFIG_HAVE_MARCH_Z990_FEATURES is not set
+# CONFIG_HAVE_MARCH_Z9_109_FEATURES is not set
+# CONFIG_HAVE_MARCH_Z10_FEATURES is not set
+# CONFIG_HAVE_MARCH_Z196_FEATURES is not set
+# CONFIG_HAVE_MARCH_ZEC12_FEATURES is not set
+# CONFIG_HAVE_MARCH_Z13_FEATURES is not set
+CONFIG_MARCH_Z900=y
+# CONFIG_MARCH_Z990 is not set
+# CONFIG_MARCH_Z9_109 is not set
+# CONFIG_MARCH_Z10 is not set
+# CONFIG_MARCH_Z196 is not set
+# CONFIG_MARCH_ZEC12 is not set
+# CONFIG_MARCH_Z13 is not set
+# CONFIG_MARCH_Z900_TUNE is not set
+# CONFIG_MARCH_Z990_TUNE is not set
+# CONFIG_MARCH_Z9_109_TUNE is not set
+CONFIG_MARCH_Z10_TUNE=y
+# CONFIG_MARCH_Z196_TUNE is not set
+# CONFIG_MARCH_ZEC12_TUNE is not set
+# CONFIG_MARCH_Z13_TUNE is not set
+# CONFIG_TUNE_DEFAULT is not set
+# CONFIG_TUNE_Z900 is not set
+# CONFIG_TUNE_Z990 is not set
+# CONFIG_TUNE_Z9_109 is not set
+CONFIG_TUNE_Z10=y
+# CONFIG_TUNE_Z196 is not set
+# CONFIG_TUNE_ZEC12 is not set
+# CONFIG_TUNE_Z13 is not set
+CONFIG_64BIT=y
+CONFIG_COMPAT=y
+CONFIG_SYSVIPC_COMPAT=y
+CONFIG_KEYS_COMPAT=y
+CONFIG_SMP=y
+CONFIG_NR_CPUS=16
+CONFIG_HOTPLUG_CPU=y
+CONFIG_SCHED_SMT=y
+# CONFIG_NODES_SPAN_OTHER_NODES is not set
+# CONFIG_NUMA is not set
+CONFIG_SCHED_MC=y
+CONFIG_SCHED_BOOK=y
+CONFIG_SCHED_TOPOLOGY=y
+CONFIG_PREEMPT_NONE=y
+# CONFIG_PREEMPT_VOLUNTARY is not set
+# CONFIG_PREEMPT is not set
+CONFIG_HZ_100=y
+# CONFIG_HZ_250 is not set
+# CONFIG_HZ_300 is not set
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=100
+CONFIG_SCHED_HRTICK=y
+
+#
+# Memory setup
+#
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_DEFAULT=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
+CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
+CONFIG_FORCE_MAX_ZONEORDER=9
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_SPARSEMEM_MANUAL=y
+CONFIG_SPARSEMEM=y
+CONFIG_HAVE_MEMORY_PRESENT=y
+CONFIG_SPARSEMEM_EXTREME=y
+CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
+CONFIG_SPARSEMEM_VMEMMAP=y
+CONFIG_HAVE_MEMBLOCK=y
+CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
+CONFIG_HAVE_MEMBLOCK_PHYS_MAP=y
+CONFIG_NO_BOOTMEM=y
+# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
+# CONFIG_MEMORY_HOTPLUG is not set
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_MEMORY_BALLOON=y
+CONFIG_BALLOON_COMPACTION=y
+CONFIG_COMPACTION=y
+CONFIG_MIGRATION=y
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_KSM=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_TRANSPARENT_HUGEPAGE=y
+CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
+# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
+# CONFIG_CLEANCACHE is not set
+# CONFIG_FRONTSWAP is not set
+# CONFIG_CMA is not set
+# CONFIG_ZPOOL is not set
+# CONFIG_ZBUD is not set
+# CONFIG_ZSMALLOC is not set
+# CONFIG_IDLE_PAGE_TRACKING is not set
+CONFIG_PACK_STACK=y
+# CONFIG_CHECK_STACK is not set
+# CONFIG_WARN_DYNAMIC_STACK is not set
+
+#
+# I/O subsystem
+#
+CONFIG_QDIO=m
+# CONFIG_PCI is not set
+# CONFIG_PCI_DOMAINS is not set
+# CONFIG_HAS_IOMEM is not set
+# CONFIG_IOMMU_HELPER is not set
+# CONFIG_HAS_DMA is not set
+# CONFIG_NEED_SG_DMA_LENGTH is not set
+# CONFIG_NEED_DMA_MAP_STATE is not set
+# CONFIG_CHSC_SCH is not set
+CONFIG_SCM_BUS=y
+CONFIG_EADM_SCH=m
+
+#
+# Dump support
+#
+# CONFIG_CRASH_DUMP is not set
+
+#
+# Executable file formats / Emulations
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_COMPAT_BINFMT_ELF=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_BINFMT_SCRIPT=y
+# CONFIG_HAVE_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
+CONFIG_COREDUMP=y
+CONFIG_SECCOMP=y
+
+#
+# Power Management
+#
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+# CONFIG_HIBERNATION is not set
+# CONFIG_PM is not set
+CONFIG_NET=y
+CONFIG_NET_INGRESS=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_DIAG is not set
+CONFIG_UNIX=y
+# CONFIG_UNIX_DIAG is not set
+# CONFIG_XFRM_USER is not set
+# CONFIG_NET_KEY is not set
+CONFIG_IUCV=y
+CONFIG_AFIUCV=m
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+# CONFIG_IP_ADVANCED_ROUTER is not set
+# CONFIG_IP_PNP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE_DEMUX is not set
+# CONFIG_NET_IP_TUNNEL is not set
+# CONFIG_IP_MROUTE is not set
+CONFIG_SYN_COOKIES=y
+# CONFIG_NET_UDP_TUNNEL is not set
+# CONFIG_NET_FOU is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+# CONFIG_INET_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+CONFIG_INET_LRO=y
+# CONFIG_INET_DIAG is not set
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+# CONFIG_IPV6 is not set
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NET_PTP_CLASSIFY is not set
+# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+# CONFIG_NETFILTER_ADVANCED is not set
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_INGRESS=y
+# CONFIG_NETFILTER_NETLINK_LOG is not set
+CONFIG_NF_CONNTRACK=y
+CONFIG_NF_LOG_COMMON=m
+# CONFIG_NF_CONNTRACK_PROCFS is not set
+# CONFIG_NF_CONNTRACK_FTP is not set
+# CONFIG_NF_CONNTRACK_IRC is not set
+# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
+# CONFIG_NF_CONNTRACK_SIP is not set
+# CONFIG_NF_CT_NETLINK is not set
+# CONFIG_NF_TABLES is not set
+CONFIG_NETFILTER_XTABLES=y
+
+#
+# Xtables combined modules
+#
+# CONFIG_NETFILTER_XT_MARK is not set
+
+#
+# Xtables targets
+#
+CONFIG_NETFILTER_XT_TARGET_LOG=m
+# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
+# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
+
+#
+# Xtables matches
+#
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
+# CONFIG_NETFILTER_XT_MATCH_CONNTRACK is not set
+CONFIG_NETFILTER_XT_MATCH_STATE=y
+# CONFIG_IP_SET is not set
+# CONFIG_IP_VS is not set
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV4=y
+CONFIG_NF_CONNTRACK_IPV4=y
+# CONFIG_NF_DUP_IPV4 is not set
+CONFIG_NF_LOG_ARP=m
+CONFIG_NF_LOG_IPV4=m
+CONFIG_NF_REJECT_IPV4=y
+# CONFIG_NF_NAT_IPV4 is not set
+CONFIG_IP_NF_IPTABLES=y
+CONFIG_IP_NF_FILTER=y
+CONFIG_IP_NF_TARGET_REJECT=y
+# CONFIG_IP_NF_NAT is not set
+# CONFIG_IP_NF_MANGLE is not set
+# CONFIG_IP_NF_RAW is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_RDS is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_L2TP is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_PHONET is not set
+# CONFIG_IEEE802154 is not set
+# CONFIG_NET_SCHED is not set
+# CONFIG_DCB is not set
+CONFIG_DNS_RESOLVER=y
+# CONFIG_BATMAN_ADV is not set
+# CONFIG_OPENVSWITCH is not set
+# CONFIG_VSOCKETS is not set
+# CONFIG_NETLINK_MMAP is not set
+# CONFIG_NETLINK_DIAG is not set
+# CONFIG_MPLS is not set
+# CONFIG_HSR is not set
+# CONFIG_NET_SWITCHDEV is not set
+CONFIG_RPS=y
+CONFIG_RFS_ACCEL=y
+CONFIG_XPS=y
+CONFIG_NET_RX_BUSY_POLL=y
+CONFIG_BQL=y
+CONFIG_NET_FLOW_LIMIT=y
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_CAN is not set
+# CONFIG_AF_RXRPC is not set
+# CONFIG_WIMAX is not set
+# CONFIG_RFKILL is not set
+# CONFIG_NET_9P is not set
+# CONFIG_CAIF is not set
+# CONFIG_CEPH_LIB is not set
+# CONFIG_NFC is not set
+# CONFIG_LWTUNNEL is not set
+# CONFIG_PCMCIA is not set
+CONFIG_CCW=y
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER=y
+CONFIG_UEVENT_HELPER_PATH=""
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+CONFIG_FIRMWARE_IN_KERNEL=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
+CONFIG_ALLOW_DEV_COREDUMP=y
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+CONFIG_SYS_HYPERVISOR=y
+# CONFIG_GENERIC_CPU_DEVICES is not set
+CONFIG_GENERIC_CPU_AUTOPROBE=y
+# CONFIG_DMA_SHARED_BUFFER is not set
+
+#
+# Bus devices
+#
+CONFIG_CONNECTOR=y
+CONFIG_PROC_EVENTS=y
+# CONFIG_OF is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_NULL_BLK is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+# CONFIG_BLK_DEV_DRBD is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_RAM is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+
+#
+# S/390 block device drivers
+#
+CONFIG_BLK_DEV_XPRAM=m
+CONFIG_DCSSBLK=m
+CONFIG_DASD=y
+# CONFIG_DASD_PROFILE is not set
+CONFIG_DASD_ECKD=y
+CONFIG_DASD_FBA=y
+CONFIG_DASD_DIAG=y
+CONFIG_DASD_EER=y
+CONFIG_SCM_BLOCK=m
+CONFIG_SCM_BLOCK_CLUSTER_WRITE=y
+CONFIG_VIRTIO_BLK=m
+# CONFIG_BLK_DEV_RBD is not set
+
+#
+# Misc devices
+#
+# CONFIG_DUMMY_IRQ is not set
+# CONFIG_ENCLOSURE_SERVICES is not set
+# CONFIG_C2PORT is not set
+
+#
+# EEPROM support
+#
+# CONFIG_EEPROM_93CX6 is not set
+
+#
+# Texas Instruments shared transport line discipline
+#
+
+#
+# Altera FPGA firmware download module
+#
+
+#
+# Intel MIC Bus Driver
+#
+
+#
+# SCIF Bus Driver
+#
+
+#
+# Intel MIC Host Driver
+#
+
+#
+# Intel MIC Card Driver
+#
+
+#
+# SCIF Driver
+#
+# CONFIG_ECHO is not set
+# CONFIG_CXL_BASE is not set
+# CONFIG_CXL_KERNEL_API is not set
+# CONFIG_CXL_EEH is not set
+
+#
+# SCSI device support
+#
+CONFIG_SCSI_MOD=y
+# CONFIG_RAID_ATTRS is not set
+# CONFIG_SCSI is not set
+# CONFIG_SCSI_DMA is not set
+# CONFIG_SCSI_NETLINK is not set
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=m
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID456=m
+CONFIG_MD_MULTIPATH=m
+CONFIG_MD_FAULTY=m
+# CONFIG_BCACHE is not set
+CONFIG_BLK_DEV_DM_BUILTIN=y
+CONFIG_BLK_DEV_DM=m
+# CONFIG_DM_MQ_DEFAULT is not set
+# CONFIG_DM_DEBUG is not set
+CONFIG_DM_BUFIO=m
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+# CONFIG_DM_THIN_PROVISIONING is not set
+# CONFIG_DM_CACHE is not set
+# CONFIG_DM_ERA is not set
+CONFIG_DM_MIRROR=m
+# CONFIG_DM_LOG_USERSPACE is not set
+# CONFIG_DM_RAID is not set
+CONFIG_DM_ZERO=m
+# CONFIG_DM_MULTIPATH is not set
+# CONFIG_DM_MULTIPATH_QL is not set
+# CONFIG_DM_MULTIPATH_ST is not set
+# CONFIG_DM_DELAY is not set
+# CONFIG_DM_UEVENT is not set
+# CONFIG_DM_FLAKEY is not set
+# CONFIG_DM_VERITY is not set
+# CONFIG_DM_SWITCH is not set
+# CONFIG_DM_LOG_WRITES is not set
+CONFIG_NETDEVICES=y
+CONFIG_NET_CORE=y
+# CONFIG_BONDING is not set
+# CONFIG_DUMMY is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_NET_TEAM is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_VXLAN is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+CONFIG_TUN=y
+# CONFIG_TUN_VNET_CROSS_LE is not set
+CONFIG_VETH=y
+CONFIG_VIRTIO_NET=y
+# CONFIG_NLMON is not set
+
+#
+# CAIF transport drivers
+#
+CONFIG_VHOST_NET=m
+CONFIG_VHOST_RING=m
+CONFIG_VHOST=m
+# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
+CONFIG_ETHERNET=y
+# CONFIG_NET_VENDOR_ARC is not set
+# CONFIG_NET_VENDOR_EZCHIP is not set
+# CONFIG_NET_VENDOR_INTEL is not set
+# CONFIG_NET_VENDOR_MARVELL is not set
+# CONFIG_NET_VENDOR_NATSEMI is not set
+# CONFIG_NET_VENDOR_QUALCOMM is not set
+# CONFIG_NET_VENDOR_RENESAS is not set
+# CONFIG_NET_VENDOR_ROCKER is not set
+# CONFIG_NET_VENDOR_SAMSUNG is not set
+# CONFIG_NET_VENDOR_SYNOPSYS is not set
+# CONFIG_NET_VENDOR_VIA is not set
+# CONFIG_PHYLIB is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+
+#
+# S/390 network device drivers
+#
+CONFIG_LCS=m
+CONFIG_CTCM=m
+CONFIG_NETIUCV=m
+CONFIG_SMSGIUCV=m
+CONFIG_SMSGIUCV_EVENT=m
+CONFIG_QETH=m
+CONFIG_QETH_L2=m
+CONFIG_QETH_L3=m
+CONFIG_CCWGROUP=m
+
+#
+# Host-side USB support is needed for USB Network Adapter support
+#
+
+#
+# Enable WiMAX (Networking options) to see the WiMAX drivers
+#
+# CONFIG_WAN is not set
+
+#
+# Input device support
+#
+# CONFIG_INPUT is not set
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_TTY=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_N_GSM is not set
+# CONFIG_TRACE_SINK is not set
+CONFIG_DEVMEM=y
+# CONFIG_DEVKMEM is not set
+# CONFIG_TTY_PRINTK is not set
+CONFIG_HVC_DRIVER=y
+CONFIG_HVC_IUCV=y
+CONFIG_VIRTIO_CONSOLE=y
+# CONFIG_HW_RANDOM is not set
+# CONFIG_R3964 is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_HANGCHECK_TIMER is not set
+
+#
+# S/390 character device drivers
+#
+CONFIG_TN3270=y
+CONFIG_TN3270_TTY=y
+CONFIG_TN3270_FS=y
+CONFIG_TN3270_CONSOLE=y
+CONFIG_TN3215=y
+CONFIG_TN3215_CONSOLE=y
+CONFIG_CCW_CONSOLE=y
+CONFIG_SCLP_TTY=y
+CONFIG_SCLP_CONSOLE=y
+CONFIG_SCLP_VT220_TTY=y
+CONFIG_SCLP_VT220_CONSOLE=y
+CONFIG_SCLP_CPI=m
+# CONFIG_SCLP_ASYNC is not set
+CONFIG_HMC_DRV=m
+CONFIG_S390_TAPE=m
+
+#
+# S/390 tape hardware support
+#
+CONFIG_S390_TAPE_34XX=m
+CONFIG_S390_TAPE_3590=m
+CONFIG_VMLOGRDR=m
+# CONFIG_VMCP is not set
+CONFIG_MONREADER=m
+CONFIG_MONWRITER=m
+CONFIG_S390_VMUR=m
+
+#
+# I2C support
+#
+# CONFIG_I2C is not set
+# CONFIG_SPMI is not set
+# CONFIG_HSI is not set
+
+#
+# PPS support
+#
+# CONFIG_PPS is not set
+
+#
+# PPS generators support
+#
+
+#
+# PTP clock support
+#
+# CONFIG_PTP_1588_CLOCK is not set
+
+#
+# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
+#
+# CONFIG_POWER_SUPPLY is not set
+# CONFIG_POWER_AVS is not set
+# CONFIG_THERMAL is not set
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_CORE=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
+CONFIG_SOFT_WATCHDOG=m
+CONFIG_DIAG288_WATCHDOG=y
+# CONFIG_REGULATOR is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+# CONFIG_UWB is not set
+# CONFIG_MEMSTICK is not set
+# CONFIG_NEW_LEDS is not set
+# CONFIG_ACCESSIBILITY is not set
+# CONFIG_AUXDISPLAY is not set
+# CONFIG_UIO is not set
+# CONFIG_VIRT_DRIVERS is not set
+CONFIG_VIRTIO=y
+
+#
+# Virtio drivers
+#
+CONFIG_VIRTIO_BALLOON=m
+
+#
+# Microsoft Hyper-V guest support
+#
+# CONFIG_STAGING is not set
+# CONFIG_CHROME_PLATFORMS is not set
+
+#
+# Hardware Spinlock drivers
+#
+
+#
+# Clock Source drivers
+#
+# CONFIG_ATMEL_PIT is not set
+# CONFIG_MAILBOX is not set
+# CONFIG_IOMMU_SUPPORT is not set
+
+#
+# Remoteproc drivers
+#
+
+#
+# Rpmsg drivers
+#
+
+#
+# SOC (System On Chip) specific Drivers
+#
+# CONFIG_SUNXI_SRAM is not set
+# CONFIG_SOC_TI is not set
+# CONFIG_PM_DEVFREQ is not set
+# CONFIG_EXTCON is not set
+# CONFIG_MEMORY is not set
+# CONFIG_IIO is not set
+# CONFIG_PWM is not set
+# CONFIG_RESET_CONTROLLER is not set
+# CONFIG_FMC is not set
+
+#
+# PHY Subsystem
+#
+# CONFIG_GENERIC_PHY is not set
+# CONFIG_POWERCAP is not set
+
+#
+# Performance monitor support
+#
+# CONFIG_RAS is not set
+
+#
+# Android
+#
+# CONFIG_ANDROID is not set
+# CONFIG_LIBNVDIMM is not set
+# CONFIG_NVMEM is not set
+
+#
+# File systems
+#
+# CONFIG_EXT2_FS is not set
+# CONFIG_EXT3_FS is not set
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_USE_FOR_EXT2=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+# CONFIG_EXT4_ENCRYPTION is not set
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_JBD2=y
+# CONFIG_JBD2_DEBUG is not set
+CONFIG_FS_MBCACHE=y
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+# CONFIG_REISERFS_PROC_INFO is not set
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
+CONFIG_XFS_FS=m
+# CONFIG_XFS_QUOTA is not set
+CONFIG_XFS_POSIX_ACL=y
+# CONFIG_XFS_RT is not set
+# CONFIG_XFS_WARN is not set
+# CONFIG_XFS_DEBUG is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_OCFS2_FS is not set
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
+# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
+# CONFIG_BTRFS_DEBUG is not set
+# CONFIG_BTRFS_ASSERT is not set
+# CONFIG_NILFS2_FS is not set
+# CONFIG_F2FS_FS is not set
+# CONFIG_FS_DAX is not set
+CONFIG_FS_POSIX_ACL=y
+CONFIG_EXPORTFS=y
+CONFIG_FILE_LOCKING=y
+CONFIG_FSNOTIFY=y
+# CONFIG_DNOTIFY is not set
+CONFIG_INOTIFY_USER=y
+CONFIG_FANOTIFY=y
+# CONFIG_QUOTA is not set
+# CONFIG_QUOTACTL is not set
+# CONFIG_AUTOFS4_FS is not set
+CONFIG_FUSE_FS=m
+CONFIG_CUSE=m
+# CONFIG_OVERLAY_FS is not set
+
+#
+# Caches
+#
+# CONFIG_FSCACHE is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_PROC_SYSCTL=y
+# CONFIG_PROC_PAGE_MONITOR is not set
+# CONFIG_PROC_CHILDREN is not set
+CONFIG_KERNFS=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_TMPFS_XATTR=y
+# CONFIG_HUGETLBFS is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_CONFIGFS_FS=m
+# CONFIG_MISC_FILESYSTEMS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V2=y
+CONFIG_NFS_V3=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+# CONFIG_NFS_SWAP is not set
+# CONFIG_NFS_V4_1 is not set
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+CONFIG_NFS_USE_KERNEL_DNS=y
+CONFIG_NFSD=y
+CONFIG_NFSD_V2_ACL=y
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+# CONFIG_NFSD_PNFS is not set
+CONFIG_GRACE_PERIOD=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_ACL_SUPPORT=y
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+CONFIG_SUNRPC_GSS=y
+# CONFIG_SUNRPC_DEBUG is not set
+# CONFIG_CEPH_FS is not set
+CONFIG_CIFS=m
+# CONFIG_CIFS_STATS is not set
+# CONFIG_CIFS_WEAK_PW_HASH is not set
+# CONFIG_CIFS_UPCALL is not set
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+# CONFIG_CIFS_ACL is not set
+CONFIG_CIFS_DEBUG=y
+# CONFIG_CIFS_DEBUG2 is not set
+# CONFIG_CIFS_DFS_UPCALL is not set
+# CONFIG_CIFS_SMB2 is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=m
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_ISO8859_1=m
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_MAC_ROMAN is not set
+# CONFIG_NLS_MAC_CELTIC is not set
+# CONFIG_NLS_MAC_CENTEURO is not set
+# CONFIG_NLS_MAC_CROATIAN is not set
+# CONFIG_NLS_MAC_CYRILLIC is not set
+# CONFIG_NLS_MAC_GAELIC is not set
+# CONFIG_NLS_MAC_GREEK is not set
+# CONFIG_NLS_MAC_ICELAND is not set
+# CONFIG_NLS_MAC_INUIT is not set
+# CONFIG_NLS_MAC_ROMANIAN is not set
+# CONFIG_NLS_MAC_TURKISH is not set
+CONFIG_NLS_UTF8=m
+# CONFIG_DLM is not set
+
+#
+# Kernel hacking
+#
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+
+#
+# printk and dmesg options
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
+
+#
+# Compile-time checks and compiler options
+#
+# CONFIG_DEBUG_INFO is not set
+CONFIG_ENABLE_WARN_DEPRECATED=y
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_FRAME_WARN=1024
+# CONFIG_STRIP_ASM_SYMS is not set
+# CONFIG_READABLE_ASM is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_PAGE_OWNER is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+# CONFIG_MAGIC_SYSRQ is not set
+CONFIG_DEBUG_KERNEL=y
+
+#
+# Memory Debugging
+#
+# CONFIG_PAGE_EXTENSION is not set
+# CONFIG_DEBUG_PAGEALLOC is not set
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_DEBUG_SLAB is not set
+CONFIG_HAVE_DEBUG_KMEMLEAK=y
+# CONFIG_DEBUG_KMEMLEAK is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_MEMORY_INIT is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+# CONFIG_DEBUG_SHIRQ is not set
+
+#
+# Debug Lockups and Hangs
+#
+# CONFIG_DETECT_HUNG_TASK is not set
+# CONFIG_PANIC_ON_OOPS is not set
+CONFIG_PANIC_ON_OOPS_VALUE=0
+CONFIG_PANIC_TIMEOUT=30
+CONFIG_SCHED_DEBUG=y
+# CONFIG_SCHED_INFO is not set
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_SCHED_STACK_END_CHECK is not set
+# CONFIG_DEBUG_TIMEKEEPING is not set
+# CONFIG_TIMER_STATS is not set
+
+#
+# Lock Debugging (spinlocks, mutexes, etc...)
+#
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_ATOMIC_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_LOCK_TORTURE_TEST is not set
+# CONFIG_STACKTRACE is not set
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_PI_LIST is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
+
+#
+# RCU Debugging
+#
+# CONFIG_PROVE_RCU is not set
+# CONFIG_SPARSE_RCU_POINTER is not set
+# CONFIG_TORTURE_TEST is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+CONFIG_RCU_CPU_STALL_TIMEOUT=60
+# CONFIG_RCU_TRACE is not set
+# CONFIG_RCU_EQS_DEBUG is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_NOTIFIER_ERROR_INJECTION is not set
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_LATENCYTOP is not set
+CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS=y
+CONFIG_DEBUG_STRICT_USER_COPY_CHECKS=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_TRACING_SUPPORT=y
+# CONFIG_FTRACE is not set
+
+#
+# Runtime Testing
+#
+# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_RBTREE_TEST is not set
+# CONFIG_INTERVAL_TREE_TEST is not set
+# CONFIG_PERCPU_TEST is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+# CONFIG_ASYNC_RAID6_TEST is not set
+# CONFIG_TEST_HEXDUMP is not set
+# CONFIG_TEST_STRING_HELPERS is not set
+# CONFIG_TEST_KSTRTOX is not set
+# CONFIG_TEST_RHASHTABLE is not set
+# CONFIG_TEST_LKM is not set
+# CONFIG_TEST_USER_COPY is not set
+# CONFIG_TEST_BPF is not set
+# CONFIG_TEST_FIRMWARE is not set
+# CONFIG_TEST_UDELAY is not set
+# CONFIG_MEMTEST is not set
+# CONFIG_TEST_STATIC_KEYS is not set
+# CONFIG_SAMPLES is not set
+CONFIG_STRICT_DEVMEM=y
+# CONFIG_S390_PTDUMP is not set
+CONFIG_DEBUG_SET_MODULE_RONX=y
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+# CONFIG_PERSISTENT_KEYRINGS is not set
+# CONFIG_BIG_KEYS is not set
+# CONFIG_ENCRYPTED_KEYS is not set
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITYFS is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
+CONFIG_XOR_BLOCKS=m
+CONFIG_ASYNC_CORE=m
+CONFIG_ASYNC_MEMCPY=m
+CONFIG_ASYNC_XOR=m
+CONFIG_ASYNC_PQ=m
+CONFIG_ASYNC_RAID6_RECOV=m
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD=m
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG=m
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_RNG_DEFAULT=m
+CONFIG_CRYPTO_PCOMP2=y
+CONFIG_CRYPTO_AKCIPHER2=y
+# CONFIG_CRYPTO_RSA is not set
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+# CONFIG_CRYPTO_USER is not set
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
+# CONFIG_CRYPTO_GF128MUL is not set
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_NULL2=y
+# CONFIG_CRYPTO_PCRYPT is not set
+CONFIG_CRYPTO_WORKQUEUE=y
+# CONFIG_CRYPTO_CRYPTD is not set
+# CONFIG_CRYPTO_MCRYPTD is not set
+# CONFIG_CRYPTO_AUTHENC is not set
+# CONFIG_CRYPTO_TEST is not set
+
+#
+# Authenticated Encryption with Associated Data
+#
+# CONFIG_CRYPTO_CCM is not set
+# CONFIG_CRYPTO_GCM is not set
+# CONFIG_CRYPTO_CHACHA20POLY1305 is not set
+# CONFIG_CRYPTO_SEQIV is not set
+CONFIG_CRYPTO_ECHAINIV=m
+
+#
+# Block modes
+#
+CONFIG_CRYPTO_CBC=y
+# CONFIG_CRYPTO_CTR is not set
+# CONFIG_CRYPTO_CTS is not set
+CONFIG_CRYPTO_ECB=m
+# CONFIG_CRYPTO_LRW is not set
+# CONFIG_CRYPTO_PCBC is not set
+# CONFIG_CRYPTO_XTS is not set
+
+#
+# Hash modes
+#
+CONFIG_CRYPTO_CMAC=m
+CONFIG_CRYPTO_HMAC=m
+# CONFIG_CRYPTO_XCBC is not set
+# CONFIG_CRYPTO_VMAC is not set
+
+#
+# Digest
+#
+CONFIG_CRYPTO_CRC32C=y
+# CONFIG_CRYPTO_CRC32 is not set
+# CONFIG_CRYPTO_CRCT10DIF is not set
+# CONFIG_CRYPTO_GHASH is not set
+# CONFIG_CRYPTO_POLY1305 is not set
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+# CONFIG_CRYPTO_RMD128 is not set
+# CONFIG_CRYPTO_RMD160 is not set
+# CONFIG_CRYPTO_RMD256 is not set
+# CONFIG_CRYPTO_RMD320 is not set
+# CONFIG_CRYPTO_SHA1 is not set
+CONFIG_CRYPTO_SHA256=m
+# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_TGR192 is not set
+# CONFIG_CRYPTO_WP512 is not set
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES=y
+# CONFIG_CRYPTO_ANUBIS is not set
+CONFIG_CRYPTO_ARC4=m
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_CAMELLIA is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_FCRYPT is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_SALSA20 is not set
+# CONFIG_CRYPTO_CHACHA20 is not set
+# CONFIG_CRYPTO_SEED is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_TEA is not set
+# CONFIG_CRYPTO_TWOFISH is not set
+
+#
+# Compression
+#
+# CONFIG_CRYPTO_DEFLATE is not set
+# CONFIG_CRYPTO_ZLIB is not set
+# CONFIG_CRYPTO_LZO is not set
+# CONFIG_CRYPTO_842 is not set
+# CONFIG_CRYPTO_LZ4 is not set
+# CONFIG_CRYPTO_LZ4HC is not set
+
+#
+# Random Number Generation
+#
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+CONFIG_CRYPTO_DRBG_MENU=m
+CONFIG_CRYPTO_DRBG_HMAC=y
+# CONFIG_CRYPTO_DRBG_HASH is not set
+# CONFIG_CRYPTO_DRBG_CTR is not set
+CONFIG_CRYPTO_DRBG=m
+CONFIG_CRYPTO_JITTERENTROPY=m
+# CONFIG_CRYPTO_USER_API_HASH is not set
+# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
+# CONFIG_CRYPTO_USER_API_RNG is not set
+# CONFIG_CRYPTO_USER_API_AEAD is not set
+# CONFIG_CRYPTO_HW is not set
+# CONFIG_ASYMMETRIC_KEY_TYPE is not set
+
+#
+# Certificates for signature checking
+#
+# CONFIG_SYSTEM_TRUSTED_KEYRING is not set
+# CONFIG_BINARY_PRINTF is not set
+
+#
+# Library routines
+#
+CONFIG_RAID6_PQ=m
+CONFIG_BITREVERSE=y
+# CONFIG_HAVE_ARCH_BITREVERSE is not set
+CONFIG_GENERIC_NET_UTILS=y
+CONFIG_GENERIC_FIND_FIRST_BIT=y
+# CONFIG_GENERIC_IO is not set
+CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
+# CONFIG_CRC_CCITT is not set
+CONFIG_CRC16=y
+# CONFIG_CRC_T10DIF is not set
+CONFIG_CRC_ITU_T=m
+CONFIG_CRC32=y
+# CONFIG_CRC32_SELFTEST is not set
+CONFIG_CRC32_SLICEBY8=y
+# CONFIG_CRC32_SLICEBY4 is not set
+# CONFIG_CRC32_SARWATE is not set
+# CONFIG_CRC32_BIT is not set
+# CONFIG_CRC7 is not set
+CONFIG_LIBCRC32C=m
+# CONFIG_CRC8 is not set
+# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set
+# CONFIG_RANDOM32_SELFTEST is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_LZO_COMPRESS=m
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_X86=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_BCJ=y
+# CONFIG_XZ_DEC_TEST is not set
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_XZ=y
+CONFIG_DECOMPRESS_LZO=y
+CONFIG_ASSOCIATIVE_ARRAY=y
+CONFIG_CPU_RMAP=y
+CONFIG_DQL=y
+CONFIG_NLATTR=y
+CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
+# CONFIG_CORDIC is not set
+# CONFIG_DDR is not set
+CONFIG_OID_REGISTRY=y
+# CONFIG_SG_SPLIT is not set
+CONFIG_ARCH_HAS_SG_CHAIN=y
+
+#
+# Virtualization
+#
+CONFIG_PFAULT=y
+# CONFIG_SHARED_KERNEL is not set
+CONFIG_CMM=y
+CONFIG_APPLDATA_BASE=y
+CONFIG_APPLDATA_OS=m
+CONFIG_APPLDATA_NET_SUM=m
+CONFIG_S390_HYPFS_FS=y
+CONFIG_HAVE_KVM=y
+CONFIG_HAVE_KVM_IRQCHIP=y
+CONFIG_HAVE_KVM_IRQFD=y
+CONFIG_HAVE_KVM_IRQ_ROUTING=y
+CONFIG_HAVE_KVM_EVENTFD=y
+CONFIG_KVM_ASYNC_PF=y
+CONFIG_KVM_ASYNC_PF_SYNC=y
+CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_KVM=m
+# CONFIG_KVM_S390_UCONTROL is not set
+CONFIG_S390_GUEST=y
diff --git a/arch/s390x/modules_load b/arch/s390x/modules_load
new file mode 100644
index 0000000..5870292
--- /dev/null
+++ b/arch/s390x/modules_load
@@ -0,0 +1,2 @@
+# s390 module groups for genkernel initramfs auto-loading
+# (extending defaults/modules_load)
diff --git a/arch/sparc/config.sh b/arch/sparc/config.sh
index 19c89ac..dbab06f 100755..100644
--- a/arch/sparc/config.sh
+++ b/arch/sparc/config.sh
@@ -7,4 +7,4 @@ KERNEL_MAKE_DIRECTIVE="vmlinux"
KERNEL_MAKE_DIRECTIVE_2=""
KERNEL_BINARY="vmlinux"
-USECOLOR="no"
+NOCOLOR="true"
diff --git a/arch/sparc/modules_load b/arch/sparc/modules_load
index 5bcd5d9..91ded35 100644
--- a/arch/sparc/modules_load
+++ b/arch/sparc/modules_load
@@ -1,39 +1,2 @@
-# Module groups for genkernel initramfs auto-loading
-
-# RAID
-MODULES_ATARAID="ataraid pdcraid hptraid"
-MODULES_DMRAID="dm-mod dm-mirror dm-crypt"
-MODULES_MDADM="md-mod dm-mod dm-snapshot dm-mirror dm-bbr dm-raid dm-crypt raid0 raid1 raid456 raid5 raid6 raid10 linear multipath async_raid6_recov async_pq libcrc32c raid6_pq async_tx async_memcpy async_xor"
-MODULES_LVM="dm-mod dm-bio-prison dm-bufio dm-cache dm-cache-smq dm-crypt dm-delay dm-era dm-flakey dm-integrity dm-log dm-log-userspace dm-log-writes dm-mirror dm-raid dm-region-hash dm-snapshot dm-switch dm-thin-pool dm-verity dm-zero dm-persistent-data ${MODULES_MDADM}"
-MODULES_MULTIPATH="dm-mod dm-multipath dm-round-robin dm-rdac dm-queue-length dm-service-time"
-
-# Hardware (IDE/SCSI/SATA/NVMe)
-MODULES_NVME="nvme-core nvme nvme-fabrics nvme-rdma nvme-loop nvme-fc"
-MODULES_PATA="pata_mpiix pata_pdc2027x pata_radisys pata_sil680 pata_rz1000 pata_efar pata_cmd64x pata_hpt366 pata_hpt37x pata_hpt3x3 pata_hpt3x2n pata_optidma pata_it821x pata_artop pata_oldpiix pata_cypress pata_platform pata_serverworks pata_legacy pata_ns87410 pata_ns87415 pata_pcmcia pata_isapnp pata_it8213 pata_ali pata_amd pata_opti pata_atiixp pata_triflex pata_pdc202xx_old pata_sc1200 pata_qdi pata_netcell pata_sis pata_hpt3x2n pata_marvell pata_jmicron pata_via pata_cs5520 pata_cs5530 pata_cs5535 pata_sl82c105 libata"
-MODULES_SATA="sata_promise sata_sil sata_sil24 sata_svw sata_via sata_nv sata_sx4 sata_sis sata_uli sata_vsc sata_qstor ahci libata ata_piix sata_mv sata_inic162x pdc_adma"
-MODULES_SCSI="sd_mod sg sr_mod aic79xx aic7xxx aic7xxx_old arcmsr BusLogic ncr53c8xx NCR53c406a initio advansys aha1740 aha1542 aha152x dtc fdomain gdth pas16 pci2220i pci2000 psi240i qlogicfas qlogicfc qlogicisp qlogicpti seagate t128 u14-34f ultrastor wd7000 sym53c8xx dmx3191d imm in2000 ips qla1280 sim710 sym53c416 dc395x atp870u mptbase mptscsih mptspi mptfc mptsas 3w-sas 3w-xxxx 3w-9xxx cpqarray cciss hpsa DAC960 sx8 aacraid megaraid megaraid_mbox megaraid_mm megaraid_sas qla2xxx lpfc scsi_transport_fc aic94xx mpt2sas mpt3sas virtio_scsi virtio_blk"
-MODULES_WAITSCAN="scsi_wait_scan"
-MODULES_BLOCK="sdhci_pci"
-
-# Hardware (Network)
-MODULES_NET="e1000 tg3 broadcom bcm_phy_lib virtio_net"
-
-# iSCSI support
-MODULES_ISCSI="scsi_transport_iscsi libiscsi iscsi_tcp"
-
-# Hardware (Pluggable)
-MODULES_FIREWIRE="ieee1394 ohci1394 sbp2"
-MODULES_PCMCIA="pcmcia pcmcia_core yenta_socket pd6729 i82092 i82365 tcic ds ide-cs firmware_class"
-MODULES_USB="ehci-pci ehci-hcd uhci usb-ohci hid usb-storage uas uhci-hcd ohci-hcd xhci-hcd xhci-pci xhci-plat usbhid hid-generic sl811-hcd hid-a4tech hid-apple hid-belkin hid-cherry hid-chicony hid-cypress hid-dummy hid-ezkey hid-gyration hid-logitech hid-logitech-dj hid-microsoft hid-monterey hid-petalynx hid-pl hid-samsung hid-sony hid-sunplus"
-
-# Filesystems
-MODULES_FS="ext2 ext3 ext4 btrfs reiserfs jfs nfs xfs zfs f2fs fuse loop squashfs aufs overlay cramfs configfs fscrypto efivarfs msdos qemu_fw_cfg"
-
-# Crypto
-MODULES_CRYPTO="sha256_generic cbc crc32c crc32c_generic crc32 crc32_generic aes_generic xts"
-
-# Hyper-V
-MODULES_HYPERV="hv_utils hv_vmbus hv_balloon hyperv_keyboard hv_netvsc hid_hyperv hv_utils hyperv_fb hv_storvsc"
-
-# Virtio
-MODULES_VIRTIO="virtio_scsi virtio_blk virtio_console virtio-rng virtio virtio_balloon virtio_input virtio_ring virtio_pci virtio_mmio virtio_crypto virtio_net"
+# sparc module groups for genkernel initramfs auto-loading
+# (extending defaults/modules_load)
diff --git a/arch/sparc64/config.sh b/arch/sparc64/config.sh
index 620b03d..8e828d2 100755..100644
--- a/arch/sparc64/config.sh
+++ b/arch/sparc64/config.sh
@@ -7,4 +7,4 @@ KERNEL_MAKE_DIRECTIVE="vmlinux"
KERNEL_MAKE_DIRECTIVE_2="image"
KERNEL_BINARY="arch/sparc64/boot/image arch/sparc/boot/image"
-USECOLOR="no"
+NOCOLOR="true"
diff --git a/arch/sparc64/modules_load b/arch/sparc64/modules_load
index a03f40c..9a1585f 100644
--- a/arch/sparc64/modules_load
+++ b/arch/sparc64/modules_load
@@ -1,39 +1,5 @@
-# Module groups for genkernel initramfs auto-loading
-
-# RAID
-MODULES_ATARAID="ataraid pdcraid hptraid"
-MODULES_DMRAID="dm-mod dm-mirror dm-crypt"
-MODULES_MDADM="md-mod dm-mod dm-snapshot dm-mirror dm-bbr dm-raid dm-crypt raid0 raid1 raid456 raid5 raid6 raid10 linear multipath async_raid6_recov async_pq libcrc32c raid6_pq async_tx async_memcpy async_xor"
-MODULES_LVM="dm-mod dm-bio-prison dm-bufio dm-cache dm-cache-smq dm-crypt dm-delay dm-era dm-flakey dm-integrity dm-log dm-log-userspace dm-log-writes dm-mirror dm-raid dm-region-hash dm-snapshot dm-switch dm-thin-pool dm-verity dm-zero dm-persistent-data ${MODULES_MDADM}"
-MODULES_MULTIPATH="dm-mod dm-multipath dm-round-robin dm-rdac dm-queue-length dm-service-time"
-
-# Hardware (IDE/SCSI/SATA/NVMe)
-MODULES_NVME="nvme-core nvme nvme-fabrics nvme-rdma nvme-loop nvme-fc"
-MODULES_PATA="pata_mpiix pata_pdc2027x pata_radisys pata_sil680 pata_rz1000 pata_efar pata_cmd64x pata_hpt366 pata_hpt37x pata_hpt3x3 pata_hpt3x2n pata_optidma pata_it821x pata_artop pata_oldpiix pata_cypress pata_platform pata_serverworks pata_legacy pata_ns87410 pata_ns87415 pata_pcmcia pata_isapnp pata_it8213 pata_ali pata_amd pata_opti pata_atiixp pata_triflex pata_pdc202xx_old pata_sc1200 pata_qdi pata_netcell pata_sis pata_hpt3x2n pata_marvell pata_jmicron pata_via pata_cs5520 pata_cs5530 pata_cs5535 pata_sl82c105 libata"
-MODULES_SATA="sata_promise sata_sil sata_sil24 sata_svw sata_via sata_nv sata_sx4 sata_sis sata_uli sata_vsc sata_qstor ahci libata ata_piix sata_mv sata_inic162x pdc_adma"
-MODULES_SCSI="sd_mod sg sr_mod aic79xx aic7xxx aic7xxx_old arcmsr BusLogic ncr53c8xx NCR53c406a initio advansys aha1740 aha1542 aha152x dtc fdomain gdth pas16 pci2220i pci2000 psi240i qlogicfas qlogicfc qlogicisp qlogicpti seagate t128 u14-34f ultrastor wd7000 sym53c8xx dmx3191d imm in2000 ips qla1280 sim710 sym53c416 dc395x atp870u mptbase mptscsih mptspi mptfc mptsas 3w-sas 3w-xxxx 3w-9xxx cpqarray cciss hpsa DAC960 sx8 aacraid megaraid megaraid_mbox megaraid_mm megaraid_sas qla2xxx lpfc scsi_transport_fc aic94xx mpt2sas mpt3sas virtio_scsi virtio_blk"
-MODULES_WAITSCAN="scsi_wait_scan"
-MODULES_BLOCK="sdhci_pci"
-
-# Hardware (Network)
-MODULES_NET="e1000 tg3 broadcom bcm_phy_lib virtio_net"
-
-# iSCSI support
-MODULES_ISCSI="scsi_transport_iscsi libiscsi iscsi_tcp"
-
-# Hardware (Pluggable)
-MODULES_FIREWIRE="ieee1394 ohci1394 sbp2"
-MODULES_PCMCIA="pcmcia pcmcia_core yenta_socket pd6729 i82092 i82365 tcic ds ide-cs firmware_class"
-MODULES_USB="ehci-pci ehci-hcd uhci usb-ohci hid usb-storage uas uhci-hcd ohci-hcd xhci-hcd xhci-pci xhci-plat usbhid hid-generic sl811-hcd hid-a4tech hid-apple hid-belkin hid-cherry hid-chicony hid-cypress hid-dummy hid-ezkey hid-gyration hid-logitech hid-logitech-dj hid-microsoft hid-monterey hid-petalynx hid-pl hid-samsung hid-sony hid-sunplus"
-
-# Filesystems
-MODULES_FS="ext2 ext3 ext4 btrfs reiserfs jfs nfs xfs zfs f2fs fuse loop squashfs aufs overlay cramfs configfs fscrypto efivarfs msdos qemu_fw_cfg"
+# sparc64 module groups for genkernel initramfs auto-loading
+# (extending defaults/modules_load)
# Crypto
-MODULES_CRYPTO="sha256_generic cbc crc32c crc32c_generic crc32c-sparc64 crc32 crc32_generic aes_generic xts"
-
-# Hyper-V
-MODULES_HYPERV="hv_utils hv_vmbus hv_balloon hyperv_keyboard hv_netvsc hid_hyperv hv_utils hyperv_fb hv_storvsc"
-
-# Virtio
-MODULES_VIRTIO="virtio_scsi virtio_blk virtio_console virtio-rng virtio virtio_balloon virtio_input virtio_ring virtio_pci virtio_mmio virtio_crypto virtio_net"
+MODULES_CRYPTO+=" crc32c-sparc64"
diff --git a/arch/um/config.sh b/arch/um/config.sh
index f8bfd95..f8bfd95 100755..100644
--- a/arch/um/config.sh
+++ b/arch/um/config.sh
diff --git a/arch/um/modules_load b/arch/um/modules_load
index bc0010a..988ed7a 100644
--- a/arch/um/modules_load
+++ b/arch/um/modules_load
@@ -1,39 +1,2 @@
-# Module groups for genkernel initrd/initramfs auto-loading
-
-# RAID
-MODULES_ATARAID="ataraid pdcraid hptraid"
-MODULES_DMRAID="dm-mod dm-mirror dm-crypt"
-MODULES_MDADM="md-mod dm-mod dm-snapshot dm-mirror dm-bbr dm-raid dm-crypt raid0 raid1 raid456 raid5 raid6 raid10 linear multipath async_raid6_recov async_pq libcrc32c raid6_pq async_tx async_memcpy async_xor"
-MODULES_LVM="dm-mod dm-bio-prison dm-bufio dm-cache dm-cache-smq dm-crypt dm-delay dm-era dm-flakey dm-integrity dm-log dm-log-userspace dm-log-writes dm-mirror dm-raid dm-region-hash dm-snapshot dm-switch dm-thin-pool dm-verity dm-zero dm-persistent-data ${MODULES_MDADM}"
-MODULES_MULTIPATH="dm-mod dm-multipath dm-round-robin dm-rdac dm-queue-length dm-service-time"
-
-# Hardware (IDE/SCSI/SATA/NVMe)
-MODULES_NVME="nvme-core nvme nvme-fabrics nvme-rdma nvme-loop nvme-fc"
-MODULES_PATA="pata_mpiix pata_pdc2027x pata_radisys pata_sil680 pata_rz1000 pata_efar pata_cmd64x pata_hpt366 pata_hpt37x pata_hpt3x3 pata_hpt3x2n pata_optidma pata_it821x pata_artop pata_oldpiix pata_cypress pata_platform pata_serverworks pata_legacy pata_ns87410 pata_ns87415 pata_pcmcia pata_isapnp pata_it8213 pata_ali pata_amd pata_opti pata_atiixp pata_triflex pata_pdc202xx_old pata_sc1200 pata_qdi pata_netcell pata_sis pata_hpt3x2n pata_marvell pata_jmicron pata_via pata_cs5520 pata_cs5530 pata_cs5535 pata_sl82c105 libata"
-MODULES_SATA="sata_promise sata_sil sata_sil24 sata_svw sata_via sata_nv sata_sx4 sata_sis sata_uli sata_vsc sata_qstor ahci libata ata_piix sata_mv sata_inic162x pdc_adma"
-MODULES_SCSI="sd_mod sg sr_mod aic79xx aic7xxx aic7xxx_old arcmsr BusLogic ncr53c8xx NCR53c406a initio advansys aha1740 aha1542 aha152x dtc fdomain gdth pas16 pci2220i pci2000 psi240i qlogicfas qlogicfc qlogicisp qlogicpti seagate t128 u14-34f ultrastor wd7000 sym53c8xx dmx3191d imm in2000 ips qla1280 sim710 sym53c416 dc395x atp870u mptbase mptscsih mptspi mptfc mptsas 3w-sas 3w-xxxx 3w-9xxx cpqarray cciss hpsa DAC960 sx8 aacraid megaraid megaraid_mbox megaraid_mm megaraid_sas qla2xxx lpfc scsi_transport_fc aic94xx mpt2sas mpt3sas virtio_scsi virtio_blk"
-MODULES_WAITSCAN="scsi_wait_scan"
-MODULES_BLOCK="sdhci_pci"
-
-# Hardware (Network)
-MODULES_NET="e1000 tg3 broadcom bcm_phy_lib virtio_net"
-
-# iSCSI support
-MODULES_ISCSI="scsi_transport_iscsi libiscsi iscsi_tcp"
-
-# Hardware (Pluggable)
-MODULES_FIREWIRE="ieee1394 ohci1394 sbp2"
-MODULES_PCMCIA="pcmcia pcmcia_core yenta_socket pd6729 i82092 i82365 tcic ds ide-cs firmware_class"
-MODULES_USB="ehci-pci ehci-hcd uhci usb-ohci hid usb-storage uas uhci-hcd ohci-hcd xhci-hcd xhci-pci xhci-plat usbhid hid-generic sl811-hcd hid-a4tech hid-apple hid-belkin hid-cherry hid-chicony hid-cypress hid-dummy hid-ezkey hid-gyration hid-logitech hid-logitech-dj hid-microsoft hid-monterey hid-petalynx hid-pl hid-samsung hid-sony hid-sunplus"
-
-# Filesystems
-MODULES_FS="ext2 ext3 ext4 btrfs reiserfs jfs nfs xfs zfs f2fs fuse loop squashfs aufs overlay cramfs configfs fscrypto efivarfs msdos qemu_fw_cfg"
-
-# Crypto
-MODULES_CRYPTO="sha256_generic cbc crc32c crc32c_generic crc32 crc32_generic aes_generic xts"
-
-# Hyper-V
-MODULES_HYPERV="hv_utils hv_vmbus hv_balloon hyperv_keyboard hv_netvsc hid_hyperv hv_utils hyperv_fb hv_storvsc"
-
-# Virtio
-MODULES_VIRTIO="virtio_scsi virtio_blk virtio_console virtio-rng virtio virtio_balloon virtio_input virtio_ring virtio_pci virtio_mmio virtio_crypto virtio_net"
+# um module groups for genkernel initramfs auto-loading
+# (extending defaults/modules_load)
diff --git a/arch/x86/arch-config b/arch/x86/arch-config
index 9f8c4b2..1fef746 100644
--- a/arch/x86/arch-config
+++ b/arch/x86/arch-config
@@ -1,37 +1,490 @@
# CONFIG_64BIT is not set
-# CONFIG_X86_64 is not set
-CONFIG_X86=y
-CONFIG_XEN_DEV_EVTCHN=m
-CONFIG_XEN_SYS_HYPERVISOR=y
-CONFIG_HIGHMEM64G=y
-CONFIG_XEN_PLATFORM_PCI=y
-# CONFIG_HIGHMEM4G is not set
-CONFIG_HARDLOCKUP_DETECTOR=y
-# CONFIG_BOOTPARAM_HARDLOCKUP_ENABLED is not set
-CONFIG_I2C_ISMT=m
-CONFIG_LPC_SCH=m
-CONFIG_LPC_ICH=m
-CONFIG_GPIOLIB=y
-#CONFIG_MFD_SM501_GPIO is not set
+# CONFIG_ACPI_HOTPLUG_MEMORY is not set
+CONFIG_AGP_ALI=y
+CONFIG_AGP_AMD=y
+CONFIG_AGP_ATI=y
+CONFIG_AGP_EFFICEON=y
+CONFIG_AGP_NVIDIA=y
+CONFIG_AGP_SWORKS=y
+# CONFIG_AHCI_CEVA is not set
+# CONFIG_AHCI_QORIQ is not set
+# CONFIG_AK8974 is not set
+# CONFIG_AK8975 is not set
+# CONFIG_AL_FIC is not set
+# CONFIG_ALIX is not set
+CONFIG_ALTERA_PR_IP_CORE_PLAT=m
+# CONFIG_APM_ALLOW_INTS is not set
+CONFIG_APM_CPU_IDLE=y
+# CONFIG_APM_DISPLAY_BLANK is not set
+# CONFIG_APM_DO_ENABLE is not set
+# CONFIG_APM_IGNORE_USER_SUSPEND is not set
+CONFIG_APM=m
+CONFIG_ARCH_32BIT_OFF_T=y
+CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
+CONFIG_ARCH_FLATMEM_ENABLE=y
+CONFIG_ARCH_MMAP_RND_BITS=8
+CONFIG_ARCH_MMAP_RND_BITS_MAX=16
+CONFIG_ARCH_MMAP_RND_BITS_MIN=8
+CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
+# CONFIG_ATH10K_AHB is not set
+CONFIG_AUDIT_GENERIC=y
+# CONFIG_BACKLIGHT_OT200 is not set
+# CONFIG_BATTERY_LEGO_EV3 is not set
+# CONFIG_BATTERY_MAX17042 is not set
+CONFIG_BATTERY_OLPC=y
+CONFIG_BAYCOM_EPP=m
+# CONFIG_BCACHE_CLOSURES_DEBUG is not set
+# CONFIG_BCACHE_DEBUG is not set
+CONFIG_BCACHE=m
+# CONFIG_BMC150_MAGN_I2C is not set
+# CONFIG_BMG160 is not set
+# CONFIG_CAN_FLEXCAN is not set
+# CONFIG_CAN_GRCAN is not set
+CONFIG_CEC_NOTIFIER=y
+CONFIG_CEC_PLATFORM_DRIVERS=y
+# CONFIG_CHARGER_BQ24190 is not set
+# CONFIG_CHARGER_DETECTOR_MAX14656 is not set
+CONFIG_CHARGER_MAX77650=m
+CONFIG_CHARGER_UCS1002=m
+# CONFIG_CLK_HSDK is not set
+CONFIG_CLKSRC_I8253=y
+CONFIG_CLONE_BACKWARDS=y
+CONFIG_CM3605=m
+# CONFIG_COMMON_CLK_CDCE925 is not set
+# CONFIG_COMMON_CLK_FIXED_MMIO is not set
+# CONFIG_COMMON_CLK_SI514 is not set
+# CONFIG_COMMON_CLK_SI570 is not set
+# CONFIG_COMMON_CLK_VC5 is not set
+# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
+# CONFIG_CPUFREQ_DT is not set
+CONFIG_CPU_SUP_TRANSMETA_32=y
+CONFIG_CRYPTO_CRC32C=m
+# CONFIG_CRYPTO_DEV_CCREE is not set
+CONFIG_CRYPTO_DEV_GEODE=m
+CONFIG_CRYPTO_DEV_HIFN_795X=m
+CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
+CONFIG_CRYPTO_SERPENT_SSE2_586=m
+CONFIG_CRYPTO_TWOFISH_586=m
+CONFIG_CS5535_CLOCK_EVENT_SRC=m
+CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7
+CONFIG_CS5535_MFGPT=m
+# CONFIG_DEBUG_HIGHMEM is not set
+# CONFIG_DEBUG_STACKOVERFLOW is not set
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+# CONFIG_DEV_DAX is not set
+CONFIG_DMA_OF=y
+# CONFIG_DMARD06 is not set
+CONFIG_DPOT_DAC=m
+# CONFIG_DRM_ARCPGU is not set
+# CONFIG_DRM_CDNS_DSI is not set
+# CONFIG_DRM_DUMB_VGA_DAC is not set
+# CONFIG_DRM_I2C_ADV7511 is not set
+# CONFIG_DRM_KOMEDA is not set
+# CONFIG_DRM_LVDS_ENCODER is not set
+# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
+# CONFIG_DRM_MXSFB is not set
+# CONFIG_DRM_NXP_PTN3460 is not set
+# CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D is not set
+# CONFIG_DRM_PANEL_ILITEK_IL9322 is not set
+# CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set
+# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
+# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
+# CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04 is not set
+# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
+# CONFIG_DRM_PANEL_LG_LG4573 is not set
+# CONFIG_DRM_PANEL_LVDS is not set
+# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
+# CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set
+# CONFIG_DRM_PANEL_ORISETECH_OTM8009A is not set
+# CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS is not set
+# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
+# CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set
+# CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set
+# CONFIG_DRM_PANEL_ROCKTECH_JH057N00900 is not set
+# CONFIG_DRM_PANEL_RONBO_RB070D30 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
+# CONFIG_DRM_PANEL_SEIKO_43WVF1G is not set
+# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
+# CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set
+# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
+# CONFIG_DRM_PANEL_SIMPLE is not set
+# CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set
+# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
+# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
+# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set
+# CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set
+# CONFIG_DRM_PANEL_TPO_TPG110 is not set
+# CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set
+# CONFIG_DRM_PARADE_PS8622 is not set
+# CONFIG_DRM_RCAR_DW_HDMI is not set
+# CONFIG_DRM_RCAR_LVDS is not set
+# CONFIG_DRM_SII902X is not set
+CONFIG_DRM_SII9234=m
+# CONFIG_DRM_SIL_SII8620 is not set
+# CONFIG_DRM_THINE_THC63LVD1024 is not set
+CONFIG_DRM_TI_SN65DSI86=m
+CONFIG_DRM_TI_TFP410=m
+CONFIG_DRM_TOSHIBA_TC358764=m
+# CONFIG_DRM_TOSHIBA_TC358767 is not set
+# CONFIG_DW_AXI_DMAC is not set
+CONFIG_EDAC_AMD76X=m
+CONFIG_EDAC_E7XXX=m
+CONFIG_EDAC_I82860=m
+CONFIG_EDAC_I82875P=m
+CONFIG_EDAC_R82600=m
+# CONFIG_EFI_CAPSULE_QUIRK_QUARK_CSH is not set
+CONFIG_ENVELOPE_DETECTOR=m
+# CONFIG_FAULT_INJECTION_STACKTRACE_FILTER is not set
+CONFIG_FB_BACKLIGHT=m
+CONFIG_FB_DDC=m
+# CONFIG_FB_GEODE_GX1 is not set
+CONFIG_FB_GEODE_GX=y
+CONFIG_FB_GEODE_LX=y
+CONFIG_FB_GEODE=y
+CONFIG_FB_I810_GTF=y
+CONFIG_FB_I810_I2C=y
+CONFIG_FB_I810=m
+CONFIG_FB_MODE_HELPERS=y
+# CONFIG_FB_OLPC_DCON is not set
+CONFIG_FB_SSD1307=m
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_FOPS=m
+CONFIG_FB_SYS_IMAGEBLIT=m
+# CONFIG_FB_TFT is not set
+# CONFIG_FLATMEM_MANUAL is not set
+CONFIG_FORCE_DYNAMIC_FTRACE=y
+CONFIG_FPGA_MGR_ICE40_SPI=m
+CONFIG_FRAME_POINTER=y
+CONFIG_FRAME_WARN=1024
+CONFIG_FSI=m
+CONFIG_FSI_MASTER_GPIO=m
+CONFIG_FSI_MASTER_HUB=m
+# CONFIG_FSI_NEW_DEV_NODE is not set
+# CONFIG_FSI_SBEFIFO is not set
+CONFIG_FSI_SCOM=m
+# CONFIG_FSL_EDMA is not set
+CONFIG_GENERIC_VDSO_32=y
+CONFIG_GEODE_WDT=m
+# CONFIG_GEOS is not set
+# CONFIG_GPIO_74X164 is not set
+# CONFIG_GPIO_74XX_MMIO is not set
+# CONFIG_GPIO_ADNP is not set
+# CONFIG_GPIO_ALTERA is not set
+CONFIG_GPIO_CADENCE=m
+CONFIG_GPIO_CS5535=m
+# CONFIG_GPIO_FTGPIO010 is not set
+# CONFIG_GPIO_GRGPIO is not set
+# CONFIG_GPIO_GW_PLD is not set
+# CONFIG_GPIO_HLWD is not set
+CONFIG_GPIO_MAX77650=m
+# CONFIG_GPIO_PCH is not set
CONFIG_GPIO_SCH=m
-CONFIG_IE6XX_WDT=m
-# CONFIG_MDIO_GPIO is not set
-# CONFIG_KEYBOARD_GPIO is not set
-# CONFIG_MOUSE_GPIO is not set
-# CONFIG_I2C_GPIO is not set
-# CONFIG_DEBUG_GPIO is not set
-# CONFIG_GPIO_SYSFS is not set
-# CONFIG_GPIO_MAX732X is not set
-# CONFIG_GPIO_PCA953X is not set
-# CONFIG_GPIO_PCF857X is not set
-# CONFIG_GPIO_WM831X is not set
-# CONFIG_UCB1400_CORE is not set
-# CONFIG_USB_GPIO_VBUS is not set
-# CONFIG_LEDS_GPIO is not set
-# CONFIG_LEDS_TRIGGER_GPIO is not set
-CONFIG_X86_INTEL_PSTATE=m
-CONFIG_MICROCODE=y
-CONFIG_MICROCODE_EARLY=y
-CONFIG_MICROCODE_INTEL=y
-CONFIG_MICROCODE_AMD=y
-CONFIG_ALX=m
+# CONFIG_GPIO_SODAVILLE is not set
+# CONFIG_GPIO_WATCHDOG is not set
+CONFIG_HAVE_ATOMIC_IOMAP=y
+CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
+CONFIG_HIGHMEM4G=y
+# CONFIG_HIGHMEM64G is not set
+CONFIG_HIGHMEM=y
+CONFIG_HIGHPTE=y
+CONFIG_HOTPLUG_PCI_COMPAQ=m
+# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
+CONFIG_HOTPLUG_PCI_IBM=m
+CONFIG_HT16K33=m
+CONFIG_HW_RANDOM_GEODE=m
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set
+# CONFIG_I2C_DEMUX_PINCTRL is not set
+# CONFIG_I2C_EG20T is not set
+# CONFIG_I2C_FSI is not set
+CONFIG_I2C_MUX_GPMUX=m
+# CONFIG_I2C_MUX_PINCTRL is not set
+CONFIG_I2C_PXA=m
+CONFIG_I2C_PXA_PCI=y
+# CONFIG_I2C_RK3X is not set
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_IIO_MUX=m
+CONFIG_IIO_RESCALE=m
+CONFIG_ILLEGAL_POINTER_VALUE=0
+# CONFIG_INPUT_ATMEL_CAPTOUCH is not set
+CONFIG_INPUT_MAX77650_ONKEY=m
+CONFIG_INPUT_WISTRON_BTNS=m
+CONFIG_IR_GPIO_CIR=m
+CONFIG_IR_GPIO_TX=m
+CONFIG_IR_HIX5HD2=m
+CONFIG_IR_PWM_TX=m
+CONFIG_IRQCHIP=y
+CONFIG_IR_SPI=m
+# CONFIG_ISA is not set
+# CONFIG_KEYBOARD_APPLESPI is not set
+# CONFIG_KEYBOARD_BCM is not set
+# CONFIG_KEYBOARD_CAP11XX is not set
+# CONFIG_KEYBOARD_OMAP4 is not set
+# CONFIG_LEDS_AAT1290 is not set
+CONFIG_LEDS_AN30259A=m
+# CONFIG_LEDS_BCM6328 is not set
+# CONFIG_LEDS_BCM6358 is not set
+CONFIG_LEDS_CR0014114=m
+# CONFIG_LEDS_IS31FL319X is not set
+CONFIG_LEDS_IS31FL32XX=m
+# CONFIG_LEDS_KTD2692 is not set
+CONFIG_LEDS_LM3692X=m
+# CONFIG_LEDS_LP8860 is not set
+CONFIG_LEDS_LT3593=m
+CONFIG_LEDS_MAX77650=m
+# CONFIG_LEDS_OT200 is not set
+# CONFIG_LEDS_SPI_BYTE is not set
+# CONFIG_M486 is not set
+# CONFIG_M586 is not set
+# CONFIG_M586MMX is not set
+# CONFIG_M586TSC is not set
+CONFIG_M686=y
+# CONFIG_MAILBOX is not set
+# CONFIG_MATH_EMULATION is not set
+# CONFIG_MAX5821 is not set
+# CONFIG_MCRUSOE is not set
+# CONFIG_MCYRIXIII is not set
+# CONFIG_MDIO_BUS_MUX_GPIO is not set
+# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
+# CONFIG_MDIO_BUS_MUX_MULTIPLEXER is not set
+# CONFIG_MDIO_HISI_FEMAC is not set
+# CONFIG_MEFFICEON is not set
+# CONFIG_MELAN is not set
+# CONFIG_MFD_ACT8945A is not set
+# CONFIG_MFD_ATMEL_FLEXCOM is not set
+# CONFIG_MFD_ATMEL_HLCDC is not set
+# CONFIG_MFD_AXP20X_I2C is not set
+# CONFIG_MFD_CPCAP is not set
+CONFIG_MFD_CS5535=m
+# CONFIG_MFD_HI6421_PMIC is not set
+CONFIG_MFD_MAX77650=m
+# CONFIG_MFD_MAX77686 is not set
+# CONFIG_MFD_RK808 is not set
+# CONFIG_MFD_RN5T618 is not set
+# CONFIG_MFD_STMFX is not set
+# CONFIG_MFD_STMPE is not set
+# CONFIG_MFD_TI_LP87565 is not set
+# CONFIG_MFD_TIMBERDALE is not set
+# CONFIG_MFD_TPS65217 is not set
+# CONFIG_MFD_TPS65218 is not set
+# CONFIG_MGEODEGX1 is not set
+# CONFIG_MGEODE_LX is not set
+# CONFIG_MK6 is not set
+# CONFIG_MK7 is not set
+# CONFIG_MLX5_INFINIBAND is not set
+# CONFIG_MMC_SDHCI_AM654 is not set
+CONFIG_MMC_SDHCI_CADENCE=m
+# CONFIG_MMC_SDHCI_OF_ARASAN is not set
+# CONFIG_MMC_SDHCI_OF_ASPEED is not set
+# CONFIG_MMC_SDHCI_OF_AT91 is not set
+# CONFIG_MMC_SDHCI_OF_DWCMSHC is not set
+# CONFIG_MMC_SDHCI_OMAP is not set
+CONFIG_MODULES_USE_ELF_REL=y
+CONFIG_MOUSE_PS2_OLPC=y
+# CONFIG_MOXTET is not set
+# CONFIG_MPENTIUM4 is not set
+# CONFIG_MPENTIUMIII is not set
+# CONFIG_MPENTIUMII is not set
+# CONFIG_MPENTIUMM is not set
+# CONFIG_MTD_BLOCK is not set
+CONFIG_MTD_NAND_CAFE=m
+# CONFIG_MTD_NAND_CS553X is not set
+# CONFIG_MTD_NAND_DENALI_DT is not set
+CONFIG_MTD_OF_PARTS=m
+CONFIG_MULTIPLEXER=m
+CONFIG_MUX_ADG792A=m
+# CONFIG_MUX_ADGS1408 is not set
+CONFIG_MUX_GPIO=m
+CONFIG_MUX_MMIO=m
+# CONFIG_MVIAC3_2 is not set
+# CONFIG_MVIAC7 is not set
+# CONFIG_MWINCHIP3D is not set
+# CONFIG_MWINCHIPC6 is not set
+# CONFIG_NET5501 is not set
+# CONFIG_NET_DSA_VITESSE_VSC73XX_PLATFORM is not set
+# CONFIG_NET_DSA_VITESSE_VSC73XX_SPI is not set
+# CONFIG_NOHIGHMEM is not set
+CONFIG_NO_HZ_IDLE=y
+CONFIG_NR_CPUS=32
+CONFIG_NR_CPUS_DEFAULT=32
+CONFIG_NR_CPUS_RANGE_BEGIN=2
+CONFIG_NR_CPUS_RANGE_END=64
+CONFIG_NSC_GPIO=m
+# CONFIG_NTB is not set
+# CONFIG_NVMEM_REBOOT_MODE is not set
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_FPGA_REGION=m
+CONFIG_OF_GPIO=y
+CONFIG_OF_IOMMU=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_KOBJ=y
+CONFIG_OF_MDIO=m
+CONFIG_OF_NET=y
+# CONFIG_OF_OVERLAY is not set
+CONFIG_OF_PROMTREE=y
+# CONFIG_OF_UNITTEST is not set
+CONFIG_OF=y
+CONFIG_OLD_SIGACTION=y
+CONFIG_OLPC_EC=y
+CONFIG_OLPC_XO15_SCI=y
+CONFIG_OLPC=y
+CONFIG_OUTPUT_FORMAT="elf32-i386"
+CONFIG_PAGE_OFFSET=0xC0000000
+CONFIG_PATA_CS5520=m
+CONFIG_PATA_CS5530=m
+CONFIG_PATA_CS5535=m
+CONFIG_PATA_CS5536=m
+# CONFIG_PATA_SC1200 is not set
+CONFIG_PC8736x_GPIO=m
+CONFIG_PCH_CAN=m
+CONFIG_PCH_DMA=m
+CONFIG_PCH_GBE=m
+CONFIG_PCH_PHUB=m
+CONFIG_PCI_BIOS=y
+CONFIG_PCIE_CADENCE_HOST=y
+CONFIG_PCIE_CADENCE=y
+# CONFIG_PCIE_XILINX is not set
+# CONFIG_PCI_FTPCI100 is not set
+CONFIG_PCI_GOANY=y
+# CONFIG_PCI_GOBIOS is not set
+# CONFIG_PCI_GODIRECT is not set
+# CONFIG_PCI_GOMMCONFIG is not set
+# CONFIG_PCI_GOOLPC is not set
+# CONFIG_PCI_HOST_GENERIC is not set
+CONFIG_PCI_OLPC=y
+CONFIG_PGTABLE_LEVELS=2
+# CONFIG_PHY_CADENCE_DPHY is not set
+CONFIG_PHY_CADENCE_DP=m
+CONFIG_PHY_CADENCE_SIERRA=m
+# CONFIG_PHY_FSL_IMX8MQ_USB is not set
+# CONFIG_PHY_MAPPHONE_MDM6600 is not set
+# CONFIG_PHY_MIXEL_MIPI_DPHY is not set
+CONFIG_PHYSICAL_ALIGN=0x400000
+CONFIG_PHYSICAL_START=0x400000
+# CONFIG_PINCTRL_OCELOT is not set
+# CONFIG_PINCTRL_SINGLE is not set
+# CONFIG_PINCTRL_STMFX is not set
+CONFIG_PM_GENERIC_DOMAINS_OF=y
+# CONFIG_POWER_RESET_GPIO_RESTART is not set
+CONFIG_POWER_RESET_GPIO=y
+# CONFIG_POWER_RESET_LTC2952 is not set
+# CONFIG_POWER_RESET_SYSCON is not set
+# CONFIG_POWER_RESET_SYSCON_POWEROFF is not set
+CONFIG_PTP_1588_CLOCK_PCH=m
+# CONFIG_PWM_FSL_FTM is not set
+CONFIG_PWRSEQ_EMMC=m
+CONFIG_PWRSEQ_SD8787=m
+CONFIG_PWRSEQ_SIMPLE=m
+CONFIG_REED_SOLOMON_DEC16=y
+CONFIG_REGMAP_MMIO=m
+CONFIG_REGULATOR_BD9571MWV=m
+CONFIG_REGULATOR_MAX77650=m
+# CONFIG_REGULATOR_MCP16502 is not set
+# CONFIG_REGULATOR_SY8106A is not set
+# CONFIG_REGULATOR_SY8824X is not set
+CONFIG_REGULATOR_VCTRL=m
+# CONFIG_RTC_DRV_CADENCE is not set
+# CONFIG_RTC_DRV_HYM8563 is not set
+CONFIG_RTC_DRV_ISL12026=m
+CONFIG_RTC_DRV_R7301=m
+# CONFIG_RTC_DRV_SNVS is not set
+# CONFIG_RTC_DRV_ZYNQMP is not set
+# CONFIG_SBC7240_WDT is not set
+# CONFIG_SBC8360_WDT is not set
+# CONFIG_SCSI_NSP32 is not set
+# CONFIG_SCx200_ACB is not set
+# CONFIG_SCx200 is not set
+CONFIG_SD_ADC_MODULATOR=m
+# CONFIG_SENSORS_GPIO_FAN is not set
+CONFIG_SENSORS_PWM_FAN=m
+# CONFIG_SERIAL_8250_ASPEED_VUART is not set
+# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set
+CONFIG_SERIAL_OF_PLATFORM=m
+# CONFIG_SERIAL_PCH_UART is not set
+# CONFIG_SERIAL_SIFIVE is not set
+# CONFIG_SERIAL_TIMBERDALE is not set
+# CONFIG_SERIAL_XILINX_PS_UART is not set
+# CONFIG_SERIO_APBPS2 is not set
+# CONFIG_SFC is not set
+CONFIG_SFI=y
+# CONFIG_SIMPLE_PM_BUS is not set
+# CONFIG_SND_AUDIO_GRAPH_CARD is not set
+CONFIG_SND_CS5530=m
+CONFIG_SND_CS5535AUDIO=m
+CONFIG_SND_SB16_DSP=m
+CONFIG_SND_SIS7019=m
+# CONFIG_SND_SOC_SOF_OF is not set
+CONFIG_SONYPI=m
+CONFIG_SPARSEMEM_STATIC=y
+# CONFIG_SPI_FSL_SPI is not set
+# CONFIG_SPI_TOPCLIFF_PCH is not set
+# CONFIG_STAGING_BOARD is not set
+CONFIG_TC1100_WMI=m
+# CONFIG_THERMAL_MMIO is not set
+# CONFIG_THERMAL_OF is not set
+# CONFIG_THUNDERBOLT is not set
+# CONFIG_TI_ADS124S08 is not set
+CONFIG_TI_ADS8344=m
+# CONFIG_TI_ADS8688 is not set
+CONFIG_TICK_CPU_ACCOUNTING=y
+CONFIG_TOSHIBA=m
+# CONFIG_TOUCHSCREEN_AR1021_I2C is not set
+# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set
+# CONFIG_TOUCHSCREEN_CHIPONE_ICN8318 is not set
+# CONFIG_TOUCHSCREEN_CHIPONE_ICN8505 is not set
+CONFIG_TOUCHSCREEN_EGALAX=m
+# CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set
+CONFIG_UNWINDER_FRAME_POINTER=y
+CONFIG_USB_PULSE8_CEC=m
+CONFIG_USB_RAINSHADOW_CEC=m
+CONFIG_VALIDATE_FS_PARSER=y
+# CONFIG_VF610_ADC is not set
+# CONFIG_VF610_DAC is not set
+CONFIG_VIDEO_GO7007_USB=m
+CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m
+CONFIG_VIDEO_SECO_CEC=m
+# CONFIG_VIDEO_SECO_RC is not set
+# CONFIG_VOP_BUS is not set
+CONFIG_WLCORE_SPI=m
+CONFIG_X86_32_IRIS=m
+# CONFIG_X86_32_NON_STANDARD is not set
+CONFIG_X86_32_SMP=y
+CONFIG_X86_32=y
+# CONFIG_X86_ANCIENT_MCE is not set
+CONFIG_X86_APM_BOOT=y
+CONFIG_X86_BIGSMP=y
+CONFIG_X86_CPA_STATISTICS=y
+# CONFIG_X86_CPUFREQ_NFORCE2 is not set
+# CONFIG_X86_E_POWERSAVER is not set
+CONFIG_X86_ESPFIX32=y
+CONFIG_X86_GENERIC=y
+# CONFIG_X86_GX_SUSPMOD is not set
+# CONFIG_X86_INTEL_QUARK is not set
+CONFIG_X86_INTEL_USERCOPY=y
+# CONFIG_X86_LEGACY_VM86 is not set
+# CONFIG_X86_LONGHAUL is not set
+CONFIG_X86_LONGRUN=m
+CONFIG_X86_MINIMUM_CPU_FAMILY=6
+# CONFIG_X86_POWERNOW_K6 is not set
+CONFIG_X86_POWERNOW_K7_ACPI=y
+CONFIG_X86_POWERNOW_K7=m
+# CONFIG_X86_RDC321X is not set
+# CONFIG_X86_REBOOTFIXUPS is not set
+CONFIG_X86_SPEEDSTEP_ICH=m
+# CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK is not set
+CONFIG_X86_SPEEDSTEP_SMI=m
+CONFIG_X86_USE_PPRO_CHECKSUM=y
+# CONFIG_XIL_AXIS_FIFO is not set
+# CONFIG_XILLYBUS_OF is not set
+CONFIG_XO15_EBOOK=m
+CONFIG_XO1_RFKILL=m
diff --git a/arch/x86/config.sh b/arch/x86/config.sh
index dfbc120..578ab0e 100755..100644
--- a/arch/x86/config.sh
+++ b/arch/x86/config.sh
@@ -6,3 +6,4 @@
KERNEL_MAKE_DIRECTIVE="bzImage"
KERNEL_MAKE_DIRECTIVE_2=""
KERNEL_BINARY="arch/i386/boot/bzImage"
+KERNEL_SUPPORT_MICROCODE=yes
diff --git a/arch/x86/modules_load b/arch/x86/modules_load
index b8f355b..eece01c 100644
--- a/arch/x86/modules_load
+++ b/arch/x86/modules_load
@@ -1,40 +1,5 @@
-
-# Module groups for genkernel initramfs auto-loading
-
-# RAID
-MODULES_ATARAID="ataraid pdcraid hptraid"
-MODULES_DMRAID="dm-mod dm-mirror dm-crypt"
-MODULES_MDADM="md-mod dm-mod dm-snapshot dm-mirror dm-bbr dm-raid dm-crypt raid0 raid1 raid456 raid5 raid6 raid10 linear multipath async_raid6_recov async_pq libcrc32c raid6_pq async_tx async_memcpy async_xor"
-MODULES_LVM="dm-mod dm-bio-prison dm-bufio dm-cache dm-cache-smq dm-crypt dm-delay dm-era dm-flakey dm-integrity dm-log dm-log-userspace dm-log-writes dm-mirror dm-raid dm-region-hash dm-snapshot dm-switch dm-thin-pool dm-verity dm-zero dm-persistent-data ${MODULES_MDADM}"
-MODULES_MULTIPATH="dm-mod dm-multipath dm-round-robin dm-rdac dm-queue-length dm-service-time"
-
-# Hardware (IDE/SCSI/SATA/NVMe)
-MODULES_NVME="nvme-core nvme nvme-fabrics nvme-rdma nvme-loop nvme-fc"
-MODULES_PATA="pata_mpiix pata_pdc2027x pata_radisys pata_sil680 pata_rz1000 pata_efar pata_cmd64x pata_hpt366 pata_hpt37x pata_hpt3x3 pata_hpt3x2n pata_optidma pata_it821x pata_artop pata_oldpiix pata_cypress pata_platform pata_serverworks pata_legacy pata_ns87410 pata_ns87415 pata_pcmcia pata_isapnp pata_it8213 pata_ali pata_amd pata_opti pata_atiixp pata_triflex pata_pdc202xx_old pata_sc1200 pata_qdi pata_netcell pata_sis pata_hpt3x2n pata_marvell pata_jmicron pata_via pata_cs5520 pata_cs5530 pata_cs5535 pata_sl82c105 libata"
-MODULES_SATA="sata_promise sata_sil sata_sil24 sata_svw sata_via sata_nv sata_sx4 sata_sis sata_uli sata_vsc sata_qstor ahci libata ata_piix sata_mv sata_inic162x pdc_adma"
-MODULES_SCSI="sd_mod sg sr_mod aic79xx aic7xxx aic7xxx_old arcmsr BusLogic ncr53c8xx NCR53c406a initio advansys aha1740 aha1542 aha152x dtc fdomain gdth pas16 pci2220i pci2000 psi240i qlogicfas qlogicfc qlogicisp qlogicpti seagate t128 u14-34f ultrastor wd7000 sym53c8xx dmx3191d imm in2000 ips qla1280 sim710 sym53c416 dc395x atp870u mptbase mptscsih mptspi mptfc mptsas 3w-sas 3w-xxxx 3w-9xxx cpqarray cciss hpsa DAC960 sx8 aacraid megaraid megaraid_mbox megaraid_mm megaraid_sas qla2xxx lpfc scsi_transport_fc aic94xx mpt2sas mpt3sas virtio_scsi virtio_blk"
-MODULES_WAITSCAN="scsi_wait_scan"
-MODULES_BLOCK="sdhci_acpi sdhci_pci"
-
-# Hardware (Network)
-MODULES_NET="8139cp 8139too atl1c bnx2 e1000 igb pcnet32 r8169 sky2 tg3 broadcom bcm_phy_lib virtio_net vmxnet3 virtio_net"
-
-# iSCSI support
-MODULES_ISCSI="scsi_transport_iscsi libiscsi iscsi_tcp"
-
-# Hardware (Pluggable)
-MODULES_FIREWIRE="ieee1394 ohci1394 sbp2"
-MODULES_PCMCIA="pcmcia pcmcia_core yenta_socket pd6729 i82092 i82365 tcic ds ide-cs firmware_class"
-MODULES_USB="ehci-pci ehci-hcd uhci usb-ohci hid usb-storage uas uhci-hcd ohci-hcd xhci-hcd xhci-pci xhci-plat usbhid hid-generic sl811-hcd hid-a4tech hid-apple hid-belkin hid-cherry hid-chicony hid-cypress hid-dummy hid-ezkey hid-gyration hid-logitech hid-logitech-dj hid-microsoft hid-monterey hid-petalynx hid-pl hid-samsung hid-sony hid-sunplus"
-
-# Filesystems
-MODULES_FS="ext2 ext3 ext4 btrfs reiserfs jfs nfs xfs zfs f2fs fuse loop squashfs aufs overlay cramfs configfs fscrypto efivarfs msdos qemu_fw_cfg"
+# x86 module groups for genkernel initramfs auto-loading
+# (extending defaults/modules_load)
# Crypto
-MODULES_CRYPTO="sha256_generic cbc crc32c crc32c_generic crc32c-intel crc32 crc32_generic crc32-pclmul aes_generic aes_586 aesni-intel xts"
-
-# Hyper-V
-MODULES_HYPERV="hv_utils hv_vmbus hv_balloon hyperv_keyboard hv_netvsc hid_hyperv hv_utils hyperv_fb hv_storvsc"
-
-# Virtio
-MODULES_VIRTIO="virtio_scsi virtio_blk virtio_console virtio-rng virtio virtio_balloon virtio_input virtio_ring virtio_pci virtio_mmio virtio_crypto virtio_net"
+MODULES_CRYPTO+=" crc32c-intel crc32-pclmul aes_586 aesni-intel serpent-sse2-i586"
diff --git a/arch/x86_64/arch-config b/arch/x86_64/arch-config
index 6f09970..100e7c6 100644
--- a/arch/x86_64/arch-config
+++ b/arch/x86_64/arch-config
@@ -1,143 +1,397 @@
-CONFIG_EDAC_I7CORE=m
-CONFIG_EDAC_SBRIDGE=m
-CONFIG_EDAC_I7300=m
-CONFIG_EFI=y
-CONFIG_EFI_STUB=y
-CONFIG_DRM_I915_KMS=y
-CONFIG_DRM_RADEON_KMS=y
-CONFIG_MAXSMP=y
-CONFIG_NR_CPUS=4096
-CONFIG_NODES_SHIFT=9
-CONFIG_AMD_IOMMU=y
-CONFIG_PCI_DOMAINS=y
-CONFIG_DMAR=y
-CONFIG_DMAR_FLOPPY_WA=y
-CONFIG_DMAR_BROKEN_GFX_WA=y
-CONFIG_THINKPAD_ACPI=m
-CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
-CONFIG_THINKPAD_ACPI_VIDEO=y
-CONFIG_MEMORY_HOTPLUG=y
+CONFIG_64BIT=y
+CONFIG_ACPI_ADXL=y
+CONFIG_ACPI_APEI_MEMORY_FAILURE=y
+CONFIG_ACPI_CPPC_LIB=y
+CONFIG_ACPI_HMAT=y
CONFIG_ACPI_HOTPLUG_MEMORY=y
-CONFIG_ACPI_HOTPLUG_CPU=y
-CONFIG_MEMORY_HOTPLUG_SPARSE=y
-CONFIG_DEBUG_NMI_TIMEOUT=30
-CONFIG_CRASH=y
-CONFIG_IMA=y
-CONFIG_INTEL_IOATDMA=m
+CONFIG_ACPI_LPIT=y
+CONFIG_ACPI_NFIT=m
+CONFIG_ACPI_NUMA=y
+CONFIG_ACRN_GUEST=y
+CONFIG_AK8975=m
+# CONFIG_ALTERA_MBOX is not set
+CONFIG_AMD_IOMMU_V2=m
+CONFIG_AMD_IOMMU=y
+# CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT is not set
+CONFIG_AMD_MEM_ENCRYPT=y
+CONFIG_AMD_NUMA=y
+CONFIG_AQTION=m
+CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
+CONFIG_ARCH_DMA_ADDR_T_64BIT=y
+CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
+CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
+CONFIG_ARCH_ENABLE_THP_MIGRATION=y
+CONFIG_ARCH_HAS_ADD_PAGES=y
+CONFIG_ARCH_HAS_FORCE_DMA_UNENCRYPTED=y
+CONFIG_ARCH_HAS_GIGANTIC_PAGE=y
+CONFIG_ARCH_HAS_KCOV=y
+CONFIG_ARCH_HAS_KEXEC_PURGATORY=y
+CONFIG_ARCH_HAS_PKEYS=y
+CONFIG_ARCH_HAS_PMEM_API=y
+CONFIG_ARCH_HAS_PTE_DEVMAP=y
+CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y
+CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y
+CONFIG_ARCH_HAS_UACCESS_MCSAFE=y
+CONFIG_ARCH_MEMORY_PROBE=y
+CONFIG_ARCH_MMAP_RND_BITS=28
+CONFIG_ARCH_MMAP_RND_BITS_MAX=32
+CONFIG_ARCH_MMAP_RND_BITS_MIN=28
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8
+CONFIG_ARCH_PROC_KCORE_TEXT=y
+CONFIG_ARCH_SPARSEMEM_DEFAULT=y
+CONFIG_ARCH_SUPPORTS_INT128=y
+CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
+CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
+CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y
+CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
+CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y
+CONFIG_ARCH_WANTS_THP_SWAP=y
+CONFIG_AUDIT_ARCH=y
+# CONFIG_AXP20X_ADC is not set
+# CONFIG_AXP20X_POWER is not set
+CONFIG_AXP288_ADC=m
+CONFIG_AXP288_CHARGER=m
+CONFIG_AXP288_FUEL_GAUGE=m
+CONFIG_BATTERY_MAX17042=m
+# CONFIG_BCACHE is not set
+CONFIG_BLK_DEV_PMEM=m
+CONFIG_BLK_DEV_SKD=m
+CONFIG_BLOCK_COMPAT=y
+CONFIG_BMC150_MAGN_I2C=m
+CONFIG_BMC150_MAGN=m
+CONFIG_BMG160_I2C=m
+CONFIG_BMG160=m
+CONFIG_BMG160_SPI=m
+CONFIG_BTT=y
+CONFIG_BUILD_BIN2C=y
+# CONFIG_CALGARY_IOMMU is not set
+# CONFIG_CEC_PLATFORM_DRIVERS is not set
+CONFIG_CHARGER_BQ24190=m
+CONFIG_COMPAT_BINFMT_ELF=y
+CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
+CONFIG_COMPAT_NETLINK_MESSAGES=y
+CONFIG_COMPAT_OLD_SIGACTION=y
+CONFIG_COMPAT=y
+# CONFIG_CONTEXT_TRACKING_FORCE is not set
+CONFIG_CONTEXT_TRACKING=y
+CONFIG_CPUMASK_OFFSTACK=y
+CONFIG_CRYPTO_AEGIS128_AESNI_SSE2=m
+CONFIG_CRYPTO_BLOWFISH_X86_64=m
+CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64=m
+CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64=m
+CONFIG_CRYPTO_CAMELLIA_X86_64=m
+CONFIG_CRYPTO_CAST5_AVX_X86_64=m
+CONFIG_CRYPTO_CAST6_AVX_X86_64=m
+CONFIG_CRYPTO_CHACHA20_X86_64=m
+CONFIG_CRYPTO_CRC32C=y
+CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m
+CONFIG_CRYPTO_DES3_EDE_X86_64=m
+# CONFIG_CRYPTO_DEV_NITROX_CNN55XX is not set
+CONFIG_CRYPTO_DEV_SP_PSP=y
+CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m
+CONFIG_CRYPTO_NHPOLY1305_AVX2=m
+CONFIG_CRYPTO_NHPOLY1305_SSE2=m
+CONFIG_CRYPTO_POLY1305_X86_64=m
+CONFIG_CRYPTO_SERPENT_AVX2_X86_64=m
+CONFIG_CRYPTO_SERPENT_AVX_X86_64=m
+CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m
+CONFIG_CRYPTO_SHA1_SSSE3=m
+CONFIG_CRYPTO_SHA256_SSSE3=m
+CONFIG_CRYPTO_SHA512_SSSE3=m
+CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m
+CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m
+CONFIG_CRYPTO_TWOFISH_X86_64=m
+CONFIG_DAX_DRIVER=y
CONFIG_DCA=m
-CONFIG_NET_DMA=y
-CONFIG_DMADEVICES=y
-CONFIG_UID16=y
-CONFIG_POWER_TRACER=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_HOTPLUG_PCI_PCIE=y
-CONFIG_KVM=m
-CONFIG_KVM_INTEL=m
-CONFIG_KVM_AMD=m
-CONFIG_KVM_MMU_AUDIT=y
-CONFIG_KVM_DEVICE_ASSIGNMENT=y
-CONFIG_PCIEPORTBUS=y
-CONFIG_PCIEAER=y
-CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
-CONFIG_DELL_WMI=m
-CONFIG_KEXEC_AUTO_RESERVE=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
+CONFIG_DEFERRED_STRUCT_PAGE_INIT=y
+CONFIG_DEV_DAX_KMEM=m
+CONFIG_DEV_DAX=m
+# CONFIG_DEV_DAX_PMEM_COMPAT is not set
+CONFIG_DEV_DAX_PMEM=m
+CONFIG_DEVICE_PRIVATE=y
+CONFIG_DEV_PAGEMAP_OPS=y
+CONFIG_DMA_ENGINE_RAID=y
+CONFIG_DRM_I915_GVT_KVMGT=m
+CONFIG_DRM_I915_GVT=y
+# CONFIG_DRM_NOUVEAU_SVM is not set
+# CONFIG_DRM_XEN is not set
+CONFIG_DYNAMIC_MEMORY_LAYOUT=y
+CONFIG_DYNAMIC_PHYSICAL_MASK=y
+CONFIG_EDAC_I10NM=m
+CONFIG_EDAC_PND2=m
+CONFIG_EDAC_SBRIDGE=m
+CONFIG_EDAC_SKX=m
+CONFIG_EFI_MIXED=y
+CONFIG_EXTCON_AXP288=m
+# CONFIG_FB_MODE_HELPERS is not set
+CONFIG_FB_SYS_COPYAREA=y
+CONFIG_FB_SYS_FILLRECT=y
+CONFIG_FB_SYS_FOPS=y
+CONFIG_FB_SYS_IMAGEBLIT=y
+CONFIG_FRAME_WARN=2048
+CONFIG_FS_DAX_PMD=y
+CONFIG_GART_IOMMU=y
+CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
+CONFIG_GENERIC_CPU=y
+# CONFIG_GENWQE is not set
+# CONFIG_GPIO_SCH is not set
+CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y
+CONFIG_HAVE_ARCH_COMPAT_MMAP_BASES=y
+CONFIG_HAVE_ARCH_HUGE_VMAP=y
+CONFIG_HAVE_ARCH_KASAN=y
+CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y
+CONFIG_HAVE_ARCH_SOFT_DIRTY=y
+CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD=y
+CONFIG_HAVE_ARCH_VMAP_STACK=y
+CONFIG_HAVE_BOOTMEM_INFO_NODE=y
+CONFIG_HAVE_CONTEXT_TRACKING=y
+CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y
+CONFIG_HAVE_LIVEPATCH=y
+CONFIG_HAVE_RELIABLE_STACKTRACE=y
+CONFIG_HAVE_STACK_VALIDATION=y
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
+# CONFIG_HFI1_DEBUG_SDMA_ORDER is not set
+CONFIG_HMEM_REPORTING=y
+CONFIG_HSA_AMD=y
+CONFIG_HVC_DRIVER=y
+CONFIG_HVC_IRQ=y
+CONFIG_HVC_XEN_FRONTEND=y
+CONFIG_HVC_XEN=y
+CONFIG_HWPOISON_INJECT=m
+# CONFIG_I2C_ALI1535 is not set
+# CONFIG_I2C_ALI1563 is not set
+# CONFIG_I2C_ALI15X3 is not set
+CONFIG_I2C_MLXCPLD=m
+# CONFIG_I2C_SIS5595 is not set
+# CONFIG_I2C_SIS630 is not set
+CONFIG_IA32_EMULATION=y
+CONFIG_IGB_DCA=y
+CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
+CONFIG_INFINIBAND_BNXT_RE=m
+CONFIG_INFINIBAND_EFA=m
+CONFIG_INFINIBAND_HFI1=m
+CONFIG_INFINIBAND_OPA_VNIC=m
+CONFIG_INFINIBAND_QEDR=m
+CONFIG_INFINIBAND_QIB_DCA=y
+CONFIG_INFINIBAND_QIB=m
+CONFIG_INFINIBAND_RDMAVT=m
+CONFIG_INPUT_AXP20X_PEK=m
+CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
+CONFIG_INTEL_CHT_INT33FE=m
+CONFIG_INTEL_IOATDMA=m
+CONFIG_INTEL_ISH_FIRMWARE_DOWNLOADER=m
+CONFIG_INTEL_ISH_HID=m
+CONFIG_INTEL_MIC_BUS=m
+CONFIG_INTEL_MIC_CARD=m
+CONFIG_INTEL_MIC_HOST=m
+CONFIG_INTEL_MIC_X100_DMA=m
+CONFIG_INTEL_SPEED_SELECT_INTERFACE=m
+CONFIG_INTEL_TELEMETRY=m
+CONFIG_INTEL_TURBO_MAX_3=y
+# CONFIG_IOMMU_DEBUG is not set
+CONFIG_IOMMU_HELPER=y
+CONFIG_IONIC=m
+CONFIG_IRQ_REMAP=y
+CONFIG_IXGBE_DCA=y
+# CONFIG_JAILHOUSE_GUEST is not set
+CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y
+# CONFIG_KASAN is not set
+# CONFIG_KCOV is not set
+CONFIG_KEXEC_BZIMAGE_VERIFY_SIG=y
+CONFIG_KEXEC_FILE=y
+# CONFIG_KEXEC_SIG_FORCE is not set
+CONFIG_KEXEC_SIG=y
+CONFIG_KEYBOARD_APPLESPI=m
+CONFIG_KEYS_COMPAT=y
+CONFIG_KVM_AMD_SEV=y
+CONFIG_KVM_COMPAT=y
+# CONFIG_LEGACY_VSYSCALL_EMULATE is not set
+# CONFIG_LEGACY_VSYSCALL_NONE is not set
+CONFIG_LEGACY_VSYSCALL_XONLY=y
+CONFIG_LIBNVDIMM=m
+CONFIG_LIVEPATCH=y
+CONFIG_MAILBOX=y
+CONFIG_MAXSMP=y
+# CONFIG_MDIO_THUNDER is not set
+CONFIG_MEMORY_FAILURE=y
+CONFIG_MEM_SOFT_DIRTY=y
+CONFIG_MFD_AXP20X_I2C=m
+CONFIG_MFD_AXP20X=m
+CONFIG_MIC_COSM=m
+CONFIG_MLX5_INFINIBAND=m
+CONFIG_MMCONF_FAM10H=y
+CONFIG_MODULES_USE_ELF_RELA=y
+# CONFIG_MPSC is not set
+CONFIG_MTD_BLKDEVS=m
+CONFIG_MTD_BLOCK=m
+# CONFIG_MTD_NAND_CAFE is not set
+CONFIG_MYRI10GE_DCA=y
+CONFIG_ND_BLK=m
+CONFIG_ND_BTT=m
+CONFIG_ND_CLAIM=y
+CONFIG_ND_PFN=m
+CONFIG_NEED_MULTIPLE_NODES=y
+CONFIG_NET_9P_XEN=m
+# CONFIG_NFIT_SECURITY_DEBUG is not set
+CONFIG_NODES_SHIFT=10
+CONFIG_NODES_SPAN_OTHER_NODES=y
+CONFIG_NO_HZ_FULL=y
+# CONFIG_NO_HZ_IDLE is not set
+CONFIG_NR_CPUS=8192
+CONFIG_NR_CPUS_DEFAULT=8192
+CONFIG_NR_CPUS_RANGE_BEGIN=8192
+CONFIG_NR_CPUS_RANGE_END=8192
+CONFIG_NTB_AMD=m
+CONFIG_NTB_IDT=m
+CONFIG_NTB_INTEL=m
+CONFIG_NTB=m
+# CONFIG_NTB_MSI is not set
+CONFIG_NTB_NETDEV=m
+CONFIG_NTB_PERF=m
+CONFIG_NTB_PINGPONG=m
+CONFIG_NTB_SWITCHTEC=m
+CONFIG_NTB_TOOL=m
+CONFIG_NTB_TRANSPORT=m
+CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y
+CONFIG_NUMA_BALANCING=y
+# CONFIG_NUMA_EMU is not set
+CONFIG_NUMA=y
+CONFIG_NVDIMM_DAX=y
+CONFIG_NVDIMM_KEYS=y
+CONFIG_NVDIMM_PFN=y
+# CONFIG_OF is not set
+CONFIG_OUTPUT_FORMAT="elf64-x86-64"
+CONFIG_PAGE_TABLE_ISOLATION=y
+CONFIG_PARAVIRT_XXL=y
+CONFIG_PCC=y
+CONFIG_PCI_P2PDMA=y
+CONFIG_PCI_XEN=y
+CONFIG_PGTABLE_LEVELS=5
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_PHYSICAL_ALIGN=0x1000000
+CONFIG_PHYSICAL_START=0x1000000
+CONFIG_PROC_THERMAL_MMIO_RAPL=y
+CONFIG_QED_RDMA=y
+CONFIG_QUOTACTL_COMPAT=y
+CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa
+CONFIG_RANDOMIZE_MEMORY=y
+# CONFIG_RAS_CEC_DEBUG is not set
+CONFIG_RAS_CEC=y
+CONFIG_RCU_NOCB_CPU=y
+# CONFIG_REGULATOR_AXP20X is not set
+# CONFIG_REGULATOR_BD9571MWV is not set
+# CONFIG_RPMSG_QCOM_GLINK_RPM is not set
+CONFIG_SCIF_BUS=m
+CONFIG_SCIF=m
+# CONFIG_SDMA_VERBOSITY is not set
+# CONFIG_SENSORS_XGENE is not set
+CONFIG_SFC=m
+# CONFIG_SFC_MCDI_LOGGING is not set
+CONFIG_SFC_MCDI_MON=y
+CONFIG_SFC_MTD=y
+CONFIG_SFC_SRIOV=y
+# CONFIG_SFI is not set
+# CONFIG_SGI_GRU_DEBUG is not set
CONFIG_SGI_GRU=m
-CONFIG_X86_UV=y
+CONFIG_SGI_XP=m
+# CONFIG_SND_XEN_FRONTEND is not set
+CONFIG_SPARSEMEM_EXTREME=y
+CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
+CONFIG_SPARSEMEM_VMEMMAP=y
+CONFIG_STACK_VALIDATION=y
+# CONFIG_STAGING_GASKET_FRAMEWORK is not set
+CONFIG_SWIOTLB_XEN=y
+CONFIG_SYS_HYPERVISOR=y
+CONFIG_SYSVIPC_COMPAT=y
+# CONFIG_TCG_XEN is not set
+# CONFIG_TEST_LIVEPATCH is not set
+CONFIG_THP_SWAP=y
+CONFIG_THUNDERBOLT=m
+CONFIG_THUNDERBOLT_NET=m
+CONFIG_TOUCHSCREEN_AUO_PIXCIR=m
+CONFIG_TOUCHSCREEN_CHIPONE_ICN8505=m
+# CONFIG_UNISYS_VISORBUS is not set
+# CONFIG_UNWINDER_FRAME_POINTER is not set
+CONFIG_UNWINDER_ORC=y
+# CONFIG_USB_PULSE8_CEC is not set
+# CONFIG_USB_RAINSHADOW_CEC is not set
+CONFIG_USE_PERCPU_NUMA_NODE_ID=y
CONFIG_UV_MMTIMER=m
-CONFIG_X86_MCE_INJECT=m
-CONFIG_TRACK_DIRTY_PAGES=y
-CONFIG_OPROFILE_EVENT_MULTIPLEX=y
-CONFIG_FRAME_POINTER=y
-CONFIG_FUNCTION_TRACER=y
-CONFIG_FUNCTION_GRAPH_TRACER=y
-CONFIG_STACK_TRACER=y
-CONFIG_FUNCTION_PROFILER=y
-CONFIG_DYNAMIC_FTRACE=y
-CONFIG_HP_ILO=m
-CONFIG_ACPI_HOTPLUG_MEMORY_AUTO_ONLINE=y
-CONFIG_XEN_PLATFORM_PCI=y
-CONFIG_VMWARE_BALLOON=m
-CONFIG_X86_PCC_CPUFREQ=m
-CONFIG_INTEL_IDLE=y
-CONFIG_INFINIBAND_QIB=m
-CONFIG_INTEL_IPS=m
-CONFIG_INTEL_TXT=y
-CONFIG_HP_WATCHDOG=m
-CONFIG_HPWDT_NMI_DECODING=y
-CONFIG_IB700_WDT=m
-CONFIG_HPET_MMAP=y
-CONFIG_SENSORS_FAM15H_POWER=m
-CONFIG_BLK_DEV_RSXX=m
-# CONFIG_DMAR_DEFAULT_ON is not set
-# CONFIG_HOTPLUG_PCI_PCIE_POLL_EVENT_MODE is not set
-# CONFIG_MEMORY_HOTREMOVE is not set
-# CONFIG_SND_ES18XX is not set
-# CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT is not set
-# CONFIG_UV_MMTIMER is not set
-# CONFIG_CPU_SUP_CENTAUR is not set
-# CONFIG_X86_CPU_DEBUG is not set
-# CONFIG_CAPI_EICON is not set
-# CONFIG_I2O is not set
-# CONFIG_I2O_BLOCK is not set
-# CONFIG_I2O_SCSI is not set
-# CONFIG_I2O_PROC is not set
-# CONFIG_I2O_CONFIG is not set
-# CONFIG_I2O_EXT_ADAPTEC is not set
-# CONFIG_I2O_EXT_ADAPTEC_DMA64 is not set
-# CONFIG_I2O_CONFIG_OLD_IOCTL is not set
-# CONFIG_I2O_BUS is not set
-CONFIG_HARDLOCKUP_DETECTOR=y
-CONFIG_BOOTPARAM_HARDLOCKUP_ENABLED=y
-# CONFIG_K8_NUMA is not set
-CONFIG_AMD_NUMA=y
-CONFIG_XEN_MAX_DOMAIN_MEMORY=128
-# CONFIG_EDAC_MCE_INJ is not set
-# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
-CONFIG_I2C_ISMT=m
-CONFIG_LPC_SCH=m
-CONFIG_LPC_ICH=m
-CONFIG_GPIOLIB=y
-#CONFIG_MFD_SM501_GPIO is not set
-CONFIG_GPIO_SCH=m
-CONFIG_IE6XX_WDT=m
-# CONFIG_MDIO_GPIO is not set
-# CONFIG_KEYBOARD_GPIO is not set
-# CONFIG_MOUSE_GPIO is not set
-# CONFIG_I2C_GPIO is not set
-# CONFIG_DEBUG_GPIO is not set
-# CONFIG_GPIO_SYSFS is not set
-# CONFIG_GPIO_MAX732X is not set
-# CONFIG_GPIO_PCA953X is not set
-# CONFIG_GPIO_PCF857X is not set
-# CONFIG_GPIO_WM831X is not set
-# CONFIG_UCB1400_CORE is not set
-# CONFIG_USB_GPIO_VBUS is not set
-# CONFIG_LEDS_GPIO is not set
-# CONFIG_LEDS_TRIGGER_GPIO is not set
-CONFIG_HYPERV=m
-CONFIG_HYPERV_UTILS=m
-CONFIG_HYPERV_MOUSE=m
-CONFIG_HYPERV_STORAGE=m
-CONFIG_HYPERV_NET=m
-CONFIG_HYPERV_BALLOON=m
-CONFIG_X86_INTEL_PSTATE=m
-CONFIG_PVPANIC=y
-CONFIG_FB_HYPERV=m
-CONFIG_BLK_DEV_NVME=m
-CONFIG_MICROCODE=y
-CONFIG_MICROCODE_EARLY=y
-CONFIG_MICROCODE_INTEL=y
-CONFIG_MICROCODE_AMD=y
-CONFIG_X86_MCE_INTEL=y
-CONFIG_X86_MCE_AMD=y
-CONFIG_IA32_EMULATION=y
-CONFIG_IA32_AOUT=y
-CONFIG_X86_X32=y
-CONFIG_COMPAT=y
-CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
+# CONFIG_VALIDATE_FS_PARSER is not set
+CONFIG_VHOST_RING=m
+# CONFIG_VIDEO_GO7007_USB is not set
+CONFIG_VIRT_CPU_ACCOUNTING_GEN=y
+CONFIG_VIRT_CPU_ACCOUNTING=y
+CONFIG_VMAP_STACK=y
+CONFIG_VMD=m
+CONFIG_VOP_BUS=m
+CONFIG_VOP=m
+CONFIG_X86_5LEVEL=y
+CONFIG_X86_64_ACPI_NUMA=y
+CONFIG_X86_64_SMP=y
+CONFIG_X86_64=y
+# CONFIG_X86_CPA_STATISTICS is not set
CONFIG_X86_DEV_DMA_OPS=y
-CONFIG_IOSF_MBI=m
-CONFIG_COMPAT_NETLINK_MESSAGES=y
-CONFIG_X86_MSR=m
-CONFIG_X86_CPUID=m
-CONFIG_ALX=m
+CONFIG_X86_DIRECT_GBPAGES=y
+CONFIG_X86_ESPFIX64=y
+CONFIG_X86_HV_CALLBACK_VECTOR=y
+CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y
+CONFIG_X86_INTEL_MPX=y
+CONFIG_X86_MINIMUM_CPU_FAMILY=64
+# CONFIG_X86_NUMACHIP is not set
+CONFIG_X86_PMEM_LEGACY_DEVICE=y
+CONFIG_X86_PMEM_LEGACY=m
+CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_X86_UV=y
+# CONFIG_X86_VSMP is not set
+CONFIG_X86_VSYSCALL_EMULATION=y
+CONFIG_X86_X2APIC=y
+CONFIG_X86_X32=y
+CONFIG_XEN_512GB=y
+CONFIG_XEN_ACPI_PROCESSOR=m
+CONFIG_XEN_ACPI=y
+CONFIG_XEN_AUTO_XLATE=y
+CONFIG_XEN_BACKEND=y
+# CONFIG_XEN_BALLOON_MEMORY_HOTPLUG is not set
+CONFIG_XEN_BALLOON=y
+CONFIG_XEN_BLKDEV_BACKEND=m
+CONFIG_XEN_BLKDEV_FRONTEND=m
+CONFIG_XEN_COMPAT_XENFS=y
+CONFIG_XEN_DEBUG_FS=y
+CONFIG_XEN_DEV_EVTCHN=m
+CONFIG_XEN_DOM0=y
+CONFIG_XEN_EFI=y
+CONFIG_XEN_FBDEV_FRONTEND=y
+CONFIG_XENFS=m
+CONFIG_XEN_GNTDEV=m
+CONFIG_XEN_GRANT_DEV_ALLOC=m
+# CONFIG_XEN_GRANT_DMA_ALLOC is not set
+CONFIG_XEN_HAVE_PVMMU=y
+CONFIG_XEN_HAVE_VPMU=y
+# CONFIG_XEN_MCE_LOG is not set
+CONFIG_XEN_NETDEV_BACKEND=m
+CONFIG_XEN_NETDEV_FRONTEND=m
+CONFIG_XEN_PCIDEV_BACKEND=m
+CONFIG_XEN_PCIDEV_FRONTEND=m
+CONFIG_XEN_PRIVCMD=m
+# CONFIG_XEN_PVCALLS_BACKEND is not set
+# CONFIG_XEN_PVCALLS_FRONTEND is not set
+CONFIG_XEN_PVHVM_SMP=y
+CONFIG_XEN_PVHVM=y
+CONFIG_XEN_PVH=y
+CONFIG_XEN_PV_SMP=y
+CONFIG_XEN_PV=y
+CONFIG_XEN_SAVE_RESTORE=y
+CONFIG_XEN_SCRUB_PAGES_DEFAULT=y
+CONFIG_XEN_SCSI_BACKEND=m
+CONFIG_XEN_SCSI_FRONTEND=m
+CONFIG_XEN_SYMS=y
+CONFIG_XEN_SYS_HYPERVISOR=y
+CONFIG_XEN_WDT=m
+CONFIG_XEN_XENBUS_FRONTEND=y
+CONFIG_XEN=y
+CONFIG_XPOWER_PMIC_OPREGION=y
+CONFIG_ZONE_DEVICE=y
+CONFIG_ZONE_DMA32=y
diff --git a/arch/x86_64/config.sh b/arch/x86_64/config.sh
index bf58957..0243f6b 100755..100644
--- a/arch/x86_64/config.sh
+++ b/arch/x86_64/config.sh
@@ -6,3 +6,4 @@
KERNEL_MAKE_DIRECTIVE="bzImage"
KERNEL_MAKE_DIRECTIVE_2=""
KERNEL_BINARY="arch/x86_64/boot/bzImage"
+KERNEL_SUPPORT_MICROCODE=yes
diff --git a/arch/x86_64/modules_load b/arch/x86_64/modules_load
index 07a4acd..d755b29 100644
--- a/arch/x86_64/modules_load
+++ b/arch/x86_64/modules_load
@@ -1,39 +1,5 @@
-# Module groups for genkernel initramfs auto-loading
-
-# RAID
-MODULES_ATARAID="ataraid pdcraid hptraid"
-MODULES_DMRAID="dm-mod dm-mirror dm-crypt"
-MODULES_MDADM="md-mod dm-mod dm-snapshot dm-mirror dm-bbr dm-raid dm-crypt raid0 raid1 raid456 raid5 raid6 raid10 linear multipath async_raid6_recov async_pq libcrc32c raid6_pq async_tx async_memcpy async_xor"
-MODULES_LVM="dm-mod dm-bio-prison dm-bufio dm-cache dm-cache-smq dm-crypt dm-delay dm-era dm-flakey dm-integrity dm-log dm-log-userspace dm-log-writes dm-mirror dm-raid dm-region-hash dm-snapshot dm-switch dm-thin-pool dm-verity dm-zero dm-persistent-data ${MODULES_MDADM}"
-MODULES_MULTIPATH="dm-mod dm-multipath dm-round-robin dm-rdac dm-queue-length dm-service-time"
-
-# Hardware (IDE/SCSI/SATA/NVMe)
-MODULES_NVME="nvme-core nvme nvme-fabrics nvme-rdma nvme-loop nvme-fc"
-MODULES_PATA="pata_mpiix pata_pdc2027x pata_radisys pata_sil680 pata_rz1000 pata_efar pata_cmd64x pata_hpt366 pata_hpt37x pata_hpt3x3 pata_hpt3x2n pata_optidma pata_it821x pata_artop pata_oldpiix pata_cypress pata_platform pata_serverworks pata_legacy pata_ns87410 pata_ns87415 pata_pcmcia pata_isapnp pata_it8213 pata_ali pata_amd pata_opti pata_atiixp pata_triflex pata_pdc202xx_old pata_sc1200 pata_qdi pata_netcell pata_sis pata_hpt3x2n pata_marvell pata_jmicron pata_via pata_cs5520 pata_cs5530 pata_cs5535 pata_sl82c105 libata"
-MODULES_SATA="sata_promise sata_sil sata_sil24 sata_svw sata_via sata_nv sata_sx4 sata_sis sata_uli sata_vsc sata_qstor ahci libata ata_piix sata_mv sata_inic162x pdc_adma"
-MODULES_SCSI="sd_mod sg sr_mod aic79xx aic7xxx aic7xxx_old arcmsr BusLogic ncr53c8xx NCR53c406a initio advansys aha1740 aha1542 aha152x dtc fdomain gdth pas16 pci2220i pci2000 psi240i qlogicfas qlogicfc qlogicisp qlogicpti seagate t128 u14-34f ultrastor wd7000 sym53c8xx dmx3191d imm in2000 ips qla1280 sim710 sym53c416 dc395x atp870u mptbase mptscsih mptspi mptfc mptsas 3w-sas 3w-xxxx 3w-9xxx cpqarray cciss hpsa DAC960 sx8 aacraid megaraid megaraid_mbox megaraid_mm megaraid_sas qla2xxx lpfc scsi_transport_fc aic94xx mpt2sas mpt3sas virtio_scsi virtio_blk"
-MODULES_WAITSCAN="scsi_wait_scan"
-MODULES_BLOCK="sdhci_acpi sdhci_pci"
-
-# Hardware (Network)
-MODULES_NET="atl1c bnx2 e1000 igb pcnet32 r8169 sky2 tg3 broadcom bcm_phy_lib virtio_net vmxnet3 macvlan vxlan bonding vxge cxgb4 cxgb cxgb3 tulip samsung-sxgbe ixgbe ixgb virtio_net"
-
-# iSCSI support
-MODULES_ISCSI="scsi_transport_iscsi libiscsi iscsi_tcp"
-
-# Hardware (Pluggable)
-MODULES_FIREWIRE="ieee1394 ohci1394 sbp2"
-MODULES_PCMCIA="pcmcia pcmcia_core yenta_socket pd6729 i82092 i82365 tcic ds ide-cs firmware_class"
-MODULES_USB="ehci-pci ehci-hcd uhci usb-ohci hid usb-storage uas uhci-hcd ohci-hcd xhci-hcd xhci-pci xhci-plat usbhid hid-generic sl811-hcd hid-a4tech hid-apple hid-belkin hid-cherry hid-chicony hid-cypress hid-dummy hid-ezkey hid-gyration hid-logitech hid-logitech-dj hid-microsoft hid-monterey hid-petalynx hid-pl hid-samsung hid-sony hid-sunplus"
-
-# Filesystems
-MODULES_FS="ext2 ext3 ext4 btrfs reiserfs jfs nfs xfs zfs f2fs fuse loop squashfs aufs overlay cramfs configfs fscrypto efivarfs msdos qemu_fw_cfg"
+# x86_64 module groups for genkernel initramfs auto-loading
+# (extending defaults/modules_load)
# Crypto
-MODULES_CRYPTO="sha256_generic cbc crc32c crc32c_generic crc32c-intel crc32 crc32_generic crc32-pclmul aes_generic aes-x86_64 aesni-intel xts"
-
-# Hyper-V
-MODULES_HYPERV="hv_utils hv_vmbus hv_balloon hyperv_keyboard hv_netvsc hid_hyperv hv_utils hyperv_fb hv_storvsc"
-
-# Virtio
-MODULES_VIRTIO="virtio_scsi virtio_blk virtio_console virtio-rng virtio virtio_balloon virtio_input virtio_ring virtio_pci virtio_mmio virtio_crypto virtio_net"
+MODULES_CRYPTO+=" crc32c-intel crc32-pclmul aes-x86_64 aesni-intel serpent-sse2-x86_64 serpent-avx-x86_64 serpent-avx2"
diff --git a/defaults/busy-config b/defaults/busy-config
index b62b21f..b34c912 100644
--- a/defaults/busy-config
+++ b/defaults/busy-config
@@ -1,5 +1,3 @@
-# Gentoo patch:
-CONFIG_MDSTART=y
# Options to match older versions of busybox:
CONFIG_ASH_BUILTIN_ECHO=y
CONFIG_ASH_BUILTIN_PRINTF=y
@@ -46,8 +44,8 @@ CONFIG_FEATURE_INSTALLER=y
CONFIG_LONG_OPTS=y
CONFIG_FEATURE_DEVPTS=y
# CONFIG_FEATURE_CLEAN_UP is not set
-# CONFIG_FEATURE_UTMP is not set
-# CONFIG_FEATURE_WTMP is not set
+CONFIG_FEATURE_UTMP=y
+CONFIG_FEATURE_WTMP=y
# CONFIG_FEATURE_PIDFILE is not set
CONFIG_PID_FILE_PATH=""
CONFIG_FEATURE_SUID=y
@@ -75,6 +73,7 @@ CONFIG_SYSROOT=""
CONFIG_EXTRA_CFLAGS=""
CONFIG_EXTRA_LDFLAGS=""
CONFIG_EXTRA_LDLIBS=""
+# CONFIG_STACK_OPTIMIZATION_386 is not set
#
# Installation Options ("make install" behavior)
@@ -111,7 +110,7 @@ CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
CONFIG_PASSWORD_MINLEN=6
CONFIG_MD5_SMALL=1
CONFIG_SHA3_SMALL=1
-# CONFIG_FEATURE_FAST_TOP is not set
+CONFIG_FEATURE_FAST_TOP=y
# CONFIG_FEATURE_ETC_NETWORKS is not set
CONFIG_FEATURE_EDITING=y
CONFIG_FEATURE_EDITING_MAX_LEN=1024
@@ -353,7 +352,7 @@ CONFIG_BASE64=y
CONFIG_WC=y
CONFIG_FEATURE_WC_LARGE=y
CONFIG_WHOAMI=y
-# CONFIG_WHO is not set
+CONFIG_WHO=y
# CONFIG_W is not set
# CONFIG_USERS is not set
CONFIG_YES=y
@@ -637,8 +636,8 @@ CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y
CONFIG_IONICE=y
# CONFIG_IPCRM is not set
# CONFIG_IPCS is not set
-# CONFIG_LAST is not set
-# CONFIG_FEATURE_LAST_FANCY is not set
+CONFIG_LAST=y
+CONFIG_FEATURE_LAST_FANCY=y
CONFIG_LOSETUP=y
CONFIG_LSPCI=y
CONFIG_LSUSB=y
@@ -665,7 +664,7 @@ CONFIG_FEATURE_MOUNT_FAKE=y
CONFIG_FEATURE_MOUNT_VERBOSE=y
CONFIG_FEATURE_MOUNT_HELPERS=y
CONFIG_FEATURE_MOUNT_LABEL=y
-# CONFIG_FEATURE_MOUNT_NFS is not set
+CONFIG_FEATURE_MOUNT_NFS=n
CONFIG_FEATURE_MOUNT_CIFS=y
CONFIG_FEATURE_MOUNT_FLAGS=y
CONFIG_FEATURE_MOUNT_FSTAB=y
@@ -1054,6 +1053,7 @@ CONFIG_FEATURE_SHOW_THREADS=y
# CONFIG_FEATURE_RUNSVDIR_LOG is not set
# CONFIG_SV is not set
CONFIG_SV_DEFAULT_SERVICE_DIR=""
+# CONFIG_SVOK is not set
# CONFIG_SVC is not set
# CONFIG_SVLOGD is not set
# CONFIG_CHCON is not set
@@ -1135,7 +1135,7 @@ CONFIG_CTTYHACK=y
#
CONFIG_FEATURE_SH_MATH=y
CONFIG_FEATURE_SH_MATH_64=y
-# CONFIG_FEATURE_SH_EXTRA_QUIET is not set
+CONFIG_FEATURE_SH_EXTRA_QUIET=y
# CONFIG_FEATURE_SH_STANDALONE is not set
# CONFIG_FEATURE_SH_NOFORK is not set
CONFIG_FEATURE_SH_HISTFILESIZE=y
diff --git a/defaults/compression_methods.sh b/defaults/compression_methods.sh
new file mode 100644
index 0000000..8cdc38c
--- /dev/null
+++ b/defaults/compression_methods.sh
@@ -0,0 +1,42 @@
+# NOTE:
+# - This file (compression_methods.sh) is sourced by genkernel.
+# Rather than changing this very file, please override specific variables
+# somewhere in /etc/genkernel.conf .
+#
+# - This file should not override previously defined variables, as their values may
+# originate from user changes to /etc/genkernel.conf .
+
+GKICM_BZ2_KOPTNAME="BZIP2"
+GKICM_BZ2_CMD="bzip2 -z -f -9"
+GKICM_BZ2_EXT=".bz2"
+GKICM_BZ2_PKG="app-arch/bzip2"
+
+GKICM_GZ_KOPTNAME="GZIP"
+GKICM_GZ_CMD="gzip -f -9"
+GKICM_GZ_EXT=".gz"
+GKICM_GZ_PKG="app-arch/gzip"
+
+GKICM_LZO_KOPTNAME="LZO"
+GKICM_LZO_CMD="lzop -f -9"
+GKICM_LZO_EXT=".lzo"
+GKICM_LZO_PKG="app-arch/lzop"
+
+GKICM_LZ4_KOPTNAME="LZ4"
+GKICM_LZ4_CMD="lz4 -f -9 -l -q"
+GKICM_LZ4_EXT=".lz4"
+GKICM_LZ4_PKG="app-arch/lz4"
+
+GKICM_LZMA_KOPTNAME="LZMA"
+GKICM_LZMA_CMD="lzma -z -f -9"
+GKICM_LZMA_EXT=".lzma"
+GKICM_LZMA_PKG="app-arch/xz-utils"
+
+GKICM_XZ_KOPTNAME="XZ"
+GKICM_XZ_CMD="xz -e --check=none -z -f -9 -T 0"
+GKICM_XZ_EXT=".xz"
+GKICM_XZ_PKG="app-arch/xz-utils"
+
+GKICM_ZSTD_KOPTNAME="ZSTD"
+GKICM_ZSTD_CMD="zstd -f -19 -q -T0"
+GKICM_ZSTD_EXT=".zst"
+GKICM_ZSTD_PKG="app-arch/zstd"
diff --git a/defaults/config.sh b/defaults/config.sh
index 72487b8..a5d9ea3 100755..100644
--- a/defaults/config.sh
+++ b/defaults/config.sh
@@ -11,6 +11,7 @@ DEFAULT_KERNEL_MAKE_DIRECTIVE_OVERRIDE="--INVALID--"
KERNEL_MAKE_DIRECTIVE_OVERRIDE="${KERNEL_MAKE_DIRECTIVE_OVERRIDE:-${DEFAULT_KERNEL_MAKE_DIRECTIVE_OVERRIDE}}"
KERNEL_MAKE_DIRECTIVE_2=""
KERNEL_BINARY="--INVALID--"
+KERNEL_SUPPORT_MICROCODE=no
# At a bare minimum, every arch MUST override these two options:
# KERNEL_MAKE_DIRECTIVE
@@ -20,19 +21,48 @@ KERNEL_BINARY="--INVALID--"
# Arch-specific defaults that can be overridden in the config file or on the
# command line.
#
+DEFAULT_INITRAMFS_FILENAME="initramfs-%%KV%%.img"
+DEFAULT_INITRAMFS_SYMLINK_NAME="initramfs"
+DEFAULT_KERNEL_CONFIG_FILENAME="kernel-config-%%KV%%"
+DEFAULT_KERNEL_FILENAME="vmlinuz-%%KV%%"
+DEFAULT_KERNEL_SYMLINK_NAME="kernel"
+DEFAULT_SYSTEMMAP_FILENAME="System.map-%%KV%%"
+DEFAULT_SYSTEMMAP_SYMLINK_NAME="System.map"
+
DEFAULT_COMPRESS_INITRD=yes
DEFAULT_COMPRESS_INITRD_TYPE=best
PORTAGE_MAKEOPTS="$(portageq envvar MAKEOPTS)"
-DEFAULT_MAKEOPTS="${PORTAGE_MAKEOPTS:- -j2}"
+DEFAULT_MAKEOPTS="${PORTAGE_MAKEOPTS:- -j$(nproc)}"
-DEFAULT_KERNEL_MAKE=make
-DEFAULT_UTILS_MAKE=make
+DEFAULT_MODULEREBUILD_CMD="emerge --ignore-default-opts --buildpkg=n --usepkg=n --quiet-build=y @module-rebuild"
-DEFAULT_KERNEL_CC=gcc
DEFAULT_KERNEL_AS=as
+DEFAULT_KERNEL_AR=ar
+DEFAULT_KERNEL_CC=gcc
+DEFAULT_KERNEL_CXX=g++
DEFAULT_KERNEL_LD=ld
+DEFAULT_KERNEL_NM=nm
+DEFAULT_KERNEL_MAKE=make
+DEFAULT_KERNEL_OBJCOPY=objcopy
+DEFAULT_KERNEL_OBJDUMP=objdump
+DEFAULT_KERNEL_RANLIB=ranlib
+DEFAULT_KERNEL_READELF=readelf
+DEFAULT_KERNEL_STRIP=strip
-DEFAULT_UTILS_CC=gcc
DEFAULT_UTILS_AS=as
+DEFAULT_UTILS_AR=ar
+DEFAULT_UTILS_CC=gcc
+DEFAULT_UTILS_CFLAGS="-Os -pipe -fomit-frame-pointer"
+DEFAULT_UTILS_CXX=g++
DEFAULT_UTILS_LD=ld
+DEFAULT_UTILS_NM=nm
+DEFAULT_UTILS_MAKE=make
+DEFAULT_UTILS_OBJCOPY=objcopy
+DEFAULT_UTILS_OBJDUMP=objdump
+DEFAULT_UTILS_RANLIB=ranlib
+DEFAULT_UTILS_READELF=readelf
+DEFAULT_UTILS_STRIP=strip
+
+PORTAGE_CHOST="$(portageq envvar CHOST)"
+DEFAULT_CHOST="${PORTAGE_CHOST:-$(${DEFAULT_UTILS_CC} -dumpmachine 2>/dev/null)}"
diff --git a/defaults/gksosreport.sh b/defaults/gksosreport.sh
new file mode 100644
index 0000000..03b44b6
--- /dev/null
+++ b/defaults/gksosreport.sh
@@ -0,0 +1,74 @@
+#!/bin/sh
+
+echo 'Generating "/run/initramfs/gksosreport.txt" ...'
+
+if [ ! -d /run/initramfs ]
+then
+ mkdir -p /run/initramfs
+ chmod 0750 /run/initramfs
+fi
+
+exec >/run/initramfs/gksosreport.txt 2>&1
+
+PWFILTER='s/\(ftp:\/\/.*\):.*@/\1:*******@/g;s/\(cifs:\/\/.*\):.*@/\1:*******@/g;s/cifspass=[^ ]*/cifspass=*******/g;s/iscsi:.*@/iscsi:******@/g;s/rd.iscsi.password=[^ ]*/rd.iscsi.password=******/g;s/rd.iscsi.in.password=[^ ]*/rd.iscsi.in.password=******/g'
+
+echo "Genkernel SOS report from $(date +'%Y-%m-%d %H:%M:%S'):"
+
+set -x
+
+cat /lib/dracut/dracut-gk-version.info
+
+cat /lib/dracut/build-parameter.txt
+
+cat /proc/cmdline | sed -e "${PWFILTER}"
+
+[ -f /etc/cmdline ] && cat /etc/cmdline | sed -e "${PWFILTER}"
+
+lspci -k
+
+lsmod
+
+find /lib/modules/$(uname -r) -type f
+
+cat /proc/self/mountinfo
+cat /proc/mounts
+
+blkid
+blkid -o udev
+
+ls -l /dev/disk/by*
+
+if hash lvm >/dev/null 2>/dev/null
+then
+ lvm pvdisplay
+ lvm vgdisplay
+ lvm lvdisplay
+fi
+
+if hash dmsetup >/dev/null 2>/dev/null
+then
+ dmsetup ls --tree
+fi
+
+if [ -e /proc/mdstat ]
+then
+ cat /proc/mdstat
+fi
+
+if hash cryptsetup >/dev/null 2>/dev/null
+then
+ if [ -e /dev/mapper/root ]
+ then
+ cryptsetup status /dev/mapper/root
+ fi
+fi
+
+if hash ip >/dev/null 2>/dev/null
+then
+ ip link
+ ip addr
+fi
+
+dmesg | sed -e "${PWFILTER}"
+
+[ -f /run/initramfs/init.log ] && cat /run/initramfs/init.log | sed -e "${PWFILTER}"
diff --git a/defaults/initrd.defaults b/defaults/initrd.defaults
index 7c755a8..9ebeecc 100755..100644
--- a/defaults/initrd.defaults
+++ b/defaults/initrd.defaults
@@ -1,4 +1,4 @@
-#!/bin/ash
+#!/bin/sh
PATH="/usr/sbin:/usr/bin:/sbin:/bin"
@@ -6,7 +6,6 @@ PATH="/usr/sbin:/usr/bin:/sbin:/bin"
# ctrl-V then esc will print ^[
# ctrl-V then ctrl-shift-m will print ^M
BACK_UP="\033[1K\033[0G"
-NORMAL="\033[0m"
WARN="\033[33;1m"
BAD="\033[31;1m"
BOLD="\033[1m"
@@ -46,21 +45,26 @@ WHITE=""
# Just go to the top of the screen
# printf ""
-KV=`uname -r`
-KMAJOR=`echo $KV | cut -f1 -d.`
-KMINOR=`echo $KV | cut -f2 -d.`
+KV=$(uname -r)
+KMAJOR=$(echo ${KV} | cut -f1 -d.)
+KMINOR=$(echo ${KV} | cut -f2 -d.)
KVER="${KMAJOR}.${KMINOR}"
MISCOPTS='debug detect'
-QUIET=''
+CONSOLE_LOGLEVEL=$(cut -b1 /proc/sys/kernel/printk 2>/dev/null || echo 7)
+
+QUIET=0
ROOT_LINKS='bin sbin lib lib32 lib64 boot usr opt emul'
ROOT_TREES='etc root home var'
+FAKE_ROOT=''
+FAKE_INIT=''
+FAKE_ROOTFLAGS=''
+
REAL_ROOT=''
-CONSOLE='/dev/console'
NEW_ROOT='/newroot'
no_umounts='/newroot|/mnt/aufs-dev|/mnt/aufs-rw-branch|/mnt/livecd|/mnt/cdrom|/.unions/memory|/.unions/memory/xino'
-ROOTDELAY=1
+ROOTDELAY=5
CDROOT='0'
CDROOT_DEV=''
CDROOT_TYPE='auto'
@@ -70,6 +74,58 @@ CDROOT_PATH='/mnt/cdrom'
CDROOT_MARKER='/livecd'
VERIFY=0
+IP='dhcp'
+GK_BOOTFONT_DISABLED=0
+GK_CONSOLE_LOGLEVEL=3
+GK_DEBUGMODE_STATEFILE="/tmp/debug.enabled"
+GK_EMERGENCY_ACTION="halt -f"
+GK_HW_LOAD_ALL_MODULES=0
+GK_HW_USE_MODULES_LOAD=0
+GK_INIT_LOG='/run/initramfs/init.log'
+GK_INIT_LOG_DISABLED='/tmp/no-init.log'
+GK_INIT_LOG_PREFIX=
+GK_NET_DHCP_PIDFILE='/var/run/udhcpc.pid'
+GK_NET_DHCP_RETRIES=3
+GK_NET_GW=
+GK_NET_IFACE='eth0'
+GK_NET_LOCKFILE='/tmp/network.started'
+GK_NET_ROUTES=
+GK_NET_TIMEOUT_DAD=10
+GK_NET_TIMEOUT_DECONFIGURATION=10
+GK_NET_TIMEOUT_DHCP=10
+GK_NET_TIMEOUT_INTERFACE=10
+GK_META_BUILD_DATE=$(cat /etc/build_date 2>/dev/null || echo "Unknown")
+GK_META_VERSION=$(cat /etc/build_id 2>/dev/null || echo "Unknown")
+GK_PRESERVE_RUN=1
+GK_PROMPT_FILE='/tmp/current_prompt'
+GK_PROMPT_TIMEOUT=0
+GK_ROOT_DEV_DETECTED_STATEFILE="/tmp/root_dev.detected"
+GK_SHELL_LOCKFILE='/tmp/rescueshell.lock'
+GK_SSHD_LOCKFILE='/tmp/remote-rescueshell.lock'
+GK_SSHD_PIDFILE='/var/run/dropbear.pid'
+GK_SSHD_PORT=22
+GK_SSHD_WAIT=
+GK_UDEV_LOG='/run/initramfs/udevd.log'
+GK_UDEV_DEBUG=0
+GK_UDEV_TIMEOUT=120
+GK_USERINTERACTION_DISABLED_STATEFILE='/tmp/user-interaction.disabled'
+
+CRYPT_ENV_FILE='/etc/CRYPT_ENV.conf'
+CRYPT_ROOT_KEYDEV_FSTYPE='auto'
+CRYPT_ROOT_KEYFILE='/tmp/root.key'
+CRYPT_ROOT_OPENED_LOCKFILE='/tmp/ROOT.opened'
+CRYPT_ROOT_OPTIONS=''
+CRYPT_SILENT=0
+CRYPT_SWAP_KEYDEV_FSTYPE='auto'
+CRYPT_SWAP_KEYFILE='/tmp/swap.key'
+CRYPT_SWAP_OPENED_LOCKFILE='/tmp/SWAP.opened'
+CRYPT_SWAP_OPTIONS=''
+
+ROOTFSTYPE='auto'
+
+ZFS_ENC_ENV_FILE='/etc/ZFS_ENC_ENV.conf'
+ZFS_ENC_OPENED_LOCKFILE='/tmp/ZFS.opened'
+
# Flag for if ok when using CDROOT
got_good_root='0'
# if LOOP found on root before mount, trigger Unpacking additional packages
@@ -95,10 +151,10 @@ DEFAULT_NFSOPTIONS="ro,nolock"
# - keymap
# - cache
# - modules
-HWOPTS_BLK='nvme pata sata scsi usb firewire waitscan'
+HWOPTS_BLK='nvme sata scsi pata usb firewire waitscan'
HWOPTS_OBSOLETE='pcmcia ataraid' # Obsolete stuff that might be useful on old hardware, do$X only.
-HWOPTS="keymap cache modules virtio hyperv ${HWOPTS_BLK} lvm dmraid multipath mdadm zfs fs net iscsi crypto"
+HWOPTS="keymap cache modules virtio hyperv ${HWOPTS_BLK} bcache lvm dmraid multipath mdadm zfs fs iscsi crypto"
# This is the set of default HWOPTS, in the order that they are loaded.
# This is whitespace aligned with HWOPTS above.
-MY_HWOPTS=" modules virtio hyperv ${HWOPTS_BLK} lvm dmraid mdadm fs net crypto"
+MY_HWOPTS=" modules virtio hyperv ${HWOPTS_BLK} lvm dmraid mdadm fs crypto"
diff --git a/defaults/initrd.scripts b/defaults/initrd.scripts
index b9b958b..506f8c6 100644
--- a/defaults/initrd.scripts
+++ b/defaults/initrd.scripts
@@ -1,17 +1,14 @@
-#!/bin/ash
+#!/bin/sh
-. /etc/initrd.defaults
-
-call_func_timeout()
-{
+call_func_timeout() {
local func=$1 timeout=$2 pid watcher
- [ $# -ne 2 ] && gen_die "call_func_timeout() called with $# arguments"
( ${func} ) & pid=$!
( sleep ${timeout} && kill -HUP ${pid} ) 2>/dev/null & watcher=$!
- if wait ${pid} 2>/dev/null; then
- kill -HUP $watcher 2> /dev/null
- wait $watcher 2>/dev/null
+ if wait ${pid} 2>/dev/null
+ then
+ kill -HUP ${watcher} 2>/dev/null
+ wait ${watcher} 2>/dev/null
return 0
fi
@@ -19,66 +16,137 @@ call_func_timeout()
}
modules_load() {
- fn=$1
+ fn=${1}
shift
for module in $*
do
- echo ${module} >> /etc/modules/$fn
+ echo ${module} >> /etc/modules/${fn}
done
- modules_scan $fn
+ modules_scan ${fn}
}
modules_scan() {
local MODS
local loaded
+ local x
+ local smart_loading=yes
+ local _root_dev
+ local root_dev_found="Root block device found, skipping loading of module group \"${1}\" ..."
MODS=$(cat /etc/modules/${1} 2>/dev/null)
- [ -n "${MODS}" ] && [ -z "${QUIET}" ] && \
- printf "%b" "${BOLD} ::${NORMAL} Loading from ${1}: "
+ if [ -z "${MODS}" ]
+ then
+ log_msg "/etc/modules/${1} is empty; Nothing to load for '${1}' ..."
+ return
+ fi
+
+ if [ -z "${MODULES_SCAN_WARNING_SHOWN}" ]
+ then
+ local note_msg="NOTE: Due to how genkernel auto-detects your"
+ note_msg="${note_msg} hardware you will now see a lot of failed modprobe" \
+ note_msg="${note_msg} attempts which you can ignore:"
+
+ log_msg "${note_msg}"
+
+ MODULES_SCAN_WARNING_SHOWN=yes
+ fi
+
+ if [ "${GK_HW_LOAD_ALL_MODULES}" = '1' ]
+ then
+ smart_loading=no
+ elif [ "${1}" = "virtio" ] || [ "${1}" = "hyperv" ]
+ then
+ # Virtio/HyperV modules group is special -- it's about
+ # hypervisor support in general, not root block device
+ smart_loading=no
+ elif [ "${1}" = "net" ]
+ then
+ # We already load network modules only when we need
+ # network so don't stop loading network modules when
+ # $REAL_ROOT is already present or we will probably
+ # end up without network we wanted ...
+ smart_loading=no
+ elif [ "${1}" = "fs" ]
+ then
+ # We don't know if kernel supports root filesystem so
+ # better load all filesystems ...
+ smart_loading=no
+ elif [ "${USE_MDADM}" = '1' ] \
+ || [ "${USE_LVM_NORMAL}" = '1' ] \
+ || [ "${USE_CRYPTSETUP}" = '1' ] \
+ || [ "${USE_ZFS}" = '1' ] \
+ || [ "${USE_DMRAID_NORMAL}" = '1' ]
+ then
+ # All of this will require the call of another program before
+ # root becomes available so checking for root after each module
+ # was loaded will only waste time.
+ smart_loading=no
+ fi
+
+ log_msg "Loading modules of module group '${1}' (smart loading: ${smart_loading}) ..."
+ is_quiet \
+ || printf "%b" "${BOLD} ::${NORMAL} Loading from ${1}: "
for x in ${MODS}
do
MLOAD=$(echo ${MLIST} | sed -e "s/.*${x}.*/${x}/")
if [ "${MLOAD}" = "${x}" ] # Only module to no-load
then
- [ -z "${QUIET}" ] && \
- printf "%b\n" "${BOLD} ::${NORMAL} Skipping ${x}..."
+ is_quiet \
+ || printf "%b\n" "${BOLD} ::${NORMAL} Skipping ${x} ..."
elif [ "${MLOAD}" = "${MLIST}" ]
then
- if [ "${ROOTFSTYPE}" != 'auto' ] && [ -b "${REAL_ROOT}" ]; then
- echo "Root block device found, continuing..."
- break
+ if [ "${smart_loading}" = "yes" ]
+ then
+ if [ ! -f "${GK_ROOT_DEV_DETECTED_STATEFILE}" ]
+ then
+ _root_dev=$(findfs "${REAL_ROOT}" 2>/dev/null)
+ if [ $? -eq 0 ] && [ -n "${_root_dev}" ] && [ -b "${_root_dev}" ]
+ then
+ echo "${_root_dev}" > "${GK_ROOT_DEV_DETECTED_STATEFILE}"
+ fi
+ fi
+
+ if [ -f "${GK_ROOT_DEV_DETECTED_STATEFILE}" ]
+ then
+ log_msg "${root_dev_found}"
+ printf "%b" "${root_dev_found}"
+ break
+ fi
fi
- if [ -n "${DEBUG}" ]; then
+
+ if is_debug
+ then
printf "%b" "${BOLD} ::${NORMAL} "
- printf "%b" "Scanning for ${x}..."
+ printf "%b" "Scanning for ${x} ..."
fi
- modprobe ${x} > /dev/null 2>&1
+
+ run modprobe ${x} >/dev/null 2>&1
loaded=${?}
- [ -n "${DEBUG}" -a "${loaded}" = "0" ] && \
+ is_debug && [ "${loaded}" = "0" ] && \
echo "loaded"
- [ -n "${DEBUG}" -a "${loaded}" != "0" ] && \
+ is_debug && [ "${loaded}" != "0" ] && \
echo "not loaded"
- [ -z "${DEBUG}" -a "${loaded}" = "0" ] && \
- [ -z "${QUIET}" ] && \
+ ! is_debug && [ "${loaded}" = "0" ] && \
+ ! is_quiet && \
printf "%b" "${x} "
else
- [ -z "${QUIET}" ] && \
- printf "%b\n" "${BOLD} ::${NORMAL} Skipping ${x}..."
+ is_quiet \
+ || printf "%b\n" "${BOLD} ::${NORMAL} Skipping ${x} ..."
fi
done
- [ -n "${MODS}" ] && [ -z "${QUIET}" ] && echo
+
+ is_quiet || echo
}
-uppercase(){
+uppercase() {
# needs tr on busybox
echo $1 | tr 'a-z' 'A-Z'
}
-
findmediamount() {
# $1 = mount dir name / media name
# $2 = recognition file
@@ -93,16 +161,16 @@ findmediamount() {
if [ "$#" -gt "0" ]
then
- [ ! -d "${mntdir}" ] && mkdir -p ${mntdir} 2>/dev/null >/dev/null
+ [ ! -d "${mntdir}" ] && mkdir -p ${mntdir} >/dev/null 2>&1
if [ -n "${ISOBOOT}" ]
then
mntcddir="${mntdir%${media}}iso"
- if [ ! -f ${mntcddir} ]
+ if [ ! -f "${mntcddir}" ]
then
- mkdir ${mntcddir}
+ mkdir "${mntcddir}"
fi
else
- mntcddir=${mntdir}
+ mntcddir="${mntdir}"
fi
for x in $*
@@ -110,32 +178,20 @@ findmediamount() {
# Check for a block device to mount
if [ -b "${x}" ]
then
- skip=0
- bsn=`basename "${x}"`
- #
- # If disk and it has at least one partition, skip.
- # We use /sys/block/${bsn}/${bsn}[0-9]* to make sure that we
- # don't skip device mapper devices. Even the craziest scenario
- # deserves a fair chance.
- #
- for part in `ls /sys/block/${bsn}/${bsn}*[0-9]* 2>/dev/null`
- do
- skip=1
- break;
- done
- if [ ${skip} -eq 1 ]
- then
- continue
- fi
good_msg "Attempting to mount media: ${x}" ${CRYPT_SILENT}
- mount -t ${CDROOT_TYPE} ${x} ${mntcddir} >/dev/null 2>&1
- if [ "$?" = '0' ]
+ CDROOT_TYPE=$(determine_fs "${x}" "${CDROOT_TYPE}")
+
+ run mount -t ${CDROOT_TYPE} ${x} ${mntcddir} >/dev/null 2>&1
+ if [ $? -eq 0 ]
then
- if [ -n "${ISOBOOT}" ]; then
- if [ -f ${mntcddir}/${ISOBOOT} ]; then
- mount -o loop ${mntcddir}/${ISOBOOT} ${mntdir}
- if [ "$?" = "0" ]; then
+ if [ -n "${ISOBOOT}" ]
+ then
+ if [ -f "${mntcddir}/${ISOBOOT}" ]
+ then
+ run mount -o loop "${mntcddir}/${ISOBOOT}" "${mntdir}"
+ if [ $? -eq 0 ]
+ then
good_msg "iso mounted on ${mntdir}"
fi
fi
@@ -149,7 +205,7 @@ findmediamount() {
good_msg "Media found on ${x}" ${CRYPT_SILENT}
break
else
- umount ${mntcddir}
+ run umount ${mntcddir}
fi
fi
fi
@@ -161,22 +217,47 @@ findmediamount() {
[ -n "${result}" ] || bad_msg "Media not found" ${CRYPT_SILENT}
}
-devicelist(){
+determine_fs() {
+ local _dev="${1}"
+ local _orig="${2:-auto}"
+ local _fs line
+
+ _fs=$(udevadm info --query=env --name="$_dev" 2>/dev/null | \
+ while read line || [ -n "${line}" ]
+ do
+ if str_starts ${line} "ID_FS_TYPE="
+ then
+ echo ${line#ID_FS_TYPE=}
+ break
+ fi
+ done
+ )
+ _fs=${_fs:-auto}
+
+ if [ "${_fs}" = "auto" ]
+ then
+ _fs="${_orig}"
+ fi
+
+ echo "${_fs}"
+}
+
+devicelist() {
# Locate the cdrom device with our media on it.
# CDROM DEVICES
local DEVICES="/dev/cdroms/* /dev/ide/cd/* /dev/sr*"
# USB Keychain/Storage
- DEVICES="$DEVICES /dev/sd*"
+ DEVICES="${DEVICES} /dev/sd*"
# IDE devices
- DEVICES="$DEVICES /dev/hd*"
+ DEVICES="${DEVICES} /dev/hd*"
# virtio devices
- DEVICES="$DEVICES /dev/vd*"
+ DEVICES="${DEVICES} /dev/vd*"
# USB using the USB Block Driver
- DEVICES="$DEVICES /dev/ubd* /dev/ubd/*"
+ DEVICES="${DEVICES} /dev/ubd* /dev/ubd/*"
# iSeries devices
- DEVICES="$DEVICES /dev/iseries/vcd*"
+ DEVICES="${DEVICES} /dev/iseries/vcd*"
# builtin mmc/sd card reader devices
- DEVICES="$DEVICES /dev/mmcblk* /dev/mmcblk*/*"
+ DEVICES="${DEVICES} /dev/mmcblk* /dev/mmcblk*/*"
# fallback scanning, this might scan something twice, but it's better than
# failing to boot.
[ -e /proc/partitions ] && DEVICES="${DEVICES} $(awk '/([0-9]+[[:space:]]+)/{print "/dev/" $4}' /proc/partitions)"
@@ -184,49 +265,54 @@ devicelist(){
}
bootstrapFS() {
- if [ 1 = "$aufs" ]; then
- # Directories used for rw aufs mount filesystem
- aufs_union=/union aufs_memory=/memory
-
- # Mountpoint for the aufs dev
- aufs_dev_mnt=/mnt/aufs-dev
-
- if [ -z "$aufs_dev_uid" ]; then
- aufs_branch=$aufs_memory/aufs-rw-branch/default
- else
- aufs_branch=$aufs_memory/aufs-rw-branch/$aufs_dev_uid
- fi
-
- mkdir -p $aufs_memory $aufs_union $aufs_dev_mnt
- else
- # Legacy SquashFS implementation
- good_msg "Making tmpfs for ${NEW_ROOT}"
- mount -n -t tmpfs tmpfs ${NEW_ROOT}
- fi
-
- # Setup the filesystem nodes and directories
- for i in ${CDROOT_PATH} /mnt/livecd /mnt/key /mnt/gentoo /tmp /tmp/.initrd /dev /proc /run /sys; do
- mkdir -p "${NEW_ROOT}${i}"
- chmod 755 "${NEW_ROOT}${i}"
- done
-
- [ ! -d "${CDROOT_PATH}" ] && mkdir -p "${CDROOT_PATH}"
- [ ! -e "${NEW_ROOT}/dev/null" ] && mknod -m 666 "${NEW_ROOT}"/dev/null c 1 3
- [ ! -e "${NEW_ROOT}/dev/zero" ] && mknod -m 666 "${NEW_ROOT}"/dev/zero c 1 5
- [ ! -e "${NEW_ROOT}/dev/console" ] && mknod -m 600 "${NEW_ROOT}"/dev/console c 5 1
- [ ! -e "${NEW_ROOT}/dev/ttyS0" ] && mknod -m 660 "${NEW_ROOT}"/dev/ttyS0 c 4 64
-
- # For SGI LiveCDs
- if [ "${LOOPTYPE}" = "sgimips" ]; then
- [ ! -e "${NEW_ROOT}/dev/sr0" ] && mknod "${NEW_ROOT}/dev/sr0" b 11 0
- [ ! -e "${NEW_ROOT}/dev/loop0" ] && mknod "${NEW_ROOT}/dev/loop0" b 7 0
- fi
-
- # Required for splash to work. Not an issue with the initrd as this
- # device isn't created there and is not needed.
- for minor in 0 1 ; do
- [ ! -e "${NEW_ROOT}/dev/$minor" ] && mknod -m 600 "${NEW_ROOT}/dev/tty$minor" c 4 $minor
- done
+ if [ "${aufs}" = '1' ]
+ then
+ # Directories used for rw aufs mount filesystem
+ aufs_union=/union aufs_memory=/memory
+
+ # Mountpoint for the aufs dev
+ aufs_dev_mnt=/mnt/aufs-dev
+
+ if [ -z "${aufs_dev_uid}" ]
+ then
+ aufs_branch=${aufs_memory}/aufs-rw-branch/default
+ else
+ aufs_branch=${aufs_memory}/aufs-rw-branch/${aufs_dev_uid}
+ fi
+
+ run mkdir -p ${aufs_memory} ${aufs_union} ${aufs_dev_mnt}
+ else
+ # Legacy SquashFS implementation
+ good_msg "Making tmpfs for ${NEW_ROOT}"
+ run mount -n -t tmpfs tmpfs ${NEW_ROOT}
+ fi
+
+ # Setup the filesystem nodes and directories
+ for i in ${CDROOT_PATH} /mnt/header /mnt/livecd /mnt/key /mnt/gentoo /tmp /tmp/.initrd /dev /proc /run /sys; do
+ run mkdir -p "${NEW_ROOT}${i}"
+ run chmod 755 "${NEW_ROOT}${i}"
+ done
+
+ [ ! -d "${CDROOT_PATH}" ] && run mkdir -p "${CDROOT_PATH}"
+ [ ! -e "${NEW_ROOT}/dev/null" ] && run mknod -m 666 "${NEW_ROOT}"/dev/null c 1 3
+ [ ! -e "${NEW_ROOT}/dev/zero" ] && run mknod -m 666 "${NEW_ROOT}"/dev/zero c 1 5
+ [ ! -e "${NEW_ROOT}/dev/console" ] && run mknod -m 600 "${NEW_ROOT}"/dev/console c 5 1
+ [ ! -e "${NEW_ROOT}/dev/tty0" ] && run mknod -m 620 "${NEW_ROOT}"/dev/tty0 c 4 0
+ [ ! -e "${NEW_ROOT}/dev/ttyS0" ] && run mknod -m 660 "${NEW_ROOT}"/dev/ttyS0 c 4 64
+
+ # For SGI LiveCDs
+ if [ "${LOOPTYPE}" = "sgimips" ]
+ then
+ [ ! -e "${NEW_ROOT}/dev/sr0" ] && run mknod "${NEW_ROOT}/dev/sr0" b 11 0
+ [ ! -e "${NEW_ROOT}/dev/loop0" ] && run mknod "${NEW_ROOT}/dev/loop0" b 7 0
+ fi
+
+ # Required for splash to work. Not an issue with the initrd as this
+ # device isn't created there and is not needed.
+ for minor in 0 1
+ do
+ [ ! -e "${NEW_ROOT}/dev/${minor}" ] && run mknod -m 600 "${NEW_ROOT}/dev/tty${minor}" c 4 ${minor}
+ done
}
bootstrapCD() {
@@ -239,27 +325,65 @@ bootstrapCD() {
findmediamount "cdrom" "${SUBDIR}/${CDROOT_MARKER}" \
"REAL_ROOT" "${CDROOT_PATH}" ${DEVICES}
- if [ $VERIFY = 1 ]; then
+
+ if [ "${VERIFY}" = '1' ]
+ then
cd "${CDROOT_PATH}"
- if [ -f isoroot_checksums ]; then
- good_msg "Verifying checksums, this may take some time..."
- if ! busybox sha512sum -c isoroot_checksums; then
- bad_msg "Some checksums failed, press any key to poweroff..."
+ checkfile=""
+ checker=""
+ if [ -r "isoroot_checksums" ] && [ -z "${checkfile}" ]
+ then
+ checkfile="isoroot_checksums"
+ checker="sha512sum"
+ fi
+ if [ -r "isoroot_b2sums" ]
+ then
+ if [ -x "$(command -v b2sum 2>&1)" ]
+ then
+ checkfile="isoroot_b2sums"
+ checker="b2sum"
+ else
+ bad_msg "Unable to verify isoroot_b2sums due to missing b2sums"
+ bad_msg "Please use 'genkernel --b2sums' to generate initramfs"
+ if [ -z "${checkfile}" ]
+ then
+ bad_msg "Press any key to skip ..."
+ read -n1 -s
+ return
+ fi
+ fi
+ fi
+
+ if [ -n "${checkfile}" ]
+ then
+ good_msg "Verifying ${checkfile}, this may take some time ..."
+ if ! run "${checker}" -c "${checkfile}"
+ then
+ bad_msg "Some checksums failed, press any key to poweroff ..."
read -n1 -s
- busybox poweroff -f
+ poweroff -f
else
- good_msg "Checksums all valid, continuing boot..."
+ good_msg "${checkfile} all valid, continuing boot ..."
fi
- cd $OLDPWD
+ cd "${OLDPWD}"
else
- bad_msg "Verify enabled but no checksums file exists, skipping"
+ bad_msg "Verify requested but no checksums file exists, press any key to skip ..."
+ read -n1 -s
fi
fi
}
+bootstrapHeader() {
+ # $1 = ROOT/SWAP
+ local HEADERDEVS=$(devicelist)
+ eval local headerloc='"${CRYPT_'${1}'_HEADER}"'
+
+ findmediamount "header" "${headerloc}" "CRYPT_${1}_HEADERDEV" "/mnt/header" ${HEADERDEVS}
+}
+
bootstrapKey() {
# $1 = ROOT/SWAP
- local KEYDEVS=`devicelist`
+ local KEYDEVS=$(devicelist)
eval local keyloc='"${CRYPT_'${1}'_KEY}"'
findmediamount "key" "${keyloc}" "CRYPT_${1}_KEYDEV" "/mnt/key" ${KEYDEVS}
@@ -278,66 +402,70 @@ cache_cd_contents() {
# z=0
# for i in $(cat /proc/meminfo | grep -e ^MemFree -e ^Cached | \
# cut -d: -f2 | cut -dk -f1 | sed -e "s/^\s*//") ; do
- # z=$(($z + $i)) ; done
- # echo $z
- good_msg "Copying loop file for caching..."
+ # z=$((${z} + ${i})) ; done
+ # echo ${z}
+ good_msg "Copying loop file for caching ..."
# Verify that the needed directory exists
- mkdir -p "$(dirname ${NEW_ROOT}/mnt/${LOOP})"
- cp -a ${CDROOT_PATH}/${LOOP} ${NEW_ROOT}/mnt/${LOOP}
+ run mkdir -p "$(dirname ${NEW_ROOT}/mnt/${LOOP})"
+ run cp -a ${CDROOT_PATH}/${LOOP} ${NEW_ROOT}/mnt/${LOOP}
if [ $? -ne 0 ]
then
- warn_msg "Failed to cache the loop file! Lack of RAM?"
- rm -rf ${NEW_ROOT}/mnt/${LOOP} 2>/dev/null
- rm -rf ${NEW_ROOT}/mnt/livecd.* 2>/dev/null
- rm -rf ${NEW_ROOT}/mnt/image.* 2>/dev/null
- rm -rf ${NEW_ROOT}/mnt/zisofs 2>/dev/null
+ warn_msg "Failed to cache the loop file! Lack of RAM?" 0
+ run rm -rf ${NEW_ROOT}/mnt/${LOOP} 2>/dev/null
+ run rm -rf ${NEW_ROOT}/mnt/livecd.* 2>/dev/null
+ run rm -rf ${NEW_ROOT}/mnt/image.* 2>/dev/null
+ run rm -rf ${NEW_ROOT}/mnt/zisofs 2>/dev/null
fi
fi
fi
}
mount_sysfs() {
- mount -t sysfs sysfs /sys -o noexec,nosuid,nodev >/dev/null 2>&1
- ret=$?
- [ ${ret} -eq 0 ] || bad_msg "Failed to mount /sys!"
+ if ! run mount -t sysfs sysfs /sys -o noexec,nosuid,nodev >/dev/null 2>&1
+ then
+ bad_msg "Failed to mount /sys!"
+ fi
}
# Check support for both aufs and overlayfs
# union file system style support
#
is_union_modules() {
- local mod mod_dir
-
- case $1 in
- aufs)
- mod=$aufs_modules
- mod_dir=$aufs_modules_dir
- ;;
- overlayfs)
- mod=$overlayfs_modules
- mod_dir=$overlayfs_modules_dir
- esac
-
- # When {aufs,overlayfs}.modules= is used or $CDROOT_PATH/modules
- # directory is available
- if [[ 1 = "$mod" || -d $CDROOT_PATH/modules ]]; then
- if [ -d $CDROOT_PATH/modules ]; then
- warn_msg "Adding all modules in $CDROOT_PATH/modules"
- union_insert_modules "$CDROOT_PATH"/modules
- # Is it a block device?
- elif [ ! -b "$mod_dir" ]; then
- bad_msg "$mod_dir is not a valid block device"
- bad_msg "aborting modules insert into $CHROOT"
- else
- warn_msg "Adding all modules in $mod_dir"
-
- mkdir /mnt/modules
- mount "$mod_dir" /mnt/modules
- union_insert_modules /mnt/modules
- fi
- fi
-
- return 0
+ local mod mod_dir
+
+ case $1 in
+ aufs)
+ mod=${aufs_modules}
+ mod_dir=${aufs_modules_dir}
+ ;;
+ overlayfs)
+ mod=${overlayfs_modules}
+ mod_dir=${overlayfs_modules_dir}
+ esac
+
+ # When {aufs,overlayfs}.modules= is used or $CDROOT_PATH/modules
+ # directory is available
+ if [ "${mod}" = '1' -o -d ${CDROOT_PATH}/modules ]
+ then
+ if [ -d ${CDROOT_PATH}/modules ]
+ then
+ warn_msg "Adding all modules in ${CDROOT_PATH}/modules"
+ union_insert_modules "${CDROOT_PATH}"/modules
+ # Is it a block device?
+ elif [ ! -b "${mod_dir}" ]
+ then
+ bad_msg "${mod_dir} is not a valid block device"
+ bad_msg "aborting modules insert into ${CHROOT}"
+ else
+ warn_msg "Adding all modules in ${mod_dir}"
+
+ run mkdir /mnt/modules
+ run mount "${mod_dir}" /mnt/modules
+ union_insert_modules /mnt/modules
+ fi
+ fi
+
+ return 0
}
# Insert a directory tree $2 to a aufs union specified by $1
@@ -347,139 +475,221 @@ is_union_modules() {
#
aufs_insert_dir() {
# Always mount it over the precedent (add:1:)
- if mount -n -o "remount,add:1:$2=rr" aufs "$1"; then
- good_msg "Addition of $2 to $1 successful"
+ if run mount -n -o "remount,add:1:$2=rr" aufs "$1"
+ then
+ good_msg "Addition of $2 to $1 successful"
fi
}
+udevsettle() {
+ local timeout=${1-${GK_UDEV_TIMEOUT}}
+
+ run udevadm settle --timeout=${timeout}
+}
+
# Insert all modules found in $1, usually $CDROOT_PATH
# added to allow users to add their own apps.
union_insert_modules() {
- local module
+ local module
- for module in "$1/"*.lzm; do
- if [ 1 = "$overlayfs" ];then
- if union_mod overlayfs "$module";then
- good_msg "Addition of '$module' to overlay successful"
- else
- bad_msg "Unable to insert module: '$module'"
- fi
+ for module in "$1/"*.lzm; do
+ if [ "${overlayfs}" = '1' ]
+ then
+ if union_mod overlayfs "${module}"
+ then
+ good_msg "Addition of '${module}' to overlay successful"
+ else
+ bad_msg "Unable to insert module: '${module}'"
+ fi
- # Used in setup_overlayfs()
- mod_path="$mod_path:$mod_dir/.$mod"
+ # Used in setup_overlayfs()
+ mod_path="${mod_path}:${mod_dir}/.${mod}"
- # Assign variable with paths to modules mount point
- # TODO: Stop using eval
- eval $mod="$mod_dir/.$mod"
- mods="$mods $mod"
- else
- union_mod aufs "$module" || bad_msg "Unable to insert module: '$module'"
- fi
- done
+ # Assign variable with paths to modules mount point
+ # TODO: Stop using eval
+ eval ${mod}="${mod_dir}/.${mod}"
+ mods="${mods} ${mod}"
+ else
+ union_mod aufs "${module}" || bad_msg "Unable to insert module: '${module}'"
+ fi
+ done
}
# Helper function for union_insert_modules()
union_mod() {
- [ -e "$2" ] || return 0
+ [ -e "$2" ] || return 0
- mod_dir=/mnt/overlay
+ mod_dir=/mnt/overlay
- mod=${2##*/}
- mod=${mod//-/_}
- mod=${mod%.*}
+ mod=${2##*/}
+ mod=${mod//-/_}
+ mod=${mod%.*}
- if [ 1 = "$aufs" ]; then
- if [ ! -d "$aufs_union"/mnt/"$mod" ]; then
- mkdir -p "$aufs_union"/mnt/modules/"$mod" || return
- fi
+ if [ "${aufs}" = '1' ]
+ then
+ if [ ! -d "${aufs_union}"/mnt/"${mod}" ]
+ then
+ run mkdir -p "${aufs_union}"/mnt/modules/"${mod}" || return
+ fi
- mount -o loop,ro "$2" "$aufs_union"/mnt/modules/"$mod"
- aufs_insert_dir "$aufs_union" "$aufs_union"/mnt/modules/"$mod"
- else
- if [ ! -d "$mod_dir/.$mod" ]; then
- mkdir -p "$mod_dir/.$mod" || return
- fi
+ run mount -o loop,ro "$2" "${aufs_union}"/mnt/modules/"${mod}"
+ aufs_insert_dir "${aufs_union}" "${aufs_union}"/mnt/modules/"${mod}"
+ else
+ if [ ! -d "${mod_dir}/.${mod}" ]
+ then
+ run mkdir -p "${mod_dir}/.${mod}" || return
+ fi
- mount -o loop,ro "$2" "$mod_dir/.$mod"
- fi
+ run mount -o loop,ro "$2" "${mod_dir}/.${mod}"
+ fi
}
# Implements no_umounts variable into $CHROOT/etc/conf.d/localmount for a cleaner shutdown process
conf_rc_no_umounts() {
- local conf nomount fnd
- conf=$CHROOT/etc/conf.d/localmount fnd=0
+ local conf nomount fnd
+ conf=${CHROOT}/etc/conf.d/localmount fnd=0
- if nomount=$(grep -n '^[[:blank:]]*no_umounts=' $conf); then
- local i n data cmd IFS
- IFS='
+ if nomount=$(grep -n '^[[:blank:]]*no_umounts=' ${conf})
+ then
+ local i n data cmd IFS
+ IFS='
'
- set -- $nomount
- unset IFS
+ set -- ${nomount}
+ unset IFS
+
+ for i
+ do
+ n=${i%%:*}; i=${i#"$n"}
+ data=${i#*=}
+
+ case ${data} in
+ "\"${no_umounts}\""|"'${no_umounts}'") fnd=1;;
+ *) cmd="${cmd}${n} d;"
+ esac
+ done
- for i; do
- n=${i%%:*}; i=${i#"$n"}
- data=${i#*=}
+ if [ -n "${cmd}" ]
+ then
+ run sed -i "${cmd%;}" ${conf}
+ test_success "Unable to edit /etc/conf.d/localmount"
+ fi
+ fi
+
+ if [ ${fnd} -eq 0 ]
+ then
+ printf 'no_umounts="%s"\n' "${no_umounts}" >> ${conf}
+ test_success "Unable to write to /etc/conf.d/localmount"
+ fi
+}
- case $data in
- "\"$no_umounts\""|"'$no_umounts'") fnd=1;;
- *) cmd="$cmd$n d;"
- esac
- done
+is_debug() {
+ local is_debug=1
- if [ -n "$cmd" ]; then
- sed -i "${cmd%;}" $conf
- test_success "Unable to edit /etc/conf.d/localmount"
- fi
- fi
+ if [ -f "${GK_DEBUGMODE_STATEFILE}" ]
+ then
+ is_debug=0
+ fi
- if [ 0 -eq "$fnd" ]; then
- printf 'no_umounts="%s"\n' "$no_umounts" >> $conf
- test_success "Unable to write to /etc/conf.d/localmount"
- fi
+ return ${is_debug}
}
-# is_int "$A" ["$B"..]
+# is_int "${A}" ["${B}"..]
# NOTE we consider a leading 0 false as it would be interpreted as octal
-is_int(){
- local i
- for i; do
- case $i in
- ''|*[!0-9]*|0?*) return 1 ;;
- *) :
- esac
- done
+is_int() {
+ local i
+ for i
+ do
+ case ${i} in
+ ''|*[!0-9]*|0?*) return 1 ;;
+ *) :
+ esac
+ done
+}
+
+is_log_enabled() {
+ if [ -z "${GK_INIT_LOG}" ]
+ then
+ return 1
+ elif [ -f "${GK_INIT_LOG_DISABLED}" ]
+ then
+ return 1
+ fi
+
+ return 0
+}
+
+is_quiet() {
+ is_true "${QUIET}" && return 0
+
+ return 1
+}
+
+is_true() {
+ case "${1}" in
+ 1)
+ return 0
+ ;;
+ [Tt][Rr][Uu][Ee])
+ return 0
+ ;;
+ [Tt])
+ return 0
+ ;;
+ [Yy][Ee][Ss])
+ return 0
+ ;;
+ [Yy])
+ return 0
+ ;;
+ esac
+
+ return 1
+}
+
+is_userinteraction_allowed() {
+ if [ -f "${GK_USERINTERACTION_DISABLED_STATEFILE}" ]
+ then
+ return 1
+ fi
+
+ return 0
}
# Function to create an ext2 fs on $aufs_dev, $aufs_dev_mnt mountpoint
create_changefs() {
local size
- while :; do
+ while :;
+ do
read -p '<< Size of file (Press Enter for default 256 MB): ' size
- size=${size:-256}
+ size=${size:-256}
- if ! is_int $size; then
- bad_msg "Non numeric value given for size, try again"
- continue
- elif [ 15 -ge "$size" ]; then
- bad_msg "Please give a size of at least 16 Megabytes"
+ if ! is_int ${size}
+ then
+ bad_msg "Non numeric value given for size, try again"
+ continue
+ elif [ 15 -ge "${size}" ]
+ then
+ bad_msg "Please give a size of at least 16 Megabytes"
else
- if dd if=/dev/zero "of=$aufs_dev_mnt$aufs_union_file" bs=1 seek="$size"M count=0 &>/dev/null; then
- good_msg "Creation of $aufs_union_file, ${size}MB on $aufs_dev successful, formatting it ext2"
- mke2fs -F "$aufs_dev_mnt$aufs_union_file" &>/dev/null
+ if run dd if=/dev/zero "of=${aufs_dev_mnt}${aufs_union_file}" bs=1 seek="${size}"M count=0 >/dev/null 2>&1
+ then
+ good_msg "Creation of ${aufs_union_file}, ${size}MB on ${aufs_dev successful}, formatting it ext2"
+ run mke2fs -F "${aufs_dev_mnt}${aufs_union_file}" >/dev/null 2>&1
break
else
- rm "$aufs_dev_mnt$aufs_union_file"
- bad_msg "Unable to create ${aufs_union_file#*/} on $aufs_dev of ${size}MB"
+ run rm "${aufs_dev_mnt}${aufs_union_file}"
+ bad_msg "Unable to create ${aufs_union_file#*/} on ${aufs_dev} of ${size}MB"
bad_msg "Ensure your disk is not full or read-only"
read -p '<< Type "a" to abort, anything else to continue : ' doabort
- if [ a = "$doabort" ]; then
- bad_msg "Aborting creation of $aufs_union_file!"
- umount "$aufs_dev" && rmdir "$aufs_dev_mnt"
- return 1
- fi
+ if [ "${doabort}" = 'a' ]
+ then
+ bad_msg "Aborting creation of ${aufs_union_file}!"
+ run umount "${aufs_dev}" && rmdir "${aufs_dev_mnt}"
+ return 1
+ fi
fi
fi
done
@@ -489,178 +699,209 @@ create_changefs() {
setup_aufs() {
bootstrapCD
- if [ "$aufs_dev" = "search" ]; then
- findmediamount "aufs-dev" "$aufs_union_file" \
- "aufs_dev" "$aufs_dev_mnt" $(devicelist)
- aufs_mounted="1"
- elif [ -z $aufs_dev ] && [ -w "$CDROOT_PATH/$aufs_union_file" ]; then
- aufs_dev="$REAL_ROOT"
- aufs_dev_mnt="$CDROOT_PATH"
- aufs_mounted="1"
- fi
- if [ -z $aufs_dev ] && [ -w "$CDROOT_PATH/casper-rw" ]; then
- aufs_dev="$REAL_ROOT"
- aufs_dev_mnt="$CDROOT_PATH"
- aufs_union_file="/casper-rw"
- aufs_mounted="1"
- fi
-
- if [ -n "$aufs_dev" ]; then
- if [ ! -b $aufs_dev ]; then
- bad_msg "$aufs_dev is not a valid block device"
- local invalidblk=1
- unset aufs_dev
+ if [ "${aufs_dev}" = "search" ]
+ then
+ findmediamount "aufs-dev" "${aufs_union_file}" \
+ "aufs_dev" "${aufs_dev_mnt}" $(devicelist)
+ aufs_mounted="1"
+ elif [ -z "${aufs_dev}" ] && [ -w "${CDROOT_PATH}/${aufs_union_file}" ]
+ then
+ aufs_dev="${REAL_ROOT}"
+ aufs_dev_mnt="${CDROOT_PATH}"
+ aufs_mounted="1"
+ fi
+
+ if [ -z "${aufs_dev}" ] && [ -w "${CDROOT_PATH}/casper-rw" ]
+ then
+ aufs_dev="${REAL_ROOT}"
+ aufs_dev_mnt="${CDROOT_PATH}"
+ aufs_union_file="/casper-rw"
+ aufs_mounted="1"
+ fi
+
+ if [ -n "${aufs_dev}" ]
+ then
+ if [ ! -b "${aufs_dev}" ]
+ then
+ bad_msg "${aufs_dev} is not a valid block device"
+ local invalidblk=1
+ unset aufs_dev
#skip this block when aufs_dev_mnt is already mounted
- elif [ "$aufs_mounted" != "1" ]; then
- good_msg "Mounting $aufs_dev to $aufs_memory for aufs support"
-
- if ! mount -t auto "$aufs_dev" "$aufs_dev_mnt" &>/dev/null; then
- bad_msg "Mount of $aufs_dev failed, falling back to ramdisk based aufs"
- unset aufs_dev
- fi
- fi
-
- # Check and attempt to create the AUFS union file
- if [ ! -e $aufs_dev_mnt$aufs_union_file ] && [ -n "$aufs_dev" ]; then
- create_changefs && mount -t auto "$aufs_dev_mnt$aufs_union_file" "$aufs_memory"
- elif [ -n "$aufs_dev" ]; then
- while :; do
- if mount -t auto "$aufs_dev_mnt$aufs_union_file" "$aufs_memory" &>/dev/null; then
- if [ "$aufs_union_file" = "/casper-rw" ];then
- bad_msg "Use of livecd.aufs preferred to casper-rw for changes saving, please rename the file."
- fi
- break
- else
- bad_msg "Mounting of changes file failed, Running e2fsck"
-
- if ! hash e2fsck &>/dev/null; then
- bad_msg "/sbin/e2fsck not found! aborting filesystem check"
- bad_msg "Moving ${aufs_union_file#*/} to ${aufs_union_file#*/}.bad"
-
- mv "$aufs_dev_mnt$aufs_union_file" "$aufs_dev_mnt$aufs_union_file.bad"
- break
- fi
-
- if e2fsck "$aufs_dev_mnt$aufs_union_file" &>/dev/null; then
- good_msg "e2fsck ran successfully. Please verify data after bootup"
- else
- bad_msg "Your ${aufs_union_file#*/} image might be corrupted"
- bad_msg "moving ${aufs_union_file#*/} to ${aufs_union_file#*/}.bad"
-
- mv "$aufs_dev_mnt$aufs_union_file" "$aufs_dev_mnt$aufs_union_file.bad"
- break
- fi
- fi
- done
- fi
-
- # Mount tmpfs only in the case when aufs= boot parameter was
- # empty or we were not able to mount the storage device
- if [ 1 = "$CDROOT" ] && [ ! -f "$aufs_dev_mnt$aufs_union_file" ]; then
- aufs_xino=$aufs_memory
- umount "$aufs_memory" &>/dev/null
-
- if [ 1 = "$invalidblk" ]; then
- bad_msg "Verify that you've entered a valid device path"
- else
- bad_msg "Create an extfs ${aufs_union_file#*/} file on this device"
- fi
-
- bad_msg "if you wish to have aufs data persistency on reboots"
- bad_msg "Falling back to ramdisk based aufs"
- good_msg "Mounting ramdisk to $aufs_memory for aufs support"
-
- mount -t tmpfs tmpfs "$aufs_memory"
- else
- aufs_xino=$aufs_memory/xino
-
- mkdir -p "$aufs_xino"
- mount -t tmpfs aufs-xino "$aufs_xino"
- fi
- else
- aufs_xino=$aufs_memory
-
- good_msg "Mounting ramdisk to $aufs_memory for aufs support"
- mount -t tmpfs tmpfs "$aufs_memory"
- fi
-
- mkdir -p "$aufs_branch"
- if ! mount -t aufs -n -o "nowarn_perm,udba=none,xino=$aufs_xino/.aufs.xino,br:$aufs_branch=rw" aufs "$aufs_union"; then
- bad_msg "Can't setup union $aufs_union in directory!"
+ elif [ "${aufs_mounted}" != "1" ]
+ then
+ good_msg "Mounting ${aufs_dev} to ${aufs_memory} for aufs support"
+
+ local mounttype=$(determine_fs "${aufs_dev}" "auto")
+
+ if ! run mount -t ${mounttype} "${aufs_dev}" "${aufs_dev_mnt}" >/dev/null 2>&1
+ then
+ bad_msg "Mount of ${aufs_dev} failed, falling back to ramdisk based aufs"
+ unset aufs_dev
+ fi
+ fi
+
+ # Check and attempt to create the AUFS union file
+ if [ ! -e ${aufs_dev_mnt}${aufs_union_file} ] && [ -n "${aufs_dev}" ]
+ then
+ create_changefs && run mount -t auto "${aufs_dev_mnt}${aufs_union_file}" "${aufs_memory}"
+ elif [ -n "${aufs_dev}" ]
+ then
+ while :;
+ do
+ if run mount -t auto "${aufs_dev_mnt}${aufs_union_file}" "${aufs_memory}" >/dev/null 2>&1
+ then
+ if [ "${aufs_union_file}" = "/casper-rw" ]
+ then
+ bad_msg "Use of livecd.aufs preferred to casper-rw for changes saving, please rename the file."
+ fi
+ break
+ else
+ bad_msg "Mounting of changes file failed, Running e2fsck"
+
+ if ! hash e2fsck >/dev/null 2>&1
+ then
+ bad_msg "e2fsck not found! aborting filesystem check"
+ bad_msg "Moving ${aufs_union_file#*/} to ${aufs_union_file#*/}.bad"
+
+ run mv "${aufs_dev_mnt}${aufs_union_file}" "${aufs_dev_mnt}${aufs_union_file}.bad"
+ break
+ fi
+
+ if run e2fsck "${aufs_dev_mnt}${aufs_union_file}" >/dev/null 2>&1
+ then
+ good_msg "e2fsck ran successfully. Please verify data after bootup"
+ else
+ bad_msg "Your ${aufs_union_file#*/} image might be corrupted"
+ bad_msg "moving ${aufs_union_file#*/} to ${aufs_union_file#*/}.bad"
+
+ run mv "${aufs_dev_mnt}${aufs_union_file}" "${aufs_dev_mnt}${aufs_union_file}.bad"
+ break
+ fi
+ fi
+ done
+ fi
+
+ # Mount tmpfs only in the case when aufs= boot parameter was
+ # empty or we were not able to mount the storage device
+ if [ "${CDROOT}" = '1' ] && [ ! -f "${aufs_dev_mnt}${aufs_union_file}" ]
+ then
+ aufs_xino=${aufs_memory}
+ umount "${aufs_memory}" >/dev/null 2>&1
+
+ if [ "${invalidblk}" = '1' ]
+ then
+ bad_msg "Verify that you've entered a valid device path"
+ else
+ bad_msg "Create an extfs ${aufs_union_file#*/} file on this device"
+ fi
+
+ bad_msg "if you wish to have aufs data persistency on reboots"
+ bad_msg "Falling back to ramdisk based aufs"
+ good_msg "Mounting ramdisk to ${aufs_memory} for aufs support"
+
+ run mount -t tmpfs tmpfs "${aufs_memory}"
+ else
+ aufs_xino=${aufs_memory}/xino
+
+ run mkdir -p "${aufs_xino}"
+ run mount -t tmpfs aufs-xino "${aufs_xino}"
+ fi
+ else
+ aufs_xino=${aufs_memory}
+
+ good_msg "Mounting ramdisk to ${aufs_memory} for aufs support"
+ run mount -t tmpfs tmpfs "${aufs_memory}"
+ fi
+
+ run mkdir -p "${aufs_branch}"
+ if ! run mount -t aufs -n -o "nowarn_perm,udba=none,xino=${aufs_xino}/.aufs.xino,br:${aufs_branch}=rw" aufs "${aufs_union}"
+ then
+ bad_msg "Can't setup union ${aufs_union} in directory!"
aufs=0
fi
}
setup_overlayfs() {
- # Setup directories and vars
- local overlay=/mnt/overlay
- local upperdir="${overlay}/.upper"
- local workdir="${overlay}/.work"
- local static=/mnt/livecd
-
- rundebugshell overlayfs
- for i in "${overlay}" "${static}"; do
- [ ! -d "${i}" ] && mkdir -p "${i}"
- done
-
- good_msg "Loading overlayfs"
- modprobe overlay > /dev/null 2>&1
+ # Setup directories and vars
+ local overlay=/mnt/overlay
+ local upperdir="${overlay}/.upper"
+ local workdir="${overlay}/.work"
+ local static=/mnt/livecd
+
+ run_debug_shell overlayfs
+ for i in "${overlay}" "${static}"
+ do
+ [ ! -d "${i}" ] && run mkdir -p "${i}"
+ done
+
+ good_msg "Loading overlayfs"
+ run modprobe overlay >/dev/null 2>&1
checkfs overlay
- mount -t squashfs -o loop,ro "$CDROOT_PATH/$LOOPEXT$LOOP" "${static}"
- mount -t tmpfs none "${overlay}"
- mkdir "${upperdir}" "${workdir}"
+ mount -t squashfs -o loop,ro "${CDROOT_PATH}/${LOOPEXT}${LOOP}" "${static}"
+ mount -t tmpfs none "${overlay}"
+ mkdir "${upperdir}" "${workdir}"
- is_union_modules overlayfs
- mount -t overlay overlay -o lowerdir="${static}${mod_path}",upperdir="${upperdir}",workdir="${workdir}" "${NEW_ROOT}"
+ is_union_modules overlayfs
+ run mount -t overlay overlay -o lowerdir="${static}${mod_path}",upperdir="${upperdir}",workdir="${workdir}" "${NEW_ROOT}"
- [ ! -d "${NEW_ROOT}${overlay}" ] && mkdir -p "${NEW_ROOT}${overlay}"
- [ ! -d "${NEW_ROOT}${static}" ] && mkdir -p "${NEW_ROOT}${static}"
+ [ ! -d "${NEW_ROOT}${overlay}" ] && mkdir -p "${NEW_ROOT}${overlay}"
+ [ ! -d "${NEW_ROOT}${static}" ] && mkdir -p "${NEW_ROOT}${static}"
- echo "overlay / overlay defaults 0 0" > "${NEW_ROOT}"/etc/fstab
+ echo "overlay / overlay defaults 0 0" > "${NEW_ROOT}"/etc/fstab
- for i in "${overlay}" "${static}"; do
- mount --bind "${i}" "${NEW_ROOT}${i}"
- done
+ for i in "${overlay}" "${static}"
+ do
+ run mount --bind "${i}" "${NEW_ROOT}${i}"
+ done
+
+ # Setup the filesystem nodes and directories
+ # Copied from non-overlayfs logic earlier in this script
+ for i in ${CDROOT_PATH} /mnt/header /mnt/livecd /mnt/key /mnt/gentoo /tmp /tmp/.initrd /dev /proc /run /sys; do
+ run mkdir -p "${NEW_ROOT}${i}"
+ run chmod 755 "${NEW_ROOT}${i}"
+ done
- # Did we populate the overlayfs modules path locations variable?
- if [ -n "$mods" ]; then
- for i in $mods; do
- mount --bind "${overlay}/.${i}" "${NEW_ROOT}/${overlay}/.${i}"
- done
- fi
+ # Did we populate the overlayfs modules path locations variable?
+ if [ -n "${mods}" ]
+ then
+ for i in ${mods}
+ do
+ run mount --bind "${overlay}/.${i}" "${NEW_ROOT}/${overlay}/.${i}"
+ done
+ fi
}
findnfsmount() {
- if [ "${IP}" != '' ] || busybox udhcpc -n -T 15 -q
+ if start_network
then
- [ -e /rootpath ] && NFSROOT=`cat /rootpath`
+ [ -e /rootpath ] && NFSROOT=$(cat /rootpath)
- if [ "${NFSROOT}" = '' ]
+ if [ -z "${NFSROOT}" ]
then
# Obtain NFSIP
- OPTIONS=`busybox dmesg | grep rootserver | sed -e "s/,/ /g"`
- for OPTION in $OPTIONS
+ OPTIONS=$(busybox dmesg | grep rootserver | sed -e "s/,/ /g")
+ for OPTION in ${OPTIONS}
do
- if [ `echo $OPTION | sed -e "s/=/ /g" | cut -d " " -f 1` = 'rootserver' ]
+ if [ $(echo ${OPTION} | sed -e "s/=/ /g" | cut -d " " -f 1) = 'rootserver' ]
then
- NFSIP=`echo $OPTION | sed -e "s/=/ /g" | cut -d " " -f 2`
- fi
+ NFSIP=$(echo ${OPTION} | sed -e "s/=/ /g" | cut -d " " -f 2)
+ fi
done
# Obtain NFSPATH
- OPTIONS=`busybox dmesg | grep rootpath | sed -e "s/,/ /g"`
- for OPTION in $OPTIONS
+ OPTIONS=$(busybox dmesg | grep rootpath | sed -e "s/,/ /g")
+ for OPTION in ${OPTIONS}
do
- if [ `echo $OPTION | sed -e "s/=/ /g" | cut -d " " -f 1` = 'rootpath' ]
+ if [ $(echo ${OPTION} | sed -e "s/=/ /g" | cut -d " " -f 1) = 'rootpath' ]
then
- NFSPATH=`echo $OPTION | sed -e "s/=/ /g" | cut -d " " -f 2`
- fi
+ NFSPATH=$(echo ${OPTION} | sed -e "s/=/ /g" | cut -d " " -f 2)
+ fi
done
# Setup NFSROOT
- if [ "${NFSIP}" != '' ] && [ "$NFSPATH" != '' ]
+ if [ -n "${NFSIP}" -a -n "${NFSPATH}" ]
then
NFSROOT="${NFSIP}:${NFSPATH}"
else
@@ -670,13 +911,13 @@ findnfsmount() {
fi
fi
- if [ "${NFSROOT}" != '' ]
+ if [ -n "${NFSROOT}" ]
then
NFSOPTIONS=${NFSROOT#*,}
NFSROOT=${NFSROOT%%,*}
if [ "${NFSOPTIONS}" = "${NFSROOT}" ]
then
- NFSOPTIONS=$DEFAULT_NFSOPTIONS
+ NFSOPTIONS=${DEFAULT_NFSOPTIONS}
else
NFSOPTIONS="${DEFAULT_NFSOPTIONS},${NFSOPTIONS}"
fi
@@ -684,8 +925,8 @@ findnfsmount() {
if [ "${CDROOT}" != '0' ]
then
good_msg "Attempting to mount NFS CD image on ${NFSROOT} with options ${NFSOPTIONS}"
- mount -t nfs -o ${NFSOPTIONS} ${NFSROOT} ${CDROOT_PATH}
- if [ "$?" = '0' ]
+ run mount -t nfs -o ${NFSOPTIONS} ${NFSROOT} ${CDROOT_PATH}
+ if [ $? -eq 0 ]
then
REAL_ROOT="/dev/nfs"
else
@@ -694,8 +935,8 @@ findnfsmount() {
fi
else
good_msg "Attempting to mount NFS root on ${NFSROOT} with options ${NFSOPTIONS}"
- mount -t nfs -o ${NFSOPTIONS} ${NFSROOT} ${NEW_ROOT}
- if [ "$?" = '0' ]
+ run mount -t nfs -o ${NFSOPTIONS} ${NFSROOT} ${NEW_ROOT}
+ if [ $? -eq 0 ]
then
REAL_ROOT="/dev/nfs"
else
@@ -713,125 +954,306 @@ findnfsmount() {
}
find_real_device() {
- local DEVICE="${1}"
- case "${DEVICE}" in
- UUID\=*|LABEL\=*)
- local REAL_DEVICE=""
+ local device="${1}"
+ local real_device=
+ local candidate=
+ case "${device}" in
+ UUID\=*|LABEL\=*|PARTLABEL=*|PARTUUID\=*)
local retval=1
- if [ "${retval}" -ne 0 ]; then
- REAL_DEVICE=`findfs "${DEVICE}" 2>/dev/null`
- retval=$?
- fi
-
- if [ "$retval" -ne 0 ]; then
- REAL_DEVICE=`busybox findfs "${DEVICE}" 2>/dev/null`
+ if [ ${retval} -ne 0 ]
+ then
+ candidate=$(findfs "${device}" 2>/dev/null)
retval=$?
fi
- if [ "${retval}" -ne 0 ]; then
- REAL_DEVICE=`blkid -o device -l -t "${DEVICE}"`
+ if [ ${retval} -ne 0 ]
+ then
+ candidate=$(blkid -o device -l -t "${device}" 2>/dev/null)
retval=$?
fi
- if [ "${retval}" -eq 0 ] && [ -n "${REAL_DEVICE}" ]; then
- DEVICE="${REAL_DEVICE}"
+ if [ ${retval} -eq 0 ] && [ -n "${candidate}" ]
+ then
+ real_device="${candidate}"
fi
;;
+ *)
+ candidate=$(readlink -f "${device}")
+ if [ -b "${candidate}" ]
+ then
+ real_device="${candidate}"
+ fi
esac
- printf "%s" "${DEVICE}"
+
+ printf "%s" "${real_device}"
}
check_loop() {
- if [ "${LOOP}" = '' -o ! -e "${CDROOT_PATH}/${LOOP}" ]
+ if [ -z "${LOOP}" -o ! -e "${CDROOT_PATH}/${LOOP}" ]
then
bad_msg "Invalid loop location: ${LOOP}"
bad_msg 'Please export LOOP with a valid location, or reboot and pass a proper loop=...'
bad_msg 'kernel command line!'
- run_shell
+ run_emergency_shell
+ fi
+}
+
+run() {
+ local retval
+
+ if "$@"; then
+ retval=$?
+ log_msg "Executed: '$*'"
+ else
+ retval=$?
+ log_msg "Failed (${retval}): '$*'"
fi
+
+ return ${retval}
+}
+
+run_debug_shell() {
+ is_debug || return
+
+ good_msg 'Starting debug shell as requested by "debug" option.' 0
+ good_msg "Run '${BOLD}gksosreport${NORMAL}' to generate debug report" 0
+ good_msg "in case you want to file a bug report." 0
+ good_msg "Stopping by: ${1}" 0
+ run_shell
+}
+
+run_emergency_shell() {
+ if is_userinteraction_allowed
+ then
+ echo
+ gksosreport
+ good_msg 'You might want to save "/run/initramfs/gksosreport.txt" to a USB stick or /boot' 0
+ good_msg 'after mounting them and attach it to a bug report.' 0
+ fi
+
+ run_shell
}
run_shell() {
- /bin/ash
+ splash 'verbose' >/dev/null &
+
+ if ! is_userinteraction_allowed
+ then
+ bad_msg "gk.userinteraction.disabled is set; Spawning a shell is disabled!"
+ return
+ fi
+
+ [ -x /bin/sh ] && SH=/bin/sh || SH=/bin/ash
+
+ run touch "${GK_SHELL_LOCKFILE}"
+
+ export PS1='rescueshell \w \# '
+
+ echo
+ GOOD=${BLUE} good_msg "${NORMAL}Welcome to ${BOLD}${GK_META_VERSION}${NORMAL} (${GK_META_BUILD_DATE}) ${BOLD}rescue shell${NORMAL}!" 0
+ GOOD=${BLUE} good_msg "${NORMAL}...running Linux kernel ${BOLD}${KV}${NORMAL}" 0
+ echo
+
+ # Avoid /dev/{console,tty0} due to "can't access tty; job control turned off" problem;
+ # cttyhack will handle this for us...
+ if [ -n "${CONSOLE}" ] \
+ && [ "${CONSOLE}" != "/dev/console" ] \
+ && [ "${CONSOLE}" != "/dev/tty0" ] \
+ && [ -c "${CONSOLE}" ]
+ then
+ log_msg "Opening rescue shell on ${CONSOLE} ..."
+ setsid ${SH} -c "exec sh --login 0<>${CONSOLE} 1<>${CONSOLE} 2<>${CONSOLE}"
+ elif command -v cttyhack 1>/dev/null 2>&1
+ then
+ log_msg "Opening rescue shell using cttyhack ..."
+ setsid cttyhack ${SH} --login
+ elif [ -c '/dev/tty1' ]
+ then
+ log_msg "Opening rescue shell on /dev/tty1 fallback ..."
+ setsid ${SH} -c "exec sh --login 0<>/dev/tty1 1<>/dev/tty1 2<>/dev/tty1"
+ else
+ log_msg "Opening rescue shell (last resort) ..."
+ ${SH} --login
+ fi
+
+ # Leave function early when /dev/null does not exist anymore,
+ # i.e. after failed switch_root call
+ [ ! -e /dev/null ] && return
+
+ rm "${GK_SHELL_LOCKFILE}"
+
+ echo
+
+ # We maybe have called exec and dettached from main script; We
+ # must restore control...
+ exec 0<>${CONSOLE} 1<>${CONSOLE} 2<>${CONSOLE}
}
fs_type_in_use() {
fs_type=$1
- cut -d ' ' -f 3 < /proc/mounts | fgrep -q "${fs_type}"
+ cut -d ' ' -f 3 < /proc/mounts | grep -Fq "${fs_type}"
}
mount_devfs() {
# Use devtmpfs if enabled in kernel,
# else tmpfs. Always run mdev just in case
- devfs=tmpfs
- if checkfs devtmpfs > /dev/null ; then
+ local devfs=tmpfs
+
+ if checkfs devtmpfs >/dev/null
+ then
devfs=devtmpfs
fi
# Options copied from /etc/init.d/udev-mount, should probably be kept in sync
- if ! fs_type_in_use devtmpfs; then
- mount -t $devfs -o "exec,nosuid,mode=0755,size=10M" udev /dev \
+ if ! fs_type_in_use devtmpfs
+ then
+ run mount -t ${devfs} -o "exec,nosuid,mode=0755,size=10M" udev /dev \
|| bad_msg "Failed to mount /dev as ${devfs}"
fi
# http://git.busybox.net/busybox/plain/docs/mdev.txt
- if ! fs_type_in_use devpts; then
- mkdir -m 0755 /dev/pts
- mount -t devpts -o gid=5,mode=0620 devpts /dev/pts || bad_msg "Failed to mount /dev/pts"
+ if ! fs_type_in_use devpts
+ then
+ run mkdir -m 0755 /dev/pts
+ run mount -t devpts -o gid=5,mode=0620 devpts /dev/pts || bad_msg "Failed to mount /dev/pts"
fi
+
+ run mkdir -m 1777 /dev/shm
+ run mount -t tmpfs -o mode=1777,nosuid,nodev,strictatime tmpfs /dev/shm \
+ || bad_msg "Failed to mount /dev/shm"
}
test_success() {
retcode=$?
# If last command failed send error message and fall back to a shell
- if [ "$retcode" != '0' ]
+ if [ "${retcode}" != '0' ]
then
- error_string=$1
- error_string="${error_string:-run command}"
- bad_msg 'Failed to $1; failing back to the shell...'
- run_shell
+ error_string=${1}
+ error_string="${error_string:-Failed to run command}"
+ bad_msg "${error_string}; Failing back to the shell ..."
+ run_emergency_shell
fi
}
+trim() {
+ local var="$*"
+
+ var="${var#"${var%%[![:space:]]*}"}" # remove leading whitespace characters
+ var="${var%"${var##*[![:space:]]}"}" # remove trailing whitespace characters
+
+ printf "%s" "${var}"
+}
+
+log_msg() {
+ is_log_enabled || return
+
+ if [ ! -f "${GK_INIT_LOG}" ]
+ then
+ touch "${GK_INIT_LOG}" 2>/dev/null || return
+ fi
+
+ local log_prefix=
+ [ -n "${GK_INIT_LOG_PREFIX}" ] && log_prefix="${GK_INIT_LOG_PREFIX}: "
+
+ local msg=${1}
+
+ # Cannot use substitution because $msg could contain infinite color
+ # codes and substitution can't be greedy.
+ # Because Busybox's sed cannot deal with control characters, we
+ # have to get rid of all non-printable characters like "^[" first...
+ LANG=C echo "] ${log_prefix}${msg}" | sed \
+ -e "s,[^[:print:]],,g" \
+ -e 's,\(\\033\)\?\[[0-9;]\+m,,g' \
+ | ts '[ %Y-%m-%d %H:%M:%.S' >> "${GK_INIT_LOG}"
+}
# msg functions arguments
# $1 string
# $2 hide flag
good_msg() {
- [ -n "${QUIET}" ] && [ -z "${DEBUG}" ] && return 0
+ local msg_string=${1}
+ msg_string="${msg_string:-...}"
- msg_string=$1
+ log_msg "[OK] ${msg_string}"
+
+ is_true "${2-${QUIET}}" || printf "%b\n" "${GOOD}>>${NORMAL}${BOLD} ${msg_string} ${NORMAL}"
+}
+
+good_msg_n() {
+ local msg_string=${1}
msg_string="${msg_string:-...}"
- [ "$2" != 1 ] && printf "%b\n" "${GOOD}>>${NORMAL}${BOLD} ${msg_string} ${NORMAL}"
+
+ log_msg "[OK] ${msg_string}"
+
+ is_true "${2-${QUIET}}" || printf "%b" "${GOOD}>>${NORMAL}${BOLD} ${msg_string}"
}
bad_msg() {
- msg_string=$1
+ local msg_string=${1}
msg_string="${msg_string:-...}"
- if [ "$2" != 1 ]
- then
- splash 'verbose' > /dev/null &
- printf "%b\n" "${BAD}!!${NORMAL}${BOLD} ${msg_string} ${NORMAL}"
- fi
+
+ log_msg "[!!] ${msg_string}"
+
+ splash 'verbose' >/dev/null &
+ printf "%b\n" "${BAD}!!${NORMAL}${BOLD} ${msg_string} ${NORMAL}"
}
warn_msg() {
- msg_string=$1
+ local msg_string=${1}
msg_string="${msg_string:-...}"
- [ "$2" != 1 ] && printf "%b\n" "${WARN}**${NORMAL}${BOLD} ${msg_string} ${NORMAL}"
+
+ log_msg "[**] ${msg_string}"
+
+ is_true "${2-${QUIET}}" || printf "%b\n" "${WARN}**${NORMAL}${BOLD} ${msg_string} ${NORMAL}"
+}
+
+warn_msg_n() {
+ local msg_string=${1}
+ msg_string="${msg_string:-...}"
+
+ log_msg "[**] ${msg_string}"
+
+ is_true "${2-${QUIET}}" || printf "%b" "${WARN}**${NORMAL}${BOLD} ${msg_string}"
+}
+
+write_env_file() {
+ local env_file=${1}
+ shift
+
+ run touch "${env_file}"
+
+ local varname= varvalue=
+ for varname in $*
+ do
+ eval varvalue=\$${varname}
+ echo "${varname}='${varvalue}'" >> "${env_file}"
+ done
}
crypt_filter() {
+ local ask_pass=${2}
+ good_msg "Using the following decryption command: ${1}" ${CRYPT_SILENT}
+
if [ "${CRYPT_SILENT}" = '1' ]
then
- eval $1 >/dev/null 2>/dev/null
+ eval run ${1}
+ elif [ "${PLYMOUTH}" = '1' ] && [ ${ask_pass} -eq 1 ]
+ then
+ local ply_cmd_file="$(mktemp -t 'ply_cmd.XXXXXX' 2>/dev/null)"
+ printf '#!/bin/sh\n%s\n' "${1}" > "${ply_cmd_file}"
+ run chmod 500 "${ply_cmd_file}"
+ plymouthRun ask-for-password --prompt "Enter LUKS passphrase" \
+ --number-of-tries=3 --command="${ply_cmd_file}"
+ res=$?
+ run rm "${ply_cmd_file}" >/dev/null 2>&1
+ return ${res}
else
- splash 'verbose' > /dev/null &
- eval $1
+ splash 'verbose' >/dev/null &
+ eval run ${1}
res=$?
if [ ${res} -eq 0 ]
then
@@ -841,7 +1263,56 @@ crypt_filter() {
fi
}
-prompt_user(){
+process_initramfs_mounts() {
+ local fslist=
+
+ if [ -f "${NEW_ROOT}/etc/initramfs.mounts" ]
+ then
+ fslist="$(get_mounts_list)"
+ else
+ fslist="/usr"
+ fi
+
+ local dev= fs= fstype= opts= mnt= cmd=
+ for fs in ${fslist}
+ do
+ mnt="${NEW_ROOT}${fs}"
+ if run mountpoint -q "${mnt}"
+ then
+ good_msg "${fs} already mounted, skipping..."
+ continue
+ fi
+
+ dev=$(get_mount_device "${fs}")
+ [ -z "${dev}" ] && continue
+ # Resolve it like util-linux mount does
+ [ -L "${dev}" ] && dev=$(realpath "${dev}")
+ # In this case, it's probably part of the filesystem
+ # and not a mountpoint
+ [ -z "${dev}" ] && continue
+
+ fstype=$(get_mount_fstype "${fs}")
+ if get_mount_options "${fs}" | grep -Fq bind
+ then
+ opts="bind"
+ dev="${NEW_ROOT}${dev}"
+ else
+ # ro must be trailing, and the options will always
+ # contain at least 'defaults'
+ opts="$(get_mount_options ${fs} | strip_mount_options)"
+ opts="${opts},ro"
+ fi
+
+ cmd="mount -t ${fstype} -o ${opts} ${dev} ${mnt}"
+ good_msg "Mounting ${dev} as ${fs}: ${cmd}"
+ if ! run ${cmd}
+ then
+ bad_msg "Unable to mount ${dev} for ${fs}"
+ fi
+ done
+}
+
+prompt_user() {
# $1 = variable whose value is the path (examples: "REAL_ROOT",
# "LUKS_KEYDEV")
# $2 = label
@@ -849,35 +1320,99 @@ prompt_user(){
eval local oldvalue='$'${1}
- if [ $# != 2 -a $# != 3 ]; then
+ if [ $# != 2 -a $# != 3 ]
+ then
bad_msg "Bad invocation of function prompt_user."
bad_msg "Please file a bug report with this message"
exit 1
fi
[ -n "${3}" ] && local explnt=" or : ${3}" || local explnt="."
+ splash 'verbose' >/dev/null &
bad_msg "Could not find the ${2} in ${oldvalue}${explnt}"
+
+ if [ -f "${GK_USERINTERACTION_DISABLED_STATEFILE}" ]
+ then
+ bad_msg "gk.userinteraction.disabled is set; No user interaction allowed!"
+
+ wait_sshd
+
+ if [ -f "${GK_SSHD_LOCKFILE}" ]
+ then
+ warn_msg "The lockfile at '${GK_SSHD_LOCKFILE}' exists." 0
+ warn_msg "The boot process will be paused until the lock is removed." 0
+ while true
+ do
+ if [ -f "${GK_SSHD_LOCKFILE}" ]
+ then
+ sleep 1
+ else
+ break
+ fi
+ done
+ fi
+
+ local timeout=${GK_PROMPT_TIMEOUT}
+ [ ${timeout} -eq 0 ] && timeout=10
+
+ warn_msg_n "System will automatically reboot in ${timeout} seconds ..." 0
+ while [ ${timeout} -gt 0 ]
+ do
+ let timeout=${timeout}-1
+ sleep 1
+ printf "."
+ done
+ echo
+
+ reboot -f
+ fi
+
bad_msg "Please specify another value or:"
bad_msg "- press Enter for the same"
bad_msg '- type "shell" for a shell'
- bad_msg '- type "q" to skip...'
+ bad_msg '- type "q" to skip ...'
printf "%s" "${2}(${oldvalue}) :: "
- read -t 10 ${1}
- case `eval echo '$'${1}` in
+
+ if [ "${GK_PROMPT_TIMEOUT}" = '0' ]
+ then
+ read ${1}
+ else
+ local read_timeout_timestamp
+ let read_timeout_timestamp=$(date +%s)+${GK_PROMPT_TIMEOUT}
+
+ echo "# Could not find the ${2} in ${oldvalue}${explnt}" > "${GK_PROMPT_FILE}"
+ echo "# Please specify another value (file will be processed at $(date -d @${read_timeout_timestamp}):" >> "${GK_PROMPT_FILE}"
+ echo "${1}=${oldvalue}" >> "${GK_PROMPT_FILE}"
+ read -t ${GK_PROMPT_TIMEOUT} ${1}
+ if [ $? -gt 0 ]
+ then
+ # prompt timed out
+ printf "\n"
+
+ if [ -f "${GK_PROMPT_FILE}" ]
+ then
+ warn_msg "Timeout! Trying to read answer from '${GK_PROMPT_FILE}' ..." 0
+ . "${GK_PROMPT_FILE}" && run rm "${GK_PROMPT_FILE}"
+ fi
+ fi
+ fi
+
+ case $(eval echo '$'${1}) in
'q')
eval ${1}'='${oldvalue}
- warn_msg "Skipping step, this will likely cause a boot failure."
- break
+ warn_msg "Skipping step, this will likely cause a boot failure." 0
;;
'shell')
eval ${1}'='${oldvalue}
- warn_msg "To leave and try again just press <Ctrl>+D"
- run_shell
+ warn_msg "To leave and try again just press <Ctrl>+D" 0
+ run_emergency_shell
;;
'')
eval ${1}'='${oldvalue}
;;
esac
+
+ splash 'quiet' >/dev/null &
}
cmdline_hwopts() {
@@ -885,16 +1420,16 @@ cmdline_hwopts() {
local FOUND
local TMP_HWOPTS
- for x in $HWOPTS
+ for x in ${HWOPTS}
do
- for y in $CMDLINE
+ for y in ${CMDLINE}
do
if [ "${y}" = "do${x}" ]
then
- MY_HWOPTS="${MY_HWOPTS} $x"
+ MY_HWOPTS="${MY_HWOPTS} ${x}"
elif [ "${y}" = "no${x}" ]
then
- MY_HWOPTS="`echo ${MY_HWOPTS} | sed -e \"s/${x}//g\" -`"
+ MY_HWOPTS="$(echo ${MY_HWOPTS} | sed -e "s/${x}//g" -)"
fi
if [ "$(echo ${y} | cut -b -7)" = "keymap=" ]
then
@@ -905,7 +1440,7 @@ cmdline_hwopts() {
# Shouldnt need to sort this as the following loop should figure out the
# duplicates and strip them out
- #MY_HWOPTS=`echo ${MY_HWOPTS}| sort`
+ #MY_HWOPTS=$(echo ${MY_HWOPTS} | sort)
for x in ${MY_HWOPTS}
do
@@ -918,124 +1453,111 @@ cmdline_hwopts() {
fi
done
TMP_HWOPTS="${TMP_HWOPTS} ${x}"
- eval DO_`echo ${x} | sed 's/-//'`=1
+ eval DO_$(echo ${x} | sed 's/-//')=1
done
MY_HWOPTS=${TMP_HWOPTS}
}
-load_modules() {
- # Load modules listed in MY_HWOPTS if /lib/modules exists for the running
- # kernel version
- if [ -d "/lib/modules/${KV}" ]
- then
- good_msg 'Loading modules'
- # Load appropriate kernel modules
- for modules in $MY_HWOPTS
- do
- modules_scan $modules
- done
- else
- good_msg 'Skipping module load; no modules in the ramdisk!'
- fi
-}
-
setup_keymap() {
if [ "${DO_keymap}" ]
then
+ local console=$(get_active_console)
+ if echo "${console}" | grep -qF 'ttyS'
+ then
+ warn_msg "Active console is ${console}; Skipping dokeymap ..."
+ return
+ fi
+
if [ ! -e /dev/vc/0 -a ! -e /dev/tty0 ]
then
DEVBIND=1
- mount -o bind ${NEW_ROOT}/dev /dev
+ run mount -o bind ${NEW_ROOT}/dev /dev
fi
- [ ! -e /dev/tty0 ] && ln -s /dev/tty1 /dev/tty0
[ -f /lib/keymaps/keymapList ] && chooseKeymap
- [ "${DEVBIND}" = '1' ] && umount /dev
+ [ "${DEVBIND}" = '1' ] && run umount /dev
fi
}
setup_locale() {
- if [ ! -z "${locale}" ]; then
- echo "LANG=${locale}" > ${NEW_ROOT}/etc/sysconfig/locale
- fi
+ if [ -n "${locale}" ]
+ then
+ echo "LANG=${locale}" >${NEW_ROOT}/etc/sysconfig/locale
+ fi
}
chooseKeymap() {
good_msg "Loading keymaps"
if [ -z "${keymap}" ]
then
- splash 'verbose' > /dev/null &
- cat /lib/keymaps/keymapList
+ splash 'verbose' >/dev/null &
+ run cat /lib/keymaps/keymapList
read -t 10 -p '<< Load keymap (Enter for default): ' keymap
case ${keymap} in
1|azerty) keymap=azerty ;;
2|be) keymap=be ;;
- 3|bg) keymap=bg ;;
- 4|br-a) keymap=br-a ;;
- 5|br-l) keymap=br-l ;;
- 6|by) keymap=by ;;
- 7|cf) keymap=cf ;;
- 8|croat) keymap=croat ;;
- 9|cz) keymap=cz ;;
- 10|de) keymap=de ;;
- 11|dk) keymap=dk ;;
- 12|dvorak) keymap=dvorak ;;
- 13|es) keymap=es ;;
- 14|et) keymap=et ;;
- 15|fi) keymap=fi ;;
- 16|fr) keymap=fr ;;
- 17|gr) keymap=gr ;;
- 18|hu) keymap=hu ;;
- 19|il) keymap=il ;;
- 20|is) keymap=is ;;
- 21|it) keymap=it ;;
- 22|jp) keymap=jp ;;
- 23|la) keymap=la ;;
- 24|lt) keymap=lt ;;
- 25|mk) keymap=mk ;;
- 26|nl) keymap=nl ;;
- 27|no) keymap=no ;;
- 28|pl) keymap=pl ;;
- 29|pt) keymap=pt ;;
- 30|ro) keymap=ro ;;
- 31|ru) keymap=ru ;;
- 32|se) keymap=se ;;
- 33|sg) keymap=sg ;;
- 34|sk-y) keymap=sk-y ;;
- 35|sk-z) keymap=sk-z ;;
- 36|slovene) keymap=slovene ;;
- 37|trf) keymap=trf ;;
- 38|trq) keymap=trq ;;
- 39|ua) keymap=ua ;;
- 40|uk) keymap=uk ;;
- 41|us) keymap=us ;;
- 42|wangbe) keymap=wangbe ;;
- 43|sf|ch*) keymap=sf ;;
+ 3|bepo) keymap=bepo ;;
+ 4|bg) keymap=bg ;;
+ 5|br-a) keymap=br-a ;;
+ 6|br-l) keymap=br-l ;;
+ 7|by) keymap=by ;;
+ 8|cf) keymap=cf ;;
+ 9|colemak) keymap=colemak ;;
+ 10|croat) keymap=croat ;;
+ 11|cz) keymap=cz ;;
+ 12|de) keymap=de ;;
+ 13|dk) keymap=dk ;;
+ 14|dvorak) keymap=dvorak ;;
+ 15|es) keymap=es ;;
+ 16|et) keymap=et ;;
+ 17|fi) keymap=fi ;;
+ 18|fr) keymap=fr ;;
+ 19|gr) keymap=gr ;;
+ 20|hu) keymap=hu ;;
+ 21|il) keymap=il ;;
+ 22|is) keymap=is ;;
+ 23|it) keymap=it ;;
+ 24|jp) keymap=jp ;;
+ 25|la) keymap=la ;;
+ 26|lt) keymap=lt ;;
+ 27|mk) keymap=mk ;;
+ 28|nl) keymap=nl ;;
+ 29|no) keymap=no ;;
+ 30|pl) keymap=pl ;;
+ 31|pt) keymap=pt ;;
+ 32|ro) keymap=ro ;;
+ 33|ru) keymap=ru ;;
+ 34|se) keymap=se ;;
+ 35|sf|ch*) keymap=sf ;;
+ 36|sg) keymap=sg ;;
+ 37|sk-y) keymap=sk-y ;;
+ 38|sk-z) keymap=sk-z ;;
+ 39|slovene) keymap=slovene ;;
+ 40|trf) keymap=trf ;;
+ 41|ua) keymap=ua ;;
+ 42|uk) keymap=uk ;;
+ 43|us) keymap=us ;;
+ 44|wangbe) keymap=wangbe ;;
esac
fi
+
if [ -e /lib/keymaps/${keymap}.map ]
then
- good_msg "Loading the ''${keymap}'' keymap"
- loadkmap < /lib/keymaps/${keymap}.map
-# xkeymap=${keymap}
-# echo ${keymap} | egrep -e "[0-9]+" >/dev/null 2>&1
-# if [ $? -eq 0 ]
-# then
-# xkeymap=`tail -n 8 /lib/keymaps/keymapList | grep ${keymap} | sed -r "s/.*\s+${keymap}\s+([a-z-]+).*/\1/g" | egrep -v 1`
-# fi
- mkdir -p /etc/sysconfig
-# echo "XKEYBOARD=${xkeymap}" > /etc/sysconfig/keyboard
+ good_msg "Loading the '${keymap}' keymap ..."
+ run loadkmap < /lib/keymaps/${keymap}.map
+
+ run mkdir -p /etc/sysconfig
echo "XKEYBOARD=${keymap}" > /etc/sysconfig/keyboard
- splash set_msg "Set keymap to ${keymap}"
+ splash set_msg "Set keymap to '${keymap}'"
elif [ -z "${keymap}" ]
then
good_msg
good_msg "Keeping default keymap"
splash set_msg "Keeping default keymap"
else
- bad_msg "Sorry, but keymap ''${keymap}'' is invalid!"
+ bad_msg "Sorry, but keymap '${keymap}' is invalid!"
unset keymap
chooseKeymap
fi
@@ -1045,231 +1567,310 @@ chooseKeymap() {
# Copy over user selected keymap
#
copyKeymap() {
- if [ -e /etc/sysconfig/keyboard -a "${CDROOT}" = '1' ]; then
- [ ! -d ${NEW_ROOT}/etc/sysconfig ] && mkdir -p ${NEW_ROOT}/etc/sysconfig
- cp /etc/sysconfig/keyboard ${NEW_ROOT}/etc/sysconfig/keyboard
- fi
+ if [ -e /etc/sysconfig/keyboard -a ${CDROOT} -eq 1 ]
+ then
+ [ ! -d ${NEW_ROOT}/etc/sysconfig ] && run mkdir -p ${NEW_ROOT}/etc/sysconfig
+ run cp /etc/sysconfig/keyboard ${NEW_ROOT}/etc/sysconfig/keyboard
+ fi
}
-# This helper function is to be called using call_func_timeout.
-# It enables us to wait a reasonable amount of time until /dev/zfs appears.
-waitForZFS() {
- while [ ! -c /dev/zfs ]; do echo >/dev/null; done;
- exit 1
+splash() {
+ if [ "${FBSPLASH}" = '1' ]
+ then
+ return 0
+ elif [ "${PLYMOUTH}" = '1' ]
+ then
+ case "${1}" in
+ init)
+ plymouthInit
+ ;;
+
+ verbose)
+ plymouthRun --hide-splash
+ ;;
+
+ set_msg)
+ plymouthRun --update="${2}"
+ ;;
+
+ quiet)
+ plymouthRun --show-splash
+ ;;
+
+ hasroot)
+ plymouthRun --newroot="${2}"
+ ;;
+ esac
+ fi
}
-startVolumes() {
- #good_msg 'Checking if volumes need to be started...'
+plymouthRun() {
+ run plymouth --ping 2>/dev/null || return $?
+ run plymouth "${@}" 2>/dev/null
+}
- # Here, we check for /dev/device-mapper, and if it exists, we setup a
- # a symlink, which should hopefully fix bug #142775 and bug #147015
- if [ -e /dev/device-mapper ] && [ ! -e /dev/mapper/control ]
+plymouthInit() {
+ good_msg "Starting Plymouth..."
+ run mkdir -p -m 0755 /run/plymouth || return 1
+
+ # Make sure that udev is done loading tty and drm
+ run udevadm trigger --action=add --attr-match=class=0x030000 >/dev/null 2>&1
+ run udevadm trigger --action=add --subsystem-match=graphics \
+ --subsystem-match=drm --subsystem-match=tty >/dev/null 2>&1
+ udevsettle
+
+ run plymouthd --mode=boot --attach-to-session \
+ --pid-file=/run/plymouth/pid
+ if [ $? -ne 0 ]
then
- mkdir -p /dev/mapper
- ln -sf /dev/device-mapper /dev/mapper/control
+ bad_msg "Can't start plymouthd!"
+ PLYMOUTH=0
+ return 1
fi
- if [ "${USE_MDADM}" = '1' ]
+ plymouthRun --show-splash
+ if [ $? -eq 0 ]
then
- if [ -x '/sbin/mdadm' ]
- then
- /sbin/mdadm --assemble --scan
- #Intel Matrix RAID (and possibly others) have a container layer above the actual volumes,
- #So we have to look for volumes that haven't been activated.
- mdadm -IRs
- else
- bad_msg "mdadm not found: skipping mdadm raid assembly!"
- fi
+ good_msg "Plymouth initialized"
+ fi
+}
+
+start_volumes() {
+ # Here, we check for /dev/device-mapper, and if it exists, we setup a
+ # a symlink, which should hopefully fix bug #142775 and bug #147015
+ if [ -e /dev/device-mapper ] && [ ! -e /dev/mapper/control ]
+ then
+ run mkdir -p /dev/mapper
+ run ln -sf /dev/device-mapper /dev/mapper/control
fi
if [ "${USE_MULTIPATH_NORMAL}" = '1' ]
then
- for multipath_path in /sbin/multipath /bin/multipath MISSING ; do
- [ -x "$multipath_path " ] && break
- done
- for dmsetup_path in /sbin/dmsetup /bin/dmsetup MISSING ; do
- [ -x "$dmsetup_path " ] && break
- done
- for kpartx_path in /sbin/kpartx /bin/kpartx MISSING ; do
- [ -x "$kpartx_path " ] && break
- done
- fail=0
- ["${multipath_path}" = "MISSING" ] && fail=1 && bad_msg "domultipath called, but multipath binary missing! Skipping multipath"
- ["${dmsetup_path}" = "MISSING" ] && fail=1 && bad_msg "domultipath called, but dmsetup binary missing! Skipping multipath"
- ["${kpartx_path}" = "MISSING" ] && fail=1 && bad_msg "domultipath called, but kpartx binary missing! Skipping multipath"
- if [ "$fail" = "0" ]
+ if ! hash multipath >/dev/null 2>&1
then
+ bad_msg "domultipath called, but multipath binary missing! Skipping multipath"
+ else
good_msg "Scanning for multipath devices"
- good_msg ":: Populating scsi_id info for libudev queries"
- mkdir -p /run/udev/data
- for ech in /sys/block/* ; do
- local tgtfile=b$(cat ${ech}/dev)
- /lib/udev/scsi_id -g -x /dev/${ech##*/} |sed -e 's/^/E:/' >/run/udev/data/${tgtfile}
- done
- $multipath_path -v 0
- sleep 2
- good_msg "Activating multipath devices"
- $dmsetup_path ls --target multipath --exec "$kpartx_path -a -v"
- #for MULTIPATH_VOLUMES in /dev/mapper/*; do $kpartx_path -a $MULTIPATH_VOLUMES; done
+
+ local multipath_cmd="run multipath -v 0 2>&1"
+ is_log_enabled && multipath_cmd="${multipath_cmd} | tee -a '${GK_INIT_LOG}'"
+
+ eval "${multipath_cmd}"
+ if [ $? -ne 0 ]
+ then
+ bad_msg "Scanning for multipath devices failed!"
+ else
+ udevsettle
+ fi
fi
fi
if [ "${USE_DMRAID_NORMAL}" = '1' ]
then
- if [ -x '/sbin/dmraid' ]
+ if ! hash dmraid >/dev/null 2>&1
then
- good_msg "Activating Device-Mapper RAID(s)"
- if [ '${DMRAID_OPTS}' = '' ]
+ bad_msg "dodmraid invoked but 'dmraid' not found; Skipping dmraid activation ..."
+ else
+ good_msg "Activating Device-Mapper RAID(s) ..."
+ local dmraid_cmd="run dmraid -ay"
+ if [ -z "${DMRAID_OPTS}" ]
+ then
+ dmraid_cmd="${dmraid_cmd} 2>&1"
+ else
+ dmraid_cmd="${dmraid_cmd} ${DMRAID_OPTS} 2>&1"
+ fi
+ is_log_enabled && dmraid_cmd="${dmraid_cmd} | tee -a '${GK_INIT_LOG}'"
+
+ eval "${dmraid_cmd}"
+ if [ $? -ne 0 ]
then
- /sbin/dmraid -ay
+ bad_msg "Activation of Device-Mapper RAID(s) failed!"
else
- /sbin/dmraid -ay ${DMRAID_OPTS}
+ udevsettle
fi
- [ -x '/sbin/kpartx' ] && /sbin/dmsetup ls --exec '/sbin/kpartx -a -s'
fi
fi
if [ "${USE_LVM_NORMAL}" = '1' ]
then
- for lvm_path in /sbin/lvm /bin/lvm MISSING ; do
- [ -x "$lvm_path" ] && break
- done
- if [ "${lvm_path}" = "MISSING" ]
+ if ! hash lvm >/dev/null 2>&1
then
- bad_msg "dolvm invoked, but LVM binary not available! skipping LVM volume group activation!"
+ bad_msg "dolvm invoked but LVM binary not available; Skipping LVM volume group activation ..."
else
- for dev in ${RAID_DEVICES}
- do
- setup_md_device "${dev}"
- done
-
- # This is needed for LVM to accept the following logic
- lvm_commands="#! ${lvm_path}"
-
# If there is a cache, update it. Unbreak at least dmcrypt
- [ -d /etc/lvm/cache ] && lvm_commands="${lvm_commands} \nvgscan"
+ if [ -d /etc/lvm/cache ]
+ then
+ good_msg "Scanning for volume groups ..."
- # To activate volumegroups on all devices in the cache
- lvm_commands="${lvm_commands} \nvgchange -ay --sysinit"
+ local lvm_cmd="run lvm vgscan 2>&1"
+ is_log_enabled && lvm_cmd="${lvm_cmd} | tee -a '${GK_INIT_LOG}'"
+ is_quiet && lvm_cmd="${lvm_cmd} 1>/dev/null"
- # To create symlinks so users can use real_root=/dev/vg/root
- # This needs to run after vgchange, using vgchange --mknodes is too
- # early.
- lvm_commands="${lvm_commands} \nvgmknodes --ignorelockingfailure"
+ eval "${lvm_cmd}"
+ if [ $? -ne 0 ]
+ then
+ bad_msg "Scanning for volume groups failed!"
+ else
+ udevsettle
+ fi
+ fi
- # And finally execute it all (/proc/... needed if lvm is compiled without readline)
- good_msg "Scanning for and activating Volume Groups"
- printf "%b\n" "${lvm_commands}" | $lvm_path /proc/self/fd/0
- fi
- fi
+ good_msg "Activating volume groups ..."
- if [ "${USE_BTRFS}" = '1' ]
- then
- if [ -x '/sbin/btrfs' ]
- then
- /sbin/btrfs device scan
- else
- bad_msg "btrfs not found: skipping btrfs device scanning!"
+ # To activate volumegroups on all devices in the cache
+ local lvm_cmd="run lvm vgchange -ay --sysinit 2>&1"
+ is_log_enabled && lvm_cmd="${lvm_cmd} | tee -a '${GK_INIT_LOG}'"
+ is_quiet && lvm_cmd="${lvm_cmd} 1>/dev/null"
+
+ eval "${lvm_cmd}"
+ if [ $? -ne 0 ]
+ then
+ bad_msg "Activation of volume groups failed!"
+ fi
fi
fi
if [ "${USE_ZFS}" = '1' ]
then
-
# Avoid race involving asynchronous module loading
- if call_func_timeout waitForZFS 5
+ if [ ! -e /dev/zfs ]
then
bad_msg "Cannot import ZFS pool because /dev/zfs is missing"
elif [ -z "${ZFS_POOL}" ]
then
- good_msg "Importing ZFS pools"
+ good_msg "Importing ZFS pools ..."
- /sbin/zpool import -N -a ${ZPOOL_CACHE} ${ZPOOL_FORCE}
+ local zfs_cmd="run /sbin/zpool import -N -a ${ZPOOL_CACHE} ${ZPOOL_FORCE} 2>&1"
+ is_log_enabled && zfs_cmd="${zfs_cmd} | tee -a '${GK_INIT_LOG}'"
+ is_quiet && zfs_cmd="${zfs_cmd} 1>/dev/null"
- if [ "$?" = '0' ]
+ eval "${zfs_cmd}"
+ if [ $? -ne 0 ]
then
- good_msg "Importing ZFS pools succeeded"
- else
- bad_msg "Imported ZFS pools failed"
+ bad_msg "Importing ZFS pools failed!"
fi
else
-
- if [ "$(zpool list -H -o name ${ZFS_POOL} 2>&1)" = "$ZFS_POOL" ]
+ if [ "$(zpool list -H -o name ${ZFS_POOL} 2>&1)" = "${ZFS_POOL}" ]
then
good_msg "ZFS pool ${ZFS_POOL} already imported."
if [ -n "${CRYPT_ROOT}" -o -n "${CRYPT_SWAP}" ]
then
- good_msg "LUKS detected. Reimporting ${ZFS_POOL}"
- /sbin/zpool export -f "${ZFS_POOL}"
- /sbin/zpool import -N ${ZPOOL_CACHE} ${ZPOOL_FORCE} "${ZFS_POOL}"
+ good_msg "LUKS detected. Reimporting ${ZFS_POOL} ..."
+
+ local zfs_cmd="run /sbin/zpool export -f '${ZFS_POOL}' 2>&1"
+ is_log_enabled && zfs_cmd="${zfs_cmd} | tee -a '${GK_INIT_LOG}'"
+ is_quiet && zfs_cmd="${zfs_cmd} 1>/dev/null"
+
+ eval "${zfs_cmd}"
+ if [ $? -ne 0 ]
+ then
+ bad_msg "Exporting ZFS pools failed!"
+ else
+ udevsettle
+ fi
+
+ zfs_cmd="run /sbin/zpool import -N ${ZPOOL_CACHE} ${ZPOOL_FORCE} '${ZFS_POOL}' 2>&1"
+ is_log_enabled && zfs_cmd="${zfs_cmd} | tee -a '${GK_INIT_LOG}'"
+ is_quiet && zfs_cmd="${zfs_cmd} 1>/dev/null"
+
+ eval "${zfs_cmd}"
+ if [ $? -ne 0 ]
+ then
+ bad_msg "Re-importing ZFS pools failed!"
+ fi
fi
else
- good_msg "Importing ZFS pool ${ZFS_POOL}"
+ good_msg "Importing ZFS pool ${ZFS_POOL} ..."
- /sbin/zpool import -N ${ZPOOL_CACHE} ${ZPOOL_FORCE} "${ZFS_POOL}"
+ local zfs_cmd="run /sbin/zpool import -N ${ZPOOL_CACHE} ${ZPOOL_FORCE} '${ZFS_POOL}' 2>&1"
+ is_log_enabled && zfs_cmd="${zfs_cmd} | tee -a '${GK_INIT_LOG}'"
+ is_quiet && zfs_cmd="${zfs_cmd} 1>/dev/null"
- if [ "$?" = '0' ]
+ eval "${zfs_cmd}"
+ if [ $? -ne 0 ]
then
- good_msg "Import of ${ZFS_POOL} succeeded"
- else
- bad_msg "Import of ${ZFS_POOL} failed"
+ bad_msg "Import of ${ZFS_POOL} failed!"
fi
fi
fi
fi
+
+ udevsettle
}
-startiscsi() {
+start_iscsi() {
+ local iscsi_cmd
if [ ! -n "${ISCSI_NOIBFT}" ]
then
- good_msg "Activating iSCSI via iBFT"
- iscsistart -b
+ good_msg "Activating iSCSI via iBFT ..."
+
+ iscsi_cmd="run iscsistart -b 2>&1"
+ is_log_enabled && iscsi_cmd="${iscsi_cmd} | tee -a '${GK_INIT_LOG}'"
+ is_quiet && iscsi_cmd="${iscsi_cmd} 1>/dev/null"
+
+ eval "${iscsi_cmd}"
+ if [ $? -ne 0 ]
+ then
+ bad_msg "Activation of iSCSI via iBFT failed!"
+ else
+ udevsettle
+ fi
fi
if [ -n "${ISCSI_INITIATORNAME}" ] && [ -n "${ISCSI_TARGET}" ] && [ -n "${ISCSI_ADDRESS}" ]
then
good_msg "Activating iSCSI via cmdline"
- if [ "${ISCSI_TGPT}" ]
+ if [ -n "${ISCSI_TGPT}" ]
then
ADDITIONAL="${ADDITIONAL} -g ${ISCSI_TGPT}"
else
ADDITIONAL="${ADDITIONAL} -g 1"
fi
- if [ "${ISCSI_PORT}" ]
+ if [ -n "${ISCSI_PORT}" ]
then
ADDITIONAL="${ADDITIONAL} -p ${ISCSI_PORT}"
fi
- if [ "${ISCSI_USERNAME}" ]
+ if [ -n "${ISCSI_USERNAME}" ]
then
ADDITIONAL="${ADDITIONAL} -u ${ISCSI_USERNAME}"
fi
- if [ "${ISCSI_PASSWORD}" ]
+ if [ -n "${ISCSI_PASSWORD}" ]
then
ADDITIONAL="${ADDITIONAL} -w ${ISCSI_PASSWORD}"
fi
- if [ "${ISCSI_USERNAME_IN}" ]
+ if [ -n "${ISCSI_USERNAME_IN}" ]
then
ADDITIONAL="${ADDITIONAL} -U ${ISCSI_USERNAME_IN}"
fi
- if [ "${ISCSI_PASSWORD_IN}" ]
+ if [ -n "${ISCSI_PASSWORD_IN}" ]
then
ADDITIONAL="${ADDITIONAL} -W ${ISCSI_PASSWORD_IN}"
fi
- if [ "${ISCSI_DEBUG}" ]
+ if [ -n "${ISCSI_DEBUG}" ]
then
ADDITIONAL="${ADDITIONAL} -d ${ISCSI_DEBUG}"
fi
- iscsistart -i "${ISCSI_INITIATORNAME}" -t "${ISCSI_TARGET}" -a "${ISCSI_ADDRESS}" ${ADDITIONAL}
+ iscsi_cmd="run iscsistart -i '${ISCSI_INITIATORNAME}' -t '${ISCSI_TARGET}' -a '${ISCSI_ADDRESS}' ${ADDITIONAL} 2>&1"
+ is_log_enabled && iscsi_cmd="${iscsi_cmd} | tee -a '${GK_INIT_LOG}'"
+ is_quiet && iscsi_cmd="${iscsi_cmd} 1>/dev/null"
+
+ eval "${iscsi_cmd}"
+ if [ $? -ne 0 ]
+ then
+ bad_msg "Activation of iSCSI via cmdline failed!"
+ else
+ udevsettle
+ fi
fi
}
@@ -1278,38 +1879,79 @@ startiscsi() {
# It is either the root or a swap, other devices are supported in the scripts provided with sys-fs/cryptsetup
# $1 - root/swap
openLUKS() {
- # please use 'tr' and this line, or remove it
- # eval local TYPE=`uppercase $1`
+ if ! hash cryptsetup >/dev/null 2>&1
+ then
+ bad_msg "cryptsetup program is missing. Was initramfs built without --luks parameter?"
+ exit 1
+ fi
- case $1 in
+ case ${1} in
root)
local TYPE=ROOT
;;
swap)
local TYPE=SWAP
;;
+ *)
+ bad_msg "OpenLUKS(): Unknown type '${1}' specified!"
+ exit 1
+ ;;
esac
- eval local LUKS_DEVICE='"${CRYPT_'${TYPE}'}"' LUKS_NAME="$1" LUKS_KEY='"${CRYPT_'${TYPE}'_KEY}"' LUKS_KEYDEV='"${CRYPT_'${TYPE}'_KEYDEV}"' LUKS_TRIM='"${CRYPT_'${TYPE}'_TRIM}"'
- local DEV_ERROR=0 KEY_ERROR=0 KEYDEV_ERROR=0
- local mntkey="/mnt/key/" cryptsetup_options='' flag_opened="/${TYPE}.decrypted"
+ local LUKS_NAME="${1}"
+ eval local LUKS_DEVICE='"${CRYPT_'${TYPE}'}"'
+ eval local LUKS_HEADER='"${CRYPT_'${TYPE}'_HEADER}"'
+ eval local LUKS_HEADERDEV='"${CRYPT_'${TYPE}'_HEADERDEV}"'
+ eval local LUKS_HEADERDEV_FSTYPE='"${CRYPT_'${TYPE}'_HEADERDEV_FSTYPE}"'
+ eval local LUKS_KEY='"${CRYPT_'${TYPE}'_KEY}"'
+ eval local LUKS_KEYDEV='"${CRYPT_'${TYPE}'_KEYDEV}"'
+ eval local LUKS_KEYDEV_FSTYPE='"${CRYPT_'${TYPE}'_KEYDEV_FSTYPE}"'
+ eval local OPENED_LOCKFILE='"${CRYPT_'${TYPE}'_OPENED_LOCKFILE}"'
+ local ASK_PASS=0
+ local DEV_ERROR=0
+ local HEADER_ERROR=0 HEADERDEV_ERROR=0
+ local KEY_ERROR=0 KEYDEV_ERROR=0
+ local mntheader="/mnt/header/" mntkey="/mnt/key/" crypt_filter_ret=
+
+ if [ -z "${LUKS_DEVICE}" ]
+ then
+ bad_msg "'crypt_${1}' kernel command-line argument is not set!"
+ exit 1
+ fi
- [ ! -e /sbin/cryptsetup ] && bad_msg "The ramdisk does not support LUKS" && exit 1
- while [ 1 ]
+ while true
do
+ # Reset cryptsetup_options on each iteration
+ eval local cryptsetup_options='"${CRYPT_'${TYPE}'_OPTIONS}"'
+ cryptsetup_options="$(trim "${cryptsetup_options}")"
+
local gpg_cmd=""
- if [ -e ${flag_opened} ]
+ if [ -e "${OPENED_LOCKFILE}" ]
then
good_msg "The LUKS device ${LUKS_DEVICE} meanwhile was opened by someone else."
break
# if crypt_silent=1 and some error occurs, enter shell quietly
- elif [ \( ${CRYPT_SILENT} -eq 1 \) -a \( \( \( ${DEV_ERROR} -eq 1 \) -o \( ${KEY_ERROR} -eq 1 \) \) -o \( ${KEYDEV_ERROR} -eq 1 \) \) ]
+ elif [ \( ${CRYPT_SILENT} -eq 1 \) -a \( \( ${DEV_ERROR} -eq 1 \) \) ]
+ then
+ run_emergency_shell
+ elif [ \( ${CRYPT_SILENT} -eq 1 \) -a \( \( \( ${HEADER_ERROR} -eq 1 \) \) -o \( ${HEADERDEV_ERROR} -eq 1 \) \) ]
+ then
+ run_emergency_shell
+ elif [ \( ${CRYPT_SILENT} -eq 1 \) -a \( \( \( ${KEY_ERROR} -eq 1 \) \) -o \( ${KEYDEV_ERROR} -eq 1 \) \) ]
then
- run_shell
+ run_emergency_shell
elif [ ${DEV_ERROR} -eq 1 ]
then
prompt_user "LUKS_DEVICE" "${LUKS_NAME}"
DEV_ERROR=0
+ elif [ ${HEADER_ERROR} -eq 1 ]
+ then
+ prompt_user "LUKS_HEADER" "${LUKS_NAME} header"
+ HEADER_ERROR=0
+ elif [ ${HEADERDEV_ERROR} -eq 1 ]
+ then
+ prompt_user "LUKS_HEADERDEV" "${LUKS_NAME} header device"
+ HEADERDEV_ERROR=0
elif [ ${KEY_ERROR} -eq 1 ]
then
prompt_user "LUKS_KEY" "${LUKS_NAME} key"
@@ -1320,148 +1962,675 @@ openLUKS() {
KEYDEV_ERROR=0
else
LUKS_DEVICE=$(find_real_device "${LUKS_DEVICE}")
-
- setup_md_device ${LUKS_DEVICE}
- cryptsetup isLuks ${LUKS_DEVICE}
- if [ $? -ne 0 ]
+ if [ -z "${LUKS_DEVICE}" ]
then
- bad_msg "The LUKS device ${LUKS_DEVICE} does not contain a LUKS header" ${CRYPT_SILENT}
+ bad_msg "Failed to find LUKS device. If crypt_${1} kernel command-line argument is correct you are probably missing kernel support for your storage!" ${CRYPT_SILENT}
DEV_ERROR=1
continue
- else
- # Handle keys
- if [ "x${LUKS_TRIM}" = "xyes" ]
- then
- good_msg "Enabling TRIM support for ${LUKS_NAME}." ${CRYPT_SILENT}
- cryptsetup_options="${cryptsetup_options} --allow-discards"
- fi
+ fi
- if [ -n "${LUKS_KEY}" ]
+ # Handle headers
+ if [ -n "${LUKS_HEADER}" ]
+ then
+ local REAL_LUKS_HEADERDEV="${LUKS_HEADERDEV}"
+ if [ ! -e "${mntheader}${LUKS_HEADER}" ]
then
- local REAL_LUKS_KEYDEV="${LUKS_KEYDEV}"
- if [ ! -e "${mntkey}${LUKS_KEY}" ]
+ REAL_LUKS_HEADERDEV=$(find_real_device "${LUKS_HEADERDEV}")
+ if [ -b "${REAL_LUKS_HEADERDEV}" ]
then
- REAL_LUKS_KEYDEV=$(find_real_device "${LUKS_KEYDEV}")
- if [ -b "${REAL_LUKS_KEYDEV}" ]
- then good_msg "Using key device ${REAL_LUKS_KEYDEV}." ${CRYPT_SILENT}
- else
- good_msg "Please insert removable device ${LUKS_KEYDEV} for ${LUKS_NAME}" ${CRYPT_SILENT}
- # abort after 10 secs
- local count=10
- while [ ${count} -gt 0 ]
- do
- count=$((count-1))
- sleep 1
- REAL_LUKS_KEYDEV=$(find_real_device "${LUKS_KEYDEV}")
- if [ -b "${REAL_LUKS_KEYDEV}" ]
- then
- good_msg "Removable device ${REAL_LUKS_KEYDEV} detected." ${CRYPT_SILENT}
- break
- fi
- done
- if [ ! -b "${REAL_LUKS_KEYDEV}" ]
+ good_msg "Using header device ${REAL_LUKS_HEADERDEV}." ${CRYPT_SILENT}
+ else
+ good_msg "Please insert removable device ${LUKS_HEADERDEV} for ${LUKS_NAME}" ${CRYPT_SILENT}
+ # abort after 10 secs
+ local count=10
+ while [ ${count} -gt 0 ]
+ do
+ count=$((count-1))
+ sleep 1
+ REAL_LUKS_HEADERDEV=$(find_real_device "${LUKS_HEADERDEV}")
+ if [ -b "${REAL_LUKS_HEADERDEV}" ]
then
- eval CRYPT_${TYPE}_KEY=${LUKS_KEY}
- bootstrapKey ${TYPE}
- eval LUKS_KEYDEV='"${CRYPT_'${TYPE}'_KEYDEV}"'
- REAL_LUKS_KEYDEV=$(find_real_device "${LUKS_KEYDEV}")
- if [ ! -b "${REAL_LUKS_KEYDEV}" ]; then
- KEYDEV_ERROR=1
- bad_msg "Removable device ${LUKS_KEYDEV} not found." ${CRYPT_SILENT}
- continue
- fi
- # continue otherwise will mount keydev which is mounted by bootstrap
+ good_msg "Removable device ${REAL_LUKS_HEADERDEV} detected." ${CRYPT_SILENT}
+ break
+ fi
+ done
+ if [ ! -b "${REAL_LUKS_HEADERDEV}" ]
+ then
+ eval CRYPT_${TYPE}_HEADER=${LUKS_HEADER}
+ bootstrapHeader ${TYPE}
+ eval LUKS_HEADERDEV='"${CRYPT_'${TYPE}'_HEADERDEV}"'
+ REAL_LUKS_HEADERDEV=$(find_real_device "${LUKS_HEADERDEV}")
+ if [ ! -b "${REAL_LUKS_HEADERDEV}" ]
+ then
+ HEADERDEV_ERROR=1
+ bad_msg "Removable device ${LUKS_HEADERDEV} not found." ${CRYPT_SILENT}
continue
fi
+ # continue otherwise will mount headerdev which is mounted by bootstrap
+ continue
fi
- # At this point a device was recognized, now let's see if the key is there
- [ ! -d "$mntkey" ] && mkdir -p ${mntkey} 2>/dev/null >/dev/null
+ fi
+
+ # At this point a device was recognized, now let's see if the header is there
+ [ ! -d "${mntheader}" ] && mkdir -p "${mntheader}" >/dev/null 2>&1
+
+ # determine fs -- 'auto' will not trigger module loading!
+ LUKS_HEADERDEV_FSTYPE=$(determine_fs "${REAL_LUKS_HEADERDEV}" "${LUKS_HEADERDEV_FSTYPE}")
- mount -n -o ro ${REAL_LUKS_KEYDEV} ${mntkey} >/dev/null 2>/dev/null
- if [ "$?" != '0' ]
+ if ! run mount -n -t ${LUKS_HEADERDEV_FSTYPE} -o ro ${REAL_LUKS_HEADERDEV} ${mntheader} >/dev/null 2>&1
+ then
+ HEADERDEV_ERROR=1
+ bad_msg "Mounting of device ${REAL_LUKS_HEADERDEV} failed." ${CRYPT_SILENT}
+ continue
+ fi
+
+ good_msg "Removable device ${REAL_LUKS_HEADERDEV} mounted." ${CRYPT_SILENT}
+ sleep 2
+
+ # headerfile exists?
+ if [ ! -e "${mntheader}${LUKS_HEADER}" ]
+ then
+ run umount -n "${mntheader}" >/dev/null 2>&1
+ HEADER_ERROR=1
+ HEADERDEV_ERROR=1
+ bad_msg "Header {LUKS_HEADER} on device ${REAL_LUKS_HEADERDEV} not found." ${CRYPT_SILENT}
+ continue
+ fi
+ fi
+
+ if ! run cryptsetup isLuks ${LUKS_DEVICE} --header ${mntheader}${LUKS_HEADER}
+ then
+ bad_msg "The LUKS device ${LUKS_DEVICE} does not contain a LUKS header" ${CRYPT_SILENT}
+ DEV_ERROR=1
+ continue
+ fi
+
+ # At this point a candidate header exists (either mounted before or not)
+ good_msg "${LUKS_HEADER} on device ${REAL_LUKS_HEADERDEV} found" ${CRYPT_SILENT}
+
+ cryptsetup_options="${cryptsetup_options} --header ${mntheader}${LUKS_HEADER}"
+ elif ! run cryptsetup isLuks ${LUKS_DEVICE}
+ then
+ bad_msg "The LUKS device ${LUKS_DEVICE} does not contain a LUKS header" ${CRYPT_SILENT}
+ DEV_ERROR=1
+ continue
+ fi
+
+ # Handle keys
+ if [ -n "${LUKS_KEY}" ]
+ then
+ local REAL_LUKS_KEYDEV="${LUKS_KEYDEV}"
+ if [ ! -e "${mntkey}${LUKS_KEY}" ]
+ then
+ REAL_LUKS_KEYDEV=$(find_real_device "${LUKS_KEYDEV}")
+ if [ -b "${REAL_LUKS_KEYDEV}" ]
+ then
+ good_msg "Using key device ${REAL_LUKS_KEYDEV}." ${CRYPT_SILENT}
+ else
+ good_msg "Please insert removable device ${LUKS_KEYDEV} for ${LUKS_NAME}" ${CRYPT_SILENT}
+ # abort after 10 secs
+ local count=10
+ while [ ${count} -gt 0 ]
+ do
+ count=$((count-1))
+ sleep 1
+ REAL_LUKS_KEYDEV=$(find_real_device "${LUKS_KEYDEV}")
+ if [ -b "${REAL_LUKS_KEYDEV}" ]
+ then
+ good_msg "Removable device ${REAL_LUKS_KEYDEV} detected." ${CRYPT_SILENT}
+ break
+ fi
+ done
+ if [ ! -b "${REAL_LUKS_KEYDEV}" ]
then
- KEYDEV_ERROR=1
- bad_msg "Mounting of device ${REAL_LUKS_KEYDEV} failed." ${CRYPT_SILENT}
- continue
- else
- good_msg "Removable device ${REAL_LUKS_KEYDEV} mounted." ${CRYPT_SILENT}
- sleep 2
- # keyfile exists?
- if [ ! -e "${mntkey}${LUKS_KEY}" ]; then
- umount -n ${mntkey} 2>/dev/null >/dev/null
- KEY_ERROR=1
+ eval CRYPT_${TYPE}_KEY=${LUKS_KEY}
+ bootstrapKey ${TYPE}
+ eval LUKS_KEYDEV='"${CRYPT_'${TYPE}'_KEYDEV}"'
+ REAL_LUKS_KEYDEV=$(find_real_device "${LUKS_KEYDEV}")
+ if [ ! -b "${REAL_LUKS_KEYDEV}" ]
+ then
KEYDEV_ERROR=1
- bad_msg "Key {LUKS_KEY} on device ${REAL_LUKS_KEYDEV} not found." ${CRYPT_SILENT}
+ bad_msg "Removable device ${LUKS_KEYDEV} not found." ${CRYPT_SILENT}
continue
fi
+ # continue otherwise will mount keydev which is mounted by bootstrap
+ continue
fi
fi
- # At this point a candidate key exists (either mounted before or not)
- good_msg "${LUKS_KEY} on device ${REAL_LUKS_KEYDEV} found" ${CRYPT_SILENT}
- if [ "$(echo ${LUKS_KEY} | grep -o '.gpg$')" = ".gpg" ] && [ -x /sbin/gpg ] ; then
- [ -e /dev/tty ] && mv /dev/tty /dev/tty.org
- mknod /dev/tty c 5 1
- cryptsetup_options="${cryptsetup_options} -d -"
- gpg_cmd="/sbin/gpg --logger-file /dev/null --quiet --decrypt ${mntkey}${LUKS_KEY} |"
+
+ # At this point a device was recognized, now let's see if the key is there
+ [ ! -d "${mntkey}" ] && mkdir -p "${mntkey}" >/dev/null 2>&1
+
+ # determine fs -- 'auto' will not trigger module loading!
+ LUKS_KEYDEV_FSTYPE=$(determine_fs "${REAL_LUKS_KEYDEV}" "${LUKS_KEYDEV_FSTYPE}")
+
+ if ! run mount -n -t ${LUKS_KEYDEV_FSTYPE} -o ro ${REAL_LUKS_KEYDEV} ${mntkey} >/dev/null 2>&1
+ then
+ KEYDEV_ERROR=1
+ bad_msg "Mounting of device ${REAL_LUKS_KEYDEV} failed." ${CRYPT_SILENT}
+ continue
+ fi
+
+ good_msg "Removable device ${REAL_LUKS_KEYDEV} mounted." ${CRYPT_SILENT}
+ sleep 2
+
+ # keyfile exists?
+ if [ ! -e "${mntkey}${LUKS_KEY}" ]
+ then
+ run umount -n "${mntkey}" >/dev/null 2>&1
+ KEY_ERROR=1
+ KEYDEV_ERROR=1
+ bad_msg "Key {LUKS_KEY} on device ${REAL_LUKS_KEYDEV} not found." ${CRYPT_SILENT}
+ continue
+ fi
+ fi
+
+ # At this point a candidate key exists (either mounted before or not)
+ good_msg "${LUKS_KEY} on device ${REAL_LUKS_KEYDEV} found" ${CRYPT_SILENT}
+
+ if [ "$(echo ${LUKS_KEY} | grep -o '.gpg$')" = ".gpg" ]
+ then
+ if ! hash gpg >/dev/null 2>&1
+ then
+ bad_msg "GPG-encrypted key file provided but gpg program is missing. Was initramfs built without --gpg parameter?"
+ bad_msg "Falling back to passphrase usage!"
else
- cryptsetup_options="${cryptsetup_options} -d ${mntkey}${LUKS_KEY}"
+ [ -e /dev/tty ] && run mv /dev/tty /dev/tty.org
+ run mknod /dev/tty c 5 1
+ ASK_PASS=1
+ cryptsetup_options="${cryptsetup_options} -d -"
+ gpg_cmd="gpg --logger-file /dev/null --quiet"
+ # plymouth password entry is passed through STDIN, requiring '--passphrase-fd 0 --batch'
+ # for newer gpg versions (>=2.1) '--pinentry-mode loopback' may also be required for the above
+ # '--no-tty' is included to prevent interruption of plymouth by any gpg output
+ if [ "${PLYMOUTH}" = '1' -a "${CRYPT_SILENT}" != '1' ]
+ then
+ gpg_cmd="${gpg_cmd} --passphrase-fd 0 --batch --no-tty --decrypt ${mntkey}${LUKS_KEY} | "
+ else
+ gpg_cmd="${gpg_cmd} --decrypt ${mntkey}${LUKS_KEY} | "
+ fi
fi
+ else
+ cryptsetup_options="${cryptsetup_options} -d ${mntkey}${LUKS_KEY}"
fi
- # At this point, keyfile or not, we're ready!
- crypt_filter "${gpg_cmd}cryptsetup ${cryptsetup_options} luksOpen ${LUKS_DEVICE} ${LUKS_NAME}"
- crypt_filter_ret=$?
+ else
+ # no keyfile defined, password is required
+ ASK_PASS=1
+ fi
+
+ if [ -n "${cryptsetup_options}" ]
+ then
+ good_msg "Using the following cryptsetup options for ${LUKS_NAME}: ${cryptsetup_options}" ${CRYPT_SILENT}
+ fi
+
+ # At this point, {header,key}file or not, we're ready!
+ crypt_filter "${gpg_cmd}cryptsetup ${cryptsetup_options} luksOpen ${LUKS_DEVICE} ${LUKS_NAME}" "${ASK_PASS}"
+ crypt_filter_ret=$?
+
+ [ -e /dev/tty.org ] \
+ && run rm -f /dev/tty \
+ && run mv /dev/tty.org /dev/tty
+
+ if [ ${crypt_filter_ret} -eq 0 ]
+ then
+ run touch "${OPENED_LOCKFILE}"
+ good_msg "LUKS device ${LUKS_DEVICE} opened" ${CRYPT_SILENT}
+ break
+ elif [ ! -e "${OPENED_LOCKFILE}" ]
+ then
+ bad_msg "Failed to open LUKS device ${LUKS_DEVICE}" ${CRYPT_SILENT}
+ DEV_ERROR=1
+ HEADER_ERROR=1
+ HEADERDEV_ERROR=1
+ KEY_ERROR=1
+ KEYDEV_ERROR=1
+ fi
+ fi
+ done
+
+ udevsettle
+
+ if run mountpoint "${mntheader}" >/dev/null 2>&1
+ then
+ run umount "${mntheader}" >/dev/null 2>&1
+ fi
+
+ if run mountpoint "${mntkey}" >/dev/null 2>&1
+ then
+ run umount "${mntkey}" >/dev/null 2>&1
+ fi
+
+ [ -d "${mntheader}" ] && run rmdir -p "${mntheader}" >/dev/null 2>&1
+ [ -d "${mntkey}" ] && run rmdir -p "${mntkey}" >/dev/null 2>&1
+}
+
+keyctl_keyadd() {
+ if [ -n "${KEYCTL_KEYDESC}" ]
+ then
+ if [ ! -x /bin/keyctl ]
+ then
+ bad_msg "keyctl program is missing. Was initramfs built without --keyctl parameter?"
+ exit 1
+ fi
+
+ # not using read to avoid secrets being left in memory
+ stty -echo
+ echo -n "Please type the key '${KEYCTL_KEYDESC}' for the user keyring then press Ctrl-D twice: "
+ KEYCTL_KEYID=`keyctl padd user "${KEYCTL_KEYDESC}" @u`
+ echo
+ stty echo
+
+ if [ -n "${KEYCTL_KEYID}" -a -n "${KEYCTL_KEYTIMEOUT}" ]
+ then
+ keyctl timeout "${KEYCTL_KEYID}" "${KEYCTL_KEYTIMEOUT}"
+ fi
+ fi
+}
+
+keyctl_keyremove() {
+ if [ -n "${KEYCTL_KEYID}" -a -z "${KEYCTL_KEYKEEP}" ]
+ then
+ if [ ! -x /bin/keyctl ]
+ then
+ bad_msg "keyctl program is missing. Was initramfs built without --keyctl parameter?"
+ exit 1
+ fi
+
+ keyctl revoke "${KEYCTL_KEYID}"
+ keyctl unlink "${KEYCTL_KEYID}" >/dev/null
+
+ # trust but verify
+ if keyctl show "${KEYCTL_KEYID}" >/dev/null 2>&1
+ then
+ # better reboot than leave the user passphrase accidentally exposed
+ bad_msg "unable to remove the newly added key from keyring, rebooting in 5 seconds for security"
+ sleep 5
+ reboot -f
+ fi
+
+ KEYCTL_KEYID=
+ fi
+}
+
+iface_name() {
+ local ifname="${1}"
+
+ if echo "${ifname}" | grep -qE ':|-'
+ then
+ local interface=
+ local mac="$(echo "${ifname}" | sed 'y/ABCDEF-/abcdef:/')"
- touch ${flag_opened}
+ for interface in /sys/class/net/*
+ do
+ [ -e ${interface}/address ] || continue
+
+ if [ "$(cat ${interface}/address 2>/dev/null)" = "${mac}" ]
+ then
+ echo ${interface##*/}
+ return
+ fi
+ done
+ else
+ echo "${ifname}"
+ fi
+}
- [ -e /dev/tty.org ] \
- && rm -f /dev/tty \
- && mv /dev/tty.org /dev/tty
+start_network() {
+ good_msg "Starting network ..."
- if [ ${crypt_filter_ret} -eq 0 ]
+ if [ "${GK_HW_USE_MODULES_LOAD}" = '1' ]
+ then
+ # Load network modules only when we need them to avoid possible
+ # firmware problems for people not using network that early
+ modules_scan net
+ udevsettle
+ fi
+
+ # At least gk.net.iface can only be processed after sysfs was
+ # mounted.
+ local x=
+ for x in ${CMDLINE}
+ do
+ case "${x}" in
+ ip=*)
+ IP=${x#*=}
+ ;;
+ gk.net.dhcp.retries=*)
+ local tmp_n_retries=${x#*=}
+ if is_int "${tmp_n_retries}"
then
- good_msg "LUKS device ${LUKS_DEVICE} opened" ${CRYPT_SILENT}
- break
+ GK_NET_DHCP_RETRIES=${tmp_n_retries}
else
- bad_msg "Failed to open LUKS device ${LUKS_DEVICE}" ${CRYPT_SILENT}
- DEV_ERROR=1
- KEY_ERROR=1
- KEYDEV_ERROR=1
+ warn_msg "'${x}' does not look like a valid number -- will keep using default value ${GK_NET_DHCP_RETRIES}!"
+ fi
+ unset tmp_n_retries
+ ;;
+ gk.net.gw=*)
+ GK_NET_GW=${x#*=}
+ ;;
+ gk.net.iface=*)
+ GK_NET_IFACE=${x#*=}
+ ;;
+ gk.net.routes=*)
+ GK_NET_ROUTES=${x#*=}
+ ;;
+ gk.net.timeout.interface=*)
+ local tmp_interface_timeout=${x#*=}
+ if is_int "${tmp_interface_timeout}"
+ then
+ GK_NET_TIMEOUT_INTERFACE=${tmp_interface_timeout}
+ else
+ warn_msg "'${x}' does not look like a valid number -- will keep using default value ${GK_NET_TIMEOUT_INTERFACE}!"
fi
+ unset tmp_interface_timeout
+ ;;
+ gk.net.timeout.dad=*)
+ local tmp_dad_timeout=${x#*=}
+ if is_int "${tmp_dad_timeout}"
+ then
+ GK_NET_TIMEOUT_DAD=${tmp_dad_timeout}
+ else
+ warn_msg "'${x}' does not look like a valid number -- will keep using default value ${GK_NET_TIMEOUT_DAD}!"
+ fi
+ unset tmp_dad_timeout
+ ;;
+ gk.net.timeout.deconfiguration=*)
+ local tmp_deconfiguration_timeout=${x#*=}
+ if is_int "${tmp_deconfiguration_timeout}"
+ then
+ GK_NET_TIMEOUT_DECONFIGURATION=${tmp_deconfiguration_timeout}
+ else
+ warn_msg "'${x}' does not look like a valid number -- will keep using default value ${GK_NET_TIMEOUT_DECONFIGURATION}!"
+ fi
+ unset tmp_deconfiguration_timeout
+ ;;
+ gk.net.timeout.dhcp=*)
+ local tmp_dhcp_timeout=${x#*=}
+ if is_int "${tmp_dhcp_timeout}"
+ then
+ GK_NET_TIMEOUT_DHCP=${tmp_dhcp_timeout}
+ else
+ warn_msg "'${x}' does not look like a valid number -- will keep using default value ${GK_NET_TIMEOUT_DHCP}!"
+ fi
+ unset tmp_dhcp_timeout
+ ;;
+ esac
+ done
+
+ local interface_identifier=device
+ if echo "${GK_NET_IFACE}" | grep -qE ':|-'
+ then
+ interface_identifier=mac
+ good_msg_n "Waiting for interface with MAC address ${GK_NET_IFACE} ..."
+ else
+ good_msg_n "Waiting for interface ${GK_NET_IFACE} ..."
+ fi
+
+ local tmp_interface=
+ local have_interface=0
+ local interface_time_waited=0
+ local interface_timeout_100msec_modulo=
+ local interface_timeout && let interface_timeout=$(date +%s)+1
+ [ -n "${GK_NET_TIMEOUT_INTERFACE}" -a "${GK_NET_TIMEOUT_INTERFACE}" -gt 0 ] && let interface_timeout=${interface_timeout}+${GK_NET_TIMEOUT_INTERFACE}-1
+
+ while [ "${have_interface}" != '1' -a $(date +%s) -le ${interface_timeout} ]
+ do
+ tmp_interface=$(iface_name "${GK_NET_IFACE}")
+ if [ -n "${tmp_interface}" ]
+ then
+ # We got at least something to probe
+ if [ -d "/sys/class/net/${tmp_interface}" ]
+ then
+ GK_NET_IFACE="${tmp_interface}"
+ have_interface=1
+ break
+ fi
+ fi
+
+ if [ "${have_interface}" != '1' ]
+ then
+ let interface_time_waited=${interface_time_waited}+1
+ sleep 0.1s
+
+ let interface_timeout_100msec_modulo=${interface_time_waited}%10
+ if [ ${interface_timeout_100msec_modulo} = 0 ]
+ then
+ is_quiet || printf "."
fi
fi
done
- umount ${mntkey} 2>/dev/null >/dev/null
- rmdir -p ${mntkey} 2>/dev/null >/dev/null
+
+ is_quiet || echo
+
+ if [ "${have_interface}" != '1' ]
+ then
+ # Timeout!
+ if [ "${interface_identifier}" = 'mac' ]
+ then
+ bad_msg "Interface with MAC address ${GK_NET_IFACE} not found!"
+ else
+ bad_msg "Interface ${GK_NET_IFACE} not found!"
+ fi
+
+ warn_msg "Will not try to start network ..."
+ return 1
+ elif [ "${interface_identifier}" = 'mac' ]
+ then
+ good_msg "Interface detected as ${GK_NET_IFACE}"
+ fi
+
+ if [ -z "${IP}" -o "${IP}" = 'dhcp' ]
+ then
+ if is_interface_up
+ then
+ # CONFIG_IP_PNP_DHCP and ip=dhcp probably caused kernel to bring up
+ # network for us. Really no need re-run dhcp...
+ warn_msg "Interface ${GK_NET_IFACE} is already up."
+ warn_msg "Skipping network setup; Will use existing network configuration ..."
+ run touch "${GK_NET_LOCKFILE}"
+ return 0
+ fi
+
+ local udhcpc_cmd="run udhcpc -i '${GK_NET_IFACE}' -n -t ${GK_NET_DHCP_RETRIES} -T ${GK_NET_TIMEOUT_DHCP} -R -p '${GK_NET_DHCP_PIDFILE}' 2>&1"
+ is_log_enabled && udhcpc_cmd="${udhcpc_cmd} | tee -a '${GK_INIT_LOG}'"
+
+ good_msg "Bringing up interface ${GK_NET_IFACE} using dhcp ..."
+ eval "${udhcpc_cmd}"
+ if [ $? -ne 0 ]
+ then
+ bad_msg "Failed to start udhcpc for interface ${GK_NET_IFACE}!"
+ return 1
+ fi
+ elif echo "${IP}" | grep -qE ':|,'
+ then
+ if is_interface_up
+ then
+ # CONFIG_IP_PNP probably caused kernel to bring up
+ # network for us. Due to presence of ":" or ","
+ # we can assume an advanced network configuration
+ # which we cannot reproduce...
+ warn_msg "Interface ${GK_NET_IFACE} is already up."
+ warn_msg "Skipping network setup; Will use existing network configuration ..."
+ run touch "${GK_NET_LOCKFILE}"
+ return 0
+ fi
+
+ warn_msg "Found advanced network configuration (check ip= kernel command-line argument)!"
+ warn_msg "Assuming user want to use kernel's IP PNP; Will not try to start network ..."
+ return 1
+ else
+ if is_interface_up
+ then
+ # At this point we don't know if kernel has brought up network the
+ # way we wanted. It's safer to restart interface and do it on our own...
+ warn_msg "Interface ${GK_NET_IFACE} is already up and therefore in an unknown state!"
+ warn_msg "Will now restart interface ${GK_NET_IFACE} to get into a known state ..."
+ kill_network
+ fi
+
+ good_msg "Bringing up interface ${GK_NET_IFACE} ..."
+ run ip link set "${GK_NET_IFACE}" up
+
+ good_msg "Setting address '${IP}' on ${GK_NET_IFACE} ..."
+ run ip addr add "${IP}" dev "${GK_NET_IFACE}"
+
+ if [ -n "${GK_NET_ROUTES}" ]
+ then
+ local route=
+ for route in ${GK_NET_ROUTES}
+ do
+ good_msg "Adding additional route '${route}' on ${GK_NET_IFACE} ..."
+ run ip route add "${route}" dev "${GK_NET_IFACE}"
+ done
+ fi
+
+ if [ -n "${GK_NET_GW}" ]
+ then
+ good_msg "Adding default route via '${GK_NET_GW}' on ${GK_NET_IFACE} ..."
+ run ip route add default via "${GK_NET_GW}" dev "${GK_NET_IFACE}"
+ fi
+ fi
+
+ run touch "${GK_NET_LOCKFILE}"
+}
+
+kill_network() {
+ if [ -s "${GK_NET_DHCP_PIDFILE}" ]
+ then
+ good_msg "Stopping udhcpc ..."
+ run kill $(cat "${GK_NET_DHCP_PIDFILE}")
+ fi
+
+ if [ ! -d "/sys/class/net/${GK_NET_IFACE}" ]
+ then
+ warn_msg "Interface ${GK_NET_IFACE} not found. Already down?"
+ return
+ fi
+
+ # If we are too quick and interface is still configuring IPv6
+ # waiting for DAD to complete due to received IPv6 RA, we have to
+ # wait.
+ # If we don't wait, ip command will bring down interface for a
+ # moment but it will return to up state once DAD is completed which
+ # will cause trouble with real system which is expecting an unused
+ # interface.
+ if ipv6_tentative
+ then
+ good_msg_n "Waiting for tentative IPv6 addresses to complete DAD ..."
+
+ local dad_timeout=10
+ while [ ${dad_timeout} -gt 0 ]
+ do
+ ipv6_tentative || break
+ sleep 1
+ : $(( dad_timeout -= 1 ))
+ is_quiet || printf "."
+ done
+
+ is_quiet || echo
+
+ if [ ${dad_timeout} -le 0 ]
+ then
+ bad_msg "DAD still not completed after ${GK_NET_TIMEOUT_DAD} seconds!"
+ fi
+ fi
+
+ good_msg_n "Bringing down interface ${GK_NET_IFACE} ..."
+
+ local deconfiguration_timeout=${GK_NET_TIMEOUT_DECONFIGURATION}
+ while [ ${deconfiguration_timeout} -gt 0 ]
+ do
+ run ip addr flush dev "${GK_NET_IFACE}"
+ run ip route flush dev "${GK_NET_IFACE}"
+ run ip link set "${GK_NET_IFACE}" down
+ if grep -q "down" "/sys/class/net/${GK_NET_IFACE}/operstate" 2>/dev/null
+ then
+ break
+ fi
+ sleep 1
+ : $(( deconfiguration_timeout -= 1 ))
+ is_quiet || printf "."
+ done
+
+ is_quiet || echo
+
+ if [ ${deconfiguration_timeout} -le 0 ]
+ then
+ bad_msg "Failed to bring down interface ${GK_NET_IFACE} within ${GK_NET_TIMEOUT_DECONFIGURATION} seconds!"
+ return
+ fi
+
+ [ -f "${GK_NET_LOCKFILE}" ] && run rm "${GK_NET_LOCKFILE}"
}
-startLUKS() {
+is_interface_up() {
+ if ip link show dev "${GK_NET_IFACE}" 2>/dev/null | grep -q ',UP,'
+ then
+ return 0
+ else
+ return 1
+ fi
+}
- # if key is set but neither ssh enabled or key device is given, find
- # the key device
+ipv6_tentative() {
+ if ip -family inet6 addr show dev "${GK_NET_IFACE}" 2>/dev/null | grep -q " tentative "
+ then
+ return 0
+ else
+ return 1
+ fi
+}
- if [ -e "/usr/sbin/dropbear" ]; then
- startdropbear
+start_LUKS_root() {
+ # if key/header is set but neither ssh enabled or key device is given, find
+ # the key/header device
+
+ if (
+ [ -n "${CRYPT_ROOT_KEY}" -a -z "${CRYPT_ROOT_KEYDEV}" ] ||
+ [ -n "${CRYPT_ROOT_HEADER}" -a -z "${CRYPT_ROOT_HEADERDEV}" ]
+ )
+ then
+ sleep 6
fi
- [ -n "${CRYPT_ROOT_KEY}" ] && [ -z "${CRYPT_ROOT_KEYDEV}" ] \
- && sleep 6 && bootstrapKey "ROOT"
+ [ -n "${CRYPT_ROOT_KEY}" -a -z "${CRYPT_ROOT_KEYDEV}" ] \
+ && bootstrapKey "ROOT"
- if [ -n "${CRYPT_ROOT}" ]; then
+ [ -n "${CRYPT_ROOT_HEADER}" -a -z "${CRYPT_ROOT_HEADERDEV}" ] \
+ && bootstrapHeader "ROOT"
+
+ if [ -n "${CRYPT_ROOT}" ]
+ then
openLUKS "root"
if [ -n "${REAL_ROOT}" ]
then
# Rescan volumes
- startVolumes
+ start_volumes
else
REAL_ROOT="/dev/mapper/root"
fi
fi
+}
+start_LUKS_swap() {
# same for swap, but no need to sleep if root was unencrypted
- [ -n "${CRYPT_SWAP_KEY}" ] && [ -z "${CRYPT_SWAP_KEYDEV}" ] \
- && { [ -z "${CRYPT_ROOT}" ] && sleep 6; bootstrapKey "SWAP"; }
- if [ -n "${CRYPT_SWAP}" ]; then
+ if (
+ [ -n "${CRYPT_SWAP_KEY}" -a -z "${CRYPT_SWAP_KEYDEV}" ] ||
+ [ -n "${CRYPT_SWAP_HEADER}" -a -z "${CRYPT_SWAP_HEADERDEV}" ]
+ )
+ then
+ [ -z "${CRYPT_ROOT}" ] && sleep 6
+ fi
+
+ [ -n "${CRYPT_SWAP_KEY}" -a -z "${CRYPT_SWAP_KEYDEV}" ] \
+ && bootstrapKey "SWAP"
+
+ [ -n "${CRYPT_SWAP_HEADER}" -a -z "${CRYPT_SWAP_HEADERDEV}" ] \
+ && bootstrapHeader "SWAP"
+
+ if [ -n "${CRYPT_SWAP}" ]
+ then
openLUKS "swap"
if [ -z "${REAL_RESUME}" ]
then
@@ -1469,134 +2638,215 @@ startLUKS() {
REAL_RESUME="/dev/mapper/swap"
fi
fi
+}
- if [ -e "/usr/sbin/dropbear" ]; then
- /bin/kill $(cat /var/run/dropbear.pid)
- /sbin/ifconfig $(echo "${IP}" | awk -F":" '{print $6}' ) 0.0.0.0
+start_sshd() {
+ if [ -s "${GK_SSHD_PIDFILE}" ]
+ then
+ # Already running
+ return
+ fi
+
+ if [ ! -f "${GK_NET_LOCKFILE}" ]
+ then
+ warn_msg "Network not started; Not starting sshd ..." 0
+ return
fi
- if [ -e /ROOT.decrypted ]; then
- rm /ROOT.decrypted
+ if ! hash dropbear >/dev/null 2>&1
+ then
+ bad_msg "/usr/sbin/dropbear not found! Was initramfs built without --ssh parameter?"
+ return
fi
- if [ -e /SWAP.decrypted ]; then
- rm /SWAP.decrypted
+ # setup environment variables for the remote rescue shell
+ # ZFS will use a different file because $REAL_ROOT for ZFS
+ # isn't known yet.
+ write_env_file \
+ "${CRYPT_ENV_FILE}" \
+ CRYPT_ROOT \
+ CRYPT_ROOT_OPTIONS \
+ CRYPT_SILENT \
+ CRYPT_SWAP \
+ CRYPT_SWAP_OPTIONS
+
+ run touch /var/log/lastlog
+
+ good_msg "Starting dropbear sshd ..."
+ run dropbear -p ${GK_SSHD_PORT} -R -P "${GK_SSHD_PIDFILE}" 2>/run/initramfs/dropbear.log
+ if [ $? -eq 0 ]
+ then
+ if [ "${GK_PROMPT_TIMEOUT}" = '0' ]
+ then
+ warn_msg "Changing gk.prompt.timeout=0 to 30 to allow remote user to answer prompts ..."
+ GK_PROMPT_TIMEOUT=30
+ fi
fi
}
-startdropbear() {
- if [ "${IP}" == '' ] ; then
- busybox udhcpc -n -T 15 -q
+wait_sshd() {
+ if [ -z "${GK_SSHD_WAIT}" -o "${GK_SSHD_WAIT}" = '0' ]
+ then
+ return
+ fi
+
+ if [ -f "${GK_SSHD_LOCKFILE}" -o ! -s "${GK_SSHD_PIDFILE}" ]
+ then
+ return
fi
- # setup environment variables for the ssh login shell
- echo "CRYPT_ROOT=${CRYPT_ROOT}" > /etc/login-remote.conf
- echo "CRYPT_SWAP=${CRYPT_SWAP}" >> /etc/login-remote.conf
- touch /var/log/lastlog
- /usr/sbin/dropbear
+ good_msg_n "gk.sshd.wait set; Waiting ${GK_SSHD_WAIT} seconds for SSH connection ..."
+
+ local last_cmd="run last -W 2>/dev/null | head -n 3"
+ is_log_enabled && last_cmd="${last_cmd} | tee -a '${GK_INIT_LOG}'"
+
+ local ssh_timeout=${GK_SSHD_WAIT}
+ while [ ${ssh_timeout} -gt 0 ]
+ do
+ if [ -f "${GK_SSHD_LOCKFILE}" ]
+ then
+ echo ""
+ eval "${last_cmd}"
+ break
+ fi
+ sleep 1
+ : $(( ssh_timeout -= 1 ))
+ is_quiet || printf "."
+ done
+
+ is_quiet || echo
+}
+
+kill_sshd() {
+ if [ -s "${GK_SSHD_PIDFILE}" ]
+ then
+ good_msg "Stopping dropbear sshd ..."
+ run kill $(cat "${GK_SSHD_PIDFILE}")
+ fi
+}
+
+cleanup() {
+ if [ -f "${GK_NET_LOCKFILE}" ]
+ then
+ if [ -f "${GK_SSHD_LOCKFILE}" ]
+ then
+ warn_msg "The lockfile at '${GK_SSHD_LOCKFILE}' exists." 0
+ warn_msg "The boot process will be paused until the lock is removed." 0
+ while true
+ do
+ if [ -f "${GK_SSHD_LOCKFILE}" ]
+ then
+ sleep 1
+ else
+ break
+ fi
+ done
+ fi
+ fi
+
+ kill_sshd
+
+ # Ensure that we terminated any existing connection
+ if pgrep dropbear >/dev/null 2>&1
+ then
+ run pkill -9 dropbear >/dev/null 2>&1
+ fi
+
+ if [ -f "${GK_NET_LOCKFILE}" ]
+ then
+ if [ "${REAL_ROOT}" = "/dev/nfs" ]
+ then
+ warn_msg "real_root=/dev/nfs; Will not bring down interface ${GK_NET_IFACE} ..."
+ else
+ kill_network
+ fi
+ fi
}
sdelay() {
# Sleep a specific number of seconds if SDELAY is set
if [ -n "${SDELAY}" ]
then
- good_msg "Waiting ${SDELAY} seconds..."
- sleep ${SDELAY}
+ good_msg_n "scandelay set; Waiting ${SDELAY} seconds ..."
+ while [ ${SDELAY} -gt 0 ]
+ do
+ let SDELAY=${SDELAY}-1
+ sleep 1
+ is_quiet || printf "."
+ done
+ echo
elif [ "${CDROOT}" = '1' ]
then
good_msg 'Hint: Use scandelay[=seconds] if your live medium is slow and boot fails'
fi
}
-quiet_kmsg() {
- # if QUIET is set make the kernel less chatty
- [ -n "$QUIET" ] && echo '0' > /proc/sys/kernel/printk
-}
-
-verbose_kmsg() {
- # if QUIET is set make the kernel less chatty
- [ -n "$QUIET" ] && echo '6' > /proc/sys/kernel/printk
-}
-
-
cdupdate() {
if [ "${CDROOT}" = '1' ]
then
cdupdate_path=''
- for p in /${NEW_ROOT}/${CDROOT_PATH}/ /${CDROOT_PATH}/ ; do
+ for p in /${NEW_ROOT}/${CDROOT_PATH}/ /${CDROOT_PATH}/
+ do
[ -x "${p}/cdupdate.sh" ] && cdupdate_path="${p}/cdupdate.sh" && break
done
+
if [ -n "${cdupdate_path}" ]
then
- good_msg "Running cdupdate.sh ($cdupdate_path)"
- ${cdupdate_path}
+ good_msg "Running cdupdate.sh (${cdupdate_path})"
+ run ${cdupdate_path}
if [ "$?" != '0' ]
then
bad_msg "Executing cdupdate.sh failed!"
- run_shell
+ run_emergency_shell
fi
else
- good_msg 'No cdupdate.sh script found, skipping...'
+ good_msg 'No cdupdate.sh script found, skipping ...'
fi
fi
}
-setup_btrfsctl() {
- # start BTRFS volume detection, if available
- [ -x /sbin/btrfsctl ] && /sbin/btrfsctl -a
-}
-
-setup_md_device() {
- local device
-
- [ -z "$1" ] && device="${REAL_ROOT}" || device="$1"
- [ -z "${device}" ] && return # LiveCD
-
- if [ `echo ${device}|sed -e 's#\(luks:\)\?\(/dev/md\)[[:digit:]]\+#\2#'` = "/dev/md" ]
+do_resume() {
+ local device=$(find_real_device "${REAL_RESUME}")
+ if [ -z "${device}" ]
then
- good_msg 'Detected real_root as a md device. Setting up the device node...'
- MD_NUMBER=`echo ${device}|sed -e 's#\(luks:\)\?/dev/md\([[:digit:]]\+\)#\2#'`
- if [ ! -e /dev/md${MD_NUMBER} ]
- then
- mknod /dev/md${MD_NUMBER} b 9 ${MD_NUMBER} >/dev/null 2>&1
- [ $? -ne 0 ] && bad_msg "Creation of /dev/md${MD_NUMBER} failed..."
- fi
- mdstart ${MDPART} /dev/md${MD_NUMBER}
+ warn_msg "resume device (${REAL_RESUME}) not found; Skipping resume ..." 0
+ return 0
+ else
+ REAL_RESUME="${device}"
fi
-}
-do_rundebugshell() {
- good_msg 'Type "exit" to continue with normal bootup.'
- [ -x /bin/sh ] && SH=/bin/sh || SH=/bin/ash
- setsid ${SH} -c "exec cttyhack ${SH} --login"
-}
-
-rundebugshell() {
- if [ -n "$DEBUG" ]
+ local resume_tried=no
+ if [ -d /proc/suspend2 -o -d /sys/power/suspend2 -o -d /sys/power/tuxonice ]
+ then
+ tuxonice_resume
+ resume_tried=yes
+ elif [ -f /sys/power/resume ]
then
- good_msg 'Starting debug shell as requested by "debug" option.'
- good_msg "Stopping by: ${1}"
- do_rundebugshell
+ swsusp_resume
+ resume_tried=yes
fi
-}
-do_resume() {
- if [ -d /proc/suspend2 -o -d /sys/power/suspend2 -o -d /sys/power/tuxonice ]; then
- tuxonice_resume
+ if is_true "${resume_tried}"
+ then
+ warn_msg "System is not resuming from ${REAL_RESUME}, probably because it wasn't suspended; Continue normal booting ..."
else
- swsusp_resume
+ warn_msg "resume device (${REAL_RESUME}) specified but kernel is lacking proper hibernation support!"
fi
}
swsusp_resume() {
# determine swap resume partition
local device=$(ls -lL "${REAL_RESUME}" | sed 's/\ */ /g' | cut -d \ -f 5-6 | sed 's/,\ */:/')
- [ -f /sys/power/resume ] && echo "${device}" > /sys/power/resume
+
+ log_msg "Trying to resume using swsusp ..."
+ log_msg "COMMAND: 'echo \"${device}\" > /sys/power/resume'"
+ echo "${device}" > /sys/power/resume
}
tuxonice_resume() {
local splash_theme
- if grep "splash=" /proc/cmdline > /dev/null 2>&1; then
+ if grep "splash=" /proc/cmdline >/dev/null 2>&1
+ then
splash_theme=$(cat /proc/cmdline | sed 's/.*splash=/splash=/' | sed 's/ .*//' | sed 's/.*theme://' | sed 's/,.*//')
fi
@@ -1608,12 +2858,14 @@ tuxonice_resume() {
#
# Backward compatibility
#
- if [ -e /sys/power/suspend2 ]; then
+ if [ -e /sys/power/suspend2 ]
+ then
tuxonice_userui_program="/sys/power/suspend2/user_interface/program"
tuxonice_do_resume="/sys/power/suspend2/do_resume"
tuxonice_resumedev="/sys/power/suspend2/resume"
tuxonice_replace_swsusp="/sys/power/suspend2/replace_swsusp"
- elif [ -e /proc/suspend2 ]; then
+ elif [ -e /proc/suspend2 ]
+ then
tuxonice_userui_program="/proc/suspend2/userui_program"
tuxonice_do_resume="/proc/suspend2/do_resume"
tuxonice_resumedev="/proc/suspend2/resume"
@@ -1621,7 +2873,8 @@ tuxonice_resume() {
fi
# if 'use_swsusp' is given, use swsusp instead
- if grep "use_swsusp" /proc/cmdline > /dev/null 2>&1; then
+ if grep "use_swsusp" /proc/cmdline >/dev/null 2>&1
+ then
echo 0 > ${tuxonice_replace_swsusp}
swsusp_resume
return
@@ -1632,20 +2885,26 @@ tuxonice_resume() {
# we both configure tuxonice and activate resuming,
# however the kernel will resume only if an image is found
- if ! grep suspend_noui /proc/cmdline > /dev/null 2>&1; then
- which suspend2ui_text > /dev/null 2>&1 && which suspend2ui_text > "${tuxonice_userui_program}"
- which tuxoniceui_text > /dev/null 2>&1 && which tuxoniceui_text > "${tuxonice_userui_program}"
+ if ! grep suspend_noui /proc/cmdline >/dev/null 2>&1
+ then
+ command -v suspend2ui_text >/dev/null 2>&1 && command -v suspend2ui_text > "${tuxonice_userui_program}"
+ command -v tuxoniceui_text >/dev/null 2>&1 && command -v tuxoniceui_text > "${tuxonice_userui_program}"
- if [ -n "${splash_theme}" ]; then
+ if [ -n "${splash_theme}" ]
+ then
ln -s /etc/splash/${splash_theme} /etc/splash/suspend2
ln -s /etc/splash/${splash_theme} /etc/splash/tuxonice
- which suspend2ui_fbsplash > /dev/null 2>&1 && which suspend2ui_fbsplash > "${tuxonice_userui_program}"
- which tuxoniceui_fbsplash > /dev/null 2>&1 && which tuxoniceui_fbsplash > "${tuxonice_userui_program}"
+ command -v suspend2ui_fbsplash >/dev/null 2>&1 && command -v suspend2ui_fbsplash > "${tuxonice_userui_program}"
+ command -v tuxoniceui_fbsplash >/dev/null 2>&1 && command -v tuxoniceui_fbsplash > "${tuxonice_userui_program}"
fi
fi
+
+ log_msg "Trying to resume using TuxOnIce ..."
+ log_msg "COMMAND: 'echo \"${REAL_RESUME}\" > ${tuxonice_resumedev}'"
echo "${REAL_RESUME}" > "${tuxonice_resumedev}"
+ log_msg "COMMAND: 'echo > ${tuxonice_do_resume}'"
echo > "${tuxonice_do_resume}"
}
@@ -1661,8 +2920,8 @@ find_loop() {
find_looptype() {
LOOPTYPE="${LOOP##*.}"
- [ "${LOOPTYPE}" == "loop" ] && LOOPTYPE="normal"
- [ "${LOOP}" == "/zisofs" ] && LOOPTYPE="${LOOP#/}"
+ [ "${LOOPTYPE}" = "loop" ] && LOOPTYPE="normal"
+ [ "${LOOP}" = "/zisofs" ] && LOOPTYPE="${LOOP#/}"
[ -z "${LOOPTYPE}" ] && LOOPTYPE="noloop"
}
@@ -1674,17 +2933,18 @@ setup_squashfs_aufs() {
# Setup aufs directories and vars
aufs_rw_branch=/mnt/aufs-rw-branch aufs_ro_branch=/mnt/livecd
- for dir in $aufs_rw_branch $aufs_ro_branch; do
- [ ! -d $dir ] && mkdir -p "$dir"
+ for dir in ${aufs_rw_branch} ${aufs_ro_branch}
+ do
+ [ ! -d "${dir}" ] && run mkdir -p "${dir}"
done
good_msg "Loading aufs module ..."
- modprobe aufs &>/dev/null
+ run modprobe aufs >/dev/null 2>&1
checkfs aufs
- mount -t squashfs -o loop,ro "$CDROOT_PATH/$LOOPEXT$LOOP" "$aufs_ro_branch"
- mount -t tmpfs none "$aufs_rw_branch"
- mount -t aufs -o "br:$aufs_rw_branch:$aufs_ro_branch" aufs "$NEW_ROOT"
+ run mount -t squashfs -o loop,ro "${CDROOT_PATH}/${LOOPEXT}${LOOP}" "${aufs_ro_branch}"
+ run mount -t tmpfs none "${aufs_rw_branch}"
+ run mount -t aufs -o "br:${aufs_rw_branch}:${aufs_ro_branch}" aufs "${NEW_ROOT}"
}
setup_unionfs() {
@@ -1695,49 +2955,49 @@ setup_unionfs() {
# Directory used for rw changes in union mount filesystem
UNION=/union
# MEMORY=/memory
-# if [ -z "$UID" ]
+# if [ -z "${UID}" ]
# then
-# CHANGES=$MEMORY/unionfs_changes/default
+# CHANGES=${MEMORY}/unionfs_changes/default
# else
-# CHANGES=$MEMORY/unionfs_changes/$UID
+# CHANGES=${MEMORY}/unionfs_changes/${UID}
# fi
# mkdir -p ${MEMORY}
- mkdir -p ${UNION}
+ run mkdir -p ${UNION}
good_msg "Loading fuse module"
- modprobe fuse > /dev/null 2>&1
-# if [ -n "${UNIONFS}" ]
-# then
-# CHANGESDEV=${UNIONFS}
-# good_msg "mounting $CHANGESDEV to $MEMORY for unionfs support"
-# mount -t auto $CHANGESDEV $MEMORY
-# # mount tmpfs only in the case when changes= boot parameter was
-# # empty or we were not able to mount the storage device
-# ret=$?
-# if [ ${ret} -ne 0 ]
-# then
-# bad_msg "mount of $CHANGESDEV failed falling back to ramdisk based unionfs"
-# mount -t tmpfs tmpfs $MEMORY
-# fi
-# if [ "${CDROOT}" -eq '1' -a ! -f ${MEMORY}/livecd.unionfs ]
-# then
-# umount $MEMORY
-# bad_msg "failed to find livecd.unionfs file on $CHANGESDEV"
-# bad_msg "create a livecd.unionfs file on this device if you wish to use it for unionfs"
-# bad_msg "falling back to ramdisk based unionfs for safety"
-# mount -t tmpfs tmpfs $MEMORY
-# fi
-# else
-# good_msg "Mounting ramdisk to $MEMORY for unionfs support..."
-# mount -t tmpfs tmpfs $MEMORY
-# fi
-
- mkdir /tmp
- mkdir -p ${UNION}
-# mkdir -p $CHANGES
-# mount -t unionfs -o dirs=$CHANGES=rw unionfs ${UNION}
+ run modprobe fuse >/dev/null 2>&1
+# if [ -n "${UNIONFS}" ]
+# then
+# CHANGESDEV=${UNIONFS}
+# good_msg "mounting ${CHANGESDEV} to ${MEMORY} for unionfs support"
+# mount -t auto ${CHANGESDEV} ${MEMORY}
+# # mount tmpfs only in the case when changes= boot parameter was
+# # empty or we were not able to mount the storage device
+# ret=$?
+# if [ ${ret} -ne 0 ]
+# then
+# bad_msg "mount of ${CHANGESDEV} failed falling back to ramdisk based unionfs"
+# mount -t tmpfs tmpfs ${MEMORY}
+# fi
+# if [ "${CDROOT}" -eq '1' -a ! -f ${MEMORY}/livecd.unionfs ]
+# then
+# umount ${MEMORY}
+# bad_msg "failed to find livecd.unionfs file on ${CHANGESDEV}"
+# bad_msg "create a livecd.unionfs file on this device if you wish to use it for unionfs"
+# bad_msg "falling back to ramdisk based unionfs for safety"
+# mount -t tmpfs tmpfs ${MEMORY}
+# fi
+# else
+# good_msg "Mounting ramdisk to ${MEMORY} for unionfs support..."
+# mount -t tmpfs tmpfs ${MEMORY}
+# fi
+
+ run mkdir /tmp
+ run mkdir -p ${UNION}
+# mkdir -p ${CHANGES}
+# mount -t unionfs -o dirs=${CHANGES}=rw unionfs ${UNION}
good_msg "Creating union mount"
- unionfs -o allow_other,cow,noinitgroups,suid,dev,default_permissions,use_ino ${rw_dir}=RW:${ro_dir}=RO ${UNION} 2>/dev/null
+ run unionfs -o allow_other,cow,noinitgroups,suid,dev,default_permissions,use_ino ${rw_dir}=RW:${ro_dir}=RO ${UNION} 2>/dev/null
ret=$?
if [ ${ret} -ne 0 ]
then
@@ -1745,22 +3005,35 @@ setup_unionfs() {
USE_UNIONFS_NORMAL=0
fi
[ ! -d "${NEW_ROOT}${CDROOT_PATH}" ] && mkdir -p "${NEW_ROOT}${CDROOT_PATH}"
- mount --bind "${CDROOT_PATH}" "${NEW_ROOT}${CDROOT_PATH}"
+ run mount --bind "${CDROOT_PATH}" "${NEW_ROOT}${CDROOT_PATH}"
else
USE_UNIONFS_NORMAL=0
fi
}
-get_mounts_list()
-{
+get_active_console() {
+ local active_console=console
+
+ while [ -f /sys/class/tty/${active_console}/active ]
+ do
+ active_console=$(cat /sys/class/tty/${active_console}/active)
+
+ # last console will be the active one,
+ # see https://www.kernel.org/doc/html/latest/admin-guide/serial-console.html
+ active_console=${active_console##* }
+ done
+
+ echo ${active_console}
+}
+
+get_mounts_list() {
awk '
/^[[:blank:]]*#/ { next }
{ print $1 }
' ${NEW_ROOT}/etc/initramfs.mounts
}
-get_mount_fstype()
-{
+get_mount_fstype() {
[ -e "${NEW_ROOT}"/etc/fstab ] || return 1
awk -v fs="$1" '
/^[[:blank:]]*#/ { next }
@@ -1768,8 +3041,7 @@ get_mount_fstype()
' ${NEW_ROOT}/etc/fstab
}
-get_mount_options()
-{
+get_mount_options() {
[ -e "${NEW_ROOT}"/etc/fstab ] || return 1
awk -v fs="$1" '
/^[[:blank:]]*#/ { next }
@@ -1777,8 +3049,7 @@ get_mount_options()
' ${NEW_ROOT}/etc/fstab
}
-get_mount_device()
-{
+get_mount_device() {
[ -e "${NEW_ROOT}"/etc/fstab ] || return 1
awk -v fs="$1" '
/^[[:blank:]]*#/ { next }
@@ -1786,22 +3057,40 @@ get_mount_device()
' ${NEW_ROOT}/etc/fstab
}
+get_zfs_property() {
+ local device=${1}
+ local propertyname=${2}
+
+ echo "$(zfs get -H -o value ${propertyname} "${device}" 2>/dev/null)"
+}
+
+# Returns TRUE if $1 contains literal string $2 at the
+# beginning and is not empty
+str_starts() {
+ if [ "${1#"${2}"*}" != "${1}" ]
+ then
+ return 0
+ fi
+
+ return 1
+}
+
# If the kernel is handed a mount option is does not recognize, it WILL fail to
# mount. util-linux handles auto/noauto, but busybox passes it straight to the kernel
# which then rejects the mount.
# To make like a little easier, busybox mount does not care about leading,
# trailing or duplicate commas.
-strip_mount_options()
-{
+strip_mount_options() {
sed -r \
-e 's/(,|^)(no)?auto(,|$)/,/g' \
- -e 's/(,|^)iversion(,|$)/,/g'
+ -e 's/(,|^)iversion(,|$)/,/g'
}
-checkfs()
-{
- if [ -r "/proc/filesystems" ]; then
- if grep -qs "$1" /proc/filesystems ; then
+checkfs() {
+ if [ -r "/proc/filesystems" ]
+ then
+ if grep -qs "$1" /proc/filesystems
+ then
return 0
fi
fi
diff --git a/defaults/kernel-config b/defaults/kernel-config
deleted file mode 100644
index 80909ea..0000000
--- a/defaults/kernel-config
+++ /dev/null
@@ -1,3645 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.24-gentoo-r4
-# Thu Apr 17 08:21:12 2008
-#
-# CONFIG_64BIT is not set
-CONFIG_X86_32=y
-# CONFIG_X86_64 is not set
-CONFIG_X86=y
-CONFIG_GENERIC_TIME=y
-CONFIG_GENERIC_CMOS_UPDATE=y
-CONFIG_CLOCKSOURCE_WATCHDOG=y
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
-CONFIG_LOCKDEP_SUPPORT=y
-CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_SEMAPHORE_SLEEPERS=y
-CONFIG_MMU=y
-CONFIG_ZONE_DMA=y
-CONFIG_QUICKLIST=y
-CONFIG_GENERIC_ISA_DMA=y
-CONFIG_GENERIC_IOMAP=y
-CONFIG_GENERIC_BUG=y
-CONFIG_GENERIC_HWEIGHT=y
-CONFIG_ARCH_MAY_HAVE_PC_FDC=y
-CONFIG_DMI=y
-# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
-CONFIG_RWSEM_XCHGADD_ALGORITHM=y
-# CONFIG_ARCH_HAS_ILOG2_U32 is not set
-# CONFIG_ARCH_HAS_ILOG2_U64 is not set
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-# CONFIG_GENERIC_TIME_VSYSCALL is not set
-CONFIG_ARCH_SUPPORTS_OPROFILE=y
-# CONFIG_ZONE_DMA32 is not set
-CONFIG_ARCH_POPULATES_NODE_MAP=y
-CONFIG_AUDIT=y
-CONFIG_GENERIC_HARDIRQS=y
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_GENERIC_PENDING_IRQ=y
-CONFIG_X86_SMP=y
-CONFIG_X86_HT=y
-CONFIG_X86_BIOS_REBOOT=y
-CONFIG_X86_TRAMPOLINE=y
-CONFIG_KTIME_SCALAR=y
-CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-
-#
-# General setup
-#
-CONFIG_EXPERIMENTAL=y
-CONFIG_LOCK_KERNEL=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-CONFIG_LOCALVERSION=""
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-CONFIG_SYSVIPC_SYSCTL=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_BSD_PROCESS_ACCT=y
-CONFIG_BSD_PROCESS_ACCT_V3=y
-CONFIG_TASKSTATS=y
-CONFIG_TASK_DELAY_ACCT=y
-CONFIG_TASK_XACCT=y
-CONFIG_TASK_IO_ACCOUNTING=y
-CONFIG_USER_NS=y
-CONFIG_PID_NS=y
-CONFIG_FHANDLE=y
-CONFIG_AUDIT=y
-CONFIG_AUDITSYSCALL=y
-CONFIG_AUDIT_TREE=y
-CONFIG_IKCONFIG=y
-CONFIG_IKCONFIG_PROC=y
-CONFIG_LOG_BUF_SHIFT=15
-CONFIG_CGROUPS=y
-# CONFIG_CGROUP_DEBUG is not set
-CONFIG_CGROUP_NS=y
-CONFIG_CPUSETS=y
-CONFIG_FAIR_GROUP_SCHED=y
-CONFIG_FAIR_USER_SCHED=y
-# CONFIG_FAIR_CGROUP_SCHED is not set
-CONFIG_CGROUP_CPUACCT=y
-# CONFIG_SYSFS_DEPRECATED is not set
-CONFIG_PROC_PID_CPUSET=y
-CONFIG_RELAY=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-CONFIG_SYSCTL=y
-# CONFIG_EMBEDDED is not set
-CONFIG_UID16=y
-CONFIG_SYSCTL_SYSCALL=y
-CONFIG_KALLSYMS=y
-# CONFIG_KALLSYMS_ALL is not set
-# CONFIG_KALLSYMS_EXTRA_PASS is not set
-CONFIG_HOTPLUG=y
-CONFIG_PRINTK=y
-CONFIG_BUG=y
-CONFIG_ELF_CORE=y
-CONFIG_BASE_FULL=y
-CONFIG_FUTEX=y
-CONFIG_ANON_INODES=y
-CONFIG_EPOLL=y
-CONFIG_SIGNALFD=y
-CONFIG_EVENTFD=y
-CONFIG_SHMEM=y
-CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_SLAB=y
-# CONFIG_SLUB is not set
-# CONFIG_SLOB is not set
-CONFIG_SLABINFO=y
-CONFIG_RT_MUTEXES=y
-# CONFIG_TINY_SHMEM is not set
-CONFIG_BASE_SMALL=0
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODULE_FORCE_UNLOAD=y
-CONFIG_MODVERSIONS=y
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-CONFIG_KMOD=y
-CONFIG_STOP_MACHINE=y
-CONFIG_BLOCK=y
-CONFIG_LBD=y
-CONFIG_BLK_DEV_IO_TRACE=y
-CONFIG_LSF=y
-CONFIG_BLK_DEV_BSG=y
-
-#
-# IO Schedulers
-#
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
-CONFIG_DEFAULT_AS=y
-# CONFIG_DEFAULT_DEADLINE is not set
-# CONFIG_DEFAULT_CFQ is not set
-# CONFIG_DEFAULT_NOOP is not set
-CONFIG_DEFAULT_IOSCHED="anticipatory"
-CONFIG_PREEMPT_NOTIFIERS=y
-
-#
-# Processor type and features
-#
-CONFIG_TICK_ONESHOT=y
-# CONFIG_NO_HZ is not set
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-CONFIG_SMP=y
-CONFIG_X86_PC=y
-# CONFIG_X86_ELAN is not set
-# CONFIG_X86_VOYAGER is not set
-# CONFIG_X86_NUMAQ is not set
-# CONFIG_X86_SUMMIT is not set
-# CONFIG_X86_BIGSMP is not set
-# CONFIG_X86_VISWS is not set
-# CONFIG_X86_GENERICARCH is not set
-# CONFIG_X86_ES7000 is not set
-# CONFIG_X86_VSMP is not set
-CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
-CONFIG_PARAVIRT=y
-CONFIG_PARAVIRT_GUEST=y
-CONFIG_XEN=y
-CONFIG_VMI=y
-# CONFIG_M386 is not set
-# CONFIG_M486 is not set
-# CONFIG_M586 is not set
-# CONFIG_M586TSC is not set
-# CONFIG_M586MMX is not set
-CONFIG_M686=y
-# CONFIG_MPENTIUMII is not set
-# CONFIG_MPENTIUMIII is not set
-# CONFIG_MPENTIUMM is not set
-# CONFIG_MPENTIUM4 is not set
-# CONFIG_MK6 is not set
-# CONFIG_MK7 is not set
-# CONFIG_MK8 is not set
-# CONFIG_MCRUSOE is not set
-# CONFIG_MEFFICEON is not set
-# CONFIG_MWINCHIPC6 is not set
-# CONFIG_MWINCHIP2 is not set
-# CONFIG_MWINCHIP3D is not set
-# CONFIG_MGEODEGX1 is not set
-# CONFIG_MGEODE_LX is not set
-# CONFIG_MCYRIXIII is not set
-# CONFIG_MVIAC3_2 is not set
-# CONFIG_MVIAC7 is not set
-# CONFIG_MPSC is not set
-# CONFIG_MCORE2 is not set
-# CONFIG_GENERIC_CPU is not set
-CONFIG_X86_GENERIC=y
-CONFIG_X86_CMPXCHG=y
-CONFIG_X86_L1_CACHE_SHIFT=7
-CONFIG_X86_XADD=y
-CONFIG_X86_PPRO_FENCE=y
-CONFIG_X86_WP_WORKS_OK=y
-CONFIG_X86_INVLPG=y
-CONFIG_X86_BSWAP=y
-CONFIG_X86_POPAD_OK=y
-CONFIG_X86_GOOD_APIC=y
-CONFIG_X86_INTEL_USERCOPY=y
-CONFIG_X86_USE_PPRO_CHECKSUM=y
-CONFIG_X86_TSC=y
-CONFIG_X86_CMOV=y
-CONFIG_X86_MINIMUM_CPU_FAMILY=4
-CONFIG_HPET_TIMER=y
-CONFIG_NR_CPUS=64
-CONFIG_SCHED_SMT=y
-CONFIG_SCHED_MC=y
-CONFIG_PREEMPT_NONE=y
-# CONFIG_PREEMPT_VOLUNTARY is not set
-# CONFIG_PREEMPT is not set
-# CONFIG_PREEMPT_BKL is not set
-CONFIG_X86_LOCAL_APIC=y
-CONFIG_X86_IO_APIC=y
-CONFIG_X86_MCE=y
-CONFIG_X86_MCE_NONFATAL=y
-CONFIG_X86_MCE_P4THERMAL=y
-CONFIG_VM86=y
-CONFIG_TOSHIBA=m
-CONFIG_I8K=m
-CONFIG_X86_REBOOTFIXUPS=y
-CONFIG_MICROCODE=m
-CONFIG_MICROCODE_OLD_INTERFACE=y
-CONFIG_X86_MSR=m
-CONFIG_X86_CPUID=m
-# CONFIG_NOHIGHMEM is not set
-CONFIG_HIGHMEM4G=y
-# CONFIG_HIGHMEM64G is not set
-CONFIG_VMSPLIT_3G=y
-# CONFIG_VMSPLIT_3G_OPT is not set
-# CONFIG_VMSPLIT_2G is not set
-# CONFIG_VMSPLIT_2G_OPT is not set
-# CONFIG_VMSPLIT_1G is not set
-CONFIG_PAGE_OFFSET=0xC0000000
-CONFIG_HIGHMEM=y
-CONFIG_ARCH_FLATMEM_ENABLE=y
-CONFIG_ARCH_SPARSEMEM_ENABLE=y
-CONFIG_ARCH_SELECT_MEMORY_MODEL=y
-CONFIG_SELECT_MEMORY_MODEL=y
-CONFIG_FLATMEM_MANUAL=y
-# CONFIG_DISCONTIGMEM_MANUAL is not set
-# CONFIG_SPARSEMEM_MANUAL is not set
-CONFIG_FLATMEM=y
-CONFIG_FLAT_NODE_MEM_MAP=y
-CONFIG_SPARSEMEM_STATIC=y
-# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
-CONFIG_SPLIT_PTLOCK_CPUS=4
-CONFIG_RESOURCES_64BIT=y
-CONFIG_ZONE_DMA_FLAG=1
-CONFIG_BOUNCE=y
-CONFIG_NR_QUICK=1
-CONFIG_VIRT_TO_BUS=y
-CONFIG_HIGHPTE=y
-# CONFIG_MATH_EMULATION is not set
-CONFIG_MTRR=y
-CONFIG_EFI=y
-CONFIG_IRQBALANCE=y
-CONFIG_BOOT_IOREMAP=y
-CONFIG_SECCOMP=y
-CONFIG_HZ_100=y
-# CONFIG_HZ_250 is not set
-# CONFIG_HZ_300 is not set
-# CONFIG_HZ_1000 is not set
-CONFIG_HZ=100
-CONFIG_KEXEC=y
-CONFIG_CRASH_DUMP=y
-CONFIG_PHYSICAL_START=0x100000
-CONFIG_RELOCATABLE=y
-CONFIG_PHYSICAL_ALIGN=0x100000
-CONFIG_HOTPLUG_CPU=y
-CONFIG_COMPAT_VDSO=y
-CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
-
-#
-# Power management options
-#
-CONFIG_PM=y
-CONFIG_PM_LEGACY=y
-# CONFIG_PM_DEBUG is not set
-CONFIG_PM_SLEEP_SMP=y
-CONFIG_PM_SLEEP=y
-CONFIG_SUSPEND_SMP_POSSIBLE=y
-CONFIG_SUSPEND=y
-CONFIG_HIBERNATION_SMP_POSSIBLE=y
-CONFIG_HIBERNATION=y
-CONFIG_PM_STD_PARTITION=""
-CONFIG_ACPI=y
-CONFIG_ACPI_SLEEP=y
-CONFIG_ACPI_PROCFS=y
-CONFIG_ACPI_PROCFS_POWER=y
-CONFIG_ACPI_SYSFS_POWER=y
-CONFIG_ACPI_PROC_EVENT=y
-CONFIG_ACPI_AC=m
-CONFIG_ACPI_BATTERY=m
-CONFIG_ACPI_BUTTON=m
-CONFIG_ACPI_VIDEO=m
-CONFIG_ACPI_FAN=m
-CONFIG_ACPI_DOCK=m
-# CONFIG_ACPI_BAY is not set
-CONFIG_ACPI_PROCESSOR=m
-CONFIG_ACPI_HOTPLUG_CPU=y
-CONFIG_ACPI_THERMAL=m
-CONFIG_ACPI_ASUS=m
-CONFIG_ACPI_TOSHIBA=m
-CONFIG_ACPI_BLACKLIST_YEAR=0
-# CONFIG_ACPI_DEBUG is not set
-CONFIG_ACPI_EC=y
-CONFIG_ACPI_POWER=y
-CONFIG_ACPI_SYSTEM=y
-CONFIG_X86_PM_TIMER=y
-CONFIG_ACPI_CONTAINER=m
-# CONFIG_ACPI_SBS is not set
-CONFIG_APM=y
-CONFIG_APM_IGNORE_USER_SUSPEND=y
-# CONFIG_APM_DO_ENABLE is not set
-CONFIG_APM_CPU_IDLE=y
-# CONFIG_APM_DISPLAY_BLANK is not set
-CONFIG_APM_ALLOW_INTS=y
-# CONFIG_APM_REAL_MODE_POWER_OFF is not set
-
-#
-# CPU Frequency scaling
-#
-CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_TABLE=m
-# CONFIG_CPU_FREQ_DEBUG is not set
-CONFIG_CPU_FREQ_STAT=m
-CONFIG_CPU_FREQ_STAT_DETAILS=y
-CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
-# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
-CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
-CONFIG_CPU_FREQ_GOV_POWERSAVE=m
-CONFIG_CPU_FREQ_GOV_USERSPACE=m
-CONFIG_CPU_FREQ_GOV_ONDEMAND=m
-CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
-
-#
-# CPUFreq processor drivers
-#
-CONFIG_X86_ACPI_CPUFREQ=m
-CONFIG_X86_POWERNOW_K6=m
-CONFIG_X86_POWERNOW_K7=m
-CONFIG_X86_POWERNOW_K7_ACPI=y
-CONFIG_X86_POWERNOW_K8=m
-CONFIG_X86_POWERNOW_K8_ACPI=y
-CONFIG_X86_GX_SUSPMOD=m
-CONFIG_X86_SPEEDSTEP_CENTRINO=m
-CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y
-CONFIG_X86_SPEEDSTEP_ICH=m
-CONFIG_X86_SPEEDSTEP_SMI=m
-CONFIG_X86_P4_CLOCKMOD=m
-CONFIG_X86_CPUFREQ_NFORCE2=m
-CONFIG_X86_LONGRUN=m
-CONFIG_X86_LONGHAUL=m
-CONFIG_X86_E_POWERSAVER=m
-
-#
-# shared options
-#
-# CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set
-CONFIG_X86_SPEEDSTEP_LIB=m
-# CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK is not set
-CONFIG_CPU_IDLE=y
-CONFIG_CPU_IDLE_GOV_LADDER=y
-
-#
-# Bus options (PCI etc.)
-#
-CONFIG_PCI=y
-# CONFIG_PCI_GOBIOS is not set
-# CONFIG_PCI_GOMMCONFIG is not set
-# CONFIG_PCI_GODIRECT is not set
-CONFIG_PCI_GOANY=y
-CONFIG_PCI_BIOS=y
-CONFIG_PCI_DIRECT=y
-CONFIG_PCI_MMCONFIG=y
-CONFIG_PCI_DOMAINS=y
-CONFIG_PCIEPORTBUS=y
-# CONFIG_HOTPLUG_PCI_PCIE is not set
-CONFIG_PCIEAER=y
-CONFIG_ARCH_SUPPORTS_MSI=y
-CONFIG_PCI_MSI=y
-CONFIG_PCI_LEGACY=y
-# CONFIG_PCI_DEBUG is not set
-CONFIG_HT_IRQ=y
-CONFIG_ISA_DMA_API=y
-CONFIG_ISA=y
-# CONFIG_EISA is not set
-# CONFIG_MCA is not set
-CONFIG_SCx200=m
-CONFIG_SCx200HR_TIMER=m
-CONFIG_K8_NB=y
-CONFIG_PCCARD=m
-# CONFIG_PCMCIA_DEBUG is not set
-CONFIG_PCMCIA=m
-CONFIG_PCMCIA_LOAD_CIS=y
-CONFIG_PCMCIA_IOCTL=y
-CONFIG_CARDBUS=y
-
-#
-# PC-card bridges
-#
-CONFIG_YENTA=m
-CONFIG_YENTA_O2=y
-CONFIG_YENTA_RICOH=y
-CONFIG_YENTA_TI=y
-CONFIG_YENTA_ENE_TUNE=y
-CONFIG_YENTA_TOSHIBA=y
-CONFIG_PD6729=m
-CONFIG_I82092=m
-CONFIG_I82365=m
-CONFIG_TCIC=m
-CONFIG_PCMCIA_PROBE=y
-CONFIG_PCCARD_NONSTATIC=m
-CONFIG_HOTPLUG_PCI=m
-# CONFIG_HOTPLUG_PCI_FAKE is not set
-CONFIG_HOTPLUG_PCI_COMPAQ=m
-# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
-CONFIG_HOTPLUG_PCI_IBM=m
-CONFIG_HOTPLUG_PCI_ACPI=m
-CONFIG_HOTPLUG_PCI_ACPI_IBM=m
-CONFIG_HOTPLUG_PCI_CPCI=y
-CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
-CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
-CONFIG_HOTPLUG_PCI_SHPC=m
-
-#
-# Executable file formats / Emulations
-#
-CONFIG_BINFMT_ELF=y
-CONFIG_BINFMT_AOUT=m
-CONFIG_BINFMT_MISC=m
-
-#
-# Networking
-#
-CONFIG_NET=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=y
-CONFIG_PACKET_MMAP=y
-CONFIG_UNIX=y
-CONFIG_XFRM=y
-CONFIG_XFRM_USER=m
-# CONFIG_XFRM_SUB_POLICY is not set
-# CONFIG_XFRM_MIGRATE is not set
-CONFIG_NET_KEY=m
-# CONFIG_NET_KEY_MIGRATE is not set
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-CONFIG_IP_ADVANCED_ROUTER=y
-CONFIG_ASK_IP_FIB_HASH=y
-# CONFIG_IP_FIB_TRIE is not set
-CONFIG_IP_FIB_HASH=y
-CONFIG_IP_MULTIPLE_TABLES=y
-CONFIG_IP_ROUTE_MULTIPATH=y
-# CONFIG_IP_ROUTE_VERBOSE is not set
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-# CONFIG_IP_PNP_BOOTP is not set
-# CONFIG_IP_PNP_RARP is not set
-CONFIG_NET_IPIP=m
-CONFIG_NET_IPGRE=m
-CONFIG_NET_IPGRE_BROADCAST=y
-CONFIG_IP_MROUTE=y
-CONFIG_IP_PIMSM_V1=y
-CONFIG_IP_PIMSM_V2=y
-# CONFIG_ARPD is not set
-CONFIG_SYN_COOKIES=y
-CONFIG_INET_AH=m
-CONFIG_INET_ESP=m
-CONFIG_INET_IPCOMP=m
-CONFIG_INET_XFRM_TUNNEL=m
-CONFIG_INET_TUNNEL=m
-CONFIG_INET_XFRM_MODE_TRANSPORT=m
-CONFIG_INET_XFRM_MODE_TUNNEL=m
-CONFIG_INET_XFRM_MODE_BEET=m
-CONFIG_INET_LRO=m
-CONFIG_INET_DIAG=y
-CONFIG_INET_TCP_DIAG=y
-CONFIG_TCP_CONG_ADVANCED=y
-CONFIG_TCP_CONG_BIC=m
-CONFIG_TCP_CONG_CUBIC=y
-CONFIG_TCP_CONG_WESTWOOD=m
-CONFIG_TCP_CONG_HTCP=m
-CONFIG_TCP_CONG_HSTCP=m
-CONFIG_TCP_CONG_HYBLA=m
-CONFIG_TCP_CONG_VEGAS=m
-CONFIG_TCP_CONG_SCALABLE=m
-CONFIG_TCP_CONG_LP=m
-CONFIG_TCP_CONG_VENO=m
-CONFIG_TCP_CONG_YEAH=m
-CONFIG_TCP_CONG_ILLINOIS=m
-# CONFIG_DEFAULT_BIC is not set
-CONFIG_DEFAULT_CUBIC=y
-# CONFIG_DEFAULT_HTCP is not set
-# CONFIG_DEFAULT_VEGAS is not set
-# CONFIG_DEFAULT_WESTWOOD is not set
-# CONFIG_DEFAULT_RENO is not set
-CONFIG_DEFAULT_TCP_CONG="cubic"
-CONFIG_TCP_MD5SIG=y
-CONFIG_IP_VS=m
-# CONFIG_IP_VS_DEBUG is not set
-CONFIG_IP_VS_TAB_BITS=12
-
-#
-# IPVS transport protocol load balancing support
-#
-CONFIG_IP_VS_PROTO_TCP=y
-CONFIG_IP_VS_PROTO_UDP=y
-CONFIG_IP_VS_PROTO_ESP=y
-CONFIG_IP_VS_PROTO_AH=y
-
-#
-# IPVS scheduler
-#
-CONFIG_IP_VS_RR=m
-CONFIG_IP_VS_WRR=m
-CONFIG_IP_VS_LC=m
-CONFIG_IP_VS_WLC=m
-CONFIG_IP_VS_LBLC=m
-CONFIG_IP_VS_LBLCR=m
-CONFIG_IP_VS_DH=m
-CONFIG_IP_VS_SH=m
-CONFIG_IP_VS_SED=m
-CONFIG_IP_VS_NQ=m
-
-#
-# IPVS application helper
-#
-CONFIG_IP_VS_FTP=m
-CONFIG_IPV6=m
-CONFIG_IPV6_PRIVACY=y
-CONFIG_IPV6_ROUTER_PREF=y
-# CONFIG_IPV6_ROUTE_INFO is not set
-# CONFIG_IPV6_OPTIMISTIC_DAD is not set
-CONFIG_INET6_AH=m
-CONFIG_INET6_ESP=m
-CONFIG_INET6_IPCOMP=m
-# CONFIG_IPV6_MIP6 is not set
-CONFIG_INET6_XFRM_TUNNEL=m
-CONFIG_INET6_TUNNEL=m
-CONFIG_INET6_XFRM_MODE_TRANSPORT=m
-CONFIG_INET6_XFRM_MODE_TUNNEL=m
-CONFIG_INET6_XFRM_MODE_BEET=m
-# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
-CONFIG_IPV6_SIT=m
-CONFIG_IPV6_TUNNEL=m
-# CONFIG_IPV6_MULTIPLE_TABLES is not set
-# CONFIG_NETLABEL is not set
-CONFIG_NETWORK_SECMARK=y
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_DEBUG is not set
-CONFIG_BRIDGE_NETFILTER=y
-
-#
-# Core Netfilter Configuration
-#
-CONFIG_NETFILTER_NETLINK=m
-CONFIG_NETFILTER_NETLINK_QUEUE=m
-CONFIG_NETFILTER_NETLINK_LOG=m
-CONFIG_NF_CONNTRACK_ENABLED=m
-CONFIG_NF_CONNTRACK=m
-CONFIG_NF_CT_ACCT=y
-CONFIG_NF_CONNTRACK_MARK=y
-CONFIG_NF_CONNTRACK_SECMARK=y
-CONFIG_NF_CONNTRACK_EVENTS=y
-CONFIG_NF_CT_PROTO_GRE=m
-CONFIG_NF_CT_PROTO_SCTP=m
-CONFIG_NF_CT_PROTO_UDPLITE=m
-CONFIG_NF_CONNTRACK_AMANDA=m
-CONFIG_NF_CONNTRACK_FTP=m
-CONFIG_NF_CONNTRACK_H323=m
-CONFIG_NF_CONNTRACK_IRC=m
-CONFIG_NF_CONNTRACK_NETBIOS_NS=m
-CONFIG_NF_CONNTRACK_PPTP=m
-CONFIG_NF_CONNTRACK_SANE=m
-CONFIG_NF_CONNTRACK_SIP=m
-CONFIG_NF_CONNTRACK_TFTP=m
-CONFIG_NF_CT_NETLINK=m
-CONFIG_NETFILTER_XTABLES=m
-CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
-CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
-CONFIG_NETFILTER_XT_TARGET_DSCP=m
-CONFIG_NETFILTER_XT_TARGET_MARK=m
-CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
-CONFIG_NETFILTER_XT_TARGET_NFLOG=m
-CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
-CONFIG_NETFILTER_XT_TARGET_TRACE=m
-CONFIG_NETFILTER_XT_TARGET_SECMARK=m
-CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
-CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
-CONFIG_NETFILTER_XT_MATCH_COMMENT=m
-CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
-CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
-CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
-CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
-CONFIG_NETFILTER_XT_MATCH_DCCP=m
-CONFIG_NETFILTER_XT_MATCH_DSCP=m
-CONFIG_NETFILTER_XT_MATCH_ESP=m
-CONFIG_NETFILTER_XT_MATCH_HELPER=m
-CONFIG_NETFILTER_XT_MATCH_LENGTH=m
-CONFIG_NETFILTER_XT_MATCH_LIMIT=m
-CONFIG_NETFILTER_XT_MATCH_MAC=m
-CONFIG_NETFILTER_XT_MATCH_MARK=m
-CONFIG_NETFILTER_XT_MATCH_POLICY=m
-CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
-CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
-CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
-CONFIG_NETFILTER_XT_MATCH_QUOTA=m
-CONFIG_NETFILTER_XT_MATCH_REALM=m
-CONFIG_NETFILTER_XT_MATCH_SCTP=m
-CONFIG_NETFILTER_XT_MATCH_STATE=m
-CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
-CONFIG_NETFILTER_XT_MATCH_STRING=m
-CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
-CONFIG_NETFILTER_XT_MATCH_TIME=m
-CONFIG_NETFILTER_XT_MATCH_U32=m
-CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
-
-#
-# IP: Netfilter Configuration
-#
-CONFIG_NF_CONNTRACK_IPV4=m
-CONFIG_NF_CONNTRACK_PROC_COMPAT=y
-# CONFIG_IP_NF_QUEUE is not set
-CONFIG_IP_NF_IPTABLES=m
-CONFIG_IP_NF_MATCH_IPRANGE=m
-CONFIG_IP_NF_MATCH_TOS=m
-CONFIG_IP_NF_MATCH_RECENT=m
-CONFIG_IP_NF_MATCH_ECN=m
-CONFIG_IP_NF_MATCH_AH=m
-CONFIG_IP_NF_MATCH_TTL=m
-CONFIG_IP_NF_MATCH_OWNER=m
-CONFIG_IP_NF_MATCH_ADDRTYPE=m
-CONFIG_IP_NF_FILTER=m
-CONFIG_IP_NF_TARGET_REJECT=m
-CONFIG_IP_NF_TARGET_LOG=m
-CONFIG_IP_NF_TARGET_ULOG=m
-CONFIG_NF_NAT=m
-CONFIG_NF_NAT_NEEDED=y
-CONFIG_IP_NF_TARGET_MASQUERADE=m
-CONFIG_IP_NF_TARGET_REDIRECT=m
-CONFIG_IP_NF_TARGET_NETMAP=m
-CONFIG_IP_NF_TARGET_SAME=m
-CONFIG_NF_NAT_SNMP_BASIC=m
-CONFIG_NF_NAT_PROTO_GRE=m
-CONFIG_NF_NAT_FTP=m
-CONFIG_NF_NAT_IRC=m
-CONFIG_NF_NAT_TFTP=m
-CONFIG_NF_NAT_AMANDA=m
-CONFIG_NF_NAT_PPTP=m
-CONFIG_NF_NAT_H323=m
-CONFIG_NF_NAT_SIP=m
-CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_TOS=m
-CONFIG_IP_NF_TARGET_ECN=m
-CONFIG_IP_NF_TARGET_TTL=m
-CONFIG_IP_NF_TARGET_CLUSTERIP=m
-CONFIG_IP_NF_RAW=m
-CONFIG_IP_NF_ARPTABLES=m
-CONFIG_IP_NF_ARPFILTER=m
-CONFIG_IP_NF_ARP_MANGLE=m
-
-#
-# IPv6: Netfilter Configuration (EXPERIMENTAL)
-#
-CONFIG_NF_CONNTRACK_IPV6=m
-# CONFIG_IP6_NF_QUEUE is not set
-CONFIG_IP6_NF_IPTABLES=m
-CONFIG_IP6_NF_MATCH_RT=m
-CONFIG_IP6_NF_MATCH_OPTS=m
-CONFIG_IP6_NF_MATCH_FRAG=m
-CONFIG_IP6_NF_MATCH_HL=m
-CONFIG_IP6_NF_MATCH_OWNER=m
-CONFIG_IP6_NF_MATCH_IPV6HEADER=m
-CONFIG_IP6_NF_MATCH_AH=m
-CONFIG_IP6_NF_MATCH_MH=m
-CONFIG_IP6_NF_MATCH_EUI64=m
-CONFIG_IP6_NF_FILTER=m
-CONFIG_IP6_NF_TARGET_LOG=m
-CONFIG_IP6_NF_TARGET_REJECT=m
-CONFIG_IP6_NF_MANGLE=m
-CONFIG_IP6_NF_TARGET_HL=m
-CONFIG_IP6_NF_RAW=m
-
-#
-# Bridge: Netfilter Configuration
-#
-CONFIG_BRIDGE_NF_EBTABLES=m
-CONFIG_BRIDGE_EBT_BROUTE=m
-CONFIG_BRIDGE_EBT_T_FILTER=m
-CONFIG_BRIDGE_EBT_T_NAT=m
-CONFIG_BRIDGE_EBT_802_3=m
-CONFIG_BRIDGE_EBT_AMONG=m
-CONFIG_BRIDGE_EBT_ARP=m
-CONFIG_BRIDGE_EBT_IP=m
-CONFIG_BRIDGE_EBT_LIMIT=m
-CONFIG_BRIDGE_EBT_MARK=m
-CONFIG_BRIDGE_EBT_PKTTYPE=m
-CONFIG_BRIDGE_EBT_STP=m
-CONFIG_BRIDGE_EBT_VLAN=m
-CONFIG_BRIDGE_EBT_ARPREPLY=m
-CONFIG_BRIDGE_EBT_DNAT=m
-CONFIG_BRIDGE_EBT_MARK_T=m
-CONFIG_BRIDGE_EBT_REDIRECT=m
-CONFIG_BRIDGE_EBT_SNAT=m
-CONFIG_BRIDGE_EBT_LOG=m
-CONFIG_BRIDGE_EBT_ULOG=m
-CONFIG_IP_DCCP=m
-CONFIG_INET_DCCP_DIAG=m
-CONFIG_IP_DCCP_ACKVEC=y
-
-#
-# DCCP CCIDs Configuration (EXPERIMENTAL)
-#
-CONFIG_IP_DCCP_CCID2=m
-# CONFIG_IP_DCCP_CCID2_DEBUG is not set
-CONFIG_IP_DCCP_CCID3=m
-CONFIG_IP_DCCP_TFRC_LIB=m
-# CONFIG_IP_DCCP_CCID3_DEBUG is not set
-CONFIG_IP_DCCP_CCID3_RTO=100
-
-#
-# DCCP Kernel Hacking
-#
-# CONFIG_IP_DCCP_DEBUG is not set
-# CONFIG_NET_DCCPPROBE is not set
-CONFIG_IP_SCTP=m
-# CONFIG_SCTP_DBG_MSG is not set
-# CONFIG_SCTP_DBG_OBJCNT is not set
-# CONFIG_SCTP_HMAC_NONE is not set
-# CONFIG_SCTP_HMAC_SHA1 is not set
-CONFIG_SCTP_HMAC_MD5=y
-CONFIG_TIPC=m
-# CONFIG_TIPC_ADVANCED is not set
-# CONFIG_TIPC_DEBUG is not set
-CONFIG_ATM=m
-CONFIG_ATM_CLIP=m
-# CONFIG_ATM_CLIP_NO_ICMP is not set
-CONFIG_ATM_LANE=m
-CONFIG_ATM_MPOA=m
-CONFIG_ATM_BR2684=m
-# CONFIG_ATM_BR2684_IPFILTER is not set
-CONFIG_BRIDGE=m
-CONFIG_VLAN_8021Q=m
-# CONFIG_DECNET is not set
-CONFIG_LLC=m
-# CONFIG_LLC2 is not set
-# CONFIG_IPX is not set
-# CONFIG_ATALK is not set
-# CONFIG_X25 is not set
-# CONFIG_LAPB is not set
-# CONFIG_ECONET is not set
-# CONFIG_WAN_ROUTER is not set
-CONFIG_NET_SCHED=y
-
-#
-# Queueing/Scheduling
-#
-CONFIG_NET_SCH_CBQ=m
-CONFIG_NET_SCH_HTB=m
-CONFIG_NET_SCH_HFSC=m
-CONFIG_NET_SCH_ATM=m
-CONFIG_NET_SCH_PRIO=m
-CONFIG_NET_SCH_RR=m
-CONFIG_NET_SCH_RED=m
-CONFIG_NET_SCH_SFQ=m
-CONFIG_NET_SCH_TEQL=m
-CONFIG_NET_SCH_TBF=m
-CONFIG_NET_SCH_GRED=m
-CONFIG_NET_SCH_DSMARK=m
-# CONFIG_NET_SCH_NETEM is not set
-CONFIG_NET_SCH_INGRESS=m
-
-#
-# Classification
-#
-CONFIG_NET_CLS=y
-CONFIG_NET_CLS_BASIC=m
-CONFIG_NET_CLS_TCINDEX=m
-CONFIG_NET_CLS_ROUTE4=m
-CONFIG_NET_CLS_ROUTE=y
-CONFIG_NET_CLS_FW=m
-CONFIG_NET_CLS_U32=m
-CONFIG_CLS_U32_PERF=y
-CONFIG_CLS_U32_MARK=y
-CONFIG_NET_CLS_RSVP=m
-CONFIG_NET_CLS_RSVP6=m
-CONFIG_NET_EMATCH=y
-CONFIG_NET_EMATCH_STACK=32
-CONFIG_NET_EMATCH_CMP=m
-CONFIG_NET_EMATCH_NBYTE=m
-CONFIG_NET_EMATCH_U32=m
-CONFIG_NET_EMATCH_META=m
-CONFIG_NET_EMATCH_TEXT=m
-CONFIG_NET_CLS_ACT=y
-CONFIG_NET_ACT_POLICE=m
-CONFIG_NET_ACT_GACT=m
-CONFIG_GACT_PROB=y
-CONFIG_NET_ACT_MIRRED=m
-CONFIG_NET_ACT_IPT=m
-# CONFIG_NET_ACT_NAT is not set
-CONFIG_NET_ACT_PEDIT=m
-# CONFIG_NET_ACT_SIMP is not set
-# CONFIG_NET_CLS_POLICE is not set
-CONFIG_NET_CLS_IND=y
-CONFIG_NET_SCH_FIFO=y
-
-#
-# Network testing
-#
-CONFIG_NET_PKTGEN=m
-# CONFIG_NET_TCPPROBE is not set
-# CONFIG_HAMRADIO is not set
-CONFIG_IRDA=m
-
-#
-# IrDA protocols
-#
-CONFIG_IRLAN=m
-CONFIG_IRNET=m
-CONFIG_IRCOMM=m
-CONFIG_IRDA_ULTRA=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-# CONFIG_IRDA_DEBUG is not set
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=m
-
-#
-# Dongle support
-#
-CONFIG_DONGLE=y
-CONFIG_ESI_DONGLE=m
-CONFIG_ACTISYS_DONGLE=m
-CONFIG_TEKRAM_DONGLE=m
-CONFIG_TOIM3232_DONGLE=m
-CONFIG_LITELINK_DONGLE=m
-CONFIG_MA600_DONGLE=m
-CONFIG_GIRBIL_DONGLE=m
-CONFIG_MCP2120_DONGLE=m
-CONFIG_OLD_BELKIN_DONGLE=m
-CONFIG_ACT200L_DONGLE=m
-CONFIG_KINGSUN_DONGLE=m
-CONFIG_KSDAZZLE_DONGLE=m
-CONFIG_KS959_DONGLE=m
-
-#
-# Old SIR device drivers
-#
-
-#
-# Old Serial dongle support
-#
-
-#
-# FIR device drivers
-#
-CONFIG_USB_IRDA=m
-CONFIG_SIGMATEL_FIR=m
-CONFIG_NSC_FIR=m
-CONFIG_WINBOND_FIR=m
-CONFIG_TOSHIBA_FIR=m
-CONFIG_SMC_IRCC_FIR=m
-CONFIG_ALI_FIR=m
-CONFIG_VLSI_FIR=m
-CONFIG_VIA_FIR=m
-CONFIG_MCS_FIR=m
-CONFIG_BT=m
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_CMTP=m
-CONFIG_BT_HIDP=m
-
-#
-# Bluetooth device drivers
-#
-CONFIG_BT_HCIUSB=m
-CONFIG_BT_HCIUSB_SCO=y
-CONFIG_BT_HCIBTSDIO=m
-CONFIG_BT_HCIUART=m
-CONFIG_BT_HCIUART_H4=y
-CONFIG_BT_HCIUART_BCSP=y
-CONFIG_BT_HCIUART_LL=y
-CONFIG_BT_HCIBCM203X=m
-CONFIG_BT_HCIBPA10X=m
-CONFIG_BT_HCIBFUSB=m
-CONFIG_BT_HCIDTL1=m
-CONFIG_BT_HCIBT3C=m
-CONFIG_BT_HCIBLUECARD=m
-CONFIG_BT_HCIBTUART=m
-# CONFIG_BT_HCIVHCI is not set
-CONFIG_AF_RXRPC=m
-# CONFIG_AF_RXRPC_DEBUG is not set
-CONFIG_RXKAD=m
-CONFIG_FIB_RULES=y
-
-#
-# Wireless
-#
-CONFIG_CFG80211=m
-CONFIG_NL80211=y
-CONFIG_WIRELESS_EXT=y
-CONFIG_MAC80211=m
-CONFIG_MAC80211_RCSIMPLE=y
-# CONFIG_MAC80211_LEDS is not set
-# CONFIG_MAC80211_DEBUGFS is not set
-# CONFIG_MAC80211_DEBUG is not set
-CONFIG_IEEE80211=m
-# CONFIG_IEEE80211_DEBUG is not set
-CONFIG_IEEE80211_CRYPT_WEP=m
-CONFIG_IEEE80211_CRYPT_CCMP=m
-CONFIG_IEEE80211_CRYPT_TKIP=m
-CONFIG_IEEE80211_SOFTMAC=m
-# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
-CONFIG_RFKILL=m
-CONFIG_RFKILL_INPUT=m
-CONFIG_RFKILL_LEDS=y
-# CONFIG_NET_9P is not set
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_UEVENT_HELPER_PATH=""
-CONFIG_DEVTMPFS=y
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-CONFIG_FW_LOADER=m
-# CONFIG_DEBUG_DRIVER is not set
-# CONFIG_DEBUG_DEVRES is not set
-# CONFIG_SYS_HYPERVISOR is not set
-CONFIG_CONNECTOR=m
-# CONFIG_MTD is not set
-CONFIG_PARPORT=m
-CONFIG_PARPORT_PC=m
-CONFIG_PARPORT_SERIAL=m
-CONFIG_PARPORT_PC_FIFO=y
-CONFIG_PARPORT_PC_SUPERIO=y
-CONFIG_PARPORT_PC_PCMCIA=m
-# CONFIG_PARPORT_GSC is not set
-CONFIG_PARPORT_AX88796=m
-CONFIG_PARPORT_1284=y
-CONFIG_PARPORT_NOT_PC=y
-CONFIG_PNP=y
-# CONFIG_PNP_DEBUG is not set
-
-#
-# Protocols
-#
-CONFIG_ISAPNP=y
-# CONFIG_PNPBIOS is not set
-CONFIG_PNPACPI=y
-CONFIG_BLK_DEV=y
-CONFIG_BLK_DEV_FD=m
-# CONFIG_BLK_DEV_XD is not set
-CONFIG_PARIDE=m
-
-#
-# Parallel IDE high-level drivers
-#
-CONFIG_PARIDE_PD=m
-CONFIG_PARIDE_PCD=m
-CONFIG_PARIDE_PF=m
-CONFIG_PARIDE_PT=m
-CONFIG_PARIDE_PG=m
-
-#
-# Parallel IDE protocol modules
-#
-CONFIG_PARIDE_ATEN=m
-CONFIG_PARIDE_BPCK=m
-CONFIG_PARIDE_BPCK6=m
-CONFIG_PARIDE_COMM=m
-CONFIG_PARIDE_DSTR=m
-CONFIG_PARIDE_FIT2=m
-CONFIG_PARIDE_FIT3=m
-CONFIG_PARIDE_EPAT=m
-CONFIG_PARIDE_EPATC8=y
-CONFIG_PARIDE_EPIA=m
-CONFIG_PARIDE_FRIQ=m
-CONFIG_PARIDE_FRPW=m
-CONFIG_PARIDE_KBIC=m
-CONFIG_PARIDE_KTTI=m
-CONFIG_PARIDE_ON20=m
-CONFIG_PARIDE_ON26=m
-CONFIG_BLK_CPQ_DA=m
-CONFIG_BLK_CPQ_CISS_DA=m
-CONFIG_CISS_SCSI_TAPE=y
-CONFIG_BLK_DEV_DAC960=m
-CONFIG_BLK_DEV_UMEM=m
-# CONFIG_BLK_DEV_COW_COMMON is not set
-CONFIG_BLK_DEV_LOOP=y
-# CONFIG_BLK_DEV_CRYPTOLOOP is not set
-CONFIG_BLK_DEV_NBD=m
-CONFIG_BLK_DEV_SX8=m
-# CONFIG_BLK_DEV_UB is not set
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_BLK_DEV_RAM_SIZE=8192
-CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
-CONFIG_CDROM_PKTCDVD=m
-CONFIG_CDROM_PKTCDVD_BUFFERS=8
-# CONFIG_CDROM_PKTCDVD_WCACHE is not set
-CONFIG_ATA_OVER_ETH=m
-CONFIG_XEN_BLKDEV_FRONTEND=y
-CONFIG_MISC_DEVICES=y
-CONFIG_IBM_ASM=m
-# CONFIG_PHANTOM is not set
-CONFIG_EEPROM_93CX6=m
-# CONFIG_SGI_IOC4 is not set
-CONFIG_TIFM_CORE=m
-CONFIG_TIFM_7XX1=m
-# CONFIG_ASUS_LAPTOP is not set
-CONFIG_FUJITSU_LAPTOP=m
-CONFIG_MSI_LAPTOP=m
-CONFIG_SONY_LAPTOP=m
-CONFIG_SONYPI_COMPAT=y
-CONFIG_THINKPAD_ACPI=m
-# CONFIG_THINKPAD_ACPI_DEBUG is not set
-CONFIG_THINKPAD_ACPI_BAY=y
-# CONFIG_IDE is not set
-CONFIG_BLK_DEV_IDE=y
-
-#
-# Please see Documentation/ide.txt for help/info on IDE drives
-#
-# CONFIG_BLK_DEV_IDE_SATA is not set
-# CONFIG_BLK_DEV_HD_IDE is not set
-CONFIG_BLK_DEV_IDEDISK=y
-CONFIG_IDEDISK_MULTI_MODE=y
-CONFIG_BLK_DEV_IDECS=m
-CONFIG_BLK_DEV_DELKIN=m
-CONFIG_BLK_DEV_IDECD=y
-CONFIG_BLK_DEV_IDETAPE=m
-CONFIG_BLK_DEV_IDEFLOPPY=m
-CONFIG_BLK_DEV_IDESCSI=m
-CONFIG_BLK_DEV_IDEACPI=y
-CONFIG_IDE_TASK_IOCTL=y
-CONFIG_IDE_PROC_FS=y
-
-#
-# IDE chipset support/bugfixes
-#
-CONFIG_IDE_GENERIC=y
-CONFIG_BLK_DEV_PLATFORM=y
-CONFIG_BLK_DEV_CMD640=y
-CONFIG_BLK_DEV_CMD640_ENHANCED=y
-CONFIG_BLK_DEV_IDEPNP=y
-
-#
-# PCI IDE chipsets support
-#
-CONFIG_BLK_DEV_IDEPCI=y
-CONFIG_IDEPCI_SHARE_IRQ=y
-CONFIG_IDEPCI_PCIBUS_ORDER=y
-# CONFIG_BLK_DEV_OFFBOARD is not set
-CONFIG_BLK_DEV_GENERIC=y
-CONFIG_BLK_DEV_OPTI621=y
-CONFIG_BLK_DEV_RZ1000=y
-CONFIG_BLK_DEV_IDEDMA_PCI=y
-CONFIG_BLK_DEV_AEC62XX=y
-CONFIG_BLK_DEV_ALI15X3=y
-# CONFIG_WDC_ALI15X3 is not set
-# CONFIG_BLK_DEV_AMD74XX is not set
-CONFIG_BLK_DEV_ATIIXP=y
-CONFIG_BLK_DEV_CMD64X=y
-CONFIG_BLK_DEV_TRIFLEX=y
-CONFIG_BLK_DEV_CY82C693=y
-CONFIG_BLK_DEV_CS5520=y
-CONFIG_BLK_DEV_CS5530=y
-CONFIG_BLK_DEV_CS5535=y
-CONFIG_BLK_DEV_HPT34X=y
-# CONFIG_HPT34X_AUTODMA is not set
-CONFIG_BLK_DEV_HPT366=y
-CONFIG_BLK_DEV_JMICRON=m
-CONFIG_BLK_DEV_SC1200=y
-CONFIG_BLK_DEV_PIIX=y
-# CONFIG_BLK_DEV_IT8213 is not set
-CONFIG_BLK_DEV_IT821X=y
-CONFIG_BLK_DEV_NS87415=y
-CONFIG_BLK_DEV_PDC202XX_OLD=y
-# CONFIG_PDC202XX_BURST is not set
-CONFIG_BLK_DEV_PDC202XX_NEW=y
-CONFIG_BLK_DEV_SVWKS=y
-CONFIG_BLK_DEV_SIIMAGE=m
-CONFIG_BLK_DEV_SIS5513=y
-CONFIG_BLK_DEV_SLC90E66=y
-CONFIG_BLK_DEV_TRM290=y
-CONFIG_BLK_DEV_VIA82CXXX=y
-CONFIG_BLK_DEV_TC86C001=y
-# CONFIG_IDE_ARM is not set
-
-#
-# Other IDE chipsets support
-#
-
-#
-# Note: most of these also require special kernel boot parameters
-#
-CONFIG_BLK_DEV_4DRIVES=y
-CONFIG_BLK_DEV_ALI14XX=y
-CONFIG_BLK_DEV_DTC2278=y
-CONFIG_BLK_DEV_HT6560B=y
-CONFIG_BLK_DEV_QD65XX=y
-CONFIG_BLK_DEV_UMC8672=y
-CONFIG_BLK_DEV_IDEDMA=y
-CONFIG_IDE_ARCH_OBSOLETE_INIT=y
-# CONFIG_BLK_DEV_HD is not set
-
-#
-# SCSI device support
-#
-CONFIG_RAID_ATTRS=m
-CONFIG_SCSI=y
-CONFIG_SCSI_DMA=y
-CONFIG_SCSI_TGT=m
-CONFIG_SCSI_NETLINK=y
-CONFIG_SCSI_PROC_FS=y
-
-#
-# SCSI support type (disk, tape, CD-ROM)
-#
-CONFIG_BLK_DEV_SD=y
-CONFIG_CHR_DEV_ST=m
-CONFIG_CHR_DEV_OSST=m
-CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
-CONFIG_CHR_DEV_SG=m
-CONFIG_CHR_DEV_SCH=m
-
-#
-# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
-#
-CONFIG_SCSI_MULTI_LUN=y
-CONFIG_SCSI_CONSTANTS=y
-CONFIG_SCSI_LOGGING=y
-CONFIG_SCSI_SCAN_ASYNC=y
-CONFIG_SCSI_WAIT_SCAN=m
-
-#
-# SCSI Transports
-#
-CONFIG_SCSI_SPI_ATTRS=m
-CONFIG_SCSI_FC_ATTRS=m
-CONFIG_SCSI_FC_TGT_ATTRS=y
-# CONFIG_SCSI_ISCSI_ATTRS is not set
-CONFIG_SCSI_SAS_ATTRS=m
-CONFIG_SCSI_SAS_LIBSAS=m
-CONFIG_SCSI_SAS_ATA=y
-# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
-CONFIG_SCSI_SRP_ATTRS=m
-CONFIG_SCSI_SRP_TGT_ATTRS=y
-CONFIG_SCSI_LOWLEVEL=y
-# CONFIG_ISCSI_TCP is not set
-CONFIG_BLK_DEV_3W_XXXX_RAID=m
-CONFIG_SCSI_3W_9XXX=m
-CONFIG_SCSI_7000FASST=m
-CONFIG_SCSI_ACARD=m
-CONFIG_SCSI_AHA152X=m
-CONFIG_SCSI_AHA1542=m
-CONFIG_SCSI_AACRAID=m
-CONFIG_SCSI_AIC7XXX=m
-CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
-CONFIG_AIC7XXX_RESET_DELAY_MS=15000
-# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
-CONFIG_AIC7XXX_DEBUG_MASK=0
-CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
-# CONFIG_SCSI_AIC7XXX_OLD is not set
-CONFIG_SCSI_AIC79XX=m
-CONFIG_AIC79XX_CMDS_PER_DEVICE=32
-CONFIG_AIC79XX_RESET_DELAY_MS=15000
-# CONFIG_AIC79XX_DEBUG_ENABLE is not set
-CONFIG_AIC79XX_DEBUG_MASK=0
-# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set
-CONFIG_SCSI_AIC94XX=m
-# CONFIG_AIC94XX_DEBUG is not set
-CONFIG_SCSI_DPT_I2O=m
-CONFIG_SCSI_ADVANSYS=m
-CONFIG_SCSI_IN2000=m
-CONFIG_SCSI_ARCMSR=m
-# CONFIG_SCSI_ARCMSR_AER is not set
-CONFIG_MEGARAID_NEWGEN=y
-CONFIG_MEGARAID_MM=m
-CONFIG_MEGARAID_MAILBOX=m
-CONFIG_MEGARAID_LEGACY=m
-CONFIG_MEGARAID_SAS=m
-CONFIG_SCSI_HPTIOP=m
-CONFIG_SCSI_BUSLOGIC=m
-# CONFIG_SCSI_OMIT_FLASHPOINT is not set
-CONFIG_SCSI_DMX3191D=m
-CONFIG_SCSI_DTC3280=m
-CONFIG_SCSI_EATA=m
-CONFIG_SCSI_EATA_TAGGED_QUEUE=y
-CONFIG_SCSI_EATA_LINKED_COMMANDS=y
-CONFIG_SCSI_EATA_MAX_TAGS=16
-CONFIG_SCSI_FUTURE_DOMAIN=m
-CONFIG_SCSI_GDTH=m
-CONFIG_SCSI_GENERIC_NCR5380=m
-CONFIG_SCSI_GENERIC_NCR5380_MMIO=m
-CONFIG_SCSI_GENERIC_NCR53C400=y
-CONFIG_SCSI_IPS=m
-CONFIG_SCSI_INITIO=m
-CONFIG_SCSI_INIA100=m
-CONFIG_SCSI_PPA=m
-CONFIG_SCSI_IMM=m
-# CONFIG_SCSI_IZIP_EPP16 is not set
-# CONFIG_SCSI_IZIP_SLOW_CTR is not set
-CONFIG_SCSI_NCR53C406A=m
-CONFIG_SCSI_STEX=m
-CONFIG_SCSI_SYM53C8XX_2=m
-CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
-CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
-CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
-CONFIG_SCSI_SYM53C8XX_MMIO=y
-CONFIG_SCSI_IPR=m
-CONFIG_SCSI_IPR_TRACE=y
-CONFIG_SCSI_IPR_DUMP=y
-CONFIG_SCSI_PAS16=m
-CONFIG_SCSI_PSI240I=m
-CONFIG_SCSI_QLOGIC_FAS=m
-CONFIG_SCSI_QLOGIC_1280=m
-CONFIG_SCSI_QLA_FC=m
-# CONFIG_SCSI_QLA_ISCSI is not set
-CONFIG_SCSI_LPFC=m
-CONFIG_SCSI_SEAGATE=m
-CONFIG_SCSI_SYM53C416=m
-CONFIG_SCSI_DC395x=m
-CONFIG_SCSI_DC390T=m
-CONFIG_SCSI_T128=m
-CONFIG_SCSI_U14_34F=m
-CONFIG_SCSI_U14_34F_TAGGED_QUEUE=y
-CONFIG_SCSI_U14_34F_LINKED_COMMANDS=y
-CONFIG_SCSI_U14_34F_MAX_TAGS=8
-CONFIG_SCSI_ULTRASTOR=m
-CONFIG_SCSI_NSP32=m
-# CONFIG_SCSI_DEBUG is not set
-CONFIG_SCSI_SRP=m
-CONFIG_SCSI_LOWLEVEL_PCMCIA=y
-CONFIG_PCMCIA_AHA152X=m
-CONFIG_PCMCIA_FDOMAIN=m
-CONFIG_PCMCIA_NINJA_SCSI=m
-CONFIG_PCMCIA_QLOGIC=m
-CONFIG_PCMCIA_SYM53C500=m
-CONFIG_ATA=y
-# CONFIG_ATA_NONSTANDARD is not set
-CONFIG_ATA_ACPI=y
-CONFIG_SATA_AHCI=m
-CONFIG_SATA_SVW=m
-CONFIG_ATA_PIIX=m
-CONFIG_SATA_MV=m
-CONFIG_SATA_NV=m
-CONFIG_PDC_ADMA=m
-CONFIG_SATA_QSTOR=m
-CONFIG_SATA_PROMISE=m
-CONFIG_SATA_SX4=m
-CONFIG_SATA_SIL=m
-CONFIG_SATA_SIL24=m
-CONFIG_SATA_SIS=m
-CONFIG_SATA_ULI=m
-CONFIG_SATA_VIA=m
-CONFIG_SATA_VITESSE=m
-CONFIG_SATA_INIC162X=m
-CONFIG_PATA_ACPI=m
-CONFIG_PATA_ALI=y
-CONFIG_PATA_AMD=y
-CONFIG_PATA_ARTOP=y
-CONFIG_PATA_ATIIXP=y
-CONFIG_PATA_CMD640_PCI=y
-CONFIG_PATA_CMD64X=y
-CONFIG_PATA_CS5520=y
-CONFIG_PATA_CS5530=y
-CONFIG_PATA_CS5535=y
-CONFIG_PATA_CS5536=y
-# CONFIG_PATA_CYPRESS is not set
-CONFIG_PATA_EFAR=y
-CONFIG_ATA_GENERIC=y
-CONFIG_PATA_HPT366=y
-CONFIG_PATA_HPT37X=y
-CONFIG_PATA_HPT3X2N=y
-CONFIG_PATA_HPT3X3=y
-CONFIG_PATA_HPT3X3_DMA=m
-CONFIG_PATA_ISAPNP=y
-CONFIG_PATA_IT821X=y
-CONFIG_PATA_IT8213=y
-CONFIG_PATA_JMICRON=y
-CONFIG_PATA_LEGACY=y
-CONFIG_PATA_TRIFLEX=y
-CONFIG_PATA_MARVELL=y
-CONFIG_PATA_MPIIX=y
-# CONFIG_PATA_OLDPIIX is not set
-CONFIG_PATA_NETCELL=y
-CONFIG_PATA_NS87410=y
-CONFIG_PATA_NS87415=y
-CONFIG_PATA_OPTI=y
-CONFIG_PATA_OPTIDMA=y
-CONFIG_PATA_PCMCIA=m
-CONFIG_PATA_PDC_OLD=y
-CONFIG_PATA_QDI=y
-CONFIG_PATA_RADISYS=y
-CONFIG_PATA_RZ1000=y
-CONFIG_PATA_SC1200=y
-CONFIG_PATA_SERVERWORKS=y
-CONFIG_PATA_PDC2027X=y
-CONFIG_PATA_SIL680=y
-CONFIG_PATA_SIS=y
-CONFIG_PATA_VIA=y
-CONFIG_PATA_WINBOND=y
-CONFIG_PATA_WINBOND_VLB=y
-CONFIG_MD=y
-CONFIG_BLK_DEV_MD=y
-CONFIG_MD_LINEAR=m
-CONFIG_MD_RAID0=y
-CONFIG_MD_RAID1=y
-CONFIG_MD_RAID10=m
-CONFIG_MD_RAID456=y
-CONFIG_MD_RAID5_RESHAPE=y
-CONFIG_MD_MULTIPATH=m
-CONFIG_MD_FAULTY=m
-CONFIG_BLK_DEV_DM=m
-# CONFIG_DM_DEBUG is not set
-CONFIG_DM_CRYPT=m
-CONFIG_DM_SNAPSHOT=m
-CONFIG_DM_MIRROR=m
-CONFIG_DM_ZERO=m
-# CONFIG_DM_MULTIPATH is not set
-# CONFIG_DM_MULTIPATH_EMC is not set
-# CONFIG_DM_MULTIPATH_RDAC is not set
-# CONFIG_DM_MULTIPATH_HP is not set
-# CONFIG_DM_DELAY is not set
-CONFIG_DM_UEVENT=y
-CONFIG_BLK_DEV_DM_BBR=m
-CONFIG_FUSION=y
-CONFIG_FUSION_SPI=m
-CONFIG_FUSION_FC=m
-CONFIG_FUSION_SAS=m
-CONFIG_FUSION_MAX_SGE=128
-CONFIG_FUSION_CTL=m
-CONFIG_FUSION_LAN=m
-CONFIG_FUSION_LOGGING=y
-
-#
-# IEEE 1394 (FireWire) support
-#
-# CONFIG_FIREWIRE is not set
-CONFIG_IEEE1394=m
-
-#
-# Subsystem Options
-#
-# CONFIG_IEEE1394_VERBOSEDEBUG is not set
-
-#
-# Controllers
-#
-CONFIG_IEEE1394_PCILYNX=m
-CONFIG_IEEE1394_OHCI1394=m
-
-#
-# Protocols
-#
-CONFIG_IEEE1394_VIDEO1394=m
-CONFIG_IEEE1394_SBP2=m
-# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set
-CONFIG_IEEE1394_ETH1394_ROM_ENTRY=y
-CONFIG_IEEE1394_ETH1394=m
-CONFIG_IEEE1394_DV1394=m
-CONFIG_IEEE1394_RAWIO=m
-CONFIG_I2O=m
-CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
-CONFIG_I2O_EXT_ADAPTEC=y
-CONFIG_I2O_EXT_ADAPTEC_DMA64=y
-CONFIG_I2O_CONFIG=m
-CONFIG_I2O_CONFIG_OLD_IOCTL=y
-CONFIG_I2O_BUS=m
-CONFIG_I2O_BLOCK=m
-CONFIG_I2O_SCSI=m
-CONFIG_I2O_PROC=m
-CONFIG_MACINTOSH_DRIVERS=y
-CONFIG_MAC_EMUMOUSEBTN=y
-CONFIG_NETDEVICES=y
-CONFIG_NETDEVICES_MULTIQUEUE=y
-# CONFIG_IFB is not set
-# CONFIG_DUMMY is not set
-CONFIG_BONDING=m
-# CONFIG_MACVLAN is not set
-CONFIG_EQUALIZER=m
-CONFIG_TUN=m
-# CONFIG_VETH is not set
-CONFIG_NET_SB1000=m
-# CONFIG_ARCNET is not set
-CONFIG_PHYLIB=m
-
-#
-# MII PHY device drivers
-#
-CONFIG_MARVELL_PHY=m
-CONFIG_DAVICOM_PHY=m
-CONFIG_QSEMI_PHY=m
-CONFIG_LXT_PHY=m
-CONFIG_CICADA_PHY=m
-CONFIG_VITESSE_PHY=m
-CONFIG_SMSC_PHY=m
-CONFIG_BROADCOM_PHY=m
-CONFIG_ICPLUS_PHY=m
-CONFIG_FIXED_PHY=m
-CONFIG_FIXED_MII_10_FDX=y
-CONFIG_FIXED_MII_100_FDX=y
-CONFIG_FIXED_MII_1000_FDX=y
-CONFIG_FIXED_MII_AMNT=1
-CONFIG_MDIO_BITBANG=m
-CONFIG_NET_ETHERNET=y
-CONFIG_MII=m
-CONFIG_HAPPYMEAL=m
-CONFIG_SUNGEM=m
-CONFIG_CASSINI=m
-CONFIG_NET_VENDOR_3COM=y
-CONFIG_EL1=m
-CONFIG_EL2=m
-CONFIG_ELPLUS=m
-CONFIG_EL16=m
-CONFIG_EL3=m
-CONFIG_3C515=m
-CONFIG_VORTEX=m
-CONFIG_TYPHOON=m
-CONFIG_LANCE=m
-CONFIG_NET_VENDOR_SMC=y
-CONFIG_WD80x3=m
-CONFIG_ULTRA=m
-CONFIG_SMC9194=m
-CONFIG_NET_VENDOR_RACAL=y
-CONFIG_NI52=m
-CONFIG_NI65=m
-CONFIG_NET_TULIP=y
-CONFIG_DE2104X=m
-CONFIG_TULIP=m
-CONFIG_TULIP_MWI=y
-CONFIG_TULIP_MMIO=y
-CONFIG_TULIP_NAPI=y
-CONFIG_TULIP_NAPI_HW_MITIGATION=y
-CONFIG_DE4X5=m
-CONFIG_WINBOND_840=m
-CONFIG_DM9102=m
-CONFIG_ULI526X=m
-CONFIG_PCMCIA_XIRCOM=m
-CONFIG_AT1700=m
-CONFIG_DEPCA=m
-CONFIG_HP100=m
-CONFIG_NET_ISA=y
-CONFIG_E2100=m
-CONFIG_EWRK3=m
-CONFIG_EEXPRESS=m
-CONFIG_EEXPRESS_PRO=m
-CONFIG_HPLAN_PLUS=m
-CONFIG_HPLAN=m
-CONFIG_LP486E=m
-CONFIG_ETH16I=m
-CONFIG_NE2000=m
-CONFIG_ZNET=m
-CONFIG_SEEQ8005=m
-# CONFIG_IBM_NEW_EMAC_ZMII is not set
-# CONFIG_IBM_NEW_EMAC_RGMII is not set
-# CONFIG_IBM_NEW_EMAC_TAH is not set
-# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-CONFIG_NET_PCI=y
-CONFIG_PCNET32=m
-CONFIG_PCNET32_NAPI=y
-CONFIG_AMD8111_ETH=m
-CONFIG_AMD8111E_NAPI=y
-CONFIG_ADAPTEC_STARFIRE=m
-CONFIG_ADAPTEC_STARFIRE_NAPI=y
-CONFIG_AC3200=m
-CONFIG_APRICOT=m
-CONFIG_B44=m
-CONFIG_B44_PCI_AUTOSELECT=y
-CONFIG_B44_PCICORE_AUTOSELECT=y
-CONFIG_B44_PCI=y
-CONFIG_FORCEDETH=m
-CONFIG_FORCEDETH_NAPI=y
-CONFIG_CS89x0=m
-CONFIG_EEPRO100=m
-CONFIG_E100=m
-CONFIG_FEALNX=m
-CONFIG_NATSEMI=m
-CONFIG_NE2K_PCI=m
-CONFIG_8139CP=m
-CONFIG_8139TOO=m
-# CONFIG_8139TOO_PIO is not set
-CONFIG_8139TOO_TUNE_TWISTER=y
-CONFIG_8139TOO_8129=y
-# CONFIG_8139_OLD_RX_RESET is not set
-CONFIG_SIS900=m
-CONFIG_EPIC100=m
-CONFIG_SUNDANCE=m
-CONFIG_SUNDANCE_MMIO=y
-CONFIG_TLAN=m
-CONFIG_VIA_RHINE=m
-CONFIG_VIA_RHINE_MMIO=y
-CONFIG_VIA_RHINE_NAPI=y
-CONFIG_SC92031=m
-CONFIG_NET_POCKET=y
-CONFIG_ATP=m
-CONFIG_DE600=m
-CONFIG_DE620=m
-CONFIG_NETDEV_1000=y
-CONFIG_ACENIC=m
-# CONFIG_ACENIC_OMIT_TIGON_I is not set
-CONFIG_DL2K=m
-CONFIG_E1000=m
-CONFIG_E1000_NAPI=y
-# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
-CONFIG_E1000E=m
-CONFIG_IP1000=m
-CONFIG_NS83820=m
-CONFIG_HAMACHI=m
-CONFIG_YELLOWFIN=m
-CONFIG_R8169=m
-CONFIG_R8169_NAPI=y
-CONFIG_R8169_VLAN=y
-CONFIG_SIS190=m
-CONFIG_SKGE=m
-# CONFIG_SKGE_DEBUG is not set
-CONFIG_SKY2=m
-# CONFIG_SKY2_DEBUG is not set
-# CONFIG_SK98LIN is not set
-CONFIG_VIA_VELOCITY=m
-CONFIG_TIGON3=m
-CONFIG_BNX2=m
-CONFIG_QLA3XXX=m
-CONFIG_ATL1=m
-CONFIG_NETDEV_10000=y
-CONFIG_CHELSIO_T1=m
-CONFIG_CHELSIO_T1_1G=y
-CONFIG_CHELSIO_T1_NAPI=y
-CONFIG_CHELSIO_T3=m
-CONFIG_IXGBE=m
-CONFIG_IXGB=m
-CONFIG_IXGB_NAPI=y
-CONFIG_S2IO=m
-CONFIG_S2IO_NAPI=y
-CONFIG_MYRI10GE=m
-CONFIG_NETXEN_NIC=m
-CONFIG_NIU=m
-CONFIG_MLX4_CORE=m
-CONFIG_MLX4_DEBUG=y
-CONFIG_TEHUTI=m
-# CONFIG_TR is not set
-
-#
-# Wireless LAN
-#
-# CONFIG_WLAN_PRE80211 is not set
-CONFIG_WLAN_80211=y
-# CONFIG_PCMCIA_RAYCS is not set
-CONFIG_IPW2100=m
-CONFIG_IPW2100_MONITOR=y
-# CONFIG_IPW2100_DEBUG is not set
-CONFIG_IPW2200=m
-CONFIG_IPW2200_MONITOR=y
-CONFIG_IPW2200_RADIOTAP=y
-CONFIG_IPW2200_PROMISCUOUS=y
-CONFIG_IPW2200_QOS=y
-# CONFIG_IPW2200_DEBUG is not set
-CONFIG_LIBERTAS=m
-CONFIG_LIBERTAS_USB=m
-CONFIG_LIBERTAS_CS=m
-CONFIG_LIBERTAS_SDIO=m
-# CONFIG_LIBERTAS_DEBUG is not set
-CONFIG_AIRO=m
-CONFIG_HERMES=m
-CONFIG_PLX_HERMES=m
-CONFIG_TMD_HERMES=m
-CONFIG_NORTEL_HERMES=m
-CONFIG_PCI_HERMES=m
-CONFIG_PCMCIA_HERMES=m
-CONFIG_PCMCIA_SPECTRUM=m
-CONFIG_ATMEL=m
-CONFIG_PCI_ATMEL=m
-CONFIG_PCMCIA_ATMEL=m
-CONFIG_AIRO_CS=m
-CONFIG_PCMCIA_WL3501=m
-CONFIG_PRISM54=m
-CONFIG_USB_ZD1201=m
-CONFIG_RTL8187=m
-CONFIG_ADM8211=m
-CONFIG_P54_COMMON=m
-CONFIG_P54_USB=m
-CONFIG_P54_PCI=m
-CONFIG_IWLWIFI=y
-# CONFIG_IWLWIFI_DEBUG is not set
-CONFIG_IWLWIFI_SENSITIVITY=y
-CONFIG_IWLWIFI_SPECTRUM_MEASUREMENT=y
-CONFIG_IWLWIFI_QOS=y
-CONFIG_IWL4965=m
-CONFIG_IWL3945=m
-CONFIG_HOSTAP=m
-CONFIG_HOSTAP_FIRMWARE=y
-CONFIG_HOSTAP_FIRMWARE_NVRAM=y
-CONFIG_HOSTAP_PLX=m
-CONFIG_HOSTAP_PCI=m
-CONFIG_HOSTAP_CS=m
-CONFIG_BCM43XX=m
-CONFIG_BCM43XX_DEBUG=y
-CONFIG_BCM43XX_DMA=y
-CONFIG_BCM43XX_PIO=y
-CONFIG_BCM43XX_DMA_AND_PIO_MODE=y
-# CONFIG_BCM43XX_DMA_MODE is not set
-# CONFIG_BCM43XX_PIO_MODE is not set
-CONFIG_B43=m
-CONFIG_B43_PCI_AUTOSELECT=y
-CONFIG_B43_PCICORE_AUTOSELECT=y
-CONFIG_B43_PCMCIA=y
-CONFIG_B43_RFKILL=y
-# CONFIG_B43_DEBUG is not set
-CONFIG_B43_DMA=y
-CONFIG_B43_PIO=y
-CONFIG_B43_DMA_AND_PIO_MODE=y
-# CONFIG_B43_DMA_MODE is not set
-# CONFIG_B43_PIO_MODE is not set
-CONFIG_B43LEGACY=m
-CONFIG_B43LEGACY_PCI_AUTOSELECT=y
-CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
-CONFIG_B43LEGACY_DEBUG=y
-CONFIG_B43LEGACY_DMA=y
-CONFIG_B43LEGACY_PIO=y
-CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
-# CONFIG_B43LEGACY_DMA_MODE is not set
-# CONFIG_B43LEGACY_PIO_MODE is not set
-CONFIG_ZD1211RW=m
-# CONFIG_ZD1211RW_DEBUG is not set
-CONFIG_RT2X00=m
-CONFIG_RT2X00_LIB=m
-CONFIG_RT2X00_LIB_PCI=m
-CONFIG_RT2X00_LIB_USB=m
-CONFIG_RT2X00_LIB_FIRMWARE=y
-CONFIG_RT2X00_LIB_RFKILL=y
-CONFIG_RT2400PCI=m
-CONFIG_RT2400PCI_RFKILL=y
-CONFIG_RT2500PCI=m
-CONFIG_RT2500PCI_RFKILL=y
-CONFIG_RT61PCI=m
-CONFIG_RT61PCI_RFKILL=y
-CONFIG_RT2500USB=m
-CONFIG_RT73USB=m
-# CONFIG_RT2X00_DEBUG is not set
-
-#
-# USB Network Adapters
-#
-CONFIG_USB_CATC=m
-CONFIG_USB_KAWETH=m
-CONFIG_USB_PEGASUS=m
-CONFIG_USB_RTL8150=m
-CONFIG_USB_USBNET=m
-CONFIG_USB_NET_AX8817X=m
-CONFIG_USB_NET_CDCETHER=m
-CONFIG_USB_NET_DM9601=m
-CONFIG_USB_NET_GL620A=m
-CONFIG_USB_NET_NET1080=m
-CONFIG_USB_NET_PLUSB=m
-CONFIG_USB_NET_MCS7830=m
-CONFIG_USB_NET_RNDIS_HOST=m
-CONFIG_USB_NET_CDC_SUBSET=m
-CONFIG_USB_ALI_M5632=y
-CONFIG_USB_AN2720=y
-CONFIG_USB_BELKIN=y
-CONFIG_USB_ARMLINUX=y
-CONFIG_USB_EPSON2888=y
-CONFIG_USB_KC2190=y
-CONFIG_USB_NET_ZAURUS=m
-CONFIG_NET_PCMCIA=y
-CONFIG_PCMCIA_3C589=m
-CONFIG_PCMCIA_3C574=m
-CONFIG_PCMCIA_FMVJ18X=m
-CONFIG_PCMCIA_PCNET=m
-CONFIG_PCMCIA_NMCLAN=m
-CONFIG_PCMCIA_SMC91C92=m
-CONFIG_PCMCIA_XIRC2PS=m
-CONFIG_PCMCIA_AXNET=m
-CONFIG_WAN=y
-CONFIG_HOSTESS_SV11=m
-CONFIG_COSA=m
-CONFIG_LANMEDIA=m
-CONFIG_SEALEVEL_4021=m
-CONFIG_HDLC=m
-CONFIG_HDLC_RAW=m
-CONFIG_HDLC_RAW_ETH=m
-CONFIG_HDLC_CISCO=m
-CONFIG_HDLC_FR=m
-CONFIG_HDLC_PPP=m
-
-#
-# X.25/LAPB support is disabled
-#
-CONFIG_PCI200SYN=m
-CONFIG_WANXL=m
-CONFIG_PC300=m
-CONFIG_PC300_MLPPP=y
-
-#
-# Cyclades-PC300 MLPPP support is disabled.
-#
-
-#
-# Refer to the file README.mlppp, provided by PC300 package.
-#
-CONFIG_PC300TOO=m
-CONFIG_N2=m
-CONFIG_C101=m
-CONFIG_FARSYNC=m
-CONFIG_DSCC4=m
-CONFIG_DSCC4_PCISYNC=y
-CONFIG_DSCC4_PCI_RST=y
-CONFIG_DLCI=m
-CONFIG_DLCI_MAX=8
-CONFIG_SDLA=m
-CONFIG_SBNI=m
-CONFIG_SBNI_MULTILINE=y
-CONFIG_ATM_DRIVERS=y
-# CONFIG_ATM_DUMMY is not set
-# CONFIG_ATM_TCP is not set
-CONFIG_ATM_LANAI=m
-CONFIG_ATM_ENI=m
-# CONFIG_ATM_ENI_DEBUG is not set
-# CONFIG_ATM_ENI_TUNE_BURST is not set
-CONFIG_ATM_FIRESTREAM=m
-CONFIG_ATM_ZATM=m
-# CONFIG_ATM_ZATM_DEBUG is not set
-CONFIG_ATM_NICSTAR=m
-# CONFIG_ATM_NICSTAR_USE_SUNI is not set
-# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
-CONFIG_ATM_IDT77252=m
-# CONFIG_ATM_IDT77252_DEBUG is not set
-# CONFIG_ATM_IDT77252_RCV_ALL is not set
-CONFIG_ATM_IDT77252_USE_SUNI=y
-CONFIG_ATM_AMBASSADOR=m
-# CONFIG_ATM_AMBASSADOR_DEBUG is not set
-CONFIG_ATM_HORIZON=m
-# CONFIG_ATM_HORIZON_DEBUG is not set
-CONFIG_ATM_IA=m
-# CONFIG_ATM_IA_DEBUG is not set
-CONFIG_ATM_FORE200E_MAYBE=m
-CONFIG_ATM_FORE200E_PCA=y
-CONFIG_ATM_FORE200E_PCA_DEFAULT_FW=y
-CONFIG_ATM_FORE200E_USE_TASKLET=y
-CONFIG_ATM_FORE200E_TX_RETRY=16
-CONFIG_ATM_FORE200E_DEBUG=0
-CONFIG_ATM_FORE200E=m
-CONFIG_ATM_HE=m
-CONFIG_ATM_HE_USE_SUNI=y
-CONFIG_XEN_NETDEV_FRONTEND=y
-CONFIG_FDDI=y
-CONFIG_DEFXX=m
-CONFIG_DEFXX_MMIO=y
-CONFIG_SKFP=m
-CONFIG_HIPPI=y
-CONFIG_ROADRUNNER=m
-# CONFIG_ROADRUNNER_LARGE_RINGS is not set
-CONFIG_PLIP=m
-CONFIG_PPP=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_MPPE=m
-CONFIG_PPPOE=m
-CONFIG_PPPOATM=m
-CONFIG_PPPOL2TP=m
-CONFIG_SLIP=m
-CONFIG_SLIP_COMPRESSED=y
-CONFIG_SLHC=m
-CONFIG_SLIP_SMART=y
-CONFIG_SLIP_MODE_SLIP6=y
-CONFIG_NET_FC=y
-# CONFIG_SHAPER is not set
-# CONFIG_NETCONSOLE is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
-CONFIG_ISDN=m
-# CONFIG_ISDN_I4L is not set
-CONFIG_ISDN_CAPI=m
-CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
-CONFIG_CAPI_TRACE=y
-CONFIG_ISDN_CAPI_MIDDLEWARE=y
-CONFIG_ISDN_CAPI_CAPI20=m
-CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
-CONFIG_ISDN_CAPI_CAPIFS=m
-
-#
-# CAPI hardware drivers
-#
-CONFIG_CAPI_AVM=y
-CONFIG_ISDN_DRV_AVMB1_B1ISA=m
-CONFIG_ISDN_DRV_AVMB1_B1PCI=m
-CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
-CONFIG_ISDN_DRV_AVMB1_T1ISA=m
-CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
-CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
-CONFIG_ISDN_DRV_AVMB1_T1PCI=m
-CONFIG_ISDN_DRV_AVMB1_C4=m
-CONFIG_CAPI_EICON=y
-CONFIG_ISDN_DIVAS=m
-CONFIG_ISDN_DIVAS_BRIPCI=y
-CONFIG_ISDN_DIVAS_PRIPCI=y
-CONFIG_ISDN_DIVAS_DIVACAPI=m
-CONFIG_ISDN_DIVAS_USERIDI=m
-CONFIG_ISDN_DIVAS_MAINT=m
-# CONFIG_PHONE is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-CONFIG_INPUT_FF_MEMLESS=m
-CONFIG_INPUT_POLLDEV=m
-
-#
-# Userland interfaces
-#
-CONFIG_INPUT_MOUSEDEV=y
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-CONFIG_INPUT_JOYDEV=m
-CONFIG_INPUT_EVDEV=y
-# CONFIG_INPUT_EVBUG is not set
-
-#
-# Input Device Drivers
-#
-CONFIG_INPUT_KEYBOARD=y
-CONFIG_KEYBOARD_ATKBD=y
-CONFIG_KEYBOARD_SUNKBD=m
-CONFIG_KEYBOARD_LKKBD=m
-CONFIG_KEYBOARD_XTKBD=m
-CONFIG_KEYBOARD_NEWTON=m
-CONFIG_KEYBOARD_STOWAWAY=m
-CONFIG_INPUT_MOUSE=y
-CONFIG_MOUSE_PS2=y
-CONFIG_MOUSE_PS2_ALPS=y
-CONFIG_MOUSE_PS2_LOGIPS2PP=y
-CONFIG_MOUSE_PS2_SYNAPTICS=y
-CONFIG_MOUSE_PS2_LIFEBOOK=y
-CONFIG_MOUSE_PS2_TRACKPOINT=y
-CONFIG_MOUSE_PS2_TOUCHKIT=y
-CONFIG_MOUSE_SERIAL=m
-# CONFIG_MOUSE_APPLETOUCH is not set
-CONFIG_MOUSE_INPORT=m
-CONFIG_MOUSE_ATIXL=y
-CONFIG_MOUSE_LOGIBM=m
-CONFIG_MOUSE_PC110PAD=m
-CONFIG_MOUSE_VSXXXAA=m
-CONFIG_INPUT_JOYSTICK=y
-CONFIG_JOYSTICK_ANALOG=m
-CONFIG_JOYSTICK_A3D=m
-CONFIG_JOYSTICK_ADI=m
-CONFIG_JOYSTICK_COBRA=m
-CONFIG_JOYSTICK_GF2K=m
-CONFIG_JOYSTICK_GRIP=m
-CONFIG_JOYSTICK_GRIP_MP=m
-CONFIG_JOYSTICK_GUILLEMOT=m
-CONFIG_JOYSTICK_INTERACT=m
-CONFIG_JOYSTICK_SIDEWINDER=m
-CONFIG_JOYSTICK_TMDC=m
-CONFIG_JOYSTICK_IFORCE=m
-CONFIG_JOYSTICK_IFORCE_USB=y
-CONFIG_JOYSTICK_IFORCE_232=y
-CONFIG_JOYSTICK_WARRIOR=m
-CONFIG_JOYSTICK_MAGELLAN=m
-CONFIG_JOYSTICK_SPACEORB=m
-CONFIG_JOYSTICK_SPACEBALL=m
-CONFIG_JOYSTICK_STINGER=m
-CONFIG_JOYSTICK_TWIDJOY=m
-CONFIG_JOYSTICK_DB9=m
-CONFIG_JOYSTICK_GAMECON=m
-CONFIG_JOYSTICK_TURBOGRAFX=m
-CONFIG_JOYSTICK_JOYDUMP=m
-CONFIG_JOYSTICK_XPAD=m
-CONFIG_JOYSTICK_XPAD_FF=y
-# CONFIG_JOYSTICK_XPAD_LEDS is not set
-CONFIG_INPUT_TABLET=y
-CONFIG_TABLET_USB_ACECAD=m
-CONFIG_TABLET_USB_AIPTEK=m
-CONFIG_TABLET_USB_GTCO=m
-CONFIG_TABLET_USB_KBTAB=m
-CONFIG_TABLET_USB_WACOM=m
-CONFIG_INPUT_TOUCHSCREEN=y
-# CONFIG_TOUCHSCREEN_ADS7846 is not set
-CONFIG_TOUCHSCREEN_FUJITSU=m
-CONFIG_TOUCHSCREEN_GUNZE=m
-CONFIG_TOUCHSCREEN_ELO=m
-CONFIG_TOUCHSCREEN_MTOUCH=m
-CONFIG_TOUCHSCREEN_MK712=m
-CONFIG_TOUCHSCREEN_PENMOUNT=m
-CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
-CONFIG_TOUCHSCREEN_TOUCHWIN=m
-CONFIG_TOUCHSCREEN_UCB1400=m
-CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
-CONFIG_TOUCHSCREEN_USB_EGALAX=y
-CONFIG_TOUCHSCREEN_USB_PANJIT=y
-CONFIG_TOUCHSCREEN_USB_3M=y
-CONFIG_TOUCHSCREEN_USB_ITM=y
-CONFIG_TOUCHSCREEN_USB_ETURBO=y
-CONFIG_TOUCHSCREEN_USB_GUNZE=y
-CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
-CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
-CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
-CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
-CONFIG_TOUCHSCREEN_USB_GOTOP=y
-CONFIG_INPUT_MISC=y
-CONFIG_INPUT_PCSPKR=m
-CONFIG_INPUT_WISTRON_BTNS=m
-CONFIG_INPUT_ATLAS_BTNS=m
-CONFIG_INPUT_ATI_REMOTE=m
-CONFIG_INPUT_ATI_REMOTE2=m
-CONFIG_INPUT_KEYSPAN_REMOTE=m
-CONFIG_INPUT_POWERMATE=m
-CONFIG_INPUT_YEALINK=m
-CONFIG_INPUT_UINPUT=m
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-CONFIG_SERIO_I8042=y
-CONFIG_SERIO_SERPORT=m
-CONFIG_SERIO_CT82C710=m
-CONFIG_SERIO_PARKBD=m
-CONFIG_SERIO_PCIPS2=m
-CONFIG_SERIO_LIBPS2=y
-CONFIG_SERIO_RAW=m
-CONFIG_GAMEPORT=m
-CONFIG_GAMEPORT_NS558=m
-CONFIG_GAMEPORT_L4=m
-CONFIG_GAMEPORT_EMU10K1=m
-CONFIG_GAMEPORT_FM801=m
-
-#
-# Character devices
-#
-CONFIG_VT=y
-CONFIG_VT_CONSOLE=y
-CONFIG_HW_CONSOLE=y
-CONFIG_VT_HW_CONSOLE_BINDING=y
-# CONFIG_SERIAL_NONSTANDARD is not set
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_FIX_EARLYCON_MEM=y
-CONFIG_SERIAL_8250_PCI=y
-CONFIG_SERIAL_8250_PNP=y
-CONFIG_SERIAL_8250_CS=m
-CONFIG_SERIAL_8250_NR_UARTS=4
-CONFIG_SERIAL_8250_RUNTIME_UARTS=4
-CONFIG_SERIAL_8250_EXTENDED=y
-CONFIG_SERIAL_8250_MANY_PORTS=y
-CONFIG_SERIAL_8250_FOURPORT=m
-CONFIG_SERIAL_8250_ACCENT=m
-CONFIG_SERIAL_8250_BOCA=m
-CONFIG_SERIAL_8250_EXAR_ST16C554=m
-CONFIG_SERIAL_8250_HUB6=m
-CONFIG_SERIAL_8250_SHARE_IRQ=y
-# CONFIG_SERIAL_8250_DETECT_IRQ is not set
-CONFIG_SERIAL_8250_RSA=y
-
-#
-# Non-8250 serial port support
-#
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-CONFIG_SERIAL_JSM=m
-CONFIG_UNIX98_PTYS=y
-# CONFIG_LEGACY_PTYS is not set
-CONFIG_PRINTER=m
-# CONFIG_LP_CONSOLE is not set
-CONFIG_PPDEV=m
-CONFIG_HVC_DRIVER=y
-CONFIG_HVC_XEN=y
-CONFIG_IPMI_HANDLER=m
-CONFIG_IPMI_PANIC_EVENT=y
-CONFIG_IPMI_PANIC_STRING=y
-CONFIG_IPMI_DEVICE_INTERFACE=m
-CONFIG_IPMI_SI=m
-CONFIG_IPMI_WATCHDOG=m
-CONFIG_IPMI_POWEROFF=m
-CONFIG_HW_RANDOM=y
-CONFIG_HW_RANDOM_INTEL=y
-CONFIG_HW_RANDOM_AMD=y
-CONFIG_HW_RANDOM_GEODE=y
-CONFIG_HW_RANDOM_VIA=y
-CONFIG_NVRAM=m
-CONFIG_RTC=m
-CONFIG_GEN_RTC=y
-CONFIG_GEN_RTC_X=y
-CONFIG_DTLK=m
-# CONFIG_R3964 is not set
-# CONFIG_APPLICOM is not set
-CONFIG_SONYPI=m
-
-#
-# PCMCIA character devices
-#
-CONFIG_SYNCLINK_CS=m
-CONFIG_CARDMAN_4000=m
-CONFIG_CARDMAN_4040=m
-CONFIG_MWAVE=m
-# CONFIG_SCx200_GPIO is not set
-# CONFIG_PC8736x_GPIO is not set
-# CONFIG_NSC_GPIO is not set
-CONFIG_CS5535_GPIO=m
-# CONFIG_RAW_DRIVER is not set
-CONFIG_HPET=y
-CONFIG_HPET_RTC_IRQ=y
-CONFIG_HPET_MMAP=y
-CONFIG_HANGCHECK_TIMER=m
-CONFIG_TCG_TPM=m
-CONFIG_TCG_TIS=m
-CONFIG_TCG_NSC=m
-CONFIG_TCG_ATMEL=m
-CONFIG_TCG_INFINEON=m
-# CONFIG_TELCLOCK is not set
-CONFIG_DEVPORT=y
-CONFIG_I2C=m
-CONFIG_I2C_BOARDINFO=y
-CONFIG_I2C_CHARDEV=m
-
-#
-# I2C Algorithms
-#
-CONFIG_I2C_ALGOBIT=m
-CONFIG_I2C_ALGOPCF=m
-CONFIG_I2C_ALGOPCA=m
-
-#
-# I2C Hardware Bus support
-#
-CONFIG_I2C_ALI1535=m
-CONFIG_I2C_ALI1563=m
-CONFIG_I2C_ALI15X3=m
-CONFIG_I2C_AMD756=m
-CONFIG_I2C_AMD756_S4882=m
-CONFIG_I2C_AMD8111=m
-CONFIG_I2C_I801=m
-CONFIG_I2C_I810=m
-CONFIG_I2C_PIIX4=m
-CONFIG_I2C_NFORCE2=m
-CONFIG_I2C_OCORES=m
-CONFIG_I2C_PARPORT=m
-# CONFIG_I2C_PARPORT_LIGHT is not set
-CONFIG_I2C_PROSAVAGE=m
-CONFIG_I2C_SAVAGE4=m
-CONFIG_I2C_SIMTEC=m
-CONFIG_SCx200_ACB=m
-CONFIG_I2C_SIS5595=m
-CONFIG_I2C_SIS630=m
-CONFIG_I2C_SIS96X=m
-# CONFIG_I2C_TAOS_EVM is not set
-# CONFIG_I2C_STUB is not set
-# CONFIG_I2C_TINY_USB is not set
-CONFIG_I2C_VIA=m
-CONFIG_I2C_VIAPRO=m
-CONFIG_I2C_VOODOO3=m
-CONFIG_I2C_PCA_ISA=m
-
-#
-# Miscellaneous I2C Chip support
-#
-CONFIG_SENSORS_DS1337=m
-CONFIG_SENSORS_DS1374=m
-CONFIG_DS1682=m
-CONFIG_SENSORS_EEPROM=m
-CONFIG_SENSORS_PCF8574=m
-CONFIG_SENSORS_PCA9539=m
-CONFIG_SENSORS_PCF8591=m
-CONFIG_SENSORS_MAX6875=m
-CONFIG_SENSORS_TSL2550=m
-# CONFIG_I2C_DEBUG_CORE is not set
-# CONFIG_I2C_DEBUG_ALGO is not set
-# CONFIG_I2C_DEBUG_BUS is not set
-# CONFIG_I2C_DEBUG_CHIP is not set
-
-#
-# SPI support
-#
-CONFIG_SPI=y
-# CONFIG_SPI_DEBUG is not set
-CONFIG_SPI_MASTER=y
-
-#
-# SPI Master Controller Drivers
-#
-CONFIG_SPI_BITBANG=m
-# CONFIG_SPI_BUTTERFLY is not set
-# CONFIG_SPI_LM70_LLP is not set
-
-#
-# SPI Protocol Masters
-#
-CONFIG_SPI_AT25=m
-CONFIG_SPI_SPIDEV=m
-CONFIG_SPI_TLE62X0=m
-# CONFIG_W1 is not set
-CONFIG_POWER_SUPPLY=y
-# CONFIG_POWER_SUPPLY_DEBUG is not set
-# CONFIG_PDA_POWER is not set
-# CONFIG_BATTERY_DS2760 is not set
-CONFIG_HWMON=y
-CONFIG_HWMON_VID=m
-CONFIG_SENSORS_ABITUGURU=m
-CONFIG_SENSORS_ABITUGURU3=m
-CONFIG_SENSORS_AD7418=m
-CONFIG_SENSORS_ADM1021=m
-CONFIG_SENSORS_ADM1025=m
-CONFIG_SENSORS_ADM1026=m
-CONFIG_SENSORS_ADM1029=m
-CONFIG_SENSORS_ADM1031=m
-CONFIG_SENSORS_ADM9240=m
-CONFIG_SENSORS_ADT7470=m
-CONFIG_SENSORS_K8TEMP=m
-CONFIG_SENSORS_ASB100=m
-CONFIG_SENSORS_ATXP1=m
-CONFIG_SENSORS_DS1621=m
-CONFIG_SENSORS_I5K_AMB=m
-CONFIG_SENSORS_F71805F=m
-CONFIG_SENSORS_F71882FG=m
-CONFIG_SENSORS_F75375S=m
-CONFIG_SENSORS_FSCHER=m
-CONFIG_SENSORS_FSCPOS=m
-CONFIG_SENSORS_FSCHMD=m
-CONFIG_SENSORS_GL518SM=m
-CONFIG_SENSORS_GL520SM=m
-CONFIG_SENSORS_CORETEMP=m
-CONFIG_SENSORS_IBMPEX=m
-CONFIG_SENSORS_IT87=m
-CONFIG_SENSORS_LM63=m
-CONFIG_SENSORS_LM70=m
-CONFIG_SENSORS_LM75=m
-CONFIG_SENSORS_LM77=m
-CONFIG_SENSORS_LM78=m
-CONFIG_SENSORS_LM80=m
-CONFIG_SENSORS_LM83=m
-CONFIG_SENSORS_LM85=m
-CONFIG_SENSORS_LM87=m
-CONFIG_SENSORS_LM90=m
-CONFIG_SENSORS_LM92=m
-CONFIG_SENSORS_LM93=m
-CONFIG_SENSORS_MAX1619=m
-CONFIG_SENSORS_MAX6650=m
-CONFIG_SENSORS_PC87360=m
-CONFIG_SENSORS_PC87427=m
-CONFIG_SENSORS_SIS5595=m
-CONFIG_SENSORS_DME1737=m
-CONFIG_SENSORS_SMSC47M1=m
-CONFIG_SENSORS_SMSC47M192=m
-CONFIG_SENSORS_SMSC47B397=m
-CONFIG_SENSORS_THMC50=m
-CONFIG_SENSORS_VIA686A=m
-CONFIG_SENSORS_VT1211=m
-CONFIG_SENSORS_VT8231=m
-CONFIG_SENSORS_W83781D=m
-CONFIG_SENSORS_W83791D=m
-CONFIG_SENSORS_W83792D=m
-CONFIG_SENSORS_W83793=m
-CONFIG_SENSORS_W83L785TS=m
-CONFIG_SENSORS_W83627HF=m
-CONFIG_SENSORS_W83627EHF=m
-CONFIG_SENSORS_HDAPS=m
-CONFIG_SENSORS_APPLESMC=m
-# CONFIG_HWMON_DEBUG_CHIP is not set
-CONFIG_WATCHDOG=y
-# CONFIG_WATCHDOG_NOWAYOUT is not set
-
-#
-# Watchdog Device Drivers
-#
-CONFIG_SOFT_WATCHDOG=m
-CONFIG_ACQUIRE_WDT=m
-CONFIG_ADVANTECH_WDT=m
-CONFIG_ALIM1535_WDT=m
-CONFIG_ALIM7101_WDT=m
-CONFIG_SC520_WDT=m
-CONFIG_EUROTECH_WDT=m
-CONFIG_IB700_WDT=m
-CONFIG_IBMASR=m
-CONFIG_WAFER_WDT=m
-CONFIG_I6300ESB_WDT=m
-CONFIG_ITCO_WDT=m
-CONFIG_ITCO_VENDOR_SUPPORT=y
-CONFIG_IT8712F_WDT=m
-CONFIG_SC1200_WDT=m
-CONFIG_SCx200_WDT=m
-CONFIG_PC87413_WDT=m
-CONFIG_60XX_WDT=m
-CONFIG_SBC8360_WDT=m
-CONFIG_SBC7240_WDT=m
-CONFIG_CPU5_WDT=m
-CONFIG_SMSC37B787_WDT=m
-CONFIG_W83627HF_WDT=m
-CONFIG_W83697HF_WDT=m
-CONFIG_W83877F_WDT=m
-CONFIG_W83977F_WDT=m
-CONFIG_MACHZ_WDT=m
-CONFIG_SBC_EPX_C3_WATCHDOG=m
-
-#
-# ISA-based Watchdog Cards
-#
-CONFIG_PCWATCHDOG=m
-CONFIG_MIXCOMWD=m
-CONFIG_WDT=m
-# CONFIG_WDT_501 is not set
-
-#
-# PCI-based Watchdog Cards
-#
-CONFIG_PCIPCWATCHDOG=m
-CONFIG_WDTPCI=m
-# CONFIG_WDT_501_PCI is not set
-
-#
-# USB-based Watchdog Cards
-#
-CONFIG_USBPCWATCHDOG=m
-
-#
-# Sonics Silicon Backplane
-#
-CONFIG_SSB_POSSIBLE=y
-CONFIG_SSB=m
-CONFIG_SSB_PCIHOST_POSSIBLE=y
-CONFIG_SSB_PCIHOST=y
-CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
-CONFIG_SSB_PCMCIAHOST=y
-# CONFIG_SSB_DEBUG is not set
-CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
-CONFIG_SSB_DRIVER_PCICORE=y
-
-#
-# Multifunction device drivers
-#
-CONFIG_MFD_SM501=m
-
-#
-# Multimedia devices
-#
-CONFIG_VIDEO_DEV=m
-CONFIG_VIDEO_V4L1=y
-CONFIG_VIDEO_V4L1_COMPAT=y
-CONFIG_VIDEO_V4L2=y
-CONFIG_VIDEO_CAPTURE_DRIVERS=y
-# CONFIG_VIDEO_ADV_DEBUG is not set
-CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
-CONFIG_VIDEO_TVAUDIO=m
-CONFIG_VIDEO_TDA7432=m
-CONFIG_VIDEO_TDA9840=m
-CONFIG_VIDEO_TDA9875=m
-CONFIG_VIDEO_TEA6415C=m
-CONFIG_VIDEO_TEA6420=m
-CONFIG_VIDEO_MSP3400=m
-CONFIG_VIDEO_CS53L32A=m
-CONFIG_VIDEO_WM8775=m
-CONFIG_VIDEO_WM8739=m
-CONFIG_VIDEO_VP27SMPX=m
-CONFIG_VIDEO_BT819=m
-CONFIG_VIDEO_BT856=m
-CONFIG_VIDEO_KS0127=m
-CONFIG_VIDEO_OV7670=m
-CONFIG_VIDEO_SAA7110=m
-CONFIG_VIDEO_SAA7111=m
-CONFIG_VIDEO_SAA7114=m
-CONFIG_VIDEO_SAA711X=m
-CONFIG_VIDEO_TVP5150=m
-CONFIG_VIDEO_VPX3220=m
-CONFIG_VIDEO_CX25840=m
-CONFIG_VIDEO_CX2341X=m
-CONFIG_VIDEO_SAA7127=m
-CONFIG_VIDEO_SAA7185=m
-CONFIG_VIDEO_ADV7170=m
-CONFIG_VIDEO_ADV7175=m
-CONFIG_VIDEO_UPD64031A=m
-CONFIG_VIDEO_UPD64083=m
-# CONFIG_VIDEO_VIVI is not set
-CONFIG_VIDEO_BT848=m
-# CONFIG_VIDEO_BT848_DVB is not set
-CONFIG_VIDEO_SAA6588=m
-CONFIG_VIDEO_PMS=m
-CONFIG_VIDEO_BWQCAM=m
-CONFIG_VIDEO_CQCAM=m
-CONFIG_VIDEO_W9966=m
-CONFIG_VIDEO_CPIA=m
-CONFIG_VIDEO_CPIA_PP=m
-CONFIG_VIDEO_CPIA_USB=m
-CONFIG_VIDEO_CPIA2=m
-CONFIG_VIDEO_SAA5246A=m
-CONFIG_VIDEO_SAA5249=m
-CONFIG_TUNER_3036=m
-CONFIG_VIDEO_STRADIS=m
-CONFIG_VIDEO_ZORAN_ZR36060=m
-CONFIG_VIDEO_ZORAN=m
-CONFIG_VIDEO_ZORAN_BUZ=m
-CONFIG_VIDEO_ZORAN_DC10=m
-CONFIG_VIDEO_ZORAN_DC30=m
-CONFIG_VIDEO_ZORAN_LML33=m
-CONFIG_VIDEO_ZORAN_LML33R10=m
-CONFIG_VIDEO_ZORAN_AVS6EYES=m
-CONFIG_VIDEO_MEYE=m
-CONFIG_VIDEO_SAA7134=m
-CONFIG_VIDEO_SAA7134_ALSA=m
-# CONFIG_VIDEO_SAA7134_DVB is not set
-CONFIG_VIDEO_MXB=m
-CONFIG_VIDEO_DPC=m
-CONFIG_VIDEO_HEXIUM_ORION=m
-CONFIG_VIDEO_HEXIUM_GEMINI=m
-CONFIG_VIDEO_CX88=m
-CONFIG_VIDEO_CX88_ALSA=m
-CONFIG_VIDEO_CX88_BLACKBIRD=m
-# CONFIG_VIDEO_CX88_DVB is not set
-# CONFIG_VIDEO_CX23885 is not set
-CONFIG_VIDEO_IVTV=m
-CONFIG_VIDEO_FB_IVTV=m
-CONFIG_VIDEO_CAFE_CCIC=m
-CONFIG_V4L_USB_DRIVERS=y
-CONFIG_VIDEO_PVRUSB2=m
-CONFIG_VIDEO_PVRUSB2_29XXX=y
-CONFIG_VIDEO_PVRUSB2_24XXX=y
-CONFIG_VIDEO_PVRUSB2_SYSFS=y
-# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
-CONFIG_VIDEO_EM28XX=m
-CONFIG_VIDEO_USBVISION=m
-CONFIG_VIDEO_USBVIDEO=m
-CONFIG_USB_VICAM=m
-CONFIG_USB_IBMCAM=m
-CONFIG_USB_KONICAWC=m
-CONFIG_USB_QUICKCAM_MESSENGER=m
-CONFIG_USB_ET61X251=m
-CONFIG_VIDEO_OVCAMCHIP=m
-CONFIG_USB_W9968CF=m
-CONFIG_USB_OV511=m
-CONFIG_USB_SE401=m
-CONFIG_USB_SN9C102=m
-CONFIG_USB_STV680=m
-CONFIG_USB_ZC0301=m
-CONFIG_USB_PWC=m
-# CONFIG_USB_PWC_DEBUG is not set
-CONFIG_USB_ZR364XX=m
-CONFIG_RADIO_ADAPTERS=y
-CONFIG_RADIO_CADET=m
-CONFIG_RADIO_RTRACK=m
-CONFIG_RADIO_RTRACK2=m
-CONFIG_RADIO_AZTECH=m
-CONFIG_RADIO_GEMTEK=m
-CONFIG_RADIO_GEMTEK_PCI=m
-CONFIG_RADIO_MAXIRADIO=m
-CONFIG_RADIO_MAESTRO=m
-CONFIG_RADIO_SF16FMI=m
-CONFIG_RADIO_SF16FMR2=m
-CONFIG_RADIO_TERRATEC=m
-CONFIG_RADIO_TRUST=m
-CONFIG_RADIO_TYPHOON=m
-# CONFIG_RADIO_TYPHOON_PROC_FS is not set
-CONFIG_RADIO_ZOLTRIX=m
-CONFIG_USB_DSBR=m
-CONFIG_DVB_CORE=m
-CONFIG_DVB_CORE_ATTACH=y
-CONFIG_DVB_CAPTURE_DRIVERS=y
-
-#
-# Supported SAA7146 based PCI Adapters
-#
-CONFIG_DVB_AV7110=m
-CONFIG_DVB_AV7110_OSD=y
-CONFIG_DVB_BUDGET=m
-CONFIG_DVB_BUDGET_CI=m
-CONFIG_DVB_BUDGET_AV=m
-CONFIG_DVB_BUDGET_PATCH=m
-
-#
-# Supported USB Adapters
-#
-CONFIG_DVB_USB=m
-# CONFIG_DVB_USB_DEBUG is not set
-CONFIG_DVB_USB_A800=m
-CONFIG_DVB_USB_DIBUSB_MB=m
-CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y
-CONFIG_DVB_USB_DIBUSB_MC=m
-CONFIG_DVB_USB_DIB0700=m
-CONFIG_DVB_USB_UMT_010=m
-CONFIG_DVB_USB_CXUSB=m
-CONFIG_DVB_USB_M920X=m
-CONFIG_DVB_USB_GL861=m
-CONFIG_DVB_USB_AU6610=m
-CONFIG_DVB_USB_DIGITV=m
-CONFIG_DVB_USB_VP7045=m
-CONFIG_DVB_USB_VP702X=m
-CONFIG_DVB_USB_GP8PSK=m
-CONFIG_DVB_USB_NOVA_T_USB2=m
-CONFIG_DVB_USB_TTUSB2=m
-CONFIG_DVB_USB_DTT200U=m
-CONFIG_DVB_USB_OPERA1=m
-CONFIG_DVB_USB_AF9005=m
-CONFIG_DVB_USB_AF9005_REMOTE=m
-CONFIG_DVB_TTUSB_BUDGET=m
-CONFIG_DVB_TTUSB_DEC=m
-CONFIG_DVB_CINERGYT2=m
-# CONFIG_DVB_CINERGYT2_TUNING is not set
-
-#
-# Supported FlexCopII (B2C2) Adapters
-#
-CONFIG_DVB_B2C2_FLEXCOP=m
-CONFIG_DVB_B2C2_FLEXCOP_PCI=m
-CONFIG_DVB_B2C2_FLEXCOP_USB=m
-# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set
-
-#
-# Supported BT878 Adapters
-#
-CONFIG_DVB_BT8XX=m
-
-#
-# Supported Pluto2 Adapters
-#
-CONFIG_DVB_PLUTO2=m
-
-#
-# Supported DVB Frontends
-#
-
-#
-# Customise DVB Frontends
-#
-# CONFIG_DVB_FE_CUSTOMISE is not set
-
-#
-# DVB-S (satellite) frontends
-#
-CONFIG_DVB_STV0299=m
-CONFIG_DVB_CX24110=m
-CONFIG_DVB_CX24123=m
-CONFIG_DVB_TDA8083=m
-CONFIG_DVB_MT312=m
-CONFIG_DVB_VES1X93=m
-CONFIG_DVB_S5H1420=m
-CONFIG_DVB_TDA10086=m
-
-#
-# DVB-T (terrestrial) frontends
-#
-CONFIG_DVB_SP8870=m
-CONFIG_DVB_SP887X=m
-CONFIG_DVB_CX22700=m
-CONFIG_DVB_CX22702=m
-CONFIG_DVB_L64781=m
-CONFIG_DVB_TDA1004X=m
-CONFIG_DVB_NXT6000=m
-CONFIG_DVB_MT352=m
-CONFIG_DVB_ZL10353=m
-CONFIG_DVB_DIB3000MB=m
-CONFIG_DVB_DIB3000MC=m
-CONFIG_DVB_DIB7000M=m
-CONFIG_DVB_DIB7000P=m
-
-#
-# DVB-C (cable) frontends
-#
-CONFIG_DVB_VES1820=m
-CONFIG_DVB_TDA10021=m
-CONFIG_DVB_TDA10023=m
-CONFIG_DVB_STV0297=m
-
-#
-# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
-#
-CONFIG_DVB_NXT200X=m
-CONFIG_DVB_OR51211=m
-CONFIG_DVB_OR51132=m
-CONFIG_DVB_BCM3510=m
-CONFIG_DVB_LGDT330X=m
-CONFIG_DVB_S5H1409=m
-
-#
-# Tuners/PLL support
-#
-CONFIG_DVB_PLL=m
-CONFIG_DVB_TDA826X=m
-CONFIG_DVB_TDA827X=m
-CONFIG_DVB_TUNER_QT1010=m
-CONFIG_DVB_TUNER_MT2060=m
-CONFIG_DVB_TUNER_MT2266=m
-CONFIG_DVB_TUNER_MT2131=m
-CONFIG_DVB_TUNER_DIB0070=m
-
-#
-# Miscellaneous devices
-#
-CONFIG_DVB_LNBP21=m
-CONFIG_DVB_ISL6421=m
-CONFIG_DVB_TUA6100=m
-CONFIG_VIDEO_SAA7146=m
-CONFIG_VIDEO_SAA7146_VV=m
-CONFIG_VIDEO_TUNER=m
-CONFIG_VIDEO_TUNER_CUSTOMIZE=y
-CONFIG_TUNER_MT20XX=m
-CONFIG_TUNER_TDA8290=m
-CONFIG_TUNER_TEA5761=m
-CONFIG_TUNER_TEA5767=m
-CONFIG_TUNER_SIMPLE=m
-CONFIG_VIDEOBUF_GEN=m
-CONFIG_VIDEOBUF_DMA_SG=m
-CONFIG_VIDEO_BTCX=m
-CONFIG_VIDEO_IR_I2C=m
-CONFIG_VIDEO_IR=m
-CONFIG_VIDEO_TVEEPROM=m
-CONFIG_DAB=y
-CONFIG_USB_DABUSB=m
-
-#
-# Graphics support
-#
-CONFIG_AGP=m
-CONFIG_AGP_ALI=m
-CONFIG_AGP_ATI=m
-CONFIG_AGP_AMD=m
-CONFIG_AGP_AMD64=m
-CONFIG_AGP_INTEL=m
-CONFIG_AGP_NVIDIA=m
-CONFIG_AGP_SIS=m
-CONFIG_AGP_SWORKS=m
-CONFIG_AGP_VIA=m
-CONFIG_AGP_EFFICEON=m
-CONFIG_DRM=m
-CONFIG_DRM_TDFX=m
-CONFIG_DRM_R128=m
-CONFIG_DRM_RADEON=m
-CONFIG_DRM_AMDGPU=m
-CONFIG_DRM_I810=m
-CONFIG_DRM_I830=m
-CONFIG_DRM_I915=m
-CONFIG_DRM_MGA=m
-CONFIG_DRM_SIS=m
-CONFIG_DRM_VIA=m
-CONFIG_DRM_SAVAGE=m
-# CONFIG_VGASTATE is not set
-CONFIG_VIDEO_OUTPUT_CONTROL=m
-CONFIG_FB=y
-CONFIG_FIRMWARE_EDID=y
-# CONFIG_FB_DDC is not set
-CONFIG_FB_CFB_FILLRECT=y
-CONFIG_FB_CFB_COPYAREA=y
-CONFIG_FB_CFB_IMAGEBLIT=y
-# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
-CONFIG_FB_SYS_FILLRECT=m
-CONFIG_FB_SYS_COPYAREA=m
-CONFIG_FB_SYS_IMAGEBLIT=m
-CONFIG_FB_SYS_FOPS=m
-CONFIG_FB_DEFERRED_IO=y
-# CONFIG_FB_SVGALIB is not set
-# CONFIG_FB_MACMODES is not set
-# CONFIG_FB_BACKLIGHT is not set
-# CONFIG_FB_MODE_HELPERS is not set
-# CONFIG_FB_TILEBLITTING is not set
-
-#
-# Frame buffer hardware drivers
-#
-# CONFIG_FB_CIRRUS is not set
-# CONFIG_FB_PM2 is not set
-# CONFIG_FB_CYBER2000 is not set
-# CONFIG_FB_ARC is not set
-# CONFIG_FB_ASILIANT is not set
-# CONFIG_FB_IMSTT is not set
-# CONFIG_FB_VGA16 is not set
-# CONFIG_FB_UVESA is not set
-CONFIG_FB_VESA=y
-CONFIG_FB_EFI=y
-CONFIG_FB_IMAC=y
-# CONFIG_FB_HECUBA is not set
-# CONFIG_FB_HGA is not set
-# CONFIG_FB_S1D13XXX is not set
-# CONFIG_FB_NVIDIA is not set
-# CONFIG_FB_RIVA is not set
-# CONFIG_FB_I810 is not set
-# CONFIG_FB_LE80578 is not set
-# CONFIG_FB_INTEL is not set
-# CONFIG_FB_MATROX is not set
-# CONFIG_FB_RADEON is not set
-# CONFIG_FB_ATY128 is not set
-# CONFIG_FB_ATY is not set
-# CONFIG_FB_S3 is not set
-# CONFIG_FB_SAVAGE is not set
-# CONFIG_FB_SIS is not set
-# CONFIG_FB_NEOMAGIC is not set
-# CONFIG_FB_KYRO is not set
-# CONFIG_FB_3DFX is not set
-# CONFIG_FB_VOODOO1 is not set
-# CONFIG_FB_VT8623 is not set
-# CONFIG_FB_CYBLA is not set
-# CONFIG_FB_TRIDENT is not set
-# CONFIG_FB_ARK is not set
-# CONFIG_FB_PM3 is not set
-CONFIG_FB_GEODE=y
-CONFIG_FB_GEODE_LX=y
-CONFIG_FB_GEODE_GX=y
-# CONFIG_FB_GEODE_GX_SET_FBSIZE is not set
-CONFIG_FB_GEODE_GX1=y
-# CONFIG_FB_SM501 is not set
-# CONFIG_FB_VIRTUAL is not set
-CONFIG_BACKLIGHT_LCD_SUPPORT=y
-CONFIG_LCD_CLASS_DEVICE=y
-CONFIG_LCD_LTV350QV=y
-CONFIG_BACKLIGHT_CLASS_DEVICE=m
-# CONFIG_BACKLIGHT_CORGI is not set
-CONFIG_BACKLIGHT_PROGEAR=m
-
-#
-# Display device support
-#
-CONFIG_DISPLAY_SUPPORT=m
-
-#
-# Display hardware drivers
-#
-
-#
-# Console display driver support
-#
-CONFIG_VGA_CONSOLE=y
-# CONFIG_VGACON_SOFT_SCROLLBACK is not set
-CONFIG_VIDEO_SELECT=y
-# CONFIG_MDA_CONSOLE is not set
-CONFIG_DUMMY_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
-# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
-CONFIG_FB_CON_DECOR=y
-# CONFIG_FONTS is not set
-CONFIG_FONT_8x8=y
-CONFIG_FONT_8x16=y
-CONFIG_LOGO=y
-CONFIG_LOGO_LINUX_MONO=y
-# CONFIG_LOGO_LINUX_VGA16 is not set
-CONFIG_LOGO_LINUX_CLUT224=y
-
-#
-# Sound
-#
-CONFIG_SOUND=y
-
-#
-# Advanced Linux Sound Architecture
-#
-CONFIG_SND=m
-CONFIG_SND_TIMER=m
-CONFIG_SND_PCM=m
-CONFIG_SND_HWDEP=m
-CONFIG_SND_RAWMIDI=m
-CONFIG_SND_SEQUENCER=m
-# CONFIG_SND_SEQ_DUMMY is not set
-CONFIG_SND_OSSEMUL=y
-CONFIG_SND_MIXER_OSS=m
-CONFIG_SND_PCM_OSS=m
-CONFIG_SND_PCM_OSS_PLUGINS=y
-CONFIG_SND_SEQUENCER_OSS=y
-CONFIG_SND_RTCTIMER=m
-CONFIG_SND_SEQ_RTCTIMER_DEFAULT=y
-# CONFIG_SND_DYNAMIC_MINORS is not set
-CONFIG_SND_SUPPORT_OLD_API=y
-# CONFIG_SND_VERBOSE_PROCFS is not set
-# CONFIG_SND_VERBOSE_PRINTK is not set
-# CONFIG_SND_DEBUG is not set
-
-#
-# Generic devices
-#
-CONFIG_SND_MPU401_UART=m
-CONFIG_SND_OPL3_LIB=m
-CONFIG_SND_OPL4_LIB=m
-CONFIG_SND_VX_LIB=m
-CONFIG_SND_AC97_CODEC=m
-# CONFIG_SND_DUMMY is not set
-# CONFIG_SND_VIRMIDI is not set
-CONFIG_SND_MTPAV=m
-CONFIG_SND_MTS64=m
-CONFIG_SND_SERIAL_U16550=m
-CONFIG_SND_MPU401=m
-CONFIG_SND_PORTMAN2X4=m
-CONFIG_SND_AD1848_LIB=m
-CONFIG_SND_CS4231_LIB=m
-CONFIG_SND_SB_COMMON=m
-CONFIG_SND_SB8_DSP=m
-CONFIG_SND_SB16_DSP=m
-
-#
-# ISA devices
-#
-CONFIG_SND_ADLIB=m
-CONFIG_SND_AD1816A=m
-CONFIG_SND_AD1848=m
-CONFIG_SND_ALS100=m
-CONFIG_SND_AZT2320=m
-CONFIG_SND_CMI8330=m
-CONFIG_SND_CS4231=m
-CONFIG_SND_CS4232=m
-CONFIG_SND_CS4236=m
-CONFIG_SND_DT019X=m
-CONFIG_SND_ES968=m
-CONFIG_SND_ES1688=m
-CONFIG_SND_ES18XX=m
-CONFIG_SND_SC6000=m
-CONFIG_SND_GUS_SYNTH=m
-CONFIG_SND_GUSCLASSIC=m
-CONFIG_SND_GUSEXTREME=m
-CONFIG_SND_GUSMAX=m
-CONFIG_SND_INTERWAVE=m
-CONFIG_SND_INTERWAVE_STB=m
-CONFIG_SND_OPL3SA2=m
-CONFIG_SND_OPTI92X_AD1848=m
-CONFIG_SND_OPTI92X_CS4231=m
-CONFIG_SND_OPTI93X=m
-CONFIG_SND_MIRO=m
-CONFIG_SND_SB8=m
-CONFIG_SND_SB16=m
-CONFIG_SND_SBAWE=m
-CONFIG_SND_SB16_CSP=y
-CONFIG_SND_SB16_CSP_FIRMWARE_IN_KERNEL=y
-CONFIG_SND_SGALAXY=m
-CONFIG_SND_SSCAPE=m
-CONFIG_SND_WAVEFRONT=m
-CONFIG_SND_WAVEFRONT_FIRMWARE_IN_KERNEL=y
-
-#
-# PCI devices
-#
-CONFIG_SND_AD1889=m
-CONFIG_SND_ALS300=m
-CONFIG_SND_ALS4000=m
-CONFIG_SND_ALI5451=m
-CONFIG_SND_ATIIXP=m
-CONFIG_SND_ATIIXP_MODEM=m
-CONFIG_SND_AU8810=m
-CONFIG_SND_AU8820=m
-CONFIG_SND_AU8830=m
-CONFIG_SND_AZT3328=m
-CONFIG_SND_BT87X=m
-# CONFIG_SND_BT87X_OVERCLOCK is not set
-CONFIG_SND_CA0106=m
-CONFIG_SND_CMIPCI=m
-CONFIG_SND_CS4281=m
-CONFIG_SND_CS46XX=m
-CONFIG_SND_CS46XX_NEW_DSP=y
-CONFIG_SND_CS5530=m
-CONFIG_SND_CS5535AUDIO=m
-CONFIG_SND_DARLA20=m
-CONFIG_SND_GINA20=m
-CONFIG_SND_LAYLA20=m
-CONFIG_SND_DARLA24=m
-CONFIG_SND_GINA24=m
-CONFIG_SND_LAYLA24=m
-CONFIG_SND_MONA=m
-CONFIG_SND_MIA=m
-CONFIG_SND_ECHO3G=m
-CONFIG_SND_INDIGO=m
-CONFIG_SND_INDIGOIO=m
-CONFIG_SND_INDIGODJ=m
-CONFIG_SND_EMU10K1=m
-CONFIG_SND_EMU10K1X=m
-CONFIG_SND_ENS1370=m
-CONFIG_SND_ENS1371=m
-CONFIG_SND_ES1938=m
-CONFIG_SND_ES1968=m
-CONFIG_SND_FM801=m
-CONFIG_SND_FM801_TEA575X_BOOL=y
-CONFIG_SND_FM801_TEA575X=m
-CONFIG_SND_HDA_INTEL=m
-# CONFIG_SND_HDA_HWDEP is not set
-CONFIG_SND_HDA_CODEC_REALTEK=y
-CONFIG_SND_HDA_CODEC_ANALOG=y
-CONFIG_SND_HDA_CODEC_SIGMATEL=y
-CONFIG_SND_HDA_CODEC_VIA=y
-CONFIG_SND_HDA_CODEC_ATIHDMI=y
-CONFIG_SND_HDA_CODEC_CONEXANT=y
-CONFIG_SND_HDA_CODEC_CMEDIA=y
-CONFIG_SND_HDA_CODEC_SI3054=y
-CONFIG_SND_HDA_GENERIC=y
-CONFIG_SND_HDA_POWER_SAVE=y
-CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
-CONFIG_SND_HDSP=m
-CONFIG_SND_HDSPM=m
-CONFIG_SND_ICE1712=m
-CONFIG_SND_ICE1724=m
-CONFIG_SND_INTEL8X0=m
-CONFIG_SND_INTEL8X0M=m
-CONFIG_SND_KORG1212=m
-CONFIG_SND_KORG1212_FIRMWARE_IN_KERNEL=y
-CONFIG_SND_MAESTRO3=m
-CONFIG_SND_MAESTRO3_FIRMWARE_IN_KERNEL=y
-CONFIG_SND_MIXART=m
-CONFIG_SND_NM256=m
-CONFIG_SND_PCXHR=m
-CONFIG_SND_RIPTIDE=m
-CONFIG_SND_RME32=m
-CONFIG_SND_RME96=m
-CONFIG_SND_RME9652=m
-CONFIG_SND_SONICVIBES=m
-CONFIG_SND_TRIDENT=m
-CONFIG_SND_VIA82XX=m
-CONFIG_SND_VIA82XX_MODEM=m
-CONFIG_SND_VX222=m
-CONFIG_SND_YMFPCI=m
-CONFIG_SND_YMFPCI_FIRMWARE_IN_KERNEL=y
-CONFIG_SND_AC97_POWER_SAVE=y
-CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
-
-#
-# SPI devices
-#
-
-#
-# USB devices
-#
-CONFIG_SND_USB_AUDIO=m
-CONFIG_SND_USB_USX2Y=m
-CONFIG_SND_USB_CAIAQ=m
-CONFIG_SND_USB_CAIAQ_INPUT=y
-
-#
-# PCMCIA devices
-#
-CONFIG_SND_VXPOCKET=m
-CONFIG_SND_PDAUDIOCF=m
-
-#
-# System on Chip audio support
-#
-CONFIG_SND_SOC=m
-
-#
-# SoC Audio support for SuperH
-#
-
-#
-# Open Sound System
-#
-# CONFIG_SOUND_PRIME is not set
-CONFIG_AC97_BUS=m
-CONFIG_HID_SUPPORT=y
-CONFIG_HID=y
-# CONFIG_HID_DEBUG is not set
-CONFIG_HIDRAW=y
-
-#
-# USB Input Devices
-#
-CONFIG_USB_HID=y
-CONFIG_USB_HIDINPUT_POWERBOOK=y
-CONFIG_HID_FF=y
-CONFIG_HID_PID=y
-CONFIG_LOGITECH_FF=y
-CONFIG_PANTHERLORD_FF=y
-CONFIG_THRUSTMASTER_FF=y
-CONFIG_ZEROPLUS_FF=y
-CONFIG_USB_HIDDEV=y
-
-#
-# Special HID drivers
-#
-CONFIG_HID_COMPAT=y
-CONFIG_HID_A4TECH=m
-CONFIG_HID_APPLE=m
-CONFIG_HID_BELKIN=m
-CONFIG_HID_BRIGHT=m
-CONFIG_HID_CHERRY=m
-CONFIG_HID_CHICONY=m
-CONFIG_HID_CYPRESS=m
-CONFIG_HID_DELL=m
-CONFIG_HID_EZKEY=m
-CONFIG_HID_GYRATION=m
-CONFIG_HID_LOGITECH=m
-# CONFIG_LOGITECH_FF is not set
-# CONFIG_LOGIRUMBLEPAD2_FF is not set
-CONFIG_HID_MICROSOFT=m
-CONFIG_HID_MONTEREY=m
-CONFIG_HID_PANTHERLORD=m
-# CONFIG_PANTHERLORD_FF is not set
-CONFIG_HID_PETALYNX=m
-CONFIG_HID_SAMSUNG=m
-CONFIG_HID_SONY=m
-CONFIG_HID_SUNPLUS=m
-# CONFIG_THRUSTMASTER_FF is not set
-# CONFIG_ZEROPLUS_FF is not set
-CONFIG_USB_SUPPORT=y
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB_ARCH_HAS_OHCI=y
-CONFIG_USB_ARCH_HAS_EHCI=y
-CONFIG_USB_ARCH_HAS_XHCI=y
-CONFIG_USB=m
-# CONFIG_USB_DEBUG is not set
-CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
-
-#
-# USB HID Boot Protocol drivers
-#
-# CONFIG_USB_KBD is not set
-# CONFIG_USB_MOUSE is not set
-CONFIG_USB_SUPPORT=y
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB_ARCH_HAS_OHCI=y
-CONFIG_USB_ARCH_HAS_EHCI=y
-CONFIG_USB_ARCH_HAS_XHCI=y
-CONFIG_USB=m
-# CONFIG_USB_DEBUG is not set
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEVICEFS=y
-CONFIG_USB_DEVICE_CLASS=y
-# CONFIG_USB_DYNAMIC_MINORS is not set
-# CONFIG_USB_SUSPEND is not set
-# CONFIG_USB_PERSIST is not set
-# CONFIG_USB_OTG is not set
-
-#
-# USB Host Controller Drivers
-#
-CONFIG_USB_XHCI_HCD=m
-CONFIG_USB_XHCI_PLATFORM=m
-CONFIG_USB_EHCI_HCD=m
-CONFIG_USB_EHCI_SPLIT_ISO=y
-CONFIG_USB_EHCI_ROOT_HUB_TT=y
-CONFIG_USB_EHCI_TT_NEWSCHED=y
-CONFIG_USB_ISP116X_HCD=m
-CONFIG_USB_OHCI_HCD=m
-CONFIG_USB_OHCI_HCD_SSB=y
-# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
-# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
-CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-CONFIG_USB_UHCI_HCD=m
-CONFIG_USB_U132_HCD=m
-CONFIG_USB_SL811_HCD=m
-CONFIG_USB_SL811_CS=m
-CONFIG_USB_R8A66597_HCD=m
-
-#
-# USB Device Class drivers
-#
-CONFIG_USB_ACM=m
-CONFIG_USB_PRINTER=m
-
-#
-# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
-#
-
-#
-# may also be needed; see USB_STORAGE Help for more information
-#
-CONFIG_USB_STORAGE=m
-# CONFIG_USB_STORAGE_DEBUG is not set
-CONFIG_USB_STORAGE_DATAFAB=y
-CONFIG_USB_STORAGE_FREECOM=y
-CONFIG_USB_STORAGE_ISD200=y
-CONFIG_USB_STORAGE_DPCM=y
-CONFIG_USB_STORAGE_USBAT=y
-CONFIG_USB_STORAGE_SDDR09=y
-CONFIG_USB_STORAGE_SDDR55=y
-CONFIG_USB_STORAGE_JUMPSHOT=y
-CONFIG_USB_STORAGE_ALAUDA=y
-CONFIG_USB_STORAGE_KARMA=y
-# CONFIG_USB_LIBUSUAL is not set
-
-#
-# USB Imaging devices
-#
-CONFIG_USB_MDC800=m
-CONFIG_USB_MICROTEK=m
-CONFIG_USB_MON=y
-
-#
-# USB port drivers
-#
-CONFIG_USB_USS720=m
-
-#
-# USB Serial Converter support
-#
-CONFIG_USB_SERIAL=m
-CONFIG_USB_SERIAL_GENERIC=y
-CONFIG_USB_SERIAL_AIRCABLE=m
-CONFIG_USB_SERIAL_AIRPRIME=m
-CONFIG_USB_SERIAL_ARK3116=m
-CONFIG_USB_SERIAL_BELKIN=m
-CONFIG_USB_SERIAL_CH341=m
-CONFIG_USB_SERIAL_WHITEHEAT=m
-CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
-CONFIG_USB_SERIAL_CP2101=m
-CONFIG_USB_SERIAL_CYPRESS_M8=m
-CONFIG_USB_SERIAL_EMPEG=m
-CONFIG_USB_SERIAL_FTDI_SIO=m
-CONFIG_USB_SERIAL_FUNSOFT=m
-CONFIG_USB_SERIAL_VISOR=m
-CONFIG_USB_SERIAL_IPAQ=m
-CONFIG_USB_SERIAL_IR=m
-CONFIG_USB_SERIAL_EDGEPORT=m
-CONFIG_USB_SERIAL_EDGEPORT_TI=m
-CONFIG_USB_SERIAL_GARMIN=m
-CONFIG_USB_SERIAL_IPW=m
-CONFIG_USB_SERIAL_KEYSPAN_PDA=m
-CONFIG_USB_SERIAL_KEYSPAN=m
-CONFIG_USB_SERIAL_KEYSPAN_MPR=y
-CONFIG_USB_SERIAL_KEYSPAN_USA28=y
-CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
-CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
-CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
-CONFIG_USB_SERIAL_KEYSPAN_USA19=y
-CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
-CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
-CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
-CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
-CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
-CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
-CONFIG_USB_SERIAL_KLSI=m
-CONFIG_USB_SERIAL_KOBIL_SCT=m
-CONFIG_USB_SERIAL_MCT_U232=m
-CONFIG_USB_SERIAL_MOS7720=m
-CONFIG_USB_SERIAL_MOS7840=m
-CONFIG_USB_SERIAL_NAVMAN=m
-CONFIG_USB_SERIAL_PL2303=m
-CONFIG_USB_SERIAL_OTI6858=m
-CONFIG_USB_SERIAL_HP4X=m
-CONFIG_USB_SERIAL_SAFE=m
-# CONFIG_USB_SERIAL_SAFE_PADDED is not set
-CONFIG_USB_SERIAL_SIERRAWIRELESS=m
-CONFIG_USB_SERIAL_TI=m
-CONFIG_USB_SERIAL_CYBERJACK=m
-CONFIG_USB_SERIAL_XIRCOM=m
-CONFIG_USB_SERIAL_OPTION=m
-CONFIG_USB_SERIAL_OMNINET=m
-# CONFIG_USB_SERIAL_DEBUG is not set
-CONFIG_USB_EZUSB=y
-
-#
-# USB Miscellaneous drivers
-#
-CONFIG_USB_EMI62=m
-CONFIG_USB_EMI26=m
-CONFIG_USB_ADUTUX=m
-CONFIG_USB_AUERSWALD=m
-CONFIG_USB_RIO500=m
-CONFIG_USB_LEGOTOWER=m
-CONFIG_USB_LCD=m
-CONFIG_USB_BERRY_CHARGE=m
-CONFIG_USB_LED=m
-CONFIG_USB_CYPRESS_CY7C63=m
-CONFIG_USB_CYTHERM=m
-CONFIG_USB_PHIDGET=m
-CONFIG_USB_PHIDGETKIT=m
-CONFIG_USB_PHIDGETMOTORCONTROL=m
-CONFIG_USB_PHIDGETSERVO=m
-CONFIG_USB_IDMOUSE=m
-CONFIG_USB_FTDI_ELAN=m
-CONFIG_USB_APPLEDISPLAY=m
-CONFIG_USB_SISUSBVGA=m
-CONFIG_USB_SISUSBVGA_CON=y
-CONFIG_USB_LD=m
-CONFIG_USB_TRANCEVIBRATOR=m
-CONFIG_USB_IOWARRIOR=m
-# CONFIG_USB_TEST is not set
-
-#
-# USB DSL modem support
-#
-CONFIG_USB_ATM=m
-CONFIG_USB_SPEEDTOUCH=m
-CONFIG_USB_CXACRU=m
-CONFIG_USB_UEAGLEATM=m
-CONFIG_USB_XUSBATM=m
-
-#
-# USB Gadget Support
-#
-# CONFIG_USB_GADGET is not set
-# CONFIG_USB_GADGET_AMD5536UDC is not set
-# CONFIG_USB_GADGET_ATMEL_USBA is not set
-# CONFIG_USB_GADGET_FSL_USB2 is not set
-# CONFIG_USB_GADGET_NET2280 is not set
-# CONFIG_USB_GADGET_PXA2XX is not set
-# CONFIG_USB_GADGET_M66592 is not set
-# CONFIG_USB_GADGET_GOKU is not set
-# CONFIG_USB_GADGET_LH7A40X is not set
-# CONFIG_USB_GADGET_OMAP is not set
-# CONFIG_USB_GADGET_S3C2410 is not set
-# CONFIG_USB_GADGET_AT91 is not set
-# CONFIG_USB_GADGET_DUMMY_HCD is not set
-# CONFIG_USB_ZERO is not set
-# CONFIG_USB_ETH is not set
-# CONFIG_USB_GADGETFS is not set
-# CONFIG_USB_FILE_STORAGE is not set
-# CONFIG_USB_G_SERIAL is not set
-# CONFIG_USB_MIDI_GADGET is not set
-CONFIG_MMC=m
-# CONFIG_MMC_DEBUG is not set
-# CONFIG_MMC_UNSAFE_RESUME is not set
-
-#
-# MMC/SD Card Drivers
-#
-CONFIG_MMC_BLOCK=m
-CONFIG_MMC_BLOCK_BOUNCE=y
-CONFIG_SDIO_UART=m
-
-#
-# MMC/SD Host Controller Drivers
-#
-CONFIG_MMC_SDHCI=m
-CONFIG_MMC_RICOH_MMC=m
-CONFIG_MMC_WBSD=m
-CONFIG_MMC_TIFM_SD=m
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=m
-
-#
-# LED drivers
-#
-
-#
-# LED Triggers
-#
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=m
-CONFIG_LEDS_TRIGGER_IDE_DISK=y
-CONFIG_LEDS_TRIGGER_HEARTBEAT=m
-CONFIG_INFINIBAND=m
-CONFIG_INFINIBAND_USER_MAD=m
-CONFIG_INFINIBAND_USER_ACCESS=m
-CONFIG_INFINIBAND_USER_MEM=y
-CONFIG_INFINIBAND_ADDR_TRANS=y
-CONFIG_INFINIBAND_MTHCA=m
-CONFIG_INFINIBAND_MTHCA_DEBUG=y
-CONFIG_INFINIBAND_AMSO1100=m
-# CONFIG_INFINIBAND_AMSO1100_DEBUG is not set
-CONFIG_INFINIBAND_CXGB3=m
-# CONFIG_INFINIBAND_CXGB3_DEBUG is not set
-CONFIG_MLX4_INFINIBAND=m
-CONFIG_INFINIBAND_IPOIB=m
-CONFIG_INFINIBAND_IPOIB_CM=y
-CONFIG_INFINIBAND_IPOIB_DEBUG=y
-# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set
-CONFIG_INFINIBAND_SRP=m
-CONFIG_INFINIBAND_ISER=m
-# CONFIG_EDAC is not set
-CONFIG_RTC_LIB=m
-CONFIG_RTC_CLASS=y
-
-#
-# RTC interfaces
-#
-CONFIG_RTC_INTF_SYSFS=y
-CONFIG_RTC_INTF_PROC=y
-CONFIG_RTC_INTF_DEV=y
-CONFIG_RTC_INTF_DEV_UIE_EMUL=y
-# CONFIG_RTC_DRV_TEST is not set
-
-#
-# I2C RTC drivers
-#
-CONFIG_RTC_DRV_DS1307=m
-CONFIG_RTC_DRV_DS1374=m
-CONFIG_RTC_DRV_DS1672=m
-CONFIG_RTC_DRV_MAX6900=m
-CONFIG_RTC_DRV_RS5C372=m
-CONFIG_RTC_DRV_ISL1208=m
-CONFIG_RTC_DRV_X1205=m
-CONFIG_RTC_DRV_PCF8563=m
-CONFIG_RTC_DRV_PCF8583=m
-CONFIG_RTC_DRV_M41T80=m
-CONFIG_RTC_DRV_M41T80_WDT=y
-
-#
-# SPI RTC drivers
-#
-CONFIG_RTC_DRV_RS5C348=m
-CONFIG_RTC_DRV_MAX6902=m
-
-#
-# Platform RTC drivers
-#
-CONFIG_RTC_DRV_CMOS=m
-CONFIG_RTC_DRV_DS1553=m
-CONFIG_RTC_DRV_STK17TA8=m
-CONFIG_RTC_DRV_DS1742=m
-CONFIG_RTC_DRV_M48T86=m
-CONFIG_RTC_DRV_M48T59=m
-CONFIG_RTC_DRV_V3020=m
-
-#
-# on-CPU RTC drivers
-#
-CONFIG_DMADEVICES=y
-
-#
-# DMA Devices
-#
-CONFIG_INTEL_IOATDMA=y
-CONFIG_DMA_ENGINE=y
-
-#
-# DMA Clients
-#
-CONFIG_NET_DMA=y
-CONFIG_DCA=y
-CONFIG_AUXDISPLAY=y
-CONFIG_KS0108=m
-CONFIG_KS0108_PORT=0x378
-CONFIG_KS0108_DELAY=2
-CONFIG_CFAG12864B=m
-CONFIG_CFAG12864B_RATE=20
-CONFIG_VIRTUALIZATION=y
-CONFIG_KVM=m
-CONFIG_KVM_INTEL=m
-CONFIG_KVM_AMD=m
-
-#
-# Userspace I/O
-#
-CONFIG_UIO=m
-CONFIG_UIO_CIF=m
-
-#
-# Firmware Drivers
-#
-# CONFIG_EDD is not set
-CONFIG_EFI_VARS=m
-CONFIG_DELL_RBU=m
-CONFIG_DCDBAS=m
-CONFIG_DMIID=y
-
-#
-# File systems
-#
-CONFIG_EXT2_FS=y
-CONFIG_EXT2_FS_XATTR=y
-CONFIG_EXT2_FS_POSIX_ACL=y
-CONFIG_EXT2_FS_SECURITY=y
-# CONFIG_EXT2_FS_XIP is not set
-CONFIG_EXT3_FS=y
-CONFIG_EXT3_FS_XATTR=y
-CONFIG_EXT3_FS_POSIX_ACL=y
-CONFIG_EXT3_FS_SECURITY=y
-CONFIG_EXT4_FS=m
-CONFIG_EXT4_FS_XATTR=y
-CONFIG_EXT4_FS_POSIX_ACL=y
-CONFIG_EXT4_FS_SECURITY=y
-CONFIG_JBD=y
-# CONFIG_JBD_DEBUG is not set
-CONFIG_JBD2=m
-# CONFIG_JBD2_DEBUG is not set
-CONFIG_FS_MBCACHE=y
-CONFIG_REISERFS_FS=y
-# CONFIG_REISERFS_CHECK is not set
-CONFIG_REISERFS_PROC_INFO=y
-CONFIG_REISERFS_FS_XATTR=y
-CONFIG_REISERFS_FS_POSIX_ACL=y
-CONFIG_REISERFS_FS_SECURITY=y
-CONFIG_JFS_FS=m
-CONFIG_JFS_POSIX_ACL=y
-CONFIG_JFS_SECURITY=y
-# CONFIG_JFS_DEBUG is not set
-CONFIG_JFS_STATISTICS=y
-CONFIG_FS_POSIX_ACL=y
-CONFIG_XFS_FS=m
-CONFIG_XFS_QUOTA=y
-CONFIG_XFS_SECURITY=y
-CONFIG_XFS_POSIX_ACL=y
-CONFIG_XFS_RT=y
-CONFIG_GFS2_FS=m
-CONFIG_GFS2_FS_LOCKING_NOLOCK=m
-CONFIG_GFS2_FS_LOCKING_DLM=m
-CONFIG_OCFS2_FS=m
-CONFIG_OCFS2_DEBUG_MASKLOG=y
-# CONFIG_OCFS2_DEBUG_FS is not set
-CONFIG_MINIX_FS=m
-CONFIG_ROMFS_FS=m
-CONFIG_INOTIFY=y
-CONFIG_INOTIFY_USER=y
-CONFIG_QUOTA=y
-CONFIG_QUOTA_NETLINK_INTERFACE=y
-# CONFIG_PRINT_QUOTA_WARNING is not set
-# CONFIG_QFMT_V1 is not set
-CONFIG_QFMT_V2=m
-CONFIG_QUOTACTL=y
-CONFIG_DNOTIFY=y
-CONFIG_AUTOFS_FS=m
-CONFIG_AUTOFS4_FS=m
-CONFIG_FUSE_FS=m
-CONFIG_GENERIC_ACL=y
-
-#
-# CD-ROM/DVD Filesystems
-#
-CONFIG_ISO9660_FS=y
-CONFIG_JOLIET=y
-CONFIG_ZISOFS=y
-CONFIG_UDF_FS=y
-CONFIG_UDF_NLS=y
-
-#
-# DOS/FAT/NT Filesystems
-#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=m
-CONFIG_VFAT_FS=y
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-CONFIG_NTFS_FS=m
-# CONFIG_NTFS_DEBUG is not set
-# CONFIG_NTFS_RW is not set
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_PROC_KCORE=y
-CONFIG_PROC_VMCORE=y
-CONFIG_PROC_SYSCTL=y
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-CONFIG_TMPFS_POSIX_ACL=y
-CONFIG_HUGETLBFS=y
-CONFIG_HUGETLB_PAGE=y
-CONFIG_CONFIGFS_FS=y
-
-#
-# Miscellaneous filesystems
-#
-CONFIG_ADFS_FS=m
-# CONFIG_ADFS_FS_RW is not set
-CONFIG_AFFS_FS=m
-CONFIG_ECRYPT_FS=m
-CONFIG_HFS_FS=m
-CONFIG_HFSPLUS_FS=m
-CONFIG_BEFS_FS=m
-# CONFIG_BEFS_DEBUG is not set
-CONFIG_BFS_FS=m
-CONFIG_EFS_FS=m
-CONFIG_CRAMFS=m
-CONFIG_SQUASHFS=y
-CONFIG_SQUASHFS_EMBEDDED=y
-CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
-CONFIG_VXFS_FS=m
-CONFIG_HPFS_FS=m
-CONFIG_QNX4FS_FS=m
-CONFIG_SYSV_FS=m
-CONFIG_UFS_FS=m
-# CONFIG_UFS_FS_WRITE is not set
-# CONFIG_UFS_DEBUG is not set
-CONFIG_NETWORK_FILESYSTEMS=y
-CONFIG_NFS_FS=m
-CONFIG_NFS_V3=y
-CONFIG_NFS_V3_ACL=y
-CONFIG_NFS_V4=y
-CONFIG_NFS_DIRECTIO=y
-CONFIG_NFSD=m
-CONFIG_NFSD_V2_ACL=y
-CONFIG_NFSD_V3=y
-CONFIG_NFSD_V3_ACL=y
-CONFIG_NFSD_V4=y
-CONFIG_NFSD_TCP=y
-CONFIG_LOCKD=m
-CONFIG_LOCKD_V4=y
-CONFIG_EXPORTFS=m
-CONFIG_NFS_ACL_SUPPORT=m
-CONFIG_NFS_COMMON=y
-CONFIG_SUNRPC=m
-CONFIG_SUNRPC_GSS=m
-CONFIG_SUNRPC_XPRT_RDMA=m
-CONFIG_SUNRPC_BIND34=y
-CONFIG_RPCSEC_GSS_KRB5=m
-CONFIG_RPCSEC_GSS_SPKM3=m
-# CONFIG_SMB_FS is not set
-CONFIG_CIFS=m
-CONFIG_CIFS_STATS=y
-CONFIG_CIFS_STATS2=y
-CONFIG_CIFS_WEAK_PW_HASH=y
-CONFIG_CIFS_XATTR=y
-CONFIG_CIFS_POSIX=y
-# CONFIG_CIFS_DEBUG2 is not set
-# CONFIG_CIFS_EXPERIMENTAL is not set
-CONFIG_NCP_FS=m
-CONFIG_NCPFS_PACKET_SIGNING=y
-# CONFIG_NCPFS_IOCTL_LOCKING is not set
-CONFIG_NCPFS_STRONG=y
-CONFIG_NCPFS_NFS_NS=y
-CONFIG_NCPFS_OS2_NS=y
-CONFIG_NCPFS_SMALLDOS=y
-CONFIG_NCPFS_NLS=y
-CONFIG_NCPFS_EXTRAS=y
-CONFIG_CODA_FS=m
-# CONFIG_CODA_FS_OLD_API is not set
-CONFIG_AFS_FS=m
-# CONFIG_AFS_DEBUG is not set
-
-#
-# Partition Types
-#
-CONFIG_PARTITION_ADVANCED=y
-# CONFIG_ACORN_PARTITION is not set
-# CONFIG_OSF_PARTITION is not set
-# CONFIG_AMIGA_PARTITION is not set
-# CONFIG_ATARI_PARTITION is not set
-CONFIG_MAC_PARTITION=y
-CONFIG_MSDOS_PARTITION=y
-CONFIG_BSD_DISKLABEL=y
-CONFIG_MINIX_SUBPARTITION=y
-CONFIG_SOLARIS_X86_PARTITION=y
-CONFIG_UNIXWARE_DISKLABEL=y
-CONFIG_LDM_PARTITION=y
-# CONFIG_LDM_DEBUG is not set
-# CONFIG_SGI_PARTITION is not set
-# CONFIG_ULTRIX_PARTITION is not set
-# CONFIG_SUN_PARTITION is not set
-CONFIG_KARMA_PARTITION=y
-CONFIG_EFI_PARTITION=y
-# CONFIG_SYSV68_PARTITION is not set
-CONFIG_NLS=y
-CONFIG_NLS_DEFAULT="iso8859-1"
-CONFIG_NLS_CODEPAGE_437=y
-# CONFIG_NLS_CODEPAGE_737 is not set
-# CONFIG_NLS_CODEPAGE_775 is not set
-# CONFIG_NLS_CODEPAGE_850 is not set
-# CONFIG_NLS_CODEPAGE_852 is not set
-# CONFIG_NLS_CODEPAGE_855 is not set
-# CONFIG_NLS_CODEPAGE_857 is not set
-# CONFIG_NLS_CODEPAGE_860 is not set
-# CONFIG_NLS_CODEPAGE_861 is not set
-# CONFIG_NLS_CODEPAGE_862 is not set
-# CONFIG_NLS_CODEPAGE_863 is not set
-# CONFIG_NLS_CODEPAGE_864 is not set
-# CONFIG_NLS_CODEPAGE_865 is not set
-# CONFIG_NLS_CODEPAGE_866 is not set
-# CONFIG_NLS_CODEPAGE_869 is not set
-# CONFIG_NLS_CODEPAGE_936 is not set
-# CONFIG_NLS_CODEPAGE_950 is not set
-# CONFIG_NLS_CODEPAGE_932 is not set
-# CONFIG_NLS_CODEPAGE_949 is not set
-# CONFIG_NLS_CODEPAGE_874 is not set
-# CONFIG_NLS_ISO8859_8 is not set
-# CONFIG_NLS_CODEPAGE_1250 is not set
-# CONFIG_NLS_CODEPAGE_1251 is not set
-# CONFIG_NLS_ASCII is not set
-CONFIG_NLS_ISO8859_1=y
-# CONFIG_NLS_ISO8859_2 is not set
-# CONFIG_NLS_ISO8859_3 is not set
-# CONFIG_NLS_ISO8859_4 is not set
-# CONFIG_NLS_ISO8859_5 is not set
-# CONFIG_NLS_ISO8859_6 is not set
-# CONFIG_NLS_ISO8859_7 is not set
-# CONFIG_NLS_ISO8859_9 is not set
-# CONFIG_NLS_ISO8859_13 is not set
-# CONFIG_NLS_ISO8859_14 is not set
-CONFIG_NLS_ISO8859_15=y
-# CONFIG_NLS_KOI8_R is not set
-# CONFIG_NLS_KOI8_U is not set
-CONFIG_NLS_UTF8=y
-CONFIG_DLM=m
-# CONFIG_DLM_DEBUG is not set
-CONFIG_INSTRUMENTATION=y
-CONFIG_PROFILING=y
-CONFIG_OPROFILE=m
-CONFIG_KPROBES=y
-CONFIG_MARKERS=y
-
-#
-# Kernel hacking
-#
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-# CONFIG_PRINTK_TIME is not set
-CONFIG_ENABLE_WARN_DEPRECATED=y
-CONFIG_ENABLE_MUST_CHECK=y
-CONFIG_MAGIC_SYSRQ=y
-# CONFIG_UNUSED_SYMBOLS is not set
-CONFIG_DEBUG_FS=y
-# CONFIG_HEADERS_CHECK is not set
-CONFIG_DEBUG_KERNEL=y
-CONFIG_DEBUG_SHIRQ=y
-CONFIG_DETECT_SOFTLOCKUP=y
-CONFIG_SCHED_DEBUG=y
-# CONFIG_SCHEDSTATS is not set
-# CONFIG_TIMER_STATS is not set
-# CONFIG_DEBUG_SLAB is not set
-CONFIG_DEBUG_RT_MUTEXES=y
-CONFIG_DEBUG_PI_LIST=y
-# CONFIG_RT_MUTEX_TESTER is not set
-# CONFIG_DEBUG_SPINLOCK is not set
-CONFIG_DEBUG_MUTEXES=y
-# CONFIG_DEBUG_LOCK_ALLOC is not set
-# CONFIG_PROVE_LOCKING is not set
-# CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
-# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
-# CONFIG_DEBUG_KOBJECT is not set
-# CONFIG_DEBUG_HIGHMEM is not set
-CONFIG_DEBUG_BUGVERBOSE=y
-CONFIG_DEBUG_INFO=y
-# CONFIG_DEBUG_VM is not set
-# CONFIG_DEBUG_LIST is not set
-# CONFIG_DEBUG_SG is not set
-CONFIG_FRAME_POINTER=y
-CONFIG_FORCED_INLINING=y
-# CONFIG_BOOT_PRINTK_DELAY is not set
-# CONFIG_RCU_TORTURE_TEST is not set
-# CONFIG_LKDTM is not set
-# CONFIG_FAULT_INJECTION is not set
-# CONFIG_SAMPLES is not set
-CONFIG_EARLY_PRINTK=y
-# CONFIG_DEBUG_STACKOVERFLOW is not set
-# CONFIG_DEBUG_STACK_USAGE is not set
-
-#
-# Page alloc debug is incompatible with Software Suspend on i386
-#
-# CONFIG_DEBUG_RODATA is not set
-CONFIG_4KSTACKS=y
-CONFIG_X86_FIND_SMP_CONFIG=y
-CONFIG_X86_MPPARSE=y
-CONFIG_DOUBLEFAULT=y
-
-#
-# Security options
-#
-CONFIG_KEYS=y
-CONFIG_KEYS_DEBUG_PROC_KEYS=y
-CONFIG_SECURITY=y
-CONFIG_SECURITY_NETWORK=y
-CONFIG_SECURITY_NETWORK_XFRM=y
-CONFIG_SECURITY_CAPABILITIES=y
-CONFIG_SECURITY_FILE_CAPABILITIES=y
-# CONFIG_SECURITY_SELINUX is not set
-CONFIG_XOR_BLOCKS=y
-CONFIG_ASYNC_CORE=y
-CONFIG_ASYNC_MEMCPY=y
-CONFIG_ASYNC_XOR=y
-CONFIG_CRYPTO=y
-CONFIG_CRYPTO_ALGAPI=y
-CONFIG_CRYPTO_ABLKCIPHER=m
-CONFIG_CRYPTO_AEAD=m
-CONFIG_CRYPTO_BLKCIPHER=m
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_HMAC=y
-CONFIG_CRYPTO_XCBC=m
-CONFIG_CRYPTO_NULL=m
-CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_SHA1=m
-CONFIG_CRYPTO_SHA256=m
-CONFIG_CRYPTO_SHA512=m
-CONFIG_CRYPTO_WP512=m
-CONFIG_CRYPTO_TGR192=m
-CONFIG_CRYPTO_GF128MUL=m
-CONFIG_CRYPTO_ECB=m
-CONFIG_CRYPTO_CBC=m
-CONFIG_CRYPTO_PCBC=m
-CONFIG_CRYPTO_LRW=m
-CONFIG_CRYPTO_XTS=m
-CONFIG_CRYPTO_CRYPTD=m
-CONFIG_CRYPTO_DES=y
-CONFIG_CRYPTO_FCRYPT=m
-CONFIG_CRYPTO_BLOWFISH=m
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_TWOFISH_COMMON=m
-CONFIG_CRYPTO_TWOFISH_586=m
-CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_AES=m
-CONFIG_CRYPTO_AES_586=m
-CONFIG_CRYPTO_CAST5=m
-CONFIG_CRYPTO_CAST6=m
-CONFIG_CRYPTO_TEA=m
-CONFIG_CRYPTO_ARC4=m
-CONFIG_CRYPTO_KHAZAD=m
-CONFIG_CRYPTO_ANUBIS=m
-CONFIG_CRYPTO_SEED=m
-CONFIG_CRYPTO_DEFLATE=m
-CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_CRC32C=y
-CONFIG_CRYPTO_CAMELLIA=m
-# CONFIG_CRYPTO_TEST is not set
-CONFIG_CRYPTO_AUTHENC=m
-CONFIG_CRYPTO_HW=y
-CONFIG_CRYPTO_DEV_PADLOCK=m
-CONFIG_CRYPTO_DEV_PADLOCK_AES=m
-CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
-CONFIG_CRYPTO_DEV_GEODE=m
-
-#
-# Library routines
-#
-CONFIG_BITREVERSE=y
-CONFIG_CRC_CCITT=m
-CONFIG_CRC16=y
-CONFIG_CRC_ITU_T=m
-CONFIG_CRC32=y
-CONFIG_CRC7=m
-CONFIG_LIBCRC32C=y
-CONFIG_AUDIT_GENERIC=y
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=m
-CONFIG_GENERIC_ALLOCATOR=y
-CONFIG_TEXTSEARCH=y
-CONFIG_TEXTSEARCH_KMP=m
-CONFIG_TEXTSEARCH_BM=m
-CONFIG_TEXTSEARCH_FSM=m
-CONFIG_PLIST=y
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT=y
-CONFIG_HAS_DMA=y
-CONFIG_CHECK_SIGNATURE=y
diff --git a/defaults/kernel-generic-config b/defaults/kernel-generic-config
index 6bd2d32..ac98e60 100644
--- a/defaults/kernel-generic-config
+++ b/defaults/kernel-generic-config
@@ -1,1048 +1,4006 @@
-#
-# Automatically generated make config: don't edit
-#
-CONFIG_TICK_ONESHOT=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_MMU=y
-CONFIG_SHMEM=y
-CONFIG_SMP=y
-CONFIG_HOTPLUG_CPU=y
-CONFIG_LOCALVERSION=""
-
-#
-# Code maturity level options
-#
-CONFIG_EXPERIMENTAL=y
-CONFIG_HOTPLUG=y
-CONFIG_UEVENT_HELPER_PATH=""
-CONFIG_DEVTMPFS=y
-CONFIG_DEVTMPFS_MOUNT=y
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-
-# CONFIG_BUILD_DOCSRC is not set
-
-#
-# General setup
-#
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-CONFIG_BSD_PROCESS_ACCT=y
-CONFIG_BSD_PROCESS_ACCT_V3=y
-CONFIG_TASKSTATS=y
-CONFIG_TASK_DELAY_ACCT=y
-CONFIG_TASK_XACCT=y
-CONFIG_TASK_IO_ACCOUNTING=y
-CONFIG_SYSCTL=y
-CONFIG_LOG_BUF_SHIFT=19
-CONFIG_IKCONFIG=y
-CONFIG_IKCONFIG_PROC=y
-CONFIG_BPF_SYSCALL=y
-# CONFIG_EMBEDDED is not set
-CONFIG_KALLSYMS=y
-# CONFIG_KALLSYMS_ALL is not set
-CONFIG_KALLSYMS_EXTRA_PASS=y
-CONFIG_KALLSYMS_STRIP_GENERATED=y
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
-CONFIG_DEFAULT_CFQ=y
-CONFIG_USER_NS=y
-CONFIG_PID_NS=y
-CONFIG_UTS_NS=y
-CONFIG_IPC_NS=y
-CONFIG_NET_NS=y
-
-CONFIG_POSIX_MQUEUE=y
-# CONFIG_PREEMPT_NONE is not set
-CONFIG_PREEMPT_VOLUNTARY=y
-# CONFIG_PREEMPT is not set
-CONFIG_PREEMPT_BKL=y
-
-# CONFIG_SLUB is not set
-# CONFIG_SLUB_STATS is not set
-
-CONFIG_MISC_DEVICES=y
-
-#
-# Loadable module support
-#
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODULE_FORCE_LOAD=y
-# -- MODULE_FORCE_UNLOAD is controlled by config-debug/nodebug
-CONFIG_MODVERSIONS=y
-CONFIG_MODULE_SRCVERSION_ALL=y
-CONFIG_KMOD=y
-
-#
-# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
-#
-CONFIG_PCI=y
-# CONFIG_PCI_DEBUG is not set
-CONFIG_PCI_STUB=y
-CONFIG_PCI_IOV=y
-CONFIG_HT_IRQ=y
-CONFIG_PCI_MSI=y
-CONFIG_PCI_MSI_DEFAULT_ON=y
-CONFIG_PCIEPORTBUS=y
-CONFIG_PCIEAER=y
-CONFIG_PCIEASPM=y
-# CONFIG_PCIEASPM_DEBUG is not set
-CONFIG_PCIE_ECRC=y
-CONFIG_PCIEAER_INJECT=m
-CONFIG_HOTPLUG_PCI_PCIE=y
-CONFIG_HOTPLUG_PCI_FAKE=m
-CONFIG_PCI_LEGACY=y
-
-CONFIG_ISA=y
-# CONFIG_EISA is not set
-# CONFIG_MCA is not set
-# CONFIG_SCx200 is not set
-
-#
-# PCMCIA/CardBus support
-#
-CONFIG_PCMCIA=y
-CONFIG_PCMCIA_LOAD_CIS=y
-# CONFIG_PCMCIA_DEBUG is not set
-CONFIG_YENTA=m
-CONFIG_CARDBUS=y
-# CONFIG_I82092 is not set
-CONFIG_PD6729=m
-CONFIG_PCMCIA_IOCTL=y
-
-CONFIG_PCCARD=y
-CONFIG_MMC=m
-CONFIG_MMC_BLOCK_BOUNCE=y
-CONFIG_SDIO_UART=m
-# CONFIG_MMC_TEST is not set
-# CONFIG_MMC_DEBUG is not set
-# CONFIG_MMC_UNSAFE_RESUME is not set
-CONFIG_MMC_BLOCK=m
-CONFIG_MMC_RICOH_MMC=y
-CONFIG_MMC_SDHCI=m
-CONFIG_MMC_SDHCI_PCI=m
-CONFIG_MMC_SDRICOH_CS=m
-CONFIG_MMC_TIFM_SD=m
-# CONFIG_MMC_WBSD is not set
-CONFIG_MMC_VIA_SDMMC=m
-CONFIG_MMC_SDHCI_PLTFM=m
-CONFIG_MMC_CB710=m
-
-CONFIG_CB710_CORE=m
-# CONFIG_CB710_DEBUG is not set
-
-CONFIG_INFINIBAND=m
-CONFIG_INFINIBAND_MTHCA=m
-# CONFIG_INFINIBAND_MTHCA_DEBUG is not set
-CONFIG_INFINIBAND_IPOIB=m
-CONFIG_INFINIBAND_IPOIB_DEBUG=y
-# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set
-CONFIG_INFINIBAND_IPOIB_CM=y
-CONFIG_INFINIBAND_SRP=m
-CONFIG_INFINIBAND_USER_MAD=m
-CONFIG_INFINIBAND_USER_ACCESS=m
-CONFIG_INFINIBAND_IPATH=m
-CONFIG_INFINIBAND_ISER=m
-# CONFIG_INFINIBAND_AMSO1100 is not set
-# CONFIG_INFINIBAND_AMSO1100_DEBUG is not set
-CONFIG_INFINIBAND_CXGB3=m
-# CONFIG_INFINIBAND_CXGB3_DEBUG is not set
-CONFIG_MLX4_INFINIBAND=m
-CONFIG_INFINIBAND_NES=m
-# CONFIG_INFINIBAND_NES_DEBUG is not set
-
-CONFIG_EDAC=y
-CONFIG_EDAC_LEGACY_SYSFS=y
-# CONFIG_EDAC_DEBUG is not set
-CONFIG_EDAC_DECODE_MCE=m
-CONFIG_EDAC_MCE_INJ=m
-CONFIG_EDAC_MM_EDAC=m
-CONFIG_EDAC_AMD64=m
-CONFIG_EDAC_AMD64_ERROR_INJECTION=y
-CONFIG_EDAC_E752X=m
-CONFIG_EDAC_I82975X=m
-CONFIG_EDAC_I3000=m
-CONFIG_EDAC_I3200=m
-CONFIG_EDAC_X38=m
-CONFIG_EDAC_I5400=m
-CONFIG_EDAC_I7CORE=m
-CONFIG_EDAC_I5000=m
-CONFIG_EDAC_I5100=m
-CONFIG_EDAC_I7300=m
-
-#
-# Executable file formats
-#
+# CONFIG_60XX_WDT is not set
+CONFIG_64BIT_TIME=y
+CONFIG_6LOWPAN_DEBUGFS=y
+CONFIG_6LOWPAN_GHC_EXT_HDR_DEST=m
+CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG=m
+CONFIG_6LOWPAN_GHC_EXT_HDR_HOP=m
+CONFIG_6LOWPAN_GHC_EXT_HDR_ROUTE=m
+CONFIG_6LOWPAN_GHC_ICMPV6=m
+CONFIG_6LOWPAN_GHC_UDP=m
+CONFIG_6LOWPAN=m
+CONFIG_6LOWPAN_NHC_DEST=m
+CONFIG_6LOWPAN_NHC_FRAGMENT=m
+CONFIG_6LOWPAN_NHC_HOP=m
+CONFIG_6LOWPAN_NHC_IPV6=m
+CONFIG_6LOWPAN_NHC=m
+CONFIG_6LOWPAN_NHC_MOBILITY=m
+CONFIG_6LOWPAN_NHC_ROUTING=m
+CONFIG_6LOWPAN_NHC_UDP=m
+CONFIG_6PACK=m
+CONFIG_8139CP=m
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_8139TOO_8129=y
+CONFIG_8139TOO=m
+# CONFIG_8139TOO_PIO is not set
+# CONFIG_8139TOO_TUNE_TWISTER is not set
+CONFIG_842_COMPRESS=y
+CONFIG_842_DECOMPRESS=y
+CONFIG_88EU_AP_MODE=y
+CONFIG_9P_FSCACHE=y
+CONFIG_9P_FS=m
+CONFIG_9P_FS_POSIX_ACL=y
+CONFIG_9P_FS_SECURITY=y
+CONFIG_A11Y_BRAILLE_CONSOLE=y
+CONFIG_ABP060MG=m
+# CONFIG_ABX500_CORE is not set
+CONFIG_AC97_BUS=m
+CONFIG_ACCESSIBILITY=y
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_ACERHDF=m
+CONFIG_ACER_WIRELESS=m
+CONFIG_ACER_WMI=m
+# CONFIG_ACORN_PARTITION is not set
+CONFIG_ACPI_AC=y
+CONFIG_ACPI_ALS=m
+CONFIG_ACPI_APEI_EINJ=m
+# CONFIG_ACPI_APEI_ERST_DEBUG is not set
+CONFIG_ACPI_APEI_GHES=y
+CONFIG_ACPI_APEI_PCIEAER=y
+CONFIG_ACPI_APEI=y
+CONFIG_ACPI_BATTERY=y
+CONFIG_ACPI_BGRT=y
+CONFIG_ACPI_BUTTON=y
+CONFIG_ACPI_CMPC=m
+CONFIG_ACPI_CONFIGFS=m
+CONFIG_ACPI_CONTAINER=y
+CONFIG_ACPI_CPU_FREQ_PSS=y
+CONFIG_ACPI_CUSTOM_METHOD=m
+# CONFIG_ACPI_DEBUGGER is not set
+CONFIG_ACPI_DEBUG=y
+CONFIG_ACPI_DOCK=y
+# CONFIG_ACPI_DPTF is not set
+CONFIG_ACPI_EC_DEBUGFS=m
+CONFIG_ACPI_EXTLOG=m
+CONFIG_ACPI_FAN=y
+CONFIG_ACPI_HED=y
+CONFIG_ACPI_HOTPLUG_CPU=y
+CONFIG_ACPI_HOTPLUG_IOAPIC=y
+CONFIG_ACPI_IPMI=m
+CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y
+CONFIG_ACPI_PCI_SLOT=y
+CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
+CONFIG_ACPI_PROCESSOR_CSTATE=y
+CONFIG_ACPI_PROCESSOR_IDLE=y
+CONFIG_ACPI_PROCESSOR=y
+# CONFIG_ACPI_PROCFS_POWER is not set
+CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y
+CONFIG_ACPI_SBS=m
+CONFIG_ACPI_SLEEP=y
+CONFIG_ACPI_SPCR_TABLE=y
+CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y
+CONFIG_ACPI_TABLE_UPGRADE=y
+CONFIG_ACPI_TAD=m
+CONFIG_ACPI_THERMAL_REL=m
+CONFIG_ACPI_THERMAL=y
+CONFIG_ACPI_TOSHIBA=m
+CONFIG_ACPI_VIDEO=m
+CONFIG_ACPI_WATCHDOG=y
+CONFIG_ACPI_WMI=m
+CONFIG_ACPI=y
+# CONFIG_ACQUIRE_WDT is not set
+# CONFIG_AD2S1200 is not set
+# CONFIG_AD2S1210 is not set
+# CONFIG_AD2S90 is not set
+# CONFIG_AD5064 is not set
+# CONFIG_AD525X_DPOT is not set
+CONFIG_AD5272=m
+# CONFIG_AD5360 is not set
+# CONFIG_AD5380 is not set
+# CONFIG_AD5421 is not set
+# CONFIG_AD5446 is not set
+# CONFIG_AD5449 is not set
+# CONFIG_AD5504 is not set
+# CONFIG_AD5592R is not set
+# CONFIG_AD5593R is not set
+# CONFIG_AD5624R_SPI is not set
+# CONFIG_AD5686_SPI is not set
+# CONFIG_AD5696_I2C is not set
+# CONFIG_AD5755 is not set
+# CONFIG_AD5758 is not set
+# CONFIG_AD5761 is not set
+# CONFIG_AD5764 is not set
+# CONFIG_AD5770R is not set
+# CONFIG_AD5791 is not set
+# CONFIG_AD5933 is not set
+# CONFIG_AD7091R5 is not set
+CONFIG_AD7124=m
+# CONFIG_AD7150 is not set
+# CONFIG_AD7192 is not set
+# CONFIG_AD7266 is not set
+# CONFIG_AD7280 is not set
+# CONFIG_AD7291 is not set
+CONFIG_AD7292=m
+# CONFIG_AD7298 is not set
+# CONFIG_AD7303 is not set
+# CONFIG_AD7476 is not set
+# CONFIG_AD7606_IFACE_PARALLEL is not set
+# CONFIG_AD7606_IFACE_SPI is not set
+# CONFIG_AD7746 is not set
+CONFIG_AD7766=m
+# CONFIG_AD7768_1 is not set
+# CONFIG_AD7780 is not set
+# CONFIG_AD7791 is not set
+# CONFIG_AD7793 is not set
+# CONFIG_AD7816 is not set
+# CONFIG_AD7887 is not set
+# CONFIG_AD7923 is not set
+CONFIG_AD7949=m
+# CONFIG_AD799X is not set
+# CONFIG_AD8366 is not set
+# CONFIG_AD8801 is not set
+CONFIG_AD9467=m
+# CONFIG_AD9523 is not set
+# CONFIG_AD9832 is not set
+# CONFIG_AD9834 is not set
+CONFIG_ADAPTEC_STARFIRE=m
+# CONFIG_ADE7854 is not set
+# CONFIG_ADF4350 is not set
+# CONFIG_ADF4371 is not set
+# CONFIG_ADFS_FS is not set
+CONFIG_ADI_AXI_ADC=m
+CONFIG_ADIN_PHY=m
+# CONFIG_ADIS16080 is not set
+# CONFIG_ADIS16130 is not set
+# CONFIG_ADIS16136 is not set
+# CONFIG_ADIS16201 is not set
+# CONFIG_ADIS16203 is not set
+# CONFIG_ADIS16209 is not set
+# CONFIG_ADIS16240 is not set
+# CONFIG_ADIS16260 is not set
+# CONFIG_ADIS16400 is not set
+# CONFIG_ADIS16460 is not set
+# CONFIG_ADIS16475 is not set
+# CONFIG_ADIS16480 is not set
+# CONFIG_ADJD_S311 is not set
+CONFIG_AD_SIGMA_DELTA=m
+# CONFIG_ADT7316 is not set
+# CONFIG_ADUX1020 is not set
+# CONFIG_ADVANTECH_WDT is not set
+CONFIG_ADVISE_SYSCALLS=y
+# CONFIG_ADXL345_I2C is not set
+# CONFIG_ADXL345_SPI is not set
+CONFIG_ADXL372_I2C=m
+CONFIG_ADXL372=m
+CONFIG_ADXL372_SPI=m
+# CONFIG_ADXRS290 is not set
+# CONFIG_ADXRS450 is not set
+# CONFIG_AFE4403 is not set
+# CONFIG_AFE4404 is not set
+CONFIG_AFFS_FS=m
+CONFIG_AF_KCM=m
+CONFIG_AF_RXRPC_DEBUG=y
+# CONFIG_AF_RXRPC_INJECT_LOSS is not set
+CONFIG_AF_RXRPC_IPV6=y
+CONFIG_AF_RXRPC=m
+# CONFIG_AFS_DEBUG_CURSOR is not set
+CONFIG_AFS_DEBUG=y
+CONFIG_AFS_FSCACHE=y
+CONFIG_AFS_FS=m
+CONFIG_AGP_AMD64=y
+CONFIG_AGP_INTEL=y
+CONFIG_AGP_SIS=y
+CONFIG_AGP_VIA=y
+CONFIG_AGP=y
+CONFIG_AIC79XX_CMDS_PER_DEVICE=4
+# CONFIG_AIC79XX_DEBUG_ENABLE is not set
+CONFIG_AIC79XX_DEBUG_MASK=0
+# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set
+CONFIG_AIC79XX_RESET_DELAY_MS=15000
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=4
+# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
+CONFIG_AIC7XXX_DEBUG_MASK=0
+# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set
+CONFIG_AIC7XXX_RESET_DELAY_MS=15000
+CONFIG_AIO=y
+# CONFIG_AIX_PARTITION is not set
+# CONFIG_AK09911 is not set
+# CONFIG_AL3010 is not set
+# CONFIG_AL3320A is not set
+CONFIG_ALIENWARE_WMI=m
+CONFIG_ALIM1535_WDT=m
+CONFIG_ALIM7101_WDT=m
+CONFIG_ALLOW_DEV_COREDUMP=y
+# CONFIG_ALTERA_FREEZE_BRIDGE is not set
+CONFIG_ALTERA_MSGDMA=m
+CONFIG_ALTERA_PR_IP_CORE=m
+CONFIG_ALTERA_STAPL=m
+CONFIG_ALTERA_TSE=m
+CONFIG_ALX=m
+# CONFIG_AM2315 is not set
+CONFIG_AMD8111_ETH=m
+CONFIG_AMD_NB=y
+CONFIG_AMD_PHY=m
+CONFIG_AMD_PMC=m
+# CONFIG_AMD_SFH_HID is not set
+CONFIG_AMD_XGBE_DCB=y
+CONFIG_AMD_XGBE_HAVE_ECC=y
+CONFIG_AMD_XGBE=m
+CONFIG_AMIGA_PARTITION=y
+CONFIG_AMILO_RFKILL=m
+# CONFIG_ANDROID is not set
+# CONFIG_APDS9300 is not set
+CONFIG_APDS9802ALS=m
+# CONFIG_APDS9960 is not set
+CONFIG_APPLE_GMUX=m
+CONFIG_APPLE_MFI_FASTCHARGE=m
+CONFIG_APPLE_PROPERTIES=y
+# CONFIG_APPLICOM is not set
+CONFIG_AQUANTIA_PHY=m
+CONFIG_AR5523=m
+CONFIG_ARCH_CLOCKSOURCE_DATA=y
+CONFIG_ARCH_CLOCKSOURCE_INIT=y
+CONFIG_ARCH_CPUIDLE_HALTPOLL=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
+CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_ARCH_HAS_COPY_MC=y
+CONFIG_ARCH_HAS_CPU_RELAX=y
+CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
+CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y
+CONFIG_ARCH_HAS_DEBUG_WX=y
+CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
+CONFIG_ARCH_HAS_EARLY_DEBUG=y
+CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
+CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
+CONFIG_ARCH_HAS_FILTER_PGPROT=y
+CONFIG_ARCH_HAS_FORTIFY_SOURCE=y
+CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
+CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y
+CONFIG_ARCH_HAS_MEM_ENCRYPT=y
+CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y
+CONFIG_ARCH_HAS_PTE_SPECIAL=y
+CONFIG_ARCH_HAS_REFCOUNT=y
+CONFIG_ARCH_HAS_SET_DIRECT_MAP=y
+CONFIG_ARCH_HAS_SET_MEMORY=y
+CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
+CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
+CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y
+CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
+CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
+CONFIG_ARCH_HIBERNATION_HEADER=y
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+# CONFIG_ARCH_MEMORY_PROBE is not set
+CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y
+CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
+CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8
+CONFIG_ARCH_RANDOM=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_STACKWALK=y
+CONFIG_ARCH_SUPPORTS_ACPI=y
+CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_ARCH_SUPPORTS_UPROBES=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_ARCH_USE_BUILTIN_BSWAP=y
+CONFIG_ARCH_USE_MEMREMAP_PROT=y
+CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
+CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
+CONFIG_ARCH_USES_PG_UNCACHED=y
+CONFIG_ARCH_USE_SYM_ANNOTATIONS=y
+CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
+CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y
+CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
+CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
+CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y
+CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y
+# CONFIG_ARCNET is not set
+# CONFIG_AS3935 is not set
+# CONFIG_AS73211 is not set
+CONFIG_AS_AVX512=y
+CONFIG_ASM_MODVERSIONS=y
+CONFIG_ASN1=y
+CONFIG_AS_SHA1_NI=y
+CONFIG_AS_SHA256_NI=y
+CONFIG_ASSOCIATIVE_ARRAY=y
+CONFIG_AS_TPAUSE=y
+CONFIG_ASUS_LAPTOP=m
+CONFIG_ASUS_NB_WMI=m
+CONFIG_ASUS_WIRELESS=m
+CONFIG_ASUS_WMI=m
+CONFIG_ASYMMETRIC_KEY_TYPE=y
+CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
+CONFIG_ASYMMETRIC_TPM_KEY_SUBTYPE=m
+CONFIG_ASYNC_CORE=m
+CONFIG_ASYNC_MEMCPY=m
+CONFIG_ASYNC_PQ=m
+CONFIG_ASYNC_RAID6_RECOV=m
+CONFIG_ASYNC_RAID6_TEST=m
+CONFIG_ASYNC_TX_DMA=y
+CONFIG_ASYNC_XOR=m
+CONFIG_AT803X_PHY=m
+CONFIG_ATA_ACPI=y
+CONFIG_ATA_BMDMA=y
+CONFIG_ATA_FORCE=y
+CONFIG_ATA_GENERIC=m
+CONFIG_ATALK=m
+CONFIG_ATA_OVER_ETH=m
+CONFIG_ATA_PIIX=m
+# CONFIG_ATARI_PARTITION is not set
+CONFIG_ATA_SFF=y
+CONFIG_ATA_VERBOSE_ERROR=y
+CONFIG_ATA=y
+CONFIG_ATH10K_CE=y
+CONFIG_ATH10K_DEBUGFS=y
+# CONFIG_ATH10K_DEBUG is not set
+CONFIG_ATH10K=m
+CONFIG_ATH10K_PCI=m
+CONFIG_ATH10K_SDIO=m
+# CONFIG_ATH10K_SPECTRAL is not set
+# CONFIG_ATH10K_TRACING is not set
+CONFIG_ATH10K_USB=m
+# CONFIG_ATH11K is not set
+CONFIG_ATH5K_DEBUG=y
+CONFIG_ATH5K=m
+CONFIG_ATH5K_PCI=y
+# CONFIG_ATH5K_TRACER is not set
+CONFIG_ATH6KL_DEBUG=y
+CONFIG_ATH6KL=m
+CONFIG_ATH6KL_SDIO=m
+# CONFIG_ATH6KL_TRACING is not set
+CONFIG_ATH6KL_USB=m
+CONFIG_ATH9K_AHB=y
+CONFIG_ATH9K_BTCOEX_SUPPORT=y
+# CONFIG_ATH9K_CHANNEL_CONTEXT is not set
+CONFIG_ATH9K_COMMON_DEBUG=y
+CONFIG_ATH9K_COMMON=m
+# CONFIG_ATH9K_COMMON_SPECTRAL is not set
+CONFIG_ATH9K_DEBUGFS=y
+# CONFIG_ATH9K_DYNACK is not set
+# CONFIG_ATH9K_HTC_DEBUGFS is not set
+CONFIG_ATH9K_HTC=m
+CONFIG_ATH9K_HW=m
+# CONFIG_ATH9K_HWRNG is not set
+CONFIG_ATH9K=m
+CONFIG_ATH9K_PCI_NO_EEPROM=m
+CONFIG_ATH9K_PCI=y
+CONFIG_ATH9K_PCOEM=y
+CONFIG_ATH9K_RFKILL=y
+# CONFIG_ATH9K_STATION_STATISTICS is not set
+# CONFIG_ATH9K_WOW is not set
+CONFIG_ATH_COMMON=m
+# CONFIG_ATH_DEBUG is not set
+CONFIG_ATL1C=m
+CONFIG_ATL1E=m
+CONFIG_ATL1=m
+CONFIG_ATL2=m
+# CONFIG_ATLAS_EZO_SENSOR is not set
+# CONFIG_ATLAS_PH_SENSOR is not set
+# CONFIG_ATM_AMBASSADOR is not set
+# CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_ATM_BR2684=m
+CONFIG_ATM_CLIP=m
+# CONFIG_ATM_CLIP_NO_ICMP is not set
+CONFIG_ATM_DRIVERS=y
+# CONFIG_ATM_DUMMY is not set
+# CONFIG_ATM_ENI_DEBUG is not set
+CONFIG_ATM_ENI=m
+# CONFIG_ATM_ENI_TUNE_BURST is not set
+CONFIG_ATM_FIRESTREAM=m
+# CONFIG_ATM_FORE200E is not set
+CONFIG_ATM_HE=m
+# CONFIG_ATM_HE_USE_SUNI is not set
+# CONFIG_ATM_HORIZON is not set
+# CONFIG_ATM_IA is not set
+# CONFIG_ATM_IDT77252 is not set
+# CONFIG_ATM_LANAI is not set
+CONFIG_ATM_LANE=m
+CONFIG_ATM=m
+# CONFIG_ATM_MPOA is not set
+CONFIG_ATM_NICSTAR=m
+# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
+# CONFIG_ATM_NICSTAR_USE_SUNI is not set
+CONFIG_ATM_SOLOS=m
+CONFIG_ATM_TCP=m
+# CONFIG_ATM_ZATM is not set
+CONFIG_ATOMIC64_SELFTEST=y
+CONFIG_ATP=m
+CONFIG_AUDITSYSCALL=y
+CONFIG_AUDIT=y
+CONFIG_AUTOFS4_FS=m
+CONFIG_AUTOFS_FS=m
+CONFIG_AUXDISPLAY=y
+CONFIG_AUXILIARY_BUS=y
+CONFIG_AX25_DAMA_SLAVE=y
+CONFIG_AX25=m
+CONFIG_AX88796B_PHY=m
+CONFIG_B43_BCMA_PIO=y
+CONFIG_B43_BCMA=y
+CONFIG_B43_BUSES_BCMA_AND_SSB=y
+# CONFIG_B43_BUSES_BCMA is not set
+# CONFIG_B43_BUSES_SSB is not set
+# CONFIG_B43_DEBUG is not set
+CONFIG_B43_HWRNG=y
+CONFIG_B43_LEDS=y
+# CONFIG_B43LEGACY_DEBUG is not set
+CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
+# CONFIG_B43LEGACY_DMA_MODE is not set
+CONFIG_B43LEGACY_DMA=y
+CONFIG_B43LEGACY_HWRNG=y
+CONFIG_B43LEGACY_LEDS=y
+CONFIG_B43LEGACY=m
+CONFIG_B43LEGACY_PCI_AUTOSELECT=y
+CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
+# CONFIG_B43LEGACY_PIO_MODE is not set
+CONFIG_B43LEGACY_PIO=y
+CONFIG_B43=m
+CONFIG_B43_PCI_AUTOSELECT=y
+CONFIG_B43_PCICORE_AUTOSELECT=y
+CONFIG_B43_PHY_G=y
+CONFIG_B43_PHY_HT=y
+CONFIG_B43_PHY_LP=y
+CONFIG_B43_PHY_N=y
+CONFIG_B43_PIO=y
+CONFIG_B43_SDIO=y
+CONFIG_B43_SSB=y
+CONFIG_B44=m
+CONFIG_B44_PCI_AUTOSELECT=y
+CONFIG_B44_PCICORE_AUTOSELECT=y
+CONFIG_B44_PCI=y
+CONFIG_B53=m
+CONFIG_B53_MDIO_DRIVER=m
+CONFIG_B53_MMAP_DRIVER=m
+CONFIG_B53_SERDES=m
+CONFIG_B53_SPI_DRIVER=m
+CONFIG_B53_SRAB_DRIVER=m
+# CONFIG_BACKLIGHT_ADP8860 is not set
+# CONFIG_BACKLIGHT_ADP8870 is not set
+CONFIG_BACKLIGHT_APPLE=m
+CONFIG_BACKLIGHT_ARCXCNN=m
+# CONFIG_BACKLIGHT_BD6107 is not set
+CONFIG_BACKLIGHT_CLASS_DEVICE=m
+# CONFIG_BACKLIGHT_GENERIC is not set
+# CONFIG_BACKLIGHT_GPIO is not set
+# CONFIG_BACKLIGHT_KTD253 is not set
+# CONFIG_BACKLIGHT_LM3630A is not set
+# CONFIG_BACKLIGHT_LM3639 is not set
+CONFIG_BACKLIGHT_LP855X=m
+# CONFIG_BACKLIGHT_LV5207LP is not set
+# CONFIG_BACKLIGHT_PM8941_WLED is not set
+CONFIG_BACKLIGHT_PWM=m
+# CONFIG_BACKLIGHT_QCOM_WLED is not set
+# CONFIG_BACKLIGHT_SAHARA is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+CONFIG_BALLOON_COMPACTION=y
+CONFIG_BAREUDP=m
+CONFIG_BASE_FULL=y
+CONFIG_BASE_SMALL=0
+CONFIG_BATMAN_ADV_BATMAN_V=y
+CONFIG_BATMAN_ADV_BLA=y
+CONFIG_BATMAN_ADV_DAT=y
+# CONFIG_BATMAN_ADV_DEBUGFS is not set
+# CONFIG_BATMAN_ADV_DEBUG is not set
+CONFIG_BATMAN_ADV=m
+CONFIG_BATMAN_ADV_MCAST=y
+CONFIG_BATMAN_ADV_NC=y
+CONFIG_BATMAN_ADV_SYSFS=y
+CONFIG_BATMAN_ADV_TRACING=y
+# CONFIG_BATTERY_BQ27XXX is not set
+CONFIG_BATTERY_CW2015=m
+# CONFIG_BATTERY_DS2780 is not set
+# CONFIG_BATTERY_DS2781 is not set
+# CONFIG_BATTERY_DS2782 is not set
+# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+# CONFIG_BATTERY_MAX17040 is not set
+# CONFIG_BATTERY_SBS is not set
+CONFIG_BAYCOM_PAR=m
+CONFIG_BAYCOM_SER_FDX=m
+CONFIG_BAYCOM_SER_HDX=m
+CONFIG_BCM54140_PHY=m
+CONFIG_BCM7XXX_PHY=m
+# CONFIG_BCM84881_PHY is not set
+CONFIG_BCM87XX_PHY=m
+CONFIG_BCMA_BLOCKIO=y
+# CONFIG_BCMA_DEBUG is not set
+CONFIG_BCMA_DRIVER_GMAC_CMN=y
+CONFIG_BCMA_DRIVER_GPIO=y
+CONFIG_BCMA_DRIVER_PCI=y
+CONFIG_BCMA_HOST_PCI_POSSIBLE=y
+CONFIG_BCMA_HOST_PCI=y
+# CONFIG_BCMA_HOST_SOC is not set
+CONFIG_BCMA=m
+CONFIG_BCMA_POSSIBLE=y
+CONFIG_BCMGENET=m
+# CONFIG_BCM_KONA_USB2_PHY is not set
+CONFIG_BCM_NET_PHYLIB=m
+CONFIG_BE2ISCSI=m
+CONFIG_BE2NET_BE2=y
+CONFIG_BE2NET_BE3=y
+# CONFIG_BE2NET_HWMON is not set
+CONFIG_BE2NET_LANCER=y
+CONFIG_BE2NET=m
+CONFIG_BE2NET_SKYHAWK=y
+# CONFIG_BEFS_DEBUG is not set
+CONFIG_BEFS_FS=m
+# CONFIG_BFQ_CGROUP_DEBUG is not set
+CONFIG_BFQ_GROUP_IOSCHED=y
+# CONFIG_BFS_FS is not set
+CONFIG_BH1750=m
+# CONFIG_BH1780 is not set
+CONFIG_BIG_KEYS=y
+CONFIG_BINARY_PRINTF=y
CONFIG_BINFMT_ELF=y
-CONFIG_BINFMT_SCRIPT=y
-CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
-# CONFIG_BINFMT_AOUT is not set
CONFIG_BINFMT_MISC=y
-CONFIG_COREDUMP=y
-CONFIG_SYSVIPC_COMPAT=y
-CONFIG_KEYS_COMPAT=y
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_FW_LOADER=y
-# CONFIG_FIRMWARE_IN_KERNEL is not set
-CONFIG_EXTRA_FIRMWARE=""
-
-# CONFIG_SPI is not set
-
-#
-# Memory Technology Devices (MTD)
-#
-CONFIG_MTD=y
-# CONFIG_MTD_DEBUG is not set
-CONFIG_MTD_PARTITIONS=y
-CONFIG_MTD_AR7_PARTS=m
-CONFIG_MTD_CONCAT=m
-CONFIG_MTD_CMDLINE_PARTS=y
-#
-# User Modules And Translation Layers
-#
-CONFIG_MTD_CHAR=m
-CONFIG_MTD_BLOCK=m
-CONFIG_MTD_BLOCK_RO=m
-CONFIG_MTD_BLOCK2MTD=m
-
-CONFIG_MTD_OOPS=m
-# CONFIG_MTD_INTEL_VR_NOR is not set
-CONFIG_MTD_ALAUDA=m
-
-CONFIG_FTL=m
-CONFIG_NFTL=m
-CONFIG_NFTL_RW=y
-CONFIG_INFTL=m
-CONFIG_RFD_FTL=m
-CONFIG_SSFDC=m
-
-CONFIG_MTD_UBI=m
-CONFIG_MTD_UBI_WL_THRESHOLD=4096
-CONFIG_MTD_UBI_BEB_RESERVE=1
-# CONFIG_MTD_UBI_GLUEBI is not set
-# CONFIG_MTD_UBI_DEBUG is not set
-
-#
-# RAM/ROM/Flash chip drivers
-#
-CONFIG_MTD_CFI=m
-CONFIG_MTD_JEDECPROBE=m
-CONFIG_MTD_GEN_PROBE=m
-# CONFIG_MTD_CFI_ADV_OPTIONS is not set
-CONFIG_MTD_CFI_INTELEXT=m
-CONFIG_MTD_CFI_AMDSTD=m
-CONFIG_MTD_CFI_STAA=m
-CONFIG_MTD_RAM=m
-CONFIG_MTD_ROM=m
-CONFIG_MTD_ABSENT=m
-
-#
-# Mapping drivers for chip access
-#
-CONFIG_MTD_COMPLEX_MAPPINGS=y
-# CONFIG_MTD_PHYSMAP is not set
-# CONFIG_MTD_PNC2000 is not set
-CONFIG_MTD_SC520CDP=m
-CONFIG_MTD_NETSC520=m
-# CONFIG_MTD_SBC_GXX is not set
-# CONFIG_MTD_SCx200_DOCFLASH is not set
-# CONFIG_MTD_AMD76XROM is not set
-CONFIG_MTD_SCB2_FLASH=m
-# CONFIG_MTD_NETtel is not set
-# CONFIG_MTD_DILNETPC is not set
-# CONFIG_MTD_L440GX is not set
-CONFIG_MTD_PCI=m
-CONFIG_MTD_TS5500=m
-# CONFIG_MTD_GPIO_ADDR is not set
-
-#
-# Self-contained MTD device drivers
-#
-CONFIG_MTD_PMC551=m
-# CONFIG_MTD_PMC551_BUGFIX is not set
-# CONFIG_MTD_PMC551_DEBUG is not set
-# CONFIG_MTD_SLRAM is not set
-CONFIG_MTD_MTDRAM=m
-CONFIG_MTDRAM_TOTAL_SIZE=4096
-CONFIG_MTDRAM_ERASE_SIZE=128
-
-#
-# Disk-On-Chip Device Drivers
-#
-# CONFIG_MTD_DOC2000 is not set
-# CONFIG_MTD_DOC2001 is not set
-# CONFIG_MTD_DOC2001PLUS is not set
-# CONFIG_MTD_DOCPROBE is not set
-# CONFIG_MTD_DOCPROBE_ADVANCED is not set
-# CONFIG_MTD_DOCPROBE_ADDRESS is not set
-
-#
-# NAND Flash Device Drivers
-#
-CONFIG_MTD_NAND=m
-# CONFIG_MTD_NAND_MUSEUM_IDS is not set
-# CONFIG_MTD_NAND_PLATFORM is not set
-# CONFIG_MTD_NAND_VERIFY_WRITE is not set
-# CONFIG_MTD_NAND_CAFE is not set
-CONFIG_MTD_NAND_IDS=m
-CONFIG_MTD_NAND_NANDSIM=m
-# CONFIG_MTD_ONENAND is not set
-CONFIG_MTD_NAND_ECC_SMC=y
-CONFIG_MTD_NAND_CS553X=m
-
-CONFIG_MTD_REDBOOT_PARTS=m
-# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
-# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
-CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
-# CONFIG_MTD_XIP is not set
-# CONFIG_MTD_ICHXROM is not set
-# CONFIG_MTD_PHRAM is not set
-CONFIG_MTD_NAND_DISKONCHIP=m
-# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
-CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
-# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
-# CONFIG_MTD_PLATRAM is not set
-
-# CONFIG_MTD_TESTS is not set
-CONFIG_MTD_LPDDR=m
-CONFIG_MTD_QINFO_PROBE=m
-
-#
-# Parallel port support
-#
-CONFIG_PARPORT=m
-CONFIG_PARPORT_PC=m
-CONFIG_PARPORT_SERIAL=m
-# CONFIG_PARPORT_PC_FIFO is not set
-# CONFIG_PARPORT_PC_SUPERIO is not set
-CONFIG_PARPORT_PC_PCMCIA=m
-CONFIG_PARPORT_1284=y
-# CONFIG_PARPORT_AX88796 is not set
-
-#
-# Plug and Play support
-#
-CONFIG_PNP=y
-# CONFIG_PNP_DEBUG is not set
-# CONFIG_PNP_DEBUG_MESSAGES is not set
-
-#
-# Protocols
-#
-CONFIG_ISAPNP=y
-# CONFIG_PNPBIOS is not set
-
-CONFIG_ACPI_PCI_SLOT=y
-CONFIG_HOTPLUG_PCI_ACPI=y
-CONFIG_HOTPLUG_PCI_ACPI_IBM=m
-
-#
-# Block devices
-#
-CONFIG_BLK_DEV=y
+CONFIG_BINFMT_SCRIPT=y
+CONFIG_BITREVERSE=y
+CONFIG_BLK_CGROUP_IOCOST=y
+CONFIG_BLK_CGROUP_IOLATENCY=y
+CONFIG_BLK_CGROUP_RWSTAT=y
+CONFIG_BLK_CGROUP=y
+# CONFIG_BLK_CMDLINE_PARSER is not set
+CONFIG_BLK_DEBUG_FS=y
+CONFIG_BLK_DEBUG_FS_ZONED=y
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_BLK_DEV_BSGLIB=y
+CONFIG_BLK_DEV_BSG=y
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+CONFIG_BLK_DEV_DM_BUILTIN=y
+CONFIG_BLK_DEV_DM=m
+CONFIG_BLK_DEV_DRBD=m
CONFIG_BLK_DEV_FD=m
-# CONFIG_BLK_DEV_XD is not set
-# CONFIG_PARIDE is not set
-# CONFIG_PARIDE_PD is not set
-# CONFIG_PARIDE_PCD is not set
-# CONFIG_PARIDE_PF is not set
-# CONFIG_PARIDE_PT is not set
-# CONFIG_PARIDE_PG is not set
-# CONFIG_PARIDE_ATEN is not set
-# CONFIG_PARIDE_BPCK is not set
-# CONFIG_PARIDE_BPCK6 is not set
-# CONFIG_PARIDE_COMM is not set
-# CONFIG_PARIDE_DSTR is not set
-# CONFIG_PARIDE_FIT2 is not set
-# CONFIG_PARIDE_FIT3 is not set
-# CONFIG_PARIDE_EPAT is not set
-# CONFIG_PARIDE_EPATC8 is not set
-# CONFIG_PARIDE_EPIA is not set
-# CONFIG_PARIDE_FRIQ is not set
-# CONFIG_PARIDE_FRPW is not set
-# CONFIG_PARIDE_KBIC is not set
-# CONFIG_PARIDE_KTTI is not set
-# CONFIG_PARIDE_ON20 is not set
-# CONFIG_PARIDE_ON26 is not set
-# CONFIG_BLK_CPQ_DA is not set
-CONFIG_BLK_CPQ_CISS_DA=m
-CONFIG_CISS_SCSI_TAPE=y
-# CONFIG_BLK_DEV_DAC960 is not set
-# CONFIG_BLK_DEV_UMEM is not set
-CONFIG_BLK_DEV_LOOP=y
-CONFIG_BLK_DEV_CRYPTOLOOP=m
-# CONFIG_BLK_DEV_NBD is not set
-CONFIG_BLK_DEV_OSD=m
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_BLK_DEV_RAM_SIZE=16384
-CONFIG_BLK_DEV_RAM_BLOCKSIZE=4096
CONFIG_BLK_DEV_INITRD=y
-CONFIG_BLK_DEV_ATIIXP=y
-CONFIG_LBD=y
-CONFIG_BLK_DEV_IO_TRACE=y
-CONFIG_LSF=y
-
-CONFIG_BLK_DEV_DELKIN=m
-# CONFIG_BLK_DEV_IT8213 is not set
-# CONFIG_BLK_DEV_TC86C001 is not set
-CONFIG_LBDAF=y
-CONFIG_BLK_DEV_BSG=y
+CONFIG_BLK_DEV_INTEGRITY_T10=m
CONFIG_BLK_DEV_INTEGRITY=y
-
-
-#
-# ATA/ATAPI/MFM/RLL support
-#
-# CONFIG_IDE is not set
-
-# CONFIG_BLK_DEV_IDE is not set
-
-#
-# Please see Documentation/ide.txt for help/info on IDE drives
-#
-# CONFIG_BLK_DEV_HD_IDE is not set
-# CONFIG_BLK_DEV_IDEDISK is not set
-# CONFIG_IDEDISK_MULTI_MODE is not set
-CONFIG_BLK_DEV_IDECS=m
-# CONFIG_BLK_DEV_IDECD is not set
-# CONFIG_BLK_DEV_IDETAPE is not set
-# CONFIG_BLK_DEV_IDEFLOPPY is not set
-# CONFIG_IDE_TASK_IOCTL is not set
-# CONFIG_BLK_DEV_IDE_SATA is not set
-
-#
-# IDE chipset support/bugfixes
-#
-CONFIG_BLK_DEV_CMD640=y
-CONFIG_BLK_DEV_CMD640_ENHANCED=y
-CONFIG_BLK_DEV_IDEPNP=y
-CONFIG_BLK_DEV_IDEPCI=y
-# CONFIG_IDEPCI_SHARE_IRQ is not set
-# CONFIG_BLK_DEV_OFFBOARD is not set
-CONFIG_BLK_DEV_GENERIC=y
-# CONFIG_BLK_DEV_OPTI621 is not set
-CONFIG_BLK_DEV_RZ1000=y
-CONFIG_BLK_DEV_IDEDMA_PCI=y
-CONFIG_BLK_DEV_AEC62XX=y
-CONFIG_BLK_DEV_ALI15X3=y
-# CONFIG_WDC_ALI15X3 is not set
-# CONFIG_BLK_DEV_AMD74XX is not set
-CONFIG_BLK_DEV_CMD64X=y
-CONFIG_BLK_DEV_TRIFLEX=y
-# CONFIG_BLK_DEV_CY82C693 is not set
-CONFIG_BLK_DEV_CS5520=y
-CONFIG_BLK_DEV_CS5530=y
-CONFIG_BLK_DEV_CS5535=y
-CONFIG_BLK_DEV_HPT34X=y
-CONFIG_BLK_DEV_HPT366=y
-CONFIG_BLK_DEV_IT821X=y
-CONFIG_BLK_DEV_JMICRON=y
-# CONFIG_BLK_DEV_SC1200 is not set
-CONFIG_BLK_DEV_PIIX=y
-# CONFIG_BLK_DEV_NS87415 is not set
-CONFIG_BLK_DEV_PDC202XX_OLD=y
-# CONFIG_PDC202XX_BURST is not set
-CONFIG_BLK_DEV_PDC202XX_NEW=y
-CONFIG_BLK_DEV_SVWKS=y
-CONFIG_BLK_DEV_SIIMAGE=y
-CONFIG_BLK_DEV_SIS5513=y
-# CONFIG_BLK_DEV_SLC90E66 is not set
-# CONFIG_BLK_DEV_TRM290 is not set
-CONFIG_BLK_DEV_VIA82CXXX=y
-# CONFIG_BLK_DEV_IDEDMA is not set
-# CONFIG_BLK_DEV_HD is not set
-
-CONFIG_VIRTIO=m
-CONFIG_VIRTIO_BLK=m
-CONFIG_VIRTIO_BLK_SCSI=m
-CONFIG_VIRTIO_RING=m
-CONFIG_VIRTIO_PCI=m
-CONFIG_VIRTIO_BALLOON=m
-CONFIG_VIRTIO_NET=m
-CONFIG_VMXNET3=m
-CONFIG_HW_RANDOM_VIRTIO=m
-CONFIG_VIRTIO_CONSOLE=m
-CONFIG_VIRTIO_MMIO=m
-CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
-CONFIG_VIRTIO_VSOCKETS=m
-CONFIG_BLK_MQ_VIRTIO=y
-CONFIG_CRYPTO_DEV_VIRTIO=m
-CONFIG_DRM_VIRTIO_GPU=m
-
-
-#
-# SCSI device support
-#
-CONFIG_SCSI=m
-
-CONFIG_SCSI_ENCLOSURE=m
-CONFIG_SCSI_PROC_FS=y
-CONFIG_SCSI_SCAN_ASYNC=y
-CONFIG_SCSI_SRP=m
-CONFIG_SCSI_SRP_ATTRS=m
-CONFIG_SCSI_TGT=m
-
-CONFIG_SCSI_DH=y
-CONFIG_SCSI_DH_RDAC=m
-CONFIG_SCSI_DH_HP_SW=m
-CONFIG_SCSI_DH_EMC=m
-CONFIG_SCSI_DH_ALUA=m
-
-#
-# SCSI support type (disk, tape, CD-ROM)
-#
+CONFIG_BLK_DEV_IO_TRACE=y
+CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
+CONFIG_BLK_DEV_MD=m
+CONFIG_BLK_DEV_NBD=m
+# CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION is not set
+CONFIG_BLK_DEV_NULL_BLK=m
+CONFIG_BLK_DEV_NVME=m
+CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM=m
+CONFIG_BLK_DEV_RAM_SIZE=16384
+CONFIG_BLK_DEV_RBD=m
+# CONFIG_BLK_DEV_RNBD_CLIENT is not set
+# CONFIG_BLK_DEV_RNBD_SERVER is not set
+# CONFIG_BLK_DEV_RSXX is not set
CONFIG_BLK_DEV_SD=m
-CONFIG_CHR_DEV_ST=m
-CONFIG_CHR_DEV_OSST=m
CONFIG_BLK_DEV_SR=m
CONFIG_BLK_DEV_SR_VENDOR=y
-CONFIG_CHR_DEV_SG=m
-CONFIG_CHR_DEV_SCH=m
-
-#
-# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
-#
-CONFIG_SCSI_MULTI_LUN=y
-CONFIG_SCSI_CONSTANTS=y
-CONFIG_SCSI_LOGGING=y
-CONFIG_SCSI_SPI_ATTRS=m
-CONFIG_SCSI_FC_ATTRS=m
-CONFIG_SCSI_FC_TGT_ATTRS=y
-# CONFIG_SCSI_ISCSI_ATTRS is not set
-CONFIG_SCSI_SAS_ATTRS=m
-CONFIG_SCSI_SRP_TGT_ATTRS=y
-CONFIG_SCSI_SAS_LIBSAS=m
-CONFIG_SCSI_SAS_ATA=y
-# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
-CONFIG_SCSI_SAS_HOST_SMP=y
-CONFIG_RAID_ATTRS=m
-
-# CONFIG_ISCSI_TCP is not set
-
-#
-# SCSI low-level drivers
-#
-CONFIG_SCSI_LOWLEVEL=y
-CONFIG_BLK_DEV_3W_XXXX_RAID=m
-CONFIG_SCSI_3W_9XXX=m
-# CONFIG_SCSI_7000FASST is not set
-# CONFIG_SCSI_ACARD is not set
-CONFIG_SCSI_AACRAID=m
-CONFIG_SCSI_AIC7XXX=m
-CONFIG_SCSI_AIC94XX=m
-# CONFIG_AIC94XX_DEBUG is not set
-CONFIG_AIC7XXX_CMDS_PER_DEVICE=4
-CONFIG_AIC7XXX_RESET_DELAY_MS=15000
-# CONFIG_AIC7XXX_BUILD_FIRMWARE is not set
-# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
-CONFIG_AIC7XXX_DEBUG_MASK=0
-# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set
-# CONFIG_SCSI_AIC7XXX_OLD is not set
-CONFIG_SCSI_AIC79XX=m
-CONFIG_AIC79XX_CMDS_PER_DEVICE=4
-CONFIG_AIC79XX_RESET_DELAY_MS=15000
-# CONFIG_AIC79XX_BUILD_FIRMWARE is not set
-# CONFIG_AIC79XX_DEBUG_ENABLE is not set
-CONFIG_AIC79XX_DEBUG_MASK=0
-# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set
-# CONFIG_SCSI_ADVANSYS is not set
-CONFIG_SCSI_BFA_FC=m
-CONFIG_MEGARAID_NEWGEN=y
-CONFIG_MEGARAID_MM=m
-CONFIG_MEGARAID_MAILBOX=m
-# CONFIG_MEGARAID_LEGACY is not set
-CONFIG_MEGARAID_SAS=m
-CONFIG_SCSI_MVSAS=m
-# CONFIG_SCSI_MVSAS_DEBUG is not set
-CONFIG_SCSI_MPT2SAS=m
-CONFIG_SCSI_MPT2SAS_MAX_SGE=128
-CONFIG_SCSI_MPT2SAS_LOGGING=y
-
-CONFIG_SCSI_OSD_INITIATOR=m
-CONFIG_SCSI_OSD_ULD=m
-CONFIG_SCSI_OSD_DPRINT_SENSE=1
-# CONFIG_SCSI_OSD_DEBUG is not set
-
-CONFIG_SCSI_HPSA=m
-
-# CONFIG_SCSI_BNX2_ISCSI is not set
-# CONFIG_BE2ISCSI is not set
-CONFIG_SCSI_PMCRAID=m
-
-
-CONFIG_ATA=y
-CONFIG_ATA_VERBOSE_ERROR=y
-CONFIG_ATA_SFF=y
-CONFIG_ATA_PIIX=m
-CONFIG_ATA_ACPI=y
CONFIG_BLK_DEV_SX8=m
-CONFIG_PDC_ADMA=m
-CONFIG_SATA_AHCI=m
-CONFIG_SATA_INIC162X=m
-CONFIG_SATA_MV=m
-CONFIG_SATA_NV=m
-CONFIG_SATA_PMP=y
-CONFIG_SATA_PROMISE=m
-CONFIG_SATA_QSTOR=m
-CONFIG_SATA_SIL=m
-CONFIG_SATA_SIL24=m
-CONFIG_SATA_SIS=m
-CONFIG_SATA_SVW=m
-CONFIG_SATA_SX4=m
-CONFIG_SATA_ULI=m
-CONFIG_SATA_VIA=m
-CONFIG_SATA_VITESSE=m
-
-CONFIG_PATA_ACPI=m
-CONFIG_PATA_ALI=m
-CONFIG_PATA_AMD=m
-CONFIG_PATA_ARTOP=m
-CONFIG_PATA_ATIIXP=m
-# CONFIG_PATA_CMD640_PCI is not set
-CONFIG_PATA_CMD64X=m
-# CONFIG_PATA_CS5520 is not set
-# CONFIG_PATA_CS5530 is not set
-CONFIG_PATA_CS5535=m
-CONFIG_PATA_CS5536=m
-# CONFIG_PATA_CYPRESS is not set
-# CONFIG_PATA_EFAR is not set
-CONFIG_ATA_GENERIC=m
-CONFIG_PATA_HPT366=m
-CONFIG_PATA_HPT37X=m
-CONFIG_PATA_HPT3X2N=m
-CONFIG_PATA_HPT3X3=m
-# CONFIG_PATA_HPT3X3_DMA is not set
-# CONFIG_PATA_ISAPNP is not set
-CONFIG_PATA_IT821X=m
-CONFIG_PATA_IT8213=m
-CONFIG_PATA_JMICRON=m
-# CONFIG_PATA_LEGACY is not set
-CONFIG_PATA_NINJA32=m
-CONFIG_PATA_MARVELL=m
-# CONFIG_PATA_WINBOND_VLB is not set
-# CONFIG_PATA_MPIIX is not set
-CONFIG_PATA_NETCELL=m
-# CONFIG_PATA_NS87410 is not set
-# CONFIG_PATA_NS87415 is not set
-CONFIG_PATA_OLDPIIX=m
-# CONFIG_PATA_OPTI is not set
-# CONFIG_PATA_OPTIDMA is not set
-CONFIG_PATA_PCMCIA=m
-CONFIG_PATA_PDC_OLD=m
-# CONFIG_PATA_QDI is not set
-# CONFIG_PATA_RADISYS is not set
-CONFIG_PATA_RDC=m
-# CONFIG_PATA_RZ1000 is not set
-# CONFIG_PATA_SC1200 is not set
-CONFIG_PATA_SERVERWORKS=m
-CONFIG_PATA_PDC2027X=m
-CONFIG_PATA_SCH=m
-CONFIG_PATA_SIL680=m
-CONFIG_PATA_SIS=m
-# CONFIG_PATA_TRIFLEX is not set
-CONFIG_PATA_VIA=m
-# CONFIG_PATA_WINBOND is not set
-CONFIG_PATA_ATP867X=m
-CONFIG_PATA_SCH=m
-
-# CONFIG_SCSI_BUSLOGIC is not set
-CONFIG_SCSI_INITIO=m
-CONFIG_SCSI_FLASHPOINT=y
-# CONFIG_SCSI_DMX3191D is not set
-# CONFIG_SCSI_EATA is not set
-# CONFIG_SCSI_EATA_PIO is not set
-# CONFIG_SCSI_FUTURE_DOMAIN is not set
-# CONFIG_SCSI_GDTH is not set
-CONFIG_SCSI_HPTIOP=m
-CONFIG_SCSI_IPS=m
-# CONFIG_SCSI_INIA100 is not set
-CONFIG_SCSI_PPA=m
-CONFIG_SCSI_IMM=m
-# CONFIG_SCSI_IZIP_EPP16 is not set
-# CONFIG_SCSI_IZIP_SLOW_CTR is not set
-CONFIG_SCSI_STEX=m
-CONFIG_SCSI_SYM53C8XX_2=m
-CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
-CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
-CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
-CONFIG_SCSI_SYM53C8XX_MMIO=y
-# CONFIG_SCSI_QLOGIC_FC is not set
-# CONFIG_SCSI_QLOGIC_FC_FIRMWARE is not set
-# CONFIG_SCSI_QLOGIC_1280 is not set
-# CONFIG_SCSI_DC395x is not set
-# CONFIG_SCSI_NSP32 is not set
-# CONFIG_SCSI_DEBUG is not set
-# CONFIG_SCSI_DC390T is not set
-CONFIG_SCSI_QLA_FC=m
-# CONFIG_SCSI_QLA_ISCSI is not set
-# CONFIG_SCSI_IPR is not set
-# CONFIG_SCSI_DPT_I2O is not set
-CONFIG_SCSI_LPFC=m
-# CONFIG_SCSI_SEAGATE is not set
-
-#
-# PCMCIA SCSI adapter support
-#
-CONFIG_SCSI_LOWLEVEL_PCMCIA=y
-# CONFIG_PCMCIA_AHA152X is not set
-# CONFIG_PCMCIA_FDOMAIN is not set
-# CONFIG_PCMCIA_NINJA_SCSI is not set
-# CONFIG_PCMCIA_QLOGIC is not set
-# CONFIG_PCMCIA_SYM53C500 is not set
-
-
-#
-# Multi-device support (RAID and LVM)
-#
-CONFIG_MD=y
-CONFIG_BLK_DEV_MD=y
-CONFIG_MD_AUTODETECT=y
-CONFIG_MD_FAULTY=m
-CONFIG_MD_LINEAR=m
-# CONFIG_MD_MULTIPATH is not set
-CONFIG_MD_RAID0=m
-CONFIG_MD_RAID1=m
-CONFIG_MD_RAID5_RESHAPE=y
-CONFIG_MD_RAID10=m
-CONFIG_MD_RAID456=m
-# CONFIG_MULTICORE_RAID456 is not set
-CONFIG_ASYNC_RAID6_TEST=m
-CONFIG_BLK_DEV_DM=m
+# CONFIG_BLK_DEV_THROTTLING_LOW is not set
+CONFIG_BLK_DEV_THROTTLING=y
+CONFIG_BLK_DEV_UMEM=m
+CONFIG_BLK_DEV=y
+CONFIG_BLK_DEV_ZONED=y
+# CONFIG_BLK_INLINE_ENCRYPTION is not set
+CONFIG_BLK_MQ_PCI=y
+CONFIG_BLK_MQ_RDMA=y
+CONFIG_BLK_MQ_VIRTIO=y
+CONFIG_BLK_PM=y
+CONFIG_BLK_RQ_ALLOC_TIME=y
+CONFIG_BLK_SCSI_REQUEST=y
+CONFIG_BLK_SED_OPAL=y
+CONFIG_BLK_WBT_MQ=y
+CONFIG_BLK_WBT=y
+CONFIG_BLOCK=y
+# CONFIG_BMA180 is not set
+# CONFIG_BMA220 is not set
+# CONFIG_BMA400 is not set
+CONFIG_BMC150_ACCEL_I2C=m
+CONFIG_BMC150_ACCEL=m
+CONFIG_BMC150_ACCEL_SPI=m
+# CONFIG_BMC150_MAGN_SPI is not set
+CONFIG_BME680_I2C=m
+CONFIG_BME680=m
+CONFIG_BME680_SPI=m
+# CONFIG_BMI160_I2C is not set
+# CONFIG_BMI160_SPI is not set
+CONFIG_BMP280_I2C=m
+CONFIG_BMP280=m
+CONFIG_BMP280_SPI=m
+CONFIG_BNA=m
+CONFIG_BNX2=m
+CONFIG_BNX2X=m
+CONFIG_BNX2X_SRIOV=y
+CONFIG_BNXT_DCB=y
+CONFIG_BNXT_FLOWER_OFFLOAD=y
+CONFIG_BNXT_HWMON=y
+CONFIG_BNXT=m
+CONFIG_BNXT_SRIOV=y
+CONFIG_BONDING=m
+CONFIG_BOOT_CONFIG=y
+# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0
+# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set
+# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
+# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+CONFIG_BOOT_PRINTK_DELAY=y
+CONFIG_BOOTTIME_TRACING=y
+CONFIG_BOUNCE=y
+CONFIG_BPF_EVENTS=y
+# CONFIG_BPFILTER is not set
+CONFIG_BPFILTER_UMH=m
+CONFIG_BPF_JIT_ALWAYS_ON=y
+CONFIG_BPF_JIT_DEFAULT_ON=y
+CONFIG_BPF_JIT=y
+# CONFIG_BPF_KPROBE_OVERRIDE is not set
+CONFIG_BPF_LSM=y
+CONFIG_BPF_PRELOAD_UMD=m
+CONFIG_BPF_PRELOAD=y
+CONFIG_BPF_STREAM_PARSER=y
+CONFIG_BPF_SYSCALL=y
+CONFIG_BPF=y
+CONFIG_BPQETHER=m
+CONFIG_BQL=y
+CONFIG_BRANCH_PROFILE_NONE=y
+# CONFIG_BRCMDBG is not set
+CONFIG_BRCMFMAC=m
+CONFIG_BRCMFMAC_PCIE=y
+CONFIG_BRCMFMAC_PROTO_BCDC=y
+CONFIG_BRCMFMAC_PROTO_MSGBUF=y
+CONFIG_BRCMFMAC_SDIO=y
+CONFIG_BRCMFMAC_USB=y
+CONFIG_BRCMSMAC=m
+# CONFIG_BRCM_TRACING is not set
+CONFIG_BRCMUTIL=m
+CONFIG_BRIDGE_CFM=y
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_IP6=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_NFLOG=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_MRP=y
+CONFIG_BRIDGE_NETFILTER=m
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_VLAN_FILTERING=y
+CONFIG_BROADCOM_PHY=m
+CONFIG_BSD_DISKLABEL=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BT_6LOWPAN=m
+CONFIG_BT_ATH3K=m
+CONFIG_BT_BCM=m
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_BREDR=y
+CONFIG_BT_DEBUGFS=y
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIBLUECARD=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBT3C=m
+CONFIG_BT_HCIBTSDIO=m
+CONFIG_BT_HCIBTUSB_AUTOSUSPEND=y
+CONFIG_BT_HCIBTUSB_BCM=y
+CONFIG_BT_HCIBTUSB=m
+# CONFIG_BT_HCIBTUSB_MTK is not set
+CONFIG_BT_HCIBTUSB_RTL=y
+CONFIG_BT_HCIDTL1=m
+CONFIG_BT_HCIRSI=m
+CONFIG_BT_HCIUART_3WIRE=y
+CONFIG_BT_HCIUART_AG6XX=y
+CONFIG_BT_HCIUART_ATH3K=y
+CONFIG_BT_HCIUART_BCM=y
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_INTEL=y
+CONFIG_BT_HCIUART_LL=y
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_MRVL=y
+CONFIG_BT_HCIUART_NOKIA=m
+CONFIG_BT_HCIUART_QCA=y
+CONFIG_BT_HCIUART_RTL=y
+CONFIG_BT_HCIUART_SERDEV=y
+CONFIG_BT_HCIVHCI=m
+CONFIG_BT_HIDP=m
+CONFIG_BT_HS=y
+CONFIG_BT_INTEL=m
+CONFIG_BT_LEDS=y
+CONFIG_BT_LE=y
+CONFIG_BT=m
+CONFIG_BT_MRVL=m
+CONFIG_BT_MRVL_SDIO=m
+CONFIG_BT_MSFTEXT=y
+CONFIG_BT_MTKSDIO=m
+# CONFIG_BT_MTKUART is not set
+CONFIG_BT_QCA=m
+CONFIG_BTREE=y
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+# CONFIG_BTRFS_ASSERT is not set
+# CONFIG_BTRFS_DEBUG is not set
+# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+# CONFIG_BTRFS_FS_REF_VERIFY is not set
+# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
+CONFIG_BT_RTL=m
+# CONFIG_BT_SELFTEST is not set
+CONFIG_BUG_ON_DATA_CORRUPTION=y
+CONFIG_BUG=y
+CONFIG_BUILD_SALT=""
+CONFIG_BUILDTIME_EXTABLE_SORT=y
+CONFIG_BUILDTIME_TABLE_SORT=y
+CONFIG_BXT_WC_PMIC_OPREGION=y
+# CONFIG_C2PORT is not set
+# CONFIG_CACHEFILES_DEBUG is not set
+# CONFIG_CACHEFILES_HISTOGRAM is not set
+CONFIG_CACHEFILES=m
+# CONFIG_CADENCE_WATCHDOG is not set
+# CONFIG_CAIF is not set
+CONFIG_CAN_8DEV_USB=m
+CONFIG_CAN_BCM=m
+CONFIG_CAN_CALC_BITTIMING=y
+# CONFIG_CAN_CC770_ISA is not set
+CONFIG_CAN_CC770=m
+CONFIG_CAN_CC770_PLATFORM=m
+CONFIG_CAN_C_CAN=m
+CONFIG_CAN_C_CAN_PCI=m
+CONFIG_CAN_C_CAN_PLATFORM=m
+# CONFIG_CAN_DEBUG_DEVICES is not set
+CONFIG_CAN_DEV=m
+CONFIG_CAN_EMS_PCI=m
+# CONFIG_CAN_EMS_PCMCIA is not set
+CONFIG_CAN_EMS_USB=m
+CONFIG_CAN_ESD_USB2=m
+# CONFIG_CAN_F81601 is not set
+CONFIG_CAN_GS_USB=m
+CONFIG_CAN_GW=m
+CONFIG_CAN_HI311X=m
+CONFIG_CAN_IFI_CANFD=m
+# CONFIG_CAN_ISOTP is not set
+# CONFIG_CAN_J1939 is not set
+# CONFIG_CAN_KVASER_PCIEFD is not set
+CONFIG_CAN_KVASER_PCI=m
+CONFIG_CAN_KVASER_USB=m
+CONFIG_CAN=m
+CONFIG_CAN_M_CAN=m
+# CONFIG_CAN_M_CAN_PCI is not set
+# CONFIG_CAN_M_CAN_PLATFORM is not set
+# CONFIG_CAN_M_CAN_TCAN4X5X is not set
+CONFIG_CAN_MCBA_USB=m
+# CONFIG_CAN_MCP251XFD is not set
+# CONFIG_CAN_MCP251X is not set
+CONFIG_CAN_PEAK_PCIEC=y
+CONFIG_CAN_PEAK_PCIEFD=m
+CONFIG_CAN_PEAK_PCI=m
+# CONFIG_CAN_PEAK_PCMCIA is not set
+CONFIG_CAN_PEAK_USB=m
+CONFIG_CAN_PLX_PCI=m
+CONFIG_CAN_RAW=m
+# CONFIG_CAN_SJA1000_ISA is not set
+CONFIG_CAN_SJA1000=m
+CONFIG_CAN_SJA1000_PLATFORM=m
+CONFIG_CAN_SLCAN=m
+# CONFIG_CAN_SOFTING_CS is not set
+CONFIG_CAN_SOFTING=m
+# CONFIG_CAN_UCAN is not set
+CONFIG_CAN_VCAN=m
+CONFIG_CAN_VXCAN=m
+CONFIG_CARDBUS=y
+CONFIG_CARDMAN_4000=m
+CONFIG_CARDMAN_4040=m
+# CONFIG_CARL9170_DEBUGFS is not set
+# CONFIG_CARL9170_HWRNG is not set
+CONFIG_CARL9170_LEDS=y
+CONFIG_CARL9170=m
+CONFIG_CARL9170_WPC=y
+CONFIG_CASSINI=m
+CONFIG_CB710_CORE=m
+CONFIG_CB710_DEBUG_ASSUMPTIONS=y
+# CONFIG_CB710_DEBUG is not set
+# CONFIG_CC10001_ADC is not set
+CONFIG_CC_CAN_LINK_STATIC=y
+CONFIG_CC_CAN_LINK=y
+CONFIG_CC_HAS_ASM_GOTO=y
+CONFIG_CC_HAS_ASM_INLINE=y
+CONFIG_CC_HAS_INT128=y
+CONFIG_CC_HAS_KASAN_GENERIC=y
+CONFIG_CC_HAS_SANCOV_TRACE_PC=y
+CONFIG_CC_HAS_SANE_STACKPROTECTOR=y
+CONFIG_CC_HAS_STACKPROTECTOR_NONE=y
+CONFIG_CC_HAS_WARN_MAYBE_UNINITIALIZED=y
+CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
+CONFIG_CC_IS_GCC=y
+CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+# CONFIG_CCS811 is not set
+CONFIG_CDROM=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+CONFIG_CDROM_PKTCDVD=m
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_CEC_CH7322=m
+CONFIG_CEC_CORE=m
+CONFIG_CEC_NOTIFIER=y
+CONFIG_CEC_SECO=m
+CONFIG_CEC_SECO_RC=y
+CONFIG_CEPH_FSCACHE=y
+CONFIG_CEPH_FS=m
+CONFIG_CEPH_FS_POSIX_ACL=y
+CONFIG_CEPH_FS_SECURITY_LABEL=y
+CONFIG_CEPH_LIB=m
+# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
+# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
+CONFIG_CFAG12864B=m
+CONFIG_CFAG12864B_RATE=20
+CONFIG_CFG80211_CRDA_SUPPORT=y
+CONFIG_CFG80211_DEBUGFS=y
+CONFIG_CFG80211_DEFAULT_PS=y
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+CONFIG_CFG80211=m
+CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y
+CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y
+CONFIG_CFG80211_WEXT_EXPORT=y
+CONFIG_CFG80211_WEXT=y
+CONFIG_CFS_BANDWIDTH=y
+CONFIG_CGROUP_BPF=y
+CONFIG_CGROUP_CPUACCT=y
+# CONFIG_CGROUP_DEBUG is not set
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_HUGETLB=y
+CONFIG_CGROUP_NET_CLASSID=y
+CONFIG_CGROUP_NET_PRIO=y
+CONFIG_CGROUP_PERF=y
+CONFIG_CGROUP_PIDS=y
+CONFIG_CGROUP_RDMA=y
+CONFIG_CGROUP_SCHED=y
+CONFIG_CGROUPS=y
+CONFIG_CGROUP_WRITEBACK=y
+# CONFIG_CHARGER_ADP5061 is not set
+# CONFIG_CHARGER_BD99954 is not set
+# CONFIG_CHARGER_BQ2415X is not set
+# CONFIG_CHARGER_BQ24257 is not set
+# CONFIG_CHARGER_BQ24735 is not set
+# CONFIG_CHARGER_BQ2515X is not set
+# CONFIG_CHARGER_BQ25890 is not set
+# CONFIG_CHARGER_BQ25980 is not set
+# CONFIG_CHARGER_GPIO is not set
+# CONFIG_CHARGER_ISP1704 is not set
+# CONFIG_CHARGER_LP8727 is not set
+CONFIG_CHARGER_LT3651=m
+# CONFIG_CHARGER_MANAGER is not set
+# CONFIG_CHARGER_MAX8903 is not set
+# CONFIG_CHARGER_RT9455 is not set
+# CONFIG_CHARGER_SBS is not set
+CONFIG_CHARGER_SMB347=m
+CONFIG_CHARLCD_BL_FLASH=y
+# CONFIG_CHARLCD_BL_OFF is not set
+# CONFIG_CHARLCD_BL_ON is not set
+CONFIG_CHARLCD=m
+CONFIG_CHECKPOINT_RESTORE=y
+CONFIG_CHECK_SIGNATURE=y
+CONFIG_CHELSIO_INLINE_CRYPTO=y
+CONFIG_CHELSIO_IPSEC_INLINE=m
+CONFIG_CHELSIO_LIB=m
+CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T3=m
+CONFIG_CHELSIO_T4_DCB=y
+# CONFIG_CHELSIO_T4_FCOE is not set
+CONFIG_CHELSIO_T4=m
+CONFIG_CHELSIO_T4VF=m
+# CONFIG_CHELSIO_TLS_DEVICE is not set
+CONFIG_CHR_DEV_SCH=m
+CONFIG_CHR_DEV_SG=m
+CONFIG_CHR_DEV_ST=m
+CONFIG_CHROMEOS_LAPTOP=m
+CONFIG_CHROMEOS_PSTORE=m
+# CONFIG_CHROMEOS_TBMC is not set
+CONFIG_CHROME_PLATFORMS=y
+CONFIG_CHT_DC_TI_PMIC_OPREGION=y
+CONFIG_CICADA_PHY=m
+CONFIG_CIFS_ALLOW_INSECURE_LEGACY=y
+# CONFIG_CIFS_DEBUG2 is not set
+# CONFIG_CIFS_DEBUG_DUMP_KEYS is not set
+CONFIG_CIFS_DEBUG=y
+CONFIG_CIFS_DFS_UPCALL=y
+CONFIG_CIFS_FSCACHE=y
+CONFIG_CIFS=m
+CONFIG_CIFS_POSIX=y
+# CONFIG_CIFS_SMB_DIRECT is not set
+# CONFIG_CIFS_STATS2 is not set
+CONFIG_CIFS_SWN_UPCALL=y
+CONFIG_CIFS_UPCALL=y
+CONFIG_CIFS_WEAK_PW_HASH=y
+CONFIG_CIFS_XATTR=y
+CONFIG_CLANG_VERSION=0
+CONFIG_CLEANCACHE=y
+CONFIG_CLKBLD_I8253=y
+CONFIG_CLKDEV_LOOKUP=y
+CONFIG_CLKEVT_I8253=y
+CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y
+CONFIG_CLOCKSOURCE_WATCHDOG=y
+# CONFIG_CLOCK_THERMAL is not set
+CONFIG_CLS_U32_MARK=y
+CONFIG_CLS_U32_PERF=y
+CONFIG_CLZ_TAB=y
+CONFIG_CM32181=m
+# CONFIG_CM3232 is not set
+# CONFIG_CM3323 is not set
+# CONFIG_CM36651 is not set
+CONFIG_CMA_ALIGNMENT=8
+CONFIG_CMA_AREAS=7
+# CONFIG_CMA_DEBUGFS is not set
+# CONFIG_CMA_DEBUG is not set
+CONFIG_CMA_SIZE_MBYTES=0
+# CONFIG_CMA_SIZE_SEL_MAX is not set
+CONFIG_CMA_SIZE_SEL_MBYTES=y
+# CONFIG_CMA_SIZE_SEL_MIN is not set
+# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
+CONFIG_CMA=y
+# CONFIG_CMDLINE_BOOL is not set
+# CONFIG_CMDLINE_PARTITION is not set
+CONFIG_CNIC=m
+CONFIG_CODA_FS=m
+# CONFIG_COMEDI is not set
+# CONFIG_COMMON_CLK_CDCE706 is not set
+# CONFIG_COMMON_CLK_CS2000_CP is not set
+# CONFIG_COMMON_CLK_MAX9485 is not set
+# CONFIG_COMMON_CLK_PWM is not set
+# CONFIG_COMMON_CLK_SI5341 is not set
+# CONFIG_COMMON_CLK_SI5351 is not set
+# CONFIG_COMMON_CLK_SI544 is not set
+CONFIG_COMMON_CLK=y
+CONFIG_COMPACTION=y
+CONFIG_COMPAL_LAPTOP=m
+CONFIG_COMPAT_32BIT_TIME=y
+CONFIG_COMPAT_32=y
+# CONFIG_COMPAT_BRK is not set
+# CONFIG_COMPAT_VDSO is not set
+# CONFIG_COMPILE_TEST is not set
+CONFIG_CONFIGFS_FS=m
+CONFIG_CONNECTOR=y
+CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
+CONFIG_CONSOLE_LOGLEVEL_QUIET=3
+CONFIG_CONSOLE_POLL=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_CONTEXT_SWITCH_TRACER=y
+CONFIG_CONTIG_ALLOC=y
+CONFIG_CORDIC=m
+CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
+CONFIG_COREDUMP=y
+CONFIG_CORTINA_PHY=m
+# CONFIG_COUNTER is not set
+# CONFIG_CPA_DEBUG is not set
+# CONFIG_CPU5_WDT is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+CONFIG_CPU_FREQ_GOV_ATTR_SET=y
+CONFIG_CPU_FREQ_GOV_COMMON=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_STAT=y
+CONFIG_CPU_FREQ=y
+# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
+CONFIG_CPU_IDLE_GOV_HALTPOLL=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+# CONFIG_CPU_IDLE_GOV_TEO is not set
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_ISOLATION=y
+CONFIG_CPU_RMAP=y
+CONFIG_CPUSETS=y
+CONFIG_CPU_SUP_AMD=y
+CONFIG_CPU_SUP_CENTAUR=y
+CONFIG_CPU_SUP_HYGON=y
+CONFIG_CPU_SUP_INTEL=y
+CONFIG_CPU_SUP_ZHAOXIN=y
+CONFIG_CRAMFS_BLOCKDEV=y
+CONFIG_CRAMFS=m
+# CONFIG_CRAMFS_MTD is not set
+CONFIG_CRASH_CORE=y
+CONFIG_CRASH_DUMP=y
+CONFIG_CRC16=y
+# CONFIG_CRC32_BIT is not set
+# CONFIG_CRC32_SARWATE is not set
+# CONFIG_CRC32_SELFTEST is not set
+# CONFIG_CRC32_SLICEBY4 is not set
+CONFIG_CRC32_SLICEBY8=y
+CONFIG_CRC32=y
+CONFIG_CRC4=m
+CONFIG_CRC64=m
+CONFIG_CRC7=m
+CONFIG_CRC8=m
+CONFIG_CRC_CCITT=m
+CONFIG_CRC_ITU_T=m
+CONFIG_CRC_T10DIF=y
+# CONFIG_CROS_EC is not set
+CONFIG_CROS_KBD_LED_BACKLIGHT=m
+CONFIG_CROSS_MEMORY_ATTACH=y
+CONFIG_CRYPTO_842=y
+CONFIG_CRYPTO_ACOMP2=y
+CONFIG_CRYPTO_ADIANTUM=m
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_AEAD=m
+CONFIG_CRYPTO_AEGIS128=m
+CONFIG_CRYPTO_AES_NI_INTEL=m
+CONFIG_CRYPTO_AES_TI=m
+CONFIG_CRYPTO_AES=y
+CONFIG_CRYPTO_AKCIPHER2=y
+CONFIG_CRYPTO_AKCIPHER=y
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ANSI_CPRNG=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_ARCH_HAVE_LIB_BLAKE2S=m
+CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=m
+CONFIG_CRYPTO_ARCH_HAVE_LIB_CURVE25519=m
+CONFIG_CRYPTO_ARCH_HAVE_LIB_POLY1305=m
+CONFIG_CRYPTO_AUTHENC=m
+CONFIG_CRYPTO_BLAKE2B=m
+CONFIG_CRYPTO_BLAKE2S=m
+CONFIG_CRYPTO_BLAKE2S_X86=m
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_BLOWFISH_COMMON=m
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_CAST_COMMON=m
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_CCM=m
+CONFIG_CRYPTO_CFB=m
+CONFIG_CRYPTO_CHACHA20=m
+CONFIG_CRYPTO_CHACHA20POLY1305=m
+CONFIG_CRYPTO_CMAC=m
+CONFIG_CRYPTO_CRC32C_INTEL=m
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_CRC32=m
+CONFIG_CRYPTO_CRC32_PCLMUL=m
+CONFIG_CRYPTO_CRCT10DIF=y
+CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_CTR=y
+CONFIG_CRYPTO_CTS=m
+CONFIG_CRYPTO_CURVE25519=m
+CONFIG_CRYPTO_CURVE25519_X86=m
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_DES=m
+# CONFIG_CRYPTO_DEV_AMLOGIC_GXL is not set
+CONFIG_CRYPTO_DEV_ATMEL_ECC=m
+CONFIG_CRYPTO_DEV_ATMEL_I2C=m
+CONFIG_CRYPTO_DEV_ATMEL_SHA204A=m
+CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
+CONFIG_CRYPTO_DEV_CCP_DD=m
+# CONFIG_CRYPTO_DEV_CCP_DEBUGFS is not set
+CONFIG_CRYPTO_DEV_CCP=y
+CONFIG_CRYPTO_DEV_CHELSIO=m
+CONFIG_CRYPTO_DEV_CHELSIO_TLS=m
+CONFIG_CRYPTO_DEV_PADLOCK_AES=m
+CONFIG_CRYPTO_DEV_PADLOCK=m
+CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
+CONFIG_CRYPTO_DEV_QAT_4XXX=m
+CONFIG_CRYPTO_DEV_QAT_C3XXX=m
+CONFIG_CRYPTO_DEV_QAT_C3XXXVF=m
+CONFIG_CRYPTO_DEV_QAT_C62X=m
+CONFIG_CRYPTO_DEV_QAT_C62XVF=m
+CONFIG_CRYPTO_DEV_QAT_DH895xCC=m
+CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m
+CONFIG_CRYPTO_DEV_QAT=m
+# CONFIG_CRYPTO_DEV_SAFEXCEL is not set
+CONFIG_CRYPTO_DEV_SP_CCP=y
+# CONFIG_CRYPTO_DEV_VIRTIO is not set
+CONFIG_CRYPTO_DH=y
+CONFIG_CRYPTO_DRBG_CTR=y
+CONFIG_CRYPTO_DRBG_HASH=y
+CONFIG_CRYPTO_DRBG_HMAC=y
+CONFIG_CRYPTO_DRBG_MENU=y
+CONFIG_CRYPTO_DRBG=y
+CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_ECC=m
+CONFIG_CRYPTO_ECDH=m
+CONFIG_CRYPTO_ECHAINIV=m
+CONFIG_CRYPTO_ECRDSA=m
+CONFIG_CRYPTO_ESSIV=m
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_FIPS=y
+CONFIG_CRYPTO_GCM=m
+CONFIG_CRYPTO_GF128MUL=m
+CONFIG_CRYPTO_GHASH=m
+CONFIG_CRYPTO_GLUE_HELPER_X86=m
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_HASH_INFO=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_HW=y
+CONFIG_CRYPTO_JITTERENTROPY=y
+CONFIG_CRYPTO_KEYWRAP=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_KPP2=y
+CONFIG_CRYPTO_KPP=y
+CONFIG_CRYPTO_LIB_AES=y
+CONFIG_CRYPTO_LIB_ARC4=m
+CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=m
+CONFIG_CRYPTO_LIB_BLAKE2S=m
+CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m
+CONFIG_CRYPTO_LIB_CHACHA_GENERIC=m
+CONFIG_CRYPTO_LIB_CHACHA=m
+CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=m
+CONFIG_CRYPTO_LIB_CURVE25519=m
+CONFIG_CRYPTO_LIB_DES=m
+CONFIG_CRYPTO_LIB_POLY1305_GENERIC=m
+CONFIG_CRYPTO_LIB_POLY1305=m
+CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11
+CONFIG_CRYPTO_LIB_SHA256=y
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_LZ4HC=m
+CONFIG_CRYPTO_LZ4=m
+CONFIG_CRYPTO_LZO=y
+CONFIG_CRYPTO_MANAGER2=y
+# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set
+# CONFIG_CRYPTO_MANAGER_EXTRA_TESTS is not set
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_NHPOLY1305=m
+CONFIG_CRYPTO_NULL2=y
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_OFB=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_PCRYPT=m
+CONFIG_CRYPTO_POLY1305=m
+CONFIG_CRYPTO_RMD128=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_RMD256=m
+CONFIG_CRYPTO_RMD320=m
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_RNG_DEFAULT=m
+CONFIG_CRYPTO_RNG=y
+CONFIG_CRYPTO_RSA=y
+CONFIG_CRYPTO_SALSA20=m
+CONFIG_CRYPTO_SEED=m
+CONFIG_CRYPTO_SEQIV=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_SHA1=y
+CONFIG_CRYPTO_SHA256=y
+CONFIG_CRYPTO_SHA3=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_SIMD=m
+CONFIG_CRYPTO_SKCIPHER2=y
+CONFIG_CRYPTO_SKCIPHER=y
+CONFIG_CRYPTO_SM2=m
+CONFIG_CRYPTO_SM3=m
+CONFIG_CRYPTO_SM4=m
+CONFIG_CRYPTO_STATS=y
+CONFIG_CRYPTO_STREEBOG=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_TEST=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_USER_API_AEAD=m
+CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE=y
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API=m
+# CONFIG_CRYPTO_USER_API_RNG_CAVP is not set
+CONFIG_CRYPTO_USER_API_RNG=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
+CONFIG_CRYPTO_USER=m
+CONFIG_CRYPTO_VMAC=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_XTS=m
+CONFIG_CRYPTO_XXHASH=m
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_ZSTD=y
+# CONFIG_CSD_LOCK_WAIT_DEBUG is not set
+CONFIG_CUSE=m
+CONFIG_CW1200=m
+CONFIG_CW1200_WLAN_SDIO=m
+CONFIG_CW1200_WLAN_SPI=m
+CONFIG_CXD2880_SPI_DRV=m
+# CONFIG_CX_ECAT is not set
+CONFIG_CYCLADES=m
+CONFIG_CYPRESS_FIRMWARE=m
+# CONFIG_CYZ_INTR is not set
+CONFIG_DA280=m
+CONFIG_DA311=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_DAX=y
+CONFIG_DCACHE_WORD_ACCESS=y
+CONFIG_DCB=y
+CONFIG_DCDBAS=m
+CONFIG_DE2104X_DSL=0
+CONFIG_DE2104X=m
+CONFIG_DE4X5=m
+# CONFIG_DEBUG_ATOMIC_SLEEP is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+CONFIG_DEBUG_BOOT_PARAMS=y
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_CREDENTIALS is not set
+CONFIG_DEBUG_DEVRES=y
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_ENTRY is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+CONFIG_DEBUG_FS_ALLOW_ALL=y
+# CONFIG_DEBUG_FS_ALLOW_NONE is not set
+# CONFIG_DEBUG_FS_DISALLOW_MOUNT is not set
+CONFIG_DEBUG_FS=y
+# CONFIG_DEBUG_GPIO is not set
+# CONFIG_DEBUG_HOTPLUG_CPU0 is not set
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_KERNEL_DC is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_KMEMLEAK is not set
+# CONFIG_DEBUG_KOBJECT is not set
+CONFIG_DEBUG_LIST=y
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+CONFIG_DEBUG_MEMORY_INIT=y
+# CONFIG_DEBUG_MISC is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_NMI_SELFTEST is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_DEBUG_PAGEALLOC is not set
+# CONFIG_DEBUG_PAGE_REF is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
+# CONFIG_DEBUG_PINCTRL is not set
+# CONFIG_DEBUG_PLIST is not set
+CONFIG_DEBUG_RODATA_TEST=y
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_DEBUG_RWSEMS is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
+# CONFIG_DEBUG_SG is not set
+CONFIG_DEBUG_SHIRQ=y
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set
+# CONFIG_DEBUG_TIMEKEEPING is not set
+# CONFIG_DEBUG_TLBFLUSH is not set
+# CONFIG_DEBUG_VIRTUAL is not set
+# CONFIG_DEBUG_VM_PGFLAGS is not set
+CONFIG_DEBUG_VM_PGTABLE=y
+# CONFIG_DEBUG_VM_RB is not set
+# CONFIG_DEBUG_VM_VMACACHE is not set
+CONFIG_DEBUG_VM=y
+# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
+# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
+CONFIG_DEBUG_WX=y
+# CONFIG_DECNET is not set
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_LZ4=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_LZO=y
+CONFIG_DECOMPRESS_XZ=y
+CONFIG_DECOMPRESS_ZSTD=y
+CONFIG_DEFAULT_CUBIC=y
+CONFIG_DEFAULT_HOSTNAME="(none)"
+CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
+CONFIG_DEFAULT_INIT=""
+# CONFIG_DEFAULT_RENO is not set
+# CONFIG_DEFAULT_SECURITY_DAC is not set
+CONFIG_DEFAULT_SECURITY_SELINUX=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+CONFIG_DELL_LAPTOP=m
+CONFIG_DELL_RBTN=m
+# CONFIG_DELL_RBU is not set
+CONFIG_DELL_SMBIOS=m
+CONFIG_DELL_SMBIOS_SMM=y
+CONFIG_DELL_SMBIOS_WMI=y
+CONFIG_DELL_SMO8800=m
+CONFIG_DELL_WMI_AIO=m
+CONFIG_DELL_WMI_DESCRIPTOR=m
+CONFIG_DELL_WMI_LED=m
+CONFIG_DELL_WMI=m
+CONFIG_DELL_WMI_SYSMAN=m
+CONFIG_DETECT_HUNG_TASK=y
+CONFIG_DEV_APPLETALK=m
+CONFIG_DEV_COREDUMP=y
+CONFIG_DEV_DAX_HMEM_DEVICES=y
+CONFIG_DEV_DAX_HMEM=m
+# CONFIG_DEVFREQ_GOV_PASSIVE is not set
+# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set
+# CONFIG_DEVFREQ_GOV_POWERSAVE is not set
+CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m
+# CONFIG_DEVFREQ_GOV_USERSPACE is not set
+CONFIG_DEVFREQ_THERMAL=y
+# CONFIG_DEVKMEM is not set
+CONFIG_DEVMEM=y
+CONFIG_DEVPORT=y
+CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_DEVTMPFS=y
+CONFIG_DHT11=m
+CONFIG_DIMLIB=y
+CONFIG_DL2K=m
+# CONFIG_DLHL60D is not set
+CONFIG_DLM_DEBUG=y
+CONFIG_DLM=m
+CONFIG_DM9102=m
+CONFIG_DMA_ACPI=y
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_DMABUF_HEAPS_CMA is not set
+CONFIG_DMABUF_HEAPS_SYSTEM=y
+CONFIG_DMABUF_HEAPS=y
+# CONFIG_DMABUF_MOVE_NOTIFY is not set
+# CONFIG_DMABUF_SELFTESTS is not set
+CONFIG_DMA_CMA=y
+CONFIG_DMA_COHERENT_POOL=y
+# CONFIG_DMADEVICES_DEBUG is not set
+CONFIG_DMADEVICES=y
+CONFIG_DMA_ENGINE=y
+# CONFIG_DMA_FENCE_TRACE is not set
+# CONFIG_DMA_MAP_BENCHMARK is not set
+CONFIG_DMA_OPS=y
+# CONFIG_DMA_PERNUMA_CMA is not set
+# CONFIG_DMARD09 is not set
+CONFIG_DMARD10=m
+CONFIG_DMAR_TABLE=y
+CONFIG_DMA_SHARED_BUFFER=y
+# CONFIG_DMATEST is not set
+CONFIG_DMA_VIRT_OPS=y
+CONFIG_DMA_VIRTUAL_CHANNELS=y
CONFIG_DM_BIO_PRISON=m
CONFIG_DM_BUFIO=m
-CONFIG_DM_BUFIO=m
CONFIG_DM_CACHE=m
CONFIG_DM_CACHE_SMQ=m
+CONFIG_DM_CLONE=m
CONFIG_DM_CRYPT=m
+CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING=y
# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
-# CONFIG_DM_DEBUG is not set
-# CONFIG_DM_DEBUG_SPACE_MAPS is not set
+CONFIG_DM_DEBUG=y
CONFIG_DM_DELAY=m
-CONFIG_DM_ERA=m
+CONFIG_DM_DUST=m
+# CONFIG_DM_EBS is not set
+# CONFIG_DM_ERA is not set
CONFIG_DM_FLAKEY=m
+CONFIG_DMIID=y
CONFIG_DM_INTEGRITY=m
-CONFIG_DM_LOG_USERSPACE=m
+CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
+CONFIG_DMI_SYSFS=y
+CONFIG_DMI=y
CONFIG_DM_LOG_USERSPACE=m
CONFIG_DM_LOG_WRITES=m
CONFIG_DM_MIRROR=m
-CONFIG_DM_MQ_DEFAULT=y
-# CONFIG_DM_MULTIPATH_EMC is not set
-# CONFIG_DM_MULTIPATH_HP is not set
+CONFIG_DM_MULTIPATH_HST=m
+# CONFIG_DM_MULTIPATH_IOA is not set
CONFIG_DM_MULTIPATH=m
CONFIG_DM_MULTIPATH_QL=m
-# CONFIG_DM_MULTIPATH_RDAC is not set
CONFIG_DM_MULTIPATH_ST=m
CONFIG_DM_PERSISTENT_DATA=m
-CONFIG_DM_RAID45=m
CONFIG_DM_RAID=m
CONFIG_DM_SNAPSHOT=m
CONFIG_DM_SWITCH=m
CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_UEVENT=y
+CONFIG_DM_UNSTRIPED=m
CONFIG_DM_VERITY_FEC=y
CONFIG_DM_VERITY=m
+# CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG_SECONDARY_KEYRING is not set
+CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG=y
+CONFIG_DM_WRITECACHE=m
CONFIG_DM_ZERO=m
-
-#
-# Fusion MPT device support
-#
-CONFIG_FUSION=y
-CONFIG_FUSION_SPI=m
-CONFIG_FUSION_FC=m
-CONFIG_FUSION_MAX_SGE=128
-CONFIG_FUSION_CTL=m
-CONFIG_FUSION_LAN=m
-CONFIG_FUSION_SAS=m
-CONFIG_FUSION_LOGGING=y
-
-#
-# IEEE 1394 (FireWire) support (JUJU alternative stack)
-#
+CONFIG_DM_ZONED=m
+CONFIG_DNET=m
+CONFIG_DNOTIFY=y
+CONFIG_DNS_RESOLVER=m
+CONFIG_DOUBLEFAULT=y
+CONFIG_DP83640_PHY=m
+CONFIG_DP83822_PHY=m
+CONFIG_DP83848_PHY=m
+# CONFIG_DP83867_PHY is not set
+CONFIG_DP83869_PHY=m
+# CONFIG_DP83TC811_PHY is not set
+# CONFIG_DPS310 is not set
+CONFIG_DPTF_POWER=m
+CONFIG_DQL=y
+CONFIG_DRAGONRISE_FF=y
+# CONFIG_DRBD_FAULT_INJECTION is not set
+CONFIG_DRM_AMD_ACP=y
+CONFIG_DRM_AMD_DC_DCN1_0=y
+CONFIG_DRM_AMD_DC_DCN2_0=y
+CONFIG_DRM_AMD_DC_DCN2_1=y
+CONFIG_DRM_AMD_DC_DCN=y
+CONFIG_DRM_AMD_DC_DSC_SUPPORT=y
+CONFIG_DRM_AMD_DC_HDCP=y
+CONFIG_DRM_AMD_DC_SI=y
+CONFIG_DRM_AMD_DC=y
+CONFIG_DRM_AMDGPU_CIK=y
+# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set
+CONFIG_DRM_AMDGPU=m
+CONFIG_DRM_AMDGPU_SI=y
+CONFIG_DRM_AMDGPU_USERPTR=y
+CONFIG_DRM_ANALOGIX_ANX78XX=m
+CONFIG_DRM_ANALOGIX_DP=m
+CONFIG_DRM_AST=m
+CONFIG_DRM_BOCHS=m
+CONFIG_DRM_BRIDGE=y
+CONFIG_DRM_CIRRUS_QEMU=m
+# CONFIG_DRM_DEBUG_SELFTEST is not set
+CONFIG_DRM_DP_AUX_CHARDEV=y
+CONFIG_DRM_DP_CEC=y
+# CONFIG_DRM_ETNAVIV is not set
+CONFIG_DRM_FBDEV_EMULATION=y
+CONFIG_DRM_FBDEV_OVERALLOC=100
+CONFIG_DRM_GEM_SHMEM_HELPER=y
+CONFIG_DRM_GM12U320=m
+CONFIG_DRM_GMA3600=y
+CONFIG_DRM_GMA500=m
+# CONFIG_DRM_GMA600 is not set
+CONFIG_DRM_I2C_CH7006=m
+# CONFIG_DRM_I2C_NXP_TDA9950 is not set
+# CONFIG_DRM_I2C_NXP_TDA998X is not set
+CONFIG_DRM_I2C_SIL164=m
+# CONFIG_DRM_I915_ALPHA_SUPPORT is not set
+CONFIG_DRM_I915_CAPTURE_ERROR=y
+CONFIG_DRM_I915_COMPRESS_ERROR=y
+CONFIG_DRM_I915_FENCE_TIMEOUT=10000
+CONFIG_DRM_I915_FORCE_PROBE=""
+CONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500
+CONFIG_DRM_I915=m
+CONFIG_DRM_I915_MAX_REQUEST_BUSYWAIT=8000
+CONFIG_DRM_I915_PREEMPT_TIMEOUT=640
+CONFIG_DRM_I915_SPIN_REQUEST=5
+CONFIG_DRM_I915_STOP_TIMEOUT=100
+CONFIG_DRM_I915_TIMESLICE_DURATION=1
+CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250
+CONFIG_DRM_I915_USERPTR=y
+CONFIG_DRM_KMS_FB_HELPER=y
+CONFIG_DRM_KMS_HELPER=m
+# CONFIG_DRM_LEGACY is not set
+CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+CONFIG_DRM=m
+CONFIG_DRM_MGAG200=m
+CONFIG_DRM_MIPI_DSI=y
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_PANEL_BRIDGE=y
+CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
+# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set
+CONFIG_DRM_PANEL=y
+CONFIG_DRM_QXL=m
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_RADEON_USERPTR=y
+CONFIG_DRM_SCHED=m
+CONFIG_DRM_TTM_HELPER=m
+CONFIG_DRM_TTM=m
+CONFIG_DRM_UDL=m
+CONFIG_DRM_VBOXVIDEO=m
+CONFIG_DRM_VGEM=m
+# CONFIG_DRM_VIRTIO_GPU is not set
+CONFIG_DRM_VKMS=m
+CONFIG_DRM_VMWGFX_FBCON=y
+CONFIG_DRM_VMWGFX=m
+CONFIG_DRM_VRAM_HELPER=m
+# CONFIG_DS1682 is not set
+# CONFIG_DS1803 is not set
+# CONFIG_DS4424 is not set
+CONFIG_DST_CACHE=y
+CONFIG_DUMMY_CONSOLE_COLUMNS=80
+CONFIG_DUMMY_CONSOLE_ROWS=25
+CONFIG_DUMMY_CONSOLE=y
+# CONFIG_DUMMY_IRQ is not set
+CONFIG_DUMMY=m
+CONFIG_DVB_A8293=m
+CONFIG_DVB_AF9013=m
+CONFIG_DVB_AF9033=m
+CONFIG_DVB_AS102_FE=m
+CONFIG_DVB_AS102=m
+CONFIG_DVB_ATBM8830=m
+CONFIG_DVB_AU8522_DTV=m
+CONFIG_DVB_AU8522=m
+CONFIG_DVB_AU8522_V4L=m
+CONFIG_DVB_B2C2_FLEXCOP=m
+# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set
+CONFIG_DVB_B2C2_FLEXCOP_USB=m
+CONFIG_DVB_BCM3510=m
+CONFIG_DVB_CORE=m
+CONFIG_DVB_CX22700=m
+CONFIG_DVB_CX22702=m
+CONFIG_DVB_CX24116=m
+CONFIG_DVB_CX24120=m
+CONFIG_DVB_CX24123=m
+CONFIG_DVB_CXD2820R=m
+CONFIG_DVB_CXD2841ER=m
+# CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set
+CONFIG_DVB_DIB3000MB=m
+CONFIG_DVB_DIB3000MC=m
+CONFIG_DVB_DIB7000M=m
+CONFIG_DVB_DIB7000P=m
+CONFIG_DVB_DIB8000=m
+CONFIG_DVB_DRX39XYJ=m
+CONFIG_DVB_DRXD=m
+CONFIG_DVB_DRXK=m
+CONFIG_DVB_DS3000=m
+CONFIG_DVB_DYNAMIC_MINORS=y
+CONFIG_DVB_EC100=m
+CONFIG_DVB_FIREDTV_INPUT=y
+CONFIG_DVB_FIREDTV=m
+CONFIG_DVB_GP8PSK_FE=m
+CONFIG_DVB_ISL6421=m
+CONFIG_DVB_ISL6423=m
+CONFIG_DVB_IX2505V=m
+CONFIG_DVB_LG2160=m
+CONFIG_DVB_LGDT3305=m
+CONFIG_DVB_LGDT3306A=m
+CONFIG_DVB_LGDT330X=m
+CONFIG_DVB_LGS8GXX=m
+CONFIG_DVB_LNBP21=m
+CONFIG_DVB_LNBP22=m
+CONFIG_DVB_M88DS3103=m
+CONFIG_DVB_M88RS2000=m
+CONFIG_DVB_MAX_ADAPTERS=16
+CONFIG_DVB_MB86A20S=m
+# CONFIG_DVB_MMAP is not set
+CONFIG_DVB_MN88472=m
+CONFIG_DVB_MN88473=m
+CONFIG_DVB_MT312=m
+CONFIG_DVB_MT352=m
+# CONFIG_DVB_NET is not set
+CONFIG_DVB_NXT200X=m
+CONFIG_DVB_NXT6000=m
+# CONFIG_DVB_PLATFORM_DRIVERS is not set
+CONFIG_DVB_PLL=m
+CONFIG_DVB_RTL2830=m
+CONFIG_DVB_RTL2832=m
+CONFIG_DVB_S5H1409=m
+CONFIG_DVB_S5H1411=m
+CONFIG_DVB_S5H1420=m
+CONFIG_DVB_S921=m
+CONFIG_DVB_SI2165=m
+CONFIG_DVB_SI2168=m
+CONFIG_DVB_SI21XX=m
+CONFIG_DVB_SP2=m
+CONFIG_DVB_STB0899=m
+CONFIG_DVB_STB6000=m
+CONFIG_DVB_STB6100=m
+CONFIG_DVB_STV0288=m
+CONFIG_DVB_STV0297=m
+CONFIG_DVB_STV0299=m
+CONFIG_DVB_STV0900=m
+CONFIG_DVB_STV090x=m
+CONFIG_DVB_STV6110=m
+CONFIG_DVB_STV6110x=m
+CONFIG_DVB_TC90522=m
+CONFIG_DVB_TDA10023=m
+CONFIG_DVB_TDA10048=m
+CONFIG_DVB_TDA1004X=m
+CONFIG_DVB_TDA10071=m
+CONFIG_DVB_TDA10086=m
+CONFIG_DVB_TDA18271C2DD=m
+CONFIG_DVB_TDA8083=m
+CONFIG_DVB_TDA826X=m
+CONFIG_DVB_TS2020=m
+CONFIG_DVB_TTUSB_BUDGET=m
+CONFIG_DVB_TTUSB_DEC=m
+CONFIG_DVB_TUNER_CX24113=m
+CONFIG_DVB_TUNER_DIB0070=m
+CONFIG_DVB_TUNER_DIB0090=m
+CONFIG_DVB_TUNER_ITD1000=m
+# CONFIG_DVB_ULE_DEBUG is not set
+CONFIG_DVB_USB_A800=m
+CONFIG_DVB_USB_AF9005=m
+CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_AF9015=m
+CONFIG_DVB_USB_AF9035=m
+CONFIG_DVB_USB_ANYSEE=m
+CONFIG_DVB_USB_AU6610=m
+CONFIG_DVB_USB_AZ6007=m
+CONFIG_DVB_USB_AZ6027=m
+CONFIG_DVB_USB_CE6230=m
+CONFIG_DVB_USB_CINERGY_T2=m
+CONFIG_DVB_USB_CXUSB_ANALOG=y
+CONFIG_DVB_USB_CXUSB=m
+# CONFIG_DVB_USB_DEBUG is not set
+CONFIG_DVB_USB_DIB0700=m
+CONFIG_DVB_USB_DIB3000MC=m
+CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y
+CONFIG_DVB_USB_DIBUSB_MB=m
+CONFIG_DVB_USB_DIBUSB_MC=m
+CONFIG_DVB_USB_DIGITV=m
+CONFIG_DVB_USB_DTT200U=m
+CONFIG_DVB_USB_DTV5100=m
+CONFIG_DVB_USB_DVBSKY=m
+CONFIG_DVB_USB_DW2102=m
+CONFIG_DVB_USB_EC168=m
+CONFIG_DVB_USB_GL861=m
+CONFIG_DVB_USB_GP8PSK=m
+CONFIG_DVB_USB_LME2510=m
+CONFIG_DVB_USB=m
+CONFIG_DVB_USB_M920X=m
+CONFIG_DVB_USB_MXL111SF=m
+CONFIG_DVB_USB_NOVA_T_USB2=m
+CONFIG_DVB_USB_OPERA1=m
+CONFIG_DVB_USB_PCTV452E=m
+CONFIG_DVB_USB_RTL28XXU=m
+CONFIG_DVB_USB_TECHNISAT_USB2=m
+CONFIG_DVB_USB_TTUSB2=m
+CONFIG_DVB_USB_UMT_010=m
+CONFIG_DVB_USB_V2=m
+CONFIG_DVB_USB_VP702X=m
+CONFIG_DVB_USB_VP7045=m
+CONFIG_DVB_USB_ZD1301=m
+CONFIG_DVB_VES1820=m
+CONFIG_DVB_ZD1301_DEMOD=m
+CONFIG_DVB_ZL10039=m
+CONFIG_DVB_ZL10353=m
+CONFIG_DW_DMAC_CORE=m
+CONFIG_DW_DMAC=m
+CONFIG_DW_DMAC_PCI=m
+CONFIG_DW_EDMA=m
+CONFIG_DW_EDMA_PCIE=m
+CONFIG_DWMAC_INTEL=m
+# CONFIG_DW_WATCHDOG is not set
+CONFIG_DYNAMIC_DEBUG_CORE=y
+CONFIG_DYNAMIC_DEBUG=y
+CONFIG_DYNAMIC_EVENTS=y
+CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y
+CONFIG_DYNAMIC_FTRACE_WITH_REGS=y
+CONFIG_DYNAMIC_FTRACE=y
+CONFIG_E1000E_HWTS=y
+CONFIG_E1000E=m
+CONFIG_E1000=m
+CONFIG_E100=m
+CONFIG_EARLY_PRINTK_DBGP=y
+CONFIG_EARLY_PRINTK_USB_XDBC=y
+CONFIG_EARLY_PRINTK_USB=y
+CONFIG_EARLY_PRINTK=y
+# CONFIG_EBC_C384_WDT is not set
+CONFIG_ECHO=m
+CONFIG_ECRYPT_FS=m
+# CONFIG_ECRYPT_FS_MESSAGING is not set
+# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set
+CONFIG_EDAC_AMD64=m
+CONFIG_EDAC_ATOMIC_SCRUB=y
+# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_DECODE_MCE=m
+CONFIG_EDAC_E752X=m
+CONFIG_EDAC_GHES=y
+CONFIG_EDAC_I3000=m
+CONFIG_EDAC_I3200=m
+CONFIG_EDAC_I5000=m
+CONFIG_EDAC_I5100=m
+CONFIG_EDAC_I5400=m
+CONFIG_EDAC_I7300=m
+CONFIG_EDAC_I7CORE=m
+CONFIG_EDAC_I82975X=m
+CONFIG_EDAC_IE31200=m
+CONFIG_EDAC_IGEN6=m
+CONFIG_EDAC_LEGACY_SYSFS=y
+CONFIG_EDAC_SUPPORT=y
+CONFIG_EDAC_X38=m
+CONFIG_EDAC=y
+CONFIG_EDD=m
+# CONFIG_EDD_OFF is not set
+CONFIG_EEEPC_LAPTOP=m
+CONFIG_EEEPC_WMI=m
+CONFIG_EEPROM_93CX6=m
+# CONFIG_EEPROM_93XX46 is not set
+CONFIG_EEPROM_AT24=m
+# CONFIG_EEPROM_AT25 is not set
+CONFIG_EEPROM_EE1004=m
+CONFIG_EEPROM_IDT_89HPESX=m
+CONFIG_EEPROM_LEGACY=m
+CONFIG_EEPROM_MAX6875=m
+CONFIG_EFI_BOOTLOADER_CONTROL=m
+CONFIG_EFI_CAPSULE_LOADER=m
+CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y
+CONFIG_EFI_DEV_PATH_PARSER=y
+# CONFIG_EFI_DISABLE_PCI_DMA is not set
+CONFIG_EFI_EARLYCON=y
+CONFIG_EFI_ESRT=y
+# CONFIG_EFI_FAKE_MEMMAP is not set
+CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y
+CONFIG_EFI_PARTITION=y
+# CONFIG_EFI_PGT_DUMP is not set
+CONFIG_EFI_RCI2_TABLE=y
+CONFIG_EFI_RUNTIME_MAP=y
+CONFIG_EFI_RUNTIME_WRAPPERS=y
+CONFIG_EFI_SOFT_RESERVE=y
+CONFIG_EFI_STUB=y
+# CONFIG_EFI_TEST is not set
+CONFIG_EFIVAR_FS=m
+CONFIG_EFI_VARS=m
+# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set
+CONFIG_EFI_VARS_PSTORE=m
+CONFIG_EFI=y
+# CONFIG_EFS_FS is not set
+# CONFIG_EISA is not set
+CONFIG_ELF_CORE=y
+CONFIG_ELFCORE=y
+# CONFIG_EMBEDDED is not set
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_ENA_ETHERNET=m
+CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_ENCRYPTED_KEYS=y
+CONFIG_ENERGY_MODEL=y
+CONFIG_ENIC=m
+CONFIG_EPIC100=m
+CONFIG_EPOLL=y
+CONFIG_EQUALIZER=m
+CONFIG_EROFS_FS_CLUSTER_PAGE_LIMIT=1
+# CONFIG_EROFS_FS_DEBUG is not set
+CONFIG_EROFS_FS=m
+CONFIG_EROFS_FS_POSIX_ACL=y
+CONFIG_EROFS_FS_SECURITY=y
+CONFIG_EROFS_FS_XATTR=y
+CONFIG_EROFS_FS_ZIP=y
+CONFIG_ET131X=m
+CONFIG_ETHERNET=y
+CONFIG_ETHOC=m
+CONFIG_ETHTOOL_NETLINK=y
+# CONFIG_EUROTECH_WDT is not set
+CONFIG_EVENTFD=y
+CONFIG_EVENT_TRACING=y
+# CONFIG_EVM_ADD_XATTRS is not set
+CONFIG_EVM_ATTR_FSUUID=y
+# CONFIG_EVM_LOAD_X509 is not set
+CONFIG_EVM=y
+CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
+CONFIG_EXFAT_FS=m
+# CONFIG_EXPERT is not set
+CONFIG_EXPORTFS_BLOCK_OPS=y
+CONFIG_EXPORTFS=y
+# CONFIG_EXT2_FS is not set
+# CONFIG_EXT3_FS is not set
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_EXT4_FS=m
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+CONFIG_EXT4_USE_FOR_EXT2=y
+# CONFIG_EXTCON_ADC_JACK is not set
+# CONFIG_EXTCON_AXP288 is not set
+# CONFIG_EXTCON_FSA9480 is not set
+# CONFIG_EXTCON_GPIO is not set
+CONFIG_EXTCON_INTEL_INT3496=m
+# CONFIG_EXTCON_MAX3355 is not set
+# CONFIG_EXTCON_PTN5150 is not set
+# CONFIG_EXTCON_RT8973A is not set
+# CONFIG_EXTCON_SM5502 is not set
+# CONFIG_EXTCON_USBC_TUSB320 is not set
+# CONFIG_EXTCON_USB_GPIO is not set
+CONFIG_EXTCON=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_EZX_PCAP is not set
+# CONFIG_F2FS_CHECK_FS is not set
+# CONFIG_F2FS_FAULT_INJECTION is not set
+CONFIG_F2FS_FS_COMPRESSION=y
+CONFIG_F2FS_FS_LZ4=y
+CONFIG_F2FS_FS_LZORLE=y
+CONFIG_F2FS_FS_LZO=y
+CONFIG_F2FS_FS=m
+CONFIG_F2FS_FS_POSIX_ACL=y
+CONFIG_F2FS_FS_SECURITY=y
+CONFIG_F2FS_FS_XATTR=y
+CONFIG_F2FS_FS_ZSTD=y
+# CONFIG_F2FS_IO_TRACE is not set
+CONFIG_F2FS_STAT_FS=y
+CONFIG_F71808E_WDT=m
+# CONFIG_FAIL_FUNCTION is not set
+# CONFIG_FAIL_FUTEX is not set
+# CONFIG_FAIL_IO_TIMEOUT is not set
+CONFIG_FAIL_MAKE_REQUEST=y
+# CONFIG_FAIL_MMC_REQUEST is not set
+CONFIG_FAILOVER=m
+# CONFIG_FAIL_PAGE_ALLOC is not set
+# CONFIG_FAILSLAB is not set
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
+CONFIG_FANOTIFY=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
+# CONFIG_FAT_DEFAULT_UTF8 is not set
+CONFIG_FAT_FS=m
+CONFIG_FAULT_INJECTION_DEBUG_FS=y
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_FB_3DFX is not set
+# CONFIG_FB_ARC is not set
+# CONFIG_FB_ARK is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_ATY128 is not set
+# CONFIG_FB_ATY is not set
+CONFIG_FB_BOOT_VESA_SUPPORT=y
+# CONFIG_FB_CARMINE is not set
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CIRRUS is not set
+CONFIG_FB_CMDLINE=y
+# CONFIG_FB_CYBER2000 is not set
+CONFIG_FB_DEFERRED_IO=y
+CONFIG_FB_EFI=y
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+# CONFIG_FB_HGA is not set
+# CONFIG_FB_I740 is not set
+# CONFIG_FB_IBM_GXT4500 is not set
+# CONFIG_FB_IMSTT is not set
+# CONFIG_FB_KYRO is not set
+# CONFIG_FB_LE80578 is not set
+# CONFIG_FB_MATROX is not set
+# CONFIG_FB_MB862XX is not set
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_N411 is not set
+# CONFIG_FB_NEOMAGIC is not set
+CONFIG_FB_NOTIFY=y
+# CONFIG_FB_NVIDIA is not set
+# CONFIG_FB_OPENCORES is not set
+# CONFIG_FB_PM2 is not set
+# CONFIG_FB_PM3 is not set
+# CONFIG_FB_RADEON is not set
+# CONFIG_FB_RIVA is not set
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_S3 is not set
+# CONFIG_FB_SAVAGE is not set
+# CONFIG_FB_SIMPLE is not set
+# CONFIG_FB_SIS is not set
+# CONFIG_FB_SM501 is not set
+# CONFIG_FB_SM712 is not set
+# CONFIG_FB_SM750 is not set
+# CONFIG_FB_SMSCUFX is not set
+# CONFIG_FB_TFT is not set
+CONFIG_FB_TILEBLITTING=y
+# CONFIG_FB_TRIDENT is not set
+# CONFIG_FB_UDL is not set
+# CONFIG_FB_UVESA is not set
+CONFIG_FB_VESA=y
+CONFIG_FB_VGA16=m
+# CONFIG_FB_VIA is not set
+CONFIG_FB_VIRTUAL=m
+# CONFIG_FB_VOODOO1 is not set
+# CONFIG_FB_VT8623 is not set
+CONFIG_FB=y
+CONFIG_FCOE_FNIC=m
+CONFIG_FCOE=m
+# CONFIG_FDDI is not set
+CONFIG_FEALNX=m
+CONFIG_FHANDLE=y
+CONFIG_FIB_RULES=y
+# CONFIG_FIELDBUS_DEV is not set
+CONFIG_FILE_LOCKING=y
+# CONFIG_FIND_BIT_BENCHMARK is not set
CONFIG_FIREWIRE=m
+CONFIG_FIREWIRE_NET=m
+CONFIG_FIREWIRE_NOSY=m
CONFIG_FIREWIRE_OHCI=m
CONFIG_FIREWIRE_SBP2=m
-CONFIG_FIREWIRE_NET=m
-# CONFIG_FIREWIRE_OHCI_DEBUG is not set
-# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
-
-#
-# IEEE 1394 (FireWire) support
-#
-# CONFIG_IEEE1394 is not set
-
-#
-# I2O device support
-#
-# CONFIG_I2O is not set
-# CONFIG_I2O_LCT_NOTIFY_ON_CHANGES is not set
-
-#
-# Networking support
-#
-CONFIG_NET=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=y
-CONFIG_PACKET_DIAG=m
-CONFIG_PACKET_MMAP=y
-CONFIG_UNIX=y
-CONFIG_UNIX_DIAG=m
-CONFIG_XFRM=y
-CONFIG_XFRM_ALGO=y
-CONFIG_XFRM_USER=y
-CONFIG_XFRM_SUB_POLICY=y
-CONFIG_XFRM_MIGRATE=y
-CONFIG_XFRM_STATISTICS=y
-CONFIG_XFRM_IPCOMP=m
-CONFIG_NET_KEY=m
-CONFIG_NET_KEY_MIGRATE=y
+# CONFIG_FIREWIRE_SERIAL is not set
+# CONFIG_FIRMWARE_EDID is not set
+CONFIG_FIRMWARE_MEMMAP=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_FIXED_PHY=m
+CONFIG_FM10K=m
+# CONFIG_FONT_10x18 is not set
+CONFIG_FONT_6x10=y
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_6x8 is not set
+# CONFIG_FONT_7x14 is not set
+CONFIG_FONT_8x16=y
+# CONFIG_FONT_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_SUN8x16 is not set
+CONFIG_FONT_SUPPORT=y
+CONFIG_FONTS=y
+CONFIG_FONT_TER16x32=y
+CONFIG_FORCEDETH=m
+CONFIG_FORTIFY_SOURCE=y
+CONFIG_FPGA_BRIDGE=m
+CONFIG_FPGA_DFL_AFU=m
+CONFIG_FPGA_DFL_FME_BRIDGE=m
+CONFIG_FPGA_DFL_FME=m
+CONFIG_FPGA_DFL_FME_MGR=m
+CONFIG_FPGA_DFL_FME_REGION=m
+CONFIG_FPGA_DFL=m
+CONFIG_FPGA_DFL_PCI=m
+# CONFIG_FPGA is not set
+CONFIG_FPGA_MGR_ALTERA_CVP=m
+CONFIG_FPGA_MGR_ALTERA_PS_SPI=m
+CONFIG_FPGA_MGR_MACHXO2_SPI=m
+CONFIG_FPGA_MGR_XILINX_SPI=m
+CONFIG_FPGA_REGION=m
+CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAME_VECTOR=y
+CONFIG_FREEZER=y
+CONFIG_FRONTSWAP=y
+# CONFIG_FSCACHE_DEBUG is not set
+# CONFIG_FSCACHE_HISTOGRAM is not set
+CONFIG_FSCACHE=m
+CONFIG_FSCACHE_OBJECT_LIST=y
+CONFIG_FSCACHE_STATS=y
+CONFIG_FS_DAX=y
+CONFIG_FS_ENCRYPTION_ALGS=m
+CONFIG_FS_ENCRYPTION=y
+CONFIG_FS_IOMAP=y
+CONFIG_FS_MBCACHE=m
+CONFIG_FSNOTIFY=y
+CONFIG_FS_POSIX_ACL=y
+# CONFIG_FS_VERITY_BUILTIN_SIGNATURES is not set
+# CONFIG_FS_VERITY_DEBUG is not set
+CONFIG_FS_VERITY=y
+# CONFIG_FTL is not set
+CONFIG_FTRACE_MCOUNT_RECORD=y
+# CONFIG_FTRACE_RECORD_RECURSION is not set
+# CONFIG_FTRACE_STARTUP_TEST is not set
+CONFIG_FTRACE_SYSCALLS=y
+CONFIG_FTRACE=y
+CONFIG_FUJITSU_ES=m
+CONFIG_FUJITSU_LAPTOP=m
+CONFIG_FUJITSU_TABLET=m
+CONFIG_FUNCTION_ERROR_INJECTION=y
+CONFIG_FUNCTION_GRAPH_TRACER=y
+CONFIG_FUNCTION_PROFILER=y
+CONFIG_FUNCTION_TRACER=y
+CONFIG_FUSE_FS=m
+CONFIG_FUSION_CTL=m
+CONFIG_FUSION_FC=m
+CONFIG_FUSION_LAN=m
+CONFIG_FUSION_LOGGING=y
+CONFIG_FUSION_MAX_SGE=40
+CONFIG_FUSION_SAS=m
+CONFIG_FUSION_SPI=m
+CONFIG_FUSION=y
+CONFIG_FUTEX_PI=y
+CONFIG_FUTEX=y
+CONFIG_FW_CACHE=y
+# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
+CONFIG_FW_CFG_SYSFS=m
+CONFIG_FW_LOADER_COMPRESS=y
+CONFIG_FW_LOADER_PAGED_BUF=y
+# CONFIG_FW_LOADER_USER_HELPER is not set
+CONFIG_FW_LOADER=y
+CONFIG_FXAS21002C_I2C=m
+CONFIG_FXAS21002C=m
+CONFIG_FXAS21002C_SPI=m
+# CONFIG_FXOS8700_I2C is not set
+# CONFIG_FXOS8700_SPI is not set
+CONFIG_GACT_PROB=y
+CONFIG_GAMEPORT_EMU10K1=m
+CONFIG_GAMEPORT_FM801=m
+CONFIG_GAMEPORT_L4=m
+CONFIG_GAMEPORT=m
+CONFIG_GAMEPORT_NS558=m
+CONFIG_GARP=m
+# CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set
+# CONFIG_GCC_PLUGIN_RANDSTRUCT is not set
+# CONFIG_GCC_PLUGIN_STACKLEAK is not set
+# CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL is not set
+# CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF is not set
+# CONFIG_GCC_PLUGIN_STRUCTLEAK_USER is not set
+CONFIG_GCC_PLUGINS=y
+# CONFIG_GCOV_KERNEL is not set
+# CONFIG_GENERIC_ADC_BATTERY is not set
+# CONFIG_GENERIC_ADC_THERMAL is not set
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CMOS_UPDATE=y
+CONFIG_GENERIC_CPU_AUTOPROBE=y
+CONFIG_GENERIC_CPU_VULNERABILITIES=y
+CONFIG_GENERIC_EARLY_IOREMAP=y
+CONFIG_GENERIC_ENTRY=y
+CONFIG_GENERIC_FIND_FIRST_BIT=y
+CONFIG_GENERIC_GETTIMEOFDAY=y
+CONFIG_GENERIC_IOMAP=y
+# CONFIG_GENERIC_IRQ_DEBUGFS is not set
+CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
+CONFIG_GENERIC_IRQ_INJECTION=y
+CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR=y
+CONFIG_GENERIC_IRQ_MIGRATION=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_IRQ_RESERVATION_MODE=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_ISA_DMA=y
+CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
+CONFIG_GENERIC_MSI_IRQ=y
+CONFIG_GENERIC_NET_UTILS=y
+CONFIG_GENERIC_PCI_IOMAP=y
+CONFIG_GENERIC_PENDING_IRQ=y
+CONFIG_GENERIC_PHY=y
+CONFIG_GENERIC_PINCONF=y
+CONFIG_GENERIC_PTDUMP=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_GENERIC_STRNCPY_FROM_USER=y
+CONFIG_GENERIC_STRNLEN_USER=y
+CONFIG_GENERIC_TIME_VSYSCALL=y
+CONFIG_GENERIC_TRACER=y
+CONFIG_GENERIC_VDSO_TIME_NS=y
+CONFIG_GENEVE=m
+CONFIG_GENTOO_LINUX_INIT_SCRIPT=y
+CONFIG_GENTOO_LINUX_INIT_SYSTEMD=y
+CONFIG_GENTOO_LINUX_PORTAGE=y
+CONFIG_GENTOO_LINUX_UDEV=y
+CONFIG_GENTOO_LINUX=y
+CONFIG_GFS2_FS_LOCKING_DLM=y
+CONFIG_GFS2_FS=m
+# CONFIG_GLOB_SELFTEST is not set
+CONFIG_GLOB=y
+# CONFIG_GNSS is not set
+# CONFIG_GOLDFISH is not set
+# CONFIG_GOOGLE_FIRMWARE is not set
+# CONFIG_GP2AP002 is not set
+# CONFIG_GP2AP020A00F is not set
+CONFIG_GPD_POCKET_FAN=m
+CONFIG_GPIO_ACPI=y
+# CONFIG_GPIO_ADP5588 is not set
+# CONFIG_GPIO_AGGREGATOR is not set
+# CONFIG_GPIO_AMD8111 is not set
+CONFIG_GPIO_AMD_FCH=m
+CONFIG_GPIO_AMDPT=m
+CONFIG_GPIO_BD9571MWV=m
+# CONFIG_GPIO_BT8XX is not set
+CONFIG_GPIO_CDEV_V1=y
+CONFIG_GPIO_CDEV=y
+# CONFIG_GPIO_DWAPB is not set
+CONFIG_GPIO_EXAR=m
+# CONFIG_GPIO_F7188X is not set
+CONFIG_GPIO_GENERIC=m
+# CONFIG_GPIO_GENERIC_PLATFORM is not set
+CONFIG_GPIO_ICH=m
+CONFIG_GPIO_IT87=m
+CONFIG_GPIOLIB_FASTPATH_LIMIT=512
+CONFIG_GPIOLIB_IRQCHIP=y
+CONFIG_GPIOLIB=y
+# CONFIG_GPIO_LYNXPOINT is not set
+# CONFIG_GPIO_MAX3191X is not set
+# CONFIG_GPIO_MAX7300 is not set
+# CONFIG_GPIO_MAX7301 is not set
+# CONFIG_GPIO_MAX732X is not set
+# CONFIG_GPIO_MB86S7X is not set
+# CONFIG_GPIO_MC33880 is not set
+# CONFIG_GPIO_ML_IOH is not set
+# CONFIG_GPIO_MOCKUP is not set
+# CONFIG_GPIO_PCA953X_IRQ is not set
+CONFIG_GPIO_PCA953X=m
+# CONFIG_GPIO_PCA9570 is not set
+# CONFIG_GPIO_PCF857X is not set
+# CONFIG_GPIO_PCIE_IDIO_24 is not set
+CONFIG_GPIO_PCI_IDIO_16=m
+# CONFIG_GPIO_PISOSR is not set
+# CONFIG_GPIO_RDC321X is not set
+# CONFIG_GPIO_SCH311X is not set
+# CONFIG_GPIO_SYSFS is not set
+# CONFIG_GPIO_TPIC2810 is not set
+CONFIG_GPIO_VIPERBOARD=m
+# CONFIG_GPIO_VX855 is not set
+CONFIG_GPIO_WHISKEY_COVE=m
+# CONFIG_GPIO_WINBOND is not set
+# CONFIG_GPIO_WS16C48 is not set
+# CONFIG_GPIO_XILINX is not set
+# CONFIG_GPIO_XRA1403 is not set
+CONFIG_GRACE_PERIOD=m
+CONFIG_GREENASIA_FF=y
+# CONFIG_GREYBUS is not set
+CONFIG_GRO_CELLS=y
+# CONFIG_GS_FPGABOOT is not set
+CONFIG_GTP=m
+# CONFIG_GUP_BENCHMARK is not set
+# CONFIG_GUP_TEST is not set
+CONFIG_GVE=m
+# CONFIG_HABANA_AI is not set
+CONFIG_HALTPOLL_CPUIDLE=m
+CONFIG_HAMACHI=m
+CONFIG_HAMRADIO=y
+CONFIG_HANGCHECK_TIMER=m
+CONFIG_HAPPYMEAL=m
+CONFIG_HARDENED_USERCOPY_FALLBACK=y
+CONFIG_HARDENED_USERCOPY=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_HARDLOCKUP_DETECTOR_PERF=y
+CONFIG_HARDLOCKUP_DETECTOR=y
+CONFIG_HAS_DMA=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT_MAP=y
+CONFIG_HAVE_ACPI_APEI_NMI=y
+CONFIG_HAVE_ACPI_APEI=y
+CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
+CONFIG_HAVE_ARCH_AUDITSYSCALL=y
+CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_HAVE_ARCH_KASAN_VMALLOC=y
+CONFIG_HAVE_ARCH_KCSAN=y
+CONFIG_HAVE_ARCH_KGDB=y
+CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
+CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y
+CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
+CONFIG_HAVE_ARCH_SECCOMP=y
+CONFIG_HAVE_ARCH_STACKLEAK=y
+CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
+CONFIG_HAVE_ARCH_USERFAULTFD_WP=y
+CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y
+CONFIG_HAVE_ASM_MODVERSIONS=y
+CONFIG_HAVE_CLK_PREPARE=y
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_CMPXCHG_DOUBLE=y
+CONFIG_HAVE_CMPXCHG_LOCAL=y
+CONFIG_HAVE_CONTEXT_TRACKING_OFFSTACK=y
+CONFIG_HAVE_COPY_THREAD_TLS=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
+CONFIG_HAVE_DEBUG_KMEMLEAK=y
+CONFIG_HAVE_DMA_CONTIGUOUS=y
+CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS=y
+CONFIG_HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y
+CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_EBPF_JIT=y
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_HAVE_EISA=y
+CONFIG_HAVE_EXIT_THREAD=y
+CONFIG_HAVE_FAST_GUP=y
+CONFIG_HAVE_FENTRY=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y
+CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_GCC_PLUGINS=y
+CONFIG_HAVE_GENERIC_VDSO=y
+CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y
+CONFIG_HAVE_HARDLOCKUP_DETECTOR_PERF=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_IDE=y
+CONFIG_HAVE_INTEL_TXT=y
+CONFIG_HAVE_IOREMAP_PROT=y
+CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
+CONFIG_HAVE_KERNEL_BZIP2=y
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_LZ4=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_LZO=y
+CONFIG_HAVE_KERNEL_XZ=y
+CONFIG_HAVE_KERNEL_ZSTD=y
+CONFIG_HAVE_KPROBES_ON_FTRACE=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y
+CONFIG_HAVE_KVM_EVENTFD=y
+CONFIG_HAVE_KVM_IRQ_BYPASS=y
+CONFIG_HAVE_KVM_IRQCHIP=y
+CONFIG_HAVE_KVM_IRQFD=y
+CONFIG_HAVE_KVM_IRQ_ROUTING=y
+CONFIG_HAVE_KVM_MSI=y
+CONFIG_HAVE_KVM_NO_POLL=y
+CONFIG_HAVE_KVM=y
+CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
+CONFIG_HAVE_MEMORY_PRESENT=y
+CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
+CONFIG_HAVE_MMIOTRACE_SUPPORT=y
+CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
+CONFIG_HAVE_MOVE_PMD=y
+CONFIG_HAVE_MOVE_PUD=y
+CONFIG_HAVE_NET_DSA=y
+CONFIG_HAVE_NMI=y
+CONFIG_HAVE_OPROFILE=y
+CONFIG_HAVE_OPTPROBES=y
+CONFIG_HAVE_PCI=y
+CONFIG_HAVE_PCSPKR_PLATFORM=y
+CONFIG_HAVE_PERF_EVENTS_NMI=y
+CONFIG_HAVE_PERF_EVENTS=y
+CONFIG_HAVE_PERF_REGS=y
+CONFIG_HAVE_PERF_USER_STACK_DUMP=y
+CONFIG_HAVE_POSIX_CPU_TIMERS_TASK_WORK=y
+CONFIG_HAVE_RCU_TABLE_FREE=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_RSEQ=y
+CONFIG_HAVE_SCHED_AVG_IRQ=y
+CONFIG_HAVE_SETUP_PER_CPU_AREA=y
+CONFIG_HAVE_STACKPROTECTOR=y
+CONFIG_HAVE_STATIC_CALL_INLINE=y
+CONFIG_HAVE_STATIC_CALL=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_HAVE_UID16=y
+CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
+CONFIG_HAVE_USER_RETURN_NOTIFIER=y
+CONFIG_HD44780_COMMON=m
+CONFIG_HD44780=m
+# CONFIG_HDC100X is not set
+# CONFIG_HDC2010 is not set
+CONFIG_HDMI_LPE_AUDIO=m
+CONFIG_HDMI=y
+# CONFIG_HEADERS_INSTALL is not set
+# CONFIG_HEADER_TEST is not set
+CONFIG_HERMES_CACHE_FW_ON_INIT=y
+CONFIG_HERMES=m
+CONFIG_HERMES_PRISM=y
+CONFIG_HFS_FS=m
+CONFIG_HFSPLUS_FS=m
+# CONFIG_HI8435 is not set
+CONFIG_HIBERNATE_CALLBACKS=y
+CONFIG_HIBERNATION_SNAPSHOT_DEV=y
+CONFIG_HIBERNATION=y
+CONFIG_HID_A4TECH=m
+CONFIG_HID_ACCUTOUCH=m
+CONFIG_HID_ACRUX_FF=y
+CONFIG_HID_ACRUX=m
+CONFIG_HID_ALPS=m
+CONFIG_HID_APPLEIR=m
+CONFIG_HID_APPLE=m
+CONFIG_HID_ASUS=m
+CONFIG_HID_AUREAL=m
+CONFIG_HID_BATTERY_STRENGTH=y
+CONFIG_HID_BELKIN=m
+CONFIG_HID_BETOP_FF=m
+CONFIG_HID_BIGBEN_FF=m
+CONFIG_HID_CHERRY=m
+CONFIG_HID_CHICONY=m
+CONFIG_HID_CMEDIA=m
+CONFIG_HID_CORSAIR=m
+CONFIG_HID_COUGAR=m
+CONFIG_HID_CP2112=m
+# CONFIG_HID_CREATIVE_SB0540 is not set
+CONFIG_HID_CYPRESS=m
+CONFIG_HID_DRAGONRISE=m
+CONFIG_HID_ELAN=m
+CONFIG_HID_ELECOM=m
+CONFIG_HID_ELO=m
+CONFIG_HID_EMS_FF=m
+CONFIG_HID_EZKEY=m
+CONFIG_HID_GEMBIRD=m
+CONFIG_HID_GENERIC=y
+CONFIG_HID_GFRM=m
+# CONFIG_HID_GLORIOUS is not set
+CONFIG_HID_GREENASIA=m
+CONFIG_HID_GT683R=m
+CONFIG_HID_GYRATION=m
+CONFIG_HID_HOLTEK=m
+CONFIG_HID_ICADE=m
+CONFIG_HID_ITE=m
+CONFIG_HID_JABRA=m
+CONFIG_HID_KENSINGTON=m
+CONFIG_HID_KEYTOUCH=m
+CONFIG_HID_KYE=m
+CONFIG_HID_LCPOWER=m
+CONFIG_HID_LED=m
+CONFIG_HID_LENOVO=m
+CONFIG_HID_LOGITECH_DJ=m
+CONFIG_HID_LOGITECH_HIDPP=m
+CONFIG_HID_LOGITECH=m
+CONFIG_HID_MACALLY=m
+CONFIG_HID_MAGICMOUSE=y
+CONFIG_HID_MALTRON=m
+CONFIG_HID_MAYFLASH=m
+# CONFIG_HID_MCP2221 is not set
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MONTEREY=m
+CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTI=m
+CONFIG_HID_NTRIG=y
+CONFIG_HID_ORTEK=m
+CONFIG_HID_PANTHERLORD=m
+CONFIG_HID_PENMOUNT=m
+CONFIG_HID_PETALYNX=m
+CONFIG_HID_PICOLCD_BACKLIGHT=y
+CONFIG_HID_PICOLCD_CIR=y
+CONFIG_HID_PICOLCD_FB=y
+CONFIG_HID_PICOLCD_LCD=y
+CONFIG_HID_PICOLCD_LEDS=y
+CONFIG_HID_PICOLCD=m
+CONFIG_HID_PID=y
+CONFIG_HID_PLANTRONICS=m
+CONFIG_HID_PRIMAX=m
+CONFIG_HID_PRODIKEYS=m
+CONFIG_HIDRAW=y
+# CONFIG_HID_REDRAGON is not set
+CONFIG_HID_RETRODE=m
+CONFIG_HID_RMI=m
+CONFIG_HID_ROCCAT=m
+CONFIG_HID_SAITEK=m
+CONFIG_HID_SAMSUNG=m
+CONFIG_HID_SENSOR_ACCEL_3D=m
+CONFIG_HID_SENSOR_ALS=m
+# CONFIG_HID_SENSOR_CUSTOM_SENSOR is not set
+CONFIG_HID_SENSOR_DEVICE_ROTATION=m
+CONFIG_HID_SENSOR_GYRO_3D=m
+CONFIG_HID_SENSOR_HUB=m
+CONFIG_HID_SENSOR_HUMIDITY=m
+CONFIG_HID_SENSOR_IIO_COMMON=m
+CONFIG_HID_SENSOR_IIO_TRIGGER=m
+CONFIG_HID_SENSOR_INCLINOMETER_3D=m
+CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
+# CONFIG_HID_SENSOR_PRESS is not set
+# CONFIG_HID_SENSOR_PROX is not set
+CONFIG_HID_SENSOR_TEMP=m
+CONFIG_HID_SMARTJOYPLUS=m
+CONFIG_HID_SONY=m
+CONFIG_HID_SPEEDLINK=m
+CONFIG_HID_STEAM=m
+CONFIG_HID_STEELSERIES=m
+CONFIG_HID_SUNPLUS=m
+CONFIG_HID_THINGM=m
+CONFIG_HID_THRUSTMASTER=m
+CONFIG_HID_TIVO=m
+CONFIG_HID_TOPSEED=m
+CONFIG_HID_TWINHAN=m
+CONFIG_HID_U2FZERO=m
+CONFIG_HID_UCLOGIC=m
+CONFIG_HID_UDRAW_PS3=m
+CONFIG_HID_VIEWSONIC=m
+# CONFIG_HID_VIVALDI is not set
+CONFIG_HID_WACOM=m
+CONFIG_HID_WALTOP=m
+CONFIG_HID_WIIMOTE=m
+CONFIG_HID_XINMO=m
+CONFIG_HID=y
+CONFIG_HID_ZEROPLUS=m
+CONFIG_HID_ZYDACRON=m
+CONFIG_HIGH_RES_TIMERS=y
+# CONFIG_HIPPI is not set
+# CONFIG_HIST_TRIGGERS_DEBUG is not set
+CONFIG_HIST_TRIGGERS=y
+# CONFIG_HMC425 is not set
+# CONFIG_HMC6352 is not set
+CONFIG_HMM_MIRROR=y
+CONFIG_HOLTEK_FF=y
+# CONFIG_HOSTAP is not set
+CONFIG_HOTPLUG_CPU=y
+CONFIG_HOTPLUG_PCI_ACPI_IBM=m
+CONFIG_HOTPLUG_PCI_ACPI=y
+# CONFIG_HOTPLUG_PCI_CPCI is not set
+CONFIG_HOTPLUG_PCI_PCIE=y
+CONFIG_HOTPLUG_PCI_SHPC=y
+CONFIG_HOTPLUG_PCI=y
+CONFIG_HOTPLUG_SMT=y
+# CONFIG_HP03 is not set
+# CONFIG_HP206C is not set
+CONFIG_HP_ACCEL=m
+CONFIG_HPET_EMULATE_RTC=y
+# CONFIG_HPET_MMAP is not set
+CONFIG_HPET_TIMER=y
+CONFIG_HPET=y
+# CONFIG_HPFS_FS is not set
+CONFIG_HP_ILO=m
+CONFIG_HP_WATCHDOG=m
+CONFIG_HPWDT_NMI_DECODING=y
+CONFIG_HP_WIRELESS=m
+CONFIG_HP_WMI=m
+# CONFIG_HSI is not set
+# CONFIG_HSR is not set
+CONFIG_HSU_DMA=y
+# CONFIG_HTC_PASIC3 is not set
+CONFIG_HTS221_I2C=m
+CONFIG_HTS221=m
+CONFIG_HTS221_SPI=m
+# CONFIG_HTU21 is not set
+CONFIG_HUAWEI_WMI=m
+CONFIG_HUGETLBFS=y
+CONFIG_HUGETLB_PAGE=y
+CONFIG_HW_CONSOLE=y
+CONFIG_HWLAT_TRACER=y
+# CONFIG_HWMON_DEBUG_CHIP is not set
+CONFIG_HWMON_VID=m
+CONFIG_HWMON=y
+CONFIG_HW_RANDOM_AMD=m
+# CONFIG_HW_RANDOM_BA431 is not set
+CONFIG_HW_RANDOM_INTEL=m
+CONFIG_HW_RANDOM_TIMERIOMEM=m
+CONFIG_HW_RANDOM_TPM=y
+CONFIG_HW_RANDOM_VIA=m
+# CONFIG_HW_RANDOM_VIRTIO is not set
+# CONFIG_HW_RANDOM_XIPHERA is not set
+CONFIG_HW_RANDOM=y
+# CONFIG_HWSPINLOCK is not set
+# CONFIG_HX711 is not set
+# CONFIG_HYPERV is not set
+CONFIG_HYPERVISOR_GUEST=y
+# CONFIG_HZ_1000 is not set
+# CONFIG_HZ_100 is not set
+# CONFIG_HZ_250 is not set
+CONFIG_HZ=300
+CONFIG_HZ_300=y
+# CONFIG_HZ_PERIODIC is not set
+CONFIG_I2C_ALGOBIT=m
+CONFIG_I2C_ALGOPCA=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD756_S4882=m
+CONFIG_I2C_AMD8111=m
+CONFIG_I2C_AMD_MP2=m
+CONFIG_I2C_BOARDINFO=y
+# CONFIG_I2C_CBUS_GPIO is not set
+CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_COMPAT=y
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+CONFIG_I2C_DESIGNWARE_BAYTRAIL=y
+CONFIG_I2C_DESIGNWARE_CORE=m
+CONFIG_I2C_DESIGNWARE_PCI=m
+CONFIG_I2C_DESIGNWARE_PLATFORM=m
+CONFIG_I2C_DESIGNWARE_SLAVE=y
+CONFIG_I2C_DIOLAN_U2C=m
+# CONFIG_I2C_EMEV2 is not set
+# CONFIG_I2C_GPIO is not set
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_HID=m
+CONFIG_I2C_I801=m
+CONFIG_I2C_ISCH=m
+CONFIG_I2C_ISMT=m
+CONFIG_I2C=m
+CONFIG_I2C_MULTI_INSTANTIATE=m
+# CONFIG_I2C_MUX_GPIO is not set
+CONFIG_I2C_MUX_LTC4306=m
+CONFIG_I2C_MUX=m
+CONFIG_I2C_MUX_MLXCPLD=m
+# CONFIG_I2C_MUX_PCA9541 is not set
+# CONFIG_I2C_MUX_PCA954x is not set
+# CONFIG_I2C_MUX_REG is not set
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_NFORCE2_S4985=m
+CONFIG_I2C_NVIDIA_GPU=m
+# CONFIG_I2C_OCORES is not set
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PCA_PLATFORM=m
+CONFIG_I2C_PIIX4=m
+# CONFIG_I2C_ROBOTFUZZ_OSIF is not set
+CONFIG_I2C_SCMI=m
+CONFIG_I2C_SIMTEC=m
+CONFIG_I2C_SIS96X=m
+CONFIG_I2C_SLAVE_EEPROM=m
+# CONFIG_I2C_SLAVE_TESTUNIT is not set
+CONFIG_I2C_SLAVE=y
+CONFIG_I2C_SMBUS=m
+CONFIG_I2C_STUB=m
+# CONFIG_I2C_TAOS_EVM is not set
+CONFIG_I2C_TINY_USB=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+CONFIG_I2C_VIPERBOARD=m
+# CONFIG_I2C_XILINX is not set
+# CONFIG_I3C is not set
+# CONFIG_I40E_DCB is not set
+CONFIG_I40E=m
+CONFIG_I40EVF=m
+CONFIG_I6300ESB_WDT=m
+CONFIG_I82092=m
+CONFIG_I8253_LOCK=y
+CONFIG_I8K=m
+CONFIG_IA32_FEAT_CTL=y
+# CONFIG_IAQCORE is not set
+CONFIG_IAVF=m
+CONFIG_IB700_WDT=m
+CONFIG_IBM_ASM=m
+CONFIG_IBMASR=m
+# CONFIG_IBM_RTL is not set
+CONFIG_ICE=m
+# CONFIG_ICP10100 is not set
+CONFIG_ICPLUS_PHY=m
+# CONFIG_ICS932S401 is not set
+CONFIG_IDEAPAD_LAPTOP=m
+# CONFIG_IDE is not set
+# CONFIG_IDLE_INJECT is not set
+# CONFIG_IDLE_PAGE_TRACKING is not set
+CONFIG_IE6XX_WDT=m
+CONFIG_IEEE802154_6LOWPAN=m
+CONFIG_IEEE802154_ADF7242=m
+# CONFIG_IEEE802154_AT86RF230_DEBUGFS is not set
+CONFIG_IEEE802154_AT86RF230=m
+CONFIG_IEEE802154_ATUSB=m
+# CONFIG_IEEE802154_CA8210_DEBUGFS is not set
+CONFIG_IEEE802154_CA8210=m
+CONFIG_IEEE802154_CC2520=m
+CONFIG_IEEE802154_DRIVERS=m
+CONFIG_IEEE802154_FAKELB=m
+# CONFIG_IEEE802154_HWSIM is not set
+CONFIG_IEEE802154=m
+CONFIG_IEEE802154_MCR20A=m
+CONFIG_IEEE802154_MRF24J40=m
+# CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set
+CONFIG_IEEE802154_SOCKET=m
+CONFIG_IFB=m
+CONFIG_IGB_HWMON=y
+CONFIG_IGB=m
+CONFIG_IGBVF=m
+CONFIG_IGC=m
+CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_BUFFER_DMAENGINE=m
+CONFIG_IIO_BUFFER_DMA=m
+CONFIG_IIO_BUFFER_HW_CONSUMER=m
+CONFIG_IIO_BUFFER=y
+CONFIG_IIO_CONFIGFS=m
+CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
+# CONFIG_IIO_HRTIMER_TRIGGER is not set
+CONFIG_IIO_INTERRUPT_TRIGGER=m
+CONFIG_IIO_KFIFO_BUF=m
+CONFIG_IIO=m
+# CONFIG_IIO_SIMPLE_DUMMY is not set
+# CONFIG_IIO_SSP_SENSORHUB is not set
+CONFIG_IIO_ST_ACCEL_3AXIS=m
+CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m
+CONFIG_IIO_ST_ACCEL_SPI_3AXIS=m
+CONFIG_IIO_ST_GYRO_3AXIS=m
+CONFIG_IIO_ST_GYRO_I2C_3AXIS=m
+CONFIG_IIO_ST_GYRO_SPI_3AXIS=m
+CONFIG_IIO_ST_LSM6DSX_I2C=m
+CONFIG_IIO_ST_LSM6DSX=m
+CONFIG_IIO_ST_LSM6DSX_SPI=m
+CONFIG_IIO_ST_MAGN_3AXIS=m
+CONFIG_IIO_ST_MAGN_I2C_3AXIS=m
+CONFIG_IIO_ST_MAGN_SPI_3AXIS=m
+# CONFIG_IIO_ST_PRESS is not set
+CONFIG_IIO_ST_SENSORS_CORE=m
+CONFIG_IIO_ST_SENSORS_I2C=m
+CONFIG_IIO_ST_SENSORS_SPI=m
+CONFIG_IIO_SW_DEVICE=m
+CONFIG_IIO_SW_TRIGGER=m
+# CONFIG_IIO_SYSFS_TRIGGER is not set
+CONFIG_IIO_TIGHTLOOP_TRIGGER=m
+CONFIG_IIO_TRIGGERED_BUFFER=m
+# CONFIG_IIO_TRIGGERED_EVENT is not set
+CONFIG_IIO_TRIGGER=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_IKCONFIG=y
+# CONFIG_IKHEADERS is not set
+CONFIG_IMA_APPRAISE_BOOTPARAM=y
+# CONFIG_IMA_APPRAISE_BUILD_POLICY is not set
+CONFIG_IMA_APPRAISE_MODSIG=y
+CONFIG_IMA_APPRAISE=y
+CONFIG_IMA_ARCH_POLICY=y
+# CONFIG_IMA_DEFAULT_HASH_SHA1 is not set
+CONFIG_IMA_DEFAULT_HASH="sha256"
+CONFIG_IMA_DEFAULT_HASH_SHA256=y
+# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
+CONFIG_IMA_DEFAULT_TEMPLATE="ima-ng"
+CONFIG_IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY=y
+CONFIG_IMA_LSM_RULES=y
+CONFIG_IMA_MEASURE_ASYMMETRIC_KEYS=y
+CONFIG_IMA_MEASURE_PCR_IDX=10
+CONFIG_IMA_NG_TEMPLATE=y
+CONFIG_IMA_QUEUE_EARLY_BOOT_KEYS=y
+CONFIG_IMA_READ_POLICY=y
+CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT=y
+# CONFIG_IMA_SIG_TEMPLATE is not set
+# CONFIG_IMA_TEMPLATE is not set
+# CONFIG_IMA_TRUSTED_KEYRING is not set
+CONFIG_IMA_WRITE_POLICY=y
+CONFIG_IMA=y
+# CONFIG_IMG_ASCII_LCD is not set
+# CONFIG_INA2XX_ADC is not set
+CONFIG_INET6_AH=m
+# CONFIG_INET6_ESPINTCP is not set
+CONFIG_INET6_ESP=m
+CONFIG_INET6_ESP_OFFLOAD=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET_AH=m
+CONFIG_INET_DIAG_DESTROY=y
+CONFIG_INET_DIAG=m
+# CONFIG_INET_ESPINTCP is not set
+CONFIG_INET_ESP=m
+CONFIG_INET_ESP_OFFLOAD=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_MPTCP_DIAG=m
+CONFIG_INET_RAW_DIAG=m
+CONFIG_INET_SCTP_DIAG=m
+CONFIG_INET_TCP_DIAG=m
+CONFIG_INET_TUNNEL=m
+CONFIG_INET_UDP_DIAG=m
+CONFIG_INET_XFRM_TUNNEL=m
CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
+CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS=y
+CONFIG_INFINIBAND_ADDR_TRANS=y
+CONFIG_INFINIBAND_CXGB3=m
+CONFIG_INFINIBAND_CXGB4=m
+# CONFIG_INFINIBAND_EXP_LEGACY_VERBS_NEW_UAPI is not set
+CONFIG_INFINIBAND_I40IW=m
+CONFIG_INFINIBAND_IPOIB_CM=y
+CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y
+CONFIG_INFINIBAND_IPOIB_DEBUG=y
+CONFIG_INFINIBAND_IPOIB=m
+CONFIG_INFINIBAND_ISER=m
+CONFIG_INFINIBAND_ISERT=m
+CONFIG_INFINIBAND=m
+CONFIG_INFINIBAND_MTHCA_DEBUG=y
+CONFIG_INFINIBAND_MTHCA=m
+CONFIG_INFINIBAND_OCRDMA=m
+CONFIG_INFINIBAND_ON_DEMAND_PAGING=y
+CONFIG_INFINIBAND_RTRS_CLIENT=m
+CONFIG_INFINIBAND_RTRS=m
+CONFIG_INFINIBAND_RTRS_SERVER=m
+CONFIG_INFINIBAND_SRP=m
+CONFIG_INFINIBAND_SRPT=m
+CONFIG_INFINIBAND_USER_ACCESS=m
+CONFIG_INFINIBAND_USER_MAD=m
+CONFIG_INFINIBAND_USER_MEM=y
+CONFIG_INFINIBAND_USNIC=m
+CONFIG_INFINIBAND_VIRT_DMA=y
+CONFIG_INFINIBAND_VMWARE_PVRDMA=m
+# CONFIG_INFTL is not set
+CONFIG_INIT_ENV_ARG_LIMIT=32
+# CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set
+# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_INIT_STACK_NONE=y
+CONFIG_INLINE_READ_UNLOCK_IRQ=y
+CONFIG_INLINE_READ_UNLOCK=y
+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
+CONFIG_INLINE_WRITE_UNLOCK=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_INPUT_AD714X is not set
+# CONFIG_INPUT_ADXL34X is not set
+CONFIG_INPUT_APANEL=m
+CONFIG_INPUT_ATI_REMOTE2=m
+CONFIG_INPUT_ATLAS_BTNS=m
+# CONFIG_INPUT_BMA150 is not set
+CONFIG_INPUT_CM109=m
+CONFIG_INPUT_CMA3000_I2C=m
+CONFIG_INPUT_CMA3000=m
+# CONFIG_INPUT_DA7280_HAPTICS is not set
+# CONFIG_INPUT_DRV260X_HAPTICS is not set
+# CONFIG_INPUT_DRV2665_HAPTICS is not set
+# CONFIG_INPUT_DRV2667_HAPTICS is not set
+CONFIG_INPUT_E3X0_BUTTON=m
+# CONFIG_INPUT_EVBUG is not set
+CONFIG_INPUT_EVDEV=y
+CONFIG_INPUT_FF_MEMLESS=m
+CONFIG_INPUT_GP2A=m
+# CONFIG_INPUT_GPIO_BEEPER is not set
+# CONFIG_INPUT_GPIO_DECODER is not set
+CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
+CONFIG_INPUT_GPIO_VIBRA=m
+CONFIG_INPUT_IDEAPAD_SLIDEBAR=m
+# CONFIG_INPUT_IMS_PCU is not set
+# CONFIG_INPUT_IQS269A is not set
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_INPUT_KEYSPAN_REMOTE=m
+CONFIG_INPUT_KXTJ9=m
+# CONFIG_INPUT_KXTJ9_POLLED_MODE is not set
+CONFIG_INPUT_LEDS=y
+CONFIG_INPUT_MATRIXKMAP=m
+CONFIG_INPUT_MISC=y
+# CONFIG_INPUT_MMA8450 is not set
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSE=y
+# CONFIG_INPUT_MSM_VIBRATOR is not set
+# CONFIG_INPUT_PCF8574 is not set
+CONFIG_INPUT_PCSPKR=m
+CONFIG_INPUT_POLLDEV=m
+CONFIG_INPUT_POWERMATE=m
+CONFIG_INPUT_PWM_BEEPER=m
+# CONFIG_INPUT_PWM_VIBRA is not set
+# CONFIG_INPUT_REGULATOR_HAPTIC is not set
+CONFIG_INPUT_SOC_BUTTON_ARRAY=m
+CONFIG_INPUT_SPARSEKMAP=m
+CONFIG_INPUT_TABLET=y
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_INPUT_UINPUT=m
+CONFIG_INPUT=y
+CONFIG_INPUT_YEALINK=m
+CONFIG_INSTRUCTION_DECODER=y
+CONFIG_INT3406_THERMAL=m
+CONFIG_INT340X_THERMAL=m
+CONFIG_INTEGRITY_ASYMMETRIC_KEYS=y
+CONFIG_INTEGRITY_AUDIT=y
+CONFIG_INTEGRITY_PLATFORM_KEYRING=y
+CONFIG_INTEGRITY_SIGNATURE=y
+CONFIG_INTEGRITY_TRUSTED_KEYRING=y
+CONFIG_INTEGRITY=y
+# CONFIG_INTEL_ATOMISP2_LED is not set
+CONFIG_INTEL_ATOMISP2_PM=m
+# CONFIG_INTEL_ATOMISP is not set
+CONFIG_INTEL_BXT_PMIC_THERMAL=m
+CONFIG_INTEL_BXTWC_PMIC_TMU=m
+CONFIG_INTEL_CHTDC_TI_PWRBTN=m
+CONFIG_INTEL_GTT=y
+CONFIG_INTEL_HID_EVENT=m
+CONFIG_INTEL_IDLE=y
+CONFIG_INTEL_IDMA64=m
+CONFIG_INTEL_IDXD=m
+CONFIG_INTEL_IDXD_SVM=y
+CONFIG_INTEL_INT0002_VGPIO=m
+# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
+CONFIG_INTEL_IOMMU_FLOPPY_WA=y
+# CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON is not set
+CONFIG_INTEL_IOMMU_SVM=y
+CONFIG_INTEL_IOMMU=y
+CONFIG_INTEL_IPS=m
+CONFIG_INTEL_MEI_HDCP=m
+CONFIG_INTEL_MEI=m
+CONFIG_INTEL_MEI_ME=m
+CONFIG_INTEL_MEI_TXE=m
+CONFIG_INTEL_MEI_WDT=m
+# CONFIG_INTEL_MENLOW is not set
+CONFIG_INTEL_OAKTRAIL=m
+CONFIG_INTEL_PCH_THERMAL=m
+CONFIG_INTEL_PMC_CORE=m
+CONFIG_INTEL_PMC_IPC=y
+# CONFIG_INTEL_PMT_CLASS is not set
+# CONFIG_INTEL_PMT_CRASHLOG is not set
+# CONFIG_INTEL_PMT_TELEMETRY is not set
+CONFIG_INTEL_POWERCLAMP=m
+CONFIG_INTEL_PUNIT_IPC=m
+CONFIG_INTEL_RAPL_CORE=m
+CONFIG_INTEL_RAPL=m
+CONFIG_INTEL_RST=m
+# CONFIG_INTEL_SCU_PCI is not set
+# CONFIG_INTEL_SCU_PLATFORM is not set
+CONFIG_INTEL_SMARTCONNECT=y
+CONFIG_INTEL_SOC_DTS_IOSF_CORE=m
+CONFIG_INTEL_SOC_DTS_THERMAL=m
+CONFIG_INTEL_SOC_PMIC_BXTWC=m
+CONFIG_INTEL_SOC_PMIC_CHTDC_TI=m
+CONFIG_INTEL_TH_ACPI=m
+# CONFIG_INTEL_TH_DEBUG is not set
+CONFIG_INTEL_TH_GTH=m
+CONFIG_INTEL_TH=m
+CONFIG_INTEL_TH_MSU=m
+CONFIG_INTEL_TH_PCI=m
+CONFIG_INTEL_TH_PTI=m
+CONFIG_INTEL_TXT=y
+# CONFIG_INTEL_UNCORE_FREQ_CONTROL is not set
+CONFIG_INTEL_VBTN=m
+# CONFIG_INTEL_WMI_SBL_FW_UPDATE is not set
+CONFIG_INTEL_WMI_THUNDERBOLT=m
+CONFIG_INTEL_XWAY_PHY=m
+# CONFIG_INTERCONNECT is not set
+# CONFIG_INTERVAL_TREE_TEST is not set
+CONFIG_INTERVAL_TREE=y
+# CONFIG_INV_ICM42600_I2C is not set
+# CONFIG_INV_ICM42600_SPI is not set
+CONFIG_INV_MPU6050_I2C=m
+CONFIG_INV_MPU6050_IIO=m
+# CONFIG_INV_MPU6050_SPI is not set
+CONFIG_IOASID=y
+CONFIG_IO_DELAY_0X80=y
+# CONFIG_IO_DELAY_0XED is not set
+# CONFIG_IO_DELAY_NONE is not set
+# CONFIG_IO_DELAY_UDELAY is not set
+CONFIG_IOMMU_API=y
+# CONFIG_IOMMU_DEBUGFS is not set
+# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
+CONFIG_IOMMU_DMA=y
+CONFIG_IOMMU_IOVA=y
+CONFIG_IOMMU_SUPPORT=y
+CONFIG_IOSCHED_BFQ=y
+# CONFIG_IOSF_MBI_DEBUG is not set
+CONFIG_IOSF_MBI=y
+CONFIG_IO_STRICT_DEVMEM=y
+CONFIG_IO_URING=y
+CONFIG_IO_WQ=y
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_RPFILTER=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_SRH=m
+CONFIG_IP6_NF_NAT=m
+CONFIG_IP6_NF_RAW=m
+CONFIG_IP6_NF_SECURITY=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_TARGET_MASQUERADE=m
+CONFIG_IP6_NF_TARGET_NPT=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_TARGET_SYNPROXY=m
+# CONFIG_IPACK_BUS is not set
CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IPC_NS=y
+# CONFIG_IP_DCCP is not set
+CONFIG_IPDDP_ENCAP=y
+CONFIG_IPDDP=m
CONFIG_IP_FIB_TRIE_STATS=y
-CONFIG_IP_MULTIPLE_TABLES=y
-CONFIG_IP_ROUTE_MULTIPATH=y
-CONFIG_IP_ROUTE_VERBOSE=y
-CONFIG_IP_ROUTE_CLASSID=y
-# CONFIG_IP_PNP is not set
-CONFIG_NET_IPIP=m
-CONFIG_NET_IPGRE_DEMUX=m
-CONFIG_NET_IP_TUNNEL=m
-CONFIG_NET_IPGRE=m
-CONFIG_NET_IPGRE_BROADCAST=y
-CONFIG_IP_MROUTE=y
+# CONFIG_IPMB_DEVICE_INTERFACE is not set
+CONFIG_IPMI_DEVICE_INTERFACE=m
+CONFIG_IPMI_DMI_DECODE=y
+CONFIG_IPMI_HANDLER=m
+# CONFIG_IPMI_PANIC_EVENT is not set
+CONFIG_IPMI_PLAT_DATA=y
+CONFIG_IPMI_POWEROFF=m
+CONFIG_IPMI_SI=m
+CONFIG_IPMI_SSIF=m
+CONFIG_IPMI_WATCHDOG=m
+CONFIG_IP_MROUTE_COMMON=y
CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
+CONFIG_IP_MROUTE=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_RPFILTER=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_SECURITY=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_SYNPROXY=m
+CONFIG_IP_NF_TARGET_TTL=m
CONFIG_IP_PIMSM_V1=y
CONFIG_IP_PIMSM_V2=y
-CONFIG_SYN_COOKIES=y
-CONFIG_NET_IPVTI=m
-CONFIG_INET_AH=m
-CONFIG_INET_ESP=m
-CONFIG_INET_IPCOMP=m
-CONFIG_INET_XFRM_TUNNEL=m
-CONFIG_INET_TUNNEL=m
-CONFIG_INET_XFRM_MODE_TRANSPORT=m
-CONFIG_INET_XFRM_MODE_TUNNEL=m
-CONFIG_INET_XFRM_MODE_BEET=m
-CONFIG_INET_LRO=y
-CONFIG_INET_DIAG=m
-CONFIG_INET_UDP_DIAG=m
-CONFIG_TCP_CONG_ADVANCED=y
-CONFIG_TCP_CONG_BIC=m
-CONFIG_TCP_CONG_CUBIC=y
-CONFIG_TCP_CONG_WESTWOOD=m
-CONFIG_TCP_CONG_HTCP=m
-CONFIG_TCP_CONG_HSTCP=m
-CONFIG_TCP_CONG_HYBLA=m
-CONFIG_TCP_CONG_VEGAS=m
-CONFIG_TCP_CONG_SCALABLE=m
-CONFIG_TCP_CONG_LP=m
-CONFIG_TCP_CONG_VENO=m
-CONFIG_TCP_CONG_YEAH=m
-CONFIG_TCP_CONG_ILLINOIS=m
-CONFIG_DEFAULT_CUBIC=y
-# CONFIG_DEFAULT_RENO is not set
-CONFIG_DEFAULT_TCP_CONG="cubic"
-CONFIG_TCP_MD5SIG=y
-CONFIG_IPV6=y
-CONFIG_IPV6_ROUTER_PREF=y
-CONFIG_IPV6_ROUTE_INFO=y
-CONFIG_IPV6_OPTIMISTIC_DAD=y
-CONFIG_INET6_AH=m
-CONFIG_INET6_ESP=m
-CONFIG_INET6_IPCOMP=m
+# CONFIG_IP_PNP is not set
+CONFIG_IP_ROUTE_CLASSID=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_SCTP=m
+CONFIG_IP_SET_BITMAP_IP=m
+CONFIG_IP_SET_BITMAP_IPMAC=m
+CONFIG_IP_SET_BITMAP_PORT=m
+CONFIG_IP_SET_HASH_IP=m
+CONFIG_IP_SET_HASH_IPMAC=m
+CONFIG_IP_SET_HASH_IPMARK=m
+CONFIG_IP_SET_HASH_IPPORTIP=m
+CONFIG_IP_SET_HASH_IPPORT=m
+CONFIG_IP_SET_HASH_IPPORTNET=m
+CONFIG_IP_SET_HASH_MAC=m
+CONFIG_IP_SET_HASH_NETIFACE=m
+CONFIG_IP_SET_HASH_NET=m
+CONFIG_IP_SET_HASH_NETNET=m
+CONFIG_IP_SET_HASH_NETPORT=m
+CONFIG_IP_SET_HASH_NETPORTNET=m
+CONFIG_IP_SET_LIST_SET=m
+CONFIG_IP_SET=m
+CONFIG_IP_SET_MAX=256
+CONFIG_IPV6_FOU=m
+CONFIG_IPV6_FOU_TUNNEL=m
+CONFIG_IPV6_GRE=m
+CONFIG_IPV6_ILA=m
+CONFIG_IPV6=m
CONFIG_IPV6_MIP6=m
-CONFIG_INET6_XFRM_TUNNEL=m
-CONFIG_INET6_TUNNEL=m
-CONFIG_INET6_XFRM_MODE_TRANSPORT=m
-CONFIG_INET6_XFRM_MODE_TUNNEL=m
-CONFIG_INET6_XFRM_MODE_BEET=m
-CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
-CONFIG_IPV6_SIT=m
-CONFIG_IPV6_SIT_6RD=y
-CONFIG_IPV6_NDISC_NODETYPE=y
-CONFIG_IPV6_TUNNEL=m
-# CONFIG_IPV6_GRE is not set
-CONFIG_IPV6_MULTIPLE_TABLES=y
-# CONFIG_IPV6_SUBTREES is not set
-CONFIG_IPV6_MROUTE=y
CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
+CONFIG_IPV6_MROUTE=y
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_IPV6_NDISC_NODETYPE=y
+CONFIG_IPV6_OPTIMISTIC_DAD=y
CONFIG_IPV6_PIMSM_V2=y
-CONFIG_NETLABEL=y
-CONFIG_NETWORK_SECMARK=y
-CONFIG_NETWORK_PHY_TIMESTAMPING=y
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_DEBUG is not set
-CONFIG_NETFILTER_ADVANCED=y
-CONFIG_BRIDGE_NETFILTER=y
-
-CONFIG_NETCONSOLE=m
-CONFIG_NETCONSOLE_DYNAMIC=y
-CONFIG_NETPOLL_TRAP=y
-CONFIG_NET_POLL_CONTROLLER=y
-
-#
-# IP: Virtual Server Configuration
-#
-CONFIG_IP_VS=m
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_IPV6_ROUTER_PREF=y
+# CONFIG_IPV6_RPL_LWTUNNEL is not set
+CONFIG_IPV6_SEG6_BPF=y
+CONFIG_IPV6_SEG6_HMAC=y
+CONFIG_IPV6_SEG6_LWTUNNEL=y
+CONFIG_IPV6_SIT_6RD=y
+CONFIG_IPV6_SIT=m
+CONFIG_IPV6_SUBTREES=y
+CONFIG_IPV6_TUNNEL=m
+CONFIG_IPV6_VTI=m
+CONFIG_IPVLAN_L3S=y
+CONFIG_IPVLAN=m
# CONFIG_IP_VS_DEBUG is not set
-CONFIG_IP_VS_TAB_BITS=12
+CONFIG_IP_VS_DH=m
+CONFIG_IP_VS_FO=m
+CONFIG_IP_VS_FTP=m
+CONFIG_IP_VS_IPV6=y
+CONFIG_IP_VS_LBLC=m
+CONFIG_IP_VS_LBLCR=m
+CONFIG_IP_VS_LC=m
+CONFIG_IP_VS=m
+CONFIG_IP_VS_MH=m
+CONFIG_IP_VS_MH_TAB_INDEX=12
+CONFIG_IP_VS_NFCT=y
+CONFIG_IP_VS_NQ=m
+CONFIG_IP_VS_OVF=m
+CONFIG_IP_VS_PE_SIP=m
+CONFIG_IP_VS_PROTO_AH_ESP=y
+CONFIG_IP_VS_PROTO_AH=y
+CONFIG_IP_VS_PROTO_ESP=y
+CONFIG_IP_VS_PROTO_SCTP=y
CONFIG_IP_VS_PROTO_TCP=y
CONFIG_IP_VS_PROTO_UDP=y
-CONFIG_IP_VS_PROTO_ESP=y
-CONFIG_IP_VS_PROTO_AH=y
CONFIG_IP_VS_RR=m
-CONFIG_IP_VS_WRR=m
-CONFIG_IP_VS_LC=m
-CONFIG_IP_VS_WLC=m
-CONFIG_IP_VS_LBLC=m
-CONFIG_IP_VS_LBLCR=m
-CONFIG_IP_VS_DH=m
-CONFIG_IP_VS_SH=m
CONFIG_IP_VS_SED=m
-CONFIG_IP_VS_NQ=m
-CONFIG_IP_VS_FTP=m
-
-CONFIG_IPV6=m
-CONFIG_IPV6_PRIVACY=y
-CONFIG_IPV6_ROUTER_PREF=y
-CONFIG_IPV6_ROUTE_INFO=y
-CONFIG_IPV6_OPTIMISTIC_DAD=y
-CONFIG_INET6_AH=m
-CONFIG_INET6_ESP=m
-CONFIG_INET6_IPCOMP=m
-CONFIG_IPV6_MIP6=m
-CONFIG_IPV6_SIT=m
-CONFIG_IPV6_TUNNEL=m
-# CONFIG_IPV6_SUBTREES is not set
-CONFIG_IPV6_MULTIPLE_TABLES=y
-CONFIG_IPV6_MROUTE=y
-CONFIG_IPV6_PIMSM_V2=y
-
-CONFIG_RDS=m
-# CONFIG_RDS_DEBUG is not set
-CONFIG_RDS_RDMA=m
-CONFIG_RDS_TCP=m
-
-CONFIG_NET_9P=m
-CONFIG_NET_9P_FD=m
-CONFIG_NET_9P_VIRTIO=m
+CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_SH_TAB_BITS=8
+CONFIG_IP_VS_TAB_BITS=12
+CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_WRR=m
+CONFIG_IPVTAP=m
+# CONFIG_IPW2100_DEBUG is not set
+CONFIG_IPW2100=m
+CONFIG_IPW2100_MONITOR=y
+# CONFIG_IPW2200_DEBUG is not set
+CONFIG_IPW2200=m
+CONFIG_IPW2200_MONITOR=y
+CONFIG_IPW2200_PROMISCUOUS=y
+CONFIG_IPW2200_QOS=y
+CONFIG_IPW2200_RADIOTAP=y
+CONFIG_IPWIRELESS=m
+CONFIG_IR_ENE=m
+CONFIG_IR_FINTEK=m
+CONFIG_IR_IGORPLUGUSB=m
+CONFIG_IR_IGUANA=m
+CONFIG_IR_IMON_DECODER=m
+CONFIG_IR_IMON=m
+CONFIG_IR_IMON_RAW=m
+CONFIG_IR_ITE_CIR=m
+CONFIG_IR_JVC_DECODER=m
+CONFIG_IR_MCE_KBD_DECODER=m
+CONFIG_IR_MCEUSB=m
+CONFIG_IR_NEC_DECODER=m
+CONFIG_IR_NUVOTON=m
+CONFIG_IRQ_BYPASS_MANAGER=m
+CONFIG_IRQ_DOMAIN_HIERARCHY=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_IRQ_FORCED_THREADING=y
+CONFIG_IRQ_MSI_IOMMU=y
+CONFIG_IRQ_POLL=y
+# CONFIG_IRQSOFF_TRACER is not set
+CONFIG_IRQ_TIME_ACCOUNTING=y
+CONFIG_IRQ_WORK=y
+CONFIG_IR_RC5_DECODER=m
+CONFIG_IR_RC6_DECODER=m
+CONFIG_IR_RCMM_DECODER=m
+CONFIG_IR_REDRAT3=m
+CONFIG_IR_SANYO_DECODER=m
+CONFIG_IR_SERIAL=m
+CONFIG_IR_SERIAL_TRANSMITTER=y
+CONFIG_IR_SHARP_DECODER=m
+# CONFIG_IR_SIR is not set
+CONFIG_IR_SONY_DECODER=m
+CONFIG_IR_STREAMZAP=m
+# CONFIG_IR_TOY is not set
+CONFIG_IR_TTUSBIR=m
+CONFIG_IR_WINBOND_CIR=m
+CONFIG_IR_XMP_DECODER=m
+CONFIG_ISA_DMA_API=y
+CONFIG_ISCSI_BOOT_SYSFS=m
+CONFIG_ISCSI_IBFT_FIND=y
+CONFIG_ISCSI_IBFT=m
+CONFIG_ISCSI_TARGET_CXGB4=m
+CONFIG_ISCSI_TARGET=m
+CONFIG_ISCSI_TCP=m
+# CONFIG_ISDN is not set
+# CONFIG_ISI is not set
+CONFIG_ISL29003=m
+CONFIG_ISL29020=m
+# CONFIG_ISL29125 is not set
+# CONFIG_ISL29501 is not set
+CONFIG_ISO9660_FS=m
+CONFIG_IT8712F_WDT=m
+CONFIG_IT87_WDT=m
+CONFIG_ITCO_VENDOR_SUPPORT=y
+CONFIG_ITCO_WDT=m
+# CONFIG_ITG3200 is not set
+CONFIG_IWL3945=m
+CONFIG_IWL4965=m
+CONFIG_IWLDVM=m
+CONFIG_IWLEGACY_DEBUGFS=y
+CONFIG_IWLEGACY_DEBUG=y
+CONFIG_IWLEGACY=m
+CONFIG_IWLMVM=m
+# CONFIG_IWLWIFI_BCAST_FILTERING is not set
+CONFIG_IWLWIFI_DEBUGFS=y
+CONFIG_IWLWIFI_DEBUG=y
+# CONFIG_IWLWIFI_DEVICE_TRACING is not set
+CONFIG_IWLWIFI_LEDS=y
+CONFIG_IWLWIFI=m
+CONFIG_IWLWIFI_OPMODE_MODULAR=y
+CONFIG_IXGBE_DCB=y
+CONFIG_IXGBE_HWMON=y
+CONFIG_IXGBE_IPSEC=y
+CONFIG_IXGBE=m
+CONFIG_IXGBEVF_IPSEC=y
+CONFIG_IXGBEVF=m
+CONFIG_IXGB=m
+# CONFIG_JBD2_DEBUG is not set
+CONFIG_JBD2=m
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS=m
+CONFIG_JFFS2_FS_POSIX_ACL=y
+CONFIG_JFFS2_FS_SECURITY=y
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+CONFIG_JFFS2_FS_XATTR=y
+CONFIG_JFFS2_RTIME=y
+CONFIG_JFFS2_SUMMARY=y
+CONFIG_JFFS2_ZLIB=y
+# CONFIG_JFS_DEBUG is not set
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+CONFIG_JFS_STATISTICS=y
+CONFIG_JME=m
+CONFIG_JOLIET=y
+CONFIG_JOYSTICK_A3D=m
+# CONFIG_JOYSTICK_ADC is not set
+CONFIG_JOYSTICK_ADI=m
+CONFIG_JOYSTICK_ANALOG=m
+# CONFIG_JOYSTICK_AS5011 is not set
+CONFIG_JOYSTICK_COBRA=m
+CONFIG_JOYSTICK_DB9=m
+# CONFIG_JOYSTICK_FSIA6B is not set
+CONFIG_JOYSTICK_GAMECON=m
+CONFIG_JOYSTICK_GF2K=m
+CONFIG_JOYSTICK_GRIP=m
+CONFIG_JOYSTICK_GRIP_MP=m
+CONFIG_JOYSTICK_GUILLEMOT=m
+CONFIG_JOYSTICK_IFORCE_232=m
+CONFIG_JOYSTICK_IFORCE=m
+CONFIG_JOYSTICK_IFORCE_USB=m
+CONFIG_JOYSTICK_INTERACT=m
+CONFIG_JOYSTICK_JOYDUMP=m
+CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
+CONFIG_JOYSTICK_PSXPAD_SPI=m
+CONFIG_JOYSTICK_PXRC=m
+CONFIG_JOYSTICK_SIDEWINDER=m
+CONFIG_JOYSTICK_SPACEBALL=m
+CONFIG_JOYSTICK_SPACEORB=m
+CONFIG_JOYSTICK_STINGER=m
+CONFIG_JOYSTICK_TMDC=m
+CONFIG_JOYSTICK_TURBOGRAFX=m
+CONFIG_JOYSTICK_TWIDJOY=m
+CONFIG_JOYSTICK_WALKERA0701=m
+CONFIG_JOYSTICK_WARRIOR=m
+CONFIG_JOYSTICK_XPAD_FF=y
+CONFIG_JOYSTICK_XPAD_LEDS=y
+CONFIG_JOYSTICK_XPAD=m
+CONFIG_JOYSTICK_ZHENHUA=m
+# CONFIG_JSA1212 is not set
+CONFIG_JUMP_LABEL=y
+CONFIG_KALLSYMS_ALL=y
+CONFIG_KALLSYMS_BASE_RELATIVE=y
+CONFIG_KALLSYMS=y
+CONFIG_KARMA_PARTITION=y
+CONFIG_KASAN_STACK=1
+# CONFIG_KERNEL_BZIP2 is not set
+CONFIG_KERNEL_GZIP=y
+# CONFIG_KERNEL_LZ4 is not set
+# CONFIG_KERNEL_LZMA is not set
+# CONFIG_KERNEL_LZO is not set
+# CONFIG_KERNEL_XZ is not set
+# CONFIG_KERNEL_ZSTD is not set
+CONFIG_KERNFS=y
+CONFIG_KEXEC_CORE=y
+CONFIG_KEXEC_JUMP=y
+CONFIG_KEXEC=y
+# CONFIG_KEYBOARD_ADC is not set
+# CONFIG_KEYBOARD_ADP5588 is not set
+# CONFIG_KEYBOARD_ADP5589 is not set
+CONFIG_KEYBOARD_ATKBD=y
+# CONFIG_KEYBOARD_DLINK_DIR685 is not set
+CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_GPIO_POLLED=m
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_LM8323 is not set
+# CONFIG_KEYBOARD_LM8333 is not set
+# CONFIG_KEYBOARD_MATRIX is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
+# CONFIG_KEYBOARD_MCS is not set
+# CONFIG_KEYBOARD_MPR121 is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
+CONFIG_KEYBOARD_QT1050=m
+CONFIG_KEYBOARD_QT1070=m
+# CONFIG_KEYBOARD_QT2160 is not set
+# CONFIG_KEYBOARD_SAMSUNG is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_TCA6416 is not set
+# CONFIG_KEYBOARD_TCA8418 is not set
+CONFIG_KEYBOARD_TM2_TOUCHKEY=m
+# CONFIG_KEYBOARD_XTKBD is not set
+CONFIG_KEY_DH_OPERATIONS=y
+CONFIG_KEY_NOTIFICATIONS=y
+CONFIG_KEYS_REQUEST_CACHE=y
+CONFIG_KEYS=y
+CONFIG_KGDB_HONOUR_BLOCKLIST=y
+# CONFIG_KGDB_KDB is not set
+CONFIG_KGDB_LOW_LEVEL_TRAP=y
+CONFIG_KGDB_SERIAL_CONSOLE=y
+# CONFIG_KGDB_TESTS_ON_BOOT is not set
+CONFIG_KGDB_TESTS=y
+CONFIG_KGDB=y
+# CONFIG_KMX61 is not set
+# CONFIG_KPC2000 is not set
+# CONFIG_KPROBE_EVENT_GEN_TEST is not set
+# CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set
+CONFIG_KPROBE_EVENTS=y
+CONFIG_KPROBES_ON_FTRACE=y
+# CONFIG_KPROBES_SANITY_TEST is not set
+CONFIG_KPROBES=y
+CONFIG_KRETPROBES=y
+CONFIG_KS0108_DELAY=2
+CONFIG_KS0108=m
+CONFIG_KS0108_PORT=0x378
+# CONFIG_KS7010 is not set
+# CONFIG_KS8842 is not set
+# CONFIG_KS8851 is not set
+# CONFIG_KS8851_MLL is not set
+CONFIG_KSM=y
+CONFIG_KSZ884X_PCI=m
+# CONFIG_KUNIT is not set
+CONFIG_KVM_AMD=m
+CONFIG_KVM_ASYNC_PF=y
+# CONFIG_KVM_DEBUG_FS is not set
+CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
+CONFIG_KVM_GUEST=y
+CONFIG_KVM_INTEL=m
+CONFIG_KVM=m
+CONFIG_KVM_MMIO=y
+CONFIG_KVM_MMU_AUDIT=y
+CONFIG_KVM_VFIO=y
+CONFIG_KVM_XFER_TO_GUEST_WORK=y
+CONFIG_KXCJK1013=m
+# CONFIG_KXSD9 is not set
+CONFIG_L2TP_DEBUGFS=m
+CONFIG_L2TP_ETH=m
+CONFIG_L2TP_IP=m
+CONFIG_L2TP=m
+CONFIG_L2TP_V3=y
+# CONFIG_LAPB is not set
+CONFIG_LATENCYTOP=y
+# CONFIG_LATTICE_ECP3_CONFIG is not set
+# CONFIG_LCD2S is not set
+# CONFIG_LCD_AMS369FG06 is not set
+CONFIG_LCD_CLASS_DEVICE=m
+# CONFIG_LCD_HX8357 is not set
+# CONFIG_LCD_ILI922X is not set
+# CONFIG_LCD_ILI9320 is not set
+# CONFIG_LCD_L4F00242T03 is not set
+# CONFIG_LCD_LMS283GF05 is not set
+# CONFIG_LCD_LMS501KF03 is not set
+# CONFIG_LCD_LTV350QV is not set
+# CONFIG_LCD_OTM3225A is not set
+CONFIG_LCD_PLATFORM=m
+# CONFIG_LCD_TDO24M is not set
+# CONFIG_LCD_VGG2432A4 is not set
+CONFIG_LDISC_AUTOLOAD=y
+# CONFIG_LDM_DEBUG is not set
+CONFIG_LDM_PARTITION=y
+CONFIG_LD_ORPHAN_WARN=y
+CONFIG_LD_VERSION=235020000
+CONFIG_LEDS_APU=m
+CONFIG_LEDS_AS3645A=m
+# CONFIG_LEDS_BD2802 is not set
+CONFIG_LEDS_BLINKM=m
+CONFIG_LEDS_BRIGHTNESS_HW_CHANGED=y
+CONFIG_LEDS_CLASS_FLASH=m
+# CONFIG_LEDS_CLASS_MULTICOLOR is not set
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_CLEVO_MAIL=m
+# CONFIG_LEDS_DAC124S085 is not set
+CONFIG_LEDS_GPIO=m
+CONFIG_LEDS_INTEL_SS4200=m
+CONFIG_LEDS_LM3530=m
+CONFIG_LEDS_LM3532=m
+# CONFIG_LEDS_LM355x is not set
+CONFIG_LEDS_LM3601X=m
+# CONFIG_LEDS_LM3642 is not set
+CONFIG_LEDS_LP3944=m
+CONFIG_LEDS_LP3952=m
+# CONFIG_LEDS_LP50XX is not set
+# CONFIG_LEDS_LP5521 is not set
+# CONFIG_LEDS_LP5523 is not set
+# CONFIG_LEDS_LP5562 is not set
+# CONFIG_LEDS_LP8501 is not set
+CONFIG_LEDS_MLXCPLD=m
+CONFIG_LEDS_MLXREG=m
+CONFIG_LEDS_NIC78BX=m
+CONFIG_LEDS_PCA9532_GPIO=y
+CONFIG_LEDS_PCA9532=m
+# CONFIG_LEDS_PCA955X is not set
+# CONFIG_LEDS_PCA963X is not set
+# CONFIG_LEDS_PWM is not set
+# CONFIG_LEDS_REGULATOR is not set
+# CONFIG_LEDS_RT8515 is not set
+# CONFIG_LEDS_SGM3140 is not set
+# CONFIG_LEDS_TCA6507 is not set
+# CONFIG_LEDS_TI_LMU_COMMON is not set
+# CONFIG_LEDS_TLC591XX is not set
+CONFIG_LEDS_TRIGGER_ACTIVITY=m
+CONFIG_LEDS_TRIGGER_AUDIO=m
+CONFIG_LEDS_TRIGGER_BACKLIGHT=m
+CONFIG_LEDS_TRIGGER_CAMERA=m
+# CONFIG_LEDS_TRIGGER_CPU is not set
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
+CONFIG_LEDS_TRIGGER_DISK=y
+CONFIG_LEDS_TRIGGER_GPIO=m
+CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+CONFIG_LEDS_TRIGGER_MTD=y
+CONFIG_LEDS_TRIGGER_NETDEV=m
+CONFIG_LEDS_TRIGGER_ONESHOT=m
+CONFIG_LEDS_TRIGGER_PANIC=y
+CONFIG_LEDS_TRIGGER_PATTERN=m
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_TIMER=m
+CONFIG_LEDS_TRIGGER_TRANSIENT=m
+CONFIG_LEDS_USER=m
+CONFIG_LED_TRIGGER_PHY=y
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_LG_LAPTOP=m
+CONFIG_LIB80211_CRYPT_CCMP=m
+CONFIG_LIB80211_CRYPT_TKIP=m
+CONFIG_LIB80211_CRYPT_WEP=m
+# CONFIG_LIB80211_DEBUG is not set
+CONFIG_LIB80211=m
+CONFIG_LIBCRC32C=m
+CONFIG_LIBERTAS_CS=m
+# CONFIG_LIBERTAS_DEBUG is not set
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_MESH=y
+CONFIG_LIBERTAS_SDIO=m
+# CONFIG_LIBERTAS_SPI is not set
+# CONFIG_LIBERTAS_THINFIRM is not set
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBFC=m
+CONFIG_LIBFCOE=m
+# CONFIG_LIBIPW_DEBUG is not set
+CONFIG_LIBIPW=m
+# CONFIG_LIDAR_LITE_V2 is not set
+CONFIG_LINEAR_RANGES=y
+CONFIG_LIRC=y
+# CONFIG_LKDTM is not set
+# CONFIG_LLC2 is not set
+CONFIG_LLC=m
+CONFIG_LLD_VERSION=0
+CONFIG_LMP91000=m
+CONFIG_LOAD_UEFI_KEYS=y
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_LOCK_DEBUGGING_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_LOCKD=m
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY is not set
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY is not set
+CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE=y
+CONFIG_LOCKD_V4=y
+# CONFIG_LOCK_EVENT_COUNTS is not set
+CONFIG_LOCK_SPIN_ON_OWNER=y
+# CONFIG_LOCK_STAT is not set
+# CONFIG_LOCK_TORTURE_TEST is not set
+CONFIG_LOCKUP_DETECTOR=y
+CONFIG_LOG_BUF_SHIFT=18
+CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
+CONFIG_LOGIG940_FF=y
+CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_LOGITECH_FF=y
+CONFIG_LOGIWHEELS_FF=y
+# CONFIG_LOGO is not set
+CONFIG_LOOPBACK_TARGET=m
+CONFIG_LPC_ICH=m
+CONFIG_LP_CONSOLE=y
+CONFIG_LPC_SCH=m
+CONFIG_LRU_CACHE=m
+CONFIG_LRU_GEN=y
+CONFIG_LRU_GEN_ENABLED=y
+CONFIG_LSI_ET1011C_PHY=m
+CONFIG_LSM_MMAP_MIN_ADDR=65536
+CONFIG_LSM="yama,loadpin,safesetid,integrity,selinux,smack,tomoyo,apparmor"
+CONFIG_LTC1660=m
+# CONFIG_LTC2471 is not set
+# CONFIG_LTC2485 is not set
+# CONFIG_LTC2496 is not set
+# CONFIG_LTC2497 is not set
+# CONFIG_LTC2632 is not set
+# CONFIG_LTC2983 is not set
+# CONFIG_LTE_GDM724X is not set
+# CONFIG_LTR501 is not set
+CONFIG_LV0104CS=m
+CONFIG_LWTUNNEL_BPF=y
+CONFIG_LWTUNNEL=y
+CONFIG_LXT_PHY=m
+CONFIG_LZ4_COMPRESS=y
+CONFIG_LZ4_DECOMPRESS=y
+CONFIG_LZ4HC_COMPRESS=m
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+# CONFIG_M62332 is not set
+CONFIG_MAC80211_DEBUGFS=y
+# CONFIG_MAC80211_DEBUG_MENU is not set
+CONFIG_MAC80211_HAS_RC=y
+CONFIG_MAC80211_HWSIM=m
+CONFIG_MAC80211_LEDS=y
+CONFIG_MAC80211=m
+CONFIG_MAC80211_MESH=y
+# CONFIG_MAC80211_MESSAGE_TRACING is not set
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_MINSTREL=y
+CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
+CONFIG_MAC802154=m
+CONFIG_MACB=m
+CONFIG_MACB_PCI=m
+CONFIG_MACB_USE_HWSTAMP=y
+CONFIG_MAC_EMUMOUSEBTN=m
+CONFIG_MACHZ_WDT=m
+CONFIG_MACINTOSH_DRIVERS=y
+CONFIG_MAC_PARTITION=y
+CONFIG_MACSEC=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+# CONFIG_MAG3110 is not set
+CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1
+CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE=""
+CONFIG_MAGIC_SYSRQ_SERIAL=y
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_MANAGER_SBS is not set
+# CONFIG_MANDATORY_FILE_LOCKING is not set
+CONFIG_MAPPING_DIRTY_HELPERS=y
+CONFIG_MARVELL_10G_PHY=m
+CONFIG_MARVELL_PHY=m
+# CONFIG_MATOM is not set
+# CONFIG_MAX1027 is not set
+# CONFIG_MAX11100 is not set
+# CONFIG_MAX1118 is not set
+CONFIG_MAX1241=m
+CONFIG_MAX1363=m
+CONFIG_MAX30100=m
+# CONFIG_MAX30102 is not set
+CONFIG_MAX31856=m
+# CONFIG_MAX44000 is not set
+CONFIG_MAX44009=m
+# CONFIG_MAX517 is not set
+# CONFIG_MAX5432 is not set
+# CONFIG_MAX5481 is not set
+# CONFIG_MAX5487 is not set
+# CONFIG_MAX63XX_WATCHDOG is not set
+# CONFIG_MAX9611 is not set
+CONFIG_MAXIM_THERMOCOUPLE=m
+CONFIG_MAX_RAW_DEVS=8192
+CONFIG_MB1232=m
+# CONFIG_MBARCELONA is not set
+# CONFIG_MBOBCAT is not set
+# CONFIG_MBROADWELL is not set
+# CONFIG_MBULLDOZER is not set
+# CONFIG_MC3230 is not set
+# CONFIG_MCANNONLAKE is not set
+# CONFIG_MCASCADELAKE is not set
+# CONFIG_MCB is not set
+# CONFIG_MCOOPERLAKE is not set
+# CONFIG_MCORE2 is not set
+# CONFIG_MCP320X is not set
+# CONFIG_MCP3422 is not set
+CONFIG_MCP3911=m
+CONFIG_MCP4018=m
+CONFIG_MCP41010=m
+# CONFIG_MCP4131 is not set
+# CONFIG_MCP4531 is not set
+# CONFIG_MCP4725 is not set
+# CONFIG_MCP4922 is not set
+# CONFIG_MD_CLUSTER is not set
+CONFIG_MD_FAULTY=m
+CONFIG_MDIO_BCM_UNIMAC=m
+CONFIG_MDIO_BITBANG=m
+CONFIG_MDIO_BUS=m
+CONFIG_MDIO_DEVICE=m
+CONFIG_MDIO_DEVRES=m
+# CONFIG_MDIO_GPIO is not set
+CONFIG_MDIO_I2C=m
+CONFIG_MDIO=m
+# CONFIG_MDIO_MSCC_MIIM is not set
+# CONFIG_MDIO_MVUSB is not set
+CONFIG_MD_LINEAR=m
+CONFIG_MD_MULTIPATH=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID456=m
+CONFIG_MD=y
+CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
+CONFIG_MEDIA_ATTACH=y
+CONFIG_MEDIA_CAMERA_SUPPORT=y
+CONFIG_MEDIA_CEC_RC=y
+CONFIG_MEDIA_CEC_SUPPORT=y
+CONFIG_MEDIA_COMMON_OPTIONS=y
+CONFIG_MEDIA_CONTROLLER_DVB=y
+CONFIG_MEDIA_CONTROLLER_REQUEST_API=y
+CONFIG_MEDIA_CONTROLLER=y
+CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
+CONFIG_MEDIA_HIDE_ANCILLARY_SUBDRV=y
+# CONFIG_MEDIA_PCI_SUPPORT is not set
+CONFIG_MEDIA_PLATFORM_SUPPORT=y
+CONFIG_MEDIA_RADIO_SUPPORT=y
+# CONFIG_MEDIA_SDR_SUPPORT is not set
+CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
+CONFIG_MEDIA_SUPPORT_FILTER=y
+CONFIG_MEDIA_SUPPORT=m
+# CONFIG_MEDIA_TEST_SUPPORT is not set
+CONFIG_MEDIA_TUNER_E4000=m
+CONFIG_MEDIA_TUNER_FC0011=m
+CONFIG_MEDIA_TUNER_FC0012=m
+CONFIG_MEDIA_TUNER_FC0013=m
+CONFIG_MEDIA_TUNER_FC2580=m
+CONFIG_MEDIA_TUNER_IT913X=m
+CONFIG_MEDIA_TUNER=m
+CONFIG_MEDIA_TUNER_MAX2165=m
+CONFIG_MEDIA_TUNER_MC44S803=m
+CONFIG_MEDIA_TUNER_MT2060=m
+CONFIG_MEDIA_TUNER_MT2063=m
+CONFIG_MEDIA_TUNER_MT20XX=m
+CONFIG_MEDIA_TUNER_MT2266=m
+CONFIG_MEDIA_TUNER_MXL5005S=m
+CONFIG_MEDIA_TUNER_MXL5007T=m
+CONFIG_MEDIA_TUNER_QM1D1C0042=m
+CONFIG_MEDIA_TUNER_QT1010=m
+CONFIG_MEDIA_TUNER_R820T=m
+CONFIG_MEDIA_TUNER_SI2157=m
+CONFIG_MEDIA_TUNER_SIMPLE=m
+CONFIG_MEDIA_TUNER_TDA18212=m
+CONFIG_MEDIA_TUNER_TDA18218=m
+CONFIG_MEDIA_TUNER_TDA18250=m
+CONFIG_MEDIA_TUNER_TDA18271=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA9887=m
+CONFIG_MEDIA_TUNER_TEA5761=m
+CONFIG_MEDIA_TUNER_TEA5767=m
+CONFIG_MEDIA_TUNER_TUA9001=m
+CONFIG_MEDIA_TUNER_XC2028=m
+CONFIG_MEDIA_TUNER_XC4000=m
+CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_USB_SUPPORT=y
+CONFIG_MEGARAID_LEGACY=m
+CONFIG_MEGARAID_MAILBOX=m
+CONFIG_MEGARAID_MM=m
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_SAS=m
+# CONFIG_MELLANOX_PLATFORM is not set
+CONFIG_MEMBARRIER=y
+CONFIG_MEMCG_KMEM=y
+# CONFIG_MEMCG_SWAP_ENABLED is not set
+CONFIG_MEMCG_SWAP=y
+CONFIG_MEMCG=y
+CONFIG_MEMFD_CREATE=y
+CONFIG_MEMORY_BALLOON=y
+CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=y
+CONFIG_MEMORY_HOTPLUG_SPARSE=y
+CONFIG_MEMORY_HOTPLUG=y
+CONFIG_MEMORY_HOTREMOVE=y
+# CONFIG_MEMORY is not set
+CONFIG_MEMORY_ISOLATION=y
+# CONFIG_MEMORY_NOTIFIER_ERROR_INJECT is not set
+CONFIG_MEMREGION=y
+# CONFIG_MEMSTICK_DEBUG is not set
+CONFIG_MEMSTICK_JMICRON_38X=m
+CONFIG_MEMSTICK=m
+CONFIG_MEMSTICK_R592=m
+CONFIG_MEMSTICK_REALTEK_PCI=m
+CONFIG_MEMSTICK_REALTEK_USB=m
+CONFIG_MEMSTICK_TIFM_MS=m
+# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
+CONFIG_MEMTEST=y
+# CONFIG_MEN_A21_WDT is not set
+CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
+# CONFIG_MEXCAVATOR is not set
+# CONFIG_MFD_88PM800 is not set
+# CONFIG_MFD_88PM805 is not set
+# CONFIG_MFD_ARIZONA_I2C is not set
+# CONFIG_MFD_ARIZONA_SPI is not set
+# CONFIG_MFD_BCM590XX is not set
+CONFIG_MFD_BD9571MWV=m
+CONFIG_MFD_CORE=m
+# CONFIG_MFD_CROS_EC is not set
+# CONFIG_MFD_DA9052_SPI is not set
+# CONFIG_MFD_DA9062 is not set
+# CONFIG_MFD_DA9063 is not set
+# CONFIG_MFD_DA9150 is not set
+# CONFIG_MFD_DLN2 is not set
+CONFIG_MFD_INTEL_LPSS_ACPI=m
+CONFIG_MFD_INTEL_LPSS=m
+CONFIG_MFD_INTEL_LPSS_PCI=m
+# CONFIG_MFD_INTEL_M10_BMC is not set
+# CONFIG_MFD_INTEL_PMC_BXT is not set
+CONFIG_MFD_INTEL_PMT=m
+# CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set
+# CONFIG_MFD_IQS62X is not set
+# CONFIG_MFD_JANZ_CMODIO is not set
+# CONFIG_MFD_KEMPLD is not set
+# CONFIG_MFD_LM3533 is not set
+# CONFIG_MFD_LP3943 is not set
+# CONFIG_MFD_MADERA is not set
+# CONFIG_MFD_MAX14577 is not set
+# CONFIG_MFD_MAX77693 is not set
+# CONFIG_MFD_MAX8907 is not set
+# CONFIG_MFD_MC13XXX_I2C is not set
+# CONFIG_MFD_MC13XXX_SPI is not set
+# CONFIG_MFD_MENF21BMC is not set
+# CONFIG_MFD_MP2629 is not set
+# CONFIG_MFD_MT6360 is not set
+# CONFIG_MFD_MT6397 is not set
+# CONFIG_MFD_PCF50633 is not set
+# CONFIG_MFD_RDC321X is not set
+# CONFIG_MFD_RETU is not set
+# CONFIG_MFD_RT5033 is not set
+# CONFIG_MFD_SI476X_CORE is not set
+# CONFIG_MFD_SKY81452 is not set
+CONFIG_MFD_SM501_GPIO=y
+CONFIG_MFD_SM501=m
+# CONFIG_MFD_SYSCON is not set
+# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_MFD_TI_LMU is not set
+# CONFIG_MFD_TI_LP873X is not set
+# CONFIG_MFD_TPS65086 is not set
+# CONFIG_MFD_TPS65912_I2C is not set
+# CONFIG_MFD_TPS65912_SPI is not set
+# CONFIG_MFD_TQMX86 is not set
+CONFIG_MFD_VIPERBOARD=m
+CONFIG_MFD_VX855=m
+CONFIG_MFD_WL1273_CORE=m
+# CONFIG_MFD_WM831X_SPI is not set
+# CONFIG_MFD_WM8994 is not set
+# CONFIG_MGOLDMONT is not set
+# CONFIG_MGOLDMONTPLUS is not set
+# CONFIG_MHASWELL is not set
+# CONFIG_MHI_BUS is not set
+# CONFIG_MICELAKE is not set
+# CONFIG_MICREL_KS8995MA is not set
+CONFIG_MICREL_PHY=m
+CONFIG_MICROCHIP_PHY=m
+# CONFIG_MICROCHIP_T1_PHY is not set
+# CONFIG_MICROCODE is not set
+CONFIG_MICROSEMI_PHY=m
+CONFIG_MIGRATION=y
+CONFIG_MII=m
+CONFIG_MINIX_FS=m
+CONFIG_MINIX_SUBPARTITION=y
+CONFIG_MISC_ALCOR_PCI=m
+CONFIG_MISC_FILESYSTEMS=y
+CONFIG_MISC_RTSX=m
+CONFIG_MISC_RTSX_PCI=m
+CONFIG_MISC_RTSX_USB=m
+# CONFIG_MIVYBRIDGE is not set
+# CONFIG_MJAGUAR is not set
+# CONFIG_MK10 is not set
+# CONFIG_MK8 is not set
+# CONFIG_MK8SSE3 is not set
+CONFIG_MKISS=m
+CONFIG_MLX4_CORE_GEN2=y
+CONFIG_MLX4_CORE=m
+CONFIG_MLX4_DEBUG=y
+CONFIG_MLX4_EN_DCB=y
+CONFIG_MLX4_EN=m
+CONFIG_MLX4_INFINIBAND=m
+CONFIG_MLX5_CLS_ACT=y
+CONFIG_MLX5_CORE_EN_DCB=y
+CONFIG_MLX5_CORE_EN=y
+CONFIG_MLX5_CORE_IPOIB=y
+CONFIG_MLX5_CORE=m
+CONFIG_MLX5_EN_ARFS=y
+CONFIG_MLX5_EN_RXNFC=y
+CONFIG_MLX5_ESWITCH=y
+# CONFIG_MLX5_FPGA is not set
+# CONFIG_MLX5_IPSEC is not set
+CONFIG_MLX5_MPFS=y
+CONFIG_MLX5_SW_STEERING=y
+CONFIG_MLX5_TC_CT=y
+# CONFIG_MLX5_TLS is not set
+CONFIG_MLX90614=m
+CONFIG_MLX90632=m
+CONFIG_MLXFW=m
+CONFIG_MLX_PLATFORM=m
+CONFIG_MLXREG_HOTPLUG=m
+CONFIG_MLXREG_IO=m
+CONFIG_MLXSW_CORE_HWMON=y
+CONFIG_MLXSW_CORE=m
+CONFIG_MLXSW_CORE_THERMAL=y
+CONFIG_MLXSW_I2C=m
+CONFIG_MLXSW_MINIMAL=m
+CONFIG_MLXSW_PCI=m
+CONFIG_MLXSW_SPECTRUM_DCB=y
+CONFIG_MLXSW_SPECTRUM=m
+CONFIG_MLXSW_SWITCHIB=m
+CONFIG_MLXSW_SWITCHX2=m
+CONFIG_MLX_WDT=m
+# CONFIG_MMA7455_I2C is not set
+# CONFIG_MMA7455_SPI is not set
+CONFIG_MMA7660=m
+# CONFIG_MMA8452 is not set
+# CONFIG_MMA9551 is not set
+# CONFIG_MMA9553 is not set
+# CONFIG_MMC35240 is not set
+CONFIG_MMC_ALCOR=m
+CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK_MINORS=8
+CONFIG_MMC_CB710=m
+CONFIG_MMC_CQHCI=m
+# CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_HSQ is not set
+CONFIG_MMC=m
+# CONFIG_MMC_MTK is not set
+CONFIG_MMC_REALTEK_PCI=m
+CONFIG_MMC_REALTEK_USB=m
+CONFIG_MMC_RICOH_MMC=y
+CONFIG_MMC_SDHCI_ACPI=m
+# CONFIG_MMC_SDHCI_F_SDH30 is not set
+CONFIG_MMC_SDHCI_IO_ACCESSORS=y
+CONFIG_MMC_SDHCI=m
+CONFIG_MMC_SDHCI_PCI=m
+CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_SDHCI_XENON=m
+CONFIG_MMC_SDRICOH_CS=m
+# CONFIG_MMC_SPI is not set
+# CONFIG_MMC_TEST is not set
+CONFIG_MMC_TIFM_SD=m
+CONFIG_MMC_TOSHIBA_PCI=m
+# CONFIG_MMC_USDHI6ROL0 is not set
+CONFIG_MMC_USHC=m
+CONFIG_MMC_VIA_SDMMC=m
+CONFIG_MMC_VUB300=m
+CONFIG_MMC_WBSD=m
+# CONFIG_MMIOTRACE_TEST is not set
+CONFIG_MMIOTRACE=y
+CONFIG_MMU_GATHER_RCU_TABLE_FREE=y
+CONFIG_MMU_GATHER_TABLE_FREE=y
+CONFIG_MMU_NOTIFIER=y
+CONFIG_MMU=y
+# CONFIG_MNATIVE is not set
+# CONFIG_MNEHALEM is not set
+CONFIG_MODIFY_LDT_SYSCALL=y
+# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
+# CONFIG_MODULE_COMPRESS is not set
+CONFIG_MODULE_FORCE_LOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_MODULE_SIG_ALL=y
+# CONFIG_MODULE_SIG_FORCE is not set
+CONFIG_MODULE_SIG_FORMAT=y
+CONFIG_MODULE_SIG_HASH="sha256"
+CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
+# CONFIG_MODULE_SIG_SHA1 is not set
+# CONFIG_MODULE_SIG_SHA224 is not set
+CONFIG_MODULE_SIG_SHA256=y
+# CONFIG_MODULE_SIG_SHA384 is not set
+# CONFIG_MODULE_SIG_SHA512 is not set
+CONFIG_MODULE_SIG=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+CONFIG_MODULES_TREE_LOOKUP=y
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+# CONFIG_MOST is not set
+CONFIG_MOUSE_APPLETOUCH=m
+CONFIG_MOUSE_BCM5974=m
+CONFIG_MOUSE_CYAPA=m
+CONFIG_MOUSE_ELAN_I2C_I2C=y
+CONFIG_MOUSE_ELAN_I2C=m
+CONFIG_MOUSE_ELAN_I2C_SMBUS=y
+# CONFIG_MOUSE_GPIO is not set
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_BYD=y
+CONFIG_MOUSE_PS2_CYPRESS=y
+CONFIG_MOUSE_PS2_ELANTECH=y
+CONFIG_MOUSE_PS2_FOCALTECH=y
+CONFIG_MOUSE_PS2_LIFEBOOK=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SENTELIC=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+# CONFIG_MOUSE_PS2_TOUCHKIT is not set
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+CONFIG_MOUSE_PS2_VMMOUSE=y
+CONFIG_MOUSE_PS2=y
+CONFIG_MOUSE_SERIAL=m
+CONFIG_MOUSE_SYNAPTICS_I2C=m
+CONFIG_MOUSE_SYNAPTICS_USB=m
+CONFIG_MOUSE_VSXXXAA=m
+# CONFIG_MOXA_INTELLIO is not set
+# CONFIG_MOXA_SMARTIO is not set
+# CONFIG_MPILEDRIVER is not set
+CONFIG_MPILIB=y
+CONFIG_MPL115_I2C=m
+CONFIG_MPL115=m
+# CONFIG_MPL115_SPI is not set
+# CONFIG_MPL3115 is not set
+CONFIG_MPLS_IPTUNNEL=m
+CONFIG_MPLS_ROUTING=m
+CONFIG_MPLS=y
+CONFIG_MPTCP_IPV6=y
+CONFIG_MPTCP=y
+CONFIG_MPU3050_I2C=m
+CONFIG_MPU3050=m
+CONFIG_MQ_IOSCHED_DEADLINE=y
+CONFIG_MQ_IOSCHED_KYBER=y
+CONFIG_MRP=m
+# CONFIG_MS5611 is not set
+# CONFIG_MS5637 is not set
+# CONFIG_MSANDYBRIDGE is not set
+# CONFIG_MS_BLOCK is not set
+CONFIG_MSDOS_FS=m
+CONFIG_MSDOS_PARTITION=y
+CONFIG_MSI_LAPTOP=m
+# CONFIG_MSILVERMONT is not set
+CONFIG_MSI_WMI=m
+# CONFIG_MSKYLAKE is not set
+# CONFIG_MSKYLAKEX is not set
+CONFIG_MSPRO_BLOCK=m
+# CONFIG_MSTEAMROLLER is not set
+CONFIG_MT7601U=m
+CONFIG_MT7603E=m
+CONFIG_MT7615_COMMON=m
+CONFIG_MT7615E=m
+# CONFIG_MT7663S is not set
+# CONFIG_MT7663U is not set
+CONFIG_MT76_CORE=m
+CONFIG_MT76_LEDS=y
+CONFIG_MT76_USB=m
+CONFIG_MT76x02_LIB=m
+CONFIG_MT76x02_USB=m
+CONFIG_MT76x0_COMMON=m
+CONFIG_MT76x0E=m
+CONFIG_MT76x0U=m
+CONFIG_MT76x2_COMMON=m
+CONFIG_MT76x2E=m
+CONFIG_MT76x2U=m
+# CONFIG_MT7915E is not set
+# CONFIG_MTD_ABSENT is not set
+# CONFIG_MTD_AR7_PARTS is not set
+CONFIG_MTD_BLOCK2MTD=m
+# CONFIG_MTD_BLOCK_RO is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI is not set
+# CONFIG_MTD_CMDLINE_PARTS is not set
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_DOCG3 is not set
+# CONFIG_MTD_HYPERBUS is not set
+# CONFIG_MTD_INTEL_VR_NOR is not set
+# CONFIG_MTD_JEDECPROBE is not set
+# CONFIG_MTD_LPDDR is not set
+CONFIG_MTD=m
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MCHP23K256 is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_NAND_ARASAN is not set
+CONFIG_MTD_NAND_CORE=m
+# CONFIG_MTD_NAND_DENALI_PCI is not set
+# CONFIG_MTD_NAND_DISKONCHIP is not set
+# CONFIG_MTD_NAND_ECC_SW_BCH is not set
+CONFIG_MTD_NAND_ECC_SW_HAMMING=m
+# CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC is not set
+CONFIG_MTD_NAND_ECC=y
+# CONFIG_MTD_NAND_GPIO is not set
+# CONFIG_MTD_NAND_MXIC is not set
+# CONFIG_MTD_NAND_NANDSIM is not set
+# CONFIG_MTD_NAND_PLATFORM is not set
+# CONFIG_MTD_NAND_RICOH is not set
+# CONFIG_MTD_ONENAND is not set
+# CONFIG_MTD_OOPS is not set
+# CONFIG_MTD_PARTITIONED_MASTER is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_PLATRAM is not set
+# CONFIG_MTD_PMC551 is not set
+# CONFIG_MTD_PSTORE is not set
+# CONFIG_MTD_RAM is not set
+CONFIG_MTD_RAW_NAND=m
+# CONFIG_MTD_REDBOOT_PARTS is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_SPI_NAND is not set
+# CONFIG_MTD_SPI_NOR is not set
+# CONFIG_MTD_SST25L is not set
+# CONFIG_MTD_SWAP is not set
+# CONFIG_MTD_TESTS is not set
+CONFIG_MTD_UBI_BEB_LIMIT=20
+# CONFIG_MTD_UBI_BLOCK is not set
+# CONFIG_MTD_UBI_FASTMAP is not set
+# CONFIG_MTD_UBI_GLUEBI is not set
+CONFIG_MTD_UBI=m
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
+# CONFIG_MTIGERLAKE is not set
+CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
+CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
+CONFIG_MTRR_SANITIZER=y
+CONFIG_MTRR=y
+CONFIG_MULTIPLEXER=m
+CONFIG_MULTIUSER=y
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+# CONFIG_MUX_ADG792A is not set
+# CONFIG_MUX_ADGS1408 is not set
+# CONFIG_MUX_GPIO is not set
+CONFIG_MVMDIO=m
+CONFIG_MWAVE=m
+# CONFIG_MWESTMERE is not set
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_PCIE=m
+CONFIG_MWIFIEX_SDIO=m
+CONFIG_MWIFIEX_USB=m
+CONFIG_MWL8K=m
+CONFIG_MXC4005=m
+CONFIG_MXC6255=m
+CONFIG_MXM_WMI=m
+CONFIG_MYRI10GE=m
+# CONFIG_MZEN2 is not set
+# CONFIG_MZEN is not set
+CONFIG_NAMESPACES=y
+CONFIG_NATIONAL_PHY=m
+CONFIG_NATSEMI=m
+# CONFIG_NAU7802 is not set
+CONFIG_NCSI_OEM_CMD_GET_MAC=y
+CONFIG_NE2K_PCI=m
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
+CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
+CONFIG_NEED_SG_DMA_LENGTH=y
# CONFIG_NET_9P_DEBUG is not set
+CONFIG_NET_9P=m
CONFIG_NET_9P_RDMA=m
-
-# CONFIG_DECNET is not set
-CONFIG_DECNET_ROUTER=y
-# CONFIG_DECNET_NF_GRABULATOR is not set
-CONFIG_BRIDGE=m
-CONFIG_NETFILTER=y
+# CONFIG_NET_9P_VIRTIO is not set
+CONFIG_NET_ACT_BPF=m
+CONFIG_NET_ACT_CONNMARK=m
+CONFIG_NET_ACT_CSUM=m
+CONFIG_NET_ACT_CTINFO=m
+CONFIG_NET_ACT_CT=m
+CONFIG_NET_ACT_GACT=m
+# CONFIG_NET_ACT_GATE is not set
+CONFIG_NET_ACT_IFE=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_MPLS=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_SAMPLE=m
+CONFIG_NET_ACT_SIMP=m
+CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_SKBMOD=m
+CONFIG_NET_ACT_TUNNEL_KEY=m
+CONFIG_NET_ACT_VLAN=m
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_BPF=m
+CONFIG_NET_CLS_CGROUP=y
+CONFIG_NET_CLS_FLOWER=m
+CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_MATCHALL=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_U32=m
+CONFIG_NET_CLS=y
+CONFIG_NETCONSOLE_DYNAMIC=y
+CONFIG_NETCONSOLE=m
+CONFIG_NET_CORE=y
+CONFIG_NETDEVICES=y
+CONFIG_NET_DEVLINK=y
+CONFIG_NETDEV_NOTIFIER_ERROR_INJECT=m
+CONFIG_NETDEVSIM=m
+CONFIG_NET_DROP_MONITOR=y
+# CONFIG_NET_DSA_AR9331 is not set
+CONFIG_NET_DSA_BCM_SF2=m
+# CONFIG_NET_DSA_HIRSCHMANN_HELLCREEK is not set
+# CONFIG_NET_DSA_LANTIQ_GSWIP is not set
+CONFIG_NET_DSA_LOOP=m
+CONFIG_NET_DSA=m
+# CONFIG_NET_DSA_MICROCHIP_KSZ8795 is not set
+# CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C is not set
+CONFIG_NET_DSA_MICROCHIP_KSZ9477=m
+CONFIG_NET_DSA_MICROCHIP_KSZ9477_SPI=m
+CONFIG_NET_DSA_MICROCHIP_KSZ_COMMON=m
+CONFIG_NET_DSA_MT7530=m
+# CONFIG_NET_DSA_MV88E6060 is not set
+CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
+CONFIG_NET_DSA_MV88E6XXX=m
+CONFIG_NET_DSA_MV88E6XXX_PTP=y
+CONFIG_NET_DSA_QCA8K=m
+# CONFIG_NET_DSA_REALTEK_SMI is not set
+# CONFIG_NET_DSA_SJA1105 is not set
+CONFIG_NET_DSA_SMSC_LAN9303_I2C=m
+CONFIG_NET_DSA_SMSC_LAN9303=m
+CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m
+CONFIG_NET_DSA_TAG_8021Q=m
+# CONFIG_NET_DSA_TAG_AR9331 is not set
+CONFIG_NET_DSA_TAG_BRCM_COMMON=m
+CONFIG_NET_DSA_TAG_BRCM=m
+CONFIG_NET_DSA_TAG_BRCM_PREPEND=m
+CONFIG_NET_DSA_TAG_DSA_COMMON=m
+CONFIG_NET_DSA_TAG_DSA=m
+CONFIG_NET_DSA_TAG_EDSA=m
+CONFIG_NET_DSA_TAG_GSWIP=m
+# CONFIG_NET_DSA_TAG_HELLCREEK is not set
+CONFIG_NET_DSA_TAG_KSZ=m
+CONFIG_NET_DSA_TAG_LAN9303=m
+CONFIG_NET_DSA_TAG_MTK=m
+# CONFIG_NET_DSA_TAG_OCELOT is not set
+CONFIG_NET_DSA_TAG_QCA=m
+# CONFIG_NET_DSA_TAG_RTL4_A is not set
+CONFIG_NET_DSA_TAG_SJA1105=m
+CONFIG_NET_DSA_TAG_TRAILER=m
+# CONFIG_NET_DSA_VITESSE_VSC73XX_PLATFORM is not set
+# CONFIG_NET_DSA_VITESSE_VSC73XX_SPI is not set
+CONFIG_NET_EGRESS=y
+CONFIG_NET_EMATCH_CANID=m
+CONFIG_NET_EMATCH_CMP=m
+CONFIG_NET_EMATCH_IPSET=m
+CONFIG_NET_EMATCH_IPT=m
+CONFIG_NET_EMATCH_META=m
+CONFIG_NET_EMATCH_NBYTE=m
+CONFIG_NET_EMATCH_STACK=32
+CONFIG_NET_EMATCH_TEXT=m
+CONFIG_NET_EMATCH_U32=m
+CONFIG_NET_EMATCH=y
+CONFIG_NET_FAILOVER=m
+CONFIG_NET_FC=y
CONFIG_NETFILTER_ADVANCED=y
-CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_CONNCOUNT=m
+CONFIG_NETFILTER_FAMILY_ARP=y
+CONFIG_NETFILTER_FAMILY_BRIDGE=y
+CONFIG_NETFILTER_INGRESS=y
CONFIG_NETFILTER_NETLINK_ACCT=m
-CONFIG_NETFILTER_NETLINK_QUEUE=m
+# CONFIG_NETFILTER_NETLINK_GLUE_CT is not set
CONFIG_NETFILTER_NETLINK_LOG=m
-CONFIG_NF_CONNTRACK=m
-CONFIG_NF_CONNTRACK_MARK=y
-CONFIG_NF_CONNTRACK_SECMARK=y
-CONFIG_NF_CONNTRACK_ZONES=y
-CONFIG_NF_CONNTRACK_PROCFS=y
-CONFIG_NF_CONNTRACK_EVENTS=y
-# CONFIG_NF_CONNTRACK_TIMEOUT is not set
-CONFIG_NF_CONNTRACK_TIMESTAMP=y
-CONFIG_NF_CONNTRACK_LABELS=y
-CONFIG_NF_CT_PROTO_DCCP=m
-CONFIG_NF_CT_PROTO_GRE=m
-CONFIG_NF_CT_PROTO_SCTP=m
-CONFIG_NF_CT_PROTO_UDPLITE=m
-CONFIG_NF_CONNTRACK_AMANDA=m
-CONFIG_NF_CONNTRACK_FTP=m
-CONFIG_NF_CONNTRACK_H323=m
-CONFIG_NF_CONNTRACK_IRC=m
-CONFIG_NF_CONNTRACK_BROADCAST=m
-CONFIG_NF_CONNTRACK_NETBIOS_NS=m
-CONFIG_NF_CONNTRACK_SNMP=m
-CONFIG_NF_CONNTRACK_PPTP=m
-CONFIG_NF_CONNTRACK_SANE=m
-CONFIG_NF_CONNTRACK_SIP=m
-CONFIG_NF_CONNTRACK_TFTP=m
-CONFIG_NF_CT_NETLINK=m
-# CONFIG_NF_CT_NETLINK_TIMEOUT is not set
-CONFIG_NF_CT_NETLINK_HELPER=m
-CONFIG_NETFILTER_NETLINK_QUEUE_CT=y
-CONFIG_NF_NAT=m
-CONFIG_NF_NAT_NEEDED=y
-CONFIG_NF_NAT_PROTO_DCCP=m
-CONFIG_NF_NAT_PROTO_UDPLITE=m
-CONFIG_NF_NAT_PROTO_SCTP=m
-CONFIG_NF_NAT_AMANDA=m
-CONFIG_NF_NAT_FTP=m
-CONFIG_NF_NAT_IRC=m
-CONFIG_NF_NAT_SIP=m
-CONFIG_NF_NAT_TFTP=m
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_OSF=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
CONFIG_NETFILTER_SYNPROXY=m
-CONFIG_NF_TABLES=m
-CONFIG_NF_TABLES_INET=m
-CONFIG_NFT_EXTHDR=m
-CONFIG_NFT_META=m
-CONFIG_NFT_CT=m
-CONFIG_NFT_RBTREE=m
-CONFIG_NFT_HASH=m
-CONFIG_NFT_COUNTER=m
-CONFIG_NFT_LOG=m
-CONFIG_NFT_LIMIT=m
-CONFIG_NFT_NAT=m
-CONFIG_NFT_QUEUE=m
-# CONFIG_NFT_REJECT is not set
-# CONFIG_NFT_REJECT_INET is not set
-CONFIG_NFT_COMPAT=m
CONFIG_NETFILTER_XTABLES=y
-CONFIG_NETFILTER_XTABLES=y
-CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
-CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
-CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
-CONFIG_NETFILTER_XT_TARGET_DSCP=m
-CONFIG_NETFILTER_XT_TARGET_MARK=m
-CONFIG_NETFILTER_XT_TARGET_NFLOG=m
-CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
-CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
-CONFIG_NETFILTER_XT_TARGET_RATEEST=m
-CONFIG_NETFILTER_XT_TARGET_SECMARK=m
-CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
-CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
-CONFIG_NETFILTER_XT_TARGET_TRACE=m
-CONFIG_NETFILTER_XT_TARGET_LED=m
+CONFIG_NETFILTER_XT_CONNMARK=m
+CONFIG_NETFILTER_XT_MARK=m
CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
CONFIG_NETFILTER_XT_MATCH_BPF=m
CONFIG_NETFILTER_XT_MATCH_CGROUP=m
+CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
CONFIG_NETFILTER_XT_MATCH_COMMENT=m
CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
-CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
-CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
CONFIG_NETFILTER_XT_MATCH_CPU=m
CONFIG_NETFILTER_XT_MATCH_DCCP=m
CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ECN=m
CONFIG_NETFILTER_XT_MATCH_ESP=m
CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_HL=m
CONFIG_NETFILTER_XT_MATCH_IPCOMP=m
CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
CONFIG_NETFILTER_XT_MATCH_IPVS=m
@@ -1053,6 +4011,7 @@ CONFIG_NETFILTER_XT_MATCH_MAC=m
CONFIG_NETFILTER_XT_MATCH_MARK=m
CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
CONFIG_NETFILTER_XT_MATCH_NFACCT=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
CONFIG_NETFILTER_XT_MATCH_OWNER=m
CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
@@ -1060,1255 +4019,1479 @@ CONFIG_NETFILTER_XT_MATCH_POLICY=m
CONFIG_NETFILTER_XT_MATCH_QUOTA=m
CONFIG_NETFILTER_XT_MATCH_RATEEST=m
CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_RECENT=m
CONFIG_NETFILTER_XT_MATCH_SCTP=m
-CONFIG_NETFILTER_XT_MATCH_STATE=y
+CONFIG_NETFILTER_XT_MATCH_SOCKET=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
CONFIG_NETFILTER_XT_MATCH_STRING=m
CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
CONFIG_NETFILTER_XT_MATCH_TIME=m
CONFIG_NETFILTER_XT_MATCH_U32=m
-CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
-CONFIG_NETFILTER_XT_MATCH_HL=m
-CONFIG_NETFILTER_XT_MATCH_OSF=m
-
-# CONFIG_NETFILTER_DEBUG is not set
-CONFIG_BRIDGE_NETFILTER=y
-
-#
-# IP: Netfilter Configuration
-#
-CONFIG_NF_DEFRAG_IPV4=m
-CONFIG_NF_CONNTRACK_ENABLED=y
-CONFIG_NF_CONNTRACK_IPV4=m
-# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set
-CONFIG_NF_TABLES_IPV4=m
-CONFIG_NFT_CHAIN_ROUTE_IPV4=m
-CONFIG_NFT_CHAIN_NAT_IPV4=m
-# CONFIG_NFT_REJECT_IPV4 is not set
-# CONFIG_NF_TABLES_ARP is not set
-CONFIG_IP_NF_IPTABLES=m
-CONFIG_IP_NF_MATCH_ADDRTYPE=m
-CONFIG_IP_NF_MATCH_AH=m
-CONFIG_IP_NF_MATCH_ECN=m
-CONFIG_IP_NF_MATCH_IPRANGE=m
-CONFIG_IP_NF_MATCH_OWNER=m
-CONFIG_IP_NF_MATCH_RECENT=m
-CONFIG_IP_NF_MATCH_RPFILTER=m
-CONFIG_IP_NF_MATCH_TOS=m
-CONFIG_IP_NF_MATCH_TTL=m
-CONFIG_IP_NF_FILTER=m
-CONFIG_IP_NF_TARGET_REJECT=m
-CONFIG_IP_NF_TARGET_SYNPROXY=m
-CONFIG_IP_NF_TARGET_MASQUERADE=m
-CONFIG_IP_NF_TARGET_NETMAP=m
-CONFIG_IP_NF_TARGET_REDIRECT=m
-CONFIG_IP_NF_TARGET_SAME=m
-CONFIG_IP_NF_TARGET_TOS=m
-CONFIG_IP_NF_TARGET_LOG=m
-CONFIG_IP_NF_TARGET_ULOG=m
-CONFIG_NF_NAT_IPV4=m
-CONFIG_NF_NAT_SNMP_BASIC=m
-CONFIG_NF_NAT_PROTO_GRE=m
-CONFIG_NF_NAT_PPTP=m
-CONFIG_NF_NAT_H323=m
-CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_ARPTABLES=m
-CONFIG_IP_NF_TARGET_CLUSTERIP=m
-CONFIG_IP_NF_TARGET_ECN=m
-CONFIG_IP_NF_TARGET_TTL=m
-CONFIG_IP_NF_QUEUE=m
-CONFIG_IP_NF_RAW=m
-CONFIG_IP_NF_SECURITY=m
-CONFIG_IP_NF_ARPTABLES=m
-CONFIG_IP_NF_ARPFILTER=m
-CONFIG_IP_NF_ARP_MANGLE=m
-
-#
-# IPv6: Netfilter Configuration
-#
-CONFIG_NF_DEFRAG_IPV6=m
-CONFIG_NF_CONNTRACK_IPV6=m
-CONFIG_NF_TABLES_IPV6=m
-CONFIG_NFT_CHAIN_ROUTE_IPV6=m
-CONFIG_NFT_CHAIN_NAT_IPV6=m
-# CONFIG_NFT_REJECT_IPV6 is not set
-CONFIG_IP6_NF_IPTABLES=m
-CONFIG_IP6_NF_MATCH_AH=m
-CONFIG_IP6_NF_MATCH_EUI64=m
-CONFIG_IP6_NF_MATCH_FRAG=m
-CONFIG_IP6_NF_MATCH_OPTS=m
-CONFIG_IP6_NF_MATCH_OWNER=m
-CONFIG_IP6_NF_MATCH_HL=m
-CONFIG_IP6_NF_MATCH_IPV6HEADER=m
-CONFIG_IP6_NF_MATCH_MH=m
-CONFIG_IP6_NF_MATCH_RPFILTER=m
-CONFIG_IP6_NF_MATCH_RT=m
-CONFIG_IP6_NF_TARGET_HL=m
-CONFIG_IP6_NF_FILTER=m
-CONFIG_IP6_NF_TARGET_LOG=m
-CONFIG_IP6_NF_TARGET_REJECT=m
-CONFIG_IP6_NF_TARGET_SYNPROXY=m
-CONFIG_IP6_NF_MANGLE=m
-CONFIG_IP6_NF_QUEUE=m
-CONFIG_IP6_NF_RAW=m
-CONFIG_IP6_NF_SECURITY=m
-CONFIG_NF_NAT_IPV6=m
-CONFIG_IP6_NF_TARGET_MASQUERADE=m
-CONFIG_IP6_NF_TARGET_NPT=m
-CONFIG_NF_TABLES_BRIDGE=m
-CONFIG_BRIDGE_NF_EBTABLES=m
-CONFIG_BRIDGE_EBT_BROUTE=m
-CONFIG_BRIDGE_EBT_T_FILTER=m
-CONFIG_BRIDGE_EBT_T_NAT=m
-CONFIG_BRIDGE_EBT_802_3=m
-CONFIG_BRIDGE_EBT_AMONG=m
-CONFIG_BRIDGE_EBT_ARP=m
-CONFIG_BRIDGE_EBT_IP=m
-CONFIG_BRIDGE_EBT_IP6=m
-CONFIG_BRIDGE_EBT_LIMIT=m
-CONFIG_BRIDGE_EBT_MARK=m
-CONFIG_BRIDGE_EBT_PKTTYPE=m
-CONFIG_BRIDGE_EBT_STP=m
-CONFIG_BRIDGE_EBT_VLAN=m
-CONFIG_BRIDGE_EBT_ARPREPLY=m
-CONFIG_BRIDGE_EBT_DNAT=m
-CONFIG_BRIDGE_EBT_MARK_T=m
-CONFIG_BRIDGE_EBT_REDIRECT=m
-CONFIG_BRIDGE_EBT_SNAT=m
-CONFIG_BRIDGE_EBT_LOG=m
-CONFIG_BRIDGE_EBT_ULOG=m
-CONFIG_BRIDGE_EBT_NFLOG=m
-CONFIG_IP_DCCP=m
-CONFIG_INET_DCCP_DIAG=m
-
-#
-# Bridge: Netfilter Configuration
-#
-CONFIG_BRIDGE_NF_EBTABLES=m
-CONFIG_BRIDGE_EBT_802_3=m
-CONFIG_BRIDGE_EBT_AMONG=m
-CONFIG_BRIDGE_EBT_ARP=m
-CONFIG_BRIDGE_EBT_ARPREPLY=m
-CONFIG_BRIDGE_EBT_BROUTE=m
-CONFIG_BRIDGE_EBT_DNAT=m
-CONFIG_BRIDGE_EBT_IP=m
-CONFIG_BRIDGE_EBT_IP6=m
-CONFIG_BRIDGE_EBT_LIMIT=m
-CONFIG_BRIDGE_EBT_LOG=m
-CONFIG_BRIDGE_EBT_MARK=m
-CONFIG_BRIDGE_EBT_MARK_T=m
-CONFIG_BRIDGE_EBT_NFLOG=m
-CONFIG_BRIDGE_EBT_PKTTYPE=m
-CONFIG_BRIDGE_EBT_REDIRECT=m
-CONFIG_BRIDGE_EBT_SNAT=m
-CONFIG_BRIDGE_EBT_STP=m
-CONFIG_BRIDGE_EBT_T_FILTER=m
-CONFIG_BRIDGE_EBT_T_NAT=m
-CONFIG_BRIDGE_EBT_ULOG=m
-CONFIG_BRIDGE_EBT_VLAN=m
-CONFIG_XFRM=y
-CONFIG_XFRM_MIGRATE=y
-CONFIG_XFRM_SUB_POLICY=y
-CONFIG_XFRM_STATISTICS=y
-CONFIG_XFRM_USER=y
-CONFIG_INET_XFRM_MODE_TRANSPORT=m
-CONFIG_INET_XFRM_MODE_TUNNEL=m
-CONFIG_INET_XFRM_MODE_BEET=m
-CONFIG_INET6_XFRM_MODE_TRANSPORT=m
-CONFIG_INET6_XFRM_MODE_TUNNEL=m
-CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
-CONFIG_INET6_XFRM_MODE_BEET=m
-
-#
-# SCTP Configuration (EXPERIMENTAL)
-#
-CONFIG_IP_SCTP=m
-# CONFIG_SCTP_DBG_MSG is not set
-# CONFIG_SCTP_DBG_OBJCNT is not set
-# CONFIG_SCTP_HMAC_NONE is not set
-CONFIG_SCTP_HMAC_SHA1=y
-# CONFIG_SCTP_HMAC_MD5 is not set
-CONFIG_ATM=m
-CONFIG_VLAN_8021Q=m
-CONFIG_VLAN_8021Q_GVRP=y
-CONFIG_LLC=m
-# CONFIG_LLC2 is not set
-# CONFIG_IPX is not set
-# CONFIG_IPX_INTERN is not set
-# CONFIG_ATALK is not set
-# CONFIG_DEV_APPLETALK is not set
-CONFIG_IPDDP=m
-CONFIG_IPDDP_ENCAP=y
-CONFIG_IPDDP_DECAP=y
-# CONFIG_X25 is not set
-# CONFIG_LAPB is not set
-# CONFIG_ECONET is not set
-# CONFIG_WAN_ROUTER is not set
-CONFIG_IP_DCCP=m
-CONFIG_IP_DCCP_CCID2=m
-# CONFIG_IP_DCCP_CCID2_DEBUG is not set
-CONFIG_IP_DCCP_CCID3=y
-# CONFIG_IP_DCCP_CCID3_DEBUG is not set
-CONFIG_IP_DCCP_CCID3_RTO=100
-# CONFIG_IP_DCCP_DEBUG is not set
-CONFIG_NET_DCCPPROBE=m
-
-#
-# TIPC Configuration (EXPERIMENTAL)
-#
-# CONFIG_TIPC is not set
-# CONFIG_TIPC_ADVANCED is not set
-# CONFIG_TIPC_DEBUG is not set
-
+CONFIG_NETFILTER_XT_NAT=m
+CONFIG_NETFILTER_XT_SET=m
+CONFIG_NETFILTER_XT_TARGET_AUDIT=m
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
+CONFIG_NETFILTER_XT_TARGET_CT=m
+CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_HL=m
+CONFIG_NETFILTER_XT_TARGET_HMARK=m
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
+CONFIG_NETFILTER_XT_TARGET_LED=m
+CONFIG_NETFILTER_XT_TARGET_LOG=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_MASQUERADE=m
+CONFIG_NETFILTER_XT_TARGET_NETMAP=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
+CONFIG_NETFILTER_XT_TARGET_RATEEST=m
+CONFIG_NETFILTER_XT_TARGET_REDIRECT=m
+CONFIG_NETFILTER_XT_TARGET_SECMARK=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+CONFIG_NETFILTER_XT_TARGET_TEE=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+CONFIG_NETFILTER_XT_TARGET_TRACE=m
+CONFIG_NETFILTER=y
+CONFIG_NET_FLOW_LIMIT=y
+CONFIG_NET_FOU_IP_TUNNELS=y
+CONFIG_NET_FOU=m
+CONFIG_NET_IFE=m
+CONFIG_NET_IFE_SKBMARK=m
+CONFIG_NET_IFE_SKBPRIO=m
+CONFIG_NET_IFE_SKBTCINDEX=m
+CONFIG_NET_INGRESS=y
+CONFIG_NET_IPGRE_BROADCAST=y
+CONFIG_NET_IPGRE_DEMUX=m
+CONFIG_NET_IPGRE=m
+CONFIG_NET_IPIP=m
+CONFIG_NET_IP_TUNNEL=m
+CONFIG_NET_IPVTI=m
+CONFIG_NET_KEY=m
+CONFIG_NET_KEY_MIGRATE=y
+CONFIG_NET_L3_MASTER_DEV=y
CONFIG_NETLABEL=y
-
-#
-# QoS and/or fair queueing
-#
-CONFIG_NET_SCHED=y
+CONFIG_NETLINK_DIAG=m
+CONFIG_NET_MPLS_GSO=m
+CONFIG_NET_NCSI=y
+CONFIG_NET_NSH=m
+CONFIG_NET_NS=y
+CONFIG_NET_PKTGEN=m
+CONFIG_NET_POLL_CONTROLLER=y
+CONFIG_NETPOLL=y
+CONFIG_NET_PTP_CLASSIFY=y
+CONFIG_NET_REDIRECT=y
+CONFIG_NETROM=m
+CONFIG_NET_RX_BUSY_POLL=y
+# CONFIG_NET_SB1000 is not set
+CONFIG_NET_SCH_ATM=m
+CONFIG_NET_SCH_CAKE=m
CONFIG_NET_SCH_CBQ=m
-CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_CBS=m
+CONFIG_NET_SCH_CHOKE=m
+CONFIG_NET_SCH_CODEL=m
+# CONFIG_NET_SCH_DEFAULT is not set
CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_ETF=m
+# CONFIG_NET_SCH_ETS is not set
+CONFIG_NET_SCH_FIFO=y
+CONFIG_NET_SCH_FQ_CODEL=y
+CONFIG_NET_SCH_FQ=m
+# CONFIG_NET_SCH_FQ_PIE is not set
CONFIG_NET_SCH_GRED=m
CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_HHF=m
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_SCH_MQPRIO=m
+CONFIG_NET_SCH_MULTIQ=m
CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_PIE=m
+CONFIG_NET_SCH_PLUG=m
CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_QFQ=m
CONFIG_NET_SCH_RED=m
-CONFIG_NET_SCH_RR=m
+CONFIG_NET_SCH_SFB=m
CONFIG_NET_SCH_SFQ=m
+# CONFIG_NET_SCH_SKBPRIO is not set
+CONFIG_NET_SCH_TAPRIO=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_TEQL=m
-CONFIG_NET_CLS=y
-CONFIG_NET_CLS_ACT=y
-CONFIG_NET_CLS_BASIC=m
-CONFIG_NET_CLS_CGROUP=y
-CONFIG_NET_CLS_FLOW=m
-CONFIG_NET_CLS_FW=m
-CONFIG_NET_CLS_IND=y
-CONFIG_NET_CLS_POLICE=y
-CONFIG_NET_CLS_ROUTE4=m
-CONFIG_NET_CLS_ROUTE=y
-CONFIG_NET_CLS_RSVP=m
-CONFIG_NET_CLS_RSVP6=m
-CONFIG_NET_CLS_TCINDEX=m
-CONFIG_NET_CLS_U32=m
-CONFIG_CLS_U32_MARK=y
-CONFIG_CLS_U32_PERF=y
-CONFIG_NET_EMATCH=y
-CONFIG_NET_EMATCH_CMP=m
-CONFIG_NET_EMATCH_META=m
-CONFIG_NET_EMATCH_NBYTE=m
-CONFIG_NET_EMATCH_STACK=32
-CONFIG_NET_EMATCH_TEXT=m
-CONFIG_NET_EMATCH_U32=m
-
-CONFIG_NET_ACT_GACT=m
-CONFIG_GACT_PROB=y
-CONFIG_NET_ACT_IPT=m
-CONFIG_NET_ACT_MIRRED=m
-CONFIG_NET_ACT_NAT=m
-CONFIG_NET_ACT_PEDIT=m
-CONFIG_NET_ACT_POLICE=m
-CONFIG_NET_ACT_SIMP=m
-
-CONFIG_DCB=y
-
-#
-# Network testing
-#
-CONFIG_NET_PKTGEN=m
-# CONFIG_NET_TCPPROBE is not set
-CONFIG_NET_DROP_MONITOR=y
-CONFIG_NETDEVICES=y
-
-# disable later --kyle
-CONFIG_COMPAT_NET_DEV_OPS=y
-
-#
-# ARCnet devices
-#
-# CONFIG_ARCNET is not set
-CONFIG_IFB=m
-CONFIG_DUMMY=m
-CONFIG_BONDING=m
-CONFIG_MACVLAN=m
-# CONFIG_EQUALIZER is not set
-CONFIG_TUN=m
-CONFIG_VETH=m
-# CONFIG_NET_SB1000 is not set
-
-#
-# ATM
-#
-CONFIG_ATM_DRIVERS=y
-# CONFIG_ATM_DUMMY is not set
-CONFIG_ATM_CLIP=m
-CONFIG_ATM_LANE=m
-CONFIG_ATM_BR2684=m
-CONFIG_NET_SCH_ATM=m
-CONFIG_ATM_TCP=m
-# CONFIG_ATM_LANAI is not set
-# CONFIG_ATM_ENI is not set
-# CONFIG_ATM_FIRESTREAM is not set
-# CONFIG_ATM_ZATM is not set
-# CONFIG_ATM_IDT77252 is not set
-# CONFIG_ATM_AMBASSADOR is not set
-# CONFIG_ATM_HORIZON is not set
-# CONFIG_ATM_FORE200E is not set
-# CONFIG_ATM_FORE200E_USE_TASKLET is not set
-# CONFIG_ATM_FORE200E_TX_RETRY is not set
-CONFIG_ATM_FORE200E_DEBUG=0
-
-# CONFIG_ATM_HE is not set
-CONFIG_PPPOATM=m
-CONFIG_PPPOL2TP=m
-# CONFIG_ATM_NICSTAR is not set
-# CONFIG_ATM_IA is not set
-# CONFIG_ATM_CLIP_NO_ICMP is not set
-# CONFIG_ATM_MPOA is not set
-# CONFIG_ATM_BR2684_IPFILTER is not set
-# CONFIG_ATM_ENI_DEBUG is not set
-# CONFIG_ATM_ENI_TUNE_BURST is not set
-# CONFIG_ATM_ZATM_DEBUG is not set
-# CONFIG_ATM_IDT77252_DEBUG is not set
-# CONFIG_ATM_IDT77252_RCV_ALL is not set
-# CONFIG_ATM_AMBASSADOR_DEBUG is not set
-# CONFIG_ATM_HORIZON_DEBUG is not set
-# CONFIG_ATM_HE_USE_SUNI is not set
-# CONFIG_ATM_NICSTAR_USE_SUNI is not set
-# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
-# CONFIG_ATM_IA_DEBUG is not set
-# CONFIG_ATM_SOLOS is not set
-
-CONFIG_RFKILL=m
-CONFIG_RFKILL_INPUT=y
-
-#
-# Ethernet (10 or 100Mbit)
-#
-CONFIG_NETDEV_1000=y
-CONFIG_NETDEV_10000=y
-CONFIG_NET_ETHERNET=y
-CONFIG_PHYLIB=m
-CONFIG_BROADCOM_PHY=m
-CONFIG_CICADA_PHY=m
-CONFIG_DAVICOM_PHY=m
-CONFIG_FIXED_PHY=y
-CONFIG_FIXED_MII_10_FDX=y
-CONFIG_FIXED_MII_100_FDX=y
-CONFIG_FIXED_MII_1000_FDX=y
-CONFIG_FIXED_MII_AMNT=1
-CONFIG_MDIO_BITBANG=m
-CONFIG_NATIONAL_PHY=m
-CONFIG_ICPLUS_PHY=m
-CONFIG_LSI_ET1011C_PHY=m
-CONFIG_LXT_PHY=m
-CONFIG_MARVELL_PHY=m
-CONFIG_QSEMI_PHY=m
-CONFIG_REALTEK_PHY=m
-CONFIG_SMSC_PHY=m
-CONFIG_STE10XP=m
-CONFIG_VITESSE_PHY=m
-
-CONFIG_MII=m
-CONFIG_HAPPYMEAL=m
-CONFIG_SUNGEM=m
-CONFIG_VORTEX=m
-CONFIG_TYPHOON=m
-CONFIG_DNET=m
-
-#
-# Tulip family network device support
-#
+CONFIG_NET_SOCK_MSG=y
+CONFIG_NET_SWITCHDEV=y
+CONFIG_NET_TC_SKB_EXT=y
+CONFIG_NET_TEAM=m
+CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
+CONFIG_NET_TEAM_MODE_BROADCAST=m
+CONFIG_NET_TEAM_MODE_LOADBALANCE=m
+CONFIG_NET_TEAM_MODE_RANDOM=m
+CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
CONFIG_NET_TULIP=y
-CONFIG_DE2104X=m
-CONFIG_DE2104X_DSL=0
-CONFIG_TULIP=m
-# CONFIG_TULIP_NAPI is not set
-# CONFIG_TULIP_MWI is not set
-CONFIG_TULIP_MMIO=y
-# CONFIG_NI5010 is not set
-# CONFIG_PCMCIA_XIRTULIP is not set
-CONFIG_DE4X5=m
-CONFIG_WINBOND_840=m
-CONFIG_DM9102=m
-CONFIG_PCMCIA_XIRCOM=m
-CONFIG_ULI526X=m
-# CONFIG_HP100 is not set
-CONFIG_LNE390=m
-CONFIG_NE3210=m
-CONFIG_ES3210=m
-CONFIG_NET_PCI=y
-CONFIG_PCNET32=m
-CONFIG_PCNET32_NAPI=y
-CONFIG_AMD8111_ETH=m
-CONFIG_AMD8111E_NAPI=y
-CONFIG_ADAPTEC_STARFIRE=m
-CONFIG_ADAPTEC_STARFIRE_NAPI=y
-CONFIG_B44=m
-CONFIG_B44_PCI=y
-CONFIG_BNX2=m
-CONFIG_CNIC=m
-CONFIG_QLA3XXX=m
-CONFIG_ATL1=m
-CONFIG_ATL1C=m
-CONFIG_ATL2=m
-CONFIG_ATL1E=m
-# CONFIG_EEPRO100 is not set
-CONFIG_E100=m
-CONFIG_FEALNX=m
-CONFIG_FORCEDETH=m
-CONFIG_FORCEDETH_NAPI=y
-CONFIG_NATSEMI=m
-CONFIG_NE2K_PCI=m
-CONFIG_8139CP=m
-CONFIG_8139TOO=m
-# CONFIG_8139TOO_PIO is not set
-# CONFIG_8139TOO_TUNE_TWISTER is not set
-CONFIG_8139TOO_8129=y
-# CONFIG_8139_OLD_RX_RESET is not set
-CONFIG_SIS900=m
-CONFIG_SIS190=m
-CONFIG_EPIC100=m
-CONFIG_SC92031=m
-CONFIG_SMSC9420=m
-CONFIG_SUNDANCE=m
-# CONFIG_SUNDANCE_MMIO is not set
-CONFIG_TLAN=m
-CONFIG_VIA_RHINE=m
-CONFIG_VIA_RHINE_MMIO=y
-CONFIG_VIA_RHINE_NAPI=y
-CONFIG_VIA_VELOCITY=m
-CONFIG_NET_POCKET=y
-# CONFIG_ATP is not set
-# CONFIG_DE600 is not set
-# CONFIG_DE620 is not set
-CONFIG_CASSINI=m
-# CONFIG_FEC_8XX is not set
-CONFIG_ETHOC=m
-# CONFIG_KS8842 is not set
-# CONFIG_KS8851_MLL is not set
-
-#
-# Ethernet (1000 Mbit)
-#
-CONFIG_ACENIC=m
-# CONFIG_ACENIC_OMIT_TIGON_I is not set
-CONFIG_DL2K=m
-CONFIG_E1000=m
-CONFIG_E1000_NAPI=y
-# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
-CONFIG_E1000E=m
-CONFIG_IGB=m
-# CONFIG_IGB_LRO is not set
-CONFIG_IGB_DCA=y
-CONFIG_IGBVF=m
-CONFIG_NS83820=m
-# CONFIG_HAMACHI is not set
-# CONFIG_YELLOWFIN is not set
-CONFIG_R8169=m
-CONFIG_R8169_NAPI=y
-CONFIG_R8169_VLAN=y
-# CONFIG_SK98LIN is not set
-CONFIG_SKGE=m
-# CONFIG_SKGE_DEBUG is not set
-CONFIG_TIGON3=m
-CONFIG_SKY2=m
-# CONFIG_SKY2_DEBUG is not set
-CONFIG_JME=m
-
-#
-# Ethernet (10000 Mbit)
-#
-CONFIG_CHELSIO_T1=m
-CONFIG_CHELSIO_T1_1G=y
-CONFIG_CHELSIO_T1_NAPI=y
-CONFIG_CHELSIO_T3=m
-CONFIG_IP1000=m
-CONFIG_IXGB=m
-CONFIG_IXGB_NAPI=y
-CONFIG_IXGBE=m
-CONFIG_IXGBE_DCA=y
-CONFIG_IXGBE_DCB=y
-CONFIG_MYRI10GE=m
-CONFIG_MYRI10GE_DCA=y
+CONFIG_NET_UDP_TUNNEL=m
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_NET_VENDOR_8390=y
+CONFIG_NET_VENDOR_ADAPTEC=y
+CONFIG_NET_VENDOR_AGERE=y
+CONFIG_NET_VENDOR_ALACRITECH=y
+CONFIG_NET_VENDOR_ALTEON=y
+CONFIG_NET_VENDOR_AMAZON=y
+CONFIG_NET_VENDOR_AMD=y
+CONFIG_NET_VENDOR_AQUANTIA=y
+CONFIG_NET_VENDOR_ARC=y
+CONFIG_NET_VENDOR_ATHEROS=y
+# CONFIG_NET_VENDOR_AURORA is not set
+CONFIG_NET_VENDOR_BROADCOM=y
+CONFIG_NET_VENDOR_BROCADE=y
+CONFIG_NET_VENDOR_CADENCE=y
+# CONFIG_NET_VENDOR_CAVIUM is not set
+CONFIG_NET_VENDOR_CHELSIO=y
+CONFIG_NET_VENDOR_CISCO=y
+# CONFIG_NET_VENDOR_CORTINA is not set
+CONFIG_NET_VENDOR_DEC=y
+CONFIG_NET_VENDOR_DLINK=y
+CONFIG_NET_VENDOR_EMULEX=y
+# CONFIG_NET_VENDOR_EZCHIP is not set
+# CONFIG_NET_VENDOR_FUJITSU is not set
+CONFIG_NET_VENDOR_GOOGLE=y
+# CONFIG_NET_VENDOR_HP is not set
+# CONFIG_NET_VENDOR_HUAWEI is not set
+# CONFIG_NET_VENDOR_I825XX is not set
+CONFIG_NET_VENDOR_INTEL=y
+CONFIG_NET_VENDOR_MARVELL=y
+CONFIG_NET_VENDOR_MELLANOX=y
+CONFIG_NET_VENDOR_MICREL=y
+# CONFIG_NET_VENDOR_MICROCHIP is not set
+# CONFIG_NET_VENDOR_MICROSEMI is not set
+CONFIG_NET_VENDOR_MYRI=y
+CONFIG_NET_VENDOR_NATSEMI=y
+CONFIG_NET_VENDOR_NETERION=y
+CONFIG_NET_VENDOR_NETRONOME=y
+# CONFIG_NET_VENDOR_NI is not set
+CONFIG_NET_VENDOR_NVIDIA=y
+CONFIG_NET_VENDOR_OKI=y
+CONFIG_NET_VENDOR_PACKET_ENGINES=y
+CONFIG_NET_VENDOR_PENSANDO=y
+CONFIG_NET_VENDOR_QLOGIC=y
+# CONFIG_NET_VENDOR_QUALCOMM is not set
+CONFIG_NET_VENDOR_RDC=y
+CONFIG_NET_VENDOR_REALTEK=y
+# CONFIG_NET_VENDOR_RENESAS is not set
+CONFIG_NET_VENDOR_ROCKER=y
+# CONFIG_NET_VENDOR_SAMSUNG is not set
+# CONFIG_NET_VENDOR_SEEQ is not set
+CONFIG_NET_VENDOR_SILAN=y
+CONFIG_NET_VENDOR_SIS=y
+CONFIG_NET_VENDOR_SMSC=y
+# CONFIG_NET_VENDOR_SOCIONEXT is not set
+CONFIG_NET_VENDOR_SOLARFLARE=y
+CONFIG_NET_VENDOR_STMICRO=y
+CONFIG_NET_VENDOR_SUN=y
+# CONFIG_NET_VENDOR_SYNOPSYS is not set
+CONFIG_NET_VENDOR_TEHUTI=y
+CONFIG_NET_VENDOR_TI=y
+CONFIG_NET_VENDOR_VIA=y
+CONFIG_NET_VENDOR_WIZNET=y
+CONFIG_NET_VENDOR_XILINX=y
+CONFIG_NET_VENDOR_XIRCOM=y
+CONFIG_NET_VRF=m
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NETWORK_PHY_TIMESTAMPING=y
+CONFIG_NETWORK_SECMARK=y
CONFIG_NETXEN_NIC=m
+CONFIG_NET=y
+CONFIG_NEW_LEDS=y
+CONFIG_NFC_DIGITAL=m
+# CONFIG_NFC_FDP is not set
+CONFIG_NFC_HCI=m
+CONFIG_NFC=m
+CONFIG_NFC_MEI_PHY=m
+CONFIG_NFC_MICROREAD_I2C=m
+CONFIG_NFC_MICROREAD=m
+CONFIG_NFC_MICROREAD_MEI=m
+# CONFIG_NFC_MRVL_I2C is not set
+CONFIG_NFC_MRVL=m
+# CONFIG_NFC_MRVL_SPI is not set
+CONFIG_NFC_MRVL_USB=m
+CONFIG_NFC_NCI=m
+CONFIG_NFC_NCI_SPI=m
+# CONFIG_NFC_NCI_UART is not set
+CONFIG_NFC_NXP_NCI_I2C=m
+CONFIG_NFC_NXP_NCI=m
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_BRIDGE=m
+CONFIG_NF_CONNTRACK_BROADCAST=m
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_LABELS=y
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_PROCFS=y
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SECMARK=y
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_SNMP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CONNTRACK_TIMEOUT=y
+CONFIG_NF_CONNTRACK_TIMESTAMP=y
+CONFIG_NF_CONNTRACK_ZONES=y
+# CONFIG_NFC_PN532_UART is not set
+CONFIG_NFC_PN533_I2C=m
+CONFIG_NFC_PN533=m
+CONFIG_NFC_PN533_USB=m
+CONFIG_NFC_PN544_I2C=m
+CONFIG_NFC_PN544=m
+CONFIG_NFC_PN544_MEI=m
+CONFIG_NFC_PORT100=m
+# CONFIG_NFC_S3FWRN5_I2C is not set
+# CONFIG_NFC_S3FWRN82_UART is not set
+CONFIG_NFC_SHDLC=y
+CONFIG_NFC_SIM=m
+CONFIG_NFC_ST21NFCA_I2C=m
+CONFIG_NFC_ST21NFCA=m
+# CONFIG_NFC_ST95HF is not set
+# CONFIG_NFC_ST_NCI_I2C is not set
+# CONFIG_NFC_ST_NCI_SPI is not set
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NF_CT_NETLINK_TIMEOUT=m
+CONFIG_NF_CT_PROTO_DCCP=y
+CONFIG_NF_CT_PROTO_GRE=y
+CONFIG_NF_CT_PROTO_SCTP=y
+CONFIG_NF_CT_PROTO_UDPLITE=y
+CONFIG_NFC_TRF7970A=m
+CONFIG_NF_DEFRAG_IPV4=m
+CONFIG_NF_DEFRAG_IPV6=m
+CONFIG_NF_DUP_IPV4=m
+CONFIG_NF_DUP_IPV6=m
+CONFIG_NF_DUP_NETDEV=m
+CONFIG_NF_FLOW_TABLE_INET=m
+CONFIG_NF_FLOW_TABLE_IPV4=m
+CONFIG_NF_FLOW_TABLE_IPV6=m
+CONFIG_NF_FLOW_TABLE=m
+CONFIG_NF_LOG_ARP=m
+CONFIG_NF_LOG_BRIDGE=m
+CONFIG_NF_LOG_COMMON=m
+CONFIG_NF_LOG_IPV4=m
+CONFIG_NF_LOG_IPV6=m
+CONFIG_NF_LOG_NETDEV=m
+CONFIG_NF_NAT_AMANDA=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_MASQUERADE=y
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_REDIRECT=y
+CONFIG_NF_NAT_SIP=m
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_TFTP=m
+# CONFIG_NFP_APP_ABM_NIC is not set
+CONFIG_NFP_APP_FLOWER=y
+# CONFIG_NFP_DEBUG is not set
+CONFIG_NFP=m
+CONFIG_NF_REJECT_IPV4=m
+CONFIG_NF_REJECT_IPV6=m
+CONFIG_NFS_ACL_SUPPORT=m
+CONFIG_NFS_COMMON=y
+CONFIG_NFSD_BLOCKLAYOUT=y
+CONFIG_NFS_DEBUG=y
+CONFIG_NFSD_FLEXFILELAYOUT=y
+CONFIG_NFS_DISABLE_UDP_SUPPORT=y
+CONFIG_NFSD=m
+CONFIG_NFSD_PNFS=y
+CONFIG_NFSD_SCSILAYOUT=y
+CONFIG_NFSD_V2_ACL=y
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V4_2_INTER_SSC=y
+CONFIG_NFSD_V4_SECURITY_LABEL=y
+CONFIG_NFSD_V4=y
+CONFIG_NFS_FSCACHE=y
+CONFIG_NFS_FS=m
+CONFIG_NF_SOCKET_IPV4=m
+CONFIG_NF_SOCKET_IPV6=m
+CONFIG_NFS_SWAP=y
+CONFIG_NFS_USE_KERNEL_DNS=y
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+CONFIG_NFS_V2=m
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V3=m
+CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
+# CONFIG_NFS_V4_1_MIGRATION is not set
+CONFIG_NFS_V4_1=y
+# CONFIG_NFS_V4_2_READ_PLUS is not set
+CONFIG_NFS_V4_2=y
+CONFIG_NFS_V4=m
+CONFIG_NFS_V4_SECURITY_LABEL=y
+CONFIG_NF_TABLES_ARP=y
+CONFIG_NF_TABLES_BRIDGE=m
+CONFIG_NF_TABLES_INET=y
+CONFIG_NF_TABLES_IPV4=y
+CONFIG_NF_TABLES_IPV6=y
+CONFIG_NF_TABLES=m
+CONFIG_NF_TABLES_NETDEV=y
+CONFIG_NF_TABLES_SET=m
+CONFIG_NFT_BRIDGE_META=m
+CONFIG_NFT_BRIDGE_REJECT=m
+CONFIG_NFT_COMPAT=m
+CONFIG_NFT_CONNLIMIT=m
+CONFIG_NFT_COUNTER=m
+CONFIG_NFT_CT=m
+CONFIG_NFT_DUP_IPV4=m
+CONFIG_NFT_DUP_IPV6=m
+CONFIG_NFT_DUP_NETDEV=m
+CONFIG_NFT_FIB_INET=m
+CONFIG_NFT_FIB_IPV4=m
+CONFIG_NFT_FIB_IPV6=m
+CONFIG_NFT_FIB=m
+CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NFT_FLOW_OFFLOAD=m
+CONFIG_NFT_FWD_NETDEV=m
+CONFIG_NFT_HASH=m
+CONFIG_NFT_LIMIT=m
+# CONFIG_NFTL is not set
+CONFIG_NFT_LOG=m
+CONFIG_NFT_MASQ=m
+CONFIG_NFT_NAT=m
+CONFIG_NFT_NUMGEN=m
+CONFIG_NFT_OBJREF=m
+CONFIG_NFT_OSF=m
+CONFIG_NF_TPROXY_IPV4=m
+CONFIG_NF_TPROXY_IPV6=m
+CONFIG_NFT_QUEUE=m
+CONFIG_NFT_QUOTA=m
+CONFIG_NFT_REDIR=m
+CONFIG_NFT_REJECT_INET=m
+CONFIG_NFT_REJECT_IPV4=m
+CONFIG_NFT_REJECT_IPV6=m
+CONFIG_NFT_REJECT=m
+CONFIG_NFT_REJECT_NETDEV=m
+CONFIG_NFT_SOCKET=m
+CONFIG_NFT_SYNPROXY=m
+CONFIG_NFT_TPROXY=m
+CONFIG_NFT_TUNNEL=m
+CONFIG_NFT_XFRM=m
+CONFIG_N_GSM=m
+CONFIG_N_HDLC=m
+# CONFIG_NI903X_WDT is not set
+CONFIG_NIC7018_WDT=m
+CONFIG_NILFS2_FS=m
+# CONFIG_NITRO_ENCLAVES is not set
CONFIG_NIU=m
-CONFIG_S2IO=m
-CONFIG_S2IO_NAPI=y
-CONFIG_VXGE=m
-# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
-CONFIG_TEHUTI=m
-CONFIG_ENIC=m
-CONFIG_MLX4_EN=m
-# CONFIG_MLX4_DEBUG is not set
-CONFIG_QLGE=m
-CONFIG_SFC=m
-CONFIG_SFC_MTD=y
-CONFIG_BE2NET=m
-
-CONFIG_FDDI=y
-# CONFIG_DEFXX is not set
-# CONFIG_SKFP is not set
-# CONFIG_HIPPI is not set
-# CONFIG_PLIP is not set
-CONFIG_PPP=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_IPPP_FILTER=y
-# CONFIG_PPP_BSDCOMP is not set
-CONFIG_PPPOE=m
-CONFIG_PPP_MPPE=m
-CONFIG_SLIP=m
-CONFIG_SLIP_COMPRESSED=y
-CONFIG_SLIP_SMART=y
-# CONFIG_SLIP_MODE_SLIP6 is not set
-
-#
-# Wireless LAN
-#
-#
-CONFIG_WLAN=y
-# CONFIG_WLAN_PRE80211 is not set
-# CONFIG_STRIP is not set
-# CONFIG_ARLAN is not set
-CONFIG_PCMCIA_WAVELAN=m
-CONFIG_PCMCIA_NETWAVE=m
-CONFIG_WLAN_80211=y
-# CONFIG_PCMCIA_RAYCS is not set
-
-CONFIG_WIRELESS=y
-CONFIG_CFG80211=m
-# CONFIG_CFG80211_REG_DEBUG is not set
-# CONFIG_CFG80211_DEBUGFS is not set
-# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
-CONFIG_CFG80211_DEFAULT_PS=y
-CONFIG_NL80211=y
# CONFIG_NL80211_TESTMODE is not set
-# CONFIG_WIRELESS_OLD_REGULATORY is not set
-CONFIG_WIRELESS_EXT=y
-CONFIG_WIRELESS_EXT_SYSFS=y
-CONFIG_LIB80211=m
-CONFIG_LIB80211_CRYPT_WEP=m
-CONFIG_LIB80211_CRYPT_CCMP=m
-CONFIG_LIB80211_CRYPT_TKIP=m
-# CONFIG_LIB80211_DEBUG is not set
-
-CONFIG_MAC80211=m
-CONFIG_MAC80211_QOS=y
-CONFIG_MAC80211_RC_MINSTREL=y
-# CONFIG_MAC80211_RC_DEFAULT_PID is not set
-CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
-# CONFIG_MAC80211_MESH is not set
-CONFIG_MAC80211_LEDS=y
-# CONFIG_MAC80211_DEBUGFS is not set
-# CONFIG_MAC80211_DEBUG_MENU is not set
-CONFIG_MAC80211_DEFAULT_PS=y
-
-CONFIG_WIMAX=m
-CONFIG_WIMAX_DEBUG_LEVEL=8
-CONFIG_WIMAX_I2400M_USB=m
-CONFIG_WIMAX_I2400M_SDIO=m
-CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
-
-CONFIG_ADM8211=m
-CONFIG_ATH_COMMON=m
-CONFIG_ATH5K=m
-# CONFIG_ATH5K_DEBUG is not set
-CONFIG_ATH9K=m
-# CONFIG_ATH9K_DEBUG is not set
-CONFIG_AT76C50X_USB=m
-CONFIG_AIRO=m
-CONFIG_AIRO_CS=m
-CONFIG_ATMEL=m
-# CONFIG_BCM43XX is not set
-CONFIG_B43=m
-CONFIG_B43_PCMCIA=y
-CONFIG_B43_SDIO=y
-CONFIG_B43_DEBUG=y
-CONFIG_B43_PHY_LP=y
-# CONFIG_B43_FORCE_PIO is not set
-CONFIG_B43LEGACY=m
-CONFIG_B43LEGACY_DEBUG=y
-CONFIG_B43LEGACY_DMA=y
-CONFIG_B43LEGACY_PIO=y
-CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
-# CONFIG_B43LEGACY_DMA_MODE is not set
-# CONFIG_B43LEGACY_PIO_MODE is not set
-CONFIG_HERMES=m
-CONFIG_HERMES_CACHE_FW_ON_INIT=y
-CONFIG_HOSTAP=m
-CONFIG_HOSTAP_PCI=m
-CONFIG_HOSTAP_PLX=m
-CONFIG_HOSTAP_FIRMWARE=y
-CONFIG_HOSTAP_FIRMWARE_NVRAM=y
-CONFIG_HOSTAP_CS=m
-# CONFIG_IPW2100 is not set
-# CONFIG_IPW2200 is not set
-# CONFIG_IPW2100_DEBUG is not set
-# CONFIG_IPW2200_DEBUG is not set
-# CONFIG_LIBIPW_DEBUG is not set
-CONFIG_LIBERTAS=m
-CONFIG_LIBERTAS_USB=m
-CONFIG_LIBERTAS_CS=m
-CONFIG_LIBERTAS_SDIO=m
-# CONFIG_LIBERTAS_DEBUG is not set
-CONFIG_LIBERTAS_THINFIRM=m
-CONFIG_LIBERTAS_THINFIRM_USB=m
-CONFIG_IWLWIFI=m
-CONFIG_IWLWIFI_LEDS=y
-CONFIG_IWLWIFI_RUN_TIME_CALIB=y
-# CONFIG_IWLWIFI_DEBUG is not set
-CONFIG_IWLWIFI_DEBUGFS=y
-CONFIG_IWLWIFI_RFKILL=y
-# CONFIG_IWLWIFI_SPECTRUM_MEASUREMENT is not set
-CONFIG_IWLAGN=m
-CONFIG_IWL4965=m
-CONFIG_IWL5000=y
-CONFIG_IWL5000_RUN_TIME_CALIB=y
-CONFIG_IWL3945=m
-CONFIG_IWL3945_RFKILL=y
-# CONFIG_IWL3945_DEBUG is not set
-CONFIG_IWL3945_SPECTRUM_MEASUREMENT=y
-CONFIG_IWL3945_LEDS=y
-CONFIG_IWM=m
-# CONFIG_IWM_DEBUG is not set
-CONFIG_MAC80211_HWSIM=m
+CONFIG_NLATTR=y
+CONFIG_NLMON=m
+CONFIG_NLS_ASCII=y
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_ISO8859_1=m
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_MAC_CELTIC=m
+CONFIG_NLS_MAC_CENTEURO=m
+CONFIG_NLS_MAC_CROATIAN=m
+CONFIG_NLS_MAC_CYRILLIC=m
+CONFIG_NLS_MAC_GAELIC=m
+CONFIG_NLS_MAC_GREEK=m
+CONFIG_NLS_MAC_ICELAND=m
+CONFIG_NLS_MAC_INUIT=m
+CONFIG_NLS_MAC_ROMANIAN=m
+CONFIG_NLS_MAC_ROMAN=m
+CONFIG_NLS_MAC_TURKISH=m
+CONFIG_NLS_UTF8=m
+CONFIG_NLS=y
+# CONFIG_NOA1305 is not set
+CONFIG_NO_HZ_COMMON=y
+CONFIG_NO_HZ=y
+CONFIG_NOP_TRACER=y
+CONFIG_NOP_USB_XCEIV=m
CONFIG_NORTEL_HERMES=m
+CONFIG_NOTIFIER_ERROR_INJECTION=m
+CONFIG_NOUVEAU_DEBUG=5
+CONFIG_NOUVEAU_DEBUG_DEFAULT=3
+# CONFIG_NOUVEAU_DEBUG_MMU is not set
+# CONFIG_NOUVEAU_DEBUG_PUSH is not set
+# CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT is not set
+CONFIG_NOZOMI=m
+CONFIG_NS83820=m
+# CONFIG_NTFS_DEBUG is not set
+CONFIG_NTFS_FS=m
+CONFIG_NTFS_RW=y
+CONFIG_NULL_TTY=m
+CONFIG_NUMA_KEEP_MEMINFO=y
+CONFIG_NVME_CORE=m
+CONFIG_NVME_FABRICS=m
+CONFIG_NVME_FC=m
+CONFIG_NVME_HWMON=y
+CONFIG_NVMEM_SYSFS=y
+CONFIG_NVME_MULTIPATH=y
+CONFIG_NVMEM=y
+CONFIG_NVME_RDMA=m
+CONFIG_NVME_TARGET_FCLOOP=m
+CONFIG_NVME_TARGET_FC=m
+CONFIG_NVME_TARGET_LOOP=m
+CONFIG_NVME_TARGET=m
+CONFIG_NVME_TARGET_PASSTHRU=y
+CONFIG_NVME_TARGET_RDMA=m
+CONFIG_NVME_TARGET_TCP=m
+CONFIG_NVME_TCP=m
+# CONFIG_NVM is not set
+CONFIG_NVRAM=m
+CONFIG_NV_TCO=m
+# CONFIG_NXP_TJA11XX_PHY is not set
+CONFIG_OBJAGG=m
+# CONFIG_OCFS2_DEBUG_FS is not set
+# CONFIG_OCFS2_DEBUG_MASKLOG is not set
+CONFIG_OCFS2_FS=m
+CONFIG_OCFS2_FS_O2CB=m
+CONFIG_OCFS2_FS_STATS=y
+CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
+CONFIG_OID_REGISTRY=y
+CONFIG_OLD_SIGSUSPEND3=y
+# CONFIG_OMFS_FS is not set
+CONFIG_OPENVSWITCH_GENEVE=m
+CONFIG_OPENVSWITCH_GRE=m
+CONFIG_OPENVSWITCH=m
+CONFIG_OPENVSWITCH_VXLAN=m
+# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set
+CONFIG_OPROFILE=m
+CONFIG_OPROFILE_NMI_TIMER=y
+CONFIG_OPT3001=m
+CONFIG_OPTIMIZE_INLINING=y
+CONFIG_OPTPROBES=y
+CONFIG_ORANGEFS_FS=m
+CONFIG_ORINOCO_USB=m
+CONFIG_OSF_PARTITION=y
+# CONFIG_OVERLAY_FS_INDEX is not set
+CONFIG_OVERLAY_FS=m
+# CONFIG_OVERLAY_FS_METACOPY is not set
+CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y
+# CONFIG_OVERLAY_FS_REDIRECT_DIR is not set
+# CONFIG_OVERLAY_FS_XINO_AUTO is not set
CONFIG_P54_COMMON=m
-CONFIG_P54_USB=m
+CONFIG_P54_LEDS=y
CONFIG_P54_PCI=m
+# CONFIG_P54_SPI is not set
+CONFIG_P54_USB=m
+CONFIG_PA12203001=m
+CONFIG_PACKET_DIAG=m
+CONFIG_PACKET=y
+CONFIG_PACKING=y
+CONFIG_PADATA=y
+CONFIG_PAGE_COUNTER=y
+# CONFIG_PAGE_EXTENSION is not set
+# CONFIG_PAGE_OWNER is not set
+# CONFIG_PAGE_POISONING is not set
+CONFIG_PAGE_POOL=y
+CONFIG_PAGE_REPORTING=y
+CONFIG_PANASONIC_LAPTOP=m
+# CONFIG_PANEL_CHANGE_MESSAGE is not set
+# CONFIG_PANEL is not set
+# CONFIG_PANIC_ON_OOPS is not set
+CONFIG_PANIC_ON_OOPS_VALUE=0
+CONFIG_PANIC_TIMEOUT=0
+CONFIG_PANTHERLORD_FF=y
+CONFIG_PARAVIRT_CLOCK=y
+# CONFIG_PARAVIRT_DEBUG is not set
+CONFIG_PARAVIRT_SPINLOCKS=y
+CONFIG_PARAVIRT_TIME_ACCOUNTING=y
+CONFIG_PARAVIRT=y
+# CONFIG_PARIDE is not set
+CONFIG_PARMAN=m
+CONFIG_PARPORT_1284=y
+# CONFIG_PARPORT_AX88796 is not set
+CONFIG_PARPORT=m
+CONFIG_PARPORT_NOT_PC=y
+# CONFIG_PARPORT_PANEL is not set
+# CONFIG_PARPORT_PC_FIFO is not set
+CONFIG_PARPORT_PC=m
+CONFIG_PARPORT_PC_PCMCIA=m
+# CONFIG_PARPORT_PC_SUPERIO is not set
+CONFIG_PARPORT_SERIAL=m
+CONFIG_PARTITION_ADVANCED=y
+CONFIG_PATA_ACPI=m
+CONFIG_PATA_ALI=m
+CONFIG_PATA_AMD=m
+CONFIG_PATA_ARTOP=m
+CONFIG_PATA_ATIIXP=m
+CONFIG_PATA_ATP867X=m
+CONFIG_PATA_CMD640_PCI=m
+CONFIG_PATA_CMD64X=m
+# CONFIG_PATA_CYPRESS is not set
+CONFIG_PATA_EFAR=m
+CONFIG_PATA_HPT366=m
+CONFIG_PATA_HPT37X=m
+CONFIG_PATA_HPT3X2N=m
+# CONFIG_PATA_HPT3X3_DMA is not set
+CONFIG_PATA_HPT3X3=m
+CONFIG_PATA_IT8213=m
+CONFIG_PATA_IT821X=m
+CONFIG_PATA_JMICRON=m
+# CONFIG_PATA_LEGACY is not set
+CONFIG_PATA_MARVELL=m
+CONFIG_PATA_MPIIX=m
+CONFIG_PATA_NETCELL=m
+CONFIG_PATA_NINJA32=m
+CONFIG_PATA_NS87410=m
+CONFIG_PATA_NS87415=m
+CONFIG_PATA_OLDPIIX=m
+CONFIG_PATA_OPTIDMA=m
+CONFIG_PATA_OPTI=m
+CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_PDC2027X=m
+CONFIG_PATA_PDC_OLD=m
+# CONFIG_PATA_RADISYS is not set
+# CONFIG_PATA_RDC is not set
+# CONFIG_PATA_RZ1000 is not set
+CONFIG_PATA_SCH=m
+CONFIG_PATA_SERVERWORKS=m
+CONFIG_PATA_SIL680=m
+CONFIG_PATA_SIS=m
+CONFIG_PATA_TIMINGS=y
+CONFIG_PATA_TOSHIBA=m
+CONFIG_PATA_TRIFLEX=m
+CONFIG_PATA_VIA=m
+CONFIG_PATA_WINBOND=m
+# CONFIG_PC87413_WDT is not set
+CONFIG_PCCARD=m
+CONFIG_PCCARD_NONSTATIC=y
+CONFIG_PCENGINES_APU2=m
+CONFIG_PCI_ATS=y
+# CONFIG_PCI_DEBUG is not set
+CONFIG_PCI_DIRECT=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_PCIEAER_INJECT=m
+CONFIG_PCIEAER=y
+# CONFIG_PCIEASPM_DEBUG is not set
+CONFIG_PCIEASPM_DEFAULT=y
+# CONFIG_PCIEASPM_PERFORMANCE is not set
+# CONFIG_PCIEASPM_POWERSAVE is not set
+# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set
+CONFIG_PCIEASPM=y
+# CONFIG_PCIE_BW is not set
+CONFIG_PCIE_DPC=y
+# CONFIG_PCIE_DW_PLAT_HOST is not set
+CONFIG_PCIE_ECRC=y
+# CONFIG_PCIE_EDR is not set
+# CONFIG_PCI_ENDPOINT is not set
+# CONFIG_PCI_ENDPOINT_TEST is not set
+CONFIG_PCIE_PME=y
+CONFIG_PCIEPORTBUS=y
+CONFIG_PCIE_PTM=y
CONFIG_PCI_HERMES=m
+CONFIG_PCI_IOV=y
+CONFIG_PCI_LABEL=y
+CONFIG_PCI_LOCKLESS_CONFIG=y
+# CONFIG_PCI_MESON is not set
+CONFIG_PCI_MMCONFIG=y
+CONFIG_PCI_MSI_IRQ_DOMAIN=y
+CONFIG_PCI_MSI=y
+CONFIG_PCI_PASID=y
+CONFIG_PCIPCWATCHDOG=m
+CONFIG_PCI_PF_STUB=m
+CONFIG_PCI_PRI=y
+CONFIG_PCI_QUIRKS=y
+# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
+CONFIG_PCI_STUB=y
+CONFIG_PCI_SW_SWITCHTEC=m
+CONFIG_PCI=y
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_3C589=m
+CONFIG_PCMCIA_AXNET=m
+CONFIG_PCMCIA_HERMES=m
+CONFIG_PCMCIA_LOAD_CIS=y
+CONFIG_PCMCIA=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_PCMCIA_PCNET=m
+# CONFIG_PCMCIA_RAYCS is not set
+CONFIG_PCMCIA_SMC91C92=m
+# CONFIG_PCMCIA_SPECTRUM is not set
+# CONFIG_PCMCIA_WL3501 is not set
+CONFIG_PCMCIA_XIRC2PS=m
+CONFIG_PCMCIA_XIRCOM=m
+CONFIG_PCNET32=m
+CONFIG_PCSPKR_PLATFORM=y
+CONFIG_PCS_XPCS=m
+CONFIG_PD6729=m
+# CONFIG_PDA_POWER is not set
+CONFIG_PDC_ADMA=m
+CONFIG_PEAQ_WMI=m
+# CONFIG_PERCPU_STATS is not set
+# CONFIG_PERCPU_TEST is not set
+CONFIG_PERF_EVENTS_AMD_POWER=m
+CONFIG_PERF_EVENTS_INTEL_CSTATE=m
+CONFIG_PERF_EVENTS_INTEL_RAPL=m
+CONFIG_PERF_EVENTS_INTEL_UNCORE=m
+CONFIG_PERF_EVENTS=y
+CONFIG_PERSISTENT_KEYRINGS=y
+# CONFIG_PGTABLE_MAPPING is not set
+# CONFIG_PHANTOM is not set
+# CONFIG_PHONET is not set
+# CONFIG_PHY_CPCAP_USB is not set
+# CONFIG_PHY_INTEL_LGM_EMMC is not set
+CONFIG_PHYLIB=m
+CONFIG_PHYLINK=m
+# CONFIG_PHY_PXA_28NM_HSIC is not set
+# CONFIG_PHY_PXA_28NM_USB2 is not set
+# CONFIG_PHY_QCOM_USB_HSIC is not set
+# CONFIG_PHY_QCOM_USB_HS is not set
+# CONFIG_PHY_TUSB1210 is not set
+# CONFIG_PI433 is not set
+CONFIG_PID_NS=y
+CONFIG_PINCONF=y
+# CONFIG_PINCTRL_ALDERLAKE is not set
+CONFIG_PINCTRL_AMD=m
+CONFIG_PINCTRL_BAYTRAIL=m
+CONFIG_PINCTRL_BROXTON=m
+CONFIG_PINCTRL_CANNONLAKE=m
+CONFIG_PINCTRL_CEDARFORK=m
+CONFIG_PINCTRL_CHERRYVIEW=m
+CONFIG_PINCTRL_DENVERTON=m
+# CONFIG_PINCTRL_ELKHARTLAKE is not set
+# CONFIG_PINCTRL_EMMITSBURG is not set
+CONFIG_PINCTRL_GEMINILAKE=m
+CONFIG_PINCTRL_ICELAKE=m
+CONFIG_PINCTRL_INTEL=m
+# CONFIG_PINCTRL_JASPERLAKE is not set
+# CONFIG_PINCTRL_LAKEFIELD is not set
+CONFIG_PINCTRL_LEWISBURG=m
+# CONFIG_PINCTRL_LYNXPOINT is not set
+# CONFIG_PINCTRL_MCP23S08 is not set
+CONFIG_PINCTRL_SUNRISEPOINT=m
+CONFIG_PINCTRL_TIGERLAKE=m
+CONFIG_PINCTRL=y
+# CONFIG_PING is not set
+CONFIG_PINMUX=y
+CONFIG_PKCS7_MESSAGE_PARSER=y
+# CONFIG_PKCS7_TEST_KEY is not set
+CONFIG_PKCS8_PRIVATE_KEY_PARSER=m
+CONFIG_PLDMFW=y
+# CONFIG_PLIP is not set
+CONFIG_PLUGIN_HOSTCC="g++"
+# CONFIG_PLX_DMA is not set
CONFIG_PLX_HERMES=m
-CONFIG_PCI_ATMEL=m
-CONFIG_MWL8K=m
+# CONFIG_PM_ADVANCED_DEBUG is not set
+# CONFIG_PM_AUTOSLEEP is not set
+CONFIG_PMBUS=m
+CONFIG_PMC_ATOM=y
+CONFIG_PM_CLK=y
+CONFIG_PM_DEBUG=y
+# CONFIG_PM_DEVFREQ_EVENT is not set
+CONFIG_PM_DEVFREQ=y
+CONFIG_PM_GENERIC_DOMAINS_SLEEP=y
+CONFIG_PM_GENERIC_DOMAINS=y
+CONFIG_PMIC_OPREGION=y
+CONFIG_PM_NOTIFIER_ERROR_INJECT=m
+CONFIG_PM_OPP=y
+# CONFIG_PMS7003 is not set
+CONFIG_PM_SLEEP_DEBUG=y
+CONFIG_PM_SLEEP_SMP=y
+CONFIG_PM_SLEEP=y
+CONFIG_PM_STD_PARTITION=""
+# CONFIG_PM_TEST_SUSPEND is not set
+CONFIG_PM_TRACE_RTC=y
+CONFIG_PM_TRACE=y
+# CONFIG_PM_WAKELOCKS is not set
+CONFIG_PM=y
+CONFIG_PNFS_BLOCK=m
+CONFIG_PNFS_FILE_LAYOUT=m
+CONFIG_PNFS_FLEXFILE_LAYOUT=m
+CONFIG_PNPACPI=y
+# CONFIG_PNP_DEBUG_MESSAGES is not set
+CONFIG_PNP=y
+CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_TIMERS=y
+# CONFIG_POWER_AVS is not set
+CONFIG_POWERCAP=y
+# CONFIG_POWER_RESET_RESTART is not set
+CONFIG_POWER_RESET=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+CONFIG_POWER_SUPPLY_HWMON=y
+CONFIG_POWER_SUPPLY=y
+CONFIG_PPDEV=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP=m
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPPOATM=m
+CONFIG_PPPOE=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPS_CLIENT_GPIO=m
+# CONFIG_PPS_CLIENT_KTIMER is not set
+CONFIG_PPS_CLIENT_LDISC=m
+CONFIG_PPS_CLIENT_PARPORT=m
+# CONFIG_PPS_DEBUG is not set
+CONFIG_PPS=y
+CONFIG_PPTP=m
+# CONFIG_PREEMPTIRQ_DELAY_TEST is not set
+# CONFIG_PREEMPTIRQ_EVENTS is not set
+# CONFIG_PREEMPT is not set
+# CONFIG_PREEMPT_NONE is not set
+CONFIG_PREEMPT_NOTIFIERS=y
+CONFIG_PREEMPT_VOLUNTARY=y
+# CONFIG_PRESTERA is not set
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+# CONFIG_PRIME_NUMBERS is not set
+CONFIG_PRINTER=m
+# CONFIG_PRINTK_CALLER is not set
+CONFIG_PRINTK_NMI=y
+CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13
+CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK=y
+# CONFIG_PRINT_QUOTA_WARNING is not set
+# CONFIG_PRISM2_USB is not set
# CONFIG_PRISM54 is not set
-CONFIG_PCMCIA_HERMES=m
-CONFIG_PCMCIA_SPECTRUM=m
-CONFIG_PCMCIA_ATMEL=m
-CONFIG_PCMCIA_WL3501=m
-CONFIG_RT2X00=m
-CONFIG_RT2X00_LIB_DEBUGFS=y
-# CONFIG_RT2X00_DEBUG is not set
+CONFIG_PROBE_EVENTS=y
+CONFIG_PROC_CHILDREN=y
+CONFIG_PROC_CPU_RESCTRL=y
+CONFIG_PROC_EVENTS=y
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_PROC_PID_ARCH_STATUS=y
+CONFIG_PROC_PID_CPUSET=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_THERMAL_MMIO_RAPL=m
+CONFIG_PROC_VMCORE_DEVICE_DUMP=y
+CONFIG_PROC_VMCORE=y
+# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
+CONFIG_PROFILING=y
+# CONFIG_PROVE_LOCKING is not set
+CONFIG_PROVIDE_OHCI1394_DMA_INIT=y
+CONFIG_PSAMPLE=m
+CONFIG_PSI_DEFAULT_DISABLED=y
+CONFIG_PSI=y
+# CONFIG_PSTORE_842_COMPRESS_DEFAULT is not set
+CONFIG_PSTORE_842_COMPRESS=y
+CONFIG_PSTORE_BLK_BLKDEV=""
+CONFIG_PSTORE_BLK_KMSG_SIZE=64
+CONFIG_PSTORE_BLK=m
+CONFIG_PSTORE_BLK_MAX_REASON=2
+CONFIG_PSTORE_COMPRESS_DEFAULT="lzo"
+CONFIG_PSTORE_COMPRESS=y
+# CONFIG_PSTORE_CONSOLE is not set
+CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240
+# CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT is not set
+CONFIG_PSTORE_DEFLATE_COMPRESS=y
+# CONFIG_PSTORE_FTRACE is not set
+# CONFIG_PSTORE_LZ4_COMPRESS_DEFAULT is not set
+CONFIG_PSTORE_LZ4_COMPRESS=m
+# CONFIG_PSTORE_LZ4HC_COMPRESS_DEFAULT is not set
+CONFIG_PSTORE_LZ4HC_COMPRESS=m
+CONFIG_PSTORE_LZO_COMPRESS_DEFAULT=y
+CONFIG_PSTORE_LZO_COMPRESS=m
+# CONFIG_PSTORE_PMSG is not set
+CONFIG_PSTORE_RAM=m
+CONFIG_PSTORE=y
+CONFIG_PSTORE_ZONE=m
+# CONFIG_PSTORE_ZSTD_COMPRESS_DEFAULT is not set
+CONFIG_PSTORE_ZSTD_COMPRESS=y
+CONFIG_PTDUMP_CORE=y
+# CONFIG_PTDUMP_DEBUGFS is not set
+CONFIG_PTP_1588_CLOCK_IDT82P33=m
+CONFIG_PTP_1588_CLOCK_IDTCM=m
+# CONFIG_PTP_1588_CLOCK_INES is not set
+CONFIG_PTP_1588_CLOCK_KVM=m
+# CONFIG_PTP_1588_CLOCK_OCP is not set
+CONFIG_PTP_1588_CLOCK_VMW=m
+CONFIG_PTP_1588_CLOCK=y
+# CONFIG_PUNIT_ATOM_DEBUG is not set
+CONFIG_PVH=y
+CONFIG_PVPANIC=m
+# CONFIG_PWM_DEBUG is not set
+# CONFIG_PWM_DWC is not set
+CONFIG_PWM_LPSS=m
+CONFIG_PWM_LPSS_PCI=m
+CONFIG_PWM_LPSS_PLATFORM=m
+# CONFIG_PWM_PCA9685 is not set
+CONFIG_PWM_SYSFS=y
+CONFIG_PWM=y
+# CONFIG_QCOM_HIDMA is not set
+# CONFIG_QCOM_HIDMA_MGMT is not set
+CONFIG_QEDE=m
+CONFIG_QED_FCOE=y
+CONFIG_QEDF=m
+CONFIG_QEDI=m
+CONFIG_QED_ISCSI=y
+CONFIG_QED_LL2=y
+CONFIG_QED=m
+CONFIG_QED_OOO=y
+CONFIG_QED_SRIOV=y
+# CONFIG_QFMT_V1 is not set
+CONFIG_QFMT_V2=y
+CONFIG_QLA3XXX=m
+CONFIG_QLCNIC_DCB=y
+CONFIG_QLCNIC_HWMON=y
+CONFIG_QLCNIC=m
+CONFIG_QLCNIC_SRIOV=y
+CONFIG_QLGE=m
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_QNX6FS_FS is not set
+# CONFIG_QRTR is not set
+CONFIG_QSEMI_PHY=m
+CONFIG_QTNFMAC=m
+CONFIG_QTNFMAC_PCIE=m
+CONFIG_QUEUED_RWLOCKS=y
+CONFIG_QUEUED_SPINLOCKS=y
+CONFIG_QUOTACTL=y
+# CONFIG_QUOTA_DEBUG is not set
+CONFIG_QUOTA_NETLINK_INTERFACE=y
+CONFIG_QUOTA_TREE=y
+CONFIG_QUOTA=y
+CONFIG_R6040=m
+CONFIG_R8169=m
+CONFIG_R8188EU=m
+CONFIG_R8712U=m
+CONFIG_RADIO_ADAPTERS=y
+# CONFIG_RADIO_MAXIRADIO is not set
+# CONFIG_RADIO_SAA7706H is not set
+# CONFIG_RADIO_SHARK2 is not set
+# CONFIG_RADIO_SHARK is not set
+# CONFIG_RADIO_SI470X is not set
+# CONFIG_RADIO_SI4713 is not set
+CONFIG_RADIO_TEA575X=m
+# CONFIG_RADIO_TEA5764 is not set
+# CONFIG_RADIO_TEF6862 is not set
+# CONFIG_RADIO_WL1273 is not set
+# CONFIG_RAID6_PQ_BENCHMARK is not set
+CONFIG_RAID6_PQ=m
+CONFIG_RAID_ATTRS=m
+# CONFIG_RANDOM32_SELFTEST is not set
+CONFIG_RANDOMIZE_BASE=y
+# CONFIG_RANDOM_TRUST_BOOTLOADER is not set
+CONFIG_RANDOM_TRUST_CPU=y
+# CONFIG_RAPIDIO is not set
+CONFIG_RAS=y
+CONFIG_RATIONAL=y
+# CONFIG_RAVE_SP_CORE is not set
+CONFIG_RAW_DRIVER=y
+# CONFIG_RBTREE_TEST is not set
+CONFIG_RC_ATI_REMOTE=m
+CONFIG_RC_CORE=m
+CONFIG_RC_DECODERS=y
+CONFIG_RC_DEVICES=y
+CONFIG_RC_LOOPBACK=m
+CONFIG_RC_MAP=m
+CONFIG_RCU_CPU_STALL_TIMEOUT=60
+# CONFIG_RCU_EQS_DEBUG is not set
+# CONFIG_RCU_EXPERT is not set
+CONFIG_RCU_NEED_SEGCBLIST=y
+# CONFIG_RCU_PERF_TEST is not set
+# CONFIG_RCU_REF_SCALE_TEST is not set
+# CONFIG_RCU_SCALE_TEST is not set
+CONFIG_RCU_STALL_COMMON=y
+CONFIG_RCU_TORTURE_TEST=m
+# CONFIG_RCU_TRACE is not set
+CONFIG_RC_XBOX_DVD=m
+CONFIG_RD_BZIP2=y
+CONFIG_RD_GZIP=y
+CONFIG_RD_LZ4=y
+CONFIG_RD_LZMA=y
+CONFIG_RD_LZO=y
+CONFIG_RDMA_RXE=m
+CONFIG_RDMA_SIW=m
+# CONFIG_RDS_DEBUG is not set
+CONFIG_RDS=m
+CONFIG_RDS_RDMA=m
+CONFIG_RDS_TCP=m
+CONFIG_RD_XZ=y
+CONFIG_RD_ZSTD=y
+# CONFIG_READABLE_ASM is not set
+# CONFIG_READ_ONLY_THP_FOR_FS is not set
+CONFIG_REALTEK_AUTOPM=y
+CONFIG_REALTEK_PHY=m
+CONFIG_REED_SOLOMON_DEC8=y
+CONFIG_REED_SOLOMON_ENC8=y
+CONFIG_REED_SOLOMON=m
+# CONFIG_REED_SOLOMON_TEST is not set
+# CONFIG_REFCOUNT_FULL is not set
+CONFIG_REGMAP_I2C=m
+CONFIG_REGMAP_IRQ=y
+CONFIG_REGMAP_MMIO=m
+CONFIG_REGMAP_SOUNDWIRE=m
+CONFIG_REGMAP_SPI=m
+CONFIG_REGMAP=y
+# CONFIG_REGULATOR_88PG86X is not set
+# CONFIG_REGULATOR_ACT8865 is not set
+# CONFIG_REGULATOR_AD5398 is not set
+# CONFIG_REGULATOR_DA9210 is not set
+# CONFIG_REGULATOR_DA9211 is not set
+# CONFIG_REGULATOR_DEBUG is not set
+# CONFIG_REGULATOR_FAN53555 is not set
+# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
+# CONFIG_REGULATOR_GPIO is not set
+# CONFIG_REGULATOR_ISL6271A is not set
+# CONFIG_REGULATOR_ISL9305 is not set
+# CONFIG_REGULATOR_LP3971 is not set
+# CONFIG_REGULATOR_LP3972 is not set
+# CONFIG_REGULATOR_LP872X is not set
+# CONFIG_REGULATOR_LP8755 is not set
+# CONFIG_REGULATOR_LTC3589 is not set
+# CONFIG_REGULATOR_LTC3676 is not set
+# CONFIG_REGULATOR_MAX1586 is not set
+# CONFIG_REGULATOR_MAX77826 is not set
+# CONFIG_REGULATOR_MAX8649 is not set
+# CONFIG_REGULATOR_MAX8660 is not set
+# CONFIG_REGULATOR_MAX8952 is not set
+# CONFIG_REGULATOR_MP8859 is not set
+# CONFIG_REGULATOR_MT6311 is not set
+# CONFIG_REGULATOR_PCA9450 is not set
+# CONFIG_REGULATOR_PFUZE100 is not set
+# CONFIG_REGULATOR_PV88060 is not set
+# CONFIG_REGULATOR_PV88080 is not set
+# CONFIG_REGULATOR_PV88090 is not set
+# CONFIG_REGULATOR_PWM is not set
+# CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set
+# CONFIG_REGULATOR_RT4801 is not set
+# CONFIG_REGULATOR_RTMV20 is not set
+# CONFIG_REGULATOR_SLG51000 is not set
+# CONFIG_REGULATOR_TPS51632 is not set
+# CONFIG_REGULATOR_TPS62360 is not set
+# CONFIG_REGULATOR_TPS65023 is not set
+# CONFIG_REGULATOR_TPS6507X is not set
+# CONFIG_REGULATOR_TPS65132 is not set
+# CONFIG_REGULATOR_TPS6524X is not set
+# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
+# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
+CONFIG_REGULATOR=y
+# CONFIG_REISERFS_CHECK is not set
+CONFIG_REISERFS_FS=m
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_PROC_INFO=y
+CONFIG_RELAY=y
+CONFIG_RELOCATABLE=y
+# CONFIG_REMOTEPROC is not set
+# CONFIG_RENESAS_PHY is not set
+CONFIG_RESET_ATTACK_MITIGATION=y
+# CONFIG_RESET_BRCMSTB_RESCAL is not set
+CONFIG_RESET_CONTROLLER=y
+# CONFIG_RESET_TI_SYSCON is not set
+CONFIG_RETPOLINE=y
+# CONFIG_RFD77402 is not set
+# CONFIG_RFD_FTL is not set
+CONFIG_RFKILL_GPIO=m
+CONFIG_RFKILL_INPUT=y
+CONFIG_RFKILL_LEDS=y
+CONFIG_RFKILL=m
+CONFIG_RFS_ACCEL=y
+CONFIG_RING_BUFFER_ALLOW_SWAP=y
+CONFIG_RING_BUFFER_BENCHMARK=m
+# CONFIG_RING_BUFFER_STARTUP_TEST is not set
+# CONFIG_RING_BUFFER_VALIDATE_TIME_DELTAS is not set
+CONFIG_RING_BUFFER=y
+CONFIG_RMI4_2D_SENSOR=y
+CONFIG_RMI4_CORE=m
+CONFIG_RMI4_F03_SERIO=m
+CONFIG_RMI4_F03=y
+CONFIG_RMI4_F11=y
+CONFIG_RMI4_F12=y
+CONFIG_RMI4_F30=y
+CONFIG_RMI4_F34=y
+# CONFIG_RMI4_F3A is not set
+# CONFIG_RMI4_F54 is not set
+CONFIG_RMI4_F55=y
+CONFIG_RMI4_I2C=m
+CONFIG_RMI4_SMB=m
+CONFIG_RMI4_SPI=m
+# CONFIG_ROCKCHIP_PHY is not set
+CONFIG_ROCKER=m
+CONFIG_ROCKETPORT=m
+CONFIG_ROMFS_BACKED_BY_BLOCK=y
+# CONFIG_ROMFS_BACKED_BY_BOTH is not set
+# CONFIG_ROMFS_BACKED_BY_MTD is not set
+CONFIG_ROMFS_FS=m
+CONFIG_ROMFS_ON_BLOCK=y
+CONFIG_ROSE=m
+CONFIG_RPCSEC_GSS_KRB5=m
+# CONFIG_RPMSG_VIRTIO is not set
+CONFIG_RPR0521=m
+CONFIG_RPS=y
+CONFIG_RSEQ=y
+CONFIG_RSI_91X=m
+CONFIG_RSI_COEX=y
+CONFIG_RSI_DEBUGFS=y
+CONFIG_RSI_SDIO=m
+CONFIG_RSI_USB=m
CONFIG_RT2400PCI=m
-CONFIG_RT2400PCI_RFKILL=y
-CONFIG_RT2400PCI_LEDS=y
CONFIG_RT2500PCI=m
-CONFIG_RT2500PCI_RFKILL=y
-CONFIG_RT2500PCI_LEDS=y
-CONFIG_RT61PCI=m
-CONFIG_RT61PCI_RFKILL=y
-CONFIG_RT61PCI_LEDS=y
CONFIG_RT2500USB=m
-CONFIG_RT2500USB_LEDS=y
+CONFIG_RT2800_LIB=m
+CONFIG_RT2800_LIB_MMIO=m
+CONFIG_RT2800PCI=m
+CONFIG_RT2800PCI_RT3290=y
+CONFIG_RT2800PCI_RT33XX=y
+CONFIG_RT2800PCI_RT35XX=y
+CONFIG_RT2800PCI_RT53XX=y
CONFIG_RT2800USB=m
+CONFIG_RT2800USB_RT33XX=y
+CONFIG_RT2800USB_RT3573=y
+CONFIG_RT2800USB_RT35XX=y
+CONFIG_RT2800USB_RT53XX=y
+CONFIG_RT2800USB_RT55XX=y
+CONFIG_RT2800USB_UNKNOWN=y
+# CONFIG_RT2X00_DEBUG is not set
+CONFIG_RT2X00_LIB_CRYPTO=y
+CONFIG_RT2X00_LIB_DEBUGFS=y
+CONFIG_RT2X00_LIB_FIRMWARE=y
+CONFIG_RT2X00_LIB_LEDS=y
+CONFIG_RT2X00_LIB=m
+CONFIG_RT2X00_LIB_MMIO=m
+CONFIG_RT2X00_LIB_PCI=m
+CONFIG_RT2X00_LIB_USB=m
+CONFIG_RT2X00=m
+CONFIG_RT61PCI=m
CONFIG_RT73USB=m
-CONFIG_RT73USB_LEDS=y
+CONFIG_RTC_CLASS=y
+# CONFIG_RTC_DEBUG is not set
+# CONFIG_RTC_DRV_ABB5ZES3 is not set
+CONFIG_RTC_DRV_ABEOZ9=m
+CONFIG_RTC_DRV_ABX80X=m
+CONFIG_RTC_DRV_BQ32K=m
+CONFIG_RTC_DRV_BQ4802=m
+CONFIG_RTC_DRV_CMOS=y
+CONFIG_RTC_DRV_DS1286=m
+# CONFIG_RTC_DRV_DS1302 is not set
+CONFIG_RTC_DRV_DS1305=m
+# CONFIG_RTC_DRV_DS1307_CENTURY is not set
+CONFIG_RTC_DRV_DS1307=m
+CONFIG_RTC_DRV_DS1343=m
+CONFIG_RTC_DRV_DS1347=m
+CONFIG_RTC_DRV_DS1374=m
+CONFIG_RTC_DRV_DS1374_WDT=y
+CONFIG_RTC_DRV_DS1390=m
+CONFIG_RTC_DRV_DS1511=m
+CONFIG_RTC_DRV_DS1553=m
+CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_DS1685_FAMILY=m
+CONFIG_RTC_DRV_DS1685=y
+# CONFIG_RTC_DRV_DS1689 is not set
+# CONFIG_RTC_DRV_DS17285 is not set
+CONFIG_RTC_DRV_DS1742=m
+# CONFIG_RTC_DRV_DS17485 is not set
+# CONFIG_RTC_DRV_DS17885 is not set
+CONFIG_RTC_DRV_DS2404=m
+# CONFIG_RTC_DRV_DS3232_HWMON is not set
+CONFIG_RTC_DRV_DS3232=m
+CONFIG_RTC_DRV_EM3027=m
+CONFIG_RTC_DRV_FM3130=m
+# CONFIG_RTC_DRV_FTRTC010 is not set
+# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set
+CONFIG_RTC_DRV_ISL12022=m
+CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_M41T80=m
+CONFIG_RTC_DRV_M41T80_WDT=y
+CONFIG_RTC_DRV_M41T93=m
+CONFIG_RTC_DRV_M41T94=m
+CONFIG_RTC_DRV_M48T35=m
+CONFIG_RTC_DRV_M48T59=m
+# CONFIG_RTC_DRV_M48T86 is not set
+CONFIG_RTC_DRV_MAX6900=m
+CONFIG_RTC_DRV_MAX6902=m
+CONFIG_RTC_DRV_MAX6916=m
+CONFIG_RTC_DRV_MCP795=m
+CONFIG_RTC_DRV_MSM6242=m
+CONFIG_RTC_DRV_PCF2123=m
+CONFIG_RTC_DRV_PCF2127=m
+CONFIG_RTC_DRV_PCF85063=m
+CONFIG_RTC_DRV_PCF8523=m
+# CONFIG_RTC_DRV_PCF85363 is not set
+CONFIG_RTC_DRV_PCF8563=m
+CONFIG_RTC_DRV_PCF8583=m
+CONFIG_RTC_DRV_R9701=m
+CONFIG_RTC_DRV_RP5C01=m
+CONFIG_RTC_DRV_RS5C348=m
+CONFIG_RTC_DRV_RS5C372=m
+CONFIG_RTC_DRV_RV3028=m
+CONFIG_RTC_DRV_RV3029C2=m
+CONFIG_RTC_DRV_RV3029_HWMON=y
+# CONFIG_RTC_DRV_RV3032 is not set
+# CONFIG_RTC_DRV_RV8803 is not set
+CONFIG_RTC_DRV_RX4581=m
+# CONFIG_RTC_DRV_RX6110 is not set
+CONFIG_RTC_DRV_RX8010=m
+CONFIG_RTC_DRV_RX8025=m
+CONFIG_RTC_DRV_RX8581=m
+# CONFIG_RTC_DRV_S35390A is not set
+CONFIG_RTC_DRV_SD3078=m
+CONFIG_RTC_DRV_STK17TA8=m
+# CONFIG_RTC_DRV_TEST is not set
+CONFIG_RTC_DRV_V3020=m
+CONFIG_RTC_DRV_X1205=m
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_I2C_AND_SPI=m
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+CONFIG_RTC_INTF_DEV=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_LIB=y
+CONFIG_RTC_MC146818_LIB=y
+CONFIG_RTC_NVMEM=y
+# CONFIG_RTC_SYSTOHC is not set
+# CONFIG_RT_GROUP_SCHED is not set
CONFIG_RTL8180=m
+CONFIG_RTL8187_LEDS=y
CONFIG_RTL8187=m
-CONFIG_TMD_HERMES=m
-CONFIG_USB_ZD1201=m
-CONFIG_USB_NET_RNDIS_WLAN=m
-CONFIG_ZD1211RW=m
-# CONFIG_ZD1211RW_DEBUG is not set
-CONFIG_AR9170_USB=m
-
-CONFIG_WL12XX=m
-CONFIG_WL1251=m
-CONFIG_WL1251_SPI=m
-CONFIG_WL1251_SDIO=m
-CONFIG_WL1271=m
-
-#
-# Token Ring devices
-#
-# CONFIG_TR is not set
-# CONFIG_IBMOL is not set
-# CONFIG_3C359 is not set
-# Broken with gcc4.1
-# CONFIG_TMS380TR is not set
-# CONFIG_TMSPCI is not set
-# CONFIG_ABYSS is not set
-# CONFIG_IBMLS is not set
-# CONFIG_PCMCIA_IBMTR is not set
-
-
-CONFIG_NET_FC=y
-# CONFIG_SHAPER is not set
-
-#
-# Wan interfaces
-#
-CONFIG_WAN=y
-
-#
-# PCMCIA network device support
-#
-CONFIG_NET_PCMCIA=y
-CONFIG_PCMCIA_3C589=m
-CONFIG_PCMCIA_3C574=m
-CONFIG_PCMCIA_FMVJ18X=m
-CONFIG_PCMCIA_PCNET=m
-CONFIG_PCMCIA_NMCLAN=m
-CONFIG_PCMCIA_SMC91C92=m
-CONFIG_PCMCIA_XIRC2PS=m
-CONFIG_PCMCIA_AXNET=m
-
-#
-# Amateur Radio support
-#
-# CONFIG_HAMRADIO is not set
-# CONFIG_AX25 is not set
-# CONFIG_AX25_DAMA_SLAVE is not set
-CONFIG_CAN=m
-CONFIG_CAN_RAW=m
-CONFIG_CAN_BCM=m
-CONFIG_CAN_VCAN=m
-CONFIG_CAN_DEV=m
-CONFIG_CAN_CALC_BITTIMING=y
-CONFIG_CAN_SJA1000=m
-CONFIG_CAN_SJA1000_ISA=m
-CONFIG_CAN_SJA1000_PLATFORM=m
-CONFIG_CAN_EMS_PCI=m
-CONFIG_CAN_EMS_USB=m
-CONFIG_CAN_KVASER_PCI=m
-# CONFIG_NETROM is not set
-# CONFIG_ROSE is not set
-# CONFIG_MKISS is not set
-# CONFIG_6PACK is not set
-# CONFIG_BPQETHER is not set
-# CONFIG_SCC is not set
-# CONFIG_DMASCC is not set
-# CONFIG_SCC_DELAY is not set
-# CONFIG_SCC_TRXECHO is not set
-# CONFIG_BAYCOM_SER_FDX is not set
-# CONFIG_BAYCOM_SER_HDX is not set
-# CONFIG_BAYCOM_PAR is not set
-# CONFIG_BAYCOM_EPP is not set
-# CONFIG_YAM is not set
-
-#
-# IrDA (infrared) support
-#
-# CONFIG_IRDA is not set
-# CONFIG_IRDA_DEBUG is not set
-CONFIG_IRLAN=m
-CONFIG_IRNET=m
-CONFIG_IRCOMM=m
-# CONFIG_IRDA_ULTRA is not set
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRTTY_SIR=m
-CONFIG_DONGLE=y
-CONFIG_ACTISYS_DONGLE=m
-CONFIG_ACT200L_DONGLE=m
-CONFIG_ESI_DONGLE=m
-CONFIG_GIRBIL_DONGLE=m
-CONFIG_IRPORT_SIR=m
-CONFIG_KINGSUN_DONGLE=m
-CONFIG_KSDAZZLE_DONGLE=m
-CONFIG_KS959_DONGLE=m
-CONFIG_LITELINK_DONGLE=m
-CONFIG_MA600_DONGLE=m
-CONFIG_MCP2120_DONGLE=m
-CONFIG_OLD_BELKIN_DONGLE=m
-CONFIG_TEKRAM_DONGLE=m
-CONFIG_TOIM3232_DONGLE=m
-# CONFIG_DONGLE_OLD is not set
-
-CONFIG_ALI_FIR=m
-CONFIG_MCS_FIR=m
-CONFIG_NSC_FIR=m
-CONFIG_SIGMATEL_FIR=m
-CONFIG_SMC_IRCC_FIR=m
-# CONFIG_TOSHIBA_FIR is not set
-CONFIG_USB_IRDA=m
-CONFIG_VLSI_FIR=m
-CONFIG_VIA_FIR=m
-CONFIG_WINBOND_FIR=m
-
-#
-# Bluetooth support
-#
-CONFIG_BT=m
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
-CONFIG_BT_CMTP=m
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=m
-
-#
-# Bluetooth device drivers
-#
-CONFIG_BT_HCIBTUSB=m
-# Disable the BT_HCIUSB driver.
-# It sucks more power than BT_HCIBTUSB which has the same functionality.
-# CONFIG_BT_HCIUSB is not set
-CONFIG_BT_HCIUART=m
-CONFIG_BT_HCIUART_H4=y
-CONFIG_BT_HCIUART_BCSP=y
-CONFIG_BT_HCIDTL1=m
-CONFIG_BT_HCIBT3C=m
-CONFIG_BT_HCIBLUECARD=m
-CONFIG_BT_HCIBTUART=m
-CONFIG_BT_HCIVHCI=m
-CONFIG_BT_HCIUSB_SCO=y
-CONFIG_BT_HCIBCM203X=m
-CONFIG_BT_HCIBFUSB=m
-CONFIG_BT_HCIBPA10X=m
-CONFIG_BT_HCIBTSDIO=m
-CONFIG_BT_HCIUART_LL=y
-CONFIG_BT_MRVL=m
-CONFIG_BT_MRVL_SDIO=m
-
-#
-# ISDN subsystem
-#
-CONFIG_ISDN=y
-CONFIG_MISDN=m
-CONFIG_MISDN_DSP=m
-CONFIG_MISDN_L1OIP=m
-CONFIG_MISDN_AVMFRITZ=m
-CONFIG_MISDN_SPEEDFAX=m
-CONFIG_MISDN_INFINEON=m
-CONFIG_MISDN_W6692=m
-CONFIG_MISDN_NETJET=m
-
-#
-# mISDN hardware drivers
-#
-CONFIG_MISDN_HFCPCI=m
-CONFIG_MISDN_HFCMULTI=m
-CONFIG_ISDN_I4L=m
-CONFIG_ISDN_DRV_AVMB1_B1PCI=m
-CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
-CONFIG_ISDN_DRV_AVMB1_T1PCI=m
-CONFIG_ISDN_DRV_AVMB1_C4=m
-
-CONFIG_MISDN_HFCUSB=m
-
-CONFIG_ISDN_PPP=y
-CONFIG_ISDN_PPP_VJ=y
-CONFIG_ISDN_MPP=y
-# CONFIG_ISDN_PPP_BSDCOMP is not set
-CONFIG_ISDN_TTY_FAX=y
-CONFIG_DE_AOC=y
-
-CONFIG_ISDN_AUDIO=y
-
-CONFIG_ISDN_DRV_HISAX=m
-CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
-CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
-
-CONFIG_ISDN_CAPI_CAPIDRV=m
-CONFIG_ISDN_DIVERSION=m
-
-CONFIG_HISAX_EURO=y
-CONFIG_HISAX_1TR6=y
-CONFIG_HISAX_NI1=y
-CONFIG_HISAX_MAX_CARDS=8
-CONFIG_HISAX_16_3=y
-CONFIG_HISAX_TELESPCI=y
-CONFIG_HISAX_S0BOX=y
-CONFIG_HISAX_FRITZPCI=y
-CONFIG_HISAX_AVM_A1_PCMCIA=y
-CONFIG_HISAX_ELSA=y
-CONFIG_HISAX_DIEHLDIVA=y
-CONFIG_HISAX_SEDLBAUER=y
-CONFIG_HISAX_NETJET=y
-CONFIG_HISAX_NETJET_U=y
-CONFIG_HISAX_NICCY=y
-CONFIG_HISAX_BKM_A4T=y
-CONFIG_HISAX_SCT_QUADRO=y
-CONFIG_HISAX_GAZEL=y
-CONFIG_HISAX_HFC_PCI=y
-CONFIG_HISAX_W6692=y
-CONFIG_HISAX_HFC_SX=y
-CONFIG_HISAX_ENTERNOW_PCI=y
-# CONFIG_HISAX_DEBUG is not set
-CONFIG_HISAX_AVM_A1_CS=m
-CONFIG_HISAX_ST5481=m
-# CONFIG_HISAX_HFCUSB is not set
-CONFIG_HISAX_FRITZ_PCIPNP=m
-CONFIG_HISAX_NO_SENDCOMPLETE=y
-CONFIG_HISAX_NO_LLC=y
-CONFIG_HISAX_NO_KEYPAD=y
-CONFIG_HISAX_SEDLBAUER_CS=m
-CONFIG_HISAX_ELSA_CS=m
-CONFIG_HISAX_TELES_CS=m
-CONFIG_HISAX_HFC4S8S=m
-
-CONFIG_ISDN_DRV_LOOP=m
-CONFIG_HYSDN=m
-CONFIG_HYSDN_CAPI=y
-
-
-#
-# CAPI subsystem
-#
-CONFIG_ISDN_CAPI=m
-# CONFIG_CAPI_TRACE is not set
-CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
-CONFIG_ISDN_CAPI_MIDDLEWARE=y
-CONFIG_ISDN_CAPI_CAPI20=m
-CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
-CONFIG_ISDN_CAPI_CAPIFS=m
-
-#
-# CAPI hardware drivers
-#
-
-#
-# Active AVM cards
-#
-CONFIG_CAPI_AVM=y
-
-#
-# Active Eicon DIVA Server cards
-#
-# CONFIG_CAPI_EICON is not set
-CONFIG_ISDN_DIVAS=m
-CONFIG_ISDN_DIVAS_BRIPCI=y
-CONFIG_ISDN_DIVAS_PRIPCI=y
-CONFIG_ISDN_DIVAS_DIVACAPI=m
-CONFIG_ISDN_DIVAS_USERIDI=m
-CONFIG_ISDN_DIVAS_MAINT=m
-
-CONFIG_ISDN_DRV_GIGASET=m
-CONFIG_GIGASET_BASE=m
-CONFIG_GIGASET_M101=m
-CONFIG_GIGASET_M105=m
-# CONFIG_GIGASET_DEBUG is not set
-# CONFIG_GIGASET_UNDOCREQ is not set
-
-#
-# Telephony Support
-#
-# CONFIG_PHONE is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-# CONFIG_INPUT_FF_MEMLESS is not set
-
-#
-# Userland interfaces
-#
-CONFIG_INPUT_MOUSEDEV=y
-# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-# CONFIG_INPUT_JOYDEV is not set
-CONFIG_INPUT_EVDEV=y
-# CONFIG_INPUT_EVBUG is not set
-
-CONFIG_INPUT_TABLET=y
-CONFIG_TABLET_USB_ACECAD=m
-CONFIG_TABLET_USB_AIPTEK=m
-CONFIG_TABLET_USB_GTCO=m
-CONFIG_TABLET_USB_KBTAB=m
-CONFIG_TABLET_USB_WACOM=m
-
-CONFIG_INPUT_POWERMATE=m
-CONFIG_INPUT_YEALINK=m
-CONFIG_INPUT_CM109=m
-CONFIG_INPUT_POLLDEV=m
-
-#
-# Input I/O drivers
-#
-# CONFIG_GAMEPORT is not set
-# CONFIG_GAMEPORT_NS558 is not set
-# CONFIG_GAMEPORT_L4 is not set
-# CONFIG_GAMEPORT_EMU10K1 is not set
-# CONFIG_GAMEPORT_FM801 is not set
-CONFIG_SERIO=y
-CONFIG_SERIO_I8042=y
-CONFIG_SERIO_SERPORT=y
-CONFIG_SERIO_RAW=m
-
-# CONFIG_SERIO_CT82C710 is not set
-# CONFIG_SERIO_PARKBD is not set
-# CONFIG_SERIO_PCIPS2 is not set
-
-#
-# Input Device Drivers
-#
-CONFIG_INPUT_KEYBOARD=y
-CONFIG_KEYBOARD_ATKBD=y
-# CONFIG_KEYBOARD_SUNKBD is not set
-# CONFIG_KEYBOARD_XTKBD is not set
-# CONFIG_KEYBOARD_MATRIX is not set
-# CONFIG_KEYBOARD_NEWTON is not set
-# CONFIG_KEYBOARD_STOWAWAY is not set
-# CONFIG_KEYBOARD_LKKBD is not set
-# CONFIG_KEYBOARD_LM8323 is not set
-CONFIG_QT2160=m
-CONFIG_KEYBOARD_ADP5588=m
-CONFIG_KEYBOARD_MAX7359=m
-CONFIG_KEYBOARD_OPENCORES=m
-CONFIG_INPUT_MOUSE=y
-CONFIG_MOUSE_PS2=y
-# CONFIG_MOUSE_PS2_TOUCHKIT is not set
-CONFIG_MOUSE_PS2_ELANTECH=y
-CONFIG_MOUSE_PS2_SENTELIC=y
-CONFIG_MOUSE_SERIAL=m
-CONFIG_MOUSE_VSXXXAA=m
-CONFIG_MOUSE_APPLETOUCH=m
-CONFIG_MOUSE_BCM5974=m
-CONFIG_MOUSE_SYNAPTICS_I2C=m
-# CONFIG_INPUT_JOYSTICK is not set
-# CONFIG_JOYSTICK_ANALOG is not set
-# CONFIG_JOYSTICK_A3D is not set
-# CONFIG_JOYSTICK_ADI is not set
-# CONFIG_JOYSTICK_COBRA is not set
-# CONFIG_JOYSTICK_GF2K is not set
-# CONFIG_JOYSTICK_GRIP is not set
-# CONFIG_JOYSTICK_GRIP_MP is not set
-# CONFIG_JOYSTICK_GUILLEMOT is not set
-# CONFIG_JOYSTICK_INTERACT is not set
-# CONFIG_JOYSTICK_SIDEWINDER is not set
-# CONFIG_JOYSTICK_TMDC is not set
-# CONFIG_JOYSTICK_IFORCE is not set
-# CONFIG_JOYSTICK_IFORCE_USB is not set
-# CONFIG_JOYSTICK_IFORCE_232 is not set
-# CONFIG_JOYSTICK_WARRIOR is not set
-# CONFIG_JOYSTICK_MAGELLAN is not set
-# CONFIG_JOYSTICK_SPACEORB is not set
-# CONFIG_JOYSTICK_SPACEBALL is not set
-# CONFIG_JOYSTICK_STINGER is not set
-# CONFIG_JOYSTICK_DB9 is not set
-# CONFIG_JOYSTICK_GAMECON is not set
-# CONFIG_JOYSTICK_TURBOGRAFX is not set
-# CONFIG_JOYSTICK_JOYDUMP is not set
-# CONFIG_JOYSTICK_TWIDJOY is not set
-# CONFIG_JOYSTICK_WALKERA0701 is not set
-# CONFIG_JOYSTICK_XPAD is not set
-# CONFIG_JOYSTICK_XPAD_FF is not set
-# CONFIG_JOYSTICK_XPAD_LEDS is not set
-# CONFIG_JOYSTICK_ZHENHUA is not set
-CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_GUNZE=m
-CONFIG_TOUCHSCREEN_ELO=m
-CONFIG_TOUCHSCREEN_FUJITSU=m
-CONFIG_TOUCHSCREEN_HTCPEN=m
-CONFIG_TOUCHSCREEN_INEXIO=m
-CONFIG_TOUCHSCREEN_MTOUCH=m
-# CONFIG_TOUCHSCREEN_MK712 is not set
-CONFIG_TOUCHSCREEN_PENMOUNT=m
-CONFIG_TOUCHSCREEN_TSC2007=m
-CONFIG_TOUCHSCREEN_AD7879_I2C=m
-CONFIG_TOUCHSCREEN_TOUCHIT213=m
-CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
-CONFIG_TOUCHSCREEN_TOUCHWIN=m
-CONFIG_TOUCHSCREEN_UCB1400=m
-CONFIG_TOUCHSCREEN_WACOM_W8001=m
-CONFIG_TOUCHSCREEN_USB_E2I=y
-CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
-# CONFIG_TOUCHSCREEN_WM97XX is not set
-CONFIG_TOUCHSCREEN_EETI=m
-CONFIG_TOUCHSCREEN_W90X900=m
-CONFIG_TOUCHSCREEN_MCS5000=m
-CONFIG_INPUT_MISC=y
-CONFIG_INPUT_PCSPKR=m
-CONFIG_INPUT_UINPUT=m
-CONFIG_INPUT_WISTRON_BTNS=m
-CONFIG_INPUT_ATLAS_BTNS=m
-
-CONFIG_INPUT_ATI_REMOTE=m
-CONFIG_INPUT_ATI_REMOTE2=m
-CONFIG_INPUT_KEYSPAN_REMOTE=m
-
-CONFIG_MAC_EMUMOUSEBTN=y
-
-CONFIG_INPUT_WM831X_ON=m
-
-#
-# Character devices
-#
-CONFIG_VT=y
-CONFIG_VT_CONSOLE=y
-CONFIG_HW_CONSOLE=y
-CONFIG_VT_HW_CONSOLE_BINDING=y
-CONFIG_SERIAL_NONSTANDARD=y
-# CONFIG_ROCKETPORT is not set
-CONFIG_SYNCLINK=m
-CONFIG_SYNCLINKMP=m
-CONFIG_SYNCLINK_GT=m
-CONFIG_N_HDLC=m
-# CONFIG_STALDRV is not set
-# CONFIG_IBM_ASM is not set
-CONFIG_TIFM_CORE=m
-CONFIG_TIFM_7XX1=m
-CONFIG_TCG_TPM=m
-CONFIG_TCG_TIS=m
-CONFIG_TCG_NSC=m
-CONFIG_TCG_ATMEL=m
-# CONFIG_TCG_INFINEON is not set
-CONFIG_TELCLOCK=m
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_8250_CS=m
-CONFIG_SERIAL_8250_NR_UARTS=32
-CONFIG_SERIAL_8250_RUNTIME_UARTS=4
-CONFIG_SERIAL_8250_EXTENDED=y
-CONFIG_SERIAL_8250_MANY_PORTS=y
-CONFIG_SERIAL_8250_SHARE_IRQ=y
-CONFIG_SERIAL_8250_DETECT_IRQ=y
-CONFIG_SERIAL_8250_RSA=y
-# CONFIG_COMPUTONE is not set
-CONFIG_CYCLADES=m
-# CONFIG_CYZ_INTR is not set
-# CONFIG_DIGIEPCA is not set
-# CONFIG_ESPSERIAL is not set
-# CONFIG_MOXA_INTELLIO is not set
-# CONFIG_MOXA_SMARTIO is not set
-# CONFIG_MOXA_SMARTIO_NEW is not set
-# CONFIG_ISI is not set
-# CONFIG_RISCOM8 is not set
-# CONFIG_SPECIALIX is not set
-# CONFIG_SX is not set
-# CONFIG_RIO is not set
-# CONFIG_STALLION is not set
-# CONFIG_ISTALLION is not set
-CONFIG_SERIAL_JSM=m
-
-#
-# Non-8250 serial port support
-#
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-CONFIG_UNIX98_PTYS=y
-CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
-# CONFIG_LEGACY_PTYS is not set
-CONFIG_PRINTER=m
-# CONFIG_LP_CONSOLE is not set
-CONFIG_PPDEV=m
-
-#
-# I2C support
-#
-CONFIG_I2C=m
-CONFIG_I2C_COMPAT=y
-CONFIG_I2C_CHARDEV=m
-
-#
-# I2C Algorithms
-#
-# CONFIG_I2C_DEBUG_ALGO is not set
-CONFIG_I2C_HELPER_AUTO=y
-CONFIG_I2C_ALGOBIT=m
-CONFIG_I2C_ALGOPCF=m
-
-#
-# I2C Hardware Bus support
-#
-
-CONFIG_I2C_ALGOPCA=m
-# CONFIG_I2C_ALI1535 is not set
-# CONFIG_I2C_ALI1563 is not set
-# CONFIG_I2C_ALI15X3 is not set
-# CONFIG_I2C_AMD756 is not set
-# CONFIG_I2C_AMD756_S4882 is not set
-# CONFIG_I2C_AMD8111 is not set
-# CONFIG_I2C_DEBUG_CORE is not set
-# CONFIG_I2C_DEBUG_BUS is not set
-# CONFIG_I2C_DEBUG_CHIP is not set
-# CONFIG_I2C_ELEKTOR is not set
-# CONFIG_I2C_I801 is not set
-# CONFIG_I2C_I810 is not set
-# CONFIG_I2C_ISCH is not set
-# CONFIG_I2C_NFORCE2_S4985 is not set
-
-CONFIG_EEPROM_AT24=m
-CONFIG_EEPROM_LEGACY=m
-CONFIG_EEPROM_93CX6=m
-CONFIG_EEPROM_MAX6875=m
-
-CONFIG_I2C_NFORCE2=m
-# CONFIG_I2C_OCORES is not set
-CONFIG_I2C_PARPORT=m
-CONFIG_I2C_PARPORT_LIGHT=m
-CONFIG_I2C_PASEMI=m
-# CONFIG_I2C_PCA_ISA is not set
-CONFIG_I2C_PCA_PLATFORM=m
-# CONFIG_I2C_PIIX4 is not set
-CONFIG_I2C_PROSAVAGE=m
-CONFIG_I2C_SAVAGE4=m
-# CONFIG_SCx200_ACB is not set
-# CONFIG_I2C_SIS5595 is not set
-# CONFIG_I2C_SIS630 is not set
-# CONFIG_I2C_SIS96X is not set
-CONFIG_I2C_SIMTEC=m
-CONFIG_I2C_STUB=m
-CONFIG_I2C_TINY_USB=m
-# CONFIG_I2C_TAOS_EVM is not set
-# CONFIG_I2C_VIA is not set
-# CONFIG_I2C_VIAPRO is not set
-CONFIG_I2C_VOODOO3=m
-# CONFIG_I2C_DESIGNWARE is not set
-
-#
-# I2C Hardware Sensors Chip support
-#
-CONFIG_SENSORS_ATK0110=m
-CONFIG_SENSORS_ABITUGURU=m
+CONFIG_RTL8188EE=m
+CONFIG_RTL8192C_COMMON=m
+CONFIG_RTL8192CE=m
+CONFIG_RTL8192CU=m
+CONFIG_RTL8192DE=m
+CONFIG_RTL8192EE=m
+CONFIG_RTL8192E=m
+CONFIG_RTL8192SE=m
+# CONFIG_RTL8192U is not set
+CONFIG_RTL8723AE=m
+CONFIG_RTL8723BE=m
+CONFIG_RTL8723BS=m
+CONFIG_RTL8723_COMMON=m
+CONFIG_RTL8821AE=m
+CONFIG_RTL8XXXU=m
+CONFIG_RTL8XXXU_UNTESTED=y
+CONFIG_RTLBTCOEXIST=m
+CONFIG_RTL_CARDS=m
+CONFIG_RTLLIB_CRYPTO_CCMP=m
+CONFIG_RTLLIB_CRYPTO_TKIP=m
+CONFIG_RTLLIB_CRYPTO_WEP=m
+CONFIG_RTLLIB=m
+# CONFIG_RTLWIFI_DEBUG is not set
+CONFIG_RTLWIFI=m
+CONFIG_RTLWIFI_PCI=m
+CONFIG_RTLWIFI_USB=m
+CONFIG_RT_MUTEXES=y
+# CONFIG_RTS5208 is not set
+# CONFIG_RTW88_8723DE is not set
+# CONFIG_RTW88_8821CE is not set
+CONFIG_RTW88_8822BE=m
+CONFIG_RTW88_8822B=m
+CONFIG_RTW88_8822CE=m
+CONFIG_RTW88_8822C=m
+CONFIG_RTW88_CORE=m
+# CONFIG_RTW88_DEBUGFS is not set
+# CONFIG_RTW88_DEBUG is not set
+CONFIG_RTW88=m
+CONFIG_RTW88_PCI=m
+CONFIG_RUNTIME_TESTING_MENU=y
+CONFIG_RWSEM_SPIN_ON_OWNER=y
+CONFIG_RXKAD=y
+CONFIG_S2IO=m
+# CONFIG_SAMPLES is not set
+CONFIG_SAMSUNG_LAPTOP=m
+CONFIG_SAMSUNG_Q10=m
+CONFIG_SATA_ACARD_AHCI=m
+CONFIG_SATA_AHCI=m
+CONFIG_SATA_AHCI_PLATFORM=m
+# CONFIG_SATA_DWC is not set
+CONFIG_SATA_HOST=y
+CONFIG_SATA_INIC162X=m
+CONFIG_SATA_MOBILE_LPM_POLICY=3
+CONFIG_SATA_MV=m
+CONFIG_SATA_NV=m
+CONFIG_SATA_PMP=y
+CONFIG_SATA_PROMISE=m
+CONFIG_SATA_QSTOR=m
+CONFIG_SATA_SIL24=m
+CONFIG_SATA_SIL=m
+CONFIG_SATA_SIS=m
+CONFIG_SATA_SVW=m
+CONFIG_SATA_SX4=m
+CONFIG_SATA_ULI=m
+CONFIG_SATA_VIA=m
+CONFIG_SATA_VITESSE=m
+# CONFIG_SATA_ZPODD is not set
+# CONFIG_SBC_EPX_C3_WATCHDOG is not set
+CONFIG_SBC_FITPC2_WATCHDOG=m
+CONFIG_SBITMAP=y
+CONFIG_SBP_TARGET=m
+# CONFIG_SC1200_WDT is not set
+CONFIG_SC92031=m
+# CONFIG_SCA3000 is not set
+# CONFIG_SCD30_CORE is not set
+# CONFIG_SCF_TORTURE_TEST is not set
+CONFIG_SCHED_AUTOGROUP=y
+CONFIG_SCHED_DEBUG=y
+CONFIG_SCHED_HRTICK=y
+CONFIG_SCHED_INFO=y
+CONFIG_SCHED_MC_PRIO=y
+CONFIG_SCHED_MC=y
+CONFIG_SCHED_OMIT_FRAME_POINTER=y
+CONFIG_SCHED_SMT=y
+CONFIG_SCHED_STACK_END_CHECK=y
+CONFIG_SCHEDSTATS=y
+CONFIG_SCHED_TRACER=y
+# CONFIG_SCR24X is not set
+CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_3W_SAS=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_AIC79XX=m
+CONFIG_SCSI_AIC7XXX=m
+# CONFIG_SCSI_AIC94XX is not set
+CONFIG_SCSI_AM53C974=m
+CONFIG_SCSI_ARCMSR=m
+CONFIG_SCSI_BFA_FC=m
+CONFIG_SCSI_BNX2_ISCSI=m
+CONFIG_SCSI_BNX2X_FCOE=m
+CONFIG_SCSI_BUSLOGIC=m
+CONFIG_SCSI_CHELSIO_FCOE=m
+CONFIG_SCSI_CONSTANTS=y
+CONFIG_SCSI_CXGB3_ISCSI=m
+CONFIG_SCSI_CXGB4_ISCSI=m
+CONFIG_SCSI_DC395x=m
+CONFIG_SCSI_DEBUG=m
+CONFIG_SCSI_DH_ALUA=m
+CONFIG_SCSI_DH_EMC=m
+CONFIG_SCSI_DH_HP_SW=m
+CONFIG_SCSI_DH_RDAC=m
+CONFIG_SCSI_DH=y
+CONFIG_SCSI_DMA=y
+CONFIG_SCSI_DMX3191D=m
+# CONFIG_SCSI_DPT_I2O is not set
+CONFIG_SCSI_ENCLOSURE=m
+CONFIG_SCSI_ESAS2R=m
+CONFIG_SCSI_FC_ATTRS=m
+CONFIG_SCSI_FDOMAIN=m
+CONFIG_SCSI_FDOMAIN_PCI=m
+CONFIG_SCSI_FLASHPOINT=y
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_HPSA=m
+CONFIG_SCSI_HPTIOP=m
+# CONFIG_SCSI_IMM is not set
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_IPR_DUMP=y
+CONFIG_SCSI_IPR=m
+CONFIG_SCSI_IPR_TRACE=y
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_ISCI=m
+CONFIG_SCSI_ISCSI_ATTRS=m
+CONFIG_SCSI_LOGGING=y
+# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
+CONFIG_SCSI_LOWLEVEL=y
+# CONFIG_SCSI_LPFC_DEBUG_FS is not set
+CONFIG_SCSI_LPFC=m
+CONFIG_SCSI_MOD=y
+CONFIG_SCSI_MPT2SAS=m
+CONFIG_SCSI_MPT2SAS_MAX_SGE=128
+CONFIG_SCSI_MPT3SAS=m
+CONFIG_SCSI_MPT3SAS_MAX_SGE=128
+# CONFIG_SCSI_MVSAS_DEBUG is not set
+CONFIG_SCSI_MVSAS=m
+CONFIG_SCSI_MVSAS_TASKLET=y
+CONFIG_SCSI_MVUMI=m
+CONFIG_SCSI_MYRB=m
+CONFIG_SCSI_MYRS=m
+CONFIG_SCSI_NETLINK=y
+CONFIG_SCSI_PM8001=m
+CONFIG_SCSI_PMCRAID=m
+# CONFIG_SCSI_PPA is not set
+CONFIG_SCSI_PROC_FS=y
+CONFIG_SCSI_QLA_FC=m
+CONFIG_SCSI_QLA_ISCSI=m
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_SAS_ATA=y
+CONFIG_SCSI_SAS_ATTRS=m
+CONFIG_SCSI_SAS_HOST_SMP=y
+CONFIG_SCSI_SAS_LIBSAS=m
+CONFIG_SCSI_SCAN_ASYNC=y
+CONFIG_SCSI_SMARTPQI=m
+# CONFIG_SCSI_SNIC_DEBUG_FS is not set
+CONFIG_SCSI_SNIC=m
+CONFIG_SCSI_SPI_ATTRS=m
+CONFIG_SCSI_SRP_ATTRS=m
+CONFIG_SCSI_STEX=m
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+CONFIG_SCSI_SYM53C8XX_MMIO=y
+CONFIG_SCSI_UFS_BSG=y
+# CONFIG_SCSI_UFS_DWC_TC_PCI is not set
+CONFIG_SCSI_UFSHCD=m
+CONFIG_SCSI_UFSHCD_PCI=m
+# CONFIG_SCSI_UFSHCD_PLATFORM is not set
+# CONFIG_SCSI_VIRTIO is not set
+CONFIG_SCSI_WD719X=m
+CONFIG_SCSI=y
+CONFIG_SCTP_COOKIE_HMAC_MD5=y
+CONFIG_SCTP_COOKIE_HMAC_SHA1=y
+# CONFIG_SCTP_DBG_OBJCNT is not set
+# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set
+# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
+CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
+CONFIG_SDIO_UART=m
+# CONFIG_SECCOMP_CACHE_DEBUG is not set
+CONFIG_SECCOMP_FILTER=y
+CONFIG_SECCOMP=y
+CONFIG_SECONDARY_TRUSTED_KEYRING=y
+CONFIG_SECTION_MISMATCH_WARN_ONLY=y
+# CONFIG_SECURITY_APPARMOR is not set
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
+CONFIG_SECURITYFS=y
+CONFIG_SECURITY_INFINIBAND=y
+# CONFIG_SECURITY_LOADPIN is not set
+CONFIG_SECURITY_LOCKDOWN_LSM_EARLY=y
+CONFIG_SECURITY_LOCKDOWN_LSM=y
+CONFIG_SECURITY_NETWORK_XFRM=y
+CONFIG_SECURITY_NETWORK=y
+# CONFIG_SECURITY_PATH is not set
+# CONFIG_SECURITY_SAFESETID is not set
+CONFIG_SECURITY_SELINUX_AVC_STATS=y
+CONFIG_SECURITY_SELINUX_BOOTPARAM=y
+CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
+CONFIG_SECURITY_SELINUX_DEVELOP=y
+CONFIG_SECURITY_SELINUX_DISABLE=y
+CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256
+CONFIG_SECURITY_SELINUX_SIDTAB_HASH_BITS=9
+CONFIG_SECURITY_SELINUX=y
+# CONFIG_SECURITY_SMACK is not set
+# CONFIG_SECURITY_TOMOYO is not set
+CONFIG_SECURITY_WRITABLE_HOOKS=y
+CONFIG_SECURITY=y
+CONFIG_SECURITY_YAMA=y
+CONFIG_SELECT_MEMORY_MODEL=y
+# CONFIG_SENSIRION_SGP30 is not set
CONFIG_SENSORS_ABITUGURU3=m
+CONFIG_SENSORS_ABITUGURU=m
+CONFIG_SENSORS_ACPI_POWER=m
+CONFIG_SENSORS_AD7314=m
CONFIG_SENSORS_AD7414=m
CONFIG_SENSORS_AD7418=m
+CONFIG_SENSORS_ADC128D818=m
+CONFIG_SENSORS_ADCXX=m
CONFIG_SENSORS_ADM1021=m
CONFIG_SENSORS_ADM1025=m
CONFIG_SENSORS_ADM1026=m
CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
+# CONFIG_SENSORS_ADM1177 is not set
+# CONFIG_SENSORS_ADM1266 is not set
+CONFIG_SENSORS_ADM1275=m
CONFIG_SENSORS_ADM9240=m
CONFIG_SENSORS_ADS7828=m
+CONFIG_SENSORS_ADS7871=m
+CONFIG_SENSORS_ADT7310=m
+CONFIG_SENSORS_ADT7410=m
+CONFIG_SENSORS_ADT7411=m
CONFIG_SENSORS_ADT7462=m
CONFIG_SENSORS_ADT7470=m
-CONFIG_SENSORS_ADT7473=m
CONFIG_SENSORS_ADT7475=m
+CONFIG_SENSORS_ADT7X10=m
+CONFIG_SENSORS_AMC6821=m
+CONFIG_SENSORS_AMD_ENERGY=m
+CONFIG_SENSORS_APDS990X=m
CONFIG_SENSORS_APPLESMC=m
+# CONFIG_SENSORS_AS370 is not set
CONFIG_SENSORS_ASB100=m
+CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_ASPEED=m
+CONFIG_SENSORS_ATK0110=m
CONFIG_SENSORS_ATXP1=m
+CONFIG_SENSORS_AXI_FAN_CONTROL=m
+# CONFIG_SENSORS_BEL_PFE is not set
+CONFIG_SENSORS_BH1770=m
CONFIG_SENSORS_CORETEMP=m
+# CONFIG_SENSORS_CORSAIR_CPRO is not set
+CONFIG_SENSORS_CORSAIR_PSU=m
+CONFIG_SENSORS_DELL_SMM=m
CONFIG_SENSORS_DME1737=m
+CONFIG_SENSORS_DRIVETEMP=m
CONFIG_SENSORS_DS1621=m
-CONFIG_SENSORS_DS1337=m
-CONFIG_SENSORS_DS1374=m
-# CONFIG_DS1682 is not set
-CONFIG_SENSORS_FSCHER=m
-CONFIG_SENSORS_FSCPOS=m
+CONFIG_SENSORS_DS620=m
+CONFIG_SENSORS_EMC1403=m
+# CONFIG_SENSORS_EMC2103 is not set
+CONFIG_SENSORS_EMC6W201=m
CONFIG_SENSORS_F71805F=m
CONFIG_SENSORS_F71882FG=m
CONFIG_SENSORS_F75375S=m
+CONFIG_SENSORS_FAM15H_POWER=m
CONFIG_SENSORS_FSCHMD=m
+CONFIG_SENSORS_FTSTEUTATES=m
CONFIG_SENSORS_G760A=m
+CONFIG_SENSORS_G762=m
CONFIG_SENSORS_GL518SM=m
CONFIG_SENSORS_GL520SM=m
CONFIG_SENSORS_HDAPS=m
-# CONFIG_SENSORS_I5K_AMB is not set
-# FIXME: IBMAEM x86 only?
+# CONFIG_SENSORS_HIH6130 is not set
+# CONFIG_SENSORS_HMC5843_I2C is not set
+# CONFIG_SENSORS_HMC5843_SPI is not set
+CONFIG_SENSORS_I5500=m
+CONFIG_SENSORS_I5K_AMB=m
CONFIG_SENSORS_IBMAEM=m
+# CONFIG_SENSORS_IBM_CFFPS is not set
CONFIG_SENSORS_IBMPEX=m
+# CONFIG_SENSORS_IIO_HWMON is not set
+CONFIG_SENSORS_INA209=m
+CONFIG_SENSORS_INA2XX=m
+CONFIG_SENSORS_INA3221=m
+# CONFIG_SENSORS_INSPUR_IPSPS is not set
+# CONFIG_SENSORS_IR35221 is not set
+# CONFIG_SENSORS_IR38064 is not set
+# CONFIG_SENSORS_IRPS5401 is not set
+# CONFIG_SENSORS_ISL29018 is not set
+# CONFIG_SENSORS_ISL29028 is not set
+# CONFIG_SENSORS_ISL68137 is not set
CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_JC42=m
+CONFIG_SENSORS_K10TEMP=m
CONFIG_SENSORS_K8TEMP=m
+CONFIG_SENSORS_LINEAGE=m
+CONFIG_SENSORS_LIS3_I2C=m
CONFIG_SENSORS_LIS3LV02D=m
+CONFIG_SENSORS_LM25066=m
CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM70=m
+CONFIG_SENSORS_LM73=m
CONFIG_SENSORS_LM75=m
CONFIG_SENSORS_LM77=m
CONFIG_SENSORS_LM78=m
@@ -2319,2525 +5502,2053 @@ CONFIG_SENSORS_LM87=m
CONFIG_SENSORS_LM90=m
CONFIG_SENSORS_LM92=m
CONFIG_SENSORS_LM93=m
+CONFIG_SENSORS_LM95234=m
+CONFIG_SENSORS_LM95241=m
+CONFIG_SENSORS_LM95245=m
+CONFIG_SENSORS_LTC2945=m
+# CONFIG_SENSORS_LTC2947_I2C is not set
+# CONFIG_SENSORS_LTC2947_SPI is not set
+CONFIG_SENSORS_LTC2978=m
+# CONFIG_SENSORS_LTC2978_REGULATOR is not set
+CONFIG_SENSORS_LTC2990=m
+# CONFIG_SENSORS_LTC2992 is not set
+CONFIG_SENSORS_LTC3815=m
+CONFIG_SENSORS_LTC4151=m
+CONFIG_SENSORS_LTC4215=m
+CONFIG_SENSORS_LTC4222=m
CONFIG_SENSORS_LTC4245=m
+CONFIG_SENSORS_LTC4260=m
+CONFIG_SENSORS_LTC4261=m
+CONFIG_SENSORS_MAX1111=m
+# CONFIG_SENSORS_MAX127 is not set
+CONFIG_SENSORS_MAX16064=m
+CONFIG_SENSORS_MAX16065=m
CONFIG_SENSORS_MAX1619=m
+# CONFIG_SENSORS_MAX16601 is not set
+CONFIG_SENSORS_MAX1668=m
+CONFIG_SENSORS_MAX197=m
+# CONFIG_SENSORS_MAX20730 is not set
+CONFIG_SENSORS_MAX20751=m
+CONFIG_SENSORS_MAX31722=m
+# CONFIG_SENSORS_MAX31730 is not set
+# CONFIG_SENSORS_MAX31785 is not set
+CONFIG_SENSORS_MAX31790=m
+CONFIG_SENSORS_MAX34440=m
+# CONFIG_SENSORS_MAX6621 is not set
+CONFIG_SENSORS_MAX6639=m
+CONFIG_SENSORS_MAX6642=m
CONFIG_SENSORS_MAX6650=m
-CONFIG_SENSORS_MAX6875=m
+CONFIG_SENSORS_MAX6697=m
+CONFIG_SENSORS_MAX8688=m
+CONFIG_SENSORS_MCP3021=m
+CONFIG_SENSORS_MLXREG_FAN=m
+# CONFIG_SENSORS_MP2975 is not set
+# CONFIG_SENSORS_MR75203 is not set
+CONFIG_SENSORS_NCT6683=m
+CONFIG_SENSORS_NCT6775=m
+CONFIG_SENSORS_NCT7802=m
+CONFIG_SENSORS_NCT7904=m
+CONFIG_SENSORS_NPCM7XX=m
+CONFIG_SENSORS_NTC_THERMISTOR=m
CONFIG_SENSORS_PC87360=m
CONFIG_SENSORS_PC87427=m
-CONFIG_SENSORS_PCA9539=m
-CONFIG_SENSORS_PCF8574=m
CONFIG_SENSORS_PCF8591=m
+# CONFIG_SENSORS_PM6764TR is not set
+CONFIG_SENSORS_PMBUS=m
+CONFIG_SENSORS_POWR1220=m
+# CONFIG_SENSORS_PXE1610 is not set
+# CONFIG_SENSORS_Q54SJ108A2 is not set
+CONFIG_SENSORS_RM3100_I2C=m
+CONFIG_SENSORS_RM3100=m
+CONFIG_SENSORS_RM3100_SPI=m
+# CONFIG_SENSORS_SBTSI is not set
+CONFIG_SENSORS_SCH5627=m
+CONFIG_SENSORS_SCH5636=m
+CONFIG_SENSORS_SCH56XX_COMMON=m
CONFIG_SENSORS_SHT15=m
+CONFIG_SENSORS_SHT21=m
+CONFIG_SENSORS_SHT3x=m
+CONFIG_SENSORS_SHTC1=m
CONFIG_SENSORS_SIS5595=m
-CONFIG_SENSORS_SMSC47M1=m
-CONFIG_SENSORS_SMSC47M192=m
+# CONFIG_SENSORS_SMM665 is not set
CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_SMSC47M192=m
+CONFIG_SENSORS_SMSC47M1=m
+# CONFIG_SENSORS_STTS751 is not set
+CONFIG_SENSORS_TC654=m
+CONFIG_SENSORS_TC74=m
CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_TMP102=m
+CONFIG_SENSORS_TMP103=m
+CONFIG_SENSORS_TMP108=m
CONFIG_SENSORS_TMP401=m
+CONFIG_SENSORS_TMP421=m
+# CONFIG_SENSORS_TMP513 is not set
+CONFIG_SENSORS_TPS40422=m
+CONFIG_SENSORS_TPS53679=m
CONFIG_SENSORS_TSL2550=m
+# CONFIG_SENSORS_TSL2563 is not set
+CONFIG_SENSORS_UCD9000=m
+CONFIG_SENSORS_UCD9200=m
CONFIG_SENSORS_VIA686A=m
CONFIG_SENSORS_VIA_CPUTEMP=m
CONFIG_SENSORS_VT1211=m
CONFIG_SENSORS_VT8231=m
+CONFIG_SENSORS_W83627EHF=m
CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83773G=m
CONFIG_SENSORS_W83781D=m
-CONFIG_SENSORS_W83L785TS=m
-CONFIG_SENSORS_W83L786NG=m
-CONFIG_SENSORS_W83627EHF=m
CONFIG_SENSORS_W83791D=m
CONFIG_SENSORS_W83792D=m
CONFIG_SENSORS_W83793=m
-CONFIG_SENSORS_LTC4215=m
-CONFIG_SENSORS_LM95241=m
-CONFIG_SENSORS_TMP421=m
-CONFIG_SENSORS_WM8350=m
-CONFIG_SENSORS_WM831X=m
-
-# CONFIG_W1 is not set
-CONFIG_W1_CON=y
-# This is busted.
-# If we enable it, it steals Matrox cards, and the
-# framebuffer drivers stop working.
-# CONFIG_W1_MASTER_MATROX is not set
-CONFIG_W1_MASTER_DS2482=m
-CONFIG_W1_MASTER_DS2490=m
-CONFIG_W1_MASTER_DS1WM=m
-CONFIG_W1_SLAVE_THERM=m
-CONFIG_W1_SLAVE_SMEM=m
-CONFIG_W1_SLAVE_DS2431=m
-CONFIG_W1_SLAVE_DS2433=m
-CONFIG_W1_SLAVE_DS2433_CRC=y
-CONFIG_W1_SLAVE_DS2760=m
-#
-# Mice
-#
-
-#
-# IPMI
-#
-CONFIG_IPMI_HANDLER=y
-# CONFIG_IPMI_PANIC_EVENT is not set
-CONFIG_IPMI_DEVICE_INTERFACE=m
-CONFIG_IPMI_WATCHDOG=m
-CONFIG_IPMI_SI=y
-CONFIG_IPMI_POWEROFF=m
-
-#
-# Watchdog Cards
-#
-CONFIG_WATCHDOG=y
-# CONFIG_WATCHDOG_NOWAYOUT is not set
-CONFIG_SOFT_WATCHDOG=m
-# CONFIG_WDT_501 is not set
-CONFIG_WDTPCI=m
-CONFIG_WDT_501_PCI=y
-# CONFIG_ACQUIRE_WDT is not set
-# CONFIG_ADVANTECH_WDT is not set
-# CONFIG_EUROTECH_WDT is not set
-# CONFIG_IB700_WDT is not set
-# CONFIG_MIXCOMWD is not set
-# CONFIG_SCx200_WDT is not set
-# CONFIG_60XX_WDT is not set
-CONFIG_W83877F_WDT=m
-CONFIG_W83627HF_WDT=m
-CONFIG_MACHZ_WDT=m
-# CONFIG_SC520_WDT is not set
-CONFIG_ALIM7101_WDT=m
-CONFIG_ALIM1535_WDT=m
-CONFIG_ITCO_WDT=m
-CONFIG_ITCO_VENDOR_SUPPORT=y
-# CONFIG_SC1200_WDT is not set
-# CONFIG_PC87413_WDT is not set
-# CONFIG_WAFER_WDT is not set
-# CONFIG_CPU5_WDT is not set
-CONFIG_I6300ESB_WDT=m
-CONFIG_IT8712F_WDT=m
-# CONFIG_SBC8360_WDT is not set
-# CONFIG_SBC7240_WDT is not set
+# CONFIG_SENSORS_W83795_FANCTRL is not set
+CONFIG_SENSORS_W83795=m
+CONFIG_SENSORS_W83L785TS=m
+CONFIG_SENSORS_W83L786NG=m
+# CONFIG_SENSORS_XDPE122 is not set
+CONFIG_SENSORS_ZL6100=m
+# CONFIG_SERIAL_8250_16550A_VARIANTS is not set
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_CS=m
+# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
+# CONFIG_SERIAL_8250_DETECT_IRQ is not set
+CONFIG_SERIAL_8250_DMA=y
+CONFIG_SERIAL_8250_DWLIB=y
+CONFIG_SERIAL_8250_DW=y
+CONFIG_SERIAL_8250_EXAR=m
+CONFIG_SERIAL_8250_EXTENDED=y
+# CONFIG_SERIAL_8250_FINTEK is not set
+CONFIG_SERIAL_8250_LPSS=m
+CONFIG_SERIAL_8250_MANY_PORTS=y
+CONFIG_SERIAL_8250_MID=y
+CONFIG_SERIAL_8250_NR_UARTS=32
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_8250_PNP=y
+CONFIG_SERIAL_8250_RSA=y
+CONFIG_SERIAL_8250_RT288X=y
+CONFIG_SERIAL_8250_RUNTIME_UARTS=32
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_8250=y
+# CONFIG_SERIAL_ALTERA_JTAGUART is not set
+# CONFIG_SERIAL_ALTERA_UART is not set
+CONFIG_SERIAL_ARC=m
+CONFIG_SERIAL_ARC_NR_PORTS=1
+# CONFIG_SERIAL_BCM63XX is not set
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_DEV_BUS=y
+CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
+CONFIG_SERIAL_EARLYCON=y
+# CONFIG_SERIAL_FSL_LINFLEXUART is not set
+# CONFIG_SERIAL_FSL_LPUART is not set
+# CONFIG_SERIAL_IFX6X60 is not set
+CONFIG_SERIAL_JSM=m
+# CONFIG_SERIAL_KGDB_NMI is not set
+# CONFIG_SERIAL_LANTIQ is not set
+# CONFIG_SERIAL_MAX3100 is not set
+# CONFIG_SERIAL_MAX310X is not set
+CONFIG_SERIAL_MCTRL_GPIO=y
+CONFIG_SERIAL_NONSTANDARD=y
+# CONFIG_SERIAL_RP2 is not set
+# CONFIG_SERIAL_SC16IS7XX is not set
+# CONFIG_SERIAL_SCCNXP is not set
+# CONFIG_SERIAL_SPRD is not set
+# CONFIG_SERIAL_UARTLITE is not set
+CONFIG_SERIO_ALTERA_PS2=m
+CONFIG_SERIO_ARC_PS2=m
+# CONFIG_SERIO_CT82C710 is not set
+# CONFIG_SERIO_GPIO_PS2 is not set
+CONFIG_SERIO_I8042=y
+CONFIG_SERIO_LIBPS2=y
+# CONFIG_SERIO_PARKBD is not set
+# CONFIG_SERIO_PCIPS2 is not set
+# CONFIG_SERIO_PS2MULT is not set
+CONFIG_SERIO_RAW=m
+CONFIG_SERIO_SERPORT=y
+CONFIG_SERIO=y
+CONFIG_SFC_FALCON=m
+CONFIG_SFC_FALCON_MTD=y
+# CONFIG_SF_PDMA is not set
+CONFIG_SFP=m
+CONFIG_SGETMASK_SYSCALL=y
+CONFIG_SGI_PARTITION=y
+CONFIG_SGL_ALLOC=y
+CONFIG_SG_POOL=y
+CONFIG_SHMEM=y
+CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
+# CONFIG_SI1133 is not set
+# CONFIG_SI1145 is not set
+# CONFIG_SI7005 is not set
+# CONFIG_SI7020 is not set
+CONFIG_SIGNALFD=y
+CONFIG_SIGNATURE=y
+CONFIG_SIGNED_PE_FILE_VERIFICATION=y
+# CONFIG_SIOX is not set
+CONFIG_SIS190=m
+CONFIG_SIS900=m
+CONFIG_SKB_EXTENSIONS=y
+# CONFIG_SKGE_DEBUG is not set
+CONFIG_SKGE_GENESIS=y
+CONFIG_SKGE=m
+# CONFIG_SKY2_DEBUG is not set
+CONFIG_SKY2=m
+CONFIG_SLAB_FREELIST_HARDENED=y
+CONFIG_SLAB_FREELIST_RANDOM=y
+# CONFIG_SLAB is not set
+CONFIG_SLAB_MERGE_DEFAULT=y
+CONFIG_SLHC=m
+# CONFIG_SLICOSS is not set
+# CONFIG_SLIMBUS is not set
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP=m
+# CONFIG_SLIP_MODE_SLIP6 is not set
+CONFIG_SLIP_SMART=y
+CONFIG_SLUB_CPU_PARTIAL=y
+# CONFIG_SLUB_DEBUG_ON is not set
+CONFIG_SLUB_DEBUG=y
+# CONFIG_SLUB_STATS is not set
+CONFIG_SLUB=y
+CONFIG_SMARTJOYPLUS_FF=y
+CONFIG_SMC_DIAG=m
+CONFIG_SMC=m
+# CONFIG_SM_FTL is not set
+CONFIG_SMP=y
+# CONFIG_SMSC37B787_WDT is not set
+CONFIG_SMSC911X=m
+CONFIG_SMSC9420=m
+CONFIG_SMSC_PHY=m
CONFIG_SMSC_SCH311X_WDT=m
-CONFIG_W83977F_WDT=m
-CONFIG_PCIPCWATCHDOG=m
-CONFIG_USBPCWATCHDOG=m
-# CONFIG_SBC_EPX_C3_WATCHDOG is not set
-CONFIG_WM8350_WATCHDOG=m
-CONFIG_WM831X_WATCHDOG=m
-
-CONFIG_HW_RANDOM=y
-CONFIG_HW_RANDOM_TIMERIOMEM=m
-# CONFIG_NVRAM is not set
-# CONFIG_RTC is not set
-# CONFIG_RTC_DEBUG is not set
-# CONFIG_GEN_RTC is not set
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_HCTOSYS=y
-CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
-CONFIG_RTC_INTF_SYSFS=y
-CONFIG_RTC_INTF_PROC=y
-CONFIG_RTC_INTF_DEV=y
-# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
-CONFIG_RTC_DRV_CMOS=y
-CONFIG_RTC_DRV_DS1307=m
-CONFIG_RTC_DRV_DS1553=m
-CONFIG_RTC_DRV_DS1672=m
-CONFIG_RTC_DRV_DS1742=m
-CONFIG_RTC_DRV_DS1374=m
-# CONFIG_RTC_DRV_EP93XX is not set
-CONFIG_RTC_DRV_FM3130=m
-CONFIG_RTC_DRV_ISL1208=m
-CONFIG_RTC_DRV_M41T80=m
-CONFIG_RTC_DRV_M41T80_WDT=y
-CONFIG_RTC_DRV_M48T59=m
-CONFIG_RTC_DRV_MAX6900=m
-# CONFIG_RTC_DRV_M48T86 is not set
-CONFIG_RTC_DRV_PCF8563=m
-CONFIG_RTC_DRV_PCF8583=m
-CONFIG_RTC_DRV_RS5C372=m
-# CONFIG_RTC_DRV_SA1100 is not set
-# CONFIG_RTC_DRV_TEST is not set
-CONFIG_RTC_DRV_X1205=m
-CONFIG_RTC_DRV_V3020=m
-CONFIG_RTC_DRV_STK17TA8=m
-# CONFIG_RTC_DRV_S35390A is not set
-CONFIG_RTC_DRV_RX8581=m
-CONFIG_RTC_DRV_RX8025=m
-CONFIG_RTC_DRV_DS1286=m
-CONFIG_RTC_DRV_M48T35=m
-CONFIG_RTC_DRV_BQ4802=m
-CONFIG_RTC_DRV_WM8350=m
-CONFIG_RTC_DRV_AB3100=m
-CONFIG_RTC_DRV_WM831X=m
-
-# CONFIG_DTLK is not set
-# CONFIG_R3964 is not set
-# CONFIG_APPLICOM is not set
-# CONFIG_SONYPI is not set
-
-#
-# Ftape, the floppy tape device driver
-#
-CONFIG_AGP=y
-CONFIG_AGP_ALI=y
-CONFIG_AGP_ATI=y
-CONFIG_AGP_AMD=y
-CONFIG_AGP_AMD64=y
-CONFIG_AGP_INTEL=y
-CONFIG_AGP_NVIDIA=y
-CONFIG_AGP_SIS=y
-CONFIG_AGP_SWORKS=y
-CONFIG_AGP_VIA=y
-CONFIG_AGP_EFFICEON=y
-CONFIG_VGA_ARB=y
-CONFIG_DRM=m
-# CONFIG_DRM_TDFX is not set
-CONFIG_DRM_R128=m
-CONFIG_DRM_RADEON=m
-CONFIG_DRM_RADEON_KMS=y
-CONFIG_DRM_AMDGPU=m
-# CONFIG_DRM_I810 is not set
-# CONFIG_DRM_I830 is not set
-CONFIG_DRM_MGA=m
-CONFIG_DRM_SIS=m
-CONFIG_DRM_SAVAGE=m
-CONFIG_DRM_I915=m
-CONFIG_DRM_I915_KMS=y
-CONFIG_DRM_VIA=m
-CONFIG_DRM_NOUVEAU=m
-CONFIG_DRM_NOUVEAU_KMS=y
-CONFIG_DRM_NOUVEAU_BACKLIGHT=y
-CONFIG_DRM_I2C_CH7006=m
-
-#
-# PCMCIA character devices
-#
-# CONFIG_SYNCLINK_CS is not set
-
-CONFIG_CARDMAN_4000=m
-CONFIG_CARDMAN_4040=m
-
-# CONFIG_MWAVE is not set
-CONFIG_RAW_DRIVER=y
-CONFIG_MAX_RAW_DEVS=8192
-CONFIG_HANGCHECK_TIMER=m
-
-#
-# Multimedia devices
-#
-CONFIG_MEDIA_SUPPORT=m
-CONFIG_MEDIA_CAMERA_SUPPORT=y
-CONFIG_MEDIA_USB_SUPPORT=y
-CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
-CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
-CONFIG_MEDIA_CAMERA_SUPPORT=y
-CONFIG_VIDEO_DEV=m
-# CONFIG_VIDEO_ADV_DEBUG is not set
-CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
-# CONFIG_VIDEO_ALLOW_V4L1 is not set
-# CONFIG_VIDEO_V4L1_COMPAT is not set
-CONFIG_VIDEO_V4L2=y
-CONFIG_VIDEO_TUNER=m
-CONFIG_VIDEOBUF_GEN=m
-CONFIG_VIDEOBUF_VMALLOC=m
-CONFIG_VIDEOBUF2_CORE=m
-CONFIG_VIDEOBUF2_MEMOPS=m
-CONFIG_VIDEOBUF2_VMALLOC=m
-CONFIG_DVB_CORE=m
-CONFIG_DVB_NET=y
-# CONFIG_VIDEO_VIVI is not set
-CONFIG_V4L_PLATFORM_DRIVERS=y
-
-# CONFIG_TTPCI_EEPROM is not set
-CONFIG_DVB_MAX_ADAPTERS=8
-CONFIG_DVB_DYNAMIC_MINORS=y
-
-#
-# Media drivers
-#
-# CONFIG_MEDIA_USB_SUPPORT is not set
-CONFIG_MEDIA_USB_SUPPORT=y
-
-#
-# Video For Linux
-#
-
-#
-# Video Adapters
-#
-CONFIG_V4L_USB_DRIVERS=y
-CONFIG_VIDEO_CAPTURE_DRIVERS=y
-CONFIG_VIDEO_AU0828=m
-CONFIG_VIDEO_BT848=m
-CONFIG_VIDEO_BT848_DVB=y
-# CONFIG_VIDEO_BWQCAM is not set
-# CONFIG_VIDEO_CAFE_CCIC is not set
-# CONFIG_VIDEO_CPIA is not set
-# CONFIG_VIDEO_CPIA_PP is not set
-# CONFIG_VIDEO_CPIA_USB is not set
-# CONFIG_VIDEO_CPIA2 is not set
-# CONFIG_VIDEO_CQCAM is not set
-CONFIG_VIDEO_CX23885=m
-CONFIG_VIDEO_CX18=m
-CONFIG_VIDEO_CX88=m
-CONFIG_VIDEO_CX88_DVB=m
-CONFIG_VIDEO_CX88_ALSA=m
-CONFIG_VIDEO_CX88_BLACKBIRD=m
-CONFIG_VIDEO_CX88_VP3054=m
-CONFIG_VIDEO_DPC=m
-CONFIG_VIDEO_EM28XX=m
-CONFIG_VIDEO_EM28XX_ALSA=m
-CONFIG_VIDEO_EM28XX_DVB=m
-CONFIG_VIDEO_CX231XX=m
-CONFIG_VIDEO_CX231XX_ALSA=m
-CONFIG_VIDEO_CX231XX_DVB=m
-# CONFIG_VIDEO_HEXIUM_ORION is not set
-# CONFIG_VIDEO_HEXIUM_GEMINI is not set
-CONFIG_VIDEO_IVTV=m
-# CONFIG_VIDEO_MEYE is not set
-# CONFIG_VIDEO_MXB is not set
-# CONFIG_VIDEO_OVCAMCHIP is not set
-CONFIG_VIDEO_PVRUSB2_DVB=y
-CONFIG_VIDEO_HDPVR=m
-# CONFIG_VIDEO_SAA5246A is not set
-# CONFIG_VIDEO_SAA5249 is not set
-CONFIG_VIDEO_SAA6588=m
-CONFIG_VIDEO_SAA7134=m
-CONFIG_VIDEO_SAA7134_ALSA=m
-CONFIG_VIDEO_SAA7134_DVB=m
-# CONFIG_VIDEO_STRADIS is not set
-CONFIG_VIDEO_USBVISION=m
-# CONFIG_VIDEO_W9966 is not set
-# CONFIG_VIDEO_ZORAN is not set
-CONFIG_VIDEO_ZORAN_AVS6EYES=m
-CONFIG_VIDEO_ZORAN_BUZ=m
-CONFIG_VIDEO_ZORAN_DC10=m
-CONFIG_VIDEO_ZORAN_DC30=m
-CONFIG_VIDEO_ZORAN_LML33=m
-CONFIG_VIDEO_ZORAN_LML33R10=m
-CONFIG_VIDEO_ZORAN_ZR36060=m
-CONFIG_VIDEO_FB_IVTV=m
-CONFIG_VIDEO_SAA7164=m
-
-CONFIG_USB_VIDEO_CLASS=m
-CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
-
-#
-# Radio Adapters
-#
-# CONFIG_RADIO_GEMTEK_PCI is not set
-# CONFIG_RADIO_MAXIRADIO is not set
-# CONFIG_RADIO_MAESTRO is not set
-
-CONFIG_MEDIA_ATTACH=y
-# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
-
-#
-# Digital Video Broadcasting Devices
-#
-CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
-CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
-CONFIG_VIDEOBUF2_CORE=m
-CONFIG_VIDEOBUF2_MEMOPS=m
-CONFIG_VIDEOBUF2_VMALLOC=m
-CONFIG_DVB_CAPTURE_DRIVERS=y
-CONFIG_DVB_CORE=m
-CONFIG_DVB_NET=y
-CONFIG_DVB_MAX_ADAPTERS=8
-CONFIG_DVB_DYNAMIC_MINORS=y
-
-# CONFIG_DVB_FE_CUSTOMISE is not set
-
-#
-# Supported Frontend Modules
-#
-CONFIG_DVB_BT8XX=m
-CONFIG_DVB_BUDGET_CORE=m
-CONFIG_DVB_PLUTO2=m
+# CONFIG_SMS_SDIO_DRV is not set
+# CONFIG_SMS_SIANO_DEBUGFS is not set
CONFIG_SMS_SIANO_MDTV=m
+CONFIG_SMS_SIANO_RC=y
CONFIG_SMS_USB_DRV=m
-CONFIG_SMS_SDIO_DRV=m
-CONFIG_DVB_TTUSB_DEC=m
-CONFIG_DVB_USB_DTV5100=m
-CONFIG_DVB_USB_AF9015=m
-CONFIG_DVB_USB_ANYSEE=m
-CONFIG_DVB_USB_DW2102=m
-CONFIG_DVB_USB_FRIIO=m
-CONFIG_DVB_DM1105=m
-CONFIG_DVB_DRX397XD=m
-CONFIG_DVB_LGDT3304=m
-CONFIG_DVB_S921=m
-CONFIG_DVB_ISL6405=m
-CONFIG_DVB_LGS8GL5=m
-CONFIG_DVB_DUMMY_FE=m
-
-#
-# Supported SAA7146 based PCI Adapters
-#
-CONFIG_DVB_AV7110=m
-CONFIG_DVB_AV7110_OSD=y
-CONFIG_DVB_BUDGET=m
-CONFIG_DVB_BUDGET_CI=m
-CONFIG_DVB_BUDGET_AV=m
-CONFIG_DVB_BUDGET_PATCH=m
-
-#
-# Supported USB Adapters
-#
-CONFIG_DVB_TTUSB_BUDGET=m
-
-#
-# Supported FlexCopII (B2C2) Adapters
-#
-CONFIG_DVB_USB_CINERGY_T2=m
-CONFIG_DVB_B2C2_FLEXCOP=m
-CONFIG_DVB_B2C2_FLEXCOP_PCI=m
-CONFIG_DVB_B2C2_FLEXCOP_USB=m
-# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set
-CONFIG_DVB_USB=m
-# CONFIG_DVB_USB_DEBUG is not set
-CONFIG_DVB_USB_A800=m
-CONFIG_DVB_USB_AF9005=m
-CONFIG_DVB_USB_AF9005_REMOTE=m
-CONFIG_DVB_USB_AU6610=m
-CONFIG_DVB_USB_CXUSB=m
-CONFIG_DVB_USB_DIBUSB_MB=m
-# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set
-CONFIG_DVB_USB_DIBUSB_MC=m
-CONFIG_DVB_USB_DIB0700=m
-CONFIG_DVB_USB_DIGITV=m
-CONFIG_DVB_USB_DTT200U=m
-CONFIG_DVB_USB_GL861=m
-CONFIG_DVB_USB_GP8PSK=m
-CONFIG_DVB_USB_M920X=m
-CONFIG_DVB_USB_NOVA_T_USB2=m
-CONFIG_DVB_USB_CE6230=m
-CONFIG_DVB_USB_OPERA1=m
-CONFIG_DVB_USB_TTUSB2=m
-CONFIG_DVB_USB_UMT_010=m
-CONFIG_DVB_USB_VP702X=m
-CONFIG_DVB_USB_VP7045=m
-
-CONFIG_DVB_PT1=m
-
-CONFIG_VIDEO_SAA7146=m
-CONFIG_VIDEO_SAA7146_VV=m
-CONFIG_VIDEO_TUNER=m
-# CONFIG_VIDEO_TUNER_CUSTOMISE is not set
-CONFIG_VIDEO_BTCX=m
-CONFIG_VIDEO_PVRUSB2=m
-CONFIG_VIDEO_PVRUSB2_24XXX=y
-CONFIG_VIDEO_PVRUSB2_29XXX=y
-CONFIG_VIDEO_PVRUSB2_SYSFS=y
-# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
-
-#
-# Graphics support
-#
-
-CONFIG_DISPLAY_SUPPORT=m
-CONFIG_VIDEO_OUTPUT_CONTROL=m
-
-CONFIG_FB=y
-CONFIG_VIDEO_SELECT=y
-# CONFIG_FB_FOREIGN_ENDIAN is not set
-# CONFIG_FB_3DFX is not set
-CONFIG_FB_3DFX_ACCEL=y
-CONFIG_FB_3DFX_I2C=y
-# CONFIG_FB_ARC is not set
-# CONFIG_FB_ARK is not set
-CONFIG_FB_ATY128=m
-CONFIG_FB_ATY=m
-CONFIG_FB_ATY_CT=y
-CONFIG_FB_ATY_GX=y
-CONFIG_FB_ATY_GENERIC_LCD=y
-# CONFIG_FB_ASILIANT is not set
-# CONFIG_FB_CARMINE is not set
-CONFIG_FB_CIRRUS=m
-# CONFIG_FB_CYBER2000 is not set
-# CONFIG_FB_CYBLA is not set
-# CONFIG_FB_GEODE is not set
-# CONFIG_FB_HECUBA is not set
-# CONFIG_FB_HGA is not set
-# CONFIG_FB_I810 is not set
-CONFIG_FB_I810_GTF=y
-CONFIG_FB_I810_I2C=y
-# CONFIG_FB_IMSTT is not set
-# CONFIG_FB_IMAC is not set
-# CONFIG_FB_INTEL is not set
-# CONFIG_FB_INTEL_DEBUG is not set
-# CONFIG_FB_INTEL_I2C is not set
-# CONFIG_FB_KYRO is not set
-# CONFIG_FB_LE80578 is not set
-# CONFIG_FB_MATROX is not set
-CONFIG_FB_MATROX_MILLENIUM=y
-CONFIG_FB_MATROX_MYSTIQUE=y
-CONFIG_FB_MATROX_G=y
-CONFIG_FB_MATROX_I2C=m
-CONFIG_FB_MATROX_MAVEN=m
-CONFIG_FB_MATROX_MULTIHEAD=y
-# CONFIG_FB_NEOMAGIC is not set
-# CONFIG_FB_NVIDIA is not set
-# CONFIG_FB_NVIDIA_DEBUG is not set
-# CONFIG_FB_NVIDIA_I2C is not set
-# CONFIG_FB_PM2 is not set
-# CONFIG_FB_PM2_FIFO_DISCONNECT is not set
-# CONFIG_FB_PM3 is not set
-CONFIG_FB_RIVA=m
-# CONFIG_FB_RIVA_DEBUG is not set
-# CONFIG_FB_RIVA_I2C is not set
-# CONFIG_FB_S1D13XXX is not set
-# CONFIG_FB_S3 is not set
-CONFIG_FB_SAVAGE=m
-CONFIG_FB_SAVAGE_I2C=y
-CONFIG_FB_SAVAGE_ACCEL=y
-# CONFIG_FB_SIS is not set
-CONFIG_FB_SIS_300=y
-CONFIG_FB_SIS_315=y
-CONFIG_FB_SM501=m
-CONFIG_FB_TILEBLITTING=y
-# CONFIG_FB_TRIDENT is not set
-CONFIG_FB_TRIDENT_ACCEL=y
-# CONFIG_FB_UVESA is not set
-CONFIG_FB_VESA=y
-CONFIG_FB_VGA16=m
-CONFIG_FB_VIRTUAL=m
-# CONFIG_FB_VOODOO1 is not set
-# CONFIG_FB_VT8623 is not set
-CONFIG_FB_EFI=y
-CONFIG_FB_VIA=m
-# CONFIG_FB_METRONOME is not set
-# CONFIG_FB_MB862XX is not set
-CONFIG_FB_MB862XX_PCI_GDC=y
-CONFIG_FB_MB862XX_LIME=y
-# CONFIG_FB_PRE_INIT_FB is not set
-# CONFIG_FB_TMIO is not set
-# CONFIG_FB_BROADSHEET is not set
-
-# CONFIG_FIRMWARE_EDID is not set
-
-#
-# Console display driver support
-#
-CONFIG_VGA_CONSOLE=y
-CONFIG_VGACON_SOFT_SCROLLBACK=y
-CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64
-# CONFIG_MDA_CONSOLE is not set
-CONFIG_DUMMY_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
-CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
-# CONFIG_FONTS is not set
-
-#
-# Logo configuration
-#
-CONFIG_LOGO=y
-# CONFIG_LOGO_LINUX_MONO is not set
-# CONFIG_LOGO_LINUX_VGA16 is not set
-CONFIG_LOGO_LINUX_CLUT224=y
-
-#
-# Sound
-#
-CONFIG_SOUND=m
-
-#
-# Advanced Linux Sound Architecture
-#
-CONFIG_SND=y
-CONFIG_SOUND_OSS_CORE_PRECLAIM=y
-# CONFIG_SND_DEBUG_VERBOSE is not set
-CONFIG_SND_VERBOSE_PROCFS=y
-CONFIG_SND_SEQUENCER=y
-CONFIG_SND_HRTIMER=y
-CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
-CONFIG_SND_SEQ_DUMMY=m
-CONFIG_SND_SEQUENCER_OSS=y
-CONFIG_SND_SEQ_RTCTIMER_DEFAULT=y
-CONFIG_SND_OSSEMUL=y
-CONFIG_SND_MIXER_OSS=y
-CONFIG_SND_PCM_OSS=y
-CONFIG_SND_PCM_OSS_PLUGINS=y
-CONFIG_SND_RTCTIMER=y
-CONFIG_SND_DYNAMIC_MINORS=y
-# CONFIG_SND_SUPPORT_OLD_API is not set
-
-#
-# Generic devices
-#
-CONFIG_SND_DUMMY=m
-CONFIG_SND_VIRMIDI=m
-CONFIG_SND_MTPAV=m
-# CONFIG_SND_MTS64 is not set
-# CONFIG_SND_SERIAL_U16550 is not set
-CONFIG_SND_MPU401=m
-# CONFIG_SND_PORTMAN2X4 is not set
+CONFIG_SND_AC97_CODEC=m
+CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
CONFIG_SND_AC97_POWER_SAVE=y
-CONFIG_SND_AC97_POWER_SAVE_DEFAULT=5
-
-CONFIG_SND_DRIVERS=y
-
-#
-# ISA devices
-#
CONFIG_SND_AD1889=m
-# CONFIG_SND_WAVEFRONT is not set
-# CONFIG_SND_MSND_PINNACLE is not set
-# CONFIG_SND_MSND_CLASSIC is not set
-
-#
-# PCI devices
-#
-CONFIG_SND_PCI=y
-# CONFIG_SND_ADLIB is not set
CONFIG_SND_ALI5451=m
-# CONFIG_SND_ALS300 is not set
-# CONFIG_SND_ALS4000 is not set
+CONFIG_SND_ALOOP=m
+CONFIG_SND_ALS300=m
+CONFIG_SND_ALS4000=m
+CONFIG_SND_ASIHPI=m
CONFIG_SND_ATIIXP=m
CONFIG_SND_ATIIXP_MODEM=m
+# CONFIG_SND_ATMEL_SOC is not set
CONFIG_SND_AU8810=m
CONFIG_SND_AU8820=m
CONFIG_SND_AU8830=m
# CONFIG_SND_AW2 is not set
-# CONFIG_SND_AZT3328 is not set
+CONFIG_SND_AZT3328=m
+CONFIG_SND_BCD2000=m
+# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set
+CONFIG_SND_BEBOB=m
CONFIG_SND_BT87X=m
# CONFIG_SND_BT87X_OVERCLOCK is not set
CONFIG_SND_CA0106=m
CONFIG_SND_CMIPCI=m
+CONFIG_SND_COMPRESS_OFFLOAD=m
+CONFIG_SND_CS4281=m
CONFIG_SND_CS46XX=m
CONFIG_SND_CS46XX_NEW_DSP=y
-# CONFIG_SND_CS4281 is not set
-CONFIG_SND_CS5530=m
-CONFIG_SND_CS5535AUDIO=m
+CONFIG_SND_CTXFI=m
+CONFIG_SND_DARLA20=m
+CONFIG_SND_DARLA24=m
+# CONFIG_SND_DEBUG is not set
+# CONFIG_SND_DESIGNWARE_I2S is not set
+CONFIG_SND_DESIGNWARE_PCM=y
+CONFIG_SND_DICE=m
+CONFIG_SND_DMAENGINE_PCM=m
+CONFIG_SND_DMA_SGBUF=y
+CONFIG_SND_DRIVERS=y
+CONFIG_SND_DUMMY=m
+CONFIG_SND_DYNAMIC_MINORS=y
+CONFIG_SND_ECHO3G=m
CONFIG_SND_EMU10K1=m
+CONFIG_SND_EMU10K1_SEQ=m
CONFIG_SND_EMU10K1X=m
CONFIG_SND_ENS1370=m
CONFIG_SND_ENS1371=m
-# CONFIG_SND_ES1938 is not set
+CONFIG_SND_ES1938=m
+CONFIG_SND_ES1968_INPUT=y
CONFIG_SND_ES1968=m
-# CONFIG_SND_FM801 is not set
-# CONFIG_SND_FM801_TEA575X_BOOL is not set
-CONFIG_SND_CTXFI=m
-CONFIG_SND_LX6464ES=m
-CONFIG_SND_HDA_INTEL=y
-CONFIG_SND_HDA_INPUT_BEEP=y
-CONFIG_SND_HDA_INPUT_BEEP_MODE=2
-CONFIG_SND_HDA_INPUT_JACK=y
-# CONFIG_SND_HDA_PATCH_LOADER is not set
+CONFIG_SND_ES1968_RADIO=y
+CONFIG_SND_FIREFACE=m
+CONFIG_SND_FIREWIRE_DIGI00X=m
+CONFIG_SND_FIREWIRE_LIB=m
+CONFIG_SND_FIREWIRE_MOTU=m
+CONFIG_SND_FIREWIRE_TASCAM=m
+CONFIG_SND_FIREWIRE=y
+CONFIG_SND_FIREWORKS=m
+CONFIG_SND_FM801=m
+CONFIG_SND_FM801_TEA575X_BOOL=y
+CONFIG_SND_GINA20=m
+CONFIG_SND_GINA24=m
+CONFIG_SND_HDA_CODEC_ANALOG=m
+CONFIG_SND_HDA_CODEC_CA0110=m
+CONFIG_SND_HDA_CODEC_CA0132_DSP=y
+CONFIG_SND_HDA_CODEC_CA0132=m
+CONFIG_SND_HDA_CODEC_CIRRUS=m
+CONFIG_SND_HDA_CODEC_CMEDIA=m
+CONFIG_SND_HDA_CODEC_CONEXANT=m
+CONFIG_SND_HDA_CODEC_HDMI=m
+CONFIG_SND_HDA_CODEC_REALTEK=m
+CONFIG_SND_HDA_CODEC_SI3054=m
+CONFIG_SND_HDA_CODEC_SIGMATEL=m
+CONFIG_SND_HDA_CODEC_VIA=m
+CONFIG_SND_HDA_COMPONENT=y
+CONFIG_SND_HDA_CORE=m
+CONFIG_SND_HDA_DSP_LOADER=y
+CONFIG_SND_HDA_EXT_CORE=m
+CONFIG_SND_HDA_GENERIC_LEDS=y
+CONFIG_SND_HDA_GENERIC=m
CONFIG_SND_HDA_HWDEP=y
-CONFIG_SND_HDA_CODEC_REALTEK=y
-CONFIG_SND_HDA_CODEC_CA0110=y
-CONFIG_SND_HDA_CODEC_ANALOG=y
-CONFIG_SND_HDA_CODEC_SIGMATEL=y
-CONFIG_SND_HDA_CODEC_VIA=y
-CONFIG_SND_HDA_CODEC_ATIHDMI=y
-CONFIG_SND_HDA_CODEC_CIRRUS=y
-CONFIG_SND_HDA_CODEC_CONEXANT=y
-CONFIG_SND_HDA_CODEC_CMEDIA=y
-CONFIG_SND_HDA_CODEC_INTELHDMI=y
-CONFIG_SND_HDA_CODEC_SI3054=y
-CONFIG_SND_HDA_CODEC_NVHDMI=y
-CONFIG_SND_HDA_GENERIC=y
-CONFIG_SND_HDA_POWER_SAVE=y
-CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
-# CONFIG_SND_HDA_RECONFIG is not set
+CONFIG_SND_HDA_I915=y
+CONFIG_SND_HDA_INPUT_BEEP_MODE=0
+CONFIG_SND_HDA_INPUT_BEEP=y
+# CONFIG_SND_HDA_INTEL_DETECT_DMIC is not set
+# CONFIG_SND_HDA_INTEL_HDMI_SILENT_STREAM is not set
+CONFIG_SND_HDA_INTEL=m
+CONFIG_SND_HDA=m
+CONFIG_SND_HDA_PATCH_LOADER=y
+CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1
+CONFIG_SND_HDA_PREALLOC_SIZE=4096
+CONFIG_SND_HDA_RECONFIG=y
+CONFIG_SND_HDSP=m
CONFIG_SND_HDSPM=m
-CONFIG_SND_HIFIER=m
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_HWDEP=m
+CONFIG_SND_I2S_HI6210_I2S=m
CONFIG_SND_ICE1712=m
CONFIG_SND_ICE1724=m
-CONFIG_SND_INTEL8X0=y
+CONFIG_SND_INDIGODJ=m
+CONFIG_SND_INDIGODJX=m
+CONFIG_SND_INDIGOIO=m
+CONFIG_SND_INDIGOIOX=m
+CONFIG_SND_INDIGO=m
+CONFIG_SND_INTEL8X0=m
CONFIG_SND_INTEL8X0M=m
+CONFIG_SND_INTEL_DSP_CONFIG=m
+CONFIG_SND_INTEL_NHLT=m
+CONFIG_SND_ISIGHT=m
+CONFIG_SND_JACK_INPUT_DEV=y
+CONFIG_SND_JACK=y
CONFIG_SND_KORG1212=m
-CONFIG_SND_KORG1212_FIRMWARE_IN_KERNEL=y
+CONFIG_SND_LAYLA20=m
+CONFIG_SND_LAYLA24=m
+CONFIG_SND_LOLA=m
+CONFIG_SND_LX6464ES=m
+CONFIG_SND=m
+CONFIG_SND_MAESTRO3_INPUT=y
CONFIG_SND_MAESTRO3=m
-CONFIG_SND_MAESTRO3_FIRMWARE_IN_KERNEL=y
-CONFIG_SND_MIRO=m
+CONFIG_SND_MAX_CARDS=32
+CONFIG_SND_MIA=m
CONFIG_SND_MIXART=m
-# CONFIG_SND_NM256 is not set
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_MONA=m
+CONFIG_SND_MPU401=m
+CONFIG_SND_MPU401_UART=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_MTS64=m
+CONFIG_SND_NM256=m
+CONFIG_SND_OPL3_LIB=m
+CONFIG_SND_OPL3_LIB_SEQ=m
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_OXFW=m
+CONFIG_SND_OXYGEN_LIB=m
CONFIG_SND_OXYGEN=m
-CONFIG_SND_RME32=m
-CONFIG_SND_PCSP=m
+CONFIG_SND_PCI=y
+# CONFIG_SND_PCMCIA is not set
+CONFIG_SND_PCM_ELD=y
+CONFIG_SND_PCM=m
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_PCM_OSS_PLUGINS=y
+CONFIG_SND_PCM_TIMER=y
+# CONFIG_SND_PCSP is not set
CONFIG_SND_PCXHR=m
-# CONFIG_SND_RIPTIDE is not set
-CONFIG_SND_RME96=m
+CONFIG_SND_PORTMAN2X4=m
+CONFIG_SND_PROC_FS=y
+CONFIG_SND_RAWMIDI=m
+CONFIG_SND_RIPTIDE=m
+CONFIG_SND_RME32=m
CONFIG_SND_RME9652=m
-# CONFIG_SND_SC6000 is not set
-CONFIG_SND_SIS7019=m
-# CONFIG_SND_SONICVIBES is not set
-CONFIG_SND_HDSP=m
+CONFIG_SND_RME96=m
+CONFIG_SND_SB_COMMON=m
+CONFIG_SND_SEQ_DEVICE=m
+CONFIG_SND_SEQ_DUMMY=m
+CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
+CONFIG_SND_SEQ_MIDI_EMUL=m
+CONFIG_SND_SEQ_MIDI_EVENT=m
+CONFIG_SND_SEQ_MIDI=m
+CONFIG_SND_SEQUENCER=m
+CONFIG_SND_SEQUENCER_OSS=m
+CONFIG_SND_SEQ_VIRMIDI=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_SIMPLE_CARD=m
+CONFIG_SND_SIMPLE_CARD_UTILS=m
+CONFIG_SND_SOC_AC97_BUS=y
+CONFIG_SND_SOC_AC97_CODEC=m
+CONFIG_SND_SOC_ACPI_INTEL_MATCH=m
+CONFIG_SND_SOC_ACPI=m
+# CONFIG_SND_SOC_ADAU1372_I2C is not set
+# CONFIG_SND_SOC_ADAU1372_SPI is not set
+# CONFIG_SND_SOC_ADAU1701 is not set
+CONFIG_SND_SOC_ADAU1761_I2C=m
+CONFIG_SND_SOC_ADAU1761=m
+CONFIG_SND_SOC_ADAU1761_SPI=m
+CONFIG_SND_SOC_ADAU17X1=m
+CONFIG_SND_SOC_ADAU7002=m
+# CONFIG_SND_SOC_ADAU7118_HW is not set
+# CONFIG_SND_SOC_ADAU7118_I2C is not set
+CONFIG_SND_SOC_ADAU_UTILS=m
+# CONFIG_SND_SOC_ADI is not set
+# CONFIG_SND_SOC_AK4104 is not set
+# CONFIG_SND_SOC_AK4118 is not set
+# CONFIG_SND_SOC_AK4458 is not set
+# CONFIG_SND_SOC_AK4554 is not set
+# CONFIG_SND_SOC_AK4613 is not set
+# CONFIG_SND_SOC_AK4642 is not set
+# CONFIG_SND_SOC_AK5386 is not set
+CONFIG_SND_SOC_AK5558=m
+# CONFIG_SND_SOC_ALC5623 is not set
+CONFIG_SND_SOC_AMD_ACP3x=m
+CONFIG_SND_SOC_AMD_ACP=m
+CONFIG_SND_SOC_AMD_CZ_DA7219MX98357_MACH=m
+CONFIG_SND_SOC_AMD_CZ_RT5645_MACH=m
+CONFIG_SND_SOC_AMD_RENOIR=m
+CONFIG_SND_SOC_AMD_RENOIR_MACH=m
+CONFIG_SND_SOC_BD28623=m
+# CONFIG_SND_SOC_BT_SCO is not set
+CONFIG_SND_SOC_COMPRESS=y
+# CONFIG_SND_SOC_CS35L32 is not set
+# CONFIG_SND_SOC_CS35L33 is not set
+CONFIG_SND_SOC_CS35L34=m
+CONFIG_SND_SOC_CS35L35=m
+CONFIG_SND_SOC_CS35L36=m
+# CONFIG_SND_SOC_CS4234 is not set
+# CONFIG_SND_SOC_CS4265 is not set
+# CONFIG_SND_SOC_CS4270 is not set
+# CONFIG_SND_SOC_CS4271_I2C is not set
+# CONFIG_SND_SOC_CS4271_SPI is not set
+CONFIG_SND_SOC_CS42L42=m
+# CONFIG_SND_SOC_CS42L51_I2C is not set
+# CONFIG_SND_SOC_CS42L52 is not set
+# CONFIG_SND_SOC_CS42L56 is not set
+# CONFIG_SND_SOC_CS42L73 is not set
+# CONFIG_SND_SOC_CS42XX8_I2C is not set
+CONFIG_SND_SOC_CS43130=m
+# CONFIG_SND_SOC_CS4341 is not set
+# CONFIG_SND_SOC_CS4349 is not set
+# CONFIG_SND_SOC_CS53L30 is not set
+CONFIG_SND_SOC_CX2072X=m
+CONFIG_SND_SOC_DA7213=m
+CONFIG_SND_SOC_DA7219=m
+CONFIG_SND_SOC_DMIC=m
+CONFIG_SND_SOC_ES7134=m
+# CONFIG_SND_SOC_ES7241 is not set
+CONFIG_SND_SOC_ES8316=m
+CONFIG_SND_SOC_ES8328_I2C=m
+CONFIG_SND_SOC_ES8328=m
+CONFIG_SND_SOC_ES8328_SPI=m
+# CONFIG_SND_SOC_FSL_ASRC is not set
+# CONFIG_SND_SOC_FSL_AUDMIX is not set
+# CONFIG_SND_SOC_FSL_ESAI is not set
+# CONFIG_SND_SOC_FSL_MICFIL is not set
+# CONFIG_SND_SOC_FSL_SAI is not set
+# CONFIG_SND_SOC_FSL_SPDIF is not set
+# CONFIG_SND_SOC_FSL_SSI is not set
+# CONFIG_SND_SOC_FSL_XCVR is not set
+CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
+# CONFIG_SND_SOC_GTM601 is not set
+CONFIG_SND_SOC_HDAC_HDA=m
+CONFIG_SND_SOC_HDAC_HDMI=m
+CONFIG_SND_SOC_I2C_AND_SPI=m
+# CONFIG_SND_SOC_IMG is not set
+# CONFIG_SND_SOC_IMX_AUDMUX is not set
+# CONFIG_SND_SOC_INNO_RK3036 is not set
+CONFIG_SND_SOC_INTEL_APL=m
+# CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH is not set
+# CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH is not set
+# CONFIG_SND_SOC_INTEL_BROADWELL_MACH is not set
+CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_COMMON=m
+CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH=m
+CONFIG_SND_SOC_INTEL_BXT_RT298_MACH=m
+CONFIG_SND_SOC_INTEL_BYT_CHT_CX2072X_MACH=m
+CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH=m
+CONFIG_SND_SOC_INTEL_BYT_CHT_ES8316_MACH=m
+# CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH is not set
+CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m
+CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m
+# CONFIG_SND_SOC_INTEL_CATPT is not set
+CONFIG_SND_SOC_INTEL_CFL=m
+CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m
+CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH=m
+CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
+CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m
+CONFIG_SND_SOC_INTEL_CML_H=m
+CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH=m
+CONFIG_SND_SOC_INTEL_CML_LP=m
+CONFIG_SND_SOC_INTEL_CNL=m
+CONFIG_SND_SOC_INTEL_DA7219_MAX98357A_GENERIC=m
+# CONFIG_SND_SOC_INTEL_EHL_RT5660_MACH is not set
+# CONFIG_SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH is not set
+CONFIG_SND_SOC_INTEL_GLK=m
+# CONFIG_SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH is not set
+CONFIG_SND_SOC_INTEL_HASWELL=m
+CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
+CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98357A_MACH=m
+CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98927_MACH=m
+CONFIG_SND_SOC_INTEL_KBL=m
+CONFIG_SND_SOC_INTEL_KBL_RT5660_MACH=m
+CONFIG_SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH=m
+CONFIG_SND_SOC_INTEL_KBL_RT5663_RT5514_MAX98927_MACH=m
+CONFIG_SND_SOC_INTEL_MACH=y
+CONFIG_SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH=m
+CONFIG_SND_SOC_INTEL_SKL=m
+CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH=m
+CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH=m
+CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m
+CONFIG_SND_SOC_INTEL_SKYLAKE_COMMON=m
+CONFIG_SND_SOC_INTEL_SKYLAKE_FAMILY=m
+CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC=y
+CONFIG_SND_SOC_INTEL_SKYLAKE=m
+CONFIG_SND_SOC_INTEL_SKYLAKE_SSP_CLK=m
+# CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH is not set
+# CONFIG_SND_SOC_INTEL_SOF_DA7219_MAX98373_MACH is not set
+# CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH is not set
+CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m
+# CONFIG_SND_SOC_INTEL_SOF_WM8804_MACH is not set
+# CONFIG_SND_SOC_INTEL_SOUNDWIRE_SOF_MACH is not set
+CONFIG_SND_SOC_INTEL_SST_ACPI=m
+CONFIG_SND_SOC_INTEL_SST_FIRMWARE=m
+CONFIG_SND_SOC_INTEL_SST=m
+CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y
+CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES=y
+# CONFIG_SND_SOC_LPASS_VA_MACRO is not set
+# CONFIG_SND_SOC_LPASS_WSA_MACRO is not set
+CONFIG_SND_SOC=m
+CONFIG_SND_SOC_MAX9759=m
+CONFIG_SND_SOC_MAX98088=m
+CONFIG_SND_SOC_MAX98090=m
+CONFIG_SND_SOC_MAX98357A=m
+CONFIG_SND_SOC_MAX98373_I2C=m
+CONFIG_SND_SOC_MAX98373=m
+CONFIG_SND_SOC_MAX98373_SDW=m
+CONFIG_SND_SOC_MAX98390=m
+# CONFIG_SND_SOC_MAX98504 is not set
+# CONFIG_SND_SOC_MAX9860 is not set
+CONFIG_SND_SOC_MAX9867=m
+CONFIG_SND_SOC_MAX98927=m
+# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set
+# CONFIG_SND_SOC_MT6351 is not set
+# CONFIG_SND_SOC_MT6358 is not set
+# CONFIG_SND_SOC_MT6660 is not set
+# CONFIG_SND_SOC_MTK_BTCVSD is not set
+# CONFIG_SND_SOC_NAU8315 is not set
+CONFIG_SND_SOC_NAU8540=m
+# CONFIG_SND_SOC_NAU8810 is not set
+# CONFIG_SND_SOC_NAU8822 is not set
+CONFIG_SND_SOC_NAU8824=m
+CONFIG_SND_SOC_NAU8825=m
+# CONFIG_SND_SOC_PCM1681 is not set
+CONFIG_SND_SOC_PCM1789_I2C=m
+CONFIG_SND_SOC_PCM1789=m
+# CONFIG_SND_SOC_PCM179X_I2C is not set
+# CONFIG_SND_SOC_PCM179X_SPI is not set
+CONFIG_SND_SOC_PCM186X_I2C=m
+CONFIG_SND_SOC_PCM186X=m
+CONFIG_SND_SOC_PCM186X_SPI=m
+CONFIG_SND_SOC_PCM3060_I2C=m
+CONFIG_SND_SOC_PCM3060=m
+CONFIG_SND_SOC_PCM3060_SPI=m
+# CONFIG_SND_SOC_PCM3168A_I2C is not set
+# CONFIG_SND_SOC_PCM3168A_SPI is not set
+# CONFIG_SND_SOC_PCM5102A is not set
+# CONFIG_SND_SOC_PCM512x_I2C is not set
+# CONFIG_SND_SOC_PCM512x_SPI is not set
+# CONFIG_SND_SOC_RK3328 is not set
+CONFIG_SND_SOC_RL6231=m
+CONFIG_SND_SOC_RL6347A=m
+CONFIG_SND_SOC_RT1011=m
+CONFIG_SND_SOC_RT1015=m
+CONFIG_SND_SOC_RT1308_SDW=m
+CONFIG_SND_SOC_RT286=m
+CONFIG_SND_SOC_RT298=m
+CONFIG_SND_SOC_RT5514=m
+CONFIG_SND_SOC_RT5514_SPI=m
+# CONFIG_SND_SOC_RT5616 is not set
+# CONFIG_SND_SOC_RT5631 is not set
+CONFIG_SND_SOC_RT5640=m
+CONFIG_SND_SOC_RT5645=m
+CONFIG_SND_SOC_RT5651=m
+CONFIG_SND_SOC_RT5660=m
+CONFIG_SND_SOC_RT5663=m
+CONFIG_SND_SOC_RT5670=m
+CONFIG_SND_SOC_RT5677=m
+CONFIG_SND_SOC_RT5677_SPI=m
+CONFIG_SND_SOC_RT5682_I2C=m
+CONFIG_SND_SOC_RT5682=m
+CONFIG_SND_SOC_RT5682_SDW=m
+CONFIG_SND_SOC_RT700=m
+CONFIG_SND_SOC_RT700_SDW=m
+CONFIG_SND_SOC_RT711=m
+CONFIG_SND_SOC_RT711_SDW=m
+CONFIG_SND_SOC_RT715=m
+CONFIG_SND_SOC_RT715_SDW=m
+# CONFIG_SND_SOC_SGTL5000 is not set
+CONFIG_SND_SOC_SIGMADSP=m
+CONFIG_SND_SOC_SIGMADSP_REGMAP=m
+CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
+# CONFIG_SND_SOC_SIMPLE_MUX is not set
+# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set
+CONFIG_SND_SOC_SOF_ACPI=m
+CONFIG_SND_SOC_SOF_ALDERLAKE=m
+CONFIG_SND_SOC_SOF_ALDERLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_APOLLOLAKE=m
+CONFIG_SND_SOC_SOF_APOLLOLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_BAYTRAIL=m
+CONFIG_SND_SOC_SOF_BAYTRAIL_SUPPORT=y
+CONFIG_SND_SOC_SOF_BROADWELL=m
+CONFIG_SND_SOC_SOF_BROADWELL_SUPPORT=y
+CONFIG_SND_SOC_SOF_CANNONLAKE=m
+CONFIG_SND_SOC_SOF_CANNONLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_COFFEELAKE=m
+CONFIG_SND_SOC_SOF_COFFEELAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_COMETLAKE_H=m
+CONFIG_SND_SOC_SOF_COMETLAKE_H_SUPPORT=y
+CONFIG_SND_SOC_SOF_COMETLAKE_LP=m
+CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT=y
+CONFIG_SND_SOC_SOF_COMETLAKE=m
+CONFIG_SND_SOC_SOF_COMETLAKE_SUPPORT=y
+# CONFIG_SND_SOC_SOF_DEBUG is not set
+# CONFIG_SND_SOC_SOF_DEBUG_PROBES is not set
+CONFIG_SND_SOC_SOF_ELKHARTLAKE=m
+CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_GEMINILAKE=m
+CONFIG_SND_SOC_SOF_GEMINILAKE_SUPPORT=y
+# CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1 is not set
+CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y
+CONFIG_SND_SOC_SOF_HDA_COMMON=m
+CONFIG_SND_SOC_SOF_HDA_LINK_BASELINE=m
+CONFIG_SND_SOC_SOF_HDA_LINK=y
+CONFIG_SND_SOC_SOF_HDA=m
+CONFIG_SND_SOC_SOF_ICELAKE=m
+CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_INTEL_ACPI=m
+CONFIG_SND_SOC_SOF_INTEL_ATOM_HIFI_EP=m
+CONFIG_SND_SOC_SOF_INTEL_COMMON=m
+CONFIG_SND_SOC_SOF_INTEL_HIFI_EP_IPC=m
+CONFIG_SND_SOC_SOF_INTEL_PCI=m
+CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE=m
+CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE_LINK=y
+CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE=m
+CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y
+CONFIG_SND_SOC_SOF_JASPERLAKE=m
+CONFIG_SND_SOC_SOF_JASPERLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF=m
+CONFIG_SND_SOC_SOF_MERRIFIELD=m
+CONFIG_SND_SOC_SOF_MERRIFIELD_SUPPORT=y
+# CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT is not set
+CONFIG_SND_SOC_SOF_OPTIONS=m
+CONFIG_SND_SOC_SOF_PCI=m
+CONFIG_SND_SOC_SOF_PROBE_WORK_QUEUE=y
+# CONFIG_SND_SOC_SOF_STRICT_ABI_CHECKS is not set
+CONFIG_SND_SOC_SOF_TIGERLAKE=m
+CONFIG_SND_SOC_SOF_TIGERLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_TOPLEVEL=y
+CONFIG_SND_SOC_SOF_XTENSA=m
+CONFIG_SND_SOC_SPDIF=m
+# CONFIG_SND_SOC_SSM2305 is not set
+# CONFIG_SND_SOC_SSM2602_I2C is not set
+# CONFIG_SND_SOC_SSM2602_SPI is not set
+CONFIG_SND_SOC_SSM4567=m
+# CONFIG_SND_SOC_STA32X is not set
+# CONFIG_SND_SOC_STA350 is not set
+# CONFIG_SND_SOC_STI_SAS is not set
+# CONFIG_SND_SOC_TAS2552 is not set
+# CONFIG_SND_SOC_TAS2562 is not set
+# CONFIG_SND_SOC_TAS2764 is not set
+# CONFIG_SND_SOC_TAS2770 is not set
+# CONFIG_SND_SOC_TAS5086 is not set
+# CONFIG_SND_SOC_TAS571X is not set
+# CONFIG_SND_SOC_TAS5720 is not set
+CONFIG_SND_SOC_TAS6424=m
+CONFIG_SND_SOC_TDA7419=m
+# CONFIG_SND_SOC_TFA9879 is not set
+# CONFIG_SND_SOC_TLV320ADCX140 is not set
+# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
+# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
+# CONFIG_SND_SOC_TLV320AIC31XX is not set
+CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
+CONFIG_SND_SOC_TLV320AIC32X4=m
+CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
+# CONFIG_SND_SOC_TLV320AIC3X is not set
+CONFIG_SND_SOC_TOPOLOGY=y
+# CONFIG_SND_SOC_TPA6130A2 is not set
+CONFIG_SND_SOC_TS3A227E=m
+CONFIG_SND_SOC_TSCS42XX=m
+# CONFIG_SND_SOC_TSCS454 is not set
+# CONFIG_SND_SOC_UDA1334 is not set
+# CONFIG_SND_SOC_WM8510 is not set
+# CONFIG_SND_SOC_WM8523 is not set
+CONFIG_SND_SOC_WM8524=m
+# CONFIG_SND_SOC_WM8580 is not set
+# CONFIG_SND_SOC_WM8711 is not set
+# CONFIG_SND_SOC_WM8728 is not set
+# CONFIG_SND_SOC_WM8731 is not set
+# CONFIG_SND_SOC_WM8737 is not set
+# CONFIG_SND_SOC_WM8741 is not set
+# CONFIG_SND_SOC_WM8750 is not set
+# CONFIG_SND_SOC_WM8753 is not set
+# CONFIG_SND_SOC_WM8770 is not set
+# CONFIG_SND_SOC_WM8776 is not set
+# CONFIG_SND_SOC_WM8782 is not set
+# CONFIG_SND_SOC_WM8804_I2C is not set
+# CONFIG_SND_SOC_WM8804_SPI is not set
+# CONFIG_SND_SOC_WM8903 is not set
+# CONFIG_SND_SOC_WM8904 is not set
+# CONFIG_SND_SOC_WM8960 is not set
+# CONFIG_SND_SOC_WM8962 is not set
+# CONFIG_SND_SOC_WM8974 is not set
+# CONFIG_SND_SOC_WM8978 is not set
+# CONFIG_SND_SOC_WM8985 is not set
+# CONFIG_SND_SOC_WSA881X is not set
+# CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER is not set
+# CONFIG_SND_SOC_XILINX_I2S is not set
+# CONFIG_SND_SOC_XILINX_SPDIF is not set
+# CONFIG_SND_SOC_XTFPGA_I2S is not set
+# CONFIG_SND_SOC_ZL38060 is not set
+# CONFIG_SND_SOC_ZX_AUD96P22 is not set
+CONFIG_SND_SONICVIBES=m
+# CONFIG_SND_SPI is not set
+CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_ACPI=m
+CONFIG_SND_SST_ATOM_HIFI2_PLATFORM=m
+# CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI is not set
+CONFIG_SND_SST_IPC_ACPI=m
+CONFIG_SND_SST_IPC=m
+CONFIG_SND_SST_IPC_PCI=m
+# CONFIG_SND_SUPPORT_OLD_API is not set
+CONFIG_SND_SYNTH_EMUX=m
+CONFIG_SND_TIMER=m
CONFIG_SND_TRIDENT=m
+CONFIG_SND_USB_6FIRE=m
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_AUDIO_USE_MEDIA_CONTROLLER=y
+CONFIG_SND_USB_CAIAQ_INPUT=y
+CONFIG_SND_USB_CAIAQ=m
+CONFIG_SND_USB_HIFACE=m
+CONFIG_SND_USB_LINE6=m
+CONFIG_SND_USB_PODHD=m
+CONFIG_SND_USB_POD=m
+CONFIG_SND_USB_TONEPORT=m
+CONFIG_SND_USB_UA101=m
+CONFIG_SND_USB_US122L=m
+CONFIG_SND_USB_USX2Y=m
+CONFIG_SND_USB_VARIAX=m
+CONFIG_SND_USB=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+CONFIG_SND_VERBOSE_PROCFS=y
CONFIG_SND_VIA82XX=m
CONFIG_SND_VIA82XX_MODEM=m
+CONFIG_SND_VIRMIDI=m
CONFIG_SND_VIRTUOSO=m
+CONFIG_SND_VMASTER=y
CONFIG_SND_VX222=m
-# CONFIG_SND_YMFPCI is not set
-# CONFIG_SND_YMFPCI_FIRMWARE_IN_KERNEL is not set
-
-#
-# ALSA USB devices
-#
-CONFIG_SND_USB=y
-CONFIG_SND_USB_AUDIO=m
-CONFIG_SND_USB_CAIAQ=m
-CONFIG_SND_USB_CAIAQ_INPUT=y
-CONFIG_SND_USB_USX2Y=m
-CONFIG_SND_USB_US122L=m
-
-#
-# PCMCIA devices
-#
-CONFIG_SND_PCMCIA=y
-# CONFIG_SND_VXPOCKET is not set
-# CONFIG_SND_PDAUDIOCF is not set
-
-#
-# Open Sound System
-#
-# CONFIG_SOUND_PRIME is not set
-
-#
-# USB support
-#
-CONFIG_USB=y
-CONFIG_USB_SUPPORT=y
-# CONFIG_USB_DEBUG is not set
-
-# DEPRECATED: See bug 362221. Fix udev.
-# CONFIG_USB_DEVICE_CLASS is not set
-
-CONFIG_USB_PERSIST=y
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEVICEFS=y
+CONFIG_SND_VX_LIB=m
+CONFIG_SND_X86=y
+CONFIG_SND_XEN_FRONTEND=m
+CONFIG_SND_YMFPCI=m
+CONFIG_SOCK_CGROUP_DATA=y
+CONFIG_SOCK_VALIDATE_XMIT=y
+# CONFIG_SOC_TI is not set
+CONFIG_SOFTLOCKUP_DETECTOR=y
+CONFIG_SOFT_WATCHDOG=m
+CONFIG_SOLARIS_X86_PARTITION=y
+CONFIG_SONY_FF=y
+CONFIG_SONY_LAPTOP=m
+CONFIG_SONYPI_COMPAT=y
+CONFIG_SOUND=m
+CONFIG_SOUND_OSS_CORE_PRECLAIM=y
+CONFIG_SOUND_OSS_CORE=y
+CONFIG_SOUNDWIRE_CADENCE=m
+CONFIG_SOUNDWIRE_GENERIC_ALLOCATION=m
+CONFIG_SOUNDWIRE_INTEL=m
+CONFIG_SOUNDWIRE=m
+CONFIG_SOUNDWIRE_QCOM=m
+CONFIG_SP5100_TCO=m
+CONFIG_SPARSE_IRQ=y
+CONFIG_SPARSEMEM_MANUAL=y
+CONFIG_SPARSEMEM=y
+# CONFIG_SPEAKUP is not set
+# CONFIG_SPI_ALTERA is not set
+CONFIG_SPI_AMD=m
+# CONFIG_SPI_AXI_SPI_ENGINE is not set
+# CONFIG_SPI_BITBANG is not set
+# CONFIG_SPI_BUTTERFLY is not set
+# CONFIG_SPI_CADENCE is not set
+# CONFIG_SPI_DEBUG is not set
+# CONFIG_SPI_DESIGNWARE is not set
+CONFIG_SPI_DYNAMIC=y
+# CONFIG_SPI_GPIO is not set
+# CONFIG_SPI_LANTIQ_SSC is not set
+# CONFIG_SPI_LM70_LLP is not set
+# CONFIG_SPI_LOOPBACK_TEST is not set
+CONFIG_SPI_MASTER=y
+# CONFIG_SPI_MEM is not set
+CONFIG_SPI_MUX=m
+# CONFIG_SPI_MXIC is not set
+# CONFIG_SPI_NXP_FLEXSPI is not set
+# CONFIG_SPI_OC_TINY is not set
+CONFIG_SPI_PXA2XX=m
+CONFIG_SPI_PXA2XX_PCI=m
+# CONFIG_SPI_ROCKCHIP is not set
+# CONFIG_SPI_SC18IS602 is not set
+# CONFIG_SPI_SIFIVE is not set
+# CONFIG_SPI_SLAVE is not set
+CONFIG_SPI_SPIDEV=m
+# CONFIG_SPI_TLE62X0 is not set
+# CONFIG_SPI_XCOMM is not set
+# CONFIG_SPI_XILINX is not set
+CONFIG_SPI=y
+# CONFIG_SPI_ZYNQMP_GQSPI is not set
+CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_SPMI is not set
+# CONFIG_SPS30 is not set
+# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
+# CONFIG_SQUASHFS_DECOMP_MULTI is not set
+# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set
+CONFIG_SQUASHFS_DECOMP_SINGLE=y
+# CONFIG_SQUASHFS_EMBEDDED is not set
+CONFIG_SQUASHFS_FILE_CACHE=y
+# CONFIG_SQUASHFS_FILE_DIRECT is not set
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+CONFIG_SQUASHFS_LZ4=y
+CONFIG_SQUASHFS_LZO=y
+CONFIG_SQUASHFS=m
+CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_XZ=y
+CONFIG_SQUASHFS_ZLIB=y
+CONFIG_SQUASHFS_ZSTD=y
+# CONFIG_SRAM is not set
+CONFIG_SRCU=y
+# CONFIG_SRF04 is not set
+# CONFIG_SRF08 is not set
+CONFIG_SSB_B43_PCI_BRIDGE=y
+CONFIG_SSB_BLOCKIO=y
+CONFIG_SSB_DRIVER_GPIO=y
+CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
+CONFIG_SSB_DRIVER_PCICORE=y
+CONFIG_SSB=m
+CONFIG_SSB_PCIHOST_POSSIBLE=y
+CONFIG_SSB_PCIHOST=y
+CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
+CONFIG_SSB_PCMCIAHOST=y
+CONFIG_SSB_POSSIBLE=y
+CONFIG_SSB_SDIOHOST_POSSIBLE=y
+CONFIG_SSB_SDIOHOST=y
+CONFIG_SSB_SPROM=y
+# CONFIG_SSFDC is not set
+CONFIG_STACKPROTECTOR_STRONG=y
+CONFIG_STACKPROTECTOR=y
+CONFIG_STACK_TRACER=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_STACKTRACE=y
+CONFIG_STAGING_MEDIA=y
+CONFIG_STAGING=y
+CONFIG_STANDALONE=y
+# CONFIG_STATIC_CALL_SELFTEST is not set
+# CONFIG_STATIC_KEYS_SELFTEST is not set
+# CONFIG_STATIC_USERMODEHELPER is not set
+CONFIG_STE10XP=m
+CONFIG_STK3310=m
+# CONFIG_STK8312 is not set
+# CONFIG_STK8BA50 is not set
+# CONFIG_STM is not set
+CONFIG_STMMAC_ETH=m
+# CONFIG_STMMAC_PCI is not set
+# CONFIG_STMMAC_PLATFORM is not set
+# CONFIG_STMMAC_SELFTESTS is not set
+CONFIG_STP=m
+CONFIG_STREAM_PARSER=y
+CONFIG_STRICT_DEVMEM=y
+CONFIG_STRICT_KERNEL_RWX=y
+CONFIG_STRICT_MODULE_RWX=y
+# CONFIG_STRING_SELFTEST is not set
+CONFIG_STRIP_ASM_SYMS=y
+CONFIG_ST_UVIS25_I2C=m
+CONFIG_ST_UVIS25=m
+CONFIG_ST_UVIS25_SPI=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_SUNGEM=m
+CONFIG_SUNGEM_PHY=m
+CONFIG_SUN_PARTITION=y
+CONFIG_SUNRPC_BACKCHANNEL=y
+CONFIG_SUNRPC_DEBUG=y
+# CONFIG_SUNRPC_DISABLE_INSECURE_ENCTYPES is not set
+CONFIG_SUNRPC_GSS=m
+CONFIG_SUNRPC=m
+CONFIG_SUNRPC_SWAP=y
+CONFIG_SUNRPC_XPRT_RDMA=m
+CONFIG_SURFACE_3_BUTTON=m
+# CONFIG_SURFACE_3_POWER_OPREGION is not set
+CONFIG_SURFACE3_WMI=m
+# CONFIG_SURFACE_GPE is not set
+CONFIG_SURFACE_PLATFORMS=y
+CONFIG_SURFACE_PRO3_BUTTON=m
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_SUSPEND=y
+CONFIG_SWAP=y
+CONFIG_SWIOTLB=y
+CONFIG_SWPHY=y
+# CONFIG_SW_SYNC is not set
+# CONFIG_SX9310 is not set
+# CONFIG_SX9500 is not set
+CONFIG_SYMBOLIC_ERRNAME=y
+CONFIG_SYNC_FILE=y
+# CONFIG_SYNCLINK_CS is not set
+CONFIG_SYNCLINK_GT=m
+CONFIG_SYNCLINK=m
+CONFIG_SYNCLINKMP=m
+CONFIG_SYN_COOKIES=y
+# CONFIG_SYNTH_EVENT_GEN_TEST is not set
+CONFIG_SYNTH_EVENTS=y
+CONFIG_SYSCTL_EXCEPTION_TRACE=y
+CONFIG_SYSCTL=y
+# CONFIG_SYSFS_DEPRECATED is not set
+CONFIG_SYSFS_SYSCALL=y
+CONFIG_SYSFS=y
+CONFIG_SYSTEM76_ACPI=m
+CONFIG_SYSTEM_BLACKLIST_HASH_LIST=""
+CONFIG_SYSTEM_BLACKLIST_KEYRING=y
+CONFIG_SYSTEM_DATA_VERIFICATION=y
+# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
+# CONFIG_SYSTEMPORT is not set
+CONFIG_SYSTEM_TRUSTED_KEYRING=y
+CONFIG_SYSTEM_TRUSTED_KEYS=""
+# CONFIG_SYSV68_PARTITION is not set
+CONFIG_SYSV_FS=m
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_SYSVIPC=y
+# CONFIG_T5403 is not set
+CONFIG_TABLET_SERIAL_WACOM4=m
+CONFIG_TABLET_USB_ACECAD=m
+CONFIG_TABLET_USB_AIPTEK=m
+CONFIG_TABLET_USB_GTCO=m
+CONFIG_TABLET_USB_HANWANG=m
+CONFIG_TABLET_USB_KBTAB=m
+CONFIG_TABLET_USB_PEGASUS=m
+CONFIG_TAP=m
+CONFIG_TARGET_CORE=m
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_TASKS_RCU_GENERIC=y
+CONFIG_TASKS_RCU=y
+CONFIG_TASKS_RUDE_RCU=y
+CONFIG_TASKSTATS=y
+CONFIG_TASKS_TRACE_RCU=y
+CONFIG_TASK_XACCT=y
+CONFIG_TCG_ATMEL=m
+CONFIG_TCG_CRB=y
+CONFIG_TCG_INFINEON=m
+CONFIG_TCG_NSC=m
+CONFIG_TCG_TIS_CORE=y
+# CONFIG_TCG_TIS_I2C_ATMEL is not set
+# CONFIG_TCG_TIS_I2C_INFINEON is not set
+# CONFIG_TCG_TIS_I2C_NUVOTON is not set
+# CONFIG_TCG_TIS_SPI_CR50 is not set
+CONFIG_TCG_TIS_SPI=m
+# CONFIG_TCG_TIS_ST33ZP24_I2C is not set
+# CONFIG_TCG_TIS_ST33ZP24_SPI is not set
+CONFIG_TCG_TIS=y
+CONFIG_TCG_TPM=y
+CONFIG_TCG_VTPM_PROXY=m
+CONFIG_TCM_FC=m
+CONFIG_TCM_FILEIO=m
+CONFIG_TCM_IBLOCK=m
+CONFIG_TCM_PSCSI=m
+# CONFIG_TCM_QLA2XXX_DEBUG is not set
+CONFIG_TCM_QLA2XXX=m
+CONFIG_TCM_USER2=m
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BBR=m
+CONFIG_TCP_CONG_BIC=m
+CONFIG_TCP_CONG_CDG=m
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_TCP_CONG_DCTCP=m
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_ILLINOIS=m
+CONFIG_TCP_CONG_LP=m
+CONFIG_TCP_CONG_NV=m
+CONFIG_TCP_CONG_SCALABLE=m
+CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_VENO=m
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_YEAH=m
+CONFIG_TCP_MD5SIG=y
+# CONFIG_TCS3414 is not set
+# CONFIG_TCS3472 is not set
+# CONFIG_TEE is not set
+CONFIG_TEHUTI=m
+CONFIG_TELCLOCK=m
+CONFIG_TERANETICS_PHY=m
+# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set
+# CONFIG_TEST_BITFIELD is not set
+# CONFIG_TEST_BITMAP is not set
+# CONFIG_TEST_BITOPS is not set
+# CONFIG_TEST_BLACKHOLE_DEV is not set
+# CONFIG_TEST_BPF is not set
+# CONFIG_TEST_FIRMWARE is not set
+# CONFIG_TEST_FPU is not set
+# CONFIG_TEST_FREE_PAGES is not set
+# CONFIG_TEST_HASH is not set
+# CONFIG_TEST_HEXDUMP is not set
+# CONFIG_TEST_HMM is not set
+# CONFIG_TEST_IDA is not set
+# CONFIG_TEST_KMOD is not set
+CONFIG_TEST_KSTRTOX=y
+# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_TEST_LKM is not set
+# CONFIG_TEST_LOCKUP is not set
+# CONFIG_TEST_MEMCAT_P is not set
+# CONFIG_TEST_MEMINIT is not set
+# CONFIG_TEST_MIN_HEAP is not set
+# CONFIG_TEST_OBJAGG is not set
+# CONFIG_TEST_OVERFLOW is not set
+# CONFIG_TEST_PARMAN is not set
+# CONFIG_TEST_POWER is not set
+# CONFIG_TEST_PRINTF is not set
+# CONFIG_TEST_RHASHTABLE is not set
+# CONFIG_TEST_SORT is not set
+# CONFIG_TEST_STACKINIT is not set
+# CONFIG_TEST_STATIC_KEYS is not set
+# CONFIG_TEST_STRING_HELPERS is not set
+# CONFIG_TEST_STRSCPY is not set
+# CONFIG_TEST_SYSCTL is not set
+# CONFIG_TEST_UDELAY is not set
+# CONFIG_TEST_USER_COPY is not set
+# CONFIG_TEST_UUID is not set
+# CONFIG_TEST_VMALLOC is not set
+# CONFIG_TEST_XARRAY is not set
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_TEXTSEARCH=y
+# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
+# CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set
+CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
+# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
+# CONFIG_THERMAL_EMULATION is not set
+CONFIG_THERMAL_GOV_BANG_BANG=y
+CONFIG_THERMAL_GOV_FAIR_SHARE=y
+CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y
+CONFIG_THERMAL_GOV_STEP_WISE=y
+CONFIG_THERMAL_GOV_USER_SPACE=y
+CONFIG_THERMAL_HWMON=y
+# CONFIG_THERMAL_NETLINK is not set
+CONFIG_THERMAL_STATISTICS=y
+CONFIG_THERMAL_WRITABLE_TRIPS=y
+CONFIG_THERMAL=y
+CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
+# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
+# CONFIG_THINKPAD_ACPI_DEBUG is not set
+CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
+CONFIG_THINKPAD_ACPI=m
+# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
+CONFIG_THINKPAD_ACPI_VIDEO=y
+CONFIG_THREAD_INFO_IN_TASK=y
+CONFIG_THRUSTMASTER_FF=y
+# CONFIG_TI_ADC081C is not set
+# CONFIG_TI_ADC0832 is not set
+# CONFIG_TI_ADC084S021 is not set
+# CONFIG_TI_ADC108S102 is not set
+# CONFIG_TI_ADC12138 is not set
+CONFIG_TI_ADC128S052=m
+# CONFIG_TI_ADC161S626 is not set
+CONFIG_TI_ADS1015=m
+# CONFIG_TI_ADS7950 is not set
+CONFIG_TICK_ONESHOT=y
+# CONFIG_TI_CPSW_PHY_SEL is not set
+# CONFIG_TI_DAC082S085 is not set
+# CONFIG_TI_DAC5571 is not set
+CONFIG_TI_DAC7311=m
+# CONFIG_TI_DAC7612 is not set
+CONFIG_TIFM_7XX1=m
+CONFIG_TIFM_CORE=m
+CONFIG_TIGON3_HWMON=y
+CONFIG_TIGON3=m
+CONFIG_TIME_NS=y
+CONFIG_TIMERFD=y
+# CONFIG_TINYDRM_HX8357D is not set
+# CONFIG_TINYDRM_ILI9225 is not set
+# CONFIG_TINYDRM_ILI9341 is not set
+# CONFIG_TINYDRM_ILI9486 is not set
+# CONFIG_TINYDRM_MI0283QT is not set
+# CONFIG_TINYDRM_REPAPER is not set
+# CONFIG_TINYDRM_ST7586 is not set
+# CONFIG_TINYDRM_ST7735R is not set
+CONFIG_TIPC_CRYPTO=y
+CONFIG_TIPC_DIAG=m
+CONFIG_TIPC=m
+# CONFIG_TIPC_MEDIA_IB is not set
+CONFIG_TIPC_MEDIA_UDP=y
+# CONFIG_TI_ST is not set
+# CONFIG_TI_TLC4541 is not set
+CONFIG_TLAN=m
+CONFIG_TLS_DEVICE=y
+CONFIG_TLS=m
+# CONFIG_TLS_TOE is not set
+# CONFIG_TMD_HERMES is not set
+# CONFIG_TMP006 is not set
+# CONFIG_TMP007 is not set
+CONFIG_TMPFS_INODE64=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_TMPFS_XATTR=y
+CONFIG_TMPFS=y
+CONFIG_TOPSTAR_LAPTOP=m
+CONFIG_TORTURE_TEST=m
+CONFIG_TOSHIBA_BT_RFKILL=m
+CONFIG_TOSHIBA_HAPS=m
+CONFIG_TOSHIBA_WMI=m
+# CONFIG_TOUCHSCREEN_AD7877 is not set
+# CONFIG_TOUCHSCREEN_AD7879 is not set
+# CONFIG_TOUCHSCREEN_ADC is not set
+# CONFIG_TOUCHSCREEN_ADS7846 is not set
+CONFIG_TOUCHSCREEN_ATMEL_MXT=m
+# CONFIG_TOUCHSCREEN_ATMEL_MXT_T37 is not set
+# CONFIG_TOUCHSCREEN_BU21013 is not set
+# CONFIG_TOUCHSCREEN_BU21029 is not set
+# CONFIG_TOUCHSCREEN_CY8CTMA140 is not set
+# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set
+# CONFIG_TOUCHSCREEN_CYTTSP4_CORE is not set
+# CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set
+CONFIG_TOUCHSCREEN_DYNAPRO=m
+CONFIG_TOUCHSCREEN_EDT_FT5X06=m
+CONFIG_TOUCHSCREEN_EETI=m
+CONFIG_TOUCHSCREEN_EGALAX_SERIAL=m
+# CONFIG_TOUCHSCREEN_EKTF2127 is not set
+CONFIG_TOUCHSCREEN_ELAN=m
+CONFIG_TOUCHSCREEN_ELO=m
+# CONFIG_TOUCHSCREEN_EXC3000 is not set
+CONFIG_TOUCHSCREEN_FUJITSU=m
+CONFIG_TOUCHSCREEN_GOODIX=m
+CONFIG_TOUCHSCREEN_GUNZE=m
+# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
+# CONFIG_TOUCHSCREEN_HIDEEP is not set
+CONFIG_TOUCHSCREEN_ILI210X=m
+CONFIG_TOUCHSCREEN_INEXIO=m
+CONFIG_TOUCHSCREEN_IQS5XX=m
+# CONFIG_TOUCHSCREEN_MAX11801 is not set
+CONFIG_TOUCHSCREEN_MCS5000=m
+# CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set
+CONFIG_TOUCHSCREEN_MK712=m
+CONFIG_TOUCHSCREEN_MMS114=m
+CONFIG_TOUCHSCREEN_MTOUCH=m
+CONFIG_TOUCHSCREEN_PENMOUNT=m
+CONFIG_TOUCHSCREEN_PIXCIR=m
+CONFIG_TOUCHSCREEN_PROPERTIES=y
+CONFIG_TOUCHSCREEN_RM_TS=m
+# CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set
+# CONFIG_TOUCHSCREEN_S6SY761 is not set
+CONFIG_TOUCHSCREEN_SILEAD=m
+CONFIG_TOUCHSCREEN_SIS_I2C=m
+CONFIG_TOUCHSCREEN_ST1232=m
+# CONFIG_TOUCHSCREEN_STMFTS is not set
+# CONFIG_TOUCHSCREEN_SUR40 is not set
+CONFIG_TOUCHSCREEN_SURFACE3_SPI=m
+# CONFIG_TOUCHSCREEN_SX8654 is not set
+CONFIG_TOUCHSCREEN_TOUCHIT213=m
+CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
+CONFIG_TOUCHSCREEN_TOUCHWIN=m
+# CONFIG_TOUCHSCREEN_TPS6507X is not set
+# CONFIG_TOUCHSCREEN_TSC2004 is not set
+# CONFIG_TOUCHSCREEN_TSC2005 is not set
+CONFIG_TOUCHSCREEN_TSC2007_IIO=y
+CONFIG_TOUCHSCREEN_TSC2007=m
+CONFIG_TOUCHSCREEN_TSC_SERIO=m
+CONFIG_TOUCHSCREEN_USB_3M=y
+CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
+CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
+CONFIG_TOUCHSCREEN_USB_E2I=y
+CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y
+CONFIG_TOUCHSCREEN_USB_EGALAX=y
+CONFIG_TOUCHSCREEN_USB_ELO=y
+CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
+CONFIG_TOUCHSCREEN_USB_ETURBO=y
+CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
+CONFIG_TOUCHSCREEN_USB_GOTOP=y
+CONFIG_TOUCHSCREEN_USB_GUNZE=y
+CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
+CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
+CONFIG_TOUCHSCREEN_USB_ITM=y
+CONFIG_TOUCHSCREEN_USB_JASTEC=y
+CONFIG_TOUCHSCREEN_USB_NEXIO=y
+CONFIG_TOUCHSCREEN_USB_PANJIT=y
+CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
+CONFIG_TOUCHSCREEN_WACOM_I2C=m
+CONFIG_TOUCHSCREEN_WACOM_W8001=m
+# CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set
+# CONFIG_TOUCHSCREEN_WM97XX is not set
+CONFIG_TOUCHSCREEN_ZET6223=m
+CONFIG_TOUCHSCREEN_ZFORCE=m
+# CONFIG_TOUCHSCREEN_ZINITIX is not set
+# CONFIG_TPL0102 is not set
+CONFIG_TPM_KEY_PARSER=m
+# CONFIG_TPS6105X is not set
+# CONFIG_TPS65010 is not set
+# CONFIG_TPS6507X is not set
+CONFIG_TQMX86_WDT=m
+CONFIG_TRACE_CLOCK=y
+CONFIG_TRACE_EVAL_MAP_FILE=y
+# CONFIG_TRACE_EVENT_INJECT is not set
+CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+# CONFIG_TRACEPOINT_BENCHMARK is not set
+CONFIG_TRACEPOINTS=y
+CONFIG_TRACER_MAX_TRACE=y
+# CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set
+CONFIG_TRACER_SNAPSHOT=y
+# CONFIG_TRACE_SINK is not set
+CONFIG_TRACING_MAP=y
+CONFIG_TRACING_SUPPORT=y
+CONFIG_TRACING=y
+# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set
+CONFIG_TRANSPARENT_HUGE_PAGECACHE=y
+CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y
+CONFIG_TRANSPARENT_HUGEPAGE=y
+CONFIG_TREE_RCU=y
+CONFIG_TREE_SRCU=y
+CONFIG_TRUSTED_KEYS=m
+# CONFIG_TSL2583 is not set
+CONFIG_TSL2772=m
+# CONFIG_TSL4531 is not set
+# CONFIG_TSYS01 is not set
+# CONFIG_TSYS02D is not set
+CONFIG_TTPCI_EEPROM=m
+CONFIG_TTY=y
+CONFIG_TULIP=m
+CONFIG_TULIP_MMIO=y
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_NAPI is not set
+CONFIG_TUN=m
+# CONFIG_TUN_VNET_CROSS_LE is not set
+CONFIG_TYPEC_DP_ALTMODE=m
+CONFIG_TYPEC_FUSB302=m
+# CONFIG_TYPEC_HD3SS3220 is not set
+CONFIG_TYPEC=m
+CONFIG_TYPEC_MUX_PI3USB30532=m
+CONFIG_TYPEC_NVIDIA_ALTMODE=m
+# CONFIG_TYPEC_RT1711H is not set
+# CONFIG_TYPEC_STUSB160X is not set
+CONFIG_TYPEC_TCPCI=m
+# CONFIG_TYPEC_TCPCI_MAXIM is not set
+CONFIG_TYPEC_TCPM=m
+CONFIG_TYPEC_TPS6598X=m
+CONFIG_TYPEC_UCSI=m
+CONFIG_TYPHOON=m
+# CONFIG_UACCE is not set
+CONFIG_UBIFS_ATIME_SUPPORT=y
+# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
+CONFIG_UBIFS_FS_AUTHENTICATION=y
+CONFIG_UBIFS_FS_LZO=y
+CONFIG_UBIFS_FS=m
+CONFIG_UBIFS_FS_SECURITY=y
+CONFIG_UBIFS_FS_XATTR=y
+CONFIG_UBIFS_FS_ZLIB=y
+CONFIG_UBIFS_FS_ZSTD=y
+CONFIG_UBSAN_ALIGNMENT=y
+# CONFIG_UBSAN is not set
+# CONFIG_UCB1400_CORE is not set
+CONFIG_UCLAMP_BUCKETS_COUNT=5
+# CONFIG_UCLAMP_TASK_GROUP is not set
+# CONFIG_UCLAMP_TASK is not set
+CONFIG_UCS2_STRING=y
+CONFIG_UCSI_ACPI=m
+CONFIG_UCSI_CCG=m
+CONFIG_UDF_FS=m
+CONFIG_UDMABUF=y
+CONFIG_UEFI_CPER_X86=y
+CONFIG_UEFI_CPER=y
+# CONFIG_UEVENT_HELPER is not set
+# CONFIG_UFS_DEBUG is not set
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+CONFIG_UHID=m
+CONFIG_UID16=y
+CONFIG_UIO_AEC=m
+CONFIG_UIO_CIF=m
+# CONFIG_UIO_DMEM_GENIRQ is not set
+CONFIG_UIO=m
+# CONFIG_UIO_MF624 is not set
+# CONFIG_UIO_NETX is not set
+CONFIG_UIO_PCI_GENERIC=m
+# CONFIG_UIO_PDRV_GENIRQ is not set
+# CONFIG_UIO_PRUSS is not set
+CONFIG_UIO_SERCOS3=m
+CONFIG_ULI526X=m
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_UNICODE_NORMALIZATION_SELFTEST is not set
+CONFIG_UNICODE=y
+# CONFIG_UNISYSSPAR is not set
+CONFIG_UNIX98_PTYS=y
+CONFIG_UNIX_DIAG=m
+CONFIG_UNIX_SCM=y
+CONFIG_UNIXWARE_DISKLABEL=y
+CONFIG_UNIX=y
+CONFIG_UNUSED_SYMBOLS=y
+CONFIG_UPROBE_EVENTS=y
+CONFIG_UPROBES=y
+# CONFIG_US5182D is not set
+# CONFIG_USB4 is not set
+CONFIG_USB_ACM=m
+CONFIG_USB_ADUTUX=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+CONFIG_USB_APPLEDISPLAY=m
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_ATM=m
+CONFIG_USB_AUTOSUSPEND_DELAY=2
+CONFIG_USB_BELKIN=y
+# CONFIG_USB_C67X00_HCD is not set
+CONFIG_USB_CATC=m
+# CONFIG_USB_CDNS3 is not set
+CONFIG_USB_CHAOSKEY=m
+# CONFIG_USB_CHIPIDEA is not set
+CONFIG_USB_COMMON=y
+# CONFIG_USB_CONN_GPIO is not set
+CONFIG_USB_CXACRU=m
+# CONFIG_USB_CYPRESS_CY7C63 is not set
+# CONFIG_USB_CYTHERM is not set
+CONFIG_USB_DEFAULT_PERSIST=y
+# CONFIG_USB_DSBR is not set
+# CONFIG_USB_DWC2 is not set
+# CONFIG_USB_DWC3 is not set
# CONFIG_USB_DYNAMIC_MINORS is not set
-CONFIG_USB_SUSPEND=y
-
-#
-# USB Host Controller Drivers
-#
-CONFIG_USB_EHCI_HCD=y
-CONFIG_USB_EHCI_SPLIT_ISO=y
+# CONFIG_USB_EHCI_FSL is not set
+CONFIG_USB_EHCI_HCD=m
+# CONFIG_USB_EHCI_HCD_PLATFORM is not set
+CONFIG_USB_EHCI_PCI=m
CONFIG_USB_EHCI_ROOT_HUB_TT=y
CONFIG_USB_EHCI_TT_NEWSCHED=y
-CONFIG_USB_OHCI_HCD=y
-# CONFIG_USB_OHCI_HCD_SSB is not set
-CONFIG_USB_UHCI_HCD=y
-# CONFIG_USB_SL811_CS is not set
-# CONFIG_USB_R8A66597_HCD is not set
-CONFIG_USB_XHCI_HCD=m
-# CONFIG_USB_XHCI_HCD_DEBUGGING is not set
-CONFIG_USB_ISP1362_HCD=m
-
-#
-# USB Device Class drivers
-#
-
-#
-# USB Bluetooth TTY can only be used with disabled Bluetooth subsystem
-#
-CONFIG_USB_ACM=m
-# CONFIG_USB_PRINTER is not set
-CONFIG_USB_WDM=m
-CONFIG_USB_TMC=m
-# CONFIG_BLK_DEV_UB is not set
-CONFIG_USB_STORAGE=m
-# CONFIG_USB_STORAGE_DEBUG is not set
-CONFIG_USB_STORAGE_CYPRESS_ATACB=y
-CONFIG_USB_STORAGE_DATAFAB=y
-CONFIG_USB_STORAGE_FREECOM=y
-CONFIG_USB_STORAGE_ISD200=y
-CONFIG_USB_STORAGE_DPCM=y
-CONFIG_USB_STORAGE_SDDR09=y
-CONFIG_USB_STORAGE_SDDR55=y
-CONFIG_USB_STORAGE_SIERRA=y
-CONFIG_USB_STORAGE_JUMPSHOT=y
-CONFIG_USB_STORAGE_USBAT=y
-CONFIG_USB_STORAGE_ONETOUCH=y
-CONFIG_USB_STORAGE_ALAUDA=y
-CONFIG_USB_STORAGE_KARMA=y
-# CONFIG_USB_LIBUSUAL is not set
-
-#
-# USB Human Interface Devices (HID)
-#
-CONFIG_USB_HID=y
-
-CONFIG_HID_SUPPORT=y
-
-CONFIG_HID=m
-# debugging default is y upstream now
-CONFIG_HID_DEBUG=y
-CONFIG_HIDRAW=y
-CONFIG_HID_FF=y
-CONFIG_HID_PID=y
-# CONFIG_HID_COMPAT is not set
-# CONFIG_LOGITECH_FF is not set
-# CONFIG_LOGIRUMBLEPAD2_FF is not set
-# CONFIG_PANTHERLORD_FF is not set
-# CONFIG_THRUSTMASTER_FF is not set
-CONFIG_HID_WACOM=y
-# CONFIG_ZEROPLUS_FF is not set
-CONFIG_USB_HIDDEV=y
-CONFIG_USB_IDMOUSE=m
-# CONFIG_DRAGONRISE_FF is not set
-# CONFIG_GREENASIA_FF is not set
-CONFIG_SMARTJOYPLUS_FF=y
-
-#
-# USB Imaging devices
-#
-CONFIG_USB_MDC800=m
-CONFIG_USB_MICROTEK=m
-
-#
-# USB Multimedia devices
-#
-CONFIG_DAB=y
-# CONFIG_USB_DABUSB is not set
-
-# CONFIG_USB_VICAM is not set
-CONFIG_USB_DSBR=m
-# CONFIG_USB_ET61X251 is not set
-CONFIG_USB_M5602=m
-CONFIG_USB_STV06XX=m
-CONFIG_USB_GSPCA=m
-CONFIG_USB_GSPCA_MR97310A=m
+# CONFIG_USB_EHSET_TEST_FIXTURE is not set
+CONFIG_USB_EMI26=m
+CONFIG_USB_EMI62=m
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_EZUSB_FX2=m
+# CONFIG_USB_FEW_INIT_RETRIES is not set
+# CONFIG_USB_FOTG210_HCD is not set
+CONFIG_USB_FTDI_ELAN=m
+# CONFIG_USB_GADGET is not set
+CONFIG_USB_GL860=m
+# CONFIG_USB_GPIO_VBUS is not set
+CONFIG_USB_GSPCA_BENQ=m
CONFIG_USB_GSPCA_CONEX=m
+CONFIG_USB_GSPCA_CPIA1=m
+CONFIG_USB_GSPCA_DTCS033=m
CONFIG_USB_GSPCA_ETOMS=m
CONFIG_USB_GSPCA_FINEPIX=m
+CONFIG_USB_GSPCA_JEILINJ=m
+CONFIG_USB_GSPCA_JL2005BCD=m
+CONFIG_USB_GSPCA_KINECT=m
+CONFIG_USB_GSPCA_KONICA=m
+CONFIG_USB_GSPCA=m
CONFIG_USB_GSPCA_MARS=m
+CONFIG_USB_GSPCA_MR97310A=m
+CONFIG_USB_GSPCA_NW80X=m
CONFIG_USB_GSPCA_OV519=m
+CONFIG_USB_GSPCA_OV534_9=m
CONFIG_USB_GSPCA_OV534=m
CONFIG_USB_GSPCA_PAC207=m
+CONFIG_USB_GSPCA_PAC7302=m
CONFIG_USB_GSPCA_PAC7311=m
+CONFIG_USB_GSPCA_SE401=m
+CONFIG_USB_GSPCA_SN9C2028=m
CONFIG_USB_GSPCA_SN9C20X=m
-CONFIG_USB_GSPCA_SN9C20X_EVDEV=y
CONFIG_USB_GSPCA_SONIXB=m
CONFIG_USB_GSPCA_SONIXJ=m
+CONFIG_USB_GSPCA_SPCA1528=m
CONFIG_USB_GSPCA_SPCA500=m
CONFIG_USB_GSPCA_SPCA501=m
CONFIG_USB_GSPCA_SPCA505=m
CONFIG_USB_GSPCA_SPCA506=m
CONFIG_USB_GSPCA_SPCA508=m
CONFIG_USB_GSPCA_SPCA561=m
+CONFIG_USB_GSPCA_SQ905C=m
+CONFIG_USB_GSPCA_SQ905=m
+CONFIG_USB_GSPCA_SQ930X=m
CONFIG_USB_GSPCA_STK014=m
+CONFIG_USB_GSPCA_STK1135=m
+CONFIG_USB_GSPCA_STV0680=m
CONFIG_USB_GSPCA_SUNPLUS=m
CONFIG_USB_GSPCA_T613=m
+CONFIG_USB_GSPCA_TOPRO=m
+CONFIG_USB_GSPCA_TOUPTEK=m
CONFIG_USB_GSPCA_TV8532=m
CONFIG_USB_GSPCA_VC032X=m
+CONFIG_USB_GSPCA_VICAM=m
+CONFIG_USB_GSPCA_XIRLINK_CIT=m
CONFIG_USB_GSPCA_ZC3XX=m
-CONFIG_USB_GSPCA_SQ905=m
-CONFIG_USB_GSPCA_SQ905C=m
-CONFIG_USB_GL860=m
-CONFIG_USB_GSPCA_JEILINJ=m
-
-# CONFIG_USB_IBMCAM is not set
-# CONFIG_USB_KONICAWC is not set
-# CONFIG_USB_OV511 is not set
-CONFIG_USB_S2255=m
-# CONFIG_USB_SE401 is not set
-# CONFIG_VIDEO_SH_MOBILE_CEU is not set
-# CONFIG_USB_STV680 is not set
-# CONFIG_USB_SN9C102 is not set
-CONFIG_USB_ZR364XX=m
-CONFIG_SOC_CAMERA=m
-CONFIG_SOC_CAMERA_MT9M001=m
-CONFIG_SOC_CAMERA_MT9V022=m
-CONFIG_SOC_CAMERA_PLATFORM=m
-CONFIG_SOC_CAMERA_MT9M111=m
-CONFIG_SOC_CAMERA_MT9T031=m
-CONFIG_SOC_CAMERA_TW9910=m
-CONFIG_SOC_CAMERA_OV772X=m
-
-#
-# USB Network adaptors
-#
-CONFIG_USB_CATC=m
+# CONFIG_USB_HCD_BCMA is not set
+# CONFIG_USB_HCD_SSB is not set
+# CONFIG_USB_HCD_TEST_MODE is not set
+CONFIG_USB_HIDDEV=y
+CONFIG_USB_HID=y
+CONFIG_USB_HSIC_USB3503=m
+CONFIG_USB_HSIC_USB4604=m
CONFIG_USB_HSO=m
+CONFIG_USB_HUB_USB251XB=m
+# CONFIG_USB_HWA_HCD is not set
+CONFIG_USB_IDMOUSE=m
+CONFIG_USB_IOWARRIOR=m
+CONFIG_USBIP_CORE=m
+# CONFIG_USBIP_DEBUG is not set
+CONFIG_USB_IPHETH=m
+CONFIG_USBIP_HOST=m
+CONFIG_USBIP_VHCI_HCD=m
+CONFIG_USBIP_VHCI_HC_PORTS=8
+CONFIG_USBIP_VHCI_NR_HCS=1
+CONFIG_USB_ISIGHTFW=m
+# CONFIG_USB_ISP116X_HCD is not set
+# CONFIG_USB_ISP1301 is not set
+# CONFIG_USB_ISP1760 is not set
CONFIG_USB_KAWETH=m
-CONFIG_USB_PEGASUS=m
-CONFIG_USB_RTL8150=m
-CONFIG_USB_USBNET=m
-CONFIG_USB_SPEEDTOUCH=m
+CONFIG_USB_KC2190=y
+# CONFIG_USB_KEENE is not set
+CONFIG_USB_LAN78XX=m
+CONFIG_USB_LCD=m
+CONFIG_USB_LD=m
+CONFIG_USB_LEDS_TRIGGER_USBPORT=m
+CONFIG_USB_LED_TRIG=y
+CONFIG_USB_LEGOTOWER=m
+# CONFIG_USB_LGM_PHY is not set
+# CONFIG_USB_LINK_LAYER_TEST is not set
+CONFIG_USB_M5602=m
+# CONFIG_USB_MA901 is not set
+# CONFIG_USB_MAX3421_HCD is not set
+CONFIG_USB_MDC800=m
+CONFIG_USB_MICROTEK=m
+CONFIG_USB_MON=y
+# CONFIG_USB_MR800 is not set
+# CONFIG_USB_MUSB_HDRC is not set
+CONFIG_USB_NET_AQC111=m
+CONFIG_USB_NET_AX88179_178A=m
CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_CDC_MBIM=m
+CONFIG_USB_NET_CDC_NCM=m
+CONFIG_USB_NET_CDC_SUBSET_ENABLE=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_NET_CH9200=m
+CONFIG_USB_NET_CX82310_ETH=m
CONFIG_USB_NET_DM9601=m
-CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_DRIVERS=y
CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_HUAWEI_CDC_NCM=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_NET_KALMIA=m
+CONFIG_USB_NET_MCS7830=m
CONFIG_USB_NET_NET1080=m
CONFIG_USB_NET_PLUSB=m
-CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_QMI_WWAN=m
CONFIG_USB_NET_RNDIS_HOST=m
-CONFIG_USB_NET_CDC_SUBSET=m
-CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_SR9700=m
+# CONFIG_USB_NET_SR9800 is not set
CONFIG_USB_NET_ZAURUS=m
-CONFIG_USB_NET_INT51X1=m
-CONFIG_USB_CDC_PHONET=m
-
-#
-# USB Host-to-Host Cables
-#
-CONFIG_USB_AN2720=y
-CONFIG_USB_BELKIN=y
-
-#
-# Intelligent USB Devices/Gadgets
-#
-CONFIG_USB_ARMLINUX=y
-CONFIG_USB_EPSON2888=y
-CONFIG_USB_KC2190=y
-
-# CONFIG_USB_MUSB_HDRC is not set
-
-#
-# USB port drivers
-#
-CONFIG_USB_USS720=m
-
-#
-# USB Serial Converter support
-#
-CONFIG_USB_SERIAL=m
-CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_OHCI_HCD=m
+CONFIG_USB_OHCI_HCD_PCI=m
+# CONFIG_USB_OHCI_HCD_PLATFORM is not set
+# CONFIG_USB_OHCI_HCD_SSB is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+# CONFIG_USB_OTG is not set
+# CONFIG_USB_OTG_PRODUCTLIST is not set
+# CONFIG_USB_OTG_WHITELIST is not set
+# CONFIG_USB_OXU210HP_HCD is not set
+CONFIG_USB_PCI=y
+CONFIG_USBPCWATCHDOG=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_PHY=y
+CONFIG_USB_PRINTER=m
+CONFIG_USB_PULSE8_CEC=m
+# CONFIG_USB_PWC_DEBUG is not set
+CONFIG_USB_PWC_INPUT_EVDEV=y
+CONFIG_USB_PWC=m
+# CONFIG_USB_R8A66597_HCD is not set
+CONFIG_USB_RAINSHADOW_CEC=m
+# CONFIG_USB_RAREMONO is not set
+CONFIG_USB_ROLES_INTEL_XHCI=m
+CONFIG_USB_ROLE_SWITCH=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_RTL8152=m
+# CONFIG_USB_RTL8153_ECM is not set
+CONFIG_USB_S2255=m
CONFIG_USB_SERIAL_AIRCABLE=m
-CONFIG_USB_SERIAL_AIRPRIME=m
CONFIG_USB_SERIAL_ARK3116=m
CONFIG_USB_SERIAL_BELKIN=m
CONFIG_USB_SERIAL_CH341=m
-CONFIG_USB_SERIAL_CP2101=m
-CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_CP210X=m
CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_DEBUG=m
CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
-CONFIG_USB_SERIAL_CP210X=m
-CONFIG_USB_SERIAL_QUALCOMM=m
-CONFIG_USB_SERIAL_SYMBOL=m
CONFIG_USB_SERIAL_EDGEPORT=m
CONFIG_USB_SERIAL_EDGEPORT_TI=m
CONFIG_USB_SERIAL_EMPEG=m
+# CONFIG_USB_SERIAL_F81232 is not set
+CONFIG_USB_SERIAL_F8153X=m
CONFIG_USB_SERIAL_FTDI_SIO=m
-CONFIG_USB_SERIAL_FUNSOFT=m
CONFIG_USB_SERIAL_GARMIN=m
-CONFIG_USB_SERIAL_HP4X=m
+CONFIG_USB_SERIAL_GENERIC=y
CONFIG_USB_SERIAL_IPAQ=m
CONFIG_USB_SERIAL_IPW=m
CONFIG_USB_SERIAL_IR=m
CONFIG_USB_SERIAL_IUU=m
-CONFIG_USB_SERIAL_KEYSPAN_PDA=m
CONFIG_USB_SERIAL_KEYSPAN=m
-CONFIG_USB_SERIAL_KEYSPAN_MPR=y
-CONFIG_USB_SERIAL_KEYSPAN_USA28=y
-CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
-CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
-CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
-CONFIG_USB_SERIAL_KEYSPAN_USA19=y
-CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
-CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
-CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
-CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
-CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
-CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
CONFIG_USB_SERIAL_KLSI=m
CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL=m
CONFIG_USB_SERIAL_MCT_U232=m
+# CONFIG_USB_SERIAL_METRO is not set
+CONFIG_USB_SERIAL_MOS7715_PARPORT=y
CONFIG_USB_SERIAL_MOS7720=m
CONFIG_USB_SERIAL_MOS7840=m
-CONFIG_USB_SERIAL_MOTOROLA=m
+# CONFIG_USB_SERIAL_MXUPORT is not set
CONFIG_USB_SERIAL_NAVMAN=m
-CONFIG_USB_SERIAL_OPTION=y
-CONFIG_USB_SERIAL_OTI6858=m
-CONFIG_USB_SERIAL_OPTICON=m
CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OTI6858=m
CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QT2=m
+CONFIG_USB_SERIAL_QUALCOMM=m
CONFIG_USB_SERIAL_SAFE=m
CONFIG_USB_SERIAL_SAFE_PADDED=y
CONFIG_USB_SERIAL_SIERRAWIRELESS=m
-CONFIG_USB_SERIAL_SIEMENS_MPI=m
+CONFIG_USB_SERIAL_SIMPLE=m
CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_SSU100=m
+CONFIG_USB_SERIAL_SYMBOL=m
CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_UPD78F0730=m
CONFIG_USB_SERIAL_VISOR=m
CONFIG_USB_SERIAL_WHITEHEAT=m
+# CONFIG_USB_SERIAL_WISHBONE is not set
+CONFIG_USB_SERIAL_WWAN=m
CONFIG_USB_SERIAL_XIRCOM=m
-CONFIG_USB_SERIAL_DEBUG=m
-
-CONFIG_USB_EZUSB=y
-CONFIG_USB_EMI62=m
-CONFIG_USB_LED=m
-# CONFIG_USB_CYPRESS_CY7C63 is not set
-CONFIG_USB_G_SERIAL=m
-
-#
-# USB Miscellaneous drivers
-#
-
-CONFIG_USB_ADUTUX=m
+CONFIG_USB_SERIAL_XSENS_MT=m
CONFIG_USB_SEVSEG=m
-CONFIG_USB_ALI_M5632=y
-CONFIG_USB_APPLEDISPLAY=m
-CONFIG_USB_ATM=m
-CONFIG_USB_AUERSWALD=m
-CONFIG_USB_BERRY_CHARGE=m
-CONFIG_USB_CXACRU=m
-# CONFIG_USB_C67X00_HCD is not set
-# CONFIG_USB_CYTHERM is not set
-CONFIG_USB_EMI26=m
-CONFIG_USB_ETH=m
-CONFIG_USB_FTDI_ELAN=m
-CONFIG_USB_FILE_STORAGE=m
-# CONFIG_USB_FILE_STORAGE_TEST is not set
-# CONFIG_USB_GADGET is not set
-# CONFIG_USB_GADGET_PXA2XX is not set
-# CONFIG_USB_GADGET_GOKU is not set
-# CONFIG_USB_GADGETFS is not set
-# CONFIG_USB_HIDINPUT_POWERBOOK is not set
-# CONFIG_USB_ISP116X_HCD is not set
-# CONFIG_USB_ISP1760_HCD is not set
-# CONFIG_USB_OXU210HP_HCD is not set
-CONFIG_USB_IOWARRIOR=m
-CONFIG_USB_ISIGHTFW=m
-CONFIG_USB_VST=m
-CONFIG_USB_LCD=m
-CONFIG_USB_LD=m
-CONFIG_USB_LEGOTOWER=m
-CONFIG_USB_MON=y
-CONFIG_USB_PHIDGET=m
-CONFIG_USB_PHIDGETSERVO=m
-CONFIG_USB_PHIDGETKIT=m
-CONFIG_USB_PHIDGETMOTORCONTROL=m
-CONFIG_USB_PWC=m
-CONFIG_USB_PWC_INPUT_EVDEV=y
-# CONFIG_USB_PWC_DEBUG is not set
-# CONFIG_USB_RIO500 is not set
-# CONFIG_USB_QUICKCAM_MESSENGER is not set
-CONFIG_USB_SL811_HCD=m
-CONFIG_USB_SISUSBVGA=m
+CONFIG_USB_SIERRA_NET=m
CONFIG_USB_SISUSBVGA_CON=y
-CONFIG_RADIO_SI470X=y
-CONFIG_USB_SI470X=m
-CONFIG_I2C_SI470X=m
-CONFIG_RADIO_SI4713=m
-CONFIG_USB_MR800=m
+CONFIG_USB_SISUSBVGA=m
+# CONFIG_USB_SL811_CS is not set
+CONFIG_USB_SL811_HCD_ISO=y
+CONFIG_USB_SL811_HCD=m
+CONFIG_USB_SPEEDTOUCH=m
CONFIG_USB_STKWEBCAM=m
+CONFIG_USB_STORAGE_ALAUDA=m
+CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+CONFIG_USB_STORAGE_DATAFAB=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_ENE_UB6250=m
+CONFIG_USB_STORAGE_FREECOM=m
+CONFIG_USB_STORAGE_ISD200=m
+CONFIG_USB_STORAGE_JUMPSHOT=m
+CONFIG_USB_STORAGE_KARMA=m
+CONFIG_USB_STORAGE=m
+CONFIG_USB_STORAGE_ONETOUCH=m
+CONFIG_USB_STORAGE_REALTEK=m
+CONFIG_USB_STORAGE_SDDR09=m
+CONFIG_USB_STORAGE_SDDR55=m
+CONFIG_USB_STORAGE_USBAT=m
+CONFIG_USB_STV06XX=m
+CONFIG_USB_SUPPORT=y
# CONFIG_USB_TEST is not set
-# CONFIG_USB_TRANCEVIBRATOR is not set
-CONFIG_USB_U132_HCD=m
+CONFIG_USB_TMC=m
+CONFIG_USB_TRANCEVIBRATOR=m
+# CONFIG_USB_U132_HCD is not set
+CONFIG_USB_UAS=m
CONFIG_USB_UEAGLEATM=m
-CONFIG_USB_UVCVIDEO=m
-# CONFIG_USB_W9968CF is not set
+CONFIG_USB_UHCI_HCD=m
+CONFIG_USB_ULPI_BUS=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_USS720=m
+CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_USB_VL600=m
+CONFIG_USB_WDM=m
+# CONFIG_USB_WHCI_HCD is not set
+# CONFIG_USB_WUSB_CBAF is not set
+# CONFIG_USB_WUSB is not set
+CONFIG_USB_XHCI_DBGCAP=y
+CONFIG_USB_XHCI_HCD=m
+CONFIG_USB_XHCI_PCI=m
+CONFIG_USB_XHCI_PCI_RENESAS=m
+CONFIG_USB_XHCI_PLATFORM=m
CONFIG_USB_XUSBATM=m
-# CONFIG_USB_ZC0301 is not set
-CONFIG_USB_ZERO=m
-
-CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
-
-#
-# Sonics Silicon Backplane
-#
-CONFIG_SSB=m
-CONFIG_SSB_PCIHOST=y
-CONFIG_SSB_SDIOHOST=y
-CONFIG_SSB_PCMCIAHOST=y
-# CONFIG_SSB_SILENT is not set
-# CONFIG_SSB_DEBUG is not set
-CONFIG_SSB_DRIVER_PCICORE=y
-
-# Multifunction USB devices
-# CONFIG_MFD_PCF50633 is not set
-CONFIG_PCF50633_ADC=m
-CONFIG_PCF50633_GPIO=m
-CONFIG_AB3100_CORE=m
-CONFIG_INPUT_PCF50633_PMU=m
-CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
-CONFIG_CHARGER_PCF50633=m
-CONFIG_REGULATOR_PCF50633=m
-CONFIG_RTC_DRV_PCF50633=m
-
-CONFIG_MFD_SM501=m
-CONFIG_MFD_SM501_GPIO=y
-# CONFIG_MFD_TC6393XB is not set
-CONFIG_MFD_WM8400=m
-CONFIG_MFD_WM8350_I2C=m
-CONFIG_MFD_WM8350=m
-CONFIG_MFD_WM831X=m
-CONFIG_AB3100_OTP=m
-
-#
-# File systems
-#
-CONFIG_MISC_FILESYSTEMS=y
-
-CONFIG_EXT2_FS=m
-CONFIG_EXT2_FS_XATTR=y
-CONFIG_EXT2_FS_POSIX_ACL=y
-CONFIG_EXT2_FS_SECURITY=y
-CONFIG_EXT2_FS_XIP=y
-CONFIG_EXT3_FS=m
-CONFIG_EXT3_DEFAULTS_TO_ORDERED=y
-CONFIG_EXT3_FS_XATTR=y
-CONFIG_EXT3_FS_POSIX_ACL=y
-CONFIG_EXT3_FS_SECURITY=y
-CONFIG_JBD=y
-# CONFIG_JBD_DEBUG is not set
-CONFIG_EXT4_FS=m
-CONFIG_EXT4_FS_XATTR=y
-CONFIG_EXT4_FS_POSIX_ACL=y
-CONFIG_EXT4_FS_SECURITY=y
-CONFIG_EXT4DEV_COMPAT=y
-CONFIG_JBD2=y
-CONFIG_FS_MBCACHE=y
-CONFIG_REISERFS_FS=m
-CONFIG_REISERFS_FS_XATTR=y
-CONFIG_REISERFS_FS_POSIX_ACL=y
-CONFIG_REISERFS_FS_SECURITY=y
-# CONFIG_REISERFS_CHECK is not set
-CONFIG_JFS_FS=m
-CONFIG_JFS_POSIX_ACL=y
-CONFIG_JFS_SECURITY=y
-# CONFIG_JFS_DEBUG is not set
-# CONFIG_JFS_STATISTICS is not set
-CONFIG_JFS_POSIX_ACL=y
-CONFIG_JFS_SECURITY=y
-CONFIG_XFS_FS=m
-# CONFIG_XFS_DEBUG is not set
-# CONFIG_XFS_RT is not set
-CONFIG_XFS_QUOTA=y
-CONFIG_XFS_POSIX_ACL=y
-CONFIG_XFS_SECURITY=y
-CONFIG_XFS_RT=y
-CONFIG_MINIX_FS=m
-# CONFIG_ROMFS_FS is not set
-CONFIG_QUOTA=y
-CONFIG_QUOTA_NETLINK_INTERFACE=y
-CONFIG_PRINT_QUOTA_WARNING=y
-# CONFIG_QFMT_V1 is not set
-CONFIG_QFMT_V2=y
-CONFIG_QUOTACTL=y
-CONFIG_DNOTIFY=y
-# Autofsv3 is obsolete.
-# CONFIG_AUTOFS_FS is not set
-CONFIG_AUTOFS4_FS=m
-# CONFIG_EXOFS_FS is not set
-# CONFIG_EXOFS_DEBUG is not set
-CONFIG_NILFS2_FS=m
-
-CONFIG_BCACHE=m
-CONFIG_FSCACHE=m
-CONFIG_FSCACHE_STATS=y
-# CONFIG_FSCACHE_HISTOGRAM is not set
-# CONFIG_FSCACHE_DEBUG is not set
-
-CONFIG_CACHEFILES=m
-# CONFIG_CACHEFILES_DEBUG is not set
-# CONFIG_CACHEFILES_HISTOGRAM is not set
-
-#
-# CD-ROM/DVD Filesystems
-#
-CONFIG_ISO9660_FS=y
-CONFIG_JOLIET=y
-CONFIG_ZISOFS=y
-CONFIG_UDF_FS=m
-
-#
-# DOS/FAT/NT Filesystems
-#
-CONFIG_FAT_FS=m
-CONFIG_MSDOS_FS=m
-CONFIG_VFAT_FS=m
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
-CONFIG_NTFS_FS=m
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_PROC_KCORE=y
-CONFIG_PROC_VMCORE=y
-CONFIG_TMPFS=y
-CONFIG_TMPFS_POSIX_ACL=y
-CONFIG_HUGETLBFS=y
-CONFIG_HUGETLB_PAGE=y
-CONFIG_DEBUG_FS=y
-
-#
-# Miscellaneous filesystems
-#
-CONFIG_ADFS_FS=m
-CONFIG_AFFS_FS=m
-CONFIG_ECRYPT_FS=m
-CONFIG_HFS_FS=m
-CONFIG_HFSPLUS_FS=m
-CONFIG_HFSPLUS_FS_POSIX_ACL=y
-# CONFIG_BEFS_FS is not set
-# CONFIG_BEFS_DEBUG is not set
-# CONFIG_BFS_FS is not set
-CONFIG_EFS_FS=m
-CONFIG_JFFS2_FS=m
-CONFIG_JFFS2_FS_DEBUG=0
-# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
-CONFIG_JFFS2_FS_WRITEBUFFER=y
-# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
-CONFIG_JFFS2_SUMMARY=y
-CONFIG_JFFS2_FS_XATTR=y
-CONFIG_JFFS2_FS_POSIX_ACL=y
-CONFIG_JFFS2_FS_SECURITY=y
-CONFIG_LOGFS=m
-CONFIG_CRAMFS=m
-CONFIG_SQUASHFS=m
-CONFIG_SQUASHFS_FILE_DIRECT=y
-CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y
-CONFIG_SQUASHFS_XATTR=y
-CONFIG_SQUASHFS_ZLIB=y
-CONFIG_SQUASHFS_LZO=y
-CONFIG_SQUASHFS_XZ=y
-# CONFIG_SQUASHFS_EMBEDDED is not set
-# CONFIG_VXFS_FS is not set
-CONFIG_HPFS_FS=m
-CONFIG_QNX4FS_FS=m
-# CONFIG_QNX4FS_RW is not set
-CONFIG_QNX6FS_FS=m
-CONFIG_SYSV_FS=m
-CONFIG_UFS_FS=m
-# CONFIG_UFS_FS_WRITE is not set
-# CONFIG_UFS_DEBUG is not set
-CONFIG_9P_FS=m
-CONFIG_9P_FS_POSIX_ACL=y
-CONFIG_9P_FS_SECURITY=y
-# CONFIG_9P_FSCACHE is not set
-CONFIG_FUSE_FS=m
-# CONFIG_OMFS_FS is not set
-CONFIG_CUSE=m
-CONFIG_EFIVAR_FS=m
-
-#
-# Network File Systems
-#
-CONFIG_NETWORK_FILESYSTEMS=y
-CONFIG_NFS_FS=m
-CONFIG_NFS_V3=y
-CONFIG_NFS_V3_ACL=y
-CONFIG_NFS_V4=y
-CONFIG_NFS_V4_1=y
-CONFIG_NFS_DIRECTIO=y
-CONFIG_NFSD=m
-CONFIG_NFSD_V3=y
-CONFIG_NFSD_V3_ACL=y
-CONFIG_NFSD_V4=y
-CONFIG_NFSD_TCP=y
-CONFIG_NFS_FSCACHE=y
-CONFIG_LOCKD=m
-CONFIG_LOCKD_V4=y
-CONFIG_EXPORTFS=m
-CONFIG_SUNRPC=m
-CONFIG_SUNRPC_BIND34=y
-CONFIG_SUNRPC_GSS=m
-CONFIG_SUNRPC_XPRT_RDMA=m
-# CONFIG_SUNRPC_REGISTER_V4 is not set
-CONFIG_RPCSEC_GSS_KRB5=m
-CONFIG_RPCSEC_GSS_SPKM3=m
-# CONFIG_SMB_FS is not set
-# CONFIG_SMB_NLS_DEFAULT is not set
-CONFIG_CIFS=m
-CONFIG_CIFS_STATS=y
-# CONFIG_CIFS_STATS2 is not set
-CONFIG_CIFS_EXPERIMENTAL=y
-CONFIG_CIFS_UPCALL=y
-CONFIG_CIFS_XATTR=y
-CONFIG_CIFS_POSIX=y
-CONFIG_CIFS_WEAK_PW_HASH=y
-# CONFIG_CIFS_DEBUG2 is not set
-CONFIG_CIFS_DFS_UPCALL=y
-# CONFIG_NCP_FS is not set
-CONFIG_NCPFS_PACKET_SIGNING=y
-CONFIG_NCPFS_IOCTL_LOCKING=y
-CONFIG_NCPFS_STRONG=y
-CONFIG_NCPFS_NFS_NS=y
-CONFIG_NCPFS_OS2_NS=y
-CONFIG_NCPFS_SMALLDOS=y
-CONFIG_NCPFS_NLS=y
-CONFIG_NCPFS_EXTRAS=y
-# CONFIG_CODA_FS is not set
-# CONFIG_CODA_FS_OLD_API is not set
-# CONFIG_AFS_FS is not set
-# CONFIG_AF_RXRPC is not set
-
-# CONFIG_OCFS2_FS is not set
-# CONFIG_OCFS2_DEBUG_FS is not set
-# CONFIG_OCFS2_DEBUG_MASKLOG is not set
-CONFIG_OCFS2_FS_O2CB=m
-CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
-# CONFIG_OCFS2_FS_STATS is not set
-# CONFIG_OCFS2_COMPAT_JBD is not set
-CONFIG_OCFS2_FS_POSIX_ACL=y
-
-CONFIG_BTRFS_FS=m
-CONFIG_BTRFS_FS_POSIX_ACL=y
-
-CONFIG_CONFIGFS_FS=m
-
-CONFIG_DLM=m
-# CONFIG_DLM_DEBUG is not set
-CONFIG_GFS2_FS=m
-CONFIG_GFS2_FS_LOCKING_DLM=y
-
-CONFIG_UBIFS_FS=m
-CONFIG_UBIFS_FS_XATTR=y
-# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
-# CONFIG_UBIFS_FS_DEBUG is not set
-
-#
-# Partition Types
-#
-CONFIG_PARTITION_ADVANCED=y
-# CONFIG_ACORN_PARTITION is not set
-CONFIG_AMIGA_PARTITION=y
-# CONFIG_ATARI_PARTITION is not set
-CONFIG_BSD_DISKLABEL=y
-CONFIG_EFI_PARTITION=y
-CONFIG_KARMA_PARTITION=y
-# CONFIG_LDM_PARTITION is not set
-CONFIG_MAC_PARTITION=y
-CONFIG_MSDOS_PARTITION=y
-CONFIG_MINIX_SUBPARTITION=y
-CONFIG_OSF_PARTITION=y
-CONFIG_SGI_PARTITION=y
-CONFIG_SOLARIS_X86_PARTITION=y
-CONFIG_SUN_PARTITION=y
-# CONFIG_SYSV68_PARTITION is not set
-CONFIG_UNIXWARE_DISKLABEL=y
-# CONFIG_ULTRIX_PARTITION is not set
-
-CONFIG_NLS=y
-
-#
-# Native Language Support
-#
-CONFIG_NLS_DEFAULT="utf8"
-CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_CODEPAGE_737=m
-CONFIG_NLS_CODEPAGE_775=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_CODEPAGE_852=m
-CONFIG_NLS_CODEPAGE_855=m
-CONFIG_NLS_CODEPAGE_857=m
-CONFIG_NLS_CODEPAGE_860=m
-CONFIG_NLS_CODEPAGE_861=m
-CONFIG_NLS_CODEPAGE_862=m
-CONFIG_NLS_CODEPAGE_863=m
-CONFIG_NLS_CODEPAGE_864=m
-CONFIG_NLS_CODEPAGE_865=m
-CONFIG_NLS_CODEPAGE_866=m
-CONFIG_NLS_CODEPAGE_869=m
-CONFIG_NLS_CODEPAGE_936=m
-CONFIG_NLS_CODEPAGE_950=m
-CONFIG_NLS_CODEPAGE_932=m
-CONFIG_NLS_CODEPAGE_949=m
-CONFIG_NLS_CODEPAGE_874=m
-CONFIG_NLS_ISO8859_8=m
-CONFIG_NLS_CODEPAGE_1250=m
-CONFIG_NLS_CODEPAGE_1251=m
-CONFIG_NLS_ISO8859_1=m
-CONFIG_NLS_ISO8859_2=m
-CONFIG_NLS_ISO8859_3=m
-CONFIG_NLS_ISO8859_4=m
-CONFIG_NLS_ISO8859_5=m
-CONFIG_NLS_ISO8859_6=m
-CONFIG_NLS_ISO8859_7=m
-CONFIG_NLS_ISO8859_9=m
-CONFIG_NLS_ISO8859_13=m
-CONFIG_NLS_ISO8859_14=m
-CONFIG_NLS_ISO8859_15=m
-CONFIG_NLS_KOI8_R=m
-CONFIG_NLS_KOI8_U=m
-CONFIG_NLS_UTF8=m
-CONFIG_NLS_ASCII=y
-
-#
-# Profiling support
-#
-CONFIG_PROFILING=y
-CONFIG_OPROFILE=m
-# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set
-CONFIG_JUMP_LABEL=y
-
-#
-# Kernel hacking
-#
-CONFIG_DEBUG_KERNEL=y
-CONFIG_FRAME_WARN=1024
-CONFIG_MAGIC_SYSRQ=y
-# CONFIG_DEBUG_INFO is not set
-# CONFIG_DEBUG_INFO_DWARF4 is not set
-CONFIG_FRAME_POINTER=y
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-# CONFIG_DEBUG_DRIVER is not set
-CONFIG_HEADERS_CHECK=y
-# CONFIG_RCU_TORTURE_TEST is not set
-# CONFIG_RCU_TRACE is not set
-# CONFIG_LKDTM is not set
-
-# CONFIG_RT_MUTEX_TESTER is not set
-# CONFIG_DEBUG_LOCKDEP is not set
-# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
-
-
-
-CONFIG_GDB_SCRIPTS=y
-CONFIG_KGDB=y
-CONFIG_KGDB_SERIAL_CONSOLE=y
-CONFIG_KGDB_TESTS=y
-# CONFIG_KGDB_TESTS_ON_BOOT is not set
-CONFIG_STRICT_DEVMEM=y
-
-#
-# Security options
-#
-CONFIG_SECURITY=y
-CONFIG_SECURITY_NETWORK=y
-CONFIG_SECURITY_NETWORK_XFRM=y
-# CONFIG_SECURITY_PATH is not set
-CONFIG_SECURITY_CAPABILITIES=y
-CONFIG_SECURITY_FILE_CAPABILITIES=y
-# CONFIG_SECURITY_ROOTPLUG is not set
-CONFIG_SECURITY_SELINUX=y
-CONFIG_SECURITY_SELINUX_BOOTPARAM=y
-CONFIG_SECURITY_SELINUX_DISABLE=y
-CONFIG_SECURITY_SELINUX_DEVELOP=y
-CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=1
-CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
-CONFIG_SECURITY_SELINUX_ENABLE_SECMARK_DEFAULT=y
-CONFIG_SECURITY_SELINUX_AVC_STATS=y
-CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=65536
-# CONFIG_SECURITY_SMACK is not set
-# CONFIG_SECURITY_TOMOYO is not set
-CONFIG_FHANDLE=y
-CONFIG_AUDIT=y
-CONFIG_AUDITSYSCALL=y
-
-#
-# Cryptographic options
-#
-CONFIG_CRYPTO=y
-CONFIG_CRYPTO_FIPS=y
-CONFIG_CRYPTO_HW=y
-CONFIG_CRYPTO_BLKCIPHER=y
-CONFIG_CRYPTO_MANAGER=m
-# CONFIG_CRYPTO_CRYPTD is not set
-CONFIG_CRYPTO_AES=m
-CONFIG_CRYPTO_ARC4=m
-CONFIG_CRYPTO_ANUBIS=m
-CONFIG_CRYPTO_AUTHENC=m
-CONFIG_CRYPTO_BLOWFISH=m
-CONFIG_CRYPTO_CAMELLIA=m
-CONFIG_CRYPTO_CAST5=m
-CONFIG_CRYPTO_CAST6=m
-CONFIG_CRYPTO_CBC=m
-CONFIG_CRYPTO_CCM=m
-CONFIG_CRYPTO_CRC32C=y
-CONFIG_CRYPTO_CTR=m
-CONFIG_CRYPTO_CTS=m
-CONFIG_CRYPTO_DEFLATE=m
-CONFIG_CRYPTO_DES=m
-CONFIG_CRYPTO_ECB=m
-CONFIG_CRYPTO_FCRYPT=m
-CONFIG_CRYPTO_GCM=m
-CONFIG_CRYPTO_GF128MUL=m
-CONFIG_CRYPTO_HMAC=y
-CONFIG_CRYPTO_KHAZAD=m
-CONFIG_CRYPTO_LRW=m
-CONFIG_CRYPTO_LZO=m
-CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_MD5=m
-CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_NULL=m
-CONFIG_CRYPTO_PCBC=m
-CONFIG_CRYPTO_RMD128=m
-CONFIG_CRYPTO_RMD160=m
-CONFIG_CRYPTO_RMD256=m
-CONFIG_CRYPTO_RMD320=m
-CONFIG_CRYPTO_SALSA20=m
-CONFIG_CRYPTO_SALSA20_586=m
-CONFIG_CRYPTO_SEED=m
-CONFIG_CRYPTO_SEQIV=m
-CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_SHA1=y
-CONFIG_CRYPTO_SHA256=m
-CONFIG_CRYPTO_SHA512=m
-CONFIG_CRYPTO_TEA=m
-CONFIG_CRYPTO_TGR192=m
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_WP512=m
-CONFIG_CRYPTO_XCBC=m
-CONFIG_CRYPTO_VMAC=m
-CONFIG_CRYPTO_XTS=m
-CONFIG_CRYPTO_TEST=m
-CONFIG_LIBCRC32C=m
-CONFIG_CRYPTO_CRC32C_INTEL=m
-CONFIG_CRYPTO_GHASH=m
-CONFIG_CRYPTO_ANSI_CPRNG=m
-CONFIG_CRYPTO_DEV_HIFN_795X=m
-CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
-CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m
-
-# Random number generation
-CONFIG_CRYPTO_PRNG=m
-
-#
-# Library routines
-#
-CONFIG_CRC16=y
-CONFIG_CRC32=m
-CONFIG_CRC_CCITT=m
-CONFIG_CRC_ITU_T=m
-CONFIG_CRC_T10DIF=m
-
-CONFIG_CRYPTO_ZLIB=m
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=m
-
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_KEYS=y
-CONFIG_KEYS_DEBUG_PROC_KEYS=y
-CONFIG_CDROM_PKTCDVD=m
-CONFIG_CDROM_PKTCDVD_BUFFERS=8
-# CONFIG_CDROM_PKTCDVD_WCACHE is not set
-
-CONFIG_ATA_OVER_ETH=m
-CONFIG_BACKLIGHT_LCD_SUPPORT=y
-CONFIG_BACKLIGHT_CLASS_DEVICE=m
-# CONFIG_BACKLIGHT_GENERIC is not set
-CONFIG_BACKLIGHT_PROGEAR=m
-CONFIG_FB_NVIDIA_BACKLIGHT=y
-CONFIG_FB_RIVA_BACKLIGHT=y
-CONFIG_FB_ATY128_BACKLIGHT=y
-CONFIG_FB_ATY_BACKLIGHT=y
-# CONFIG_BACKLIGHT_SAHARA is not set
-CONFIG_BACKLIGHT_WM831X=m
-
-CONFIG_LCD_CLASS_DEVICE=m
-CONFIG_LCD_PLATFORM=m
-
-CONFIG_SCHEDSTATS=y
-CONFIG_SCHED_DEBUG=y
-CONFIG_FAIR_GROUP_SCHED=y
-CONFIG_SCHED_OMIT_FRAME_POINTER=y
-CONFIG_GROUP_SCHED=y
-CONFIG_RT_GROUP_SCHED=y
-CONFIG_CGROUP_SCHED=y
-CONFIG_CGROUP_MEM_RES_CTLR=y
-CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
-
-CONFIG_EXPERT=y
-CONFIG_CHECKPOINT_RESTORE=y
-CONFIG_CRYPTO_USER_API_HASH=y
-CONFIG_DMIID=y
-CONFIG_SECCOMP_FILTER=y
-CONFIG_SIGNALFD=y
-CONFIG_SYSFS=y
-CONFIG_TIMERFD=y
-CONFIG_TMPFS_POSIX_ACL=y
-CONFIG_TMPFS_XATTR=y
-CONFIG_ANON_INODES=y
-CONFIG_EVENTFD=y
-CONFIG_NLATTR=y
-
-CONFIG_CPUSETS=y
-CONFIG_CGROUPS=y
-# CONFIG_CGROUP_DEBUG is not set
-CONFIG_CGROUP_NS=y
-CONFIG_CGROUP_CPUACCT=y
-CONFIG_CGROUP_DEVICE=y
-CONFIG_CGROUP_FREEZER=y
-CONFIG_PROC_PID_CPUSET=y
-
-CONFIG_MEMCG=y
-CONFIG_MEMCG_SWAP=y
-CONFIG_MEMCG_KMEM=y
-
-# CONFIG_SYSFS_DEPRECATED is not set
-# CONFIG_SYSFS_DEPRECATED_V2 is not set
-
-CONFIG_RELAY=y
-CONFIG_PRINTK_TIME=y
-
-CONFIG_ENABLE_MUST_CHECK=y
-# CONFIG_ENABLE_WARN_DEPRECATED is not set
-
-CONFIG_KEXEC=y
-CONFIG_HAVE_LIVEPATCH=y
-CONFIG_LIVEPATCH=y
-
-CONFIG_SUSPEND=y
-CONFIG_HIBERNATION=y
-CONFIG_PM_AUTOSLEEP=y
-CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
-
-CONFIG_HWMON=y
-# CONFIG_HWMON_DEBUG_CHIP is not set
-CONFIG_INOTIFY=y
-CONFIG_INOTIFY_USER=y
-CONFIG_FANOTIFY=y
-
-CONFIG_CONNECTOR=y
-CONFIG_PROC_EVENTS=y
-
-CONFIG_IBMASR=m
-
-CONFIG_PM_LEGACY=y
-# CONFIG_PM_DEBUG is not set
-CONFIG_PM_TRACE=y
-# CONFIG_PM_VERBOSE is not set
-CONFIG_PM_TEST_SUSPEND=y
-CONFIG_PM_RUNTIME=y
-
-## BEGIN ISA Junk.
-
-CONFIG_I82365=m
-# CONFIG_TCIC is not set
-# CONFIG_PCMCIA_PROBE is not set
-# CONFIG_LTPC is not set
-# CONFIG_COPS is not set
-
-CONFIG_SCSI_AHA152X=m
-CONFIG_SCSI_AHA1542=m
-# CONFIG_SCSI_IN2000 is not set
-CONFIG_SCSI_ARCMSR=m
-CONFIG_SCSI_ARCMSR_AER=y
-# CONFIG_SCSI_DTC3280 is not set
-# CONFIG_SCSI_GENERIC_NCR5380 is not set
-# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
-# CONFIG_SCSI_NCR53C406A is not set
-# CONFIG_SCSI_PAS16 is not set
-# CONFIG_SCSI_PSI240I is not set
-# CONFIG_SCSI_QLOGIC_FAS is not set
-# CONFIG_SCSI_SYM53C416 is not set
-# CONFIG_SCSI_T128 is not set
-# CONFIG_SCSI_U14_34F is not set
-# CONFIG_SCSI_ULTRASTOR is not set
-
-# CONFIG_EL1 is not set
-# CONFIG_EL2 is not set
-# CONFIG_ELPLUS is not set
-# CONFIG_EL16 is not set
-CONFIG_EL3=m
-# CONFIG_3C515 is not set
-# CONFIG_LANCE is not set
-# CONFIG_WD80x3 is not set
-CONFIG_ULTRA=m
-# CONFIG_SMC9194 is not set
-# CONFIG_NI52 is not set
-# CONFIG_NI65 is not set
-# CONFIG_AT1700 is not set
-# CONFIG_DEPCA is not set
-CONFIG_NET_ISA=y
-CONFIG_NE2000=m
-# CONFIG_E2100 is not set
-CONFIG_EWRK3=m
-# CONFIG_EEXPRESS is not set
-# CONFIG_EEXPRESS_PRO is not set
-# CONFIG_HPLAN_PLUS is not set
-# CONFIG_HPLAN is not set
-# CONFIG_LP486E is not set
-# CONFIG_ETH16I is not set
-# CONFIG_ZNET is not set
-# CONFIG_SEEQ8005 is not set
-# CONFIG_AC3200 is not set
-# CONFIG_APRICOT is not set
-# CONFIG_CS89x0 is not set
-# CONFIG_IBMTR is not set
-# CONFIG_SKISA is not set
-# CONFIG_PROTEON is not set
-# CONFIG_SMCTR is not set
-# CONFIG_WAVELAN is not set
-# CONFIG_HISAX_16_0 is not set
-# CONFIG_HISAX_AVM_A1 is not set
-# CONFIG_HISAX_IX1MICROR2 is not set
-# CONFIG_HISAX_ASUSCOM is not set
-# CONFIG_HISAX_TELEINT is not set
-# CONFIG_HISAX_HFCS is not set
-# CONFIG_HISAX_SPORTSTER is not set
-# CONFIG_HISAX_MIC is not set
-# CONFIG_HISAX_ISURF is not set
-# CONFIG_HISAX_HSTSAPHIR is not set
-# CONFIG_ISDN_DRV_ICN is not set
-# CONFIG_ISDN_DRV_PCBIT is not set
-# CONFIG_ISDN_DRV_SC is not set
-# CONFIG_ISDN_DRV_ACT2000 is not set
-# CONFIG_ISDN_DRV_AVMB1_B1ISA is not set
-# CONFIG_ISDN_DRV_AVMB1_T1ISA is not set
-
-# CONFIG_MOUSE_INPORT is not set
-# CONFIG_MOUSE_ATIXL is not set
-# CONFIG_MOUSE_LOGIBM is not set
-# CONFIG_MOUSE_PC110PAD is not set
-
-# CONFIG_SERIAL_8250_FOURPORT is not set
-# CONFIG_SERIAL_8250_ACCENT is not set
-# CONFIG_SERIAL_8250_BOCA is not set
-# CONFIG_SERIAL_8250_HUB6 is not set
-# CONFIG_SERIAL_8250_EXAR_ST16C554 is not set
-
-# CONFIG_PCWATCHDOG is not set
-# CONFIG_WDT is not set
-
-# CONFIG_VIDEO_PMS is not set
-# CONFIG_RADIO_ADAPTERS is not set
-# CONFIG_RADIO_CADET is not set
-# CONFIG_RADIO_RTRACK is not set
-# CONFIG_RADIO_RTRACK2 is not set
-# CONFIG_RADIO_AZTECH is not set
-# CONFIG_RADIO_GEMTEK is not set
-# CONFIG_RADIO_SF16FMI is not set
-# CONFIG_RADIO_SF16FMR2 is not set
-# CONFIG_RADIO_TERRATEC is not set
-# CONFIG_RADIO_TRUST is not set
-# CONFIG_RADIO_TEA5764 is not set
-# CONFIG_RADIO_TYPHOON is not set
-# CONFIG_RADIO_ZOLTRIX is not set
-
-# CONFIG_SND_OPL4_LIB is not set
-# CONFIG_SND_AD1848_LIB is not set
-# CONFIG_SND_AD1816A is not set
-# CONFIG_SND_AD1848 is not set
-# CONFIG_SND_CS4231 is not set
-# CONFIG_SND_CS4232 is not set
-# CONFIG_SND_CS4231_LIB is not set
-# CONFIG_SND_CS4236 is not set
-# CONFIG_SND_ES968 is not set
-# CONFIG_SND_ES1688 is not set
-# CONFIG_SND_ES18XX is not set
-# CONFIG_SND_GUS_SYNTH is not set
-# CONFIG_SND_GUSCLASSIC is not set
-# CONFIG_SND_GUSEXTREME is not set
-# CONFIG_SND_GUSMAX is not set
-# CONFIG_SND_INTERWAVE is not set
-# CONFIG_SND_INTERWAVE_STB is not set
-# CONFIG_SND_OPTI92X_AD1848 is not set
-# CONFIG_SND_OPTI92X_CS4231 is not set
-# CONFIG_SND_OPTI93X is not set
-# CONFIG_SND_SB8 is not set
-# CONFIG_SND_SB16 is not set
-# CONFIG_SND_SBAWE is not set
-# CONFIG_SND_SB16_CSP is not set
-# CONFIG_SND_ALS100 is not set
-# CONFIG_SND_AZT2320 is not set
-# CONFIG_SND_CMI8330 is not set
-# CONFIG_SND_DT019X is not set
-# CONFIG_SND_OPL3SA2 is not set
-# CONFIG_SND_SGALAXY is not set
-# CONFIG_SND_SSCAPE is not set
-CONFIG_SND_DARLA20=m
-CONFIG_SND_GINA20=m
-CONFIG_SND_LAYLA20=m
-CONFIG_SND_DARLA24=m
-CONFIG_SND_GINA24=m
-CONFIG_SND_LAYLA24=m
-CONFIG_SND_MONA=m
-CONFIG_SND_MIA=m
-CONFIG_SND_ECHO3G=m
-CONFIG_SND_INDIGO=m
-CONFIG_SND_INDIGOIO=m
-CONFIG_SND_INDIGODJ=m
-CONFIG_SND_INDIGOIOX=m
-CONFIG_SND_INDIGODJX=m
-# CONFIG_SND_SOC is not set
-
-## END of ISA options.
-
-# CONFIG_FORCED_INLINING is not set
-
-CONFIG_MIGRATION=y
-CONFIG_RESOURCES_64BIT=y
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-# CONFIG_LEDS_AMS_DELTA is not set
-# CONFIG_LEDS_CORGI is not set
-# CONFIG_LEDS_IXP4XX is not set
-# CONFIG_LEDS_LOCOMO is not set
-# CONFIG_LEDS_NET48XX is not set
-# CONFIG_LEDS_PCA9532 is not set
-# CONFIG_LEDS_PCA955X is not set
-# CONFIG_LEDS_LP5521 is not set
-# CONFIG_LEDS_BD2802 is not set
-# CONFIG_LEDS_S3C24XX is not set
-# CONFIG_LEDS_SPITZ is not set
-# CONFIG_LEDS_TOSA is not set
-CONFIG_LEDS_HP_DISK=m
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=m
-CONFIG_LEDS_TRIGGER_IDE_DISK=y
-CONFIG_LEDS_TRIGGER_HEARTBEAT=m
-CONFIG_LEDS_TRIGGER_BACKLIGHT=m
-CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
-CONFIG_LEDS_ALIX2=m
-CONFIG_LEDS_WM8350=m
-CONFIG_LEDS_LP3944=m
-CONFIG_LEDS_WM831X_STATUS=m
-
-CONFIG_DMADEVICES=y
-CONFIG_DMA_ENGINE=y
-CONFIG_NET_DMA=y
-# CONFIG_DMATEST is not set
-CONFIG_ASYNC_TX_DMA=y
-
-# CONFIG_UNUSED_SYMBOLS is not set
-
-CONFIG_UTRACE=y
-
-CONFIG_FTRACE=y
-CONFIG_FUNCTION_TRACER=y
-CONFIG_FUNCTION_GRAPH_TRACER=y
-CONFIG_IRQSOFF_TRACER=y
-CONFIG_SCHED_TRACER=y
-CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP=y
-CONFIG_UPROBES=y
-CONFIG_UPROBE_EVENTS=y
-CONFIG_KPROBES_ON_FTRACE=y
-CONFIG_KPROBES=y
-CONFIG_BPF_EVENTS=y
-CONFIG_DYNAMIC_FTRACE=y
-CONFIG_DYNAMIC_FTRACE_WITH_REGS=y
-CONFIG_FUNCTION_PROFILER=y
-CONFIG_FTRACE_MCOUNT_RECORD=y
-CONFIG_MMIOTRACE=y
-CONFIG_PROCESS_TRACER=y
-CONFIG_CONTEXT_SWITCH_TRACER=y
-# CONFIG_WORKQUEUE_TRACER is not set
-CONFIG_EVENT_TRACER=y
-CONFIG_FTRACE_SYSCALLS=y
-CONFIG_KMEMTRACE=y
-# CONFIG_DYNAMIC_FTRACE is not set
-CONFIG_FTRACE_MCOUNT_RECORD=y
-# CONFIG_FTRACE_STARTUP_TEST is not set
-# CONFIG_TRACE_BRANCH_PROFILING is not set
-CONFIG_RING_BUFFER_BENCHMARK=m
-
-# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
-
-CONFIG_SECCOMP=y
-CONFIG_CC_STACKPROTECTOR_REGULAR=y
-CONFIG_HZ_1000=y
-CONFIG_NO_HZ=y
-CONFIG_NO_HZ_IDLE=y
-
-CONFIG_TIMER_STATS=y
-
-# Auxillary displays
-CONFIG_KS0108=m
-CONFIG_KS0108_PORT=0x378
-CONFIG_KS0108_DELAY=2
-CONFIG_CFAG12864B=y
-CONFIG_CFAG12864B_RATE=20
-
-# CONFIG_PHANTOM is not set
-
-CONFIG_POWER_SUPPLY=m
-# CONFIG_POWER_SUPPLY_DEBUG is not set
-CONFIG_APM_POWER=m
-CONFIG_WM831X_POWER=m
-# CONFIG_BATTERY_DS2760 is not set
-# CONFIG_BATTERY_DS2782 is not set
-CONFIG_BATTERY_PMU=m
-CONFIG_BATTERY_BQ27x00=m
-CONFIG_BATTERY_MAX17040=m
-# CONFIG_PDA_POWER is not set
-
-CONFIG_AUXDISPLAY=y
-
-CONFIG_UIO=m
-CONFIG_UIO_CIF=m
-CONFIG_UIO_SMX=m
-CONFIG_UIO_PDRV=m
-CONFIG_UIO_PDRV_GENIRQ=m
-CONFIG_UIO_AEC=m
-CONFIG_UIO_SERCOS3=m
-CONFIG_UIO_PCI_GENERIC=m
-
-CONFIG_INSTRUMENTATION=y
-CONFIG_MARKERS=y
-# CONFIG_CRC7 is not set
-
-CONFIG_DEFAULT_RELATIME=y
-
-# LIRC
-CONFIG_INPUT_LIRC=y
-CONFIG_LIRC_DEV=m
-CONFIG_LIRC_BT829=m
-# CONFIG_LIRC_ENE0100 is not set
-CONFIG_LIRC_I2C=m
-CONFIG_LIRC_IGORPLUGUSB=m
-CONFIG_LIRC_IMON=m
-CONFIG_LIRC_IT87=m
-CONFIG_LIRC_ITE8709=m
-CONFIG_LIRC_MCEUSB=m
-CONFIG_LIRC_ZILOG=m
-CONFIG_LIRC_PARALLEL=m
-CONFIG_LIRC_SERIAL=m
-CONFIG_LIRC_SERIAL_TRANSMITTER=y
-CONFIG_LIRC_SASEM=m
-CONFIG_LIRC_SIR=m
-CONFIG_LIRC_STREAMZAP=m
-CONFIG_LIRC_TTUSBIR=m
-
-# CONFIG_SAMPLES is not set
-
-# CONFIG_DEVKMEM is not set
-
-CONFIG_PM_TRACE_RTC=y
-CONFIG_R6040=m
-
-CONFIG_BNX2X=m
-CONFIG_NOZOMI=m
-CONFIG_PCF8575=m
-# CONFIG_TPS65010 is not set
-CONFIG_DEBUG_SECTION_MISMATCH=y
-# CONFIG_KPROBES_SANITY_TEST is not set
-# CONFIG_BACKTRACE_SELF_TEST is not set
-CONFIG_LATENCYTOP=y
-CONFIG_DEBUG_STRICT_USER_COPY_CHECKS=y
-CONFIG_RESOURCE_COUNTERS=y
-# CONFIG_COMPAT_BRK is not set
-
-CONFIG_ACPI_CUSTOM_DSDT_INITRD=y
-
-#FIXME: x86 generic?
-CONFIG_LEDS_CLEVO_MAIL=m
-CONFIG_I8K=m
-CONFIG_EDAC_I3000=m
-CONFIG_EDAC_X38=m
-CONFIG_INPUT_APANEL=m
-
-# CONFIG_INTEL_MENLOW is not set
-CONFIG_ENCLOSURE_SERVICES=m
-CONFIG_ISL29003=m
-CONFIG_IPWIRELESS=m
-CONFIG_RTC_DRV_DS1511=m
-CONFIG_CGROUP_MEM_CONT=y
-
-# CONFIG_BLK_DEV_XIP is not set
-CONFIG_MEMSTICK=m
-# CONFIG_MEMSTICK_DEBUG is not set
-# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
-CONFIG_MSPRO_BLOCK=m
-CONFIG_MEMSTICK_TIFM_MS=m
-CONFIG_MEMSTICK_JMICRON_38X=m
-
-# CONFIG_ACCESSIBILITY is not set
-# CONFIG_A11Y_BRAILLE_CONSOLE is not set
-
-# CONFIG_HTC_PASIC3 is not set
-
-# MT9V022_PCA9536_SWITCH is not set
-
-CONFIG_THERMAL_HWMON=y
-
-# CONFIG_OPTIMIZE_INLINING is not set
-
-# FIXME: This should be x86/ia64 only
-# CONFIG_HP_ILO is not set
-
-# CONFIG_GPIOLIB is not set
-
-CONFIG_UNEVICTABLE_LRU=y
-
-CONFIG_NETFILTER_TPROXY=m
-CONFIG_NETFILTER_XT_TARGET_TPROXY=m
-CONFIG_NETFILTER_XT_MATCH_RECENT=m
-# CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT is not set
-CONFIG_NETFILTER_XT_MATCH_SOCKET=m
-
-CONFIG_IP_VS_IPV6=y
-
-CONFIG_NET_DSA=y
-CONFIG_NET_DSA_MV88E6060=y
-CONFIG_NET_DSA_MV88E6131=y
-CONFIG_NET_DSA_MV88E6123_61_65=y
-
-CONFIG_NET_SCH_MULTIQ=m
-CONFIG_NET_ACT_SKBEDIT=m
-
-CONFIG_PHONET=m
-
-CONFIG_ICS932S401=m
-# CONFIG_C2PORT is not set
-CONFIG_W1_SLAVE_BQ27000=m
-
-
-CONFIG_IT87_WDT=m
-CONFIG_W83697UG_WDT=m
-
-CONFIG_REGULATOR=y
-# CONFIG_REGULATOR_DEBUG is not set
-CONFIG_REGULATOR_FIXED_VOLTAGE=m
-# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
-CONFIG_REGULATOR_BQ24022=m
-CONFIG_REGULATOR_WM8350=m
-CONFIG_REGULATOR_WM8400=m
-CONFIG_REGULATOR_DA903X=m
-CONFIG_REGULATOR_USERSPACE_CONSUMER=m
-CONFIG_REGULATOR_MAX1586=m
-CONFIG_REGULATOR_LP3971=m
-CONFIG_REGULATOR_AB3100=m
-CONFIG_REGULATOR_TPS65023=m
-CONFIG_REGULATOR_TPS6507X=m
-CONFIG_REGULATOR_WM831X=m
-
-CONFIG_WM8350_POWER=m
-
-# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
-
-CONFIG_USB_WUSB=m
-CONFIG_USB_WUSB_CBAF=m
-# CONFIG_USB_WUSB_CBAF_DEBUG is not set
-CONFIG_USB_WHCI_HCD=m
-CONFIG_USB_HWA_HCD=m
-
-CONFIG_UWB=m
+CONFIG_USB=y
+CONFIG_USB_YUREX=m
+# CONFIG_USB_ZD1201 is not set
+CONFIG_USB_ZR364XX=m
+# CONFIG_USELIB is not set
+CONFIG_USERFAULTFD=y
+# CONFIG_USERIO is not set
+CONFIG_USERMODE_DRIVER=y
+CONFIG_USER_NS=y
+CONFIG_USER_RETURN_NOTIFIER=y
+CONFIG_USER_STACKTRACE_SUPPORT=y
+CONFIG_UTS_NS=y
+# CONFIG_UV_SYSFS is not set
CONFIG_UWB_HWA=m
-CONFIG_UWB_WHCI=m
-CONFIG_UWB_WLP=m
CONFIG_UWB_I1480U=m
-CONFIG_UWB_I1480U_WLP=m
-
-CONFIG_STAGING=y
-# CONFIG_STAGING_EXCLUDE_BUILD is not set
-# CONFIG_ET131X is not set
-# CONFIG_SLICOSS is not set
-# CONFIG_SXG is not set
-# CONFIG_ME4000 is not set
-# CONFIG_MEILHAUS is not set
-# CONFIG_VIDEO_GO7007 is not set
-# CONFIG_USB_IP_COMMON is not set
-# CONFIG_W35UND is not set
-# CONFIG_PRISM2_USB is not set
-# CONFIG_ECHO is not set
-CONFIG_USB_ATMEL=m
-# CONFIG_POCH is not set
-# CONFIG_AGNX is not set
-# CONFIG_OTUS is not set
-# CONFIG_RT2860 is not set
-# CONFIG_RT2870 is not set
-# CONFIG_BENET is not set
-# CONFIG_COMEDI is not set
-# CONFIG_ASUS_OLED is not set
-# CONFIG_PANEL is not set
-# CONFIG_ALTERA_PCIE_CHDMA is not set
-# CONFIG_RTL8187SE is not set
-# CONFIG_INPUT_MIMIO is not set
-# CONFIG_TRANZPORT is not set
-# CONFIG_EPL is not set
-# CONFIG_POHMELFS is not set
-# CONFIG_USB_SERIAL_ATEN2011 is not set
-# CONFIG_B3DFG is not set
-# CONFIG_DST is not set
-# CONFIG_IDE_PHISON is not set
-# CONFIG_PLAN9AUTH is not set
-# CONFIG_HECI is not set
-# CONFIG_LINE6_USB is not set
-# CONFIG_USB_SERIAL_QUATECH_ESU100 is not set
-# CONFIG_RT3070 is not set
-# CONFIG_RTL8192SU is not set
-# CONFIG_COWLOOP is not set
-# CONFIG_IIO is not set
+CONFIG_UWB=m
+CONFIG_UWB_WHCI=m
+# CONFIG_V4L2_FLASH_LED_CLASS is not set
+CONFIG_V4L2_FWNODE=m
+# CONFIG_V4L_MEM2MEM_DRIVERS is not set
+# CONFIG_V4L_PLATFORM_DRIVERS is not set
+# CONFIG_V4L_TEST_DRIVERS is not set
+CONFIG_VBOXGUEST=m
+CONFIG_VBOXSF_FS=m
+# CONFIG_VCNL3020 is not set
+# CONFIG_VCNL4000 is not set
+CONFIG_VCNL4035=m
+# CONFIG_VDPA is not set
+# CONFIG_VEML6030 is not set
+# CONFIG_VEML6070 is not set
+CONFIG_VETH=m
+CONFIG_VFAT_FS=m
+CONFIG_VFIO_IOMMU_TYPE1=m
+CONFIG_VFIO=m
+CONFIG_VFIO_MDEV_DEVICE=m
+CONFIG_VFIO_MDEV=m
+# CONFIG_VFIO_NOIOMMU is not set
+CONFIG_VFIO_PCI_IGD=y
+CONFIG_VFIO_PCI_INTX=y
+CONFIG_VFIO_PCI=m
+CONFIG_VFIO_PCI_MMAP=y
+CONFIG_VFIO_PCI_VGA=y
+CONFIG_VFIO_VIRQFD=m
+CONFIG_VGA_ARB_MAX_GPUS=16
+CONFIG_VGA_ARB=y
+# CONFIG_VGACON_SOFT_SCROLLBACK_PERSISTENT_ENABLE_BY_DEFAULT is not set
+CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64
+CONFIG_VGACON_SOFT_SCROLLBACK=y
+CONFIG_VGA_CONSOLE=y
+CONFIG_VGASTATE=m
+CONFIG_VGA_SWITCHEROO=y
+# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
+CONFIG_VHOST_IOTLB=m
+CONFIG_VHOST=m
+CONFIG_VHOST_MENU=y
+CONFIG_VHOST_NET=m
+CONFIG_VHOST_SCSI=m
+CONFIG_VHOST_VSOCK=m
+CONFIG_VIA_RHINE=m
+CONFIG_VIA_RHINE_MMIO=y
+CONFIG_VIA_VELOCITY=m
+CONFIG_VIA_WDT=m
+# CONFIG_VIDEO_AD5820 is not set
+# CONFIG_VIDEO_ADP1653 is not set
+# CONFIG_VIDEO_ADV_DEBUG is not set
+# CONFIG_VIDEO_AK7375 is not set
+CONFIG_VIDEO_AU0828=m
+CONFIG_VIDEO_AU0828_RC=y
+CONFIG_VIDEO_AU0828_V4L2=y
+CONFIG_VIDEOBUF2_CORE=m
+CONFIG_VIDEOBUF2_MEMOPS=m
+CONFIG_VIDEOBUF2_V4L2=m
+CONFIG_VIDEOBUF2_VMALLOC=m
+CONFIG_VIDEOBUF_GEN=m
+CONFIG_VIDEOBUF_VMALLOC=m
+# CONFIG_VIDEO_CCS is not set
+CONFIG_VIDEO_CPIA2=m
+CONFIG_VIDEO_CS53L32A=m
+CONFIG_VIDEO_CX231XX_ALSA=m
+CONFIG_VIDEO_CX231XX_DVB=m
+CONFIG_VIDEO_CX231XX=m
+CONFIG_VIDEO_CX231XX_RC=y
+CONFIG_VIDEO_CX2341X=m
+CONFIG_VIDEO_CX25840=m
+CONFIG_VIDEO_DEV=m
+# CONFIG_VIDEO_DW9714 is not set
+# CONFIG_VIDEO_DW9768 is not set
+# CONFIG_VIDEO_DW9807_VCM is not set
+CONFIG_VIDEO_EM28XX_ALSA=m
+CONFIG_VIDEO_EM28XX_DVB=m
+CONFIG_VIDEO_EM28XX=m
+CONFIG_VIDEO_EM28XX_RC=m
+CONFIG_VIDEO_EM28XX_V4L2=m
+# CONFIG_VIDEO_ET8EK8 is not set
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+CONFIG_VIDEO_GO7007_LOADER=m
+CONFIG_VIDEO_GO7007=m
+CONFIG_VIDEO_HDPVR=m
+# CONFIG_VIDEO_HI556 is not set
+# CONFIG_VIDEO_IMX214 is not set
+# CONFIG_VIDEO_IMX219 is not set
+# CONFIG_VIDEO_IMX258 is not set
+# CONFIG_VIDEO_IMX274 is not set
+# CONFIG_VIDEO_IMX290 is not set
+# CONFIG_VIDEO_IMX319 is not set
+# CONFIG_VIDEO_IMX355 is not set
+# CONFIG_VIDEO_IPU3_IMGU is not set
+CONFIG_VIDEO_IR_I2C=m
+# CONFIG_VIDEO_LM3560 is not set
+# CONFIG_VIDEO_LM3646 is not set
+# CONFIG_VIDEO_M5MOLS is not set
+CONFIG_VIDEO_MSP3400=m
+# CONFIG_VIDEO_MT9M001 is not set
+# CONFIG_VIDEO_MT9M032 is not set
+# CONFIG_VIDEO_MT9M111 is not set
+# CONFIG_VIDEO_MT9P031 is not set
+# CONFIG_VIDEO_MT9T001 is not set
+# CONFIG_VIDEO_MT9T112 is not set
+CONFIG_VIDEO_MT9V011=m
+# CONFIG_VIDEO_MT9V032 is not set
+# CONFIG_VIDEO_MT9V111 is not set
+# CONFIG_VIDEO_NOON010PC30 is not set
+# CONFIG_VIDEO_OV02A10 is not set
+# CONFIG_VIDEO_OV13858 is not set
+CONFIG_VIDEO_OV2640=m
+# CONFIG_VIDEO_OV2659 is not set
+# CONFIG_VIDEO_OV2680 is not set
+# CONFIG_VIDEO_OV2685 is not set
+# CONFIG_VIDEO_OV2740 is not set
+# CONFIG_VIDEO_OV5647 is not set
+# CONFIG_VIDEO_OV5670 is not set
+# CONFIG_VIDEO_OV5675 is not set
+# CONFIG_VIDEO_OV5695 is not set
+# CONFIG_VIDEO_OV6650 is not set
+# CONFIG_VIDEO_OV7251 is not set
+CONFIG_VIDEO_OV7640=m
+# CONFIG_VIDEO_OV7670 is not set
+# CONFIG_VIDEO_OV772X is not set
+# CONFIG_VIDEO_OV7740 is not set
+# CONFIG_VIDEO_OV8856 is not set
+# CONFIG_VIDEO_OV9640 is not set
+# CONFIG_VIDEO_OV9650 is not set
+# CONFIG_VIDEO_OV9734 is not set
+# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
+CONFIG_VIDEO_PVRUSB2_DVB=y
+CONFIG_VIDEO_PVRUSB2=m
+CONFIG_VIDEO_PVRUSB2_SYSFS=y
+# CONFIG_VIDEO_RDACM20 is not set
+# CONFIG_VIDEO_RJ54N1 is not set
+# CONFIG_VIDEO_S5C73M3 is not set
+# CONFIG_VIDEO_S5K4ECGX is not set
+# CONFIG_VIDEO_S5K5BAF is not set
+# CONFIG_VIDEO_S5K6A3 is not set
+# CONFIG_VIDEO_S5K6AA is not set
+CONFIG_VIDEO_SAA711X=m
+CONFIG_VIDEO_SONY_BTF_MPX=m
+# CONFIG_VIDEO_SR030PC30 is not set
+CONFIG_VIDEO_STK1160_COMMON=m
+CONFIG_VIDEO_STK1160=m
+CONFIG_VIDEO_TM6000_ALSA=m
+CONFIG_VIDEO_TM6000_DVB=m
+CONFIG_VIDEO_TM6000=m
+CONFIG_VIDEO_TUNER=m
+CONFIG_VIDEO_TVEEPROM=m
+CONFIG_VIDEO_TVP5150=m
+CONFIG_VIDEO_TW2804=m
+CONFIG_VIDEO_TW9903=m
+CONFIG_VIDEO_TW9906=m
+CONFIG_VIDEO_UDA1342=m
+CONFIG_VIDEO_USBTV=m
+CONFIG_VIDEO_USBVISION=m
+CONFIG_VIDEO_V4L2_I2C=y
+CONFIG_VIDEO_V4L2=m
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
+# CONFIG_VIDEO_VS6624 is not set
+CONFIG_VIDEO_WM8775=m
+# CONFIG_VIDEO_ZORAN is not set
+# CONFIG_VIPERBOARD_ADC is not set
+CONFIG_VIRT_DRIVERS=y
+# CONFIG_VIRTIO_BLK is not set
+# CONFIG_VIRTIO_CONSOLE is not set
+# CONFIG_VIRTIO_FS is not set
+# CONFIG_VIRTIO_MENU is not set
+# CONFIG_VIRTIO_NET is not set
+CONFIG_VIRTIO_VSOCKETS_COMMON=m
+# CONFIG_VIRTIO_VSOCKETS is not set
+CONFIG_VIRTIO=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_VIRT_WIFI=m
+CONFIG_VITESSE_PHY=m
+CONFIG_VL53L0X_I2C=m
+CONFIG_VL6180=m
+CONFIG_VLAN_8021Q_GVRP=y
+CONFIG_VLAN_8021Q=m
+CONFIG_VLAN_8021Q_MVRP=y
+CONFIG_VMAP_PFN=y
# CONFIG_VME_BUS is not set
-# CONFIG_RAR_REGISTER is not set
-# CONFIG_VT6656 is not set
-# CONFIG_USB_SERIAL_QUATECH_USB2 is not set
-# CONFIG_RTL8192E is not set
-# CONFIG_INPUT_GPIO is not set
-# CONFIG_VIDEO_CX25821 is not set
-# CONFIG_RT3090 is not set
-# CONFIG_HYPERV is not set
-
-#
-# Android
-#
-# CONFIG_ANDROID is not set
-# CONFIG_ANDROID_BINDER_IPC is not set
-# CONFIG_ANDROID_LOGGER is not set
-# CONFIG_ANDROID_RAM_CONSOLE is not set
-# CONFIG_ANDROID_LOW_MEMORY_KILLER is not set
-# CONFIG_ANDROID_TIMED_GPIO is not set
-
-# CONFIG_DEBUG_VIRTUAL is not set
-# CONFIG_RCU_CPU_STALL_DETECTOR is not set
-# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
-# CONFIG_FUNCTION_TRACER is not set
-# CONFIG_FUNCTION_GRAPH_TRACER is not set
-CONFIG_BOOT_TRACER=y
-# CONFIG_STACK_TRACER is not set
-# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
-CONFIG_EARLY_PRINTK_DBGP=y
-
-CONFIG_SECURITYFS=y
-
-# CONFIG_SCSI_CXGB3_ISCSI is not set
-CONFIG_LIBFC=m
-CONFIG_LIBFCOE=m
-CONFIG_FCOE=m
-CONFIG_FCOE_FNIC=m
-# CONFIG_SCSI_LPFC_DEBUG_FS is not set
-
-CONFIG_NOP_USB_XCEIV=m
-
-CONFIG_IMA=y
-CONFIG_IMA_MEASURE_PCR_IDX=10
-CONFIG_IMA_AUDIT=y
-CONFIG_IMA_LSM_RULES=y
-
-CONFIG_LSM_MMAP_MIN_ADDR=65535
-
-# CONFIG_PAGE_POISONING is not set
-
-CONFIG_SLOW_WORK=y
-
-# CONFIG_CRASH_DUMP is not set
-# CONFIG_CRASH is not set
-
-# CONFIG_STRIP_ASM_SYMS is not set
-
-# CONFIG_RCU_FANOUT_EXACT is not set
-
-CONFIG_KSM=y
-CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
-
-CONFIG_FSNOTIFY=y
-
-CONFIG_IEEE802154=m
-CONFIG_IEEE802154_DRIVERS=m
-CONFIG_IEEE802154_FAKEHARD=m
-
-# CONFIG_GCOV_KERNEL is not set
-
-CONFIG_PPS=m
-# CONFIG_PPS_DEBUG is not set
-
-# CONFIG_USB_SERIAL_QUATECH2 is not set
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_VMWARE_BALLOON=m
+CONFIG_VMWARE_PVSCSI=m
+CONFIG_VMWARE_VMCI=m
+CONFIG_VMWARE_VMCI_VSOCKETS=m
+CONFIG_VMXNET3=m
+CONFIG_VORTEX=m
+CONFIG_VSOCKETS_DIAG=m
+CONFIG_VSOCKETS_LOOPBACK=m
+CONFIG_VSOCKETS=m
+CONFIG_VSOCKMON=m
# CONFIG_VT6655 is not set
-# CONFIG_USB_CPC is not set
-# CONFIG_RDC_17F3101X is not set
-# CONFIG_FB_UDL is not set
-
-# DEBUG options that don't get enabled/disabled with 'make debug/release'
-#
-# Kmemleak still produces a lot of false positives.
-# CONFIG_DEBUG_KMEMLEAK is not set
-#
-# This generates a huge amount of dmesg spew
-# CONFIG_DEBUG_KOBJECT is not set
-#
-#
-# These debug options are deliberatly left on (even in 'make release' kernels).
-# They aren't that much of a performance impact, and the value
-# from getting useful bug-reports makes it worth leaving them on.
-CONFIG_DYNAMIC_DEBUG=y
-# CONFIG_DEBUG_HIGHMEM is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
-CONFIG_BOOT_PRINTK_DELAY=y
-# CONFIG_DEBUG_LIST is not set
-CONFIG_DEBUG_SHIRQ=y
-# CONFIG_DEBUG_DEVRES is not set
-# CONFIG_DEBUG_RODATA_TEST is not set
-CONFIG_DEBUG_SET_MODULE_RONX=y
-# CONFIG_DEBUG_NX_TEST is not set
-CONFIG_DEBUG_BOOT_PARAMS=y
-CONFIG_DETECT_SOFTLOCKUP=y
-# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
-CONFIG_DETECT_HUNG_TASK=y
-# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
-
-CONFIG_MEMORY_FAILURE=y
-CONFIG_HWPOISON_INJECT=m
-CONFIG_CGROUP_PERF=y
-CONFIG_CIFS_ACL=y
-# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
-CONFIG_AUDIT_TREE=y
-CONFIG_CFS_BANDWIDTH=y
-CONFIG_SCHED_AUTOGROUP=y
-CONFIG_IGB_HWMON=y
-CONFIG_NAMESPACES=y
-CONFIG_EVENT_TRACING=y
-CONFIG_KPROBE_EVENT=y
-CONFIG_TARGET_CORE=m
-CONFIG_TCM_IBLOCK=m
-CONFIG_TCM_FILEIO=m
-CONFIG_TCM_PSCSI=m
-CONFIG_LOOPBACK_TARGET=m
-# CONFIG_LOOPBACK_TARGET_CDB_DEBUG is not set
-CONFIG_TCM_FC=m
-CONFIG_HDLC=m
-CONFIG_HDLC_RAW=m
-CONFIG_HDLC_CISCO=m
-CONFIG_HDLC_FR=m
-CONFIG_HDLC_PPP=m
-CONFIG_DLCI=m
-CONFIG_DLCI_COUNT=24
-CONFIG_DLCI_MAX=8
-CONFIG_ANON_ZERO_PAGE=y
-CONFIG_TREE_RCU=y
-CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
-CONFIG_BRIDGE_IGMP_SNOOPING=y
-CONFIG_NETFILTER_XT_TARGET_AUDIT=m
-CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
-CONFIG_IP_SET=m
-CONFIG_IP_SET_MAX=256
-CONFIG_IP_SET_BITMAP_IP=m
-CONFIG_IP_SET_BITMAP_IPMAC=m
-CONFIG_IP_SET_BITMAP_PORT=m
-CONFIG_IP_SET_HASH_IP=m
-CONFIG_IP_SET_HASH_IPPORT=m
-CONFIG_IP_SET_HASH_IPPORTIP=m
-CONFIG_IP_SET_HASH_IPPORTNET=m
-CONFIG_IP_SET_HASH_NET=m
-CONFIG_IP_SET_HASH_NETPORT=m
-CONFIG_IP_SET_LIST_SET=m
-CONFIG_NETFILTER_XT_SET=m
-CONFIG_NET_SCH_MQPRIO=m
-CONFIG_NET_SCH_QFQ=m
-CONFIG_OPENVSWITCH=m
-CONFIG_OPENVSWITCH_GRE=y
-CONFIG_OPENVSWITCH_VXLAN=y
+# CONFIG_VT6656 is not set
+CONFIG_VT_CONSOLE_SLEEP=y
+CONFIG_VT_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_VT=y
+# CONFIG_VXFS_FS is not set
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
+CONFIG_VXGE=m
CONFIG_VXLAN=m
-CONFIG_NETPRIO_CGROUP=y
-CONFIG_MODULE_SIG=y
-CONFIG_CRYPTO_MPILIB=y
-CONFIG_CRYPTO_SIGNATURE_DSA=y
-CONFIG_MODULE_VERIFY_ELF=y
-CONFIG_CRYPTO_SIGNATURE=y
-CONFIG_BLK_DEV_BSGLIB=y
-CONFIG_BLK_CGROUP=y
-CONFIG_CFQ_GROUP_IOSCHED=y
-CONFIG_VHOST_NET=m
-CONFIG_BLK_DEV_THROTTLING=y
-CONFIG_NFS_USE_LEGACY_DNS=y
-CONFIG_NFSD_DEPRECATED=y
-CONFIG_VGA_ARB_MAX_GPUS=64
-CONFIG_SLAB=y
-CONFIG_IP_VS_PROTO_SCTP=y
-CONFIG_IP_VS_PE_SIP=m
-CONFIG_IXGBEVF=m
-CONFIG_IXGBE_HWMON=y
-CONFIG_IXGBE_PTP=y
-CONFIG_VMWARE_PVSCSI=m
-CONFIG_SCSI_VIRTIO=m
-CONFIG_SCSI_PM8001=m
-CONFIG_MACVTAP=m
-CONFIG_SND_HDA_PREALLOC_SIZE=512
-CONFIG_SND_HDA_CODEC_HDMI=y
-CONFIG_SND_HDA_ENABLE_REALTEK_QUIRKS=y
-CONFIG_SND_HDA_CODEC_CA0132=y
-CONFIG_SND_HDA_CODEC_CA0132_DSP=y
-CONFIG_SND_USB_6FIRE=m
-CONFIG_SND_USB_UA101=m
-CONFIG_SCSI_3W_SAS=m
-CONFIG_SCSI_MPT3SAS=m
-CONFIG_SCSI_MPT3SAS_MAX_SGE=128
-CONFIG_SCSI_MPT3SAS_LOGGING=y
-CONFIG_MFD_WM8350_CONFIG_MODE_0=y
-CONFIG_ZRAM=m
-# CONFIG_ZRAM_DEBUG is not set
-CONFIG_COMPACTION=y
-CONFIG_CHELSIO_T4=m
-CONFIG_SECURITY_DMESG_RESTRICT=n
-CONFIG_DRM_I2C_SIL164=y
-CONFIG_DRM_LOAD_EDID_FIRMWARE=y
-CONFIG_QLCNIC=m
-CONFIG_QLCNIC_SRIOV=y
-CONFIG_SENSORS_K10TEMP=m
-CONFIG_SENSORS_PKGTEMP=m
-CONFIG_ACPI_HED=m
-CONFIG_ACPI_APEI=y
-CONFIG_ACPI_APEI_GHES=y
-CONFIG_ACPI_APEI_EINJ=m
-# CONFIG_ACPI_APEI_ERST_DEBUG is not set
-CONFIG_PSTORE=y
-CONFIG_PSTORE_CONSOLE=y
-CONFIG_PSTORE_PMSG=y
-CONFIG_PSTORE_FTRACE=y
-CONFIG_PSTORE_RAM=m
-CONFIG_ACPI_APEI_PCIEAER=y
-CONFIG_ACPI_APEI_MEMORY_FAILURE=y
-CONFIG_ACPI_IPMI=y
-CONFIG_SND_ALOOP=m
-CONFIG_OPTPROBES=y
-CONFIG_INFINIBAND_CXGB4=m
-CONFIG_NF_CONNTRACK_SNMP=m
-CONFIG_LOCKUP_DETECTOR=y
-# CONFIG_ISCSI_BOOT_SYSFS is not set
-# CONFIG_SCSI_CXGB4_ISCSI is not set
-CONFIG_BNA=m
-CONFIG_MEMSTICK_R592=m
-CONFIG_RC_CORE=m
-CONFIG_RC_MAP=m
-CONFIG_IR_NEC_DECODER=m
-CONFIG_IR_RC5_DECODER=m
-CONFIG_IR_RC6_DECODER=m
-CONFIG_IR_JVC_DECODER=m
-CONFIG_IR_SONY_DECODER=m
-CONFIG_IR_RC5_SZ_DECODER=m
-CONFIG_IR_LIRC_CODEC=m
-CONFIG_IR_ENE=m
-CONFIG_IR_IMON=m
-CONFIG_IR_MCEUSB=m
-CONFIG_IR_NUVOTON=m
-CONFIG_IR_STREAMZAP=m
-CONFIG_IR_WINBOND_CIR=m
-# CONFIG_RC_LOOPBACK is not set
-CONFIG_VIDEO_SAA7134_RC=y
-CONFIG_VIDEO_CX18_ALSA=m
-CONFIG_USB_GSPCA_BENQ=m
-CONFIG_USB_GSPCA_CPIA1=m
-CONFIG_USB_GSPCA_KONICA=m
-CONFIG_USB_GSPCA_OV534_9=m
-CONFIG_USB_GSPCA_PAC7302=m
-CONFIG_USB_GSPCA_SN9C2028=m
-CONFIG_USB_GSPCA_SPCA1528=m
-CONFIG_USB_GSPCA_SQ930X=m
-CONFIG_USB_GSPCA_STV0680=m
-CONFIG_USB_GSPCA_XIRLINK_CIT=m
-CONFIG_VIDEO_TLG2300=m
-CONFIG_VIDEO_CX231XX_RC=y
-CONFIG_DVB_USB_EC168=m
-CONFIG_DVB_USB_AZ6027=m
-CONFIG_DVB_USB_LME2510=m
-CONFIG_DVB_FIREDTV=m
-CONFIG_DVB_NGENE=m
-CONFIG_SCSI_BNX2X_FCOE=m
-CONFIG_SCSI_ISCI=m
-CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
-CONFIG_PCH_GBE=m
-# CONFIG_BLK_DEV_RSXX is not set
-# CONFIG_HARDLOCKUP_DETECTOR is not set
-# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set
-# CONFIG_BLK_DEV_IDESCSI is not set
-# CONFIG_IDEDMA_AUTO is not set
-# CONFIG_IDEDMA_PCI_AUTO is not set
-# CONFIG_IDE_GENERIC is not set
-# CONFIG_BLK_DEV_HD_ONLY is not set
-# CONFIG_IDE_PROC_FS is not set
-# CONFIG_NET_DIVERT is not set
-# CONFIG_TUX_EXTCGI is not set
-# CONFIG_TUX_EXTENDED_LOG is not set
-# CONFIG_TUX is not set
-# CONFIG_MADGEMC is not set
-# CONFIG_SND_OPL3_LIB is not set
-# CONFIG_SLAB_LEAK is not set
-# CONFIG_KMEMCHECK is not set
-# CONFIG_HOSTESS_SV11 is not set
-# CONFIG_COSA is not set
-# CONFIG_LANMEDIA is not set
-# CONFIG_SEALEVEL_4021 is not set
-# CONFIG_HDLC_RAW_ETH is not set
-# CONFIG_PCI200SYN is not set
-# CONFIG_WANXL is not set
-# CONFIG_PC300TOO is not set
-# CONFIG_N2 is not set
-# CONFIG_C101 is not set
-# CONFIG_FARSYNC is not set
-# CONFIG_DSCC4 is not set
-# CONFIG_SDLA is not set
-# CONFIG_WAN_ROUTER_DRIVERS is not set
-# CONFIG_SBNI is not set
-# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set
-# CONFIG_PREEMPT_TRACER is not set
-# CONFIG_MODULE_SIG_FORCE is not set
-# CONFIG_SLOW_WORK_DEBUG is not set
-# CONFIG_ACPI_HOTPLUG_MEMORY_AUTO_ONLINE is not set
-# CONFIG_DEBUG_SLAB is not set
-# CONFIG_QUOTA_DEBUG is not set
-# CONFIG_DEBUG_BLK_CGROUP is not set
-# CONFIG_MTD_BLKDEVS is not set
-# CONFIG_MAC80211_MESSAGE_TRACING is not set
-# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
-# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1 is not set
-CONFIG_SCTP_COOKIE_HMAC_SHA1=y
-# CONFIG_SCTP_COOKIE_HMAC_MD5 is not set
-# CONFIG_VIDEO_V4L1 is not set
-# CONFIG_X86_DECODER_SELFTEST is not set
-# CONFIG_INFINIBAND_QIB is not set
-# CONFIG_NFS_USE_NEW_IDMAPPER is not set
-# CONFIG_IWLWIFI_DEVICE_TRACING is not set
-# CONFIG_IWLWIFI_DEBUG_EXPERIMENTAL_UCODE is not set
-# CONFIG_CIFS_FSCACHE is not set
-CONFIG_VGA_SWITCHEROO=y
-# CONFIG_ACERHDF is not set
-# CONFIG_CIFS_NFSD_EXPORT is not set
-CONFIG_ATH_CARDS=m
-CONFIG_ATH5K_PCI=y
-# CONFIG_ATH5K_TRACER is not set
-# CONFIG_ATH9K_AHB is not set
-CONFIG_ATH9K_COMMON=m
-# CONFIG_ATH9K_DEBUGFS is not set
-CONFIG_ATH9K_HTC=m
-CONFIG_ATH9K_BTCOEX_SUPPORT=y
-CONFIG_ATH9K_HW=m
-CONFIG_ATH9K_PCI=y
-# CONFIG_ATH9K_LEGACY_RATE_CONTROL is not set
-# CONFIG_ATH_DEBUG is not set
-CONFIG_CARL9170=m
-CONFIG_CARL9170_LEDS=y
-CONFIG_CARL9170_WPC=y
-# CONFIG_CARL9170_HWRNG is not set
-CONFIG_AVERAGE=y
-CONFIG_CORDIC=m
-# CONFIG_B43_HWRNG is not set
-CONFIG_B43_LEDS=y
-# CONFIG_B43LEGACY_HWRNG is not set
-CONFIG_B43LEGACY_LEDS=y
-CONFIG_B43LEGACY_PCI_AUTOSELECT=y
-CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
-CONFIG_B43_PCI_AUTOSELECT=y
-CONFIG_B43_PCICORE_AUTOSELECT=y
-CONFIG_B43_BCMA=y
-# CONFIG_B43_BCMA_EXTRA is not set
-# CONFIG_B43_PHY_HT is not set
-# CONFIG_B43_PHY_N is not set
-CONFIG_B43_PIO=y
-CONFIG_B43_SSB=y
-CONFIG_B43_BCMA_PIO=y
-# CONFIG_CFG80211_INTERNAL_REGDB is not set
-CONFIG_IWLDVM=m
-CONFIG_IWLMVM=m
-# CONFIG_IWLWIFI_DEVICE_SVTOOL is not set
-# CONFIG_IWM_TRACING is not set
-# CONFIG_IWLWIFI_P2P is not set
-# CONFIG_IWLWIFI_EXPERIMENTAL_MFP is not set
-CONFIG_MAC80211_HAS_RC=y
-CONFIG_MAC80211_RC_MINSTREL_HT=y
-CONFIG_RFKILL_LEDS=y
-CONFIG_RT2800PCI=m
-CONFIG_RT2800PCI_RT33XX=y
-CONFIG_RT2800PCI_RT35XX=y
-CONFIG_RT2800PCI_RT53XX=y
-CONFIG_RT2800PCI_RT3290=y
-CONFIG_RT2800USB_RT33XX=y
-CONFIG_RT2800USB_RT35XX=y
-CONFIG_RT2800USB_RT53XX=y
-CONFIG_RT2800USB_RT55XX=y
-CONFIG_RT2800USB_UNKNOWN=y
-CONFIG_RT2800_LIB=m
-CONFIG_RT2X00_LIB_CRYPTO=y
-CONFIG_RT2X00_LIB_FIRMWARE=y
-CONFIG_RT2X00_LIB_LEDS=y
-CONFIG_RT2X00_LIB=m
-CONFIG_RT2X00_LIB_MMIO=m
-CONFIG_RT2X00_LIB_PCI=m
-CONFIG_RT2X00_LIB_USB=m
-CONFIG_CFG80211_WEXT=y
+# CONFIG_VZ89X is not set
+# CONFIG_W1 is not set
+CONFIG_W83627HF_WDT=m
+CONFIG_W83877F_WDT=m
+CONFIG_W83977F_WDT=m
+# CONFIG_WAFER_WDT is not set
+# CONFIG_WAN is not set
+CONFIG_WANT_DEV_COREDUMP=y
+# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
+CONFIG_WATCHDOG_CORE=y
+CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+CONFIG_WATCHDOG_OPEN_TIMEOUT=0
+# CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set
+CONFIG_WATCHDOG_SYSFS=y
+CONFIG_WATCHDOG=y
+CONFIG_WATCH_QUEUE=y
+# CONFIG_WCN36XX_DEBUGFS is not set
+CONFIG_WCN36XX=m
+CONFIG_WDAT_WDT=m
+CONFIG_WDTPCI=m
CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PRIV=y
CONFIG_WEXT_PROC=y
CONFIG_WEXT_SPY=y
-CONFIG_WEXT_PRIV=y
-CONFIG_WL_TI=y
-CONFIG_WLCORE=m
-# CONFIG_WLCORE_SDIO is not set
+# CONFIG_WFX is not set
+CONFIG_WIL6210_DEBUGFS=y
+CONFIG_WIL6210_ISR_COR=y
+CONFIG_WIL6210=m
+# CONFIG_WIL6210_TRACING is not set
+# CONFIG_WILC1000_SDIO is not set
+# CONFIG_WILC1000_SPI is not set
CONFIG_WILINK_PLATFORM_DATA=y
-# CONFIG_TEST_KSTRTOX is not set
-# CONFIG_I2C_ISMT is not set
-CONFIG_BCMA_POSSIBLE=y
-CONFIG_BCMA=m
-CONFIG_BCMA_BLOCKIO=y
-CONFIG_BCMA_HOST_PCI_POSSIBLE=y
-CONFIG_BCMA_HOST_PCI=y
-# CONFIG_BCMA_DEBUG is not set
-CONFIG_BCMA_DRIVER_GMAC_CMN=y
-# CONFIG_BRCM_TRACING is not set
-CONFIG_BCMA_DRIVER_GPIO=y
-CONFIG_HERMES_PRISM=y
-# CONFIG_ORINOCO_USB is not set
-CONFIG_BRCMUTIL=m
-CONFIG_BRCMSMAC=m
-# CONFIG_BRCMDBG is not set
-# CONFIG_LPC_SCH is not set
-# CONFIG_LPC_ICH is not set
-# CONFIG_IE6XX_WDT is not set
-CONFIG_WATCHDOG_CORE=y
-CONFIG_PTP_1588_CLOCK=m
-CONFIG_SFC_MCDI_MON=y
-CONFIG_SFC_SRIOV=y
-CONFIG_MLX4_EN_DCB=y
-CONFIG_USB_SIERRA_NET=m
-CONFIG_USB_NET_CDC_NCM=m
-CONFIG_BNX2X_SRIOV=y
-# CONFIG_INFINIBAND_OCRDMA is not set
-CONFIG_DRM_RADEON_UMS=y
-CONFIG_NOUVEAU_DEBUG=5
-CONFIG_NOUVEAU_DEBUG_DEFAULT=3
-CONFIG_NVME_CORE=m
-CONFIG_BLK_DEV_NVME=m
-CONFIG_BLK_DEV_NVME_SCSI=y
-CONFIG_NVM=y
-CONFIG_NVM_RRPC=m
-
-# Enable all network vendors:
-CONFIG_NET_VENDOR_3COM=y
-CONFIG_NET_VENDOR_8390=y
-CONFIG_NET_VENDOR_ADAPTEC=y
-CONFIG_NET_VENDOR_AGERE=y
-CONFIG_NET_VENDOR_ALACRITECH=y
-CONFIG_NET_VENDOR_ALLWINNER=y
-CONFIG_NET_VENDOR_ALTEON=y
-CONFIG_NET_VENDOR_AMAZON=y
-CONFIG_NET_VENDOR_AMD=y
-CONFIG_NET_VENDOR_APPLE=y
-CONFIG_NET_VENDOR_AQUANTIA=y
-CONFIG_NET_VENDOR_ARC=y
-CONFIG_NET_VENDOR_ATHEROS=y
-CONFIG_NET_VENDOR_AURORA=y
-CONFIG_NET_VENDOR_BROADCOM=y
-CONFIG_NET_VENDOR_BROCADE=y
-CONFIG_NET_VENDOR_CAVIUM=y
-CONFIG_NET_VENDOR_CHELSIO=y
-CONFIG_NET_VENDOR_CIRRUS=y
-CONFIG_NET_VENDOR_CISCO=y
-CONFIG_NET_VENDOR_DEC=y
-CONFIG_NET_VENDOR_DLINK=y
-CONFIG_NET_VENDOR_EMULEX=y
-CONFIG_NET_VENDOR_EZCHIP=y
-CONFIG_NET_VENDOR_FARADAY=y
-CONFIG_NET_VENDOR_FREESCALE=y
-CONFIG_NET_VENDOR_FUJITSU=y
-CONFIG_NET_VENDOR_HISILICON=y
-CONFIG_NET_VENDOR_HP=y
-CONFIG_NET_VENDOR_I825XX=y
-CONFIG_NET_VENDOR_IBM=y
-CONFIG_NET_VENDOR_INTEL=y
-CONFIG_NET_VENDOR_MARVELL=y
-CONFIG_NET_VENDOR_MEDIATEK=y
-CONFIG_NET_VENDOR_MELLANOX=y
-CONFIG_NET_VENDOR_MICREL=y
-CONFIG_NET_VENDOR_MICROCHIP=y
-CONFIG_NET_VENDOR_MOXART=y
-CONFIG_NET_VENDOR_MYRI=y
-CONFIG_NET_VENDOR_NATSEMI=y
-CONFIG_NET_VENDOR_EXAR=y
-CONFIG_NET_VENDOR_NETRONOME=y
-CONFIG_NET_VENDOR_NUVOTON=y
-CONFIG_NET_VENDOR_NVIDIA=y
-CONFIG_NET_VENDOR_OKI=y
-CONFIG_NET_VENDOR_PASEMI=y
-CONFIG_NET_VENDOR_QLOGIC=y
-CONFIG_NET_VENDOR_QUALCOMM=y
-CONFIG_NET_VENDOR_RDC=y
-CONFIG_NET_VENDOR_REALTEK=y
-CONFIG_NET_VENDOR_RENESAS=y
-CONFIG_NET_VENDOR_ROCKER=y
-CONFIG_NET_VENDOR_SAMSUNG=y
-CONFIG_NET_VENDOR_SEEQ=y
-CONFIG_NET_VENDOR_SOLARFLARE=y
-CONFIG_NET_VENDOR_SGI=y
-CONFIG_NET_VENDOR_SILAN=y
-CONFIG_NET_VENDOR_SIS=y
-CONFIG_NET_VENDOR_SMSC=y
-CONFIG_NET_VENDOR_STMICRO=y
-CONFIG_NET_VENDOR_SUN=y
-CONFIG_NET_VENDOR_SYNOPSYS=y
-CONFIG_NET_VENDOR_TEHUTI=y
-CONFIG_NET_VENDOR_TI=y
-CONFIG_NET_VENDOR_TOSHIBA=y
-CONFIG_NET_VENDOR_TUNDRA=y
-CONFIG_NET_VENDOR_VIA=y
-CONFIG_NET_VENDOR_WIZNET=y
-CONFIG_NET_VENDOR_XILINX=y
-CONFIG_NET_VENDOR_XIRCOM=y
-CONFIG_NET_VENDOR_XSCALE=y
+# CONFIG_WIMAX is not set
+CONFIG_WINBOND_840=m
+# CONFIG_WIREGUARD_DEBUG is not set
+CONFIG_WIREGUARD=m
+CONFIG_WIRELESS_EXT=y
+CONFIG_WIRELESS=y
+CONFIG_WIZNET_BUS_ANY=y
+# CONFIG_WIZNET_BUS_DIRECT is not set
+# CONFIG_WIZNET_BUS_INDIRECT is not set
+CONFIG_WIZNET_W5100=m
+CONFIG_WIZNET_W5100_SPI=m
+CONFIG_WIZNET_W5300=m
+CONFIG_WL1251=m
+CONFIG_WL1251_SDIO=m
+CONFIG_WL1251_SPI=m
+CONFIG_WL12XX=m
+CONFIG_WL18XX=m
+# CONFIG_WLAN_VENDOR_ADMTEK is not set
+CONFIG_WLAN_VENDOR_ATH=y
+# CONFIG_WLAN_VENDOR_ATMEL is not set
+CONFIG_WLAN_VENDOR_BROADCOM=y
+# CONFIG_WLAN_VENDOR_CISCO is not set
+CONFIG_WLAN_VENDOR_INTEL=y
+CONFIG_WLAN_VENDOR_INTERSIL=y
+CONFIG_WLAN_VENDOR_MARVELL=y
+CONFIG_WLAN_VENDOR_MEDIATEK=y
+CONFIG_WLAN_VENDOR_MICROCHIP=y
+CONFIG_WLAN_VENDOR_QUANTENNA=y
+CONFIG_WLAN_VENDOR_RALINK=y
+CONFIG_WLAN_VENDOR_REALTEK=y
+CONFIG_WLAN_VENDOR_RSI=y
+CONFIG_WLAN_VENDOR_ST=y
+CONFIG_WLAN_VENDOR_TI=y
+CONFIG_WLAN_VENDOR_ZYDAS=y
+CONFIG_WLAN=y
+CONFIG_WLCORE=m
+CONFIG_WLCORE_SDIO=m
+CONFIG_WMI_BMOF=m
+# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
+# CONFIG_WQ_WATCHDOG is not set
+# CONFIG_WW_MUTEX_SELFTEST is not set
+# CONFIG_X25 is not set
+CONFIG_X509_CERTIFICATE_PARSER=y
+CONFIG_X86_16BIT=y
+CONFIG_X86_ACPI_CPUFREQ_CPB=y
+CONFIG_X86_ACPI_CPUFREQ=m
+CONFIG_X86_AMD_FREQ_SENSITIVITY=m
+CONFIG_X86_AMD_PLATFORM_DEVICE=y
+# CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set
+CONFIG_X86_CHECK_BIOS_CORRUPTION=y
+CONFIG_X86_CMOV=y
+CONFIG_X86_CMPXCHG64=y
+CONFIG_X86_CPA_STATISTICS=y
+CONFIG_X86_CPUID=m
+CONFIG_X86_CPU_RESCTRL=y
+CONFIG_X86_DEBUGCTLMSR=y
+# CONFIG_X86_DEBUG_FPU is not set
+CONFIG_X86_DECODER_SELFTEST=y
+CONFIG_X86_EXTENDED_PLATFORM=y
+CONFIG_X86_FEATURE_NAMES=y
+# CONFIG_X86_GOLDFISH is not set
+CONFIG_X86_INTEL_LPSS=y
+# CONFIG_X86_INTEL_MID is not set
+CONFIG_X86_INTEL_PSTATE=y
+# CONFIG_X86_INTEL_TSX_MODE_AUTO is not set
+CONFIG_X86_INTEL_TSX_MODE_OFF=y
+# CONFIG_X86_INTEL_TSX_MODE_ON is not set
+CONFIG_X86_INTEL_UMIP=y
+CONFIG_X86_INTERNODE_CACHE_SHIFT=6
+CONFIG_X86_IO_APIC=y
+CONFIG_X86_IOPL_IOPERM=y
+CONFIG_X86_L1_CACHE_SHIFT=6
+CONFIG_X86_LOCAL_APIC=y
+CONFIG_X86_MCE_AMD=y
+CONFIG_X86_MCE_INJECT=m
+CONFIG_X86_MCE_INTEL=y
+CONFIG_X86_MCELOG_LEGACY=y
+CONFIG_X86_MCE_THRESHOLD=y
+CONFIG_X86_MCE=y
+CONFIG_X86_MPPARSE=y
+CONFIG_X86_MSR=m
+CONFIG_X86_NEED_RELOCS=y
+CONFIG_X86_P4_CLOCKMOD=m
+CONFIG_X86_PAT=y
+CONFIG_X86_PCC_CPUFREQ=m
+CONFIG_X86_PKG_TEMP_THERMAL=m
+CONFIG_X86_PLATFORM_DEVICES=y
+CONFIG_X86_PM_TIMER=y
+CONFIG_X86_POWERNOW_K8=m
+CONFIG_X86_PTDUMP_CORE=y
+# CONFIG_X86_PTDUMP is not set
+CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
+CONFIG_X86_RESERVE_LOW=64
+CONFIG_X86_SGX=y
+CONFIG_X86_SMAP=y
+# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
+CONFIG_X86_SPEEDSTEP_LIB=m
+# CONFIG_X86_SYSFB is not set
+CONFIG_X86_THERMAL_VECTOR=y
+CONFIG_X86_TSC=y
+CONFIG_X86_UMIP=y
+# CONFIG_X86_VERBOSE_BOOTUP is not set
+CONFIG_X86_VMX_FEATURE_NAMES=y
+CONFIG_X86=y
+CONFIG_XARRAY_MULTI=y
+CONFIG_XDP_SOCKETS_DIAG=m
+CONFIG_XDP_SOCKETS=y
+CONFIG_XEN_FRONT_PGDIR_SHBUF=m
+CONFIG_XEN_PVHVM_GUEST=y
+CONFIG_XEN_UNPOPULATED_ALLOC=y
+CONFIG_XFRM_AH=m
+CONFIG_XFRM_ALGO=y
+CONFIG_XFRM_ESP=m
+CONFIG_XFRM_INTERFACE=m
+CONFIG_XFRM_IPCOMP=m
+CONFIG_XFRM_MIGRATE=y
+CONFIG_XFRM_OFFLOAD=y
+CONFIG_XFRM_STATISTICS=y
+CONFIG_XFRM_SUB_POLICY=y
+# CONFIG_XFRM_USER_COMPAT is not set
+CONFIG_XFRM_USER=y
+CONFIG_XFRM=y
+# CONFIG_XFS_DEBUG is not set
+CONFIG_XFS_FS=m
+# CONFIG_XFS_ONLINE_REPAIR is not set
+CONFIG_XFS_ONLINE_SCRUB=y
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_RT=y
+CONFIG_XFS_SUPPORT_V4=y
+# CONFIG_XFS_WARN is not set
+# CONFIG_XIAOMI_WMI is not set
+# CONFIG_XILINX_AXI_EMAC is not set
+CONFIG_XILINX_GMII2RGMII=m
+CONFIG_XILINX_LL_TEMAC=m
+CONFIG_XILINX_PR_DECOUPLER=m
+# CONFIG_XILINX_SDFEC is not set
+CONFIG_XILINX_VCU=m
+# CONFIG_XILINX_WATCHDOG is not set
+# CONFIG_XILINX_XADC is not set
+# CONFIG_XILINX_ZYNQMP_DPDMA is not set
+CONFIG_XILLYBUS=m
+CONFIG_XILLYBUS_PCIE=m
+CONFIG_XOR_BLOCKS=m
+CONFIG_XPS=y
+CONFIG_XXHASH=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_BCJ=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_SPARC=y
+# CONFIG_XZ_DEC_TEST is not set
+CONFIG_XZ_DEC_X86=y
+CONFIG_XZ_DEC=y
+CONFIG_YAM=m
+CONFIG_YELLOWFIN=m
+CONFIG_YENTA_ENE_TUNE=y
+CONFIG_YENTA=m
+CONFIG_YENTA_O2=y
+CONFIG_YENTA_RICOH=y
+CONFIG_YENTA_TI=y
+CONFIG_YENTA_TOSHIBA=y
+CONFIG_Z3FOLD=y
+CONFIG_ZBUD=y
+# CONFIG_ZD1211RW_DEBUG is not set
+CONFIG_ZD1211RW=m
+CONFIG_ZEROPLUS_FF=y
+# CONFIG_ZIIRAVE_WATCHDOG is not set
+CONFIG_ZISOFS=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZONE_DMA=y
+CONFIG_ZONEFS_FS=m
+CONFIG_ZOPT2201=m
+# CONFIG_ZPA2326 is not set
+CONFIG_ZPOOL=y
+# CONFIG_ZRAM_DEF_COMP_842 is not set
+# CONFIG_ZRAM_DEF_COMP_LZ4HC is not set
+# CONFIG_ZRAM_DEF_COMP_LZ4 is not set
+# CONFIG_ZRAM_DEF_COMP_LZO is not set
+CONFIG_ZRAM_DEF_COMP="lzo-rle"
+CONFIG_ZRAM_DEF_COMP_LZORLE=y
+# CONFIG_ZRAM_DEF_COMP_ZSTD is not set
+CONFIG_ZRAM=m
+CONFIG_ZRAM_MEMORY_TRACKING=y
+CONFIG_ZRAM_WRITEBACK=y
+# CONFIG_ZSMALLOC_STAT is not set
+CONFIG_ZSMALLOC=y
+CONFIG_ZSTD_COMPRESS=y
+CONFIG_ZSTD_DECOMPRESS=y
+# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set
+# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set
+# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set
+# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 is not set
+CONFIG_ZSWAP_COMPRESSOR_DEFAULT="lzo"
+CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO=y
+# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD is not set
+# CONFIG_ZSWAP_DEFAULT_ON is not set
+CONFIG_ZSWAP=y
+# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD is not set
+CONFIG_ZSWAP_ZPOOL_DEFAULT="zbud"
+CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y
+# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC is not set
+# CONFIG_ZX_TDM is not set
diff --git a/defaults/keymaps/10.map b/defaults/keymaps/10.map
index 9f72389..0da9af3 120000
--- a/defaults/keymaps/10.map
+++ b/defaults/keymaps/10.map
@@ -1 +1 @@
-de.map \ No newline at end of file
+croat.map \ No newline at end of file
diff --git a/defaults/keymaps/11.map b/defaults/keymaps/11.map
index bceb1bd..cc77cf9 120000
--- a/defaults/keymaps/11.map
+++ b/defaults/keymaps/11.map
@@ -1 +1 @@
-dk.map \ No newline at end of file
+cz.map \ No newline at end of file
diff --git a/defaults/keymaps/12.map b/defaults/keymaps/12.map
index 451cc56..9f72389 120000
--- a/defaults/keymaps/12.map
+++ b/defaults/keymaps/12.map
@@ -1 +1 @@
-dvorak.map \ No newline at end of file
+de.map \ No newline at end of file
diff --git a/defaults/keymaps/13.map b/defaults/keymaps/13.map
index 168fab9..bceb1bd 120000
--- a/defaults/keymaps/13.map
+++ b/defaults/keymaps/13.map
@@ -1 +1 @@
-es.map \ No newline at end of file
+dk.map \ No newline at end of file
diff --git a/defaults/keymaps/14.map b/defaults/keymaps/14.map
index 3d123bb..451cc56 120000
--- a/defaults/keymaps/14.map
+++ b/defaults/keymaps/14.map
@@ -1 +1 @@
-et.map \ No newline at end of file
+dvorak.map \ No newline at end of file
diff --git a/defaults/keymaps/15.map b/defaults/keymaps/15.map
index 066af66..168fab9 120000
--- a/defaults/keymaps/15.map
+++ b/defaults/keymaps/15.map
@@ -1 +1 @@
-fi.map \ No newline at end of file
+es.map \ No newline at end of file
diff --git a/defaults/keymaps/16.map b/defaults/keymaps/16.map
index 80c93fe..3d123bb 120000
--- a/defaults/keymaps/16.map
+++ b/defaults/keymaps/16.map
@@ -1 +1 @@
-fr.map \ No newline at end of file
+et.map \ No newline at end of file
diff --git a/defaults/keymaps/17.map b/defaults/keymaps/17.map
index 8a051ab..066af66 120000
--- a/defaults/keymaps/17.map
+++ b/defaults/keymaps/17.map
@@ -1 +1 @@
-gr.map \ No newline at end of file
+fi.map \ No newline at end of file
diff --git a/defaults/keymaps/18.map b/defaults/keymaps/18.map
index 9474d62..80c93fe 120000
--- a/defaults/keymaps/18.map
+++ b/defaults/keymaps/18.map
@@ -1 +1 @@
-hu.map \ No newline at end of file
+fr.map \ No newline at end of file
diff --git a/defaults/keymaps/19.map b/defaults/keymaps/19.map
index d590003..8a051ab 120000
--- a/defaults/keymaps/19.map
+++ b/defaults/keymaps/19.map
@@ -1 +1 @@
-il.map \ No newline at end of file
+gr.map \ No newline at end of file
diff --git a/defaults/keymaps/20.map b/defaults/keymaps/20.map
index 7727bac..9474d62 120000
--- a/defaults/keymaps/20.map
+++ b/defaults/keymaps/20.map
@@ -1 +1 @@
-is.map \ No newline at end of file
+hu.map \ No newline at end of file
diff --git a/defaults/keymaps/21.map b/defaults/keymaps/21.map
index d678e48..d590003 120000
--- a/defaults/keymaps/21.map
+++ b/defaults/keymaps/21.map
@@ -1 +1 @@
-it.map \ No newline at end of file
+il.map \ No newline at end of file
diff --git a/defaults/keymaps/22.map b/defaults/keymaps/22.map
index 60e7d65..7727bac 120000
--- a/defaults/keymaps/22.map
+++ b/defaults/keymaps/22.map
@@ -1 +1 @@
-jp.map \ No newline at end of file
+is.map \ No newline at end of file
diff --git a/defaults/keymaps/23.map b/defaults/keymaps/23.map
index d1a9079..d678e48 120000
--- a/defaults/keymaps/23.map
+++ b/defaults/keymaps/23.map
@@ -1 +1 @@
-la.map \ No newline at end of file
+it.map \ No newline at end of file
diff --git a/defaults/keymaps/24.map b/defaults/keymaps/24.map
index fbb0b72..60e7d65 120000
--- a/defaults/keymaps/24.map
+++ b/defaults/keymaps/24.map
@@ -1 +1 @@
-lt.map \ No newline at end of file
+jp.map \ No newline at end of file
diff --git a/defaults/keymaps/25.map b/defaults/keymaps/25.map
index f2533fb..d1a9079 120000
--- a/defaults/keymaps/25.map
+++ b/defaults/keymaps/25.map
@@ -1 +1 @@
-mk.map \ No newline at end of file
+la.map \ No newline at end of file
diff --git a/defaults/keymaps/26.map b/defaults/keymaps/26.map
index 2761f4d..fbb0b72 120000
--- a/defaults/keymaps/26.map
+++ b/defaults/keymaps/26.map
@@ -1 +1 @@
-nl.map \ No newline at end of file
+lt.map \ No newline at end of file
diff --git a/defaults/keymaps/27.map b/defaults/keymaps/27.map
index b035af9..f2533fb 120000
--- a/defaults/keymaps/27.map
+++ b/defaults/keymaps/27.map
@@ -1 +1 @@
-no.map \ No newline at end of file
+mk.map \ No newline at end of file
diff --git a/defaults/keymaps/28.map b/defaults/keymaps/28.map
index fbd6e21..2761f4d 120000
--- a/defaults/keymaps/28.map
+++ b/defaults/keymaps/28.map
@@ -1 +1 @@
-pl.map \ No newline at end of file
+nl.map \ No newline at end of file
diff --git a/defaults/keymaps/29.map b/defaults/keymaps/29.map
index 7978523..b035af9 120000
--- a/defaults/keymaps/29.map
+++ b/defaults/keymaps/29.map
@@ -1 +1 @@
-pt.map \ No newline at end of file
+no.map \ No newline at end of file
diff --git a/defaults/keymaps/3.map b/defaults/keymaps/3.map
index 63107de..b9efb65 120000
--- a/defaults/keymaps/3.map
+++ b/defaults/keymaps/3.map
@@ -1 +1 @@
-bg.map \ No newline at end of file
+bepo.map \ No newline at end of file
diff --git a/defaults/keymaps/30.map b/defaults/keymaps/30.map
index a51e4db..fbd6e21 120000
--- a/defaults/keymaps/30.map
+++ b/defaults/keymaps/30.map
@@ -1 +1 @@
-ro.map \ No newline at end of file
+pl.map \ No newline at end of file
diff --git a/defaults/keymaps/31.map b/defaults/keymaps/31.map
index c23004d..7978523 120000
--- a/defaults/keymaps/31.map
+++ b/defaults/keymaps/31.map
@@ -1 +1 @@
-ru.map \ No newline at end of file
+pt.map \ No newline at end of file
diff --git a/defaults/keymaps/32.map b/defaults/keymaps/32.map
index 7b5cb3f..a51e4db 120000
--- a/defaults/keymaps/32.map
+++ b/defaults/keymaps/32.map
@@ -1 +1 @@
-se.map \ No newline at end of file
+ro.map \ No newline at end of file
diff --git a/defaults/keymaps/33.map b/defaults/keymaps/33.map
index b510287..c23004d 120000
--- a/defaults/keymaps/33.map
+++ b/defaults/keymaps/33.map
@@ -1 +1 @@
-sg.map \ No newline at end of file
+ru.map \ No newline at end of file
diff --git a/defaults/keymaps/34.map b/defaults/keymaps/34.map
index f6cb818..7b5cb3f 120000
--- a/defaults/keymaps/34.map
+++ b/defaults/keymaps/34.map
@@ -1 +1 @@
-sk-y.map \ No newline at end of file
+se.map \ No newline at end of file
diff --git a/defaults/keymaps/35.map b/defaults/keymaps/35.map
index d2429bb..a0cb60e 120000
--- a/defaults/keymaps/35.map
+++ b/defaults/keymaps/35.map
@@ -1 +1 @@
-sk-z.map \ No newline at end of file
+sf.map \ No newline at end of file
diff --git a/defaults/keymaps/36.map b/defaults/keymaps/36.map
index e8d5b5f..b510287 120000
--- a/defaults/keymaps/36.map
+++ b/defaults/keymaps/36.map
@@ -1 +1 @@
-slovene.map \ No newline at end of file
+sg.map \ No newline at end of file
diff --git a/defaults/keymaps/37.map b/defaults/keymaps/37.map
index e76e565..f6cb818 120000
--- a/defaults/keymaps/37.map
+++ b/defaults/keymaps/37.map
@@ -1 +1 @@
-trf.map \ No newline at end of file
+sk-y.map \ No newline at end of file
diff --git a/defaults/keymaps/38.map b/defaults/keymaps/38.map
new file mode 120000
index 0000000..d2429bb
--- /dev/null
+++ b/defaults/keymaps/38.map
@@ -0,0 +1 @@
+sk-z.map \ No newline at end of file
diff --git a/defaults/keymaps/39.map b/defaults/keymaps/39.map
index 3e8aa5b..e8d5b5f 120000
--- a/defaults/keymaps/39.map
+++ b/defaults/keymaps/39.map
@@ -1 +1 @@
-ua.map \ No newline at end of file
+slovene.map \ No newline at end of file
diff --git a/defaults/keymaps/4.map b/defaults/keymaps/4.map
index 1c53a25..63107de 120000
--- a/defaults/keymaps/4.map
+++ b/defaults/keymaps/4.map
@@ -1 +1 @@
-br-a.map \ No newline at end of file
+bg.map \ No newline at end of file
diff --git a/defaults/keymaps/40.map b/defaults/keymaps/40.map
index 0eca050..8aa41ed 120000
--- a/defaults/keymaps/40.map
+++ b/defaults/keymaps/40.map
@@ -1 +1 @@
-uk.map \ No newline at end of file
+trq.map \ No newline at end of file
diff --git a/defaults/keymaps/41.map b/defaults/keymaps/41.map
index 2a3add6..3e8aa5b 120000
--- a/defaults/keymaps/41.map
+++ b/defaults/keymaps/41.map
@@ -1 +1 @@
-us.map \ No newline at end of file
+ua.map \ No newline at end of file
diff --git a/defaults/keymaps/42.map b/defaults/keymaps/42.map
index c800071..0eca050 120000
--- a/defaults/keymaps/42.map
+++ b/defaults/keymaps/42.map
@@ -1 +1 @@
-wangbe.map \ No newline at end of file
+uk.map \ No newline at end of file
diff --git a/defaults/keymaps/43.map b/defaults/keymaps/43.map
index a0cb60e..2a3add6 120000
--- a/defaults/keymaps/43.map
+++ b/defaults/keymaps/43.map
@@ -1 +1 @@
-sf.map \ No newline at end of file
+us.map \ No newline at end of file
diff --git a/defaults/keymaps/44.map b/defaults/keymaps/44.map
new file mode 120000
index 0000000..c800071
--- /dev/null
+++ b/defaults/keymaps/44.map
@@ -0,0 +1 @@
+wangbe.map \ No newline at end of file
diff --git a/defaults/keymaps/5.map b/defaults/keymaps/5.map
index 171e281..1c53a25 120000
--- a/defaults/keymaps/5.map
+++ b/defaults/keymaps/5.map
@@ -1 +1 @@
-br-l.map \ No newline at end of file
+br-a.map \ No newline at end of file
diff --git a/defaults/keymaps/6.map b/defaults/keymaps/6.map
index daaf368..171e281 120000
--- a/defaults/keymaps/6.map
+++ b/defaults/keymaps/6.map
@@ -1 +1 @@
-by.map \ No newline at end of file
+br-l.map \ No newline at end of file
diff --git a/defaults/keymaps/7.map b/defaults/keymaps/7.map
index d233aed..daaf368 120000
--- a/defaults/keymaps/7.map
+++ b/defaults/keymaps/7.map
@@ -1 +1 @@
-cf.map \ No newline at end of file
+by.map \ No newline at end of file
diff --git a/defaults/keymaps/8.map b/defaults/keymaps/8.map
index 0da9af3..d233aed 120000
--- a/defaults/keymaps/8.map
+++ b/defaults/keymaps/8.map
@@ -1 +1 @@
-croat.map \ No newline at end of file
+cf.map \ No newline at end of file
diff --git a/defaults/keymaps/9.map b/defaults/keymaps/9.map
index cc77cf9..cc3ef87 120000
--- a/defaults/keymaps/9.map
+++ b/defaults/keymaps/9.map
@@ -1 +1 @@
-cz.map \ No newline at end of file
+colemak.map \ No newline at end of file
diff --git a/defaults/keymaps/bepo.map b/defaults/keymaps/bepo.map
new file mode 100644
index 0000000..cf9130d
--- /dev/null
+++ b/defaults/keymaps/bepo.map
Binary files differ
diff --git a/defaults/keymaps/colemak.map b/defaults/keymaps/colemak.map
new file mode 100644
index 0000000..39e286c
--- /dev/null
+++ b/defaults/keymaps/colemak.map
Binary files differ
diff --git a/defaults/keymaps/keymapList b/defaults/keymaps/keymapList
index 4ad3721..f46ff0a 100644
--- a/defaults/keymaps/keymapList
+++ b/defaults/keymaps/keymapList
@@ -1,10 +1,10 @@
Please select a keymap from the following list by typing in the appropriate
-name or number. Hit Enter for the default "us/41" US English keymap.
+name or number. Hit Enter for the default "us/43" US English keymap.
- 1 azerty 8 croat 15 fi 22 jp 29 pt 36 slovene 43 sf
- 2 be 9 cz 16 fr 23 la 30 ro 37 trf
- 3 bg 10 de 17 gr 24 lt 31 ru 38 --
- 4 br-a 11 dk 18 hu 25 mk 32 se 39 ua
- 5 br-l 12 dvorak 19 il 26 nl 33 sg 40 uk
- 6 by 13 es 20 is 27 no 34 sk-y 41 us
- 7 cf 14 et 21 it 28 pl 35 sk-z 42 wangbe
+ 1 azerty 8 cf 15 es 22 is 29 no 36 sg 43 us
+ 2 be 9 colemak 16 et 23 it 30 pl 37 sk-y 44 wangbe
+ 3 bepo 10 croat 17 fi 24 jp 31 pt 38 sk-z
+ 4 bg 11 cz 18 fr 25 la 32 ro 39 slovene
+ 5 br-a 12 de 19 gr 26 lt 33 ru 40 trf
+ 6 br-l 13 dk 20 hu 27 mk 34 se 41 ua
+ 7 by 14 dvorak 21 il 28 nl 35 sf 42 uk
diff --git a/defaults/keymaps/no.map b/defaults/keymaps/no.map
index a5ae10e..67e335a 100644
--- a/defaults/keymaps/no.map
+++ b/defaults/keymaps/no.map
Binary files differ
diff --git a/defaults/keymaps/trf.map b/defaults/keymaps/trf.map
deleted file mode 100644
index 77908f6..0000000
--- a/defaults/keymaps/trf.map
+++ /dev/null
Binary files differ
diff --git a/defaults/keymaps/trq.map b/defaults/keymaps/trq.map
new file mode 100644
index 0000000..cc90565
--- /dev/null
+++ b/defaults/keymaps/trq.map
Binary files differ
diff --git a/defaults/linuxrc b/defaults/linuxrc
index b2c3947..34b2d87 100644
--- a/defaults/linuxrc
+++ b/defaults/linuxrc
@@ -1,16 +1,28 @@
#!/bin/sh
+# shellcheck source=initrd.defaults
. /etc/initrd.defaults
+# shellcheck source=initrd.scripts
. /etc/initrd.scripts
-splash() {
- return 0
-}
-
+# shellcheck source=/dev/null
[ -e /etc/initrd.splash ] && . /etc/initrd.splash
-# Clean input/output
-exec >${CONSOLE} <${CONSOLE} 2>&1
+# Basic /dev content, we need it as fast as possible.
+[ ! -e /dev/console ] && mknod /dev/console c 5 1
+[ ! -e /dev/null ] && mknod /dev/null c 1 3
+[ ! -e /dev/random ] && mknod /dev/random c 1 8
+[ ! -e /dev/tty ] && mknod /dev/tty c 5 0
+[ ! -e /dev/tty0 ] && mknod /dev/tty0 c 4 0
+[ ! -e /dev/tty1 ] && mknod /dev/tty1 c 4 1
+[ ! -e /dev/ttyS0 ] && mknod /dev/ttyS0 c 4 64
+[ ! -e /dev/ttyS1 ] && mknod /dev/ttyS1 c 4 65
+[ ! -e /dev/urandom ] && mknod /dev/urandom c 1 9
+[ ! -e /dev/zero ] && mknod /dev/zero c 1 5
+
+# Take control
+CONSOLE="/dev/$(get_active_console)"
+exec 0<>${CONSOLE} 1<>${CONSOLE} 2<>${CONSOLE}
if [ "$$" != '1' ]
then
@@ -22,28 +34,25 @@ fi
mount -t proc -o noexec,nosuid,nodev proc /proc >/dev/null 2>&1
mount -o remount,rw / >/dev/null 2>&1
+mount -t tmpfs -o rw,nosuid,nodev,relatime,mode=755 none /run 2>&1
-# Prevent superfluous printks from being printed to the console
-echo 1 > /proc/sys/kernel/printk
-
-# Set up symlinks
-/bin/busybox --install -s
+if [ ! -d /run/initramfs ]
+then
+ mkdir -p /run/initramfs
+ chmod 0750 /run/initramfs
+fi
-if [ "$0" = '/init' ]
+if [ ! -s /etc/ld.so.cache ]
then
- [ -e /linuxrc ] && rm /linuxrc
+ # Looks like we were unable to run ldconfig during initramfs generation
+ hash ldconfig >/dev/null 2>&1 && run ldconfig
fi
-CMDLINE=$(cat /proc/cmdline)
-# Scan CMDLINE for any specified real_root= or cdroot arguments
-FAKE_ROOT=''
-FAKE_INIT=''
-FAKE_ROOTFLAGS=''
-ROOTFSTYPE='auto'
-CRYPT_SILENT=0
-QUIET=''
+# Set up symlinks
+run busybox --install -s
-mkdir -p /etc/cmdline /etc/modprobe.d
+# Handle kernel command-line parameters
+CMDLINE=$(cat /proc/cmdline 2>/dev/null)
for x in ${CMDLINE}
do
case "${x}" in
@@ -90,10 +99,6 @@ do
dolvm)
USE_LVM_NORMAL=1
;;
- dolvm2)
- bad_msg 'Using dolvm2 is deprecated, use dolvm, instead.'
- USE_LVM_NORMAL=1
- ;;
domdadm)
USE_MDADM=1
;;
@@ -105,7 +110,6 @@ do
USE_DMRAID_NORMAL=1
;;
domultipath)
- good_msg "Booting with multipath activated."
USE_MULTIPATH_NORMAL=1
;;
dozfs*)
@@ -119,7 +123,8 @@ do
case "${x#*=}" in
*cache*)
- if [ -s "/etc/zfs/zpool.cache" ]; then
+ if [ -s "/etc/zfs/zpool.cache" ]
+ then
ZPOOL_CACHE="-c /etc/zfs/zpool.cache"
else
bad_msg "zpool.cache not found or empty, zpool import will be slow"
@@ -127,15 +132,12 @@ do
;;
esac
;;
- dobtrfs*)
- USE_BTRFS=1
- ;;
quiet|quiet_genkernel)
QUIET=1
;;
# Debug Options
debug)
- DEBUG='yes'
+ run touch "${GK_DEBUGMODE_STATEFILE}"
;;
# Scan delay options
scandelay=*)
@@ -157,23 +159,25 @@ do
doload=*)
MDOLIST=$(echo ${MDOLIST} ${x#*=} | sed -e 's/^\ *//;s/,/ /g')
;;
- nodetect)
- NODETECT=1
- ;;
noload=*)
MLIST=$(echo ${MLIST} ${x#*=} | sed -e 's/^\ *//;s/,/ /g')
export MLIST
;;
- # Redirect output to a specific tty
- CONSOLE=*|console=*)
- CONSOLE=${x#*=}
- CONSOLE=$(basename ${CONSOLE})
-# exec >${CONSOLE} <${CONSOLE} 2>&1
+ splash)
+ if [ -x /usr/bin/plymouth -a -x /usr/sbin/plymouthd ]
+ then
+ PLYMOUTH=1
+ fi
+ ;;
+ splash=*)
+ if [ -e /etc/initrd.splash ]
+ then
+ FBSPLASH=1
+ fi
;;
# /dev/md
lvmraid=*)
- RAID_DEVICES="${x#*=}"
- RAID_DEVICES="$(echo ${RAID_DEVICES} | sed -e 's/,/ /g')"
+ warn_msg "'${x}' kernel command-line argument is deprecated; Use 'dolvm' instead!"
USE_LVM_NORMAL=1
;;
part=*)
@@ -182,10 +186,8 @@ do
part|partitionable)
MDPART=1
;;
+ # For network options see start_network() in initrd.scripts
# NFS
- ip=*)
- IP=${x#*=}
- ;;
nfsroot=*)
NFSROOT=${x#*=}
;;
@@ -226,9 +228,26 @@ do
# Crypto
crypt_root=*)
CRYPT_ROOT=${x#*=}
+ USE_CRYPTSETUP=1
+ ;;
+ crypt_root_options=*)
+ CRYPT_ROOT_OPTIONS=$(echo ${CRYPT_ROOT_OPTIONS} ${x#*=} | sed -e 's/,/ /g')
;;
crypt_swap=*)
CRYPT_SWAP=${x#*=}
+ USE_CRYPTSETUP=1
+ ;;
+ crypt_swap_options=*)
+ CRYPT_SWAP_OPTIONS=$(echo ${CRYPT_SWAP_OPTIONS} ${x#*=} | sed -e 's/,/ /g')
+ ;;
+ root_header=*)
+ CRYPT_ROOT_HEADER=${x#*=}
+ ;;
+ root_headerdev=*)
+ CRYPT_ROOT_HEADERDEV=${x#*=}
+ ;;
+ root_headerdev_fstype=*)
+ CRYPT_ROOT_HEADERDEV_FSTYPE=${x#*=}
;;
root_key=*)
CRYPT_ROOT_KEY=${x#*=}
@@ -236,16 +255,44 @@ do
root_keydev=*)
CRYPT_ROOT_KEYDEV=${x#*=}
;;
+ root_keydev_fstype=*)
+ CRYPT_ROOT_KEYDEV_FSTYPE=${x#*=}
+ ;;
root_trim=*)
- CRYPT_ROOT_TRIM=${x#*=}
+ tmp_enabled=${x#*=}
+ if is_true "${tmp_enabled}"
+ then
+ CRYPT_ROOT_OPTIONS="${CRYPT_ROOT_OPTIONS} --allow-discards"
+ fi
+ unset tmp_enabled
+ ;;
+ swap_header=*)
+ CRYPT_SWAP_HEADER=${x#*=}
+ ;;
+ swap_headerdev=*)
+ CRYPT_SWAP_HEADERDEV=${x#*=}
+ ;;
+ swap_headerdev_fstype=*)
+ CRYPT_SWAP_HEADERDEV_FSTYPE=${x#*=}
;;
-
swap_key=*)
CRYPT_SWAP_KEY=${x#*=}
;;
swap_keydev=*)
CRYPT_SWAP_KEYDEV=${x#*=}
;;
+ swap_keydev_fstype=*)
+ CRYPT_SWAP_KEYDEV_FSTYPE=${x#*=}
+ ;;
+ keyctl_keydesc=*)
+ KEYCTL_KEYDESC=${x#*=}
+ ;;
+ keyctl_keytimeout=*)
+ KEYCTL_KEYTIMEOUT=${x#*=}
+ ;;
+ keyctl_keykeep)
+ KEYCTL_KEYKEEP=1
+ ;;
real_resume=*|resume=*)
REAL_RESUME=${x#*=}
;;
@@ -255,6 +302,126 @@ do
crypt_silent)
CRYPT_SILENT=1
;;
+ dosshd)
+ USE_SSH=1
+ ;;
+ gk.bootfont.disabled=*)
+ tmp_disabled=${x#*=}
+ if is_true "${tmp_disabled}"
+ then
+ GK_BOOTFONT_DISABLED=1
+ fi
+ unset tmp_disabled
+ ;;
+ gk.emergency=*)
+ tmp_action=${x#*=}
+ case "${tmp_action}" in
+ reboot)
+ GK_EMERGENCY_ACTION="reboot -f"
+ ;;
+ poweroff)
+ GK_EMERGENCY_ACTION="poweroff -f"
+ ;;
+ halt)
+ GK_EMERGENCY_ACTION="halt -f"
+ ;;
+ *)
+ warn_msg "'${x}' is an unsupported emergency action -- ignored!"
+ ;;
+ esac
+ unset tmp_action
+ ;;
+ gk.hw.load-all=*)
+ tmp_disabled=${x#*=}
+ if is_true "${tmp_disabled}"
+ then
+ GK_HW_LOAD_ALL_MODULES=1
+ fi
+ unset tmp_disabled
+ ;;
+ gk.hw.use-modules_load=*)
+ tmp_disabled=${x#*=}
+ if is_true "${tmp_disabled}"
+ then
+ GK_HW_USE_MODULES_LOAD=1
+ fi
+ unset tmp_disabled
+ ;;
+ gk.log.disabled=*)
+ tmp_disabled=${x#*=}
+ if is_true "${tmp_disabled}"
+ then
+ [ -f "${GK_INIT_LOG}" ] && rm "${GK_INIT_LOG}"
+ GK_INIT_LOG=
+ touch "${GK_INIT_LOG_DISABLED}"
+ fi
+ unset tmp_disabled
+ ;;
+ gk.sshd.port=*)
+ tmp_port=${x#*=}
+ if is_int "${tmp_port}"
+ then
+ GK_SSHD_PORT=${tmp_port}
+ else
+ warn_msg "'${x}' does not look like a valid port -- ignored!"
+ fi
+ unset tmp_port
+ ;;
+ gk.sshd.wait=*)
+ tmp_wait=${x#*=}
+ if is_int "${tmp_wait}"
+ then
+ GK_SSHD_WAIT=${tmp_wait}
+ else
+ warn_msg "'${x}' does not look like a valid time (second) value -- ignored!"
+ fi
+ unset tmp_wait
+ ;;
+ gk.udev.debug=*)
+ tmp_enabled=${x#*=}
+ if is_true "${tmp_enabled}"
+ then
+ GK_UDEV_DEBUG=1
+ fi
+ unset tmp_enabled
+ ;;
+ gk.udev.timeout=*)
+ tmp_timeout=${x#*=}
+ if is_int "${tmp_timeout}"
+ then
+ GK_UDEV_TIMEOUT=${tmp_timeout}
+ else
+ warn_msg "'${x}' does not look like a valid time (second) value -- ignored!"
+ fi
+ unset tmp_timeout
+ ;;
+ gk.userinteraction.disabled=*)
+ tmp_disabled=${x#*=}
+ if is_true "${tmp_disabled}"
+ then
+ touch "${GK_USERINTERACTION_DISABLED_STATEFILE}"
+ fi
+ unset tmp_disabled
+ ;;
+ gk.preserverun.disabled=*)
+ tmp_disabled=${x#*=}
+ if is_true "${tmp_disabled}"
+ then
+ warn_msg "gk.preserverun.disabled is set; /run will not be moved to newroot!"
+ GK_PRESERVE_RUN=0
+ fi
+ unset tmp_disabled
+ ;;
+ gk.prompt.timeout=*)
+ tmp_timeout=${x#*=}
+ if is_int "${tmp_timeout}"
+ then
+ GK_PROMPT_TIMEOUT=${tmp_timeout}
+ else
+ warn_msg "'${x}' does not look like a valid time (second) value -- ignored!"
+ fi
+ unset tmp_timeout
+ ;;
real_rootflags=*)
REAL_ROOTFLAGS=${x#*=}
;;
@@ -267,15 +434,16 @@ do
keymap=*)
keymap=${x#*=}
;;
- locale=*)
- locale=${x#*=}
- ;;
- aufs)
- aufs=1
- ;;
+ locale=*)
+ locale=${x#*=}
+ ;;
+ aufs)
+ aufs=1
+ ;;
aufs\=*)
- aufs=1
- if echo "${x#*=}" | grep , &>/dev/null; then
+ aufs=1
+ if echo "${x#*=}" | grep , &>/dev/null
+ then
aufs_dev_uid=${x#*,}
aufs_dev=${x%,*}
else
@@ -285,24 +453,25 @@ do
# Allow user to specify the modules location
aufs.modules\=*)
aufs_modules_dir=${x#*=}
- aufs_modules=1
- ;;
- overlayfs)
- overlayfs=1
- ;;
- overlayfs\=*)
- overlayfs=1
- if echo "${x#*=}" | grep , &>/dev/null; then
- overlayfs_dev_uid=${x#*,}
- overlayfs_dev=${x%,*}
- else
- overlayfs_dev=${x#*=}
- fi
- ;;
+ aufs_modules=1
+ ;;
+ overlayfs)
+ overlayfs=1
+ ;;
+ overlayfs\=*)
+ overlayfs=1
+ if echo "${x#*=}" | grep , &>/dev/null
+ then
+ overlayfs_dev_uid=${x#*,}
+ overlayfs_dev=${x%,*}
+ else
+ overlayfs_dev=${x#*=}
+ fi
+ ;;
# Allow user to specify the modules location
overlayfs.modules\=*)
overlayfs_modules_dir=${x#*=}
- overlayfs_modules=1
+ overlayfs_modules=1
;;
unionfs)
if [ ! -x /sbin/unionfs ]
@@ -322,7 +491,24 @@ do
esac
done
-quiet_kmsg
+if ! is_quiet
+then
+ # Prevent superfluous printks from being printed to the console
+ echo ${GK_CONSOLE_LOGLEVEL} > /proc/sys/kernel/printk
+fi
+
+good_msg "${GK_META_VERSION} (${GK_META_BUILD_DATE}). Linux kernel ${KV}"
+
+if [ "${GK_BOOTFONT_DISABLED}" = '0' -a -e /lib/console/font ]
+then
+ if echo "$(get_active_console)" | grep -qF ttyS
+ then
+ warn_msg "Active console is ${console}; Not loading embedded boot font ..."
+ elif hash setfont >/dev/null 2>&1
+ then
+ run setfont /lib/console/font -C ${CONSOLE} 2>&1
+ fi
+fi
if [ "${CDROOT}" = '0' ]
then
@@ -353,27 +539,35 @@ case "${REAL_ROOT}" in
esac
# Verify that it is safe to use ZFS
-if [ "$USE_ZFS" = "1" ]
+if [ "${USE_ZFS}" = '1' ]
then
- for i in /sbin/zfs /sbin/zpool
+ for i in zfs zpool
do
- if [ ! -x ${i} ]
+ if ! hash ${i} >/dev/null 2>&1
then
USE_ZFS=0
- bad_msg 'Aborting use of zfs because ${i} not found!'
+ bad_msg "Aborting use of ZFS because '${i}' not found!"
break
fi
done
+ unset i
- [ "$USE_ZFS" = "1" ] && MY_HWOPTS="${MY_HWOPTS} zfs"
+ [ "${USE_ZFS}" = '1' ] && MY_HWOPTS="${MY_HWOPTS} zfs"
fi
-# Hack for f2fs, which uses crc32 but does not depend on it (in many kernels at least):
-if [ "${ROOTFSTYPE}" = "f2fs" ]; then
+if [ "${ROOTFSTYPE}" = "f2fs" ]
+then
+ # Hack for f2fs, which uses crc32 but does not depend on it (in many kernels at least):
FIRSTMODS="${FIRSTMODS} crc32_generic"
fi
-splash 'init'
+if [ "${ROOTFSTYPE}" = "btrfs" -o -x /sbin/btrfs ]
+then
+ # We have no mechanism to trigger btrfs module loading before UDEV's btrfs builtin
+ # will run; In addition, loading btrfs via UDEV could cause problems for slow
+ # machines, see https://github.com/dracutdevs/dracut/issues/658
+ FIRSTMODS="${FIRSTMODS} btrfs"
+fi
cmdline_hwopts
@@ -383,52 +577,82 @@ mount_devfs
# Mount sysfs
mount_sysfs
-# Initialize mdev
-good_msg 'Activating mdev'
-
-# Serialize hotplug events
-touch /dev/mdev.seq
-
-# Setup hotplugging for firmware loading
-if [ -f "/proc/sys/kernel/hotplug" ];
+if [ -e /proc/sys/kernel/hotplug ]
then
- echo /sbin/mdev > /proc/sys/kernel/hotplug
+ log_msg "COMMAND: 'echo "" > /proc/sys/kernel/hotplug'"
+ echo "" > /proc/sys/kernel/hotplug
fi
# Load modules listed in MY_HWOPTS if /lib/modules exists for the running kernel
if [ -z "${DO_modules}" ]
then
- good_msg 'Skipping module load; disabled via commandline'
+ good_msg 'Skipping module load; disabled via command-line'
elif [ -d "/lib/modules/${KV}" ]
then
- good_msg 'Loading modules'
- if [ -n "$FIRSTMODS" ]; then
+ if [ -n "${FIRSTMODS}" ]
+ then
+ good_msg 'Loading first modules ...'
# try these modules first -- detected modules for root device:
modules_load firstmods ${FIRSTMODS}
fi
+
# Load appropriate kernel modules
- if [ "${NODETECT}" != '1' ]
+ if [ "${GK_HW_USE_MODULES_LOAD}" = '1' ]
then
+ good_msg 'Loading modules ...'
for modules in ${MY_HWOPTS}
do
modules_scan ${modules}
done
fi
- # Always eval doload=...
- modules_load extra_load ${MDOLIST}
+
+ if [ -n "${MDOLIST}" ]
+ then
+ good_msg 'Loading modules from command-line ...'
+ modules_load extra_load ${MDOLIST}
+ fi
else
good_msg 'Skipping module load; no modules in the ramdisk!'
fi
-# Ensure that device nodes are properly configured
-mdev -s || bad_msg "mdev -s failed"
+# Run debug shell if requested
+run_debug_shell "before starting udevd"
+
+# Initialize udev
+if [ ! -f "/etc/udev/hwdb.bin" ]
+then
+ good_msg 'Generating /etc/udev/hwdb.bin ...'
+ run udevadm hwdb --update \
+ || bad_msg 'Failed to generate /etc/udev/hwdb.bin!'
+fi
+
+good_msg 'Activating udev ...'
+
+udevd_cmd="run udevd --resolve-names=never"
+if [ "${GK_UDEV_DEBUG}" = '1' ]
+then
+ udevd_cmd="${udevd_cmd} --debug > ${GK_UDEV_LOG} 2>&1 &"
+else
+ udevd_cmd="${udevd_cmd} --daemon"
+fi
+eval "${udevd_cmd}"
+if [ $? -eq 0 ]
+then
+ run udevadm trigger --action=add
+ udevsettle
+else
+ bad_msg "udevd failed to run"
+fi
cd /
+# start splash; plymouth must start after udev
+splash 'init'
+
# Start iSCSI
-if [ -e /bin/iscsistart ]
+if hash iscsistart >/dev/null 2>&1
then
- startiscsi
+ start_iscsi
fi
# Loop file already exists on fs, assume no mount needed,
@@ -443,46 +667,59 @@ fi
# Apply scan delay if specified
sdelay
-# Setup btrfs, see bug 303529
-setup_btrfsctl
-
-# Setup md device nodes if they dont exist
-setup_md_device
-
# Scan volumes
-startVolumes
+start_volumes
setup_keymap
+if [ "${USE_SSH}" = '1' ]
+then
+ start_network
+ start_sshd
+fi
+
+keyctl_keyadd
+
# Initialize LUKS root device except for livecd's
-if [ "${CDROOT}" != 1 ]
+if [ "${CDROOT}" != '1' ]
then
- startLUKS
+ if ( [ -n "${CRYPT_SWAP_KEY}" ] && [ -z "${CRYPT_SWAP_KEYDEV}" ] ) || \
+ ( [ -n "${CRYPT_SWAP_HEADER}" ] && [ -z "${CRYPT_SWAP_HEADERDEV}" ] ) || \
+ ( [ "${REAL_ROOT}" = "${REAL_RESUME}" ] || [ "${USE_LVM_NORMAL}" = '1' ] )
+ then
+ # the swap key or header might be on the root fs so start it first in this case
+ start_LUKS_root
+ luks_root_started=1
+ start_LUKS_swap
+ else
+ # we don't need to start the root at all if we are resuming from suspend
+ start_LUKS_swap
+ fi
+
if [ "${NORESUME}" != '1' ] && [ -n "${REAL_RESUME}" ]
then
case "${REAL_RESUME}" in
- LABEL=*|UUID=*)
-
+ LABEL=*|UUID=*|PARTLABEL=*|PARTUUID=*)
RESUME_DEV=""
retval=1
- if [ ${retval} -ne 0 ]; then
- RESUME_DEV=$(findfs "${REAL_RESUME}" 2>/dev/null)
- retval=$?
- fi
+ good_msg "Determining resume device (trying ${REAL_RESUME}) ..."
- if [ ${retval} -ne 0 ]; then
- RESUME_DEV=$(busybox findfs "${REAL_RESUME}" 2>/dev/null)
+ if [ ${retval} -ne 0 ]
+ then
+ RESUME_DEV=$(findfs "${REAL_RESUME}" 2>/dev/null)
retval=$?
fi
- if [ ${retval} -ne 0 ]; then
- RESUME_DEV=$(blkid -o device -l -t "${REAL_RESUME}")
+ if [ ${retval} -ne 0 ]
+ then
+ RESUME_DEV=$(blkid -o device -l -t "${REAL_RESUME}" 2>/dev/null)
retval=$?
fi
- if [ ${retval} -eq 0 ] && [ -n "${RESUME_DEV}" ]; then
- good_msg "Detected real_resume=${RESUME_DEV}"
+ if [ ${retval} -eq 0 ] && [ -n "${RESUME_DEV}" ]
+ then
+ good_msg "Resume device detected as ${RESUME_DEV}!"
REAL_RESUME="${RESUME_DEV}"
fi
;;
@@ -490,36 +727,45 @@ then
do_resume
fi
+
+ if [ -z "${luks_root_started}" ]
+ then
+ start_LUKS_root
+ fi
fi
-mkdir -p "${NEW_ROOT}"
+run mkdir -p "${NEW_ROOT}"
CHROOT="${NEW_ROOT}"
# Run debug shell if requested
-rundebugshell "before setting up the root filesystem"
+run_debug_shell "before setting up the root filesystem"
if [ "${CDROOT}" = '1' ]
then
- # Setup the root filesystem
- bootstrapFS
-
- if [ 1 = "$aufs" ]; then
- setup_aufs
- CHROOT=$aufs_union
- elif [ 1 = "$overlayfs" ] && [ "${got_good_root}" != '1' ]; then
- bootstrapCD
+ # Setup the root filesystem
+ bootstrapFS
+
+ if [ "${aufs}" = '1' ]
+ then
+ setup_aufs
+ CHROOT=${aufs_union}
+ elif [ "${overlayfs}" = '1' ] && [ "${got_good_root}" != '1' ]
+ then
+ bootstrapCD
CHROOT=${NEW_ROOT}
fi
- if [ "${got_good_root}" != '1' ] && [ /dev/nfs != "$REAL_ROOT" ] && [ sgimips != "$LOOPTYPE" ] && [ 1 != "$aufs" ] && [ 1 != "$overlayfs" ]; then
+ if [ "${got_good_root}" != '1' ] && [ /dev/nfs != "${REAL_ROOT}" ] && [ sgimips != "${LOOPTYPE}" ] && [ 1 != "${aufs}" ] && [ 1 != "${overlayfs}" ]
+ then
bootstrapCD
fi
if [ "${REAL_ROOT}" = '' ] && [ "${got_good_root}" != '1' ]
then
- warn_msg "No bootable medium found. Waiting for new devices..."
+ warn_msg "No bootable medium found. Waiting for new devices ..."
COUNTER=0
- while [ ${COUNTER} -lt 3 ]; do
+ while [ ${COUNTER} -lt 3 ]
+ do
sleep 3
let COUNTER=${COUNTER}+1
done
@@ -530,12 +776,12 @@ then
if [ "${REAL_ROOT}" = '' ] && [ "${got_good_root}" != '1' ]
then
# Undo stuff
- umount "${NEW_ROOT}/dev" 2>/dev/null
- umount "${NEW_ROOT}/sys" 2>/dev/null
- umount /sys 2>/dev/null
+ run umount "${NEW_ROOT}/dev" 2>/dev/null
+ run umount "${NEW_ROOT}/sys" 2>/dev/null
+ run umount /sys 2>/dev/null
- umount "${NEW_ROOT}"
- rm -rf "${NEW_ROOT}/*"
+ run umount "${NEW_ROOT}"
+ run rm -rf "${NEW_ROOT}/*"
bad_msg 'Could not find CD to boot, something else needed!'
CDROOT=0
@@ -543,160 +789,185 @@ then
fi
# Determine root device
-good_msg 'Determining root device ...'
-ROOTDELAY_100MSEC=1
-[ -n "${ROOTDELAY}" ] && ROOTDELAY_100MSEC=$(($ROOTDELAY * 10))
+let ROOTDELAY_TIMEOUT=$(date +%s)+1
+ROOTDELAY_TIME_WAITED=0
+[ -n "${ROOTDELAY}" -a ${ROOTDELAY} -gt 0 ] && let ROOTDELAY_TIMEOUT=${ROOTDELAY_TIMEOUT}+${ROOTDELAY}-1
while true
do
+ good_msg_n "Determining root device (trying ${REAL_ROOT}) ..."
+
while [ "${got_good_root}" != '1' ]
do
# Start of sleep loop waiting on root
- while [ ${ROOTDELAY_100MSEC} -ge 0 -a "${got_good_root}" != '1' ] ; do
- case "${REAL_ROOT}" in
- LABEL=*|UUID=*)
-
- ROOT_DEV=""
- retval=1
-
- if [ ${retval} -ne 0 ]; then
- ROOT_DEV=$(findfs "${REAL_ROOT}" 2>/dev/null)
- retval=$?
- fi
+ while [ "${got_good_root}" != '1' -a $(date +%s) -le ${ROOTDELAY_TIMEOUT} ]
+ do
+ case "${REAL_ROOT}" in
+ LABEL=*|UUID=*|PARTLABEL=*|PARTUUID=*)
+ ROOT_DEV=""
+ retval=1
- if [ ${retval} -ne 0 ]; then
- ROOT_DEV=$(busybox findfs "${REAL_ROOT}" 2>/dev/null)
- retval=$?
- fi
+ if [ ${retval} -ne 0 ]
+ then
+ ROOT_DEV=$(findfs "${REAL_ROOT}" 2>/dev/null)
+ retval=$?
+ fi
- if [ ${retval} -ne 0 ]; then
- ROOT_DEV=$(blkid -o device -l -t "${REAL_ROOT}")
- retval=$?
- fi
+ if [ ${retval} -ne 0 ]
+ then
+ ROOT_DEV=$(blkid -o device -l -t "${REAL_ROOT}" 2>/dev/null)
+ retval=$?
+ fi
- if [ ${retval} -eq 0 ] && [ -n "${ROOT_DEV}" ]; then
- good_msg "Detected real_root=${ROOT_DEV}"
- REAL_ROOT="${ROOT_DEV}"
- else
- prompt_user "REAL_ROOT" "root block device"
- got_good_root=0
- continue
- fi
+ if [ ${retval} -eq 0 ] && [ -n "${ROOT_DEV}" ]
+ then
+ got_good_root=1
+ REAL_ROOT="${ROOT_DEV}"
+ echo
+ good_msg "Root device detected as ${REAL_ROOT}!"
+ break
+ fi
;;
- ZFS*)
- if [ "${USE_ZFS}" = '0' ]; then
- prompt_user "REAL_ROOT" "root block device"
- continue
- fi
+ ZFS*)
+ if [ "${USE_ZFS}" = '0' ]
+ then
+ bad_msg "Cannot use ZFS when started without 'dozfs' kernel command-line parameter!"
+ break
+ fi
- ROOT_DEV="${REAL_ROOT#*=}"
- if [ "${ROOT_DEV}" != 'ZFS' ]
- then
- if [ "$(zfs get type -o value -H ${ROOT_DEV})" = 'filesystem' ]
+ ROOT_DEV="${REAL_ROOT#*=}"
+ if [ "${ROOT_DEV}" != 'ZFS' ]
then
- got_good_root=1;
- REAL_ROOT=${ROOT_DEV}
- ROOTFSTYPE=zfs
+ if [ "$(get_zfs_property "${ROOT_DEV}" type)" = 'filesystem' ]
+ then
+ got_good_root=1
+ REAL_ROOT=${ROOT_DEV}
+ ROOTFSTYPE=zfs
+ echo
+ good_msg "Root device detected as ${REAL_ROOT}!"
+ break
+ else
+ bad_msg "${ROOT_DEV} is not a filesystem"
+ continue
+ fi
else
- bad_msg "${ROOT_DEV} is not a filesystem"
- prompt_user "REAL_ROOT" "root block device"
- got_good_root=0
- continue
+ BOOTFS=$(zpool list -H -o bootfs 2>/dev/null)
+ if [ "${BOOTFS}" != '-' ]
+ then
+ for i in ${BOOTFS}
+ do
+ zfs get type ${i} > /dev/null 2>&1
+ if [ $? -eq 0 ]
+ then
+ got_good_root=1
+ REAL_ROOT=${i}
+ ROOTFSTYPE=zfs
+ echo
+ good_msg "Root device detected as ${REAL_ROOT}!"
+ break
+ fi
+ done
+ fi
fi
- else
- BOOTFS=$(/sbin/zpool list -H -o bootfs)
- if [ "${BOOTFS}" != '-' ]
+ ;;
+ *)
+ ROOT_DEV=$(readlink -f "${REAL_ROOT}")
+ if [ -b "${ROOT_DEV}" ]
then
-
- for i in ${BOOTFS}
- do
-
- zfs get type ${i} > /dev/null 2>&1
- retval=$?
-
- if [ ${retval} -eq 0 ]; then
- got_good_root=1
- REAL_ROOT=${i}
- ROOTFSTYPE=zfs
- break
- fi
-
- done;
-
- else
- got_good_root=0
+ got_good_root=1
+ REAL_ROOT=${ROOT_DEV}
+ echo
+ good_msg "Root device detected as ${REAL_ROOT}!"
+ break
fi
+ ;;
+ esac
+ unset ROOT_DEV
- fi
+ if [ "${got_good_root}" != '1' ]
+ then
+ let ROOTDELAY_TIME_WAITED=${ROOTDELAY_TIME_WAITED}+1
+ sleep 0.1s
- if [ ${got_good_root} -ne 1 ]; then
- prompt_user "REAL_ROOT" "root block device"
- got_good_root=0
+ let ROOTDELAY_100MSEC_MODULO=${ROOTDELAY_TIME_WAITED}%10
+ if [ ${ROOTDELAY_100MSEC_MODULO} = 0 ]
+ then
+ printf "."
fi
+ fi
+ done # End of sleep loop waiting on root
- continue
- ;;
- esac
-
- if [ "${got_good_root}" != '1' ] ; then
- let ROOTDELAY_100MSEC=${ROOTDELAY_100MSEC}-1
- usleep 100
+ if [ $(date +%s) -gt ${ROOTDELAY_TIMEOUT} ]
+ then
+ echo
fi
- done # End of sleep loop waiting on root
- if [ "${REAL_ROOT}" = '' ]
+
+ if [ "${USE_ZFS}" = '1' ]
then
- # No REAL_ROOT determined/specified. Prompt user for root block device.
- prompt_user "REAL_ROOT" "root block device"
- got_good_root=0
+ write_env_file \
+ "${ZFS_ENC_ENV_FILE}" \
+ REAL_ROOT \
+ ROOTFSTYPE
+ fi
# Check for a block device or /dev/nfs or zfs encryption
- elif [ -b "${REAL_ROOT}" ] || [ "${REAL_ROOT}" = "/dev/nfs" ] || [ "${ROOTFSTYPE}" = "zfs" ]
+ if [ -n "${REAL_ROOT}" ] && [ "${REAL_ROOT}" = "/dev/nfs" ] || [ "${ROOTFSTYPE}" = "zfs" ] || [ -b "${REAL_ROOT}" ]
then
- if [ "${ROOTFSTYPE}" = "zfs" ]; then
+ if [ "${ROOTFSTYPE}" = "zfs" ]
+ then
# at this point we determined dataset and are ready to mount
# let's check if this dataset is encrypted and ask for passphrase
- if [ "$(zpool list -H -o feature@encryption "${REAL_ROOT%%/*}")" = 'active' ]; then
- ZFS_KEYSTATUS="$(zfs get -H -o value keystatus "${REAL_ROOT}")"
- ZFS_ENCRYPTIONROOT="$(zfs get -H -o value encryptionroot "${REAL_ROOT}")"
- if ! [ "${ZFS_ENCRYPTIONROOT}" = '-' ] || [ "${ZFS_KEYSTATUS}" = 'available' ]; then
+ if [ "$(zpool list -H -o feature@encryption "${REAL_ROOT%%/*}" 2>/dev/null)" = 'active' ]
+ then
+ ZFS_KEYSTATUS="$(get_zfs_property "${REAL_ROOT}" keystatus)"
+ ZFS_ENCRYPTIONROOT="$(get_zfs_property "${REAL_ROOT}" encryptionroot)"
+ if [ "${ZFS_ENCRYPTIONROOT}" != '-' ] && [ "${ZFS_KEYSTATUS}" = 'unavailable' ]
+ then
good_msg "Detected ZFS encryption, asking for key"
- zfs load-key "${ZFS_ENCRYPTIONROOT}"
- retval=$?
- # if the key loaded fine, confirm got_good_root to exit second while loop
- if [ ${retval} -eq 0 ]; then
- got_good_root=1
- else
- bad_msg "${ROOT_DEV} is encrypted and not mountable without key"
- prompt_user "REAL_ROOT" "root block device"
+ run zfs load-key "${ZFS_ENCRYPTIONROOT}"
+
+ # Get new key status to check if load-key was successful
+ # or dataset has been opened by someone else in the meantime (through SSH for instance)
+ ZFS_KEYSTATUS="$(get_zfs_property "${REAL_ROOT}" keystatus)"
+
+ if [ "${ZFS_KEYSTATUS}" != 'available' ]
+ then
+ bad_msg "${REAL_ROOT} is encrypted and not mountable without key"
got_good_root=0
+ break
+ fi
+
+ if [ -f "${ZFS_ENC_OPENED_LOCKFILE}" ]
+ then
+ good_msg "${REAL_ROOT} device meanwhile was opened by someone else."
+ else
+ run touch "${ZFS_ENC_OPENED_LOCKFILE}"
fi
fi
fi
else
got_good_root=1
fi
- else
- bad_msg "Block device ${REAL_ROOT} is not a valid root device..."
- REAL_ROOT=""
- got_good_root=0
fi
- done
+ break
+ done
- if [ "${CDROOT}" = 1 -a "${got_good_root}" = '1' -a "${REAL_ROOT}" != "/dev/nfs" ]
+ if [ "${got_good_root}" = '1' -a "${CDROOT}" = 1 -a "${REAL_ROOT}" != "/dev/nfs" ]
then
# CD already mounted; no further checks necessary
break
- elif [ "${LOOPTYPE}" = "sgimips" ]
+ elif [ "${got_good_root}" = '1' -a "${LOOPTYPE}" = 'sgimips' ]
then
# sgimips mounts the livecd root partition directly
# there is no isofs filesystem to worry about
break
- else
- good_msg "Mounting $REAL_ROOT as root..."
+ elif [ "${got_good_root}" = '1' ]
+ then
+ good_msg "Mounting ${REAL_ROOT} as root ..."
if [ "${ROOTFSTYPE}" = 'zfs' ]
then
- if [ "$(zfs get -H -o value mountpoint "${REAL_ROOT}")" = 'legacy' ]
+ if [ "$(get_zfs_property "${REAL_ROOT}" mountpoint)" = 'legacy' ]
then
MOUNT_STATE=rw
else
@@ -707,48 +978,107 @@ do
fi
# Try to mount the device as ${NEW_ROOT}
- if [ "${REAL_ROOT}" = '/dev/nfs' ]; then
+ if [ "${REAL_ROOT}" = '/dev/nfs' ]
+ then
findnfsmount
mountret=$?
else
# If $REAL_ROOT is a symlink
# Resolve it like util-linux mount does
- [ -L ${REAL_ROOT} ] && REAL_ROOT=`readlink ${REAL_ROOT}`
+ [ -L ${REAL_ROOT} ] && REAL_ROOT=$(readlink -f ${REAL_ROOT})
+
+ # determine fs -- 'auto' will not trigger module loading!
+ ROOTFSTYPE=$(determine_fs "${REAL_ROOT}" "${ROOTFSTYPE}")
+
# mount ro so fsck doesn't barf later
- if [ "${REAL_ROOTFLAGS}" = '' ]; then
+ if [ "${REAL_ROOTFLAGS}" = '' ]
+ then
good_msg "Using mount -t ${ROOTFSTYPE} -o ${MOUNT_STATE} ${REAL_ROOT} ${NEW_ROOT}"
- mount -t ${ROOTFSTYPE} -o ${MOUNT_STATE} ${REAL_ROOT} ${NEW_ROOT}
+ run mount -t ${ROOTFSTYPE} -o ${MOUNT_STATE} ${REAL_ROOT} ${NEW_ROOT}
mountret=$?
else
good_msg "Using mount -t ${ROOTFSTYPE} -o ${MOUNT_STATE},${REAL_ROOTFLAGS} ${REAL_ROOT} ${NEW_ROOT}"
- mount -t ${ROOTFSTYPE} -o ${MOUNT_STATE},${REAL_ROOTFLAGS} ${REAL_ROOT} ${NEW_ROOT}
+ run mount -t ${ROOTFSTYPE} -o ${MOUNT_STATE},${REAL_ROOTFLAGS} ${REAL_ROOT} ${NEW_ROOT}
mountret=$?
fi
fi
# If mount is successful break out of the loop
# else not a good root and start over.
- if [ "$mountret" = '0' ]
+ if [ "${mountret}" = '0' ]
then
- if [ -d ${NEW_ROOT}/dev -a -x "${NEW_ROOT}${REAL_INIT:-/sbin/init}" ] || [ "${REAL_ROOT}" = "/dev/nfs" ]
+ # Make sure that entries from $NEWROOT/etc/initramfs.mounts
+ # are mounted before validating $REAL_INIT in case init isn't
+ # located on $REAL_ROOT.
+ process_initramfs_mounts
+
+ init_binary_file="${NEW_ROOT}${REAL_INIT:-/sbin/init}"
+ init_binary_fallback_file="${NEW_ROOT}/bin/sh"
+
+ if [ -f "${init_binary_file}" -a -x "${init_binary_file}" ]
+ then
+ break
+ else
+ warn_msg "'${init_binary_file}' was not found, is not a file or is not executable, maybe a symlink?"
+ fi
+
+ if [ -L "${init_binary_file}" ]
+ then
+ good_msg "Symlink detected! Assuming split /usr ..."
+ break
+ else
+ warn_msg "'${init_binary_file}' is not a symlink, do we have at least /bin/sh?"
+ fi
+
+ if [ -f "${init_binary_fallback_file}" -a -x "${init_binary_fallback_file}" ]
+ then
+ REAL_INIT="${init_binary_fallback_file/${NEW_ROOT}}"
+ good_msg "Executable fallback file '${init_binary_fallback_file}' detected!"
+ break
+ else
+ warn_msg "'${init_binary_fallback_file}' was not found, is not a file or is not executable, maybe we are working with NFS?"
+ fi
+
+ if [ "${REAL_ROOT}" = "/dev/nfs" ]
then
+ good_msg "NFS detected!"
break
else
- bad_msg "The filesystem mounted at ${REAL_ROOT} does not appear to be a valid /, try again"
- got_good_root=0
- REAL_ROOT=''
+ warn_msg "No NFS detected!"
fi
+
+ bad_msg "The filesystem mounted at ${REAL_ROOT} does not appear to be a valid /:"
+ bad_msg "Neither executable file '${init_binary_file}' nor '${init_binary_fallback_file}' was found."
+ bad_msg "If correct root device was specified, check 'root' or 'init' kernel command-line parameter!"
+ got_good_root=0
else
- bad_msg "Could not mount specified ROOT, try again"
+ bad_msg "Could not mount specified ROOT!"
got_good_root=0
- REAL_ROOT=''
fi
fi
+
+ if [ "${got_good_root}" = '0' ]
+ then
+ if mountpoint "${NEW_ROOT}" 1>/dev/null 2>&1
+ then
+ run umount "${NEW_ROOT}" 1>/dev/null 2>&1
+ if [ $? -ne 0 ]
+ then
+ echo
+ bad_msg "Failed to umount ${REAL_ROOT} which was mounted as ${NEW_ROOT}!"
+ warn_msg "You probably need to open a shell and restore mountpoint before you are able to mount another device as ${NEW_ROOT}."
+ echo
+ fi
+ fi
+
+ bad_msg "Block device ${REAL_ROOT} is not a valid root device ..."
+ prompt_user "REAL_ROOT" "root block device"
+ ROOTDELAY_TIME_WAITED=0
+ let ROOTDELAY_TIMEOUT=$(date +%s)+1
+ fi
done
# End determine root device
-#verbose_kmsg
-
# If CD root is set determine the looptype to boot
if [ "${CDROOT}" = '1' ]
then
@@ -766,22 +1096,23 @@ then
then
CRYPT_ROOT_KEY="$(head -n 1 "${CDROOT_PATH}"/${CDROOT_MARKER})"
CRYPT_ROOT='/dev/loop0'
- good_msg 'You booted an encrypted livecd' "${CRYPT_SILENT}"
+ good_msg 'You booted an encrypted livecd' ${CRYPT_SILENT}
losetup /dev/loop0 "${CDROOT_PATH}/${LOOPEXT}${LOOP}"
test_success 'Preparing loop filesystem'
- startLUKS
+ start_LUKS_root
+ start_LUKS_swap
case ${LOOPTYPE} in
normal)
MOUNTTYPE="ext2"
;;
*)
- MOUNTTYPE="${LOOPTYPE}"
+ MOUNTTYPE=$(determine_fs "/dev/mapper/root" "${MOUNTTYPE}")
;;
esac
- mount -t "${MOUNTTYPE}" -o ro /dev/mapper/root "${NEW_ROOT}/mnt/livecd"
+ run mount -t "${MOUNTTYPE}" -o ro /dev/mapper/root "${NEW_ROOT}/mnt/livecd"
test_success 'Mount filesystem'
FS_LOCATION='mnt/livecd'
# Setup the loopback mounts, if unencrypted
@@ -789,34 +1120,37 @@ then
if [ "${LOOPTYPE}" = 'normal' ]
then
good_msg 'Mounting loop filesystem'
- mount -t ext2 -o loop,ro "${CDROOT_PATH}/${LOOPEXT}${LOOP}" "${NEW_ROOT}/mnt/livecd"
+ run mount -t ext2 -o loop,ro "${CDROOT_PATH}/${LOOPEXT}${LOOP}" "${NEW_ROOT}/mnt/livecd"
test_success 'Mount filesystem'
FS_LOCATION='mnt/livecd'
elif [ "${LOOPTYPE}" = 'squashfs' ]
then
- good_msg 'Mounting squashfs filesystem'
-
- if [ 1 = "$aufs" ]; then
- setup_squashfs_aufs
- test_success 'Mount aufs filesystem'
- elif [ 1 = "$overlayfs" ]; then
- setup_overlayfs
- test_success 'Mount overlayfs filesystem'
- else
- _CACHED_SQUASHFS_PATH="${NEW_ROOT}/mnt/${LOOP}"
- _squashfs_path="${CDROOT_PATH}/${LOOPEXT}${LOOP}" # Default to uncached
- # Upgrade to cached version if possible
- [ "${DO_cache}" -a -f "${_CACHED_SQUASHFS_PATH}" ] \
- && _squashfs_path=${_CACHED_SQUASHFS_PATH}
- mount -t squashfs -o loop,ro "${_squashfs_path}" "${NEW_ROOT}/mnt/livecd" || {
- bad_msg "Squashfs filesystem could not be mounted, dropping into shell."
- if [ -e /proc/filesystems ]; then
- fgrep -q squashfs /proc/filesystems || \
- bad_msg "HINT: Your kernel does not know filesystem \"squashfs\"."
- fi
- do_rundebugshell
- }
- fi
+ good_msg 'Mounting squashfs filesystem'
+
+ if [ "${aufs}" = '1' ]
+ then
+ setup_squashfs_aufs
+ test_success 'Mount aufs filesystem'
+ elif [ "${overlayfs}" = '1' ]
+ then
+ setup_overlayfs
+ test_success 'Mount overlayfs filesystem'
+ else
+ _CACHED_SQUASHFS_PATH="${NEW_ROOT}/mnt/${LOOP}"
+ _squashfs_path="${CDROOT_PATH}/${LOOPEXT}${LOOP}" # Default to uncached
+ # Upgrade to cached version if possible
+ [ "${DO_cache}" -a -f "${_CACHED_SQUASHFS_PATH}" ] \
+ && _squashfs_path=${_CACHED_SQUASHFS_PATH}
+ mount -t squashfs -o loop,ro "${_squashfs_path}" "${NEW_ROOT}/mnt/livecd" || {
+ bad_msg "Squashfs filesystem could not be mounted, dropping into shell."
+ if [ -e /proc/filesystems ]
+ then
+ grep -Fq squashfs /proc/filesystems || \
+ bad_msg "HINT: Your kernel does not know filesystem \"squashfs\"."
+ fi
+ run_emergency_shell
+ }
+ fi
FS_LOCATION='mnt/livecd'
elif [ "${LOOPTYPE}" = 'gcloop' ]
@@ -825,7 +1159,7 @@ then
echo ' ' | losetup -E 19 -e ucl-0 -p0 "${NEW_ROOT}/dev/loop0" "${CDROOT_PATH}/${LOOPEXT}${LOOP}"
test_success 'losetup the loop device'
- mount -t ext2 -o ro "${NEW_ROOT}/dev/loop0" "${NEW_ROOT}/mnt/livecd"
+ run mount -t ext2 -o ro "${NEW_ROOT}/dev/loop0" "${NEW_ROOT}/mnt/livecd"
test_success 'Mount the losetup loop device'
FS_LOCATION='mnt/livecd'
elif [ "${LOOPTYPE}" = 'zisofs' ]
@@ -853,25 +1187,28 @@ then
test_success 'losetup /dev/sr0 /dev/loop0'
good_msg 'Mounting the Root Partition'
- mount -t squashfs -o ro "${NEW_ROOT}${CDROOT_DEV}" "${NEW_ROOT}/mnt/livecd"
+ run mount -t squashfs -o ro "${NEW_ROOT}${CDROOT_DEV}" "${NEW_ROOT}/mnt/livecd"
test_success 'mount /dev/loop0 /'
FS_LOCATION='mnt/livecd'
fi
fi # if [ -n "${CRYPT_ROOT}" ]
- if [ 1 = "$aufs" ]; then
- aufs_insert_dir "$CHROOT" "$aufs_ro_branch"
+ if [ "${aufs}" = '1' ]
+ then
+ aufs_insert_dir "${CHROOT}" "${aufs_ro_branch}"
- # Function to handle the RC_NO_UMOUNTS variable in $CHROOT/etc/rc.conf
- conf_rc_no_umounts
+ # Function to handle the RC_NO_UMOUNTS variable in $CHROOT/etc/rc.conf
+ conf_rc_no_umounts
- # Fstab changes for aufs
- if ! grep -q '^aufs' "$CHROOT/etc/fstab" 2>/dev/null; then
- for dir in /var/tmp /tmp; do
- [ ! -d $CHROOT$dir ] && mkdir -p "$CHROOT$dir"
- done
+ # Fstab changes for aufs
+ if ! grep -q '^aufs' "${CHROOT}/etc/fstab" 2>/dev/null
+ then
+ for dir in /var/tmp /tmp
+ do
+ [ ! -d ${CHROOT}${dir} ] && run mkdir -p "${CHROOT}${dir}"
+ done
- cat > "$CHROOT/etc/fstab" << FSTAB
+ cat > "${CHROOT}/etc/fstab" << FSTAB
####################################################
## ATTENTION: THIS IS THE FSTAB ON THE LIVECD ##
## PLEASE EDIT THE FSTAB at /mnt/gentoo/etc/fstab ##
@@ -880,157 +1217,139 @@ aufs / aufs defaults 0 0
vartmp /var/tmp tmpfs defaults 0 0
tmp /tmp tmpfs defaults 0 0
FSTAB
- fi
+ fi
- # Check modules support
- is_union_modules aufs
+ # Check modules support
+ is_union_modules aufs
- # Create the directories for our new union mounts
- [ ! -d $CHROOT$NEW_ROOT ] && mkdir -p "$CHROOT$NEW_ROOT"
+ # Create the directories for our new union mounts
+ [ ! -d ${CHROOT}${NEW_ROOT} ] && mkdir -p "${CHROOT}${NEW_ROOT}"
- # Check to see if we successfully mounted $aufs_dev
- if [ -n "$aufs_dev" ] && grep $aufs_dev /etc/mtab 1>/dev/null; then
- [ ! -d $CHROOT$aufs_dev_mnt ] && mkdir -p "$CHROOT$aufs_dev_mnt"
- mount --move "$aufs_dev_mnt" "$CHROOT$aufs_dev_mnt"
- fi
+ # Check to see if we successfully mounted $aufs_dev
+ if [ -n "${aufs_dev}" ] && grep ${aufs_dev} /etc/mtab 1>/dev/null
+ then
+ [ ! -d ${CHROOT}${aufs_dev_mnt} ] && run mkdir -p "${CHROOT}${aufs_dev_mnt}"
+ run mount --move "${aufs_dev_mnt}" "${CHROOT}${aufs_dev_mnt}"
+ fi
fi
# Unpacking additional packages from NFS mount, or root (if squashfs was found there)
# This is useful for adding kernel modules to /lib
# We do this now, so that additional packages can add whereever they want.
- if [ "${REAL_ROOT}" = '/dev/nfs' ] || [ "${got_loop_wo_mount}" == '1' ]
+ if [ "${REAL_ROOT}" = '/dev/nfs' ] || [ "${got_loop_wo_mount}" = '1' ]
then
if [ -e "${CDROOT_PATH}/add" ]
then
+ # shellcheck disable=SC2045
for targz in $(ls ${CDROOT_PATH}/add/*.tar.gz)
do
tarname=$(basename ${targz})
good_msg "Adding additional package ${tarname}"
- (cd ${NEW_ROOT} ; /bin/tar -xf ${targz})
+ (cd ${NEW_ROOT} ; tar -xf ${targz})
done
fi
fi
+ if [ "${USE_UNIONFS_NORMAL}" = '1' ]
+ then
+ setup_unionfs ${NEW_ROOT} /${FS_LOCATION}
+ CHROOT=/union
+ elif [ "${aufs}" != '1' ] && [ "${overlayfs}" != '1' ]
+ then
+ good_msg "Copying read-write image contents to tmpfs"
+
+ # Copy over stuff that should be writable
+ (
+ cd "${NEW_ROOT}/${FS_LOCATION}"
+ cp -a ${ROOT_TREES} "${NEW_ROOT}"
+ ) ||
+ {
+ bad_msg "Copying failed, dropping into a shell."
+ run_emergency_shell
+ }
+
+ # Now we do the links.
+ for x in ${ROOT_LINKS}
+ do
+ if [ -L "${NEW_ROOT}/${FS_LOCATION}/${x}" ]
+ then
+ ln -s "$(readlink ${NEW_ROOT}/${FS_LOCATION}/${x})" "${x}" 2>/dev/null
+ else
+ # List all subdirectories of x
+ find "${NEW_ROOT}/${FS_LOCATION}/${x}" -type d 2>/dev/null |
+ while read directory
+ do
+ # Strip the prefix of the FS_LOCATION
+ directory="${directory#${NEW_ROOT}/${FS_LOCATION}/}"
+
+ # Skip this directory if we already linked a parent directory
+ if [ "${current_parent}" != '' ]
+ then
+ var=$(echo "${directory}" | grep "^${current_parent}")
+ if [ "${var}" != '' ]
+ then
+ continue
+ fi
+ fi
- if [ "${USE_UNIONFS_NORMAL}" = '1' ]; then
- setup_unionfs ${NEW_ROOT} /${FS_LOCATION}
- CHROOT=/union
- elif [ 1 != "$aufs" ] && [ 1 != "$overlayfs" ]; then
- good_msg "Copying read-write image contents to tmpfs"
-
- # Copy over stuff that should be writable
- (
- cd "${NEW_ROOT}/${FS_LOCATION}"
- cp -a ${ROOT_TREES} "${NEW_ROOT}"
- ) ||
- {
- bad_msg "Copying failed, dropping into a shell."
- do_rundebugshell
- }
-
- # Now we do the links.
- for x in ${ROOT_LINKS}; do
- if [ -L "${NEW_ROOT}/${FS_LOCATION}/${x}" ]; then
- ln -s "$(readlink ${NEW_ROOT}/${FS_LOCATION}/${x})" "${x}" 2>/dev/null
- else
- # List all subdirectories of x
- find "${NEW_ROOT}/${FS_LOCATION}/${x}" -type d 2>/dev/null |
- while read directory; do
- # Strip the prefix of the FS_LOCATION
- directory="${directory#${NEW_ROOT}/${FS_LOCATION}/}"
-
- # Skip this directory if we already linked a parent directory
- if [ "${current_parent}" != '' ]; then
- var=$(echo "${directory}" | grep "^${current_parent}")
- if [ "${var}" != '' ]; then
- continue
- fi
- fi
- # Test if the directory exists already
- if [ -e "/${NEW_ROOT}/${directory}" ]; then
- # It does exist, link all the individual files
- for file in $(ls /${NEW_ROOT}/${FS_LOCATION}/${directory}); do
- if [ ! -d "/${NEW_ROOT}/${FS_LOCATION}/${directory}/${file}" ] && [ ! -e "${NEW_ROOT}/${directory}/${file}" ]; then
- ln -s "/${FS_LOCATION}/${directory}/${file}" "${directory}/${file}" 2> /dev/null
- fi
- done
- else
- # It does not exist, make a link to the livecd
- ln -s "/${FS_LOCATION}/${directory}" "${directory}" 2>/dev/null
- current_parent="${directory}"
- fi
- done
- fi
- done
-
- mkdir -p initramfs proc tmp run sys 2>/dev/null
- chmod 1777 tmp
-
- fi
-
- # Have handy /mnt/cdrom (CDROOT_PATH) as well
- if [ 1 = "$aufs" ]; then
- [ ! -d "$CHROOT$CDROOT_PATH" ] && mkdir "$CHROOT$CDROOT_PATH"
- mount --move "$CDROOT_PATH" "$CHROOT$CDROOT_PATH"
- else
- [ ! -d "$NEW_ROOT$CDROOT_PATH" ] && mkdir -p "$NEW_ROOT$CDROOT_PATH"
- mount --move "$CDROOT_PATH" "$NEW_ROOT$CDROOT_PATH"
- fi
-
- #UML=$(cat /proc/cpuinfo|grep UML|sed -e 's|model name.*: ||')
- #if [ "${UML}" = 'UML' ]
- #then
- # # UML Fixes
- # good_msg 'Updating for uml system'
- #fi
-
- # Let Init scripts know that we booted from CD
- export CDBOOT
- CDBOOT=1
- else
- if [ "${USE_UNIONFS_NORMAL}" = '1' ]
- then
- mkdir /union_changes
- mount -t tmpfs tmpfs /union_changes
- setup_unionfs /union_changes ${NEW_ROOT}
- mkdir -p ${UNION}/tmp/.initrd
- elif [ 1 = "$aufs" ]; then
- aufs_insert_dir "$aufs_union" "$NEW_ROOT"
- mkdir -p "$aufs_union/tmp/.initrd"
- fi
-
- fi # if [ "${CDROOT}" = '1' ]
-
-# Mount the additional things as required by udev & systemd
-if [ -f ${NEW_ROOT}/etc/initramfs.mounts ]; then
- fslist=$(get_mounts_list)
-else
- fslist="/usr"
-fi
+ # Test if the directory exists already
+ if [ -e "/${NEW_ROOT}/${directory}" ]
+ then
+ # It does exist, link all the individual files
+ # shellcheck disable=SC2045
+ for file in $(ls /${NEW_ROOT}/${FS_LOCATION}/${directory})
+ do
+ if [ ! -d "/${NEW_ROOT}/${FS_LOCATION}/${directory}/${file}" ] && [ ! -e "${NEW_ROOT}/${directory}/${file}" ]
+ then
+ ln -s "/${FS_LOCATION}/${directory}/${file}" "${directory}/${file}" 2> /dev/null
+ fi
+ done
+ else
+ # It does not exist, make a link to the livecd
+ ln -s "/${FS_LOCATION}/${directory}" "${directory}" 2>/dev/null
+ current_parent="${directory}"
+ fi
+ done
+ fi
+ done
+
+ mkdir -p initramfs proc tmp run sys 2>/dev/null
+ chmod 1777 tmp
+ fi
-for fs in $fslist; do
- dev=$(get_mount_device $fs)
- [ -z "${dev}" ] && continue
- # Resolve it like util-linux mount does
- [ -L ${dev} ] && dev=`readlink ${dev}`
- # In this case, it's probably part of the filesystem
- # and not a mountpoint
- [ -z "$dev" ] && continue
- fstype=$(get_mount_fstype $fs)
- if get_mount_options $fs | fgrep -q bind ; then
- opts='bind'
- dev=${NEW_ROOT}${dev}
+ # Have handy /mnt/cdrom (CDROOT_PATH) as well
+ if [ "${aufs}" = '1' ]
+ then
+ [ ! -d "${CHROOT}${CDROOT_PATH}" ] && mkdir "${CHROOT}${CDROOT_PATH}"
+ run mount --move "${CDROOT_PATH}" "${CHROOT}${CDROOT_PATH}"
else
- # ro must be trailing, and the options will always contain at least 'defaults'
- opts="$(get_mount_options $fs | strip_mount_options),ro"
+ [ ! -d "${NEW_ROOT}${CDROOT_PATH}" ] && mkdir -p "${NEW_ROOT}${CDROOT_PATH}"
+ run mount --move "${CDROOT_PATH}" "${NEW_ROOT}${CDROOT_PATH}"
fi
- mnt=${NEW_ROOT}${fs}
- cmd="mount -t $fstype -o $opts $dev $mnt"
- good_msg "Mounting $dev as ${fs}: $cmd"
- if ! $cmd; then
- bad_msg "Unable to mount $dev for $fs"
+
+ # Let Init scripts know that we booted from CD
+ export CDBOOT
+ CDBOOT=1
+else
+ if [ "${USE_UNIONFS_NORMAL}" = '1' ]
+ then
+ run mkdir /union_changes
+ run mount -t tmpfs tmpfs /union_changes
+ setup_unionfs /union_changes ${NEW_ROOT}
+ run mkdir -p ${UNION}/tmp/.initrd
+ elif [ "${aufs}" = '1' ]
+ then
+ aufs_insert_dir "${aufs_union}" "${NEW_ROOT}"
+ run mkdir -p "${aufs_union}/tmp/.initrd"
fi
-done # for fs in $fslist; do
+fi # if [ "${CDROOT}" = '1' ]
+
+keyctl_keyremove
+
+# Re-run to ensure $NEWROOT/etc/initramfs.mounts was processed at least once
+process_initramfs_mounts
+
+splash 'hasroot' "${NEW_ROOT}"
# Execute script on the cdrom just before boot to update things if necessary
cdupdate
@@ -1041,23 +1360,24 @@ then
CHROOT="${CHROOT}/${SUBDIR}"
fi
-verbose_kmsg
-
-if [ 1 = "$aufs" ]; then
- aufs_union_memory=$CHROOT/.unions/memory
+if [ "${aufs}" = '1' ]
+then
+ aufs_union_memory=${CHROOT}/.unions/memory
- mkdir -p "$aufs_union_memory"
- mount --move "$aufs_memory" "$aufs_union_memory"
- test_success "Failed to move aufs $aufs_memory into the system root"
+ run mkdir -p "${aufs_union_memory}"
+ run mount --move "${aufs_memory}" "${aufs_union_memory}"
+ test_success "Failed to move aufs ${aufs_memory} into the system root"
- for dir in /mnt/gentoo $aufs_rw_branch $aufs_ro_branch; do
- mkdir -p "$CHROOT$dir"
- chmod 755 "$CHROOT$dir"
+ for dir in /mnt/gentoo ${aufs_rw_branch} ${aufs_ro_branch}
+ do
+ run mkdir -p "${CHROOT}${dir}"
+ run chmod 755 "${CHROOT}${dir}"
done
- for mount in $aufs_rw_branch $aufs_ro_branch; do
- mount --move "$mount" "$CHROOT$mount"
- done
+ for mount in ${aufs_rw_branch} ${aufs_ro_branch}
+ do
+ run mount --move "${mount}" "${CHROOT}${mount}"
+ done
fi
# Copy user keymap generated file if available
@@ -1066,58 +1386,72 @@ copyKeymap
# Setup any user defined environment locales for desktop usage
setup_locale
-good_msg "Booting (initramfs)"
-
-cd "${CHROOT}"
-mkdir "${CHROOT}/proc" "${CHROOT}/sys" "${CHROOT}/run" 2>/dev/null
+if [ "${USE_SSH}" = '1' ]
+then
+ wait_sshd
+fi
-# If devtmpfs is mounted, try move it to the new root
-# If that fails, try to unmount all possible mounts of
-# devtmpfs as stuff breaks otherwise
-for fs in /dev /sys /proc
-do
- if grep -qs "$fs" /proc/mounts
- then
- if ! mount -o move $fs "${CHROOT}"$fs
- then
- umount $fs || \
- bad_msg "Failed to move and unmount the ramdisk $fs!"
- fi
- fi
-done
+cleanup
-if [ ! -e "${CHROOT}/dev/console" ] || [ ! -e "${CHROOT}/dev/null" ]
+udevsettle
+run udevadm control --exit
+if pgrep udevd >/dev/null 2>&1
then
- bad_msg "ERROR: your real /dev is missing console and null"
-elif [ -e /etc/initrd.splash -a ! -e "${CHROOT}/dev/tty1" ]
-then
- bad_msg "ERROR: your real /dev is missing tty1, required for splash"
+ warn_msg "udevd is still running -- Trying to kill it ..."
+ run pkill -9 udevd >/dev/null 2>&1
fi
# Run debug shell if requested
-rundebugshell "before entering switch_root"
+run_debug_shell "before switch_root"
+
+if [ "${GK_PRESERVE_RUN}" = '0' ]
+then
+ GK_INIT_LOG=
+ run umount /run
+fi
# init_opts is set in the environment by the kernel when it parses the command line
init=${REAL_INIT:-/sbin/init}
-if ! mountpoint "${CHROOT}"; then
- bad_msg "$CHROOT was not a mountpoint"
-elif chroot "${CHROOT}" /usr/bin/test ! -x /${init} ; then
- bad_msg "init=${init} does not exist in the rootfs!"
-elif [ $$ != 1 ]; then
- bad_msg "PID was not 1! switch_root would fail"
-else
- good_msg "Switching to real root: /sbin/switch_root -c /dev/console ${CHROOT} ${init} ${init_opts}"
- exec /sbin/switch_root -c "/dev/console" "${CHROOT}" "${init}" ${init_opts}
-fi
-# If we get here, something bad has happened
-splash 'verbose'
+while true
+do
+ # switch_root can only be called from PID 1;
+ # So stay in loop as long as user is able
+ # to fix the problem.
+
+ if ! mountpoint "${CHROOT}" 1>/dev/null 2>&1
+ then
+ bad_msg "${CHROOT} is not a mountpoint; Was root device (${REAL_ROOT}) not mounted?"
+ elif ! chroot "${CHROOT}" /usr/bin/test -x /${init#/} 1>/dev/null 2>&1
+ then
+ mounted_root_device=$(mountpoint -n /newroot 2>/dev/null | awk '{ print $1 }')
+ bad_msg "init (${init}) not found in mounted root device (${mounted_root_device})!"
+ else
+ break
+ fi
+
+ run_emergency_shell
+ if ! is_userinteraction_allowed
+ then
+ ${GK_EMERGENCY_ACTION} || exit 1
+ fi
+done
-bad_msg "A fatal error has occured since ${init} did not"
-bad_msg "boot correctly. Trying to open a shell..."
+if ! is_quiet && [[ "${CONSOLE_LOGLEVEL}" != "${GK_CONSOLE_LOGLEVEL}" ]]
+then
+ good_msg "Restoring console log level (${CONSOLE_LOGLEVEL}) ..."
+ echo ${CONSOLE_LOGLEVEL} > /proc/sys/kernel/printk \
+ && log_msg "COMMAND: 'echo \"${CONSOLE_LOGLEVEL}\" > /proc/sys/kernel/printk'"
+fi
-exec /bin/bash
-exec /bin/sh
-exec /bin/ash
-exec /bin/dash
-exec sh
+good_msg "Switching to real root: switch_root ${CHROOT} ${init} ${init_opts}"
+exec switch_root "${CHROOT}" "${init}" ${init_opts}
+
+# If we reached here, something went very badly wrong in the initramfs.
+# However, spawning a rescue shell at this point would not help anymore:
+# 1) We have to assume that switch_root has already messed with
+# initramfs (i.e. we probably have no /dev anymore).
+# 2) Any shell we would spawn would become child of PID 1 which would
+# prevent user from calling switch_root once the user believes the
+# problem was fixed.
+${GK_EMERGENCY_ACTION} || exit 1
diff --git a/defaults/login-remote.sh b/defaults/login-remote.sh
index c667b5e..4664d7b 100644
--- a/defaults/login-remote.sh
+++ b/defaults/login-remote.sh
@@ -1,136 +1,120 @@
#!/bin/sh
# vim: set noexpandtab:
-. /etc/login-remote.conf
. /etc/initrd.defaults
. /etc/initrd.scripts
-KEYFILE_ROOT="/tmp/root.key"
-KEYFILE_SWAP="/tmp/swap.key"
-
-splash() {
- return 0
-}
+. "${CRYPT_ENV_FILE}"
[ -e /etc/initrd.splash ] && . /etc/initrd.splash
+GK_INIT_LOG_PREFIX=${0}
+if [ -n "${SSH_CLIENT}" ]
+then
+ SSH_CLIENT_IP=$(echo "${SSH_CLIENT}" | awk '{ print $1 }')
+ SSH_CLIENT_PORT=$(echo "${SSH_CLIENT}" | awk '{ print $2 }')
+
+ if [ -n "${SSH_CLIENT_IP}" ] && [ -n "${SSH_CLIENT_PORT}" ]
+ then
+ GK_INIT_LOG_PREFIX="${0}[${SSH_CLIENT_IP}:${SSH_CLIENT_PORT}]"
+ export SSH_CLIENT_IP
+ export SSH_CLIENT_PORT
+ fi
+fi
+
receivefile() {
case ${1} in
root)
- file=${KEYFILE_ROOT}
+ file=${CRYPT_ROOT_KEYFILE}
;;
swap)
- file=${KEYFILE_SWAP}
+ file=${CRYPT_SWAP_KEYFILE}
;;
- esac
- # limit maximum stored bytes to 1M to avoid killing the server
- dd of=${file} count=1k bs=1k 2>/dev/null
- exit $?
-}
-
-openLUKSremote() {
- case $1 in
- root)
- local TYPE=ROOT
+ '')
+ bad_msg "No keyfile specified." ${CRYPT_SILENT}
+ exit 1
;;
- swap)
- local TYPE=SWAP
+ *)
+ bad_msg "Unknown '${1}' keyfile received." ${CRYPT_SILENT}
+ exit 1
;;
esac
-
- [ ! -d /tmp/key ] && mkdir -p /tmp/key
-
- eval local LUKS_DEVICE='"${CRYPT_'${TYPE}'}"' LUKS_NAME="$1" LUKS_KEY='"${KEYFILE_'${TYPE}'}"'
- local DEV_ERROR=0 KEY_ERROR=0
- local input="" cryptsetup_options="" flag_opened="/${TYPE}.decrypted"
- while [ 1 ]
- do
- local gpg_cmd="" crypt_filter_ret=42
-
- if [ -e ${flag_opened} ]
- then
- good_msg "The LUKS device ${LUKS_DEVICE} meanwhile was opened by someone else."
- break
- elif [ ${DEV_ERROR} -eq 1 ]
- then
- prompt_user "LUKS_DEVICE" "${LUKS_NAME}"
- DEV_ERROR=0
- else
- LUKS_DEVICE=$(find_real_device "${LUKS_DEVICE}")
-
- setup_md_device ${LUKS_DEVICE}
- cryptsetup isLuks ${LUKS_DEVICE}
- if [ $? -ne 0 ]
- then
- bad_msg "The LUKS device ${LUKS_DEVICE} does not contain a LUKS header" ${CRYPT_SILENT}
- DEV_ERROR=1
- continue
- else
- # Handle keys
- if [ "x${LUKS_TRIM}" = "xyes" ]
- then
- good_msg "Enabling TRIM support for ${LUKS_NAME}." ${CRYPT_SILENT}
- cryptsetup_options="${cryptsetup_options} --allow-discards"
- fi
-
- if [ ${crypt_filter_ret} -ne 0 ]
- then
- # 1st try: unencrypted keyfile
- crypt_filter "cryptsetup ${cryptsetup_options} --key-file ${LUKS_KEY} luksOpen ${LUKS_DEVICE} ${LUKS_NAME}"
- crypt_filter_ret=$?
- fi
-
- if [ -f /sbin/gpg ] && [ ${crypt_filter_ret} -ne 0 ]
- then
- # 2nd try: gpg-encrypted keyfile
- [ -e /dev/tty ] && mv /dev/tty /dev/tty.org
- mknod /dev/tty c 5 1
- gpg_cmd="/sbin/gpg --logger-file /dev/null --quiet --decrypt ${LUKS_KEY} |"
- crypt_filter "${gpg_cmd}cryptsetup ${cryptsetup_options} --key-file ${LUKS_KEY} luksOpen ${LUKS_DEVICE} ${LUKS_NAME}"
- crypt_filter_ret=$?
-
- [ -e /dev/tty.org ] \
- && rm -f /dev/tty \
- && mv /dev/tty.org /dev/tty
- fi
- if [ ${crypt_filter_ret} -ne 0 ]
- then
- # 3rd try: user-submitted passphrase
- crypt_filter "cryptsetup ${cryptsetup_options} luksOpen ${LUKS_DEVICE} ${LUKS_NAME}"
- crypt_filter_ret=$?
- fi
-
- if [ ${crypt_filter_ret} -eq 0 ]
- then
- touch ${flag_opened}
- good_msg "LUKS device ${LUKS_DEVICE} opened" ${CRYPT_SILENT}
- # Kill the cryptsetup process started by init
- # so that the boot process can continue
- killall cryptsetup
- break
- else
- bad_msg "Failed to open LUKS device ${LUKS_DEVICE}" ${CRYPT_SILENT}
- DEV_ERROR=1
- fi
- fi
- fi
- done
- rm -f ${LUKS_KEY}
- cd /
- rmdir -p tmp/key
+ # limit maximum stored bytes to 1M to avoid killing the server
+ run dd of="${file}" count=1k bs=1k 2>/dev/null
+ return $?
}
if [ "x${1}" = "x-c" ]
then
- command=$(echo ${2} | awk -F" " '{print $1}')
- type=$(echo ${2} | awk -F" " '{print $2}')
+ command=$(echo "${2}" | awk '{ print $1 }')
+ type=$(echo "${2}" | awk '{ print $2 }')
case ${command} in
post)
- receivefile ${type}
+ if receivefile "${type}"
+ then
+ if unlock-luks "${type}"
+ then
+ if [ "${type}" = 'root' ]
+ then
+ # this is required to keep scripted unlock working
+ # without requring an additional command.
+ resume-boot
+ fi
+
+ exit 0
+ else
+ exit 1
+ fi
+ else
+ bad_msg "Keyfile was not properly received!" ${CRYPT_SILENT}
+ exit 1
+ fi
;;
+ *)
+ bad_msg "Command '${command}' is not supported!" ${CRYPT_SILENT}
+ exit 1
esac
else
- [ -n "${CRYPT_ROOT}" ] && openLUKSremote root
- [ -n "${CRYPT_SWAP}" ] && openLUKSremote swap
+ run touch "${GK_SSHD_LOCKFILE}"
+
+ # Don't log further remote shell output
+ GK_INIT_LOG=
+
+ export PS1='remote rescueshell \w \# '
+
+ GOOD=${BLUE} good_msg "${NORMAL}Welcome to ${BOLD}${GK_META_VERSION}${NORMAL} (${GK_META_BUILD_DATE}) ${BOLD}remote rescue shell${NORMAL}!"
+ GOOD=${BLUE} good_msg "${NORMAL}...running Linux kernel ${BOLD}${KV}${NORMAL}"
+ echo
+ good_msg "${NORMAL}The lockfile '${BOLD}${GK_SSHD_LOCKFILE}${NORMAL}' was created."
+ good_msg "${NORMAL}In order to resume boot process, run '${BOLD}resume-boot${NORMAL}'."
+ good_msg "${NORMAL}Be aware that it will kill your connection which means"
+ good_msg "${NORMAL}you will no longer be able to work in this shell."
+
+ if [ -n "${CRYPT_ROOT}" ] && [ ! -f "${CRYPT_ROOT_OPENED_LOCKFILE}" ]
+ then
+ good_msg "${NORMAL}To remote unlock LUKS-encrypted root device, run '${BOLD}unlock-luks root${NORMAL}'."
+ fi
+
+ if [ -n "${CRYPT_SWAP}" ] && [ ! -f "${CRYPT_ROOT_OPENED_LOCKFILE}" ]
+ then
+ good_msg "${NORMAL}To remote unlock LUKS-encrypted swap device, run '${BOLD}unlock-luks swap${NORMAL}'."
+ fi
+
+ if [ -e "${ZFS_ENC_ENV_FILE}" ] && [ ! -f "${ZFS_ENC_OPENED_LOCKFILE}" ]
+ then
+ good_msg "${NORMAL}To remote unlock ZFS root device, run '${BOLD}unlock-zfs${NORMAL}'."
+ fi
+
+ echo
+
+ [ -x /bin/sh ] && SH=/bin/sh || SH=/bin/ash
+
+ exec \
+ env \
+ SSH_CLIENT_IP="${SSH_CLIENT_IP}" \
+ SSH_CLIENT_PORT="${SSH_CLIENT_PORT}" \
+ ${SH} --login
fi
+
+exit 0
diff --git a/defaults/modules_load b/defaults/modules_load
index b4caf50..2ca2046 100644
--- a/defaults/modules_load
+++ b/defaults/modules_load
@@ -1,4 +1,4 @@
-# Module groups for genkernel initramfs auto-loading
+# Default module groups for genkernel initramfs auto-loading
# RAID
MODULES_ATARAID="ataraid pdcraid hptraid"
@@ -8,15 +8,15 @@ MODULES_LVM="dm-mod dm-bio-prison dm-bufio dm-cache dm-cache-smq dm-crypt dm-del
MODULES_MULTIPATH="dm-mod dm-multipath dm-round-robin dm-rdac dm-queue-length dm-service-time"
# Hardware (IDE/SCSI/SATA/NVMe)
-MODULES_NVME="nvme-core nvme nvme-fabrics nvme-rdma nvme-loop"
-MODULES_PATA="pata_mpiix pata_pdc2027x pata_radisys pata_sil680 pata_rz1000 pata_efar pata_cmd64x pata_hpt366 pata_hpt37x pata_hpt3x3 pata_hpt3x2n pata_optidma pata_it821x pata_artop pata_oldpiix pata_cypress pata_platform pata_serverworks pata_legacy pata_ns87410 pata_ns87415 pata_pcmcia pata_isapnp pata_it8213 pata_ali pata_amd pata_opti pata_atiixp pata_triflex pata_pdc202xx_old pata_sc1200 pata_qdi pata_netcell pata_sis pata_hpt3x2n pata_marvell pata_jmicron pata_via pata_cs5520 pata_cs5530 pata_cs5535 pata_sl82c105 libata"
-MODULES_SATA="sata_promise sata_sil sata_sil24 sata_svw sata_via sata_nv sata_sx4 sata_sis sata_uli sata_vsc sata_qstor ahci libata ata_piix sata_mv sata_inic162x pdc_adma"
-MODULES_SCSI="sd_mod sg sr_mod aic79xx aic7xxx aic7xxx_old arcmsr BusLogic ncr53c8xx NCR53c406a initio advansys aha1740 aha1542 aha152x dtc fdomain gdth pas16 pci2220i pci2000 psi240i qlogicfas qlogicfc qlogicisp qlogicpti seagate t128 u14-34f ultrastor wd7000 sym53c8xx dmx3191d imm in2000 ips qla1280 sim710 sym53c416 dc395x atp870u mptbase mptscsih mptspi mptfc mptsas 3w-sas 3w-xxxx 3w-9xxx cpqarray cciss hpsa DAC960 sx8 aacraid megaraid megaraid_mbox megaraid_mm megaraid_sas qla2xxx lpfc scsi_transport_fc aic94xx mpt2sas mpt3sas virtio_scsi virtio_blk"
+MODULES_NVME="nvme-core nvme nvme-fabrics nvme-rdma nvme-loop nvme-fc"
+MODULES_PATA="libata pata_mpiix pata_pdc2027x pata_radisys pata_sil680 pata_rz1000 pata_efar pata_cmd64x pata_hpt366 pata_hpt37x pata_hpt3x3 pata_hpt3x2n pata_optidma pata_it821x pata_artop pata_oldpiix pata_cypress pata_platform pata_serverworks pata_legacy pata_ns87410 pata_ns87415 pata_pcmcia pata_isapnp pata_it8213 pata_ali pata_amd pata_opti pata_atiixp pata_triflex pata_pdc202xx_old pata_sc1200 pata_qdi pata_netcell pata_sis pata_hpt3x2n pata_marvell pata_jmicron pata_via pata_cs5520 pata_cs5530 pata_cs5535 pata_sl82c105"
+MODULES_SATA="ahci libata ata_piix sata_promise sata_sil sata_sil24 sata_svw sata_via sata_nv sata_sx4 sata_sis sata_uli sata_vsc sata_qstor sata_mv sata_inic162x pdc_adma"
+MODULES_SCSI="mptspi megaraid_sas megaraid mpt2sas mpt3sas sd_mod sg sr_mod aic79xx aic7xxx aic7xxx_old arcmsr BusLogic ncr53c8xx NCR53c406a initio advansys aha1740 aha1542 aha152x dtc fdomain gdth pas16 pci2220i pci2000 psi240i qlogicfas qlogicfc qlogicisp qlogicpti seagate t128 u14-34f ultrastor wd7000 sym53c8xx dmx3191d imm in2000 ips qla1280 sim710 sym53c416 dc395x atp870u mptbase mptscsih mptfc mptsas 3w-sas 3w-xxxx 3w-9xxx cpqarray cciss hpsa DAC960 sx8 aacraid megaraid_mbox megaraid_mm qla2xxx lpfc scsi_transport_fc aic94xx vmw_pvscsi"
MODULES_WAITSCAN="scsi_wait_scan"
-MODULES_BLOCK="sdhci_pci"
+MODULES_BLOCK="sdhci_acpi sdhci_pci"
# Hardware (Network)
-MODULES_NET="e1000 tg3 virtio_net"
+MODULES_NET="8139cp 8139too atl1c atlantic bcm_phy_lib bnx2 bonding broadcom cxgb cxgb3 cxgb4 e1000 e1000e ena hv_netvsc ionic igb ixgb ixgbe macvlan pcnet32 r8169 realtek samsung-sxgbe sky2 tg3 tulip virtio_net vmxnet3 vxge vxlan gve netconsole"
# iSCSI support
MODULES_ISCSI="scsi_transport_iscsi libiscsi iscsi_tcp"
@@ -24,16 +24,19 @@ MODULES_ISCSI="scsi_transport_iscsi libiscsi iscsi_tcp"
# Hardware (Pluggable)
MODULES_FIREWIRE="ieee1394 ohci1394 sbp2"
MODULES_PCMCIA="pcmcia pcmcia_core yenta_socket pd6729 i82092 i82365 tcic ds ide-cs firmware_class"
-MODULES_USB="ehci-pci ehci-hcd uhci usb-ohci hid usb-storage uas uhci-hcd ohci-hcd xhci-hcd xhci-pci xhci-plat usbhid hid-generic sl811-hcd hid-a4tech hid-apple hid-belkin hid-cherry hid-chicony hid-cypress hid-dummy hid-ezkey hid-gyration hid-logitech hid-logitech-dj hid-microsoft hid-monterey hid-petalynx hid-pl hid-samsung hid-sony hid-sunplus"
+MODULES_USB="ehci-pci ehci-hcd xhci-hcd xhci-pci xhci-plat xhci-plat-hcd uhci usb-ohci hid usb-storage uas uhci-hcd ohci-hcd usbhid hid-generic sl811-hcd hid-a4tech hid-apple hid-belkin hid-cherry hid-chicony hid-cypress hid-dummy hid-ezkey hid-gyration hid-lenovo hid-logitech hid-logitech-dj hid-microsoft hid-monterey hid-petalynx hid-pl hid-samsung hid-sony hid-sunplus"
# Filesystems
-MODULES_FS="ext2 ext3 ext4 btrfs reiserfs jfs nfs xfs zfs f2fs fuse loop squashfs aufs overlay cramfs configfs fscrypto efivarfs msdos qemu_fw_cfg"
+MODULES_FS="ext2 ext3 ext4 btrfs reiserfs jfs nfs xfs zfs f2fs fuse virtiofs loop squashfs aufs overlay cramfs configfs fscrypto msdos"
# Crypto
-MODULES_CRYPTO="sha256_generic cbc crc32c_generic crc32c-intel crc32_generic aes_generic xts"
+MODULES_CRYPTO="sha256_generic cbc crc32 crc32c crc32c_generic crc32_generic aes_generic xts af_alg algif_skcipher algif_hash algif_aead algif_rng serpent_generic ecb blake2b_generic blake2s_generic ccm cfb cmac chacha20poly1305 chacha_generic curve25519-generic ofb pcbc sha3_generic vmac xcbc"
# Hyper-V
-MODULES_HYPERV="hv_utils hv_vmbus hv_balloon hyperv_keyboard hv_netvsc hid_hyperv hv_utils hyperv_fb hv_storvsc"
+MODULES_HYPERV="hv_sock hv_utils hv_vmbus hv_balloon hyperv-keyboard hid_hyperv hv_utils hyperv_fb hv_storvsc"
# Virtio
-MODULES_VIRTIO="virtio_scsi virtio_blk virtio_console virtio-rng virtio virtio_balloon virtio_input virtio_ring virtio_pci virtio_mmio virtio_crypto virtio_net"
+MODULES_VIRTIO="virtio_scsi virtio_blk virtio_console virtio-rng virtio virtio_balloon virtio_input virtio_ring virtio_pci virtio_mmio virtio_crypto"
+
+# Misc
+MODULES_MISC="atkbd i8042"
diff --git a/defaults/resume-boot.sh b/defaults/resume-boot.sh
new file mode 100644
index 0000000..d34c932
--- /dev/null
+++ b/defaults/resume-boot.sh
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+. /etc/initrd.defaults
+. /etc/initrd.scripts
+
+GK_INIT_LOG_PREFIX=${0}
+if [ -n "${SSH_CLIENT_IP}" ] && [ -n "${SSH_CLIENT_PORT}" ]
+then
+ GK_INIT_LOG_PREFIX="${0}[${SSH_CLIENT_IP}:${SSH_CLIENT_PORT}]"
+fi
+
+# We don't want to kill init script (PID 1),
+# ourselves and parent process yet...
+pids_to_keep="1 ${$} ${PPID}"
+
+for pid in $(pgrep sh)
+do
+ if ! echo " ${pids_to_keep} " | grep -q " ${pid} "
+ then
+ kill -9 ${pid} &>/dev/null
+ fi
+done
+
+good_msg "Resuming boot process ..."
+[ -f "${GK_SSHD_LOCKFILE}" ] && run rm "${GK_SSHD_LOCKFILE}"
+[ "${PPID}" != '1' ] && kill -9 ${PPID} &>/dev/null
+
+exit 0
diff --git a/defaults/software.sh b/defaults/software.sh
index f332431..01c504b 100644
--- a/defaults/software.sh
+++ b/defaults/software.sh
@@ -9,52 +9,254 @@
# - This file should not override previously defined variables, as their values may
# originate from user changes to /etc/genkernel.conf .
-BUSYBOX_VER="${BUSYBOX_VER:-VERSION_BUSYBOX}"
-BUSYBOX_SRCTAR="${BUSYBOX_SRCTAR:-${DISTDIR}/busybox-${BUSYBOX_VER}.tar.bz2}"
-BUSYBOX_DIR="${BUSYBOX_DIR:-busybox-${BUSYBOX_VER}}"
-BUSYBOX_BINCACHE="${BUSYBOX_BINCACHE:-%%CACHE%%/busybox-${BUSYBOX_VER}-%%ARCH%%.tar.bz2}"
-
-LIBAIO_VER="${LIBAIO_VER:-VERSION_LIBAIO}"
-LIBAIO_DIR="${LIBAIO_DIR:-libaio-${LIBAIO_VER}}"
-LIBAIO_SRCTAR="${LIBAIO_SRCTAR:-${DISTDIR}/libaio-${LIBAIO_VER}.tar.gz}"
-LIBAIO_BINCACHE="${LIBAIO_BINCACHE:-%%CACHE%%/libaio-${LIBAIO_VER}-%%ARCH%%.tar.bz2}"
-
-LVM_VER="${LVM_VER:-VERSION_LVM}"
-LVM_DIR="${LVM_DIR:-LVM2.${LVM_VER}}"
-LVM_SRCTAR="${LVM_SRCTAR:-${DISTDIR}/LVM2.${LVM_VER}.tgz}"
-LVM_BINCACHE="${LVM_BINCACHE:-%%CACHE%%/LVM2.${LVM_VER}-%%ARCH%%.tar.bz2}"
-
-MDADM_VER="${MDADM_VER:-VERSION_MDADM}"
-MDADM_DIR="${MDADM_DIR:-mdadm-${MDADM_VER}}"
-MDADM_SRCTAR="${MDADM_SRCTAR:-${DISTDIR}/mdadm-${MDADM_VER}.tar.xz}"
-MDADM_BINCACHE="${MDADM_BINCACHE:-%%CACHE%%/mdadm-${MDADM_VER}-%%ARCH%%.tar.bz2}"
-
-DMRAID_VER="${DMRAID_VER:-VERSION_DMRAID}"
-DMRAID_DIR="${DMRAID_DIR:-dmraid/${DMRAID_VER}/dmraid}"
-DMRAID_SRCTAR="${DMRAID_SRCTAR:-${DISTDIR}/dmraid-${DMRAID_VER}.tar.bz2}"
-DMRAID_BINCACHE="${DMRAID_BINCACHE:-%%CACHE%%/dmraid-${DMRAID_VER}-%%ARCH%%.tar.bz2}"
-
-ISCSI_VER="${ISCSI_VER:-VERSION_ISCSI}"
-ISCSI_DIR="${ISCSI_DIR:-open-iscsi-${ISCSI_VER}}"
-ISCSI_SRCTAR="${ISCSI_SRCTAR:-${DISTDIR}/open-iscsi-${ISCSI_VER}.tar.gz}"
-ISCSI_BINCACHE="${ISCSI_BINCACHE:-%%CACHE%%/iscsi-${ISCSI_VER}-%%ARCH%%.bz2}"
-
-ISCSI_ISNS_VER="${ISCSI_ISNS_VER:-VERSION_ISCSI_ISNS}"
-ISCSI_ISNS_DIR="${ISCSI_ISNS_DIR:-open-isns-${ISCSI_ISNS_VER}}"
-ISCSI_ISNS_SRCTAR="${ISCSI_ISNS_SRCTAR:-${DISTDIR}/open-isns-${ISCSI_ISNS_VER}.tar.gz}"
-ISCSI_ISNS_BINCACHE="${ISCSI_ISNS_BINCACHE:-%%CACHE%%/open-isns-${ISCSI_ISNS_VER}-%%ARCH%%.tar.bz2}"
-
-FUSE_VER="${FUSE_VER:-VERSION_FUSE}"
-FUSE_DIR="${FUSE_DIR:-fuse-${FUSE_VER}}"
-FUSE_SRCTAR="${FUSE_SRCTAR:-${DISTDIR}/fuse-${FUSE_VER}.tar.gz}"
-FUSE_BINCACHE="${FUSE_BINCACHE:-%%CACHE%%/fuse-${FUSE_VER}-%%ARCH%%.tar.bz2}"
-
-UNIONFS_FUSE_VER="${UNIONFS_FUSE_VER:-VERSION_UNIONFS_FUSE}"
-UNIONFS_FUSE_DIR="${UNIONFS_FUSE_DIR:-unionfs-fuse-${UNIONFS_FUSE_VER}}"
-UNIONFS_FUSE_SRCTAR="${UNIONFS_FUSE_SRCTAR:-${DISTDIR}/unionfs-fuse-${UNIONFS_FUSE_VER}.tar.gz}"
-UNIONFS_FUSE_BINCACHE="${UNIONFS_FUSE_BINCACHE:-%%CACHE%%/unionfs-fuse-${UNIONFS_FUSE_VER}-%%ARCH%%.bz2}"
-
-GPG_VER="${GPG_VER:-VERSION_GPG}"
-GPG_DIR="${GPG_DIR:-gnupg-${GPG_VER}}"
-GPG_SRCTAR="${GPG_SRCTAR:-${DISTDIR}/gnupg-${GPG_VER}.tar.bz2}"
-GPG_BINCACHE="${GPG_BINCACHE:-%%CACHE%%/gnupg-${GPG_VER}-%%ARCH%%.bz2}"
+GKPKG_BCACHE_TOOLS_PN="bcache-tools"
+GKPKG_BCACHE_TOOLS_PV="${GKPKG_BCACHE_TOOLS_PV:-${VERSION_BCACHE_TOOLS}}"
+GKPKG_BCACHE_TOOLS_DEPS="util-linux eudev"
+GKPKG_BCACHE_TOOLS_SRCTAR="${GKPKG_BCACHE_TOOLS_SRCTAR:-${DISTDIR}/bcache-tools-${GKPKG_BCACHE_TOOLS_PV}.tar.gz}"
+GKPKG_BCACHE_TOOLS_SRCDIR="${GKPKG_BCACHE_TOOLS_SRCDIR:-bcache-tools-399021549984ad27bf4a13ae85e458833fe003d7}"
+GKPKG_BCACHE_TOOLS_BINPKG="${GKPKG_BCACHE_TOOLS_BINPKG:-%%CACHE%%/bcache-tools-${GKPKG_BCACHE_TOOLS_PV}-%%ARCH%%.tar.xz}"
+
+GKPKG_BOOST_PN="boost"
+GKPKG_BOOST_PV="${GKPKG_BOOST_PV:-${VERSION_BOOST}}"
+GKPKG_BOOST_DEPS="boost-build"
+GKPKG_BOOST_SRCTAR="${GKPKG_BOOST_SRCTAR:-${DISTDIR}/boost_${GKPKG_BOOST_PV//./_}.tar.bz2}"
+GKPKG_BOOST_SRCDIR="${GKPKG_BOOST_SRCDIR:-boost_${GKPKG_BOOST_PV//./_}}"
+GKPKG_BOOST_BINPKG="${GKPKG_BOOST_BINPKG:-%%CACHE%%/boost-${GKPKG_BOOST_PV}-%%ARCH%%.tar.xz}"
+
+GKPKG_BOOST_BUILD_PN="boost-build"
+GKPKG_BOOST_BUILD_PV="${GKPKG_BOOST_PV}"
+GKPKG_BOOST_BUILD_DEPS=""
+GKPKG_BOOST_BUILD_SRCTAR="${GKPKG_BOOST_SRCTAR}"
+GKPKG_BOOST_BUILD_SRCDIR="${GKPKG_BOOST_SRCDIR}"
+GKPKG_BOOST_BUILD_BINPKG="${GKPKG_BOOST_BUILD_BINPKG:-%%CACHE%%/boost-build-${GKPKG_BOOST_BUILD_PV}.tar.xz}"
+
+GKPKG_BTRFS_PROGS_PN="btrfs-progs"
+GKPKG_BTRFS_PROGS_PV="${GKPKG_BTRFS_PROGS_PV:-${VERSION_BTRFS_PROGS}}"
+GKPKG_BTRFS_PROGS_DEPS="util-linux zlib zstd lzo eudev"
+GKPKG_BTRFS_PROGS_SRCTAR="${GKPKG_BTRFS_PROGS_SRCTAR:-${DISTDIR}/btrfs-progs-v${GKPKG_BTRFS_PROGS_PV}.tar.xz}"
+GKPKG_BTRFS_PROGS_SRCDIR="${GKPKG_BTRFS_PROGS_SRCDIR:-btrfs-progs-v${GKPKG_BTRFS_PROGS_PV}}"
+GKPKG_BTRFS_PROGS_BINPKG="${GKPKG_BTRFS_PROGS_BINPKG:-%%CACHE%%/btrfs-progs-${GKPKG_BTRFS_PROGS_PV}-%%ARCH%%.tar.xz}"
+
+GKPKG_BUSYBOX_PN="busybox"
+GKPKG_BUSYBOX_PV="${GKPKG_BUSYBOX_PV:-${VERSION_BUSYBOX}}"
+GKPKG_BUSYBOX_DEPS="libxcrypt"
+GKPKG_BUSYBOX_SRCTAR="${GKPKG_BUSYBOX_SRCTAR:-${DISTDIR}/busybox-${GKPKG_BUSYBOX_PV}.tar.bz2}"
+GKPKG_BUSYBOX_SRCDIR="${GKPKG_BUSYBOX_SRCDIR:-busybox-${GKPKG_BUSYBOX_PV}}"
+GKPKG_BUSYBOX_BINPKG="${GKPKG_BUSYBOX_BINPKG:-%%CACHE%%/busybox-${GKPKG_BUSYBOX_PV}-%%ARCH%%.tar.xz}"
+
+GKPKG_COREUTILS_PN="coreutils"
+GKPKG_COREUTILS_PV="${GKPKG_COREUTILS_PV:-${VERSION_COREUTILS}}"
+GKPKG_COREUTILS_DEPS=""
+GKPKG_COREUTILS_SRCTAR="${GKPKG_COREUTILS_SRCTAR:-${DISTDIR}/coreutils-${GKPKG_COREUTILS_PV}.tar.xz}"
+GKPKG_COREUTILS_SRCDIR="${GKPKG_COREUTILS_SRCDIR:-coreutils-${GKPKG_COREUTILS_PV}}"
+GKPKG_COREUTILS_BINPKG="${GKPKG_COREUTILS_BINPKG:-%%CACHE%%/coreutils-${GKPKG_COREUTILS_PV}-%%ARCH%%.tar.xz}"
+
+GKPKG_CRYPTSETUP_PN="cryptsetup"
+GKPKG_CRYPTSETUP_PV="${GKPKG_CRYPTSETUP_PV:-${VERSION_CRYPTSETUP}}"
+GKPKG_CRYPTSETUP_DEPS="util-linux eudev json-c popt libgpg-error libgcrypt lvm"
+GKPKG_CRYPTSETUP_SRCTAR="${GKPKG_CRYPTSETUP_SRCTAR:-${DISTDIR}/cryptsetup-${GKPKG_CRYPTSETUP_PV}.tar.xz}"
+GKPKG_CRYPTSETUP_SRCDIR="${GKPKG_CRYPTSETUP_SRCDIR:-cryptsetup-${GKPKG_CRYPTSETUP_PV}}"
+GKPKG_CRYPTSETUP_BINPKG="${GKPKG_CRYPTSETUP_BINPKG:-%%CACHE%%/cryptsetup-${GKPKG_CRYPTSETUP_PV}-%%ARCH%%.tar.xz}"
+
+GKPKG_DMRAID_PN="dmraid"
+GKPKG_DMRAID_PV="${GKPKG_DMRAID_PV:-${VERSION_DMRAID}}"
+GKPKG_DMRAID_DEPS="eudev lvm"
+GKPKG_DMRAID_SRCTAR="${GKPKG_DMRAID_SRCTAR:-${DISTDIR}/dmraid-${GKPKG_DMRAID_PV}.tar.bz2}"
+GKPKG_DMRAID_SRCDIR="${GKPKG_DMRAID_SRCDIR:-dmraid/${GKPKG_DMRAID_PV}/dmraid}"
+GKPKG_DMRAID_BINPKG="${GKPKG_DMRAID_BINPKG:-%%CACHE%%/dmraid-${GKPKG_DMRAID_PV}-%%ARCH%%.tar.xz}"
+
+GKPKG_DROPBEAR_PN="dropbear"
+GKPKG_DROPBEAR_PV="${GKPKG_DROPBEAR_PV:-${VERSION_DROPBEAR}}"
+GKPKG_DROPBEAR_DEPS="zlib libxcrypt"
+GKPKG_DROPBEAR_SRCTAR="${GKPKG_DROPBEAR_SRCTAR:-${DISTDIR}/dropbear-${GKPKG_DROPBEAR_PV}.tar.bz2}"
+GKPKG_DROPBEAR_SRCDIR="${GKPKG_DROPBEAR_SRCDIR:-dropbear-${GKPKG_DROPBEAR_PV}}"
+GKPKG_DROPBEAR_BINPKG="${GKPKG_DROPBEAR_BINPKG:-%%CACHE%%/dropbear-${GKPKG_DROPBEAR_PV}-%%ARCH%%.tar.xz}"
+
+GKPKG_EUDEV_PN="eudev"
+GKPKG_EUDEV_PV="${GKPKG_EUDEV_PV:-${VERSION_EUDEV}}"
+GKPKG_EUDEV_DEPS="util-linux zlib xz zstd kmod"
+GKPKG_EUDEV_SRCTAR="${GKPKG_EUDEV_SRCTAR:-${DISTDIR}/eudev-${GKPKG_EUDEV_PV}.tar.gz}"
+GKPKG_EUDEV_SRCDIR="${GKPKG_EUDEV_SRCDIR:-eudev-${GKPKG_EUDEV_PV}}"
+GKPKG_EUDEV_BINPKG="${GKPKG_EUDEV_BINPKG:-%%CACHE%%/eudev-${GKPKG_EUDEV_PV}-%%ARCH%%.tar.xz}"
+
+GKPKG_EXPAT_PN="expat"
+GKPKG_EXPAT_PV="${GKPKG_EXPAT_PV:-${VERSION_EXPAT}}"
+GKPKG_EXPAT_DEPS=""
+GKPKG_EXPAT_SRCTAR="${GKPKG_EXPAT_SRCTAR:-${DISTDIR}/expat-${GKPKG_EXPAT_PV}.tar.xz}"
+GKPKG_EXPAT_SRCDIR="${GKPKG_EXPAT_SRCDIR:-expat-${GKPKG_EXPAT_PV}}"
+GKPKG_EXPAT_BINPKG="${GKPKG_EXPAT_BINPKG:-%%CACHE%%/expat-${GKPKG_EXPAT_PV}-%%ARCH%%.tar.xz}"
+
+GKPKG_E2FSPROGS_PN="e2fsprogs"
+GKPKG_E2FSPROGS_PV="${GKPKG_E2FSPROGS_PV:-${VERSION_E2FSPROGS}}"
+GKPKG_E2FSPROGS_DEPS="util-linux"
+GKPKG_E2FSPROGS_SRCTAR="${GKPKG_E2FSPROGS_SRCTAR:-${DISTDIR}/e2fsprogs-${GKPKG_E2FSPROGS_PV}.tar.xz}"
+GKPKG_E2FSPROGS_SRCDIR="${GKPKG_E2FSPROGS_SRCDIR:-e2fsprogs-${GKPKG_E2FSPROGS_PV}}"
+GKPKG_E2FSPROGS_BINPKG="${GKPKG_E2FSPROGS_BINPKG:-%%CACHE%%/e2fsprogs-${GKPKG_E2FSPROGS_PV}-%%ARCH%%.tar.xz}"
+
+GKPKG_FUSE_PN="fuse"
+GKPKG_FUSE_PV="${GKPKG_FUSE_PV:-${VERSION_FUSE}}"
+GKPKG_FUSE_DEPS=""
+GKPKG_FUSE_SRCTAR="${GKPKG_FUSE_SRCTAR:-${DISTDIR}/fuse-${GKPKG_FUSE_PV}.tar.gz}"
+GKPKG_FUSE_SRCDIR="${GKPKG_FUSE_SRCDIR:-fuse-${GKPKG_FUSE_PV}}"
+GKPKG_FUSE_BINPKG="${GKPKG_FUSE_BINPKG:-%%CACHE%%/fuse-${GKPKG_FUSE_PV}-%%ARCH%%.tar.xz}"
+
+GKPKG_GPG_PN="gnupg"
+GKPKG_GPG_PV="${GKPKG_GPG_PV:-${VERSION_GPG}}"
+GKPKG_GPG_DEPS=""
+GKPKG_GPG_SRCTAR="${GKPKG_GPG_SRCTAR:-${DISTDIR}/gnupg-${GKPKG_GPG_PV}.tar.bz2}"
+GKPKG_GPG_SRCDIR="${GKPKG_GPG_SRCDIR:-gnupg-${GKPKG_GPG_PV}}"
+GKPKG_GPG_BINPKG="${GKPKG_GPG_BINPKG:-%%CACHE%%/gnupg-${GKPKG_GPG_PV}-%%ARCH%%.tar.xz}"
+
+GKPKG_HWIDS_PN="hwids"
+GKPKG_HWIDS_PV="${GKPKG_HWIDS_PV:-${VERSION_HWIDS}}"
+GKPKG_HWIDS_DEPS="eudev"
+GKPKG_HWIDS_SRCTAR="${GKPKG_HWIDS_SRCTAR:-${DISTDIR}/hwids-${GKPKG_HWIDS_PV}.tar.gz}"
+GKPKG_HWIDS_SRCDIR="${GKPKG_HWIDS_SRCDIR:-hwids-${GKPKG_HWIDS_PV}}"
+GKPKG_HWIDS_BINPKG="${GKPKG_HWIDS_BINPKG:-%%CACHE%%/hwids-${GKPKG_HWIDS_PV}-%%ARCH%%.tar.xz}"
+
+GKPKG_ISCSI_PN="open-iscsi"
+GKPKG_ISCSI_PV="${GKPKG_ISCSI_PV:-${VERSION_ISCSI}}"
+GKPKG_ISCSI_DEPS="util-linux zlib xz zstd kmod"
+GKPKG_ISCSI_SRCTAR="${GKPKG_ISCSI_SRCTAR:-${DISTDIR}/open-iscsi-${GKPKG_ISCSI_PV}.tar.gz}"
+GKPKG_ISCSI_SRCDIR="${GKPKG_ISCSI_SRCDIR:-open-iscsi-${GKPKG_ISCSI_PV}}"
+GKPKG_ISCSI_BINPKG="${GKPKG_ISCSI_BINPKG:-%%CACHE%%/iscsi-${GKPKG_ISCSI_PV}-%%ARCH%%.tar.xz}"
+
+GKPKG_JSON_C_PN="json-c"
+GKPKG_JSON_C_PV="${GKPKG_JSON_C_PV:-${VERSION_JSON_C}}"
+GKPKG_JSON_C_DEPS=""
+GKPKG_JSON_C_SRCTAR="${GKPKG_JSON_C_SRCTAR:-${DISTDIR}/json-c-${GKPKG_JSON_C_PV}.tar.gz}"
+GKPKG_JSON_C_SRCDIR="${GKPKG_JSON_C_SRCDIR:-json-c-${GKPKG_JSON_C_PV}}"
+GKPKG_JSON_C_BINPKG="${GKPKG_JSON_C_BINPKG:-%%CACHE%%/json-c-${GKPKG_JSON_C_PV}-%%ARCH%%.tar.xz}"
+
+GKPKG_KEYUTILS_PN="keyutils"
+GKPKG_KEYUTILS_PV="${GKPKG_KEYUTILS_PV:-1.6.3}"
+GKPKG_KEYUTILS_DEPS=""
+GKPKG_KEYUTILS_SRCTAR="${GKPKG_KEYUTILS_SRCTAR:-${DISTDIR}/keyutils-${GKPKG_KEYUTILS_PV}.tar.gz}"
+GKPKG_KEYUTILS_SRCDIR="${GKPKG_KEYUTILS_SRCDIR:-keyutils-${GKPKG_KEYUTILS_PV}}"
+GKPKG_KEYUTILS_BINPKG="${GKPKG_KEYUTILS_BINPKG:-%%CACHE%%/keyutils-${GKPKG_KEYUTILS_PV}-%%ARCH%%.tar.xz}"
+
+GKPKG_KMOD_PN="kmod"
+GKPKG_KMOD_PV="${GKPKG_KMOD_PV:-${VERSION_KMOD}}"
+GKPKG_KMOD_DEPS="zlib xz zstd"
+GKPKG_KMOD_SRCTAR="${GKPKG_KMOD_SRCTAR:-${DISTDIR}/kmod-${GKPKG_KMOD_PV}.tar.xz}"
+GKPKG_KMOD_SRCDIR="${GKPKG_KMOD_SRCDIR:-kmod-${GKPKG_KMOD_PV}}"
+GKPKG_KMOD_BINPKG="${GKPKG_KMOD_BINPKG:-%%CACHE%%/kmod-${GKPKG_KMOD_PV}-%%ARCH%%.tar.xz}"
+
+GKPKG_LIBAIO_PN="libaio"
+GKPKG_LIBAIO_PV="${GKPKG_LIBAIO_PV:-${VERSION_LIBAIO}}"
+GKPKG_LIBAIO_DEPS=""
+GKPKG_LIBAIO_SRCTAR="${GKPKG_LIBAIO_SRCTAR:-${DISTDIR}/libaio-${GKPKG_LIBAIO_PV}.tar.gz}"
+GKPKG_LIBAIO_SRCDIR="${GKPKG_LIBAIO_SRCDIR:-libaio-${GKPKG_LIBAIO_PV}}"
+GKPKG_LIBAIO_BINPKG="${GKPKG_LIBAIO_BINPKG:-%%CACHE%%/libaio-${GKPKG_LIBAIO_PV}-%%ARCH%%.tar.xz}"
+
+GKPKG_LIBGCRYPT_PN="libgcrypt"
+GKPKG_LIBGCRYPT_PV="${GKPKG_LIBGCRYPT_PV:-${VERSION_LIBGCRYPT}}"
+GKPKG_LIBGCRYPT_DEPS="libgpg-error"
+GKPKG_LIBGCRYPT_SRCTAR="${GKPKG_LIBGCRYPT_SRCTAR:-${DISTDIR}/libgcrypt-${GKPKG_LIBGCRYPT_PV}.tar.bz2}"
+GKPKG_LIBGCRYPT_SRCDIR="${GKPKG_LIBGCRYPT_SRCDIR:-libgcrypt-${GKPKG_LIBGCRYPT_PV}}"
+GKPKG_LIBGCRYPT_BINPKG="${GKPKG_LIBGCRYPT_BINPKG:-%%CACHE%%/libgcrypt-${GKPKG_LIBGCRYPT_PV}-%%ARCH%%.tar.xz}"
+
+GKPKG_LIBGPG_ERROR_PN="libgpg-error"
+GKPKG_LIBGPG_ERROR_PV="${GKPKG_LIBGPG_ERROR_PV:-${VERSION_LIBGPGERROR}}"
+GKPKG_LIBGPG_ERROR_DEPS=""
+GKPKG_LIBGPG_ERROR_SRCTAR="${GKPKG_LIBGPG_ERROR_SRCTAR:-${DISTDIR}/libgpg-error-${GKPKG_LIBGPG_ERROR_PV}.tar.bz2}"
+GKPKG_LIBGPG_ERROR_SRCDIR="${GKPKG_LIBGPG_ERROR_SRCDIR:-libgpg-error-${GKPKG_LIBGPG_ERROR_PV}}"
+GKPKG_LIBGPG_ERROR_BINPKG="${GKPKG_LIBGPG_ERROR_BINPKG:-%%CACHE%%/libgpg-error-${GKPKG_LIBGPG_ERROR_PV}-%%ARCH%%.tar.xz}"
+
+GKPKG_LIBXCRYPT_PN="libxcrypt"
+GKPKG_LIBXCRYPT_PV="${GKPKG_LIBXCRYPT_PV:-${VERSION_LIBXCRYPT}}"
+GKPKG_LIBXCRYPT_DEPS=""
+GKPKG_LIBXCRYPT_SRCTAR="${GKPKG_LIBXCRYPT_SRCTAR:-${DISTDIR}/libxcrypt-${GKPKG_LIBXCRYPT_PV}.tar.xz}"
+GKPKG_LIBXCRYPT_SRCDIR="${GKPKG_LIBXCRYPT_SRCDIR:-libxcrypt-${GKPKG_LIBXCRYPT_PV}}"
+GKPKG_LIBXCRYPT_BINPKG="${GKPKG_LIBXCRYPT_BINPKG:-%%CACHE%%/libxcrypt-${GKPKG_LIBXCRYPT_PV}-%%ARCH%%.tar.xz}"
+
+GKPKG_LVM_PN="lvm"
+GKPKG_LVM_PV="${GKPKG_LVM_PV:-${VERSION_LVM}}"
+GKPKG_LVM_DEPS="util-linux eudev libaio"
+GKPKG_LVM_SRCTAR="${GKPKG_LVM_SRCTAR:-${DISTDIR}/LVM2.${GKPKG_LVM_PV}.tgz}"
+GKPKG_LVM_SRCDIR="${GKPKG_LVM_SRCDIR:-LVM2.${GKPKG_LVM_PV}}"
+GKPKG_LVM_BINPKG="${GKPKG_LVM_BINPKG:-%%CACHE%%/LVM2.${GKPKG_LVM_PV}-%%ARCH%%.tar.xz}"
+
+GKPKG_LZO_PN="lzo"
+GKPKG_LZO_PV="${GKPKG_LZO_PV:-${VERSION_LZO}}"
+GKPKG_LZO_DEPS=""
+GKPKG_LZO_SRCTAR="${GKPKG_LZO_SRCTAR:-${DISTDIR}/lzo-${GKPKG_LZO_PV}.tar.gz}"
+GKPKG_LZO_SRCDIR="${GKPKG_LZO_SRCDIR:-lzo-${GKPKG_LZO_PV}}"
+GKPKG_LZO_BINPKG="${GKPKG_LZO_BINPKG:-%%CACHE%%/lzo-${GKPKG_LZO_PV}-%%ARCH%%.tar.xz}"
+
+GKPKG_MDADM_PN="mdadm"
+GKPKG_MDADM_PV="${GKPKG_MDADM_PV:-${VERSION_MDADM}}"
+GKPKG_MDADM_DEPS="eudev"
+GKPKG_MDADM_SRCTAR="${GKPKG_MDADM_SRCTAR:-${DISTDIR}/mdadm-${GKPKG_MDADM_PV}.tar.xz}"
+GKPKG_MDADM_SRCDIR="${GKPKG_MDADM_SRCDIR:-mdadm-${GKPKG_MDADM_PV}}"
+GKPKG_MDADM_BINPKG="${GKPKG_MDADM_BINPKG:-%%CACHE%%/mdadm-${GKPKG_MDADM_PV}-%%ARCH%%.tar.xz}"
+
+GKPKG_POPT_PN="popt"
+GKPKG_POPT_PV="${GKPKG_POPT_PV:-${VERSION_POPT}}"
+GKPKG_POPT_DEPS=""
+GKPKG_POPT_SRCTAR="${GKPKG_POPT_SRCTAR:-${DISTDIR}/popt-${GKPKG_POPT_PV}.tar.gz}"
+GKPKG_POPT_SRCDIR="${GKPKG_POPT_SRCDIR:-popt-${GKPKG_POPT_PV}}"
+GKPKG_POPT_BINPKG="${GKPKG_POPT_BINPKG:-%%CACHE%%/popt-${GKPKG_POPT_PV}-%%ARCH%%.tar.xz}"
+
+GKPKG_STRACE_PN="strace"
+GKPKG_STRACE_PV="${GKPKG_STRACE_PV:-${VERSION_STRACE}}"
+GKPKG_STRACE_DEPS="libaio"
+GKPKG_STRACE_SRCTAR="${GKPKG_STRACE_SRCTAR:-${DISTDIR}/strace-${GKPKG_STRACE_PV}.tar.xz}"
+GKPKG_STRACE_SRCDIR="${GKPKG_STRACE_SRCDIR:-strace-${GKPKG_STRACE_PV}}"
+GKPKG_STRACE_BINPKG="${GKPKG_STRACE_BINPKG:-%%CACHE%%/strace-${GKPKG_STRACE_PV}-%%ARCH%%.tar.xz}"
+
+GKPKG_THIN_PROVISIONING_TOOLS_PN="thin-provisioning-tools"
+GKPKG_THIN_PROVISIONING_TOOLS_PV="${GKPKG_THIN_PROVISIONING_TOOLS_PV:-${VERSION_THIN_PROVISIONING_TOOLS}}"
+GKPKG_THIN_PROVISIONING_TOOLS_DEPS="boost libaio expat"
+GKPKG_THIN_PROVISIONING_TOOLS_SRCTAR="${GKPKG_THIN_PROVISIONING_TOOLS_SRCTAR:-${DISTDIR}/thin-provisioning-tools-${GKPKG_THIN_PROVISIONING_TOOLS_PV}.tar.gz}"
+GKPKG_THIN_PROVISIONING_TOOLS_SRCDIR="${GKPKG_THIN_PROVISIONING_TOOLS_SRCDIR:-thin-provisioning-tools-${GKPKG_THIN_PROVISIONING_TOOLS_PV}}"
+GKPKG_THIN_PROVISIONING_TOOLS_BINPKG="${GKPKG_THIN_PROVISIONING_TOOLS_BINPKG:-%%CACHE%%/thin-provisioning-tools-${GKPKG_THIN_PROVISIONING_TOOLS_PV}-%%ARCH%%.tar.xz}"
+
+GKPKG_UNIONFS_FUSE_PN="unionfs-fuse"
+GKPKG_UNIONFS_FUSE_PV="${GKPKG_UNIONFS_FUSE_PV:-${VERSION_UNIONFS_FUSE}}"
+GKPKG_UNIONFS_FUSE_DEPS="fuse"
+GKPKG_UNIONFS_FUSE_SRCTAR="${GKPKG_UNIONFS_FUSE_SRCTAR:-${DISTDIR}/unionfs-fuse-${GKPKG_UNIONFS_FUSE_PV}.tar.gz}"
+GKPKG_UNIONFS_FUSE_SRCDIR="${GKPKG_UNIONFS_FUSE_SRCDIR:-unionfs-fuse-${GKPKG_UNIONFS_FUSE_PV}}"
+GKPKG_UNIONFS_FUSE_BINPKG="${GKPKG_UNIONFS_FUSE_BINPKG:-%%CACHE%%/unionfs-fuse-${GKPKG_UNIONFS_FUSE_PV}-%%ARCH%%.tar.xz}"
+
+GKPKG_USERSPACE_RCU_PN="userspace-rcu"
+GKPKG_USERSPACE_RCU_PV="${GKPKG_USERSPACE_RCU_PV:-${VERSION_USERSPACE_RCU}}"
+GKPKG_USERSPACE_RCU_DEPS=""
+GKPKG_USERSPACE_RCU_SRCTAR="${GKPKG_UTIL_LINUX_SRCTAR:-${DISTDIR}/userspace-rcu-${GKPKG_USERSPACE_RCU_PV}.tar.bz2}"
+GKPKG_USERSPACE_RCU_SRCDIR="${GKPKG_UTIL_LINUX_SRCDIR:-userspace-rcu-${GKPKG_USERSPACE_RCU_PV}}"
+GKPKG_USERSPACE_RCU_BINPKG="${GKPKG_UTIL_LINUX_BINPKG:-%%CACHE%%/userspace-rcu-${GKPKG_USERSPACE_RCU_PV}-%%ARCH%%.tar.xz}"
+
+GKPKG_UTIL_LINUX_PN="util-linux"
+GKPKG_UTIL_LINUX_PV="${GKPKG_UTIL_LINUX_PV:-${VERSION_UTIL_LINUX}}"
+GKPKG_UTIL_LINUX_DEPS=""
+GKPKG_UTIL_LINUX_SRCTAR="${GKPKG_UTIL_LINUX_SRCTAR:-${DISTDIR}/util-linux-${GKPKG_UTIL_LINUX_PV}.tar.xz}"
+GKPKG_UTIL_LINUX_SRCDIR="${GKPKG_UTIL_LINUX_SRCDIR:-util-linux-${GKPKG_UTIL_LINUX_PV}}"
+GKPKG_UTIL_LINUX_BINPKG="${GKPKG_UTIL_LINUX_BINPKG:-%%CACHE%%/util-linux-${GKPKG_UTIL_LINUX_PV}-%%ARCH%%.tar.xz}"
+
+GKPKG_XFSPROGS_PN="xfsprogs"
+GKPKG_XFSPROGS_PV="${GKPKG_XFSPROGS_PV:-${VERSION_XFSPROGS}}"
+GKPKG_XFSPROGS_DEPS="util-linux userspace-rcu"
+GKPKG_XFSPROGS_SRCTAR="${GKPKG_XFSPROGS_SRCTAR:-${DISTDIR}/xfsprogs-${GKPKG_XFSPROGS_PV}.tar.xz}"
+GKPKG_XFSPROGS_SRCDIR="${GKPKG_XFSPROGS_SRCDIR:-xfsprogs-${GKPKG_XFSPROGS_PV}}"
+GKPKG_XFSPROGS_BINPKG="${GKPKG_XFSPROGS_BINPKG:-%%CACHE%%/xfsprogs-${GKPKG_XFSPROGS_PV}-%%ARCH%%.tar.xz}"
+
+GKPKG_XZ_PN="xz"
+GKPKG_XZ_PV="${GKPKG_XZ_PV:-${VERSION_XZ}}"
+GKPKG_XZ_DEPS=""
+GKPKG_XZ_SRCTAR="${GKPKG_XZ_SRCTAR:-${DISTDIR}/xz-${GKPKG_XZ_PV}.tar.gz}"
+GKPKG_XZ_SRCDIR="${GKPKG_XZ_SRCDIR:-xz-${GKPKG_XZ_PV}}"
+GKPKG_XZ_BINPKG="${GKPKG_XZ_BINPKG:-%%CACHE%%/xz-${GKPKG_XZ_PV}-%%ARCH%%.tar.xz}"
+
+GKPKG_ZLIB_PN="zlib"
+GKPKG_ZLIB_PV="${GKPKG_ZLIB_PV:-${VERSION_ZLIB}}"
+GKPKG_ZLIB_DEPS=""
+GKPKG_ZLIB_SRCTAR="${GKPKG_ZLIB_SRCTAR:-${DISTDIR}/zlib-${GKPKG_ZLIB_PV}.tar.gz}"
+GKPKG_ZLIB_SRCDIR="${GKPKG_ZLIB_SRCDIR:-zlib-${GKPKG_ZLIB_PV}}"
+GKPKG_ZLIB_BINPKG="${GKPKG_ZLIB_BINPKG:-%%CACHE%%/zlib-${GKPKG_ZLIB_PV}-%%ARCH%%.tar.xz}"
+
+GKPKG_ZSTD_PN="zstd"
+GKPKG_ZSTD_PV="${GKPKG_ZSTD_PV:-${VERSION_ZSTD}}"
+GKPKG_ZSTD_DEPS=""
+GKPKG_ZSTD_SRCTAR="${GKPKG_ZSTD_SRCTAR:-${DISTDIR}/zstd-${GKPKG_ZSTD_PV}.tar.gz}"
+GKPKG_ZSTD_SRCDIR="${GKPKG_ZSTD_SRCDIR:-zstd-${GKPKG_ZSTD_PV}}"
+GKPKG_ZSTD_BINPKG="${GKPKG_ZSTD_BINPKG:-%%CACHE%%/zstd-${GKPKG_ZSTD_PV}-%%ARCH%%.tar.xz}"
diff --git a/defaults/udhcpc.scripts b/defaults/udhcpc.scripts
index 53aa2cc..a7a4a52 100755..100644
--- a/defaults/udhcpc.scripts
+++ b/defaults/udhcpc.scripts
@@ -1,18 +1,24 @@
#!/bin/sh
-[ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1
+if [ -z "$1" ]
+then
+ echo "Error: should be called from udhcpc"
+ exit 1
+fi
case ${1} in
- renew|bound)
- [ -n "$broadcast" ] && BROADCAST="broadcast $broadcast"
- [ -n "$subnet" ] && NETMASK="netmask $subnet"
- [ -n "$rootpath" ] && echo "$rootpath" > /rootpath
- [ -n "$hostname" ] && hostname ${hostname}
+ bound|renew)
+ [ -n "$broadcast" ] && BROADCAST="broadcast ${broadcast}"
+ [ -n "$subnet" ] && NETMASK="netmask ${subnet}"
+ [ -n "$rootpath" ] && echo "${rootpath}" > /rootpath
+ [ -n "$hostname" ] && hostname "${hostname}"
+
+ busybox ifconfig "${interface}" ${ip} ${BROADCAST} ${NETMASK}
- busybox ifconfig $interface $ip $BROADCAST $NETMASK
if [ -n "${router}" ]
then
- while route del default gw 0.0.0.0 dev $interface; do
+ while busybox route del default gw 0.0.0.0 dev "${interface}" >/dev/null 2>&1
+ do
:
done
@@ -21,7 +27,9 @@ case ${1} in
busybox route add default gw ${i}
done
fi
+
[ -n "$domain" ] && echo "domain ${domain}" >> /etc/resolv.conf
+
if [ -n "${dns}" ]
then
for i in ${dns}
@@ -30,8 +38,21 @@ case ${1} in
done
fi
;;
- deconfig)
- busybox ifconfig $interface 0.0.0.0
+ deconfig|leasefail)
+ busybox ifconfig "${interface}" 0.0.0.0
+ while busybox route del default dev "${interface}" >/dev/null 2>&1
+ do
+ :
+ done
+ ;;
+ nak)
+ echo "nak: ${message}"
+ ;;
+ *)
+ echo "unknown option $1" >&2
+ echo "Usage: $0 {bound|deconfig|leasefail|nak|renew}" >&2
+ exit 1
;;
esac
+exit 0
diff --git a/defaults/unlock-luks.sh b/defaults/unlock-luks.sh
new file mode 100644
index 0000000..54ed1a0
--- /dev/null
+++ b/defaults/unlock-luks.sh
@@ -0,0 +1,145 @@
+#!/bin/sh
+
+print_usage() {
+ echo "Usage: $0 root|swap" >&2
+}
+
+if [ -z "${1}" ]
+then
+ print_usage
+ exit 1
+fi
+
+case "${1}" in
+ root)
+ NAME="${1}"
+ TYPE=ROOT
+ ;;
+ swap)
+ NAME="${1}"
+ TYPE=SWAP
+ ;;
+ *)
+ echo "ERROR: Unknown type '${1}' specified!"
+ print_usage
+ exit 1
+ ;;
+esac
+
+. /etc/initrd.defaults
+. /etc/initrd.scripts
+. "${CRYPT_ENV_FILE}"
+
+GK_INIT_LOG_PREFIX=${0}
+if [ -n "${SSH_CLIENT_IP}" ] && [ -n "${SSH_CLIENT_PORT}" ]
+then
+ GK_INIT_LOG_PREFIX="${0}[${SSH_CLIENT_IP}:${SSH_CLIENT_PORT}]"
+fi
+
+main() {
+ if ! hash cryptsetup >/dev/null 2>&1
+ then
+ bad_msg "cryptsetup program is missing. Was initramfs built without --luks parameter?"
+ exit 1
+ fi
+
+ local LUKS_NAME="${NAME}"
+ eval local LUKS_DEVICE='"${CRYPT_'${TYPE}'}"'
+ eval local LUKS_KEY='"${CRYPT_'${TYPE}'_KEYFILE}"'
+ eval local cryptsetup_options='"${CRYPT_'${TYPE}'_OPTIONS}"'
+ cryptsetup_options="$(trim "${cryptsetup_options}")"
+ eval local OPENED_LOCKFILE='"${CRYPT_'${TYPE}'_OPENED_LOCKFILE}"'
+
+ if [ -z "${LUKS_DEVICE}" ]
+ then
+ bad_msg "'crypt_${NAME}' kernel command-line argument is not set!"
+ exit 1
+ fi
+
+ while true
+ do
+ # Reset cryptsetup_options on each iteration
+ eval local cryptsetup_options='"${CRYPT_'${TYPE}'_OPTIONS}"'
+ cryptsetup_options="$(trim "${cryptsetup_options}")"
+
+ local gpg_cmd crypt_filter_ret
+
+ if [ -e "${OPENED_LOCKFILE}" ]
+ then
+ good_msg "The LUKS device ${LUKS_DEVICE} was opened by someone else in the meanwhile."
+ break
+ else
+ LUKS_DEVICE=$(find_real_device "${LUKS_DEVICE}")
+ if [ -z "${LUKS_DEVICE}" ]
+ then
+ bad_msg "Failed to find LUKS device. If crypt_${NAME} kernel command-line argument is correct you are probably missing kernel support for your storage!" ${CRYPT_SILENT}
+ exit 1
+ fi
+
+ if ! run cryptsetup isLuks "${LUKS_DEVICE}"
+ then
+ bad_msg "The LUKS device ${LUKS_DEVICE} does not contain a LUKS header" ${CRYPT_SILENT}
+
+ # User has SSH access and is able to call script again or
+ # able to investigate the problem on its own.
+ exit 1
+ else
+ if [ -n "${cryptsetup_options}" ]
+ then
+ good_msg "Using the following cryptsetup options for ${LUKS_NAME}: ${cryptsetup_options}" ${CRYPT_SILENT}
+ fi
+
+ # Handle keys
+ if [ -s "${LUKS_KEY}" ]
+ then
+ # we received raw, unencrypted key through SSH -- no GPG possible
+ cryptsetup_options="${cryptsetup_options} -d ${LUKS_KEY}"
+ fi
+
+ # At this point, keyfile or not, we're ready!
+ crypt_filter "${gpg_cmd}cryptsetup ${cryptsetup_options} luksOpen ${LUKS_DEVICE} ${LUKS_NAME}"
+ crypt_filter_ret=$?
+
+ [ -e /dev/tty.org ] \
+ && run rm -f /dev/tty \
+ && run mv /dev/tty.org /dev/tty
+
+ if [ ${crypt_filter_ret} -eq 0 ]
+ then
+ run touch "${OPENED_LOCKFILE}"
+ good_msg "LUKS device ${LUKS_DEVICE} opened" ${CRYPT_SILENT}
+ break
+ else
+ bad_msg "Failed to open LUKS device ${LUKS_DEVICE}" ${CRYPT_SILENT}
+
+ # We need to stop here with a non-zero exit code to prevent
+ # a loop when invalid keyfile was sent.
+ exit 1
+ fi
+ fi
+ fi
+ done
+
+ udevsettle
+
+ if [ -s "${LUKS_KEY}" ]
+ then
+ if ! is_debug
+ then
+ run rm -f "${LUKS_KEY}"
+ else
+ warn_msg "LUKS key file '${LUKS_KEY}' not deleted because DEBUG mode is enabled!"
+ fi
+ fi
+
+ if [ "${crypt_filter_ret}" = '0' ]
+ then
+ # Kill any running cryptsetup prompt for this device.
+ # But SIGINT only to keep shell functional.
+ run pkill -2 -f "luksOpen.*${LUKS_NAME}\$" >/dev/null 2>&1
+ fi
+}
+
+main
+
+exit 0
diff --git a/defaults/unlock-zfs.sh b/defaults/unlock-zfs.sh
new file mode 100644
index 0000000..c22a214
--- /dev/null
+++ b/defaults/unlock-zfs.sh
@@ -0,0 +1,91 @@
+#!/bin/sh
+
+. /etc/initrd.defaults
+. /etc/initrd.scripts
+
+GK_INIT_LOG_PREFIX=${0}
+if [ -n "${SSH_CLIENT_IP}" ] && [ -n "${SSH_CLIENT_PORT}" ]
+then
+ GK_INIT_LOG_PREFIX="${0}[${SSH_CLIENT_IP}:${SSH_CLIENT_PORT}]"
+fi
+
+if [ -f "${ZFS_ENC_ENV_FILE}" ]
+then
+ . "${ZFS_ENC_ENV_FILE}"
+else
+ bad_msg "${ZFS_ENC_ENV_FILE} does not exist! Did you boot without 'dozfs' kernel command-line parameter?"
+ exit 1
+fi
+
+main() {
+ if ! hash zfs >/dev/null 2>&1
+ then
+ bad_msg "zfs program is missing. Was initramfs built without --zfs parameter?"
+ exit 1
+ elif ! hash zpool >/dev/null 2>&1
+ then
+ bad_msg "zpool program is missing. Was initramfs built without --zfs parameter?"
+ exit 1
+ elif [ -z "${ROOTFSTYPE}" ]
+ then
+ bad_msg "Something went wrong. ROOTFSTYPE is not set!"
+ exit 1
+ elif [ "${ROOTFSTYPE}" != "zfs" ]
+ then
+ bad_msg "ROOTFSTYPE of 'zfs' required but '${ROOTFSTYPE}' detected!"
+ exit 1
+ elif [ -z "${REAL_ROOT}" ]
+ then
+ bad_msg "Something went wrong. REAL_ROOT is not set!"
+ exit 1
+ fi
+
+ if [ "$(zpool list -H -o feature@encryption "${REAL_ROOT%%/*}" 2>/dev/null)" != 'active' ]
+ then
+ bad_msg "Root device ${REAL_ROOT} is not encrypted!"
+ exit 1
+ fi
+
+ local ZFS_ENCRYPTIONROOT="$(get_zfs_property "${REAL_ROOT}" encryptionroot)"
+ if [ "${ZFS_ENCRYPTIONROOT}" = '-' ]
+ then
+ bad_msg "Failed to determine encryptionroot for ${REAL_ROOT}!"
+ exit 1
+ fi
+
+ local ZFS_KEYSTATUS=
+ while true
+ do
+ if [ -e "${ZFS_ENC_OPENED_LOCKFILE}" ]
+ then
+ good_msg "${REAL_ROOT} device meanwhile was opened by someone else."
+ break
+ fi
+
+ zfs load-key "${ZFS_ENCRYPTIONROOT}"
+
+ ZFS_KEYSTATUS="$(get_zfs_property "${REAL_ROOT}" keystatus)"
+ if [ "${ZFS_KEYSTATUS}" = 'available' ]
+ then
+ run touch "${ZFS_ENC_OPENED_LOCKFILE}"
+ good_msg "ZFS device ${REAL_ROOT} opened"
+ break
+ else
+ bad_msg "Failed to open ZFS device ${REAL_ROOT}"
+
+ # We need to stop here with a non-zero exit code to prevent
+ # a loop when invalid keyfile was sent.
+ exit 1
+ fi
+ done
+
+ if [ "${ZFS_KEYSTATUS}" = 'available' ]
+ then
+ # Kill any running load-key prompt.
+ run pkill -f "load-key" >/dev/null 2>&1
+ fi
+}
+
+main
+
+exit 0
diff --git a/doc/genkernel.8.txt b/doc/genkernel.8.txt
index 15d5454..571ab06 100644
--- a/doc/genkernel.8.txt
+++ b/doc/genkernel.8.txt
@@ -85,7 +85,7 @@ DEBUGGING OPTIONS
*--*[*no-*]*color*::
Turns on, or off, output in color using escape sequences.
-*--*[*no-*]*debug-cleanup*::
+*--*[*no-*]*cleanup*::
Turns on or off the full post-run cleanup for debug purposes.
@@ -107,6 +107,10 @@ KERNEL CONFIGURATION
Saves, or does not save the kernel configuration to '/etc/kernels'
if the kernel is successfully compiled.
+*--*[*no-*]*bcache*::
+ Adds, or skip adding block layer cache (bcache) support to kernel
+ configuration.
+
*--*[*no-*]*hyperv*::
Adds, or skip adding Microsoft Hyper-V support to kernel configuration.
@@ -120,6 +124,27 @@ KERNEL CONFIGURATION
*--*[*no-*]*virtio*::
Adds, or skip adding VirtIO support to kernel configuration.
+*--kernel-append-localversion*=<...>::
+ Appends value to genkernel's *KERNEL_LOCALVERSION* option (see below).
+ The idea is to use this option to allow to easily build a new revision
+ with own kernel binary, initramfs and modules directory without losing
+ default *KERNEL_LOCALVERSION* value.
+
+*--kernel-localversion*=<...>::
+Set kernel option *LOCALVERSION*. Use special value *UNSET* to
+unset any already set *LOCALVERSION*. The following placeholders are
+available:
++
+[horizontal]
+*%%ARCH%%*:::
+Will be replaced with genkernel arch value, for example 'x86_64'.
+
++
+*LOCALVERSION* is only allowed to contain characters like 'a-z' or 'A-Z',
+'0-9', '_', '.' and '-'.
++
+By default, *LOCALVERSION* will be set to '-%%ARCH%%'.
+
KERNEL COMPILATION
~~~~~~~~~~~~~~~~~~
@@ -142,20 +167,24 @@ KERNEL COMPILATION
are copied over.
*--*[*no-*]*symlink*::
- Manages, or does not manage, symlinks in '/boot' like the manual
- kernel "make install" process does. A kernel (or, depending on
- options, kernelz) symlink will link to the most recently built
- kernel image and a kernel.old (or kernelz.old) symlink will link
- to the second most recently built image, if one exists. Similar
- symlinks (both * and *.old) are managed for initramfs and System.map.
- The corresponding work products (i.e., the actual kernel
- and initramfs images, and System.map) are also managed accordingly.
- NOTE: Specifying *--symlink* does nothing unless
- *--install* is also specified.
-
-*--oldconfig*::
- Implies *--no-clean*, and thus *--no-mrproper*, running a
- "make oldconfig".
+Manages, or does not manage, symlinks in '/boot' like the manual
+kernel "make install" process does. A 'kernel' (or, depending on
+options, 'kernelz') symlink will link to the most recently built
+kernel image and a 'kernel.old' (or 'kernelz.old') symlink will link
+to the second most recently built image, if one exists. Similar
+symlinks (with and without '.old' suffix) are managed for initramfs and
+System.map. The corresponding work products (i.e., the actual kernel
+and initramfs images, and System.map) are also managed accordingly.
++
+The symlink name can be controlled via *--kernel-symlink-name* and/or
+*--initramfs-symlink-name* option.
+
+NOTE: Specifying *--symlink* does nothing unless *--install* is also
+specified.
+
+*--*[*no-*]*oldconfig*::
+ Runs, or does not run, "make oldconfig" before compilation. Specifying
+ *--oldconfig* implies *--no-clean*.
*--*[*no-*]*splash*::
Installs, or not, framebuffer splash support into initramfs.
@@ -166,6 +195,17 @@ KERNEL COMPILATION
*--*[*no-*]*all-ramdisk-modules*::
Copies or does not copy all kernel modules to the initrd.
+*--*[*no-*]*module-rebuild*::
+ Runs, or does not run "emerge --ignore-default-opts --buildpkg=n --usepkg=n --quiet-build=y @module-rebuild"
+ to build out-of-tree modules when possible, i.e. when non-static
+ kernel and modules will be built, installed, *--kernel-modules-prefix* is not set.
+
+NOTE: Command can be customized using '--module-rebuild-cmd' command-line
+argument or 'MODULEREBUILD_CMD' in '/etc/genkernel.conf'.
+
+*--module-rebuild-cmd*=<...>::
+ Overwrite default *--module-rebuild* command.
+
*--callback*=<...>::
Run the specified arguments in the current environment after the
kernel and modules have been compiled.
@@ -189,28 +229,54 @@ KERNEL LOCATIONS
Use the special value 'default' to force usage of default kernel
config.
-*--module-prefix*=<dir>::
+*--kernel-modules-prefix*=<dir>::
Prefix to kernel module destination, modules will be installed in
'<prefix>/lib/modules'.
LOW-LEVEL COMPILATION OPTIONS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-*--kernel-cc*=<compiler>::
- Compiler to use for the kernel compilation (e.g. distcc).
+*--cross-compile*=<target triplet>::
+ Target triple (i.e. aarch64-linux-gnu) to build for. Only needed
+ when the system running genkernel has a different architecture like
+ the system which should boot the created kernel/initramfs.
+
+*--kernel-cross-compile*=<target triplet>::
+ Target triple (i.e. aarch64-linux-gnu) to build kernel for.
+
+*--kernel-ar*=<archiver>::
+ Archiver to use for the kernel compilation.
*--kernel-as*=<assembler>::
Assembler to use for the kernel compilation.
+*--kernel-cc*=<compiler>::
+ Compiler to use for the kernel compilation (e.g. distcc).
+
*--kernel-ld*=<linker>::
Linker to use for the kernel compilation.
-*--kernel-cross-compile*=<cross var>::
- CROSS_COMPILE kernel variable.
-
-*--kernel-make*=<makeprg>::
+*--kernel-make*=<makeprog>::
GNU Make to use for the kernel compilation.
+*--kernel-nm*=<nm>::
+ NM utility to use for the kernel compilation.
+
+*--kernel-objcopy*=<objcopyprog>::
+ Objcopy utility to use for the kernel compilation.
+
+*--kernel-objdump*=<objdumpprog>::
+ Objdump utility to use for the kernel compilation.
+
+*--kernel-ranlib*=<ranlibprog>::
+ Ranlib utility to use for the kernel compilation.
+
+*--kernel-readelf*=<readelfprog>::
+ Readelf utility to use for the kernel compilation.
+
+*--kernel-strip*=<stripprog>::
+ Strip utility to use for the kernel compilation.
+
*--kernel-target*=<t>::
Override default make target (bzImage), note that values
like *--kernel-target=* are also valid (useful for Xen
@@ -225,23 +291,44 @@ LOW-LEVEL COMPILATION OPTIONS
tree (eg because cannot write to that directory as the user genkernel is
running as).
-*--utils-cc*=<compiler>::
- Compiler to use for utilities.
+*--utils-ar*=<archiver>::
+ Archiver to use for utilities.
*--utils-as*=<assembler>::
Assembler to use for utilities.
+*--utils-cflags*=<cflags>::
+ C compiler flags used to compile utilities.
+
+*--utils-cc*=<compiler>::
+ C Compiler to use for utilities.
+
+*--utils-cxx*=<compiler>::
+ C++ Compiler to use for utilities.
+
*--utils-ld*=<linker>::
Linker to use for utilities.
*--utils-make*=<makeprog>::
GNU Make to use for utilities.
-*--utils-cross-compile*=<cross var>::
- CROSS_COMPILE utils variable.
+*--utils-nm*=<nm>::
+ NM utility to use for utilities.
+
+*--utils-objcopy*=<objcopyprog>::
+ Objcopy utility to use for utilities.
-*--utils-arch*=<arch>::
- Force to arch for utils only instead of autodetect.
+*--utils-objdump*=<objdumpprog>::
+ Objdump utility to use for utilities.
+
+*--utils-ranlib*=<ranlibprog>::
+ Ranlib utility to use for utilities.
+
+*--utils-readelf*=<readelfprof>::
+ Readelf utility to use for utilities.
+
+*--utils-strip*=<striprog>::
+ Strip utility to use for utilities.
*--makeopts*=<makeopts>::
GNU Make options such as -j2, etc.
@@ -257,7 +344,7 @@ LOW-LEVEL COMPILATION OPTIONS
*--*[*no-*]*nice*[=<niceness>]::
Runs the kernel make at the default niceness (reduction in priority) of
- 10, or in the case of --no-nice, runs the kernel make at normal priority.
+ 10, or in the case of *--no-nice*, runs the kernel make at normal priority.
INITIALIZATION
@@ -273,6 +360,13 @@ INITIALIZATION
<theme> rather than the default theme specified in your splash
configuration. If *--no-splash* is specified, then splash is disabled.
+*--*[*no-*]*plymouth*::
+ Includes or excludes Plymouth from the initramfs. If "splash" is
+ passed at boot, Plymouth will be activated.
+
+*--plymouth-theme*=<theme>::
+ Embeds the given Plymouth theme into the initramfs.
+
*--do-keymap-auto*::
Force keymap selection at boot.
@@ -284,12 +378,12 @@ INITIALIZATION
When enabled, this will compile LVM for you.
*--*[*no-*]*mdadm*::
- Includes or excludes mdadm/mdmon support.
- Without sys-fs/mdadm[static] installed, this will compile mdadm for you.
+ Includes or excludes mdadm support.
+ When enabled, this will compile mdadm for you.
*--mdadm-config*=<file>::
Use <file> as configfile for MDADM.
- By default the ramdisk will be built *without* an mdadm.conf and
+ By default the ramdisk will be built *without* an 'mdadm.conf' and
will auto-detect arrays during boot-up.
*--*[*no-*]*microcode-initramfs*::
@@ -297,29 +391,68 @@ INITIALIZATION
But only when kernel configuration does support early microcode loading.
See *--microcode* option to auto-update kernel configuration.
+NOTE: Embedding microcode updates into initramfs is *deprecated* when
+system is able to load multiple initramfs.
+
*--*[*no-*]*dmraid*::
Includes or excludes DMRAID support.
+ When enabled, this will compile dmraid for you.
*--*[*no-*]*nfs*::
Includes or excludes NFS support.
*--*[*no-*]*e2fsprogs*::
Includes or excludes e2fsprogs.
+ When enabled, this will compile e2fsprogs for you.
+
+*--*[*no-*]*xfsprogs*::
+ Includes or excludes xfsprogs.
+ When enabled, this will compile xfsprogs for you.
*--*[*no-*]*zfs*::
Includes or excludes ZFS support.
*--*[*no-*]*btrfs*::
Includes or excludes Btrfs support.
+ When enabled, this will compile btrfs-progs for you.
*--*[*no-*]*multipath*::
Includes or excludes Multipath support.
+ When enabled, this will compile multipath-tools for you.
*--*[*no-*]*iscsi*::
Includes or excludes iSCSI support.
+ When enabled, this will compile open-iscsi for you.
+
+*--*[*no-*]*sandbox*::
+ Enables or disables sandbox-ing when building initramfs.
*--*[*no-*]*ssh*::
Includes or excludes SSH (dropbear) support for remote LUKS keys.
+ When enabled, this will compile dropbear for you.
+
+*--ssh-authorized-keys-file*=<file>::
+ Specifies a user created authorized_keys file. By default genkernel
+ will use '/etc/dropbear/authorized_keys'.
+
+*--ssh-host-keys*=<create|create-from-host|runtime>::
+ When set to *create*, which is the default value, genkernel will embed
+ SSH host keys from '/etc/dropbear' and will create those keys when missing.
+ When set to *create-from-host*, genkernel will embed SSH host keys from
+ '/etc/dropbear' but will create those keys from '/etc/ssh' when missing
+ (not recommended for security reasons).
+ When set to *runtime*, genkernel will not embed any SSH host key in
+ initramfs and dropbear will generate needed host key at runtime (`dropbear -R`).
+
+*--boot-font*=<current|<file>|none>::
+ When set to *current*, genkernel will use "setfont" to dump and embed
+ current active console font into initramfs.
+ When set to a *PC Screen Font file*, genkernel will embed that font
+ into initramfs.
+ When set to *none*, genkernel will not embed any font file in initramfs.
+ In case a font was embedded into initramfs, genkernel will load that
+ font early on boot. See *gk.bootfont.disabled* kernel parameter for
+ disabling that feature at runtime.
*--bootloader*=<grub|grub2>::
Add new kernel to GRUB or GRUB2 configuration.
@@ -333,11 +466,9 @@ INITIALIZATION
*--genzimage*::
Make and install kernelz image from 'arch/powerpc/boot/zImage.initrd'.
-*--*[*no-*]*disklabel*::
- Includes or excludes disk label and uuid support in your initrd.
-
*--*[*no-*]*luks*::
Includes or excludes LUKS support.
+ When enabled, this will compile cryptsetup for you.
*--*[*no-*]*gpg*::
Includes or excludes support for GnuPG 1.x, the portable standalone branch
@@ -345,33 +476,51 @@ INITIALIZATION
`gpg --symmetric -o /path/to/LUKS-key.gpg /path/to/LUKS-key` .
After that, re-point the *root_key* argument to the new .gpg file.
+*--*[*no-*]*keyctl*::
+ Includes or excludes support for keyutils keyctl.
+ This way a LUKS passphrase can be loaded into a keyring at boot time
+ to unlock multiple devices (root, swap, etc.) without retyping it for each
+ one.
+
+*--*[*no-*]*b2sum*::
+ Includes or excludes b2sum in the initramfs.
+ When enabled, this will compile coreutils' b2sum for you.
+
*--*[*no-*]*busybox*::
- Includes or excludes busybox in the initrd or initramfs.
+ Includes or excludes busybox in the initramfs.
+ When enabled, this will compile busybox for you.
*--*[*no-*]*unionfs*::
Includes or excludes support for unionfs.
+ When enabled, this will compile unionfs-fuse for you.
*--*[*no-*]*netboot*::
Creates or does not create a self-contained env in the initramfs.
*--real-root*=<foo>::
- Specify a default for *real_root*= kernel option.
+ Specify a default for *real_root*= kernel option which will be
+ embedded into initramfs.
INTERNALS
~~~~~~~~~
-*--arch-override*=<arch>::
- Force the architecture settings described by the <arch> profile
- instead of autodetecting the running architecture.
-
*--cachedir*=<dir>::
Override the default cache location.
+*--check-free-disk-space-bootdir*=<MB>::
+ When set to a non-zero value, genkernel will check early on start for
+ specified amount of free disk space in megabyte in *BOOTDIR*.
+
+*--check-free-disk-space-kerneloutputdir*=<MB>::
+ When set to a non-zero value, genkernel will check early on start for
+ specified amount of free disk space in megabyte in *KERNEL_OUTPUTDIR*.
+
*--*[*no-*]*clear-cachedir*::
Clears or skips clearing all files in cache location on genkernel start.
-*--tempdir*=<dir>::
- Sets genkernel's temporary working directory to <dir>.
+*--tmpdir*=<dir>::
+ Sets genkernel's temporary working directory to <dir>. By default, a
+ directory below '/var/tmp/genkernel' will be used.
*--*[*no-*]*postclear*::
Clears or skips clearing all tmp files and caches after genkernel has run.
@@ -379,27 +528,94 @@ INTERNALS
OUTPUT SETTINGS
~~~~~~~~~~~~~~~
-*--kernname*=<...>::
- Tag the kernel and initrd with a name, if not defined this
- option defaults to genkernel.
-
-*--minkernpackage*=<tbz2>::
- File to output a .tar.bz2'd kernel and initrd: no modules outside
- of the initrd will be included...
-
-*--modulespackage*=<tbz2>::
- File to output a .tar.bz2'd modules after the callbacks have run.
-
-*--kerncache*=<tbz2>::
- File to output a .tar.bz2'd kernel, contents of '/lib/modules/'
- and the kernel config. NOTE: This is created before the callbacks
- are run.
+*--initramfs-filename*=<...>::
+Set initramfs filename which will be used when initramfs will be installed
+into *BOOTDIR* (implies *--install* option). Please see
+*--kernel-filename* option for available placeholders and restrictions.
++
+By default, initramfs filename will be set to 'initramfs-%%KV%%.img'.
+
+*--initramfs-symlink-name*=<...>::
+Set initramfs symlink name which will be used when initramfs will be
+installed into *BOOTDIR* (implies *--install* option) and *--symlink*
+option is given. Please see *--kernel-filename* option for available
+placeholders and restrictions.
++
+By default, initramfs symlink name will be set to 'initramfs'.
+
+NOTE: Initramfs filename and initramfs symlink name must be different.
+
+*--minkernpackage*=<file>::
+Archive file created using tar containing kernel and initramfs.
+
+NOTE: No modules outside of the initramfs will be included!
+
+*--modulespackage*=<archive>::
+ Archive file created using tar containing modules after the callbacks
+ have run.
+
+*--kerncache*=<archive>::
+ Archive file created using tar containing kernel binary, content of
+ '/lib/modules' and the kernel config after the callbacks have run.
+
+*--kernel-config-filename*=<...>::
+Set the kernel config filename used by *--save-config*. Please see
+*--kernel-filename* option for available placeholders and restrictions.
++
+By default, kernel config filename will be set to 'kernel-config-%%KV%%'.
+
+*--kernel-filename*=<...>::
+Set kernel filename which will be used when kernel will be installed
+into *BOOTDIR* (implies *--install* option). The following placeholders
+are available:
++
+[horizontal]
+*%%ARCH%%*:::
+Will be replaced with genkernel arch value, for example 'x86_64'.
+*%%KV%%*:::
+Will be replaced with kernel version, for example '5.2.3-gentoo'.
+
++
+Kernel filename is only allowed to contain characters like 'a-z' or 'A-Z',
+'0-9', '_', '.' and '-'.
++
+By default, kernel name will be set to 'vmlinuz-%%KV%%'.
+
+NOTE: When setting a custom kernel name make sure that your bootloader and
+tools like *kexec* when used are recognizing your custom kernel name.
*--*[*no-*]*kernel-sources*::
This option is only valid if kerncache is defined If there is a
valid kerncache no checks will be made against a kernel source
tree.
+*--kernel-symlink-name*=<...>::
+Set kernel symlink name which will be used when kernel will be installed
+into *BOOTDIR* (implies *--install* option) and *--symlink* option is
+given. Please see *--kernel-filename* option for available placeholders
+and restrictions.
++
+By default, kernel symlink name will be set to 'kernel'.
+
+NOTE: Kernel filename and kernel symlink name must be different.
+
+*--systemmap-filename*=<...>::
+Set System.map filename which will be used when kernel will be installed
+into *BOOTDIR* (implies *--install* option). Please see
+*--kernel-filename* option for available placeholders and restrictions.
++
+By default, System.map filename will be set to 'System.map-%%KV%%'.
+
+*--systemmap-symlink-name*=<...>::
+Set System.map symlink name which will be used when kernel will be
+installed into *BOOTDIR* (implies *--install* option) and *--symlink*
+option is given. Please see *--kernel-filename* option for available
+placeholders and restrictions.
++
+By default, System.map symlink name will be set to 'System.map'.
+
+NOTE: System.map filename and System.map symlink name must be different.
+
*--initramfs-overlay*=<dir>::
Directory structure to include in the initramfs, only available
on >=2.6 kernels.
@@ -407,12 +623,15 @@ OUTPUT SETTINGS
*--*[*no-*]*firmware*::
Enable or disables copying of firmware into initramfs.
+*--*[*no-*]*all-firmware*::
+ Enable or disable copying of all firmware into initramfs
+
*--firmware-dir*=<dir>::
Specify directory to copy firmware from (defaults to '/lib/firmware').
*--firmware-files*=<files>::
- Specifies specific firmware files to copy. This overrides *--firmware-dir*.
- For multiple files, separate the filenames with a comma.
+ Specifies specific firmware files or directories to copy, relative to
+ *--firmware-dir*. For multiple files, separate the filenames with a comma.
*--*[*no-*]*firmware-install*::
Enable or disables installation of firmware onto root filesystem.
@@ -434,9 +653,14 @@ OUTPUT SETTINGS
Deprecated alias for *--*[*no-*]*compress-initramfs*.
*--compress-initramfs-type*=<arg>::
- Compression type for initramfs (best, xz, lzma, bzip2, gzip, lzop).
- "Best" causes selection of the best available algorithm that is selected
- in your kernel configuration.
+ Compression type for initramfs (best, bzip2, fastest, gzip, lz4, lzma,
+ lza, xz, zstd).
++
+*best* will select the algorithm providing best compression
+from those selected in your kernel configuration.
++
+*fastest* will select the algorithm providing fastest decompression
+from those selected in your kernel configuration.
*--strip*=<all|kernel|modules|none>::
Strip debug symbols from none, all, installed kernel (obsolete) or
@@ -468,9 +692,32 @@ recognized by the kernel itself.
This specifies the device encrypted by LUKS, which contains the
root filesystem to mount.
+*crypt_root_options*=<...>::
+ This specifies additional options, which should get passed to
+ cryptsetup when opening root volume. Can be specified multiple
+ times or separate multiple options with a comma.
+
*crypt_swap*=<...>::
This specifies the swap device encrypted by LUKS.
+*crypt_swap_options*=<...>::
+ This specifies additional options, which should get passed to
+ cryptsetup when opening swap volume. Can be specified multiple
+ times or separate multiple options with a comma.
+
+*root_header*=<...>::
+ In case your encrypted root uses a LUKS detached header, you can
+ use a device like a usb pen to store the header file. This value
+ should be the key path relative to the mount point.
+
+*root_headerdev*=<...>::
+ If necessary provide the name of the device that carries the
+ root_header. If unset while using root_header, it will automatically
+ look for the device in every boot.
+
+*root_headerdev_fstype*=<...>::
+ Used filesystem for *root_headerdev*. See *rootfstype* for more details.
+
*root_key*=<...>::
In case your root is encrypted with a key, you can use a device
like a usb pen to store the key. This value should be the key
@@ -481,17 +728,50 @@ recognized by the kernel itself.
root_key. If unset while using root_key, it will automatically
look for the device in every boot.
+*root_keydev_fstype*=<...>::
+ Used filesystem for *root_keydev*. See *rootfstype* for more details.
+
*root_trim*=(yes|no)::
Enables TRIM support for a LUKS-based root device. Only useful
with SSD setups. Have a look at 'https://en.wikipedia.org/wiki/TRIM'
for more information.
+*swap_header*=<...>::
+ Same as root_header for swap.
+
+*swap_headerdev*=<...>::
+ Same as root_headerdev for swap.
+
+*swap_headerdev_fstype*=<...>::
+ Used filesystem for *swap_headerdev*. See *rootfstype* for more details.
+
*swap_key*=<...>::
Same as root_key for swap.
*swap_keydev*=<...>::
Same as root_keydev for swap.
+*swap_keydev_fstype*=<...>::
+ Used filesystem for *swap_keydev*. See *rootfstype* for more details.
+
+*keyctl_keydesc*=<...>::
+ Load a passphrase into a keyring at boot time under the key name provided
+ as an argument to this option.
+ This way multiple devices (root, swap, etc.) can be unlocked without
+ retyping the passphrase for each one.
+ You'll need to add this key name as a keyring token to every LUKS device
+ that it is supposed to unlock - have a look at cryptsetup 'token add'
+ operation.
+
+*keyctl_keykeep*::
+ Don't remove the newly added key before starting the real init.
+ Useful if you want to utilize it to unlock LUKS devices post-initramfs.
+
+*keyctl_keytimeout*=<...>::
+ Enable a timeout (in seconds) for the newly added key.
+ This option normally only makes sense when used together with the
+ *keyctl_keykeep* option.
+
*crypt_silent*::
Set this to silent all the output related to the cryptographic
software, and in case your encrypted device isn't open with the
@@ -519,10 +799,77 @@ recognized by the kernel itself.
Pauses for up to 3 seconds (or specified number of seconds) while
waiting for root device to appear during initramfs root scanning.
-*ip*=<...>::
+*ip*=<dhcp,addr/cidr>::
Normally used to tell the kernel that it should start a network
- interface. If present, the initrd will try to mount a livecd
- over NFS.
+ interface which can be specified using *gk.net.iface* kernel parameter.
+ By default, dhcp will be used. You can set a specific IP address using
+ addr/CIDR notation, i.e. '1.2.3.4/24'.
+
+*gk.net.dhcp.retries*=<...>::
+ By default we will send up to 3 DHCP discovery requests.
+
+*gk.net.iface*=<interface,macaddr>::
+ By default we will use the interface named eth0. Use this kernel
+ parameter to specify another interface. You can also specify a MAC
+ address (00:00:00:00:00:00 format) instead of an interface name.
+
+*gk.net.gw*=<...>::
+ Optional gateway. If *ip* is set to dhcp, this kernel parameter will
+ be ignored.
+
+*gk.net.routes*=<...>::
+ Optional additional routes. If *ip* is set to dhcp, this kernel
+ parameter will be ignored.
+
+*gk.net.timeout.dad*=<...>::
+ By default we will wait up to 10 seconds for IPv6's DAD to complete.
+ At the moment, we only wait for DAD while bringing down an interface
+ to prevent a race condition.
+
+*gk.net.timeout.deconfiguration*=<...>::
+ By default we will wait up to 10 seconds while bringing down an
+ interface to prevent a race condition.
+
+*gk.net.timeout.dhcp*=<...>::
+ By default we will wait up to 10 seconds for a DHCP server reply.
+
+*gk.net.timeout.interface*=<...>::
+ By default we will wait up to 10 seconds for interface to show up.
+
+*gk.udev.debug*=<...>::
+ This boolean option allows you to run udevd in debug mode. Output
+ will be logged to '/run/initramfs/udevd.log'.
+
+*gk.udev.timeout*=<...>::
+ By default we will wait up to 120 seconds (UDEV default) for
+ UDEV event queue to become empty.
+
+*gk.preserverun.disabled*=<...>::
+ By default, *switch_root* will preserve and move already mounted '/run'
+ to *newroot*. This boolean option allows you to disable preserving of
+ '/run', which is maybe required for SELinux due to missing labeling
+ support in genkernel.
+
+*gk.prompt.timeout*=<...>::
+By default a prompt within genkernel initramfs like shown when set
+*root* could not be found will never timeout. Use this option to set
+a timeout.
+
+NOTE: When *dosshd* is used, *gk.prompt.timeout* will be set to 30 seconds
+when not set. This will allow remote user to provide answer through
+*GK_PROMPT_FILE* which is set to '/tmp/current_prompt' by default.
+
+*dosshd*::
+ Will bring up an interface and start a SSH daemon within initramfs
+ allowing to remotely unlock encrypted devices or just for debugging
+ purpose. See *ip* option for how to configure network.
+
+*gk.sshd.port*=<...>::
+ By default, sshd will listen on port 22.
+
+*gk.sshd.wait*=<...>::
+ Wait X seconds after setting up sshd, useful when you want to login
+ (and thus pause boot process) before booting real system.
*nfsroot*=<...>::
If present, the initrd will try to mount a livecd from that
@@ -532,10 +879,6 @@ recognized by the kernel itself.
*dolvm*::
Activate LVM volumes on bootup.
-*lvmraid*=<...>::
- Specify RAID devices to set up before the activation of LVM volumes.
- Implies option *dolvm*.
-
*domdadm*::
Scan for RAID arrays on bootup.
@@ -543,9 +886,6 @@ recognized by the kernel itself.
Scan for bootable ZFS pools on bootup. Optionally use cachefile or force import if
necessary or perform both actions.
-*dobtrfs*::
- Scan for attached Btrfs devices on bootup.
-
*domultipath*::
Activate Multipath on bootup.
@@ -564,7 +904,8 @@ recognized by the kernel itself.
*rootfstype*=<...>::
Specify the file system type to mount the real root filesystem as.
This can be useful when support for ext2/ext3/ext4 are
- in competition. Default is "auto".
+ in competition or used filesystem was not built into kernel.
+ Default is "auto".
*docache*::
*nocache*::
@@ -585,25 +926,57 @@ recognized by the kernel itself.
*debug*::
Drop into a debug shell early in the process.
+*gk.bootfont.disabled*=<...>::
+ By default, if a bootfont is embedded within initramfs, genkernel
+ will load that font. This boolean option allows you to disable
+ loading of the user embedded bootfont.
+
+*gk.emergency*=<reboot|poweroff|halt>::
+ By default, genkernel tries to spawn a rescue shell in case of
+ a critical failure (see *gk.userinteraction.disabled* to prevent this).
+ This option controls the action to execute when rescue is not possible.
+ Default is "halt".
+
+*gk.hw.load-all*=<...>::
+ By default, genkernel loads various module groups (nvme, sata,
+ scsi, pata, usb...) until block device specified in *root* parameter
+ becomes available. This boolean option allows you to force
+ loading of all module groups regardless whether root device is
+ already available.
+
+*gk.hw.use-modules_load*=<...>::
+ By default, genkernel relies on UDEV's capability to load required
+ kernel modules. This boolean option allows you to force old module
+ loading depending on modules_load file until *root* device becomes
+ available.
+
+*gk.log.disabled*=<...>::
+ By default, any shown message and external command calls will be logged
+ to '/run/initramfs/init.log'. This boolean option allows you to
+ disable logging for some reason.
+
+*gk.userinteraction.disabled*=<...>::
+By default, genkernel will prompt on errors. In case this is not wanted
+or desired, e.g. for a kiosk system, this boolean option will disable
+any prompting, including the rescue shell.
+
+NOTE: Because no user interaction is possible when this option is set,
+on error, system will immediately execute *gk.emergency* action.
+
*noload*=<...>::
- List of modules to skip loading.
- Separate using commas or spaces.
+List of modules to skip loading.
+Separate using commas or spaces.
-*nodetect*::
- Skipping scanning modules using "modprobe <MODULE> -n".
- Use *doload=* for specifying a whitelist of exceptions.
+NOTE: This option has only an effect when *gk.hw.use-modules_load* is
+enabled.
*doload*=<...>::
- List of modules to load despite *nodetect*.
+ List of modules which should always be loaded.
*domodules*::
*nomodules*::
Enables/disables loading of modules in general.
-*CONSOLE*=<...>::
-*console*=<...>::
- Override location of console, default is "/dev/console".
-
*part*[=<0,1>]::
*partitionable*::
Enable/Disable partitionable RAIDs (metadata 0.x) during auto-run.
@@ -677,6 +1050,18 @@ recognized by the kernel itself.
Loop-mount an ISO file from the boot device to get the filesystem image.
Useful with chain-loading environments and USB keys.
+initramfs.mounts
+----------------
+By default, genkernel's initramfs will only mount *root* device. But
+sometimes additional mounts are required before initramfs can switch to
+real root (for example on systems with a seperate '/usr' mount).
+
+Therefore genkernel package contains '/etc/initramfs.mounts' file which
+will allow you to specify additional mounts which should be mounted before
+initramfs will switch to real root.
+
+NOTE: This file will not be included in initramfs. Instead, booted initramfs
+will check for this file on specified *root* device.
NETBOOTING
----------
@@ -720,6 +1105,7 @@ AUTHORS
- Chris Gianelloni <wolf31o2@gentoo.org>
- Sebastian Pipping <sebastian@pipping.org>
- Robin H. Johnson <robbat2@gentoo.org>
+- Thomas Deutschmann <whissi@gentoo.org>
- NFS Support by Thomas Seiler <thseiler@gmail.com>
- GnuPG 1.x integration by dacook <schism@subverted.org>
- MDADM integration by Matthias Dahl <ua_bugz_gentoo@mortal-soul.de>
@@ -729,6 +1115,8 @@ AUTHORS
SEE ALSO
--------
-/etc/genkernel.conf - genkernel configuration file
+'/etc/initramfs.mounts' - additional required mounts before switching to real root
+
+'/etc/genkernel.conf' - genkernel configuration file
// vim: ft=asciidoc et tw=72 sts=4 ts=4 :
diff --git a/gen_arch.sh b/gen_arch.sh
index 4ced125..b232c3c 100755
--- a/gen_arch.sh
+++ b/gen_arch.sh
@@ -1,63 +1,20 @@
#!/bin/bash
# $Id$
-get_official_arch() {
- if [ "${CMD_ARCHOVERRIDE}" != '' ]
- then
- ARCH=${CMD_ARCHOVERRIDE}
- else
- if [ "${ARCH_OVERRIDE}" != '' ]
- then
- ARCH=${ARCH_OVERRIDE}
- else
- ARCH=`uname -m`
- case "${ARCH}" in
- i?86)
- ARCH="x86"
- ;;
- mips|mips64)
- ARCH="mips"
- ;;
- arm*)
- ARCH=arm
- ;;
- *)
- ;;
- esac
- fi
- fi
-
- if [ "${CMD_UTILS_ARCH}" != '' ]
- then
- UTILS_ARCH=${CMD_UTILS_ARCH}
- else
- if [ "${UTILS_ARCH}" != '' ]
- then
- UTILS_ARCH=${UTILS_ARCH}
- fi
- fi
-
- # sparc64 klibc is b0rked, so we force to 32
- if [ "${ARCH}" = 'sparc64' ]
- then
- UTILS_ARCH='sparc'
- fi
-
- ARCH_CONFIG="${GK_SHARE}/arch/${ARCH}/config.sh"
- [ -f "${ARCH_CONFIG}" ] || gen_die "${ARCH} not yet supported by genkernel. Please add the arch-specific config file, ${ARCH_CONFIG}"
-}
-
-set_kernel_arch() {
- [ -z "${VER}" ] && gen_die "cannot set KERNEL_ARCH without VER!"
- [ -z "${SUB}" ] && gen_die "cannot set KERNEL_ARCH without SUB!"
- [ -z "${PAT}" ] && gen_die "cannot set KERNEL_ARCH without PAT!"
+determine_kernel_arch() {
+ [ -z "${VER}" ] && gen_die "Cannot determine KERNEL_ARCH without \$VER!"
+ [ -z "${SUB}" ] && gen_die "Cannot determine KERNEL_ARCH without \$SUB!"
+ [ -z "${PAT}" ] && gen_die "Cannot determine KERNEL_ARCH without \$PAT!"
KERNEL_ARCH=${ARCH}
case ${ARCH} in
+ parisc|parisc64)
+ KERNEL_ARCH=parisc
+ ;;
ppc|ppc64*)
if [ "${VER}" -ge "3" ]
then
- KERNEL_ARCH=powerpc
+ KERNEL_ARCH=powerpc
elif [ "${VER}" -eq "2" -a "${PAT}" -ge "6" ]
then
if [ "${PAT}" -eq "6" -a "${SUB}" -ge "16" ] || [ "${PAT}" -gt "6" ]
@@ -66,10 +23,16 @@ set_kernel_arch() {
fi
fi
;;
+ riscv|riscv64*)
+ KERNEL_ARCH=riscv
+ ;;
+ s390*)
+ KERNEL_ARCH=s390
+ ;;
x86)
if [ "${VER}" -ge "3" ]
then
- KERNEL_ARCH=x86
+ KERNEL_ARCH=x86
elif [ "${VER}" -eq "2" -a "${PAT}" -ge "6" ] || [ "${VER}" -gt "2" ]
then
if [ "${PAT}" -eq "6" -a "${SUB}" -ge "24" ] || [ "${PAT}" -gt "6" ]
@@ -83,7 +46,7 @@ set_kernel_arch() {
x86_64)
if [ "${VER}" -ge "3" ]
then
- KERNEL_ARCH=x86
+ KERNEL_ARCH=x86
elif [ "${VER}" -eq "2" -a "${PAT}" -ge "6" ] || [ "${VER}" -gt "2" ]
then
if [ "${PAT}" -eq "6" -a "${SUB}" -ge "24" ] || [ "${PAT}" -gt "6" ]
@@ -93,6 +56,5 @@ set_kernel_arch() {
fi
;;
esac
- export KERNEL_ARCH
- print_info 2 "KERNEL_ARCH=${KERNEL_ARCH}"
+ print_info 2 "KERNEL_ARCH set to '${KERNEL_ARCH}' ..."
}
diff --git a/gen_bootloader.sh b/gen_bootloader.sh
index 3e3ecb0..06fb7ba 100755
--- a/gen_bootloader.sh
+++ b/gen_bootloader.sh
@@ -3,6 +3,8 @@
set_bootloader() {
print_info 1 ''
+ # When adding/removing supported bootloaders, do NOT forget
+ # to update print_warning in genkernel file as well.
case "${BOOTLOADER}" in
grub)
set_bootloader_grub
@@ -11,10 +13,10 @@ set_bootloader() {
set_bootloader_grub2
;;
no)
- print_info 1 "No bootloader set: Skipping bootloader update!"
+ print_info 1 "--no-bootloader set; Skipping bootloader update ..."
;;
*)
- print_warning 1 "Bootloader '${BOOTLOADER}' is currently not supported"
+ print_warning 1 "Bootloader '${BOOTLOADER}' is currently not supported; Skipping bootloader update ..."
;;
esac
}
@@ -29,42 +31,38 @@ set_bootloader_read_fstab() {
echo "${ROOTFS} ${BOOTFS}"
}
-set_bootloader_grub_read_device_map() {
- # Read GRUB device map
- [ ! -d ${TEMP} ] && mkdir ${TEMP}
- echo "quit" | grub --batch --device-map=${TEMP}/grub.map &>/dev/null
- echo "${TEMP}/grub.map"
-}
-
set_bootloader_grub2() {
local GRUB_CONF
for candidate in \
- "${BOOTDIR}/grub/grub.cfg" \
- "${BOOTDIR}/grub2/grub.cfg" \
- ; do
- if [[ -e "${candidate}" ]]; then
+ "${BOOTDIR}/grub/grub.cfg" \
+ "${BOOTDIR}/grub2/grub.cfg" \
+ ; do
+ if [[ -e "${candidate}" ]]
+ then
GRUB_CONF=${candidate}
break
fi
done
- if [[ -z "${GRUB_CONF}" ]]; then
+ if [[ -z "${GRUB_CONF}" ]]
+ then
print_error 1 "Error! Grub2 configuration file does not exist, please ensure grub2 is correctly setup first."
return 0
fi
print_info 1 "You can customize Grub2 parameters in /etc/default/grub."
- print_info 1 "Running grub-mkconfig to create ${GRUB_CONF}..."
- grub-mkconfig -o "${GRUB_CONF}" 2> /dev/null ||
- grub2-mkconfig -o "${GRUB_CONF}" 2> /dev/null ||
- gen_die "grub-mkconfig failed"
+ print_info 1 "Running grub-mkconfig to create '${GRUB_CONF}' ..."
+ grub-mkconfig -o "${GRUB_CONF}" 2>/dev/null \
+ || grub2-mkconfig -o "${GRUB_CONF}" 2>/dev/null \
+ || gen_die "grub-mkconfig failed!"
+
isTrue "${BUILD_RAMDISK}" && sed -i 's/ro single/ro debug/' "${GRUB_CONF}"
}
set_bootloader_grub() {
local GRUB_CONF="${BOOTDIR}/grub/grub.conf"
- print_info 1 "Adding kernel to ${GRUB_CONF}..."
+ print_info 1 "Adding kernel to '${GRUB_CONF}' ..."
if [ ! -e ${GRUB_CONF} ]
then
@@ -72,21 +70,28 @@ set_bootloader_grub() {
local GRUB_BOOTFS
if [ -n "${BOOTFS}" ]
then
- GRUB_BOOTFS=$BOOTFS
+ GRUB_BOOTFS=${BOOTFS}
else
GRUB_BOOTFS=$(set_bootloader_read_fstab | cut -d' ' -f2)
fi
# Get the GRUB mapping for our device
+ echo "quit" | grub --batch --device-map="${TEMP}/grub.map" &>/dev/null
+
local GRUB_BOOT_DISK1=$(echo ${GRUB_BOOTFS} | sed -e 's#\(/dev/.\+\)[[:digit:]]\+#\1#')
- local GRUB_BOOT_DISK=$(awk '{if ($2 == "'${GRUB_BOOT_DISK1}'") {gsub(/(\(|\))/, "", $1); print $1;}}' ${TEMP}/grub.map)
+ local GRUB_BOOT_DISK=$(awk '{if ($2 == "'${GRUB_BOOT_DISK1}'") {gsub(/(\(|\))/, "", $1); print $1;}}' "${TEMP}/grub.map")
local GRUB_BOOT_PARTITION=$(($(echo ${GRUB_BOOTFS} | sed -e 's#/dev/.\+\([[:digit:]]?*\)#\1#') - 1))
if [ -n "${GRUB_BOOT_DISK}" -a -n "${GRUB_BOOT_PARTITION}" ]
then
# Create grub configuration directory and file if it doesn't exist.
- [ ! -d `dirname ${GRUB_CONF}` ] && mkdir -p `dirname ${GRUB_CONF}`
+ local GRUB_CONF_DIR=$(dirname "${GRUB_CONF}")
+ if [ ! -d "${GRUB_CONF_DIR}" ]
+ then
+ mkdir -p "${GRUB_CONF_DIR}" \
+ || gen_die "Failed to create GRUB config directory '${GRUB_CONF_DIR}'!"
+ fi
touch ${GRUB_CONF}
echo 'default 0' >> ${GRUB_CONF}
@@ -96,13 +101,13 @@ set_bootloader_grub() {
# Add grub configuration to grub.conf
echo "# Genkernel generated entry, see GRUB documentation for details" >> ${GRUB_CONF}
- echo "title=Gentoo Linux ($KV)" >> ${GRUB_CONF}
- printf "%b\n" "\tkernel /kernel-${KNAME}-${ARCH}-${KV} root=${GRUB_ROOTFS}" >> ${GRUB_CONF}
+ echo "title=Gentoo Linux (${KV})" >> ${GRUB_CONF}
+ printf "%b\n" "\tkernel /${GK_FILENAME_KERNEL} root=${GRUB_ROOTFS}" >> ${GRUB_CONF}
if isTrue "${BUILD_RAMDISK}"
then
if [ "${PAT}" -gt '4' ]
then
- printf "%b\n" "\tinitrd /initramfs-${KNAME}-${ARCH}-${KV}" >> ${GRUB_CONF}
+ printf "%b\n" "\tinitrd /${GK_FILENAME_INITRAMFS}" >> ${GRUB_CONF}
fi
fi
echo >> ${GRUB_CONF}
@@ -114,7 +119,7 @@ set_bootloader_grub() {
else
# The grub.conf already exists, so let's try to duplicate the default entry
if set_bootloader_grub_check_for_existing_entry "${GRUB_CONF}"; then
- print_warning 1 "An entry was already found for a kernel/initramfs with this name...skipping update"
+ print_warning 1 "An entry was already found for a kernel/initramfs with this name; Skipping update ..."
return 0
fi
@@ -124,14 +129,14 @@ set_bootloader_grub() {
}
set_bootloader_grub_duplicate_default_replace_kernel_initrd() {
- sed -r -e "/^[[:space:]]*kernel/s/kernel-[[:alnum:][:punct:]]+/kernel-${KNAME}-${ARCH}-${KV}/" - |
- sed -r -e "/^[[:space:]]*initrd/s/init(rd|ramfs)-[[:alnum:][:punct:]]+/init\1-${KNAME}-${ARCH}-${KV}/"
+ sed -r -e "s/(^[[:space:]]*kernel[[:space:]=]*\/)(${GK_FILENAME_KERNEL%%-*}|${GK_FILENAME_KERNEL_SYMLINK%%-*}|kernel)(-[[:alnum:][:punct:]]+)?/\1${GK_FILENAME_KERNEL}/" - |
+ sed -r -e "s/(^[[:space:]]*initrd[[:space:]=]*\/)(${GK_FILENAME_INITRAMFS%%-*}|${GK_FILENAME_INITRAMFS_SYMLINK%%-*}|initrd|initramfs)(-[[:alnum:][:punct:]]+)?/\1${GK_FILENAME_INITRAMFS}/"
}
set_bootloader_grub_check_for_existing_entry() {
local GRUB_CONF=$1
- if grep -q "^[[:space:]]*kernel[[:space:]=]*.*/kernel-${KNAME}-${ARCH}-${KV}\([[:space:]]\|$\)" "${GRUB_CONF}" &&
- grep -q "^[[:space:]]*initrd[[:space:]=]*.*/initramfs-${KNAME}-${ARCH}-${KV}\([[:space:]]\|$\)" "${GRUB_CONF}"
+ if grep -q "^[[:space:]]*kernel[[:space:]=]*/${GK_FILENAME_KERNEL}\([[:space:]]\|$\)" "${GRUB_CONF}" &&
+ grep -q "^[[:space:]]*initrd[[:space:]=]*/${GK_FILENAME_INITRAMFS}\([[:space:]]\|$\)" "${GRUB_CONF}"
then
return 0
fi
@@ -145,19 +150,20 @@ set_bootloader_grub_duplicate_default() {
line_count=$(wc -l < "${GRUB_CONF}")
line_nums="$(grep -n "^title" "${GRUB_CONF}" | cut -d: -f1)"
if [ -z "${line_nums}" ]; then
- print_error 1 "No current 'title' entries found in your grub.conf...skipping update"
+ print_error 1 "No current 'title' entries found in your grub.conf; Skipping update ..."
return 0
fi
line_nums="${line_nums} $((${line_count}+1))"
# Find default entry
default=$(sed -rn '/^[[:space:]]*default[[:space:]=]/s/^.*default[[:space:]=]+([[:alnum:]]+).*$/\1/p' "${GRUB_CONF}")
- if [ -z "${default}" ]; then
- print_warning 1 "No default entry found...assuming 0"
+ if [ -z "${default}" ]
+ then
+ print_warning 1 "No default entry found; Assuming 0 ..."
default=0
fi
if ! echo ${default} | grep -q '^[0-9]\+$'; then
- print_error 1 "We don't support non-numeric (such as 'saved') default values...skipping update"
+ print_error 1 "We don't support non-numeric (such as 'saved') default values; Skipping update ..."
return 0
fi
diff --git a/gen_cmdline.sh b/gen_cmdline.sh
index be04cdb..5857d48 100755
--- a/gen_cmdline.sh
+++ b/gen_cmdline.sh
@@ -16,14 +16,14 @@ longusage() {
echo
echo "Available Options: "
echo " Configuration settings"
- echo " --config=<file> genkernel configuration file to use"
+ echo " --config=<file> genkernel configuration file to use"
echo " Debug settings"
echo " --loglevel=<0-5> Debug Verbosity Level"
echo " --logfile=<outfile> Output file for debug info"
echo " --color Output debug in color"
echo " --no-color Do not output debug in color"
- echo " --debug-cleanup Clean up temporary build directories on exit"
- echo " --no-debug-cleanup Do not remove any temporary directories on exit"
+ echo " --cleanup Clean up temporary directories on exit"
+ echo " --no-cleanup Do not remove any temporary directories on exit"
echo " Kernel Configuration settings"
echo " --menuconfig Run menuconfig after oldconfig"
echo " --no-menuconfig Do not run menuconfig after oldconfig"
@@ -37,74 +37,107 @@ longusage() {
echo " --no-save-config Don't save the configuration to /etc/kernels"
echo " --hyperv Enable Microsoft Hyper-V kernel options in kernel"
echo " --no-hyperv Don't enable Microsoft Hyper-V kernel options in kernel"
- echo " --microcode[=<type>] Enable early microcode support in kernel configuration,"
- echo " 'all' for all, 'amd' for AMD and 'intel' for Intel CPU types."
+ echo " --microcode=(all|amd|intel)"
+ echo " Enable early microcode support in kernel configuration,"
+ echo " 'all' for all (default), 'amd' for AMD and 'intel' for"
+ echo " Intel CPU types"
echo " --no-microcode Don't enable early microcode support in kernel configuration"
echo " --virtio Enable VirtIO kernel options in kernel"
echo " --no-virtio Don't enable VirtIO kernel options in kernel"
echo " Kernel Compile settings"
echo " --oldconfig Implies --no-clean and runs a 'make oldconfig'"
- echo " --clean Run make clean before compilation"
- echo " --no-clean Do not run make clean before compilation"
- echo " --mrproper Run make mrproper before compilation"
- echo " --no-mrproper Do not run make mrproper before compilation"
+ echo " --no-oldconfig Do not run 'make oldconfig' before compilation"
+ echo " --clean Run 'make clean' before compilation"
+ echo " --no-clean Do not run 'make clean' before compilation"
+ echo " --mrproper Run 'make mrproper' before compilation"
+ echo " --no-mrproper Do not run 'make mrproper' before compilation"
echo " --splash Install framebuffer splash support into initramfs"
echo " --no-splash Do not install framebuffer splash"
+ echo " --plymouth Enable Plymouth support"
+ echo " --no-plymouth Do not enable Plymouth support"
echo " --install Install the kernel after building"
echo " --no-install Do not install the kernel after building"
echo " --symlink Manage symlinks in /boot for installed images"
echo " --no-symlink Do not manage symlinks"
- echo " --ramdisk-modules Copy required modules to the ramdisk"
- echo " --no-ramdisk-modules Don't copy any modules to the ramdisk"
- echo " --all-ramdisk-modules Copy all kernel modules to the ramdisk"
+ echo " --ramdisk-modules Copy required modules to the initramfs"
+ echo " --no-ramdisk-modules Don't copy any modules to the initramfs"
+ echo " --all-ramdisk-modules Copy all kernel modules to the initramfs"
+ echo " --no-all-ramdisk-modules Don't copy all kernel modules to the initramfs"
+ echo " --module-rebuild Automatically run 'emerge @module-rebuild' when"
+ echo " necessary (and possible)"
+ echo " --no-module-rebuild Don't automatically run 'emerge @module-rebuild'"
+ echo " --module-rebuild-cmd=<...>"
+ echo " Overwrite default --module-rebuild command"
echo " --callback=<...> Run the specified arguments after the"
echo " kernel and modules have been compiled"
- echo " --static Build a static (monolithic kernel)."
- echo " --no-static Do not build a static (monolithic kernel)."
+ echo " --static Build a static (monolithic kernel)"
+ echo " --no-static Do not build a static (monolithic kernel)"
echo " Kernel settings"
echo " --kerneldir=<dir> Location of the kernel sources"
+ echo " --kernel-append-localversion=<...>"
+ echo " Appends value to genkernel's KERNEL_LOCALVERSION option"
echo " --kernel-config=<file|default>"
- echo " Kernel configuration file to use for compilation."
- echo " Use 'default' to explicitly start from scratch"
- echo " using genkernel defaults."
- echo " --module-prefix=<dir> Prefix to kernel module destination, modules"
+ echo " Kernel configuration file to use for compilation; Use"
+ echo " 'default' to explicitly start from scratch using"
+ echo " genkernel defaults"
+ echo " --kernel-localversion=<...>"
+ echo " Set kernel CONFIG_LOCALVERSION, use special value"
+ echo " 'UNSET' to unset any set LOCALVERSION"
+ echo " --kernel-modules-prefix=<dir>"
+ echo " Prefix to kernel module destination, modules"
echo " will be installed in <prefix>/lib/modules"
echo " Low-Level Compile settings"
- echo " --kernel-cc=<compiler> Compiler to use for kernel (e.g. distcc)"
+ echo " --cross-compile=<target-triplet>"
+ echo " Target triple (i.e. aarch64-linux-gnu) to build for"
+ echo " --kernel-cross-compile=<target-triplet>"
+ echo " Target triple (i.e. aarch64-linux-gnu) to build kernel for"
+ echo " --kernel-ar=<archiver> Archiver to use for kernel"
echo " --kernel-as=<assembler> Assembler to use for kernel"
+ echo " --kernel-cc=<compiler> Compiler to use for kernel (e.g. distcc)"
echo " --kernel-ld=<linker> Linker to use for kernel"
- echo " --kernel-cross-compile=<cross var>"
- echo " CROSS_COMPILE kernel variable"
echo " --kernel-make=<makeprg> GNU Make to use for kernel"
+ echo " --kernel-nm=<nm> NM utility to use for kernel"
+ echo " --kernel-objcopy=<objcopy> OBJCOPY utility to use for kernel"
+ echo " --kernel-objdump=<objdump> OBJDUMP utility to use for kernel"
+ echo " --kernel-ranlib=<ranlib> RANLIB utility to use for kernel"
+ echo " --kernel-readelf=<readelf> READELF utility to use for kernel"
+ echo " --kernel-strip=<strip> STRIP utility to use for kernel"
echo " --kernel-target=<t> Override default make target (bzImage)"
echo " --kernel-binary=<path> Override default kernel binary path (arch/foo/boot/bar)"
echo " --kernel-outputdir=<path>"
- echo " Save output files outside the source tree."
-
- echo " --utils-cc=<compiler> Compiler to use for utilities"
+ echo " Save output files outside the source tree"
+ echo " --utils-ar=<archiver> Archiver to use for utils"
echo " --utils-as=<assembler> Assembler to use for utils"
+ echo " --utils-cc=<compiler> C Compiler to use for utilities"
+ echo " --utils-cxx=<compiler> C++ Compiler to use for utilities"
+ echo " --utils-cflags=<cflags> C compiler flags used to compile utilities"
echo " --utils-ld=<linker> Linker to use for utils"
echo " --utils-make=<makeprog> GNU Make to use for utils"
- echo " --utils-cross-compile=<cross var>"
- echo " CROSS_COMPILE utils variable"
- echo " --utils-arch=<arch> Force to arch for utils only instead of"
- echo " autodetect."
- echo " --makeopts=<makeopts> Make options such as -j2, etc..."
+ echo " --utils-nm=<nm> NM utility to use for utils"
+ echo " --utils-objcopy=<objcopy> OBJCOPY utility to use for utils"
+ echo " --utils-objdump=<objdump> OBJDUMP utility to use for utils"
+ echo " --utils-ranlib=<ranlib> RANLIB utility to use for utils"
+ echo " --utils-readelf=<readelf> READELF utility to use for utils"
+ echo " --utils-strip=<strip> STRIP utility to use for utils"
+ echo " --makeopts=<makeopts> Make options such as -j2, etc ..."
echo " --mountboot Mount BOOTDIR automatically if mountable"
echo " --no-mountboot Don't mount BOOTDIR automatically"
echo " --bootdir=<dir> Set the location of the boot-directory, default is /boot"
echo " --modprobedir=<dir> Set the location of the modprobe.d-directory, default is /etc/modprobe.d"
- echo " --nice Run the kernel make at the default nice level (10)."
- echo " --nice=<0-19> Run the kernel make at the selected nice level."
- echo " --no-nice Don't be nice while running the kernel make."
+ echo " --nice Run the kernel make at the default nice level (10)"
+ echo " --nice=<0-19> Run the kernel make at the selected nice level"
+ echo " --no-nice Don't be nice while running the kernel make"
echo " Initialization"
echo " --splash=<theme> Enable framebuffer splash using <theme>"
echo " --splash-res=<res> Select splash theme resolutions to install"
echo " --splash=<theme> Enable framebuffer splash using <theme>"
echo " --splash-res=<res> Select splash theme resolutions to install"
+ echo " --plymouth-theme=<theme> Embed the given Plymouth theme"
echo " --do-keymap-auto Forces keymap selection at boot"
echo " --keymap Enables keymap selection support"
echo " --no-keymap Disables keymap selection support"
+ echo " --bcache Include block layer cache (bcache) support"
+ echo " --no-bcache Exclude block layer cache (bcache) support"
echo " --lvm Include LVM support"
echo " --no-lvm Exclude LVM support"
echo " --mdadm Include MDADM/MDMON support"
@@ -119,6 +152,8 @@ longusage() {
echo " --no-dmraid Exclude DMRAID support"
echo " --e2fsprogs Include e2fsprogs"
echo " --no-e2fsprogs Exclude e2fsprogs"
+ echo " --xfsprogs Include xfsprogs"
+ echo " --no-xfsprogs Exclude xfsprogs"
echo " --zfs Include ZFS support (enabled by default if rootfs is ZFS)"
echo " --no-zfs Exclude ZFS support"
echo " --btrfs Include Btrfs support (enabled by default if rootfs is Btrfs)"
@@ -127,20 +162,35 @@ longusage() {
echo " --no-multipath Exclude Multipath support"
echo " --iscsi Include iSCSI support"
echo " --no-iscsi Exclude iSCSI support"
+ echo " --sandbox Enable sandbox-ing when building initramfs"
+ echo " --no-sandbox Disable sandbox-ing when building initramfs"
echo " --ssh Include SSH (dropbear) support"
echo " --no-ssh Exclude SSH (dropbear) support"
+ echo " --ssh-authorized-keys-file=<file>"
+ echo " Specifies a user created authorized_keys file"
+ echo " --ssh-host-keys=(create|create-from-host|runtime)"
+ echo " Use host keys from /etc/dropbear, but CREATE (default) new host key(s)"
+ echo " if missing, CREATE host key(s) FROM current HOST running genkernel"
+ echo " (not recommended) or don't embed any host key in initramfs and"
+ echo " generate at RUNTIME (dropbear -R)"
+ echo " --boot-font=(current|<file>|none)"
+ echo " Embed CURRENT active console font from host running genkernel"
+ echo " or specified PSF font file into initramfs and activate early on boot."
+ echo " Use NONE (default) to not embed any PSF file."
echo " --bootloader=(grub|grub2)"
echo " Add new kernel to GRUB (grub) or GRUB2 (grub2) bootloader"
echo " --no-bootloader Skip bootloader update"
echo " --linuxrc=<file> Specifies a user created linuxrc"
echo " --busybox-config=<file> Specifies a user created busybox config"
echo " --genzimage Make and install kernelz image (PowerPC)"
- echo " --disklabel Include disk label and uuid support in your ramdisk"
- echo " --no-disklabel Exclude disk label and uuid support in your ramdisk"
echo " --luks Include LUKS support"
echo " --no-luks Exclude LUKS support"
echo " --gpg Include GPG-armored LUKS key support"
echo " --no-gpg Exclude GPG-armored LUKS key support"
+ echo " --keyctl Include keyctl support for loading LUKS passphrase into a keyring"
+ echo " --no-keyctl Exclude keyctl support for loading LUKS passphrase into a keyring"
+ echo " --b2sum Include b2sum"
+ echo " --no-b2sum Exclude b2sum"
echo " --busybox Include busybox"
echo " --no-busybox Exclude busybox"
echo " --unionfs Include support for unionfs"
@@ -149,35 +199,50 @@ longusage() {
echo " --no-netboot Exclude netboot env"
echo " --real-root=<foo> Specify a default for real_root="
echo " Internals"
- echo " --arch-override=<arch> Force to arch instead of autodetect"
echo " --cachedir=<dir> Override the default cache location"
+ echo " --check-free-disk-space-bootdir=<MB>"
+ echo " Check for specified amount of free disk space in MB in BOOTDIR"
+ echo " at genkernel start"
+ echo " --check-free-disk-space-kerneloutputdir=<MB>"
+ echo " Check for specified amount of free disk space in MB in"
+ echo " kernel outputdir at genkernel start"
echo " --clear-cachedir Clear genkernel's cache location on start. Useful"
echo " if you want to force rebuild of included tools"
echo " like BusyBox, DMRAID, GnuPG, LVM, MDADM ..."
echo " --no-clear-cachedir Do not clean up on genkernel start"
- echo " --tempdir=<dir> Location of genkernel's temporary directory"
+ echo " --tmpdir=<dir> Location of genkernel's temporary directory"
echo " --postclear Clear all tmp files and caches after genkernel has run"
echo " --no-postclear Do not clean up after genkernel has run"
echo " Output Settings"
- echo " --kernname=<...> Tag the kernel and ramdisk with a name:"
- echo " If not defined the option defaults to"
- echo " 'genkernel'"
- echo " --minkernpackage=<tbz2> File to output a .tar.bz2'd kernel and ramdisk:"
- echo " No modules outside of the ramdisk will be"
- echo " included..."
- echo " --modulespackage=<tbz2> File to output a .tar.bz2'd modules after the"
+ echo " --kernel-config-filename=<...>"
+ echo " Set kernel config filename"
+ echo " --kernel-filename=<...>"
+ echo " Set kernel filename"
+ echo " --kernel-symlink-name=<...>"
+ echo " Set kernel symlink name"
+ echo " --minkernpackage=<archive>"
+ echo " Archive file created using tar containing kernel and"
+ echo " initramfs"
+ echo " --modulespackage=<archive>"
+ echo " Archive file created using tar containing modules after"
+ echo " the callbacks have run"
+ echo " --kerncache=<archive> Archive file created using tar containing kernel binary,"
+ echo " content of /lib/modules and the kernel config after the"
echo " callbacks have run"
- echo " --kerncache=<tbz2> File to output a .tar.bz2'd kernel contents"
- echo " of /lib/modules/ and the kernel config"
- echo " NOTE: This is created before the callbacks"
- echo " are run!"
echo " --no-kernel-sources This option is only valid if kerncache is"
echo " defined. If there is a valid kerncache no checks"
echo " will be made against a kernel source tree"
+ echo " --initramfs-filename=<...>"
+ echo " Set initramfs filename"
echo " --initramfs-overlay=<dir>"
echo " Directory structure to include in the initramfs,"
echo " only available on 2.6 kernels"
+ echo " --initramfs-symlink-name=<...>"
+ echo " Set initramfs symlink name"
echo " --firmware Enable copying of firmware into initramfs"
+ echo " --no-firmware Disable copying of firmware into initramfs"
+ echo " --all-firmware Enable copying of all firmware into initramfs"
+ echo " --no-all-firmware Disable copying of all firmware into initramfs"
echo " --firmware-dir=<dir>"
echo " Specify directory to copy firmware from (defaults"
echo " to /lib/firmware)"
@@ -187,13 +252,14 @@ longusage() {
echo " separate the filenames with a comma"
echo " --firmware-install Enable installing firmware onto root filesystem"
echo " (only available for kernels older than v4.14)"
+ echo " --no-firmware-install Do not install firmware onto root filesystem"
echo " --integrated-initramfs"
echo " Include the generated initramfs in the kernel"
echo " instead of keeping it as a separate file"
echo " --no-integrated-initramfs"
echo " Do not include the generated initramfs in the kernel"
echo " --wrap-initrd Wrap initramfs using mkimage for u-boot boots"
- echo " --no-wrap-initrd Do not wrap initramfs using mkimage for u-boot boots"
+ echo " --no-wrap-initrd Do not wrap initramfs using mkimage for u-boot boots"
echo " --compress-initramfs"
echo " Compress initramfs"
echo " --no-compress-initramfs"
@@ -201,11 +267,16 @@ longusage() {
echo " --compress-initrd Deprecated alias for --compress-initramfs"
echo " --no-compress-initrd Deprecated alias for --no-compress-initramfs"
echo " --compress-initramfs-type=<arg>"
- echo " Compression type for initramfs (best, xz, lzma, bzip2, gzip, lzop)"
+ echo " Compression type for initramfs (best, bzip2, fastest, gzip, lz4,"
+ echo " lzma, lza, xz, zstd)"
echo " --strip=(all|kernel|modules|none)"
echo " Strip debug symbols from none, all, installed kernel (obsolete) or"
- echo " modules (default)."
+ echo " modules (default)"
echo " --no-strip Don't strip installed kernel or modules, alias for --strip=none"
+ echo " --systemmap-filename=<...>"
+ echo " Set System.map filename"
+ echo " --systemmap-symlink-name=<...>"
+ echo " Set System.map symlink name"
echo
echo "For a detailed list of supported initramfs options and flags; issue:"
echo " man 8 genkernel"
@@ -220,9 +291,9 @@ usage() {
echo 'Some useful options:'
echo ' --menuconfig Run menuconfig after oldconfig'
echo ' --nconfig Run nconfig after oldconfig (requires ncurses)'
- echo ' --no-clean Do not run make clean before compilation'
- echo ' --no-mrproper Do not run make mrproper before compilation,'
- echo ' this is implied by --no-clean.'
+ echo " --no-clean Do not run 'make clean' before compilation"
+ echo " --no-mrproper Do not run 'make mrproper' before compilation,"
+ echo ' this is implied by --no-clean'
echo
echo 'For a detailed list of supported commandline options and flags; issue:'
echo ' genkernel --help'
@@ -233,517 +304,619 @@ usage() {
parse_optbool() {
local opt=${1/--no-*/no} # false
opt=${opt/--*/yes} # true
- echo $opt
+ echo ${opt}
}
parse_cmdline() {
case "$*" in
+ --cross-compile=*)
+ CMD_CROSS_COMPILE="${*#*=}"
+ print_info 3 "CMD_CROSS_COMPILE: ${CMD_CROSS_COMPILE}"
+ ;;
+ --kernel-cross-compile=*)
+ CMD_KERNEL_CROSS_COMPILE="${*#*=}"
+ print_info 3 "CMD_KERNEL_CROSS_COMPILE: ${CMD_KERNEL_CROSS_COMPILE}"
+ ;;
+ --kernel-ar=*)
+ CMD_KERNEL_AR="${*#*=}"
+ print_info 3 "CMD_KERNEL_AR: ${CMD_KERNEL_AR}"
+ ;;
+ --kernel-as=*)
+ CMD_KERNEL_AS="${*#*=}"
+ print_info 3 "CMD_KERNEL_AS: ${CMD_KERNEL_AS}"
+ ;;
--kernel-cc=*)
CMD_KERNEL_CC="${*#*=}"
- print_info 2 "CMD_KERNEL_CC: ${CMD_KERNEL_CC}"
+ print_info 3 "CMD_KERNEL_CC: ${CMD_KERNEL_CC}"
;;
--kernel-ld=*)
CMD_KERNEL_LD="${*#*=}"
- print_info 2 "CMD_KERNEL_LD: ${CMD_KERNEL_LD}"
- ;;
- --kernel-as=*)
- CMD_KERNEL_AS="${*#*=}"
- print_info 2 "CMD_KERNEL_AS: ${CMD_KERNEL_AS}"
+ print_info 3 "CMD_KERNEL_LD: ${CMD_KERNEL_LD}"
;;
--kernel-make=*)
CMD_KERNEL_MAKE="${*#*=}"
- print_info 2 "CMD_KERNEL_MAKE: ${CMD_KERNEL_MAKE}"
+ print_info 3 "CMD_KERNEL_MAKE: ${CMD_KERNEL_MAKE}"
+ ;;
+ --kernel-nm=*)
+ CMD_KERNEL_NM="${*#*=}"
+ print_info 3 "CMD_KERNEL_NM: ${CMD_KERNEL_NM}"
+ ;;
+ --kernel-objcopy=*)
+ CMD_KERNEL_OBJCOPY="${*#*=}"
+ print_info 3 "CMD_KERNEL_OBJCOPY: ${CMD_KERNEL_OBJCOPY}"
+ ;;
+ --kernel-objdump=*)
+ CMD_KERNEL_OBJDUMP="${*#*=}"
+ print_info 3 "CMD_KERNEL_OBJDUMP: ${CMD_KERNEL_OBJDUMP}"
+ ;;
+ --kernel-ranlib=*)
+ CMD_KERNEL_RANLIB="${*#*=}"
+ print_info 3 "CMD_KERNEL_RANLIB: ${CMD_KERNEL_RANLIB}"
+ ;;
+ --kernel-readelf=*)
+ CMD_KERNEL_READELF="${*#*=}"
+ print_info 3 "CMD_KERNEL_READELF: ${CMD_KERNEL_READELF}"
+ ;;
+ --kernel-strip=*)
+ CMD_KERNEL_STRIP="${*#*=}"
+ print_info 3 "CMD_KERNEL_STRIP: ${CMD_KERNEL_STRIP}"
;;
--kernel-target=*)
KERNEL_MAKE_DIRECTIVE_OVERRIDE="${*#*=}"
- print_info 2 "KERNEL_MAKE_DIRECTIVE_OVERRIDE: ${KERNEL_MAKE_DIRECTIVE_OVERRIDE}"
+ print_info 3 "KERNEL_MAKE_DIRECTIVE_OVERRIDE: ${KERNEL_MAKE_DIRECTIVE_OVERRIDE}"
;;
--kernel-binary=*)
KERNEL_BINARY_OVERRIDE="${*#*=}"
- print_info 2 "KERNEL_BINARY_OVERRIDE: ${KERNEL_BINARY_OVERRIDE}"
- ;;
- --kernel-cross-compile=*)
- CMD_KERNEL_CROSS_COMPILE="${*#*=}"
- CMD_KERNEL_CROSS_COMPILE=$(echo ${CMD_KERNEL_CROSS_COMPILE}|sed -e 's/.*[^-]$/&-/g')
- print_info 2 "CMD_KERNEL_CROSS_COMPILE: ${CMD_KERNEL_CROSS_COMPILE}"
+ print_info 3 "KERNEL_BINARY_OVERRIDE: ${KERNEL_BINARY_OVERRIDE}"
;;
--kernel-outputdir=*)
CMD_KERNEL_OUTPUTDIR="${*#*=}"
- print_info 2 "CMD_KERNEL_OUTPUTDIR: ${CMD_KERNEL_OUTPUTDIR}"
+ print_info 3 "CMD_KERNEL_OUTPUTDIR: ${CMD_KERNEL_OUTPUTDIR}"
+ ;;
+ --utils-ar=*)
+ CMD_UTILS_AR="${*#*=}"
+ print_info 3 "CMD_UTILS_AR: ${CMD_UTILS_AR}"
+ ;;
+ --utils-as=*)
+ CMD_UTILS_AS="${*#*=}"
+ print_info 3 "CMD_UTILS_AS: ${CMD_UTILS_AS}"
;;
--utils-cc=*)
CMD_UTILS_CC="${*#*=}"
- print_info 2 "CMD_UTILS_CC: ${CMD_UTILS_CC}"
+ print_info 3 "CMD_UTILS_CC: ${CMD_UTILS_CC}"
+ ;;
+ --utils-cxx=*)
+ CMD_UTILS_CXX="${*#*=}"
+ print_info 3 "CMD_UTILS_CXX: ${CMD_UTILS_CXX}"
+ ;;
+ --utils-cflags=*)
+ CMD_UTILS_CFLAGS="${*#*=}"
+ print_info 3 "CMD_UTILS_CFLAGS: ${CMD_UTILS_CFLAGS}"
;;
--utils-ld=*)
CMD_UTILS_LD="${*#*=}"
- print_info 2 "CMD_UTILS_LD: ${CMD_UTILS_LD}"
- ;;
- --utils-as=*)
- CMD_UTILS_AS="${*#*=}"
- print_info 2 "CMD_UTILS_AS: ${CMD_UTILS_AS}"
+ print_info 3 "CMD_UTILS_LD: ${CMD_UTILS_LD}"
;;
--utils-make=*)
CMD_UTILS_MAKE="${*#*=}"
- print_info 2 "CMD_UTILS_MAKE: ${CMD_UTILS_MAKE}"
+ print_info 3 "CMD_UTILS_MAKE: ${CMD_UTILS_MAKE}"
+ ;;
+ --utils-nm=*)
+ CMD_UTILS_NM="${*#*=}"
+ print_info 3 "CMD_UTILS_NM: ${CMD_UTILS_NM}"
;;
- --utils-cross-compile=*)
- CMD_UTILS_CROSS_COMPILE="${*#*=}"
- CMD_UTILS_CROSS_COMPILE=$(echo ${CMD_UTILS_CROSS_COMPILE}|sed -e 's/.*[^-]$/&-/g')
- print_info 2 "CMD_UTILS_CROSS_COMPILE: ${CMD_UTILS_CROSS_COMPILE}"
+ --utils-objcopy=*)
+ CMD_UTILS_OBJCOPY="${*#*=}"
+ print_info 3 "CMD_UTILS_OBJCOPY: ${CMD_UTILS_OBJCOPY}"
;;
- --utils-arch=*)
- CMD_UTILS_ARCH="${*#*=}"
- print_info 2 "CMD_UTILS_ARCH: ${CMD_ARCHOVERRIDE}"
+ --utils-objdump=*)
+ CMD_UTILS_OBJDUMP="${*#*=}"
+ print_info 3 "CMD_UTILS_OBJDUMP: ${CMD_UTILS_OBJDUMP}"
+ ;;
+ --utils-ranlib=*)
+ CMD_UTILS_RANLIB="${*#*=}"
+ print_info 3 "CMD_UTILS_RANLIB: ${CMD_UTILS_RANLIB}"
+ ;;
+ --utils-readelf=*)
+ CMD_UTILS_READELF="${*#*=}"
+ print_info 3 "CMD_UTILS_READELF: ${CMD_UTILS_READELF}"
+ ;;
+ --utils-strip=*)
+ CMD_UTILS_STRIP="${*#*=}"
+ print_info 3 "CMD_UTILS_STRIP: ${CMD_UTILS_STRIP}"
;;
--makeopts=*)
CMD_MAKEOPTS="${*#*=}"
- print_info 2 "CMD_MAKEOPTS: ${CMD_MAKEOPTS}"
+ print_info 3 "CMD_MAKEOPTS: ${CMD_MAKEOPTS}"
;;
--mountboot|--no-mountboot)
- CMD_MOUNTBOOT=`parse_optbool "$*"`
- print_info 2 "CMD_MOUNTBOOT: ${CMD_MOUNTBOOT}"
+ CMD_MOUNTBOOT=$(parse_optbool "$*")
+ print_info 3 "CMD_MOUNTBOOT: ${CMD_MOUNTBOOT}"
;;
--bootdir=*)
CMD_BOOTDIR="${*#*=}"
- print_info 2 "CMD_BOOTDIR: ${CMD_BOOTDIR}"
+ print_info 3 "CMD_BOOTDIR: ${CMD_BOOTDIR}"
;;
--modprobedir=*)
CMD_MODPROBEDIR="${*#*=}"
- print_info 2 "CMD_MODPROBEDIR: ${CMD_MODPROBEDIR}"
+ print_info 3 "CMD_MODPROBEDIR: ${CMD_MODPROBEDIR}"
;;
--do-keymap-auto)
CMD_DOKEYMAPAUTO="yes"
CMD_KEYMAP="yes"
- print_info 2 "CMD_DOKEYMAPAUTO: ${CMD_DOKEYMAPAUTO}"
+ print_info 3 "CMD_DOKEYMAPAUTO: ${CMD_DOKEYMAPAUTO}"
;;
--keymap|--no-keymap)
- CMD_KEYMAP=`parse_optbool "$*"`
- print_info 2 "CMD_KEYMAP: ${CMD_KEYMAP}"
+ CMD_KEYMAP=$(parse_optbool "$*")
+ print_info 3 "CMD_KEYMAP: ${CMD_KEYMAP}"
+ ;;
+ --bcache|--no-bcache)
+ CMD_BCACHE=$(parse_optbool "$*")
+ print_info 3 "CMD_BCACHE: ${CMD_BCACHE}"
;;
--lvm|--no-lvm)
- CMD_LVM=`parse_optbool "$*"`
- print_info 2 "CMD_LVM: ${CMD_LVM}"
+ CMD_LVM=$(parse_optbool "$*")
+ print_info 3 "CMD_LVM: ${CMD_LVM}"
;;
--lvm2|--no-lvm2)
- CMD_LVM=`parse_optbool "$*"`
- print_info 2 "CMD_LVM: ${CMD_LVM}"
+ CMD_LVM=$(parse_optbool "$*")
+ print_info 3 "CMD_LVM: ${CMD_LVM}"
echo
print_warning 1 "Please use --lvm, as --lvm2 is deprecated."
;;
--mdadm|--no-mdadm)
- CMD_MDADM=`parse_optbool "$*"`
- print_info 2 "CMD_MDADM: $CMD_MDADM"
- if isTrue "${CMD_MDADM}" && [ ! -e /sbin/mdadm ]
- then
- print_warning 'Warning: --mdadm generally requires sys-fs/mdadm present on the host system'
- fi
+ CMD_MDADM=$(parse_optbool "$*")
+ print_info 3 "CMD_MDADM: ${CMD_MDADM}"
;;
--mdadm-config=*)
CMD_MDADM_CONFIG="${*#*=}"
- print_info 2 "CMD_MDADM_CONFIG: $CMD_MDADM_CONFIG"
+ print_info 3 "CMD_MDADM_CONFIG: ${CMD_MDADM_CONFIG}"
+ ;;
+ --b2sum|--no-b2sum)
+ CMD_B2SUM=$(parse_optbool "$*")
+ print_info 3 "CMD_B2SUM: ${CMD_B2SUM}"
;;
--busybox|--no-busybox)
- CMD_BUSYBOX=`parse_optbool "$*"`
- print_info 2 "CMD_BUSYBOX: ${CMD_BUSYBOX}"
+ CMD_BUSYBOX=$(parse_optbool "$*")
+ print_info 3 "CMD_BUSYBOX: ${CMD_BUSYBOX}"
;;
--microcode|--no-microcode)
- case `parse_optbool "$*"` in
+ case $(parse_optbool "$*") in
no) CMD_MICROCODE='no' ;;
yes) CMD_MICROCODE='all' ;;
esac
- print_info 2 "CMD_MICROCODE: ${CMD_MICROCODE}"
+ print_info 3 "CMD_MICROCODE: ${CMD_MICROCODE}"
;;
--microcode=*)
CMD_MICROCODE="${*#*=}"
- print_info 2 "CMD_MICROCODE: $CMD_MICROCODE"
+ print_info 3 "CMD_MICROCODE: ${CMD_MICROCODE}"
;;
--microcode-initramfs|--no-microcode-initramfs)
- CMD_MICROCODE_INITRAMFS=`parse_optbool "$*"`
- print_info 2 "CMD_MICROCODE_INITRAMFS: ${CMD_MICROCODE_INITRAMFS}"
+ CMD_MICROCODE_INITRAMFS=$(parse_optbool "$*")
+ print_info 3 "CMD_MICROCODE_INITRAMFS: ${CMD_MICROCODE_INITRAMFS}"
;;
--nfs|--no-nfs)
- CMD_NFS=`parse_optbool "$*"`
- print_info 2 "CMD_NFS: ${CMD_NFS}"
+ CMD_NFS=$(parse_optbool "$*")
+ print_info 3 "CMD_NFS: ${CMD_NFS}"
;;
--unionfs|--no-unionfs)
- CMD_UNIONFS=`parse_optbool "$*"`
- print_info 2 "CMD_UNIONFS: ${CMD_UNIONFS}"
+ CMD_UNIONFS=$(parse_optbool "$*")
+ print_info 3 "CMD_UNIONFS: ${CMD_UNIONFS}"
;;
--netboot|--no-netboot)
- CMD_NETBOOT=`parse_optbool "$*"`
- print_info 2 "CMD_NETBOOT: ${CMD_NETBOOT}"
+ CMD_NETBOOT=$(parse_optbool "$*")
+ print_info 3 "CMD_NETBOOT: ${CMD_NETBOOT}"
;;
--real-root=*)
CMD_REAL_ROOT="${*#*=}"
- print_info 2 "CMD_REAL_ROOT: ${CMD_REAL_ROOT}"
+ print_info 3 "CMD_REAL_ROOT: ${CMD_REAL_ROOT}"
;;
--dmraid|--no-dmraid)
- CMD_DMRAID=`parse_optbool "$*"`
- if isTrue "${CMD_DMRAID}" && [ ! -e /usr/sbin/dmraid ]
- then
- echo 'Error: --dmraid requires sys-fs/dmraid' \
- 'to be installed on the host system.'
- exit 1
- fi
- if isTrue "${CMD_DMRAID}" && [ ! -e /usr/include/libdevmapper.h ]
- then
- echo 'Error: --dmraid requires sys-fs/lvm2' \
- 'to be installed on the host system.'
- exit 1
- fi
- print_info 2 "CMD_DMRAID: ${CMD_DMRAID}"
+ CMD_DMRAID=$(parse_optbool "$*")
+ print_info 3 "CMD_DMRAID: ${CMD_DMRAID}"
;;
--e2fsprogs|--no-e2fsprogs)
- CMD_E2FSPROGS=`parse_optbool "$*"`
- print_info 2 "CMD_E2FSPROGS: ${CMD_E2FSPROGS}"
+ CMD_E2FSPROGS=$(parse_optbool "$*")
+ print_info 3 "CMD_E2FSPROGS: ${CMD_E2FSPROGS}"
+ ;;
+ --xfsprogs|--no-xfsprogs)
+ CMD_XFSPROGS=$(parse_optbool "$*")
+ print_info 3 "CMD_XFSPROGS: ${CMD_XFSPROGS}"
;;
--zfs|--no-zfs)
- CMD_ZFS=`parse_optbool "$*"`
- print_info 2 "CMD_ZFS: ${CMD_ZFS}"
+ CMD_ZFS=$(parse_optbool "$*")
+ print_info 3 "CMD_ZFS: ${CMD_ZFS}"
;;
--btrfs|--no-btrfs)
- CMD_BTRFS=`parse_optbool "$*"`
- print_info 2 "CMD_BTRFS: ${CMD_BTRFS}"
+ CMD_BTRFS=$(parse_optbool "$*")
+ print_info 3 "CMD_BTRFS: ${CMD_BTRFS}"
;;
--virtio|--no-virtio)
- CMD_VIRTIO=`parse_optbool "$*"`
- print_info 2 "CMD_VIRTIO: ${CMD_VIRTIO}"
+ CMD_VIRTIO=$(parse_optbool "$*")
+ print_info 3 "CMD_VIRTIO: ${CMD_VIRTIO}"
;;
--multipath|--no-multipath)
- CMD_MULTIPATH=`parse_optbool "$*"`
- if isTrue "${CMD_MULTIPATH}" && [ ! -e /sbin/multipath ]
- then
- echo 'Error: --multipath requires sys-fs/multipath-tools' \
- 'to be installed on the host system.'
- exit 1
- fi
- if isTrue "${CMD_MULTIPATH}" && [ ! -e /usr/include/libdevmapper.h ]
- then
- echo 'Error: --multipath requires sys-fs/lvm2' \
- 'to be installed on the host system.'
- exit 1
- fi
- print_info 2 "CMD_MULTIPATH: ${CMD_MULTIPATH}"
+ CMD_MULTIPATH=$(parse_optbool "$*")
+ print_info 3 "CMD_MULTIPATH: ${CMD_MULTIPATH}"
+ ;;
+ --boot-font=*)
+ CMD_BOOTFONT="${*#*=}"
+ [ -z "${CMD_BOOTFONT}" ] && CMD_BOOTFONT="none"
+ print_info 3 "CMD_BOOTFONT: ${CMD_BOOTFONT}"
;;
--bootloader=*)
CMD_BOOTLOADER="${*#*=}"
[ -z "${CMD_BOOTLOADER}" ] && CMD_BOOTLOADER="no"
- case "${CMD_BOOTLOADER}" in
- no|grub|grub2)
- ;;
- *)
- echo "Error: Bootloader '${CMD_BOOTLOADER}' is unsupported."
- exit 1
- esac
- print_info 2 "CMD_BOOTLOADER: ${CMD_BOOTLOADER}"
+ print_info 3 "CMD_BOOTLOADER: ${CMD_BOOTLOADER}"
;;
--no-bootloader)
CMD_BOOTLOADER="no"
- print_info 2 "CMD_BOOTLOADER: ${CMD_BOOTLOADER}"
+ print_info 3 "CMD_BOOTLOADER: ${CMD_BOOTLOADER}"
;;
--iscsi|--no-iscsi)
- CMD_ISCSI=`parse_optbool "$*"`
- print_info 2 "CMD_ISCSI: ${CMD_ISCSI}"
+ CMD_ISCSI=$(parse_optbool "$*")
+ print_info 3 "CMD_ISCSI: ${CMD_ISCSI}"
;;
--hyperv|--no-hyperv)
- CMD_HYPERV=`parse_optbool "$*"`
- print_info 2 "CMD_HYPERV: ${CMD_HYPERV}"
+ CMD_HYPERV=$(parse_optbool "$*")
+ print_info 3 "CMD_HYPERV: ${CMD_HYPERV}"
+ ;;
+ --sandbox|--no-sandbox)
+ CMD_SANDBOX=$(parse_optbool "$*")
+ print_info 3 "CMD_SANDBOX: ${CMD_SANDBOX}"
;;
--ssh|--no-ssh)
- CMD_SSH=`parse_optbool "$*"`
- print_info 2 "CMD_SSH: ${CMD_SSH}"
- if isTrue "${CMD_SSH}" && [ ! -e /usr/sbin/dropbear ]
- then
- echo 'Error: --ssh requires net-misc/dropbear' \
- 'to be installed on the host system.'
- exit 1
- fi
- if isTrue "${CMD_SSH}" && [ ! -e /etc/dropbear/authorized_keys ]
+ CMD_SSH=$(parse_optbool "$*")
+ print_info 3 "CMD_SSH: ${CMD_SSH}"
+ ;;
+ --ssh-authorized-keys-file=*)
+ CMD_SSH_AUTHORIZED_KEYS_FILE="${*#*=}"
+ print_info 3 "CMD_SSH_AUTHORIZED_KEYS_FILE: ${CMD_SSH_AUTHORIZED_KEYS_FILE}"
+ ;;
+ --ssh-host-keys=*)
+ CMD_SSH_HOST_KEYS="${*#*=}"
+ if ! isTrue "$(is_valid_ssh_host_keys_parameter_value "${CMD_SSH_HOST_KEYS}")"
then
- echo 'Error: --ssh requires that dropbear is configured' \
- 'but /etc/dropbear/authorized_keys does not exist!'
+ echo "Error: --ssh-host-keys value '${CMD_SSH_HOST_KEYS}' is unsupported."
exit 1
fi
+ print_info 3 "CMD_SSH_HOST_KEYS: ${CMD_SSH_HOST_KEYS}"
+ ;;
+ --strace|--no-strace)
+ CMD_STRACE=$(parse_optbool "$*")
+ print_info 3 "CMD_STRACE: ${CMD_STRACE}"
;;
--loglevel=*)
CMD_LOGLEVEL="${*#*=}"
LOGLEVEL="${CMD_LOGLEVEL}"
- print_info 2 "CMD_LOGLEVEL: ${CMD_LOGLEVEL}"
+ print_info 3 "CMD_LOGLEVEL: ${CMD_LOGLEVEL}"
;;
--menuconfig)
- TERM_LINES=`stty -a | head -n 1 | cut -d\ -f5 | cut -d\; -f1`
- TERM_COLUMNS=`stty -a | head -n 1 | cut -d\ -f7 | cut -d\; -f1`
+ TERM_LINES=$(stty -a | head -n 1 | cut -d\ -f5 | cut -d\; -f1)
+ TERM_COLUMNS=$(stty -a | head -n 1 | cut -d\ -f7 | cut -d\; -f1)
if [[ TERM_LINES -lt 19 || TERM_COLUMNS -lt 80 ]]
then
echo 'Error: You need a terminal with at least 80 columns' \
- 'and 19 lines for --menuconfig; try --no-menuconfig...'
+ 'and 19 lines for --menuconfig; try --no-menuconfig ...'
exit 1
fi
CMD_MENUCONFIG="yes"
- print_info 2 "CMD_MENUCONFIG: ${CMD_MENUCONFIG}"
+ print_info 3 "CMD_MENUCONFIG: ${CMD_MENUCONFIG}"
;;
--no-menuconfig)
CMD_MENUCONFIG="no"
- print_info 2 "CMD_MENUCONFIG: ${CMD_MENUCONFIG}"
+ print_info 3 "CMD_MENUCONFIG: ${CMD_MENUCONFIG}"
;;
--nconfig)
- TERM_LINES=`stty -a | head -n 1 | cut -d\ -f5 | cut -d\; -f1`
- TERM_COLUMNS=`stty -a | head -n 1 | cut -d\ -f7 | cut -d\; -f1`
+ TERM_LINES=$(stty -a | head -n 1 | cut -d\ -f5 | cut -d\; -f1)
+ TERM_COLUMNS=$(stty -a | head -n 1 | cut -d\ -f7 | cut -d\; -f1)
if [[ TERM_LINES -lt 19 || TERM_COLUMNS -lt 80 ]]
then
echo 'Error: You need a terminal with at least 80 columns' \
- 'and 19 lines for --nconfig; try --no-nconfig...'
+ 'and 19 lines for --nconfig; try --no-nconfig ...'
exit 1
fi
CMD_NCONFIG="yes"
- print_info 2 "CMD_NCONFIG: ${CMD_NCONFIG}"
+ print_info 3 "CMD_NCONFIG: ${CMD_NCONFIG}"
;;
--no-nconfig)
CMD_NCONFIG="no"
- print_info 2 "CMD_NCONFIG: ${CMD_NCONFIG}"
+ print_info 3 "CMD_NCONFIG: ${CMD_NCONFIG}"
;;
--gconfig|--no-gconfig)
- CMD_GCONFIG=`parse_optbool "$*"`
- print_info 2 "CMD_GCONFIG: ${CMD_GCONFIG}"
+ CMD_GCONFIG=$(parse_optbool "$*")
+ print_info 3 "CMD_GCONFIG: ${CMD_GCONFIG}"
;;
--xconfig|--no-xconfig)
- CMD_XCONFIG=`parse_optbool "$*"`
- print_info 2 "CMD_XCONFIG: ${CMD_XCONFIG}"
+ CMD_XCONFIG=$(parse_optbool "$*")
+ print_info 3 "CMD_XCONFIG: ${CMD_XCONFIG}"
;;
--save-config|--no-save-config)
- CMD_SAVE_CONFIG=`parse_optbool "$*"`
- print_info 2 "CMD_SAVE_CONFIG: ${CMD_SAVE_CONFIG}"
+ CMD_SAVE_CONFIG=$(parse_optbool "$*")
+ print_info 3 "CMD_SAVE_CONFIG: ${CMD_SAVE_CONFIG}"
;;
--mrproper|--no-mrproper)
- CMD_MRPROPER=`parse_optbool "$*"`
- print_info 2 "CMD_MRPROPER: ${CMD_MRPROPER}"
+ CMD_MRPROPER=$(parse_optbool "$*")
+ print_info 3 "CMD_MRPROPER: ${CMD_MRPROPER}"
;;
--clean|--no-clean)
- CMD_CLEAN=`parse_optbool "$*"`
- print_info 2 "CMD_CLEAN: ${CMD_CLEAN}"
+ CMD_CLEAN=$(parse_optbool "$*")
+ print_info 3 "CMD_CLEAN: ${CMD_CLEAN}"
;;
--oldconfig|--no-oldconfig)
- CMD_OLDCONFIG=`parse_optbool "$*"`
+ CMD_OLDCONFIG=$(parse_optbool "$*")
isTrue "${CMD_OLDCONFIG}" && CMD_CLEAN="no"
- print_info 2 "CMD_CLEAN: ${CMD_CLEAN}"
- print_info 2 "CMD_OLDCONFIG: ${CMD_OLDCONFIG}"
+ print_info 3 "CMD_CLEAN: ${CMD_CLEAN}"
+ print_info 3 "CMD_OLDCONFIG: ${CMD_OLDCONFIG}"
;;
--gensplash=*)
CMD_SPLASH="yes"
SPLASH_THEME="${*#*=}"
- print_info 2 "CMD_SPLASH: ${CMD_SPLASH}"
- print_info 2 "SPLASH_THEME: ${SPLASH_THEME}"
+ print_info 3 "CMD_SPLASH: ${CMD_SPLASH}"
+ print_info 3 "SPLASH_THEME: ${SPLASH_THEME}"
echo
print_warning 1 "Please use --splash, as --gensplash is deprecated."
;;
--gensplash|--no-gensplash)
- CMD_SPLASH=`parse_optbool "$*"`
+ CMD_SPLASH=$(parse_optbool "$*")
SPLASH_THEME='default'
- print_info 2 "CMD_SPLASH: ${CMD_SPLASH}"
+ print_info 3 "CMD_SPLASH: ${CMD_SPLASH}"
echo
print_warning 1 "Please use --splash, as --gensplash is deprecated."
;;
--splash=*)
CMD_SPLASH="yes"
SPLASH_THEME="${*#*=}"
- print_info 2 "CMD_SPLASH: ${CMD_SPLASH}"
- print_info 2 "SPLASH_THEME: ${SPLASH_THEME}"
+ print_info 3 "CMD_SPLASH: ${CMD_SPLASH}"
+ print_info 3 "SPLASH_THEME: ${SPLASH_THEME}"
;;
--splash|--no-splash)
- CMD_SPLASH=`parse_optbool "$*"`
+ CMD_SPLASH=$(parse_optbool "$*")
SPLASH_THEME='default'
- print_info 2 "CMD_SPLASH: ${CMD_SPLASH}"
+ print_info 3 "CMD_SPLASH: ${CMD_SPLASH}"
;;
--gensplash-res=*)
SPLASH_RES="${*#*=}"
- print_info 2 "SPLASH_RES: ${SPLASH_RES}"
+ print_info 3 "SPLASH_RES: ${SPLASH_RES}"
echo
print_warning 1 "Please use --splash-res, as --gensplash-res is deprecated."
;;
--splash-res=*)
SPLASH_RES="${*#*=}"
- print_info 2 "SPLASH_RES: ${SPLASH_RES}"
+ print_info 3 "SPLASH_RES: ${SPLASH_RES}"
+ ;;
+ --plymouth)
+ CMD_PLYMOUTH="yes"
+ PLYMOUTH_THEME='text'
+ print_info 3 "CMD_PLYMOUTH: ${CMD_PLYMOUTH}"
+ ;;
+ --plymouth-theme=*)
+ CMD_PLYMOUTH="yes"
+ PLYMOUTH_THEME="${*#*=}"
+ print_info 3 "CMD_PLYMOUTH: ${CMD_PLYMOUTH}"
+ print_info 3 "PLYMOUTH_THEME: ${PLYMOUTH_THEME}"
;;
--install|--no-install)
- CMD_INSTALL=`parse_optbool "$*"`
- print_info 2 "CMD_INSTALL: ${CMD_INSTALL}"
+ CMD_INSTALL=$(parse_optbool "$*")
+ print_info 3 "CMD_INSTALL: ${CMD_INSTALL}"
;;
--ramdisk-modules|--no-ramdisk-modules)
- CMD_RAMDISKMODULES=`parse_optbool "$*"`
- print_info 2 "CMD_RAMDISKMODULES: ${CMD_RAMDISKMODULES}"
+ CMD_RAMDISKMODULES=$(parse_optbool "$*")
+ print_info 3 "CMD_RAMDISKMODULES: ${CMD_RAMDISKMODULES}"
;;
--all-ramdisk-modules|--no-all-ramdisk-modules)
- CMD_ALLRAMDISKMODULES=`parse_optbool "$*"`
- print_info 2 "CMD_ALLRAMDISKMODULES: ${CMD_ALLRAMDISKMODULES}"
+ CMD_ALLRAMDISKMODULES=$(parse_optbool "$*")
+ print_info 3 "CMD_ALLRAMDISKMODULES: ${CMD_ALLRAMDISKMODULES}"
+ ;;
+ --module-rebuild|--no-module-rebuild)
+ CMD_MODULEREBUILD=$(parse_optbool "$*")
+ print_info 3 "CMD_MODULEREBUILD: ${CMD_MODULEREBUILD}"
+ ;;
+ --module-rebuild-cmd=*)
+ CMD_MODULEREBUILD_CMD="${*#--module-rebuild-cmd=}"
+ print_info 3 "CMD_MODULEREBUILD_CMD: ${CMD_MODULEREBUILD_CMD}"
;;
--callback=*)
- CMD_CALLBACK="${*#*=}"
- print_info 2 "CMD_CALLBACK: ${CMD_CALLBACK}/$*"
+ CMD_CALLBACK="${*#--callback=}"
+ print_info 3 "CMD_CALLBACK: ${CMD_CALLBACK}"
;;
--static|--no-static)
- CMD_STATIC=`parse_optbool "$*"`
- print_info 2 "CMD_STATIC: ${CMD_STATIC}"
+ CMD_STATIC=$(parse_optbool "$*")
+ print_info 3 "CMD_STATIC: ${CMD_STATIC}"
;;
- --tempdir=*)
- TMPDIR="${*#*=}"
- if [ ! -d "${TMPDIR}" ]
- then
- mkdir -p "${TMPDIR}" || gen_die "Failed to create '${TMPDIR}'!"
- fi
- TEMP=$(mktemp -d -p "${TMPDIR}" gk.XXXXXXXX)
- [ -z "${TEMP}" ] && gen_die "mktemp failed!"
- print_info 2 "TMPDIR: ${TMPDIR}"
- print_info 2 "TEMP: ${TEMP}"
+ --tmpdir=*)
+ CMD_TMPDIR="${*#*=}"
+ print_info 3 "CMD_TMPDIR: ${CMD_TMPDIR}"
;;
--postclear|--no-postclear)
- CMD_POSTCLEAR=`parse_optbool "$*"`
- print_info 2 "CMD_POSTCLEAR: ${CMD_POSTCLEAR}"
+ CMD_POSTCLEAR=$(parse_optbool "$*")
+ print_info 3 "CMD_POSTCLEAR: ${CMD_POSTCLEAR}"
;;
- --arch-override=*)
- CMD_ARCHOVERRIDE="${*#*=}"
- print_info 2 "CMD_ARCHOVERRIDE: ${CMD_ARCHOVERRIDE}"
+ --check-free-disk-space-bootdir=*)
+ CMD_CHECK_FREE_DISK_SPACE_BOOTDIR="${*#*=}"
+ print_info 3 "CMD_CHECK_FREE_DISK_SPACE_BOOTDIR: ${CMD_CHECK_FREE_DISK_SPACE_BOOTDIR}"
+ ;;
+ --check-free-disk-space-kerneloutputdir=*)
+ CMD_CHECK_FREE_DISK_SPACE_KERNELOUTPUTDIR="${*#*=}"
+ print_info 3 "CMD_CHECK_FREE_DISK_SPACE_KERNELOUTPUTDIR: ${CMD_CHECK_FREE_DISK_SPACE_KERNELOUTPUTDIR}"
;;
--color|--no-color)
- USECOLOR=`parse_optbool "$*"`
- print_info 2 "USECOLOR: ${USECOLOR}"
- setColorVars
+ CMD_COLOR=$(parse_optbool "$*")
+ if isTrue "${CMD_COLOR}"
+ then
+ NOCOLOR=false
+ else
+ NOCOLOR=true
+ fi
+ print_info 3 "CMD_COLOR: ${CMD_COLOR}"
+ set_color_vars
;;
- --debug-cleanup|--no-debug-cleanup)
- CMD_DEBUGCLEANUP=`parse_optbool "$*"`
- print_info 2 "CMD_DEBUGCLEANUP: ${CMD_DEBUGCLEANUP}"
+ --cleanup|--no-cleanup)
+ CMD_CLEANUP=$(parse_optbool "$*")
+ print_info 3 "CMD_CLEANUP: ${CMD_CLEANUP}"
;;
--logfile=*)
CMD_LOGFILE="${*#*=}"
- LOGFILE="${*#*=}"
- print_info 2 "CMD_LOGFILE: ${CMD_LOGFILE}"
- print_info 2 "LOGFILE: ${CMD_LOGFILE}"
+ print_info 3 "CMD_LOGFILE: ${CMD_LOGFILE}"
;;
--kerneldir=*)
CMD_KERNEL_DIR="${*#*=}"
- print_info 2 "CMD_KERNEL_DIR: ${CMD_KERNEL_DIR}"
+ print_info 3 "CMD_KERNEL_DIR: ${CMD_KERNEL_DIR}"
+ ;;
+ --kernel-append-localversion=*)
+ CMD_KERNEL_APPEND_LOCALVERSION="${*#*=}"
+ print_info 3 "CMD_KERNEL_APPEND_LOCALVERSION: ${CMD_KERNEL_APPEND_LOCALVERSION}"
;;
--kernel-config=*)
CMD_KERNEL_CONFIG="${*#*=}"
- print_info 2 "CMD_KERNEL_CONFIG: ${CMD_KERNEL_CONFIG}"
+ print_info 3 "CMD_KERNEL_CONFIG: ${CMD_KERNEL_CONFIG}"
+ ;;
+ --kernel-localversion=*)
+ CMD_KERNEL_LOCALVERSION="${*#*=}"
+ print_info 3 "CMD_KERNEL_LOCALVERSION: ${CMD_KERNEL_LOCALVERSION}"
;;
- --module-prefix=*)
- CMD_INSTALL_MOD_PATH="${*#*=}"
- print_info 2 "CMD_INSTALL_MOD_PATH: ${CMD_INSTALL_MOD_PATH}"
+ --kernel-modules-prefix=*)
+ CMD_KERNEL_MODULES_PREFIX="${*#*=}"
+ print_info 3 "CMD_KERNEL_MODULES_PREFIX: ${CMD_KERNEL_MODULES_PREFIX}"
;;
--cachedir=*)
CACHE_DIR="${*#*=}"
- print_info 2 "CACHE_DIR: ${CACHE_DIR}"
+ print_info 3 "CACHE_DIR: ${CACHE_DIR}"
;;
--clear-cachedir|--no-clear-cachedir)
- CMD_CLEAR_CACHEDIR=`parse_optbool "$*"`
- print_info 2 "CMD_CLEAR_CACHEDIR: ${CMD_CLEAR_CACHEDIR}"
+ CMD_CLEAR_CACHEDIR=$(parse_optbool "$*")
+ print_info 3 "CMD_CLEAR_CACHEDIR: ${CMD_CLEAR_CACHEDIR}"
;;
--minkernpackage=*)
CMD_MINKERNPACKAGE="${*#*=}"
- [ ${CMD_MINKERNPACKAGE:0:1} != / ] && CMD_MINKERNPACKAGE=$PWD/$CMD_MINKERNPACKAGE
- print_info 2 "MINKERNPACKAGE: ${CMD_MINKERNPACKAGE}"
+ print_info 3 "MINKERNPACKAGE: ${CMD_MINKERNPACKAGE}"
;;
--modulespackage=*)
CMD_MODULESPACKAGE="${*#*=}"
- [ ${CMD_MODULESPACKAGE:0:1} != / ] && CMD_MODULESPACKAGE=$PWD/$CMD_MODULESPACKAGE
- print_info 2 "MODULESPACKAGE: ${CMD_MODULESPACKAGE}"
+ print_info 3 "MODULESPACKAGE: ${CMD_MODULESPACKAGE}"
;;
--kerncache=*)
CMD_KERNCACHE="${*#*=}"
- [ ${CMD_KERNCACHE:0:1} != / ] && CMD_KERNCACHE=$PWD/$CMD_KERNCACHE
- print_info 2 "KERNCACHE: ${CMD_KERNCACHE}"
+ print_info 3 "KERNCACHE: ${CMD_KERNCACHE}"
;;
- --kernname=*)
- CMD_KERNNAME="${*#*=}"
- print_info 2 "KERNNAME: ${CMD_KERNNAME}"
+ --kernel-config-filename=*)
+ CMD_KERNEL_CONFIG_FILENAME="${*#*=}"
+ print_info 3 "CMD_KERNEL_CONFIG_FILENAME: ${CMD_KERNEL_CONFIG_FILENAME}"
+ ;;
+ --kernel-filename=*)
+ CMD_KERNEL_FILENAME="${*#*=}"
+ print_info 3 "CMD_KERNEL_FILENAME: ${CMD_KERNEL_FILENAME}"
+ ;;
+ --kernel-symlink-name=*)
+ CMD_KERNEL_SYMLINK_NAME="${*#*=}"
+ print_info 3 "CMD_KERNEL_SYMLINK_NAME: ${CMD_KERNEL_SYMLINK_NAME}"
;;
--symlink|--no-symlink)
- CMD_SYMLINK=`parse_optbool "$*"`
- print_info 2 "CMD_SYMLINK: ${CMD_SYMLINK}"
+ CMD_SYMLINK=$(parse_optbool "$*")
+ print_info 3 "CMD_SYMLINK: ${CMD_SYMLINK}"
;;
--kernel-sources|--no-kernel-sources)
- CMD_KERNEL_SOURCES=`parse_optbool "$*"`
- print_info 2 "CMD_KERNEL_SOURCES: ${CMD_KERNEL_SOURCES}"
+ CMD_KERNEL_SOURCES=$(parse_optbool "$*")
+ print_info 3 "CMD_KERNEL_SOURCES: ${CMD_KERNEL_SOURCES}"
+ ;;
+ --initramfs-filename=*)
+ CMD_INITRAMFS_FILENAME="${*#*=}"
+ print_info 3 "CMD_INITRAMFS_FILENAME: ${CMD_INITRAMFS_FILENAME}"
;;
--initramfs-overlay=*)
CMD_INITRAMFS_OVERLAY="${*#*=}"
- print_info 2 "CMD_INITRAMFS_OVERLAY: ${CMD_INITRAMFS_OVERLAY}"
+ print_info 3 "CMD_INITRAMFS_OVERLAY: ${CMD_INITRAMFS_OVERLAY}"
+ ;;
+ --initramfs-symlink-name=*)
+ CMD_INITRAMFS_SYMLINK_NAME="${*#*=}"
+ print_info 3 "CMD_INITRAMFS_SYMLINK_NAME: ${CMD_INITRAMFS_SYMLINK_NAME}"
+ ;;
+ --systemmap-filename=*)
+ CMD_SYSTEMMAP_FILENAME="${*#*=}"
+ print_info 3 "CMD_SYSTEMMAP_FILENAME: ${CMD_SYSTEMMAP_FILENAME}"
+ ;;
+ --systemmap-symlink-name=*)
+ CMD_SYSTEMMAP_SYMLINK_NAME="${*#*=}"
+ print_info 3 "CMD_SYSTEMMAP_SYMLINK_NAME: ${CMD_SYSTEMMAP_SYMLINK_NAME}"
;;
--linuxrc=*)
CMD_LINUXRC="${*#*=}"
- print_info 2 "CMD_LINUXRC: ${CMD_LINUXRC}"
+ print_info 3 "CMD_LINUXRC: ${CMD_LINUXRC}"
;;
--busybox-config=*)
CMD_BUSYBOX_CONFIG="${*#*=}"
- print_info 2 "CMD_BUSYBOX_CONFIG: ${CMD_BUSYBOX_CONFIG}"
+ print_info 3 "CMD_BUSYBOX_CONFIG: ${CMD_BUSYBOX_CONFIG}"
;;
--genzimage)
KERNEL_MAKE_DIRECTIVE_2='zImage.initrd'
KERNEL_BINARY_2='arch/powerpc/boot/zImage.initrd'
CMD_GENZIMAGE="yes"
- print_info 2 "CMD_GENZIMAGE: ${CMD_GENZIMAGE}"
+ print_info 3 "CMD_GENZIMAGE: ${CMD_GENZIMAGE}"
# ENABLE_PEGASOS_HACKS="yes"
-# print_info 2 "ENABLE_PEGASOS_HACKS: ${ENABLE_PEGASOS_HACKS}"
- ;;
- --disklabel|--no-disklabel)
- CMD_DISKLABEL=`parse_optbool "$*"`
- print_info 2 "CMD_DISKLABEL: ${CMD_DISKLABEL}"
+# print_info 3 "ENABLE_PEGASOS_HACKS: ${ENABLE_PEGASOS_HACKS}"
;;
--luks|--no-luks)
- CMD_LUKS=`parse_optbool "$*"`
- print_info 2 "CMD_LUKS: ${CMD_LUKS}"
+ CMD_LUKS=$(parse_optbool "$*")
+ print_info 3 "CMD_LUKS: ${CMD_LUKS}"
;;
--gpg|--no-gpg)
- CMD_GPG=`parse_optbool "$*"`
- print_info 2 "CMD_GPG: ${CMD_GPG}"
+ CMD_GPG=$(parse_optbool "$*")
+ print_info 3 "CMD_GPG: ${CMD_GPG}"
+ ;;
+ --keyctl|--no-keyctl)
+ CMD_KEYCTL=$(parse_optbool "$*")
+ print_info 3 "CMD_KEYCTL: ${CMD_KEYCTL}"
;;
--firmware|--no-firmware)
- CMD_FIRMWARE=`parse_optbool "$*"`
- print_info 2 "CMD_FIRMWARE: ${CMD_FIRMWARE}"
+ CMD_FIRMWARE=$(parse_optbool "$*")
+ print_info 3 "CMD_FIRMWARE: ${CMD_FIRMWARE}"
+ ;;
+ --all-firmware|--no-all-firmware)
+ CMD_ALLFIRMWARE=$(parse_optbool "$*")
+ print_info 3 "CMD_FIRMWARE: ${CMD_ALLFIRMWARE}"
;;
--firmware-dir=*)
CMD_FIRMWARE_DIR="${*#*=}"
CMD_FIRMWARE="yes"
- print_info 2 "CMD_FIRMWARE_DIR: ${CMD_FIRMWARE_DIR}"
+ print_info 3 "CMD_FIRMWARE_DIR: ${CMD_FIRMWARE_DIR}"
;;
--firmware-files=*)
CMD_FIRMWARE_FILES="${*#*=}"
CMD_FIRMWARE="yes"
- print_info 2 "CMD_FIRMWARE_FILES: ${CMD_FIRMWARE_FILES}"
+ print_info 3 "CMD_FIRMWARE_FILES: ${CMD_FIRMWARE_FILES}"
;;
--firmware-install|--no-firmware-install)
- CMD_FIRMWARE_INSTALL=`parse_optbool "$*"`
- print_info 2 "CMD_FIRMWARE_INSTALL: ${CMD_FIRMWARE_INSTALL}"
+ CMD_FIRMWARE_INSTALL=$(parse_optbool "$*")
+ print_info 3 "CMD_FIRMWARE_INSTALL: ${CMD_FIRMWARE_INSTALL}"
;;
--integrated-initramfs|--no-integrated-initramfs)
- CMD_INTEGRATED_INITRAMFS=`parse_optbool "$*"`
- print_info 2 "CMD_INTEGRATED_INITRAMFS=${CMD_INTEGRATED_INITRAMFS}"
+ CMD_INTEGRATED_INITRAMFS=$(parse_optbool "$*")
+ print_info 3 "CMD_INTEGRATED_INITRAMFS=${CMD_INTEGRATED_INITRAMFS}"
;;
--wrap-initrd|--no-wrap-initrd)
- CMD_WRAP_INITRD=`parse_optbool "$*"`
- print_info 2 "CMD_WRAP_INITRD=${CMD_WRAP_INITRD}"
+ CMD_WRAP_INITRD=$(parse_optbool "$*")
+ print_info 3 "CMD_WRAP_INITRD=${CMD_WRAP_INITRD}"
;;
--compress-initramfs|--no-compress-initramfs)
- CMD_COMPRESS_INITRD=`parse_optbool "$*"`
- print_info 2 "CMD_COMPRESS_INITRD=${CMD_COMPRESS_INITRD}"
+ CMD_COMPRESS_INITRD=$(parse_optbool "$*")
+ print_info 3 "CMD_COMPRESS_INITRD=${CMD_COMPRESS_INITRD}"
;;
--compress-initrd|--no-compress-initrd)
- CMD_COMPRESS_INITRD=`parse_optbool "$*"`
- print_info 2 "CMD_COMPRESS_INITRD=${CMD_COMPRESS_INITRD}"
+ CMD_COMPRESS_INITRD=$(parse_optbool "$*")
+ print_info 3 "CMD_COMPRESS_INITRD=${CMD_COMPRESS_INITRD}"
echo
print_warning 1 "Please use --[no-]compress-initramfs, as --[no-]compress-initrd is deprecated."
;;
--compress-initramfs-type=*|--compress-initrd-type=*)
CMD_COMPRESS_INITRD_TYPE="${*#*=}"
- print_info 2 "CMD_COMPRESS_INITRD_TYPE: ${CMD_COMPRESS_INITRD_TYPE}"
+ print_info 3 "CMD_COMPRESS_INITRD_TYPE: ${CMD_COMPRESS_INITRD_TYPE}"
;;
--config=*)
- print_info 2 "CMD_GK_CONFIG: "${*#*=}""
+ print_info 3 "CMD_GK_CONFIG: "${*#*=}""
;;
--nice)
CMD_NICE=10
- print_info 2 "CMD_NICE: ${CMD_NICE}"
+ print_info 3 "CMD_NICE: ${CMD_NICE}"
;;
--nice=*)
CMD_NICE="${*#*=}"
@@ -752,19 +925,19 @@ parse_cmdline() {
echo 'Error: Illegal value specified for --nice= parameter.'
exit 1
fi
- print_info 2 "CMD_NICE: ${CMD_NICE}"
+ print_info 3 "CMD_NICE: ${CMD_NICE}"
;;
--no-nice)
CMD_NICE=0
- print_info 2 "CMD_NICE: ${CMD_NICE}"
+ print_info 3 "CMD_NICE: ${CMD_NICE}"
;;
--strip=*)
- CMD_STRIP_TYPE=`parse_opt "$*"`
- print_info 2 "CMD_STRIP_TYPE: ${CMD_STRIP_TYPE}"
+ CMD_STRIP_TYPE="${*#*=}"
+ print_info 3 "CMD_STRIP_TYPE: ${CMD_STRIP_TYPE}"
;;
--no-strip)
CMD_STRIP_TYPE=none
- print_info 2 "CMD_STRIP_TYPE: ${CMD_STRIP_TYPE}"
+ print_info 3 "CMD_STRIP_TYPE: ${CMD_STRIP_TYPE}"
;;
all)
BUILD_KERNEL="yes"
@@ -786,7 +959,7 @@ parse_cmdline() {
BUILD_MODULES="no"
BUILD_RAMDISK="no"
CMD_RAMDISKMODULES="no"
- print_info 2 "CMD_RAMDISKMODULES: ${CMD_RAMDISKMODULES}"
+ print_info 3 "CMD_RAMDISKMODULES: ${CMD_RAMDISKMODULES}"
;;
--help)
longusage
@@ -797,8 +970,7 @@ parse_cmdline() {
exit 0
;;
*)
- echo "Error: Unknown option '$*'!"
- exit 1
+ small_die "Unknown option '$*'!"
;;
esac
}
diff --git a/gen_compile.sh b/gen_compile.sh
index 93c2af4..6db69ec 100755
--- a/gen_compile.sh
+++ b/gen_compile.sh
@@ -1,288 +1,116 @@
#!/bin/bash
# $Id$
-compile_kernel_args() {
- local ARGS
-
- ARGS=''
- if [ "${KERNEL_CROSS_COMPILE}" != '' ]
- then
- ARGS="${ARGS} CROSS_COMPILE=\"${KERNEL_CROSS_COMPILE}\""
- fi
- if [ "${KERNEL_CC}" != '' ]
- then
- ARGS="CC=\"${KERNEL_CC}\""
- fi
- if [ "${KERNEL_LD}" != '' ]
- then
- ARGS="${ARGS} LD=\"${KERNEL_LD}\""
- fi
- if [ "${KERNEL_AS}" != '' ]
+compile_external_modules() {
+ if ! isTrue "${CMD_MODULEREBUILD}"
then
- ARGS="${ARGS} AS=\"${KERNEL_AS}\""
+ print_info 3 "$(get_indent 1)>> --no-module-rebuild set; Skipping '${MODULEREBUILD_CMD}' ..."
+ return
fi
- if [ -n "${KERNEL_ARCH}" ]
- then
- ARGS="${ARGS} ARCH=\"${KERNEL_ARCH}\""
- fi
- if [ -n "${KERNEL_OUTPUTDIR}" -a "${KERNEL_OUTPUTDIR}" != "${KERNEL_DIR}" ]
- then
- ARGS="${ARGS} O=\"${KERNEL_OUTPUTDIR}\""
- fi
- printf "%s" "${ARGS}"
-}
-compile_utils_args()
-{
- local ARGS
- ARGS=''
-
- if [ -n "${UTILS_CROSS_COMPILE}" ]
+ if isTrue "$(tc-is-cross-compiler)"
then
- UTILS_CC="${UTILS_CROSS_COMPILE}gcc"
- UTILS_LD="${UTILS_CROSS_COMPILE}ld"
- UTILS_AS="${UTILS_CROSS_COMPILE}as"
+ print_info 3 "$(get_indent 1)>> Cross-compilation detected; Skipping '${MODULEREBUILD_CMD}' ..."
+ return
fi
- if [ "${UTILS_ARCH}" != '' ]
- then
- ARGS="ARCH=\"${UTILS_ARCH}\""
- fi
- if [ "${UTILS_CC}" != '' ]
+ if ! isTrue "${CMD_INSTALL}"
then
- ARGS="CC=\"${UTILS_CC}\""
- fi
- if [ "${UTILS_LD}" != '' ]
- then
- ARGS="${ARGS} LD=\"${UTILS_LD}\""
- fi
- if [ "${UTILS_AS}" != '' ]
- then
- ARGS="${ARGS} AS=\"${UTILS_AS}\""
+ print_info 3 "$(get_indent 1)>> --no-install set; Skipping '${MODULEREBUILD_CMD}' ..."
+ return
fi
- printf "%s" "${ARGS}"
-}
-
-export_utils_args()
-{
- save_args
- if [ "${UTILS_ARCH}" != '' ]
- then
- export ARCH="${UTILS_ARCH}"
- fi
- if [ "${UTILS_CC}" != '' ]
+ if [ -n "${KERNEL_MODULES_PREFIX}" ]
then
- export CC="${UTILS_CC}"
+ # emerge would install to a different location
+ print_warning 1 "$(get_indent 1)>> KERNEL_MODULES_PREFIX set; Skipping '${MODULEREBUILD_CMD}' ..."
+ return
fi
- if [ "${UTILS_LD}" != '' ]
- then
- export LD="${UTILS_LD}"
- fi
- if [ "${UTILS_AS}" != '' ]
- then
- export AS="${UTILS_AS}"
- fi
- if [ "${UTILS_CROSS_COMPILE}" != '' ]
- then
- export CROSS_COMPILE="${UTILS_CROSS_COMPILE}"
- fi
-}
-unset_utils_args()
-{
- if [ "${UTILS_ARCH}" != '' ]
- then
- unset ARCH
- fi
- if [ "${UTILS_CC}" != '' ]
- then
- unset CC
- fi
- if [ "${UTILS_LD}" != '' ]
- then
- unset LD
- fi
- if [ "${UTILS_AS}" != '' ]
- then
- unset AS
- fi
- if [ "${UTILS_CROSS_COMPILE}" != '' ]
- then
- unset CROSS_COMPILE
- fi
- reset_args
-}
+ local -x KV_OUT_DIR="${KERNEL_OUTPUTDIR}"
-export_kernel_args()
-{
- if [ "${KERNEL_CC}" != '' ]
- then
- export CC="${KERNEL_CC}"
- fi
- if [ "${KERNEL_LD}" != '' ]
- then
- export LD="${KERNEL_LD}"
- fi
- if [ "${KERNEL_AS}" != '' ]
- then
- export AS="${KERNEL_AS}"
- fi
- if [ "${KERNEL_CROSS_COMPILE}" != '' ]
- then
- export CROSS_COMPILE="${KERNEL_CROSS_COMPILE}"
- fi
-}
+ print_info 1 "$(get_indent 1)>> Compiling out-of-tree module(s) ..."
+ print_info 3 "COMMAND: ${MODULEREBUILD_CMD}" 1 0 1
-unset_kernel_args()
-{
- if [ "${KERNEL_CC}" != '' ]
- then
- unset CC
- fi
- if [ "${KERNEL_LD}" != '' ]
- then
- unset LD
- fi
- if [ "${KERNEL_AS}" != '' ]
- then
- unset AS
- fi
- if [ "${KERNEL_CROSS_COMPILE}" != '' ]
- then
- unset CROSS_COMPILE
- fi
-}
-save_args()
-{
- if [ "${ARCH}" != '' ]
+ if [ "${LOGLEVEL}" -gt 3 ]
then
- export ORIG_ARCH="${ARCH}"
- fi
- if [ "${CC}" != '' ]
- then
- export ORIG_CC="${CC}"
- fi
- if [ "${LD}" != '' ]
- then
- export ORIG_LD="${LD}"
- fi
- if [ "${AS}" != '' ]
- then
- export ORIG_AS="${AS}"
- fi
- if [ "${CROSS_COMPILE}" != '' ]
- then
- export ORIG_CROSS_COMPILE="${CROSS_COMPILE}"
- fi
-}
-reset_args()
-{
- if [ "${ORIG_ARCH}" != '' ]
- then
- export ARCH="${ORIG_ARCH}"
- unset ORIG_ARCH
- fi
- if [ "${ORIG_CC}" != '' ]
- then
- export CC="${ORIG_CC}"
- unset ORIG_CC
- fi
- if [ "${ORIG_LD}" != '' ]
- then
- export LD="${ORIG_LD}"
- unset ORIG_LD
- fi
- if [ "${ORIG_AS}" != '' ]
- then
- export AS="${ORIG_AS}"
- unset ORIG_AS
- fi
- if [ "${ORIG_CROSS_COMPILE}" != '' ]
- then
- export CROSS_COMPILE="${ORIG_CROSS_COMPILE}"
- unset ORIG_CROSS_COMPILE
- fi
-}
-
-apply_patches() {
- util=$1
- version=$2
- patchdir=${GK_SHARE}/patches/${util}/${version}
-
- if [ -d "${patchdir}" ]
- then
- local silent="-s "
- if [[ "${LOGLEVEL}" -gt 1 ]]; then
- silent=
- fi
-
- print_info 1 "$(getIndent 3)${util}: >> Applying patches..."
- for i in ${patchdir}/*{diff,patch}
- do
- [ -f "${i}" ] || continue
- patch_success=0
- for j in `seq 0 5`
- do
- patch -p${j} --backup-if-mismatch -f < "${i}" --dry-run >/dev/null && \
- patch ${silent}-p${j} --backup-if-mismatch -f < "${i}"
- if [ $? = 0 ]
- then
- patch_success=1
- break
- fi
- done
- if [ ${patch_success} -eq 1 ]
- then
- print_info 1 "$(getIndent 4) - `basename ${i}`"
- else
- gen_die "could not apply patch ${i} for ${util}-${version}"
- fi
- done
+ # Output to stdout and logfile
+ eval ${MODULEREBUILD_CMD} 2>&1 | tee -a "${LOGFILE}"
+ RET=${PIPESTATUS[0]}
else
- print_info 1 "$(getIndent 3)${util}: >> No patches found in $patchdir ..."
+ # Output to logfile only
+ eval ${MODULEREBUILD_CMD} 2>&1 >> "${LOGFILE}"
+ RET=$?
fi
+
+ [ ${RET} -ne 0 ] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")${FUNCNAME}() failed to compile out-of-tree-modules!"
}
compile_gen_init_cpio() {
local gen_init_cpio_SRC="${KERNEL_DIR}/usr/gen_init_cpio.c"
local gen_init_cpio_DIR="${KERNEL_OUTPUTDIR}/usr"
- print_info 1 "$(getIndent 2)>> Compiling gen_init_cpio..."
+ print_info 2 "$(get_indent 2)>> Compiling gen_init_cpio ..."
[ ! -e "${gen_init_cpio_SRC}" ] && gen_die "'${gen_init_cpio_SRC}' is missing. Cannot compile gen_init_cpio!"
- [ ! -d "${gen_init_cpio_DIR}" ] && mkdir -p "${gen_init_cpio_DIR}" || gen_die "failed to create '${gen_init_cpio_DIR}'!"
-
- export_utils_args
+ if [ ! -d "${gen_init_cpio_DIR}" ]
+ then
+ mkdir -p "${gen_init_cpio_DIR}" || gen_die "Failed to create '${gen_init_cpio_DIR}'!"
+ fi
- ${CC} -O2 "${KERNEL_DIR}/usr/gen_init_cpio.c" -o "${KERNEL_OUTPUTDIR}/usr/gen_init_cpio" -Wl,--no-as-needed ||
- gen_die 'Failed to compile gen_init_cpio!'
+ local CC=$(tc-getBUILD_CC)
- unset_utils_args
+ ${CC} -O2 "${KERNEL_DIR}/usr/gen_init_cpio.c" -o "${KERNEL_OUTPUTDIR}/usr/gen_init_cpio" -Wl,--no-as-needed \
+ || gen_die 'Failed to compile gen_init_cpio!'
}
compile_generic() {
- local RET
- [ "$#" -lt '2' ] &&
- gen_die 'compile_generic(): improper usage!'
+ [[ ${#} -ne 2 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes exactly two arguments (${#} given)!"
+
local target=${1}
local argstype=${2}
+ local RET
- case "${argstype}" in
- kernel|kernelruntask)
- export_kernel_args
- MAKE=${KERNEL_MAKE}
- ;;
- utils)
- export_utils_args
- MAKE=${UTILS_MAKE}
- ;;
- esac
+ local -a compile_cmd=()
+
+ if [ ${NICE} -ne 0 ]
+ then
+ compile_cmd+=( nice "-n${NICE}" )
+ fi
case "${argstype}" in
kernel|kernelruntask)
- ARGS="`compile_kernel_args`"
- if [[ "${ARGS}" = *O=* ]]
+ if [ -z "${KERNEL_MAKE}" ]
+ then
+ gen_die "KERNEL_MAKE undefined - I don't know how to compile a kernel for this arch!"
+ else
+ local -x MAKE=${KERNEL_MAKE}
+ compile_cmd+=( "${MAKE}" "${MAKEOPTS}" )
+ fi
+
+ if [[ "${argstype}" == 'kernelruntask' ]]
+ then
+ # silent operation, forced -j1
+ compile_cmd+=( -s -j1 )
+ fi
+
+ # Pass kernel compile parameter
+ compile_cmd+=( "ARCH='${KERNEL_ARCH}'" )
+
+ local tc_var
+ for tc_var in AS AR CC LD NM OBJCOPY OBJDUMP READELF STRIP
+ do
+ compile_cmd+=( "${tc_var}='$(TC_PROG_TYPE=KERNEL tc-get${tc_var})'" )
+ done
+
+ compile_cmd+=( "HOSTAR='$(tc-getBUILD_AR)'" )
+ compile_cmd+=( "HOSTCC='$(tc-getBUILD_CC)'" )
+ compile_cmd+=( "HOSTCXX='$(tc-getBUILD_CXX)'" )
+ compile_cmd+=( "HOSTLD='$(tc-getBUILD_LD)'" )
+
+ if [ -n "${KERNEL_OUTPUTDIR}" -a "${KERNEL_OUTPUTDIR}" != "${KERNEL_DIR}" ]
then
if [ -f "${KERNEL_DIR}/.config" -o -d "${KERNEL_DIR}/include/config" ]
then
@@ -295,677 +123,442 @@ compile_generic() {
error_message+=" to compile a kernel with different KERNEL_OUTPUTDIR set."
error_message+=" Please re-install a fresh kernel source!"
gen_die "${error_message}"
+ else
+ compile_cmd+=( "O='${KERNEL_OUTPUTDIR}'" )
fi
fi
;;
- utils) ARGS="`compile_utils_args`" ;;
- *) ARGS="" ;;
+ *)
+ local error_msg="${FUNCNAME[1]}(): Unsupported compile type '${argstype}'"
+ error_msg+=" for ${FUNCNAME}() specified!"
+ gen_die "${error_msg}"
+ ;;
esac
- shift 2
- if [ ${NICE} -ne 0 ]
- then
- NICEOPTS="nice -n${NICE} "
- else
- NICEOPTS=""
- fi
+ compile_cmd+=( "${target}" )
+
+ print_info 3 "COMMAND: ${compile_cmd[*]}" 1 0 1
# the eval usage is needed in the next set of code
# as ARGS can contain spaces and quotes, eg:
# ARGS='CC="ccache gcc"'
- if [ "${argstype}" == 'kernelruntask' ]
+ if [[ "${argstype}" == 'kernelruntask' ]]
then
- # Silent operation, forced -j1
- print_info 2 "COMMAND: ${NICEOPTS}${MAKE} ${MAKEOPTS} -j1 ${ARGS} ${target} $*" 1 0 1
- eval ${NICEOPTS}${MAKE} -s ${MAKEOPTS} -j1 "${ARGS}" ${target} $*
+ eval "${compile_cmd[@]}"
RET=$?
- elif [ "${LOGLEVEL}" -gt "1" ]
+ elif [ "${LOGLEVEL}" -gt 3 ]
then
# Output to stdout and logfile
- print_info 2 "COMMAND: ${NICEOPTS}${MAKE} ${MAKEOPTS} ${ARGS} ${target} $*" 1 0 1
- eval ${NICEOPTS}${MAKE} ${MAKEOPTS} ${ARGS} ${target} $* 2>&1 | tee -a ${LOGFILE}
+ compile_cmd+=( "2>&1 | tee -a '${LOGFILE}'" )
+
+ eval "${compile_cmd[@]}"
RET=${PIPESTATUS[0]}
else
# Output to logfile only
- print_info 2 "COMMAND: ${NICEOPTS}${MAKE} ${MAKEOPTS} ${ARGS} ${target} $*" 1 0 1
- eval ${NICEOPTS}${MAKE} ${MAKEOPTS} ${ARGS} ${target} $* >> ${LOGFILE} 2>&1
+ compile_cmd+=( ">> '${LOGFILE}' 2>&1" )
+
+ eval "${compile_cmd[@]}"
RET=$?
fi
- [ ${RET} -ne 0 ] &&
- gen_die "Failed to compile the \"${target}\" target..."
- unset MAKE
- unset ARGS
-
- case "${argstype}" in
- kernel) unset_kernel_args ;;
- utils) unset_utils_args ;;
- esac
+ [ ${RET} -ne 0 ] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")${FUNCNAME}() failed to compile the \"${target}\" target!"
}
compile_modules() {
- print_info 1 "$(getIndent 1)>> Compiling ${KV} modules..."
- cd ${KERNEL_DIR}
+ print_info 1 "$(get_indent 1)>> Compiling ${KV} modules ..."
+
+ cd "${KERNEL_DIR}" || gen_die "Failed to chdir to '${KERNEL_DIR}'!"
+
+ # required for modutils
+ local -x UNAME_MACHINE="${ARCH}"
+
compile_generic modules kernel
- export UNAME_MACHINE="${ARCH}"
- [ "${INSTALL_MOD_PATH}" != '' ] && export INSTALL_MOD_PATH
+
+ [ -n "${KERNEL_MODULES_PREFIX}" ] && local -x INSTALL_MOD_PATH="${KERNEL_MODULES_PREFIX%/}"
if [ "${CMD_STRIP_TYPE}" == "all" -o "${CMD_STRIP_TYPE}" == "modules" ]
then
- print_info 1 "$(getIndent 1)>> Installing ${KV} modules (and stripping)"
- INSTALL_MOD_STRIP=1
- export INSTALL_MOD_STRIP
+ print_info 1 "$(get_indent 1)>> Installing ${KV} modules (and stripping) ..."
+ local -x INSTALL_MOD_STRIP=1
else
- print_info 1 "$(getIndent 1)>> Installing ${KV} modules"
+ print_info 1 "$(get_indent 1)>> Installing ${KV} modules ..."
+ unset INSTALL_MOD_STRIP
fi
- MAKEOPTS="${MAKEOPTS} -j1" compile_generic "modules_install" kernel
- print_info 1 "$(getIndent 1)>> Generating module dependency data..."
- if [ "${INSTALL_MOD_PATH}" != '' ]
+
+ compile_generic "modules_install" kernel
+
+ print_info 1 "$(get_indent 1)>> Generating module dependency data ..."
+ if [ -n "${KERNEL_MODULES_PREFIX}" ]
then
- depmod -a -e -F "${KERNEL_OUTPUTDIR}"/System.map -b "${INSTALL_MOD_PATH}" ${KV}
+ depmod -a -e -F "${KERNEL_OUTPUTDIR}"/System.map -b "${KERNEL_MODULES_PREFIX%/}" ${KV} \
+ || gen_die "depmod (INSTALL_MOD_PATH=${KERNEL_MODULES_PREFIX%/}) failed!"
else
- depmod -a -e -F "${KERNEL_OUTPUTDIR}"/System.map ${KV}
+ depmod -a -e -F "${KERNEL_OUTPUTDIR}"/System.map ${KV} \
+ || gen_die "depmod failed!"
fi
- unset UNAME_MACHINE
- unset INSTALL_MOD_STRIP
}
+# @FUNCTION: compile_kernel
+# @USAGE: <copy_kernel>
+# @DESCRIPTION:
+# Will compile and optionally copy compiled kernel and System.map
+# to its final location.
+#
+# <copy_kernel> Boolean which indicates if kernel and System.map should
+# get copied to its final location
compile_kernel() {
- [ "${KERNEL_MAKE}" = '' ] &&
- gen_die "KERNEL_MAKE undefined - I don't know how to compile a kernel for this arch!"
- cd ${KERNEL_DIR}
+ [[ ${#} -ne 1 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes exactly one argument (${#} given)!"
+
+ local copy_kernel="${1}"
+
+ [ -z "${KERNEL_MAKE}" ] \
+ && gen_die "KERNEL_MAKE undefined - I don't know how to compile a kernel for this arch!"
+
+ cd "${KERNEL_DIR}" || gen_die "Failed to chdir to '${KERNEL_DIR}'!"
+
local kernel_make_directive="${KERNEL_MAKE_DIRECTIVE}"
if [ "${KERNEL_MAKE_DIRECTIVE_OVERRIDE}" != "${DEFAULT_KERNEL_MAKE_DIRECTIVE_OVERRIDE}" ]; then
kernel_make_directive="${KERNEL_MAKE_DIRECTIVE_OVERRIDE}"
fi
- print_info 1 "$(getIndent 1)>> Compiling ${KV} ${kernel_make_directive/_install/ [ install ]/}..."
+
+ print_info 1 "$(get_indent 1)>> Compiling ${KV} ${kernel_make_directive/_install/ [ install ]/} ..."
compile_generic "${kernel_make_directive}" kernel
- if [ "${KERNEL_MAKE_DIRECTIVE_2}" != '' ]
+
+ if [ -n "${KERNEL_MAKE_DIRECTIVE_2}" ]
then
- print_info 1 "$(getIndent 1)>> Starting supplimental compile of ${KV}: ${KERNEL_MAKE_DIRECTIVE_2}..."
+ print_info 1 "$(get_indent 1)>> Starting supplimental compile of ${KV}: ${KERNEL_MAKE_DIRECTIVE_2} ..."
compile_generic "${KERNEL_MAKE_DIRECTIVE_2}" kernel
fi
- if isTrue "${FIRMWARE_INSTALL}" && [ ! -e "${KERNEL_DIR}/ihex2fw.c" ] ; then
- # Kernel v4.14 removed firmware from the kernel sources, including the
- # ihex2fw.c tool source. Try and detect the tool to see if we are in >=v4.14
- print_warning 1 "$(getIndent 1)>> Linux v4.14 removed in-kernel firmware, you MUST install the sys-kernel/linux-firmware package!"
- elif isTrue "${FIRMWARE_INSTALL}" ; then
+ if isTrue "${FIRMWARE_INSTALL}" && [ ${KV_NUMERIC} -ge 4014 ]
+ then
+ # Kernel v4.14 removed firmware from the kernel sources
+ print_warning 1 "$(get_indent 1)>> Linux v4.14 removed in-kernel firmware, you MUST install the sys-kernel/linux-firmware package!"
+ elif isTrue "${FIRMWARE_INSTALL}"
+ then
local cfg_CONFIG_FIRMWARE_IN_KERNEL=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" CONFIG_FIRMWARE_IN_KERNEL)
- if isTrue "$cfg_CONFIG_FIRMWARE_IN_KERNEL"; then
- print_info 1 "$(getIndent 1)>> Not installing firmware as it's included in the kernel already (CONFIG_FIRMWARE_IN_KERNEL=y)..."
+ if isTrue "${cfg_CONFIG_FIRMWARE_IN_KERNEL}"
+ then
+ print_info 1 "$(get_indent 1)>> Not installing firmware as it's included in the kernel already (CONFIG_FIRMWARE_IN_KERNEL=y) ..."
else
- print_info 1 "$(getIndent 1)>> Installing firmware ('make firmware_install') due to CONFIG_FIRMWARE_IN_KERNEL != y..."
- [ "${INSTALL_MOD_PATH}" != '' ] && export INSTALL_MOD_PATH
- [ "${INSTALL_FW_PATH}" != '' ] && export INSTALL_FW_PATH
+ print_info 1 "$(get_indent 1)>> Installing firmware ('make firmware_install') due to CONFIG_FIRMWARE_IN_KERNEL != y ..."
+ [ -n "${KERNEL_MODULES_PREFIX}" ] && local -x INSTALL_MOD_PATH="${KERNEL_MODULES_PREFIX%/}"
+ [ -n "${INSTALL_FW_PATH}" ] && export INSTALL_FW_PATH
MAKEOPTS="${MAKEOPTS} -j1" compile_generic "firmware_install" kernel
fi
- else
- print_info 1 "$(getIndent 1)>> Not installing firmware as requested by configuration FIRMWARE_INSTALL=no..."
+ elif [ ${KV_NUMERIC} -lt 4014 ]
+ then
+ print_info 1 "$(get_indent 1)>> Skipping installation of bundled firmware due to --no-firmware-install ..."
fi
- local tmp_kernel_binary=$(find_kernel_binary ${KERNEL_BINARY_OVERRIDE:-${KERNEL_BINARY}})
+ if ! isTrue "${copy_kernel}"
+ then
+ print_info 5 "Not copying compiled kernel yet (${FUNCNAME} called with copy_kernel=no) ..."
+ return
+ fi
+
+ local tmp_kernel_binary_to_look_for="${KERNEL_BINARY_OVERRIDE:-${KERNEL_BINARY}}"
+ local tmp_kernel_binary=$(find_kernel_binary ${tmp_kernel_binary_to_look_for})
local tmp_kernel_binary2=$(find_kernel_binary ${KERNEL_BINARY_2})
if [ -z "${tmp_kernel_binary}" ]
then
- gen_die "Cannot locate kernel binary"
+ gen_die "Failed to locate kernel binary '${tmp_kernel_binary_to_look_for}' in '${KERNEL_OUTPUTDIR}'!"
fi
+
# if source != outputdir, we need this:
tmp_kernel_binary="${KERNEL_OUTPUTDIR}"/"${tmp_kernel_binary}"
tmp_kernel_binary2="${KERNEL_OUTPUTDIR}"/"${tmp_kernel_binary2}"
- systemmap="${KERNEL_OUTPUTDIR}"/System.map
+ local tmp_systemmap="${KERNEL_OUTPUTDIR}"/System.map
if isTrue "${CMD_INSTALL}"
then
- copy_image_with_preserve "kernel" \
+ copy_image_with_preserve \
+ "${GK_FILENAME_KERNEL_SYMLINK}" \
"${tmp_kernel_binary}" \
- "kernel-${KNAME}-${ARCH}-${KV}"
+ "${GK_FILENAME_KERNEL}"
- copy_image_with_preserve "System.map" \
- "${systemmap}" \
- "System.map-${KNAME}-${ARCH}-${KV}"
+ copy_image_with_preserve \
+ "${GK_FILENAME_SYSTEMMAP_SYMLINK}" \
+ "${tmp_systemmap}" \
+ "${GK_FILENAME_SYSTEMMAP}"
if isTrue "${GENZIMAGE}"
then
- copy_image_with_preserve "kernelz" \
+ copy_image_with_preserve \
+ "kernelz" \
"${tmp_kernel_binary2}" \
- "kernelz-${KV}"
+ "${GK_FILENAME_KERNELZ}"
fi
else
- cp "${tmp_kernel_binary}" "${TMPDIR}/kernel-${KNAME}-${ARCH}-${KV}" ||
- gen_die "Could not copy the kernel binary to ${TMPDIR}!"
- cp "${systemmap}" "${TMPDIR}/System.map-${KNAME}-${ARCH}-${KV}" ||
- gen_die "Could not copy System.map to ${TMPDIR}!"
+ cp "${tmp_kernel_binary}" "${TMPDIR}/${GK_FILENAME_TEMP_KERNEL}" \
+ || gen_die "Could not copy kernel binary '${tmp_kernel_binary}' to '${TMPDIR}'!"
+
+ cp "${tmp_systemmap}" "${TMPDIR}/${GK_FILENAME_TEMP_SYSTEMMAP}" \
+ || gen_die "Could not copy System.map '${tmp_systemmap}' to '${TMPDIR}'!"
+
if isTrue "${GENZIMAGE}"
then
- cp "${tmp_kernel_binary2}" "${TMPDIR}/kernelz-${KV}" ||
- gen_die "Could not copy the kernelz binary to ${TMPDIR}!"
+ cp "${tmp_kernel_binary2}" "${TMPDIR}/${GK_FILENAME_TEMP_KERNELZ}" \
+ || gen_die "Could not copy kernelz binary '${tmp_kernel_binary2}' to '${TMPDIR}'!"
fi
fi
}
-compile_busybox() {
- [ -f "${BUSYBOX_SRCTAR}" ] ||
- gen_die "Could not find busybox source tarball: ${BUSYBOX_SRCTAR}!"
-
+determine_busybox_config_file() {
if [ -n "${BUSYBOX_CONFIG}" ]
then
- [ -f "${BUSYBOX_CONFIG}" ] ||
- gen_die "Could not find busybox config file: ${BUSYBOX_CONFIG}"
- elif isTrue "${NETBOOT}" && [ -f "$(arch_replace "${GK_SHARE}/arch/%%ARCH%%/netboot-busy-config")" ]
- then
- BUSYBOX_CONFIG="$(arch_replace "${GK_SHARE}/arch/%%ARCH%%/netboot-busy-config")"
- elif isTrue "${NETBOOT}" && [ -f "${GK_SHARE}/netboot/busy-config" ]
- then
- BUSYBOX_CONFIG="${GK_SHARE}/netboot/busy-config"
- elif [ -f "$(arch_replace "${GK_SHARE}/arch/%%ARCH%%/busy-config")" ]
- then
- BUSYBOX_CONFIG="$(arch_replace "${GK_SHARE}/arch/%%ARCH%%/busy-config")"
- elif [ -f "${GK_SHARE}/defaults/busy-config" ]
- then
- BUSYBOX_CONFIG="${GK_SHARE}/defaults/busy-config"
- else
- gen_die "Could not find a busybox config file"
+ print_info 2 "$(get_indent 2)busybox: >> Using user-specified busybox configuration from '${BUSYBOX_CONFIG}' ..."
+ return
fi
- # Apply config-based tweaks to the busybox config.
- # This needs to be done before cache validation.
- cp "${BUSYBOX_CONFIG}" "${TEMP}/busybox-config"
+ print_info 2 "$(get_indent 2)busybox: >> Checking for suitable busybox configuration ..."
- # If you want mount.nfs to work on older than 2.6.something, you might need to turn this on.
- #isTrue "${NFS}" && nfs_opt='y'
- nfs_opt='n'
- kconfig_set_opt "${TEMP}/busybox-config" CONFIG_FEATURE_MOUNT_NFS $nfs_opt
+ local -a bbconfig_candidates=()
+ local busybox_version=$(get_gkpkg_version busybox)
- # Delete cache if stored config's MD5 does not match one to be used
- # This exactly just the .config.gk_orig file, and compares it again the
- # current .config.
- if [ -f "${BUSYBOX_BINCACHE}" ]
+ if isTrue "${NETBOOT}"
then
- oldconfig_md5="$(tar -xf "${BUSYBOX_BINCACHE}" -O .config.gk_orig 2>/dev/null | md5sum)"
- newconfig_md5="$(md5sum < "${TEMP}/busybox-config")"
- if [ "${oldconfig_md5}" != "${newconfig_md5}" ]
+ bbconfig_candidates+=( "$(arch_replace "${GK_SHARE}/arch/%%ARCH%%/netboot-busy-config-${busybox_version}")" )
+ bbconfig_candidates+=( "$(arch_replace "${GK_SHARE}/arch/%%ARCH%%/netboot-busy-config")" )
+ bbconfig_candidates+=( "${GK_SHARE}/netboot/busy-config-${busybox_version}" )
+ bbconfig_candidates+=( "${GK_SHARE}/netboot/busy-config" )
+ fi
+ bbconfig_candidates+=( "$(arch_replace "${GK_SHARE}/arch/%%ARCH%%/busy-config-${busybox_version}")" )
+ bbconfig_candidates+=( "$(arch_replace "${GK_SHARE}/arch/%%ARCH%%/busy-config")" )
+ bbconfig_candidates+=( "${GK_SHARE}/defaults/busy-config-${busybox_version}" )
+ bbconfig_candidates+=( "${GK_SHARE}/defaults/busy-config" )
+
+ local f
+ for f in "${bbconfig_candidates[@]}"
+ do
+ [ -z "${f}" ] && continue
+
+ if [ -f "${f}" ]
then
- print_info 1 "$(getIndent 3)busybox: >> Removing stale cache..."
- rm -rf "${BUSYBOX_BINCACHE}"
+ BUSYBOX_CONFIG="${f}"
+ break
else
- print_info 1 "$(getIndent 3)busybox: >> Using cache"
+ print_info 3 "$(get_indent 3)- '${f}' not found; Skipping ..."
fi
- fi
+ done
- # If the busybox bincache does NOT exist, create it; this cannot be merged
- # with the above statement, because that statement might remove the
- # bincache.
- if [ ! -f "${BUSYBOX_BINCACHE}" ]
+ if [ -z "${BUSYBOX_CONFIG}" ]
then
- cd "${TEMP}"
- rm -rf "${BUSYBOX_DIR}" > /dev/null
- /bin/tar -xpf ${BUSYBOX_SRCTAR} ||
- gen_die 'Could not extract busybox source tarball!'
- [ -d "${BUSYBOX_DIR}" ] ||
- gen_die "Busybox directory ${BUSYBOX_DIR} is invalid!"
-
- cp "${TEMP}/busybox-config" "${BUSYBOX_DIR}/.config"
- cp "${BUSYBOX_DIR}/.config" "${BUSYBOX_DIR}/.config.gk_orig" # used for the bincache compare
-
- cd "${BUSYBOX_DIR}"
- apply_patches busybox ${BUSYBOX_VER}
-
- # This has the side-effect of changing the .config
- print_info 1 "$(getIndent 3)busybox: >> Configuring..."
- yes '' 2>/dev/null | compile_generic oldconfig utils
-
- print_info 1 "$(getIndent 3)busybox: >> Compiling..."
- compile_generic all utils V=1
-
- print_info 1 "$(getIndent 3)busybox: >> Copying to bincache..."
- [ -f "${TEMP}/${BUSYBOX_DIR}/busybox" ] ||
- gen_die 'Busybox executable does not exist!'
- ${UTILS_CROSS_COMPILE}strip "${TEMP}/${BUSYBOX_DIR}/busybox" ||
- gen_die 'Could not strip busybox binary!'
- tar -C "${TEMP}/${BUSYBOX_DIR}" -cjf "${BUSYBOX_BINCACHE}" busybox .config .config.gk_orig ||
- gen_die 'Could not create the busybox bincache!'
-
- cd "${TEMP}"
- isTrue "${CMD_DEBUGCLEANUP}" && rm -rf "${BUSYBOX_DIR}" > /dev/null
- return 0
+ # Sanity check
+ gen_die 'No busybox .config specified or file not found!'
fi
}
-compile_libaio() {
- if [ -f "${LIBAIO_BINCACHE}" ]
+populate_binpkg() {
+ [[ ${#} -gt 2 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes at most two arguments (${#} given)!"
+
+ [[ ${#} -lt 1 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes at least one argument (${#} given)!"
+
+ local PN=${1}
+ [[ -z "${PN}" ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): No package specified!"
+
+ local PV=$(get_gkpkg_version "${PN}")
+ local P=${PN}-${PV}
+
+ local BINPKG=$(get_gkpkg_binpkg "${PN}")
+
+ local -a GKBUILD_CANDIDATES=( "${GK_SHARE}"/gkbuilds/${P}.gkbuild )
+ GKBUILD_CANDIDATES+=( "${GK_SHARE}"/gkbuilds/${PN}.gkbuild )
+
+ if [[ ${#} -eq 1 ]]
then
- print_info 1 "$(getIndent 3)libaio: >> Using cache"
+ local CHECK_LEVEL_CURRENT=0
+ local CHECK_LEVEL_PARENT=0
+ local CHECK_LEVEL_NEXT=${CHECK_LEVEL_CURRENT}
else
- [ -f "${LIBAIO_SRCTAR}" ] ||
- gen_die "Could not find libaio source tarball: ${LIBAIO_SRCTAR}! Please place it there, or place another version, changing /etc/genkernel.conf as necessary!"
- cd "${TEMP}"
- rm -rf ${LIBAIO_DIR} > /dev/null
- /bin/tar -xpf ${LIBAIO_SRCTAR} ||
- gen_die 'Could not extract libaio source tarball!'
- [ -d "${LIBAIO_DIR}" ] ||
- gen_die "libaio directory ${LIBAIO_DIR} is invalid!"
-
- print_info 1 "$(getIndent 3)libaio: >> Patching ..."
- cd "${LIBAIO_DIR}" || gen_die "cannot chdir into '${LIBAIO_DIR}'"
- apply_patches libaio ${LIBAIO_VER}
-
- print_info 1 "$(getIndent 3)libaio: >> Compiling..."
- CFLAGS="-fPIC" \
- LDFLAGS='-Wl,--no-as-needed' \
- compile_generic '' utils || gen_die "failed to build libaio"
-
- print_info 1 "$(getIndent 3)libaio: >> Installing to DESTDIR..."
- compile_generic "prefix=${TEMP}/libaio install" utils || gen_die "failed to install libaio"
-
- print_info 1 "$(getIndent 3)libaio: >> Copying to bincache..."
- cd "${TEMP}/libaio" || gen_die "cannot chdir into '${TEMP}/libaio'"
- /bin/tar -cjf "${LIBAIO_BINCACHE}" . ||
- gen_die 'Could not create libaio binary cache'
-
- cd "${TEMP}"
- isTrue "${CMD_DEBUGCLEANUP}" && rm -rf "${LIBAIO_DIR}" libaio
- return 0
+ local CHECK_LEVEL_PARENT=${2}
+ local CHECK_LEVEL_CURRENT=$[${CHECK_LEVEL_PARENT}+1]
+ local CHECK_LEVEL_NEXT=${CHECK_LEVEL_CURRENT}
fi
-}
-compile_lvm() {
- compile_libaio
+ local REQUIRED_BINPKGS_PARENT_VARNAME="CHECK_L${CHECK_LEVEL_PARENT}_REQUIRED_BINPKGS"
+ local REQUIRED_BINPKGS_CURRENT_VARNAME="CHECK_L${CHECK_LEVEL_CURRENT}_REQUIRED_BINPKGS"
+ local -n REQUIRED_BINPKGS_CURRENT_VARNAME_ref="${REQUIRED_BINPKGS_CURRENT_VARNAME}"
+
+ # Make sure we start with an empty array just in case ...
+ eval declare -ga ${REQUIRED_BINPKGS_CURRENT_VARNAME}=\(\)
+
+ local CHECK_LEVEL_PREFIX=
+ local i=0
+ while [[ ${i} < ${CHECK_LEVEL_CURRENT} ]]
+ do
+ CHECK_LEVEL_PREFIX="${CHECK_LEVEL_PREFIX% }> "
+ i=$[${i}+1]
+ done
+ unset i
- if [[ -f "${LVM_BINCACHE}" && "${LVM_BINCACHE}" -nt "${LIBAIO_BINCACHE}" ]]
+ local -a pkg_deps=( $(get_gkpkg_deps "${PN}") )
+ if [[ ${#pkg_deps[@]} -gt 0 ]]
then
- print_info 1 "$(getIndent 3)lvm: >> Using cache"
+ print_info 3 "${CHECK_LEVEL_PREFIX}Checking for binpkg(s) required for ${P} (L${CHECK_LEVEL_CURRENT}) ..."
+
+ local pkg_dep=
+ for pkg_dep in "${pkg_deps[@]}"
+ do
+ populate_binpkg ${pkg_dep} ${CHECK_LEVEL_NEXT}
+ done
+ unset pkg_dep
else
- [ -f "${LVM_SRCTAR}" ] ||
- gen_die "Could not find LVM source tarball: ${LVM_SRCTAR}! Please place it there, or place another version, changing /etc/genkernel.conf as necessary!"
- cd "${TEMP}"
- rm -rf ${LVM_DIR} > /dev/null
- /bin/tar -xpf ${LVM_SRCTAR} ||
- gen_die 'Could not extract LVM source tarball!'
- [ -d "${LVM_DIR}" ] ||
- gen_die "LVM directory ${LVM_DIR} is invalid!"
-
- rm -rf "${TEMP}/libaio" > /dev/null
- mkdir -p "${TEMP}/libaio"
- /bin/tar -xpf "${LIBAIO_BINCACHE}" -C "${TEMP}/libaio" ||
- gen_die "Could not extract libaio binary cache!";
-
- cd "${LVM_DIR}"
- print_info 1 "$(getIndent 3)lvm: >> Patching ..."
- apply_patches lvm ${LVM_VER}
- # we currently have a patch that changes configure.ac
- # once given patch is dropped, drop autoconf too
- print_info 1 "$(getIndent 3)lvm: >> Autoconf ..."
- autoconf || gen_die 'Autoconf failed for LVM2'
- print_info 1 "$(getIndent 3)lvm: >> Configuring..."
- LVM_CONF=(
- --enable-static_link
- --prefix=/
- --enable-dmeventd
- --enable-cmdlib
- --enable-applib
- --disable-lvmetad
- --with-lvm1=internal
- --with-clvmd=none
- --with-cluster=none
- --disable-readline
- --disable-selinux
- --with-mirrors=internal
- --with-snapshots=internal
- --with-pool=internal
- --with-thin=internal
- --with-cache=internal
- --with-raid=internal
- )
- CFLAGS="-fPIC" \
- LDFLAGS="-L${TEMP}/libaio/lib" \
- ./configure "${LVM_CONF[@]}" \
- >> ${LOGFILE} 2>&1 || \
- gen_die 'Configure of lvm failed!'
- print_info 1 "$(getIndent 3)lvm: >> Compiling..."
- compile_generic '' utils || gen_die "failed to build LVM"
-
- print_info 1 "$(getIndent 3)lvm: >> Installing to DESTDIR..."
- mkdir -p "${TEMP}/lvm/sbin"
- compile_generic "install DESTDIR=${TEMP}/lvm/" utils || gen_die "failed to install LVM"
- # Upstream does u-w on files, and this breaks stuff.
- chmod -R u+w "${TEMP}/lvm/"
-
- print_info 1 "$(getIndent 3)lvm: >> Copying to bincache..."
- cd "${TEMP}/lvm" || gen_die "cannot chdir into '${TEMP}/lvm'"
- ${UTILS_CROSS_COMPILE}strip "sbin/lvm.static" ||
- gen_die 'Could not strip lvm.static!'
- # See bug 382555
- ${UTILS_CROSS_COMPILE}strip "sbin/dmsetup.static" ||
- gen_die 'Could not strip dmsetup.static'
- /bin/tar -cjf "${LVM_BINCACHE}" . ||
- gen_die 'Could not create binary cache'
-
- cd "${TEMP}"
- isTrue "${CMD_DEBUGCLEANUP}" && rm -rf "${TEMP}/lvm" > /dev/null
- isTrue "${CMD_DEBUGCLEANUP}" && rm -rf "${LVM_DIR}" libaio lvm
- return 0
+ print_info 3 "${CHECK_LEVEL_PREFIX}${P} has no dependencies. (L${CHECK_LEVEL_CURRENT})"
fi
-}
+ unset pkg_deps
-compile_mdadm() {
- if [ -f "${MDADM_BINCACHE}" ]
+ if [[ "${PN}" == 'busybox' ]]
then
- print_info 1 "$(getIndent 3)MDADM: Using cache"
- else
- [ -f "${MDADM_SRCTAR}" ] ||
- gen_die "Could not find MDADM source tarball: ${MDADM_SRCTAR}! Please place it there, or place another version, changing /etc/genkernel.conf as necessary!"
- cd "${TEMP}"
- rm -rf "${MDADM_DIR}" > /dev/null
- /bin/tar -xpf "${MDADM_SRCTAR}" ||
- gen_die 'Could not extract MDADM source tarball!'
- [ -d "${MDADM_DIR}" ] ||
- gen_die "MDADM directory ${MDADM_DIR} is invalid!"
-
- cd "${MDADM_DIR}"
- apply_patches mdadm ${MDADM_VER}
- defs='-DNO_DLM -DNO_COROSYNC'
- sed -i \
- -e "/^CFLAGS = /s:^CFLAGS = \(.*\)$:CFLAGS = -Os ${defs}:" \
- -e "/^CXFLAGS = /s:^CXFLAGS = \(.*\)$:CXFLAGS = -Os ${defs}:" \
- -e "/^CWFLAGS = /s:^CWFLAGS = \(.*\)$:CWFLAGS = -Wall:" \
- -e "s/^# LDFLAGS = -static/LDFLAGS = -static/" \
- Makefile || gen_die "Failed to sed mdadm Makefile"
-
- print_info 1 "$(getIndent 3)mdadm: >> Compiling..."
- compile_generic 'mdadm mdmon' utils
-
- mkdir -p "${TEMP}/mdadm/sbin"
- install -m 0755 -s mdadm "${TEMP}/mdadm/sbin/mdadm" || gen_die "Failed mdadm install"
- install -m 0755 -s mdmon "${TEMP}/mdadm/sbin/mdmon" || gen_die "Failed mdmon install"
- print_info 1 "$(getIndent 3)mdadm: >> Copying to bincache..."
- cd "${TEMP}/mdadm"
- ${UTILS_CROSS_COMPILE}strip "sbin/mdadm" "sbin/mdmon" ||
- gen_die 'Could not strip mdadm binaries!'
- /bin/tar -cjf "${MDADM_BINCACHE}" sbin/mdadm sbin/mdmon ||
- gen_die 'Could not create binary cache'
-
- cd "${TEMP}"
- isTrue "${CMD_DEBUGCLEANUP}" && rm -rf "${MDADM_DIR}" mdadm
- return 0
- fi
-}
+ determine_busybox_config_file
-compile_dmraid() {
- compile_device_mapper
+ # Apply config-based tweaks to the busybox config.
+ # This needs to be done before cache validation.
+ cp "${BUSYBOX_CONFIG}" "${TEMP}/busybox-config" \
+ || gen_die "Failed to copy '${BUSYBOX_CONFIG}' to '${TEMP}/busybox-config'!"
- if [[ -f "${DMRAID_BINCACHE}" && "${DMRAID_BINCACHE}" -nt "${LVM_BINCACHE}" ]]
- then
- print_info 1 "$(getIndent 3)dmraid: >> Using cache"
- else
- [ -f "${DMRAID_SRCTAR}" ] ||
- gen_die "Could not find DMRAID source tarball: ${DMRAID_SRCTAR}! Please place it there, or place another version, changing /etc/genkernel.conf as necessary!"
- cd "${TEMP}"
- rm -rf ${DMRAID_DIR} > /dev/null
- /bin/tar -xpf ${DMRAID_SRCTAR} ||
- gen_die 'Could not extract DMRAID source tarball!'
- [ -d "${DMRAID_DIR}" ] ||
- gen_die "DMRAID directory ${DMRAID_DIR} is invalid!"
-
- rm -rf "${TEMP}/lvm" > /dev/null
- mkdir -p "${TEMP}/lvm"
- /bin/tar -xpf "${LVM_BINCACHE}" -C "${TEMP}/lvm" ||
- gen_die "Could not extract LVM2 binary cache!";
-
- print_info 1 "$(getIndent 3)dmraid: >> Patching ..."
- cd "${DMRAID_DIR}" || gen_die "cannot chdir into '${DMRAID_DIR}'"
- apply_patches dmraid ${DMRAID_VER}
-
- print_info 1 "$(getIndent 3)dmraid: >> Configuring..."
- DEVMAPPEREVENT_CFLAGS="-I${TEMP}/lvm/include" \
- LIBS="-lm -lrt -lpthread" \
- ./configure --enable-static_link \
- --with-devmapper-prefix="${TEMP}/lvm" \
- --prefix=${TEMP}/dmraid >> ${LOGFILE} 2>&1 ||
- gen_die 'Configure of dmraid failed!'
-
- # We dont necessarily have selinux installed yet... look into
- # selinux global support in the future.
- sed -i tools/Makefile -e "/DMRAID_LIBS +=/s|-lselinux||g"
- ###echo "DMRAIDLIBS += -lselinux -lsepol" >> tools/Makefile
- mkdir -p "${TEMP}/dmraid"
- print_info 1 "$(getIndent 3)dmraid: >> Compiling..."
- compile_generic '' utils
- #compile_generic 'install' utils
- mkdir ${TEMP}/dmraid/sbin
- install -m 0755 -s tools/dmraid "${TEMP}/dmraid/sbin/dmraid"
-
- print_info 1 "$(getIndent 3)dmraid: >> Copying to bincache..."
- cd "${TEMP}/dmraid" || gen_die "cannot chdir into '${TEMP}/dmraid'"
- /bin/tar -cjf "${DMRAID_BINCACHE}" sbin/dmraid ||
- gen_die 'Could not create binary cache'
-
- cd "${TEMP}"
- isTrue "${CMD_DEBUGCLEANUP}" && rm -rf "${TEMP}/lvm" > /dev/null
- isTrue "${CMD_DEBUGCLEANUP}" && rm -rf "${DMRAID_DIR}" dmraid
- return 0
+ # If you want mount.nfs to work on older than 2.6.something, you might need to turn this on.
+ #isTrue "${NFS}" && nfs_opt='y'
+ local nfs_opt='n'
+ kconfig_set_opt "${TEMP}/busybox-config" CONFIG_FEATURE_MOUNT_NFS ${nfs_opt}
+
+ # Delete cache if stored config's MD5 does not match one to be used
+ # This exactly just the .config.gk_orig file, and compares it again the
+ # current .config.
+ if [[ -f "${BINPKG}" ]]
+ then
+ local oldconfig_md5="$("${TAR_COMMAND}" -xaf "${BINPKG}" -O ./configs/.config.gk_orig 2>/dev/null | md5sum)"
+ local newconfig_md5="$(md5sum < "${TEMP}"/busybox-config)"
+ if [[ "${oldconfig_md5}" != "${newconfig_md5}" ]]
+ then
+ print_info 3 "$(get_indent 2)${PN}: >> Busybox config has changed since binpkg was created; Removing stale ${P} binpkg ..."
+ rm "${BINPKG}" \
+ || gen_die "Failed to remove stale binpkg '${BINPKG}'!"
+ fi
+ fi
fi
-}
-compile_device_mapper() {
- compile_lvm
-}
+ if [[ -f "${BINPKG}" ]]
+ then
+ local GKBUILD=
+ for GKBUILD in "${GKBUILD_CANDIDATES[@]}"
+ do
+ if [[ ! -f "${GKBUILD}" ]]
+ then
+ print_info 3 "${CHECK_LEVEL_PREFIX}GKBUILD '${GKBUILD}' does NOT exist; Skipping ..."
+ continue
+ fi
-compile_fuse() {
- [ ! -f "${FUSE_SRCTAR}" ] &&
- gen_die "Could not find fuse source tarball: ${FUSE_SRCTAR}. Please place it there, or place another version, changing /etc/genkernel.conf as necessary!"
- cd "${TEMP}"
- rm -rf "${FUSE_DIR}" > /dev/null
- /bin/tar -xpf "${FUSE_SRCTAR}" ||
- gen_die 'Could not extract fuse source tarball!'
- [ ! -d "${FUSE_DIR}" ] &&
- gen_die "fuse directory ${FUSE_DIR} is invalid"
-
- cd "${FUSE_DIR}"
- print_info 1 "$(getIndent 3)fuse: >> Patching ..."
- apply_patches fuse ${FUSE_VER}
-
- print_info 1 "$(getIndent 3)fuse: >> Configuring..."
- ./configure --disable-example >> ${LOGFILE} 2>&1 ||
- gen_die 'Configuring fuse failed!'
-
- print_info 1 "$(getIndent 3)fuse: >> Compiling..."
- compile_generic '' utils || gen_die "failed to build fuse"
-}
+ if [[ "${BINPKG}" -ot "${GKBUILD}" ]]
+ then
+ print_info 3 "${CHECK_LEVEL_PREFIX}GKBUILD '${GKBUILD}' is newer than us; Removing stale ${P} binpkg ..."
+ rm "${BINPKG}" || gen_die "Failed to remove stale binpkg '${BINPKG}'!"
+ break
+ fi
-compile_unionfs_fuse() {
- if [ -f "${UNIONFS_FUSE_BINCACHE}" ]
- then
- print_info 1 "$(getIndent 3)unionfs-fuse: Using cache"
- else
- # We'll call compile_fuse() from here, since it's not needed directly by anything else
- compile_fuse
-
- [ ! -f "${UNIONFS_FUSE_SRCTAR}" ] &&
- gen_die "Could not find unionfs-fuse source tarball: ${UNIONFS_FUSE_SRCTAR}. Please place it there, or place another version, changing /etc/genkernel.conf as necessary!"
- cd "${TEMP}"
- rm -rf "${UNIONFS_FUSE_DIR}" > /dev/null
- tar -xpf "${UNIONFS_FUSE_SRCTAR}" ||
- gen_die 'Could not extract unionfs-fuse source tarball!'
- [ ! -d "${UNIONFS_FUSE_DIR}" ] &&
- gen_die "unionfs-fuse directory ${UNIONFS_FUSE_DIR} is invalid"
-
- cd "${UNIONFS_FUSE_DIR}"
- print_info 1 "$(getIndent 3)unionfs-fuse: >> Patching ..."
- apply_patches unionfs-fuse ${UNIONFS_FUSE_VER}
-
- print_info 1 "$(getIndent 3)unionfs-fuse: >> Preparing ..."
- FUSE_CFLAGS="-I${TEMP}/${FUSE_DIR}/include -D_FILE_OFFSET_BITS=64" # pkg-config --cflags fuse
- FUSE_LIBS="-L${TEMP}/${FUSE_DIR}/lib/.libs -lfuse -pthread -ldl" # pkg-config --static --libs fuse
- sed -i \
- -e "s|\$(shell pkg-config --cflags fuse)|${FUSE_CFLAGS}|g" \
- -e "s|\$(shell pkg-config --libs fuse)|-static ${FUSE_LIBS}|g" \
- src/Makefile || gen_die "Failed to adjust unionfs-fuse Makefile"
-
- print_info 1 "$(getIndent 3)unionfs-fuse: >> Compiling..."
- compile_generic '' utils || gen_die "failed to build unionfs-fuse"
-
- print_info 1 "$(getIndent 3)unionfs-fuse: >> Copying to bincache..."
- [ -f "${TEMP}/${UNIONFS_FUSE_DIR}/src/unionfs" ] ||
- gen_die 'unionfs binary does not exist!'
- ${UTILS_CROSS_COMPILE}strip "${TEMP}/${UNIONFS_FUSE_DIR}/src/unionfs" ||
- gen_die 'Could not strip unionfs binary!'
- bzip2 "${TEMP}/${UNIONFS_FUSE_DIR}/src/unionfs" ||
- gen_die 'bzip2 compression of unionfs binary failed!'
- mv "${TEMP}/${UNIONFS_FUSE_DIR}/src/unionfs.bz2" "${UNIONFS_FUSE_BINCACHE}" ||
- gen_die 'Could not copy the unionfs binary to the package directory, does the directory exist?'
-
- cd "${TEMP}"
- isTrue "${CMD_DEBUGCLEANUP}" && rm -rf "${FUSE_DIR}" "${UNIONFS_FUSE_DIR}" > /dev/null
- return 0
+ print_info 3 "${CHECK_LEVEL_PREFIX}Existing ${P} binpkg is newer than '${GKBUILD}'; Skipping ..."
+ done
fi
-}
-compile_iscsi() {
- compile_iscsi_isns
+ if [[ -f "${BINPKG}" ]]
+ then
+ local required_binpkg=
+ for required_binpkg in "${REQUIRED_BINPKGS_CURRENT_VARNAME_ref[@]}"
+ do
+ # Create shorter variable value so we do not clutter output
+ local required_binpkg_filename=$(basename "${required_binpkg}")
+
+ if [[ "${BINPKG}" -ot "${required_binpkg}" ]]
+ then
+ print_info 3 "${CHECK_LEVEL_PREFIX}Required binpkg '${required_binpkg_filename}' is newer than us; Removing stale ${P} binpkg ..."
+ rm "${BINPKG}" || gen_die "Failed to remove stale binpkg '${BINPKG}'!"
+ break
+ fi
- if [[ -f "${ISCSI_BINCACHE}" && "${ISCSI_BINCACHE}" -nt "${ISCSI_ISNS_BINCACHE}" ]]
+ print_info 3 "${CHECK_LEVEL_PREFIX}Existing ${P} binpkg is newer than '${required_binpkg_filename}'; Skipping ..."
+ done
+ unset required_binpkg required_binpkg_filename
+ fi
+
+ if [[ -f "${BINPKG}" ]]
then
- print_info 1 "$(getIndent 3)iscsistart: Using cache"
- else
- [ ! -f "${ISCSI_SRCTAR}" ] &&
- gen_die "Could not find open-scsi source tarball: ${ISCSI_SRCTAR}. Please place it there, or place another version, changing /etc/genkernel.conf as necessary!"
- cd "${TEMP}"
- rm -rf "${ISCSI_DIR}"
- tar -xpf "${ISCSI_SRCTAR}"
- [ ! -d "${ISCSI_DIR}" ] &&
- gen_die "open-scsi directory ${ISCSI_DIR} is invalid"
-
- rm -rf "${TEMP}/iscsi-isns" > /dev/null
- mkdir -p "${TEMP}/iscsi-isns"
- /bin/tar -xpf "${ISCSI_ISNS_BINCACHE}" -C "${TEMP}/iscsi-isns" ||
- gen_die "Could not extract open-isns binary cache!"
-
- cd "${TEMP}/${ISCSI_DIR}"
- print_info 1 "$(getIndent 3)open-scsi: >> Patching..."
- apply_patches iscsi ${ISCSI_VER}
-
- print_info 1 "$(getIndent 3)open-scsi: >> Compiling..."
- CFLAGS="-I${TEMP}/iscsi-isns/usr/include" \
- LDFLAGS="-L${TEMP}/iscsi-isns/usr/lib -lrt -lpthread" \
- compile_generic "user" utils
-
- # if kernel modules exist, copy them to initramfs, otherwise it will be compiled into the kernel
- mkdir -p "${TEMP}/initramfs-iscsi-temp/lib/modules/${KV}/kernel/drivers/scsi/"
- KEXT=$(modules_kext)
- for modname in iscsi_tcp libiscsi scsi_transport_iscsi
+ local patchdir="${GK_SHARE}/patches/${PN}/${PV}"
+ local patch
+ for patch in "${patchdir}"/*{diff,patch}
do
- module=${KERNEL_OUTPUTDIR}/drivers/scsi/${modname}${KEXT}
- if [ -e "${module}" ]
+ [ -f "${patch}" ] || continue
+ if [[ "${BINPKG}" -ot "${patch}" ]]
then
- print_info 2 "$(getIndent 4) - Copying ${modname}${KEXT}..."
- cp $module "${TEMP}/initramfs-iscsi-temp/lib/modules/${KV}/kernel/drivers/scsi/"
+ print_info 3 "${CHECK_LEVEL_PREFIX}Patch '${patch}' is newer than us; Removing stale ${P} binpkg ..."
+ rm "${BINPKG}" || gen_die "Failed to remove stale binpkg '${BINPKG}'!"
+ break
fi
+
+ print_info 3 "${CHECK_LEVEL_PREFIX}Existing ${P} binpkg is newer than '${patch}'; Skipping ..."
done
+ unset patch patchdir
+ fi
- cd "${TEMP}/initramfs-iscsi-temp/"
- print_info 1 "$(getIndent 3)iscsistart: >> Copying to bincache..."
- [ -f "${TEMP}/${ISCSI_DIR}/usr/iscsistart" ] ||
- gen_die 'iscsistart executable does not exist!'
- ${UTILS_CROSS_COMPILE}strip "${TEMP}/${ISCSI_DIR}/usr/iscsistart" ||
- gen_die 'Could not strip iscsistart binary!'
- bzip2 "${TEMP}/${ISCSI_DIR}/usr/iscsistart" ||
- gen_die 'bzip2 compression of iscsistart failed!'
- mv "${TEMP}/${ISCSI_DIR}/usr/iscsistart.bz2" "${ISCSI_BINCACHE}" ||
- gen_die 'Could not copy the iscsistart binary to the package directory, does the directory exist?'
-
- cd "${TEMP}"
- isTrue "${CMD_DEBUGCLEANUP}" && rm -rf "${ISCSI_DIR}" "iscsi-isns" > /dev/null
- return 0
+ if [[ -f "${BINPKG}" ]]
+ then
+ if isTrue "$(is_glibc)"
+ then
+ local libdir=$(get_chost_libdir)
+ local glibc_test_file="${libdir}/libc.a"
+
+ if [[ ! -f "${glibc_test_file}" ]]
+ then
+ gen_die "Internal error: File '${glibc_test_file}' not found! Do not know how to deal with this glibc version."
+ fi
+
+ if [[ "${BINPKG}" -ot "${glibc_test_file}" ]]
+ then
+ print_info 3 "${CHECK_LEVEL_PREFIX}Glibc (${glibc_test_file}) is newer than us; Removing stale ${P} binpkg ..."
+ rm "${BINPKG}" || gen_die "Failed to remove stale binpkg '${BINPKG}'!"
+ fi
+
+ print_info 3 "${CHECK_LEVEL_PREFIX}Existing ${P} binpkg is newer than glibc (${glibc_test_file}); Skipping ..."
+ fi
fi
-}
-compile_iscsi_isns() {
- if [ -f "${ISCSI_ISNS_BINCACHE}" ]
+ if [[ ! -f "${BINPKG}" ]]
then
- print_info 1 "$(getIndent 3)open-isns: >> Using cache"
+ print_info 3 "${CHECK_LEVEL_PREFIX}Binpkg '${BINPKG}' does NOT exist; Need to build ${P} ..."
+
+ local required_binpkgs=
+ local required_binpkg=
+ for required_binpkg in "${REQUIRED_BINPKGS_CURRENT_VARNAME_ref[@]}"
+ do
+ required_binpkgs+="${required_binpkg};"
+ done
+ unset required_binpkg required_binpkg_filename
+
+ gkbuild \
+ ${PN} \
+ ${PV} \
+ $(get_gkpkg_srcdir "${PN}") \
+ $(get_gkpkg_srctar "${PN}") \
+ "${BINPKG}" \
+ "${required_binpkgs}"
else
- [ -f "${ISCSI_ISNS_SRCTAR}" ] ||
- gen_die "Could not find open-isns source tarball: ${ISCSI_ISNS_SRCTAR}! Please place it there, or place another version, changing /etc/genkernel.conf as necessary!"
- cd "${TEMP}"
- rm -rf ${ISCSI_ISNS_DIR} > /dev/null
- /bin/tar -xpf ${ISCSI_ISNS_SRCTAR} ||
- gen_die 'Could not extract open-isns source tarball!'
- [ -d "${ISCSI_ISNS_DIR}" ] ||
- gen_die "open-isns directory ${ISCSI_ISNS_DIR} is invalid!"
-
- print_info 1 "$(getIndent 3)open-isns: >> Patching ..."
- cd "${ISCSI_ISNS_DIR}" || gen_die "cannot chdir into '${ISCSI_ISNS_DIR}'"
- apply_patches iscsi-isns ${ISCSI_ISNS_VER}
-
- print_info 1 "$(getIndent 3)open-isns: >> Configuring..."
- ./configure \
- --prefix=/usr \
- --enable-static \
- --without-slp \
- >> ${LOGFILE} 2>&1 || \
- gen_die "failed to configure open-isns"
-
- print_info 1 "$(getIndent 3)open-isns: >> Compiling..."
- compile_generic '' utils || gen_die "failed to build open-isns"
-
- print_info 1 "$(getIndent 3)open-isns: >> Installing to DESTDIR..."
- compile_generic "DESTDIR=${TEMP}/iscsi-isns install" utils || gen_die "failed to install open-isns"
- compile_generic "DESTDIR=${TEMP}/iscsi-isns install_hdrs" utils || gen_die "failed to install open-isns"
- compile_generic "DESTDIR=${TEMP}/iscsi-isns install_lib" utils || gen_die "failed to install open-isns"
-
- print_info 1 "$(getIndent 3)open-isns: >> Copying to bincache..."
- cd "${TEMP}/iscsi-isns" || gen_die "cannot chdir into '${TEMP}/iscsi-isns'"
- /bin/tar -cjf "${ISCSI_ISNS_BINCACHE}" . ||
- gen_die 'Could not create open-isns binary cache'
-
- cd "${TEMP}"
- isTrue "${CMD_DEBUGCLEANUP}" && rm -rf "${ISCSI_ISNS_DIR}" > /dev/null
- return 0
+ print_info 3 "${CHECK_LEVEL_PREFIX}Can keep using existing ${P} binpkg from '${BINPKG}'!"
+ [[ ${CHECK_LEVEL_CURRENT} -eq 0 ]] && print_info 2 "$(get_indent 2)${PN}: >> Using ${P} binpkg ..."
fi
-}
-compile_gpg() {
- if [ -f "${GPG_BINCACHE}" ]
+ if [[ ${CHECK_LEVEL_CURRENT} -eq 0 ]]
then
- print_info 1 "$(getIndent 3)gnupg: >> Using cache"
+ # Fertig
+ # REQUIRED_BINPKGS_PARENT_VARNAME
+ unset CHECK_L${CHECK_LEVEL_PARENT}_REQUIRED_BINPKGS
else
- [ ! -f "${GPG_SRCTAR}" ] &&
- gen_die "Could not find gnupg source tarball: ${GPG_SRCTAR}. Please place it there, or place another version, changing /etc/genkernel.conf as necessary!"
- cd "${TEMP}"
- rm -rf "${GPG_DIR}"
- tar -xf "${GPG_SRCTAR}"
- [ ! -d "${GPG_DIR}" ] &&
- gen_die "gnupg directory ${GPG_DIR} invalid"
- cd "${GPG_DIR}"
- apply_patches gnupg ${GPG_VER}
- print_info 1 "$(getIndent 3)gnupg: >> Configuring..."
- # --enable-minimal works, but it doesn't reduce the command length much.
- # Given its history and the precision this needs, explicit is cleaner.
- LDFLAGS='-static' CFLAGS='-Os' ./configure --prefix=/ \
- --enable-static-rnd=linux --disable-dev-random --disable-asm \
- --disable-selinux-support --disable-gnupg-iconv --disable-card-support \
- --disable-agent-support --disable-bzip2 --disable-exec \
- --disable-photo-viewers --disable-keyserver-helpers --disable-ldap \
- --disable-hkp --disable-finger --disable-generic --disable-mailto \
- --disable-keyserver-path --disable-dns-srv --disable-dns-pka \
- --disable-dns-cert --disable-nls --disable-threads --disable-regex \
- --disable-optimization --with-included-zlib --without-capabilities \
- --without-tar --without-ldap --without-libcurl --without-mailprog \
- --without-libpth-prefix --without-libiconv-prefix --without-libintl-prefix\
- --without-zlib --without-bzip2 --without-libusb --without-readline \
- >> ${LOGFILE} 2>&1 || gen_die 'Configuring gnupg failed!'
- print_info 1 "$(getIndent 3)gnupg: >> Compiling..."
- compile_generic "" "utils"
- print_info 1 "$(getIndent 3)gnupg: >> Copying to bincache..."
- [ -f "${TEMP}/${GPG_DIR}/g10/gpg" ] ||
- gen_die 'gnupg executable does not exist!'
- ${UTILS_CROSS_COMPILE}strip "${TEMP}/${GPG_DIR}/g10/gpg" ||
- gen_die 'Could not strip gpg binary!'
- bzip2 -z -c "${TEMP}/${GPG_DIR}/g10/gpg" > "${GPG_BINCACHE}" ||
- gen_die 'Could not copy the gpg binary to the package directory, does the directory exist?'
-
- cd "${TEMP}"
- isTrue "${CMD_DEBUGCLEANUP}" && rm -rf "${GPG_DIR}" > /dev/null
- return 0
+ print_info 3 "${CHECK_LEVEL_PREFIX}Binpkg of ${P} is ready; Adding to list '${REQUIRED_BINPKGS_PARENT_VARNAME}' ..."
+ eval ${REQUIRED_BINPKGS_PARENT_VARNAME}+=\( \"${BINPKG}\" \)
fi
+
+ # REQUIRED_BINPKGS_CURRENT_VARNAME
+ unset CHECK_L${CHECK_LEVEL_CURRENT}_REQUIRED_BINPKGS
}
diff --git a/gen_configkernel.sh b/gen_configkernel.sh
index 063c9ac..0158e46 100755
--- a/gen_configkernel.sh
+++ b/gen_configkernel.sh
@@ -2,48 +2,85 @@
# $Id$
# Fills variable KERNEL_CONFIG
-determine_config_file() {
- print_info 2 "Checking for suitable kernel configuration..."
+determine_kernel_config_file() {
+ print_info 2 "Checking for suitable kernel configuration ..."
if [ -n "${CMD_KERNEL_CONFIG}" -a "${CMD_KERNEL_CONFIG}" != "default" ]
then
KERNEL_CONFIG=$(expand_file "${CMD_KERNEL_CONFIG}")
if [ -z "${KERNEL_CONFIG}" ]
then
- error_msg="No kernel .config: Cannot use '${CMD_KERNEL_CONFIG}' value. "
- error_msg+="Check --kernel-config value or unset "
- error_msg+="to use default kernel config provided by genkernel."
- gen_die "${error_msg}"
+ gen_die "--kernel-config value '${CMD_KERNEL_CONFIG}' failed to expand!"
+ elif [ ! -e "${KERNEL_CONFIG}" ]
+ then
+ gen_die "--kernel-config file '${KERNEL_CONFIG}' does not exist!"
+ fi
+
+ local confgrep_cmd=$(get_grep_cmd_for_file "${KERNEL_CONFIG}")
+ if ! "${confgrep_cmd}" -qE '^CONFIG_.*=' "${KERNEL_CONFIG}" &>/dev/null
+ then
+ gen_die "--kernel-config file '${KERNEL_CONFIG}' does not look like a valid kernel config: File does not contain any CONFIG_* value!"
fi
else
local -a kconfig_candidates
- kconfig_candidates+=( "${GK_SHARE}/arch/${ARCH}/kernel-config-${KV}" )
- kconfig_candidates+=( "${GK_SHARE}/arch/${ARCH}/kernel-config-${VER}.${PAT}" )
- kconfig_candidates+=( "${GK_SHARE}/arch/${ARCH}/generated-config" )
- kconfig_candidates+=( "${GK_SHARE}/arch/${ARCH}/kernel-config" )
- kconfig_candidates+=( "${DEFAULT_KERNEL_CONFIG}" )
+
+ local -a gk_kconfig_candidates
+ gk_kconfig_candidates+=( "${GK_SHARE}/arch/${ARCH}/kernel-config-${KV}" )
+ gk_kconfig_candidates+=( "${GK_SHARE}/arch/${ARCH}/kernel-config-${VER}.${PAT}" )
+ gk_kconfig_candidates+=( "${GK_SHARE}/arch/${ARCH}/generated-config" )
+ gk_kconfig_candidates+=( "${GK_SHARE}/arch/${ARCH}/kernel-config" )
+ gk_kconfig_candidates+=( "${DEFAULT_KERNEL_CONFIG}" )
if [ -n "${CMD_KERNEL_CONFIG}" -a "${CMD_KERNEL_CONFIG}" = "default" ]
then
print_info 1 "Default configuration was forced. Will ignore any user kernel configuration!"
+ kconfig_candidates=( ${gk_kconfig_candidates[@]} )
else
- kconfig_candidates=( "/etc/kernels/kernel-config-${ARCH}-${KV}" ${kconfig_candidates[@]} )
+ local -a user_kconfig_candidates
+
+ # Always prefer kernel config based on set --kernel-config-filename
+ user_kconfig_candidates+=( "/etc/kernels/${GK_FILENAME_CONFIG}" )
+
+ if [ -n "${KERNEL_LOCALVERSION}" -a "${KERNEL_LOCALVERSION}" != "UNSET" ]
+ then
+ # Look for kernel config based on KERNEL_LOCALVERSION
+ # which we are going to use, too.
+ # This will allow user to copy previous kernel config file
+ # which includes LOV by default to new version when doing
+ # kernel upgrade since we add $ARCH to $LOV by default.
+ local user_kconfig="/etc/kernels/kernel-config-${VER}.${PAT}.${SUB}${EXV}${KERNEL_LOCALVERSION}"
+
+ # Don't check same file twice
+ if [[ "${user_kconfig_candidates[@]} " != *"${user_kconfig} "* ]]
+ then
+ user_kconfig_candidates+=( ${user_kconfig} )
+ fi
+ fi
+
+ # Look for genkernel-3.x configs for backward compatibility, too
+ user_kconfig_candidates+=( "/etc/kernels/kernel-config-${ARCH}-${KV}" )
+
+ kconfig_candidates=(
+ ${user_kconfig_candidates[@]}
+ ${gk_kconfig_candidates[@]}
+ )
fi
+ local f
for f in "${kconfig_candidates[@]}"
do
[ -z "${f}" ] && continue
if [ -f "${f}" ]
then
- if grep -sq THIS_CONFIG_IS_BROKEN "$f"
+ if grep -sq THIS_CONFIG_IS_BROKEN "${f}"
then
- print_info 2 "$(getIndent 1)- '${f}' is marked as broken; Skipping..."
+ print_info 2 "$(get_indent 1)- '${f}' is marked as broken; Skipping ..."
else
- KERNEL_CONFIG="$f" && break
+ KERNEL_CONFIG="${f}" && break
fi
else
- print_info 2 "$(getIndent 1)- '${f}' not found; Skipping..."
+ print_info 2 "$(get_indent 1)- '${f}' not found; Skipping ..."
fi
done
@@ -70,20 +107,150 @@ determine_config_file() {
fi
}
+set_initramfs_compression_method() {
+ [[ ${#} -ne 1 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes exactly one argument (${#} given)!"
+
+ local kernel_config=${1}
+
+ local -a KNOWN_INITRAMFS_COMPRESSION_TYPES=()
+ KNOWN_INITRAMFS_COMPRESSION_TYPES+=( NONE )
+ KNOWN_INITRAMFS_COMPRESSION_TYPES+=( $(get_initramfs_compression_method_by_compression) )
+
+ if [[ "${COMPRESS_INITRD_TYPE}" =~ ^(BEST|FASTEST)$ ]]
+ then
+ print_info 5 "Determining '${COMPRESS_INITRD_TYPE}' compression method for initramfs using kernel config '${kernel_config}' ..."
+ local ranked_methods
+ if [[ "${COMPRESS_INITRD_TYPE}" == "BEST" ]]
+ then
+ ranked_methods=( $(get_initramfs_compression_method_by_compression) )
+ else
+ ranked_methods=( $(get_initramfs_compression_method_by_speed) )
+ fi
+
+ local ranked_method
+ for ranked_method in "${ranked_methods[@]}"
+ do
+ print_info 5 "Checking if we can use '${ranked_method}' compression ..."
+
+ # Do we have the user space tool?
+ local compression_tool=${GKICM_LOOKUP_TABLE_CMD[${ranked_method}]/%\ */}
+ if ! hash ${compression_tool} &>/dev/null
+ then
+ print_info 5 "Cannot use '${ranked_method}' compression, the tool '${compression_tool}' to compress initramfs was not found. Is ${GKICM_LOOKUP_TABLE_PKG[${ranked_method}]} installed?"
+ continue
+ fi
+
+ # Is the kernel able to decompress?
+ local koption="CONFIG_RD_${ranked_method}"
+ local value_koption=$(kconfig_get_opt "${kernel_config}" "${koption}")
+ if [[ "${value_koption}" != "y" ]]
+ then
+ print_info 5 "Cannot use '${ranked_method}' compression, kernel option '${koption}' is not set!"
+ continue
+ fi
+
+ print_info 5 "Will use '${ranked_method}' compression -- all requirements are met!"
+ COMPRESS_INITRD_TYPE=${ranked_method}
+ break
+ done
+ unset ranked_method ranked_methods koption value_koption
+
+ if [[ "${COMPRESS_INITRD_TYPE}" =~ ^(BEST|FASTEST)$ ]]
+ then
+ gen_die "None of the initramfs compression methods we tried are supported by your kernel (config file \"${kernel_config}\"), strange!?"
+ fi
+ fi
+
+ if ! isTrue "${BUILD_KERNEL}"
+ then
+ local cfg_DECOMPRESS_SUPPORT=$(kconfig_get_opt "${kernel_config}" "CONFIG_RD_${COMPRESS_INITRD_TYPE}")
+ if [[ "${cfg_DECOMPRESS_SUPPORT}" != "y" ]]
+ then
+ gen_die "The kernel config '${kernel_config}' this initramfs will be built for cannot decompress set --compress-initrd-type '${COMPRESS_INITRD_TYPE}'!"
+ fi
+
+ # If we are not building kernel, there is no point in
+ # changing kernel config file at all so exit function
+ # here.
+ return
+ fi
+
+ local KOPTION_PREFIX=CONFIG_RD_
+ [ ${KV_NUMERIC} -ge 4010 ] && KOPTION_PREFIX=CONFIG_INITRAMFS_COMPRESSION_
+
+ # CONFIG_INITRAMFS_<TYPE> options are only used when CONFIG_INITRAMFS_SOURCE
+ # is set. However, we cannot just check for INTEGRATED_INITRAMFS option here
+ # because on first run kernel will still get compiled without
+ # CONFIG_INITRAMFS_SOURCE set.
+ local has_initramfs_source=no
+ local cfg_CONFIG_INITRAMFS_SOURCE=$(kconfig_get_opt "${kernel_config}" "CONFIG_INITRAMFS_SOURCE")
+ [[ -n "${cfg_CONFIG_INITRAMFS_SOURCE}" && ${#cfg_CONFIG_INITRAMFS_SOURCE} -gt 2 ]] && has_initramfs_source=yes
+
+ local KNOWN_INITRAMFS_COMPRESSION_TYPE
+ local KOPTION_VALUE KOPTION_CURRENT_VALUE
+ for KNOWN_INITRAMFS_COMPRESSION_TYPE in "${KNOWN_INITRAMFS_COMPRESSION_TYPES[@]}"
+ do
+ KOPTION_VALUE=n
+ if [[ "${KNOWN_INITRAMFS_COMPRESSION_TYPE}" == "${COMPRESS_INITRD_TYPE}" ]]
+ then
+ KOPTION_VALUE=y
+ fi
+
+ if isTrue "${has_initramfs_source}"
+ then
+ KOPTION_CURRENT_VALUE=$(kconfig_get_opt "${kernel_config}" "${KOPTION_PREFIX}${KNOWN_INITRAMFS_COMPRESSION_TYPE}")
+ if [[ -n "${KOPTION_CURRENT_VALUE}" ]] \
+ && [[ "${KOPTION_VALUE}" != "${KOPTION_CURRENT_VALUE}" ]]
+ then
+ # We have to ensure that only the initramfs compression
+ # we want to use is enabled or the last one listed in
+ # $KERNEL_DIR/usr/Makefile will be used
+ # However, no need to set =n value when option isn't set
+ # at all (this will save us one additional "make oldconfig"
+ # run due to changed kernel options).
+ kconfig_set_opt "${kernel_config}" "${KOPTION_PREFIX}${KNOWN_INITRAMFS_COMPRESSION_TYPE}" "${KOPTION_VALUE}"
+ fi
+
+ if [[ "${KOPTION_VALUE}" == "y" ]]
+ then
+ echo "${KOPTION_PREFIX}${KNOWN_INITRAMFS_COMPRESSION_TYPE}" >> "${KCONFIG_REQUIRED_OPTIONS}" \
+ || gen_die "Failed to add '${KOPTION_PREFIX}${KNOWN_INITRAMFS_COMPRESSION_TYPE}' to '${KCONFIG_REQUIRED_OPTIONS}'!"
+ fi
+ fi
+
+ if [[ "${KOPTION_VALUE}" == "y" && "${KNOWN_INITRAMFS_COMPRESSION_TYPE}" != "NONE" ]]
+ then
+ # Make sure that the kernel can always decompress our initramfs
+ kconfig_set_opt "${kernel_config}" "CONFIG_RD_${KNOWN_INITRAMFS_COMPRESSION_TYPE}" "${KOPTION_VALUE}"
+
+ echo "CONFIG_RD_${KNOWN_INITRAMFS_COMPRESSION_TYPE}" >> "${KCONFIG_REQUIRED_OPTIONS}" \
+ || gen_die "Failed to add 'CONFIG_RD_${KNOWN_INITRAMFS_COMPRESSION_TYPE}' to '${KCONFIG_REQUIRED_OPTIONS}'!"
+ fi
+ done
+}
+
config_kernel() {
- cd "${KERNEL_DIR}" || gen_die 'Could not switch to the kernel directory!'
+ local diff_cmd="$(type -P zdiff 2>/dev/null)"
+ if [ -z "${diff_cmd}" ]
+ then
+ print_warning 5 "zdiff is not available."
+ diff_cmd="diff"
+ fi
- print_info 1 "kernel: >> Initializing..."
+ cd "${KERNEL_DIR}" || gen_die "Failed to chdir to '${KERNEL_DIR}'!"
+
+ print_info 1 "kernel: >> Initializing ..."
if isTrue "${CLEAN}" && isTrue "${MRPROPER}"
then
- print_info 1 "$(getIndent 1)>> Skipping 'make clean' -- will run 'make mrproper' later"
+ print_info 2 "$(get_indent 1)>> --mrproper is set; Skipping 'make clean' ..."
elif isTrue "${CLEAN}" && ! isTrue "${MRPROPER}"
then
- print_info 1 "$(getIndent 1)>> Cleaning..."
+ print_info 1 "$(get_indent 1)>> Running 'make clean' ..."
compile_generic clean kernel
else
- print_info 1 "$(getIndent 1)>> --clean is disabled; not running 'make clean'."
+ print_info 1 "$(get_indent 1)>> --no-clean is set; Skipping 'make clean' ..."
fi
if isTrue "${MRPROPER}" || [ -n "${CMD_KERNEL_CONFIG}" -a "${CMD_KERNEL_CONFIG}" = "default" ]
@@ -92,56 +259,62 @@ config_kernel() {
if [ -f "${KERNEL_OUTPUTDIR}/.config" ]
then
# Current .config is different then one we are going to use
- if [ -n "${CMD_KERNEL_CONFIG}" -a "${CMD_KERNEL_CONFIG}" = "default" ] || \
- ! diff -q "${KERNEL_OUTPUTDIR}"/.config "${KERNEL_CONFIG}" > /dev/null
+ if [ -n "${CMD_KERNEL_CONFIG}" -a "${CMD_KERNEL_CONFIG}" = "default" ] \
+ || ! "${diff_cmd}" -q "${KERNEL_OUTPUTDIR}"/.config "${KERNEL_CONFIG}" >/dev/null
then
- NOW=`date +--%Y-%m-%d--%H-%M-%S`
+ NOW=$(date +--%Y-%m-%d--%H-%M-%S)
cp "${KERNEL_OUTPUTDIR}/.config" "${KERNEL_OUTPUTDIR}/.config${NOW}.bak" \
|| gen_die "Could not backup kernel config (${KERNEL_OUTPUTDIR}/.config)"
- print_info 1 "$(getIndent 1)>> Previous config backed up to .config${NOW}.bak"
+ print_info 1 "$(get_indent 1)>> Previous config backed up to .config${NOW}.bak"
- [ -n "${CMD_KERNEL_CONFIG}" -a "${CMD_KERNEL_CONFIG}" = "default" ] &&
- rm "${KERNEL_OUTPUTDIR}/.config" > /dev/null
+ if [ -n "${CMD_KERNEL_CONFIG}" -a "${CMD_KERNEL_CONFIG}" = "default" ]
+ then
+ print_info 3 "$(get_indent 1)>> Default kernel config was forced; Deleting existing kernel config '${KERNEL_OUTPUTDIR}/.config' ..."
+ rm "${KERNEL_OUTPUTDIR}/.config" >/dev/null \
+ || gen_die "Failed to delete '${KERNEL_OUTPUTDIR}/.config'!"
+ fi
fi
fi
fi
if isTrue "${MRPROPER}"
then
- print_info 1 "$(getIndent 1)>> Running mrproper..."
+ print_info 1 "$(get_indent 1)>> Running 'make mrproper' ..."
compile_generic mrproper kernel
else
- if [ -f "${KERNEL_OUTPUTDIR}/.config" ]
- then
- print_info 1 "$(getIndent 1)>> Using config from ${KERNEL_OUTPUTDIR}/.config"
- else
- print_info 1 "$(getIndent 1)>> Using config from ${KERNEL_CONFIG}"
- fi
- print_info 1 "$(getIndent 1)>> --mrproper is disabled; not running 'make mrproper'."
+ print_info 1 "$(get_indent 1)>> --no-mrproper is set; Skipping 'make mrproper' ..."
fi
- # If we're not cleaning a la mrproper, then we don't want to try to overwrite the configs
- # or we might remove configurations someone is trying to test.
- if isTrue "${MRPROPER}" || [ ! -f "${KERNEL_OUTPUTDIR}/.config" ]
+ if [ ! -f "${KERNEL_OUTPUTDIR}/.config" ]
then
- print_info 1 "$(getIndent 1)>> Using config from ${KERNEL_CONFIG}"
+ # We always need a kernel config file...
+ print_info 3 "$(get_indent 1)>> Copying '${KERNEL_CONFIG}' to '${KERNEL_OUTPUTDIR}/.config' ..."
- local message='Could not copy configuration file!'
- if [[ "$(file --brief --mime-type "${KERNEL_CONFIG}")" == application/x-gzip ]]
+ local message="Failed to copy kernel config file '${KERNEL_CONFIG}' to '${KERNEL_OUTPUTDIR}/.config'!"
+ if isTrue "$(is_gzipped "${KERNEL_CONFIG}")"
then
# Support --kernel-config=/proc/config.gz, mainly
zcat "${KERNEL_CONFIG}" > "${KERNEL_OUTPUTDIR}/.config" || gen_die "${message}"
else
- cp "${KERNEL_CONFIG}" "${KERNEL_OUTPUTDIR}/.config" || gen_die "${message}"
+ cp -aL "${KERNEL_CONFIG}" "${KERNEL_OUTPUTDIR}/.config" || gen_die "${message}"
+ fi
+ else
+ if ! "${diff_cmd}" -q "${KERNEL_OUTPUTDIR}"/.config "${KERNEL_CONFIG}" >/dev/null
+ then
+ print_warning 1 "$(get_indent 1)>> Will ignore kernel config from '${KERNEL_CONFIG}'"
+ print_warning 1 "$(get_indent 1) in favor of already existing but different kernel config"
+ print_warning 1 "$(get_indent 1) found in '${KERNEL_OUTPUTDIR}/.config' ..."
+ else
+ print_info 3 "$(get_indent 1)>> Can keep using already existing '${KERNEL_OUTPUTDIR}/.config' which is identical to --kernel-config file ..."
fi
fi
if isTrue "${OLDCONFIG}"
then
- print_info 1 "$(getIndent 1)>> Running oldconfig..."
+ print_info 1 "$(get_indent 1)>> Running 'make oldconfig' ..."
yes '' 2>/dev/null | compile_generic oldconfig kernel 2>/dev/null
else
- print_info 1 "$(getIndent 1)>> --oldconfig is disabled; not running 'make oldconfig'."
+ print_info 1 "$(get_indent 1)>> --no-oldconfig is set; Skipping 'make oldconfig' ..."
fi
local add_config
@@ -159,61 +332,124 @@ config_kernel() {
add_config=xconfig
fi
- if [ x"${add_config}" != x"" ]
+ if [ -n "${add_config}" ]
then
- print_info 1 "$(getIndent 1)>> Invoking ${add_config}..."
- compile_generic $add_config kernelruntask
- [ "$?" ] || gen_die "Error: ${add_config} failed!"
+ local kconfig_md5sum_old="$(md5sum < "${KERNEL_OUTPUTDIR}/.config")"
+
+ print_info 1 "$(get_indent 1)>> Invoking ${add_config} ..."
+ compile_generic ${add_config} kernelruntask
+
+ local kconfig_md5sum_new="$(md5sum < "${KERNEL_OUTPUTDIR}/.config")"
+ if [[ "${kconfig_md5sum_old}" == "${kconfig_md5sum_new}" ]]
+ then
+ print_warning 1 "$(get_indent 1)>> Kernel config was not modified!"
+ fi
+ unset kconfig_md5sum_old kconfig_md5sum_new
fi
local -a required_kernel_options
- [ -f "${TEMP}/.kconfig_modified" ] && rm "${TEMP}/.kconfig_modified"
+ [ -f "${KCONFIG_MODIFIED_MARKER}" ] && rm "${KCONFIG_MODIFIED_MARKER}"
+
+ if isTrue "${BUILD_RAMDISK}"
+ then
+ # We really need this or we will fail to boot
+ print_info 2 "$(get_indent 1)>> Ensure that required kernel options for genkernel's initramfs usage are set ..."
+
+ # Ensure kernel supports initramfs
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BLK_DEV_INITRD" "y"
+
+ # Stuff required by init script
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_MMU" "y"
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_SHMEM" "y"
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_TMPFS" "y" \
+ && required_kernel_options+=( 'CONFIG_TMPFS' )
+
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_TTY" "y" \
+ && required_kernel_options+=( 'CONFIG_TTY' )
+
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_UNIX98_PTYS" "y" \
+ && required_kernel_options+=( 'CONFIG_UNIX98_PTYS' )
+
+ # Make sure that CONFIG_INITRAMFS_SOURCE is unset so we don't clash
+ # with any other genkernel functionality.
+ local cfg_CONFIG_INITRAMFS_SOURCE=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_INITRAMFS_SOURCE")
+ if [[ -n "${cfg_CONFIG_INITRAMFS_SOURCE}" && ${#cfg_CONFIG_INITRAMFS_SOURCE} -gt 2 ]]
+ then
+ # Checking value length to allow 'CONFIG_INITRAMFS_SOURCE=' and 'CONFIG_INITRAMFS_SOURCE=""'
+ print_info 2 "$(get_indent 1)>> CONFIG_INITRAMFS_SOURCE is set; Unsetting to avoid problems ..."
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_INITRAMFS_SOURCE" ""
+ fi
+
+ if isTrue "${COMPRESS_INITRD}"
+ then
+ set_initramfs_compression_method "${KERNEL_OUTPUTDIR}/.config"
+ fi
+ fi
# Force this on if we are using --genzimage
if isTrue "${CMD_GENZIMAGE}"
then
- print_info 1 "$(getIndent 1)>> Ensure that required kernel options for --genzimage are set..."
+ print_info 2 "$(get_indent 1)>> Ensure that required kernel options for --genzimage are set ..."
# Make sure Ext2 support is on...
- cfg_CONFIG_EXT2_FS=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_EXT2_FS")
+ local cfg_CONFIG_EXT2_FS=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_EXT2_FS")
if ! isTrue "${cfg_CONFIG_EXT2_FS}"
then
- cfg_CONFIG_EXT4_USE_FOR_EXT2=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_EXT4_USE_FOR_EXT2")
+ local cfg_CONFIG_EXT4_USE_FOR_EXT2=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_EXT4_USE_FOR_EXT2")
if ! isTrue "${cfg_CONFIG_EXT4_USE_FOR_EXT2}"
then
- cfg_CONFIG_EXT4_FS=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_EXT4_FS")
+ local cfg_CONFIG_EXT4_FS=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_EXT4_FS")
if isTrue "${cfg_CONFIG_EXT4_FS}"
then
- kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_EXT4_USE_FOR_EXT2" "y" &&
- required_kernel_options+=(CONFIG_EXT4_USE_FOR_EXT2)
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_EXT4_USE_FOR_EXT2" "y" \
+ && required_kernel_options+=( 'CONFIG_EXT4_USE_FOR_EXT2' )
else
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BLOCK" "y"
- kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_EXT2_FS" "y" &&
- required_kernel_options+=(CONFIG_EXT2_FS)
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_EXT2_FS" "y" \
+ && required_kernel_options+=( 'CONFIG_EXT2_FS' )
fi
fi
fi
fi
+ # --kernel-localversion handling
+ if [ -n "${KERNEL_LOCALVERSION}" ]
+ then
+ local cfg_CONFIG_LOCALVERSION=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_LOCALVERSION")
+ case "${KERNEL_LOCALVERSION}" in
+ UNSET)
+ print_info 2 "$(get_indent 1)>> Ensure that CONFIG_LOCALVERSION is unset ..."
+ if [ -n "${cfg_CONFIG_LOCALVERSION}" ]
+ then
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_LOCALVERSION" ""
+ fi
+ ;;
+ *)
+ print_info 2 "$(get_indent 1)>> Ensure that CONFIG_LOCALVERSION is set ..."
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_LOCALVERSION" "\"${KERNEL_LOCALVERSION}\""
+ ;;
+ esac
+ fi
+
# Do we support modules at all?
- cfg_CONFIG_MODULES=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_MODULES")
+ local cfg_CONFIG_MODULES=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_MODULES")
if isTrue "${cfg_CONFIG_MODULES}"
then
# yes, we support modules, set 'm' for new stuff.
- newcfg_setting='m'
+ local newcfg_setting='m'
# Compare the kernel module compression vs the depmod module compression support
# WARNING: if the buildhost has +XZ but the target machine has -XZ, you will get failures!
- cfg_CONFIG_MODULE_COMPRESS_GZIP=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_MODULE_COMPRESS_GZIP")
- cfg_CONFIG_MODULE_COMPRESS_XZ=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_MODULE_COMPRESS_XZ")
+ local cfg_CONFIG_MODULE_COMPRESS_GZIP=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_MODULE_COMPRESS_GZIP")
+ local cfg_CONFIG_MODULE_COMPRESS_XZ=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_MODULE_COMPRESS_XZ")
if isTrue "${cfg_CONFIG_MODULE_COMPRESS_GZIP}"
then
- depmod_GZIP=$(/sbin/depmod -V | tr ' ' '\n' | awk '/ZLIB/{print $1; exit}')
+ depmod_GZIP=$(depmod -V | tr ' ' '\n' | awk '/ZLIB/{print $1; exit}')
if [[ "${depmod_GZIP}" != "+ZLIB" ]]
then
gen_die 'depmod does not support ZLIB/GZIP, cannot build with CONFIG_MODULE_COMPRESS_GZIP'
fi
elif isTrue "${cfg_CONFIG_MODULE_COMPRESS_XZ}"
then
- depmod_XZ=$(/sbin/depmod -V | tr ' ' '\n' | awk '/XZ/{print $1; exit}')
+ depmod_XZ=$(depmod -V | tr ' ' '\n' | awk '/XZ/{print $1; exit}')
if [[ "${depmod_XZ}" != "+XZ" ]]
then
gen_die 'depmod does not support XZ, cannot build with CONFIG_MODULE_COMPRESS_XZ'
@@ -225,14 +461,14 @@ config_kernel() {
if ! isTrue "${BUILD_STATIC}"
then
- local _no_modules_support_warning="$(getIndent 1)>> Forcing --static "
+ local _no_modules_support_warning="$(get_indent 1)>> Forcing --static"
if isTrue "${BUILD_RAMDISK}" && isTrue "${RAMDISKMODULES}"
then
- _no_modules_support_warning+="and --no-ramdisk-modules "
+ _no_modules_support_warning+=" and --no-ramdisk-modules"
RAMDISKMODULES="no"
fi
- _no_modules_support_warning+="to avoid genkernel failures because kernel does NOT support modules..."
+ _no_modules_support_warning+=" to avoid genkernel failures because kernel does NOT support modules ..."
print_warning 1 "${_no_modules_support_warning}"
BUILD_STATIC="yes"
@@ -240,91 +476,209 @@ config_kernel() {
fi
# If the user has configured DM as built-in, we need to respect that.
- cfg_CONFIG_BLK_DEV_DM=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BLK_DEV_DM")
- case "$cfg_CONFIG_BLK_DEV_DM" in
+ local cfg_CONFIG_BLK_DEV_DM=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BLK_DEV_DM")
+ case "${cfg_CONFIG_BLK_DEV_DM}" in
y|m) ;; # Do nothing
*) cfg_CONFIG_BLK_DEV_DM=${newcfg_setting}
esac
+ # Make sure all modules required bcache are enabled in the kernel, if --bcache
+ if isTrue "${CMD_BCACHE}"
+ then
+ print_info 2 "$(get_indent 1)>> Ensure that required kernel options for bcache support are set ..."
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_MD" "y"
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BCACHE" "${newcfg_setting}" \
+ && required_kernel_options+=( 'CONFIG_BCACHE' )
+ fi
+
+ # Make sure all modues required for MD raid are enabled in the kernel, if --mdadm
+ if isTrue "${CMD_MDADM}"
+ then
+ print_info 2 "$(get_indent 1)>> Ensure that required kernel options for MDADM support are set ..."
+ local cfg_CONFIG_BLK_DEV_MD=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BLK_DEV_MD")
+ case "${cfg_CONFIG_BLK_DEV_MD}" in
+ y|m) ;; # Do nothing
+ *) cfg_CONFIG_BLK_DEV_MD=${newcfg_setting}
+ esac
+
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BLOCK" "y"
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_MD" "y"
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BLK_DEV_DM" "${cfg_CONFIG_BLK_DEV_DM}" \
+ && required_kernel_options+=( 'CONFIG_BLK_DEV_DM' )
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BLK_DEV_MD" "${cfg_CONFIG_BLK_DEV_MD}" \
+ && required_kernel_options+=( 'CONFIG_BLK_DEV_MD' )
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_MD_LINEAR" "${cfg_CONFIG_BLK_DEV_MD}"
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_MD_RAID0" "${cfg_CONFIG_BLK_DEV_MD}"
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_MD_RAID1" "${cfg_CONFIG_BLK_DEV_MD}"
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_MD_RAID10" "${cfg_CONFIG_BLK_DEV_MD}"
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_MD_RAID456" "${cfg_CONFIG_BLK_DEV_MD}"
+ fi
+
# Make sure lvm modules are enabled in the kernel, if --lvm
if isTrue "${CMD_LVM}"
then
- print_info 1 "$(getIndent 1)>> Ensure that required kernel options for LVM support are set..."
- cfg_CONFIG_DM_SNAPSHOT=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_SNAPSHOT")
- case "$cfg_CONFIG_DM_SNAPSHOT" in
+ print_info 2 "$(get_indent 1)>> Ensure that required kernel options for LVM support are set ..."
+ local cfg_CONFIG_DM_SNAPSHOT=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_SNAPSHOT")
+ case "${cfg_CONFIG_DM_SNAPSHOT}" in
y|m) ;; # Do nothing
*) cfg_CONFIG_DM_SNAPSHOT=${newcfg_setting}
esac
- cfg_CONFIG_DM_MIRROR=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_MIRROR")
- case "$cfg_CONFIG_DM_MIRROR" in
+ local cfg_CONFIG_DM_MIRROR=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_MIRROR")
+ case "${cfg_CONFIG_DM_MIRROR}" in
y|m) ;; # Do nothing
*) cfg_CONFIG_DM_MIRROR=${newcfg_setting}
esac
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BLOCK" "y"
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_MD" "y"
- kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BLK_DEV_DM" "${cfg_CONFIG_BLK_DEV_DM}" &&
- required_kernel_options+=(CONFIG_BLK_DEV_DM)
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BLK_DEV_DM" "${cfg_CONFIG_BLK_DEV_DM}" \
+ && required_kernel_options+=( 'CONFIG_BLK_DEV_DM' )
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_SNAPSHOT" "${cfg_CONFIG_DM_SNAPSHOT}"
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_MIRROR" "${cfg_CONFIG_DM_MIRROR}"
- kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_FILE_LOCKING" "y" &&
- required_kernel_options+=(CONFIG_FILE_LOCKING)
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_FILE_LOCKING" "y" \
+ && required_kernel_options+=( 'CONFIG_FILE_LOCKING' )
+ fi
+
+ # Make sure all modules required for cryptsetup/LUKS are enabled in the kernel, if --luks
+ if isTrue "${CMD_LUKS}"
+ then
+ print_info 2 "$(get_indent 1)>> Ensure that required kernel options for LUKS support are set ..."
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BLOCK" "y"
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CRYPTO" "y"
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_MD" "y"
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_NET" "y"
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BLK_DEV_DM" "${cfg_CONFIG_BLK_DEV_DM}" \
+ && required_kernel_options+=( 'CONFIG_BLK_DEV_DM' )
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_CRYPT" "${cfg_CONFIG_BLK_DEV_DM}" \
+ && required_kernel_options+=( 'CONFIG_DM_CRYPT' )
+
+ local cfg_CONFIG_CRYPTO_AES=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CRYPTO_AES")
+ case "${cfg_CONFIG_CRYPTO_AES}" in
+ y|m) ;; # Do nothing
+ *) cfg_CONFIG_CRYPTO_AES=${newcfg_setting}
+ esac
+
+ local cfg_CONFIG_CRYPTO_SERPENT=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CRYPTO_SERPENT")
+ case "${cfg_CONFIG_CRYPTO_SERPENT}" in
+ y|m) ;; # Do nothing
+ *) cfg_CONFIG_CRYPTO_SERPENT=${newcfg_setting}
+ esac
+
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CRYPTO_XTS" "${cfg_CONFIG_CRYPTO_AES}" \
+ && required_kernel_options+=( 'CONFIG_CRYPTO_XTS' )
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CRYPTO_SHA256" "${cfg_CONFIG_CRYPTO_AES}" \
+ && required_kernel_options+=( 'CONFIG_CRYPTO_SHA256' )
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CRYPTO_AES" "${cfg_CONFIG_CRYPTO_AES}" \
+ && required_kernel_options+=( 'CONFIG_CRYPTO_AES' )
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CRYPTO_SERPENT" "${cfg_CONFIG_CRYPTO_SERPENT}" \
+ && required_kernel_options+=( 'CONFIG_CRYPTO_SERPENT' )
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CRYPTO_USER_API_HASH" "${cfg_CONFIG_CRYPTO_AES}" \
+ && required_kernel_options+=( 'CONFIG_CRYPTO_USER_API_HASH' )
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CRYPTO_USER_API_SKCIPHER" "${cfg_CONFIG_CRYPTO_AES}" \
+ && required_kernel_options+=( 'CONFIG_CRYPTO_USER_API_SKCIPHER' )
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CRYPTO_USER_API_AEAD" "${cfg_CONFIG_CRYPTO_AES}"
+
+ local cfg_CONFIG_X86=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_X86")
+ case "${cfg_CONFIG_X86}" in
+ y|m)
+ cfg_CONFIG_X86=yes
+ ;;
+ *)
+ cfg_CONFIG_X86=no
+ ;;
+ esac
+
+ local cfg_CONFIG_64BIT=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_64BIT")
+ case "${cfg_CONFIG_64BIT}" in
+ y|m)
+ cfg_CONFIG_64BIT=yes
+ ;;
+ *)
+ cfg_CONFIG_64BIT=no
+ ;;
+ esac
+
+ if isTrue "${cfg_CONFIG_X86}"
+ then
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CRYPTO_AES_NI_INTEL" "${cfg_CONFIG_CRYPTO_AES}"
+
+ if isTrue "${cfg_CONFIG_64BIT}"
+ then
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CRYPTO_SHA1_SSSE3" "${cfg_CONFIG_CRYPTO_AES}"
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CRYPTO_SHA256_SSSE3" "${cfg_CONFIG_CRYPTO_AES}"
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CRYPTO_SERPENT_SSE2_X86_64" "${cfg_CONFIG_CRYPTO_SERPENT}"
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CRYPTO_SERPENT_AVX_X86_64" "${cfg_CONFIG_CRYPTO_SERPENT}"
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CRYPTO_SERPENT_AVX2_X86_64" "${cfg_CONFIG_CRYPTO_SERPENT}"
+
+ if [ ${KV_NUMERIC} -lt 5004 ]
+ then
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CRYPTO_AES_X86_64" "${cfg_CONFIG_CRYPTO_AES}"
+ fi
+ else
+ if [ ${KV_NUMERIC} -lt 5004 ]
+ then
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CRYPTO_AES_586" "${cfg_CONFIG_CRYPTO_AES}"
+ fi
+
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CRYPTO_SERPENT_SSE2_586" "${cfg_CONFIG_CRYPTO_SERPENT}"
+ fi
+ fi
fi
# Make sure multipath modules are enabled in the kernel, if --multipath
if isTrue "${CMD_MULTIPATH}"
then
- print_info 1 "$(getIndent 1)>> Ensure that required kernel options for multipath support are set..."
- cfg_CONFIG_DM_MULTIPATH=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_MULTIPATH")
- case "$cfg_CONFIG_DM_MULTIPATH" in
+ print_info 2 "$(get_indent 1)>> Ensure that required kernel options for multipath support are set ..."
+ local cfg_CONFIG_DM_MULTIPATH=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_MULTIPATH")
+ case "${cfg_CONFIG_DM_MULTIPATH}" in
y|m) ;; # Do nothing
*) cfg_CONFIG_DM_MULTIPATH=${newcfg_setting}
esac
- cfg_CONFIG_DM_MULTIPATH_RDAC=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_MULTIPATH_RDAC")
- case "$cfg_CONFIG_DM_MULTIPATH_RDAC" in
+ local cfg_CONFIG_DM_MULTIPATH_RDAC=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_MULTIPATH_RDAC")
+ case "${cfg_CONFIG_DM_MULTIPATH_RDAC}" in
y|m) ;; # Do nothing
*) cfg_CONFIG_DM_MULTIPATH_RDAC=${newcfg_setting}
esac
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BLOCK" "y"
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_MD" "y"
- kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BLK_DEV_DM" "${cfg_CONFIG_BLK_DEV_DM}" &&
- required_kernel_options+=(CONFIG_BLK_DEV_DM)
- kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_MULTIPATH" "${cfg_CONFIG_DM_MULTIPATH}" &&
- required_kernel_options+=(CONFIG_DM_MULTIPATH)
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BLK_DEV_DM" "${cfg_CONFIG_BLK_DEV_DM}" \
+ && required_kernel_options+=( 'CONFIG_BLK_DEV_DM' )
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_MULTIPATH" "${cfg_CONFIG_DM_MULTIPATH}" \
+ && required_kernel_options+=( 'CONFIG_DM_MULTIPATH' )
fi
# Make sure dmraid modules are enabled in the kernel, if --dmraid
if isTrue "${CMD_DMRAID}"
then
- print_info 1 "$(getIndent 1)>> Ensure that required kernel options for DMRAID support are set..."
+ print_info 2 "$(get_indent 1)>> Ensure that required kernel options for DMRAID support are set ..."
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BLOCK" "y"
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_MD" "y"
- kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BLK_DEV_DM" "${cfg_CONFIG_BLK_DEV_DM}" &&
- required_kernel_options+=(CONFIG_BLK_DEV_DM)
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BLK_DEV_DM" "${cfg_CONFIG_BLK_DEV_DM}" \
+ && required_kernel_options+=( 'CONFIG_BLK_DEV_DM' )
fi
# Make sure iSCSI modules are enabled in the kernel, if --iscsi
if isTrue "${CMD_ISCSI}"
then
- print_info 1 "$(getIndent 1)>> Ensure that required kernel options for iSCSI support are set..."
- cfg_CONFIG_ISCSI_BOOT_SYSFS=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_ISCSI_BOOT_SYSFS")
- case "$cfg_CONFIG_ISCSI_BOOT_SYSFS" in
+ print_info 2 "$(get_indent 1)>> Ensure that required kernel options for iSCSI support are set ..."
+ local cfg_CONFIG_ISCSI_BOOT_SYSFS=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_ISCSI_BOOT_SYSFS")
+ case "${cfg_CONFIG_ISCSI_BOOT_SYSFS}" in
y|m) ;; # Do nothing
*) cfg_CONFIG_ISCSI_BOOT_SYSFS=${newcfg_setting}
esac
- cfg_CONFIG_ISCSI_TCP=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_ISCSI_TCP")
- case "$cfg_CONFIG_ISCSI_TCP" in
+ local cfg_CONFIG_ISCSI_TCP=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_ISCSI_TCP")
+ case "${cfg_CONFIG_ISCSI_TCP}" in
y|m) ;; # Do nothing
*) cfg_CONFIG_ISCSI_TCP=${newcfg_setting}
esac
- cfg_CONFIG_SCSI_ISCSI_ATTRS=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_SCSI_ISCSI_ATTRS")
- case "$cfg_CONFIG_SCSI_ISCSI_ATTRS" in
+ local cfg_CONFIG_SCSI_ISCSI_ATTRS=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_SCSI_ISCSI_ATTRS")
+ case "${cfg_CONFIG_SCSI_ISCSI_ATTRS}" in
y|m) ;; # Do nothing
*) cfg_CONFIG_SCSI_ISCSI_ATTRS=${newcfg_setting}
esac
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_NET" "y"
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_INET" "y"
- cfg_CONFIG_SCSI=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_SCSI")
+ local cfg_CONFIG_SCSI=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_SCSI")
case "${cfg_CONFIG_SCSI}" in
y|m) ;; # Do nothing
*) cfg_CONFIG_SCSI=${newcfg_setting}
@@ -332,18 +686,18 @@ config_kernel() {
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_SCSI" "${cfg_CONFIG_SCSI}"
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_SCSI_LOWLEVEL" "y"
- kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_ISCSI_BOOT_SYSFS" "${cfg_CONFIG_ISCSI_BOOT_SYSFS}" &&
- required_kernel_options+=(CONFIG_ISCSI_BOOT_SYSFS)
- kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_ISCSI_TCP" "${cfg_CONFIG_ISCSI_TCP}" &&
- required_kernel_options+=(CONFIG_ISCSI_TCP)
- kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_SCSI_ISCSI_ATTRS" "${cfg_CONFIG_SCSI_ISCSI_ATTRS}" &&
- required_kernel_options+=(CONFIG_SCSI_ISCSI_ATTRS)
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_ISCSI_BOOT_SYSFS" "${cfg_CONFIG_ISCSI_BOOT_SYSFS}" \
+ && required_kernel_options+=( 'CONFIG_ISCSI_BOOT_SYSFS' )
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_ISCSI_TCP" "${cfg_CONFIG_ISCSI_TCP}" \
+ && required_kernel_options+=( 'CONFIG_ISCSI_TCP' )
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_SCSI_ISCSI_ATTRS" "${cfg_CONFIG_SCSI_ISCSI_ATTRS}" \
+ && required_kernel_options+=( 'CONFIG_SCSI_ISCSI_ATTRS' )
fi
# Make sure Hyper-V modules are enabled in the kernel, if --hyperv
if isTrue "${CMD_HYPERV}"
then
- print_info 1 "$(getIndent 1)>> Ensure that required kernel options for Hyper-V support are set..."
+ print_info 2 "$(get_indent 1)>> Ensure that required kernel options for Hyper-V support are set ..."
# Hyper-V deps
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_X86" "y"
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_PCI" "y"
@@ -352,21 +706,21 @@ config_kernel() {
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_HYPERVISOR_GUEST" "y"
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_NET" "y"
- cfg_CONFIG_CONNECTOR=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CONNECTOR")
+ local cfg_CONFIG_CONNECTOR=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CONNECTOR")
case "${cfg_CONFIG_CONNECTOR}" in
y|m) ;; # Do nothing
*) cfg_CONFIG_CONNECTOR=${newcfg_setting}
esac
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CONNECTOR" "${cfg_CONFIG_CONNECTOR}"
- cfg_CONFIG_NLS=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_NLS")
+ local cfg_CONFIG_NLS=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_NLS")
case "${cfg_CONFIG_NLS}" in
y|m) ;; # Do nothing
*) cfg_CONFIG_NLS=${newcfg_setting}
esac
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_NLS" "${cfg_CONFIG_NLS}"
- cfg_CONFIG_SCSI=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_SCSI")
+ local cfg_CONFIG_SCSI=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_SCSI")
case "${cfg_CONFIG_SCSI}" in
y|m) ;; # Do nothing
*) cfg_CONFIG_SCSI=${newcfg_setting}
@@ -374,7 +728,7 @@ config_kernel() {
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_SCSI" "${cfg_CONFIG_SCSI}"
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_SCSI_LOWLEVEL" "y"
- cfg_CONFIG_SCSI_FC_ATTRS=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_SCSI_FC_ATTRS")
+ local cfg_CONFIG_SCSI_FC_ATTRS=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_SCSI_FC_ATTRS")
case "${cfg_CONFIG_SCSI_FC_ATTRS}" in
y|m) ;; # Do nothing
*) cfg_CONFIG_SCSI_FC_ATTRS=${newcfg_setting}
@@ -383,7 +737,7 @@ config_kernel() {
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_NETDEVICES" "y"
- cfg_CONFIG_SERIO=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_SERIO")
+ local cfg_CONFIG_SERIO=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_SERIO")
case "${cfg_CONFIG_SERIO}" in
y|m) ;; # Do nothing
*) cfg_CONFIG_SERIO=${newcfg_setting}
@@ -395,28 +749,28 @@ config_kernel() {
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_X86_64" "y"
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_HAS_IOMEM" "y"
- cfg_CONFIG_FB=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_FB")
+ local cfg_CONFIG_FB=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_FB")
case "${cfg_CONFIG_FB}" in
y|m) ;; # Do nothing
*) cfg_CONFIG_FB=${newcfg_setting}
esac
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_FB" "${cfg_CONFIG_FB}"
- cfg_CONFIG_INPUT=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_INPUT")
+ local cfg_CONFIG_INPUT=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_INPUT")
case "${cfg_CONFIG_INPUT}" in
y|m) ;; # Do nothing
*) cfg_CONFIG_INPUT=${newcfg_setting}
esac
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_INPUT" "${cfg_CONFIG_INPUT}"
- cfg_CONFIG_HID=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_HID")
+ local cfg_CONFIG_HID=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_HID")
case "${cfg_CONFIG_HID}" in
y|m) ;; # Do nothing
*) cfg_CONFIG_HID=${newcfg_setting}
esac
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_HID" "${cfg_CONFIG_HID}"
- cfg_CONFIG_UIO=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_UIO")
+ local cfg_CONFIG_UIO=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_UIO")
case "${cfg_CONFIG_UIO}" in
y|m) ;; # Do nothing
*) cfg_CONFIG_UIO=${newcfg_setting}
@@ -424,25 +778,25 @@ config_kernel() {
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_UIO" "${cfg_CONFIG_UIO}"
# Hyper-V modules, activate in order!
- cfg_CONFIG_HYPERV=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_HYPERV")
- case "$cfg_CONFIG_HYPERV" in
+ local cfg_CONFIG_HYPERV=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_HYPERV")
+ case "${cfg_CONFIG_HYPERV}" in
y|m) ;; # Do nothing
*) cfg_CONFIG_HYPERV=${newcfg_setting}
esac
- kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_HYPERV" "${cfg_CONFIG_HYPERV}" &&
- required_kernel_options+=(CONFIG_HYPERV)
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_HYPERV" "${cfg_CONFIG_HYPERV}" \
+ && required_kernel_options+=( 'CONFIG_HYPERV' )
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_HYPERV_UTILS" "${cfg_CONFIG_HYPERV}"
- kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_HYPERV_BALLOON" "${cfg_CONFIG_HYPERV}" &&
- required_kernel_options+=(CONFIG_HYPERV_BALLOON)
- kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_HYPERV_STORAGE" "${cfg_CONFIG_HYPERV}" &&
- required_kernel_options+=(CONFIG_HYPERV_STORAGE)
- kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_HYPERV_NET" "${cfg_CONFIG_HYPERV}" &&
- required_kernel_options+=(CONFIG_HYPERV_NET)
-
- if [ $(($KV_MAJOR * 1000 + ${KV_MINOR})) -ge 4014 ]
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_HYPERV_BALLOON" "${cfg_CONFIG_HYPERV}" \
+ && required_kernel_options+=( 'CONFIG_HYPERV_BALLOON' )
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_HYPERV_STORAGE" "${cfg_CONFIG_HYPERV}" \
+ && required_kernel_options+=( 'CONFIG_HYPERV_STORAGE' )
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_HYPERV_NET" "${cfg_CONFIG_HYPERV}" \
+ && required_kernel_options+=( 'CONFIG_HYPERV_NET' )
+
+ if [ ${KV_NUMERIC} -ge 4014 ]
then
- cfg_CONFIG_VSOCKETS=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_VSOCKETS")
+ local cfg_CONFIG_VSOCKETS=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_VSOCKETS")
case "${cfg_CONFIG_VSOCKETS}" in
y|m) ;; # Do nothing
*) cfg_CONFIG_VSOCKETS=${newcfg_setting}
@@ -454,23 +808,23 @@ config_kernel() {
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_HYPERV_KEYBOARD" "${cfg_CONFIG_HYPERV}"
- [ $(($KV_MAJOR * 1000 + ${KV_MINOR})) -ge 4006 ] &&
+ [ ${KV_NUMERIC} -ge 4006 ] &&
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_PCI_HYPERV" "${cfg_CONFIG_HYPERV}"
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_FB_HYPERV" "${cfg_CONFIG_HYPERV}"
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_HID_HYPERV_MOUSE" "${cfg_CONFIG_HYPERV}"
- [ $(($KV_MAJOR * 1000 + ${KV_MINOR})) -ge 4010 ] &&
+ [ ${KV_NUMERIC} -ge 4010 ] &&
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_UIO_HV_GENERIC" "${cfg_CONFIG_HYPERV}"
- [ $(($KV_MAJOR * 1000 + ${KV_MINOR})) -ge 4012 ] &&
+ [ ${KV_NUMERIC} -ge 4012 ] &&
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_HYPERV_TSCPAGE" "y"
fi
# Make sure kernel supports Splash, if --splash
if isTrue "${SPLASH}"
then
- print_info 1 "$(getIndent 1)>> Ensure that required kernel options for Splash support are set..."
+ print_info 2 "$(get_indent 1)>> Ensure that required kernel options for Splash support are set ..."
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_FB_SPLASH" "y"
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_VT" "y"
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_TTY" "y"
@@ -482,7 +836,7 @@ config_kernel() {
# Make sure VirtIO modules are enabled in the kernel, if --virtio
if isTrue "${CMD_VIRTIO}"
then
- print_info 1 "$(getIndent 1)>> Ensure that required kernel options for VirtIO support are set..."
+ print_info 2 "$(get_indent 1)>> Ensure that required kernel options for VirtIO support are set ..."
# VirtIO deps
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BLOCK" "y"
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CRYPTO" "y"
@@ -500,7 +854,7 @@ config_kernel() {
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_SYSFS" "y"
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_HAS_IOPORT_MAP" "y"
- cfg_CONFIG_SCSI=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_SCSI")
+ local cfg_CONFIG_SCSI=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_SCSI")
case "${cfg_CONFIG_SCSI}" in
y|m) ;; # Do nothing
*) cfg_CONFIG_SCSI=${newcfg_setting}
@@ -508,37 +862,37 @@ config_kernel() {
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_SCSI" "${cfg_CONFIG_SCSI}"
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_SCSI_LOWLEVEL" "y"
- cfg_CONFIG_DRM=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DRM")
+ local cfg_CONFIG_DRM=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DRM")
case "${cfg_CONFIG_DRM}" in
y|m) ;; # Do nothing
*) cfg_CONFIG_DRM=${newcfg_setting}
esac
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DRM" "${cfg_CONFIG_DRM}"
- cfg_CONFIG_HW_RANDOM=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_HW_RANDOM")
+ local cfg_CONFIG_HW_RANDOM=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_HW_RANDOM")
case "${cfg_CONFIG_HW_RANDOM}" in
y|m) ;; # Do nothing
*) cfg_CONFIG_HW_RANDOM=${newcfg_setting}
esac
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_HW_RANDOM" "${cfg_CONFIG_HW_RANDOM}"
- cfg_CONFIG_INPUT=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_INPUT")
+ local cfg_CONFIG_INPUT=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_INPUT")
case "${cfg_CONFIG_INPUT}" in
y|m) ;; # Do nothing
*) cfg_CONFIG_INPUT=${newcfg_setting}
esac
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_INPUT" "${cfg_CONFIG_INPUT}"
- cfg_CONFIG_VHOST_NET=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_VHOST_NET")
+ local cfg_CONFIG_VHOST_NET=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_VHOST_NET")
case "${cfg_CONFIG_VHOST_NET}" in
y|m) ;; # Do nothing
*) cfg_CONFIG_VHOST_NET=${newcfg_setting}
esac
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_VHOST_NET" "${cfg_CONFIG_VHOST_NET}"
- if [ $(($KV_MAJOR * 1000 + ${KV_MINOR})) -ge 4006 ]
+ if [ ${KV_NUMERIC} -ge 4006 ]
then
- cfg_CONFIG_FW_CFG_SYSFS=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_FW_CFG_SYSFS")
+ local cfg_CONFIG_FW_CFG_SYSFS=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_FW_CFG_SYSFS")
case "${cfg_CONFIG_FW_CFG_SYSFS}" in
y|m) ;; # Do nothing
*) cfg_CONFIG_FW_CFG_SYSFS=${newcfg_setting}
@@ -546,11 +900,11 @@ config_kernel() {
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_FW_CFG_SYSFS" "${cfg_CONFIG_FW_CFG_SYSFS}"
fi
- cfg_CONFIG_VIRTIO=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_VIRTIO")
- cfg_CONFIG_SCSI_VIRTIO=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_SCSI_VIRTIO")
- cfg_CONFIG_VIRTIO_BLK=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_VIRTIO_BLK")
- cfg_CONFIG_VIRTIO_NET=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_VIRTIO_NET")
- cfg_CONFIG_VIRTIO_PCI=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_VIRTIO_PCI")
+ local cfg_CONFIG_VIRTIO=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_VIRTIO")
+ local cfg_CONFIG_SCSI_VIRTIO=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_SCSI_VIRTIO")
+ local cfg_CONFIG_VIRTIO_BLK=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_VIRTIO_BLK")
+ local cfg_CONFIG_VIRTIO_NET=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_VIRTIO_NET")
+ local cfg_CONFIG_VIRTIO_PCI=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_VIRTIO_PCI")
if \
isTrue "${cfg_CONFIG_VIRTIO}" || \
isTrue "${cfg_CONFIG_SCSI_VIRTIO}" || \
@@ -559,24 +913,24 @@ config_kernel() {
isTrue "${cfg_CONFIG_VIRTIO_PCI}"
then
# If the user has configured VirtIO as built-in, we need to respect that.
- newvirtio_setting="y"
+ local newvirtio_setting="y"
else
- newvirtio_setting=${newcfg_setting}
+ local newvirtio_setting=${newcfg_setting}
fi
# VirtIO modules, activate in order!
- kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_VIRTIO" "${newvirtio_setting}" &&
- required_kernel_options+=(CONFIG_VIRTIO)
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_VIRTIO" "${newvirtio_setting}" \
+ && required_kernel_options+=( 'CONFIG_VIRTIO' )
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_VIRTIO_MENU" "y"
- kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_SCSI_VIRTIO" "${newvirtio_setting}" &&
- required_kernel_options+=(CONFIG_SCSI_VIRTIO)
- kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_VIRTIO_BLK" "${newvirtio_setting}" &&
- required_kernel_options+=(CONFIG_VIRTIO_BLK)
- kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_VIRTIO_NET" "${newvirtio_setting}" &&
- required_kernel_options+=(CONFIG_VIRTIO_NET)
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_SCSI_VIRTIO" "${newvirtio_setting}" \
+ && required_kernel_options+=( 'CONFIG_SCSI_VIRTIO' )
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_VIRTIO_BLK" "${newvirtio_setting}" \
+ && required_kernel_options+=( 'CONFIG_VIRTIO_BLK' )
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_VIRTIO_NET" "${newvirtio_setting}" \
+ && required_kernel_options+=( 'CONFIG_VIRTIO_NET' )
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_VIRTIO_PCI" "${newvirtio_setting}"
- if [ $(($KV_MAJOR * 1000 + ${KV_MINOR})) -ge 4011 ]
+ if [ ${KV_NUMERIC} -ge 4011 ]
then
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_VIRTIO_BLK_SCSI" "y"
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BLK_MQ_VIRTIO" "y"
@@ -590,9 +944,12 @@ config_kernel() {
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_VIRTIO_MMIO" "${newvirtio_setting}"
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES" "y"
- if [ $(($KV_MAJOR * 1000 + ${KV_MINOR})) -ge 4008 ]
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_NET_9P" "${newvirtio_setting}"
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_NET_9P_VIRTIO" "${newvirtio_setting}"
+
+ if [ ${KV_NUMERIC} -ge 4008 ]
then
- cfg_CONFIG_VSOCKETS=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_VSOCKETS")
+ local cfg_CONFIG_VSOCKETS=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_VSOCKETS")
case "${cfg_CONFIG_VSOCKETS}" in
y|m) ;; # Do nothing
*) cfg_CONFIG_VSOCKETS=${newcfg_setting}
@@ -603,62 +960,111 @@ config_kernel() {
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_VIRTIO_VSOCKETS_COMMON" "${newvirtio_setting}"
fi
- [ $(($KV_MAJOR * 1000 + ${KV_MINOR})) -ge 4010 ] &&
+ [ ${KV_NUMERIC} -ge 4010 ] &&
kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CRYPTO_DEV_VIRTIO" "${newvirtio_setting}"
+
+ if [ ${KV_NUMERIC} -ge 5004 ]
+ then
+ local cfg_CONFIG_FUSE_FS=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_FUSE_FS")
+ case "${cfg_CONFIG_FUSE_FS}" in
+ y|m) ;; # Do nothing
+ *) cfg_CONFIG_FUSE_FS=${newvirtio_setting}
+ esac
+
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_FUSE_FS" "${cfg_CONFIG_FUSE_FS}"
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_VIRTIO_FS" "${cfg_CONFIG_FUSE_FS}"
+ fi
fi
# Microcode setting, intended for early microcode loading, if --microcode
if [[ -n "${MICROCODE}" ]]
then
- print_info 1 "$(getIndent 1)>> Ensure that required kernel options for early microcode loading support are set..."
- kconfig_microcode_intel=(CONFIG_MICROCODE_INTEL CONFIG_MICROCODE_INTEL_EARLY)
-
- kconfig_microcode_amd=(CONFIG_MICROCODE_AMD)
- [ $(($KV_MAJOR * 1000 + ${KV_MINOR})) -le 4003 ] && kconfig_microcode_amd+=(CONFIG_MICROCODE_AMD_EARLY)
-
- kconfigs=(CONFIG_MICROCODE CONFIG_MICROCODE_OLD_INTERFACE)
- [ $(($KV_MAJOR * 1000 + ${KV_MINOR})) -le 4003 ] && kconfigs+=(CONFIG_MICROCODE_EARLY)
-
- [[ "$MICROCODE" == all ]] && kconfigs+=( ${kconfig_microcode_amd[@]} ${kconfig_microcode_intel[@]} )
- [[ "$MICROCODE" == amd ]] && kconfigs+=( ${kconfig_microcode_amd[@]} )
- [[ "$MICROCODE" == intel ]] && kconfigs+=( ${kconfig_microcode_intel[@]} )
-
- for k in "${kconfigs[@]}"
- do
- cfg=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "$k")
- case "$cfg" in
- y) ;; # Do nothing
- *) cfg='y'
+ if isTrue "${KERNEL_SUPPORT_MICROCODE}"
+ then
+ local -a kconfigs_microcode
+ local -a kconfigs_microcode_amd
+ local -a kconfigs_microcode_intel
+
+ print_info 2 "$(get_indent 1)>> Ensure that required kernel options for early microcode loading support are set ..."
+ kconfigs_microcode+=( 'CONFIG_MICROCODE' )
+ [ ${KV_NUMERIC} -le 4003 ] && kconfigs_microcode+=( 'CONFIG_MICROCODE_OLD_INTERFACE' )
+ [ ${KV_NUMERIC} -le 4003 ] && kconfigs_microcode+=( 'CONFIG_MICROCODE_EARLY' )
+
+ # Intel
+ [ ${KV_NUMERIC} -ge 6006 ] && kconfigs_microcode_intel+=( 'CONFIG_CPU_SUP_INTEL' )
+ [ ${KV_NUMERIC} -lt 6006 ] && kconfigs_microcode_intel+=( 'CONFIG_MICROCODE_INTEL' )
+ [ ${KV_NUMERIC} -le 4003 ] && kconfigs_microcode_intel+=( 'CONFIG_MICROCODE_INTEL_EARLY' )
+
+ # AMD
+ [ ${KV_NUMERIC} -ge 6006 ] && kconfigs_microcode_amd+=( 'CONFIG_CPU_SUP_AMD' )
+ [ ${KV_NUMERIC} -lt 6006 ] && kconfigs_microcode_amd+=( 'CONFIG_MICROCODE_AMD' )
+ [ ${KV_NUMERIC} -le 4003 ] && kconfigs_microcode_amd+=( 'CONFIG_MICROCODE_AMD_EARLY' )
+
+ [[ "${MICROCODE}" == all ]] && kconfigs_microcode+=( ${kconfigs_microcode_amd[@]} ${kconfigs_microcode_intel[@]} )
+ [[ "${MICROCODE}" == amd ]] && kconfigs_microcode+=( ${kconfigs_microcode_amd[@]} )
+ [[ "${MICROCODE}" == intel ]] && kconfigs_microcode+=( ${kconfigs_microcode_intel[@]} )
+
+ local k
+ for k in "${kconfigs_microcode[@]}"
+ do
+ local cfg=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "${k}")
+ case "${cfg}" in
+ y) ;; # Do nothing
+ *) cfg='y'
+ esac
+ kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "${k}" "${cfg}"
+ done
+
+ required_kernel_options+=( 'CONFIG_MICROCODE' )
+ case "${MICROCODE}" in
+ amd)
+ [ ${KV_NUMERIC} -ge 6006 ] && required_kernel_options+=( 'CONFIG_CPU_SUP_AMD' )
+ [ ${KV_NUMERIC} -lt 6006 ] && required_kernel_options+=( 'CONFIG_MICROCODE_AMD' )
+ ;;
+ intel)
+ [ ${KV_NUMERIC} -ge 6006 ] && required_kernel_options+=( 'CONFIG_CPU_SUP_INTEL' )
+ [ ${KV_NUMERIC} -lt 6006 ] && required_kernel_options+=( 'CONFIG_MICROCODE_INTEL' )
+ ;;
+ all)
+ [ ${KV_NUMERIC} -ge 6006 ] && required_kernel_options+=( 'CONFIG_CPU_SUP_AMD' 'CONFIG_CPU_SUP_INTEL' )
+ [ ${KV_NUMERIC} -lt 6006 ] && required_kernel_options+=( 'CONFIG_MICROCODE_AMD' 'CONFIG_MICROCODE_INTEL' )
+ ;;
esac
- kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "$k" "${cfg}"
- done
-
- required_kernel_options+=(CONFIG_MICROCODE)
+ else
+ print_info 1 "$(get_indent 1)>> Ignoring --microcode parameter; Architecture does not support microcode loading ..."
+ fi
fi
- if [ -f "${TEMP}/.kconfig_modified" ]
+ if [ -f "${KCONFIG_MODIFIED_MARKER}" ]
then
if isTrue "${OLDCONFIG}"
then
- print_info 1 "$(getIndent 1)>> Re-running oldconfig due to changed kernel options..."
+ print_info 1 "$(get_indent 1)>> Re-running 'make oldconfig' due to changed kernel options ..."
yes '' 2>/dev/null | compile_generic oldconfig kernel 2>/dev/null
else
- print_info 1 "$(getIndent 1)>> Running olddefconfig due to changed kernel options..."
+ print_info 1 "$(get_indent 1)>> Running 'make olddefconfig' due to changed kernel options ..."
compile_generic olddefconfig kernel 2>/dev/null
fi
- else
- print_info 2 "$(getIndent 1)>> genkernel did not need to add/modify any kernel options."
- fi
- print_info 2 "$(getIndent 1)>> checking for required kernel options..."
- for required_kernel_option in "${required_kernel_options[@]}"
- do
- optval=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "${required_kernel_option}")
- if [ -z "${optval}" ]
+ if [ -f "${KCONFIG_REQUIRED_OPTIONS}" ]
then
- gen_die "something went wrong: Required kernel option '${required_kernel_option}' which genkernel tried to set is missing!"
- else
- print_info 2 "$(getIndent 2) - '${required_kernel_option}' is set to '${optval}'"
+ # Pick up required options from other functions
+ required_kernel_options+=( $(cat "${KCONFIG_REQUIRED_OPTIONS}" | sort -u) )
fi
- done
+
+ print_info 2 "$(get_indent 1)>> Checking if required kernel options are still present ..."
+ local required_kernel_option=
+ for required_kernel_option in "${required_kernel_options[@]}"
+ do
+ local optval=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "${required_kernel_option}")
+ if [ -z "${optval}" ]
+ then
+ gen_die "Something went wrong: Required kernel option '${required_kernel_option}' which genkernel tried to set is missing!"
+ else
+ print_info 3 "$(get_indent 2) - '${required_kernel_option}' is set to '${optval}'"
+ fi
+ done
+ else
+ print_info 2 "$(get_indent 1)>> genkernel did not need to add/modify any kernel options."
+ fi
}
diff --git a/gen_determineargs.sh b/gen_determineargs.sh
index 4ce2dc0..d29ad48 100755
--- a/gen_determineargs.sh
+++ b/gen_determineargs.sh
@@ -1,20 +1,57 @@
#!/bin/bash
# $Id$
+determine_KEXT() {
+ local kconfig_file_used="${KERNEL_CONFIG}"
+ if isTrue "${BUILD_KERNEL}"
+ then
+ kconfig_file_used="${KERNEL_OUTPUTDIR}/.config"
+ fi
+
+ KEXT='.ko'
+
+ declare -A module_compression_algorithms=()
+ module_compression_algorithms[NONE]='.ko'
+ module_compression_algorithms[GZIP]='.ko.gz'
+ module_compression_algorithms[XZ]='.ko.xz'
+ module_compression_algorithms[ZSTD]='.ko.zst'
+
+ local module_compression_algorithm
+ for module_compression_algorithm in "${!module_compression_algorithms[@]}"
+ do
+ print_info 5 "Checking if module compression algorithm '${module_compression_algorithm}' is being used ..."
+
+ local koption="CONFIG_MODULE_COMPRESS_${module_compression_algorithm}"
+ local value_koption=$(kconfig_get_opt "${kconfig_file_used}" "${koption}")
+ if [[ "${value_koption}" != "y" ]]
+ then
+ print_info 5 "Cannot use '${module_compression_algorithm}' algorithm for module compression, kernel option '${koption}' is not set!"
+ continue
+ fi
+
+ print_info 5 "Will use '${module_compression_algorithm}' algorithm for kernel module compression!"
+ KEXT="${module_compression_algorithms[${module_compression_algorithm}]}"
+ break
+ done
+ unset module_compression_algorithms module_compression_algorithm koption value_koption
+}
+
determine_KV() {
local old_KV=
[ -n "${KV}" ] && old_KV="${KV}"
if ! isTrue "${KERNEL_SOURCES}" && [ -e "${KERNCACHE}" ]
then
- /bin/tar -x -C ${TEMP} -f ${KERNCACHE} kerncache.config
- if [ -e ${TEMP}/kerncache.config ]
+ "${TAR_COMMAND}" -x -C "${TEMP}" -f "${KERNCACHE}" kerncache.config \
+ || gen_die "Failed to extract 'kerncache.config' from '${KERNCACHE}' to '${TEMP}'!"
+
+ if [ -e "${TEMP}/kerncache.config" ]
then
- VER=`grep ^VERSION\ \= ${TEMP}/kerncache.config | awk '{ print $3 };'`
- PAT=`grep ^PATCHLEVEL\ \= ${TEMP}/kerncache.config | awk '{ print $3 };'`
- SUB=`grep ^SUBLEVEL\ \= ${TEMP}/kerncache.config | awk '{ print $3 };'`
- EXV=`grep ^EXTRAVERSION\ \= ${TEMP}/kerncache.config | sed -e "s/EXTRAVERSION =//" -e "s/ //g"`
- LOV=`grep ^CONFIG_LOCALVERSION\= ${TEMP}/kerncache.config | sed -e "s/CONFIG_LOCALVERSION=\"\(.*\)\"/\1/"`
+ VER=$(grep ^VERSION\ \= "${TEMP}"/kerncache.config | awk '{ print $3 };')
+ PAT=$(grep ^PATCHLEVEL\ \= "${TEMP}"/kerncache.config | awk '{ print $3 };')
+ SUB=$(grep ^SUBLEVEL\ \= "${TEMP}"/kerncache.config | awk '{ print $3 };')
+ EXV=$(grep ^EXTRAVERSION\ \= "${TEMP}"/kerncache.config | sed -e "s/EXTRAVERSION =//" -e "s/ //g")
+ LOV=$(grep ^CONFIG_LOCALVERSION\ \= "${TEMP}"/kerncache.config | sed -e "s/CONFIG_LOCALVERSION=\"\(.*\)\"/\1/")
KV=${VER}.${PAT}.${SUB}${EXV}${LOV}
else
gen_die "Could not find kerncache.config in the kernel cache! Exiting."
@@ -28,10 +65,10 @@ determine_KV() {
gen_die "Kernel Makefile (${KERNEL_DIR}/Makefile) missing. Maybe re-install the kernel sources."
fi
- VER=`grep ^VERSION\ \= ${KERNEL_DIR}/Makefile | awk '{ print $3 };'`
- PAT=`grep ^PATCHLEVEL\ \= ${KERNEL_DIR}/Makefile | awk '{ print $3 };'`
- SUB=`grep ^SUBLEVEL\ \= ${KERNEL_DIR}/Makefile | awk '{ print $3 };'`
- EXV=`grep ^EXTRAVERSION\ \= ${KERNEL_DIR}/Makefile | sed -e "s/EXTRAVERSION =//" -e "s/ //g" -e 's/\$([a-z]*)//gi'`
+ VER=$(grep ^VERSION\ \= ${KERNEL_DIR}/Makefile | awk '{ print $3 };')
+ PAT=$(grep ^PATCHLEVEL\ \= ${KERNEL_DIR}/Makefile | awk '{ print $3 };')
+ SUB=$(grep ^SUBLEVEL\ \= ${KERNEL_DIR}/Makefile | awk '{ print $3 };')
+ EXV=$(grep ^EXTRAVERSION\ \= ${KERNEL_DIR}/Makefile | sed -e "s/EXTRAVERSION =//" -e "s/ //g" -e 's/\$([a-z]*)//gi')
# The files we are looking for are always in KERNEL_OUTPUTDIR
# because in most cases, KERNEL_OUTPUTDIR == KERNEL_DIR.
@@ -42,31 +79,37 @@ determine_KV() {
[ -f "${KERNEL_OUTPUTDIR}/include/linux/utsrelease.h" ] && \
VERSION_SOURCE="${KERNEL_OUTPUTDIR}/include/linux/utsrelease.h"
# Handle new-style releases where version.h doesn't have UTS_RELEASE
- if [ -f ${KERNEL_OUTPUTDIR}/include/config/kernel.release ]
+ if [ -f "${KERNEL_OUTPUTDIR}/include/config/kernel.release" ]
then
- print_info 3 "Using '${KERNEL_OUTPUTDIR}/include/config/kernel.release' to extract LOCALVERSION..."
- UTS_RELEASE=`cat ${KERNEL_OUTPUTDIR}/include/config/kernel.release`
- LOV=`echo ${UTS_RELEASE}|sed -e "s/${VER}.${PAT}.${SUB}${EXV}//"`
+ print_info 3 "Using '${KERNEL_OUTPUTDIR}/include/config/kernel.release' to extract LOCALVERSION ..."
+ UTS_RELEASE=$(cat "${KERNEL_OUTPUTDIR}/include/config/kernel.release")
+ LOV=$(echo ${UTS_RELEASE}|sed -e "s/${VER}.${PAT}.${SUB}${EXV}//")
KV=${VER}.${PAT}.${SUB}${EXV}${LOV}
elif [ -n "${VERSION_SOURCE}" ]
then
- print_info 3 "Using '${VERSION_SOURCE}' to extract LOCALVERSION..."
- UTS_RELEASE=`grep UTS_RELEASE ${VERSION_SOURCE} | sed -e 's/#define UTS_RELEASE "\(.*\)"/\1/'`
- LOV=`echo ${UTS_RELEASE}|sed -e "s/${VER}.${PAT}.${SUB}${EXV}//"`
+ print_info 3 "Using '${VERSION_SOURCE}' to extract LOCALVERSION ..."
+ UTS_RELEASE=$(grep UTS_RELEASE ${VERSION_SOURCE} | sed -e 's/#define UTS_RELEASE "\(.*\)"/\1/')
+ LOV=$(echo ${UTS_RELEASE}|sed -e "s/${VER}.${PAT}.${SUB}${EXV}//")
KV=${VER}.${PAT}.${SUB}${EXV}${LOV}
else
# We will be here only when currently selected kernel source
- # is untouched. I.e. after a new kernel sources version was installed
- # and genkernel was called for the first time.
- # However, we have no chance to get a LOCALVERSION,
- # so don't even try -- it would be useless at this stage.
- print_info 3 "Unable to determine LOCALVERSION -- maybe fresh sources?"
+ # is untouched (i.e. after a new kernel sources version was
+ # installed and will now be used for the first time) or
+ # was cleaned.
+ # Anyway, we have no chance to get a LOCALVERSION,
+ # so don't even try -- it would be also useless at this stage.
+ # Note: If we are building a kernel in this genkernel run and
+ # LOCALVERSION will become available later due to
+ # changed configuration we will notice after we have
+ # prepared the sources.
+ print_info 3 "Unable to determine LOCALVERSION -- maybe cleaned/fresh sources?"
KV=${VER}.${PAT}.${SUB}${EXV}
fi
fi
- KV_MAJOR=$(echo $KV | cut -f1 -d.)
- KV_MINOR=$(echo $KV | cut -f2 -d.)
+ KV_MAJOR=$(echo ${KV} | cut -f1 -d.)
+ KV_MINOR=$(echo ${KV} | cut -f2 -d.)
+ KV_NUMERIC=$((${KV_MAJOR} * 1000 + ${KV_MINOR}))
if [ -n "${old_KV}" -a "${KV}" != "${old_KV}" ]
then
@@ -76,129 +119,663 @@ determine_KV() {
fi
}
+determine_output_filenames() {
+ print_info 5 '' 1 0
+
+ GK_FILENAME_KERNELZ="kernelz-${KV}"
+ GK_FILENAME_TEMP_CONFIG="config-${ARCH}-${KV}"
+ GK_FILENAME_TEMP_INITRAMFS="initramfs-${ARCH}-${KV}"
+ GK_FILENAME_TEMP_KERNEL="kernel-${ARCH}-${KV}"
+ GK_FILENAME_TEMP_KERNELZ="kernelz-${ARCH}-${KV}"
+ GK_FILENAME_TEMP_SYSTEMMAP="System.map-${ARCH}-${KV}"
+
+ # Do we have values?
+ if [ -z "${KERNEL_CONFIG_FILENAME}" ]
+ then
+ gen_die "--kernel-config-filename must be set to a non-empty value!"
+ elif [ -z "${KERNEL_FILENAME}" ]
+ then
+ gen_die "--kernel-filename must be set to a non-empty value!"
+ elif [ -z "${KERNEL_SYMLINK_NAME}" ]
+ then
+ gen_die "--kernel-symlink-name must be set to a non-empty value!"
+ elif [ -z "${SYSTEMMAP_FILENAME}" ]
+ then
+ gen_die "--systemmap-filename must be set to a non-empty value!"
+ elif [ -z "${SYSTEMMAP_SYMLINK_NAME}" ]
+ then
+ gen_die "--systemmap-symlink-name must be set to a non-empty value!"
+ elif [ -z "${INITRAMFS_FILENAME}" ]
+ then
+ gen_die "--initramfs-filename must be set to a non-empty value!"
+ elif [ -z "${INITRAMFS_FILENAME}" ]
+ then
+ gen_die "--initramfs-filename must be set to a non-empty value!"
+ fi
+
+ # Kernel .config
+ GK_FILENAME_CONFIG=$(arch_replace "${KERNEL_CONFIG_FILENAME}")
+ GK_FILENAME_CONFIG=$(kv_replace "${GK_FILENAME_CONFIG}")
+
+ if [ -z "${GK_FILENAME_CONFIG}" ]
+ then
+ gen_die "Internal error: Variable 'GK_FILENAME_CONFIG' is empty!"
+ else
+ print_info 5 "GK_FILENAME_CONFIG set to '${GK_FILENAME_CONFIG}' (was: '${KERNEL_CONFIG_FILENAME}')"
+ fi
+
+ # Kernel
+ GK_FILENAME_KERNEL=$(arch_replace "${KERNEL_FILENAME}")
+ GK_FILENAME_KERNEL=$(kv_replace "${GK_FILENAME_KERNEL}")
+
+ if [ -z "${GK_FILENAME_KERNEL}" ]
+ then
+ gen_die "Internal error: Variable 'GK_FILENAME_KERNEL' is empty!"
+ else
+ print_info 5 "GK_FILENAME_KERNEL set to '${GK_FILENAME_KERNEL}' (was: '${KERNEL_FILENAME}')"
+ fi
+
+ # Kernel symlink
+ GK_FILENAME_KERNEL_SYMLINK=$(arch_replace "${KERNEL_SYMLINK_NAME}")
+ GK_FILENAME_KERNEL_SYMLINK=$(kv_replace "${GK_FILENAME_KERNEL_SYMLINK}")
+
+ if [ -z "${GK_FILENAME_KERNEL_SYMLINK}" ]
+ then
+ gen_die "Internal error: Variable 'GK_FILENAME_KERNEL_SYMLINK' is empty!"
+ else
+ print_info 5 "GK_FILENAME_KERNEL_SYMLINK set to '${GK_FILENAME_KERNEL_SYMLINK}' (was: '${KERNEL_SYMLINK_NAME}')"
+ fi
+
+ if [[ "${GK_FILENAME_KERNEL}" == "${GK_FILENAME_KERNEL_SYMLINK}" ]]
+ then
+ gen_die "--kernel-filename cannot be identical with --kernel-symlink-name!"
+ fi
+
+ # System.map
+ GK_FILENAME_SYSTEMMAP=$(arch_replace "${SYSTEMMAP_FILENAME}")
+ GK_FILENAME_SYSTEMMAP=$(kv_replace "${GK_FILENAME_SYSTEMMAP}")
+
+ if [ -z "${GK_FILENAME_SYSTEMMAP}" ]
+ then
+ gen_die "Internal error: Variable 'GK_FILENAME_SYSTEMMAP' is empty!"
+ else
+ print_info 5 "GK_FILENAME_SYSTEMMAP set to '${GK_FILENAME_SYSTEMMAP}' (was: '${SYSTEMMAP_FILENAME}')"
+ fi
+
+ # System.map symlink
+ GK_FILENAME_SYSTEMMAP_SYMLINK=$(arch_replace "${SYSTEMMAP_SYMLINK_NAME}")
+ GK_FILENAME_SYSTEMMAP_SYMLINK=$(kv_replace "${GK_FILENAME_SYSTEMMAP_SYMLINK}")
+
+ if [ -z "${GK_FILENAME_SYSTEMMAP_SYMLINK}" ]
+ then
+ gen_die "Internal error: Variable 'GK_FILENAME_SYSTEMMAP_SYMLINK' is empty!"
+ else
+ print_info 5 "GK_FILENAME_SYSTEMMAP_SYMLINK set to '${GK_FILENAME_SYSTEMMAP_SYMLINK}' (was: '${SYSTEMMAP_SYMLINK_NAME}')"
+ fi
+
+ if [[ "${GK_FILENAME_SYSTEMMAP}" == "${GK_FILENAME_SYSTEMMAP_SYMLINK}" ]]
+ then
+ gen_die "--systemmap-filename cannot be identical with --systemmap-symlink-name!"
+ fi
+
+ # Initramfs
+ GK_FILENAME_INITRAMFS=$(arch_replace "${INITRAMFS_FILENAME}")
+ GK_FILENAME_INITRAMFS=$(kv_replace "${GK_FILENAME_INITRAMFS}")
+
+ if [ -z "${GK_FILENAME_INITRAMFS}" ]
+ then
+ gen_die "Internal error: Variable 'GK_FILENAME_INITRAMFS' is empty!"
+ else
+ print_info 5 "GK_FILENAME_INITRAMFS set to '${GK_FILENAME_INITRAMFS}' (was: '${INITRAMFS_FILENAME}')"
+ fi
+
+ # Initramfs symlink
+ GK_FILENAME_INITRAMFS_SYMLINK=$(arch_replace "${INITRAMFS_SYMLINK_NAME}")
+ GK_FILENAME_INITRAMFS_SYMLINK=$(kv_replace "${GK_FILENAME_INITRAMFS_SYMLINK}")
+
+ if [ -z "${GK_FILENAME_INITRAMFS_SYMLINK}" ]
+ then
+ gen_die "Internal error: Variable 'GK_FILENAME_INITRAMFS_SYMLINK' is empty!"
+ else
+ print_info 5 "GK_FILENAME_INITRAMFS_SYMLINK set to '${GK_FILENAME_INITRAMFS_SYMLINK}' (was: '${INITRAMFS_SYMLINK_NAME}')"
+ fi
+
+ if [[ "${GK_FILENAME_INITRAMFS}" == "${GK_FILENAME_INITRAMFS_SYMLINK}" ]]
+ then
+ gen_die "--initramfs-filename cannot be identical with --initramfs-symlink-name!"
+ fi
+
+ # Make sure we have unique filenames
+ if [[ "${GK_FILENAME_KERNEL}" == "${GK_FILENAME_INITRAMFS}" ]]
+ then
+ gen_die "--kernel-filename cannot be identical with --initramfs-filename!"
+ elif [[ "${GK_FILENAME_KERNEL}" == "${GK_FILENAME_SYSTEMMAP}" ]]
+ then
+ gen_die "--kernel-filename cannot be identical with --systemmap-filename!"
+ elif [[ "${GK_FILENAME_INITRAMFS}" == "${GK_FILENAME_SYSTEMMAP}" ]]
+ then
+ gen_die "--initramfs-filename cannot be identical with --systemmap-filename!"
+ fi
+
+ if [[ "${GK_FILENAME_KERNEL_SYMLINK}" == "${GK_FILENAME_INITRAMFS_SYMLINK}" ]]
+ then
+ gen_die "--kernel-symlink-name cannot be identical with --initramfs-symlink-name!"
+ elif [[ "${GK_FILENAME_KERNEL_SYMLINK}" == "${GK_FILENAME_SYSTEMMAP_SYMLINK}" ]]
+ then
+ gen_die "--kernel-symlink-name cannot be identical with --systemmap-symlink-name!"
+ elif [[ "${GK_FILENAME_INITRAMFS_SYMLINK}" == "${GK_FILENAME_SYSTEMMAP_SYMLINK}" ]]
+ then
+ gen_die "--initramfs-symlink-name cannot be identical with --systemmap-symlink-name!"
+ fi
+
+ local -a filename_vars
+ filename_vars+=( 'GK_FILENAME_CONFIG;--kernel-config-filename' )
+ filename_vars+=( 'GK_FILENAME_KERNEL;--kernel-filename' )
+ filename_vars+=( 'GK_FILENAME_KERNEL_SYMLINK;--kernel-symlink-name' )
+ filename_vars+=( 'GK_FILENAME_INITRAMFS;--initramfs-filename' )
+ filename_vars+=( 'GK_FILENAME_INITRAMFS_SYMLINK;--initramfs-symlink-name' )
+ filename_vars+=( 'GK_FILENAME_SYSTEMMAP;--systemmap-filename' )
+ filename_vars+=( 'GK_FILENAME_SYSTEMMAP_SYMLINK;--systemmap-symlink-name' )
+
+ local valid_filename_pattern='^[a-zA-Z0-9_.+-]{1,}$'
+ local filename_combo filename_varname filename_option
+
+ for filename_combo in "${filename_vars[@]}"
+ do
+ filename_combo=( ${filename_combo//;/ } )
+ filename_varname=${filename_combo[0]}
+ filename_option=${filename_combo[1]}
+
+ if [[ ! "${!filename_varname}" =~ ${valid_filename_pattern} ]]
+ then
+ gen_die "${filename_varname} value '${!filename_varname}' does not match regex '${valid_filename_pattern}'. Check ${filename_option} option!"
+ fi
+ done
+}
+
determine_real_args() {
+ # Unset known variables which will interfere with _tc-getPROG().
+ local tc_var tc_varname_build tc_vars=$(get_tc_vars)
+ for tc_var in ${tc_vars} BROOT
+ do
+ tc_varname_build="BUILD_${tc_var}"
+ unset ${tc_var} ${tc_varname_build}
+ done
+ unset tc_var tc_varname_build tc_vars
+
+ if ! hash realpath &>/dev/null
+ then
+ gen_die "realpath not found. Is sys-apps/coreutils installed?"
+ fi
+
+ realpath -m / &>/dev/null
+ if [ $? -ne 0 ]
+ then
+ gen_die "'realpath -m /' failed. We need a realpath version which supports '-m' mode!"
+ fi
+
+ if hash grep &>/dev/null
+ then
+ GREP_CMD=grep
+ else
+ gen_die "grep not found. Is sys-apps/grep installed?"
+ fi
+
+ if hash zgrep &>/dev/null
+ then
+ ZGREP_CMD=zgrep
+ else
+ print_warning 1 "zgrep not found. Is app-arch/gzip installed? You will be unable to use compressed config files!"
+ fi
+
print_info 4 "Resolving config file, command line, and arch default settings."
- # Dest / Config File Command Line Arch Default
- # ------------------ ------------ ------------
- set_config_with_override STRING LOGFILE CMD_LOGFILE
- set_config_with_override STRING KERNEL_DIR CMD_KERNEL_DIR "${DEFAULT_KERNEL_SOURCE}"
- set_config_with_override BOOL KERNEL_SOURCES CMD_KERNEL_SOURCES "yes"
- set_config_with_override STRING KNAME CMD_KERNNAME "genkernel"
-
- set_config_with_override STRING COMPRESS_INITRD CMD_COMPRESS_INITRD "$DEFAULT_COMPRESS_INITRD"
- set_config_with_override STRING COMPRESS_INITRD_TYPE CMD_COMPRESS_INITRD_TYPE "$DEFAULT_COMPRESS_INITRD_TYPE"
- set_config_with_override STRING MAKEOPTS CMD_MAKEOPTS "$DEFAULT_MAKEOPTS"
- set_config_with_override STRING NICE CMD_NICE "10"
- set_config_with_override STRING KERNEL_MAKE CMD_KERNEL_MAKE "$DEFAULT_KERNEL_MAKE"
- set_config_with_override STRING UTILS_MAKE CMD_UTILS_MAKE "$DEFAULT_UTILS_MAKE"
- set_config_with_override STRING KERNEL_CC CMD_KERNEL_CC "$DEFAULT_KERNEL_CC"
- set_config_with_override STRING KERNEL_LD CMD_KERNEL_LD "$DEFAULT_KERNEL_LD"
- set_config_with_override STRING KERNEL_AS CMD_KERNEL_AS "$DEFAULT_KERNEL_AS"
- set_config_with_override STRING UTILS_CC CMD_UTILS_CC "$DEFAULT_UTILS_CC"
- set_config_with_override STRING UTILS_LD CMD_UTILS_LD "$DEFAULT_UTILS_LD"
- set_config_with_override STRING UTILS_AS CMD_UTILS_AS "$DEFAULT_UTILS_AS"
-
- set_config_with_override STRING KERNEL_CROSS_COMPILE CMD_KERNEL_CROSS_COMPILE
- set_config_with_override STRING UTILS_CROSS_COMPILE CMD_UTILS_CROSS_COMPILE
- set_config_with_override STRING BOOTDIR CMD_BOOTDIR "/boot"
- set_config_with_override STRING KERNEL_OUTPUTDIR CMD_KERNEL_OUTPUTDIR "${KERNEL_DIR}"
- set_config_with_override STRING MODPROBEDIR CMD_MODPROBEDIR "/etc/modprobe.d"
-
- set_config_with_override BOOL SPLASH CMD_SPLASH "no"
- set_config_with_override BOOL CLEAR_CACHEDIR CMD_CLEAR_CACHEDIR "no"
- set_config_with_override BOOL POSTCLEAR CMD_POSTCLEAR "no"
- set_config_with_override BOOL MRPROPER CMD_MRPROPER "yes"
- set_config_with_override BOOL MENUCONFIG CMD_MENUCONFIG "no"
- set_config_with_override BOOL GCONFIG CMD_GCONFIG "no"
- set_config_with_override BOOL NCONFIG CMD_NCONFIG "no"
- set_config_with_override BOOL XCONFIG CMD_XCONFIG "no"
- set_config_with_override BOOL CLEAN CMD_CLEAN "yes"
-
- set_config_with_override STRING MINKERNPACKAGE CMD_MINKERNPACKAGE
- set_config_with_override STRING MODULESPACKAGE CMD_MODULESPACKAGE
- set_config_with_override STRING KERNCACHE CMD_KERNCACHE
- set_config_with_override BOOL RAMDISKMODULES CMD_RAMDISKMODULES "yes"
- set_config_with_override BOOL ALLRAMDISKMODULES CMD_ALLRAMDISKMODULES "no"
- set_config_with_override STRING INITRAMFS_OVERLAY CMD_INITRAMFS_OVERLAY
- set_config_with_override BOOL MOUNTBOOT CMD_MOUNTBOOT "yes"
- set_config_with_override BOOL BUILD_STATIC CMD_STATIC "no"
- set_config_with_override BOOL SAVE_CONFIG CMD_SAVE_CONFIG "yes"
- set_config_with_override BOOL SYMLINK CMD_SYMLINK "no"
- set_config_with_override STRING INSTALL_MOD_PATH CMD_INSTALL_MOD_PATH
- set_config_with_override BOOL OLDCONFIG CMD_OLDCONFIG "yes"
- set_config_with_override BOOL SSH CMD_SSH "no"
- set_config_with_override BOOL LVM CMD_LVM "no"
- set_config_with_override BOOL DMRAID CMD_DMRAID "no"
- set_config_with_override BOOL ISCSI CMD_ISCSI "no"
- set_config_with_override BOOL HYPERV CMD_HYPERV "no"
- set_config_with_override STRING BOOTLOADER CMD_BOOTLOADER "no"
- set_config_with_override BOOL BUSYBOX CMD_BUSYBOX "yes"
- set_config_with_override BOOL NFS CMD_NFS "yes"
- set_config_with_override STRING MICROCODE CMD_MICROCODE "all"
- set_config_with_override BOOL MICROCODE_INITRAMFS CMD_MICROCODE_INITRAMFS "yes"
- set_config_with_override BOOL UNIONFS CMD_UNIONFS "no"
- set_config_with_override BOOL NETBOOT CMD_NETBOOT "no"
- set_config_with_override STRING REAL_ROOT CMD_REAL_ROOT
- set_config_with_override BOOL DISKLABEL CMD_DISKLABEL "yes"
- set_config_with_override BOOL LUKS CMD_LUKS "no"
- set_config_with_override BOOL GPG CMD_GPG "no"
- set_config_with_override BOOL MDADM CMD_MDADM "no"
- set_config_with_override STRING MDADM_CONFIG CMD_MDADM_CONFIG
- set_config_with_override BOOL E2FSPROGS CMD_E2FSPROGS "no"
- set_config_with_override BOOL ZFS CMD_ZFS "$(rootfs_type_is zfs)"
- set_config_with_override BOOL BTRFS CMD_BTRFS "$(rootfs_type_is btrfs)"
- set_config_with_override BOOL VIRTIO CMD_VIRTIO "no"
- set_config_with_override BOOL MULTIPATH CMD_MULTIPATH "no"
- set_config_with_override BOOL FIRMWARE CMD_FIRMWARE "no"
- set_config_with_override STRING FIRMWARE_DIR CMD_FIRMWARE_DIR "/lib/firmware"
- set_config_with_override STRING FIRMWARE_FILES CMD_FIRMWARE_FILES
- set_config_with_override BOOL FIRMWARE_INSTALL CMD_FIRMWARE_INSTALL "no"
- set_config_with_override BOOL INTEGRATED_INITRAMFS CMD_INTEGRATED_INITRAMFS "no"
- set_config_with_override BOOL WRAP_INITRD CMD_WRAP_INITRD "no"
- set_config_with_override BOOL GENZIMAGE CMD_GENZIMAGE "no"
- set_config_with_override BOOL KEYMAP CMD_KEYMAP "yes"
- set_config_with_override BOOL DOKEYMAPAUTO CMD_DOKEYMAPAUTO "no"
- set_config_with_override STRING BUSYBOX_CONFIG CMD_BUSYBOX_CONFIG
- set_config_with_override STRING STRIP_TYPE CMD_STRIP_TYPE "modules"
- set_config_with_override BOOL INSTALL CMD_INSTALL "yes"
- set_config_with_override BOOL DEBUGCLEANUP CMD_DEBUGCLEANUP "yes"
-
- BOOTDIR=`arch_replace "${BOOTDIR}"`
+ # Dest / Config File Command Line Arch Default
+ # ------------------ ------------ ------------
+ set_config_with_override STRING TMPDIR CMD_TMPDIR "/var/tmp/genkernel"
+ set_config_with_override STRING LOGFILE CMD_LOGFILE "/var/log/genkernel.conf"
+ set_config_with_override STRING KERNEL_DIR CMD_KERNEL_DIR "${DEFAULT_KERNEL_SOURCE}"
+ set_config_with_override STRING KERNEL_MODULES_PREFIX CMD_KERNEL_MODULES_PREFIX
+ set_config_with_override BOOL KERNEL_SOURCES CMD_KERNEL_SOURCES "yes"
+ set_config_with_override STRING INITRAMFS_FILENAME CMD_INITRAMFS_FILENAME "${DEFAULT_INITRAMFS_FILENAME}"
+ set_config_with_override STRING INITRAMFS_SYMLINK_NAME CMD_INITRAMFS_SYMLINK_NAME "${DEFAULT_INITRAMFS_SYMLINK_NAME}"
+ set_config_with_override STRING KERNEL_CONFIG_FILENAME CMD_KERNEL_CONFIG_FILENAME "${DEFAULT_KERNEL_CONFIG_FILENAME}"
+ set_config_with_override STRING KERNEL_FILENAME CMD_KERNEL_FILENAME "${DEFAULT_KERNEL_FILENAME}"
+ set_config_with_override STRING KERNEL_SYMLINK_NAME CMD_KERNEL_SYMLINK_NAME "${DEFAULT_KERNEL_SYMLINK_NAME}"
+ set_config_with_override STRING SYSTEMMAP_FILENAME CMD_SYSTEMMAP_FILENAME "${DEFAULT_SYSTEMMAP_FILENAME}"
+ set_config_with_override STRING SYSTEMMAP_SYMLINK_NAME CMD_SYSTEMMAP_SYMLINK_NAME "${DEFAULT_SYSTEMMAP_SYMLINK_NAME}"
+
+ set_config_with_override STRING CHECK_FREE_DISK_SPACE_BOOTDIR CMD_CHECK_FREE_DISK_SPACE_BOOTDIR
+ set_config_with_override STRING CHECK_FREE_DISK_SPACE_KERNELOUTPUTDIR CMD_CHECK_FREE_DISK_SPACE_KERNELOUTPUTDIR
+
+ set_config_with_override STRING COMPRESS_INITRD CMD_COMPRESS_INITRD "${DEFAULT_COMPRESS_INITRD}"
+ set_config_with_override STRING COMPRESS_INITRD_TYPE CMD_COMPRESS_INITRD_TYPE "${DEFAULT_COMPRESS_INITRD_TYPE}"
+ set_config_with_override STRING CHOST CMD_CHOST "${DEFAULT_CHOST}"
+ set_config_with_override STRING MAKEOPTS CMD_MAKEOPTS "${DEFAULT_MAKEOPTS}"
+ set_config_with_override STRING NICE CMD_NICE "10"
+ set_config_with_override STRING KERNEL_CROSS_COMPILE CMD_KERNEL_CROSS_COMPILE
+ set_config_with_override STRING KERNEL_AS CMD_KERNEL_AS "$([[ -n "${KERNEL_CROSS_COMPILE}" ]] && echo "${KERNEL_CROSS_COMPILE}-${DEFAULT_KERNEL_AS}" || echo "${DEFAULT_KERNEL_AS}")"
+ set_config_with_override STRING KERNEL_AR CMD_KERNEL_AR "$([[ -n "${KERNEL_CROSS_COMPILE}" ]] && echo "${KERNEL_CROSS_COMPILE}-${DEFAULT_KERNEL_AR}" || echo "${DEFAULT_KERNEL_AR}")"
+ set_config_with_override STRING KERNEL_CC CMD_KERNEL_CC "$([[ -n "${KERNEL_CROSS_COMPILE}" ]] && echo "${KERNEL_CROSS_COMPILE}-${DEFAULT_KERNEL_CC}" || echo "${DEFAULT_KERNEL_CC}")"
+ set_config_with_override STRING KERNEL_CXX CMD_KERNEL_CXX "${DEFAULT_KERNEL_CXX}"
+ set_config_with_override STRING KERNEL_CFLAGS CMD_KERNEL_CFLAGS "${DEFAULT_KERNEL_CFLAGS}"
+ set_config_with_override STRING KERNEL_LD CMD_KERNEL_LD "$([[ -n "${KERNEL_CROSS_COMPILE}" ]] && echo "${KERNEL_CROSS_COMPILE}-${DEFAULT_KERNEL_LD}" || echo "${DEFAULT_KERNEL_LD}")"
+ set_config_with_override STRING KERNEL_MAKE CMD_KERNEL_MAKE "${DEFAULT_KERNEL_MAKE}"
+ set_config_with_override STRING KERNEL_NM CMD_KERNEL_NM "$([[ -n "${KERNEL_CROSS_COMPILE}" ]] && echo "${KERNEL_CROSS_COMPILE}-${DEFAULT_KERNEL_NM}" || echo "${DEFAULT_KERNEL_NM}")"
+ set_config_with_override STRING KERNEL_OBJCOPY CMD_KERNEL_OBJCOPY "$([[ -n "${KERNEL_CROSS_COMPILE}" ]] && echo "${KERNEL_CROSS_COMPILE}-${DEFAULT_KERNEL_OBJCOPY}" || echo "${DEFAULT_KERNEL_OBJCOPY}")"
+ set_config_with_override STRING KERNEL_OBJDUMP CMD_KERNEL_OBJDUMP "$([[ -n "${KERNEL_CROSS_COMPILE}" ]] && echo "${KERNEL_CROSS_COMPILE}-${DEFAULT_KERNEL_OBJDUMP}" || echo "${DEFAULT_KERNEL_OBJDUMP}")"
+ set_config_with_override STRING KERNEL_RANLIB CMD_KERNEL_RANLIB "$([[ -n "${KERNEL_CROSS_COMPILE}" ]] && echo "${KERNEL_CROSS_COMPILE}-${DEFAULT_KERNEL_RANLIB}" || echo "${DEFAULT_KERNEL_RANLIB}")"
+ set_config_with_override STRING KERNEL_READELF CMD_KERNEL_READELF "$([[ -n "${KERNEL_CROSS_COMPILE}" ]] && echo "${KERNEL_CROSS_COMPILE}-${DEFAULT_KERNEL_READELF}" || echo "${DEFAULT_KERNEL_READELF}")"
+ set_config_with_override STRING KERNEL_STRIP CMD_KERNEL_STRIP "$([[ -n "${KERNEL_CROSS_COMPILE}" ]] && echo "${KERNEL_CROSS_COMPILE}-${DEFAULT_KERNEL_STRIP}" || echo "${DEFAULT_KERNEL_STRIP}")"
+ set_config_with_override STRING UTILS_AS CMD_UTILS_AS "${DEFAULT_UTILS_AS}"
+ set_config_with_override STRING UTILS_AR CMD_UTILS_AR "${DEFAULT_UTILS_AR}"
+ set_config_with_override STRING UTILS_CC CMD_UTILS_CC "${DEFAULT_UTILS_CC}"
+ set_config_with_override STRING UTILS_CFLAGS CMD_UTILS_CFLAGS "${DEFAULT_UTILS_CFLAGS}"
+ set_config_with_override STRING UTILS_CXX CMD_UTILS_CXX "${DEFAULT_UTILS_CXX}"
+ set_config_with_override STRING UTILS_LD CMD_UTILS_LD "${DEFAULT_UTILS_LD}"
+ set_config_with_override STRING UTILS_NM CMD_UTILS_NM "${DEFAULT_UTILS_NM}"
+ set_config_with_override STRING UTILS_MAKE CMD_UTILS_MAKE "${DEFAULT_UTILS_MAKE}"
+ set_config_with_override STRING UTILS_OBJCOPY CMD_UTILS_OBJCOPY "${DEFAULT_UTILS_OBJCOPY}"
+ set_config_with_override STRING UTILS_OBJDUMP CMD_UTILS_OBJDUMP "${DEFAULT_UTILS_OBJDUMP}"
+ set_config_with_override STRING UTILS_RANLIB CMD_UTILS_RANLIB "${DEFAULT_UTILS_RANLIB}"
+ set_config_with_override STRING UTILS_READELF CMD_UTILS_READELF "${DEFAULT_UTILS_READELF}"
+ set_config_with_override STRING UTILS_STRIP CMD_UTILS_STRIP "${DEFAULT_UTILS_STRIP}"
+
+ set_config_with_override STRING CROSS_COMPILE CMD_CROSS_COMPILE
+ set_config_with_override STRING BOOTDIR CMD_BOOTDIR "/boot"
+ set_config_with_override STRING KERNEL_APPEND_LOCALVERSION CMD_KERNEL_APPEND_LOCALVERSION
+ set_config_with_override STRING KERNEL_LOCALVERSION CMD_KERNEL_LOCALVERSION "-%%ARCH%%"
+ set_config_with_override STRING MODPROBEDIR CMD_MODPROBEDIR "/etc/modprobe.d"
+
+ set_config_with_override BOOL SPLASH CMD_SPLASH "no"
+ set_config_with_override BOOL PLYMOUTH CMD_PLYMOUTH "no"
+ set_config_with_override BOOL CLEAR_CACHEDIR CMD_CLEAR_CACHEDIR "no"
+ set_config_with_override BOOL POSTCLEAR CMD_POSTCLEAR "no"
+ set_config_with_override BOOL MRPROPER CMD_MRPROPER "yes"
+ set_config_with_override BOOL MENUCONFIG CMD_MENUCONFIG "no"
+ set_config_with_override BOOL GCONFIG CMD_GCONFIG "no"
+ set_config_with_override BOOL NCONFIG CMD_NCONFIG "no"
+ set_config_with_override BOOL XCONFIG CMD_XCONFIG "no"
+ set_config_with_override BOOL CLEAN CMD_CLEAN "yes"
+
+ set_config_with_override STRING MINKERNPACKAGE CMD_MINKERNPACKAGE
+ set_config_with_override STRING MODULESPACKAGE CMD_MODULESPACKAGE
+ set_config_with_override BOOL MODULEREBUILD CMD_MODULEREBUILD "yes"
+ set_config_with_override STRING MODULEREBUILD_CMD CMD_MODULEREBUILD_CMD "${DEFAULT_MODULEREBUILD_CMD}"
+ set_config_with_override STRING KERNCACHE CMD_KERNCACHE
+ set_config_with_override BOOL RAMDISKMODULES CMD_RAMDISKMODULES "yes"
+ set_config_with_override BOOL ALLRAMDISKMODULES CMD_ALLRAMDISKMODULES "no"
+ set_config_with_override STRING INITRAMFS_OVERLAY CMD_INITRAMFS_OVERLAY
+ set_config_with_override STRING LINUXRC CMD_LINUXRC
+ set_config_with_override BOOL MOUNTBOOT CMD_MOUNTBOOT "yes"
+ set_config_with_override BOOL BUILD_STATIC CMD_STATIC "no"
+ set_config_with_override BOOL SAVE_CONFIG CMD_SAVE_CONFIG "yes"
+ set_config_with_override BOOL SYMLINK CMD_SYMLINK "no"
+ set_config_with_override BOOL OLDCONFIG CMD_OLDCONFIG "yes"
+ set_config_with_override BOOL SANDBOX CMD_SANDBOX "yes"
+ set_config_with_override BOOL SSH CMD_SSH "no"
+ set_config_with_override STRING SSH_AUTHORIZED_KEYS_FILE CMD_SSH_AUTHORIZED_KEYS_FILE "/etc/dropbear/authorized_keys"
+ set_config_with_override STRING SSH_HOST_KEYS CMD_SSH_HOST_KEYS "create"
+ set_config_with_override BOOL STRACE CMD_STRACE "no"
+ set_config_with_override BOOL BCACHE CMD_BCACHE "no"
+ set_config_with_override BOOL LVM CMD_LVM "no"
+ set_config_with_override BOOL DMRAID CMD_DMRAID "no"
+ set_config_with_override BOOL ISCSI CMD_ISCSI "no"
+ set_config_with_override BOOL HYPERV CMD_HYPERV "no"
+ set_config_with_override STRING BOOTFONT CMD_BOOTFONT "none"
+ set_config_with_override STRING BOOTLOADER CMD_BOOTLOADER "no"
+ set_config_with_override BOOL B2SUM CMD_B2SUM "no"
+ set_config_with_override BOOL BUSYBOX CMD_BUSYBOX "yes"
+ set_config_with_override STRING BUSYBOX_CONFIG CMD_BUSYBOX_CONFIG
+ set_config_with_override BOOL NFS CMD_NFS "yes"
+ set_config_with_override STRING MICROCODE CMD_MICROCODE "all"
+ set_config_with_override BOOL MICROCODE_INITRAMFS CMD_MICROCODE_INITRAMFS "no"
+ set_config_with_override BOOL UNIONFS CMD_UNIONFS "no"
+ set_config_with_override BOOL NETBOOT CMD_NETBOOT "no"
+ set_config_with_override STRING REAL_ROOT CMD_REAL_ROOT
+ set_config_with_override BOOL LUKS CMD_LUKS "no"
+ set_config_with_override BOOL GPG CMD_GPG "no"
+ set_config_with_override BOOL KEYCTL CMD_KEYCTL "no"
+ set_config_with_override BOOL MDADM CMD_MDADM "no"
+ set_config_with_override STRING MDADM_CONFIG CMD_MDADM_CONFIG
+ set_config_with_override BOOL E2FSPROGS CMD_E2FSPROGS "no"
+ set_config_with_override BOOL XFSPROGS CMD_XFSPROGS "no"
+ set_config_with_override BOOL ZFS CMD_ZFS "$(rootfs_type_is zfs)"
+ set_config_with_override BOOL BTRFS CMD_BTRFS "$(rootfs_type_is btrfs)"
+ set_config_with_override BOOL VIRTIO CMD_VIRTIO "no"
+ set_config_with_override BOOL MULTIPATH CMD_MULTIPATH "no"
+ set_config_with_override BOOL FIRMWARE CMD_FIRMWARE "no"
+ set_config_with_override BOOL ALLFIRMWARE CMD_ALLFIRMWARE "no"
+ set_config_with_override STRING FIRMWARE_DIR CMD_FIRMWARE_DIR "/lib/firmware"
+ set_config_with_override STRING FIRMWARE_FILES CMD_FIRMWARE_FILES
+ set_config_with_override BOOL FIRMWARE_INSTALL CMD_FIRMWARE_INSTALL "no"
+ set_config_with_override BOOL INTEGRATED_INITRAMFS CMD_INTEGRATED_INITRAMFS "no"
+ set_config_with_override BOOL WRAP_INITRD CMD_WRAP_INITRD "no"
+ set_config_with_override BOOL GENZIMAGE CMD_GENZIMAGE "no"
+ set_config_with_override BOOL KEYMAP CMD_KEYMAP "yes"
+ set_config_with_override BOOL DOKEYMAPAUTO CMD_DOKEYMAPAUTO "no"
+ set_config_with_override STRING STRIP_TYPE CMD_STRIP_TYPE "modules"
+ set_config_with_override BOOL INSTALL CMD_INSTALL "yes"
+ set_config_with_override BOOL CLEANUP CMD_CLEANUP "yes"
+
+ # Special case: If --no-clean is specified on the command line,
+ # imply --no-mrproper.
+ if ! isTrue "${CLEAN}"
+ then
+ if isTrue "${MRPROPER}"
+ then
+ print_info 5 " MRPROPER forced to \"no\" due to --no-clean."
+ MRPROPER="no"
+ fi
+ fi
+
+ # We need to expand and normalize provided $KERNEL_DIR and
+ # we need to do it early because $KERNEL_OUTPUTDIR will be
+ # set to $KERNEL_DIR by default.
+ KERNEL_DIR=$(cd -L "${CMD_KERNEL_DIR}" &>/dev/null && pwd -L 2>/dev/null)
+ if [ -z "${KERNEL_DIR}" ]
+ then
+ # We tried to use cd first to keep symlinks (i.e. to preserve
+ # a path like /usr/src/linux) which probably failed
+ # because $KERNEL_DIR does NOT exist. However, at this stage
+ # we don't know if $KERNEL_DIR is required so we have to
+ # accept an invalid value...
+ KERNEL_DIR=$(expand_file "${CMD_KERNEL_DIR}" 2>/dev/null)
+ fi
+
+ if [[ "${KERNEL_DIR}" != "${CMD_KERNEL_DIR}" ]]
+ then
+ print_info 5 " KERNEL_DIR value \"${CMD_KERNEL_DIR}\" normalized to \"${KERNEL_DIR}\""
+ fi
+
+ # Now that $KERNEL_DIR value is expanded and normalized we can
+ # initialize $KERNEL_OUTPUTDIR...
+ set_config_with_override STRING KERNEL_OUTPUTDIR CMD_KERNEL_OUTPUTDIR "${KERNEL_DIR}"
+
+ LOGFILE=$(expand_file "${CMD_LOGFILE}" 2>/dev/null)
+ if [ -z "${LOGFILE}" ]
+ then
+ small_die "Failed to expand --logfile value '${CMD_LOGFILE}'!"
+ fi
+
+ local can_write_log=no
+ if [ -w "${LOGFILE}" ]
+ then
+ can_write_log=yes
+ elif [ -w "$(dirname "${LOGFILE}")" ]
+ then
+ can_write_log=yes
+ fi
+
+ if ! isTrue "${can_write_log}"
+ then
+ small_die "Cannot write to '${LOGFILE}'!"
+ fi
+
+ echo ">>> Started genkernel v${GK_V} on: $(date +"%Y-%m-%d %H:%M:%S")" > "${LOGFILE}" 2>/dev/null || small_die "Could not write to '${LOGFILE}'!"
+
+ dump_debugcache
+
+ TMPDIR=$(expand_file "${CMD_TMPDIR}" 2>/dev/null)
+ if [ -z "${TMPDIR}" ]
+ then
+ gen_die "Failed to expand --tmpdir value '${CMD_TMPDIR}'!"
+ fi
+
+ if isTrue "$(has_space_characters "${TMPDIR}")"
+ then
+ # Packages like util-linux will fail to compile when path to
+ # build dir contains spaces
+ gen_die "--tmpdir '${TMPDIR}' contains space character(s) which are not supported!"
+ fi
+
+ if [ ! -d "${TMPDIR}" ]
+ then
+ mkdir -p "${TMPDIR}" || gen_die "Failed to create '${TMPDIR}'!"
+ fi
+
+ declare -gr TEMP=$(mktemp -d -p "${TMPDIR}" gk_XXXXXXXX 2>/dev/null)
+ [ -z "${TEMP}" ] && gen_die "'mktemp -d -p \"${TMPDIR}\" gk_XXXXXXXX' failed!"
+
+ if ! isTrue "${CLEANUP}"
+ then
+ local no_cleanup_marker="${TEMP}/.no_cleanup"
+ print_info 5 "Creating no cleanup marker '${no_cleanup_marker}' ..."
+ touch "${no_cleanup_marker}" || gen_die "Failed to create '${no_cleanup_marker}'!"
+ fi
+
+ declare -gr GK_V_CACHEDIR="${CACHE_DIR}/${GK_V}"
+
+ declare -gr KCONFIG_MODIFIED_MARKER="${TEMP}/.kconfig_modified"
+
+ declare -gr KCONFIG_REQUIRED_OPTIONS="${TEMP}/.kconfig_required_options"
+
+ if [ -n "${CMD_CROSS_COMPILE}" ]
+ then
+ if ! isTrue "$(is_valid_triplet "${CMD_CROSS_COMPILE}")"
+ then
+ gen_die "--cross-compile value '${CMD_CROSS_COMPILE}' does NOT represent a valid triplet!"
+ fi
+
+ ARCH=${CMD_CROSS_COMPILE%%-*}
+ case "${ARCH}" in
+ aarch64*)
+ ARCH="arm64"
+ ;;
+ arm*)
+ ARCH="arm"
+ ;;
+ hppa64*)
+ ARCH="parisc64"
+ ;;
+ hppa*)
+ ARCH="parisc"
+ ;;
+ i386)
+ ARCH="ia32"
+ ;;
+ i486)
+ ARCH="x86"
+ ;;
+ i586)
+ ARCH="x86"
+ ;;
+ i686)
+ ARCH="x86"
+ ;;
+ mips|mips64*)
+ ARCH="mips"
+ ;;
+ powerpc)
+ ARCH="ppc"
+ ;;
+ powerpc64)
+ ARCH="ppc64"
+ ;;
+ powerpc64le)
+ ARCH="ppc64le"
+ ;;
+ *)
+ ;;
+ esac
+
+ print_info 2 "ARCH forced to '${ARCH}' ..."
+ else
+ ARCH=$(uname -m)
+ if [ -z "${ARCH}" ]
+ then
+ gen_die "Was unable to determine machine hardware name using 'uname -m'!"
+ else
+ print_info 5 "Read '${ARCH}' from 'uname -m' ..."
+ fi
+
+ case "${ARCH}" in
+ aarch64*)
+ ARCH="arm64"
+ ;;
+ arm*)
+ ARCH="arm"
+ ;;
+ i?86)
+ ARCH="x86"
+ ;;
+ mips|mips64*)
+ ARCH="mips"
+ ;;
+ *)
+ ;;
+ esac
+
+ print_info 2 "ARCH '${ARCH}' detected ..."
+ fi
+
+ ARCH_CONFIG="${GK_SHARE}/arch/${ARCH}/config.sh"
+ [ -f "${ARCH_CONFIG}" ] || gen_die "${ARCH} not yet supported by genkernel. Please add the arch-specific config file '${ARCH_CONFIG}'!"
+
+ # Set CBUILD and CHOST
+ if ! isTrue "$(is_valid_triplet "${CHOST}")"
+ then
+ gen_die "Set CHOST '${CHOST}' does NOT represent a valid triplet!"
+ else
+ # Initialize CBUILD with CHOST value
+ CBUILD=${CHOST}
+ print_info 5 "CBUILD set to '${CBUILD}' ..."
+ fi
+
+ if [ -n "${CMD_CROSS_COMPILE}" ]
+ then
+ CHOST="${CMD_CROSS_COMPILE}"
+ fi
+
+ print_info 5 "CHOST set to '${CHOST}' ..."
+
+ # Initialize variables
+ BOOTDIR=$(arch_replace "${BOOTDIR}")
BOOTDIR=${BOOTDIR%/} # Remove any trailing slash
MODPROBEDIR=${MODPROBEDIR%/} # Remove any trailing slash
- __VARS_BINCACHE=(
- BLKID_BINCACHE
- BUSYBOX_BINCACHE
- DMRAID_BINCACHE
- FUSE_BINCACHE
- GPG_BINCACHE
- ISCSI_BINCACHE
- ISCSI_ISNS_BINCACHE
- LIBAIO_BINCACHE
- LVM_BINCACHE
- MDADM_BINCACHE
- UNIONFS_FUSE_BINCACHE
- )
- for v in CACHE_DIR BUSYBOX_CONFIG DEFAULT_KERNEL_CONFIG "${__VARS_BINCACHE[@]}"; do
+ local -a pkg_prefixes=()
+ local -a vars_to_initialize=()
+ vars_to_initialize+=( "CACHE_DIR" )
+ vars_to_initialize+=( "BUSYBOX_CONFIG" )
+ vars_to_initialize+=( "DEFAULT_KERNEL_CONFIG" )
+
+ local binpkgs=( $(compgen -A variable | grep '^GKPKG_.*_BINPKG$') )
+ local binpkg
+ for binpkg in "${binpkgs[@]}"
+ do
+ pkg_prefixes+=( "${binpkg%_BINPKG}" )
+ vars_to_initialize+=( "${binpkg}" )
+ done
+ unset binpkg binpkgs
+
+ local v=
+ for v in "${vars_to_initialize[@]}"
+ do
eval "$v='$(arch_replace "${!v}")'"
eval "$v='$(cache_replace "${!v}")'"
done
+ unset v vars_to_initialize
+
+ declare -gA GKPKG_LOOKUP_TABLE=()
+ local pn_varname= pn=
+ for v in "${pkg_prefixes[@]}"
+ do
+ pn_varname="${v}_PN"
+ pn=${!pn_varname}
+
+ GKPKG_LOOKUP_TABLE[${pn}]=${v}
+ done
+ unset v pn pn_varname pkg_prefixes
+
+ declare -gA GKICM_LOOKUP_TABLE_CMD=()
+ declare -gA GKICM_LOOKUP_TABLE_EXT=()
+ declare -gA GKICM_LOOKUP_TABLE_PKG=()
+ local known_initramfs_compression_methods_by_compression=( $(get_initramfs_compression_method_by_compression) )
+ local known_initramfs_compression_methods_by_speed=( $(get_initramfs_compression_method_by_speed) )
+ local initramfs_compression_methods=( $(compgen -A variable | grep '^GKICM_.*_KOPTNAME$') )
+ local initramfs_compression_method key var_name var_prefix
+ for initramfs_compression_method in "${initramfs_compression_methods[@]}"
+ do
+ if [ -z "${!initramfs_compression_method}" ]
+ then
+ gen_die "Invalid config found: Check value of '${initramfs_compression_method}'!"
+ fi
+
+ if [[ "${known_initramfs_compression_methods_by_compression[@]} " != *"${!initramfs_compression_method}"* ]]
+ then
+ gen_die "Internal error: Initramfs compression method '${!initramfs_compression_method}' was not added to get_initramfs_compression_method_by_compression()!"
+ else
+ known_initramfs_compression_methods_by_compression=( $(printf '%s\n' "${known_initramfs_compression_methods_by_compression[@]//${!initramfs_compression_method}/}") )
+ fi
+
+ if [[ "${known_initramfs_compression_methods_by_speed[@]} " != *"${!initramfs_compression_method}"* ]]
+ then
+ gen_die "Internal error: Initramfs compression method '${!initramfs_compression_method}' was not added to get_initramfs_compression_method_by_speed()!"
+ else
+ known_initramfs_compression_methods_by_speed=( $(printf '%s\n' "${known_initramfs_compression_methods_by_speed[@]//${!initramfs_compression_method}/}") )
+ fi
+
+ var_prefix="${initramfs_compression_method%_KOPTNAME}"
+
+ for key in CMD EXT PKG
+ do
+ var_name="${var_prefix}_${key}"
+ if [ -z "${!var_name}" ]
+ then
+ gen_die "Internal error: Variable '${var_name}' is not set!"
+ fi
+
+ case ${key} in
+ CMD)
+ GKICM_LOOKUP_TABLE_CMD[${!initramfs_compression_method}]="${!var_name}"
+ ;;
+ EXT)
+ GKICM_LOOKUP_TABLE_EXT[${!initramfs_compression_method}]="${!var_name}"
+ ;;
+ PKG)
+ GKICM_LOOKUP_TABLE_PKG[${!initramfs_compression_method}]="${!var_name}"
+ ;;
+ esac
+ done
+ done
+ unset initramfs_compression_methods initramfs_compression_method key var_name var_prefix
+
+ # It is enough to check just one data set because we validated
+ # both data sets above.
+ if [[ ${#known_initramfs_compression_methods_by_compression[@]} -gt 0 ]]
+ then
+ local unhandled_method
+ for unhandled_method in "${known_initramfs_compression_methods_by_compression[@]}"
+ do
+ print_error 1 "Do not know how to handle initramfs compression type '${unhandled_method}'!"
+ done
+
+ gen_die "Internal error: Not all known initramfs compression methods are defined!"
+ fi
+ unset known_initramfs_compression_methods_by_compression known_initramfs_compression_methods_by_speed
if [ -n "${CMD_BOOTLOADER}" ]
then
BOOTLOADER="${CMD_BOOTLOADER}"
if [ "${CMD_BOOTLOADER}" != "${CMD_BOOTLOADER/:/}" ]
then
- BOOTFS=`echo "${CMD_BOOTLOADER}" | cut -f2- -d:`
- BOOTLOADER=`echo "${CMD_BOOTLOADER}" | cut -f1 -d:`
+ BOOTFS=$(echo "${CMD_BOOTLOADER}" | cut -f2- -d:)
+ BOOTLOADER=$(echo "${CMD_BOOTLOADER}" | cut -f1 -d:)
fi
fi
+ case "${BOOTLOADER}" in
+ no|grub|grub2)
+ ;;
+ *)
+ gen_die "Invalid bootloader '${BOOTLOADER}'; --bootloader=<bootloader> requires one of: no, grub, grub2"
+ ;;
+ esac
+
if isTrue "${KERNEL_SOURCES}"
then
- if [ ! -d ${KERNEL_DIR} ]
+ if [ ! -d "${KERNEL_DIR}" ]
then
gen_die "kernel source directory \"${KERNEL_DIR}\" was not found!"
fi
@@ -221,50 +798,520 @@ determine_real_args() {
fi
fi
- # Special case: If --no-clean is specified on the command line,
- # imply --no-mrproper.
- if [ "${CMD_CLEAN}" != '' ]
+ local need_tar=no
+
+ if [ -n "${MINKERNPACKAGE}" ]
then
- if ! isTrue "${CLEAN}"
+ MINKERNPACKAGE=$(expand_file "${CMD_MINKERNPACKAGE}")
+ if [[ -z "${MINKERNPACKAGE}" || "${MINKERNPACKAGE}" != *.tar* ]]
then
- MRPROPER="no"
+ gen_die "--minkernpackage value '${CMD_MINKERNPACKAGE}' is invalid!"
fi
- fi
- if [ -n "${MINKERNPACKAGE}" ]
- then
- mkdir -p `dirname ${MINKERNPACKAGE}`
+ local minkernpackage_dir=$(dirname "${MINKERNPACKAGE}")
+ if [ ! -d "${minkernpackage_dir}" ]
+ then
+ mkdir -p "${minkernpackage_dir}" \
+ || gen_die "Failed to create '${minkernpackage_dir}'!"
+ fi
+
+ need_tar=yes
fi
if [ -n "${MODULESPACKAGE}" ]
then
- mkdir -p `dirname ${MODULESPACKAGE}`
+ MODULESPACKAGE=$(expand_file "${CMD_MODULESPACKAGE}")
+ if [[ -z "${MODULESPACKAGE}" || "${MODULESPACKAGE}" != *.tar* ]]
+ then
+ gen_die "--modulespackage value '${CMD_MODULESPACKAGE}' is invalid!"
+ fi
+
+ local modulespackage_dir=$(dirname "${MODULESPACKAGE}")
+ if [ ! -d "${modulespackage_dir}" ]
+ then
+ mkdir -p "${modulespackage_dir}" \
+ || gen_die "Failed to create '${modulespackage_dir}'!"
+ fi
+
+ need_tar=yes
fi
if [ -n "${KERNCACHE}" ]
then
- mkdir -p `dirname ${KERNCACHE}`
+ KERNCACHE=$(expand_file "${CMD_KERNCACHE}")
+ if [[ -z "${KERNCACHE}" || "${KERNCACHE}" != *.tar* ]]
+ then
+ gen_die "--kerncache value '${CMD_KERNCACHE}' is invalid!"
+ fi
+
+ local kerncache_dir=$(dirname "${KERNCACHE}")
+ if [ ! -d "${kerncache_dir}" ]
+ then
+ mkdir -p "${kerncache_dir}" \
+ || gen_die "Failed to create '${kerncache_dir}'!"
+ fi
+
+ need_tar=yes
+ fi
+
+ # We always need to populate KERNEL_LOCALVERSION to be able to warn
+ # if user changed value but didn't rebuild kernel
+ local valid_localversion_pattern='^[A-Za-z0-9_.+-]{1,}$'
+
+ if [ -n "${KERNEL_LOCALVERSION}" ]
+ then
+ case "${KERNEL_LOCALVERSION}" in
+ UNSET)
+ ;;
+ *)
+ KERNEL_LOCALVERSION=$(arch_replace "${KERNEL_LOCALVERSION}")
+ if [ -z "${KERNEL_LOCALVERSION}" ]
+ then
+ # We somehow lost value...
+ gen_die "Internal error: Variable 'KERNEL_LOCALVERSION' is empty!"
+ fi
+
+ if [[ ! "${KERNEL_LOCALVERSION}" =~ ${valid_localversion_pattern} ]]
+ then
+ gen_die "--kernel-localversion value '${KERNEL_LOCALVERSION}' does not match '${valid_localversion_pattern}' regex!"
+ fi
+ ;;
+ esac
+ fi
+
+ if [ -n "${KERNEL_APPEND_LOCALVERSION}" ]
+ then
+ if [[ ! "${KERNEL_APPEND_LOCALVERSION}" =~ ${valid_localversion_pattern} ]]
+ then
+ gen_die "--kernel-append-localversion value '${KERNEL_APPEND_LOCALVERSION}' does not match '${valid_localversion_pattern}' regex!"
+ fi
+
+ if [[ "${KERNEL_LOCALVERSION}" == "UNSET" ]]
+ then
+ gen_die "Cannot append '${KERNEL_APPEND_LOCALVERSION}' to KERNEL_LOCALVERSION you want to unset!"
+ else
+ KERNEL_LOCALVERSION+="${KERNEL_APPEND_LOCALVERSION}"
+ fi
+ fi
+
+ if isTrue "${BUILD_KERNEL}"
+ then
+ case "${CMD_STRIP_TYPE}" in
+ all|kernel|modules|none)
+ ;;
+ *)
+ gen_die "Invalid strip type '${CMD_STRIP_TYPE}'; --strip=<type> requires one of: all, kernel, modules, none"
+ ;;
+ esac
+
+ if [[ "${KERNEL_DIR}" != "${KERNEL_OUTPUTDIR}" ]]
+ then
+ if [ -z "${KERNEL_OUTPUTDIR}" ]
+ then
+ gen_die "No --kernel-outputdir specified!"
+ fi
+
+ KERNEL_OUTPUTDIR=$(expand_file "${KERNEL_OUTPUTDIR}")
+ if [ -z "${KERNEL_OUTPUTDIR}" ]
+ then
+ gen_die "Failed to expand set --kernel-outputdir '${CMD_KERNEL_OUTPUTDIR}'!"
+ fi
+
+ if [[ "${KERNEL_OUTPUTDIR}" != "${CMD_KERNEL_OUTPUTDIR}" ]]
+ then
+ print_info 5 "KERNEL_OUTPUTDIR value '${CMD_KERNEL_OUTPUTDIR}' normalized to '${KERNEL_OUTPUTDIR}'"
+ fi
+
+ if [ ! -d "${KERNEL_OUTPUTDIR}" ]
+ then
+ print_warning 3 "Set --kernel-outputdir '${KERNEL_OUTPUTDIR}' does not exist; Will try to create ..."
+ mkdir -p "${KERNEL_OUTPUTDIR}" || gen_die "Failed to create '${KERNEL_OUTPUTDIR}'!"
+ fi
+ fi
+
+ if isTrue "$(has_space_characters "${KERNEL_OUTPUTDIR}")"
+ then
+ # Kernel Makefile doesn't support spaces in outputdir path...
+ gen_die "--kernel-outputdir '${KERNEL_OUTPUTDIR}' contains space character(s) which are not supported!"
+ fi
+
+ if isTrue "${CMD_MODULEREBUILD}"
+ then
+ if [ -z "${MODULEREBUILD_CMD}" ]
+ then
+ gen_die "--module-rebuild-cmd cannot be empty when --module-rebuild is set!"
+ elif [[ "${MODULEREBUILD_CMD}" == *[\$\&\|\>\(\)]* ]]
+ then
+ gen_die "--module-rebuild-cmd '${MODULEREBUILD_CMD}' contains at least one of the following disallowed characters: '\$&|>()'!"
+ fi
+ fi
+
+ if isTrue "${SAVE_CONFIG}"
+ then
+ local kconf_savedir=/etc/kernels
+ if [ ! -d "${kconf_savedir}" ]
+ then
+ kconf_savedir=/etc
+ [ ! -d "${kconf_savedir}" ] && kconf_savedir=/
+ fi
+
+ if [ ! -w "${kconf_savedir}" ]
+ then
+ gen_die "Cannot write to '${kconf_savedir}' but --save-config is set!"
+ fi
+ fi
+ fi
+
+ if isTrue "${BUILD_RAMDISK}"
+ then
+ # Internal module group to get modules used in genkernel features
+ # into initramfs.
+ GK_INITRAMFS_ADDITIONAL_KMODULES=""
+
+ if [[ "${CMD_BOOTFONT}" != "none" ]]
+ then
+ if [[ "${CMD_BOOTFONT}" == "current" ]]
+ then
+ SETFONT_COMMAND="$(type -P setfont 2>/dev/null)"
+ if [ -z "${SETFONT_COMMAND}" ]
+ then
+ gen_die "setfont not found. Is sys-apps/kbd installed?"
+ fi
+
+ "${SETFONT_COMMAND}" -O /dev/null 2>/dev/null
+ if [ $? -ne 0 ]
+ then
+ if [ ${UID} -eq 0 ]
+ then
+ gen_die "'${SETFONT_COMMAND}' cannot read from console. You cannot use --boot-font=current!"
+ else
+ gen_die "'${SETFONT_COMMAND}' cannot read from console. You probably need root permission or cannot use --boot-font=current!"
+ fi
+ fi
+ else
+ local bootfont_file=$(expand_file "${BOOTFONT}")
+ if [ -z "${bootfont_file}" ]
+ then
+ gen_die "--boot-file value '${BOOTFONT}' failed to expand!"
+ elif [ ! -e "${bootfont_file}" ]
+ then
+ gen_die "--boot-file file '${bootfont_file}' does not exist!"
+ elif ! isTrue $(is_psf_file "${bootfont_file}")
+ then
+ gen_die "--boot-font file '${bootfont_file}' is not a valid PC Screen Font (PSF)!"
+ else
+ BOOTFONT="${bootfont_file}"
+ fi
+ fi
+ fi
+
+ if isTrue "${CMD_DOKEYMAPAUTO}" && ! isTrue "${CMD_KEYMAP}"
+ then
+ gen_die "--do-keymap-auto requires --keymap but --no-keymap is set!"
+ fi
+
+ if isTrue "${MULTIPATH}" && ! isTrue "${LVM}"
+ then
+ gen_die "--multipath requires --lvm but --no-lvm is set!"
+ fi
+
+ if isTrue "${SPLASH}"
+ then
+ if ! hash splash_geninitramfs &>/dev/null
+ then
+ gen_die "splash_geninitramfs is required for --splash but was not found!"
+ fi
+ fi
+
+ if isTrue "${PLYMOUTH}" && isTrue "${SPLASH}"
+ then
+ gen_die "--plymouth and --splash are mutually exclusive!"
+ fi
+
+ if isTrue "${PLYMOUTH}" && ! isTrue "${FIRMWARE}"
+ then
+ print_warning 3 "--plymouth potentially requires graphics firmware to function! Please configure your --firmware flags appropriately!"
+ fi
+
+ if isTrue "${PLYMOUTH}" && ! isTrue "${ALLRAMDISKMODULES}"
+ then
+ print_warning 3 "--plymouth potentially requires DRM kernel modules to function! Please configure your --ramdisk-modules flags appropriately!"
+ fi
+
+ if isTrue "${SSH}"
+ then
+ local ssh_authorized_keys_file=$(expand_file "${SSH_AUTHORIZED_KEYS_FILE}")
+ if [ -z "${ssh_authorized_keys_file}" ]
+ then
+ gen_die "--ssh-authorized-keys value '${SSH_AUTHORIZED_KEYS_FILE}' failed to expand!"
+ elif [ ! -e "${ssh_authorized_keys_file}" ]
+ then
+ gen_die "authorized_keys file '${ssh_authorized_keys_file}' does not exist!"
+ elif ! grep -qE '^(ecdsa|ssh)-' "${ssh_authorized_keys_file}" &>/dev/null
+ then
+ gen_die "authorized_keys file '${ssh_authorized_keys_file}' does not look like a valid authorized_keys file: File does not contain any entry matching regular expression '^(ecdsa|ssh)-'!"
+ else
+ declare -gr DROPBEAR_AUTHORIZED_KEYS_FILE="${ssh_authorized_keys_file}"
+ fi
+ fi
+
+ if isTrue "${BCACHE}"
+ then
+ GK_INITRAMFS_ADDITIONAL_KMODULES+=" bcache"
+ fi
+
+ if isTrue "${ZFS}"
+ then
+ if isTrue "$(tc-is-cross-compiler)"
+ then
+ local error_msg="Using binpkg for ZFS is not supported."
+ error_msg+=" Therefore we cannot cross-compile like requested!"
+ gen_die "${error_msg}"
+ fi
+
+ if [ ! -x "/sbin/zfs" ]
+ then
+ local error_msg="'/sbin/zfs' is required for --zfs but file does not exist or is not executable!"
+ error_msg+=" Is sys-fs/zfs installed?"
+ gen_die "${error_msg}"
+ fi
+ fi
+
+ if isTrue "${MULTIPATH}"
+ then
+ if isTrue "$(tc-is-cross-compiler)"
+ then
+ local error_msg="Using binpkg for multipath-tools is not supported."
+ error_msg+=" Therefore we cannot cross-compile like requested!"
+ gen_die "${error_msg}"
+ fi
+
+ if [ ! -x "/sbin/multipath" ]
+ then
+ local error_msg="'/sbin/multipath' is required for --multipath but file does not exist or is not executable!"
+ error_msg+=" Is sys-fs/multipath-tools installed?"
+ gen_die "${error_msg}"
+ fi
+
+ if [ ! -x "/lib/udev/scsi_id" ]
+ then
+ local error_msg="'/lib/udev/scsi_id' is required for --multipath but file does not exist or is not executable!"
+ error_msg+=" This file is usually provided by: sys-apps/systemd-utils, sys-fs/eudev, or sys-apps/systemd!"
+ gen_die "${error_msg}"
+ fi
+
+ if [ ! -e "/etc/multipath.conf" ]
+ then
+ gen_die "'/etc/multipath.conf' is required for --multipath but file does not exist!"
+ elif [[ -d "/etc/multipath.conf" || ! -s "/etc/multipath.conf" ]]
+ then
+ gen_die "'/etc/multipath.conf' is required for --multipath but it is either not a file or is empty!"
+ fi
+ fi
+
+ if ! isTrue "${BUSYBOX}"
+ then
+ local -a FEATURES_REQUIRING_BUSYBOX
+ FEATURES_REQUIRING_BUSYBOX+=( BTRFS )
+ FEATURES_REQUIRING_BUSYBOX+=( DMRAID )
+ FEATURES_REQUIRING_BUSYBOX+=( ISCSI )
+ FEATURES_REQUIRING_BUSYBOX+=( KEYMAP )
+ FEATURES_REQUIRING_BUSYBOX+=( LVM )
+ FEATURES_REQUIRING_BUSYBOX+=( LUKS )
+ FEATURES_REQUIRING_BUSYBOX+=( KEYCTL )
+ FEATURES_REQUIRING_BUSYBOX+=( MDADM )
+ FEATURES_REQUIRING_BUSYBOX+=( MULTIPATH )
+ FEATURES_REQUIRING_BUSYBOX+=( SPLASH )
+ FEATURES_REQUIRING_BUSYBOX+=( SSH )
+ FEATURES_REQUIRING_BUSYBOX+=( ZFS )
+
+ local FEATURE_REQUIRING_BUSYBOX
+ for FEATURE_REQUIRING_BUSYBOX in "${FEATURES_REQUIRING_BUSYBOX[@]}"
+ do
+ if isTrue "${!FEATURE_REQUIRING_BUSYBOX}"
+ then
+ gen_die "--no-busybox set but --${FEATURE_REQUIRING_BUSYBOX,,} requires --busybox!"
+ fi
+ done
+ unset FEATURE_REQUIRING_BUSYBOX FEATURES_REQUIRING_BUSYBOX
+ elif [ -n "${CMD_BUSYBOX_CONFIG}" ]
+ then
+ local BUSYBOX_CONFIG=$(expand_file "${CMD_BUSYBOX_CONFIG}")
+ if [ -z "${BUSYBOX_CONFIG}" ]
+ then
+ gen_die "--busybox-config value '${CMD_BUSYBOX_CONFIG}' failed to expand!"
+ elif [ ! -e "${BUSYBOX_CONFIG}" ]
+ then
+ gen_die "--busybox-config file '${BUSYBOX_CONFIG}' does not exist!"
+ fi
+
+ if ! grep -qE '^CONFIG_.*=' "${BUSYBOX_CONFIG}" &>/dev/null
+ then
+ gen_die "--busybox-config file '${BUSYBOX_CONFIG}' does not look like a valid busybox config: File does not contain any CONFIG_* value!"
+ elif ! grep -qE '^CONFIG_STATIC=y$' "${BUSYBOX_CONFIG}" &>/dev/null
+ then
+ # We cannot check all required options but check at least for CONFIG_STATIC...
+ gen_die "--busybox-config file '${BUSYBOX_CONFIG}' does not contain CONFIG_STATIC=y. This busybox config will not work with genkernel!"
+ fi
+ fi
+
+ DU_COMMAND="$(type -P du 2>/dev/null)"
+
+ LDDTREE_COMMAND="$(type -P lddtree 2>/dev/null)"
+ if [ -z "${LDDTREE_COMMAND}" ]
+ then
+ gen_die "lddtree not found. Is app-misc/pax-utils installed?"
+ fi
+
+ CPIO_COMMAND="$(type -P cpio 2>/dev/null)"
+ if [[ -z "${CPIO_COMMAND}" ]]
+ then
+ # This will be fatal because we cpio either way
+ gen_die "cpio binary not found. Is app-arch/cpio installed?"
+ elif ! "${LDDTREE_COMMAND}" -l "${CPIO_COMMAND}" &>/dev/null
+ then
+ # This is typically the case when app-misc/pax-utils[python] is used
+ # and selected Python version isn't supported by pax-utils or
+ # dev-python/pyelftools yet, #618056.
+ gen_die "'\"${LDDTREE_COMMAND}\" -l \"${CPIO_COMMAND}\"' failed -- cannot generate initramfs without working lddtree!"
+ fi
+
+ if isTrue "${COMPRESS_INITRD}"
+ then
+ local pattern_auto='^(BEST|FASTEST)$'
+ local pattern_manual="$(get_initramfs_compression_method_by_speed)"
+ pattern_manual=${pattern_manual// /|}
+ pattern_manual="^(${pattern_manual})$"
+
+ if [[ "${COMPRESS_INITRD_TYPE^^}" =~ ${pattern_auto} ]]
+ then
+ # Will be handled in set_initramfs_compression_method()
+ :;
+ elif [[ ! "${COMPRESS_INITRD_TYPE^^}" =~ ${pattern_manual} ]]
+ then
+ gen_die "Specified --compress-initramfs-type '${COMPRESS_INITRD_TYPE}' is unknown"
+ elif ! hash ${GKICM_LOOKUP_TABLE_CMD[${COMPRESS_INITRD_TYPE^^}]/%\ */} &>/dev/null
+ then
+ gen_die "'${GKICM_LOOKUP_TABLE_CMD[${COMPRESS_INITRD_TYPE^^}]/%\ */}', the tool to compress initramfs based on selected --compress-initramfs-type was not found. Is ${GKICM_LOOKUP_TABLE_PKG[${COMPRESS_INITRD_TYPE^^}]} installed?"
+ fi
+ unset pattern_auto pattern_manual
+
+ # Ensure that value matches keys in GKICM_* arrays
+ COMPRESS_INITRD_TYPE=${COMPRESS_INITRD_TYPE^^}
+ fi
+
+ SANDBOX_COMMAND=
+ if isTrue "${SANDBOX}"
+ then
+ if [[ "${SANDBOX_ON}" == "1" ]]
+ then
+ gen_die "SANDBOX_ON=1 detected -- You cannot use --sandbox when already running within a sandbox!"
+ fi
+
+ SANDBOX_COMMAND="$(type -P sandbox 2>/dev/null)"
+ if [ -z "${SANDBOX_COMMAND}" ]
+ then
+ gen_die "Sandbox not found. Is sys-apps/sandbox installed?"
+ fi
+ fi
+
+ if [ -n "${LINUXRC}" ]
+ then
+ LINUXRC=$(expand_file "${CMD_LINUXRC}" 2>/dev/null)
+ if [ -z "${LINUXRC}" ]
+ then
+ gen_die "--linuxrc value '${CMD_LINUXRC}' failed to expand!"
+ elif [ ! -e "${LINUXRC}" ]
+ then
+ gen_die "--linuxrc file '${LINUXRC}' does not exist!"
+ fi
+ fi
+
+ need_tar=yes
+ fi
+
+ if isTrue "${need_tar}"
+ then
+ TAR_COMMAND="$(type -P tar 2>/dev/null)"
+ if [ -z "${TAR_COMMAND}" ]
+ then
+ gen_die "tar not found. Is app-arch/tar installed?"
+ fi
+ fi
+
+ if isTrue "${INTEGRATED_INITRAMFS}"
+ then
+ if ! isTrue "${BUILD_KERNEL}" || ! isTrue "${BUILD_RAMDISK}"
+ then
+ gen_die "Invalid action specified: --integrated-initramfs option requires action \"all\", i.e. building of kernel and initramfs at the same time!"
+ fi
+ fi
+
+ KMOD_CMD=$(type -P kmod 2>/dev/null)
+ if ! isTrue "${BUILD_STATIC}"
+ then
+ if [ -z "${KMOD_CMD}" ]
+ then
+ gen_die "kmod not found. Is sys-apps/kmod installed?"
+ fi
fi
- if ! isTrue "${BUILD_RAMDISK}"
+ if ! isTrue "${CMD_INSTALL}"
then
- INTEGRATED_INITRAMFS=0
+ if [ -n "${KERNEL_MODULES_PREFIX}" ]
+ then
+ print_warning 1 '--no-install is set; Ignoring --kernel-modules-prefix ...'
+ fi
+
+ # User does not want that anything will get installed
+ # so install modules into our temporary directory instead.
+ KERNEL_MODULES_PREFIX="${TEMP}/mod_prefix"
+ elif [ -n "${KERNEL_MODULES_PREFIX}" ]
+ then
+ KERNEL_MODULES_PREFIX=$(expand_file "${CMD_KERNEL_MODULES_PREFIX}")
+ if [ -z "${KERNEL_MODULES_PREFIX}" ]
+ then
+ gen_die "Failed to expand set --kernel-modules-prefix '${CMD_KERNEL_MODULES_PREFIX}'!"
+ fi
+
+ if [ ! -d "${KERNEL_MODULES_PREFIX}" ]
+ then
+ print_warning 3 "Set --kernel-modules-prefix '${KERNEL_MODULES_PREFIX}' does not exist; Will try to create ..."
+ mkdir -p "${KERNEL_MODULES_PREFIX}" || gen_die "Failed to create '${KERNEL_MODULES_PREFIX}'!"
+ fi
fi
MICROCODE=${MICROCODE,,}
- case ${MICROCODE} in
+ case "${MICROCODE}" in
all|amd|intel) ;;
y|yes|1|true|t) MICROCODE='all' ;;
n|no|none|0|false|f) MICROCODE='' ;;
- *) gen_die "Invalid microcode '${MICROCODE}', --microcode=<type> requires one of: no, all, intel, amd" ;;
+ *) gen_die "Invalid microcode '${MICROCODE}'; --microcode=<type> requires one of: no, all, intel, amd" ;;
esac
+ if isTrue "${BUILD_RAMDISK}" && isTrue "${MICROCODE_INITRAMFS}" && [[ -z "${MICROCODE}" ]]
+ then
+ print_warning 1 '--microcode=no implies --no-microcode-initramfs; Will not add any microcode to initramfs ...'
+ print_warning 1 '' 1 0
+ MICROCODE_INITRAMFS=no
+ fi
+
+ if isTrue "${BUILD_RAMDISK}" && isTrue "${MICROCODE_INITRAMFS}" && isTrue "${INTEGRATED_INITRAMFS}"
+ then
+ # Force a user decision
+ gen_die "Cannot embed microcode in initramfs when --integrated-initramfs is set. Either change option to --no-integrated-initramfs or --no-microcode-initramfs!"
+ fi
+
if isTrue "${FIRMWARE}"
then
- for ff in ${FIRMWARE_FILES}; do
- [[ ${ff} = /* ]] && gen_die "FIRMWARE_FILES should list paths relative to FIRMWARE_DIR, not absolute."
+ IFS=',' read -r -a FIRMWARE_FILES <<< "${FIRMWARE_FILES}"
+ pushd "${FIRMWARE_DIR}" &>/dev/null || gen_die "Failed to chdir to '${FIRMWARE_DIR}'!"
+ local ff
+ for ff in "${FIRMWARE_FILES[@]}"
+ do
+ [[ ${ff} = /* ]] && gen_die "--firmware-files contains value '${ff}' which is not a relative path from '${FIRMWARE_DIR}'!"
+ [[ ! -e "${ff}" ]] && gen_die "--firmware-files contains value '${ff}' which was not found in '${FIRMWARE_DIR}'!"
done
-
- [[ "${FIRMWARE_FILES}" = *,* ]] && gen_die "FIRMWARE_FILES should be a space-separated list."
+ popd &>/dev/null || gen_die "Failed to chdir!"
fi
}
diff --git a/gen_funcs.sh b/gen_funcs.sh
index ba45b02..c31e15a 100755
--- a/gen_funcs.sh
+++ b/gen_funcs.sh
@@ -22,93 +22,123 @@ isTrue() {
return 1
}
-setColorVars() {
- if isTrue "${USECOLOR}"
+anyTrue() {
+ local x
+ for x
+ do
+ isTrue "${x}" && return 0
+ done
+ return 1
+}
+
+set_color_vars() {
+ if ! isTrue "${NOCOLOR}"
then
+ BOLD=$'\e[0;01m'
+ UNDER=$'\e[4m'
GOOD=$'\e[32;01m'
WARN=$'\e[33;01m'
BAD=$'\e[31;01m'
NORMAL=$'\e[0m'
- BOLD=$'\e[0;01m'
- UNDER=$'\e[4m'
else
+ BOLD=''
+ UNDER=''
GOOD=''
WARN=''
BAD=''
NORMAL=''
- BOLD=''
- UNDER=''
fi
}
-setColorVars
+set_color_vars
dump_debugcache() {
- TODEBUGCACHE=0
- echo "${DEBUGCACHE}" >> ${LOGFILE}
+ TODEBUGCACHE=no
+
+ if [ -w "${LOGFILE}" ]
+ then
+ echo "${DEBUGCACHE}" >> "${LOGFILE}"
+ else
+ echo "WARNING: Cannot write to '${LOGFILE}'!"
+ echo "${DEBUGCACHE}"
+ fi
+
+ DEBUGCACHE=
}
# print_info(loglevel, print [, newline [, prefixline [, forcefile ] ] ])
print_info() {
+ local reset_x=0
+ if [ -o xtrace ]
+ then
+ set +x
+ reset_x=1
+ fi
+
local NEWLINE=1
- local FORCEFILE=0
+ local FORCEFILE=1
local PREFIXLINE=1
local SCRPRINT=0
local STR=''
- # NOT ENOUGH ARGS
- if [ "$#" -lt '2' ] ; then return 1; fi
+ [[ ${#} -lt 2 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes at least two arguments (${#} given)!"
+
+ [[ ${#} -gt 5 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes at most five arguments (${#} given)!"
# IF 3 OR MORE ARGS, CHECK IF WE WANT A NEWLINE AFTER PRINT
- if [ "$#" -gt '2' ]
+ if [ ${#} -gt 2 ]
then
if isTrue "$3"
then
- NEWLINE='1';
+ NEWLINE=1
else
- NEWLINE='0';
+ NEWLINE=0
fi
fi
# IF 4 OR MORE ARGS, CHECK IF WE WANT TO PREFIX WITH A *
- if [ "$#" -gt '3' ]
+ if [ ${#} -gt 3 ]
then
if isTrue "$4"
then
- PREFIXLINE='1'
+ PREFIXLINE=1
else
- PREFIXLINE='0'
+ PREFIXLINE=0
fi
fi
# IF 5 OR MORE ARGS, CHECK IF WE WANT TO FORCE OUTPUT TO DEBUG
# FILE EVEN IF IT DOESN'T MEET THE MINIMUM DEBUG REQS
- if [ "$#" -gt '4' ]
+ if [ ${#} -gt 4 ]
then
if isTrue "$5"
then
- FORCEFILE='1'
+ FORCEFILE=1
else
- FORCEFILE='0'
+ FORCEFILE=0
fi
fi
# PRINT TO SCREEN ONLY IF PASSED LOGLEVEL IS HIGHER THAN
- # OR EQUAL TO SET DEBUG LEVEL
- if [ "$1" -lt "${LOGLEVEL}" -o "$1" = "${LOGLEVEL}" ]
+ # OR EQUAL TO SET LOG LEVEL
+ if [[ ${1} -lt ${LOGLEVEL} || ${1} -eq ${LOGLEVEL} ]]
then
- SCRPRINT='1'
+ SCRPRINT=1
fi
# RETURN IF NOT OUTPUTTING ANYWHERE
- if [ "${SCRPRINT}" != '1' -a "${FORCEFILE}" != '1' ]
+ if [ ${SCRPRINT} -ne 1 -a ${FORCEFILE} -ne 1 ]
then
+ [ ${reset_x} -eq 1 ] && set -x
+
return 0
fi
# STRUCTURE DATA TO BE OUTPUT TO SCREEN, AND OUTPUT IT
- if [ "${SCRPRINT}" = '1' ]
+ if [ ${SCRPRINT} -eq 1 ]
then
- if [ "${PREFIXLINE}" = '1' ]
+ if [ ${PREFIXLINE} -eq 1 ]
then
STR="${GOOD}*${NORMAL} ${2}"
else
@@ -116,41 +146,48 @@ print_info() {
fi
printf "%b" "${STR}"
- if [ "${NEWLINE}" != '0' ]; then
+
+ if [ ${NEWLINE} -ne 0 ]
+ then
echo
fi
fi
# STRUCTURE DATA TO BE OUTPUT TO FILE, AND OUTPUT IT
- if [ "${SCRPRINT}" = '1' -o "${FORCEFILE}" = '1' ]
+ if [ ${SCRPRINT} -eq 1 -o ${FORCEFILE} -eq 1 ]
then
- STRR=${2//${WARN}/}
+ local STRR=${2//${WARN}/}
STRR=${STRR//${BAD}/}
STRR=${STRR//${BOLD}/}
STRR=${STRR//${NORMAL}/}
- if [ "${PREFIXLINE}" = '1' ]
+ if [ ${PREFIXLINE} -eq 1 ]
then
STR="* ${STRR}"
else
STR="${STRR}"
fi
- if [ "${TODEBUGCACHE}" = '1' ]; then
+ if isTrue "${TODEBUGCACHE}"
+ then
DEBUGCACHE="${DEBUGCACHE}${STR}"
else
- printf "%b" "${STR}" >> ${LOGFILE}
+ printf "%b" "${STR}" >> "${LOGFILE}"
fi
- if [ "${NEWLINE}" != '0' ]; then
- if [ "${TODEBUGCACHE}" = '1' ]; then
+ if [ ${NEWLINE} -ne 0 ]
+ then
+ if isTrue "${TODEBUGCACHE}"
+ then
DEBUGCACHE="${DEBUGCACHE}"$'\n'
else
- echo >> ${LOGFILE}
+ echo >> "${LOGFILE}"
fi
fi
fi
+ [ ${reset_x} -eq 1 ] && set -x
+
return 0
}
@@ -162,82 +199,336 @@ print_warning() {
GOOD=${WARN} print_info "$@"
}
+can_run_programs_compiled_by_genkernel() {
+ local can_run_programs=no
+
+ if ! isTrue "$(tc-is-cross-compiler)"
+ then
+ can_run_programs=yes
+ else
+ if [[ ${CBUILD} = x86_64* && ${ARCH} == "x86" ]]
+ then
+ can_run_programs=yes
+ elif [[ ${CBUILD} = powerpc64* && ${ARCH} == "powerpc" ]]
+ then
+ can_run_programs=yes
+ fi
+ fi
+
+ echo "${can_run_programs}"
+}
+
+has_space_characters() {
+ [[ ${#} -ne 1 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes exactly one argument (${#} given)!"
+
+ local testvalue=${1}
+ local has_space_characters=no
+
+ local space_pattern='[[:space:]]'
+ if [[ "${testvalue}" =~ ${space_pattern} ]]
+ then
+ has_space_characters=yes
+ fi
+
+ echo "${has_space_characters}"
+}
+
+is_glibc() {
+ if ! hash getconf &>/dev/null
+ then
+ gen_die "getconf not found. Unable to determine libc implementation!"
+ fi
+
+ local is_glibc=no
+
+ getconf GNU_LIBC_VERSION &>/dev/null
+ [ $? -eq 0 ] && is_glibc=yes
+
+ echo "${is_glibc}"
+}
+
+is_gzipped() {
+ [[ ${#} -ne 1 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes exactly one argument (${#} given)!"
+
+ local file_to_check=${1}
+
+ if [ ! -f "${file_to_check}" ]
+ then
+ gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): File '${file_to_check}' does not exist!"
+ fi
+
+ local file_is_gzipped=no
+ local file_mimetype=$(file --brief --mime-type "${file_to_check}" 2>/dev/null)
+
+ case "${file_mimetype}" in
+ application/x-gzip)
+ file_is_gzipped=yes
+ ;;
+ application/gzip)
+ file_is_gzipped=yes
+ ;;
+ esac
+
+ echo "${file_is_gzipped}"
+}
+
+is_psf_file() {
+ [[ ${#} -ne 1 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes exactly one argument (${#} given)!"
+
+ local file_to_check=${1}
+
+ if [ ! -f "${file_to_check}" ]
+ then
+ gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): File '${file_to_check}' does not exist!"
+ fi
+
+ local file_is_psf=no
+ local file_brief=$(file --brief "${file_to_check}" 2>/dev/null)
+
+ if [[ "${file_brief}" == *"PC Screen Font"* ]]
+ then
+ file_is_psf=yes
+ fi
+
+ echo "${file_is_psf}"
+}
+
+is_kext_supported_by_kmod() {
+ [[ ${#} -ne 1 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes exactly one argument (${#} given)!"
+
+ local requested_feature=${1}
+ requested_feature=${requested_feature##*.}
+ requested_feature=${requested_feature^^}
+
+ local is_supported=no
+
+ if [[ "${requested_feature}" == GZ ]]
+ then
+ requested_feature=ZLIB
+ elif [[ "${requested_feature}" == ZST ]]
+ then
+ requested_feature=ZSTD
+ fi
+
+ case "${requested_feature}" in
+ KO)
+ is_supported=yes
+ ;;
+ *)
+ local line
+ while read line; do
+ if [[ ! ${line} =~ ^[\+\-] ]]
+ then
+ continue
+ fi
+
+ if [[ ${line} =~ \+${requested_feature} ]]
+ then
+ is_supported=yes
+ break
+ fi
+ done < <("${KMOD_CMD}" -V 2>/dev/null)
+ ;;
+ esac
+
+ echo "${is_supported}"
+}
+
+is_valid_ssh_host_keys_parameter_value() {
+ local parameter_value=${1}
+
+ local is_valid=no
+ case "${parameter_value}" in
+ create|create-from-host|runtime)
+ is_valid=yes
+ ;;
+ esac
+
+ echo "${is_valid}"
+}
+
+is_valid_triplet() {
+ [[ ${#} -ne 1 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes exactly one argument (${#} given)!"
+
+ local triplet=${1}
+ local is_triplet=no
+
+ if [[ "${triplet}" =~ ^[^-]{2,}-[^-]{2,}-.{2,} ]]
+ then
+ is_triplet=yes
+ fi
+
+ echo "${is_triplet}"
+}
+
# var_replace(var_name, var_value, string)
# $1 = variable name
# $2 = variable value
# $3 = string
var_replace() {
+ [[ ${#} -ne 3 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes exactly three arguments (${#} given)!"
+
# Escape '\' and '.' in $2 to make it safe to use
# in the later sed expression
local SAFE_VAR
- SAFE_VAR=`echo "${2}" | sed -e 's/\([\/\.]\)/\\\\\\1/g'`
+ SAFE_VAR=$(echo "${2}" | sed -e 's#\([/.]\)#\\\1#g')
echo "${3}" | sed -e "s/%%${1}%%/${SAFE_VAR}/g" -
+ if [ $? -ne 0 ]
+ then
+ gen_die "var_replace() failed: 1: '${1}' 2: '${2}' 3: '${3}'"
+ fi
}
arch_replace() {
+ [[ ${#} -ne 1 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes exactly one argument (${#} given)!"
+
var_replace "ARCH" "${ARCH}" "${1}"
}
cache_replace() {
- var_replace "CACHE" "${CACHE_DIR}/${GK_V}" "${1}"
+ [[ ${#} -ne 1 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes exactly one argument (${#} given)!"
+
+ var_replace "CACHE" "${GK_V_CACHEDIR}" "${1}"
}
-clear_log() {
- if [ -f "${LOGFILE}" ]
- then
- (echo > "${LOGFILE}") 2>/dev/null || small_die "Genkernel: Could not write to ${LOGFILE}."
- fi
+kv_replace() {
+ [[ ${#} -ne 1 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes exactly one argument (${#} given)!"
+
+ var_replace "KV" "${KV}" "${1}"
+}
+
+# Internal func. The first argument is the version info to expand.
+# Query the preprocessor to improve compatibility across different
+# compilers rather than maintaining a --version flag matrix. #335943
+_gcc_fullversion() {
+ local ver="$1"; shift
+ set -- $($(tc-getCPP "$@") -E -P - <<<"__GNUC__ __GNUC_MINOR__ __GNUC_PATCHLEVEL__")
+ eval echo "$ver"
+}
+
+# @FUNCTION: gcc-fullversion
+# @RETURN: compiler version (major.minor.micro: [3.4.6])
+gcc-fullversion() {
+ _gcc_fullversion '$1.$2.$3' "$@"
+}
+# @FUNCTION: gcc-version
+# @RETURN: compiler version (major.minor: [3.4].6)
+gcc-version() {
+ _gcc_fullversion '$1.$2' "$@"
+}
+# @FUNCTION: gcc-major-version
+# @RETURN: major compiler version (major: [3].4.6)
+gcc-major-version() {
+ _gcc_fullversion '$1' "$@"
+}
+# @FUNCTION: gcc-minor-version
+# @RETURN: minor compiler version (minor: 3.[4].6)
+gcc-minor-version() {
+ _gcc_fullversion '$2' "$@"
+}
+# @FUNCTION: gcc-micro-version
+# @RETURN: micro compiler version (micro: 3.4.[6])
+gcc-micro-version() {
+ _gcc_fullversion '$3' "$@"
}
gen_die() {
+ set +x
+
dump_debugcache
if [ "$#" -gt '0' ]
then
print_error 1 "ERROR: ${1}"
fi
- print_error 1 ''
- print_error 1 "-- Grepping log... --"
- print_error 1 ''
- if isTrue "${USECOLOR}"
+ if [[ -n "${GK_MASTER_PID}" && ${BASHPID} != ${GK_MASTER_PID} ]]
then
- GREP_COLOR='1' grep -B5 -E --colour=always "([Ww][Aa][Rr][Nn][Ii][Nn][Gg]|[Ee][Rr][Rr][Oo][Rr][ :,!]|[Ff][Aa][Ii][Ll][Ee]?[Dd]?)" ${LOGFILE} \
- | sed -s "s|^\(*\)\?|${BAD}*${NORMAL}|"
+ # We died in a subshell! Let's trigger trap function...
+ kill -s SIGTERM ${GK_MASTER_PID}
else
- grep -B5 -E "([Ww][Aa][Rr][Nn][Ii][Nn][Gg]|[Ee][Rr][Rr][Oo][Rr][ :,!]|[Ff][Aa][Ii][Ll][Ee]?[Dd]?)" ${LOGFILE}
+ if [ -z "${GK_DIED_IN}" ]
+ then
+ GK_DIED_IN="$(get_useful_function_stack)"
+ else
+ # We are already dying
+ exit 1
+ fi
+
+ # Don't trust $LOGFILE before determine_real_args() was called
+ if [ -n "${CMD_LOGFILE}" -a -s "${LOGFILE}" ]
+ then
+ print_error 1 "Please consult '${LOGFILE}' for more information and any"
+ print_error 1 "errors that were reported above."
+ print_error 1 ''
+ fi
+
+ print_error 1 "Report any genkernel bugs to bugs.gentoo.org and"
+ print_error 1 "assign your bug to genkernel@gentoo.org. Please include"
+ print_error 1 "as much information as you can in your bug report; attaching"
+ print_error 1 "'${LOGFILE}' so that your issue can be dealt with effectively."
+ print_error 1 ''
+ print_error 1 "Please do ${BOLD}*not*${NORMAL} report ${BOLD}kernel${NORMAL} compilation failures as genkernel bugs!"
+ print_error 1 ''
+
+ restore_boot_mount_state
+
+ # Cleanup temp dirs and caches if requested
+ cleanup
fi
- print_error 1 ''
- print_error 1 "-- End log... --"
- print_error 1 ''
- print_error 1 "Please consult ${LOGFILE} for more information and any"
- print_error 1 "errors that were reported above."
- print_error 1 ''
- print_error 1 "Report any genkernel bugs to bugs.gentoo.org and"
- print_error 1 "assign your bug to genkernel@gentoo.org. Please include"
- print_error 1 "as much information as you can in your bug report; attaching"
- print_error 1 "${LOGFILE} so that your issue can be dealt with effectively."
- print_error 1 ''
- print_error 1 'Please do *not* report compilation failures as genkernel bugs!'
- print_error 1 ''
-
- # Cleanup temp dirs and caches if requested
- isTrue "${CMD_DEBUGCLEANUP}" && cleanup
+
exit 1
}
-getIndent() {
- [[ "$#" -lt '1' ]] &&
- gen_die 'getIndent(): improper usage!'
+get_grep_cmd_for_file() {
+ [[ ${#} -ne 1 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes exactly one argument (${#} given)!"
+
+ local config_file=${1}
+
+ local grep_cmd=${GREP_CMD}
+ if isTrue "$(is_gzipped "${config_file}")"
+ then
+ grep_cmd=${ZGREP_CMD}
+ fi
+
+ # zgrep for example is optional
+ if [ -z "${grep_cmd}" ]
+ then
+ gen_die "$(get_useful_function_stack "${FUNCNAME}")No grep implementation found which can process '${config_file}'!"
+ fi
+
+ echo "${grep_cmd}"
+}
+
+# @FUNCTION: get_indent
+# @USAGE: <level>
+# @DESCRIPTION:
+# Returns the indent level in spaces.
+#
+# <level> Indentation level.
+get_indent() {
+ [[ ${#} -ne 1 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes exactly one argument (${#} given)!"
local _level=${1}
local _indent=
local _indentTemplate=" "
local i=0
- while [[ ${i} -lt ${_level} ]]; do
+ while [[ ${i} -lt ${_level} ]]
+ do
_indent+=${_indentTemplate}
i=$[$i+1]
done
@@ -245,119 +536,240 @@ getIndent() {
echo "${_indent}"
}
-isBootRO() {
- return $(awk '( $2 == "'${BOOTDIR}'" && $4 ~ /(^|,)ro(,|$)/){ I=1; exit }END{print !I }' /proc/mounts);
+get_initramfs_compression_method_by_compression() {
+ local -a methods=()
+ methods+=( XZ )
+ methods+=( LZMA )
+ methods+=( ZSTD )
+ methods+=( GZIP )
+ methods+=( BZIP2 )
+ methods+=( LZO )
+ methods+=( LZ4 )
+
+ echo "${methods[@]}"
+}
+
+get_initramfs_compression_method_by_speed() {
+ local -a methods=()
+ methods+=( LZ4 )
+ methods+=( ZSTD )
+ methods+=( LZO )
+ methods+=( GZIP )
+ methods+=( BZIP2 )
+ methods+=( LZMA )
+ methods+=( XZ )
+
+ echo "${methods[@]}"
}
setup_cache_dir() {
- [ ! -d "${CACHE_DIR}/${GK_V}" ] && mkdir -p "${CACHE_DIR}/${GK_V}"
+ if [ ! -d "${GK_V_CACHEDIR}" ]
+ then
+ mkdir -p "${GK_V_CACHEDIR}" || gen_die "Failed to create '${GK_V_CACHEDIR}'!"
+ fi
if isTrue "${CLEAR_CACHEDIR}"
then
- print_info 1 "Clearing cache dir contents from ${CACHE_DIR} ..."
+ print_info 2 "Clearing cache dir contents from ${CACHE_DIR} ..."
while read i
do
- print_info 1 "$(getIndent 1)>> removing ${i}"
+ print_info 3 "$(get_indent 1)>> removing ${i}"
rm "${i}"
- done < <(find "${CACHE_DIR}" -maxdepth 2 -type f -name '*.tar.*' -o -name '*.bz2')
+ done < <(find "${CACHE_DIR}" -maxdepth 2 -type f -name '*.tar.*' -o -name '*.bz2' -o -name '*.xz')
fi
}
+cleanup() {
+ # Child processes we maybe want to kill can only appear in
+ # current session
+ local session=$(ps -o sess= ${$} 2>/dev/null | awk '{ print $1 }')
+ if [ -n "${session}" ]
+ then
+ # Time to kill any still running child process.
+ # All our childs will have GK_SHARE environment variable set.
+ local -a killed_pids
+
+ local pid_to_kill=
+ while IFS= read -r -u 3 pid_to_kill
+ do
+ # Don't kill ourselves or we will trigger trap
+ [ "${pid_to_kill}" = "${BASHPID}" ] && continue
+
+ # Killing process group allows us to catch grandchilds
+ # with clean environment, too.
+ if kill -${pid_to_kill} &>/dev/null
+ then
+ killed_pids+=( ${pid_to_kill} )
+ fi
+ done 3< <(ps e -s ${session} 2>/dev/null | grep GK_SHARE= 2>/dev/null | awk '{ print $1 }')
+
+ if [ ${#killed_pids[@]} -gt 0 ]
+ then
+ # Be patient -- still running process could prevent cleanup!
+ sleep 3
+
+ # Add one valid pid so that ps command won't fail
+ killed_pids+=( ${BASHPID} )
+
+ killed_pids=$(IFS=,; echo "${killed_pids[*]}")
+
+ # Processes had enough time to gracefully terminate!
+ while IFS= read -r -u 3 pid_to_kill
+ do
+ # Don't kill ourselves or we will trigger trap
+ [ "${pid_to_kill}" = "${BASHPID}" ] && continue
+
+ kill -9 -${pid_to_kill} &>/dev/null
+ done 3< <(ps --no-headers -q ${killed_pids} 2>/dev/null | awk '{ print $1 }')
+ fi
+ else
+ print_warning 1 "Failed to determine session leader; Will not try to stop child processes"
+ fi
+
+ if isTrue "${CLEANUP}"
+ then
+ if [ -n "${TEMP}" -a -d "${TEMP}" ]
+ then
+ rm -rf "${TEMP}"
+ fi
+
+ if isTrue "${POSTCLEAR}"
+ then
+ echo
+ print_info 2 'Running final cache/tmp cleanup ...'
+ print_info 3 "CACHE_DIR: ${CACHE_DIR}"
+ CLEAR_CACHEDIR=yes setup_cache_dir
+ echo
+ print_info 3 "TMPDIR: ${TMPDIR}"
+ clear_tmpdir
+ fi
+ else
+ print_info 2 "--no-cleanup is set; Skipping cleanup ..."
+ print_info 3 "TEMP: ${TEMP}"
+ print_info 3 "CACHE_DIR: ${CACHE_DIR}"
+ print_info 3 "TMPDIR: ${TMPDIR}"
+ fi
+
+ GK_TIME_END=$(date +%s)
+ let GK_TIME_RUNTIME_SECONDS=${GK_TIME_END}-${GK_TIME_START}
+ let GK_TIME_RUNTIME_DAYS=${GK_TIME_RUNTIME_SECONDS}/86400
+ TZ= printf ">>> Ended on: $(date +"%Y-%m-%d %H:%M:%S") (after %d days%(%k hours %M minutes %S seconds)T)\n" ${GK_TIME_RUNTIME_DAYS} ${GK_TIME_RUNTIME_SECONDS} >> "${LOGFILE}" 2>/dev/null
+}
+
clear_tmpdir() {
if isTrue "${CMD_INSTALL}"
then
- TMPDIR_CONTENTS=`ls ${TMPDIR}`
- print_info 1 "Removing tmp dir contents"
+ TMPDIR_CONTENTS=$(ls "${TMPDIR}")
+ print_info 2 "Removing tmp dir contents"
for i in ${TMPDIR_CONTENTS}
do
- print_info 1 "$(getIndent 1)>> removing ${i}"
- rm -r ${TMPDIR}/${i}
+ print_info 3 "$(get_indent 1)>> removing ${i}"
+ rm -r "${TMPDIR}/${i}"
done
fi
}
-#
+# @FUNCTION: copy_image_with_preserve
+# @USAGE: <symlink name> <source image> <dest image>
+# @DESCRIPTION:
# Function to copy various kernel boot image products to the boot directory,
# preserve a generation of old images (just like the manual kernel build's
# "make install" does), and maintain the symlinks (if enabled).
#
-# Arguments:
-# $1 Symlink name. Symlink on the boot directory. Path not included.
-# $2 Source image. Fully qualified path name of the source image.
-# $3 Dest image. Name of the destination image in the boot directory,
-# no path included. This script pushd's into ${BOOTDIR} in order to
-# create relative symlinks just like the manual kernel build.
+# <symlink name> Symlink in the boot directory. Path not included.
#
-# - JRG
+# <source image> Fully qualified path name of the source image.
#
+# <dest image> Name of the destination image in the boot directory,
+# no path included.
copy_image_with_preserve() {
- local symlinkName=$1
- local newSrceImage=$2
- local fullDestName=$3
+ [[ ${#} -ne 3 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes exactly three arguments (${#} given)!"
+
+ local symlinkName=${1}
+ local newSrceImage=${2}
+ local fullDestName=${3}
local currDestImage
local prevDestImage
- local currDestImageExists=0
- local prevDestImageExists=0
- print_info 4 "Copying new ${symlinkName} image, " 0
+ print_info 3 "Shall copy new ${symlinkName} image, " 0
# Old product might be a different version. If so, we need to read
# the symlink to see what it's name is, if there are symlinks.
- cd ${KERNEL_OUTPUTDIR}
+ cd "${KERNEL_OUTPUTDIR}" || gen_die "Failed to chdir to '${KERNEL_OUTPUTDIR}'!"
if isTrue "${SYMLINK}"
then
- print_info 4 "automatically managing symlinks and old images." 1 0
+ print_info 3 "automatically managing symlinks and old images." 1 0
if [ -e "${BOOTDIR}/${symlinkName}" ]
then
# JRG: Do I need a special case here for when the standard symlink
# name is, in fact, not a symlink?
- currDestImage=`readlink --no-newline ${BOOTDIR}/${symlinkName}`
- print_info 5 " Current ${symlinkName} symlink exists:"
- print_info 5 " ${currDestImage}"
+ currDestImage=$(readlink --no-newline "${BOOTDIR}/${symlinkName}")
+ print_info 4 "Current ${symlinkName} symlink exists:"
+ print_info 4 " ${currDestImage}"
else
currDestImage="${fullDestName}"
- print_info 5 " Current ${symlinkName} symlink did not exist."
- print_info 5 " Defaulted to: ${currDestImage}"
- fi
-
- if [ -e "${BOOTDIR}/${currDestImage}" ]
- then
- currDestImageExists=1
- print_info 5 " Actual image file exists."
+ print_info 4 "Current ${symlinkName} symlink does NOT exist."
+ print_info 4 " Defaulted to: ${currDestImage}"
fi
if [ -e "${BOOTDIR}/${symlinkName}.old" ]
then
# JRG: Do I need a special case here for when the standard symlink
# name is, in fact, not a symlink?
- prevDestImage=`readlink --no-newline ${BOOTDIR}/${symlinkName}.old`
- print_info 5 " Old ${symlinkName} symlink exists:"
- print_info 5 " ${prevDestImage}"
+ prevDestImage=$(readlink --no-newline "${BOOTDIR}/${symlinkName}.old")
+ print_info 4 "Old ${symlinkName} symlink exists:"
+ print_info 4 " ${prevDestImage}"
else
prevDestImage="${fullDestName}.old"
- print_info 5 " Old ${symlinkName} symlink did not exist."
- print_info 5 " Defaulted to: ${prevDestImage}"
- fi
-
- if [ -e "${BOOTDIR}/${prevDestImage}" ]
- then
- prevDestImageExists=1
- print_info 5 " Actual old image file exists."
+ print_info 4 "Old ${symlinkName} symlink does NOT exist."
+ print_info 4 " Defaulted to: ${prevDestImage}"
fi
else
- print_info 4 "symlinks not being handled by genkernel." 1 0
+ print_info 3 "symlinks not being handled by genkernel." 1 0
currDestImage="${fullDestName}"
prevDestImage="${fullDestName}.old"
fi
+ if [ -e "${BOOTDIR}/${currDestImage}" ]
+ then
+ local currDestImageExists=yes
+ print_info 4 "Actual image file '${BOOTDIR}/${currDestImage}' does exist."
+ else
+ local currDestImageExists=no
+ print_info 4 "Actual image file '${BOOTDIR}/${currDestImage}' does NOT exist."
+ fi
+
+ if [ -e "${BOOTDIR}/${prevDestImage}" ]
+ then
+ local prevDestImageExists=yes
+ print_info 4 "Actual old image file '${BOOTDIR}/${prevDestImage}' does exist."
+ else
+ local prevDestImageExists=no
+ print_info 4 "Actual old image file '${BOOTDIR}/${prevDestImage}' does NOT exist."
+ fi
+
# When symlinks are not being managed by genkernel, old symlinks might
# still be useful. Leave 'em alone unless managed.
if isTrue "${SYMLINK}"
then
- print_info 5 " Deleting old symlinks, if any."
- rm -f "${BOOTDIR}/${symlinkName}"
- rm -f "${BOOTDIR}/${symlinkName}.old"
+ local -a old_symlinks=()
+ old_symlinks+=( "${BOOTDIR}/${symlinkName}" )
+ old_symlinks+=( "${BOOTDIR}/${symlinkName}.old" )
+
+ local old_symlink=
+ for old_symlink in "${old_symlinks[@]}"
+ do
+ if [ -L "${old_symlink}" ]
+ then
+ print_info 4 "Deleting old symlink '${old_symlink}' ..."
+ rm "${old_symlink}" || gen_die "Failed to delete '${old_symlink}'!"
+ else
+ print_info 4 "Old symlink '${old_symlink}' does NOT exist; Skipping ..."
+ fi
+ done
+ unset old_symlinks old_symlink
fi
# We only erase the .old image when it is the exact same version as the
@@ -366,57 +778,921 @@ copy_image_with_preserve() {
# kernel build works.
if [ "${currDestImage}" == "${fullDestName}" ]
then
- #
# Case for new and currrent of the same base version.
- #
- print_info 5 " Same base version. May have to delete old image to make room."
+ print_info 4 "Same base version (${currDestImage})."
- if [ "${currDestImageExists}" = '1' ]
+ if isTrue "${currDestImageExists}"
then
if [ -e "${BOOTDIR}/${currDestImage}.old" ]
then
- print_info 5 " Deleting old identical version ${symlinkName}."
- rm -f "${BOOTDIR}/${currDestImage}.old"
+ print_info 3 "Deleting old identical ${symlinkName} version '${BOOTDIR}/${currDestImage}.old' ..."
+ rm "${BOOTDIR}/${currDestImage}.old" \
+ || gen_die "Failed to delete '${BOOTDIR}/${currDestImage}.old'!"
fi
- print_info 5 " Moving ${BOOTDIR}/${currDestImage}"
- print_info 5 " to ${BOOTDIR}/${currDestImage}.old"
- mv "${BOOTDIR}/${currDestImage}" "${BOOTDIR}/${currDestImage}.old" ||
- gen_die "Could not rename the old ${symlinkName} image!"
+
+ print_info 3 "Moving '${BOOTDIR}/${currDestImage}' to '${BOOTDIR}/${currDestImage}.old' ..."
+ mv "${BOOTDIR}/${currDestImage}" "${BOOTDIR}/${currDestImage}.old" \
+ || gen_die "Could not rename the old ${symlinkName} image!"
+
prevDestImage="${currDestImage}.old"
- prevDestImageExists=1
+ prevDestImageExists=yes
fi
else
- #
# Case for new / current not of the same base version.
- #
- print_info 5 " Different base version. Do not delete old images."
+ print_info 4 "Different base version."
prevDestImage="${currDestImage}"
currDestImage="${fullDestName}"
fi
- print_info 5 " Copying ${symlinkName}: ${newSrceImage}"
- print_info 5 " to ${BOOTDIR}/${currDestImage}"
- cp "${newSrceImage}" "${BOOTDIR}/${currDestImage}" ||
- gen_die "Could not copy the ${symlinkName} image to ${BOOTDIR}!"
+ print_info 3 "Copying '${newSrceImage}' to '${BOOTDIR}/${currDestImage}' ..."
+ cp -aL "${newSrceImage}" "${BOOTDIR}/${currDestImage}" \
+ || gen_die "Failed to copy '${newSrceImage}' to '${BOOTDIR}/${currDestImage}'!"
if isTrue "${SYMLINK}"
then
- print_info 5 " Make new symlink(s) (from ${BOOTDIR}):"
- print_info 5 " ${symlinkName} -> ${currDestImage}"
- pushd ${BOOTDIR} >/dev/null
- ln -s "${currDestImage}" "${symlinkName}" ||
- gen_die "Could not create the ${symlinkName} symlink!"
+ print_info 3 "Creating '${symlinkName}' -> '${currDestImage}' symlink ..."
+ ln -s "${currDestImage}" "${BOOTDIR}/${symlinkName}" \
+ || gen_die "Failed to create '${symlinkName}' -> '${currDestImage}' symlink!"
- if [ "${prevDestImageExists}" = '1' ]
+ if isTrue "${prevDestImageExists}"
then
- print_info 5 " ${symlinkName}.old -> ${prevDestImage}"
- ln -s "${prevDestImage}" "${symlinkName}.old" ||
- gen_die "Could not create the ${symlinkName}.old symlink!"
+ print_info 3 "Creating '${symlinkName}.old' -> '${prevDestImage}' symlink ..."
+ ln -s "${prevDestImage}" "${BOOTDIR}/${symlinkName}.old" \
+ || "Failed to create '${symlinkName}.old' -> '${prevDestImage}' symlink!"
fi
- popd >/dev/null
fi
}
+dropbear_create_key() {
+ [[ ${#} -ne 2 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes exactly two arguments (${#} given)!"
+
+ local key_file=${1}
+ local command=${2}
+ local key_type=$(dropbear_get_key_type_from_filename "${key_file}")
+
+ local -a envvars=(
+ "GK_SHARE='${GK_SHARE}'"
+ "LOGLEVEL='${LOGLEVEL}'"
+ "LOGFILE='${LOGFILE}'"
+ "NOCOLOR='${NOCOLOR}'"
+ "PATH='${PATH}'"
+ "TEMP='${TEMP}'"
+ )
+
+ envvars+=(
+ "DROPBEAR_COMMAND='${command}'"
+ "DROPBEAR_KEY_FILE='${key_file}'"
+ "DROPBEAR_KEY_TYPE='${key_type}'"
+ )
+
+ if isTrue "${SANDBOX}"
+ then
+ envvars+=( "SANDBOX_LOG='$(get_temp_file "sandbox_XXXXXX.log")'" )
+ envvars+=( "SANDBOX_WRITE='${LOGFILE}:${TEMP}:/proc/thread-self/attr/fscreate'" )
+ fi
+
+ # set up worker signal handler
+ local error_msg_detail="Failed to create dropbear key '${key_file}'!"
+ local error_msg="gen_worker.sh aborted: ${error_msg_detail}"
+ trap "gen_die \"${error_msg}\"" SIGABRT SIGHUP SIGQUIT SIGINT SIGTERM
+
+ local dropbear_command=( "env -i" )
+ dropbear_command+=( "${envvars[*]}" )
+ dropbear_command+=( "${SANDBOX_COMMAND}" )
+ dropbear_command+=( "${GK_SHARE}/gen_worker.sh" )
+ dropbear_command+=( "dropbear" )
+ dropbear_command+=( "2>&1" )
+ eval "${dropbear_command[@]}"
+
+ local RET=$?
+
+ # restore default trap
+ set_default_gk_trap
+
+ [ ${RET} -ne 0 ] && gen_die "$(get_useful_function_stack)${error_msg_detail}"
+}
+
+dropbear_get_key_type_from_filename() {
+ [[ ${#} -ne 1 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes exactly one argument (${#} given)!"
+
+ local key=${1}
+ local type=
+
+ case "${key}" in
+ *_dss_*)
+ type=dss
+ ;;
+ *_ecdsa_*)
+ type=ecdsa
+ ;;
+ *_ed25519_*)
+ type=ed25519
+ ;;
+ *_rsa_*)
+ type=rsa
+ ;;
+ *)
+ gen_die "Failed to determine key type from '${key}'!"
+ ;;
+ esac
+
+ echo "${type}"
+}
+
+dropbear_generate_key_info_file() {
+ [[ ${#} -ne 3 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes exactly three arguments (${#} given)!"
+
+ local command=${1}
+ local key_info_file=${2}
+ local initramfs_dropbear_dir=${3}
+ local key_file="${initramfs_dropbear_dir}/$(basename "${key_info_file/%_key.*/_key}")"
+ local key_type=$(dropbear_get_key_type_from_filename "${key_file}")
+
+ local -a envvars=(
+ "GK_SHARE='${GK_SHARE}'"
+ "LOGLEVEL='${LOGLEVEL}'"
+ "LOGFILE='${LOGFILE}'"
+ "NOCOLOR='${NOCOLOR}'"
+ "PATH='${PATH}'"
+ "TEMP='${TEMP}'"
+ )
+
+ envvars+=(
+ "DROPBEAR_COMMAND='${command}'"
+ "DROPBEAR_KEY_FILE='${key_file}'"
+ "DROPBEAR_KEY_TYPE='${key_type}'"
+ "DROPBEAR_KEY_INFO_FILE='${key_info_file}'"
+ )
+
+ if isTrue "${SANDBOX}"
+ then
+ envvars+=( "SANDBOX_LOG='$(get_temp_file "sandbox_XXXXXX.log")'" )
+ envvars+=( "SANDBOX_WRITE='${LOGFILE}:${TEMP}:/proc/thread-self/attr/fscreate'" )
+ fi
+
+ # set up worker signal handler
+ local error_msg_detail="Failed to extract dropbear key information from '${key_file}'!"
+ local error_msg="gen_worker.sh aborted: ${error_msg_detail}"
+ trap "gen_die \"${error_msg}\"" SIGABRT SIGHUP SIGQUIT SIGINT SIGTERM
+
+ local dropbear_command=( "env -i" )
+ dropbear_command+=( "${envvars[*]}" )
+ dropbear_command+=( "${SANDBOX_COMMAND}" )
+ dropbear_command+=( "${GK_SHARE}/gen_worker.sh" )
+ dropbear_command+=( "dropbear" )
+ dropbear_command+=( "2>&1" )
+ eval "${dropbear_command[@]}"
+
+ local RET=$?
+
+ # restore default trap
+ set_default_gk_trap
+
+ [ ${RET} -ne 0 ] && gen_die "$(get_useful_function_stack)${error_msg_detail}"
+}
+
+# @FUNCTION: debug_breakpoint
+# @USAGE: [<NAME>]
+# @DESCRIPTION:
+# Internal helper function which can be used during development to act like
+# a breakpoint. I.e. will stop execution and show some variables.
+#
+# <NAME> Give breakpoint a name
+debug_breakpoint() {
+ set +x
+ local name=${1}
+ [ -n "${name}" ] && name=" '${name}'"
+
+ echo "Debug breakpoint${name} reached"
+ echo "TEMP: ${TEMP}"
+ [[ -n "${WORKDIR}" ]] && echo "WORKDIR: ${WORKDIR}"
+ [[ -n "${S}" ]] && echo "S: ${S}"
+ [[ -n "${D}" ]] && echo "D: ${D}"
+
+ if [ -n "${GK_WORKER_MASTER_PID}" ]
+ then
+ [[ ${BASHPID:-$(__bashpid)} == ${GK_WORKER_MASTER_PID} ]] || kill -s SIGTERM ${GK_WORKER_MASTER_PID}
+ else
+ [[ ${BASHPID:-$(__bashpid)} == ${GK_MASTER_PID} ]] || kill -s SIGTERM ${GK_MASTER_PID}
+ fi
+
+ exit 99
+}
+
+get_chost_libdir() {
+ local cc=$(tc-getCC)
+
+ local test_file=$(${cc} -print-file-name=libc.a 2>/dev/null)
+ if [ -z "${test_file}" ]
+ then
+ gen_die "$(get_useful_function_stack "${FUNCNAME}")Unable to determine CHOST's libdir: '${cc} -print-file-name=libc.a' returned nothing!"
+ elif [[ "${test_file}" == "libc.a" ]]
+ then
+ gen_die "$(get_useful_function_stack "${FUNCNAME}")Unable to determine CHOST's libdir: '${cc} -print-file-name=libc.a' returned no path!"
+ fi
+
+ local test_file_realpath=$(realpath "${test_file}" 2>/dev/null)
+ if [ -z "${test_file_realpath}" ]
+ then
+ gen_die "$(get_useful_function_stack "${FUNCNAME}")Unable to determine CHOST's libdir: 'realpath \"${test_file}\"' returned nothing!"
+ fi
+
+ local libdir=$(dirname "${test_file_realpath}" 2>/dev/null)
+ if [ -z "${libdir}" ]
+ then
+ gen_die "$(get_useful_function_stack "${FUNCNAME}")Unable to determine CHOST's libdir!"
+ fi
+
+ echo "${libdir}"
+}
+
+get_du() {
+ [[ ${#} -ne 1 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes exactly one argument (${#} given)!"
+
+ [ -z "${DU_COMMAND}" ] && return
+
+ local sz=( $("${DU_COMMAND}" -hs "${1}" 2>/dev/null) )
+ echo "${sz[0]}"
+}
+
+_get_gkpkg_var_value() {
+ [[ ${#} -ne 2 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes exactly two arguments (${#} given)!"
+
+ local VARNAME=${1}
+ case "${VARNAME}" in
+ BINPKG|DEPS|PN|PV|SRCDIR|SRCTAR)
+ ;;
+ *)
+ # Let's make variable support explicit
+ gen_die "$(get_useful_function_stack)Variable '${VARNAME}' is not supported by ${FUNCNAME}()!"
+ ;;
+ esac
+
+ local PN=${2}
+ [[ -z "${PN}" ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): No package specified!"
+
+ [[ -z "${GKPKG_LOOKUP_TABLE[${PN}]}" ]] \
+ && gen_die "$(get_useful_function_stack)Internal error: Package '${PN}' is unknown! Was package added to software.sh?"
+
+ local REQUESTED_VARNAME="${GKPKG_LOOKUP_TABLE[${PN}]}_${VARNAME}"
+ local REQUESTED_VALUE="${!REQUESTED_VARNAME}"
+ [[ ${VARNAME} != 'DEPS' && -z "${REQUESTED_VALUE}" ]] \
+ && gen_die "$(get_useful_function_stack)Internal error: Variable '${REQUESTED_VARNAME}' is not set!"
+
+ echo "${REQUESTED_VALUE}"
+}
+
+get_gkpkg_binpkg() {
+ [[ ${#} -ne 1 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes exactly one argument (${#} given)!"
+
+ local PN=${1}
+
+ _get_gkpkg_var_value BINPKG ${PN}
+}
+
+get_gkpkg_deps() {
+ [[ ${#} -ne 1 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes exactly one argument (${#} given)!"
+
+ local PN=${1}
+ [[ -z "${PN}" ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): No package specified!"
+
+ _get_gkpkg_var_value DEPS ${PN}
+}
+
+get_gkpkg_srcdir() {
+ [[ ${#} -ne 1 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes exactly one argument (${#} given)!"
+
+ local PN=${1}
+ [[ -z "${PN}" ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): No package specified!"
+
+ _get_gkpkg_var_value SRCDIR ${PN}
+}
+
+get_gkpkg_srctar() {
+ [[ ${#} -ne 1 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes exactly one argument (${#} given)!"
+
+ local PN=${1}
+ [[ -z "${PN}" ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): No package specified!"
+
+ _get_gkpkg_var_value SRCTAR ${PN}
+}
+
+get_gkpkg_version() {
+ [[ ${#} -ne 1 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes exactly one argument (${#} given)!"
+
+ local PN=${1}
+ [[ -z "${PN}" ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): No package specified!"
+
+ _get_gkpkg_var_value PV ${PN}
+}
+
+# @FUNCTION: get_tar_cmd
+# @USAGE: <ARCHIVE>
+# @DESCRIPTION:
+# Returns tar command which can make use of pbzip2, pxz or pigz when
+# possible.
+#
+# <ARCHIVE> Archive file
+get_tar_cmd() {
+ [[ ${#} -ne 1 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes exactly one arguments (${#} given)!"
+
+ local archive_file=${1}
+
+ local -a tar_cmd
+ tar_cmd+=( "${TAR_COMMAND}" )
+ tar_cmd+=( '-c' )
+
+ local pcmd
+ if [[ "${archive_file}" == *.tar.bz2 ]]
+ then
+ pcmd=$(type -P pbzip2 2>/dev/null)
+ elif [[ "${archive_file}" == *.tar.xz ]]
+ then
+ pcmd="'xz -T$(makeopts_jobs)'"
+ elif [[ "${archive_file}" == *.tar.gz ]]
+ then
+ pcmd=$(type -P pigz 2>/dev/null)
+ fi
+
+ if [ -n "${pcmd}" ]
+ then
+ tar_cmd+=( "-I ${pcmd}" )
+ else
+ tar_cmd+=( '-a' )
+ fi
+
+ tar_cmd+=( '-pf' )
+ tar_cmd+=( "${archive_file}" )
+
+ echo "${tar_cmd[@]}"
+}
+
+get_tc_vars() {
+ local -a tc_vars=()
+ tc_vars+=( AR )
+ tc_vars+=( AS )
+ tc_vars+=( CC )
+ tc_vars+=( CPP )
+ tc_vars+=( CXX )
+ tc_vars+=( LD )
+ tc_vars+=( STRIP )
+ tc_vars+=( NM )
+ tc_vars+=( RANLIB )
+ tc_vars+=( READELF )
+ tc_vars+=( OBJCOPY )
+ tc_vars+=( OBJDUMP )
+ tc_vars+=( PKG_CONFIG )
+
+ echo "${tc_vars[@]}"
+}
+
+# @FUNCTION: get_temp_file
+# @USAGE: [<TEMPLATE>] [<TMPDIR>]
+# @DESCRIPTION:
+# Create and return a temporary file (wrapper for mktemp with
+# built-in error checking and handling).
+#
+# <TEMPLATE> TEMPLATE must contain at least 3 consecutive 'X's in
+# last component.
+# Defaults to tmp_XXXXXXXX
+#
+# <TMPDIR> Directory where the temporary file will be created in.
+# Defaults to $TEMP
+get_temp_file() {
+ local template=${1:-"tmp_XXXXXXXX"}
+ local tmpdir=${2:-"${TEMP}"}
+ local tempfile=$(mktemp -p "${tmpdir}" ${template} 2>/dev/null)
+
+ [ -z "${tempfile}" ] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")'mktemp -p \"${tmpdir}\" ${template}' failed!"
+
+ echo "${tempfile}"
+}
+
+get_udevdir() {
+ local pkg_config=$(tc-getPKG_CONFIG)
+
+ if ${pkg_config} --exists udev
+ then
+ local udevdir="$(${pkg_config} --variable=udevdir udev)"
+
+ if [ -n "${BROOT}" ]
+ then
+ udevdir="${udevdir#${BROOT%/}}"
+ fi
+ else
+ udevdir="/lib/udev"
+ fi
+
+ echo "${udevdir}"
+}
+
+get_useful_function_stack() {
+ local end_function=${1:-${FUNCNAME}}
+ local n_functions=${#FUNCNAME[@]}
+ local last_function=$(( n_functions - 1 )) # -1 because arrays are starting with 0
+ local first_function=0
+
+ local stack_str=
+ local last_function_name=
+ while [ ${last_function} -gt ${first_function} ]
+ do
+ last_function_name=${FUNCNAME[last_function]}
+ last_function=$(( last_function - 1 ))
+
+ case "${last_function_name}" in
+ __module_main|main)
+ # filter main function
+ continue
+ ;;
+ ${end_function})
+ # this the end
+ break
+ ;;
+ *)
+ ;;
+ esac
+
+ stack_str+="${last_function_name}(): "
+ done
+
+ echo "${stack_str}"
+}
+
+_tc-getPROG() {
+ local tuple=${!1:-""}
+ local v var vars=$2
+ local prog=( $3 )
+
+ var=${vars%% *}
+ for v in ${vars} ; do
+ if [[ -n ${!v} ]] ; then
+ export ${var}="${!v}"
+ echo "${!v}"
+ return 0
+ fi
+ done
+
+ # We allow user to specify different CC/AS/MAKE/LD... values for
+ # building kernel and utilities. To avoid having multiple tc-get*
+ # functions, we default to utilities and allow switching via
+ # TC_PROG_TYPE variable.
+ local type=UTILS
+ if [ -n "${TC_PROG_TYPE}" -a "${TC_PROG_TYPE}" = "KERNEL" ]
+ then
+ type=KERNEL
+ fi
+
+ local prog_default_varname=
+ local prog_override_varname=
+ for v in ${vars} ; do
+ prog_default_varname="DEFAULT_${type}_${v}"
+ if [[ -n "${!prog_default_varname}" ]]
+ then
+ prog_override_varname="${type}_${v}"
+ break
+ fi
+ done
+
+ if [[ -n "${!prog_default_varname}" ]] \
+ && [[ -n "${!prog_override_varname}" ]] \
+ && [[ "${!prog_override_varname}" != "${!prog_default_varname}" ]]
+ then
+ # User wants to run specific program
+ prog[0]=${!prog_override_varname}
+ elif isTrue "$(tc-is-cross-compiler)"
+ then
+ # Let's try to handle multilib:
+ # We will mimic profile's make.defaults.
+
+ local multilib_cflags multilib_ldflags
+ local cpu_cbuild=${CBUILD%%-*}
+ local cpu_chost=${CHOST%%-*}
+
+ case "${cpu_cbuild}" in
+ powerpc64*)
+ if [[ "${cpu_chost}" == "powerpc" ]]
+ then
+ tuple=${tuple/${cpu_chost}/${cpu_cbuild}}
+ multilib_cflags="-m32"
+ multilib_ldflags="-m elf32ppc"
+ fi
+ ;;
+ x86_64*)
+ if [[ "${cpu_chost}" == "i686" ]]
+ then
+ # changing tuple so that we don't call pure gcc
+ tuple=${tuple/${cpu_chost}/${cpu_cbuild}}
+ multilib_cflags="-m32"
+ multilib_ldflags="-m elf_i386"
+ fi
+ ;;
+ esac
+
+ case "${var}" in
+ CC)
+ [[ -n "${multilib_cflags}" ]] && prog+=( "${multilib_cflags}" )
+ ;;
+ CXX)
+ [[ -n "${multilib_cflags}" ]] && prog+=( "${multilib_cflags}" )
+ ;;
+ LD)
+ [[ -n "${multilib_ldflags}" ]] && prog+=( "${multilib_ldflags}" )
+ ;;
+ esac
+ fi
+
+ local search=
+ [[ -n ${tuple} ]] && search=$(type -p "${tuple}-${prog[0]}")
+ [[ -n ${search} ]] && prog[0]=${search##*/}
+
+ export ${var}="${prog[*]}"
+ echo "${!var}"
+}
+
+tc-export() {
+ local var
+ for var in "$@"
+ do
+ [[ $(type -t "tc-get${var}") != "function" ]] && gen_die "tc-export: invalid export variable '${var}'"
+ "tc-get${var}" > /dev/null
+ done
+}
+
+tc-getAR() {
+ tc-getPROG AR ar "$@"
+}
+
+tc-getAS() {
+ tc-getPROG AS as "$@"
+}
+
+tc-getBUILD_AR() {
+ tc-getBUILD_PROG AR ar "$@"
+}
+
+tc-getBUILD_CC() {
+ tc-getBUILD_PROG CC gcc "$@"
+}
+
+tc-getBUILD_CPP() {
+ local cc=$(tc-getBUILD_CC)
+ tc-getPROG CPP "${cc} -E" "$@"
+}
+
+tc-getBUILD_CXX() {
+ tc-getBUILD_PROG CXX g++ "$@"
+}
+
+tc-getBUILD_LD() {
+ tc-getBUILD_PROG LD ld "$@"
+}
+
+tc-getBUILD_READELF() {
+ tc-getBUILD_PROG READELF readelf "$@"
+}
+
+tc-getCC() {
+ tc-getPROG CC gcc "$@"
+}
+
+tc-getCPP() {
+ local cc=$(tc-getCC)
+ tc-getPROG CPP "${cc} -E" "$@"
+}
+
+tc-getCXX() {
+ tc-getPROG CXX g++ "$@"
+}
+
+tc-getLD() {
+ tc-getPROG LD ld "$@"
+}
+
+tc-getNM() {
+ tc-getPROG NM nm "$@"
+}
+
+tc-getOBJCOPY() {
+ tc-getPROG OBJCOPY objcopy "$@"
+}
+
+tc-getOBJDUMP() {
+ tc-getPROG OBJDUMP objdump "$@"
+}
+
+tc-getPKG_CONFIG() {
+ if [ -n "${BROOT}" ]
+ then
+ echo "${BROOT}/usr/bin/pkg-config-wrapper"
+ else
+ tc-getPROG PKG_CONFIG pkg-config "$@"
+ fi
+}
+
+tc-getREADELF() {
+ tc-getPROG READELF readelf "$@"
+}
+
+tc-getBUILD_PROG() {
+ local vars="BUILD_$1 $1_FOR_BUILD HOST$1"
+ # respect host vars if not cross-compiling
+ # https://bugs.gentoo.org/630282
+ isTrue "$(tc-is-cross-compiler)" || vars+=" $1"
+ _tc-getPROG CBUILD "${vars}" "${@:2}"
+}
+
+tc-getPROG() {
+ _tc-getPROG CHOST "$@"
+}
+
+tc-getRANLIB() {
+ tc-getPROG RANLIB ranlib "$@"
+}
+
+tc-getSTRIP() {
+ tc-getPROG STRIP strip "$@"
+}
+
+tc-is-cross-compiler() {
+ local wants_cross_compile=no
+ if [[ "${CBUILD:-${CHOST}}" != "${CHOST}" ]]
+ then
+ wants_cross_compile=yes
+ fi
+
+ echo ${wants_cross_compile}
+}
+
+trap_cleanup() {
+ # Call exit code of 1 for failure
+ if [ -t 0 ]
+ then
+ # try to restore output in case we were trapped while
+ # redirecting output...
+ exec &> /dev/tty
+ fi
+
+ local signal_msg=
+ if [ -n "${GK_TRAP_SIGNAL}" ]
+ then
+ case "${GK_TRAP_SIGNAL}" in
+ SIGABRT|SIGHUP|SIGQUIT|SIGINT|SIGTERM)
+ signal_msg=" (signal ${GK_TRAP_SIGNAL} received)"
+ ;;
+ *)
+ signal_msg=" (unknown signal ${GK_TRAP_SIGNAL} received)"
+ ;;
+ esac
+ fi
+
+ echo ''
+ print_error 1 "Genkernel was unexpectedly terminated${signal_msg}."
+ print_error 1 "Please consult '${LOGFILE}' for more information and any"
+ print_error 1 "errors that were reported above."
+ restore_boot_mount_state silent
+ cleanup
+ exit 1
+}
+
+# @FUNCTION: gkbuild
+# @USAGE: <PKG> <PKG_VERSION> <PKG_SRCDIR> <PKG_SRCTAR> <PKG_BINCACHE> [<PKG_DEPS>]
+# @DESCRIPTION:
+# Builds a package for genkernel's initramfs, with cross-compile support.
+#
+# Genkernel's initramfs uses various utilities like Busybox, LVM,
+# MDADM, cryptsetup or others. gkbuild() will run an ebuild-like script
+# to build such utilities in sandbox environment with cross-compile
+# support (requires existing cross-compile toolchain!).
+#
+# For developers:
+# Any package you want to build using gkbuild() must be correctly added to
+# ${GK_SHARE}/software.sh file, check_distfiles() and determine_real_args()
+# function.
+#
+# For users:
+# Any package you want to add must have set same (initialized!) variables
+# like you can see in ${GK_SHARE}/software.sh.
+#
+# <PKG> Name of the package (as used in ${GK_SHARE}/patches).
+#
+# <PKG_VERSION> Version of the package.
+#
+# <PKG_SRCDIR> Source directory when unpacked.
+#
+# <PKG_SRCTAR> Source file. Only archives supported by `tar -xaf` are
+# supported.
+#
+# <PKG_BINCACHE> File where genkernel will store the package's image.
+#
+# <PKG_DEPS> Single word string of required package's PKG_BINCACHE.
+gkbuild() {
+ [[ ${#} -lt 5 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes at least five arguments (${#} given)!"
+ [[ ${#} -gt 7 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes at most six arguments (${#} given)!"
+
+ local PKG=${1}
+ local VERSION=${2}
+ local SRCDIR=${3}
+ local SRCTAR=${4}
+ local BINPKG=${5}
+
+ if [[ "$#" -eq '6' ]]
+ then
+ local DEPS=${6}
+ else
+ local DEPS=""
+ fi
+
+ if [ -z "${PKG}" ]
+ then
+ gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): PKG is not set!"
+ elif [ -z "${VERSION}" ]
+ then
+ gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): VERSION is not set!"
+ elif [ -z "${SRCDIR}" ]
+ then
+ gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): SRCDIR is not set!"
+ elif [ -z "${SRCTAR}" ]
+ then
+ gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): SRCTAR is not set!"
+ elif [ -z "${BINPKG}" ]
+ then
+ gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): BINPKG is not set!"
+ fi
+
+ local -a envvars=(
+ "GK_SHARE='${GK_SHARE}'"
+ "LOGLEVEL='${LOGLEVEL}'"
+ "LOGFILE='${LOGFILE}'"
+ "NOCOLOR='${NOCOLOR}'"
+ "PATH='${PATH}'"
+ "TEMP='${TEMP}'"
+ "TMPDIR='${TEMP}'"
+ )
+
+ envvars+=(
+ "GKPKG_PN='${PKG}'"
+ "GKPKG_PV='${VERSION}'"
+ "GKPKG_SRCDIR='${SRCDIR}'"
+ "GKPKG_SRCTAR='${SRCTAR}'"
+ "GKPKG_BINPKG='${BINPKG}'"
+ "GKPKG_DEPS='${DEPS}'"
+ "DU_COMMAND='${DU_COMMAND}'"
+ "TAR_COMMAND='${TAR_COMMAND}'"
+ )
+
+ envvars+=(
+ "CFLAGS='${CMD_UTILS_CFLAGS}'"
+ "CXXFLAGS='${CMD_UTILS_CFLAGS}'"
+ "CBUILD='${CBUILD}'"
+ "CHOST='${CHOST}'"
+ "AR='$(tc-getAR)'"
+ "AS='$(tc-getAS)'"
+ "CC='$(tc-getCC)'"
+ "CPP='$(tc-getCPP)'"
+ "CXX='$(tc-getCXX)'"
+ "LD='$(tc-getLD)'"
+ "NM='$(tc-getNM)'"
+ "MAKE='${CMD_UTILS_MAKE}'"
+ "OBJCOPY='$(tc-getOBJCOPY)'"
+ "OBJDUMP='$(tc-getOBJDUMP)'"
+ "RANLIB='$(tc-getRANLIB)'"
+ "READELF='$(tc-getREADELF)'"
+ "STRIP='$(tc-getSTRIP)'"
+ )
+
+ local envvar_prefix envvars_to_export envvar_to_export
+ for envvar_prefix in CCACHE_ DISTCC_
+ do
+ envvars_to_export=$(compgen -A variable | grep "^${envvar_prefix}")
+ for envvar_to_export in ${envvars_to_export}
+ do
+ [ -z "${envvar_to_export}" ] && break
+
+ envvars+=( "${envvar_to_export}='${!envvar_to_export}'" )
+ done
+ done
+ unset envvar_prefix envvars_to_export envvar_to_export
+
+ if [ ${NICE} -ne 0 ]
+ then
+ NICEOPTS="nice -n${NICE} "
+ else
+ NICEOPTS=""
+ fi
+ envvars+=( "NICEOPTS='${NICEOPTS}'" )
+
+ envvars+=( "MAKEOPTS='${MAKEOPTS}'" )
+
+ if isTrue "${SANDBOX}"
+ then
+ envvars+=( "SANDBOX_LOG='$(get_temp_file "sandbox_XXXXXX.log")'" )
+ envvars+=( "SANDBOX_WRITE='${LOGFILE}:${TEMP}:/proc/thread-self/attr/fscreate'" )
+ fi
+
+ # set up gkbuild signal handler
+ local error_msg="gen_worker.sh aborted: Failed to compile ${PKG}-${VERSION}!"
+ trap "gen_die \"${error_msg}\"" SIGABRT SIGHUP SIGQUIT SIGINT SIGTERM
+
+ local build_command=( "env -i" )
+ build_command+=( "${envvars[*]}" )
+ build_command+=( "${SANDBOX_COMMAND}" )
+ build_command+=( "${GK_SHARE}/gen_worker.sh" )
+ build_command+=( "build" )
+ build_command+=( "2>&1" )
+ eval "${build_command[@]}"
+
+ local RET=$?
+
+ # remove gkbuild signal handler
+ set_default_gk_trap
+
+ [ ${RET} -ne 0 ] && gen_die "$(get_useful_function_stack)Failed to create binpkg of ${PKG}-${VERSION}!"
+}
+
+# @FUNCTION: unpack
+# @USAGE: <ARCHIVE> <DEST>
+# @DESCRIPTION:
+# Unpack archive file to dest dir using sandbox.
+#
+# <ARCHIVE> Archive to unpack.
+#
+# <DEST> Folder to unpack to.
+unpack() {
+ [[ ${#} -ne 2 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes exactly two arguments (${#} given)!"
+
+ local unpack_file=${1}
+ local unpack_dir=${2}
+
+ local -a envvars=(
+ "GK_SHARE='${GK_SHARE}'"
+ "LOGLEVEL='${LOGLEVEL}'"
+ "LOGFILE='${LOGFILE}'"
+ "NOCOLOR='${NOCOLOR}'"
+ "PATH='${PATH}'"
+ "TEMP='${TEMP}'"
+ )
+
+ envvars+=(
+ "TAR_COMMAND='${TAR_COMMAND}'"
+ "UNPACK_FILE='${unpack_file}'"
+ "UNPACK_DIR='${unpack_dir}'"
+ )
+
+ if isTrue "${SANDBOX}"
+ then
+ envvars+=( "SANDBOX_LOG='$(get_temp_file "sandbox_XXXXXX.log")'" )
+ envvars+=( "SANDBOX_WRITE='${LOGFILE}:${TEMP}:/proc/thread-self/attr/fscreate'" )
+ fi
+
+ # set up unpack signal handler
+ local error_msg_detail="Failed to unpack '${unpack_file}' to '${unpack_dir}'!"
+ local error_msg="gen_worker.sh aborted: ${error_msg_detail}"
+ trap "gen_die \"${error_msg}\"" SIGABRT SIGHUP SIGQUIT SIGINT SIGTERM
+
+ local unpack_command=( "env -i" )
+ unpack_command+=( "${envvars[*]}" )
+ unpack_command+=( "${SANDBOX_COMMAND}" )
+ unpack_command+=( "${GK_SHARE}/gen_worker.sh" )
+ unpack_command+=( "unpack" )
+ unpack_command+=( "2>&1" )
+ eval "${unpack_command[@]}"
+
+ local RET=$?
+
+ # restore default trap
+ set_default_gk_trap
+
+ [ ${RET} -ne 0 ] && gen_die "$(get_useful_function_stack)${error_msg_detail}"
+}
+
+set_default_gk_trap() {
+ local signal
+ for signal in SIGABRT SIGHUP SIGQUIT SIGINT SIGTERM
+ do
+ trap "GK_TRAP_SIGNAL=${signal}; trap_cleanup" ${signal}
+ done
+}
+
#
# Helper function to allow command line arguments to override configuration
# file specified values and to apply defaults.
@@ -445,20 +1721,20 @@ copy_image_with_preserve() {
# - JRG
#
set_config_with_override() {
- local VarType=$1
- local CfgVar=$2
- local OverrideVar=$3
- local Default=$4
+ local VarType=${1}
+ local CfgVar=${2}
+ local OverrideVar=${3}
+ local Default=${4}
local Result
#
# Syntax check the function arguments.
#
- case "$VarType" in
+ case "${VarType}" in
BOOL|STRING)
;;
*)
- gen_die "Illegal variable type \"$VarType\" passed to set_config_with_override()."
+ gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Variable type \"${VarType}\" is unknown!"
;;
esac
@@ -467,26 +1743,30 @@ set_config_with_override() {
Result=${!OverrideVar}
if [ -n "${!CfgVar}" ]
then
- print_info 5 " $CfgVar overridden on command line to \"$Result\"."
+ print_info 5 " ${CfgVar} overridden on command line to \"${Result}\"."
else
- print_info 5 " $CfgVar set on command line to \"$Result\"."
+ print_info 5 " ${CfgVar} set on command line to \"${Result}\"."
fi
else
if [ -n "${!CfgVar}" ]
then
Result=${!CfgVar}
# we need to set the CMD_* according to configfile...
- eval ${OverrideVar}=\"${Result}\"
- print_info 5 " $CfgVar set in config file to \"${Result}\"."
+ eval ${OverrideVar}=\"${Result}\" \
+ || small_die "Failed to set variable '${OverrideVar}=${Result}' !"
+
+ print_info 5 " ${CfgVar} set in config file to \"${Result}\"."
else
- if [ -n "$Default" ]
+ if [ -n "${Default}" ]
then
Result=${Default}
# set OverrideVar to Result, otherwise CMD_* may not be initialized...
- eval ${OverrideVar}=\"${Result}\"
- print_info 5 " $CfgVar defaulted to \"${Result}\"."
+ eval ${OverrideVar}=\"${Result}\" \
+ || small_die "Failed to set variable '${OverrideVar}=${Result}' !"
+
+ print_info 5 " ${CfgVar} defaulted to \"${Result}\"."
else
- print_info 5 " $CfgVar not set."
+ print_info 5 " ${CfgVar} not set."
fi
fi
fi
@@ -501,7 +1781,90 @@ set_config_with_override() {
fi
fi
- eval ${CfgVar}=\"${Result}\"
+ eval ${CfgVar}=\"${Result}\" \
+ || small_die "Failed to set variable '${CfgVar}=${Result}' !"
+}
+
+# @FUNCTION: restore_boot_mount_state
+# @USAGE: [<silent>]
+# @DESCRIPTION:
+# Restores mount state of boot partition to state before genkernel start.
+#
+# <silent> When set makes umount errors non-fatal and will use a loglevel
+# of 5 for any output.
+restore_boot_mount_state() {
+ local silent=no
+ [ -n "${1}" ] && silent=yes
+
+ isTrue "${MOUNTBOOT}" || return
+
+ if [ -f "${TEMP}/.bootdir.remount" ]
+ then
+ local msg="mount: >> Automatically remounting boot partition as read-only on '${BOOTDIR}' as it was previously ..."
+ if isTrue "${silent}"
+ then
+ print_info 5 "${msg}"
+ else
+ print_info 1 '' 1 0
+ print_info 1 "${msg}"
+ fi
+
+ mount -o remount,ro "${BOOTDIR}" &>/dev/null
+ if [ $? -ne 0 ]
+ then
+ local error_msg="Failed to restore read-only state of boot partition on '${BOOTDIR}'!"
+ if isTrue "${silent}"
+ then
+ print_error 1 "${error_msg}"
+ return
+ else
+ gen_die "${error_msg}"
+ fi
+ else
+ rm "${TEMP}/.bootdir.remount" \
+ || gen_die "Failed to remove bootdir state file '${TEMP}/.bootdir.remount'!"
+ fi
+ elif [ -f "${TEMP}/.bootdir.mount" ]
+ then
+ local msg="mount: >> Automatically unmounting boot partition from '${BOOTDIR}' as it was previously ..."
+ if isTrue "${silent}"
+ then
+ print_info 5 "${msg}"
+ else
+ print_info 1 '' 1 0
+ print_info 1 "${msg}"
+ fi
+
+ umount "${BOOTDIR}" &>/dev/null
+ if [ $? -ne 0 ]
+ then
+ local error_msg="Failed to restore mount state of boot partition on '${BOOTDIR}'!"
+ if isTrue "${silent}"
+ then
+ print_error 1 "${error_msg}"
+ return
+ else
+ gen_die "${error_msg}"
+ fi
+ else
+ rm "${TEMP}/.bootdir.mount" \
+ || gen_die "Failed to remove bootdir state file '${TEMP}/.bootdir.mount'!"
+ fi
+ else
+ local msg="mount: >> Boot partition state on '${BOOTDIR}' was not changed; Skipping restore boot partition state ..."
+ if [ -f "${TEMP}/.bootdir.no_boot_partition" ]
+ then
+ msg="mount: >> '${BOOTDIR}' is not a mountpoint; Nothing to restore ..."
+
+ rm "${TEMP}/.bootdir.no_boot_partition" \
+ || gen_die "Failed to remove bootdir state file '${TEMP}/.bootdir.no_boot_partition'!"
+ fi
+
+ print_info 5 '' 1 0
+ print_info 5 "${msg}"
+
+ return
+ fi
}
rootfs_type_is() {
@@ -509,7 +1872,7 @@ rootfs_type_is() {
# It is possible that the awk will return MULTIPLE lines, depending on your
# initramfs setup (one of the entries will be 'rootfs').
- if awk '($2=="/"){print $3}' /proc/mounts | grep -sq --line-regexp "$fstype" ;
+ if awk '($2=="/"){print $3}' /proc/mounts | grep -sq --line-regexp "${fstype}"
then
echo yes
else
@@ -517,96 +1880,401 @@ rootfs_type_is() {
fi
}
+check_disk_space_requirements() {
+ local number_pattern='^[1-9]{1}[0-9]+$'
+ local available_free_disk_space=
+
+ # Start check for BOOTDIR
+ local need_to_check=yes
+
+ if [ -z "${CHECK_FREE_DISK_SPACE_BOOTDIR}" -o "${CHECK_FREE_DISK_SPACE_BOOTDIR}" = '0' ]
+ then
+ need_to_check=no
+ fi
+
+ if isTrue "${need_to_check}" && ! isTrue "${CMD_INSTALL}"
+ then
+ need_to_check=no
+ fi
+
+ if isTrue "${need_to_check}"
+ then
+ if [[ ! "${CHECK_FREE_DISK_SPACE_BOOTDIR}" =~ ${number_pattern} ]]
+ then
+ gen_die "--check-free-disk-space-bootdir value '${CHECK_FREE_DISK_SPACE_BOOTDIR}' is not a valid number!"
+ fi
+
+ available_free_disk_space="$(($(stat -fc '%f * %S' "${BOOTDIR}")))"
+ if [ -n "${available_free_disk_space}" ]
+ then
+ print_info 2 '' 1 0
+ print_info 2 "Checking for at least ${CHECK_FREE_DISK_SPACE_BOOTDIR} MB free disk space in '${BOOTDIR}' ..."
+ print_info 5 "stat(1) reading: ${available_free_disk_space} bytes free"
+
+ bytes_in_mb=1048576
+ minimum_free_space_bytes_bootdir="$((${CHECK_FREE_DISK_SPACE_BOOTDIR} * ${bytes_in_mb}))"
+ if [ "${available_free_disk_space}" -lt "${minimum_free_space_bytes_bootdir}" ]
+ then
+ gen_die "${CHECK_FREE_DISK_SPACE_BOOTDIR} MB free disk space is required in '${BOOTDIR}' but only ${available_free_disk_space} bytes is available!"
+ fi
+ else
+ print_warning 1 "Invalid stat(1) value; Skipping free disk space check for '${BOOTDIR}' ..."
+ fi
+ fi
+
+ # Start check for kernel outputdir
+ need_to_check=yes
+
+ if [ -z "${CHECK_FREE_DISK_SPACE_KERNELOUTPUTDIR}" -o "${CHECK_FREE_DISK_SPACE_KERNELOUTPUTDIR}" = '0' ]
+ then
+ need_to_check=no
+ fi
+
+ if isTrue "${need_to_check}" && ! isTrue "${BUILD_KERNEL}"
+ then
+ need_to_check=no
+ fi
+
+ if isTrue "${need_to_check}"
+ then
+ if [[ ! "${CHECK_FREE_DISK_SPACE_KERNELOUTPUTDIR}" =~ ${number_pattern} ]]
+ then
+ gen_die "--check-free-disk-space-kerneloutputdir value '${CHECK_FREE_DISK_SPACE_KERNELOUTPUTDIR}' is not a valid number!"
+ fi
+
+ available_free_disk_space="$(($(stat -fc '%f * %S' "${KERNEL_OUTPUTDIR}")))"
+ if [ -n "${available_free_disk_space}" ]
+ then
+ print_info 2 '' 1 0
+ print_info 2 "Checking for at least ${CHECK_FREE_DISK_SPACE_KERNELOUTPUTDIR} MB free disk space in '${KERNEL_OUTPUTDIR}' ..."
+ print_info 5 "stat(1) reading: ${available_free_disk_space} bytes free"
+
+ bytes_in_mb=1048576
+ minimum_free_space_bytes_kerneloutputdir="$((${CHECK_FREE_DISK_SPACE_KERNELOUTPUTDIR} * ${bytes_in_mb}))"
+ if [ "${available_free_disk_space}" -lt "${minimum_free_space_bytes_kerneloutputdir}" ]
+ then
+ gen_die "${CHECK_FREE_DISK_SPACE_KERNELOUTPUTDIR} MB free disk space is required in '${KERNEL_OUTPUTDIR}' but only ${available_free_disk_space} bytes is available!"
+ fi
+ else
+ print_warning 1 "Invalid stat(1) value; Skipping free disk space check for '${KERNEL_OUTPUTDIR}' ..."
+ fi
+ fi
+}
+
check_distfiles() {
- for i in \
- $BUSYBOX_SRCTAR \
- $DMRAID_SRCTAR \
- $FUSE_SRCTAR \
- $GPG_SRCTAR \
- $ISCSI_SRCTAR \
- $ISCSI_ISNS_SRCTAR \
- $LIBAIO_SRCTAR \
- $LVM_SRCTAR \
- $MDADM_SRCTAR \
- $MULTIPATH_SRCTAR \
- $UNIONFS_FUSE_SRCTAR
+ local source_files=( $(compgen -A variable | grep '^GKPKG_.*_SRCTAR$') )
+
+ local -a missing_sources
+ local source_file=
+ for source_file in "${source_files[@]}"
do
- if [ ! -f "${i}" ]
+ if [ ! -f "${!source_file}" ]
then
- small_die "Could not find source tarball ${i}. Please refetch."
+ missing_sources+=( "${!source_file}" )
fi
done
+
+ if [[ ${#missing_sources[@]} -gt 0 ]]
+ then
+ for source_file in "${missing_sources[@]}"
+ do
+ print_error 1 "Could not find source file '${source_file}'!"
+ done
+
+ gen_die "Please add missing source file(s) or re-install genkernel!"
+ fi
+}
+
+# @FUNCTION: install_exe
+# @USAGE: <file> <destination>
+# @DESCRIPTION:
+# Finds an executable binary file and installs it in cases where there may be
+# similarly named shell wrapper scripts. This happens when GNU libtool creates
+# an executable named 'foo' while slibtool creates '.libs/foo' and 'foo' is a
+# shell script that should not be installed.
+install_exe() {
+ local file="${1##*/}"
+ local dest="${2}"
+
+ local dir
+ [[ "${1%/*}" == "${file}" ]] || dir="${1%/*}/"
+
+ [[ -f "${dir}${file}" ]] || gen_die "File '${dir}${file}' does not exist!"
+
+ # Ensure only the binaries are installed and not a similarly named wrapper script
+ find "${S}/${dir}" -type f -name "${file}" -print0 |
+ xargs -0 file | grep executable | grep ELF | cut -f 1 -d : |
+ xargs -I '{}' cp -a '{}' "${dest}" ||
+ gen_die "Failed to copy '${S}/${dir}${file}' to '${dest}'!"
}
+# @FUNCTION: expand_file
+# @USAGE: <file>
+# @DESCRIPTION:
+# Expands given file.
+#
+# Will return empty string on error.
expand_file() {
- [[ "$#" -lt '1' ]] &&
+ if [[ "${#}" -lt 1 ]]
+ then
+ # Nothing to do for us
echo ''
+ return
+ fi
+
+ [[ ${#} -gt 1 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes at most five arguments (${#} given)!"
local file="${1}"
local expanded_file=
- expanded_file=$(python -c "import os; print(os.path.expanduser('${file}'))" 2>/dev/null)
+ expanded_file=$("${GK_SHARE}/path_expander.py" "${file}" 2>/dev/null)
if [ -z "${expanded_file}" ]
then
# if Python failed for some reason, just reset
expanded_file=${file}
fi
- expanded_file=$(realpath -q "${expanded_file}" 2>/dev/null)
+ # Try to emulate tilde expansion
+ if [[ "${expanded_file}" == ~+* ]]
+ then
+ expanded_file="${PWD}/${expanded_file:2}"
+ elif [[ "${expanded_file}" == ~-* ]]
+ then
+ expanded_file="${OLDPWD}/${expanded_file:2}"
+ elif [[ "${expanded_file}" == ~* ]]
+ then
+ # We don't support this tilde expansion
+ echo ''
+ return
+ fi
+
+ expanded_file=$(realpath -q -m "${expanded_file}" 2>/dev/null)
echo "${expanded_file}"
}
find_kernel_binary() {
- local kernel_binary=$*
- local curdir=$(pwd)
+ local kernel_binary=${*}
+ local kernel_binary_found=
- cd "${KERNEL_OUTPUTDIR}"
+ pushd "${KERNEL_OUTPUTDIR}" &>/dev/null || gen_die "Failed to chdir to '${KERNEL_OUTPUTDIR}'!"
+
+ local i
for i in ${kernel_binary}
do
if [ -e "${i}" ]
then
- tmp_kernel_binary=$i
+ kernel_binary_found=${i}
break
fi
done
-# if [ -z "${tmp_kernel_binary}" ]
-# then
-# gen_die "Cannot locate kernel binary!"
-# fi
- cd "${curdir}"
- echo "${tmp_kernel_binary}"
+
+ popd &>/dev/null || gen_die "Failed to chdir!"
+
+ echo "${kernel_binary_found}"
}
-function kconfig_get_opt() {
- kconfig="$1"
- optname="$2"
+kconfig_get_opt() {
+ [[ ${#} -ne 2 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes exactly two arguments (${#} given)!"
+
+ local kconfig="${1}"
+ local optname="${2}"
sed -n "${kconfig}" \
-e "/^#\? \?${optname}[ =].*/{ s/.*${optname}[ =]//g; s/is not set\| +//g; p; q }"
}
-function kconfig_set_opt() {
- kconfig="$1"
- optname="$2"
- optval="$3"
+kconfig_set_opt() {
+ [[ ${#} -lt 3 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes at least three arguments (${#} given)!"
+ [[ ${#} -gt 4 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes at most four arguments (${#} given)!"
+
+ local kconfig="${1}"
+ local optname="${2}"
+ local optval="${3}"
+ local indentlevel=${4:-2}
- curropt=$(grep -E "^#? ?${optname}[ =].*$" "${kconfig}")
+ local curropt=$(grep -E "^#? ?${optname}[ =].*$" "${kconfig}")
if [[ -z "${curropt}" ]]
then
- print_info 2 "$(getIndent 2) - Adding option '${optname}' with value '${optval}' to '${kconfig}'..."
- echo "${optname}=${optval}" >> "${kconfig}" ||
- gen_die "Failed to add '${optname}=${optval}' to '$kconfig'"
+ print_info 3 "$(get_indent ${indentlevel}) - Adding option '${optname}' with value '${optval}' to '${kconfig}'..."
+ echo "${optname}=${optval}" >> "${kconfig}" \
+ || gen_die "Failed to add '${optname}=${optval}' to '${kconfig}'"
[ ! -f "${TEMP}/.kconfig_modified" ] && touch "${TEMP}/.kconfig_modified"
elif [[ "${curropt}" != "*#*" && "${curropt#*=}" == "${optval}" ]]
then
- print_info 2 "$(getIndent 2) - Option '${optname}=${optval}' already exists in '${kconfig}'; Skipping..."
+ print_info 3 "$(get_indent ${indentlevel}) - Option '${optname}=${optval}' already set in '${kconfig}'; Skipping ..."
else
- print_info 2 "$(getIndent 2) - Setting option '${optname}' to '${optval}' in '${kconfig}'..."
+ print_info 3 "$(get_indent ${indentlevel}) - Setting option '${optname}' to '${optval}' in '${kconfig}'..."
sed -i "${kconfig}" \
- -e "s/^#\? \?${optname}[ =].*/${optname}=${optval}/g" ||
- gen_die "Failed to set '${optname}=${optval}' in '$kconfig'"
+ -e "s|^#\? \?${optname}[ =].*|${optname}=${optval}|g" \
+ || gen_die "Failed to set '${optname}=${optval}' in '${kconfig}'"
- [ ! -f "${TEMP}/.kconfig_modified" ] && touch "${TEMP}/.kconfig_modified"
+ [ ! -f "${KCONFIG_MODIFIED_MARKER}" ] && touch "${KCONFIG_MODIFIED_MARKER}"
+ fi
+}
+
+make_bootdir_writable() {
+ [ -z "${BOOTDIR}" ] && gen_die "--bootdir is not set!"
+
+ local bootdir_status=unknown
+
+ # Based on mount-boot.eclass code
+ local fstabstate=$(awk "!/^#|^[[:blank:]]+#|^${BOOTDIR//\//\\/}/ {print \$2}" /etc/fstab 2>/dev/null | grep -E "^${BOOTDIR}$" )
+ local procstate=$(awk "\$2 ~ /^${BOOTDIR//\//\\/}\$/ {print \$2}" /proc/mounts 2>/dev/null)
+ local proc_ro=$(awk '{ print $2 " ," $4 "," }' /proc/mounts 2>/dev/null | sed -n "/^${BOOTDIR//\//\\/} .*,ro,/p")
+
+ if [ -n "${fstabstate}" ] && [ -n "${procstate}" ]
+ then
+ if [ -n "${proc_ro}" ]
+ then
+ bootdir_status=1
+ else
+ bootdir_status=0
+ fi
+ elif [ -n "${fstabstate}" ] && [ -z "${procstate}" ]
+ then
+ bootdir_status=2
+ else
+ bootdir_status=3
+ fi
+
+ case "${bootdir_status}" in
+ 0)
+ # Nothing to do -- just pimp the logfile output
+ print_info 5 '' 1 0
+ print_info 5 "mount: >> Boot partition is already mounted in read-write mode on '${BOOTDIR}'."
+ ;;
+ 1) # Remount it rw.
+ if ! isTrue "${MOUNTBOOT}"
+ then
+ gen_die "Boot partition is mounted read-only on '${BOOTDIR}' and I am not allowed to remount due to set --no-mountboot option!"
+ fi
+
+ mount -o remount,rw "${BOOTDIR}" &>/dev/null
+ if [ $? -eq 0 ]
+ then
+ print_info 1 "mount: >> Boot partition was temporarily remounted in read-write mode on '${BOOTDIR}' ..."
+
+ touch "${TEMP}"/.bootdir.remount
+ else
+ gen_die "Failed to remount boot partition in read-write mode on '${BOOTDIR}'!"
+ fi
+ ;;
+ 2) # Mount it rw.
+ if ! isTrue "${MOUNTBOOT}"
+ then
+ gen_die "Boot partition is not mounted on '${BOOTDIR}' and I am not allowed to mount due to set --no-mountboot option!"
+ fi
+
+ mount "${BOOTDIR}" -o rw &>/dev/null
+ if [ $? -eq 0 ]
+ then
+ print_info 1 '' 1 0
+ print_info 1 "mount: >> Boot partition was temporarily mounted on '${BOOTDIR}' ..."
+
+ touch "${TEMP}"/.bootdir.mount
+ else
+ gen_die "Failed to mount set bootdir '${BOOTDIR}'!"
+ fi
+ ;;
+ 3)
+ # Nothing really to do
+ print_info 5 '' 1 0
+ print_info 5 "mount: >> '${BOOTDIR}' is not a mountpoint; Assuming no separate boot partition ..."
+
+ touch "${TEMP}"/.bootdir.no_boot_partition
+ ;;
+ *)
+ gen_die "Internal error: BOOTDIR status ${bootdir_status} is unknown!"
+ ;;
+ esac
+
+ if [ ! -w "${BOOTDIR}" ]
+ then
+ gen_die "Cannot write to bootdir '${BOOTDIR}'!"
fi
}
+
+get_kext_kmod_use_flag() {
+ [[ ${#} -ne 1 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes exactly one argument (${#} given)!"
+
+ local kext=${1}
+ kext=${kext##*.}
+ kext=${kext^^}
+
+ local use_flag=
+
+ case "${kext}" in
+ GZ)
+ use_flag="zlib"
+ ;;
+ KO)
+ ;;
+ XZ)
+ use_flag="lzma"
+ ;;
+ ZST)
+ use_flag="zstd"
+ ;;
+ *)
+ gen_die "$(get_useful_function_stack)Internal error: KEXT '${kext}' is unknown!"
+ ;;
+ esac
+
+ echo "${use_flag}"
+}
+
+# @FUNCTION: get_nproc
+# @USAGE: [${fallback:-1}]
+# @DESCRIPTION:
+# Attempt to figure out the number of processing units available.
+# If the value can not be determined, prints the provided fallback
+# instead. If no fallback is provided, defaults to 1.
+get_nproc() {
+ local nproc
+
+ # GNU
+ if type -P nproc &>/dev/null; then
+ nproc=$(nproc)
+ fi
+
+ # fallback to python2.6+
+ # note: this may fail (raise NotImplementedError)
+ if [[ -z ${nproc} ]] && type -P python &>/dev/null; then
+ nproc=$(python -c 'import multiprocessing; print(multiprocessing.cpu_count());' 2>/dev/null)
+ fi
+
+ if [[ -n ${nproc} ]]; then
+ echo "${nproc}"
+ else
+ echo "${1:-1}"
+ fi
+}
+
+# @FUNCTION: makeopts_jobs
+# @USAGE: [${MAKEOPTS}] [${inf:-999}]
+# @DESCRIPTION:
+# Searches the arguments (defaults to ${MAKEOPTS}) and extracts the jobs number
+# specified therein. Useful for running non-make tools in parallel too.
+# i.e. if the user has MAKEOPTS=-j9, this will echo "9" -- we can't return the
+# number as bash normalizes it to [0, 255]. If the flags haven't specified a
+# -j flag, then "1" is shown as that is the default `make` uses. Since there's
+# no way to represent infinity, we return ${inf} (defaults to 999) if the user
+# has -j without a number.
+makeopts_jobs() {
+ [[ $# -eq 0 ]] && set -- "${MAKEOPTS}"
+ # This assumes the first .* will be more greedy than the second .*
+ # since POSIX doesn't specify a non-greedy match (i.e. ".*?").
+ local jobs=$(echo " $* " | sed -r -n \
+ -e 's:.*[[:space:]](-[a-z]*j|--jobs[=[:space:]])[[:space:]]*([0-9]+).*:\2:p' \
+ -e "s:.*[[:space:]](-[a-z]*j|--jobs)[[:space:]].*:${2:-999}:p")
+ echo ${jobs:-1}
+}
+
+unset GK_DEFAULT_IFS
+declare -r GK_DEFAULT_IFS="${IFS}"
diff --git a/gen_initramfs.sh b/gen_initramfs.sh
index 6ffdf65..2cfa0fd 100755
--- a/gen_initramfs.sh
+++ b/gen_initramfs.sh
@@ -2,7 +2,7 @@
# $Id$
COPY_BINARIES=false
-CPIO_ARGS="--quiet -o -H newc --owner root:root --force-local"
+CPIO_ARGS="--quiet --null -o -H newc --owner root:root --force-local"
# The copy_binaries function is explicitly released under the CC0 license to
# encourage wide adoption and re-use. That means:
@@ -22,534 +22,1191 @@ CPIO_ARGS="--quiet -o -H newc --owner root:root --force-local"
# Usage:
# copy_binaries DESTDIR BINARIES...
copy_binaries() {
- local destdir=$1
+ local destdir=${1}
shift
- COPY_BINARIES=true
+ if [ ! -f "${TEMP}/.binaries_copied" ]
+ then
+ touch "${TEMP}/.binaries_copied" \
+ || gen_die "Failed to set '${TEMP}/.binaries_copied' marker!"
+ fi
- for binary in "$@"; do
+ local binary
+ for binary in "$@"
+ do
[[ -e "${binary}" ]] \
- || gen_die "Binary ${binary} could not be found"
+ || gen_die "Binary ${binary} could not be found"
- if LC_ALL=C lddtree "${binary}" 2>&1 | fgrep -q 'not found'; then
+ if "${LDDTREE_COMMAND}" "${binary}" 2>&1 | grep -F -q 'not found'
+ then
gen_die "Binary ${binary} is linked to missing libraries and may need to be re-built"
fi
done
# This must be OUTSIDE the for loop, we only want to run lddtree etc ONCE.
# lddtree does not have the -V (version) nor the -l (list) options prior to version 1.18
(
- if lddtree -V > /dev/null 2>&1 ; then
- lddtree -l "$@" \
- || gen_die "Binary ${f} or some of its library dependencies could not be copied"
- else
- lddtree "$@" \
- | tr ')(' '\n' \
- | awk '/=>/{ if($3 ~ /^\//){print $3}}' \
- || gen_die "Binary ${f} or some of its library dependencies could not be copied"
- fi ) \
- | sort \
- | uniq \
- | cpio -p --make-directories --dereference --quiet "${destdir}" \
- || gen_die "Binary ${f} or some of its library dependencies could not be copied"
+ if "${LDDTREE_COMMAND}" -V > /dev/null 2>&1
+ then
+ "${LDDTREE_COMMAND}" -l "$@" \
+ || gen_die "Binary '${binary}' or some of its library dependencies could not be copied!"
+ else
+ "${LDDTREE_COMMAND}" "$@" \
+ | tr ')(' '\n' \
+ | awk '/=>/{ if($3 ~ /^\//){print $3}}' \
+ || gen_die "Binary '${binary}' or some of its library dependencies could not be copied!"
+ fi
+ ) \
+ | sort \
+ | uniq \
+ | "${CPIO_COMMAND}" -p --make-directories --dereference --quiet "${destdir}" \
+ || gen_die "Binary '${binary}' or some of its library dependencies could not be copied!"
+}
+
+# @FUNCTION: copy_system_binaries
+# @USAGE: <DESTDIR> <system binaries to copy>
+# @DESCRIPTION:
+# Copies system binaries into dest dir.
+#
+# Difference to copy_binaries() is, that copy_system_binaries() does NOT
+# try to recreate directory structure. Any system binary to copy will be
+# placed into same DESTination DIRectory.
+# Because we focus on *system* binaries, it's safe to assume that everything
+# belongs to the same directory. This assumption will allow us to copy from
+# crossdev environments (i.e. /usr/$CHOST).
+copy_system_binaries() {
+ [[ ${#} -lt 2 ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes at least two arguments (${#} given)!"
+
+ local destdir=${1}
+ shift
+
+ [[ ! -d "${destdir}" ]] \
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Destdir '${destdir}' does NOT exist!"
+
+ if [ ! -f "${TEMP}/.system_binaries_copied" ]
+ then
+ touch "${TEMP}/.system_binaries_copied" \
+ || gen_die "Failed to set '${TEMP}/.system_binaries_copied' marker!"
+ fi
+
+ local binary binary_realpath binary_basename base_dir
+ local binary_dependency binary_dependency_basename
+ for binary in "$@"
+ do
+ [[ -e "${binary}" ]] \
+ || gen_die "$(get_useful_function_stack)System binary '${binary}' could not be found!"
+
+ print_info 5 "System binary '${binary}' should be copied to '${destdir}' ..."
+
+ binary_basename=$(basename "${binary}")
+ if [[ -z "${binary_basename}" ]]
+ then
+ gen_die "$(get_useful_function_stack)Failed to determine basename of '${binary}'!"
+ else
+ print_info 5 "System binary's basename is '${binary_basename}'."
+ fi
+
+ if [[ -e "${destdir}/${binary_basename}" ]]
+ then
+ print_info 5 "System binary '${binary_basename}' already exists in '${destdir}'; Skipping ..."
+ continue
+ fi
+
+ if [[ -L "${binary}" ]]
+ then
+ binary_realpath=$(realpath "${binary}")
+ if [[ -z "${binary_realpath}" ]]
+ then
+ gen_die "$(get_useful_function_stack)Failed to resolve path to '${binary}'!"
+ elif [[ ! -e "${binary_realpath}" ]]
+ then
+ gen_die "$(get_useful_function_stack)System binary '${binary}' was resolved to '${binary_realpath}' but file does NOT exist!"
+ else
+ print_info 5 "System binary '${binary}' resolved to '${binary_realpath}'."
+ binary=${binary_realpath}
+ fi
+ fi
+
+ base_dir=$(dirname "${binary}")
+ if [[ -z "${base_dir}" ]]
+ then
+ gen_die "$(get_useful_function_stack)Failed to determine directory of '${binary}'!"
+ else
+ print_info 5 "System binary dirname set to '${base_dir}'."
+ fi
+
+ local is_first=1
+ while IFS= read -r -u 3 binary_dependency
+ do
+ binary_dependency_basename=$(basename "${binary_dependency}")
+ if [[ -z "${binary_dependency_basename}" ]]
+ then
+ gen_die "$(get_useful_function_stack)Failed to determine basename of '${binary_dependency}'!"
+ fi
+
+ if [[ ${is_first} -eq 1 ]]
+ then
+ # `lddtree -l` first line is always the binary itself
+ print_info 5 "Copying '${base_dir}/${binary_dependency_basename}' to '${destdir}/' ..."
+ cp -aL "${base_dir}/${binary_dependency_basename}" "${destdir}/${binary_basename}" \
+ || gen_die "$(get_useful_function_stack)Failed to copy '${base_dir}/${binary_dependency_basename}' to '${destdir}'!"
+
+ is_first=0
+ elif [[ -e "${destdir}/${binary_dependency_basename}" ]]
+ then
+ print_info 5 "System binary '${binary_basename}' already exists in '${destdir}'; Skipping ..."
+ continue
+ else
+ print_info 5 "Need to copy dependency '${base_dir}/${binary_dependency_basename}' ..."
+ "${FUNCNAME}" "${destdir}" "${base_dir}/${binary_dependency_basename}"
+ fi
+ done 3< <("${LDDTREE_COMMAND}" -l "${binary}" 2>/dev/null)
+ IFS="${GK_DEFAULT_IFS}"
+ done
}
log_future_cpio_content() {
- if [[ "${LOGLEVEL}" -gt 1 ]]; then
- echo =================================================================
- echo "About to add these files from '${PWD}' to cpio archive:"
- find . | xargs ls -ald
- echo =================================================================
+ local dir_size=$(get_du "${PWD}")
+ if [ -n "${dir_size}" ]
+ then
+ dir_size=" (${dir_size})"
+ fi
+
+ print_info 3 "=================================================================" 1 0 1
+ print_info 3 "About to add these files${dir_size} from '${PWD}' to cpio archive:" 1 0 1
+ print_info 3 "$(find . -print0 | xargs --null ls -ald)" 1 0 1
+ print_info 3 "=================================================================" 1 0 1
+}
+
+append_devicemanager() {
+ local PN="lvm"
+ local TDIR="${TEMP}/initramfs-dm-temp"
+ if [ -d "${TDIR}" ]
+ then
+ rm -r "${TDIR}" || gen_die "Failed to clean out existing '${TDIR}'!"
+ fi
+
+ populate_binpkg ${PN}
+
+ mkdir -p "${TDIR}" || gen_die "Failed to create '${TDIR}'!"
+
+ unpack "$(get_gkpkg_binpkg "${PN}")" "${TDIR}"
+
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
+
+ # Delete unneeded files
+ rm -rf \
+ sbin/lvm \
+ usr/include \
+ usr/lib/device-mapper \
+ usr/lib/pkgconfig \
+ usr/lib/lib* \
+ usr/sbin/lvm \
+ usr/share
+
+ log_future_cpio_content
+ find . -print0 | "${CPIO_COMMAND}" ${CPIO_ARGS} --append -F "${CPIO_ARCHIVE}" \
+ || gen_die "Failed to append bcache to cpio!"
+
+ cd "${TEMP}" || die "Failed to chdir to '${TEMP}'!"
+ if isTrue "${CLEANUP}"
+ then
+ rm -rf "${TDIR}"
fi
}
append_devices() {
- if [[ ! -x "${KERNEL_OUTPUTDIR}/usr/gen_init_cpio" ]]; then
- compile_gen_init_cpio
- fi
-
- # WARNING, does NOT support appending to cpio!
- cat >"${TEMP}/initramfs-base-temp.devices" <<-EOF
- dir /dev 0755 0 0
- nod /dev/console 660 0 0 c 5 1
- nod /dev/null 660 0 0 c 1 3
- nod /dev/zero 660 0 0 c 1 5
- nod /dev/tty0 600 0 0 c 4 0
- nod /dev/tty1 600 0 0 c 4 1
- nod /dev/ttyS0 600 0 0 c 4 64
- EOF
- if [[ "${LOGLEVEL}" -gt 1 ]]; then
- echo "$(getIndent 2)Adding devices to cpio:"
- cat "${TEMP}/initramfs-base-temp.devices"
+ if isTrue "${BUSYBOX}"
+ then
+ local TDIR="${TEMP}/initramfs-devices-temp"
+ if [ -d "${TDIR}" ]
+ then
+ rm -r "${TDIR}" || gen_die "Failed to clean out existing '${TDIR}'!"
+ fi
+
+ mkdir -p "${TDIR}/dev" || gen_die "Failed to create '${TDIR}/dev'!"
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
+
+ chmod 0755 dev || gen_die "Failed to chmod of '${TDIR}/dev' to 0755!"
+
+ log_future_cpio_content
+ find . -print0 | "${CPIO_COMMAND}" ${CPIO_ARGS} -F "${CPIO_ARCHIVE}" \
+ || gen_die "Failed to append devices to cpio!"
+
+ cd "${TEMP}" || die "Failed to chdir to '${TEMP}'!"
+ if isTrue "${CLEANUP}"
+ then
+ rm -rf "${TDIR}"
+ fi
+ else
+ local TFILE="${TEMP}/initramfs-base-temp.devices"
+ if [ -f "${TFILE}" ]
+ then
+ rm "${TFILE}" || gen_die "Failed to clean out existing '${TFILE}'!"
+ fi
+
+ if [[ ! -x "${KERNEL_OUTPUTDIR}/usr/gen_init_cpio" ]]; then
+ compile_gen_init_cpio
+ fi
+
+ # WARNING, does NOT support appending to cpio!
+ cat >"${TFILE}" <<-EOF
+ dir /dev 0755 0 0
+ nod /dev/console 660 0 0 c 5 1
+ nod /dev/null 666 0 0 c 1 3
+ nod /dev/random 600 0 0 c 1 8
+ nod /dev/tty0 600 0 0 c 4 0
+ nod /dev/tty1 600 0 0 c 4 1
+ nod /dev/ttyS0 600 0 0 c 4 64
+ nod /dev/ttyS1 600 0 0 c 4 65
+ nod /dev/urandom 600 0 0 c 1 9
+ nod /dev/zero 666 0 0 c 1 5
+ EOF
+
+ print_info 3 "=================================================================" 1 0 1
+ print_info 3 "Adding the following devices to cpio:" 1 0 1
+ print_info 3 "$(cat "${TFILE}")" 1 0 1
+ print_info 3 "=================================================================" 1 0 1
+
+ "${KERNEL_OUTPUTDIR}"/usr/gen_init_cpio "${TFILE}" >"${CPIO_ARCHIVE}" \
+ || gen_die "Failed to append devices to cpio!"
fi
- ${KERNEL_OUTPUTDIR}/usr/gen_init_cpio "${TEMP}/initramfs-base-temp.devices" >"${CPIO}" \
- || gen_die "Failed to add devices to cpio"
}
append_base_layout() {
- if [ -d "${TEMP}/initramfs-base-temp" ]
- then
- rm -rf "${TEMP}/initramfs-base-temp" > /dev/null
- fi
-
- mkdir -p ${TEMP}/initramfs-base-temp/dev
- mkdir -p ${TEMP}/initramfs-base-temp/bin
- mkdir -p ${TEMP}/initramfs-base-temp/etc
- mkdir -p ${TEMP}/initramfs-base-temp/usr
- mkdir -p ${TEMP}/initramfs-base-temp/lib
- mkdir -p ${TEMP}/initramfs-base-temp/mnt
- mkdir -p ${TEMP}/initramfs-base-temp/run
- mkdir -p ${TEMP}/initramfs-base-temp/sbin
- mkdir -p ${TEMP}/initramfs-base-temp/proc
- mkdir -p ${TEMP}/initramfs-base-temp/temp
- mkdir -p ${TEMP}/initramfs-base-temp/tmp
- mkdir -p ${TEMP}/initramfs-base-temp/sys
- mkdir -p ${TEMP}/initramfs-base-temp/.initrd
- mkdir -p ${TEMP}/initramfs-base-temp/var/lock/dmraid
- mkdir -p ${TEMP}/initramfs-base-temp/sbin
- mkdir -p ${TEMP}/initramfs-base-temp/usr/bin
- mkdir -p ${TEMP}/initramfs-base-temp/usr/sbin
- ln -s lib ${TEMP}/initramfs-base-temp/lib64
-
- echo "/dev/ram0 / ext2 defaults 0 0" > ${TEMP}/initramfs-base-temp/etc/fstab
- echo "proc /proc proc defaults 0 0" >> ${TEMP}/initramfs-base-temp/etc/fstab
-
- date -u '+%Y%m%d-%H%M%S' > ${TEMP}/initramfs-base-temp/etc/build_date
- echo "Genkernel $GK_V" > ${TEMP}/initramfs-base-temp/etc/build_id
-
- mkdir -p "${TEMP}/initramfs-base-temp/etc/mdev/helpers"
- install -m 644 -t "${TEMP}/initramfs-base-temp/etc" /usr/share/genkernel/mdev/mdev.conf
- install -m 755 -t "${TEMP}/initramfs-base-temp/etc/mdev/helpers" /usr/share/genkernel/mdev/helpers/nvme
- install -m 755 -t "${TEMP}/initramfs-base-temp/etc/mdev/helpers" /usr/share/genkernel/mdev/helpers/storage-device
-
- cd "${TEMP}/initramfs-base-temp/"
+ local TDIR="${TEMP}/initramfs-base-temp"
+ if [ -d "${TDIR}" ]
+ then
+ rm -r "${TDIR}" || gen_die "Failed to clean out existing '${TDIR}'!"
+ fi
+
+ mkdir "${TDIR}" || gen_die "Failed to create '${TDIR}'!"
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
+
+ local mydir=
+ for mydir in \
+ .initrd \
+ bin \
+ dev \
+ etc \
+ lib \
+ lib/console \
+ lib/dracut \
+ mnt \
+ proc \
+ run \
+ sbin \
+ sys \
+ tmp \
+ usr \
+ usr/bin \
+ usr/lib \
+ usr/sbin \
+ var/empty \
+ var/log \
+ var/run/lock \
+ ; do
+ mkdir -p "${TDIR}"/${mydir} || gen_die "Failed to create '${TDIR}/${mydir}'!"
+ done
+
+ chmod 1777 "${TDIR}"/tmp || gen_die "Failed to chmod of '${TDIR}/tmp' to 1777!"
+
+ # In general, we don't really need lib{32,64} anymore because we now
+ # compile most stuff on our own and therefore don't have to deal with
+ # multilib anymore. However, when copy_binaries() was used to copy
+ # binaries from a multilib-enabled system, this could be a problem.
+ # So let's keep symlinks to ensure that all libraries will land in
+ # /lib.
+ local myliblink
+ for myliblink in \
+ lib32 \
+ lib64 \
+ usr/lib32 \
+ usr/lib64 \
+ ; do
+ ln -s lib ${myliblink} || gen_die "Failed to create symlink '${TDIR}/${myliblink}' to '${TDIR}/lib'!"
+ done
+
+ print_info 2 "$(get_indent 2)>> Populating '/etc/fstab' ..."
+ echo "/dev/ram0 / ext2 defaults 0 0" > "${TDIR}"/etc/fstab \
+ || gen_die "Failed to add /dev/ram0 to '${TDIR}/etc/fstab'!"
+
+ echo "proc /proc proc defaults 0 0" >> "${TDIR}"/etc/fstab \
+ || gen_die "Failed to add proc to '${TDIR}/etc/fstab'!"
+
+ print_info 2 "$(get_indent 2)>> Adding /etc/{group,passwd,shadow} ..."
+ cat >"${TDIR}"/etc/group <<-EOF
+ root:x:0:root
+ bin:x:1:root,bin,daemon
+ daemon:x:2:root,bin,daemon
+ sys:x:3:root,bin,adm
+ adm:x:4:root,adm,daemon
+ tty:x:5:
+ disk:x:6:root,adm
+ lp:x:7:lp
+ mem:x:8:
+ kmem:x:9:
+ wheel:x:10:root
+ floppy:x:11:root
+ news:x:13:news
+ uucp:x:14:uucp
+ console:x:17:
+ audio:x:18:
+ cdrom:x:19:
+ dialout:x:20:
+ tape:x:26:root
+ video:x:27:root
+ render:x:28:
+ rpc:x:32:
+ kvm:x:78:
+ usb:x:85:
+ input:x:97:
+ utmp:x:406:
+ nogroup:x:65533:
+ nobody:x:65534:
+ EOF
+
+ chmod 0644 "${TDIR}"/etc/group \
+ || gen_die "Failed to chmod of '${TDIR}/etc/group'!"
+
+ cat >"${TDIR}"/etc/passwd <<-EOF
+ root:x:0:0:root:/root:/usr/bin/login-remote.sh
+ nobody:x:65534:65534:nobody:/var/empty:/bin/false
+ EOF
+
+ chmod 0644 "${TDIR}"/etc/passwd \
+ || gen_die "Failed to chmod of '${TDIR}/etc/passwd'!"
+
+ echo "root:!:0:0:99999:7:::" > "${TDIR}"/etc/shadow \
+ || gen_die "Failed to create '/etc/shadow'!"
+
+ chmod 0640 "${TDIR}"/etc/shadow \
+ || gen_die "Failed to chmod of '${TDIR}/etc/shadow'!"
+
+ print_info 2 "$(get_indent 2)>> Adding /etc/nsswitch.conf ..."
+ cat >"${TDIR}"/etc/nsswitch.conf <<-EOF
+ # /etc/nsswitch.conf generated by genkernel
+ passwd: files
+ shadow: files
+ group: files
+ EOF
+
+ print_info 2 "$(get_indent 2)>> Adding /etc/ld.so.conf ..."
+ cat >"${TDIR}"/etc/ld.so.conf <<-EOF
+ # ld.so.conf generated by genkernel
+ include ld.so.conf.d/*.conf
+ /lib
+ /usr/lib
+ EOF
+
+ print_info 2 "$(get_indent 2)>> Adding misc files ..."
+ date -u '+%Y-%m-%d %H:%M:%S UTC' > "${TDIR}"/etc/build_date \
+ || gen_die "Failed to create '${TDIR}/etc/build_date'!"
+
+ echo "Genkernel ${GK_V}" > "${TDIR}"/etc/build_id \
+ || gen_die "Failed to create '${TDIR}/etc/build_id'!"
+
+ cat >"${TDIR}"/etc/initrd-release <<-EOF
+ NAME="genkernel"
+ VERSION="genkernel-${GK_V}"
+ ID=genkernel
+ VERSION_ID=${GK_V}
+ PRETTY_NAME="Gentoo/Linux genkernel-${GK_V} (Initramfs)"
+ ANSI_COLOR="0;34"
+ EOF
+
+ cp -a "${GK_SHARE}"/defaults/gksosreport.sh "${TDIR}"/usr/sbin/gksosreport \
+ || gen_die "Failed to copy '${GK_SHARE}/defaults/gksosreport.sh' to '${TDIR}/usr/sbin/gksosreport'"
+
+ chmod 0755 "${TDIR}"/usr/sbin/gksosreport \
+ || gen_die "Failed to chmod of '${TDIR}/usr/sbin/gksosreport'!"
+
+ ln -s /proc/self/mounts "${TDIR}"/etc/mtab \
+ || gen_die "Failed to symlink '/etc/mtab' to '/proc/self/mounts'!"
+
+ # Allow lsinitrd from dracut to process our initramfs
+ echo "$(cat "${TDIR}/etc/build_id") ($(cat "${TDIR}/etc/build_date"))" > "${TDIR}"/lib/dracut/dracut-gk-version.info \
+ || gen_die "Failed to create '${TDIR}/lib/dracut/dracut-gk-version.info'!"
+
+ if [[ "${CMD_BOOTFONT}" == "none" ]]
+ then
+ print_info 3 "$(get_indent 2)>> --boot-font=none set; Not embedding console font ..."
+ else
+ local BOOTFONT_FILE="${TDIR}/lib/console/font"
+
+ if [[ "${CMD_BOOTFONT}" == "current" ]]
+ then
+ print_info 2 "$(get_indent 2)>> Embedding current active console font ..."
+ local -a setfont_cmd=( "${SETFONT_COMMAND}" )
+ setfont_cmd+=( "-O ${BOOTFONT_FILE}" )
+
+ print_info 3 "COMMAND: ${setfont_cmd[*]}" 1 0 1
+ eval "${setfont_cmd[@]}" || gen_die "Failed to dump current active console font!"
+
+ if ! isTrue $(is_psf_file "${BOOTFONT_FILE}")
+ then
+ gen_die "Sanity check failed: Dumped current active console font does NOT look like a valid PC Screen Font (PSF) file!"
+ fi
+ else
+ print_info 2 "$(get_indent 2)>> Embedding '${BOOTFONT}' as console font ..."
+
+ # Already validated in determine_real_args()
+ cp -aL "${BOOTFONT}" "${BOOTFONT_FILE}" \
+ || gen_die "Failed to copy '${BOOTFONT}' to '${BOOTFONT_FILE}'!"
+ fi
+ fi
+
+ local -a build_parameters
+
+ build_parameters+=( --boot-font=${CMD_BOOTFONT} )
+
+ if isTrue "${KEYMAP}"
+ then
+ build_parameters+=( --keymap )
+ isTrue "${DOKEYMAPAUTO}" && build_parameters+=( --do-keymap-auto )
+ else
+ build_parameters+=( --no-keymap )
+ fi
+
+ isTrue "${COMPRESS_INITRD}" && build_parameters+=( --compress-initramfs ) || build_parameters+=( --no-compress-initramfs )
+ isTrue "${MICROCODE_INITRAMFS}" && build_parameters+=( --microcode-initramfs ) || build_parameters+=( --no-microcode-initramfs )
+ isTrue "${RAMDISKMODULES}" && build_parameters+=( --ramdisk-modules ) || build_parameters+=( --no-ramdisk-modules )
+ isTrue "${BUSYBOX}" && build_parameters+=( --busybox ) || build_parameters+=( --no-busybox )
+ isTrue "${BCACHE}" && build_parameters+=( --bcache ) || build_parameters+=( --no-bcache )
+ isTrue "${B2SUM}" && build_parameters+=( --b2sum ) || build_parameters+=( --no-b2sum )
+ isTrue "${BTRFS}" && build_parameters+=( --btrfs ) || build_parameters+=( --no-btrfs )
+ isTrue "${ISCSI}" && build_parameters+=( --iscsi ) || build_parameters+=( --no-iscsi )
+ isTrue "${MULTIPATH}" && build_parameters+=( --multipath ) || build_parameters+=( --no-multipath )
+ isTrue "${DMRAID}" && build_parameters+=( --dmraid ) || build_parameters+=( --no-dmraid )
+ isTrue "${MDADM}" && build_parameters+=( --mdadm ) || build_parameters+=( --no-mdadm )
+ isTrue "${LVM}" && build_parameters+=( --lvm ) || build_parameters+=( --no-lvm )
+ isTrue "${UNIONFS}" && build_parameters+=( --unionfs ) || build_parameters+=( --no-unionfs )
+ isTrue "${ZFS}" && build_parameters+=( --zfs ) || build_parameters+=( --no-zfs )
+ isTrue "${SPLASH}" && build_parameters+=( --splash ) || build_parameters+=( --no-splash )
+ isTrue "${PLYMOUTH}" && build_parameters+=( --plymouth ) || build_parameters+=( --no-plymouth )
+ isTrue "${STRACE}" && build_parameters+=( --strace ) || build_parameters+=( --no-strace )
+ isTrue "${KEYCTL}" && build_parameters+=( --keyctl ) || build_parameters+=( --no-keyctl )
+ isTrue "${GPG}" && build_parameters+=( --gpg ) || build_parameters+=( --no-gpg )
+ isTrue "${LUKS}" && build_parameters+=( --luks ) || build_parameters+=( --no-luks )
+ isTrue "${FIRMWARE}" && build_parameters+=( --firmware ) || build_parameters+=( --no-firmware )
+ [ -n "${FIRMWARE_DIR}" ] && build_parameters+=( --firmware-dir="${FIRMWARE_DIR}" )
+ [ -n "${FIRMWARE_FILES}" ] && build_parameters+=( --firmware-files="${FIRMWARE_FILES}" )
+ isTrue "${SSH}" && build_parameters+=( --ssh ) || build_parameters+=( --no-ssh )
+ isTrue "${E2FSPROGS}" && build_parameters+=( --e2fsprogs ) || build_parameters+=( --no-e2fsprogs )
+ isTrue "${XFSPROGS}" && build_parameters+=( --xfsprogs ) || build_parameters+=( --no-xfsprogs )
+
+ echo "${build_parameters[@]}" > "${TDIR}"/lib/dracut/build-parameter.txt \
+ || gen_die "Failed to create '${TDIR}/lib/dracut/build-parameter.txt'!"
+
+ dd if=/dev/zero of="${TDIR}/var/log/lastlog" bs=1 count=0 seek=0 &>/dev/null \
+ || die "Failed to create '${TDIR}/var/log/lastlog'!"
+
+ dd if=/dev/zero of="${TDIR}/var/log/wtmp" bs=1 count=0 seek=0 &>/dev/null \
+ || die "Failed to create '${TDIR}/var/log/wtmp'!"
+
+ dd if=/dev/zero of="${TDIR}/var/run/utmp" bs=1 count=0 seek=0 &>/dev/null \
+ || die "Failed to create '${TDIR}/var/run/utmp'!"
+
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
log_future_cpio_content
- find . -print | cpio ${CPIO_ARGS} --append -F "${CPIO}" \
- || gen_die "compressing baselayout cpio"
- cd "${TEMP}"
- rm -rf "${TEMP}/initramfs-base-temp" > /dev/null
+ find . -print0 | "${CPIO_COMMAND}" ${CPIO_ARGS} --append -F "${CPIO_ARCHIVE}" \
+ || gen_die "Failed to append baselayout to cpio!"
+
+ cd "${TEMP}" || die "Failed to chdir to '${TEMP}'!"
+ if isTrue "${CLEANUP}"
+ then
+ rm -rf "${TDIR}"
+ fi
}
append_busybox() {
- if [ -d "${TEMP}/initramfs-busybox-temp" ]
+ local PN=busybox
+ local TDIR="${TEMP}/initramfs-${PN}-temp"
+ if [ -d "${TDIR}" ]
then
- rm -rf "${TEMP}/initramfs-busybox-temp" > /dev/null
+ rm -r "${TDIR}" || gen_die "Failed to clean out existing '${TDIR}'!"
fi
- compile_busybox
+ populate_binpkg ${PN}
- mkdir -p "${TEMP}/initramfs-busybox-temp/bin/"
- tar -xf "${BUSYBOX_BINCACHE}" -C "${TEMP}/initramfs-busybox-temp/bin" busybox ||
- gen_die 'Could not extract busybox bincache!'
- chmod +x "${TEMP}/initramfs-busybox-temp/bin/busybox"
+ mkdir "${TDIR}" || gen_die "Failed to create '${TDIR}'!"
- mkdir -p "${TEMP}/initramfs-busybox-temp/usr/share/udhcpc/"
- cp "${GK_SHARE}/defaults/udhcpc.scripts" ${TEMP}/initramfs-busybox-temp/usr/share/udhcpc/default.script
- chmod +x "${TEMP}/initramfs-busybox-temp/usr/share/udhcpc/default.script"
+ unpack "$(get_gkpkg_binpkg "${PN}")" "${TDIR}"
- # Set up a few default symlinks
- local default_applets="[ ash sh mount uname echo cut cat"
- for i in ${BUSYBOX_APPLETS:-${default_applets}}; do
- rm -f ${TEMP}/initramfs-busybox-temp/bin/$i
- ln -s busybox ${TEMP}/initramfs-busybox-temp/bin/$i ||
- gen_die "Busybox error: could not link ${i}!"
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
+
+ # Delete unneeded files
+ rm -rf configs/
+
+ mkdir -p "${TDIR}"/usr/share/udhcpc || gen_die "Failed to create '${TDIR}/usr/share/udhcpc'!"
+
+ cp -a "${GK_SHARE}"/defaults/udhcpc.scripts usr/share/udhcpc/default.script 2>/dev/null \
+ || gen_die "Failed to copy '${GK_SHARE}/defaults/udhcpc.scripts' to '${TDIR}/usr/share/udhcpc/default.script'!"
+
+ local myfile=
+ for myfile in \
+ bin/busybox \
+ usr/share/udhcpc/default.script \
+ ; do
+ chmod +x "${TDIR}"/${myfile} || gen_die "Failed to chmod of '${TDIR}/${myfile}'!"
done
- local mod_applets="sbin/modprobe sbin/insmod sbin/rmmod bin/lsmod"
- local dir=
- local name=
- for i in ${mod_applets}; do
- dir=$(dirname $i)
- name=$(basename $i)
- rm -f ${TEMP}/initramfs-busybox-temp/$dir/$name
- mkdir -p ${TEMP}/initramfs-busybox-temp/$dir ||
- gen_die "Busybox error: could not create dir: $dir"
- ln -s ../bin/busybox ${TEMP}/initramfs-busybox-temp/$dir/$name ||
- gen_die "Busybox error: could not link ${i}!"
+ # Set up a few default symlinks
+ local required_applets='[ ash sh mkdir mknod mount uname echo chmod cut cat touch'
+ local required_applet=
+ for required_applet in ${required_applets}
+ do
+ ln -s busybox "${TDIR}"/bin/${required_applet} \
+ || gen_die "Failed to create Busybox symlink for '${required_applet}' applet!"
done
- cd "${TEMP}/initramfs-busybox-temp/"
+ # allow for DNS resolution
+ if isTrue "$(is_glibc)"
+ then
+ local libdir=$(get_chost_libdir)
+ local libnss_dns="${libdir}/libnss_dns.so"
+
+ # NSS dns module was moved into libc in >=glibc-2.34
+ # but when this file exists we are probably dealing with older glibc
+ # and need to manually copy the module.
+ if [[ -f "${libnss_dns}" ]]
+ then
+ mkdir -p "${TDIR}"/lib || gen_die "Failed to create '${TDIR}/lib'!"
+ copy_system_binaries "${TDIR}"/lib "${libnss_dns}"
+ fi
+ fi
+
log_future_cpio_content
- find . -print | cpio ${CPIO_ARGS} --append -F "${CPIO}" \
- || gen_die "compressing busybox cpio"
- cd "${TEMP}"
- rm -rf "${TEMP}/initramfs-busybox-temp" > /dev/null
+ find . -print0 | "${CPIO_COMMAND}" ${CPIO_ARGS} --append -F "${CPIO_ARCHIVE}" \
+ || gen_die "Failed to append ${PN} to cpio!"
+
+ cd "${TEMP}" || die "Failed to chdir to '${TEMP}'!"
+ if isTrue "${CLEANUP}"
+ then
+ rm -rf "${TDIR}"
+ fi
}
-append_e2fsprogs(){
- if [ -d "${TEMP}"/initramfs-e2fsprogs-temp ]
+append_e2fsprogs() {
+ local PN=e2fsprogs
+ local TDIR="${TEMP}/initramfs-${PN}-temp"
+ if [ -d "${TDIR}" ]
then
- rm -r "${TEMP}"/initramfs-e2fsprogs-temp
+ rm -r "${TDIR}" || gen_die "Failed to clean out existing '${TDIR}'!"
fi
- cd "${TEMP}" \
- || gen_die "cd '${TEMP}' failed"
- mkdir -p initramfs-e2fsprogs-temp
- copy_binaries "${TEMP}"/initramfs-e2fsprogs-temp/ /sbin/{e2fsck,mke2fs}
+ populate_binpkg ${PN}
+
+ mkdir "${TDIR}" || gen_die "Failed to create '${TDIR}'!"
+
+ unpack "$(get_gkpkg_binpkg "${PN}")" "${TDIR}"
- cd "${TEMP}"/initramfs-e2fsprogs-temp \
- || gen_die "cd '${TEMP}/initramfs-e2fsprogs-temp' failed"
- find . -print | cpio ${CPIO_ARGS} --append -F "${CPIO}"
- rm -rf "${TEMP}"/initramfs-e2fsprogs-temp > /dev/null
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
+ log_future_cpio_content
+ find . -print0 | "${CPIO_COMMAND}" ${CPIO_ARGS} --append -F "${CPIO_ARCHIVE}" \
+ || gen_die "Failed to append ${PN} to cpio!"
+
+ cd "${TEMP}" || die "Failed to chdir to '${TEMP}'!"
+ if isTrue "${CLEANUP}"
+ then
+ rm -rf "${TDIR}"
+ fi
}
-append_blkid(){
- if [ -d "${TEMP}/initramfs-blkid-temp" ]
+append_eudev() {
+ local PN=eudev
+ local TDIR="${TEMP}/initramfs-${PN}-temp"
+ if [ -d "${TDIR}" ]
then
- rm -r "${TEMP}/initramfs-blkid-temp/"
+ rm -r "${TDIR}" || gen_die "Failed to clean out existing '${TDIR}'!"
fi
- cd ${TEMP}
- mkdir -p "${TEMP}/initramfs-blkid-temp/"
- if isTrue "${DISKLABEL}"; then
- copy_binaries "${TEMP}"/initramfs-blkid-temp/ /sbin/blkid
+ populate_binpkg ${PN}
+ populate_binpkg hwids
+
+ mkdir "${TDIR}" || gen_die "Failed to create '${TDIR}'!"
+
+ unpack "$(get_gkpkg_binpkg "${PN}")" "${TDIR}"
+ unpack "$(get_gkpkg_binpkg hwids)" "${TDIR}"
+
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
+
+ if isTrue "$(can_run_programs_compiled_by_genkernel)"
+ then
+ print_info 2 "$(get_indent 2)${PN}: >> Pre-generating initramfs' /etc/udev/hwdb.bin ..."
+
+ local gen_hwdb_cmd=( "${TDIR}/usr/bin/udevadm" )
+ gen_hwdb_cmd+=( hwdb --update --root "${TDIR}" )
+ print_info 3 "COMMAND: ${gen_hwdb_cmd[*]}" 1 0 1
+ eval "${gen_hwdb_cmd[@]}" 2>&1 | tee -a "${LOGFILE}" \
+ || gen_die "Failed to pre-generate initramfs' /etc/udev/hwdb.bin!"
+
+ # Now that we have a pre-generated hwdb in initramfs
+ # we can delete source files
+ rm -rf usr/lib/udev/hwdb.d/
fi
- cd "${TEMP}/initramfs-blkid-temp/"
+ # Delete unneeded files
+ rm -rf usr/include \
+ usr/lib/libu* \
+ usr/lib/pkgconfig \
+ usr/share
+
+ # Disable predictable network interface names in initramfs
+ echo "" > usr/lib/udev/rules.d/80-net-name-slot.rules \
+ || gen_die "Failed to disable predictable network interface naming rule"
+
log_future_cpio_content
- find . -print | cpio ${CPIO_ARGS} --append -F "${CPIO}" \
- || gen_die "compressing blkid cpio"
- cd "${TEMP}"
- rm -rf "${TEMP}/initramfs-blkid-temp" > /dev/null
+ find . -print0 | "${CPIO_COMMAND}" ${CPIO_ARGS} --append -F "${CPIO_ARCHIVE}" \
+ || gen_die "Failed to append ${PN} to cpio!"
+
+ cd "${TEMP}" || die "Failed to chdir to '${TEMP}'!"
+ if isTrue "${CLEANUP}"
+ then
+ rm -rf "${TDIR}"
+ fi
}
-#append_fuse() {
-# if [ -d "${TEMP}/initramfs-fuse-temp" ]
-# then
-# rm -r "${TEMP}/initramfs-fuse-temp"
-# fi
-# cd ${TEMP}
-# mkdir -p "${TEMP}/initramfs-fuse-temp/lib/"
-# tar -C "${TEMP}/initramfs-fuse-temp/lib/" -xf "${FUSE_BINCACHE}"
-# cd "${TEMP}/initramfs-fuse-temp/"
-# find . -print | cpio ${CPIO_ARGS} --append -F "${CPIO}" \
-# || gen_die "compressing fuse cpio"
-# rm -rf "${TEMP}/initramfs-fuse-temp" > /dev/null
-#}
+append_b2sum() {
+ local PN="coreutils"
+ local TDIR="${TEMP}/initramfs-b2sum-temp"
+ if [ -d "${TDIR}" ]
+ then
+ rm -r "${TDIR}" || gen_die "Failed to clean out existing '${TDIR}'!"
+ fi
+
+ populate_binpkg ${PN}
+
+ mkdir -p "${TDIR}" || gen_die "Failed to create '${TDIR}'!"
+
+ unpack "$(get_gkpkg_binpkg "${PN}")" "${TDIR}"
+
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
+ log_future_cpio_content
+ find . -print0 | "${CPIO_COMMAND}" ${CPIO_ARGS} --append -F "${CPIO_ARCHIVE}" \
+ || gen_die "Failed to append b2sum to cpio!"
+
+ cd "${TEMP}" || die "Failed to chdir to '${TEMP}'!"
+ if isTrue "${CLEANUP}"
+ then
+ rm -rf "${TDIR}"
+ fi
+}
+
+append_bcache() {
+ local PN="bcache-tools"
+ local TDIR="${TEMP}/initramfs-bcache-temp"
+ if [ -d "${TDIR}" ]
+ then
+ rm -r "${TDIR}" || gen_die "Failed to clean out existing '${TDIR}'!"
+ fi
+
+ populate_binpkg ${PN}
+
+ mkdir -p "${TDIR}" || gen_die "Failed to create '${TDIR}'!"
+
+ unpack "$(get_gkpkg_binpkg "${PN}")" "${TDIR}"
+
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
+ log_future_cpio_content
+ find . -print0 | "${CPIO_COMMAND}" ${CPIO_ARGS} --append -F "${CPIO_ARCHIVE}" \
+ || gen_die "Failed to append bcache to cpio!"
+
+ cd "${TEMP}" || die "Failed to chdir to '${TEMP}'!"
+ if isTrue "${CLEANUP}"
+ then
+ rm -rf "${TDIR}"
+ fi
+}
append_unionfs_fuse() {
- if [ -d "${TEMP}/initramfs-unionfs-fuse-temp" ]
+ local PN=unionfs-fuse
+ local TDIR="${TEMP}/initramfs-${PN}-temp"
+ if [ -d "${TDIR}" ]
then
- rm -r "${TEMP}/initramfs-unionfs-fuse-temp"
+ rm -r "${TDIR}" || gen_die "Failed to clean out existing '${TDIR}'!"
fi
- compile_unionfs_fuse
+ populate_binpkg ${PN}
+
+ mkdir -p "${TDIR}" || gen_die "Failed to create '${TDIR}'!"
+
+ unpack "$(get_gkpkg_binpkg "${PN}")" "${TDIR}"
- cd ${TEMP}
- mkdir -p "${TEMP}/initramfs-unionfs-fuse-temp/sbin/"
- bzip2 -dc "${UNIONFS_FUSE_BINCACHE}" > "${TEMP}/initramfs-unionfs-fuse-temp/sbin/unionfs" ||
- gen_die 'Could not extract unionfs-fuse binary cache!'
- chmod a+x "${TEMP}/initramfs-unionfs-fuse-temp/sbin/unionfs"
- cd "${TEMP}/initramfs-unionfs-fuse-temp/"
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
log_future_cpio_content
- find . -print | cpio ${CPIO_ARGS} --append -F "${CPIO}" \
- || gen_die "compressing unionfs fuse cpio"
- cd "${TEMP}"
- rm -rf "${TEMP}/initramfs-unionfs-fuse-temp" > /dev/null
+ find . -print0 | "${CPIO_COMMAND}" ${CPIO_ARGS} --append -F "${CPIO_ARCHIVE}" \
+ || gen_die "Failed to append ${PN} to cpio!"
+
+ cd "${TEMP}" || die "Failed to chdir to '${TEMP}'!"
+ if isTrue "${CLEANUP}"
+ then
+ rm -rf "${TDIR}"
+ fi
}
-#append_suspend(){
-# if [ -d "${TEMP}/initramfs-suspend-temp" ];
-# then
-# rm -r "${TEMP}/initramfs-suspend-temp/"
-# fi
-# print_info 1 "$(getIndent 2)SUSPEND: Adding support (compiling binaries)..."
-# compile_suspend
-# mkdir -p "${TEMP}/initramfs-suspend-temp/"
-# /bin/tar -xpf "${SUSPEND_BINCACHE}" -C "${TEMP}/initramfs-suspend-temp" ||
-# gen_die "Could not extract suspend binary cache!"
-# mkdir -p "${TEMP}/initramfs-suspend-temp/etc"
-# cp -f /etc/suspend.conf "${TEMP}/initramfs-suspend-temp/etc" ||
-# gen_die 'Could not copy /etc/suspend.conf'
-# cd "${TEMP}/initramfs-suspend-temp/"
-# log_future_cpio_content
-# find . -print | cpio ${CPIO_ARGS} --append -F "${CPIO}" \
-# || gen_die "compressing suspend cpio"
-# rm -r "${TEMP}/initramfs-suspend-temp/"
-#}
+append_util-linux() {
+ local PN="util-linux"
+ local TDIR="${TEMP}/initramfs-util-linux-temp"
+ if [ -d "${TDIR}" ]
+ then
+ rm -r "${TDIR}" || gen_die "Failed to clean out existing '${TDIR}'!"
+ fi
+
+ populate_binpkg ${PN}
+
+ mkdir -p "${TDIR}" || gen_die "Failed to create '${TDIR}'!"
+
+ unpack "$(get_gkpkg_binpkg "${PN}")" "${TDIR}"
+
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
-append_multipath(){
- if [ -d "${TEMP}/initramfs-multipath-temp" ]
+ # Delete unneeded files
+ rm -rf usr/
+
+ log_future_cpio_content
+ find . -print0 | "${CPIO_COMMAND}" ${CPIO_ARGS} --append -F "${CPIO_ARCHIVE}" \
+ || gen_die "Failed to append ${PN} to cpio!"
+
+ cd "${TEMP}" || die "Failed to chdir to '${TEMP}'!"
+ if isTrue "${CLEANUP}"
then
- rm -r "${TEMP}/initramfs-multipath-temp"
+ rm -rf "${TDIR}"
fi
- print_info 1 "$(getIndent 2)Multipath: Adding support (using system binaries)..."
- mkdir -p "${TEMP}"/initramfs-multipath-temp/{bin,etc,sbin,lib}/
+}
- # Copy files
- copy_binaries "${TEMP}/initramfs-multipath-temp" \
- /bin/mountpoint \
- /sbin/{multipath,kpartx,dmsetup} \
- /{lib,lib64}/{udev/scsi_id,multipath/*so}
+append_multipath() {
+ local PN=multipath-tools
+ local TDIR="${TEMP}/initramfs-${PN}-temp"
+ if [ -d "${TDIR}" ]
+ then
+ rm -r "${TDIR}" || gen_die "Failed to clean out existing '${TDIR}'!"
+ fi
- # Support multipath-tools-0.4.8 and previous
- if [ -x /sbin/mpath_prio_* ]
+ mkdir -p "${TDIR}"/etc || gen_die "Failed to create '${TDIR}/etc'!"
+
+ mkdir -p "${TDIR}"/usr/lib/udev/rules.d || gen_die "Failed to create '${TDIR}/usr/lib/udev/rules.d'!"
+
+ local libdir=$(get_chost_libdir)
+ if [[ "${libdir}" =~ ^/usr ]]
then
- copy_binaries "${TEMP}/initramfs-multipath-temp" \
- /sbin/mpath_prio_*
+ libdir=${libdir/\/usr/}
fi
- if [ -x /sbin/multipath ]
+ copy_binaries \
+ "${TDIR}" \
+ /sbin/multipath \
+ /sbin/kpartx \
+ /sbin/mpathpersist \
+ ${libdir}/multipath/lib*.so
+
+ local udevdir=$(get_udevdir)
+ local udevdir_initramfs="/usr/lib/udev"
+ local udev_files=( $(qlist -eC sys-fs/multipath-tools:0 \
+ | grep -E -- "^${udevdir}")
+ )
+
+ if [ ${#udev_files[@]} -eq 0 ]
then
- cp /etc/multipath.conf "${TEMP}/initramfs-multipath-temp/etc/" || gen_die 'could not copy /etc/multipath.conf please check this'
+ gen_die "Something went wrong: Did not found any udev-related files for sys-fs/multipath-tools!"
fi
+
+ local udev_files
+ for udev_file in "${udev_files[@]}"
+ do
+ local dest_file="${TDIR%/}${udev_file/${udevdir}/${udevdir_initramfs}}"
+ cp -aL "${udev_file}" "${dest_file}" \
+ || gen_die "Failed to copy '${udev_file}' to '${dest_file}'"
+ done
+
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
+
+ cp -aL /etc/multipath.conf "${TDIR}"/etc/multipath.conf 2>/dev/null \
+ || gen_die "Failed to copy '/etc/multipath.conf'!"
+
# /etc/scsi_id.config does not exist in newer udevs
# copy it optionally.
- if [ -x /sbin/scsi_id -a -f /etc/scsi_id.config ]
+ if [ -f /etc/scsi_id.config ]
then
- cp /etc/scsi_id.config "${TEMP}/initramfs-multipath-temp/etc/" || gen_die 'could not copy scsi_id.config'
+ cp -aL /etc/scsi_id.config "${TDIR}"/etc/scsi_id.config 2>/dev/null \
+ || gen_die "Failed to copy '/etc/scsi_id.config'!"
fi
- cd "${TEMP}/initramfs-multipath-temp"
+
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
log_future_cpio_content
- find . -print | cpio ${CPIO_ARGS} --append -F "${CPIO}" \
- || gen_die "compressing multipath cpio"
- cd "${TEMP}"
- rm -r "${TEMP}/initramfs-multipath-temp/"
-}
+ find . -print0 | "${CPIO_COMMAND}" ${CPIO_ARGS} --append -F "${CPIO_ARCHIVE}" \
+ || gen_die "Failed to append ${PN} to cpio!"
-append_dmraid(){
- if [ -d "${TEMP}/initramfs-dmraid-temp" ]
+ cd "${TEMP}" || die "Failed to chdir to '${TEMP}'!"
+ if isTrue "${CLEANUP}"
then
- rm -r "${TEMP}/initramfs-dmraid-temp/"
+ rm -rf "${TDIR}"
fi
- print_info 1 "$(getIndent 2)DMRAID: Adding support (compiling binaries)..."
- compile_dmraid
- mkdir -p "${TEMP}/initramfs-dmraid-temp/"
- /bin/tar -xpf "${DMRAID_BINCACHE}" -C "${TEMP}/initramfs-dmraid-temp" ||
- gen_die "Could not extract dmraid binary cache!";
- [ -x /sbin/dmsetup -a -x /sbin/kpartx ] && copy_binaries \
- "${TEMP}/initramfs-dmraid-temp/" \
- /sbin/{kpartx,dmsetup}
- cd "${TEMP}/initramfs-dmraid-temp/"
- module_ext=$(modules_kext)
- RAID456=`find . -type f -name raid456${module_ext}`
- if [ -n "${RAID456}" ]
+}
+
+append_dmraid() {
+ local PN=dmraid
+ local TDIR="${TEMP}/initramfs-${PN}-temp"
+ if [ -d "${TDIR}" ]
then
- cd "${RAID456/raid456${module_ext}/}"
- ln -sf raid456.kp $(basename ${RAID456})
- cd "${TEMP}/initramfs-dmraid-temp/"
+ rm -r "${TDIR}" || gen_die "Failed to clean out existing '${TDIR}'!"
fi
+
+ populate_binpkg ${PN}
+
+ mkdir "${TDIR}" || gen_die "Failed to create '${TDIR}'!"
+
+ unpack "$(get_gkpkg_binpkg "${PN}")" "${TDIR}"
+
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
+
+ # Delete unneeded files
+ rm -rf \
+ usr/lib \
+ usr/share \
+ usr/include
+
log_future_cpio_content
- find . -print | cpio ${CPIO_ARGS} --append -F "${CPIO}" \
- || gen_die "compressing dmraid cpio"
- cd "${TEMP}"
- rm -r "${TEMP}/initramfs-dmraid-temp/"
+ find . -print0 | "${CPIO_COMMAND}" ${CPIO_ARGS} --append -F "${CPIO_ARCHIVE}" \
+ || gen_die "Failed to append dmraid to cpio!"
+
+ cd "${TEMP}" || die "Failed to chdir to '${TEMP}'!"
+ if isTrue "${CLEANUP}"
+ then
+ rm -rf "${TDIR}"
+ fi
}
-append_iscsi(){
- if [ -d "${TEMP}/initramfs-iscsi-temp" ]
+append_iscsi() {
+ local PN=open-iscsi
+ local TDIR="${TEMP}/initramfs-${PN}-temp"
+ if [ -d "${TDIR}" ]
then
- rm -r "${TEMP}/initramfs-iscsi-temp/"
+ rm -r "${TDIR}" || gen_die "Failed to clean out existing '${TDIR}'!"
fi
- print_info 1 "$(getIndent 2)iSCSI: Adding support (compiling binaries)..."
- compile_iscsi
- cd ${TEMP}
- mkdir -p "${TEMP}/initramfs-iscsi-temp/bin/"
- /bin/bzip2 -dc "${ISCSI_BINCACHE}" > "${TEMP}/initramfs-iscsi-temp/bin/iscsistart" ||
- gen_die "Could not extract iscsi binary cache!"
- chmod a+x "${TEMP}/initramfs-iscsi-temp/bin/iscsistart"
- cd "${TEMP}/initramfs-iscsi-temp/"
+
+ populate_binpkg ${PN}
+
+ mkdir -p "${TDIR}" || gen_die "Failed to create '${TDIR}'!"
+
+ unpack "$(get_gkpkg_binpkg "${PN}")" "${TDIR}"
+
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
log_future_cpio_content
- find . -print | cpio ${CPIO_ARGS} --append -F "${CPIO}" \
- || gen_die "compressing iscsi cpio"
- cd "${TEMP}"
- rm -rf "${TEMP}/initramfs-iscsi-temp" > /dev/null
+ find . -print0 | "${CPIO_COMMAND}" ${CPIO_ARGS} --append -F "${CPIO_ARCHIVE}" \
+ || gen_die "Failed to append iscsi to cpio!"
+
+ cd "${TEMP}" || die "Failed to chdir to '${TEMP}'!"
+ if isTrue "${CLEANUP}"
+ then
+ rm -rf "${TDIR}"
+ fi
}
-append_lvm(){
- if [ -d "${TEMP}/initramfs-lvm-temp" ]
+append_keyutils() {
+ local PN=keyutils
+ local TDIR="${TEMP}/initramfs-${PN}-temp"
+ if [ -d "${TDIR}" ]
+ then
+ rm -r "${TDIR}" || gen_die "Failed to clean out existing '${TDIR}'!"
+ fi
+
+ populate_binpkg ${PN}
+
+ mkdir "${TDIR}" || gen_die "Failed to create '${TDIR}'!"
+
+ unpack "$(get_gkpkg_binpkg "${PN}")" "${TDIR}"
+
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
+
+ log_future_cpio_content
+ find . -print0 | "${CPIO_COMMAND}" ${CPIO_ARGS} --append -F "${CPIO_ARCHIVE}" \
+ || gen_die "Failed to append ${PN} to cpio!"
+
+ cd "${TEMP}" || die "Failed to chdir to '${TEMP}'!"
+ if isTrue "${CLEANUP}"
then
- rm -r "${TEMP}/initramfs-lvm-temp/"
+ rm -rf "${TDIR}"
fi
- cd ${TEMP}
- mkdir -p "${TEMP}/initramfs-lvm-temp/bin/"
- mkdir -p "${TEMP}/initramfs-lvm-temp/sbin/"
- mkdir -p "${TEMP}/initramfs-lvm-temp/etc/lvm/"
- mkdir -p "${TEMP}/initramfs-lvm-temp/etc/lvm/cache"
- if false && [ -e '/sbin/lvm.static' ]
+}
+
+append_lvm() {
+ local PN=lvm
+ local TDIR="${TEMP}/initramfs-${PN}-temp"
+ if [ -d "${TDIR}" ]
then
- print_info 1 "$(getIndent 2)LVM: Adding support (using local static binary /sbin/lvm.static)..."
- cp /sbin/lvm.static "${TEMP}/initramfs-lvm-temp/sbin/lvm" ||
- gen_die 'Could not copy over lvm!'
- # See bug 382555
- if [ -e '/sbin/dmsetup.static' ]
- then
- cp /sbin/dmsetup.static "${TEMP}/initramfs-lvm-temp/bin/dmsetup"
- fi
- elif false && [ -e '/sbin/lvm' ] && LC_ALL="C" ldd /sbin/lvm|grep -q 'not a dynamic executable'
+ rm -r "${TDIR}" || gen_die "Failed to clean out existing '${TDIR}'!"
+ fi
+
+ populate_binpkg ${PN}
+ populate_binpkg thin-provisioning-tools
+
+ mkdir "${TDIR}" || gen_die "Failed to create '${TDIR}'!"
+
+ unpack "$(get_gkpkg_binpkg "${PN}")" "${TDIR}"
+ unpack "$(get_gkpkg_binpkg "thin-provisioning-tools")" "${TDIR}"
+
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
+
+ local mydir=
+ for mydir in \
+ etc/lvm/cache \
+ sbin \
+ ; do
+ mkdir -p ${mydir} || gen_die "Failed to create '${TDIR}/${mydir}'!"
+ done
+
+ # Delete unneeded files
+ rm -rf \
+ usr/lib/device-mapper \
+ usr/lib/pkgconfig \
+ usr/lib/lib* \
+ usr/sbin/dm* \
+ usr/share \
+ usr/include
+
+ # Include the LVM config
+ if [ -x /sbin/lvm -o -x /bin/lvm ]
then
- print_info 1 "$(getIndent 2)LVM: Adding support (using local static binary /sbin/lvm)..."
- cp /sbin/lvm "${TEMP}/initramfs-lvm-temp/sbin/lvm" ||
- gen_die 'Could not copy over lvm!'
- # See bug 382555
- if [ -e '/sbin/dmsetup' ] && LC_ALL="C" ldd /sbin/dmsetup | grep -q 'not a dynamic executable'
+ local ABORT_ON_ERRORS=$(kconfig_get_opt "/etc/lvm/lvm.conf" "abort_on_errors")
+ if isTrue "${ABORT_ON_ERRORS}" && [[ ${CBUILD} == ${CHOST} ]]
then
- cp /sbin/dmsetup "${TEMP}/initramfs-lvm-temp/bin/dmsetup"
+ # Make sure the LVM binary we created is able to handle
+ # system's lvm.conf
+ "${TDIR}"/sbin/lvm dumpconfig 1>"${TDIR}"/etc/lvm/lvm.conf 2>/dev/null \
+ || gen_die "Bundled LVM version does NOT support system's lvm.conf!"
+
+ # Sanity check
+ if [ ! -s "${TDIR}/etc/lvm/lvm.conf" ]
+ then
+ gen_die "Sanity check failed: '${TDIR}/etc/lvm/lvm.conf' looks empty?!"
+ fi
+ else
+ cp -aL /etc/lvm/lvm.conf "${TDIR}"/etc/lvm/lvm.conf 2>/dev/null \
+ || gen_die "Failed to copy '/etc/lvm/lvm.conf'!"
fi
- else
- print_info 1 "$(getIndent 2)LVM: Adding support (compiling binaries)..."
- compile_lvm || gen_die "Could not compile LVM"
- /bin/tar -xpf "${LVM_BINCACHE}" -C "${TEMP}/initramfs-lvm-temp" ||
- gen_die "Could not extract lvm binary cache!";
- # Remove any dynamic binaries that exist, so the rest of the code will
- # fail better if something is missing
- for f in ${TEMP}/initramfs-lvm-temp/{bin,sbin}/* ; do
- [ -x "$f" ] && LC_ALL="C" ldd $f | grep -sq '(' && rm -f "$f"
- done
- # Now move the static binaries into good places.
- mv ${TEMP}/initramfs-lvm-temp/sbin/lvm.static ${TEMP}/initramfs-lvm-temp/sbin/lvm ||
- gen_die 'LVM error: Could not move lvm.static to lvm!'
- # See bug 382555; use /sbin/dmsetup to match multipath code
- mv ${TEMP}/initramfs-lvm-temp/sbin/dmsetup.static ${TEMP}/initramfs-lvm-temp/sbin/dmsetup ||
- gen_die 'LVM error: Could not move dmsetup.static to dmsetup!'
- # Clean up other stuff we don't need
- rm -rf ${TEMP}/initramfs-lvm-temp/{lib*,share,man,include,sbin/dmeventd.static}
- fi
- # Include a symlink in the old location, for people with other appended
- # scripts that might look for it in the old location.
- ln -s ../sbin/lvm "${TEMP}/initramfs-lvm-temp/bin/lvm"
- # Include the LVM config now
- if [ -x /sbin/lvm -o -x /bin/lvm ]
- then
-# lvm dumpconfig 2>&1 > /dev/null || gen_die 'Could not copy over lvm.conf!'
-# ret=$?
-# if [ ${ret} != 0 ]
-# then
- cp /etc/lvm/lvm.conf "${TEMP}/initramfs-lvm-temp/etc/lvm/" || \
- gen_die 'Could not copy over lvm.conf!'
-# else
-# gen_die 'Could not copy over lvm.conf!'
-# fi
# Some LVM config options need changing, because the functionality is
# not compiled in:
sed -r -i \
- -e '/^[[:space:]]*obtain_device_list_from_udev/s,=.*,= 0,g' \
+ -e '/^[[:space:]]*obtain_device_list_from_udev/s,=.*,= 1,g' \
+ -e '/^[[:space:]]*udev_sync/s,=.*,= 1,g' \
-e '/^[[:space:]]*use_lvmetad/s,=.*,= 0,g' \
+ -e '/^[[:space:]]*use_lvmlockd/s,=.*,= 0,g' \
+ -e '/^[[:space:]]*use_lvmpolld/s,=.*,= 0,g' \
-e '/^[[:space:]]*monitoring/s,=.*,= 0,g' \
-e '/^[[:space:]]*external_device_info_source/s,=.*,= "none",g' \
-e '/^[[:space:]]*units/s,=.*"r",= "h",g' \
- "${TEMP}/initramfs-lvm-temp/etc/lvm/lvm.conf" || \
- gen_die 'Could not sed lvm.conf!'
+ -e '/^[[:space:]]*thin_repair_executable/s,=.*,= /usr/sbin/thin_repair,g' \
+ -e '/^[[:space:]]*thin_dump_executable/s,=.*,= /usr/sbin/thin_dump,g' \
+ -e '/^[[:space:]]*thin_check_executable/s,=.*,= /usr/sbin/thin_check,g' \
+ "${TDIR}"/etc/lvm/lvm.conf \
+ || gen_die 'Could not sed lvm.conf!'
fi
- cd "${TEMP}/initramfs-lvm-temp/"
+
log_future_cpio_content
- find . -print | cpio ${CPIO_ARGS} --append -F "${CPIO}" \
- || gen_die "compressing lvm cpio"
- cd "${TEMP}"
- rm -r "${TEMP}/initramfs-lvm-temp/"
+ find . -print0 | "${CPIO_COMMAND}" ${CPIO_ARGS} --append -F "${CPIO_ARCHIVE}" \
+ || gen_die "Failed to append lvm to cpio!"
+
+ cd "${TEMP}" || die "Failed to chdir to '${TEMP}'!"
+ if isTrue "${CLEANUP}"
+ then
+ rm -rf "${TDIR}"
+ fi
}
-append_mdadm(){
- if [ -d "${TEMP}/initramfs-mdadm-temp" ]
+append_mdadm() {
+ local PN=mdadm
+ local TDIR="${TEMP}/initramfs-${PN}-temp"
+ if [ -d "${TDIR}" ]
then
- rm -r "${TEMP}/initramfs-mdadm-temp/"
+ rm -r "${TDIR}" || gen_die "Failed to clean out existing '${TDIR}'!"
fi
- cd ${TEMP}
- mkdir -p "${TEMP}/initramfs-mdadm-temp/etc/"
- mkdir -p "${TEMP}/initramfs-mdadm-temp/sbin/"
- if isTrue "${MDADM}"
+
+ populate_binpkg ${PN}
+
+ mkdir "${TDIR}" || gen_die "Failed to create '${TDIR}'!"
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
+
+ local mydir=
+ for mydir in \
+ etc \
+ sbin \
+ ; do
+ mkdir -p "${TDIR}"/${mydir} || gen_die "Failed to create '${TDIR}/${mydir}'!"
+ done
+
+ unpack "$(get_gkpkg_binpkg "${PN}")" "${TDIR}"
+
+ if [ -n "${MDADM_CONFIG}" ]
then
- if [ -n "${MDADM_CONFIG}" ]
- then
- if [ -f "${MDADM_CONFIG}" ]
- then
- cp -a "${MDADM_CONFIG}" "${TEMP}/initramfs-mdadm-temp/etc/mdadm.conf" \
- || gen_die "Could not copy mdadm.conf!"
- else
- gen_die "${MDADM_CONFIG} does not exist!"
- fi
- else
- print_info 1 "$(getIndent 2)MDADM: Skipping inclusion of mdadm.conf"
- fi
+ print_info 2 "$(get_indent 2)${PN}: >> Adding '${MDADM_CONFIG}' ..."
- if [ -e '/sbin/mdadm' ] && LC_ALL="C" ldd /sbin/mdadm | grep -q 'not a dynamic executable' \
- && [ -e '/sbin/mdmon' ] && LC_ALL="C" ldd /sbin/mdmon | grep -q 'not a dynamic executable'
+ if [ -f "${MDADM_CONFIG}" ]
then
- print_info 1 "$(getIndent 2)MDADM: Adding support (using local static binaries /sbin/mdadm and /sbin/mdmon)..."
- cp /sbin/mdadm /sbin/mdmon "${TEMP}/initramfs-mdadm-temp/sbin/" ||
- gen_die 'Could not copy over mdadm!'
+ cp -aL "${MDADM_CONFIG}" "${TDIR}"/etc/mdadm.conf 2>/dev/null \
+ || gen_die "Failed to copy '${MDADM_CONFIG}'!"
else
- print_info 1 "$(getIndent 2)MDADM: Adding support (compiling binaries)..."
- compile_mdadm
- /bin/tar -xpf "${MDADM_BINCACHE}" -C "${TEMP}/initramfs-mdadm-temp" ||
- gen_die "Could not extract mdadm binary cache!";
+ gen_die "Specified '${MDADM_CONFIG}' does not exist!"
fi
+ else
+ print_info 2 "$(get_indent 2)${PN}: >> --mdadm-config not set; Skipping inclusion of mdadm.conf ..."
fi
- cd "${TEMP}/initramfs-mdadm-temp/"
+
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
log_future_cpio_content
- find . -print | cpio ${CPIO_ARGS} --append -F "${CPIO}" \
- || gen_die "compressing mdadm cpio"
- cd "${TEMP}"
- rm -rf "${TEMP}/initramfs-mdadm-temp" > /dev/null
+ find . -print0 | "${CPIO_COMMAND}" ${CPIO_ARGS} --append -F "${CPIO_ARCHIVE}" \
+ || gen_die "Failed to append ${PN} to cpio!"
+
+ cd "${TEMP}" || die "Failed to chdir to '${TEMP}'!"
+ if isTrue "${CLEANUP}"
+ then
+ rm -rf "${TDIR}"
+ fi
}
-append_zfs(){
- if [ -d "${TEMP}/initramfs-zfs-temp" ]
+append_xfsprogs() {
+ local PN=xfsprogs
+ local TDIR="${TEMP}/initramfs-${PN}-temp"
+ if [ -d "${TDIR}" ]
then
- rm -r "${TEMP}/initramfs-zfs-temp"
+ rm -r "${TDIR}" || gen_die "Failed to clean out existing '${TDIR}'!"
fi
- mkdir -p "${TEMP}/initramfs-zfs-temp/etc/zfs"
+ populate_binpkg ${PN}
+
+ mkdir "${TDIR}" || gen_die "Failed to create '${TDIR}'!"
+
+ unpack "$(get_gkpkg_binpkg "${PN}")" "${TDIR}"
+
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
+ log_future_cpio_content
+ find . -print0 | "${CPIO_COMMAND}" ${CPIO_ARGS} --append -F "${CPIO_ARCHIVE}" \
+ || gen_die "Failed to append ${PN} to cpio!"
+
+ cd "${TEMP}" || die "Failed to chdir to '${TEMP}'!"
+ if isTrue "${CLEANUP}"
+ then
+ rm -rf "${TDIR}"
+ fi
+}
+
+append_zfs() {
+ local PN=zfs
+ local TDIR="${TEMP}/initramfs-${PN}-temp"
+ if [ -d "${TDIR}" ]
+ then
+ rm -r "${TDIR}" || gen_die "Failed to clean out existing '${TDIR}'!"
+ fi
+
+ mkdir "${TDIR}" || gen_die "Failed to create '${TDIR}'!"
+
+ mkdir -p "${TDIR}"/etc/zfs || gen_die "Failed to create '${TDIR}/etc/zfs'!"
# Copy files to /etc/zfs
- for i in zdev.conf zpool.cache
+ local i
+ for i in vdev_id.conf zdev.conf zpool.cache
do
if [ -f /etc/zfs/${i} ]
then
- print_info 1 "$(getIndent 2)zfs: >> Including ${i}"
- cp -a "/etc/zfs/${i}" "${TEMP}/initramfs-zfs-temp/etc/zfs" 2> /dev/null \
- || gen_die "Could not copy file ${i} for ZFS"
+ print_info 2 "$(get_indent 2)${PN}: >> Including ${i}"
+ cp -aL "/etc/zfs/${i}" "${TDIR}/etc/zfs/${i}" 2>/dev/null \
+ || gen_die "Could not copy file '/etc/zfs/${i}' for ZFS"
fi
done
if [ -f "/etc/hostid" ]
then
- local _hostid=$(hostid)
- print_info 1 "$(getIndent 2)zfs: >> Embedding hostid '${_hostid}' into initramfs..."
- cp -a /etc/hostid "${TEMP}/initramfs-zfs-temp/etc" 2> /dev/null \
+ local _hostid=$(hostid 2>/dev/null)
+ print_info 2 "$(get_indent 2)${PN}: >> Embedding hostid '${_hostid}' into initramfs ..."
+ cp -aL /etc/hostid "${TDIR}"/etc/hostid 2>/dev/null \
|| gen_die "Failed to copy /etc/hostid"
- echo "${_hostid}" > "${TEMP}/.embedded_hostid"
+ echo "${_hostid}" > "${TEMP}"/.embedded_hostid \
+ || gen_die "Failed to record system's hostid!"
else
- print_info 2 "$(getIndent 2)zfs: /etc/hostid not found; You must use 'spl_hostid' kernel command-line parameter!"
+ print_warning 1 "$(get_indent 2)${PN}: /etc/hostid not found; You must use 'spl_hostid' kernel command-line parameter!"
fi
- copy_binaries "${TEMP}/initramfs-zfs-temp" /sbin/{mount.zfs,zdb,zfs,zpool}
+ copy_binaries "${TDIR}" /sbin/{mount.zfs,zdb,zfs,zpool}
- cd "${TEMP}/initramfs-zfs-temp/"
+ local udevdir=$(get_udevdir)
+ local udevdir_initramfs="/usr/lib/udev"
+ local udev_files=( $(qlist -eC sys-fs/zfs:0 \
+ | grep -E -- "^${udevdir}")
+ )
+
+ if [ ${#udev_files[@]} -eq 0 ]
+ then
+ gen_die "Something went wrong: Did not found any udev-related files for sys-fs/zfs!"
+ fi
+
+ mkdir -p "${TDIR}"/usr/lib/udev/rules.d || gen_die "Failed to create '${TDIR}/usr/lib/udev/rules.d'!"
+
+ local udev_files
+ for udev_file in "${udev_files[@]}"
+ do
+ local dest_file="${TDIR%/}${udev_file/${udevdir}/${udevdir_initramfs}}"
+ cp -aL "${udev_file}" "${dest_file}" \
+ || gen_die "Failed to copy '${udev_file}' to '${dest_file}'"
+
+ if [[ "${dest_file}" == *.rules ]]
+ then
+ print_info 5 "Updating UDEV dir in '${dest_file}' ..."
+ sed -i \
+ -e "s|${udevdir}|${udevdir_initramfs}|g" \
+ "${dest_file}" \
+ || gen_die "Failed to update UDEV dir in '${dest_file}'"
+ fi
+ done
+
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
log_future_cpio_content
- find . -print | cpio ${CPIO_ARGS} --append -F "${CPIO}" \
- || gen_die "compressing zfs cpio"
- cd "${TEMP}"
- rm -rf "${TEMP}/initramfs-zfs-temp" > /dev/null
+ find . -print0 | "${CPIO_COMMAND}" ${CPIO_ARGS} --append -F "${CPIO_ARCHIVE}" \
+ || gen_die "Failed to append ${PN} to cpio!"
+
+ cd "${TEMP}" || die "Failed to chdir to '${TEMP}'!"
+ if isTrue "${CLEANUP}"
+ then
+ rm -rf "${TDIR}"
+ fi
}
append_btrfs() {
- if [ -d "${TEMP}/initramfs-btrfs-temp" ]
+ local PN=btrfs-progs
+ local TDIR="${TEMP}/initramfs-${PN}-temp"
+ if [ -d "${TDIR}" ]
then
- rm -r "${TEMP}/initramfs-btrfs-temp"
+ rm -r "${TDIR}" || gen_die "Failed to clean out existing '${TDIR}'!"
fi
- mkdir -p "${TEMP}/initramfs-btrfs-temp"
+ populate_binpkg ${PN}
- # Copy binaries
- copy_binaries "${TEMP}/initramfs-btrfs-temp" /sbin/btrfs
+ mkdir "${TDIR}" || gen_die "Failed to create '${TDIR}'!"
- cd "${TEMP}/initramfs-btrfs-temp/"
+ unpack "$(get_gkpkg_binpkg "${PN}")" "${TDIR}"
+
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
log_future_cpio_content
- find . -print | cpio ${CPIO_ARGS} --append -F "${CPIO}" \
- || gen_die "compressing btrfs cpio"
- cd "${TEMP}"
- rm -rf "${TEMP}/initramfs-btrfs-temp" > /dev/null
+ find . -print0 | "${CPIO_COMMAND}" ${CPIO_ARGS} --append -F "${CPIO_ARCHIVE}" \
+ || gen_die "Failed to append ${PN} to cpio!"
+
+ cd "${TEMP}" || die "Failed to chdir to '${TEMP}'!"
+ if isTrue "${CLEANUP}"
+ then
+ rm -rf "${TDIR}"
+ fi
}
append_libgcc_s() {
- if [ -d "${TEMP}/initramfs-libgcc_s-temp" ]
+ local TDIR="${TEMP}/initramfs-libgcc_s-temp"
+ if [ -d "${TDIR}" ]
then
- rm -r "${TEMP}/initramfs-libgcc_s-temp"
+ rm -r "${TDIR}" || gen_die "Failed to clean out existing '${TDIR}'!"
fi
- mkdir -p "${TEMP}/initramfs-libgcc_s-temp"
+ mkdir "${TDIR}" || gen_die "Failed to create '${TDIR}'!"
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
# Include libgcc_s.so.1:
# - workaround for zfsonlinux/zfs#4749
@@ -562,251 +1219,623 @@ append_libgcc_s() {
libgccpath="/usr/lib/gcc/*/*/libgcc_s.so.1"
fi
- # Copy binaries
- copy_binaries "${TEMP}/initramfs-libgcc_s-temp" ${libgccpath}
- cd "${TEMP}/initramfs-libgcc_s-temp/lib64"
- ln -s "..${libgccpath}"
+ copy_binaries "${TDIR}" ${libgccpath}
- cd "${TEMP}/initramfs-libgcc_s-temp/"
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
log_future_cpio_content
- find . -print | cpio ${CPIO_ARGS} --append -F "${CPIO}" \
- || gen_die "compressing libgcc_s cpio"
- cd "${TEMP}"
- rm -rf "${TEMP}/initramfs-libgcc_s-temp" > /dev/null
+ find . -print0 | "${CPIO_COMMAND}" ${CPIO_ARGS} --append -F "${CPIO_ARCHIVE}" \
+ || gen_die "Failed to append libgcc_s to cpio!"
+
+ cd "${TEMP}" || die "Failed to chdir to '${TEMP}'!"
+ if isTrue "${CLEANUP}"
+ then
+ rm -rf "${TDIR}"
+ fi
}
append_linker() {
- if [ -d "${TEMP}/initramfs-linker-temp" ]
+ local TDIR="${TEMP}/initramfs-linker-temp"
+ if [ -d "${TDIR}" ]
+ then
+ rm -r "${TDIR}" || gen_die "Failed to clean out existing '${TDIR}'!"
+ fi
+
+ mkdir "${TDIR}" || gen_die "Failed to create '${TDIR}'!"
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
+
+ mkdir -p "${TDIR}"/etc || gen_die "Failed to create '${TDIR}/etc'!"
+
+ if isTrue "$(tc-is-cross-compiler)"
+ then
+ # We cannot copy ld files from host because they could be
+ # incompatible with CHOST. Instead, add ldconfig to allow
+ # initramfs to regenerate on its own (default /etc/ld.so.conf
+ # for initramfs was added via append_base_layout()).
+ mkdir -p "${TDIR}"/sbin || gen_die "Failed to create '${TDIR}/sbin'!"
+
+ local libdir=$(get_chost_libdir)
+ copy_system_binaries "${TDIR}/sbin" "${libdir%/usr\/*}/sbin/ldconfig"
+ else
+ # Only copy /etc/ld.so.conf.d -- /etc/ld.so.conf was already
+ # added to CPIO via append_base_layout() and because we only
+ # append to CPIO, that file wouldn't be used at all.
+ if [ -d "/etc/ld.so.conf.d" ]
+ then
+ mkdir -p "${TDIR}"/etc/ld.so.conf.d || gen_die "Failed to create '${TDIR}/etc/ld.so.conf.d'!"
+ cp -arL "/etc/ld.so.conf.d" "${TDIR}"/etc \
+ || gen_die "Failed to copy '/etc/ld.so.conf.d'!"
+ fi
+
+ if [ -e "/etc/ld.so.cache" ]
+ then
+ cp -aL "/etc/ld.so.cache" "${TDIR}"/etc/ld.so.cache \
+ || gen_die "Failed to copy '/etc/ld.so.cache'!"
+ fi
+ fi
+
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
+ log_future_cpio_content
+ find . -print0 | "${CPIO_COMMAND}" ${CPIO_ARGS} --append -F "${CPIO_ARCHIVE}" \
+ || gen_die "Failed to append linker to cpio!"
+
+ cd "${TEMP}" || die "Failed to chdir to '${TEMP}'!"
+ if isTrue "${CLEANUP}"
then
- rm -r "${TEMP}/initramfs-linker-temp"
+ rm -rf "${TDIR}"
fi
+}
- mkdir -p "${TEMP}/initramfs-linker-temp/etc"
+append_splash() {
+ local TDIR="${TEMP}/initramfs-splash-temp"
+ if [ -d "${TDIR}" ]
+ then
+ rm -r "${TDIR}" || gen_die "Failed to clean out existing '${TDIR}'!"
+ fi
+
+ mkdir "${TDIR}" || gen_die "Failed to create '${TDIR}'!"
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
- if [ -e "/etc/ld.so.conf" ]
+ if [ -z "${SPLASH_THEME}" -a -e /etc/conf.d/splash ]
then
- cp "/etc/ld.so.conf" "${TEMP}/initramfs-linker-temp/etc/" 2> /dev/null \
- || gen_die "Could not copy ld.so.conf"
+ source /etc/conf.d/splash &>/dev/null || gen_die "Failed to source '/etc/conf.d/splash'!"
fi
- if [ -e "/etc/ld.so.cache" ]
+
+ if [ -z "${SPLASH_THEME}" ]
then
- cp "/etc/ld.so.cache" "${TEMP}/initramfs-linker-temp/etc/" 2> /dev/null \
- || gen_die "Could not copy ld.so.cache"
+ SPLASH_THEME=default
fi
- if [ -d "/etc/ld.so.conf.d" ]
+
+ print_info 1 "$(get_indent 1)>> Installing splash [ using the ${SPLASH_THEME} theme ] ..."
+
+ local res_param=""
+ [ -n "${SPLASH_RES}" ] && res_param="-r ${SPLASH_RES}"
+ splash_geninitramfs -c "${TDIR}" ${res_param} ${SPLASH_THEME} \
+ || gen_die "Failed to build splash cpio archive"
+
+ if [ -e "/usr/share/splashutils/initrd.splash" ]
then
- mkdir -p "${TEMP}/initramfs-linker-temp/etc/ld.so.conf.d"
- cp -r "/etc/ld.so.conf.d" "${TEMP}/initramfs-linker-temp/etc/" 2> /dev/null \
- || gen_die "Could not copy ld.so.conf.d"
+ mkdir -p "${TDIR}"/etc || gen_die "Failed to create '${TDIR}/etc'!"
+ cp -f /usr/share/splashutils/initrd.splash "${TDIR}"/etc/ 2>/dev/null \
+ gen_die "Failed to copy '/usr/share/splashutils/initrd.splash'!"
fi
- cd "${TEMP}/initramfs-linker-temp/"
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
log_future_cpio_content
- find . -print | cpio ${CPIO_ARGS} --append -F "${CPIO}" \
- || gen_die "compressing linker cpio"
- cd "${TEMP}"
- rm -rf "${TEMP}/initramfs-linker-temp" > /dev/null
-}
+ find . -print0 | "${CPIO_COMMAND}" ${CPIO_ARGS} --append -F "${CPIO_ARCHIVE}" \
+ || gen_die "Failed to append splash to cpio!"
-append_splash(){
- splash_geninitramfs=`which splash_geninitramfs 2>/dev/null`
- if [ -x "${splash_geninitramfs}" ] && grep -q -E '^CONFIG_FRAMEBUFFER_CONSOLE=[y|m]' ${KERNEL_CONFIG}
+ cd "${TEMP}" || die "Failed to chdir to '${TEMP}'!"
+ if isTrue "${CLEANUP}"
then
- [ -z "${SPLASH_THEME}" ] && [ -e /etc/conf.d/splash ] && source /etc/conf.d/splash
- [ -z "${SPLASH_THEME}" ] && SPLASH_THEME=default
- print_info 1 "$(getIndent 1)>> Installing splash [ using the ${SPLASH_THEME} theme ]..."
- if [ -d "${TEMP}/initramfs-splash-temp" ]
- then
- rm -r "${TEMP}/initramfs-splash-temp/"
- fi
- mkdir -p "${TEMP}/initramfs-splash-temp"
- cd /
- local tmp=""
- [ -n "${SPLASH_RES}" ] && tmp="-r ${SPLASH_RES}"
- splash_geninitramfs -c "${TEMP}/initramfs-splash-temp" ${tmp} ${SPLASH_THEME} || gen_die "Could not build splash cpio archive"
- if [ -e "/usr/share/splashutils/initrd.splash" ]; then
- mkdir -p "${TEMP}/initramfs-splash-temp/etc"
- cp -f "/usr/share/splashutils/initrd.splash" "${TEMP}/initramfs-splash-temp/etc"
- fi
- cd "${TEMP}/initramfs-splash-temp/"
- log_future_cpio_content
- find . -print | cpio ${CPIO_ARGS} --append -F "${CPIO}" \
- || gen_die "compressing splash cpio"
- cd "${TEMP}"
- rm -r "${TEMP}/initramfs-splash-temp/"
- else
- print_warning 1 "$(getIndent 1)>> No splash detected; skipping!"
+ rm -rf "${TDIR}"
fi
}
-append_overlay(){
- cd ${INITRAMFS_OVERLAY}
+append_plymouth() {
+ local PN=plymouth
+ local TDIR="${TEMP}/initramfs-${PN}-temp"
+ if [ -d "${TDIR}" ]
+ then
+ rm -r "${TDIR}" || gen_die "Failed to clean out existing '${TDIR}'!"
+ fi
+
+ mkdir "${TDIR}" || gen_die "Failed to create '${TDIR}'!"
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
+
+ # set plymouth theme
+ if [ -n "${PLYMOUTH_THEME}" ]
+ then
+ plymouth-set-default-theme ${PLYMOUTH_THEME} || gen_die "Failed to set default plymouth theme!"
+ fi
+ if [ -z "${PLYMOUTH_THEME}" -a -e /etc/plymouth/plymouthd.conf ]
+ then
+ PLYMOUTH_THEME=$(plymouth-set-default-theme) || gen_die "Failed to set default plymouth theme!"
+ fi
+ if [ -z "${PLYMOUTH_THEME}" ]
+ then
+ PLYMOUTH_THEME=text
+ fi
+
+ print_info 1 "$(get_indent 1)>> Installing plymouth [ using the '${PLYMOUTH_THEME}' theme ]..."
+
+ /usr/libexec/plymouth/plymouth-populate-initrd -t "${TDIR}" \
+ || gen_die "Failed to build plymouth cpio archive!"
+
+ # can probably get rid of this; depends if plymouth was built with static libs
+ # rm -f "${TDIR}"/lib*/{ld*,libc*,libz*} \
+ # || gen_die "Failed to clean up plymouth cpio archive!"
+
+ ln -sf "${PLYMOUTH_THEME}/${PLYMOUTH_THEME}.plymouth" "${TDIR}/usr/share/plymouth/themes/default.plymouth" \
+ || gen_die "Failed to set the default plymouth theme!"
+
+ # include required udev rules
+ mkdir -p "${TDIR}"/usr/lib/udev/rules.d || gen_die "Failed to create '${TDIR}/usr/lib/udev/rules.d'!"
+ cp -aL /lib/udev/rules.d/70-uaccess.rules "${TDIR}/usr/lib/udev/rules.d" || gen_die "Failed to copy '70-uaccess.rules'!"
+ cp -aL /lib/udev/rules.d/71-seat.rules "${TDIR}/usr/lib/udev/rules.d" || gen_die "Failed to copy '71-seat.rules'!"
+
+ # clean up
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
log_future_cpio_content
- find . -print | cpio ${CPIO_ARGS} --append -F "${CPIO}" \
- || gen_die "compressing overlay cpio"
-}
+ find . -print0 | "${CPIO_COMMAND}" ${CPIO_ARGS} --append -F "${CPIO_ARCHIVE}" \
+ || gen_die "Failed to append ${PN} to cpio!"
-append_luks() {
- local _luks_error_format="LUKS support cannot be included: %s. Please emerge sys-fs/cryptsetup."
- local _luks_source=/sbin/cryptsetup
- local _luks_dest=/sbin/cryptsetup
+ cd "${TEMP}" || die "Failed to chdir to '${TEMP}'!"
+ if isTrue "${CLEANUP}"
+ then
+ rm -rf "${TDIR}"
+ fi
+}
- if [ -d "${TEMP}/initramfs-luks-temp" ]
+append_strace() {
+ local PN=strace
+ local TDIR="${TEMP}/initramfs-${PN}-temp"
+ if [ -d "${TDIR}" ]
then
- rm -r "${TEMP}/initramfs-luks-temp/"
+ rm -r "${TDIR}" || gen_die "Failed to clean out existing '${TDIR}'!"
fi
- mkdir -p "${TEMP}/initramfs-luks-temp/lib/luks/"
- mkdir -p "${TEMP}/initramfs-luks-temp/sbin"
- cd "${TEMP}/initramfs-luks-temp"
+ populate_binpkg ${PN}
- if isTrue "${LUKS}"
+ mkdir -p "${TDIR}" || gen_die "Failed to create '${TDIR}'!"
+
+ unpack "$(get_gkpkg_binpkg "${PN}")" "${TDIR}"
+
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
+ log_future_cpio_content
+ find . -print0 | "${CPIO_COMMAND}" ${CPIO_ARGS} --append -F "${CPIO_ARCHIVE}" \
+ || gen_die "Failed to append ${PN} to cpio!"
+
+ cd "${TEMP}" || die "Failed to chdir to '${TEMP}'!"
+ if isTrue "${CLEANUP}"
then
- [ -x "${_luks_source}" ] \
- || gen_die "$(printf "${_luks_error_format}" "no file ${_luks_source}")"
+ rm -rf "${TDIR}"
+ fi
+}
- print_info 1 "$(getIndent 2)LUKS: Adding support (using system binaries)..."
- copy_binaries "${TEMP}/initramfs-luks-temp/" /sbin/cryptsetup
+append_overlay() {
+ cd "${INITRAMFS_OVERLAY}" || gen_die "Failed to chdir to '${INITRAMFS_OVERLAY}'!"
+ log_future_cpio_content
+ find . -print0 | "${CPIO_COMMAND}" ${CPIO_ARGS} --append -F "${CPIO_ARCHIVE}" \
+ || gen_die "Failed to append overlay to cpio!"
+}
+
+append_luks() {
+ local PN=cryptsetup
+ local TDIR="${TEMP}/initramfs-luks-temp"
+ if [ -d "${TDIR}" ]
+ then
+ rm -r "${TDIR}" || gen_die "Failed to clean out existing '${TDIR}'!"
fi
+ populate_binpkg ${PN}
+
+ mkdir -p "${TDIR}" || gen_die "Failed to create '${TDIR}'!"
+
+ unpack "$(get_gkpkg_binpkg "${PN}")" "${TDIR}"
+
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
+
+ # Delete unneeded files
+ rm -rf usr/
+
log_future_cpio_content
- find . -print | cpio ${CPIO_ARGS} --append -F "${CPIO}" \
- || gen_die "appending cryptsetup to cpio"
+ find . -print0 | "${CPIO_COMMAND}" ${CPIO_ARGS} --append -F "${CPIO_ARCHIVE}" \
+ || gen_die "Failed to append luks to cpio!"
- cd "${TEMP}"
- rm -r "${TEMP}/initramfs-luks-temp/"
+ cd "${TEMP}" || die "Failed to chdir to '${TEMP}'!"
+ if isTrue "${CLEANUP}"
+ then
+ rm -rf "${TDIR}"
+ fi
}
-append_dropbear(){
- if [ -d "${TEMP}"/initramfs-dropbear-temp ]
+append_dropbear() {
+ local PN=dropbear
+ local TDIR="${TEMP}/initramfs-${PN}-temp"
+ if [ -d "${TDIR}" ]
then
- rm -r "${TEMP}"/initramfs-dropbear-temp
+ rm -r "${TDIR}" || gen_die "Failed to clean out existing '${TDIR}'!"
fi
- if [ ! -d /etc/dropbear ]
+ local dropbear_command=
+ if ! isTrue "$(is_valid_ssh_host_keys_parameter_value "${SSH_HOST_KEYS}")"
then
- mkdir /etc/dropbear
+ gen_die "--ssh-host-keys value '${SSH_HOST_KEYS}' is unsupported!"
+ elif [[ "${SSH_HOST_KEYS}" == 'create' ]]
+ then
+ dropbear_command=dropbearkey
+ else
+ dropbear_command=dropbearconvert
fi
- if [ ! -e /etc/dropbear/dropbear_rsa_host_key ]
+
+ if [ -z "${DROPBEAR_AUTHORIZED_KEYS_FILE}" ]
then
- if [ -e /usr/bin/dropbearconvert -a /etc/ssh/ssh_host_rsa_key ]
+ gen_die "Something went wrong: DROPBEAR_AUTHORIZED_KEYS_FILE should already been set but is missing!"
+ fi
+
+ populate_binpkg ${PN}
+
+ mkdir -p "${TDIR}" || gen_die "Failed to create '${TDIR}'!"
+
+ unpack "$(get_gkpkg_binpkg "${PN}")" "${TDIR}"
+
+ if [[ "${SSH_HOST_KEYS}" == 'runtime' ]]
+ then
+ print_info 2 "$(get_indent 2)${PN}: >> No SSH host key embedded due to --ssh-host-key=runtime; Dropbear will generate required host key(s) at runtime!"
+ else
+ if ! hash ssh-keygen &>/dev/null
+ then
+ gen_die "'ssh-keygen' program is required but missing!"
+ fi
+
+ local initramfs_dropbear_dir="${TDIR}/etc/dropbear"
+
+ if [[ "${SSH_HOST_KEYS}" == 'create-from-host' ]]
+ then
+ print_info 3 "$(get_indent 2)${PN}: >> Checking for existence of all SSH host keys ..."
+ local missing_ssh_host_keys=no
+
+ if [ ! -f "/etc/ssh/ssh_host_rsa_key" ]
+ then
+ print_info 3 "$(get_indent 2)${PN}: >> SSH host key '/etc/ssh/ssh_host_rsa_key' is missing!"
+ missing_ssh_host_keys=yes
+ fi
+
+ if [ ! -f "/etc/ssh/ssh_host_ecdsa_key" ]
+ then
+ print_info 3 "$(get_indent 2)${PN}: >> SSH host key '/etc/ssh/ssh_host_ecdsa_key' is missing!"
+ missing_ssh_host_keys=yes
+ fi
+
+ if [ ! -f "/etc/ssh/ssh_host_ed25519_key" ]
+ then
+ print_info 3 "$(get_indent 2)${PN}: >> SSH host key '/etc/ssh/ssh_host_ed25519_key' is missing!"
+ missing_ssh_host_keys=yes
+ fi
+
+ if isTrue "${missing_ssh_host_keys}"
+ then
+ # Should only happen when installing a new system ...
+ print_info 3 "$(get_indent 2)${PN}: >> Creating missing SSH host key(s) ..."
+ ssh-keygen -A || gen_die "Failed to generate host's SSH host key(s) using 'ssh-keygen -A'!"
+ fi
+ fi
+
+ local -a required_dropbear_host_keys=(
+ /etc/dropbear/dropbear_ecdsa_host_key
+ /etc/dropbear/dropbear_ed25519_host_key
+ /etc/dropbear/dropbear_rsa_host_key
+ )
+
+ local i=0
+ local n_required_dropbear_keys=${#required_dropbear_host_keys[@]}
+ local required_key=
+ while [[ ${i} < ${n_required_dropbear_keys} ]]
+ do
+ required_key=${required_dropbear_host_keys[${i}]}
+ print_info 3 "$(get_indent 2)${PN}: >> Checking for existence of dropbear host key '${required_key}' ..."
+ if [[ -f "${required_key}" ]]
+ then
+ if [[ ! -s "${required_key}" ]]
+ then
+ print_info 1 "$(get_indent 2)${PN}: >> Dropbear host key '${required_key}' exists but is empty; Removing ..."
+ rm "${required_key}" || gen_die "Failed to remove invalid '${required_key}' null byte file!"
+ elif [[ "${SSH_HOST_KEYS}" == 'create-from-host' ]] \
+ && [[ "${required_key}" == *_rsa_* ]] \
+ && [[ "${required_key}" -ot "/etc/ssh/ssh_host_rsa_key" ]]
+ then
+ print_info 1 "$(get_indent 2)${PN}: >> Dropbear host key '${required_key}' exists but is older than '/etc/ssh/ssh_host_rsa_key'; Removing to force update due to --ssh-host-key=create-from-host ..."
+ rm "${required_key}" || gen_die "Failed to remove outdated '${required_key}' file!"
+ elif [[ "${SSH_HOST_KEYS}" == 'create-from-host' ]] \
+ && [[ "${required_key}" == *_ecdsa_* ]] \
+ && [[ "${required_key}" -ot "/etc/ssh/ssh_host_ecdsa_key" ]]
+ then
+ print_info 1 "$(get_indent 2)${PN}: >> Dropbear host key '${required_key}' exists but is older than '/etc/ssh/ssh_host_ecdsa_key'; Removing to force update due to --ssh-host-key=create-from-host ..."
+ rm "${required_key}" || gen_die "Failed to remove outdated '${required_key}' file!"
+ elif [[ "${SSH_HOST_KEYS}" == 'create-from-host' ]] \
+ && [[ "${required_key}" == *_ed25519_* ]] \
+ && [[ "${required_key}" -ot "/etc/ssh/ssh_host_ed25519_key" ]]
+ then
+ print_info 1 "$(get_indent 2)${PN}: >> Dropbear host key '${required_key}' exists but is older than '/etc/ssh/ssh_host_ed25519_key'; Removing to force update due to --ssh-host-key=create-from-host ..."
+ rm "${required_key}" || gen_die "Failed to remove outdated '${required_key}' file!"
+ else
+ print_info 3 "$(get_indent 2)${PN}: >> Dropbear host key '${required_key}' exists!"
+ unset required_dropbear_host_keys[${i}]
+ fi
+ else
+ print_info 3 "$(get_indent 2)${PN}: >> Dropbear host key '${required_key}' is missing! Will create ..."
+ fi
+
+ i=$((i + 1))
+ done
+
+ if [[ ${#required_dropbear_host_keys[@]} -gt 0 ]]
then
- if /usr/bin/dropbearconvert openssh dropbear /etc/ssh/ssh_host_rsa_key /etc/dropbear/dropbear_rsa_host_key
+ if isTrue "$(can_run_programs_compiled_by_genkernel)"
+ then
+ dropbear_command="${TDIR}/usr/bin/${dropbear_command}"
+ print_info 3 "$(get_indent 2)${PN}: >> Will use '${dropbear_command}' to create missing keys ..."
+ elif hash ${dropbear_command} &>/dev/null
then
- print_info 1 "$(getIndent 2)SSH: >> /etc/ssh/ssh_host_rsa_key converted into /etc/dropbear/dropbear_rsa_host_key"
+ print_info 3 "$(get_indent 2)${PN}: >> Will use existing '${dropbear_command}' program from path to create missing keys ..."
else
- gen_die "RSA host key conversion using dropbearconvert failed"
+ local error_msg="Need to generate '${required_dropbear_host_keys[*]}' but '${dropbear_command}'"
+ error_msg+=" program is missing. Please install net-misc/dropbear and re-run genkernel!"
+ gen_die "${error_msg}"
fi
+
+ local missing_key=
+ for missing_key in ${required_dropbear_host_keys[@]}
+ do
+ dropbear_create_key "${missing_key}" "${dropbear_command}"
+
+ # just in case ...
+ if [ -f "${missing_key}" ]
+ then
+ print_info 3 "$(get_indent 2)${PN}: >> Dropbear host key '${missing_key}' successfully created!"
+ else
+ gen_die "Sanity check failed: '${missing_key}' should exist at this stage but does NOT."
+ fi
+ done
else
- if /usr/bin/dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key -s 4096 > /dev/null
+ print_info 2 "$(get_indent 2)${PN}: >> Using existing dropbear host keys from /etc/dropbear ..."
+ fi
+
+ cp -aL --target-directory "${initramfs_dropbear_dir}" /etc/dropbear/dropbear_{rsa,ecdsa,ed25519}_host_key \
+ || gen_die "Failed to copy '/etc/dropbear/dropbear_{rsa,ecdsa,ed25519}_host_key'"
+
+ # Try to show embedded dropbear host key details for security reasons.
+ # We do it that complicated to get common used formats.
+ local -a key_info_files=()
+ local -a missing_key_info_files=()
+
+ local host_key_file= host_key_file_checksum= host_key_info_file=
+ while IFS= read -r -u 3 -d $'\0' host_key_file
+ do
+ host_key_file_checksum=$(sha256sum "${host_key_file}" 2>/dev/null | awk '{print $1}')
+ if [ -z "${host_key_file_checksum}" ]
+ then
+ gen_die "Failed to generate SHA256 checksum of '${host_key_file}'!"
+ fi
+
+ host_key_info_file="${GK_V_CACHEDIR}/$(basename "${host_key_file}").${host_key_file_checksum:0:10}.info"
+
+ if [ ! -s "${host_key_info_file}" ]
+ then
+ missing_key_info_files+=( ${host_key_info_file} )
+ else
+ key_info_files+=( ${host_key_info_file} )
+ fi
+ done 3< <(find "${initramfs_dropbear_dir}" -type f -name '*_key' -print0 2>/dev/null)
+ unset host_key_file host_key_file_checksum host_key_info_file
+ IFS="${GK_DEFAULT_IFS}"
+
+ if [[ ${#missing_key_info_files[@]} -ne 0 ]]
+ then
+ dropbear_command=
+ if isTrue "$(can_run_programs_compiled_by_genkernel)"
then
- print_info 1 "$(getIndent 2)SSH: >> New dropbear RSA host key /etc/dropbear/dropbear_rsa_host_key created"
+ dropbear_command="${TDIR}/usr/bin/dropbearconvert"
+ print_info 3 "$(get_indent 2)${PN}: >> Will use '${dropbear_command}' to extract embedded host key information ..."
+ elif hash dropbearconvert &>/dev/null
+ then
+ dropbear_command=dropbearconvert
+ print_info 3 "$(get_indent 2)${PN}: >> Will use existing '${dropbear_command}' program to extract embedded host key information ..."
else
- gen_die "RSA host key generation using dropbearkey failed"
+ print_warning 2 "$(get_indent 2)${PN}: >> 'dropbearconvert' program not available; Cannot generate missing key information for ${#missing_key_info_files[@]} key(s)!"
+ fi
+
+ if [[ -n "${dropbear_command}" ]]
+ then
+ # We are missing at least information for one embedded key
+ # but looks like we are able to generate the missing information ...
+ local missing_key_info_file=
+ for missing_key_info_file in "${missing_key_info_files[@]}"
+ do
+ dropbear_generate_key_info_file "${dropbear_command}" "${missing_key_info_file}" "${initramfs_dropbear_dir}"
+ key_info_files+=( ${missing_key_info_file} )
+ done
+ unset missing_key_info_file
fi
fi
- fi
- if [ ! -e /etc/dropbear/dropbear_dss_host_key ]
- then
- if /usr/bin/dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key > /dev/null
+ if [[ ${#key_info_files[@]} -gt 0 ]]
then
- print_info 1 "$(getIndent 2)SSH: >> New dropbear DSS host key /etc/dropbear/dropbear_dss_host_key created"
+ # We have at least information about one embedded key ...
+ print_info 1 "=================================================================" 1 0 1
+ print_info 1 "This initramfs' sshd will use the following host key(s):" 1 0 1
+
+ local key_info_file=
+ for key_info_file in "${key_info_files[@]}"
+ do
+ print_info 1 "$(cat "${key_info_file}")" 1 0 1
+ done
+ unset key_info_file
+
+ if [ ${LOGLEVEL} -lt 3 ]
+ then
+ # Don't clash with output from log_future_cpio_content
+ print_info 1 "=================================================================" 1 0 1
+ fi
else
- gen_die "DSS host key generation using dropbearkey failed"
+ print_warning 2 "$(get_indent 2)${PN}: >> No information about embedded SSH host key(s) available."
fi
fi
- cd "${TEMP}" \
- || gen_die "cd '${TEMP}' failed"
- mkdir -p ${TEMP}/initramfs-dropbear-temp/var/run
- mkdir -p ${TEMP}/initramfs-dropbear-temp/var/log
- mkdir -p ${TEMP}/initramfs-dropbear-temp/etc/dropbear
- mkdir -p ${TEMP}/initramfs-dropbear-temp/bin
- mkdir -p ${TEMP}/initramfs-dropbear-temp/root/.ssh
-
- cp -L ${GK_SHARE}/defaults/login-remote.sh ${TEMP}/initramfs-dropbear-temp/bin/ || gen_die "failed to copy defaults/login-remote.sh"
- cp -L /etc/dropbear/{dropbear_rsa_host_key,dropbear_dss_host_key} ${TEMP}/initramfs-dropbear-temp/etc/dropbear/ || gen_die "failed to copy dropbear host key(s)"
- cp -L /etc/dropbear/authorized_keys ${TEMP}/initramfs-dropbear-temp/root/.ssh || gen_die "failed to copy /etc/dropbear/authorized_keys. Did you forget to configure dropbear?"
- cp -L /etc/localtime ${TEMP}/initramfs-dropbear-temp/etc/ || gen_die "failed to copy /etc/localtime. Please set system's timezone!"
- if [ ${ARCH} = "x86_64" ]
+ if isTrue "$(is_glibc)"
then
- mkdir -p ${TEMP}/initramfs-dropbear-temp/lib64
- cp -L /lib64/libnss_files.so.2 ${TEMP}/initramfs-dropbear-temp/lib64/ || gen_die "failed to copy libnss_files.so.2"
- else
- mkdir -p ${TEMP}/initramfs-dropbear-temp/lib
- cp -L /lib/libnss_files.so.2 ${TEMP}/initramfs-dropbear-temp/lib/ || gen_die "failed to libnss_files.so.2"
+ local libdir=$(get_chost_libdir)
+ local libnss_files="${libdir}/libnss_files.so"
+
+ # NSS files module was moved into libc in >=glibc-2.34
+ # but when this file exists we are probably dealing with older glibc
+ # and need to manually copy the module.
+ if [[ -f "${libnss_files}" ]]
+ then
+ mkdir -p "${TDIR}"/lib || gen_die "Failed to create '${TDIR}/lib'!"
+ copy_system_binaries "${TDIR}"/lib "${libnss_files}"
+ fi
fi
- sed "s/compat/files/g" /etc/nsswitch.conf > ${TEMP}/initramfs-dropbear-temp/etc/nsswitch.conf || gen_die "failed to modify /etc/nsswitch.conf"
- echo "root:x:0:0:root:/root:/bin/login-remote.sh" > ${TEMP}/initramfs-dropbear-temp/etc/passwd
- echo "/bin/login-remote.sh" > ${TEMP}/initramfs-dropbear-temp/etc/shells
- echo "root:!:0:0:99999:7:::" > ${TEMP}/initramfs-dropbear-temp/etc/shadow
- echo "root:x:0:root" > ${TEMP}/initramfs-dropbear-temp/etc/group
- echo "" > ${TEMP}/initramfs-dropbear-temp/var/log/lastlog
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
+
+ cp -a "${GK_SHARE}"/defaults/login-remote.sh "${TDIR}"/usr/bin/ \
+ || gen_die "Failed to copy '${GK_SHARE}/defaults/login-remote.sh'"
+
+ cp -a "${GK_SHARE}"/defaults/resume-boot.sh "${TDIR}"/usr/sbin/resume-boot \
+ || gen_die "Failed to copy '${GK_SHARE}/defaults/resume-boot.sh' to '${TDIR}/usr/sbin/resume-boot'"
+
+ cp -a "${GK_SHARE}"/defaults/unlock-luks.sh "${TDIR}"/usr/sbin/unlock-luks \
+ || gen_die "Failed to copy '${GK_SHARE}/defaults/unlock-luks.sh' to '${TDIR}/usr/sbin/unlock-luks'"
+
+ cp -a "${GK_SHARE}"/defaults/unlock-zfs.sh "${TDIR}"/usr/sbin/unlock-zfs \
+ || gen_die "Failed to copy '${GK_SHARE}/defaults/unlock-zfs.sh' to '${TDIR}/usr/sbin/unlock-zfs'"
+
+ cp -aL "${DROPBEAR_AUTHORIZED_KEYS_FILE}" "${TDIR}"/root/.ssh/ \
+ || gen_die "Failed to copy '${DROPBEAR_AUTHORIZED_KEYS_FILE}'!"
+
+ cp -aL /etc/localtime "${TDIR}"/etc/ \
+ || gen_die "Failed to copy '/etc/localtime'. Please set system's timezone!"
+
+
+ echo "/usr/bin/login-remote.sh" > "${TDIR}"/etc/shells \
+ || gen_die "Failed to create '/etc/shells'!"
+
+ chmod 0755 "${TDIR}"/usr/bin/login-remote.sh \
+ || gen_die "Failed to chmod of '${TDIR}/usr/bin/login-remote.sh'!"
- chmod 0755 ${TEMP}/initramfs-dropbear-temp/bin/login-remote.sh
- chmod 0700 ${TEMP}/initramfs-dropbear-temp/root/.ssh
- chmod 0640 ${TEMP}/initramfs-dropbear-temp/etc/shadow
- chmod 0644 ${TEMP}/initramfs-dropbear-temp/etc/passwd
- chmod 0644 ${TEMP}/initramfs-dropbear-temp/etc/group
- mkfifo ${TEMP}/initramfs-dropbear-temp/etc/dropbear/fifo_root
- mkfifo ${TEMP}/initramfs-dropbear-temp/etc/dropbear/fifo_swap
+ chmod 0755 "${TDIR}"/usr/sbin/resume-boot \
+ || gen_die "Failed to chmod of '${TDIR}/usr/sbin/resume-boot'!"
- copy_binaries "${TEMP}"/initramfs-dropbear-temp/ /usr/sbin/dropbear \
- /bin/login /usr/bin/passwd
+ chmod 0755 "${TDIR}"/usr/sbin/unlock-luks \
+ || gen_die "Failed to chmod of '${TDIR}/usr/sbin/unlock-luks'!"
+ chmod 0755 "${TDIR}"/usr/sbin/unlock-zfs \
+ || gen_die "Failed to chmod of '${TDIR}/usr/sbin/unlock-zfs'!"
+
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
log_future_cpio_content
- cd "${TEMP}"/initramfs-dropbear-temp \
- || gen_die "cd '${TEMP}/initramfs-dropbear-temp' failed"
- find . -print | cpio ${CPIO_ARGS} --append -F "${CPIO}"
- rm -rf "${TEMP}"/initramfs-dropbear-temp > /dev/null
+ find . -print0 | "${CPIO_COMMAND}" ${CPIO_ARGS} --append -F "${CPIO_ARCHIVE}" \
+ || gen_die "Failed to append ${PN} to cpio!"
+
+ cd "${TEMP}" || die "Failed to chdir to '${TEMP}'!"
+ if isTrue "${CLEANUP}"
+ then
+ rm -rf "${TDIR}"
+ fi
}
append_firmware() {
- if [ ! -d "${FIRMWARE_DIR}" ]
+ local TDIR="${TEMP}/initramfs-firmware-temp"
+ if [ -d "${TDIR}" ]
then
- gen_die "specified firmware directory (${FIRMWARE_DIR}) does not exist"
+ rm -r "${TDIR}" || gen_die "Failed to clean out existing '${TDIR}'!"
fi
- if [ -d "${TEMP}/initramfs-firmware-temp" ]
+
+ mkdir "${TDIR}" || gen_die "Failed to create '${TDIR}'!"
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
+
+ if [ ! -d "${FIRMWARE_DIR}" ]
then
- rm -r "${TEMP}/initramfs-firmware-temp/"
+ gen_die "Specified firmware directory '${FIRMWARE_DIR}' does not exist!"
fi
- mkdir -p "${TEMP}/initramfs-firmware-temp/lib/firmware"
- cd "${TEMP}/initramfs-firmware-temp"
- if [ -n "${FIRMWARE_FILES}" ]
+
+ mkdir -p "${TDIR}"/lib/firmware || gen_die "Failed to create '${TDIR}/lib/firmware'!"
+
+ local -a fwlist=()
+
+ if isTrue "${ALLFIRMWARE}"
then
- pushd ${FIRMWARE_DIR} >/dev/null
- cp -rL --parents --target-directory="${TEMP}/initramfs-firmware-temp/lib/firmware/" ${FIRMWARE_FILES}
- popd >/dev/null
+ cp -a "${FIRMWARE_DIR}"/* "${TDIR}"/lib/firmware/ 2>/dev/null \
+ || gen_die "Failed to copy firmware files to '${TDIR}/lib/firmware'!"
+ elif [ ${#FIRMWARE_FILES[@]} -gt 0 ]
+ then
+ fwlist=( "${FIRMWARE_FILES[@]}" )
else
- cp -a "${FIRMWARE_DIR}"/* ${TEMP}/initramfs-firmware-temp/lib/firmware/
+ local myfw=
+ while IFS= read -r -u 3 myfw
+ do
+ if [ -z "${myfw}" ]
+ then
+ gen_die "modinfo error!"
+ fi
+
+ if [ ! -f "${FIRMWARE_DIR}/${myfw}" ]
+ then
+ print_warning 3 "$(get_indent 3) - ${myfw} is missing; Ignoring ..."
+ continue
+ fi
+
+ fwlist+=( "${myfw}" )
+ done 3< <( (
+ modinfo -b "${KERNEL_MODULES_PREFIX%/}" -k "${KV}" -F firmware $(mod_dep_list) 2>/dev/null || echo
+ ) | sort | uniq )
+ fi
+
+ if [ ${#fwlist[@]} -gt 0 ]
+ then
+ pushd "${FIRMWARE_DIR}" &>/dev/null || gen_die "Failed to chdir to '${FIRMWARE_DIR}'!"
+ cp -rL --parents --target-directory="${TDIR}/lib/firmware" "${fwlist[@]}" 2>/dev/null \
+ || gen_die "Failed to copy firmware files to '${TDIR}/lib/firmware'!"
+ popd &>/dev/null || gen_die "Failed to chdir!"
fi
+
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
log_future_cpio_content
- find . -print | cpio ${CPIO_ARGS} --append -F "${CPIO}" \
- || gen_die "appending firmware to cpio"
- cd "${TEMP}"
- rm -r "${TEMP}/initramfs-firmware-temp/"
+ find . -print0 | "${CPIO_COMMAND}" ${CPIO_ARGS} --append -F "${CPIO_ARCHIVE}" \
+ || gen_die "Failed to append firmware to cpio!"
+
+ cd "${TEMP}" || die "Failed to chdir to '${TEMP}'!"
+ if isTrue "${CLEANUP}"
+ then
+ rm -rf "${TDIR}"
+ fi
}
append_gpg() {
- if [ -d "${TEMP}/initramfs-gpg-temp" ]
+ local PN=gnupg
+ local TDIR="${TEMP}/initramfs-${PN}-temp"
+ if [ -d "${TDIR}" ]
then
- rm -r "${TEMP}/initramfs-gpg-temp"
- fi
- cd ${TEMP}
- mkdir -p "${TEMP}/initramfs-gpg-temp/sbin/"
- if [ ! -e ${GPG_BINCACHE} ] ; then
- print_info 1 "$(getIndent 2)GPG: Adding support (compiling binaries)..."
- compile_gpg
+ rm -r "${TDIR}" || gen_die "Failed to clean out existing '${TDIR}'!"
fi
- bzip2 -dc "${GPG_BINCACHE}" > "${TEMP}/initramfs-gpg-temp/sbin/gpg" ||
- gen_die 'Could not extract gpg binary cache!'
- chmod a+x "${TEMP}/initramfs-gpg-temp/sbin/gpg"
- cd "${TEMP}/initramfs-gpg-temp/"
+
+ populate_binpkg ${PN}
+
+ mkdir -p "${TDIR}" || gen_die "Failed to create '${TDIR}'!"
+
+ unpack "$(get_gkpkg_binpkg "${PN}")" "${TDIR}"
+
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
log_future_cpio_content
- find . -print | cpio ${CPIO_ARGS} --append -F "${CPIO}"
- rm -rf "${TEMP}/initramfs-gpg-temp" > /dev/null
+ find . -print0 | "${CPIO_COMMAND}" ${CPIO_ARGS} --append -F "${CPIO_ARCHIVE}" \
+ || gen_die "Failed to append ${PN} to cpio!"
+
+ cd "${TEMP}" || die "Failed to chdir to '${TEMP}'!"
+ if isTrue "${CLEANUP}"
+ then
+ rm -rf "${TDIR}"
+ fi
}
print_list()
@@ -819,249 +1848,332 @@ print_list()
}
append_modules() {
- local group
- local group_modules
- local MOD_EXT="$(modules_kext)"
-
- if [ -d "${TEMP}/initramfs-modules-${KV}-temp" ]
+ local TDIR="${TEMP}/initramfs-modules-${KV}-temp"
+ if [ -d "${TDIR}" ]
then
- rm -r "${TEMP}/initramfs-modules-${KV}-temp/"
+ rm -r "${TDIR}" || gen_die "Failed to clean out existing '${TDIR}'!"
fi
- print_info 2 "$(getIndent 2)modules: >> Copying modules to initramfs..."
- if [ "${INSTALL_MOD_PATH}" != '' ]
+ populate_binpkg kmod
+
+ mkdir "${TDIR}" || gen_die "Failed to create '${TDIR}'!"
+
+ unpack "$(get_gkpkg_binpkg kmod)" "${TDIR}"
+
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
+
+ # Delete unneeded files
+ rm -rf \
+ usr/include \
+ usr/lib
+
+ local mydir=
+ for mydir in \
+ etc/modules \
+ lib/modules/${KV} \
+ ; do
+ mkdir -p "${TDIR}"/${mydir} || gen_die "Failed to create '${TDIR}/${mydir}'!"
+ done
+
+ local modules_dstdir="${TDIR}/lib/modules/${KV}"
+ local modules_srcdir="/lib/modules/${KV}"
+
+ if [ -n "${KERNEL_MODULES_PREFIX}" ]
then
- cd ${INSTALL_MOD_PATH} || gen_die "Failed to chdir into '${INSTALL_MOD_PATH}'!"
- else
- cd / || gen_die "Failed to chdir into '/'!"
+ modules_srcdir="${KERNEL_MODULES_PREFIX%/}${modules_srcdir}"
fi
- local _MODULES_DIR="${PWD%/}/lib/modules/${KV}"
- if [ ! -d "${_MODULES_DIR}" ]
+ if [ ! -d "${modules_srcdir}" ]
then
- error_message="'${_MODULES_DIR}' does not exist! Did you forget"
+ error_message="'${modules_srcdir}' does not exist! Did you forget"
error_message+=" to compile kernel before building initramfs?"
error_message+=" If you know what you are doing please set '--no-ramdisk-modules'."
gen_die "${error_message}"
fi
- mkdir -p "${TEMP}/initramfs-modules-${KV}-temp/lib/modules/${KV}"
+ cd "${modules_srcdir}" || gen_die "Failed to chdir to '${modules_srcdir}'!"
- local n_copied_modules=0
- for i in `gen_dep_list`
+ print_info 2 "$(get_indent 2)modules: >> Searching modules in '${modules_srcdir}' ..."
+
+ local mymod=
+ local -a modlist=()
+ while IFS= read -r -u 3 mymod
do
- mymod=`find "${_MODULES_DIR}" -name "${i}${MOD_EXT}" 2>/dev/null| head -n 1 `
if [ -z "${mymod}" ]
then
- print_warning 2 "$(getIndent 3) - ${i}${MOD_EXT} not found; skipping..."
- continue;
+ gen_die "modinfo error!"
fi
- print_info 2 "$(getIndent 3) - Copying ${i}${MOD_EXT}..."
- cp -ax --parents "${mymod}" "${TEMP}/initramfs-modules-${KV}-temp" ||
- gen_die "failed to copy '${mymod}' to '${TEMP}/initramfs-modules-${KV}-temp'"
- n_copied_modules=$[$n_copied_modules+1]
- done
+ if [ "${mymod}" = '(builtin)' ]
+ then
+ continue
+ fi
- if [ ${n_copied_modules} -eq 0 ]
+ if [ ! -f "${mymod}" ]
+ then
+ gen_die "Module '${i}${KEXT}' is missing!"
+ fi
+
+ modlist+=( "${mymod/#${modules_srcdir}\//}" )
+ done 3< <( (
+ modinfo -b "${KERNEL_MODULES_PREFIX%/}" -k "${KV}" -F filename $(mod_dep_list) 2>/dev/null || echo
+ ) | sort | uniq )
+
+ if [ ${#modlist[@]} -gt 0 ]
then
- print_warning 1 "$(getIndent 2)modules: ${n_copied_modules} modules copied. Is that correct?"
+ print_info 2 "$(get_indent 2)modules: >> Copying modules from '${modules_srcdir}' to initramfs ..."
+ cp -ax --parents --target-directory "${modules_dstdir}" "${modlist[@]}" 2>/dev/null \
+ || gen_die "Failed to copy modules!"
+ print_info 2 "$(get_indent 2)modules: ${#modlist[@]} modules copied!"
else
- print_info 2 "$(getIndent 2)modules: ${n_copied_modules} modules copied!"
+ print_warning 1 "$(get_indent 2)modules: 0 modules copied. Is that correct?"
fi
- cp -ax --parents "${_MODULES_DIR}"/modules* ${TEMP}/initramfs-modules-${KV}-temp ||
- gen_die "failed to copy '${_MODULES_DIR}/modules*' to '${TEMP}/initramfs-modules-${KV}-temp'"
+ cp -ax --parents --target-directory "${modules_dstdir}" modules* 2>/dev/null \
+ || gen_die "Failed to copy '${modules_srcdir}/modules*' to '${modules_dstdir}'!"
- mkdir -p "${TEMP}/initramfs-modules-${KV}-temp/etc/modules"
- for group_modules in ${!MODULES_*}; do
- group="$(echo $group_modules | cut -d_ -f2- | tr "[:upper:]" "[:lower:]")"
- print_list ${!group_modules} > "${TEMP}/initramfs-modules-${KV}-temp/etc/modules/${group}"
+ print_info 2 "$(get_indent 2)modules: Updating modules.dep ..."
+ local depmod_cmd=( depmod -a -b "${TDIR}" ${KV} )
+ print_info 3 "COMMAND: ${depmod_cmd[*]}" 1 0 1
+ eval "${depmod_cmd[@]}" || gen_die "Failed to run '${depmod_cmd[*]}'!"
+
+ local group_modules= group=
+ for group_modules in ${!MODULES_*}
+ do
+ group="$(echo ${group_modules} | cut -d_ -f2- | tr "[:upper:]" "[:lower:]")"
+ print_list ${!group_modules} > "${TDIR}"/etc/modules/${group} \
+ || gen_die "Failed to create '${TDIR}/etc/modules/${group}'!"
done
- cd "${TEMP}/initramfs-modules-${KV}-temp/"
+
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
log_future_cpio_content
- find . | cpio ${CPIO_ARGS} --append -F "${CPIO}" \
- || gen_die "compressing modules cpio"
- cd "${TEMP}"
- rm -r "${TEMP}/initramfs-modules-${KV}-temp/"
+ find . -print0 | "${CPIO_COMMAND}" ${CPIO_ARGS} --append -F "${CPIO_ARCHIVE}" \
+ || gen_die "Failed to append modules-${KV} to cpio!"
+
+ cd "${TEMP}" || die "Failed to chdir to '${TEMP}'!"
+ if isTrue "${CLEANUP}"
+ then
+ rm -rf "${TDIR}"
+ fi
}
append_modprobed() {
local TDIR="${TEMP}/initramfs-modprobe.d-temp"
if [ -d "${TDIR}" ]
then
- rm -r "${TDIR}"
+ rm -r "${TDIR}" || gen_die "Failed to clean out existing '${TDIR}'!"
fi
- mkdir -p "${TDIR}/etc"
- cp -r "/etc/modprobe.d" "${TDIR}/etc/modprobe.d"
+ mkdir "${TDIR}" || gen_die "Failed to create '${TDIR}'!"
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
- cd "${TDIR}"
- log_future_cpio_content
- find . -print | cpio ${CPIO_ARGS} --append -F "${CPIO}" \
- || gen_die "compressing modprobe.d cpio"
+ local modprobe_dir
+ for modprobe_dir in /etc/modprobe.d /lib/modprobe.d
+ do
+ if [[ ! -e "${modprobe_dir}" ]]; then
+ print_info 5 "'${modprobe_dir}' does not exist; Skipping ..."
+ continue
+ fi
- cd "${TEMP}"
- rm -rf "${TDIR}" > /dev/null
-}
+ mkdir -p "${TDIR}${modprobe_dir}" || gen_die "Failed to create '${TDIR}${modprobe_dir}'!"
+
+ cp -aL "${modprobe_dir}"/. "${TDIR}${modprobe_dir}" 2>/dev/null \
+ || gen_die "Failed to copy '${modprobe_dir}'!"
+ done
-# check for static linked file with objdump
-is_static() {
- LANG="C" LC_ALL="C" objdump -T $1 2>&1 | grep "not a dynamic object" > /dev/null
- return $?
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
+ log_future_cpio_content
+ find . -print0 | "${CPIO_COMMAND}" ${CPIO_ARGS} --append -F "${CPIO_ARCHIVE}" \
+ || gen_die "Failed to append modprobe.d to cpio!"
+
+ cd "${TEMP}" || die "Failed to chdir to '${TEMP}'!"
+ if isTrue "${CLEANUP}"
+ then
+ rm -rf "${TDIR}"
+ fi
}
-append_auxilary() {
- if [ -d "${TEMP}/initramfs-aux-temp" ]
+append_auxiliary() {
+ local TDIR="${TEMP}/initramfs-aux-temp"
+ if [ -d "${TDIR}" ]
then
- rm -r "${TEMP}/initramfs-aux-temp/"
+ rm -r "${TDIR}" || gen_die "Failed to clean out existing '${TDIR}'!"
fi
- mkdir -p "${TEMP}/initramfs-aux-temp/etc"
- mkdir -p "${TEMP}/initramfs-aux-temp/sbin"
- if [ -f "${CMD_LINUXRC}" ]
+
+ mkdir "${TDIR}" || gen_die "Failed to create '${TDIR}'!"
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
+
+ local mydir=
+ for mydir in \
+ etc \
+ sbin \
+ ; do
+ mkdir -p "${TDIR}"/${mydir} || gen_die "Failed to create '${TDIR}/${mydir}'!"
+ done
+
+ local mylinuxrc=
+ if [ -n "${LINUXRC}" ]
+ then
+ mylinuxrc="${LINUXRC}"
+ print_info 2 "$(get_indent 2)>> Copying user specified linuxrc '${mylinuxrc}' to '/init' ..."
+ elif isTrue "${NETBOOT}"
then
- cp "${CMD_LINUXRC}" "${TEMP}/initramfs-aux-temp/init"
- print_info 2 "$(getIndent 1)>> Copying user specified linuxrc: ${CMD_LINUXRC} to init"
+ mylinuxrc="${GK_SHARE}/netboot/linuxrc.x"
+ print_info 2 "$(get_indent 2)>> Copying netboot specific linuxrc '${mylinuxrc}' to '/init' ..."
else
- if isTrue "${NETBOOT}"
+ if [ -f "${GK_SHARE}/arch/${ARCH}/linuxrc" ]
then
- cp "${GK_SHARE}/netboot/linuxrc.x" "${TEMP}/initramfs-aux-temp/init"
+ mylinuxrc="${GK_SHARE}/arch/${ARCH}/linuxrc"
else
- if [ -f "${GK_SHARE}/arch/${ARCH}/linuxrc" ]
- then
- cp "${GK_SHARE}/arch/${ARCH}/linuxrc" "${TEMP}/initramfs-aux-temp/init"
- else
- cp "${GK_SHARE}/defaults/linuxrc" "${TEMP}/initramfs-aux-temp/init"
- fi
+ mylinuxrc="${GK_SHARE}/defaults/linuxrc"
fi
+
+ print_info 2 "$(get_indent 2)>> Copying '${mylinuxrc}' to '/init' ..."
fi
+ cp -aL "${mylinuxrc}" "${TDIR}"/init 2>/dev/null \
+ || gen_die "Failed to copy '${mylinuxrc}' to '${TDIR}/init'!"
+
# Make sure it's executable
- chmod 0755 "${TEMP}/initramfs-aux-temp/init"
+ chmod 0755 "${TDIR}"/init || gen_die "Failed to chmod of '${TDIR}/init' to 0755!"
- # Make a symlink to init .. incase we are bundled inside the kernel as one
+ # Make a symlink to init .. in case we are bundled inside the kernel as one
# big cpio.
- cd ${TEMP}/initramfs-aux-temp
- ln -s init linuxrc
-# ln ${TEMP}/initramfs-aux-temp/init ${TEMP}/initramfs-aux-temp/linuxrc
+ pushd "${TDIR}" &>/dev/null || gen_die "Failed to chdir to '${TDIR}'!"
+ ln -s init linuxrc || gen_die "Failed to create symlink 'linuxrc' to 'init'!"
+ popd &>/dev/null || gen_die "Failed to chdir!"
+ local myinitrd_script=
if [ -f "${GK_SHARE}/arch/${ARCH}/initrd.scripts" ]
then
- cp "${GK_SHARE}/arch/${ARCH}/initrd.scripts" "${TEMP}/initramfs-aux-temp/etc/initrd.scripts"
+ myinitrd_script="${GK_SHARE}/arch/${ARCH}/initrd.scripts"
else
- cp "${GK_SHARE}/defaults/initrd.scripts" "${TEMP}/initramfs-aux-temp/etc/initrd.scripts"
+ myinitrd_script="${GK_SHARE}/defaults/initrd.scripts"
fi
+ print_info 2 "$(get_indent 2)>> Copying '${myinitrd_script}' to '/etc/initrd.scripts' ..."
+ cp -aL "${myinitrd_script}" "${TDIR}"/etc/initrd.scripts 2>/dev/null \
+ || gen_die "Failed to copy '${myinitrd_script}' to '${TDIR}/etc/initrd.scripts'!"
+ local myinitrd_default=
if [ -f "${GK_SHARE}/arch/${ARCH}/initrd.defaults" ]
then
- cp "${GK_SHARE}/arch/${ARCH}/initrd.defaults" "${TEMP}/initramfs-aux-temp/etc/initrd.defaults"
+ myinitrd_default="${GK_SHARE}/arch/${ARCH}/initrd.defaults"
else
- cp "${GK_SHARE}/defaults/initrd.defaults" "${TEMP}/initramfs-aux-temp/etc/initrd.defaults"
+ myinitrd_default="${GK_SHARE}/defaults/initrd.defaults"
fi
+ print_info 2 "$(get_indent 2)>> Copying '${myinitrd_default}' to '/etc/initrd.defaults' ..."
+ cp -aL "${myinitrd_default}" "${TDIR}"/etc/initrd.defaults 2>/dev/null \
+ || gen_die "Failed to copy '${myinitrd_default}' to '${TDIR}/etc/initrd.defaults'!"
if [ -n "${REAL_ROOT}" ]
then
- sed -i "s:^REAL_ROOT=.*$:REAL_ROOT='${REAL_ROOT}':" "${TEMP}/initramfs-aux-temp/etc/initrd.defaults"
+ print_info 2 "$(get_indent 2)>> Setting REAL_ROOT to '${REAL_ROOT}' in '/etc/initrd.defaults' ..."
+ sed -i "s:^REAL_ROOT=.*$:REAL_ROOT='${REAL_ROOT}':" \
+ "${TDIR}"/etc/initrd.defaults \
+ || gen_die "Failed to set REAL_ROOT in '${TDIR}/etc/initrd.defaults'!"
fi
- printf "%s" 'HWOPTS="$HWOPTS ' >> "${TEMP}/initramfs-aux-temp/etc/initrd.defaults"
+ printf "%s" 'HWOPTS="$HWOPTS ' >> "${TDIR}"/etc/initrd.defaults \
+ || gen_die "Failed to add HWOPTS to '${TDIR}/etc/initrd.defaults'!"
+
+ local group_modules group
for group_modules in ${!MODULES_*}; do
- group="$(echo $group_modules | cut -d_ -f2 | tr "[:upper:]" "[:lower:]")"
- printf "%s" "${group} " >> "${TEMP}/initramfs-aux-temp/etc/initrd.defaults"
+ group="$(echo ${group_modules} | cut -d_ -f2 | tr "[:upper:]" "[:lower:]")"
+ printf "%s" "${group} " >> "${TDIR}"/etc/initrd.defaults \
+ || gen_die "Failed to add MODULES_* to '${TDIR}/etc/initrd.defaults'!"
done
- echo '"' >> "${TEMP}/initramfs-aux-temp/etc/initrd.defaults"
- if isTrue "${CMD_DOKEYMAPAUTO}"
- then
- echo 'MY_HWOPTS="${MY_HWOPTS} keymap"' >> ${TEMP}/initramfs-aux-temp/etc/initrd.defaults
- fi
+ echo '"' >> "${TDIR}"/etc/initrd.defaults \
+ || gen_die "Failed to add closing '\"' to '${TDIR}/etc/initrd.defaults'!"
+
if isTrue "${CMD_KEYMAP}"
then
- print_info 1 "$(getIndent 1)>> Copying keymaps"
- mkdir -p "${TEMP}/initramfs-aux-temp/lib/"
- cp -R "${GK_SHARE}/defaults/keymaps" "${TEMP}/initramfs-aux-temp/lib/" \
- || gen_die "Error while copying keymaps"
+ print_info 2 "$(get_indent 2)>> Copying keymaps ..."
+ mkdir -p "${TDIR}"/lib || gen_die "Failed to create '${TDIR}/lib'!"
+ cp -R "${GK_SHARE}/defaults/keymaps" "${TDIR}"/lib/ 2>/dev/null \
+ || gen_die "Failed to copy '${GK_SHARE}/defaults/keymaps' to '${TDIR}/lib'!"
+
+ if isTrue "${CMD_DOKEYMAPAUTO}"
+ then
+ print_info 2 "$(get_indent 2)>> Forcing keymap selection in initrd script due to DOKEYMAPAUTO setting ..."
+ echo 'MY_HWOPTS="${MY_HWOPTS} keymap"' >> "${TDIR}"/etc/initrd.defaults \
+ || gen_die "Failed to add keymap to MY_HWOPTS in '${TDIR}/etc/initrd.defaults'!"
+ fi
fi
- cd ${TEMP}/initramfs-aux-temp/sbin && ln -s ../init init
- cd ${TEMP}
- chmod +x "${TEMP}/initramfs-aux-temp/init"
- chmod +x "${TEMP}/initramfs-aux-temp/etc/initrd.scripts"
- chmod +x "${TEMP}/initramfs-aux-temp/etc/initrd.defaults"
+ pushd "${TDIR}"/sbin &>/dev/null || gen_die "Failed to chdir to '${TDIR}/sbin'!"
+ ln -s ../init init || gen_die "Failed to create symlink 'init' to '../init'!"
+ popd &>/dev/null || gen_die "Failed to chdir!"
if isTrue "${NETBOOT}"
then
- cd "${GK_SHARE}/netboot/misc"
- cp -pPRf * "${TEMP}/initramfs-aux-temp/"
+ pushd "${GK_SHARE}/netboot/misc" &>/dev/null || gen_die "Failed to chdir to '${GK_SHARE}/netboot/misc'!"
+ cp -pPRf * "${TDIR}"/ 2>/dev/null \
+ || gen_die "Failed to copy '${GK_SHARE}/netboot/misc' to '${TDIR}'!"
+ popd &>/dev/null || gen_die "Failed to chdir!"
fi
- cd "${TEMP}/initramfs-aux-temp/"
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
log_future_cpio_content
- find . -print | cpio ${CPIO_ARGS} --append -F "${CPIO}" \
- || gen_die "compressing auxilary cpio"
- cd "${TEMP}"
- rm -r "${TEMP}/initramfs-aux-temp/"
+ find . -print0 | "${CPIO_COMMAND}" ${CPIO_ARGS} --append -F "${CPIO_ARCHIVE}" \
+ || gen_die "Failed to append auxiliary to cpio!"
+
+ cd "${TEMP}" || die "Failed to chdir to '${TEMP}'!"
+ if isTrue "${CLEANUP}"
+ then
+ rm -rf "${TDIR}"
+ fi
}
append_data() {
- local name=$1 var=$2
+ [ $# -eq 0 ] && gen_die "append_data() called with zero arguments"
+
+ local name=$1
local func="append_${name}"
- [ $# -eq 0 ] && gen_die "append_data() called with zero arguments"
- if [ $# -eq 1 ] || isTrue "${var}"
+ shift
+
+ if [ $# -eq 0 ] || anyTrue "$@"
then
- print_info 1 "$(getIndent 1)>> Appending ${name} cpio data..."
- ${func} || gen_die "${func}() failed"
+ print_info 1 "$(get_indent 1)>> Appending ${name} cpio data ..."
+ ${func} || gen_die "${func}() failed!"
fi
}
create_initramfs() {
- local lddtree_testfile=`which cpio 2>/dev/null`
- if [[ -z "${lddtree_testfile}" || ! -e "${lddtree_testfile}" ]]; then
- print_warning 1 "cpio binary not found -- cannot check if lddtree is working!"
- elif ! lddtree "${lddtree_testfile}" 1>/dev/null 2>&1; then
- gen_die "'lddtree ${lddtree_testfile}' failed -- cannot generate initramfs without working lddtree!"
- fi
-
- local compress_ext=""
- print_info 1 "initramfs: >> Initializing..."
+ print_info 1 "initramfs: >> Initializing ..."
# Create empty cpio
- CPIO="${TMPDIR}/initramfs-${KV}"
+ CPIO_ARCHIVE="${TMPDIR}/${GK_FILENAME_TEMP_INITRAMFS}"
append_data 'devices' # WARNING, must be first!
append_data 'base_layout'
- append_data 'auxilary' "${BUSYBOX}"
+ append_data 'util-linux'
+ append_data 'eudev'
+ append_data 'devicemanager' "${DMRAID}" "${LVM}" "${LUKS}" "${MULTIPATH}"
+ append_data 'auxiliary' "${BUSYBOX}"
append_data 'busybox' "${BUSYBOX}"
- isTrue "${CMD_E2FSPROGS}" && append_data 'e2fsprogs'
- append_data 'lvm' "${LVM}"
+ append_data 'b2sum' "${B2SUM}"
+ append_data 'btrfs' "${BTRFS}"
append_data 'dmraid' "${DMRAID}"
+ append_data 'dropbear' "${SSH}"
+ append_data 'e2fsprogs' "${E2FSPROGS}"
+ append_data 'gpg' "${GPG}"
append_data 'iscsi' "${ISCSI}"
- append_data 'mdadm' "${MDADM}"
+ append_data 'keyutils' "${KEYCTL}"
append_data 'luks' "${LUKS}"
- append_data 'dropbear' "${SSH}"
+ append_data 'lvm' "${LVM}"
+ append_data 'bcache' "${BCACHE}"
+ append_data 'mdadm' "${MDADM}"
+ append_data 'modprobed'
append_data 'multipath' "${MULTIPATH}"
- append_data 'gpg' "${GPG}"
-
- if isTrue "${RAMDISKMODULES}"
- then
- append_data 'modules'
- else
- print_info 1 "initramfs: Not copying modules..."
- fi
-
- append_data 'zfs' "${ZFS}"
-
- append_data 'btrfs' "${BTRFS}"
-
- append_data 'blkid' "${DISKLABEL}"
-
- append_data 'unionfs_fuse' "${UNIONFS}"
-
append_data 'splash' "${SPLASH}"
+ append_data 'plymouth' "${PLYMOUTH}"
+ append_data 'strace' "${STRACE}"
+ append_data 'unionfs_fuse' "${UNIONFS}"
+ append_data 'xfsprogs' "${XFSPROGS}"
+ append_data 'zfs' "${ZFS}"
- append_data 'modprobed'
-
- if isTrue "${ZFS}" || isTrue "${LUKS}"
+ if isTrue "${ZFS}"
then
append_data 'libgcc_s'
fi
@@ -1071,215 +2183,215 @@ create_initramfs() {
append_data 'firmware'
fi
+ if isTrue "${RAMDISKMODULES}"
+ then
+ append_data 'modules'
+ else
+ print_info 1 "$(get_indent 1)>> Not copying modules due to --no-ramdisk-modules ..."
+ fi
+
# This should always be appended last
- if [ "${INITRAMFS_OVERLAY}" != '' ]
+ if [ -n "${INITRAMFS_OVERLAY}" ]
then
append_data 'overlay'
fi
- if ${COPY_BINARIES}
+ if [[ -f "${TEMP}/.binaries_copied" || -f "${TEMP}/.system_binaries_copied" ]]
then
append_data 'linker'
+ else
+ print_info 2 "$(get_indent 1)>> Not appending linker because no binaries have been copied ..."
fi
# Finalize cpio by removing duplicate files
# TODO: maybe replace this with:
# http://search.cpan.org/~pixel/Archive-Cpio-0.07/lib/Archive/Cpio.pm
# as then we can dedupe ourselves...
- if [[ $UID -eq 0 ]]; then
- print_info 1 "$(getIndent 1)>> Deduping cpio..."
+ if isTrue "${BUSYBOX}" || [[ ${UID} -eq 0 ]]
+ then
+ print_info 1 "$(get_indent 1)>> Deduping cpio ..."
local TDIR="${TEMP}/initramfs-final"
- mkdir -p "${TDIR}"
- cd "${TDIR}"
+ mkdir -p "${TDIR}" || gen_die "Failed to create '${TDIR}'!"
+ cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
- cpio --quiet -i -F "${CPIO}" 2> /dev/null \
- || gen_die "extracting cpio for dedupe"
- find . -print | cpio ${CPIO_ARGS} -F "${CPIO}" 2>/dev/null \
+ "${CPIO_COMMAND}" --quiet -i -F "${CPIO_ARCHIVE}" 2>/dev/null \
+ || gen_die "Failed to extract cpio '${CPIO_ARCHIVE}' for dedupe"
+
+ if ! isTrue "$(tc-is-cross-compiler)"
+ then
+ # We can generate or update /etc/ld.so.cache which was copied from host
+ # to actually match initramfs' content.
+ print_info 1 "$(get_indent 1)>> Pre-generating initramfs' /etc/ld.so.cache ..."
+ # Need to disable sandbox which doesn't understand chroot(), bug #431038
+ SANDBOX_ON=0 ldconfig -f /etc/ld.so.conf -r "${TDIR}" 2>/dev/null \
+ || print_warning 1 "Failed to pre-generate '${TDIR}/etc/ld.so.cache'! Probably due to sandbox/permission problem; Ignoring ..."
+ fi
+
+ find . -print0 | sort -z | "${CPIO_COMMAND}" ${CPIO_ARGS} --reproducible -F "${CPIO_ARCHIVE}" 2>/dev/null \
|| gen_die "rebuilding cpio for dedupe"
- cd "${TEMP}"
- rm -rf "${TDIR}"
+
+ cd "${TEMP}" || die "Failed to chdir to '${TEMP}'!"
+ if isTrue "${CLEANUP}"
+ then
+ rm -rf "${TDIR}"
+ fi
else
- print_info 1 "$(getIndent 1)>> Cannot deduping cpio contents without root; skipping"
+ print_info 1 "$(get_indent 1)>> Cannot deduping cpio contents without root; Skipping ..."
fi
- cd "${TEMP}"
+ cd "${TEMP}" || gen_die "Failed to chdir to '${TEMP}'"
- # NOTE: We do not work with ${KERNEL_CONFIG} here, since things like
- # "make oldconfig" or --noclean could be in effect.
- if [ -f "${KERNEL_OUTPUTDIR}"/.config ]; then
- local ACTUAL_KERNEL_CONFIG="${KERNEL_OUTPUTDIR}"/.config
- else
- local ACTUAL_KERNEL_CONFIG="${KERNEL_CONFIG}"
+ local kconfig_file_used="${KERNEL_CONFIG}"
+ if isTrue "${BUILD_KERNEL}"
+ then
+ kconfig_file_used="${KERNEL_OUTPUTDIR}/.config"
fi
- if [[ "$(file --brief --mime-type "${ACTUAL_KERNEL_CONFIG}")" == application/x-gzip ]]; then
- # Support --kernel-config=/proc/config.gz, mainly
- local CONFGREP=zgrep
- else
- local CONFGREP=grep
- fi
+ if isTrue "$(is_gzipped "${kconfig_file_used}")"
+ then
+ print_info 5 "Compressed kernel config '${kconfig_file_used}' found; Must decompress to temporary file ..."
- if isTrue "${LVM}" ; then
- if ! ${CONFGREP} -q "^CONFIG_FILE_LOCKING=y" "${ACTUAL_KERNEL_CONFIG}" ; then
- gen_die "LVM will require a kernel with CONFIG_FILE_LOCKING=y set!"
- fi
+ local kconfig_file_tmp="${TEMP}/current_kernel.config"
+ zcat "${kconfig_file_used}" > "${kconfig_file_tmp}" \
+ || gen_die "Failed to decompress '${kconfig_file_used}' to '${kconfig_file_tmp}'!"
+
+ kconfig_file_used="${kconfig_file_tmp}"
fi
if isTrue "${INTEGRATED_INITRAMFS}"
then
# Explicitly do not compress if we are integrating into the kernel.
# The kernel will do a better job of it than us.
- mv ${TMPDIR}/initramfs-${KV} ${TMPDIR}/initramfs-${KV}.cpio
- sed -i '/^.*CONFIG_INITRAMFS_SOURCE=.*$/d' "${KERNEL_OUTPUTDIR}/.config" ||
- gen_die "failed to delete CONFIG_INITRAMFS_SOURCE from '${KERNEL_OUTPUTDIR}/.config'"
-
- compress_config='INITRAMFS_COMPRESSION_NONE'
- case ${compress_ext} in
- gz) compress_config='INITRAMFS_COMPRESSION_GZIP' ;;
- bz2) compress_config='INITRAMFS_COMPRESSION_BZIP2' ;;
- lzma) compress_config='INITRAMFS_COMPRESSION_LZMA' ;;
- xz) compress_config='INITRAMFS_COMPRESSION_XZ' ;;
- lzo) compress_config='INITRAMFS_COMPRESSION_LZO' ;;
- lz4) compress_config='INITRAMFS_COMPRESSION_LZ4' ;;
- *) compress_config='INITRAMFS_COMPRESSION_NONE' ;;
- esac
- # All N default except XZ, so there it gets used if the kernel does
- # compression on it's own.
- cat >>${KERNEL_OUTPUTDIR}/.config <<-EOF
- CONFIG_INITRAMFS_SOURCE="${TMPDIR}/initramfs-${KV}.cpio${compress_ext}"
- CONFIG_INITRAMFS_ROOT_UID=0
- CONFIG_INITRAMFS_ROOT_GID=0
- CONFIG_INITRAMFS_COMPRESSION_NONE=n
- CONFIG_INITRAMFS_COMPRESSION_GZIP=n
- CONFIG_INITRAMFS_COMPRESSION_BZIP2=n
- CONFIG_INITRAMFS_COMPRESSION_LZMA=n
- CONFIG_INITRAMFS_COMPRESSION_XZ=y
- CONFIG_INITRAMFS_COMPRESSION_LZO=n
- CONFIG_INITRAMFS_COMPRESSION_LZ4=n
- CONFIG_${compress_config}=y
- EOF
+ mv "${CPIO_ARCHIVE}" "${CPIO_ARCHIVE}.cpio"
+
+ print_info 1 "$(get_indent 1)>> --integrated-initramfs is set; Setting CONFIG_INITRAMFS_* options ..."
+
+ [ -f "${KCONFIG_MODIFIED_MARKER}" ] && rm "${KCONFIG_MODIFIED_MARKER}"
+ [ -f "${KCONFIG_REQUIRED_OPTIONS}" ] && rm "${KCONFIG_REQUIRED_OPTIONS}"
+
+ kconfig_set_opt "${kconfig_file_used}" "CONFIG_BLK_DEV_INITRD" "y"
+ kconfig_set_opt "${kconfig_file_used}" "CONFIG_INITRAMFS_SOURCE" "\"${CPIO_ARCHIVE}.cpio\""
+ kconfig_set_opt "${kconfig_file_used}" "CONFIG_INITRAMFS_ROOT_UID" "0"
+ kconfig_set_opt "${kconfig_file_used}" "CONFIG_INITRAMFS_ROOT_GID" "0"
+
+ set_initramfs_compression_method "${kconfig_file_used}"
+
+ if [ -f "${KCONFIG_MODIFIED_MARKER}" ]
+ then
+ print_info 1 "$(get_indent 1)>> Running 'make olddefconfig' due to changed kernel options ..."
+ pushd "${KERNEL_DIR}" &>/dev/null || gen_die "Failed to chdir to '${KERNEL_DIR}'!"
+ compile_generic olddefconfig kernel 2>/dev/null
+ popd &>/dev/null || gen_die "Failed to chdir!"
+ fi
else
if isTrue "${COMPRESS_INITRD}"
then
- cmd_xz=$(type -p xz)
- cmd_lzma=$(type -p lzma)
- cmd_bzip2=$(type -p bzip2)
- cmd_gzip=$(type -p gzip)
- cmd_lzop=$(type -p lzop)
- cmd_lz4=$(type -p lz4)
- pkg_xz='app-arch/xz-utils'
- pkg_lzma='app-arch/xz-utils'
- pkg_bzip2='app-arch/bzip2'
- pkg_gzip='app-arch/gzip'
- pkg_lzop='app-arch/lzop'
- pkg_lz4='app-arch/lz4'
- local compression
- case ${COMPRESS_INITRD_TYPE} in
- xz|lzma|bzip2|gzip|lzop|lz4) compression=${COMPRESS_INITRD_TYPE} ;;
- lzo) compression=lzop ;;
- best|fastest)
- for tuple in \
- 'CONFIG_RD_XZ cmd_xz xz' \
- 'CONFIG_RD_LZMA cmd_lzma lzma' \
- 'CONFIG_RD_BZIP2 cmd_bzip2 bzip2' \
- 'CONFIG_RD_GZIP cmd_gzip gzip' \
- 'CONFIG_RD_LZO cmd_lzop lzop' \
- 'CONFIG_RD_LZ4 cmd_lz4 lz4' \
- ; do
- set -- ${tuple}
- kernel_option=$1
- cmd_variable_name=$2
- if ${CONFGREP} -q "^${kernel_option}=y" "${ACTUAL_KERNEL_CONFIG}" && test -n "${!cmd_variable_name}" ; then
- compression=$3
- [[ ${COMPRESS_INITRD_TYPE} == best ]] && break
- fi
- done
- [[ -z "${compression}" ]] && gen_die "None of the initramfs compression methods we tried are supported by your kernel (config file \"${ACTUAL_KERNEL_CONFIG}\"), strange!?"
- ;;
- *)
- gen_die "Compression '${COMPRESS_INITRD_TYPE}' unknown"
- ;;
- esac
-
- # Check for actual availability
- cmd_variable_name=cmd_${compression}
- pkg_variable_name=pkg_${compression}
- [[ -z "${!cmd_variable_name}" ]] && gen_die "Compression '${compression}' is not available. Please install package '${!pkg_variable_name}'."
-
- case $compression in
- xz) compress_ext='.xz' compress_cmd="${cmd_xz} -e --check=none -z -f -9" ;;
- lzma) compress_ext='.lzma' compress_cmd="${cmd_lzma} -z -f -9" ;;
- bzip2) compress_ext='.bz2' compress_cmd="${cmd_bzip2} -z -f -9" ;;
- gzip) compress_ext='.gz' compress_cmd="${cmd_gzip} -f -9" ;;
- lzop) compress_ext='.lzo' compress_cmd="${cmd_lzop} -f -9" ;;
- lz4) compress_ext='.lz4' compress_cmd="${cmd_lz4} -f -9 -l -q" ;;
- esac
-
- if [ -n "${compression}" ]; then
- print_info 1 "$(getIndent 1)>> Compressing cpio data (${compress_ext})..."
- print_info 5 "$(getIndent 1)>> Compression command (${compress_cmd} $CPIO)..."
- ${compress_cmd} "${CPIO}" || gen_die "Compression (${compress_cmd}) failed"
- mv -f "${CPIO}${compress_ext}" "${CPIO}" || gen_die "Rename failed"
- else
- print_info 1 "$(getIndent 1)>> Not compressing cpio data ..."
+ if ! isTrue "${BUILD_KERNEL}" || isTrue "${KERNCACHE_IS_VALID}"
+ then
+ # We need to initialize COMPRESS_INITRD_TYPE in case it was set
+ # to best/fastest and validate if used kernel config can decompress
+ # set COMPRESS_INITRD_TYPE at all.
+ set_initramfs_compression_method "${kconfig_file_used}"
fi
+
+ print_info 1 "$(get_indent 1)>> Compressing cpio data (${GKICM_LOOKUP_TABLE_EXT[${COMPRESS_INITRD_TYPE}]}) ..."
+ print_info 3 "COMMAND: ${GKICM_LOOKUP_TABLE_CMD[${COMPRESS_INITRD_TYPE}]} ${CPIO_ARCHIVE}" 1 0 1
+ ${GKICM_LOOKUP_TABLE_CMD[${COMPRESS_INITRD_TYPE}]} "${CPIO_ARCHIVE}" || gen_die "Initramfs compression using '${GKICM_LOOKUP_TABLE_CMD[${COMPRESS_INITRD_TYPE}]}' failed"
+ mv -f "${CPIO_ARCHIVE}${GKICM_LOOKUP_TABLE_EXT[${COMPRESS_INITRD_TYPE}]}" "${CPIO_ARCHIVE}" || gen_die "Rename failed"
+ else
+ print_info 3 "$(get_indent 1)>> --no-compress-initramfs is set; Skipping compression of initramfs ..."
fi
## To early load microcode we need to follow some pretty specific steps
## mostly laid out in linux/Documentation/x86/early-microcode.txt
## It only loads monolithic ucode from an uncompressed cpio, which MUST
## be before the other cpio archives in the stream.
- cfg_CONFIG_MICROCODE=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}"/.config CONFIG_MICROCODE)
- if isTrue "${MICROCODE_INITRAMFS}" && [ "${cfg_CONFIG_MICROCODE}" == "y" ]; then
- if [[ "${MICROCODE}" == intel ]]; then
- # Only show this information for Intel users because we have no mechanism yet
- # to generate amd-*.img in /boot after sys-kernel/linux-firmware update
- print_info 1 "MICROCODE_INITRAMFS option is enabled by default for compatability but made obsolete by >=sys-boot/grub-2.02-r1"
+ if isTrue "${MICROCODE_INITRAMFS}"
+ then
+ local cfg_CONFIG_MICROCODE=$(kconfig_get_opt "${kconfig_file_used}" CONFIG_MICROCODE)
+ local cfg_CONFIG_MICROCODE_INTEL=$(kconfig_get_opt "${kconfig_file_used}" CONFIG_MICROCODE_INTEL)
+ local cfg_CONFIG_MICROCODE_AMD=$(kconfig_get_opt "${kconfig_file_used}" CONFIG_MICROCODE_AMD)
+ print_info 1 "$(get_indent 1)>> Adding early-microcode support ..."
+ local UCODEDIR="${TEMP}/ucode_tmp/kernel/x86/microcode/"
+ mkdir -p "${UCODEDIR}" || gen_die "Failed to create '${UCODEDIR}'!"
+ echo 1 > "${TEMP}/ucode_tmp/early_cpio"
+
+ if [ "${cfg_CONFIG_MICROCODE}" != "y" ]
+ then
+ print_warning 1 "$(get_indent 2)early-microcode: Will add microcode(s) like requested but kernel has set CONFIG_MICROCODE=n"
fi
- cfg_CONFIG_MICROCODE_INTEL=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}"/.config CONFIG_MICROCODE_INTEL)
- cfg_CONFIG_MICROCODE_AMD=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}"/.config CONFIG_MICROCODE_AMD)
- print_info 1 "$(getIndent 1)>> Adding early-microcode support..."
- UCODEDIR="${TEMP}/ucode_tmp/kernel/x86/microcode/"
- mkdir -p "${UCODEDIR}"
- if [ "${cfg_CONFIG_MICROCODE_INTEL}" == "y" ]; then
- if [ -d /lib/firmware/intel-ucode ]; then
- print_info 1 "$(getIndent 2)early-microcode: Adding GenuineIntel.bin..."
+ if [[ "${MICROCODE}" == 'all' || "${MICROCODE}" == 'intel' ]]
+ then
+ if [[ "${cfg_CONFIG_MICROCODE_INTEL}" != "y" ]]
+ then
+ print_warning 1 "$(get_indent 2)early-microcode: Will add Intel microcode(s) like requested (--microcode=${MICROCODE}) but kernel has set CONFIG_MICROCODE_INTEL=n"
+ fi
+
+ if [ -d /lib/firmware/intel-ucode ]
+ then
+ print_info 1 "$(get_indent 2)early-microcode: Adding GenuineIntel.bin ..."
cat /lib/firmware/intel-ucode/* > "${UCODEDIR}/GenuineIntel.bin" || gen_die "Failed to concat intel cpu ucode"
else
- print_info 1 "$(getIndent 2)early-microcode: CONFIG_MICROCODE_INTEL=y set but no ucode available. Please install sys-firmware/intel-microcode[split-ucode]"
+ print_warning 1 "$(get_indent 2)early-microcode: Unable to add Intel microcode like requested (--microcode=${MICROCODE}); No ucode is available."
+ print_warning 1 "$(get_indent 2) Is sys-firmware/intel-microcode[split-ucode] installed?"
fi
fi
- if [ "${cfg_CONFIG_MICROCODE_AMD}" == "y" ]; then
- if [ -d /lib/firmware/amd-ucode ]; then
- print_info 1 "$(getIndent 2)early-microcode: Adding AuthenticAMD.bin..."
+
+ if [[ "${MICROCODE}" == 'all' || "${MICROCODE}" == 'amd' ]]
+ then
+ if [[ "${cfg_CONFIG_MICROCODE_AMD}" != "y" ]]
+ then
+ print_warning 1 "$(get_indent 2)early-microcode: Will add AMD microcode(s) like requested (--microcode=${MICROCODE}) but kernel has set CONFIG_MICROCODE_AMD=n"
+ fi
+
+ if [ -d /lib/firmware/amd-ucode ]
+ then
+ print_info 1 "$(get_indent 2)early-microcode: Adding AuthenticAMD.bin ..."
cat /lib/firmware/amd-ucode/*.bin > "${UCODEDIR}/AuthenticAMD.bin" || gen_dir "Failed to concat amd cpu ucode"
else
- print_info 1 "$(getIndent 2)early-microcode: CONFIG_MICROCODE_AMD=y set but no ucode available. Please install sys-firmware/linux-firmware"
+ print_warning 1 "$(get_indent 2)early-microcode: Unable to add AMD microcode like requested (--microcode=${MICROCODE}); No ucode is available."
+ print_warning 1 "$(get_indent 2) Is sys-firmware/linux-firmware installed?"
fi
fi
- if [ -f "${UCODEDIR}/AuthenticAMD.bin" -o -f "${UCODEDIR}/GenuineIntel.bin" ]; then
- print_info 1 "$(getIndent 2)early-microcode: Creating cpio..."
- pushd "${TEMP}/ucode_tmp" > /dev/null
- find . | cpio -o -H newc > ../ucode.cpio || gen_die "Failed to create cpu microcode cpio"
- popd > /dev/null
- print_info 1 "$(getIndent 2)early-microcode: Prepending early-microcode to initramfs..."
- cat "${TEMP}/ucode.cpio" "${CPIO}" > "${CPIO}.early-microcode" || gen_die "Failed to prepend early-microcode to initramfs"
- mv -f "${CPIO}.early-microcode" "${CPIO}" || gen_die "Rename failed"
+
+ if [ -f "${UCODEDIR}/AuthenticAMD.bin" -o -f "${UCODEDIR}/GenuineIntel.bin" ]
+ then
+ print_info 1 "$(get_indent 2)early-microcode: Creating cpio ..."
+ pushd "${TEMP}/ucode_tmp" &>/dev/null || gen_die "Failed to chdir to '${TEMP}/ucode_tmp'!"
+ log_future_cpio_content
+ find . -print0 | "${CPIO_COMMAND}" --quiet --null -o -H newc > ../ucode.cpio || gen_die "Failed to create cpu microcode cpio"
+ popd &>/dev/null || gen_die "Failed to chdir!"
+ print_info 1 "$(get_indent 2)early-microcode: Prepending early-microcode to initramfs ..."
+ cat "${TEMP}/ucode.cpio" "${CPIO_ARCHIVE}" > "${CPIO_ARCHIVE}.early-microcode" || gen_die "Failed to prepend early-microcode to initramfs"
+ mv -f "${CPIO_ARCHIVE}.early-microcode" "${CPIO_ARCHIVE}" || gen_die "Rename failed"
else
- print_info 1 "$(getIndent 2)early-microcode: CONFIG_MICROCODE=y is set but no microcode found"
- print_info 1 "$(getIndent 2)early-microcode: You can disable MICROCODE_INITRAMFS option if you use your bootloader to load AMD/Intel ucode initrd"
+ print_warning 1 "$(get_indent 2)early-microcode: No microcode found; Will not prepend any microcode to initramfs ..."
+ print_info 1 "$(get_indent 2) ${BOLD}Note:${NORMAL} You can set --no-microcode-initramfs if you load microcode on your own"
fi
+
+ if ! isTrue "${WRAP_INITRD}"
+ then
+ print_info 1 ''
+ print_info 1 "${BOLD}Note:${NORMAL}"
+ print_info 1 '--microcode-initramfs option is enabled by default for backward compatability.'
+ print_info 1 'If your bootloader can load multiple initramfs it is recommended to load'
+ print_info 1 '/boot/{amd,intel}-uc.img instead of embedding microcode into initramfs so you'
+ print_info 1 'can update microcode via package update independently of initramfs updates.'
+ fi
+ else
+ print_info 3 "$(get_indent 1)>> --no-microcode-initramfs is set; Skipping early-microcode support ..."
fi
+
if isTrue "${WRAP_INITRD}"
then
local mkimage_cmd=$(type -p mkimage)
[[ -z ${mkimage_cmd} ]] && gen_die "mkimage is not available. Please install package 'dev-embedded/u-boot-tools'."
local mkimage_args="-A ${ARCH} -O linux -T ramdisk -C ${compression:-none} -a 0x00000000 -e 0x00000000"
- print_info 1 "$(getIndent 1)>> Wrapping initramfs using mkimage..."
- print_info 2 "$(getIndent 1)${mkimage_cmd} ${mkimage_args} -n initramfs-${KV} -d ${CPIO} ${CPIO}.uboot"
- ${mkimage_cmd} ${mkimage_args} -n "initramfs-${KV}" -d "${CPIO}" "${CPIO}.uboot" >> ${LOGFILE} 2>&1 || gen_die "Wrapping initramfs using mkimage failed"
- mv -f "${CPIO}.uboot" "${CPIO}" || gen_die "Rename failed"
+ print_info 1 "$(get_indent 1)>> Wrapping initramfs using mkimage ..."
+ print_info 2 "$(get_indent 1)${mkimage_cmd} ${mkimage_args} -n ${GK_FILENAME_TEMP_INITRAMFS} -d ${CPIO_ARCHIVE} ${CPIO_ARCHIVE}.uboot"
+ ${mkimage_cmd} ${mkimage_args} -n "${GK_FILENAME_TEMP_INITRAMFS}" -d "${CPIO_ARCHIVE}" "${CPIO_ARCHIVE}.uboot" >> ${LOGFILE} 2>&1 || gen_die "Wrapping initramfs using mkimage failed"
+ mv -f "${CPIO_ARCHIVE}.uboot" "${CPIO_ARCHIVE}" || gen_die "Rename failed"
fi
fi
@@ -1287,9 +2399,10 @@ create_initramfs() {
then
if ! isTrue "${INTEGRATED_INITRAMFS}"
then
- copy_image_with_preserve "initramfs" \
- "${TMPDIR}/initramfs-${KV}" \
- "initramfs-${KNAME}-${ARCH}-${KV}"
+ copy_image_with_preserve \
+ "${GK_FILENAME_INITRAMFS_SYMLINK}" \
+ "${CPIO_ARCHIVE}" \
+ "${GK_FILENAME_INITRAMFS}"
fi
fi
}
diff --git a/gen_moddeps.sh b/gen_moddeps.sh
index ffc4d31..070131c 100755
--- a/gen_moddeps.sh
+++ b/gen_moddeps.sh
@@ -1,79 +1,75 @@
#!/bin/bash
# $Id$
-modules_kext()
-{
- KEXT=".ko"
- if grep -sq '^CONFIG_MODULE_COMPRESS=y' "${KERNEL_OUTPUTDIR}"/.config; then
- grep -sq '^CONFIG_MODULE_COMPRESS_XZ=y' "${KERNEL_OUTPUTDIR}"/.config && KEXT='.ko.xz'
- grep -sq '^CONFIG_MODULE_COMPRESS_GZIP=y' "${KERNEL_OUTPUTDIR}"/.config && KEXT='.ko.gz'
+mod_dep_list() {
+ if [ ! -f "${TEMP}/moddeps" ]
+ then
+ gen_dep_list > "${TEMP}/moddeps"
fi
- echo ${KEXT}
+
+ cat "${TEMP}/moddeps"
}
-modules_dep_list()
-{
- KEXT=$(modules_kext)
- if [ -f ${INSTALL_MOD_PATH}/lib/modules/${KV}/modules.dep ]
+xbasename() {
+ local -a moddeplist=( $( </dev/stdin ) )
+
+ if (( ${#moddeplist[@]} > 0 ))
then
- cat ${INSTALL_MOD_PATH}/lib/modules/${KV}/modules.dep | grep ${1}${KEXT}\: | cut -d\: -f2
+ # prepend slash to each moddeplist element
+ # to avoid passing elements as basename options
+ basename -s "${KEXT}" "${moddeplist[@]/#/\/}"
fi
}
-# Pass module deps list
-strip_mod_paths()
-{
- local x
- local ret
- local myret
-
- for x in ${*}
- do
- ret=`basename ${x} | cut -d. -f1`
- myret="${myret} ${ret}"
- done
- echo "${myret}"
-}
+gen_dep_list() {
+ local moddir="${KERNEL_MODULES_PREFIX%/}/lib/modules/${KV}"
+ if isTrue "${ALLRAMDISKMODULES}"
+ then
+ cat "${moddir}/modules.builtin"
+ cat "${moddir}/modules.dep" | cut -d':' -f1
+ else
+ local -a modlist=() moddeplist=()
-gen_deps()
-{
- local modlist
- local deps
-
- for x in ${*}
- do
- echo ${x} >> ${TEMP}/moddeps
- modlist=`modules_dep_list ${x}`
- if [ "${modlist}" != "" -a "${modlist}" != " " ]
- then
- deps=`strip_mod_paths ${modlist}`
- else
- deps=""
- fi
- for y in ${deps}
+ local mygroups
+ for mygroups in ${!MODULES_*} GK_INITRAMFS_ADDITIONAL_KMODULES
do
- echo ${y} >> ${TEMP}/moddeps
+ modlist+=( ${!mygroups} )
done
- done
-}
-gen_dep_list()
-{
- if isTrue "${ALLRAMDISKMODULES}"; then
- strip_mod_paths $(find "${INSTALL_MOD_PATH}/lib/modules/${KV}" -name "*$(modules_kext)") | sort
- else
- local group_modules
- rm -f ${TEMP}/moddeps > /dev/null
+ modlist=( $(printf '%s\n' "${modlist[@]}" | sort | uniq) )
- for group_modules in ${!MODULES_*}; do
- gen_deps ${!group_modules}
- done
+ modlist+=( $(
+ local -a rxargs=( "${modlist[@]}" )
- # Only list each module once
- if [ -f ${TEMP}/moddeps ]
- then
- cat ${TEMP}/moddeps | sort | uniq
- fi
- fi
+ rxargs=( "${rxargs[@]/#/-ealias\ }" )
+ rxargs=( "${rxargs[@]/%/\ }" )
+
+ cat "${moddir}/modules.alias" \
+ | grep -F "${rxargs[@]}" \
+ | cut -d' ' -f3-
+ ) )
+
+ modlist=( $(printf '%s\n' "${modlist[@]}" | sort | uniq) )
+
+ local mydeps mymod
+ while IFS=" " read -r -u 3 mymod mydeps
+ do
+ moddeplist+=( ${mymod%:} ${mydeps} )
+ done 3< <(
+ local -a rxargs=( "${modlist[@]}" )
+
+ rxargs=( "${rxargs[@]/#/-e\/}" )
+ rxargs=( "${rxargs[@]/%/${KEXT}:}" )
+
+ cat "${moddir}/modules.builtin" \
+ | xargs printf '%s:\n' \
+ | grep -F "${rxargs[@]}"
+
+ cat "${moddir}/modules.dep" \
+ | grep -F "${rxargs[@]}"
+ )
+
+ printf '%s\n' "${moddeplist[@]}"
+ fi | xbasename | sort | uniq
}
diff --git a/gen_package.sh b/gen_package.sh
index d8ffac0..c49141f 100755
--- a/gen_package.sh
+++ b/gen_package.sh
@@ -2,232 +2,292 @@
# $Id$
gen_minkernpackage() {
- print_info 1 ''
- print_info 1 "Creating minimal kernel package in '${MINKERNPACKAGE}'..."
- rm -rf "${TEMP}/minkernpackage" > /dev/null 2>&1
- mkdir "${TEMP}/minkernpackage" || gen_die 'Could not make a directory for the kernel package!'
- if [ "${KERNCACHE}" != "" ]
+ print_info 1 "minkernpkg: >> Creating minimal kernel package in '${MINKERNPACKAGE}' ..."
+ rm -rf "${TEMP}/minkernpackage" >/dev/null 2>&1
+ mkdir "${TEMP}/minkernpackage" || gen_die "Failed to create '${TEMP}/minkernpackage'!"
+ if [ -n "${KERNCACHE}" ]
then
- /bin/tar -x -C ${TEMP}/minkernpackage -f ${KERNCACHE} kernel-${ARCH}-${KV}
- mv minkernpackage/{kernel-${ARCH}-${KV},kernel-${KNAME}-${ARCH}-${KV}}
- /bin/tar -x -C ${TEMP}/minkernpackage -f ${KERNCACHE} config-${ARCH}-${KV}
- mv minkernpackage/{config-${ARCH}-${KV},config-${KNAME}-${ARCH}-${KV}}
- if isTrue "${GENZIMAGE}"
+ "${TAR_COMMAND}" -x -C "${TEMP}"/minkernpackage -f "${KERNCACHE}" "${GK_FILENAME_TEMP_KERNEL}" \
+ || gen_die "Failed to extract '${GK_FILENAME_TEMP_KERNEL}' from '${KERNCACHE}' to '${TEMP}/minkernpackage'!"
+
+ if [[ "${GK_FILENAME_TEMP_KERNEL}" != "${GK_FILENAME_KERNEL}" ]]
then
- /bin/tar -x -C ${TEMP}/minkernpackage -f ${KERNCACHE} kernelz-${ARCH}-${KV}
- mv minkernpackage/{kernelz-${ARCH}-${KV},kernelz-${KNAME}-${ARCH}-${KV}}
+ mv "${TEMP}"/minkernpackage/{${GK_FILENAME_TEMP_KERNEL},${GK_FILENAME_KERNEL}} \
+ || gen_die "Failed to rename '${TEMP}/minkernpackage/${GK_FILENAME_TEMP_KERNEL}' to '${GK_FILENAME_KERNEL}'!"
fi
- if [ ! -f minkernpackage/kernel-${KNAME}-${ARCH}-${KV} \
- -o ! -f minkernpackage/config-${KNAME}-${ARCH}-${KV} ];
+
+ "${TAR_COMMAND}" -x -C "${TEMP}"/minkernpackage -f "${KERNCACHE}" "${GK_FILENAME_TEMP_SYSTEMMAP}" \
+ || gen_die "Failed to extract '${GK_FILENAME_TEMP_SYSTEMMAP}' from '${KERNCACHE}' to '${TEMP}/minkernpackage'!"
+
+ if [[ "${GK_FILENAME_TEMP_SYSTEMMAP}" != "${GK_FILENAME_SYSTEMMAP}" ]]
then
- gen_die "Cannot locate kernel binary"
+ mv "${TEMP}"/minkernpackage/{${GK_FILENAME_TEMP_SYSTEMMAP},${GK_FILENAME_SYSTEMMAP}} \
+ || gen_die "Failed to rename '${TEMP}/minkernpackage/${GK_FILENAME_TEMP_SYSTEMMAP}' to '${GK_FILENAME_SYSTEMMAP}'!"
+ fi
+
+ "${TAR_COMMAND}" -x -C "${TEMP}"/minkernpackage -f "${KERNCACHE}" "${GK_FILENAME_TEMP_CONFIG}" \
+ || gen_die "Failed to extract '${GK_FILENAME_TEMP_CONFIG}' from '${KERNCACHE}' to '${TEMP}/minkernpackage'!"
+
+ if isTrue "${GENZIMAGE}"
+ then
+ "${TAR_COMMAND}" -x -C "${TEMP}"/minkernpackage -f "${KERNCACHE}" "${GK_FILENAME_TEMP_KERNELZ}" \
+ || gen_die "Failed to extract '${GK_FILENAME_TEMP_KERNELZ}' from '${KERNCACHE}' to '${TEMP}/minkernpackage'!"
+
+ if [[ "${GK_FILENAME_TEMP_KERNELZ}" != "${GK_FILENAME_KERNELZ}" ]]
+ then
+ mv "${TEMP}"/minkernpackage/{${GK_FILENAME_TEMP_KERNELZ},${GK_FILENAME_KERNELZ}} \
+ || gen_die "Failed to rename '${TEMP}/minkernpackage/${GK_FILENAME_TEMP_KERNELZ}' to '${GK_FILENAME_KERNELZ}'!"
+ fi
fi
else
local tmp_kernel_binary=$(find_kernel_binary ${KERNEL_BINARY})
- local tmp_kernel_binary2=$(find_kernel_binary ${KERNEL_BINARY_2})
if [ -z "${tmp_kernel_binary}" ]
then
- gen_die "Cannot locate kernel binary"
+ gen_die "Failed to locate kernel binary '${KERNEL_BINARY}'!"
fi
- cd "${KERNEL_OUTPUTDIR}"
- cp "${tmp_kernel_binary}" "${TEMP}/minkernpackage/kernel-${KNAME}-${ARCH}-${KV}" || gen_die 'Could not the copy kernel for the min kernel package!'
- cp ".config" "${TEMP}/minkernpackage/config-${KNAME}-${ARCH}-${KV}" || gen_die 'Could not the copy kernel config for the min kernel package!'
+
+ cd "${KERNEL_OUTPUTDIR}" || gen_die "Failed to chdir to '${KERNEL_OUTPUTDIR}'!"
+
+ cp "${tmp_kernel_binary}" "${TEMP}/minkernpackage/${GK_FILENAME_TEMP_KERNEL}" \
+ || gen_die "Could not copy the kernel binary '${tmp_kernel_binary}' for the min kernel package!"
+
+ cp "System.map" "${TEMP}/minkernpackage/${GK_FILENAME_TEMP_SYSTEMMAP}" \
+ || gen_die "Could not copy '${KERNEL_OUTPUTDIR}/System.map' for the min kernel package!"
+
+ cp ".config" "${TEMP}/minkernpackage/${GK_FILENAME_TEMP_CONFIG}" \
+ || gen_die "Could not copy the kernel config '${KERNEL_OUTPUTDIR}/.config' for the min kernel package!"
+
if isTrue "${GENZIMAGE}"
then
- cp "${tmp_kernel_binary2}" "${TEMP}/minkernpackage/kernelz-${KNAME}-${ARCH}-${KV}" || gen_die "Could not copy the kernelz for the min kernel package"
+ local tmp_kernel_binary2=$(find_kernel_binary ${KERNEL_BINARY_2})
+ if [ -z "${tmp_kernel_binary2}" ]
+ then
+ gen_die "Failed to locate kernel binary '${KERNEL_BINARY_2}'!"
+ fi
+
+ cp "${tmp_kernel_binary2}" "${TEMP}/minkernpackage/${GK_FILENAME_TEMP_KERNEL}" \
+ || gen_die "Could not copy the kernelz binary '${tmp_kernel_binary2}' for the min kernel package!"
fi
fi
if ! isTrue "${INTEGRATED_INITRAMFS}"
then
- isTrue "${BUILD_RAMDISK}" && { cp "${TMPDIR}/initramfs-${KV}" "${TEMP}/minkernpackage/initramfs-${KNAME}-${ARCH}-${KV}" || gen_die 'Could not copy the initramfs for the kernel package!'; }
+ if isTrue "${BUILD_RAMDISK}"
+ then
+ cp "${TMPDIR}/${GK_FILENAME_TEMP_INITRAMFS}" "${TEMP}/minkernpackage/${GK_FILENAME_TEMP_INITRAMFS}" \
+ || gen_die "Could not copy the initramfs '${TMPDIR}/${GK_FILENAME_TEMP_INITRAMFS}' for the min kernel package!"
+ fi
fi
- if [ "${KERNCACHE}" != "" ]
- then
- /bin/tar -x -C ${TEMP}/minkernpackage -f ${KERNCACHE} System.map-${ARCH}-${KV}
- mv minkernpackage/{System.map-${ARCH}-${KV},System.map-${KNAME}-${ARCH}-${KV}} ||
- gen_die 'Could not copy System.map from kerncache for the kernel package!'
- else
- cp "${KERNEL_OUTPUTDIR}/System.map" "${TEMP}/minkernpackage/System.map-${KNAME}-${ARCH}-${KV}" || gen_die 'Could not copy System.map for the kernel package!';
- fi
+ cd "${TEMP}/minkernpackage" || gen_die "Failed to chdir to '${TEMP}/minkernpackage'!"
- cd "${TEMP}/minkernpackage"
- /bin/tar -jcpf ${MINKERNPACKAGE} * || gen_die 'Could not compress the kernel package!'
+ local -a tar_cmd=( "$(get_tar_cmd "${MINKERNPACKAGE}")" )
+ tar_cmd+=( '*' )
- cd "${TEMP}"
- isTrue "${CMD_DEBUGCLEANUP}" && rm -rf "${TEMP}/minkernpackage" > /dev/null
- return 0
+ print_info 3 "COMMAND: ${tar_cmd[*]}" 1 0 1
+ eval "${tar_cmd[@]}" || gen_die "Failed to create compressed min kernel package '${MINKERNPACKAGE}'!"
}
gen_modulespackage() {
- print_info 1 ''
- print_info 1 "Creating modules package in '${MODULESPACKAGE}'..."
- rm -rf "${TEMP}/modulespackage" > /dev/null 2>&1
- mkdir "${TEMP}/modulespackage" || gen_die 'Could not make a directory for the kernel package!'
-
- if [ -d ${INSTALL_MOD_PATH}/lib/modules/${KV} ]
+ if [ -d "${KERNEL_MODULES_PREFIX%/}/lib/modules/${KV}" ]
then
- mkdir -p ${TEMP}/modulespackage/lib/modules
- cp -r "${INSTALL_MOD_PATH}/lib/modules/${KV}" "${TEMP}/modulespackage/lib/modules"
- cd "${TEMP}/modulespackage"
- /bin/tar -jcpf ${MODULESPACKAGE} * || gen_die 'Could not compress the modules package!'
+ print_info 1 "modulespkg: >> Creating modules package in '${MODULESPACKAGE}' ..."
+ rm -rf "${TEMP}/modulespackage" >/dev/null 2>&1
+ mkdir "${TEMP}/modulespackage" || gen_die "Failed to create '${TEMP}/modulespackage'!"
+
+ mkdir -p "${TEMP}/modulespackage/lib/modules" || gen_die "Failed to create '${TEMP}/modulespackage/lib/modules'!"
+ cp -arP "${KERNEL_MODULES_PREFIX%/}/lib/modules/${KV}" "${TEMP}/modulespackage/lib/modules"
+
+ cd "${TEMP}/modulespackage" || gen_die "Failed to chdir to '${TEMP}/modulespackage'!"
+
+ local -a tar_cmd=( "$(get_tar_cmd "${MODULESPACKAGE}")" )
+ tar_cmd+=( '*' )
+
+ print_info 3 "COMMAND: ${tar_cmd[*]}" 1 0 1
+ eval "${tar_cmd[@]}" || gen_die "Failed to create compressed modules package '${MODULESPACKAGE}'!"
else
- print_info 1 "Could not create modules package, '${INSTALL_MOD_PATH}/lib/modules/${KV}' was not found"
+ print_info 1 "modulespkg: >> '${KERNEL_MODULES_PREFIX%/}/lib/modules/${KV}' was not found; Skipping creation of modules package in '${MODULESPACKAGE}' ..."
fi
-
- cd "${TEMP}"
- isTrue "${CMD_DEBUGCLEANUP}" && rm -rf "${TEMP}/modulespackage" > /dev/null
- return 0
}
-gen_kerncache()
-{
- print_info 1 ''
- print_info 1 "Creating kernel cache in '${KERNCACHE}'..."
- rm -rf "${TEMP}/kerncache" > /dev/null 2>&1
- mkdir "${TEMP}/kerncache" || gen_die 'Could not make a directory for the kernel cache!'
+gen_kerncache() {
+ print_info 1 "kerncache: >> Creating kernel cache in '${KERNCACHE}' ..."
+ rm -rf "${TEMP}/kerncache" >/dev/null 2>&1
+ mkdir "${TEMP}/kerncache" || gen_die "Failed to create '${TEMP}/kerncache'!"
local tmp_kernel_binary=$(find_kernel_binary ${KERNEL_BINARY})
- local tmp_kernel_binary2=$(find_kernel_binary ${KERNEL_BINARY_2})
if [ -z "${tmp_kernel_binary}" ]
then
- gen_die "Cannot locate kernel binary"
+ gen_die "Failed locate kernel binary '${KERNEL_BINARY}'!"
fi
- cd "${KERNEL_OUTPUTDIR}"
- cp "${tmp_kernel_binary}" "${TEMP}/kerncache/kernel-${ARCH}-${KV}" || gen_die 'Could not the copy kernel for the kernel package!'
- cp "${KERNEL_OUTPUTDIR}/.config" "${TEMP}/kerncache/config-${ARCH}-${KV}"
+ cd "${KERNEL_OUTPUTDIR}" || gen_die "Failed to chdir to '${KERNEL_OUTPUTDIR}'!"
+
+ cp -aL "${tmp_kernel_binary}" "${TEMP}/kerncache/${GK_FILENAME_TEMP_KERNEL}" \
+ || gen_die "Could not copy the kernel binary '${tmp_kernel_binary}' for the kernel package!"
+
+ cp -aL "${KERNEL_OUTPUTDIR}/.config" "${TEMP}/kerncache/${GK_FILENAME_TEMP_CONFIG}" \
+ || gen_die "Could not copy the kernel config '${KERNEL_OUTPUTDIR}/.config' for the kernel package!"
- if [[ "$(file --brief --mime-type "${KERNEL_CONFIG}")" == application/x-gzip ]]; then
+ if isTrue "$(is_gzipped "${KERNEL_CONFIG}")"
+ then
# Support --kernel-config=/proc/config.gz, mainly
- zcat "${KERNEL_CONFIG}" > "${TEMP}/kerncache/config-${ARCH}-${KV}.orig"
+ zcat "${KERNEL_CONFIG}" > "${TEMP}/kerncache/${GK_FILENAME_TEMP_CONFIG}.orig" \
+ || gen_die "Could not copy the kernel config '${KERNEL_CONFIG}' for the kernel package!"
else
- cp "${KERNEL_CONFIG}" "${TEMP}/kerncache/config-${ARCH}-${KV}.orig"
+ cp -aL "${KERNEL_CONFIG}" "${TEMP}/kerncache/${GK_FILENAME_TEMP_CONFIG}.orig" \
+ || gen_die "Could not copy the kernel config '${KERNEL_CONFIG}' for the kernel package!"
fi
- cp "${KERNEL_OUTPUTDIR}/System.map" "${TEMP}/kerncache/System.map-${ARCH}-${KV}"
+
+ cp -aL "${KERNEL_OUTPUTDIR}/System.map" "${TEMP}/kerncache/${GK_FILENAME_TEMP_SYSTEMMAP}" \
+ || gen_die "Could not copy the System.map '${KERNEL_OUTPUTDIR}/System.map' for the kernel package!"
+
if isTrue "${GENZIMAGE}"
then
- cp "${tmp_kernel_binary2}" "${TEMP}/kerncache/kernelz-${ARCH}-${KV}" || gen_die "Could not copy the kernelz for the kernel package"
+ local tmp_kernel_binary2=$(find_kernel_binary ${KERNEL_BINARY_2})
+ if [ -z "${tmp_kernel_binary2}" ]
+ then
+ gen_die "Failed locate kernelz binary '${KERNEL_BINARY_2}'!"
+ fi
+
+ cp -aL "${tmp_kernel_binary2}" "${TEMP}/kerncache/${GK_FILENAME_TEMP_KERNELZ}" \
+ || gen_die "Could not copy the kernelz '${tmp_kernel_binary2}' for the kernel package!"
fi
- echo "VERSION = ${VER}" > "${TEMP}/kerncache/kerncache.config"
+ echo "VERSION = ${VER}" > "${TEMP}/kerncache/kerncache.config" \
+ || gen_die "Failed to write to '${TEMP}/kerncache/kerncache.config'!"
+
echo "PATCHLEVEL = ${PAT}" >> "${TEMP}/kerncache/kerncache.config"
echo "SUBLEVEL = ${SUB}" >> "${TEMP}/kerncache/kerncache.config"
echo "EXTRAVERSION = ${EXV}" >> "${TEMP}/kerncache/kerncache.config"
+ echo "CONFIG_LOCALVERSION = ${LOV}" >> "${TEMP}/kerncache/kerncache.config"
- mkdir -p "${TEMP}/kerncache/lib/modules/"
+ mkdir -p "${TEMP}/kerncache/lib/modules/" \
+ || gen_die "Failed to create '${TEMP}/kerncache/lib/modules'"
- if [ -d ${INSTALL_MOD_PATH}/lib/modules/${KV} ]
+ if [ -d "${KERNEL_MODULES_PREFIX%/}/lib/modules/${KV}" ]
then
- cp -r "${INSTALL_MOD_PATH}/lib/modules/${KV}" "${TEMP}/kerncache/lib/modules"
+ cp -arP "${KERNEL_MODULES_PREFIX%/}/lib/modules/${KV}" "${TEMP}/kerncache/lib/modules"
fi
- cd "${TEMP}/kerncache"
- /bin/tar -jcpf ${KERNCACHE} * || gen_die 'Could not compress the kernel package!'
+ cd "${TEMP}/kerncache" || gen_die "Failed to chdir to '${TEMP}/kerncache'!"
+
+ local -a tar_cmd=( "$(get_tar_cmd "${KERNCACHE}")" )
+ tar_cmd+=( '*' )
- cd "${TEMP}"
- isTrue "${CMD_DEBUGCLEANUP}" && rm -rf "${TEMP}/kerncache" > /dev/null
- return 0
+ print_info 3 "COMMAND: ${tar_cmd[*]}" 1 0 1
+ eval "${tar_cmd[@]}" || gen_die "Failed to create compressed kernel package '${KERNCACHE}'!"
}
-gen_kerncache_extract_kernel()
-{
- /bin/tar -xf ${KERNCACHE} -C ${TEMP}
- copy_image_with_preserve "kernel" \
- "${TEMP}/kernel-${ARCH}-${KV}" \
- "kernel-${KNAME}-${ARCH}-${KV}"
+gen_kerncache_extract_kernel() {
+ print_info 1 "Extracting kerncache kernel from '${KERNCACHE}' ..."
+ "${TAR_COMMAND}" -xf "${KERNCACHE}" -C "${TEMP}" \
+ || gen_die "Failed to extract '${KERNCACHE}' to '${TEMP}'!"
+
+ copy_image_with_preserve \
+ "${GK_FILENAME_KERNEL_SYMLINK}" \
+ "${TEMP}/${GK_FILENAME_TEMP_KERNEL}" \
+ "${GK_FILENAME_KERNEL}"
if isTrue "${GENZIMAGE}"
then
- copy_image_with_preserve "kernelz" \
- "${TEMP}/kernelz-${ARCH}-${KV}" \
- "kernelz-${KNAME}-${ARCH}-${KV}"
+ copy_image_with_preserve \
+ "kernelz" \
+ "${TEMP}/${GK_FILENAME_TEMP_KERNELZ}" \
+ "${GK_FILENAME_KERNELZ}"
fi
- copy_image_with_preserve "System.map" \
- "${TEMP}/System.map-${ARCH}-${KV}" \
- "System.map-${KNAME}-${ARCH}-${KV}"
+ copy_image_with_preserve \
+ "${GK_FILENAME_SYSTEMMAP_SYMLINK}" \
+ "${TEMP}/${GK_FILENAME_TEMP_SYSTEMMAP}" \
+ "${GK_FILENAME_SYSTEMMAP}"
}
-gen_kerncache_extract_modules()
-{
- if [ -e "${KERNCACHE}" ]
+gen_kerncache_extract_modules() {
+ local modules_dir="${KERNEL_MODULES_PREFIX%/}/lib"
+
+ if [ ! -d "${modules_dir}" ]
then
- print_info 1 'Extracting kerncache kernel modules'
- if [ "${INSTALL_MOD_PATH}" != '' ]
- then
- /bin/tar -xf ${KERNCACHE} --strip-components 1 -C ${INSTALL_MOD_PATH}/lib
- else
- /bin/tar -xf ${KERNCACHE} --strip-components 1 -C /lib
- fi
+ mkdir -p "${modules_dir}" || gen_die "Failed to create '${modules_dir}'!"
fi
+
+ print_info 1 "Extracting kerncache kernel modules from '${KERNCACHE}' into '${modules_dir}' ..."
+
+ "${TAR_COMMAND}" -xf "${KERNCACHE}" --strip-components 1 -C "${modules_dir}" \
+ || gen_die "Failed to extract kerncache modules from '${KERNCACHE}' to '${modules_dir}'!"
}
-gen_kerncache_extract_config()
-{
- if [ -e "${KERNCACHE}" ]
+gen_kerncache_extract_config() {
+ print_info 1 "Extracting kerncache config from '${KERNCACHE}' to /etc/kernels ..."
+
+ if [ ! -d '/etc/kernels' ]
then
- print_info 1 'Extracting kerncache config to /etc/kernels'
- mkdir -p /etc/kernels
- /bin/tar -xf ${KERNCACHE} -C /etc/kernels config-${ARCH}-${KV}
- mv /etc/kernels/config-${ARCH}-${KV} /etc/kernels/kernel-config-${ARCH}-${KV}
+ mkdir -p /etc/kernels || gen_die "Failed to create '/etc/kernels'!"
fi
+
+ "${TAR_COMMAND}" -xf "${KERNCACHE}" -C /etc/kernels "${GK_FILENAME_TEMP_CONFIG}" \
+ || gen_die "Failed to extract kerncache config '${GK_FILENAME_TEMP_CONFIG}' from '${KERNCACHE}' to '/etc/kernels'!"
+
+ mv /etc/kernels/${GK_FILENAME_TEMP_CONFIG} /etc/kernels/${GK_FILENAME_CONFIG} \
+ || gen_die "Failed to rename kernelcache config '/etc/kernels/${GK_FILENAME_TEMP_CONFIG}' to '/etc/kernels/${GK_FILENAME_CONFIG}'!"
}
-gen_kerncache_is_valid()
-{
+gen_kerncache_is_valid() {
KERNCACHE_IS_VALID="no"
if [ -e "${KERNCACHE}" ]
then
+ "${TAR_COMMAND}" -xf "${KERNCACHE}" -C "${TEMP}" \
+ || gen_die "Failed to extract '${KERNCACHE}' to '${TEMP}'!"
+
if ! isTrue "${KERNEL_SOURCES}"
then
BUILD_KERNEL="no"
# Can make this more secure ....
- /bin/tar -xf ${KERNCACHE} -C ${TEMP}
- if [ -e ${TEMP}/config-${ARCH}-${KV} -a -e ${TEMP}/kernel-${ARCH}-${KV} ]
+ if [ -e "${TEMP}/${GK_FILENAME_TEMP_CONFIG}" -a -e "${TEMP}/${GK_FILENAME_TEMP_KERNEL}" ]
then
- print_info 1 'Valid kernel cache found; no sources will be used'
+ print_info 1 '' 1 0
+ print_info 1 'Valid kerncache found; No sources will be used ...'
KERNCACHE_IS_VALID="yes"
fi
else
- KERNEL_CONFIG="/${KERNEL_OUTPUTDIR}/.config"
- if [ "${CMD_KERNEL_CONFIG}" != '' ]
+ if [ -e "${TEMP}/${GK_FILENAME_TEMP_CONFIG}" -a -e "${KERNEL_CONFIG}" ]
then
- KERNEL_CONFIG="${CMD_KERNEL_CONFIG}"
- fi
-
- /bin/tar -xf ${KERNCACHE} -C ${TEMP}
- if [ -e ${TEMP}/config-${ARCH}-${KV} -a -e ${KERNEL_CONFIG} ]
- then
-
- if [ -e ${TEMP}/config-${ARCH}-${KV}.orig ]
+ if [ -e "${TEMP}/${GK_FILENAME_TEMP_CONFIG}.orig" ]
then
- test1=$(grep -v "^#" ${TEMP}/config-${ARCH}-${KV}.orig | md5sum | cut -d " " -f 1)
+ local test1=$(grep -v "^#" "${TEMP}/${GK_FILENAME_TEMP_CONFIG}.orig" | md5sum | cut -d " " -f 1)
else
- test1=$(grep -v "^#" ${TEMP}/config-${ARCH}-${KV} | md5sum | cut -d " " -f 1)
+ local test1=$(grep -v "^#" "${TEMP}/${GK_FILENAME_TEMP_CONFIG}" | md5sum | cut -d " " -f 1)
fi
- if [[ "$(file --brief --mime-type "${KERNEL_CONFIG}")" == application/x-gzip ]]; then
- # Support --kernel-config=/proc/config.gz, mainly
- local CONFGREP=zgrep
- else
- local CONFGREP=grep
- fi
- test2=$("${CONFGREP}" -v "^#" ${KERNEL_CONFIG} | md5sum | cut -d " " -f 1)
+ local confgrep_cmd=$(get_grep_cmd_for_file "${KERNEL_CONFIG}")
+ local test2=$("${confgrep_cmd}" -v "^#" "${KERNEL_CONFIG}" | md5sum | cut -d " " -f 1)
- if [ "${test1}" == "${test2}" ]
+ if [[ "${test1}" == "${test2}" ]]
then
- echo
- print_info 1 "No kernel configuration change, skipping kernel build..."
- echo
+ print_info 1 '' 1 0
+ print_info 1 "Valid kerncache '${KERNCACHE}' found; Will skip kernel build step ..."
KERNCACHE_IS_VALID="yes"
+ else
+ print_info 1 '' 1 0
+ print_info 1 "Kerncache kernel config differs from '${KERNEL_CONFIG}'; Ignoring outdated kerncache '${KERNCACHE}' ..."
+ fi
+ else
+ local invalid_reason="Kerncache does not contain kernel config"
+ if [ ! -e "${KERNEL_CONFIG}" ]
+ then
+ invalid_reason="Kernel config '${KERNEL_CONFIG}' does not exist -- cannot validate kerncache"
fi
+
+ print_info 1 '' 1 0
+ print_info 1 "${invalid_reason}; Ignorning kerncache '${KERNCACHE}' ..."
fi
fi
+ else
+ print_warning 1 '' 1 0
+ print_warning 1 "Kerncache '${KERNCACHE}' does not exist (yet?); Ignoring ..."
fi
+
export KERNCACHE_IS_VALID
- return 1
}
diff --git a/gen_worker.sh b/gen_worker.sh
new file mode 100755
index 0000000..caf407a
--- /dev/null
+++ b/gen_worker.sh
@@ -0,0 +1,156 @@
+#!/bin/bash
+
+export GK_WORKER_MASTER_PID=${BASHPID}
+trap 'exit 1' SIGTERM
+
+# Prevent aliases from causing portage to act inappropriately.
+# Make sure it's before everything so we don't mess aliases that follow.
+unalias -a
+
+# Make sure this isn't exported to scripts we execute.
+unset BASH_COMPAT
+
+source "${GK_SHARE}"/gen_funcs.sh || exit 1
+
+# Unset some variables that break things.
+unset GZIP BZIP BZIP2 CDPATH GREP_OPTIONS GREP_COLOR GLOBIGNORE
+
+die() {
+ set +x
+ if [ "$#" -gt '0' ]
+ then
+ print_error 1 "ERROR: ${1}"
+ fi
+
+ [[ -n "${GK_WORKER_MASTER_PID}" && ${BASHPID} == ${GK_WORKER_MASTER_PID} ]] || kill -s SIGTERM ${GK_WORKER_MASTER_PID}
+ exit 1
+}
+
+# Make sure genkernel's gen_die() won't be used -- make it an alias of
+# this script's die function.
+gen_die() {
+ die "$@"
+}
+
+# @FUNCTION: gkexec
+# @USAGE: <command> [<pipestatus-to-check>]
+# @DESCRIPTION:
+# Executes command with support for genkernel's logging.
+# Will die when command will exit with nonzero exit status.
+#
+# Genkernel has its own logfile and loglevel handling
+# with things like color/nocolor support.
+# To support this, we cannot just execute commands. Depending
+# on loglevel for example, we maybe have to use pipes.
+# To avoid writing complex statements each time, gkexec
+# wrapper was created.
+#
+# <command> Command to execute.
+#
+# <pipestatus-to-check> By default, the first command's
+# exit status will be checked. When executing multiple
+# commands with pipes, this argument controls which
+# command's exit status will be checked to decide if
+# command has been successfully executed.
+gkexec() {
+ if [ ${#} -gt 2 ]
+ then
+ # guard against ${array[@]}, first argument must be seen as a single word (${array[*]})
+ die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes at most three arguments (${#} given)!"
+ fi
+
+ local -a command=( "${1}" )
+ local pipes=${2:-0}
+
+ print_info 3 "COMMAND: ${command[@]}" 1 0 1
+
+ command+=( "$(catch_output_and_failures "Command '${command[@]}' failed!" ${pipes})" )
+ eval "${command[@]}"
+}
+
+# Prevent recursion.
+unset -f cleanup gkbuild unpack
+
+if [[ -s "${SANDBOX_LOG}" ]]
+then
+ print_warning 3 "Stale sandbox log '${SANDBOX_LOG}' detected, removing ..."
+
+ # We use SANDBOX_LOG to check for sandbox violations,
+ # so we ensure that there can't be a stale log to
+ # interfere with our logic.
+ x=
+ if [[ -n ${SANDBOX_ON} ]]
+ then
+ x=${SANDBOX_ON}
+ export SANDBOX_ON=0
+ fi
+
+ rm -f "${SANDBOX_LOG}" \
+ || die "Failed to remove stale sandbox log: '${SANDBOX_LOG}'!"
+
+ if [[ -n ${x} ]]
+ then
+ export SANDBOX_ON=${x}
+ fi
+
+ unset x
+fi
+
+__sb_append_var() {
+ local _v=$1 ; shift
+ local var="SANDBOX_${_v}"
+ [[ -z $1 || -n $2 ]] && die "Usage: add$(LC_ALL=C tr "[:upper:]" "[:lower:]" <<< "${_v}") <colon-delimited list of paths>"
+ export ${var}="${!var:+${!var}:}$1"
+}
+
+# addread() { __sb_append_var ${0#add} "$@" ; }
+addread() { __sb_append_var READ "$@" ; }
+addwrite() { __sb_append_var WRITE "$@" ; }
+adddeny() { __sb_append_var DENY "$@" ; }
+addpredict() { __sb_append_var PREDICT "$@" ; }
+
+catch_output_and_failures() {
+ local error_msg=${1:-"Command failed!"}
+ local pipes=${2:-0}
+ local output_processor=
+
+ if [[ ${LOGLEVEL} -ge 4 ]]
+ then
+ output_processor="2>&1 | tee -a \"${LOGFILE}\"; [[ \${PIPESTATUS[${pipes}]} -ne 0 ]] && die \"${error_msg}\" || true"
+ else
+ output_processor=">> \"${LOGFILE}\" 2>&1 || die \"${error_msg}\""
+ fi
+
+ echo ${output_processor}
+}
+
+# the sandbox is ENABLED by default
+export SANDBOX_ON=1
+
+#if no perms are specified, dirs/files will have decent defaults
+#(not secretive, but not stupid)
+umask 022
+
+if [[ "${#}" -lt 1 ]]
+then
+ die 'No module specified!'
+fi
+
+case "${1}" in
+ build)
+ MODULE="${GK_SHARE}/worker_modules/gkbuild.sh"
+ ;;
+ dropbear)
+ MODULE="${GK_SHARE}/worker_modules/dropbear.sh"
+ ;;
+ unpack)
+ MODULE="${GK_SHARE}/worker_modules/unpack.sh"
+ ;;
+ *)
+ die "Unknown module '${1}' specified!"
+ ;;
+esac
+
+source "${MODULE}" || die "Failed to source '${MODULE}'!"
+__module_main
+exit $?
diff --git a/genkernel b/genkernel
index 5337833..8bdb966 100755
--- a/genkernel
+++ b/genkernel
@@ -1,14 +1,17 @@
#!/bin/bash
-# $Id$
PATH="${PATH}:/sbin:/usr/sbin"
-GK_V='3.6.0.0'
+GK_V='4.3.14'
-# Set the default for TMPDIR. May be modified by genkernel.conf or the
-# --tempdir command line option.
-TMPDIR='/var/tmp/genkernel'
+# Normalize locales
+export LC_ALL=C
+export LANG=C
+unset LC_MESSAGES
+unset LC_CTYPE
-TODEBUGCACHE=1 # Until an error occurs or LOGFILE is fully qualified.
+GK_TIME_START=$(date +%s)
+
+TODEBUGCACHE=yes # Until an error occurs or LOGFILE is fully qualified.
small_die() {
echo "ERROR: $*" >&2
@@ -19,82 +22,90 @@ small_die() {
# /etc/genkernel.conf if nobody has specified one.
# NOTE: We are look for --config=... in a way that doesn't modify $@ since we access that again, later
-for arg in "$@"; do
+for arg in "$@"
+do
[[ "${arg}" == --config=* ]] && CMD_GK_CONFIG=${arg#--config=}
done
-# Pull in our configuration
+# Pull in our configuration to get GK_SHARE only...
_GENKERNEL_CONF=${CMD_GK_CONFIG:-/etc/genkernel.conf}
-source "${_GENKERNEL_CONF}" || small_die "Could not read ${_GENKERNEL_CONF}"
-
-# set default LOGLEVEL if uninitialized
-LOGLEVEL=${LOGLEVEL:-1}
+GK_SHARE=$(source "${_GENKERNEL_CONF}" &>/dev/null && echo ${GK_SHARE})
-# Start sourcing other scripts
-source ${GK_SHARE}/defaults/software.sh || small_die "Could not read ${GK_SHARE}/defaults/software.sh"
-source ${GK_SHARE}/defaults/config.sh || small_die "Could not read ${GK_SHARE}/defaults/config.sh"
-source ${GK_SHARE}/gen_funcs.sh || small_die "Could not read ${GK_SHARE}/gen_funcs.sh"
-source ${GK_SHARE}/gen_cmdline.sh || gen_die "Could not read ${GK_SHARE}/gen_cmdline.sh"
-source ${GK_SHARE}/gen_arch.sh || gen_die "Could not read ${GK_SHARE}/gen_arch.sh"
-source ${GK_SHARE}/gen_determineargs.sh || gen_die "Could not read ${GK_SHARE}/gen_determineargs.sh"
-source ${GK_SHARE}/gen_compile.sh || gen_die "Could not read ${GK_SHARE}/gen_compile.sh"
-source ${GK_SHARE}/gen_configkernel.sh || gen_die "Could not read ${GK_SHARE}/gen_configkernel.sh"
-source ${GK_SHARE}/gen_initramfs.sh || gen_die "Could not read ${GK_SHARE}/gen_initramfs.sh"
-source ${GK_SHARE}/gen_moddeps.sh || gen_die "Could not read ${GK_SHARE}/gen_moddeps.sh"
-source ${GK_SHARE}/gen_package.sh || gen_die "Could not read ${GK_SHARE}/gen_package.sh"
-source ${GK_SHARE}/gen_bootloader.sh || gen_die "Could not read ${GK_SHARE}/gen_bootloader.sh"
-
-if [ ! -d "${TMPDIR}" ]
+if [ -z "${GK_SHARE}" ]
then
- mkdir -p "${TMPDIR}" || gen_die "Failed to create '${TMPDIR}'!"
+ small_die "GK_SHARE is not set. Please check used genkernel config file at '${_GENKERNEL_CONF}'!"
fi
-TEMP=$(mktemp -d -p "${TMPDIR}" gk.XXXXXXXX)
-[ -z "${TEMP}" ] && gen_die "mktemp failed!"
-
-trap_cleanup(){
- # Call exit code of 1 for failure
- cleanup
- exit 1
-}
-
-cleanup(){
- if isTrue "${CMD_DEBUGCLEANUP}"; then
- if [ -n "$TEMP" -a -d "$TEMP" ]; then
- rm -rf "$TEMP"
- fi
+# Make sure that we do not clash with the environment
+GK_DETERMINEARGS_FILE="${GK_SHARE}/gen_determineargs.sh"
+GK_SETTINGS=( $(awk '/[^#]set_config_with_override/ { print $3 }' "${GK_DETERMINEARGS_FILE}" 2>/dev/null) )
+if [ ${#GK_SETTINGS[@]} -gt 0 ]
+then
+ GK_SETTINGS+=( CALLBACK )
+ GK_SETTINGS+=( EXTRAVERSION )
+ GK_SETTINGS+=( INSTALL_MOD_PATH )
+ GK_SETTINGS+=( MOD_INSTALL )
+ GK_SETTINGS+=( GREP_OPTIONS )
- if isTrue "${POSTCLEAR}"
+ for GK_SETTING in "${GK_SETTINGS[@]}"
+ do
+ if [[ "${GK_SETTING}" == "MAKEOPTS" ]]
then
- echo
- print_info 1 'RUNNING FINAL CACHE/TMP CLEANUP'
- print_info 1 "CACHE_DIR: ${CACHE_DIR}"
- CLEAR_CACHEDIR='yes'
- setup_cache_dir
- echo
- print_info 1 "TMPDIR: ${TMPDIR}"
- clear_tmpdir
+ continue
fi
- else
- print_info 1 "Not running any cleanup per DEBUGCLEANUP"
- print_info 1 "TEMP: ${TEMP}"
- print_info 1 "CACHE_DIR: ${CACHE_DIR}"
- print_info 1 "TMPDIR: ${TMPDIR}"
- fi
-}
-trap trap_cleanup SIGHUP SIGQUIT SIGINT SIGTERM SIGKILL
+ for var_to_unset in ${GK_SETTING} CMD_${GK_SETTING}
+ do
+ if [ -n "${!var_to_unset}" ]
+ then
+ echo "WARNING: Will unset existing variable '${var_to_unset}' to avoid clashing with genkernel config ..." >&2
+ unset ${var_to_unset} || small_die "Failed to unset existing variable '${var_to_unset}'!"
+ fi
+ done
+ done
+
+ unset GK_DETERMINEARGS_FILE GK_SETTINGS GK_SETTING var_to_unset
+else
+ small_die "Failed to extract genkernel options from '${GK_DETERMINEARGS_FILE}'!"
+fi
+
+# Now we can source our configuration...
+source "${_GENKERNEL_CONF}" || small_die "Could not read ${_GENKERNEL_CONF}"
+
+# set default LOGLEVEL if uninitialized
+LOGLEVEL=${LOGLEVEL:-1}
+
+# Start sourcing other scripts
+source "${GK_SHARE}"/defaults/compression_methods.sh || small_die "Could not read '${GK_SHARE}/defaults/compression_methods.sh'"
+source "${GK_SHARE}"/defaults/software.sh || small_die "Could not read '${GK_SHARE}/defaults/software.sh'"
+source "${GK_SHARE}"/defaults/config.sh || small_die "Could not read '${GK_SHARE}/defaults/config.sh'"
+source "${GK_SHARE}"/gen_funcs.sh || small_die "Could not read '${GK_SHARE}/gen_funcs.sh'"
+source "${GK_SHARE}"/gen_cmdline.sh || small_die "Could not read '${GK_SHARE}/gen_cmdline.sh'"
+source "${GK_SHARE}"/gen_arch.sh || small_die "Could not read '${GK_SHARE}/gen_arch.sh'"
+source "${GK_SHARE}"/gen_determineargs.sh || small_die "Could not read '${GK_SHARE}/gen_determineargs.sh'"
+source "${GK_SHARE}"/gen_compile.sh || small_die "Could not read '${GK_SHARE}/gen_compile.sh'"
+source "${GK_SHARE}"/gen_configkernel.sh || small_die "Could not read '${GK_SHARE}/gen_configkernel.sh'"
+source "${GK_SHARE}"/gen_initramfs.sh || small_die "Could not read '${GK_SHARE}/gen_initramfs.sh'"
+source "${GK_SHARE}"/gen_moddeps.sh || small_die "Could not read '${GK_SHARE}/gen_moddeps.sh'"
+source "${GK_SHARE}"/gen_package.sh || small_die "Could not read '${GK_SHARE}/gen_package.sh'"
+source "${GK_SHARE}"/gen_bootloader.sh || small_die "Could not read '${GK_SHARE}/gen_bootloader.sh'"
+
+export GK_MASTER_PID=${BASHPID}
+
+set_default_gk_trap
+
BUILD_KERNEL="no"
BUILD_RAMDISK="no"
BUILD_MODULES="no"
# Parse all command line options...
-Options=$* # Save for later
+GK_OPTIONS=$* # Save for later
while [ $# -gt 0 ]
do
- Option=$1; shift
- parse_cmdline $Option
+ GK_OPTION=$1; shift
+ parse_cmdline ${GK_OPTION}
done
+unset GK_OPTION
# Check if no action is specified...
if ! isTrue "${BUILD_KERNEL}" && ! isTrue "${BUILD_RAMDISK}"
@@ -103,128 +114,121 @@ then
exit 1
fi
-clear_log
NORMAL=${GOOD} print_info 1 "Gentoo Linux Genkernel; Version ${GK_V}${NORMAL}"
-print_info 1 "Running with options: ${Options}"
-echo
-
-# Set ${ARCH}
-get_official_arch
+print_info 1 "Using genkernel configuration from '${_GENKERNEL_CONF}' ..."
+unset _GENKERNEL_CONF
+print_info 1 "Running with options: ${GK_OPTIONS}"
-print_info 1 "Using genkernel.conf from ${_GENKERNEL_CONF}"
# Save any customizations of MODULES_* first.
override_module_vars="$(compgen -A variable |grep '^MODULES_')"
-for v in $override_module_vars ; do
- print_info 1 "Saving $v to override defaults"
- newvar=override_$v
+for v in ${override_module_vars}
+do
+ print_info 2 "Saving ${v} to override defaults"
+ newvar=override_${v}
eval "${newvar}='${!v}'"
done
+determine_real_args
+
+if isTrue "${BUILD_RAMDISK}" && ! isTrue "${SANDBOX}"
+then
+ print_warning 1 '' 1 0
+ print_warning 1 "${BOLD}WARNING:${NORMAL} Will build initramfs ${BOLD}without${NORMAL} sandbox support " 0
+
+ SANDBOX_WARNING_TIMER=0
+ while [[ ${SANDBOX_WARNING_TIMER} -lt 5 ]]
+ do
+ printf '.'
+ sleep 1
+ let SANDBOX_WARNING_TIMER=${SANDBOX_WARNING_TIMER}+1
+ done
+
+ print_warning 1 '' 1 0
+fi
+
+print_info 2 '' 1 0
+print_info 2 "Sourcing default modules_load from '${GK_SHARE}/defaults/modules_load' ..."
+source "${GK_SHARE}/defaults/modules_load" || gen_die "Could not read '${GK_SHARE}/defaults/modules_load'!"
+
# Read arch-specific config
-print_info 1 "Sourcing arch-specific config.sh from ${ARCH_CONFIG} .."
-source ${ARCH_CONFIG} || gen_die "Could not read ${ARCH_CONFIG}"
-_MODULES_LOAD=${GK_SHARE}/arch/${ARCH}/modules_load
-print_info 1 "Sourcing arch-specific modules_load from ${_MODULES_LOAD} .."
-source "${_MODULES_LOAD}" || gen_die "Could not read ${_MODULES_LOAD}"
+print_info 2 "Sourcing arch-specific config.sh from '${ARCH_CONFIG}' ..."
+source "${ARCH_CONFIG}" || gen_die "Could not read '${ARCH_CONFIG}'!"
+_MODULES_LOAD="${GK_SHARE}/arch/${ARCH}/modules_load"
+if [ -f "${_MODULES_LOAD}" ]
+then
+ print_info 2 "Sourcing arch-specific modules_load from '${_MODULES_LOAD}' ..."
+ source "${_MODULES_LOAD}" || gen_die "Could not read '${_MODULES_LOAD}'!"
+else
+ print_info 2 "No arch-specific modules_load found; Skipping ..."
+fi
+unset _MODULES_LOAD
# Now apply customizations of MODULES_*
-for v in $override_module_vars; do
- newvar=override_$v
- print_info 1 "Override $v, default (${!v}), new value (${!newvar})"
+for v in ${override_module_vars}
+do
+ newvar=override_${v}
+ print_info 2 "Override ${v}, default (${!v}), new value (${!newvar})"
eval "${v}='${!newvar}'"
done
+unset v override_module_vars newvar
# Merge additional modules_load from config
-for group_modules in ${!AMODULES_*}; do
- group="$(echo $group_modules | cut -d_ -f2)"
- eval cmodules="\$$group_modules"
+for group_modules in ${!AMODULES_*}
+do
+ group="$(echo ${group_modules} | cut -d_ -f2)"
+ eval cmodules="\$${group_modules}"
eval MODULES_${group}=\"\${MODULES_${group}} ${cmodules}\"
- print_info 1 "<config> Merged AMODULES_${group}:'${cmodules}' into MODULES_${group}"
+ print_info 2 "<config> Merged AMODULES_${group}:'${cmodules}' into MODULES_${group}"
done
-
-
-# Based on genkernel.conf, arch-specific configs, and commandline options,
-# get the real arguments for usage...
-determine_real_args
+unset group group_modules
determine_KV
# $KV is now either set to the version from previous compilation,
# which would include LOCALVERSION suffix, or initialized with
# unmodified KERNEL_SOURCE version (which normally has no LOCALVERSION set).
-determine_config_file
+determine_kernel_arch
-set_kernel_arch
+determine_output_filenames
-[ ! -f "${TEMP}" ] && mkdir "${TEMP}" || gen_die "Failed to create '${TEMP}'!"
+determine_kernel_config_file
setup_cache_dir
check_distfiles
-dump_debugcache
-
KERNCACHE_IS_VALID="no"
-if [ "${KERNCACHE}" != "" ]
+if [ -n "${KERNCACHE}" ]
then
gen_kerncache_is_valid
fi
-NORMAL=${BOLD} print_info 1 "Linux Kernel ${BOLD}${KV}${NORMAL} for ${BOLD}${ARCH}${NORMAL}..."
-print_info 1 ".. with config file ${KERNEL_CONFIG}"
+if isTrue "${KERNCACHE_IS_VALID}" && ! isTrue "${CMD_INSTALL}" && ! isTrue "${BUILD_RAMDISK}"
+then
+ error_msg="Nothing to do: Selected action does not include building initramfs."
+ error_msg+=" Because kerncache is valid, no kernel will be built."
+ error_msg+=" However, due to set --no-install option, we will not even install kernel binary from kerncache."
+ gen_die "${error_msg}"
+fi
+
+print_info 1 '' 1 0
+print_info 1 "Working with Linux kernel ${BOLD}${KV}${NORMAL} for ${BOLD}${ARCH}${NORMAL}"
+print_info 1 "Using kernel config file '${KERNEL_CONFIG}' ..."
if isTrue "${BUILD_KERNEL}" && ! isTrue "${KERNCACHE_IS_VALID}"
then
- print_info 1 ""
+ print_info 1 ''
print_info 1 "Note: The version above is subject to change (depends on config and status of kernel sources)."
- print_info 1 ""
fi
+isTrue "${CMD_INSTALL}" && make_bootdir_writable
-# Check if BOOTDIR is mounted
-if ! isTrue "${CMD_INSTALL}"
-then
- isTrue "${MOUNTBOOT}" && print_info 2 'Skipping automatic mount of boot'
-else
- [[ -d ${BOOTDIR} ]] || gen_die "${BOOTDIR} is not a directory"
-
- if ! egrep -q "[[:space:]]${BOOTDIR}[[:space:]]" /proc/mounts
- then
- if egrep -q "^[^#].+[[:space:]]${BOOTDIR}[[:space:]]" /etc/fstab
- then
- if isTrue "${MOUNTBOOT}"
- then
- if ! mount ${BOOTDIR}
- then
- print_warning 1 "${BOLD}WARNING${NORMAL}: Failed to mount ${BOOTDIR}!"
- echo
- else
- print_info 1 "mount: ${BOOTDIR} mounted successfully!"
- fi
- else
- print_warning 1 "${BOLD}WARNING${NORMAL}: No mounted ${BOOTDIR} partition detected!"
- print_warning 1 "$(getIndent 1)Run ``mount ${BOOTDIR}`` to mount it!"
- echo
- fi
- fi
- elif isBootRO
- then
- if isTrue "${MOUNTBOOT}"
- then
- if ! mount -o remount,rw ${BOOTDIR}
- then
- print_warning 1 "${BOLD}WARNING${NORMAL}: Failed to remount ${BOOTDIR} RW!"
- echo
- else
- print_info 1 "mount: ${BOOTDIR} remounted read/write successfully!"
- BOOTRW="yes"
- fi
- fi
- fi
-fi
+check_disk_space_requirements
if isTrue "${BUILD_KERNEL}" && ! isTrue "${KERNCACHE_IS_VALID}"
then
+ print_info 1 '' 1 0
+
# Configure kernel
config_kernel
@@ -233,179 +237,333 @@ then
then
compile_generic prepare kernel
else
- print_info 2 "$(getIndent 1)>> Skipping 'make prepare' due to ARCH_HAVENOPREPARE=yes!"
+ print_info 2 "$(get_indent 1)>> Skipping 'make prepare' due to ARCH_HAVENOPREPARE=yes!"
fi
# KV may have changed due to the configuration
determine_KV
if [ -f "${TEMP}/.old_kv" ]
then
+ determine_output_filenames
+
old_KV=$(cat "${TEMP}/.old_kv")
- print_info 1 "$(getIndent 1)>> Kernel version has changed (probably due to config change) since genkernel start:"
- print_info 1 "$(getIndent 1)>> We are now building Linux kernel ${BOLD}${KV}${NORMAL} for ${BOLD}${ARCH}${NORMAL}..."
+ print_info 1 "$(get_indent 1)>> Kernel version has changed (probably due to config change) since genkernel start:"
+ print_info 1 "$(get_indent 1) We are now building Linux kernel ${BOLD}${KV}${NORMAL} for ${BOLD}${ARCH}${NORMAL} ..."
else
- print_info 2 "$(getIndent 1)>> Kernel version has not changed since genkernel start."
+ print_info 2 "$(get_indent 1)>> Kernel version has not changed since genkernel start"
fi
- compile_kernel
+ if isTrue "${INTEGRATED_INITRAMFS}"
+ then
+ compile_kernel no
+ else
+ compile_kernel yes
+ fi
# Compile modules
if isTrue "${BUILD_MODULES}" && ! isTrue "${BUILD_STATIC}"
then
compile_modules
+ compile_external_modules
fi
if isTrue "${SAVE_CONFIG}"
then
- print_info 1 "Copying config for successful build to /etc/kernels/kernel-config-${ARCH}-${KV}"
- [ ! -e '/etc/kernels' ] && mkdir -p /etc/kernels
- cp "${KERNEL_OUTPUTDIR}/.config" "/etc/kernels/kernel-config-${ARCH}-${KV}" || \
- print_warning "Unable to copy the kernel configuration file."
- # Just a warning because ordinary users are not allowed to write in /etc
+ print_info 1 "$(get_indent 1)>> Saving config of successful build to '/etc/kernels/${GK_FILENAME_CONFIG}' ..."
+
+ if [ ! -d '/etc/kernels' ]
+ then
+ mkdir -p /etc/kernels \
+ || gen_die "Failed to create '/etc/kernels'!"
+ fi
+
+ cp -aL "${KERNEL_OUTPUTDIR}/.config" "/etc/kernels/${GK_FILENAME_CONFIG}" \
+ || gen_die "Failed to copy kernel configuration to '/etc/kernels'!"
+ fi
+elif [[ -n "${KERNEL_LOCALVERSION}" && "${KERNEL_LOCALVERSION}" != "${LOV}" ]]
+then
+ if [[ "${KERNEL_LOCALVERSION}" == "UNSET" && -z "${LOV}" ]]
+ then
+ # LOV is already unset...
+ :
+ else
+ print_warning 1 '' 1 0
+ print_warning 1 "Current kernel's LOCALVERSION is set to '${LOV}'; Will ignore set --kernel-localversion value '${KERNEL_LOCALVERSION}' because kernel was not built ..."
fi
fi
-if isTrue "${CMD_INSTALL}"
+if isTrue "${KERNCACHE_IS_VALID}"
then
- if [ "${KERNCACHE}" != "" ] && isTrue "${KERNCACHE_IS_VALID}"
+ if isTrue "${CMD_INSTALL}"
then
+ print_info 1 '' 1 0
gen_kerncache_extract_kernel
fi
-fi
-if [ "${KERNCACHE}" != "" ] && isTrue "${KERNCACHE_IS_VALID}"
-then
- ! isTrue "${BUILD_STATIC}" && gen_kerncache_extract_modules
- gen_kerncache_extract_config
+ if ! isTrue "${BUILD_STATIC}"
+ then
+ print_info 1 '' 1 0
+ gen_kerncache_extract_modules
+ fi
+
+ if isTrue "${SAVE_CONFIG}"
+ then
+ print_info 1 '' 1 0
+ gen_kerncache_extract_config
+ fi
fi
# Run callback
-if [ "${CMD_CALLBACK}" != "" ]
+if [ -n "${CMD_CALLBACK}" ]
then
- print_info 1 "" 1 0
+ print_info 1 '' 1 0
print_info 1 "Preparing to run callback: \"${CMD_CALLBACK}\"" 0
CALLBACK_ESCAPE=0
CALLBACK_COUNT=0
trap "CALLBACK_ESCAPE=1" TERM KILL INT QUIT ABRT
- while [[ "${CALLBACK_ESCAPE}" = '0' && ${CALLBACK_COUNT} -lt 5 ]]
+ while [[ "${CALLBACK_ESCAPE}" -eq 0 && ${CALLBACK_COUNT} -lt 5 ]]
do
sleep 1; printf '.';
let CALLBACK_COUNT=${CALLBACK_COUNT}+1
done
- if [ "${CALLBACK_ESCAPE}" = '0' ]
+ if [ "${CALLBACK_ESCAPE}" -eq 0 ]
then
- echo
- echo
- eval ${CMD_CALLBACK} | tee -a ${LOGFILE}
+ print_info 1 '' 1 0
+ print_info 1 '' 1 0
+ eval ${CMD_CALLBACK} | tee -a "${LOGFILE}"
CMD_STATUS="${PIPESTATUS[0]}"
- echo
+ print_info 1 '' 1 0
print_info 1 "<<< Callback exit status: ${CMD_STATUS}"
- [ "${CMD_STATUS}" != '0' ] && gen_die '--callback failed!'
+ [ "${CMD_STATUS}" -ne 0 ] && gen_die '--callback failed!'
else
- echo
- print_info 1 ">>> Callback cancelled..."
+ print_warning 1 '' 1 0
+ print_warning 1 ">>> Callback cancelled ..."
fi
- trap - TERM KILL INT QUIT ABRT
- print_info 1 "" 1 0
+
+ # restore default trap
+ set_default_gk_trap
fi
if isTrue "${BUILD_RAMDISK}"
then
+ print_info 1 '' 1 0
+
+ if isTrue "${FIRMWARE}" || isTrue "${RAMDISKMODULES}"
+ then
+ # Check for suitable kmod
+ determine_KEXT
+ if ! isTrue "$(is_kext_supported_by_kmod "${KEXT}")"
+ then
+ gen_die "${KMOD_CMD} does not support chosen module compression algorithm. Please re-emerge sys-apps/kmod with USE=$(get_kext_kmod_use_flag "${KEXT}") enabled or adjust CONFIG_MODULE_COMPRESS_* kernel option!"
+ fi
+ fi
+
# Compile initramfs
create_initramfs
else
- print_info 1 'initramfs: Not building since only the kernel was requested...'
+ print_info 1 '' 1 0
+ print_info 1 "initramfs: >> Not building since only the kernel was requested ..."
fi
if isTrue "${INTEGRATED_INITRAMFS}"
then
+ print_info 1 '' 1 0
+
+ cfg_CONFIG_INITRAMFS_SOURCE=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_INITRAMFS_SOURCE")
+ if [[ "${cfg_CONFIG_INITRAMFS_SOURCE}" != "\"${CPIO_ARCHIVE}.cpio\"" ]]
+ then
+ gen_die "Sanity check failed: CONFIG_INITRAMFS_SOURCE is not set to '${CPIO_ARCHIVE}.cpio' in '${KERNEL_OUTPUTDIR}/.config'!"
+ fi
+ unset cfg_CONFIG_INITRAMFS_SOURCE
+
# We build the kernel a second time to include the initramfs
- compile_kernel
+ compile_kernel yes
+fi
+
+if [ -n "${KERNCACHE}" ]
+then
+ if isTrue "${BUILD_KERNEL}" && ! isTrue "${KERNCACHE_IS_VALID}"
+ then
+ print_info 1 '' 1 0
+ gen_kerncache
+ else
+ print_info 3 '' 1 0
+ print_info 3 "kerncache: >> Existing kerncache was used and kernel/modules therefore didn't change; Skipping '${KERNCACHE}' generation ..."
+ fi
fi
-[ "${KERNCACHE}" != "" ] && gen_kerncache
-[ "${MINKERNPACKAGE}" != '' ] && gen_minkernpackage
-[ "${MODULESPACKAGE}" != '' ] && gen_modulespackage
+if [ -n "${MINKERNPACKAGE}" ]
+then
+ print_info 1 '' 1 0
+ gen_minkernpackage
+fi
-# Clean up...
-[ -n "${CTEMP}" ] && rm -rf "${TEMP}"
+if [ -n "${MODULESPACKAGE}" ]
+then
+ print_info 1 '' 1 0
+ gen_modulespackage
+fi
if isTrue "${BUILD_KERNEL}"
then
+ show_warning_initramfs_is_required=yes
+
+ print_info 1 '' 1 0
+ print_info 1 'Kernel compiled successfully!'
+
if isTrue "${CMD_INSTALL}"
then
set_bootloader
+
+ # When we have installed kernel and initramfs *and*
+ # updated bootloader, we can assume that initramfs will
+ # be used...
+ case "${BOOTLOADER}" in
+ grub)
+ show_warning_initramfs_is_required=no
+ ;;
+ grub2)
+ show_warning_initramfs_is_required=no
+ ;;
+ esac
+ else
+ print_info 1 ''
+
+ if ! isTrue "${KERNCACHE_IS_VALID}"
+ then
+ print_info 1 "You will find the kernel image in '${TMPDIR}/${GK_FILENAME_TEMP_KERNEL}'."
+
+ if isTrue "${GENZIMAGE}"
+ then
+ print_info 1 "You will find the kernelz binary in '${TMPDIR}/${GK_FILENAME_TEMP_KERNELZ}'."
+ fi
+ fi
+
+ if isTrue "${BUILD_RAMDISK}"
+ then
+ if isTrue "${INTEGRATED_INITRAMFS}"
+ then
+ show_warning_initramfs_is_required=no
+ print_info 1 "Initramfs is integrated into kernel image."
+ else
+ print_info 1 "You will find the initramfs in '${TMPDIR}/${GK_FILENAME_TEMP_INITRAMFS}'."
+ fi
+ fi
fi
- print_info 1 ''
- print_info 1 "Kernel compiled successfully!"
- print_info 1 ''
- print_info 1 'Required Kernel Parameters:'
- print_info 1 ' root=/dev/$ROOT'
- print_info 1 ''
- print_info 1 ' Where $ROOT is the device node for your root partition as the'
- print_info 1 ' one specified in /etc/fstab'
- print_info 1 ''
- print_info 1 "If you require Genkernel's hardware detection features; you MUST"
- print_info 1 'tell your bootloader to use the provided INITRAMFS file.'
+
+ if isTrue "${CMD_INSTALL}" || ! isTrue "${KERNCACHE_IS_VALID}"
+ then
+ print_info 1 ''
+ print_info 1 'Required kernel parameter:'
+ print_info 1 ''
+ print_info 1 ' root=/dev/$ROOT'
+ print_info 1 ''
+ print_info 1 'Where $ROOT is the device node for your root partition as the'
+ print_info 1 'one specified in /etc/fstab'
+
+ if isTrue "${INTEGRATED_INITRAMFS}" && isTrue "${BUILD_RAMDISK}"
+ then
+ show_warning_initramfs_is_required=no
+ print_info 1 ''
+ print_info 1 "Initramfs is integrated into kernel image."
+ fi
+ fi
+
+ if isTrue "${show_warning_initramfs_is_required}" && isTrue "${BUILD_RAMDISK}"
+ then
+ INITRAMFS_FILE="${TMPDIR}/${GK_FILENAME_TEMP_INITRAMFS}"
+ isTrue "${CMD_INSTALL}" && INITRAMFS_FILE="${BOOTDIR}/${GK_FILENAME_INITRAMFS}"
+
+ print_warning 1 '' 1 0
+ print_warning 1 "If you require Genkernel's hardware detection features, you ${BOLD}MUST${NORMAL}"
+ print_warning 1 "tell your bootloader to use the provided initramfs file '${INITRAMFS_FILE}'."
+ unset INITRAMFS_FILE
+ fi
+ unset show_warning_initramfs_is_required
fi
if isTrue "${BUILD_RAMDISK}"
then
- echo
- print_warning 1 'WARNING... WARNING... WARNING...'
- print_warning 1 'Additional kernel cmdline arguments that *may* be required to boot properly...'
- isTrue "${SPLASH}" && print_warning 1 "add \"vga=791 splash=silent,theme:${SPLASH_THEME} console=tty1 quiet\" if you use a splash framebuffer ]"
- isTrue "${LVM}" && print_warning 1 'add "dolvm" for LVM support'
- isTrue "${DMRAID}" && print_warning 1 'add "dodmraid" for dmraid support'
- isTrue "${MDADM}" && print_warning 1 'add "domdadm" for MDRAID support'
- isTrue "${DMRAID}" && print_warning 1 ' or "dodmraid=<additional options>"'
-
- if isTrue "{ZFS}"
+ kconfig_file_used="${KERNEL_OUTPUTDIR}/.config"
+ if ! isTrue "${BUILD_KERNEL}"
+ then
+ kconfig_file_used="${KERNEL_CONFIG}"
+ INITRAMFS_FILE="${TMPDIR}/${GK_FILENAME_TEMP_INITRAMFS}"
+ isTrue "${CMD_INSTALL}" && INITRAMFS_FILE="${BOOTDIR}/${GK_FILENAME_INITRAMFS}"
+
+ print_info 1 ''
+ print_info 1 "You will find the initramfs in '${INITRAMFS_FILE}'."
+ unset INITRAMFS_FILE
+ fi
+
+ print_warning 1 '' 1 0
+ print_warning 1 "${BOLD}WARNING... WARNING... WARNING...${NORMAL}"
+ print_warning 1 'Additional kernel parameters that *may* be required to boot properly:'
+ isTrue "${SPLASH}" && print_warning 1 "- Add \"vga=791 splash=silent,theme:${SPLASH_THEME} console=tty1 quiet\" if you use a splash framebuffer ]"
+ isTrue "${MULTIPATH}" && print_warning 1 '- Add "domultipath" for multipath support'
+ isTrue "${ISCSI}" && print_warning 1 '- For iSCSI support, add at least:'
+ isTrue "${ISCSI}" && print_warning 1 ' - "iscsi_initiatorname=<initiator name>"'
+ isTrue "${ISCSI}" && print_warning 1 ' - "iscsi_target=<target name>"'
+ isTrue "${ISCSI}" && print_warning 1 ' - "iscsi_address=<target ip>"'
+ isTrue "${DMRAID}" && print_warning 1 '- Add "dodmraid" for dmraid support or "dodmraid=<additional options>"'
+ isTrue "${MDADM}" && print_warning 1 '- Add "domdadm" for MDRAID support'
+ isTrue "${LVM}" && print_warning 1 '- Add "dolvm" for LVM support'
+ isTrue "${LUKS}" && print_warning 1 '- Add "crypt_root=<device>" for LUKS-encrypted root'
+ isTrue "${LUKS}" && print_warning 1 '- Add "crypt_swap=<device>" for LUKS-encrypted swap'
+ isTrue "${SSH}" && print_warning 1 '- Add "dosshd" to start SSH daemon in initramfs'
+
+ if isTrue "${ZFS}"
then
- print_warning 1 'add "dozfs" for ZFS volume management support'
- print_warning 1 ' and either "root=ZFS" to use bootfs autodetection or "root=ZFS=<dataset>" to force booting from a specific dataset'
+ print_warning 1 '- Add "dozfs" for ZFS volume management support'
+ print_warning 1 ' and either "root=ZFS" to use bootfs autodetection or "root=ZFS=<dataset>"'
+ print_warning 1 ' to force booting from a specific dataset'
print_warning 1 ''
if [ -f "${TEMP}/.embedded_hostid" ]
then
- local _hostid=$(cat "${TEMP}/.embedded_hostid")
- print_warning '1' "Hostid '${_hostid}' is embedded into initramfs."
- print_warning '1' "If you will use this initramfs for a different system you MUST set 'spl_hostid=<hostid>' parameter to overwrite embedded hostid!"
+ saved_hostid=$(cat "${TEMP}/.embedded_hostid")
+ print_warning 1 "Hostid '${saved_hostid}' is embedded into initramfs."
+ print_warning 1 "If you will use this initramfs for a different system you MUST set 'spl_hostid=<hostid>' parameter to overwrite embedded hostid!"
+ unset saved_hostid
else
- print_warning '1' "No hostid embedded into initramfs. You MUST set 'spl_hostid=<hostid>' parameter to provide hostid for ZFS!"
+ print_warning 1 "No hostid embedded into initramfs. You MUST set 'spl_hostid=<hostid>' parameter to provide hostid for ZFS!"
fi
print_warning 1 ''
print_warning 1 'If importing ZFS pool is slow, add dozfs=cache or dozfs=force to kernel commandline.'
print_warning 1 '"man genkernel" explains "dozfs" in detail.'
fi
- isTrue "${BTRFS}" && print_warning 1 'add "dobtrfs" for Btrfs device scanning support'
- isTrue "${ISCSI}" && print_warning 1 'add at least "iscsi_initiatorname=<initiator name> iscsi_target=<target name> and iscsi_address=<target ip>" for iscsi support'
-
- if [[ "$(file --brief --mime-type "${KERNEL_CONFIG}")" == application/x-gzip ]]; then
- # Support --kernel-config=/proc/config.gz, mainly
- CONFGREP=zgrep
- else
- CONFGREP=grep
- fi
-
- if [ `${CONFGREP} 'CONFIG_EXT[0-9]_FS=' "${KERNEL_CONFIG}" | wc -l` -ge 2 ]; then
+ CONFGREP_CMD=$(get_grep_cmd_for_file "${kconfig_file_used}")
+ if [ $("${CONFGREP_CMD}" 'CONFIG_EXT[0-9]_FS=' "${kconfig_file_used}" | wc -l) -ge 2 ]
+ then
+ print_warning 1 ''
print_warning 1 'With support for several ext* filesystems available, it may be needed to'
print_warning 1 'add "rootfstype=ext3" or "rootfstype=ext4" to the list of boot parameters.'
fi
+ unset CONFGREP_CMD
- unset CONFGREP
+ cfg_CONFIG_CMDLINE_OVERRIDE=$(kconfig_get_opt "${kconfig_file_used}" CONFIG_CMDLINE_OVERRIDE)
+ if [ "${cfg_CONFIG_CMDLINE_OVERRIDE}" = "y" ]
+ then
+ cfg_CONFIG_CMDLINE=$(kconfig_get_opt "${kconfig_file_used}" CONFIG_CMDLINE)
+ print_warning 1 ''
+ print_warning 1 "${BOLD}Note:${NORMAL}"
+ print_warning 1 'You have set CONFIG_CMDLINE_OVERRIDE=y.'
+ print_warning 1 "You will be unable to alter set kernel parameters (${cfg_CONFIG_CMDLINE}) at runtime!"
+ unset cfg_CONFIG_CMDLINE
+ fi
+ unset cfg_CONFIG_CMDLINE_OVERRIDE kconfig_file_used
fi
-isTrue "${BOOTRW}" && mount -o remount,ro ${BOOTDIR}
+isTrue "${CMD_INSTALL}" && restore_boot_mount_state
-echo
+print_info 1 '' 1 0
print_info 1 'Do NOT report kernel bugs as genkernel bugs unless your bug'
print_info 1 'is about the default genkernel configuration...'
print_info 1 ''
print_info 1 'Make sure you have the latest ~arch genkernel before reporting bugs.'
-#Final Cleanup
+# Final Cleanup
cleanup
diff --git a/genkernel.conf b/genkernel.conf
index 3504b26..c4b44ea 100644
--- a/genkernel.conf
+++ b/genkernel.conf
@@ -5,7 +5,7 @@
# with the internal settings being least important, configuration file
# settings next, and command line options being most important.
-# =========Common Command Line Option Defaults=========
+# =========COMMON COMMAND LINE OPTION DEFAULTS=========
# Install to $BOOTDIR
#INSTALL="yes"
@@ -33,9 +33,6 @@
# MRPROPER implies 'make clean'.
#CLEAN="yes"
-# Override the arch detection
-#ARCH_OVERRIDE="x86"
-
# Mount BOOTDIR automatically if it isn't mounted
#MOUNTBOOT="yes"
@@ -43,11 +40,11 @@
#SYMLINK="no"
# Save the new configuration in /etc/kernels upon
-# successfull compilation
+# successful compilation
#SAVE_CONFIG="yes"
# Enable color output in genkernel
-USECOLOR="yes"
+NOCOLOR="false"
# Clear build cache dir on gernkernel start
#CLEAR_CACHEDIR="no"
@@ -55,6 +52,12 @@ USECOLOR="yes"
# Clear all tmp files and caches after genkernel has run
#POSTCLEAR="no"
+# Check for x MB free disk space in BOOTDIR
+#CHECK_FREE_DISK_SPACE_BOOTDIR=0
+
+# Check for x MB free disk space in kernel outputdir
+#CHECK_FREE_DISK_SPACE_KERNELOUTPUTDIR=0
+
# Genkernel uses an independent configuration for MAKEOPTS, and does not source
# /etc/portage/make.conf . You can override the default setting by uncommenting
# and tweaking the following line. Default setting is set up by
@@ -65,6 +68,9 @@ USECOLOR="yes"
# Run the kernel make at the following NICE level
#NICE=10
+# Add bcache support
+#BCACHE="no"
+
# Add LVM support
#LVM="no"
@@ -74,14 +80,19 @@ USECOLOR="yes"
# Add GnuPG support
#GPG="no"
+# Add keyctl support for loading LUKS passphrase into a keyring
+#KEYCTL="no"
+
# Add in early microcode support: this sets the kernel options for early microcode loading
# Possible values: empty/"no", "all", "intel", "amd"
#MICROCODE="all"
-# Include early microcode in generated initramfs
-# This is enabled by default for upgrade compatability, however is obsoleted by
-# sys-boot/grub-2.02-r1, which supports multiple initramfs in the bootloader.
-#MICROCODE_INITRAMFS="yes"
+# Include early microcode in generated initramfs.
+# Only needed if system cannot load multiple initramfs.
+# NOTE: >=sys-boot/grub-2 will detect and auto-load {amd,intel}-uc.img file
+# provided by sys-firmware/intel-microcode[initramfs] or
+# sys-kernel/linux-firmware[initramfs].
+#MICROCODE_INITRAMFS="no"
# Add NFS support
#NFS="no"
@@ -92,6 +103,9 @@ USECOLOR="yes"
# Add SSH support
#SSH="no"
+# Add b2sum support
+#B2SUM="no"
+
# Include busybox in the initramfs. If included, busybox is rebuilt
# if the cached copy is out of date.
#BUSYBOX="yes"
@@ -123,44 +137,66 @@ USECOLOR="yes"
# Add BTRFS support
#BTRFS="no"
+# Add xfsprogs support
+#XFSPROGS="no"
+
# Install firmware onto root filesystem
# Will conflict with sys-kernel/linux-firmware package
#FIRMWARE_INSTALL="no"
-# Add firmware(s) to initramfs
+# Include full contents of FIRMWARE_DIR
+# (if FIRMWARE option below is set to YES).
+#ALLFIRMWARE="no"
+
+# Add firmware(s) to initramfs required by copied modules
#FIRMWARE="no"
# Specify directory to pull from
#FIRMWARE_DIR="/lib/firmware"
-# Specify a space-separated list of firmware files or directories to include,
-# relative to FIRMWARE_DIR. If empty or unset, the full contents of
-# FIRMWARE_DIR will be included.
+# Specify a comma-separated list of firmware files or directories to include,
+# relative to FIRMWARE_DIR (if FIRMWARE option above is set to YES
+# and ALLFIRMWARE is set to NO).
#FIRMWARE_FILES=""
-# Add disklabel support (copies blkid to initramfs)
-#DISKLABEL="yes"
-
# Add new kernel to grub
# Possible values: empty/"no", "grub", "grub2"
#BOOTLOADER="no"
+# Use sandbox when building initramfs
+#SANDBOX="yes"
+
+# Embed and set font early on boot
+# Possible values: empty/"none", "current", <PSF file>
+#BOOTFONT="none"
+
# Add boot splash using splashutils
#SPLASH="no"
# Use this splash theme. If commented out - the "default" name theme is used.
# Also, SPLASH="yes" needs to be enabled for this one to work.
-# This supersedes the "SPLASH_THEME" option in /etc/conf.d/splash .
+# This supersedes the "SPLASH_THEME" option in '/etc/conf.d/splash'.
#SPLASH_THEME="gentoo"
+# Includes or excludes Plymouth from the initramfs. If "splash" is
+# passed at boot, Plymouth will be activated.
+#PLYMOUTH="no"
+
+# Embeds the given plymouth theme in the initramfs.
+#PLYMOUTH_THEME="text"
+
+# Run "emerge @module-rebuild" automatically when possible and necessary
+# after kernel and modules have been compiled
+#MODULEREBUILD="yes"
+
# Run the specified command in the current environment after the kernel and
# modules have been compiled, useful to rebuild external kernel module
-# (use "emerge --quiet @module-rebuild" for >=portage-2.2) or installing additional
-# files (use 'copy_image_with_preserve dtb path/to/dtb dtb ${KNAME}-${ARCH}-${KV}')
+# (see MODULEREBUILD above) or installing additional
+# files (use 'copy_image_with_preserve dtb path/to/dtb dtb <kernelname>')
#CMD_CALLBACK=""
-# =========Keymap Settings=========
+# =========KEYMAP SETTINGS=========
#
# Force keymap selection at boot
#DOKEYMAPAUTO="no"
@@ -169,55 +205,95 @@ USECOLOR="yes"
#KEYMAP="yes"
-# =========Low Level Compile Settings=========
+# =========LOW LEVEL COMPILE SETTINGS=========
#
-# GNU Make to use for kernel. See also the --kernel-make command line option.
-#KERNEL_MAKE="make"
+# Assembler to use for the kernel. See also the --kernel-as command line
+# option.
+#KERNEL_AS="as"
+
+# Archiver to use for the kernel. See also the --kernel-ar command line
+# option.
+#KERNEL_AR="ar"
# Compiler to use for the kernel (e.g. distcc). See also the --kernel-cc
# command line option.
#KERNEL_CC="gcc"
-# Assembler to use for the kernel. See also the --kernel-as command line
-# option.
-#KERNEL_AS="as"
-
# Linker to use for the kernel. See also the --kernel-ld command line option.
#KERNEL_LD="ld"
-# GNU Make to use for the utilities. See also the --utils-make command line
-# option.
-#UTILS_MAKE="make"
+# NM utility to use for the kernel. See also the --kernel-nm command line option.
+#KERNEL_NM="nm"
-# Compiler to use for the utilities (e.g. distcc). See also the --utils-cc
-# command line option.
-#UTILS_CC="gcc"
+# GNU Make to use for kernel. See also the --kernel-make command line option.
+#KERNEL_MAKE="make"
+
+# objcopy utility to use for the kernel. See also the --kernel-objcopy command
+# line option.
+#KERNEL_OBJCOPY="objcopy"
+
+# objdump utility to use for the kernel. See also the --kernel-objdump command
+# line option.
+#KERNEL_OBJDUMP="objdump"
+
+# ranlib utility to use for the kernel. See also the --kernel-ranlib command
+# line option.
+#KERNEL_RANLIB="ranlib"
+
+# readelf utility to use for the kernel. See also the --kernel-readelf command
+# line option.
+#KERNEL_READELF="readelf"
+
+# strip utility to use for the kernel. See also the --kernel-strip command line
+# option.
+#KERNEL_STRIP="strip"
# Assembler to use for the utilities. See also the --utils-as command line
# option.
#UTILS_AS="as"
+# Archiver to use for the utilities. See also the --utils-ar command line
+# option.
+#UTILS_AR="ar"
+
+# C Compiler to use for the utilities (e.g. distcc). See also the --utils-cc
+# command line option.
+#UTILS_CC="gcc"
+
+# C++ Compiler to use for the utilities (e.g. distcc). See also the --utils-cxx
+# command line option.
+#UTILS_CXX="g++"
+
# Linker to use for the utilities. See also the --utils-ld command line
# option.
#UTILS_LD="ld"
-# Common prefix of cros compile commands
-#UTILS_CROSS_COMPILE="x86_64-pc-linux-gnu"
+# NM utility to use for the utilities. See also the --utils-nm command line option.
+#UTILS_NM="nm"
+
+# GNU Make to use for the utilities. See also the --utils-make command line
+# option.
+#UTILS_MAKE="make"
-# Value of CROSS_COMPILE utils variable
-# during kernel compilation
-#KERNEL_CROSS_COMPILE="x86_64-pc-linux-gnu"
+# Target triple (i.e. aarch64-linux-gnu) to build for. If you do not
+# cross-compile, leave blank for auto detection.
+#CROSS_COMPILE=""
+
+# Target triple (i.e. aarch64-linux-gnu) to build kernel for. Utilities will be
+# built for the native target, not this target. If you do not cross-compile,
+# leave blank.
+#KERNEL_CROSS_COMPILE=""
# Override default make target (bzImage). See also the --kernel-target
-# command line option. Useful to build a uImage on arm
+# command line option. Useful to build a uImage on arm.
#KERNEL_MAKE_DIRECTIVE_OVERRIDE="fooImage"
# Override default kernel binary path. See also the --kernel-binary
-# command line option. Useful to install a uImage on arm
+# command line option. Useful to install a uImage on arm.
#KERNEL_BINARY_OVERRIDE="arch/foo/boot/bar"
-# =========GENKERNEL LOCATION CONFIGURATION============
+# =========GENKERNEL LOCATION CONFIGURATION=========
#
# Variables:
# %%ARCH%% - Final determined architecture
@@ -245,7 +321,7 @@ LOGFILE="/var/log/genkernel.log"
LOGLEVEL=1
-# =========COMPILED UTILS CONFIGURATION============
+# =========COMPILED UTILS CONFIGURATION=========
#
# Default location of kernel source
DEFAULT_KERNEL_SOURCE="/usr/src/linux"
@@ -256,7 +332,6 @@ DEFAULT_KERNEL_SOURCE="/usr/src/linux"
# Specifies a user created busybox config
#BUSYBOX_CONFIG="/path/to/file"
-#BUSYBOX_APPLETS="[ ash sh mount uname echo cut cat"
# NOTE: Since genkernel 3.4.41 the version of
# busybox, lvm, mdadm, ... have been moved to
@@ -265,16 +340,23 @@ DEFAULT_KERNEL_SOURCE="/usr/src/linux"
# You can still override these settings in here.
-# =========MISC KERNEL CONFIGURATION============
+# =========MISC KERNEL CONFIGURATION=========
#
-# Tag the kernel and initramfs with a name:
-# If not defined the option defaults to
-# 'genkernel'
-#KNAME="genkernel"
+# Set kernel filename which will be used when kernel will be installed
+# into BOOTDIR. See man page to learn more about available placeholders.
+#KERNEL_FILENAME="vmlinuz-%%KV%%"
+
+# Set kernel symlink name which will be used when kernel will be installed
+# into BOOTDIR and SYMLINK option is enabled
+#KERNEL_SYMLINK_NAME="kernel"
+
+# This option will set kernel option CONFIG_LOCALVERSION.
+# Use special value "UNSET" to unset already set CONFIG_LOCALVERSION.
+#KERNEL_LOCALVERSION="-%%ARCH%%"
# This option is only valid if kerncache is
# defined. If there is a valid kerncache no checks
-# will be made against a kernel source tree
+# will be made against a kernel source tree.
#KERNEL_SOURCES="yes"
# Build a static (monolithic kernel)
@@ -283,36 +365,42 @@ DEFAULT_KERNEL_SOURCE="/usr/src/linux"
# Make and install kernelz image (PowerPC)
#GENZIMAGE="no"
-# File to output a .tar.bz2'd kernel contents
-# of /lib/modules/ and the kernel config
-# NOTE: This is created before the callbacks
-# are run!
-#KERNCACHE="/path/to/file.bz2"
+# Archive file created using tar containing kernel binary, content
+# of /lib/modules and the kernel config.
+# NOTE: Archive is created before the callbacks are run!
+#KERNCACHE="/path/to/file.tar.xz"
# Prefix to kernel module destination, modules
# will be installed in <prefix>/lib/modules
-# (.conf equivalent of --module-prefix=<dir>)
-#INSTALL_MOD_PATH=""
+#KERNEL_MODULES_PREFIX=""
-# =========MISC INITRAMFS CONFIGURATION============
+# =========MISC INITRAMFS CONFIGURATION=========
#
+# Set initramfs filename which will be used when initramfs will be
+# installed into BOOTDIR. See man page to learn more about available
+# placeholders.
+#INITRAMFS_FILENAME="initramfs-%%KV%%.img"
+
+# Set initramfs symlink name which will be used when initramfs will be
+# installed into BOOTDIR and SYMLINK option is enabled
+#INITRAMFS_SYMLINK_NAME="initramfs"
+
# Copy all compiled kernel modules to the initramfs
#ALLRAMDISKMODULES="no"
# Copy selected modules to the initramfs based on arch-specific modules_load file
#RAMDISKMODULES="yes"
-# File to output a .tar.bz2'd kernel and initramfs:
-# No modules outside of the initramfs will be
-# included...
-#MINKERNPACKAGE="/path/to/file.bz2"
+# Archive file created using tar containing kernel and initramfs.
+# NOTE: No modules outside of the initramfs will be included!
+#MINKERNPACKAGE="/path/to/file.tar.xz"
# Add additional modules to the initramfs using the module groups defined
# in /usr/share/genkernel/defaults/modules_load (see this file for
# more details). This would be used if, for example, you
# required an additional crypto module or network device at boot
-# time and did not want to staticly compile these in the kernel.
+# time and did not want to statically compile these in the kernel.
# Options take the form AMODULES_{group} where {group} is one of
# the groups in modules_load (which are in the form MODULES_{group}).
# Use this with caution.
@@ -325,9 +413,12 @@ DEFAULT_KERNEL_SOURCE="/usr/src/linux"
#MODULES_group1="some-module"
#MODULES_group2="" # Load no modules for this group
-# File to output a .tar.bz2'd modules after the
-# callbacks have run
-#MODULESPACKAGE="/path/to/file.bz2"
+# Override the default used linuxrc script.
+#LINUXRC="/path/to/custom/linuxrc"
+
+# Archive file created using tar containing modules after
+# the callbacks have run
+#MODULESPACKAGE="/path/to/file.tar.xz"
# Directory structure to include in the initramfs,
# only available on >=2.6 kernels
@@ -340,7 +431,7 @@ DEFAULT_KERNEL_SOURCE="/usr/src/linux"
# Compress generated initramfs
#COMPRESS_INITRD="yes"
-# Types of compression: best, xz, lzma, bzip2, gzip, lzop, fastest
+# Types of compression: best, xz, lzma, bzip2, gzip, lzop, lz4, zstd, fastest
# "best" selects the best available compression method
# "fastest" selects the fastest available compression method
#COMPRESS_INITRD_TYPE="best"
@@ -352,7 +443,7 @@ DEFAULT_KERNEL_SOURCE="/usr/src/linux"
#NETBOOT="no"
-# =========MISC BOOT CONFIGURATION============
+# =========MISC BOOT CONFIGURATION=========
#
# Specify a default for real_root=
#REAL_ROOT="/dev/one/two/gentoo"
diff --git a/gkbuilds/bcache-tools-1.0.8_p20141204.gkbuild b/gkbuilds/bcache-tools-1.0.8_p20141204.gkbuild
new file mode 100644
index 0000000..556e7f2
--- /dev/null
+++ b/gkbuilds/bcache-tools-1.0.8_p20141204.gkbuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+src_configure() {
+ append-ldflags -static
+}
+
+src_compile() {
+ PKG_CONFIG="$(tc-getPKG_CONFIG) --static" \
+ gkmake V=1
+}
+
+src_install() {
+ gkmake V=1 UDEVLIBDIR="$(get_udevdir)" DESTDIR="${D}" install
+
+ rm -rf \
+ "${D}"/lib \
+ "${D}"/usr/lib/initcpio \
+ "${D}"/usr/sbin \
+ "${D}"/usr/share
+
+ "${STRIP}" --strip-all "${D}"/usr/lib/udev/bcache-register \
+ || die "Failed to strip '${D}/usr/lib/udev/bcache-register'!"
+
+ "${STRIP}" --strip-all "${D}"/usr/lib/udev/probe-bcache \
+ || die "Failed to strip '${D}/usr/lib/udev/probe-bcache'!"
+}
diff --git a/gkbuilds/bcache-tools-1.1_p20230217.gkbuild b/gkbuilds/bcache-tools-1.1_p20230217.gkbuild
new file mode 100644
index 0000000..720da66
--- /dev/null
+++ b/gkbuilds/bcache-tools-1.1_p20230217.gkbuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+src_prepare() {
+ default
+
+ tc-export CC
+ sed \
+ -e '/^CFLAGS/s:-O2::' \
+ -e '/^CFLAGS/s:-g::' \
+ -e '/.*INSTALL.*share\/man/d' \
+ -e '/.*INSTALL.*bcache-status/d' \
+ -i Makefile || die
+
+ append-lfs-flags
+}
+
+src_configure() {
+ append-ldflags -static
+}
+
+src_compile() {
+ PKG_CONFIG="$(tc-getPKG_CONFIG) --static" \
+ gkmake V=1
+}
+
+src_install() {
+ mkdir -p "${D}"/usr/sbin "${D}$(get_udevdir)"/rules.d
+ gkmake V=1 UDEVLIBDIR="$(get_udevdir)" DESTDIR="${D}" install
+
+ rm -rf \
+ "${D}"/lib \
+ "${D}"/usr/lib/initcpio \
+ "${D}"/usr/sbin \
+ "${D}"/usr/share
+
+ "${STRIP}" --strip-all "${D}"/usr/lib/udev/bcache-register \
+ || die "Failed to strip '${D}/usr/lib/udev/bcache-register'!"
+
+ "${STRIP}" --strip-all "${D}"/usr/lib/udev/probe-bcache \
+ || die "Failed to strip '${D}/usr/lib/udev/probe-bcache'!"
+}
diff --git a/gkbuilds/boost-build.gkbuild b/gkbuilds/boost-build.gkbuild
new file mode 100644
index 0000000..0e06ba7
--- /dev/null
+++ b/gkbuilds/boost-build.gkbuild
@@ -0,0 +1,58 @@
+# Copyright 2019-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# distcc is known to fail compiling boost and will fallback
+# to local processing; Even when using distcc pump mode.
+DISABLE_DISTCC=yes
+
+MY_PV="${PV//./_}"
+S="${WORKDIR}/boost_${MY_PV}/tools/build/src"
+QA_IGNORE_DYNAMICALLY_LINKED_PROGRAM='(bjam|b2)$'
+
+src_compile() {
+ cd engine || die "Failed to chdir to '${S}/engine'!"
+
+ # Using BUILD CXX here because the host system
+ # building the initramfs must be able to execute created b2 program
+ local myargs=(
+ ./build.sh
+ cxx
+ --cxx="$(tc-getBUILD_CXX)"
+ --cxxflags="${CXXFLAGS}"
+ -d+2
+ --without-python
+ )
+
+ gkexec "${myargs[*]}"
+}
+
+src_install() {
+ mkdir -p "${D}"/usr/bin \
+ || die "Failed to create '${D}/usr/bin'!"
+
+ cp --target-directory="${D}/usr/bin" engine/{bjam,b2} \
+ || die "Failed to install 'engine/{bjam,b2}' to '${D}/usr/bin'!"
+
+ mkdir -p "${D}"/usr/share/boost-build \
+ || die "Failed to create '${D}/usr/share/boost-build'!"
+
+ cp \
+ --recursive \
+ --target-directory="${D}/usr/share/boost-build" \
+ ../boost-build.jam \
+ bootstrap.jam \
+ build-system.jam \
+ ../example/user-config.jam \
+ build \
+ kernel \
+ options \
+ tools \
+ util \
+ || die "Failed to copy *.jam files to '${D}/usr/share/boost-build'!"
+
+ find "${D}/usr/share/boost-build" -iname "*.py" -delete \
+ || die "Failed to remove python files"
+
+ echo 'variant gentoorelease : release : <optimization>off <debug-symbols>off <runtime-link>shared ;' > "${D}/usr/share/boost-build/site-config.jam" \
+ || die "Failed to create '${D}/usr/share/boost-build/site-config.jam'!"
+}
diff --git a/gkbuilds/boost.gkbuild b/gkbuilds/boost.gkbuild
new file mode 100644
index 0000000..9b7c1b5
--- /dev/null
+++ b/gkbuilds/boost.gkbuild
@@ -0,0 +1,92 @@
+# Copyright 2019-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# distcc is known to fail compiling boost and will fallback
+# to local processing; Even when using distcc pump mode.
+DISABLE_DISTCC=yes
+
+create_user-config.jam() {
+ local user_config_jam="${S}"/user-config.jam
+ if [[ -s ${user_config_jam} ]]; then
+ return
+ fi
+
+ local compiler compiler_version compiler_executable="$(tc-getCXX)"
+ compiler="gcc"
+ compiler_version="$(gcc-version)"
+
+ cat > "${user_config_jam}" <<- __EOF__ || die
+ using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
+ __EOF__
+
+ # Boost.Build does not allow for disabling of numpy
+ # extensions, thereby leading to automagic numpy
+ # https://github.com/boostorg/python/issues/111#issuecomment-280447482
+ sed \
+ -e 's/\[ unless \[ python\.numpy \] : <build>no \]/<build>no/g' \
+ -i "${S}"/libs/python/build/Jamfile \
+ || die
+}
+
+ejam() {
+ create_user-config.jam
+
+ local myargs=(
+ b2
+ "--user-config=${S}/user-config.jam"
+ --without-python
+ "$@"
+ )
+
+ gkexec "${myargs[*]}"
+}
+
+src_configure() {
+ # Workaround for too many parallel processes requested, bug #506064
+ [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
+
+ OPTIONS=(
+ gentoorelease
+ "-j$(makeopts_jobs)"
+ -q
+ -d+2
+ pch=off
+ --disable-icu boost.locale.icu=off
+ --without-mpi
+ --without-locale
+ --without-context --without-coroutine --without-fiber
+ --without-stacktrace
+ --boost-build="${BROOT}"/usr/share/boost-build
+ --prefix="/usr"
+ --layout=system
+ --no-cmake-config
+ threading=multi
+ link=shared,static
+ # this seems to be the only way to disable compression algorithms
+ # https://www.boost.org/doc/libs/1_70_0/libs/iostreams/doc/installation.html#boost-build
+ -sNO_BZIP2=1
+ -sNO_LZMA=1
+ -sNO_ZLIB=1
+ -sNO_ZSTD=1
+ )
+
+ # bug 298489
+ if [[ "${CHOST}" == powerpc* ]]; then
+ [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
+ fi
+
+ # Use C++14 globally as of 1.62
+ append-cxxflags -std=c++14
+}
+
+src_compile() {
+ ejam "${OPTIONS[@]}" || die "Compilation of Boot libraries failed!"
+}
+
+src_install() {
+ ejam \
+ "${OPTIONS[@]}" \
+ --includedir="${D}/usr/include" \
+ --libdir="${D}/usr/lib" \
+ install || die "Installation of Boost libraries failed!"
+}
diff --git a/gkbuilds/btrfs-progs.gkbuild b/gkbuilds/btrfs-progs.gkbuild
new file mode 100644
index 0000000..48b9e6d
--- /dev/null
+++ b/gkbuilds/btrfs-progs.gkbuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+src_configure() {
+ local myconf=(
+ --bindir="/sbin"
+ --disable-shared
+ --disable-convert
+ --disable-python
+ --disable-documentation
+ )
+
+ if isTrue "$(is_glibc)"
+ then
+ myconf+=( --enable-backtrace )
+ else
+ # backtrace does not work on musl, bug #815676
+ myconf+=( --disable-backtrace )
+ fi
+
+ gkconf "${myconf[@]}"
+}
+
+src_compile() {
+ gkmake V=1 static
+}
+
+src_install() {
+ mkdir "${D}"/sbin || die "Failed to create '${D}/sbin'!"
+
+ cp -a btrfs.static "${D}"/sbin/btrfs \
+ || die "Failed to copy '${S}/btrfs.static' to '${D}/sbin/btrfs'!"
+
+ "${STRIP}" --strip-all "${D}"/sbin/btrfs \
+ || die "Failed to strip '${D}/sbin/btrfs'!"
+
+ ln -s btrfs "${D}"/sbin/btrfsck \
+ || die "Failed to create symlink '${D}/sbin/btrfsck' to '${D}/sbin/btrfs'!"
+}
diff --git a/gkbuilds/busybox.gkbuild b/gkbuilds/busybox.gkbuild
new file mode 100644
index 0000000..286e458
--- /dev/null
+++ b/gkbuilds/busybox.gkbuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+src_prepare() {
+ default
+
+ # flag cleanup
+ sed -i -r \
+ -e 's:[[:space:]]?-(Werror|Os|falign-(functions|jumps|loops|labels)=1|fomit-frame-pointer)\>::g' \
+ Makefile.flags || gen_die
+
+ sed -i \
+ -e 's:-static-libgcc::' \
+ Makefile.flags || die
+
+ cp "${TEMP}"/busybox-config "${S}"/.config \
+ || die "Failed top copy '${TEMP}/busybox-config' to '${S}/.config'!"
+
+ cp "${TEMP}"/busybox-config "${S}"/.config.gk_orig \
+ || die "Failed top copy '${TEMP}/busybox-config' to '${S}/.config.gk_orig'!"
+}
+
+bbmake() {
+ local args=(
+ V=1
+ CROSS_COMPILE="${CHOST}-"
+ AR="${AR}"
+ CC="${CC}"
+ HOSTCC="${BUILD_CC}"
+ HOSTCFLAGS="${BUILD_CFLAGS}"
+ PKG_CONFIG="${PKG_CONFIG}"
+ )
+ make "${args[@]}" "$@"
+}
+
+src_configure() {
+ tc-export AR CC BUILD_CC PKG_CONFIG
+ BUILD_CFLAGS=${CFLAGS}
+ BUILD_CFLAGS+=" -D_FILE_OFFSET_BITS=64"
+ gkexec "yes '' | bbmake V=1 oldconfig" 1
+}
+
+src_compile() {
+ gkexec bbmake busybox
+}
+
+src_install() {
+ #gkmake CONFIG_PREFIX="${D}" install
+ mkdir "${D}"/bin || die "Failed to create '${D}/bin'!"
+
+ cp -a busybox "${D}"/bin/ \
+ || die "Failed to copy '${S}/busybox' to '${D}/bin/'!"
+
+ "${STRIP}" --strip-all "${D}"/bin/busybox \
+ || die "Failed to strip '${D}/bin/busybox'!"
+
+ mkdir "${D}"/configs || die "Failed to create '${D}/configs'!"
+ cp -a --target-directory="${D}"/configs \
+ "${S}"/.config \
+ "${S}"/.config.gk_orig \
+ || die "Failed to copy '${S}/.config{,gk_orig}' to '${D}/configs'!"
+}
diff --git a/gkbuilds/coreutils.gkbuild b/gkbuilds/coreutils.gkbuild
new file mode 100644
index 0000000..6ad51f9
--- /dev/null
+++ b/gkbuilds/coreutils.gkbuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+src_prepare() {
+ default
+
+ # Since we've patched many .c files, the make process will try to
+ # re-build the manpages by running `./bin --help`. When doing a
+ # cross-compile, we can't do that since 'bin' isn't a native bin.
+ # Also, it's not like we changed the usage on any of these things,
+ # so let's just update the timestamps and skip the help2man step.
+ set -- man/*.x
+ touch ${@/%x/1}
+
+ # Avoid perl dep for compiled in dircolors default #348642
+ touch src/dircolors.h
+ touch ${@/%x/1}
+}
+
+src_configure() {
+ append-ldflags -static
+
+ # configure doesn't like our TMPDIR and would try to write to
+ # /usr instead which would trigger sandbox
+ export ac_cv_sys_long_file_names=yes
+
+ export gl_cv_func_mknod_works=yes #409919
+
+ # no selinux
+ export ac_cv_{header_selinux_{context,flash,selinux}_h,search_setfilecon}=no
+
+ if isTrue "$(tc-is-cross-compiler)"
+ then
+ export fu_cv_sys_stat_statfs2_bsize=yes #311569
+ export gl_cv_func_realpath_works=yes #416629
+ export gl_cv_func_working_mktime=yes
+ fi
+
+ local myconf=(
+ --with-packager="genkernel"
+ --enable-largefile
+ --disable-libcap
+ --disable-nls
+ --disable-acl
+ --disable-xattr
+ --without-gmp
+ --enable-no-install-program="stdbuf,groups,hostname,kill,su,uptime"
+ )
+
+ gkconf "${myconf[@]}"
+}
+
+src_install() {
+ local MYMAKEOPTS=( "V=1" )
+ MYMAKEOPTS+=( "DESTDIR=${D}" )
+ MYMAKEOPTS+=( "install" )
+ gkmake "${MYMAKEOPTS[@]}"
+
+ # We are only interested in b2sum
+ find "${D}" -type f -not -name 'b2sum' -print0 | xargs --null -I {} rm {}
+
+ rm -rf "${D}"/usr/share || die "Failed to remove '${D}/usr/share'!"
+
+ "${STRIP}" --strip-all "${D}"/usr/bin/b2sum \
+ || die "Failed to strip '${D}/usr/bin/b2sum'!"
+}
diff --git a/gkbuilds/cryptsetup.gkbuild b/gkbuilds/cryptsetup.gkbuild
new file mode 100644
index 0000000..c084286
--- /dev/null
+++ b/gkbuilds/cryptsetup.gkbuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+src_configure() {
+ export ac_cv_header_security_pam_misc_h=no
+ export ac_cv_header_security_pam_appl_h=no
+
+ # devicemapper needs to find udev
+ append-ldflags -Wl,-rpath-link,${BROOT}/usr/lib
+
+ local myconf=(
+ --enable-internal-argon2
+ --sbindir=/sbin
+ --disable-asciidoc
+ --disable-nls
+ --disable-selinux
+ --disable-ssh-token
+ --disable-veritysetup
+ --disable-cryptsetup-reencrypt
+ --disable-integritysetup
+ --enable-static=yes
+ --enable-shared=no
+ --enable-static-cryptsetup
+ --enable-udev
+ --with-crypto_backend=gcrypt
+ )
+
+ gkconf "${myconf[@]}"
+}
+
+src_install() {
+ default
+
+ rm -rf \
+ "${D}"/sbin/* \
+ "${D}"/usr/share/
+
+ install_exe 'cryptsetup.static' "${D}"/sbin/cryptsetup
+
+ "${STRIP}" --strip-all "${D}"/sbin/cryptsetup \
+ || die "Failed to strip '${D}/sbin/cryptsetup'!"
+}
diff --git a/gkbuilds/dmraid.gkbuild b/gkbuilds/dmraid.gkbuild
new file mode 100644
index 0000000..2c6810c
--- /dev/null
+++ b/gkbuilds/dmraid.gkbuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+src_prepare() {
+ # pkg_check_modules is not in aclocal.m4 by default, and autoreconf doesn't add it
+ cat /usr/share/aclocal/pkg.m4 >>"${S}"/aclocal.m4 \
+ || die "Failed to append '/usr/share/aclocal/pkg.m4' to '${S}/aclocal.m4'!"
+
+ default
+}
+
+src_configure() {
+ local myconf=(
+ --enable-static_link
+ )
+
+ gkconf "${myconf[@]}"
+}
+
+src_install() {
+ default
+
+ "${STRIP}" --strip-all "${D}"/usr/sbin/dmraid \
+ || die "Failed to strip '${D}/usr/sbin/dmraid'!"
+
+ # For backward compatibility
+ mkdir "${D}"/sbin || die "Failed to create '${D}/sbin'!"
+
+ ln -s ../usr/sbin/dmraid "${D}"/sbin/dmraid \
+ || die "Failed to create symlink '${D}/sbin/dmraid' to '${D}/usr/sbin/dmraid'!"
+}
diff --git a/gkbuilds/dropbear.gkbuild b/gkbuilds/dropbear.gkbuild
new file mode 100644
index 0000000..7b63087
--- /dev/null
+++ b/gkbuilds/dropbear.gkbuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+src_prepare() {
+ default
+
+ # Disable DSS support
+ echo "#define DROPBEAR_DSS 0" >> localoptions.h || die "Failed to disable DSS support"
+
+ # Enable AES GCM support
+ echo "#define DROPBEAR_ENABLE_GCM_MODE 1" >> localoptions.h || die "Failed to enable AES GCM support"
+}
+
+src_configure() {
+ local myconf=(
+ --enable-bundled-libtom
+ --enable-static
+ --disable-pam
+ --disable-syslog
+ --with-zlib="${BROOT}/usr"
+ )
+
+ gkconf "${myconf[@]}"
+}
+
+src_compile() {
+ local MYMAKEOPTS=( "V=1" )
+ MYMAKEOPTS+=( "MULTI=1" )
+ MYMAKEOPTS+=( "PROGRAMS='dbclient dropbear dropbearkey dropbearconvert scp'" )
+ gkmake "${MYMAKEOPTS[@]}"
+}
+
+src_install() {
+ local mydir=
+ for mydir in \
+ etc/dropbear \
+ usr/bin \
+ usr/sbin \
+ root/.ssh \
+ var/log \
+ var/run \
+ ; do
+ mkdir -p "${D}"/${mydir} || die "Failed to create '${D}/${mydir}'!"
+ done
+
+ cp -a dropbearmulti "${D}"/usr/bin/ \
+ || die "Failed to copy '${S}/dropbearmulti' to '${D}/usr/bin/'!"
+
+ "${STRIP}" --strip-all "${D}"/usr/bin/dropbearmulti \
+ || die "Failed to strip '${D}/usr/bin/dropbearmulti'!"
+
+ ln -s dropbearmulti "${D}"/usr/bin/dbclient \
+ || die "Failed to symlink '${D}/usr/bin/dbclient' to '${D}/usr/bin/dropbearmulti'!"
+
+ ln -s ../bin/dropbearmulti "${D}"/usr/sbin/dropbear \
+ || die "Failed to symlink '${D}/usr/sbin/dropbear' to '${D}/usr/bin/dropbearmulti'!"
+
+ ln -s dropbearmulti "${D}"/usr/bin/dropbearconvert \
+ || die "Failed to symlink '${D}/usr/bin/dropbearconvert' to '${D}/usr/bin/dropbearmulti'!"
+
+ ln -s dropbearmulti "${D}"/usr/bin/dropbearkey \
+ || die "Failed to symlink '${D}/usr/bin/dropbearkey' to '${D}/usr/bin/dropbearmulti'!"
+
+ ln -s dropbearmulti "${D}"/usr/bin/scp \
+ || die "Failed to symlink '${D}/usr/bin/scp' to '${D}/usr/bin/dropbearmulti'!"
+
+ chmod 0700 "${D}"/root/.ssh \
+ || die "Failed to chmod of '${D}/root/.ssh'!"
+
+ mkfifo "${D}"/etc/dropbear/fifo_root \
+ || die "Failed to create '${D}/etc/dropbear/fifo_root'!"
+
+ mkfifo "${D}"/etc/dropbear/fifo_swap \
+ || die "Failed to create '${D}/etc/dropbear/fifo_swap'!"
+}
diff --git a/gkbuilds/e2fsprogs.gkbuild b/gkbuilds/e2fsprogs.gkbuild
new file mode 100644
index 0000000..bedb257
--- /dev/null
+++ b/gkbuilds/e2fsprogs.gkbuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# e2fsprogs-1.45.6-build.patch would trigger gkautoreconf
+# which we cannot run because of gettext-0.20 incompatibility
+WANT_AUTORECONF=no
+
+src_configure() {
+ append-ldflags -static
+
+ export VARTEXFONTS="${T}/fonts"
+
+ local myconf=(
+ --bindir=/bin
+ --with-root-prefix=""
+ --disable-nls
+ --enable-libblkid
+ --enable-libuuid
+ --disable-fsck
+ --disable-uuidd
+ --disable-debugfs
+ --disable-imager
+ --enable-resizer
+ --disable-defrag
+ )
+
+ ac_cv_path_LDCONFIG=: \
+ CC="$(tc-getCC)" \
+ BUILD_CC="$(tc-getBUILD_CC)" \
+ BUILD_LD="$(tc-getBUILD_LD)" \
+ gkconf "${myconf[@]}"
+}
+
+src_install() {
+ mkdir "${D}"/sbin || die "Failed to create '${D}/sbin'!"
+
+ local file=
+ for file in \
+ e2fsck/e2fsck \
+ misc/mke2fs \
+ resize/resize2fs \
+ ; do
+ cp -a "${S}"/${file} "${D}"/sbin/ \
+ || die "Failed to copy '${S}/${file}' to '${D}/sbin/'!"
+
+ local filename=$(basename "${file}")
+ "${STRIP}" --strip-all "${D}"/sbin/${filename} \
+ || die "Failed to strip '${D}/sbin/${file}'!"
+ done
+}
diff --git a/gkbuilds/eudev.gkbuild b/gkbuilds/eudev.gkbuild
new file mode 100644
index 0000000..a9df513
--- /dev/null
+++ b/gkbuilds/eudev.gkbuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+src_configure() {
+ local myconf=(
+ --exec-prefix=
+ --bindir=/usr/bin
+ --sbindir=/usr/sbin
+ --includedir=/usr/include
+ --libdir=/usr/lib
+ --enable-static
+ --enable-blkid
+ --disable-introspection
+ --disable-manpages
+ --disable-selinux
+ --disable-rule-generator
+ --disable-hwdb
+ --enable-kmod
+ )
+
+ gkconf "${myconf[@]}"
+}
+
+src_install() {
+ default
+
+ local files_to_strip=()
+ files_to_strip+=( /usr/bin/udevadm )
+ files_to_strip+=( /usr/lib/udev/ata_id )
+ files_to_strip+=( /usr/lib/udev/cdrom_id )
+ files_to_strip+=( /usr/lib/udev/collect )
+ files_to_strip+=( /usr/lib/udev/mtd_probe )
+ files_to_strip+=( /usr/lib/udev/scsi_id )
+ files_to_strip+=( /usr/lib/udev/v4l_id )
+ files_to_strip+=( /usr/sbin/udevd )
+
+ local file_to_strip=
+ for file_to_strip in "${files_to_strip[@]}"
+ do
+ "${STRIP}" --strip-all "${D}"${file_to_strip} \
+ || die "Failed to strip '${D}${file_to_strip}'!"
+ done
+}
diff --git a/gkbuilds/expat.gkbuild b/gkbuilds/expat.gkbuild
new file mode 100644
index 0000000..22dbb29
--- /dev/null
+++ b/gkbuilds/expat.gkbuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+src_configure() {
+ local myconf=(
+ --enable-static
+ --without-docbook
+ )
+
+ gkconf "${myconf[@]}"
+}
+
+src_install() {
+ default
+
+ rm -rf \
+ "${D}"/usr/bin \
+ "${D}"/usr/share
+}
diff --git a/gkbuilds/fuse.gkbuild b/gkbuilds/fuse.gkbuild
new file mode 100644
index 0000000..bf23927
--- /dev/null
+++ b/gkbuilds/fuse.gkbuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+src_configure() {
+ local myconf=(
+ --disable-example
+ )
+
+ gkconf "${myconf[@]}"
+}
+
+src_install() {
+ default
+
+ rm -rf \
+ "${D}"/dev \
+ "${D}"/etc \
+ "${D}"/sbin \
+ "${D}"/usr/bin \
+ "${D}"/usr/share
+}
diff --git a/gkbuilds/gnupg.gkbuild b/gkbuilds/gnupg.gkbuild
new file mode 100644
index 0000000..468cb4e
--- /dev/null
+++ b/gkbuilds/gnupg.gkbuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+src_configure() {
+ append-ldflags -static
+
+ local myconf=(
+ --enable-static-rnd=linux
+ --disable-dev-random
+ --disable-asm
+ --disable-selinux-support
+ --disable-gnupg-iconv
+ --disable-card-support
+ --disable-agent-support
+ --disable-bzip2
+ --disable-exec
+ --disable-photo-viewers
+ --disable-keyserver-helpers
+ --disable-ldap
+ --disable-hkp
+ --disable-finger
+ --disable-generic
+ --disable-mailto
+ --disable-keyserver-path
+ --disable-dns-srv
+ --disable-dns-cert
+ --disable-nls
+ --disable-threads
+ --disable-regex
+ --disable-optimization
+ --with-included-zlib
+ --without-capabilities
+ --without-tar
+ --without-ldap
+ --without-libcurl
+ --without-mailprog
+ --without-libpth-prefix
+ --without-libiconv-prefix
+ --without-libintl-prefix
+ --without-zlib
+ --without-bzip2
+ --without-libusb
+ --without-readline
+ CC_FOR_BUILD="$(tc-getBUILD_CC)"
+ )
+
+ gkconf "${myconf[@]}"
+}
+
+src_install() {
+ default
+
+ rm -rf \
+ "${D}"/usr/bin/gpgsplit \
+ "${D}"/usr/bin/gpgv \
+ "${D}"/usr/share
+
+ "${STRIP}" --strip-all "${D}"/usr/bin/gpg \
+ || die "Failed to strip '${D}/usr/bin/gpg'!"
+
+ # For backward compatibility
+ mkdir "${D}"/bin || die "Failed to create '${D}/bin'!"
+
+ ln -s ../usr/bin/gpg "${D}"/bin/gpg \
+ || die "Failed to create symlink '${D}/bin/gpg' to '${D}/usr/bin/gpg'!"
+}
diff --git a/gkbuilds/hwids.gkbuild b/gkbuilds/hwids.gkbuild
new file mode 100644
index 0000000..60492c5
--- /dev/null
+++ b/gkbuilds/hwids.gkbuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+S="${WORKDIR}/hwids-${P}"
+
+_emake() {
+ gkmake \
+ V=1 \
+ NET=yes \
+ PCI=yes \
+ UDEV=yes \
+ USB=yes \
+ "$@"
+}
+
+src_prepare() {
+ default
+
+ # we cannot run host's udevadm
+ sed -i -e '/udevadm hwdb/d' Makefile || die
+}
+
+src_compile() {
+ _emake
+}
+
+src_install() {
+ _emake \
+ HWDBDIR="$(get_udevdir)/hwdb.d" \
+ DESTDIR="${D}" \
+ install
+
+ rm -rf \
+ "${D}"/usr/share
+}
diff --git a/gkbuilds/json-c.gkbuild b/gkbuilds/json-c.gkbuild
new file mode 100644
index 0000000..c103679
--- /dev/null
+++ b/gkbuilds/json-c.gkbuild
@@ -0,0 +1,2 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
diff --git a/gkbuilds/keyutils.gkbuild b/gkbuilds/keyutils.gkbuild
new file mode 100644
index 0000000..dc232be
--- /dev/null
+++ b/gkbuilds/keyutils.gkbuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+src_prepare() {
+ default
+
+ sed -i \
+ -e "1iRPATH = -static" \
+ -e 's:-Werror::' \
+ -e '/^NO_SOLIB/d' \
+ Makefile || die
+}
+
+src_compile() {
+ export NO_SOLIB=1
+
+ gkmake keyctl
+}
+
+src_install() {
+ mkdir "${D}"/bin || die "Failed to create '${D}/bin'!"
+ cp -a keyctl "${D}"/bin/ \
+ || die "Failed to copy '${S}/keyctl'!"
+
+ "${STRIP}" --strip-all "${D}"/bin/keyctl \
+ || die "Failed to strip keyctl!"
+}
diff --git a/gkbuilds/kmod.gkbuild b/gkbuilds/kmod.gkbuild
new file mode 100644
index 0000000..ac6b3e2
--- /dev/null
+++ b/gkbuilds/kmod.gkbuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+src_prepare() {
+ default
+
+ sed -i \
+ -e '/--enable-static is not supported by kmod/s:as_fn_error:echo:' \
+ configure || die "Failed to re-enable static support"
+
+ # List of symbols which are clashing with (e)udev
+ cat <<-EOF >> kmod.syms
+ mkdir_p _kmod_mkdir_p
+ mkdir_parents _kmod_mkdir_parents
+ path_is_absolute _kmod_path_is_absolute
+ path_make_absolute_cwd _kmod_path_make_absolute_cwd
+ EOF
+}
+
+src_configure() {
+ local myconf=(
+ --enable-static
+ --disable-manpages
+ --disable-python
+ --enable-tools
+ --with-xz
+ --with-zlib
+ --with-zstd
+ --without-openssl
+ )
+
+ gkconf "${myconf[@]}"
+}
+
+src_install() {
+ default
+
+ # remove hardcoded $BROOT
+ sed -i \
+ -e 's/-L\/[^ ]*/-L${libdir}/g' \
+ "${D}"/usr/lib*/pkgconfig/*.pc \
+ || die
+
+ # rename internal symbols to avoid clashing with (e)udev
+ $(tc-getOBJCOPY) \
+ --redefine-syms=kmod.syms \
+ "${D}"/usr/lib*/libkmod.a \
+ || die
+
+ rm -rf \
+ "${D}"/usr/share/
+
+ "${STRIP}" --strip-all "${D}"/usr/bin/kmod \
+ || die "Failed to strip '${D}/usr/bin/kmod'!"
+
+ mkdir "${D}"/bin || die "Failed to create '${D}/bin'!"
+
+ mkdir "${D}"/sbin || die "Failed to create '${D}/sbin'!"
+
+ # We need to install these links where busybox would create them
+ local symlink_targets=()
+ symlink_targets+=( /sbin/depmod )
+ symlink_targets+=( /sbin/insmod )
+ symlink_targets+=( /sbin/lsmod )
+ symlink_targets+=( /sbin/modinfo )
+ symlink_targets+=( /sbin/modprobe )
+ symlink_targets+=( /sbin/rmmod )
+
+ local symlink_target=
+ for symlink_target in "${symlink_targets[@]}"
+ do
+ ln -s ../usr/bin/kmod "${D}${symlink_target}" \
+ || die "Failed to create symlink '${D}${symlink_target}' to '${D}/usr/bin/kmod'!"
+ done
+}
diff --git a/gkbuilds/libaio.gkbuild b/gkbuilds/libaio.gkbuild
new file mode 100644
index 0000000..c103679
--- /dev/null
+++ b/gkbuilds/libaio.gkbuild
@@ -0,0 +1,2 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
diff --git a/gkbuilds/libgcrypt.gkbuild b/gkbuilds/libgcrypt.gkbuild
new file mode 100644
index 0000000..88b5ba6
--- /dev/null
+++ b/gkbuilds/libgcrypt.gkbuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+src_prepare() {
+ default
+
+ gkautoreconf
+}
+
+src_configure() {
+ export enable_pkg_config=yes
+
+ local myconf=(
+ --enable-static=yes
+ --disable-padlock-support
+ )
+
+ CC_FOR_BUILD="$(tc-getBUILD_CC)" \
+ gkconf "${myconf[@]}"
+}
+
+src_install() {
+ default
+
+ rm -rf \
+ "${D}"/usr/bin/dumpsexp \
+ "${D}"/usr/bin/hmac256 \
+ "${D}"/usr/bin/mpicalc \
+ "${D}"/usr/share
+
+ # remove hardcoded $BROOT
+ sed -i \
+ -e 's/-L\/[^-"]*//' \
+ -e 's/-I\/[^"]*//' \
+ "${D}"/usr/bin/libgcrypt-config \
+ || die
+
+ # libgcrypt-config tries to be smart and will omit include
+ # and lib dir due to set prefix
+ sed -i \
+ -e "s|x/usr/include|x/dont-try-to-be-smart|" \
+ -e "s|x/usr/lib|x/dont-try-to-be-smart|" \
+ "${D}"/usr/bin/libgcrypt-config \
+ || die "Failed to make libgcrypt-config dumb!"
+
+ mv "${D}"/usr/bin/libgcrypt-config "${D}"/usr/bin/libgcrypt-config.ori \
+ || die "Failed to rename '${D}/usr/bin/libgcrypt-config' to '${D}/usr/bin/libgcrypt-config.ori'!"
+
+ cat >"${D}"/usr/bin/libgcrypt-config <<-EOF
+ #!/bin/sh
+
+ SYSROOT=\$(dirname "\$(dirname "\$(dirname "\$(readlink -fm "\$0")")")")
+
+ exec "\${SYSROOT}"/usr/bin/libgcrypt-config.ori "\$@" | sed -e 's#/#'\${SYSROOT}'/#'
+ EOF
+
+ chmod +x "${D}"/usr/bin/libgcrypt-config \
+ || die "Failed to chmod of '${D}/bin/libgcrypt-config'!"
+}
diff --git a/gkbuilds/libgpg-error.gkbuild b/gkbuilds/libgpg-error.gkbuild
new file mode 100644
index 0000000..f03defb
--- /dev/null
+++ b/gkbuilds/libgpg-error.gkbuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+src_configure() {
+ local myconf=(
+ --disable-nls
+ --enable-static
+ CC_FOR_BUILD="$(tc-getBUILD_CC)"
+ )
+
+ gkconf "${myconf[@]}"
+}
+
+src_install() {
+ default
+
+ rm -rf \
+ "${D}"/usr/bin/gpg-error \
+ "${D}"/usr/bin/gpg-error-config \
+ "${D}"/usr/bin/gpgrt-config \
+ "${D}"/usr/bin/yat2m \
+ "${D}"/usr/share
+}
diff --git a/gkbuilds/libxcrypt.gkbuild b/gkbuilds/libxcrypt.gkbuild
new file mode 100644
index 0000000..1834e25
--- /dev/null
+++ b/gkbuilds/libxcrypt.gkbuild
@@ -0,0 +1,17 @@
+# Copyright 2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+src_prepare() {
+ default
+
+ gkautoreconf
+}
+
+src_configure() {
+ local myopts=(
+ --enable-shared
+ --enable-static
+ )
+
+ gkconf "${myopts[@]}"
+}
diff --git a/gkbuilds/lvm-2.03.22.gkbuild b/gkbuilds/lvm-2.03.22.gkbuild
new file mode 100644
index 0000000..bbfb652
--- /dev/null
+++ b/gkbuilds/lvm-2.03.22.gkbuild
@@ -0,0 +1,78 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+src_configure() {
+ # devicemapper needs to find udev
+ append-ldflags -Wl,-rpath-link,${BROOT}/usr/lib
+
+ export ac_cv_header_security_pam_misc_h=no
+ export ac_cv_header_security_pam_appl_h=no
+
+ local myconf=(
+ --enable-static_link
+ --enable-pkgconfig
+ --enable-dmeventd
+ --enable-cmdlib
+ --disable-lvmetad
+ --with-clvmd=none
+ --with-cluster=none
+ --disable-readline
+ --disable-selinux
+ --with-mirrors=internal
+ --with-snapshots=internal
+ --with-thin=internal
+ --with-cache=internal
+ --disable-udev-systemd-background-jobs
+ --enable-udev_sync
+ --enable-udev_rules
+ )
+
+ local texec
+ for texec in check dump repair restore
+ do
+ myconf+=( --with-thin-${texec}=/usr/sbin/thin_${texec} )
+ myconf+=( --with-cache-${texec}=/usr/sbin/cache_${texec} )
+ done
+
+ # Hard-wire this to bash as some shells (dash) don't know
+ # "-o pipefail" #682404, #716496
+ CONFIG_SHELL="/bin/bash" \
+ gkconf "${myconf[@]}"
+}
+
+src_install() {
+ default
+
+ rm -rf \
+ "${D}"/etc \
+ "${D}"/usr/sbin/* \
+ "${D}"/share
+
+ cp -a tools/lvm.static "${D}"/usr/sbin/lvm \
+ || die "Failed to copy '${S}/tools/lvm.static' to '${D}/usr/sbin/lvm'!"
+
+ "${STRIP}" --strip-all "${D}"/usr/sbin/lvm \
+ || die "Failed to strip '${D}/usr/sbin/lvm'!"
+
+ cp -a libdm/dm-tools/dmsetup.static "${D}"/usr/sbin/dmsetup \
+ || die "Failed to copy '${S}/tools/dmsetup.static' to '${D}/usr/sbin/dmsetup'!"
+
+ "${STRIP}" --strip-all "${D}"/usr/sbin/dmsetup \
+ || die "Failed to strip '${D}/usr/sbin/dmsetup'!"
+
+ ln -s dmsetup "${D}"/usr/sbin/dmstats \
+ || die "Failed to create symlink '${D}/usr/sbin/dmstats' to '${D}/usr/sbin/dmsetup'!"
+
+ # For backward compatibility (packages like multipath-tools are
+ # expecting /sbin/dmsetup in udev rules).
+ mkdir "${D}"/sbin || die "Failed to create '${D}/sbin'!"
+
+ ln -s ../usr/sbin/dmsetup "${D}"/sbin/dmsetup \
+ || die "Failed to create symlink '${D}/sbin/dmsetup' to '${D}/usr/sbin/dmsetup'!"
+
+ ln -s ../usr/sbin/dmstats "${D}"/sbin/dmstats \
+ || die "Failed to create symlink '${D}/sbin/dmstats' to '${D}/usr/sbin/dmstats'!"
+
+ ln -s ../usr/sbin/lvm "${D}"/sbin/lvm \
+ || die "Failed to create symlink '${D}/sbin/lvm' to '${D}/usr/sbin/lvm'!"
+}
diff --git a/gkbuilds/lvm.gkbuild b/gkbuilds/lvm.gkbuild
new file mode 100644
index 0000000..3006381
--- /dev/null
+++ b/gkbuilds/lvm.gkbuild
@@ -0,0 +1,78 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+src_configure() {
+ # devicemapper needs to find udev
+ append-ldflags -Wl,-rpath-link,${BROOT}/usr/lib
+
+ export ac_cv_header_security_pam_misc_h=no
+ export ac_cv_header_security_pam_appl_h=no
+
+ local myconf=(
+ --enable-static_link
+ --enable-pkgconfig
+ --enable-dmeventd
+ --enable-cmdlib
+ --disable-lvmetad
+ --with-clvmd=none
+ --with-cluster=none
+ --disable-readline
+ --disable-selinux
+ --with-mirrors=internal
+ --with-snapshots=internal
+ --with-thin=internal
+ --with-cache=internal
+ --disable-udev-systemd-background-jobs
+ --enable-udev_sync
+ --enable-udev_rules
+ )
+
+ local texec
+ for texec in check dump repair restore
+ do
+ myconf+=( --with-thin-${texec}=/usr/sbin/thin_${texec} )
+ myconf+=( --with-cache-${texec}=/usr/sbin/cache_${texec} )
+ done
+
+ # Hard-wire this to bash as some shells (dash) don't know
+ # "-o pipefail" #682404, #716496
+ CONFIG_SHELL="/bin/bash" \
+ gkconf "${myconf[@]}"
+}
+
+src_install() {
+ default
+
+ rm -rf \
+ "${D}"/etc \
+ "${D}"/usr/sbin/* \
+ "${D}"/share
+
+ cp -a tools/lvm.static "${D}"/usr/sbin/lvm \
+ || die "Failed to copy '${S}/tools/lvm.static' to '${D}/usr/sbin/lvm'!"
+
+ "${STRIP}" --strip-all "${D}"/usr/sbin/lvm \
+ || die "Failed to strip '${D}/usr/sbin/lvm'!"
+
+ cp -a tools/dmsetup.static "${D}"/usr/sbin/dmsetup \
+ || die "Failed to copy '${S}/tools/dmsetup.static' to '${D}/usr/sbin/dmsetup'!"
+
+ "${STRIP}" --strip-all "${D}"/usr/sbin/dmsetup \
+ || die "Failed to strip '${D}/usr/sbin/dmsetup'!"
+
+ ln -s dmsetup "${D}"/usr/sbin/dmstats \
+ || die "Failed to create symlink '${D}/usr/sbin/dmstats' to '${D}/usr/sbin/dmsetup'!"
+
+ # For backward compatibility (packages like multipath-tools are
+ # expecting /sbin/dmsetup in udev rules).
+ mkdir "${D}"/sbin || die "Failed to create '${D}/sbin'!"
+
+ ln -s ../usr/sbin/dmsetup "${D}"/sbin/dmsetup \
+ || die "Failed to create symlink '${D}/sbin/dmsetup' to '${D}/usr/sbin/dmsetup'!"
+
+ ln -s ../usr/sbin/dmstats "${D}"/sbin/dmstats \
+ || die "Failed to create symlink '${D}/sbin/dmstats' to '${D}/usr/sbin/dmstats'!"
+
+ ln -s ../usr/sbin/lvm "${D}"/sbin/lvm \
+ || die "Failed to create symlink '${D}/sbin/lvm' to '${D}/usr/sbin/lvm'!"
+}
diff --git a/gkbuilds/lzo.gkbuild b/gkbuilds/lzo.gkbuild
new file mode 100644
index 0000000..e0c365c
--- /dev/null
+++ b/gkbuilds/lzo.gkbuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+src_configure() {
+ local myopts=(
+ --enable-shared
+ --enable-static
+ )
+
+ gkconf "${myopts[@]}"
+}
+
+src_install() {
+ default
+
+ rm -rf "${D}"/usr/share
+}
diff --git a/gkbuilds/mdadm-4.2.gkbuild b/gkbuilds/mdadm-4.2.gkbuild
new file mode 100644
index 0000000..d996346
--- /dev/null
+++ b/gkbuilds/mdadm-4.2.gkbuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+src_prepare() {
+ default
+
+ local defs='-DNO_DLM -DNO_COROSYNC -DNO_LIBUDEV'
+ sed -i \
+ -e "/^CFLAGS = /s:^CFLAGS = \(.*\)$:CFLAGS = ${CFLAGS} ${defs}:" \
+ -e "/^CXFLAGS = /s:^CXFLAGS = \(.*\)$:CXFLAGS = ${CFLAGS} ${defs}:" \
+ -e "/^CWFLAGS = /s:^CWFLAGS = \(.*\)$:CWFLAGS = -Wall:" \
+ -e "s/^# LDFLAGS = -static/LDFLAGS = -static/" \
+ -e "s|^UDEVDIR := .*|UDEVDIR = $(get_udevdir)|" \
+ Makefile \
+ || die "Failed to sed mdadm Makefile"
+}
+
+src_compile() {
+ CXFLAGS="-DNO_LIBUDEV" gkmake V=1 mdadm mdmon
+}
+
+src_install() {
+ gkmake V=1 DESTDIR="${D}" install-udev
+
+ mkdir -p "${D}"/sbin || die "Failed to create '${D}/sbin'!"
+
+ cp -a mdadm "${D}"/sbin/ \
+ || die "Failed to copy '${S}/mdadm' to '${D}/sbin/'!"
+
+ "${STRIP}" --strip-all "${D}"/sbin/mdadm \
+ || die "Failed to strip '${D}/sbin/mdadm'!"
+
+ cp -a mdmon "${D}"/sbin/ \
+ || die "Failed to copy '${D}/sbin/mdmon' to '${D}/sbin/'!"
+
+ "${STRIP}" --strip-all "${D}"/sbin/mdmon \
+ || die "Failed to strip '${D}/sbin/mdmon'!"
+}
diff --git a/gkbuilds/mdadm.gkbuild b/gkbuilds/mdadm.gkbuild
new file mode 100644
index 0000000..b43f753
--- /dev/null
+++ b/gkbuilds/mdadm.gkbuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+src_prepare() {
+ default
+
+ local defs='-DNO_DLM -DNO_COROSYNC'
+ sed -i \
+ -e "/^CFLAGS = /s:^CFLAGS = \(.*\)$:CFLAGS = ${CFLAGS} ${defs}:" \
+ -e "/^CXFLAGS = /s:^CXFLAGS = \(.*\)$:CXFLAGS = ${CFLAGS} ${defs}:" \
+ -e "/^CWFLAGS = /s:^CWFLAGS = \(.*\)$:CWFLAGS = -Wall:" \
+ -e "s/^# LDFLAGS = -static/LDFLAGS = -static/" \
+ -e "s|^UDEVDIR := .*|UDEVDIR = $(get_udevdir)|" \
+ Makefile \
+ || die "Failed to sed mdadm Makefile"
+}
+
+src_compile() {
+ gkmake V=1 mdadm mdmon
+}
+
+src_install() {
+ gkmake V=1 DESTDIR="${D}" install-udev
+
+ mkdir -p "${D}"/sbin || die "Failed to create '${D}/sbin'!"
+
+ cp -a mdadm "${D}"/sbin/ \
+ || die "Failed to copy '${S}/mdadm' to '${D}/sbin/'!"
+
+ "${STRIP}" --strip-all "${D}"/sbin/mdadm \
+ || die "Failed to strip '${D}/sbin/mdadm'!"
+
+ cp -a mdmon "${D}"/sbin/ \
+ || die "Failed to copy '${D}/sbin/mdmon' to '${D}/sbin/'!"
+
+ "${STRIP}" --strip-all "${D}"/sbin/mdmon \
+ || die "Failed to strip '${D}/sbin/mdmon'!"
+}
diff --git a/gkbuilds/open-iscsi.gkbuild b/gkbuilds/open-iscsi.gkbuild
new file mode 100644
index 0000000..595b68e
--- /dev/null
+++ b/gkbuilds/open-iscsi.gkbuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+src_compile() {
+ append-cppflags -DNO_SYSTEMD
+ export NO_SYSTEMD=1
+ export PKG_CONFIG="$(tc-getPKG_CONFIG) --static"
+
+ gkmake -C sysdeps V=1
+ gkmake -C usr/fwparam_ibft V=1
+ gkmake -C libopeniscsiusr V=1
+ gkmake -C usr -j1 V=1 iscsistart
+}
+
+src_install() {
+ mkdir "${D}"/bin || die "Failed to create '${D}/bin'!"
+
+ cp -a usr/iscsistart "${D}"/bin/ \
+ || die "Failed to copy '${S}/usr/iscsistart' to '${D}/bin/'!"
+
+ "${STRIP}" --strip-all "${D}"/bin/iscsistart \
+ || die "Failed to strip '${D}/bin/iscsistart'!"
+}
diff --git a/gkbuilds/popt.gkbuild b/gkbuilds/popt.gkbuild
new file mode 100644
index 0000000..9bfb560
--- /dev/null
+++ b/gkbuilds/popt.gkbuild
@@ -0,0 +1,16 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+src_configure() {
+ local myconf=(
+ --disable-nls
+ )
+
+ gkconf "${myconf[@]}"
+}
+
+src_install() {
+ default
+
+ rm -rf "${D}"/usr/share
+}
diff --git a/gkbuilds/strace.gkbuild b/gkbuilds/strace.gkbuild
new file mode 100644
index 0000000..d32a4b7
--- /dev/null
+++ b/gkbuilds/strace.gkbuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+src_configure() {
+ append-ldflags -static -pthread
+
+ local myconf=(
+ --disable-gcc-Werror
+ --enable-mpers=check
+ --enable-static
+ --without-libunwind
+ --without-libdw
+ )
+
+ CC_FOR_BUILD="$(tc-getBUILD_CC)" \
+ CPP_FOR_BUILD="$(tc-getBUILD_CPP)" \
+ gkconf "${myconf[@]}"
+}
+
+src_install() {
+ mkdir -p "${D}"/usr/bin || die "Failed to create '${D}/usr/bin'!"
+
+ cp -a src/strace "${D}"/usr/bin/ \
+ || die "Failed to copy '${S}/src/strace' to '${D}/usr/bin/'!"
+
+ "${STRIP}" --strip-all "${D}"/usr/bin/strace \
+ || die "Failed to strip '${D}/usr/bin/strace'!"
+}
diff --git a/gkbuilds/thin-provisioning-tools.gkbuild b/gkbuilds/thin-provisioning-tools.gkbuild
new file mode 100644
index 0000000..bd69ff7
--- /dev/null
+++ b/gkbuilds/thin-provisioning-tools.gkbuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+src_configure() {
+ local myconf=(
+ --with-optimisation=''
+ --disable-testing
+ --enable-static
+ )
+
+ gkconf "${myconf[@]}"
+}
+
+src_compile() {
+ MAKEOPTS+=" V="
+ gkmake
+}
+
+src_install() {
+ local MYMAKEOPTS=( "DESTDIR=${D}" )
+ MYMAKEOPTS+=( -j1 )
+ MYMAKEOPTS+=( "DATADIR=${D}/usr/share" )
+ MYMAKEOPTS+=( "install" )
+
+ gkmake "${MYMAKEOPTS[@]}"
+
+ rm -rf \
+ "${D}"/usr/share
+}
diff --git a/gkbuilds/unionfs-fuse.gkbuild b/gkbuilds/unionfs-fuse.gkbuild
new file mode 100644
index 0000000..3ce9909
--- /dev/null
+++ b/gkbuilds/unionfs-fuse.gkbuild
@@ -0,0 +1,15 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+src_configure() {
+ append-ldflags -static
+}
+
+src_install() {
+ mkdir "${D}"/sbin || die "Failed to create '${D}/sbin'!"
+ install -m 0755 -s src/unionfs "${D}"/sbin/unionfs \
+ || die "Failed to install 'unionfs' to '${D}/sbin/'!"
+
+ "${STRIP}" --strip-all "${D}"/sbin/unionfs \
+ || die "Failed to strip '${D}/sbin/unionfs'!"
+}
diff --git a/gkbuilds/userspace-rcu.gkbuild b/gkbuilds/userspace-rcu.gkbuild
new file mode 100644
index 0000000..5b4b7bf
--- /dev/null
+++ b/gkbuilds/userspace-rcu.gkbuild
@@ -0,0 +1,13 @@
+# Copyright 2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+src_configure() {
+ gkconf --enable-static
+}
+
+src_install() {
+ default
+
+ rm -rf "${D}"/usr/share
+}
+
diff --git a/gkbuilds/util-linux.gkbuild b/gkbuilds/util-linux.gkbuild
new file mode 100644
index 0000000..5addbb1
--- /dev/null
+++ b/gkbuilds/util-linux.gkbuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+src_prepare() {
+ default
+
+ # Build static switch_root
+ sed -i \
+ -e '/^switch_root_SOURCES =.*/a switch_root_LDFLAGS = -all-static' \
+ sys-utils/Makemodule.am \
+ || die
+
+ gkautoreconf
+}
+
+src_configure() {
+ export ac_cv_header_security_pam_misc_h=no
+ export ac_cv_header_security_pam_appl_h=no
+
+ local myconf=(
+ --disable-libtool-lock
+ --enable-libmount
+ --disable-libsmartcols
+ --disable-libfdisk
+ --enable-libuuid
+ --without-ncursesw
+ --without-ncurses
+ --disable-widechar
+ --without-python
+ --disable-pylibmount
+ --enable-switch_root
+ --enable-static-programs=blkid
+ )
+
+ gkconf "${myconf[@]}"
+}
+
+src_install() {
+ local MYMAKEOPTS=( "V=1" )
+ MYMAKEOPTS+=( "DESTDIR=${D}" )
+ MYMAKEOPTS+=( "install-pkgconfigDATA" )
+ MYMAKEOPTS+=( "install-nodist_blkidincHEADERS" )
+ MYMAKEOPTS+=( "install-nodist_mountincHEADERS" )
+ MYMAKEOPTS+=( "install-usrlib_execLTLIBRARIES" )
+ MYMAKEOPTS+=( "install-uuidincHEADERS" )
+ gkmake "${MYMAKEOPTS[@]}"
+
+ mkdir "${D}"/sbin || die "Failed to create '${D}/sbin'!"
+
+ install_exe 'blkid.static' "${D}"/sbin/blkid
+ install_exe 'switch_root' "${D}"/sbin/switch_root
+
+ local sbin
+ for sbin in \
+ "${D}/sbin/blkid" \
+ "${D}/sbin/switch_root" \
+ ; do
+ "${STRIP}" --strip-all "${sbin}" \
+ || die "Failed to strip '${sbin}'!"
+ done
+}
diff --git a/gkbuilds/xfsprogs.gkbuild b/gkbuilds/xfsprogs.gkbuild
new file mode 100644
index 0000000..c0b2d33
--- /dev/null
+++ b/gkbuilds/xfsprogs.gkbuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+src_prepare() {
+ default
+
+ # Force static programs
+ find -name Makefile -exec \
+ sed -i -r -e 's/-static(-libtool-libs)?/-all-static/' {} +
+}
+
+src_configure() {
+ export DEBUG=-DNDEBUG
+ export OPTIMIZER=${CFLAGS}
+ unset PLATFORM # if set in user env, this breaks configure
+
+ # Avoid automagic on libdevmapper, #709694
+ export ac_cv_search_dm_task_create=no
+
+ local myconf=(
+ --enable-blkid
+ --disable-libicu
+ --disable-gettext
+ --disable-readline
+ --disable-editline
+ --disable-scrub
+ )
+
+ BUILD_CC="$(tc-getBUILD_CC)" \
+ BUILD_LD="$(tc-getBUILD_LD)" \
+ gkconf "${myconf[@]}"
+}
+
+src_compile() {
+ gkmake V=1 headers growfs repair
+}
+
+src_install() {
+ mkdir "${D}"/sbin || die "Failed to create '${D}/sbin'!"
+
+ cp growfs/xfs_growfs "${D}"/sbin \
+ || die "Failed to copy '${S}/repair/xfs_growfs' to '${D}/sbin/'!"
+
+ cp repair/xfs_repair "${D}"/sbin \
+ || die "Failed to copy '${S}/repair/xfs_repair' to '${D}/sbin/'!"
+
+ local sbin
+ for sbin in \
+ "${D}/sbin/xfs_growfs" \
+ "${D}/sbin/xfs_repair" \
+ ; do
+ "${STRIP}" --strip-all "${sbin}" \
+ || die "Failed to strip '${sbin}'!"
+ done
+}
diff --git a/gkbuilds/xz.gkbuild b/gkbuilds/xz.gkbuild
new file mode 100644
index 0000000..8d2e6f5
--- /dev/null
+++ b/gkbuilds/xz.gkbuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+src_configure() {
+ local myconf=(
+ --enable-threads
+ --enable-static
+ --disable-nls
+ --disable-xz
+ --disable-xzdec
+ --disable-lzmadec
+ --disable-lzmainfo
+ --disable-lzma-links
+ --disable-scripts
+ --disable-doc
+ )
+
+ gkconf "${myconf[@]}"
+}
diff --git a/gkbuilds/zlib.gkbuild b/gkbuilds/zlib.gkbuild
new file mode 100644
index 0000000..1841b2e
--- /dev/null
+++ b/gkbuilds/zlib.gkbuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+src_configure() {
+ local uname=$(/usr/share/gnuconfig/config.sub "${CHOST}" | cut -d- -f3)
+
+ local myargs=(
+ "${S}"/configure
+ --shared
+ --prefix="/usr"
+ ${uname:+--uname=${uname}}
+ )
+
+ gkexec "${myargs[*]}"
+}
+
+src_install() {
+ gkmake V=1 DESTDIR="${D}" install LDCONFIG=:
+
+ rm -rf "${D}"/usr/share
+}
diff --git a/gkbuilds/zstd.gkbuild b/gkbuilds/zstd.gkbuild
new file mode 100644
index 0000000..15f3452
--- /dev/null
+++ b/gkbuilds/zstd.gkbuild
@@ -0,0 +1,10 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+src_compile() {
+ gkmake -C lib V=1 PREFIX=/usr libzstd libzstd.a libzstd.pc
+}
+
+src_install() {
+ gkmake -C lib V=1 PREFIX=/usr DESTDIR="${D}" install
+}
diff --git a/mdev/helpers/nvme b/mdev/helpers/nvme
deleted file mode 100644
index 7df96a3..0000000
--- a/mdev/helpers/nvme
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh
-
-[ -z "${MDEV}" ] && exit 22
-
-DEV="${MDEV%p*}"
-PART="${MDEV#nvme?n?p}"
-PART="${PART#nvme?n?}"
-
-[ -f "/sys/class/block/${DEV}/device/model" ] || exit 6
-cat "/sys/class/block/${DEV}/device/model" >/dev/null 2>&1 || exit 15
-
-MODEL=$(cat /sys/class/block/"${DEV}"/device/model)
-MODEL=$(echo $MODEL) # leave unquoted, it removes spaces
-MODEL="${MODEL// /_}"
-SERIAL=$(cat /sys/class/block/"${DEV}"/device/serial)
-SERIAL="${SERIAL// /}"
-WWID=$(cat /sys/class/block/"${DEV}"/wwid)
-
-mkdir -p /dev/disk/by-id
-ln -sf "../../${MDEV}" "/dev/disk/by-id/nvme-${MODEL}_${SERIAL}${PART:+-part$PART}"
-ln -sf "../../${MDEV}" "/dev/disk/by-id/nvme-${WWID}${PART:+-part$PART}"
diff --git a/mdev/helpers/storage-device b/mdev/helpers/storage-device
deleted file mode 100644
index 5fee64c..0000000
--- a/mdev/helpers/storage-device
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/sh
-# License: Creative Commons Public Domain Dedication (CC0 1.0)
-# <https://creativecommons.org/publicdomain/zero/1.0/>
-
-[ -z "${MDEV}" ] && exit 22
-
-DEV="$(echo ${MDEV} | sed 's/\(.*[a-z]\)\(.*\)/\1/')"
-PART="$(echo ${MDEV} | sed 's/\(.*[a-z]\)\(.*\)/\2/')"
-
-[ -f "/sys/class/block/${DEV}/device/vpd_pg83" ] || exit 6
-
-cat "/sys/class/block/${DEV}/device/vpd_pg83" >/dev/null 2>&1 || exit 15
-
-case $DEV in
-vd*)
- TYPE=virtio
- ;;
-sd*)
- TYPE=ata
- ;;
-*)
- exit 33
- ;;
-esac
-
-NAME=$(echo "$(cat /sys/class/block/${DEV}/device/vpd_pg83)" | cut -c 36-95 | sed -e 's/ \+/_/g' -e "s/\(.*\)_/${TYPE}-\1${PART:+-part$PART}/")
-
-mkdir -p /dev/disk/by-id
-ln -sf "../../${MDEV}" "/dev/disk/by-id/${NAME}"
diff --git a/mdev/mdev.conf b/mdev/mdev.conf
deleted file mode 100644
index db18123..0000000
--- a/mdev/mdev.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-nvme[0-9]n[0-9].* 0:0 660 @/etc/mdev/helpers/nvme
-sd[a-z].* 0:0 660 @/etc/mdev/helpers/storage-device
-vd[a-z].* 0:0 660 @/etc/mdev/helpers/storage-device
-hw_random 0:0 600 =hwrng
diff --git a/netboot/linuxrc.x b/netboot/linuxrc.x
index 4bd711c..e607141 100644
--- a/netboot/linuxrc.x
+++ b/netboot/linuxrc.x
@@ -10,7 +10,7 @@ export PATH="/usr/sbin:/usr/bin:/sbin:/bin"
BasicSetup() {
#// Copyright year, Build date in YYYYMMDD format, and in MMDDYYYY to make busybox 'date' happy
- MYDATE="`/bin/cat /etc/build_date`"
+ MYDATE="$(cat /etc/build_date)"
CPYYEAR="$(echo ${MYDATE} | cut -c 1-4)"
BBDATE="$(echo ${MYDATE} | cut -c 5-8)$(echo ${MYDATE} | cut -c 1-4)"
DISDATE="$(echo ${MYDATE} | cut -c 7-8) $(echo ${MYDATE} | cut -c 5-6) $(echo ${MYDATE} | cut -c 1-4)"
@@ -97,7 +97,7 @@ StartUp() {
#// Hostname
hostname netboot
- if [ -n "`which dropbear 2>/dev/null`" ]
+ if [ -n "$(command -v dropbear 2>/dev/null)" ]
then
# Setup dropbear (sshd)
echo
diff --git a/patches/bcache-tools/1.0.8_p20141204/bcache-tools-1.0.8_p20141204-build.patch b/patches/bcache-tools/1.0.8_p20141204/bcache-tools-1.0.8_p20141204-build.patch
new file mode 100644
index 0000000..6f6d4ca
--- /dev/null
+++ b/patches/bcache-tools/1.0.8_p20141204/bcache-tools-1.0.8_p20141204-build.patch
@@ -0,0 +1,88 @@
+--- a/Makefile
++++ b/Makefile
+@@ -1,32 +1,63 @@
++CC ?= gcc
++PREFIX = /usr
++UDEVLIBDIR = /lib/udev
++DRACUTLIBDIR = /lib/dracut
++INSTALL ?= install
++CFLAGS ?= -O2 -Wall -g
++PKG_CONFIG ?= pkg-config
+
+-PREFIX=/usr
+-UDEVLIBDIR=/lib/udev
+-DRACUTLIBDIR=/lib/dracut
+-INSTALL=install
+-CFLAGS+=-O2 -Wall -g
++BCACHE_TEST_LIBS = $(shell $(PKG_CONFIG) --libs openssl) -lm
++
++MAKE_BCACHE_CFLAGS = $(shell $(PKG_CONFIG) --cflags uuid blkid)
++MAKE_BCACHE_LIBS = $(shell $(PKG_CONFIG) --libs uuid blkid)
++
++PROBE_BCACHE_CFLAGS = $(shell $(PKG_CONFIG) --cflags uuid blkid)
++PROBE_BCACHE_LIBS = $(shell $(PKG_CONFIG) --libs uuid blkid)
++
++BCACHE_SUPER_SHOW_CFLAGS = -std=gnu99 $(shell $(PKG_CONFIG) --cflags uuid)
++BCACHE_SUPER_SHOW_LIBS = $(shell $(PKG_CONFIG) --libs uuid)
+
+ all: make-bcache probe-bcache bcache-super-show bcache-register
+
+ install: make-bcache probe-bcache bcache-super-show
+- $(INSTALL) -m0755 make-bcache bcache-super-show $(DESTDIR)${PREFIX}/sbin/
+- $(INSTALL) -m0755 probe-bcache bcache-register $(DESTDIR)$(UDEVLIBDIR)/
+- $(INSTALL) -m0644 69-bcache.rules $(DESTDIR)$(UDEVLIBDIR)/rules.d/
++ $(INSTALL) -m0755 -d $(DESTDIR)${PREFIX}/sbin
++ $(INSTALL) -D -m0755 make-bcache bcache-super-show $(DESTDIR)${PREFIX}/sbin/
++ $(INSTALL) -m0755 -d $(DESTDIR)$(UDEVLIBDIR)/rules.d
++ $(INSTALL) -m0755 probe-bcache bcache-register $(DESTDIR)$(UDEVLIBDIR)/
++ $(INSTALL) -m0644 69-bcache.rules $(DESTDIR)$(UDEVLIBDIR)/rules.d/
++ $(INSTALL) -m0755 -d $(DESTDIR)${PREFIX}/share/man/man8
+ $(INSTALL) -m0644 -- *.8 $(DESTDIR)${PREFIX}/share/man/man8/
+- $(INSTALL) -D -m0755 initramfs/hook $(DESTDIR)/usr/share/initramfs-tools/hooks/bcache
+- $(INSTALL) -D -m0755 initcpio/install $(DESTDIR)/usr/lib/initcpio/install/bcache
++ $(INSTALL) -D -m0755 initramfs/hook $(DESTDIR)/usr/share/initramfs-tools/hooks/bcache
++ $(INSTALL) -D -m0755 initcpio/install $(DESTDIR)/usr/lib/initcpio/install/bcache
+ $(INSTALL) -D -m0755 dracut/module-setup.sh $(DESTDIR)$(DRACUTLIBDIR)/modules.d/90bcache/module-setup.sh
+ # $(INSTALL) -m0755 bcache-test $(DESTDIR)${PREFIX}/sbin/
+
+ clean:
+- $(RM) -f make-bcache probe-bcache bcache-super-show bcache-test -- *.o
+-
+-bcache-test: LDLIBS += `pkg-config --libs openssl` -lm
+-make-bcache: LDLIBS += `pkg-config --libs uuid blkid`
+-make-bcache: CFLAGS += `pkg-config --cflags uuid blkid`
+-make-bcache: bcache.o
+-probe-bcache: LDLIBS += `pkg-config --libs uuid blkid`
+-probe-bcache: CFLAGS += `pkg-config --cflags uuid blkid`
+-bcache-super-show: LDLIBS += `pkg-config --libs uuid`
+-bcache-super-show: CFLAGS += -std=gnu99
+-bcache-super-show: bcache.o
++ $(RM) -f make-bcache probe-bcache bcache-register bcache-super-show bcache-test -- *.o
++
++make-bcache: bcache.o make-bcache.o
++ $(CC) -o $@ $^ $(LDFLAGS) $(MAKE_BCACHE_LIBS)
++
++bcache.o: bcache.c bcache.h
++ $(CC) -c $(CFLAGS) $< -o $@
++
++make-bcache.o: make-bcache.c
++ $(CC) -c $(CFLAGS) $(MAKE_BCACHE_CFLAGS) $< -o $@
++
++probe-bcache: probe-bcache.o
++ $(CC) -o $@ $^ $(LDFLAGS) $(PROBE_BCACHE_LIBS)
++
++probe-bcache.o: probe-bcache.c
++ $(CC) -c $(CFLAGS) $(PROBE_BCACHE_CFLAGS) $< -o $@
++
++bcache-super-show: bcache.o bcache-super-show.o
++ $(CC) -o $@ $^ $(LDFLAGS) $(BCACHE_SUPER_SHOW_LIBS)
++
++bcache-super-show.o: bcache-super-show.c
++ $(CC) -c $(CFLAGS) $(BCACHE_SUPER_SHOW_CFLAGS) $< -o $@
++
+ bcache-register: bcache-register.o
++ $(CC) -o $@ $^ $(LDFLAGS) $(BCACHE_SUPER_SHOW_LIBS)
++
++bcache-register.o: bcache-register.c
++ $(CC) -c $(CFLAGS) $< -o $@
+
diff --git a/patches/bcache-tools/1.0.8_p20141204/bcache-tools-1.0.8_p20141204-crc64.patch b/patches/bcache-tools/1.0.8_p20141204/bcache-tools-1.0.8_p20141204-crc64.patch
new file mode 100644
index 0000000..cc4e0c5
--- /dev/null
+++ b/patches/bcache-tools/1.0.8_p20141204/bcache-tools-1.0.8_p20141204-crc64.patch
@@ -0,0 +1,53 @@
+--- a/bcache.c
++++ b/bcache.c
+@@ -26,7 +26,7 @@
+ * x^7 + x^4 + x + 1
+ */
+
+-static const uint64_t crc_table[256] = {
++const uint64_t crc_table[256] = {
+ 0x0000000000000000ULL, 0x42F0E1EBA9EA3693ULL, 0x85E1C3D753D46D26ULL,
+ 0xC711223CFA3E5BB5ULL, 0x493366450E42ECDFULL, 0x0BC387AEA7A8DA4CULL,
+ 0xCCD2A5925D9681F9ULL, 0x8E224479F47CB76AULL, 0x9266CC8A1C85D9BEULL,
+@@ -114,16 +114,3 @@ static const uint64_t crc_table[256] = {
+ 0x5DEDC41A34BBEEB2ULL, 0x1F1D25F19D51D821ULL, 0xD80C07CD676F8394ULL,
+ 0x9AFCE626CE85B507ULL
+ };
+-
+-inline uint64_t crc64(const void *_data, size_t len)
+-{
+- uint64_t crc = 0xFFFFFFFFFFFFFFFFULL;
+- const unsigned char *data = _data;
+-
+- while (len--) {
+- int i = ((int) (crc >> 56) ^ *data++) & 0xFF;
+- crc = crc_table[i] ^ (crc << 8);
+- }
+-
+- return crc ^ 0xFFFFFFFFFFFFFFFFULL;
+-}
+--- a/bcache.h
++++ b/bcache.h
+@@ -115,7 +115,20 @@ BITMASK(BDEV_STATE, struct cache_sb, flags, 61, 2);
+ #define BDEV_STATE_DIRTY 2U
+ #define BDEV_STATE_STALE 3U
+
+-uint64_t crc64(const void *_data, size_t len);
++extern const uint64_t crc_table[];
++
++static inline uint64_t crc64(const void *_data, size_t len)
++{
++ uint64_t crc = 0xFFFFFFFFFFFFFFFFULL;
++ const unsigned char *data = _data;
++
++ while (len--) {
++ int i = ((int) (crc >> 56) ^ *data++) & 0xFF;
++ crc = crc_table[i] ^ (crc << 8);
++ }
++
++ return crc ^ 0xFFFFFFFFFFFFFFFFULL;
++}
+
+ #define node(i, j) ((void *) ((i)->d + (j)))
+ #define end(i) node(i, (i)->keys)
+
diff --git a/patches/bcache-tools/1.0.8_p20141204/bcache-tools-1.0.8_p20141204-modprobe.patch b/patches/bcache-tools/1.0.8_p20141204/bcache-tools-1.0.8_p20141204-modprobe.patch
new file mode 100644
index 0000000..aedfe29
--- /dev/null
+++ b/patches/bcache-tools/1.0.8_p20141204/bcache-tools-1.0.8_p20141204-modprobe.patch
@@ -0,0 +1,11 @@
+--- a/69-bcache.rules
++++ b/69-bcache.rules
+@@ -18,7 +18,7 @@ ENV{ID_FS_TYPE}!="bcache", GOTO="bcache_backing_end"
+ ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
+
+ LABEL="bcache_backing_found"
+-RUN{builtin}+="kmod load bcache"
++RUN+="/sbin/modprobe bcache"
+ RUN+="bcache-register $tempnode"
+ LABEL="bcache_backing_end"
+
diff --git a/patches/boost-build/1.76.0/boost-build-1.71.0-disable_python_rpath.patch b/patches/boost-build/1.76.0/boost-build-1.71.0-disable_python_rpath.patch
new file mode 100644
index 0000000..b7b47cc
--- /dev/null
+++ b/patches/boost-build/1.76.0/boost-build-1.71.0-disable_python_rpath.patch
@@ -0,0 +1,11 @@
+--- a/tools/python.jam
++++ b/tools/python.jam
+@@ -1000,7 +1000,7 @@
+ # linux).
+ : $(usage-requirements)
+ <testing.launcher>$(set-PYTHONPATH)
+- <library-path>$(libraries) <dll-path>$(dll-path) <library>python.lib
++ <library-path>$(libraries) <library>python.lib
+ ;
+ }
+
diff --git a/patches/boost-build/1.76.0/boost-build-1.73.0-add-none-feature-options.patch b/patches/boost-build/1.76.0/boost-build-1.73.0-add-none-feature-options.patch
new file mode 100644
index 0000000..1918a24
--- /dev/null
+++ b/patches/boost-build/1.76.0/boost-build-1.73.0-add-none-feature-options.patch
@@ -0,0 +1,22 @@
+--- a/tools/features/debug-feature.jam
++++ b/tools/features/debug-feature.jam
+@@ -18,7 +18,7 @@
+ |# # end::doc[]
+
+ feature.feature debug-symbols
+- : on off
++ : on off none
+ : propagated ;
+
+ #| tag::prof-doc[]
+--- a/tools/features/optimization-feature.jam
++++ b/tools/features/optimization-feature.jam
+@@ -16,7 +16,7 @@
+ |# # end::doc[]
+
+ feature.feature optimization
+- : off speed space
++ : off none speed space
+ : propagated ;
+
+ #| tag::inline-doc[]
diff --git a/patches/boost-build/1.76.0/boost-build-1.74.0-no-implicit-march-flags.patch b/patches/boost-build/1.76.0/boost-build-1.74.0-no-implicit-march-flags.patch
new file mode 100644
index 0000000..894af8f
--- /dev/null
+++ b/patches/boost-build/1.76.0/boost-build-1.74.0-no-implicit-march-flags.patch
@@ -0,0 +1,279 @@
+--- a/tools/gcc.jam
++++ b/tools/gcc.jam
+@@ -1224,135 +1224,9 @@
+ # x86 and compatible
+ # The 'native' option appeared in gcc 4.2 so we cannot safely use it as default.
+ # Use i686 instead for 32-bit.
+-toolset.flags gcc OPTIONS <architecture>x86/<address-model>32/<instruction-set> : -march=i686 ;
+-cpu-flags gcc OPTIONS : x86 : native : -march=native ;
+-cpu-flags gcc OPTIONS : x86 : i486 : -march=i486 ;
+-cpu-flags gcc OPTIONS : x86 : i586 : -march=i586 ;
+-cpu-flags gcc OPTIONS : x86 : i686 : -march=i686 ;
+-cpu-flags gcc OPTIONS : x86 : pentium : -march=pentium ;
+-cpu-flags gcc OPTIONS : x86 : pentium-mmx : -march=pentium-mmx ;
+-cpu-flags gcc OPTIONS : x86 : pentiumpro : -march=pentiumpro ;
+-cpu-flags gcc OPTIONS : x86 : pentium2 : -march=pentium2 ;
+-cpu-flags gcc OPTIONS : x86 : pentium3 : -march=pentium3 ;
+-cpu-flags gcc OPTIONS : x86 : pentium3m : -march=pentium3m ;
+-cpu-flags gcc OPTIONS : x86 : pentium-m : -march=pentium-m ;
+-cpu-flags gcc OPTIONS : x86 : pentium4 : -march=pentium4 ;
+-cpu-flags gcc OPTIONS : x86 : pentium4m : -march=pentium4m ;
+-cpu-flags gcc OPTIONS : x86 : prescott : -march=prescott ;
+-cpu-flags gcc OPTIONS : x86 : nocona : -march=nocona ;
+-cpu-flags gcc OPTIONS : x86 : core2 : -march=core2 ;
+-cpu-flags gcc OPTIONS : x86 : conroe : -march=core2 ;
+-cpu-flags gcc OPTIONS : x86 : conroe-xe : -march=core2 ;
+-cpu-flags gcc OPTIONS : x86 : conroe-l : -march=core2 ;
+-cpu-flags gcc OPTIONS : x86 : allendale : -march=core2 ;
+-cpu-flags gcc OPTIONS : x86 : wolfdale : -march=core2 -msse4.1 ;
+-cpu-flags gcc OPTIONS : x86 : merom : -march=core2 ;
+-cpu-flags gcc OPTIONS : x86 : merom-xe : -march=core2 ;
+-cpu-flags gcc OPTIONS : x86 : kentsfield : -march=core2 ;
+-cpu-flags gcc OPTIONS : x86 : kentsfield-xe : -march=core2 ;
+-cpu-flags gcc OPTIONS : x86 : yorksfield : -march=core2 ;
+-cpu-flags gcc OPTIONS : x86 : penryn : -march=core2 ;
+-cpu-flags gcc OPTIONS : x86 : corei7 : -march=corei7 ;
+-cpu-flags gcc OPTIONS : x86 : nehalem : -march=corei7 ;
+-cpu-flags gcc OPTIONS : x86 : corei7-avx : -march=corei7-avx ;
+-cpu-flags gcc OPTIONS : x86 : sandy-bridge : -march=corei7-avx ;
+-cpu-flags gcc OPTIONS : x86 : core-avx-i : -march=core-avx-i ;
+-cpu-flags gcc OPTIONS : x86 : ivy-bridge : -march=core-avx-i ;
+-cpu-flags gcc OPTIONS : x86 : haswell : -march=core-avx-i -mavx2 -mfma -mbmi -mbmi2 -mlzcnt ;
+-cpu-flags gcc OPTIONS : x86 : broadwell : -march=broadwell ;
+-cpu-flags gcc OPTIONS : x86 : skylake : -march=skylake ;
+-cpu-flags gcc OPTIONS : x86 : skylake-avx512 : -march=skylake-avx512 ;
+-cpu-flags gcc OPTIONS : x86 : cannonlake : -march=skylake-avx512 -mavx512vbmi -mavx512ifma -msha ;
+-cpu-flags gcc OPTIONS : x86 : icelake-client : -march=icelake-client ;
+-cpu-flags gcc OPTIONS : x86 : icelake-server : -march=icelake-server ;
+-cpu-flags gcc OPTIONS : x86 : cascadelake : -march=skylake-avx512 -mavx512vnni ;
+-cpu-flags gcc OPTIONS : x86 : cooperlake : -march=cooperlake ;
+-cpu-flags gcc OPTIONS : x86 : tigerlake : -march=tigerlake ;
+-cpu-flags gcc OPTIONS : x86 : k6 : -march=k6 ;
+-cpu-flags gcc OPTIONS : x86 : k6-2 : -march=k6-2 ;
+-cpu-flags gcc OPTIONS : x86 : k6-3 : -march=k6-3 ;
+-cpu-flags gcc OPTIONS : x86 : athlon : -march=athlon ;
+-cpu-flags gcc OPTIONS : x86 : athlon-tbird : -march=athlon-tbird ;
+-cpu-flags gcc OPTIONS : x86 : athlon-4 : -march=athlon-4 ;
+-cpu-flags gcc OPTIONS : x86 : athlon-xp : -march=athlon-xp ;
+-cpu-flags gcc OPTIONS : x86 : athlon-mp : -march=athlon-mp ;
+ ##
+-cpu-flags gcc OPTIONS : x86 : k8 : -march=k8 ;
+-cpu-flags gcc OPTIONS : x86 : opteron : -march=opteron ;
+-cpu-flags gcc OPTIONS : x86 : athlon64 : -march=athlon64 ;
+-cpu-flags gcc OPTIONS : x86 : athlon-fx : -march=athlon-fx ;
+-cpu-flags gcc OPTIONS : x86 : k8-sse3 : -march=k8-sse3 ;
+-cpu-flags gcc OPTIONS : x86 : opteron-sse3 : -march=opteron-sse3 ;
+-cpu-flags gcc OPTIONS : x86 : athlon64-sse3 : -march=athlon64-sse3 ;
+-cpu-flags gcc OPTIONS : x86 : amdfam10 : -march=amdfam10 ;
+-cpu-flags gcc OPTIONS : x86 : barcelona : -march=barcelona ;
+-cpu-flags gcc OPTIONS : x86 : bdver1 : -march=bdver1 ;
+-cpu-flags gcc OPTIONS : x86 : bdver2 : -march=bdver2 ;
+-cpu-flags gcc OPTIONS : x86 : bdver3 : -march=bdver3 ;
+-cpu-flags gcc OPTIONS : x86 : bdver4 : -march=bdver4 ;
+-cpu-flags gcc OPTIONS : x86 : btver1 : -march=btver1 ;
+-cpu-flags gcc OPTIONS : x86 : btver2 : -march=btver2 ;
+-cpu-flags gcc OPTIONS : x86 : znver1 : -march=znver1 ;
+-cpu-flags gcc OPTIONS : x86 : znver2 : -march=znver2 ;
+-cpu-flags gcc OPTIONS : x86 : winchip-c6 : -march=winchip-c6 ;
+-cpu-flags gcc OPTIONS : x86 : winchip2 : -march=winchip2 ;
+-cpu-flags gcc OPTIONS : x86 : c3 : -march=c3 ;
+-cpu-flags gcc OPTIONS : x86 : c3-2 : -march=c3-2 ;
+-cpu-flags gcc OPTIONS : x86 : c7 : -march=c7 ;
+ ##
+-cpu-flags gcc OPTIONS : x86 : atom : -march=atom ;
+ # Sparc
+-cpu-flags gcc OPTIONS : sparc : v7 : -mcpu=v7 : default ;
+-cpu-flags gcc OPTIONS : sparc : cypress : -mcpu=cypress ;
+-cpu-flags gcc OPTIONS : sparc : v8 : -mcpu=v8 ;
+-cpu-flags gcc OPTIONS : sparc : supersparc : -mcpu=supersparc ;
+-cpu-flags gcc OPTIONS : sparc : sparclite : -mcpu=sparclite ;
+-cpu-flags gcc OPTIONS : sparc : hypersparc : -mcpu=hypersparc ;
+-cpu-flags gcc OPTIONS : sparc : sparclite86x : -mcpu=sparclite86x ;
+-cpu-flags gcc OPTIONS : sparc : f930 : -mcpu=f930 ;
+-cpu-flags gcc OPTIONS : sparc : f934 : -mcpu=f934 ;
+-cpu-flags gcc OPTIONS : sparc : sparclet : -mcpu=sparclet ;
+-cpu-flags gcc OPTIONS : sparc : tsc701 : -mcpu=tsc701 ;
+-cpu-flags gcc OPTIONS : sparc : v9 : -mcpu=v9 ;
+-cpu-flags gcc OPTIONS : sparc : ultrasparc : -mcpu=ultrasparc ;
+-cpu-flags gcc OPTIONS : sparc : ultrasparc3 : -mcpu=ultrasparc3 ;
+ # RS/6000 & PowerPC
+-cpu-flags gcc OPTIONS : power : 403 : -mcpu=403 ;
+-cpu-flags gcc OPTIONS : power : 505 : -mcpu=505 ;
+-cpu-flags gcc OPTIONS : power : 601 : -mcpu=601 ;
+-cpu-flags gcc OPTIONS : power : 602 : -mcpu=602 ;
+-cpu-flags gcc OPTIONS : power : 603 : -mcpu=603 ;
+-cpu-flags gcc OPTIONS : power : 603e : -mcpu=603e ;
+-cpu-flags gcc OPTIONS : power : 604 : -mcpu=604 ;
+-cpu-flags gcc OPTIONS : power : 604e : -mcpu=604e ;
+-cpu-flags gcc OPTIONS : power : 620 : -mcpu=620 ;
+-cpu-flags gcc OPTIONS : power : 630 : -mcpu=630 ;
+-cpu-flags gcc OPTIONS : power : 740 : -mcpu=740 ;
+-cpu-flags gcc OPTIONS : power : 7400 : -mcpu=7400 ;
+-cpu-flags gcc OPTIONS : power : 7450 : -mcpu=7450 ;
+-cpu-flags gcc OPTIONS : power : 750 : -mcpu=750 ;
+-cpu-flags gcc OPTIONS : power : 801 : -mcpu=801 ;
+-cpu-flags gcc OPTIONS : power : 821 : -mcpu=821 ;
+-cpu-flags gcc OPTIONS : power : 823 : -mcpu=823 ;
+-cpu-flags gcc OPTIONS : power : 860 : -mcpu=860 ;
+-cpu-flags gcc OPTIONS : power : 970 : -mcpu=970 ;
+-cpu-flags gcc OPTIONS : power : 8540 : -mcpu=8540 ;
+-cpu-flags gcc OPTIONS : power : power : -mcpu=power ;
+-cpu-flags gcc OPTIONS : power : power2 : -mcpu=power2 ;
+-cpu-flags gcc OPTIONS : power : power3 : -mcpu=power3 ;
+-cpu-flags gcc OPTIONS : power : power4 : -mcpu=power4 ;
+-cpu-flags gcc OPTIONS : power : power5 : -mcpu=power5 ;
+-cpu-flags gcc OPTIONS : power : powerpc : -mcpu=powerpc ;
+-cpu-flags gcc OPTIONS : power : powerpc64 : -mcpu=powerpc64 ;
+-cpu-flags gcc OPTIONS : power : rios : -mcpu=rios ;
+-cpu-flags gcc OPTIONS : power : rios1 : -mcpu=rios1 ;
+-cpu-flags gcc OPTIONS : power : rios2 : -mcpu=rios2 ;
+-cpu-flags gcc OPTIONS : power : rsc : -mcpu=rsc ;
+-cpu-flags gcc OPTIONS : power : rs64a : -mcpu=rs64 ;
+-cpu-flags gcc OPTIONS : s390x : z196 : -march=z196 ;
+-cpu-flags gcc OPTIONS : s390x : zEC12 : -march=zEC12 ;
+-cpu-flags gcc OPTIONS : s390x : z13 : -march=z13 ;
+-cpu-flags gcc OPTIONS : s390x : z14 : -march=z14 ;
+-cpu-flags gcc OPTIONS : s390x : z15 : -march=z15 ;
+ # AIX variant of RS/6000 & PowerPC
+ toolset.flags gcc AROPTIONS <address-model>64/<target-os>aix : "-X64" ;
+--- a/tools/gcc.py
++++ b/tools/gcc.py
+@@ -745,138 +745,14 @@
+ # x86 and compatible
+ flags('gcc', 'OPTIONS', ['<architecture>x86/<address-model>32'], ['-m32'])
+ flags('gcc', 'OPTIONS', ['<architecture>x86/<address-model>64'], ['-m64'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'native', ['-march=native'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'i486', ['-march=i486'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'i586', ['-march=i586'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'i686', ['-march=i686'], default=True)
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'pentium', ['-march=pentium'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'pentium-mmx', ['-march=pentium-mmx'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'pentiumpro', ['-march=pentiumpro'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'pentium2', ['-march=pentium2'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'pentium3', ['-march=pentium3'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'pentium3m', ['-march=pentium3m'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'pentium-m', ['-march=pentium-m'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'pentium4', ['-march=pentium4'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'pentium4m', ['-march=pentium4m'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'prescott', ['-march=prescott'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'nocona', ['-march=nocona'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'core2', ['-march=core2'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'conroe', ['-march=core2'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'conroe-xe', ['-march=core2'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'conroe-l', ['-march=core2'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'allendale', ['-march=core2'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'wolfdale', ['-march=core2', '-msse4.1'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'merom', ['-march=core2'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'merom-xe', ['-march=core2'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'kentsfield', ['-march=core2'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'kentsfield-xe', ['-march=core2'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'yorksfield', ['-march=core2'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'penryn', ['-march=core2'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'corei7', ['-march=corei7'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'nehalem', ['-march=corei7'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'corei7-avx', ['-march=corei7-avx'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'sandy-bridge', ['-march=corei7-avx'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'core-avx-i', ['-march=core-avx-i'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'ivy-bridge', ['-march=core-avx-i'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'haswell', ['-march=core-avx-i', '-mavx2', '-mfma', '-mbmi', '-mbmi2', '-mlzcnt'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'broadwell', ['-march=broadwell'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'skylake', ['-march=skylake'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'skylake-avx512', ['-march=skylake-avx512'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'cannonlake', ['-march=skylake-avx512', '-mavx512vbmi', '-mavx512ifma', '-msha'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'icelake-client', ['-march=icelake-client'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'icelake-server', ['-march=icelake-server'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'cascadelake', ['-march=skylake-avx512', '-mavx512vnni'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'cooperlake', ['-march=cooperlake'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'tigerlake', ['-march=tigerlake'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'k6', ['-march=k6'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'k6-2', ['-march=k6-2'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'k6-3', ['-march=k6-3'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'athlon', ['-march=athlon'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'athlon-tbird', ['-march=athlon-tbird'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'athlon-4', ['-march=athlon-4'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'athlon-xp', ['-march=athlon-xp'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'athlon-mp', ['-march=athlon-mp'])
+ ##
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'k8', ['-march=k8'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'opteron', ['-march=opteron'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'athlon64', ['-march=athlon64'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'athlon-fx', ['-march=athlon-fx'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'k8-sse3', ['-march=k8-sse3'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'opteron-sse3', ['-march=opteron-sse3'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'athlon64-sse3', ['-march=athlon64-sse3'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'amdfam10', ['-march=amdfam10'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'barcelona', ['-march=barcelona'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'bdver1', ['-march=bdver1'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'bdver2', ['-march=bdver2'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'bdver3', ['-march=bdver3'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'btver1', ['-march=btver1'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'btver2', ['-march=btver2'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'znver1', ['-march=znver1'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'znver2', ['-march=znver2'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'winchip-c6', ['-march=winchip-c6'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'winchip2', ['-march=winchip2'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'c3', ['-march=c3'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'c3-2', ['-march=c3-2'])
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'c7', ['-march=c7'])
+ ##
+-cpu_flags('gcc', 'OPTIONS', 'x86', 'atom', ['-march=atom'])
+ # Sparc
+ flags('gcc', 'OPTIONS', ['<architecture>sparc/<address-model>32'], ['-m32'])
+ flags('gcc', 'OPTIONS', ['<architecture>sparc/<address-model>64'], ['-m64'])
+-cpu_flags('gcc', 'OPTIONS', 'sparc', 'v7', ['-mcpu=v7'], default=True)
+-cpu_flags('gcc', 'OPTIONS', 'sparc', 'cypress', ['-mcpu=cypress'])
+-cpu_flags('gcc', 'OPTIONS', 'sparc', 'v8', ['-mcpu=v8'])
+-cpu_flags('gcc', 'OPTIONS', 'sparc', 'supersparc', ['-mcpu=supersparc'])
+-cpu_flags('gcc', 'OPTIONS', 'sparc', 'sparclite', ['-mcpu=sparclite'])
+-cpu_flags('gcc', 'OPTIONS', 'sparc', 'hypersparc', ['-mcpu=hypersparc'])
+-cpu_flags('gcc', 'OPTIONS', 'sparc', 'sparclite86x', ['-mcpu=sparclite86x'])
+-cpu_flags('gcc', 'OPTIONS', 'sparc', 'f930', ['-mcpu=f930'])
+-cpu_flags('gcc', 'OPTIONS', 'sparc', 'f934', ['-mcpu=f934'])
+-cpu_flags('gcc', 'OPTIONS', 'sparc', 'sparclet', ['-mcpu=sparclet'])
+-cpu_flags('gcc', 'OPTIONS', 'sparc', 'tsc701', ['-mcpu=tsc701'])
+-cpu_flags('gcc', 'OPTIONS', 'sparc', 'v9', ['-mcpu=v9'])
+-cpu_flags('gcc', 'OPTIONS', 'sparc', 'ultrasparc', ['-mcpu=ultrasparc'])
+-cpu_flags('gcc', 'OPTIONS', 'sparc', 'ultrasparc3', ['-mcpu=ultrasparc3'])
+ # RS/6000 & PowerPC
+ flags('gcc', 'OPTIONS', ['<architecture>power/<address-model>32'], ['-m32'])
+ flags('gcc', 'OPTIONS', ['<architecture>power/<address-model>64'], ['-m64'])
+-cpu_flags('gcc', 'OPTIONS', 'power', '403', ['-mcpu=403'])
+-cpu_flags('gcc', 'OPTIONS', 'power', '505', ['-mcpu=505'])
+-cpu_flags('gcc', 'OPTIONS', 'power', '601', ['-mcpu=601'])
+-cpu_flags('gcc', 'OPTIONS', 'power', '602', ['-mcpu=602'])
+-cpu_flags('gcc', 'OPTIONS', 'power', '603', ['-mcpu=603'])
+-cpu_flags('gcc', 'OPTIONS', 'power', '603e', ['-mcpu=603e'])
+-cpu_flags('gcc', 'OPTIONS', 'power', '604', ['-mcpu=604'])
+-cpu_flags('gcc', 'OPTIONS', 'power', '604e', ['-mcpu=604e'])
+-cpu_flags('gcc', 'OPTIONS', 'power', '620', ['-mcpu=620'])
+-cpu_flags('gcc', 'OPTIONS', 'power', '630', ['-mcpu=630'])
+-cpu_flags('gcc', 'OPTIONS', 'power', '740', ['-mcpu=740'])
+-cpu_flags('gcc', 'OPTIONS', 'power', '7400', ['-mcpu=7400'])
+-cpu_flags('gcc', 'OPTIONS', 'power', '7450', ['-mcpu=7450'])
+-cpu_flags('gcc', 'OPTIONS', 'power', '750', ['-mcpu=750'])
+-cpu_flags('gcc', 'OPTIONS', 'power', '801', ['-mcpu=801'])
+-cpu_flags('gcc', 'OPTIONS', 'power', '821', ['-mcpu=821'])
+-cpu_flags('gcc', 'OPTIONS', 'power', '823', ['-mcpu=823'])
+-cpu_flags('gcc', 'OPTIONS', 'power', '860', ['-mcpu=860'])
+-cpu_flags('gcc', 'OPTIONS', 'power', '970', ['-mcpu=970'])
+-cpu_flags('gcc', 'OPTIONS', 'power', '8540', ['-mcpu=8540'])
+-cpu_flags('gcc', 'OPTIONS', 'power', 'power', ['-mcpu=power'])
+-cpu_flags('gcc', 'OPTIONS', 'power', 'power2', ['-mcpu=power2'])
+-cpu_flags('gcc', 'OPTIONS', 'power', 'power3', ['-mcpu=power3'])
+-cpu_flags('gcc', 'OPTIONS', 'power', 'power4', ['-mcpu=power4'])
+-cpu_flags('gcc', 'OPTIONS', 'power', 'power5', ['-mcpu=power5'])
+-cpu_flags('gcc', 'OPTIONS', 'power', 'powerpc', ['-mcpu=powerpc'])
+-cpu_flags('gcc', 'OPTIONS', 'power', 'powerpc64', ['-mcpu=powerpc64'])
+-cpu_flags('gcc', 'OPTIONS', 'power', 'rios', ['-mcpu=rios'])
+-cpu_flags('gcc', 'OPTIONS', 'power', 'rios1', ['-mcpu=rios1'])
+-cpu_flags('gcc', 'OPTIONS', 'power', 'rios2', ['-mcpu=rios2'])
+-cpu_flags('gcc', 'OPTIONS', 'power', 'rsc', ['-mcpu=rsc'])
+-cpu_flags('gcc', 'OPTIONS', 'power', 'rs64a', ['-mcpu=rs64'])
+-cpu_flags('gcc', 'OPTIONS', 's390x', 'z196', ['-march=z196'])
+-cpu_flags('gcc', 'OPTIONS', 's390x', 'zEC12', ['-march=zEC12'])
+-cpu_flags('gcc', 'OPTIONS', 's390x', 'z13', ['-march=z13'])
+-cpu_flags('gcc', 'OPTIONS', 's390x', 'z14', ['-march=z14'])
+-cpu_flags('gcc', 'OPTIONS', 's390x', 'z15', ['-march=z15'])
+ # AIX variant of RS/6000 & PowerPC
+ flags('gcc', 'OPTIONS', ['<architecture>power/<address-model>32/<target-os>aix'], ['-maix32'])
+ flags('gcc', 'OPTIONS', ['<architecture>power/<address-model>64/<target-os>aix'], ['-maix64'])
diff --git a/patches/boost-build/1.76.0/boost-build-1.76.0-python-numpy.patch b/patches/boost-build/1.76.0/boost-build-1.76.0-python-numpy.patch
new file mode 100644
index 0000000..ed04d54
--- /dev/null
+++ b/patches/boost-build/1.76.0/boost-build-1.76.0-python-numpy.patch
@@ -0,0 +1,24 @@
+From 61adb508853be1fa2c01a0c3a0c55fbd16cb9a52 Mon Sep 17 00:00:00 2001
+From: Peter Dimov <pdimov@gmail.com>
+Date: Mon, 24 May 2021 22:11:23 +0300
+Subject: [PATCH] Declare the /python//numpy target to hold the include path
+ (fixes #725)
+
+---
+ tools/python.jam | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/tools/python.jam b/tools/python.jam
+index 00706932d2..0dfc750a22 100644
+--- a/tools/python.jam
++++ b/tools/python.jam
+@@ -1052,6 +1052,9 @@ local rule configure ( version ? : cmd-or-prefix ? : includes * : libraries ? :
+ ;
+ }
+
++ # Declare the numpy target, which contains the NumPy include directory
++
++ alias numpy : : $(target-requirements) : : <include>$(.numpy-include) ;
+ }
+
+ # Conditional rule specification that will prevent building of a target
diff --git a/patches/boost-build/1.76.0/boost-build-1.76.0-respect-user-flags.patch b/patches/boost-build/1.76.0/boost-build-1.76.0-respect-user-flags.patch
new file mode 100644
index 0000000..2289e70
--- /dev/null
+++ b/patches/boost-build/1.76.0/boost-build-1.76.0-respect-user-flags.patch
@@ -0,0 +1,11 @@
+--- a/engine/build.sh
++++ b/engine/build.sh
+@@ -496,7 +496,7 @@
+ if test_true ${B2_DEBUG_OPT} ; then B2_CXXFLAGS="${B2_CXXFLAGS_DEBUG}"
+ else B2_CXXFLAGS="${B2_CXXFLAGS_RELEASE} -DNDEBUG"
+ fi
+- ( B2_VERBOSE_OPT=${TRUE} echo_run ${B2_CXX} ${B2_CXXFLAGS} ${B2_SOURCES} -o b2 )
++ ( B2_VERBOSE_OPT=${TRUE} echo_run ${B2_CXX} ${CPPFLAGS} ${B2_CXXFLAGS} ${LDFLAGS} ${B2_SOURCES} -o b2 )
+ ( B2_VERBOSE_OPT=${TRUE} echo_run cp b2 bjam )
+ }
+
diff --git a/patches/boost/1.76.0/boost-1.71.0-context-x32.patch b/patches/boost/1.76.0/boost-1.71.0-context-x32.patch
new file mode 100644
index 0000000..9ee3d54
--- /dev/null
+++ b/patches/boost/1.76.0/boost-1.71.0-context-x32.patch
@@ -0,0 +1,38 @@
+--- a/libs/context/src/asm/jump_i386_sysv_elf_gas.S
++++ b/libs/context/src/asm/jump_i386_sysv_elf_gas.S
+@@ -24,6 +24,10 @@
+ * *
+ ****************************************************************************************/
+
++#ifdef __x86_64__
++#include "jump_x86_64_sysv_elf_gas.S"
++#else
++
+ .file "jump_i386_sysv_elf_gas.S"
+ .text
+ .globl jump_fcontext
+@@ -81,3 +85,5 @@
+
+ /* Mark that we don't need executable stack. */
+ .section .note.GNU-stack,"",%progbits
++
++#endif
+--- a/libs/context/src/asm/make_i386_sysv_elf_gas.S
++++ b/libs/context/src/asm/make_i386_sysv_elf_gas.S
+@@ -24,6 +24,10 @@
+ * *
+ ****************************************************************************************/
+
++#ifdef __x86_64__
++#include "make_x86_64_sysv_elf_gas.S"
++#else
++
+ .file "make_i386_sysv_elf_gas.S"
+ .text
+ .globl make_fcontext
+@@ -105,3 +109,5 @@
+
+ /* Mark that we don't need executable stack. */
+ .section .note.GNU-stack,"",%progbits
++
++#endif
diff --git a/patches/boost/1.76.0/boost-1.71.0-disable_icu_rpath.patch b/patches/boost/1.76.0/boost-1.71.0-disable_icu_rpath.patch
new file mode 100644
index 0000000..32faf8d
--- /dev/null
+++ b/patches/boost/1.76.0/boost-1.71.0-disable_icu_rpath.patch
@@ -0,0 +1,29 @@
+--- a/libs/locale/build/Jamfile.v2
++++ b/libs/locale/build/Jamfile.v2
+@@ -65,8 +65,8 @@
+
+ if $(ICU_LINK)
+ {
+- ICU_OPTS = <include>$(ICU_PATH)/include <linkflags>$(ICU_LINK) <dll-path>$(ICU_PATH)/bin <runtime-link>shared ;
+- ICU64_OPTS = <include>$(ICU_PATH)/include <linkflags>$(ICU_LINK) <dll-path>$(ICU_PATH)/bin64 <runtime-link>shared ;
++ ICU_OPTS = <include>$(ICU_PATH)/include <linkflags>$(ICU_LINK) <runtime-link>shared ;
++ ICU64_OPTS = <include>$(ICU_PATH)/include <linkflags>$(ICU_LINK) <runtime-link>shared ;
+ }
+ else
+ {
+@@ -124,7 +124,6 @@
+ <library>icuuc/<link>shared/<runtime-link>shared
+ <library>icudt/<link>shared/<runtime-link>shared
+ <library>icuin/<link>shared/<runtime-link>shared
+- <dll-path>$(ICU_PATH)/bin
+ <runtime-link>shared ;
+
+
+@@ -183,7 +182,6 @@
+ <library>icuuc_64/<link>shared/<runtime-link>shared
+ <library>icudt_64/<link>shared/<runtime-link>shared
+ <library>icuin_64/<link>shared/<runtime-link>shared
+- <dll-path>$(ICU_PATH)/bin64
+ <runtime-link>shared ;
+
+
diff --git a/patches/boost/1.76.0/boost-1.73-boost-mpi-python-PEP-328.patch b/patches/boost/1.76.0/boost-1.73-boost-mpi-python-PEP-328.patch
new file mode 100644
index 0000000..444db2b
--- /dev/null
+++ b/patches/boost/1.76.0/boost-1.73-boost-mpi-python-PEP-328.patch
@@ -0,0 +1,17 @@
+--- a/libs/mpi/build/__init__.py
++++ b/libs/mpi/build/__init__.py
+@@ -1,10 +1,12 @@
++from __future__ import absolute_import
++
+ import sys
+ if sys.platform == 'linux2':
+ import DLFCN as dl
+ flags = sys.getdlopenflags()
+ sys.setdlopenflags(dl.RTLD_NOW|dl.RTLD_GLOBAL)
+- import mpi
++ from . import mpi
+ sys.setdlopenflags(flags)
+ else:
+- import mpi
++ from . import mpi
+
diff --git a/patches/boost/1.76.0/boost-1.74-CVE-2012-2677.patch b/patches/boost/1.76.0/boost-1.74-CVE-2012-2677.patch
new file mode 100644
index 0000000..ff947f7
--- /dev/null
+++ b/patches/boost/1.76.0/boost-1.74-CVE-2012-2677.patch
@@ -0,0 +1,125 @@
+https://src.fedoraproject.org/rpms/boost/raw/master/f/boost-1.58.0-pool.patch
+https://bugzilla.redhat.com/show_bug.cgi?id=828856
+https://bugs.gentoo.org/620468
+https://svn.boost.org/trac10/ticket/6701
+
+Index: boost/pool/pool.hpp
+===================================================================
+--- a/boost/pool/pool.hpp (revision 78317)
++++ b/boost/pool/pool.hpp (revision 78326)
+@@ -27,4 +27,6 @@
+ #include <boost/pool/poolfwd.hpp>
+
++// std::numeric_limits
++#include <boost/limits.hpp>
+ // boost::integer::static_lcm
+ #include <boost/integer/common_factor_ct.hpp>
+@@ -358,4 +360,11 @@
+ }
+
++ size_type max_chunks() const
++ { //! Calculated maximum number of memory chunks that can be allocated in a single call by this Pool.
++ size_type partition_size = alloc_size();
++ size_type POD_size = integer::static_lcm<sizeof(size_type), sizeof(void *)>::value + sizeof(size_type);
++ return (std::numeric_limits<size_type>::max() - POD_size) / alloc_size();
++ }
++
+ static void * & nextof(void * const ptr)
+ { //! \returns Pointer dereferenced.
+@@ -377,5 +388,7 @@
+ //! the first time that object needs to allocate system memory.
+ //! The default is 32. This parameter may not be 0.
+- //! \param nmax_size is the maximum number of chunks to allocate in one block.
++ //! \param nmax_size is the maximum number of chunks to allocate in one block.
++ set_next_size(nnext_size);
++ set_max_size(nmax_size);
+ }
+
+@@ -400,7 +413,7 @@
+ }
+ void set_next_size(const size_type nnext_size)
+- { //! Set number of chunks to request from the system the next time that object needs to allocate system memory. This value should never be set to 0.
+- //! \returns nnext_size.
+- next_size = start_size = nnext_size;
++ { //! Set number of chunks to request from the system the next time that object needs to allocate system memory. This value should never be set to 0.
++ BOOST_USING_STD_MIN();
++ next_size = start_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(nnext_size, max_chunks());
+ }
+ size_type get_max_size() const
+@@ -410,5 +423,6 @@
+ void set_max_size(const size_type nmax_size)
+ { //! Set max_size.
+- max_size = nmax_size;
++ BOOST_USING_STD_MIN();
++ max_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(nmax_size, max_chunks());
+ }
+ size_type get_requested_size() const
+@@ -713,7 +727,7 @@
+ BOOST_USING_STD_MIN();
+ if(!max_size)
+- next_size <<= 1;
++ set_next_size(next_size << 1);
+ else if( next_size*partition_size/requested_size < max_size)
+- next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size*requested_size/ partition_size);
++ set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size));
+
+ // initialize it,
+@@ -753,7 +767,7 @@
+ BOOST_USING_STD_MIN();
+ if(!max_size)
+- next_size <<= 1;
++ set_next_size(next_size << 1);
+ else if( next_size*partition_size/requested_size < max_size)
+- next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size*requested_size/ partition_size);
++ set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size));
+
+ // initialize it,
+@@ -797,4 +811,6 @@
+ //! \returns Address of chunk n if allocated ok.
+ //! \returns 0 if not enough memory for n chunks.
++ if (n > max_chunks())
++ return 0;
+
+ const size_type partition_size = alloc_size();
+@@ -845,7 +861,7 @@
+ BOOST_USING_STD_MIN();
+ if(!max_size)
+- next_size <<= 1;
++ set_next_size(next_size << 1);
+ else if( next_size*partition_size/requested_size < max_size)
+- next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size*requested_size/ partition_size);
++ set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size));
+
+ // insert it into the list,
+Index: libs/pool/test/test_bug_6701.cpp
+===================================================================
+--- a/libs/pool/test/test_bug_6701.cpp (revision 78326)
++++ b/libs/pool/test/test_bug_6701.cpp (revision 78326)
+@@ -0,0 +1,27 @@
++/* Copyright (C) 2012 Étienne Dupuis
++*
++* Use, modification and distribution is subject to the
++* Boost Software License, Version 1.0. (See accompanying
++* file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
++*/
++
++// Test of bug #6701 (https://svn.boost.org/trac/boost/ticket/6701)
++
++#include <boost/pool/object_pool.hpp>
++#include <boost/limits.hpp>
++
++int main()
++{
++ boost::pool<> p(1024, std::numeric_limits<size_t>::max() / 768);
++
++ void *x = p.malloc();
++ BOOST_ASSERT(!x);
++
++ BOOST_ASSERT(std::numeric_limits<size_t>::max() / 1024 >= p.get_next_size());
++ BOOST_ASSERT(std::numeric_limits<size_t>::max() / 1024 >= p.get_max_size());
++
++ void *y = p.ordered_malloc(std::numeric_limits<size_t>::max() / 768);
++ BOOST_ASSERT(!y);
++
++ return 0;
++}
diff --git a/patches/boost/1.76.0/boost-1.76-boost-numpy.patch b/patches/boost/1.76.0/boost-1.76-boost-numpy.patch
new file mode 100644
index 0000000..d9af132
--- /dev/null
+++ b/patches/boost/1.76.0/boost-1.76-boost-numpy.patch
@@ -0,0 +1,23 @@
+From 0796305c863804a2b31610507c531da5c0408422 Mon Sep 17 00:00:00 2001
+From: Peter Dimov <pdimov@gmail.com>
+Date: Mon, 24 May 2021 22:14:55 +0300
+Subject: [PATCH] Use the /python//numpy target instead of [ numpy.include ]
+ (fixes #361)
+
+---
+ libs/python/build/Jamfile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libs/python/build/Jamfile b/libs/python/build/Jamfile
+index dbc9fb203..03b69a25d 100644
+--- a/libs/python/build/Jamfile
++++ b/libs/python/build/Jamfile
+@@ -117,7 +117,7 @@ lib boost_numpy
+ <define>BOOST_NUMPY_SOURCE
+ [ cond [ python.numpy ] : <library>/python//python_for_extensions ]
+ [ unless [ python.numpy ] : <build>no ]
+- <include>$(numpy-include)
++ <library>/python//numpy
+ <library>boost_python
+ <python-debugging>on:<define>BOOST_DEBUG_PYTHON
+ -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
diff --git a/patches/boost/1.76.0/boost-1.76-sparc-define.patch b/patches/boost/1.76.0/boost-1.76-sparc-define.patch
new file mode 100644
index 0000000..b3909ee
--- /dev/null
+++ b/patches/boost/1.76.0/boost-1.76-sparc-define.patch
@@ -0,0 +1,21 @@
+https://github.com/boostorg/predef/commit/1be0e4a2d8db15a405f64a6f65507b87c1be7e1a.patch
+
+From 1be0e4a2d8db15a405f64a6f65507b87c1be7e1a Mon Sep 17 00:00:00 2001
+From: tkoecker <tkoecker@gmx.net>
+Date: Fri, 21 May 2021 16:31:11 +0200
+Subject: [PATCH] added missing brackets (#118)
+--- a/boost/predef/architecture/sparc.h
++++ b/boost/predef/architecture/sparc.h
+@@ -34,10 +34,10 @@ Distributed under the Boost Software License, Version 1.0.
+
+ #if defined(__sparc__) || defined(__sparc)
+ # undef BOOST_ARCH_SPARC
+-# if !defined(BOOST_ARCH_SPARC) && (defined(__sparcv9) || defined(__sparc_v9__)
++# if !defined(BOOST_ARCH_SPARC) && (defined(__sparcv9) || defined(__sparc_v9__))
+ # define BOOST_ARCH_SPARC BOOST_VERSION_NUMBER(9,0,0)
+ # endif
+-# if !defined(BOOST_ARCH_SPARC) && (defined(__sparcv8) || defined(__sparc_v8__)
++# if !defined(BOOST_ARCH_SPARC) && (defined(__sparcv8) || defined(__sparc_v8__))
+ # define BOOST_ARCH_SPARC BOOST_VERSION_NUMBER(8,0,0)
+ # endif
+ # if !defined(BOOST_ARCH_SPARC)
diff --git a/patches/boost/1.79.0/boost-1.79.0-fix-mips1-transition.patch b/patches/boost/1.79.0/boost-1.79.0-fix-mips1-transition.patch
new file mode 100644
index 0000000..efcd385
--- /dev/null
+++ b/patches/boost/1.79.0/boost-1.79.0-fix-mips1-transition.patch
@@ -0,0 +1,43 @@
+https://bugs.gentoo.org/843212
+https://bugs.gentoo.org/913150
+https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1a9b0d1fe535f498e607f7f8f860656237af347e
+
+https://github.com/boostorg/boost/commit/791442bf1ed7a3b14893ed9e73ef2ab32b2a6026, and
+https://github.com/boostorg/config/commit/1a55d1d9c6d1cf7739645080bdd92fe903b4211e without the file renaming.
+
+--- a/boostcpp.jam
++++ b/boostcpp.jam
+@@ -634,7 +634,7 @@ rule address-model ( )
+ return <conditional>@boostcpp.deduce-address-model ;
+ }
+
+-local deducable-architectures = arm mips1 power riscv s390x sparc x86 combined ;
++local deducable-architectures = arm mips power riscv s390x sparc x86 combined ;
+ feature.feature deduced-architecture : $(deducable-architectures) : propagated optional composite hidden ;
+ for a in $(deducable-architectures)
+ {
+@@ -645,10 +645,10 @@ rule deduce-architecture ( properties * )
+ {
+ local result ;
+ local filtered = [ toolset-properties $(properties) ] ;
+- local names = arm mips1 power riscv s390x sparc x86 combined ;
++ local names = arm mips power riscv s390x sparc x86 combined ;
+ local idx = [ configure.find-builds "default architecture" : $(filtered)
+ : /boost/architecture//arm
+- : /boost/architecture//mips1
++ : /boost/architecture//mips
+ : /boost/architecture//power
+ : /boost/architecture//riscv
+ : /boost/architecture//s390x
+--- a/libs/config/checks/architecture/Jamfile.jam
++++ b/libs/config/checks/architecture/Jamfile.jam
+@@ -18,7 +18,8 @@ obj 64 : 64.cpp ;
+
+ obj arm : arm.cpp ;
+ obj combined : combined.cpp ;
+-obj mips1 : mips1.cpp ;
++obj mips : mips1.cpp ;
++alias mips1 : mips ; # Backwards compatibility
+ obj power : power.cpp ;
+ obj riscv : riscv.cpp ;
+ obj sparc : sparc.cpp ;
diff --git a/patches/btrfs-progs/5.15/btrfs-honor-LDFLAGS.patch b/patches/btrfs-progs/5.15/btrfs-honor-LDFLAGS.patch
new file mode 100644
index 0000000..a0cf77c
--- /dev/null
+++ b/patches/btrfs-progs/5.15/btrfs-honor-LDFLAGS.patch
@@ -0,0 +1,12 @@
+--- a/Makefile
++++ b/Makefile
+@@ -130,7 +130,7 @@ LIBBTRFS_LIBS = $(LIBS_BASE) $(LIBS_CRYPTO)
+
+ # Static compilation flags
+ STATIC_CFLAGS = $(CFLAGS) -ffunction-sections -fdata-sections -DSTATIC_BUILD
+-STATIC_LDFLAGS = -static -Wl,--gc-sections
++STATIC_LDFLAGS = $(LDFLAGS) -static -Wl,--gc-sections
+ STATIC_LIBS = $(STATIC_LIBS_BASE)
+
+ # don't use FORTIFY with sparse because glibc with FORTIFY can
+
diff --git a/patches/btrfs-progs/5.15/btrfs-lzo-via-pkgconfig.patch b/patches/btrfs-progs/5.15/btrfs-lzo-via-pkgconfig.patch
new file mode 100644
index 0000000..b1bf436
--- /dev/null
+++ b/patches/btrfs-progs/5.15/btrfs-lzo-via-pkgconfig.patch
@@ -0,0 +1,22 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -304,16 +304,8 @@ if ${PKG_CONFIG} udev --atleast-version 190; then
+ fi
+ AC_SUBST(UDEVDIR)
+
+-dnl lzo library does not provide pkg-config, let use classic way
+-AC_CHECK_LIB([lzo2], [lzo_version], [
+- LZO2_LIBS="-llzo2"
+- LZO2_CFLAGS=""
+- LZO2_LIBS_STATIC="-llzo2"],[
+- AC_MSG_ERROR([cannot find lzo2 library])
+-])
+-AC_SUBST([LZO2_LIBS])
+-AC_SUBST([LZO2_LIBS_STATIC])
+-AC_SUBST([LZO2_CFLAGS])
++PKG_CHECK_MODULES(LZO2, [lzo2])
++PKG_STATIC(LZO2_LIBS_STATIC, [lzo2])
+
+ dnl call PKG_INSTALLDIR from pkg.m4 to set pkgconfigdir
+ m4_ifdef([PKG_INSTALLDIR], [PKG_INSTALLDIR], [AC_MSG_ERROR([please install pkgconf])])
+
diff --git a/patches/btrfs-progs/5.15/btrfs-m4.patch b/patches/btrfs-progs/5.15/btrfs-m4.patch
new file mode 100644
index 0000000..7543640
--- /dev/null
+++ b/patches/btrfs-progs/5.15/btrfs-m4.patch
@@ -0,0 +1,15 @@
+Fixes
+
+./configure: line 4077: BTRFS_DETECT_CSTD: command not found
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -18,6 +18,7 @@ AC_SUBST([CFLAGS])
+ AC_PREREQ([2.60])
+
+ AC_CONFIG_AUX_DIR([config])
++AC_CONFIG_MACRO_DIR([m4])
+ dnl AC_USE_SYSTEM_EXTENSIONS must be called before any macros that run
+ dnl the compiler (like AC_PROG_LIBTOOL) to avoid autoconf errors.
+ AC_USE_SYSTEM_EXTENSIONS
+
diff --git a/patches/busybox/1.30.1/1.18.1-openvt.diff b/patches/busybox/1.30.1/1.18.1-openvt.diff
deleted file mode 100644
index b8a9f8a..0000000
--- a/patches/busybox/1.30.1/1.18.1-openvt.diff
+++ /dev/null
@@ -1,19 +0,0 @@
-Based on:
-
-> Allow a slightly wider range of valid vt numbers. Forward-ported from Gentoo
-> Busybox 1.1.3.
-
-> The previous spin of this patch on 1.1.3 had a 'wait(NULL);' right before
-> return EXIT_SUCCESS. I don't think it's needed anymore, so I left it out.
-
---- a/console-tools/openvt.c 2010-11-22 22:24:58.000000000 +0200
-+++ b/console-tools/openvt.c 2010-11-29 15:32:18.000000000 +0200
-@@ -124,7 +124,7 @@ int openvt_main(int argc UNUSED_PARAM, c
-
- if (flags & OPT_c) {
- /* Check for illegal vt number: < 1 or > 63 */
-- vtno = xatou_range(str_c, 1, 63);
-+ vtno = xatou_range(str_c, 0, 63);
- } else {
- vtno = find_free_vtno();
- }
diff --git a/patches/busybox/1.30.1/README b/patches/busybox/1.30.1/README
deleted file mode 100644
index 654c172..0000000
--- a/patches/busybox/1.30.1/README
+++ /dev/null
@@ -1,11 +0,0 @@
-1.18.1-mdstart.diff:
-This adds a 'mdstart' command to busybox, which is used for the activation of
-individual mdraid arrays. It originated with 1.1.3+gentoo or earlier.
-Patch ported from 1.7.4 to 1.18.1 by Denis Kaganovich.
-
-1.18.1-openvt.diff:
-It is unknown what problem this patch fixes. It may no longer be needed.
-Patch ported from 1.7.4 to 1.18.1 by Denis Kaganovich.
-
-busybox-1.7.4-signal-hack.patch:
-It is unknown what this patch does. It may no longer be needed.
diff --git a/patches/busybox/1.30.1/busybox-1.20.2-modprobe.patch b/patches/busybox/1.30.1/busybox-1.20.2-modprobe.patch
deleted file mode 100644
index 491eb05..0000000
--- a/patches/busybox/1.30.1/busybox-1.20.2-modprobe.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/modutils/modprobe.c b/modutils/modprobe.c
-index fb6c659..11fa521 100644
---- a/modutils/modprobe.c
-+++ b/modutils/modprobe.c
-@@ -413,7 +413,7 @@ static int do_modprobe(struct module_entry *m)
- rc = 0;
- while (m->deps) {
- struct module_entry *m2;
-- char *fn, *options;
-+ char *fn, *options, *path;
-
- rc = 0;
- fn = llist_pop(&m->deps); /* we leak it */
-@@ -460,7 +460,11 @@ static int do_modprobe(struct module_entry *m)
- continue;
- }
-
-- rc = bb_init_module(fn, options);
-+ path = xmalloc(strlen(fn) + strlen(CONFIG_DEFAULT_MODULES_DIR) + strlen(G.uts.release) + 3);
-+ sprintf(path, "%s/%s/%s", CONFIG_DEFAULT_MODULES_DIR, G.uts.release, fn);
-+
-+ rc = bb_init_module(path, options);
-+ free(path);
- DBG("loaded %s '%s', rc:%d", fn, options, rc);
- if (rc == EEXIST)
- rc = 0;
diff --git a/patches/busybox/1.30.1/busybox-1.26.0-mdstart.patch b/patches/busybox/1.30.1/busybox-1.26.0-mdstart.patch
deleted file mode 100644
index 35057b6..0000000
--- a/patches/busybox/1.30.1/busybox-1.26.0-mdstart.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-diff --git a/util-linux/mdStart.c b/util-linux/mdStart.c
---- util-linux/mdStart.c 1969-12-31 18:00:00.000000000 -0600
-+++ util-linux/mdStart.c 2017-01-01 18:25:14.582737879 -0600
-@@ -0,0 +1,76 @@
-+/*
-+ * Linux 2.6(+) RAID Autostarter
-+ *
-+ * Copyright (C) 2005 by Tim Yamin <plasmaroo@gentoo.org> <plasm@roo.me.uk>
-+ * Copyright (C) 2012 by Sebastian Pipping <sebastian@pipping.org>
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ * General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+ *
-+ */
-+//config:config MDSTART
-+//config: bool "mdstart"
-+//config: default n
-+//config: help
-+//config: Allows you to autostart /dev/md devices if using an initramfs to
-+//config: boot.
-+
-+//applet:IF_MDSTART(APPLET(mdstart, BB_DIR_SBIN, BB_SUID_DROP))
-+
-+//kbuild:lib-$(CONFIG_MDSTART) += mdStart.o
-+
-+//usage:#define mdstart_trivial_usage
-+//usage: "[PARTITION] MD-NODE [[PARTITION] MD-NODE ...]"
-+//usage:
-+//usage:#define mdstart_full_usage "\n\n"
-+//usage: "Run the RAID_AUTORUN ioctl on the given MD number"
-+
-+#include <sys/types.h>
-+#include <sys/stat.h>
-+#include <fcntl.h>
-+#include <sys/ioctl.h>
-+#include <linux/major.h>
-+#include <linux/raid/md_u.h>
-+
-+extern int
-+mdstart_main(int argc, char *argv[])
-+{
-+ int i, fd, part = 0, retval = 0;
-+
-+ if(argc < 2)
-+ {
-+ bb_show_usage();
-+ }
-+
-+ for(i = 1; i < argc; i++)
-+ {
-+ if(sscanf(argv[i], "%d", &part) == 1)
-+ continue;
-+
-+ fd = open(argv[i], 0, 0);
-+ if (fd >= 0)
-+ {
-+ ioctl(fd, RAID_AUTORUN, part);
-+ close(fd);
-+ } else
-+ {
-+ printf("Error: Failed to open %s!\n", argv[i]);
-+ retval=1;
-+ }
-+
-+ part = 0;
-+ }
-+
-+ return retval;
-+}
diff --git a/patches/busybox/1.30.1/busybox-1.7.4-signal-hack.patch b/patches/busybox/1.30.1/busybox-1.7.4-signal-hack.patch
deleted file mode 100644
index ba11830..0000000
--- a/patches/busybox/1.30.1/busybox-1.7.4-signal-hack.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-workaround while we get it fixed upstream
-
-http://bugs.gentoo.org/201114
-
---- libbb/u_signal_names.c
-+++ libbb/u_signal_names.c
-@@ -66,7 +66,7 @@
- #ifdef SIGTERM
- [SIGTERM ] = "TERM",
- #endif
--#ifdef SIGSTKFLT
-+#if defined(SIGSTKFLT) && SIGSTKFLT < 32
- [SIGSTKFLT] = "STKFLT",
- #endif
- #ifdef SIGCHLD
-@@ -90,10 +90,10 @
- #ifdef SIGURG
- [SIGURG ] = "URG",
- #endif
--#ifdef SIGXCPU
-+#if defined(SIGXCPU) && SIGXCPU < 32
- [SIGXCPU ] = "XCPU",
- #endif
--#ifdef SIGXFSZ
-+#if defined(SIGXFSZ) && SIGXFSZ < 32
- [SIGXFSZ ] = "XFSZ",
- #endif
- #ifdef SIGVTALRM
diff --git a/patches/busybox/1.33.1/busybox-1.20.2-modprobe.patch b/patches/busybox/1.33.1/busybox-1.20.2-modprobe.patch
new file mode 100644
index 0000000..9021a0f
--- /dev/null
+++ b/patches/busybox/1.33.1/busybox-1.20.2-modprobe.patch
@@ -0,0 +1,46 @@
+Load modules by absolute path in busybox modprobe
+
+Our switch to busybox modprobe broke ZFS module loading where busybox
+modprobe would load two modules and then fail. Limited developer time
+resulted in a hack being put into place to repeat modprobe until ZFS
+appeared. However, this was never a real long term solution.
+
+Recent analysis with strace suggests that loading two modules corrupts
+busybox's current working directory inside the kernel. Consequently,
+subsequent tests where absolute paths were used instead of relative ones
+made the problem disappear.
+
+Modifying busybox to use full paths when loading modules makes module
+loading work on all affected kernels. While the long term plan is to fix
+the kernel, this workaround will be needed indefinitely for affected
+kernels, even after mainline Linux is fixed.
+
+Signed-off-by: Richard Yao <ryao@gentoo.org>
+
+Added via commit 006a5d6d56e622b5ef82e5a066ca7af7b8c2aeed.
+
+--- a/modutils/modprobe.c
++++ b/modutils/modprobe.c
+@@ -413,7 +413,7 @@ static int do_modprobe(struct module_entry *m)
+ rc = 0;
+ while (m->deps) {
+ struct module_entry *m2;
+- char *fn, *options;
++ char *fn, *options, *path;
+
+ rc = 0;
+ fn = llist_pop(&m->deps); /* we leak it */
+@@ -460,7 +460,11 @@ static int do_modprobe(struct module_entry *m)
+ continue;
+ }
+
+- rc = bb_init_module(fn, options);
++ path = xmalloc(strlen(fn) + strlen(CONFIG_DEFAULT_MODULES_DIR) + strlen(G.uts.release) + 3);
++ sprintf(path, "%s/%s/%s", CONFIG_DEFAULT_MODULES_DIR, G.uts.release, fn);
++
++ rc = bb_init_module(path, options);
++ free(path);
+ DBG("loaded %s '%s', rc:%d", fn, options, rc);
+ if (rc == EEXIST)
+ rc = 0;
+
diff --git a/patches/busybox/1.33.1/busybox-1.30.1-allow-for-genkernel-cross-compile.patch b/patches/busybox/1.33.1/busybox-1.30.1-allow-for-genkernel-cross-compile.patch
new file mode 100644
index 0000000..0694e09
--- /dev/null
+++ b/patches/busybox/1.33.1/busybox-1.30.1-allow-for-genkernel-cross-compile.patch
@@ -0,0 +1,39 @@
+We don't use CROSS_COMPILE in genkernel to allow for multilib
+compilation (i.e. x86_64 can compile for x86 without dedicated x86 toolchain).
+
+--- a/Makefile
++++ b/Makefile
+@@ -271,8 +271,8 @@ export quiet Q KBUILD_VERBOSE
+ # Look for make include files relative to root of kernel src
+ MAKEFLAGS += --include-dir=$(srctree)
+
+-HOSTCC = gcc
+-HOSTCXX = g++
++HOSTCC ?= gcc
++HOSTCXX ?= g++
+ HOSTCFLAGS :=
+ HOSTCXXFLAGS :=
+ # We need some generic definitions
+@@ -288,15 +288,15 @@ MAKEFLAGS += -rR
+
+ # Make variables (CC, etc...)
+
+-AS = $(CROSS_COMPILE)as
+-CC = $(CROSS_COMPILE)gcc
++AS ?= $(CROSS_COMPILE)as
++CC ?= $(CROSS_COMPILE)gcc
+ LD = $(CC) -nostdlib
+ CPP = $(CC) -E
+-AR = $(CROSS_COMPILE)ar
+-NM = $(CROSS_COMPILE)nm
+-STRIP = $(CROSS_COMPILE)strip
+-OBJCOPY = $(CROSS_COMPILE)objcopy
+-OBJDUMP = $(CROSS_COMPILE)objdump
++AR ?= $(CROSS_COMPILE)ar
++NM ?= $(CROSS_COMPILE)nm
++STRIP ?= $(CROSS_COMPILE)strip
++OBJCOPY ?= $(CROSS_COMPILE)objcopy
++OBJDUMP ?= $(CROSS_COMPILE)objdump
+ PKG_CONFIG ?= $(CROSS_COMPILE)pkg-config
+ AWK = awk
+ GENKSYMS = scripts/genksyms/genksyms
diff --git a/patches/busybox/1.36.1/busybox-1.36.1-kernel-6.8.patch b/patches/busybox/1.36.1/busybox-1.36.1-kernel-6.8.patch
new file mode 100644
index 0000000..7e7b873
--- /dev/null
+++ b/patches/busybox/1.36.1/busybox-1.36.1-kernel-6.8.patch
@@ -0,0 +1,53 @@
+http://lists.busybox.net/pipermail/busybox/2024-March/090678.html
+https://bugs.gentoo.org/928573
+
+Linux v6.8-rc1 removed the definitions related to CBQ making tc fail to
+build. Add some #ifdefs to handle this missing support.
+--- a/networking/tc.c
++++ b/networking/tc.c
+@@ -231,6 +231,13 @@ static int cbq_parse_opt(int argc, char **argv, struct nlmsghdr *n)
+ return 0;
+ }
+ #endif
++
++#ifndef TCA_CBQ_MAX
++/*
++ * Linux v6.8-rc1 removed the uapi definitions for CBQ.
++ * See https://git.kernel.org/linus/33241dca48626
++ */
++#else
+ static int cbq_print_opt(struct rtattr *opt)
+ {
+ struct rtattr *tb[TCA_CBQ_MAX+1];
+@@ -322,6 +329,7 @@ static int cbq_print_opt(struct rtattr *opt)
+ done:
+ return 0;
+ }
++#endif
+
+ static FAST_FUNC int print_qdisc(
+ const struct sockaddr_nl *who UNUSED_PARAM,
+@@ -372,8 +380,10 @@ static FAST_FUNC int print_qdisc(
+ int qqq = index_in_strings(_q_, name);
+ if (qqq == 0) { /* pfifo_fast aka prio */
+ prio_print_opt(tb[TCA_OPTIONS]);
++#ifdef TCA_CBQ_MAX
+ } else if (qqq == 1) { /* class based queuing */
+ cbq_print_opt(tb[TCA_OPTIONS]);
++#endif
+ } else {
+ /* don't know how to print options for this qdisc */
+ printf(&quot;(options for %s)&quot;, name);
+@@ -442,9 +452,11 @@ static FAST_FUNC int print_class(
+ int qqq = index_in_strings(_q_, name);
+ if (qqq == 0) { /* pfifo_fast aka prio */
+ /* nothing. */ /*prio_print_opt(tb[TCA_OPTIONS]);*/
++#ifdef TCA_CBQ_MAX
+ } else if (qqq == 1) { /* class based queuing */
+ /* cbq_print_copt() is identical to cbq_print_opt(). */
+ cbq_print_opt(tb[TCA_OPTIONS]);
++#endif
+ } else {
+ /* don't know how to print options for this class */
+ printf(&quot;(options for %s)&quot;, name);
+
diff --git a/patches/coreutils/8.32/coreutils-8.32-ls-restore-8.31-behavior-on-removed-directories.patch b/patches/coreutils/8.32/coreutils-8.32-ls-restore-8.31-behavior-on-removed-directories.patch
new file mode 100644
index 0000000..c20a706
--- /dev/null
+++ b/patches/coreutils/8.32/coreutils-8.32-ls-restore-8.31-behavior-on-removed-directories.patch
@@ -0,0 +1,86 @@
+https://git.savannah.gnu.org/cgit/coreutils.git/commit/?id=10fcb97bd728f09d4a027eddf8ad2900f0819b0a
+
+Fixes
+
+ src/ls.c:3026:24: error: 'SYS_getdents' undeclared (first use in this function); did you mean 'SYS_getdents64'?
+
+as seen on riscv
+
+--- a/src/ls.c
++++ b/src/ls.c
+@@ -49,10 +49,6 @@
+ # include <sys/ptem.h>
+ #endif
+
+-#ifdef __linux__
+-# include <sys/syscall.h>
+-#endif
+-
+ #include <stdio.h>
+ #include <assert.h>
+ #include <setjmp.h>
+@@ -2896,7 +2892,6 @@ print_dir (char const *name, char const *realname, bool command_line_arg)
+ struct dirent *next;
+ uintmax_t total_blocks = 0;
+ static bool first = true;
+- bool found_any_entries = false;
+
+ errno = 0;
+ dirp = opendir (name);
+@@ -2972,7 +2967,6 @@ print_dir (char const *name, char const *realname, bool command_line_arg)
+ next = readdir (dirp);
+ if (next)
+ {
+- found_any_entries = true;
+ if (! file_ignored (next->d_name))
+ {
+ enum filetype type = unknown;
+@@ -3018,22 +3012,6 @@ print_dir (char const *name, char const *realname, bool command_line_arg)
+ if (errno != EOVERFLOW)
+ break;
+ }
+-#ifdef __linux__
+- else if (! found_any_entries)
+- {
+- /* If readdir finds no directory entries at all, not even "." or
+- "..", then double check that the directory exists. */
+- if (syscall (SYS_getdents, dirfd (dirp), NULL, 0) == -1
+- && errno != EINVAL)
+- {
+- /* We exclude EINVAL as that pertains to buffer handling,
+- and we've passed NULL as the buffer for simplicity.
+- ENOENT is returned if appropriate before buffer handling. */
+- file_failure (command_line_arg, _("reading directory %s"), name);
+- }
+- break;
+- }
+-#endif
+ else
+ break;
+
+--- a/tests/ls/removed-directory.sh
++++ b/tests/ls/removed-directory.sh
+@@ -26,20 +26,14 @@ case $host_triplet in
+ *) skip_ 'non linux kernel' ;;
+ esac
+
+-LS_FAILURE=2
+-
+-cat <<\EOF >exp-err || framework_failure_
+-ls: reading directory '.': No such file or directory
+-EOF
+-
+ cwd=$(pwd)
+ mkdir d || framework_failure_
+ cd d || framework_failure_
+ rmdir ../d || framework_failure_
+
+-returns_ $LS_FAILURE ls >../out 2>../err || fail=1
++ls >../out 2>../err || fail=1
+ cd "$cwd" || framework_failure_
+ compare /dev/null out || fail=1
+-compare exp-err err || fail=1
++compare /dev/null err || fail=1
+
+ Exit $fail
+
diff --git a/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-undo-p-rename.patch b/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-001-undo-p-rename.patch
index 6636b05..6636b05 100644
--- a/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-undo-p-rename.patch
+++ b/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-001-undo-p-rename.patch
diff --git a/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-002-return-all-sets.patch b/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-002-return-all-sets.patch
new file mode 100644
index 0000000..4ac153a
--- /dev/null
+++ b/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-002-return-all-sets.patch
@@ -0,0 +1,11 @@
+--- a/1.0.0.rc16-3/dmraid/lib/metadata/metadata.c
++++ b/1.0.0.rc16-3/dmraid/lib/metadata/metadata.c
+@@ -839,7 +839,7 @@ _discover_partitions(struct lib_context *lc, struct list_head *rs_list)
+ */
+ if (T_GROUP(rs)) {
+ _discover_partitions(lc, &rs->sets);
+- return;
++ continue;
+ }
+
+ /*
diff --git a/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-static-build-fixes.patch b/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-003-static-build-fixes.patch
index 2988117..3ca491d 100644
--- a/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-static-build-fixes.patch
+++ b/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-003-static-build-fixes.patch
@@ -1,50 +1,6 @@
---- tools/Makefile.in.old 2010-05-31 07:18:31.000000000 -0400
-+++ tools/Makefile.in 2010-12-13 13:15:22.000000000 -0500
-@@ -60,17 +60,23 @@
- ifeq ("@KLIBC@", "no")
- ifeq ("@STATIC_LINK@", "no")
- LDFLAGS += -rdynamic
-+ MYLIBOBJ=$(top_builddir)/lib/libdmraid.so
- else
- LDFLAGS += -static
-+ MYLIBOBJ=$(top_builddir)/lib/libdmraid.a
-+ DMRAIDLIBS += \
-+ $(DEVMAPPEREVENT_LIBS) \
-+ $(DEVMAPPER_LIBS) \
-+ $(DL_LIBS)
- endif
- endif
-
- .PHONY: install_dmraid_tools
-
--dmraid: $(OBJECTS) $(top_builddir)/lib/libdmraid.a
-+dmraid: $(OBJECTS) $(MYLIBOBJ)
- $(CC) -o $@ $(OBJECTS) $(LDFLAGS) -L$(top_builddir)/lib $(DMRAIDLIBS) $(LIBS)
-
--dmevent_tool: $(OBJECTS2) $(top_builddir)/lib/libdmraid.a
-+dmevent_tool: $(OBJECTS2) $(MYLIBOBJ)
- $(CC) -o $@ $(OBJECTS2) $(INCLUDES) $(LDFLAGS) -L$(top_builddir)/lib \
- $(DMEVENTTOOLLIBS) $(DMRAIDLIBS) $(LIBS)
-
---- lib/Makefile.in.old 2010-10-27 07:31:46.000000000 -0400
-+++ lib/Makefile.in 2010-12-13 13:04:16.000000000 -0500
-@@ -60,11 +60,11 @@
- USRLIB_RELPATH = $(shell echo $(abspath $(usrlibdir) $(libdir)) | \
- $(AWK) -f $(top_srcdir)/tools/relpath.awk)
-
--TARGETS = $(LIB_STATIC)
-+TARGETS = $(LIB_STATIC) $(LIB_SHARED) $(LIB_EVENTS_SHARED)
-
- ifeq ("@KLIBC@", "no")
- ifeq ("@STATIC_LINK@", "no")
-- TARGETS += $(LIB_SHARED) $(LIB_EVENTS_SHARED)
-+ TARGETS = $(LIB_SHARED) $(LIB_EVENTS_SHARED)
- endif
- endif
-
---- configure.in 2010-05-31 07:18:30.000000000 -0400
-+++ configure.in.new 2010-12-07 13:30:40.000000000 -0500
-@@ -155,6 +155,15 @@
+--- a/1.0.0.rc16-3/dmraid/configure.in
++++ b/1.0.0.rc16-3/dmraid/configure.in
+@@ -155,6 +155,15 @@ AC_ARG_ENABLE(static_link,
Default is dynamic linking]),
[STATIC_LINK=$enableval], [STATIC_LINK=no])
@@ -60,7 +16,7 @@
dnl Enables shared libdmraid
AC_ARG_ENABLE(shared_lib,
AC_HELP_STRING([--enable-shared_lib], [Use this to generate shared
-@@ -248,23 +257,31 @@
+@@ -248,23 +257,31 @@ AC_ARG_WITH(devmapper-prefix,
AC_HELP_STRING([--with-devmapper-prefix=PFX],
[Where is devmapper library installed]),
[DEVMAPPER_LIBS="-L$withval/lib"
@@ -107,4 +63,48 @@
+fi
VERSION=$srcdir/tools/VERSION
- DMRAID_LIB_MAJOR=$(cut -d. -f1 $VERSION) \ No newline at end of file
+ DMRAID_LIB_MAJOR=$(cut -d. -f1 $VERSION)
+--- a/1.0.0.rc16-3/dmraid/lib/Makefile.in
++++ b/1.0.0.rc16-3/dmraid/lib/Makefile.in
+@@ -60,11 +60,11 @@ LIB_EVENTS_SHARED=$(LIB_EVENTS_NAME).so
+ USRLIB_RELPATH = $(shell echo $(abspath $(usrlibdir) $(libdir)) | \
+ $(AWK) -f $(top_srcdir)/tools/relpath.awk)
+
+-TARGETS = $(LIB_STATIC)
++TARGETS = $(LIB_STATIC) $(LIB_SHARED) $(LIB_EVENTS_SHARED)
+
+ ifeq ("@KLIBC@", "no")
+ ifeq ("@STATIC_LINK@", "no")
+- TARGETS += $(LIB_SHARED) $(LIB_EVENTS_SHARED)
++ TARGETS = $(LIB_SHARED) $(LIB_EVENTS_SHARED)
+ endif
+ endif
+
+--- a/1.0.0.rc16-3/dmraid/tools/Makefile.in
++++ b/1.0.0.rc16-3/dmraid/tools/Makefile.in
+@@ -60,17 +60,23 @@ endif
+ ifeq ("@KLIBC@", "no")
+ ifeq ("@STATIC_LINK@", "no")
+ LDFLAGS += -rdynamic
++ MYLIBOBJ=$(top_builddir)/lib/libdmraid.so
+ else
+ LDFLAGS += -static
++ MYLIBOBJ=$(top_builddir)/lib/libdmraid.a
++ DMRAIDLIBS += \
++ $(DEVMAPPEREVENT_LIBS) \
++ $(DEVMAPPER_LIBS) \
++ $(DL_LIBS)
+ endif
+ endif
+
+ .PHONY: install_dmraid_tools
+
+-dmraid: $(OBJECTS) $(top_builddir)/lib/libdmraid.a
++dmraid: $(OBJECTS) $(MYLIBOBJ)
+ $(CC) -o $@ $(OBJECTS) $(LDFLAGS) -L$(top_builddir)/lib $(DMRAIDLIBS) $(LIBS)
+
+-dmevent_tool: $(OBJECTS2) $(top_builddir)/lib/libdmraid.a
++dmevent_tool: $(OBJECTS2) $(MYLIBOBJ)
+ $(CC) -o $@ $(OBJECTS2) $(INCLUDES) $(LDFLAGS) -L$(top_builddir)/lib \
+ $(DMEVENTTOOLLIBS) $(DMRAIDLIBS) $(LIBS)
+
diff --git a/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0.rc16-3-staticlink.patch b/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-004-staticlink.patch
index a80870f..a80870f 100644
--- a/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0.rc16-3-staticlink.patch
+++ b/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-004-staticlink.patch
diff --git a/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-parallel-make.patch b/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-005-parallel-make.patch
index 8c89374..8c89374 100644
--- a/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-parallel-make.patch
+++ b/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-005-parallel-make.patch
diff --git a/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-return-all-sets.patch b/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-return-all-sets.patch
deleted file mode 100644
index 1e6c713..0000000
--- a/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-return-all-sets.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/1.0.0.rc16/lib/metadata/metadata.c 2009-11-27 21:57:50.182129589 -0800
-+++ b/1.0.0.rc16/lib/metadata/metadata.c 2009-11-27 21:57:58.950964293 -0800
-@@ -839,7 +839,7 @@
- */
- if (T_GROUP(rs)) {
- _discover_partitions(lc, &rs->sets);
-- return;
-+ continue;
- }
-
- /*
diff --git a/patches/e2fsprogs/1.46.4/e2fsprogs-1.42.13-fix-build-cflags.patch b/patches/e2fsprogs/1.46.4/e2fsprogs-1.42.13-fix-build-cflags.patch
new file mode 100644
index 0000000..dcab9a3
--- /dev/null
+++ b/patches/e2fsprogs/1.46.4/e2fsprogs-1.42.13-fix-build-cflags.patch
@@ -0,0 +1,13 @@
+https://bugs.gentoo.org/516854
+
+--- e2fsprogs-1.42.13/configure
++++ e2fsprogs-1.42.13/configure
+@@ -1315,6 +1315,8 @@
+ if test $cross_compiling = no; then
+ BUILD_CFLAGS="$CFLAGS $CPPFLAGS $INCLUDES -DHAVE_CONFIG_H"
+ BUILD_LDFLAGS="$LDFLAGS"
++else
++ BUILD_CFLAGS="$INCLUDES"
+ fi
+
+
diff --git a/patches/e2fsprogs/1.46.4/e2fsprogs-1.44.6-parallel_install.patch b/patches/e2fsprogs/1.46.4/e2fsprogs-1.44.6-parallel_install.patch
new file mode 100644
index 0000000..5762915
--- /dev/null
+++ b/patches/e2fsprogs/1.46.4/e2fsprogs-1.44.6-parallel_install.patch
@@ -0,0 +1,10 @@
+--- e2fsprogs-1.44.6/Makefile.in
++++ e2fsprogs-1.44.6/Makefile.in
+@@ -72,6 +72,7 @@
+ uninstall: uninstall-progs-recursive uninstall-shlibs-libs-recursive uninstall-doc-libs
+
+ install-libs: install-libs-recursive
++install-libs-recursive:: | install-shlibs-libs-recursive
+
+ uninstall-libs: uninstall-libs-recursive
+
diff --git a/patches/e2fsprogs/1.46.4/e2fsprogs-1.46.0-build.patch b/patches/e2fsprogs/1.46.4/e2fsprogs-1.46.0-build.patch
new file mode 100644
index 0000000..df908b6
--- /dev/null
+++ b/patches/e2fsprogs/1.46.4/e2fsprogs-1.46.0-build.patch
@@ -0,0 +1,84 @@
+--- a/MCONFIG.in
++++ b/MCONFIG.in
+@@ -88,6 +88,7 @@ SANITIZER_LDFLAGS = @lto_ldflags@ @ubsan_ldflags@ @addrsan_ldflags@ @threadsan_l
+
+ CC = @PTHREAD_CC@
+ BUILD_CC = @BUILD_CC@
++BUILD_CFLAGS = @BUILD_CFLAGS@
+ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+ PTHREAD_LIBS = @PTHREAD_LIBS@
+ CFLAGS = @CFLAGS@
+--- a/configure
++++ b/configure
+@@ -10399,14 +10399,12 @@ $as_echo "$as_me: WARNING:
+ esac
+ fi
+
+-
+-# See if we need a separate native compiler.
+-if test $cross_compiling = no; then
+- BUILD_CC="$CC"
+-
+-else
+- for ac_prog in gcc cc
+-do
++if test "${BUILD_CC+set}" != "set"; then
++ if test $cross_compiling = no; then
++ BUILD_CC="$CC"
++ else
++ for ac_prog in gcc cc
++ do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+@@ -10447,6 +10445,16 @@ fi
+ test -n "$BUILD_CC" && break
+ done
+
++ fi
++fi
++
++if test "${BUILD_CFLAGS+set}" != "set"; then
++ if test $cross_compiling = no; then
++ BUILD_CFLAGS="$CFLAGS"
++ else
++ BUILD_CFLAGS="-g -O2"
++ fi
++
+ fi
+ for ac_header in dirent.h errno.h execinfo.h getopt.h malloc.h mntent.h paths.h semaphore.h setjmp.h signal.h stdarg.h stdint.h stdlib.h termios.h termio.h unistd.h utime.h attr/xattr.h linux/falloc.h linux/fd.h linux/fsmap.h linux/major.h linux/loop.h linux/types.h net/if_dl.h netinet/in.h sys/acl.h sys/disklabel.h sys/disk.h sys/file.h sys/ioctl.h sys/key.h sys/mkdev.h sys/mman.h sys/mount.h sys/prctl.h sys/resource.h sys/select.h sys/socket.h sys/sockio.h sys/stat.h sys/syscall.h sys/sysmacros.h sys/time.h sys/types.h sys/un.h sys/wait.h sys/xattr.h
+ do :
+--- a/configure.ac
++++ b/configure.ac
+@@ -960,13 +960,24 @@ else
+ fi
+ AC_SUBST(MAKEINFO)
+ AC_PROG_INSTALL
+-# See if we need a separate native compiler.
+-if test $cross_compiling = no; then
+- BUILD_CC="$CC"
+- AC_SUBST(BUILD_CC)
+-else
+- AC_CHECK_PROGS(BUILD_CC, gcc cc)
++
++AC_ARG_VAR(BUILD_CC, [C compiler for build tools])
++if test "${BUILD_CC+set}" != "set"; then
++ if test $cross_compiling = no; then
++ BUILD_CC="$CC"
++ else
++ AC_CHECK_PROGS(BUILD_CC, gcc cc)
++ fi
++fi
++AC_ARG_VAR(BUILD_CFLAGS, [C compiler flags for build tools])
++if test "${BUILD_CFLAGS+set}" != "set"; then
++ if test $cross_compiling = no; then
++ BUILD_CFLAGS="$CFLAGS"
++ else
++ BUILD_CFLAGS="-g -O2"
++ fi
+ fi
++
+ AC_CHECK_HEADERS(m4_flatten([
+ dirent.h
+ errno.h
+
diff --git a/patches/e2fsprogs/1.47.0/e2fsprogs-1.42.13-fix-build-cflags.patch b/patches/e2fsprogs/1.47.0/e2fsprogs-1.42.13-fix-build-cflags.patch
new file mode 100644
index 0000000..dcab9a3
--- /dev/null
+++ b/patches/e2fsprogs/1.47.0/e2fsprogs-1.42.13-fix-build-cflags.patch
@@ -0,0 +1,13 @@
+https://bugs.gentoo.org/516854
+
+--- e2fsprogs-1.42.13/configure
++++ e2fsprogs-1.42.13/configure
+@@ -1315,6 +1315,8 @@
+ if test $cross_compiling = no; then
+ BUILD_CFLAGS="$CFLAGS $CPPFLAGS $INCLUDES -DHAVE_CONFIG_H"
+ BUILD_LDFLAGS="$LDFLAGS"
++else
++ BUILD_CFLAGS="$INCLUDES"
+ fi
+
+
diff --git a/patches/e2fsprogs/1.47.0/e2fsprogs-1.44.6-parallel_install.patch b/patches/e2fsprogs/1.47.0/e2fsprogs-1.44.6-parallel_install.patch
new file mode 100644
index 0000000..5762915
--- /dev/null
+++ b/patches/e2fsprogs/1.47.0/e2fsprogs-1.44.6-parallel_install.patch
@@ -0,0 +1,10 @@
+--- e2fsprogs-1.44.6/Makefile.in
++++ e2fsprogs-1.44.6/Makefile.in
+@@ -72,6 +72,7 @@
+ uninstall: uninstall-progs-recursive uninstall-shlibs-libs-recursive uninstall-doc-libs
+
+ install-libs: install-libs-recursive
++install-libs-recursive:: | install-shlibs-libs-recursive
+
+ uninstall-libs: uninstall-libs-recursive
+
diff --git a/patches/e2fsprogs/1.47.0/e2fsprogs-1.46.0-build.patch b/patches/e2fsprogs/1.47.0/e2fsprogs-1.46.0-build.patch
new file mode 100644
index 0000000..df908b6
--- /dev/null
+++ b/patches/e2fsprogs/1.47.0/e2fsprogs-1.46.0-build.patch
@@ -0,0 +1,84 @@
+--- a/MCONFIG.in
++++ b/MCONFIG.in
+@@ -88,6 +88,7 @@ SANITIZER_LDFLAGS = @lto_ldflags@ @ubsan_ldflags@ @addrsan_ldflags@ @threadsan_l
+
+ CC = @PTHREAD_CC@
+ BUILD_CC = @BUILD_CC@
++BUILD_CFLAGS = @BUILD_CFLAGS@
+ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+ PTHREAD_LIBS = @PTHREAD_LIBS@
+ CFLAGS = @CFLAGS@
+--- a/configure
++++ b/configure
+@@ -10399,14 +10399,12 @@ $as_echo "$as_me: WARNING:
+ esac
+ fi
+
+-
+-# See if we need a separate native compiler.
+-if test $cross_compiling = no; then
+- BUILD_CC="$CC"
+-
+-else
+- for ac_prog in gcc cc
+-do
++if test "${BUILD_CC+set}" != "set"; then
++ if test $cross_compiling = no; then
++ BUILD_CC="$CC"
++ else
++ for ac_prog in gcc cc
++ do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+@@ -10447,6 +10445,16 @@ fi
+ test -n "$BUILD_CC" && break
+ done
+
++ fi
++fi
++
++if test "${BUILD_CFLAGS+set}" != "set"; then
++ if test $cross_compiling = no; then
++ BUILD_CFLAGS="$CFLAGS"
++ else
++ BUILD_CFLAGS="-g -O2"
++ fi
++
+ fi
+ for ac_header in dirent.h errno.h execinfo.h getopt.h malloc.h mntent.h paths.h semaphore.h setjmp.h signal.h stdarg.h stdint.h stdlib.h termios.h termio.h unistd.h utime.h attr/xattr.h linux/falloc.h linux/fd.h linux/fsmap.h linux/major.h linux/loop.h linux/types.h net/if_dl.h netinet/in.h sys/acl.h sys/disklabel.h sys/disk.h sys/file.h sys/ioctl.h sys/key.h sys/mkdev.h sys/mman.h sys/mount.h sys/prctl.h sys/resource.h sys/select.h sys/socket.h sys/sockio.h sys/stat.h sys/syscall.h sys/sysmacros.h sys/time.h sys/types.h sys/un.h sys/wait.h sys/xattr.h
+ do :
+--- a/configure.ac
++++ b/configure.ac
+@@ -960,13 +960,24 @@ else
+ fi
+ AC_SUBST(MAKEINFO)
+ AC_PROG_INSTALL
+-# See if we need a separate native compiler.
+-if test $cross_compiling = no; then
+- BUILD_CC="$CC"
+- AC_SUBST(BUILD_CC)
+-else
+- AC_CHECK_PROGS(BUILD_CC, gcc cc)
++
++AC_ARG_VAR(BUILD_CC, [C compiler for build tools])
++if test "${BUILD_CC+set}" != "set"; then
++ if test $cross_compiling = no; then
++ BUILD_CC="$CC"
++ else
++ AC_CHECK_PROGS(BUILD_CC, gcc cc)
++ fi
++fi
++AC_ARG_VAR(BUILD_CFLAGS, [C compiler flags for build tools])
++if test "${BUILD_CFLAGS+set}" != "set"; then
++ if test $cross_compiling = no; then
++ BUILD_CFLAGS="$CFLAGS"
++ else
++ BUILD_CFLAGS="-g -O2"
++ fi
+ fi
++
+ AC_CHECK_HEADERS(m4_flatten([
+ dirent.h
+ errno.h
+
diff --git a/patches/eudev/3.2.10/eudev-3.2.10-static.patch b/patches/eudev/3.2.10/eudev-3.2.10-static.patch
new file mode 100644
index 0000000..fc36b54
--- /dev/null
+++ b/patches/eudev/3.2.10/eudev-3.2.10-static.patch
@@ -0,0 +1,97 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -261,7 +261,7 @@ AC_ARG_ENABLE(kmod, AS_HELP_STRING([--disable-kmod], [disable loadable modules s
+ if test "x$enable_kmod" != "xno"; then
+ PKG_CHECK_EXISTS([ libkmod ], have_kmod=yes, have_kmod=no)
+ if test "x$have_kmod" = "xyes"; then
+- PKG_CHECK_MODULES(KMOD, [ libkmod >= 15 ],
++ PKG_CHECK_MODULES_STATIC(KMOD, [ libkmod >= 15 ],
+ [AC_DEFINE(HAVE_KMOD, 1, [Define if kmod is available])],
+ AC_MSG_ERROR([*** kmod version >= 15 not found]))
+ fi
+--- a/src/ata_id/Makefile.am
++++ b/src/ata_id/Makefile.am
+@@ -11,6 +11,8 @@ udevlibexec_PROGRAMS = \
+ ata_id_SOURCES = \
+ ata_id.c
+
++ata_id_LDFLAGS = -all-static
++
+ ata_id_LDADD = \
+ $(top_builddir)/src/libudev/libudev-private.la \
+ $(top_builddir)/src/udev/libudev-core.la
+--- a/src/cdrom_id/Makefile.am
++++ b/src/cdrom_id/Makefile.am
+@@ -10,6 +10,8 @@ udevlibexec_PROGRAMS = \
+ cdrom_id_SOURCES = \
+ cdrom_id.c
+
++cdrom_id_LDFLAGS = -all-static
++
+ cdrom_id_LDADD = \
+ $(top_builddir)/src/libudev/libudev-private.la \
+ $(top_builddir)/src/udev/libudev-core.la
+--- a/src/collect/Makefile.am
++++ b/src/collect/Makefile.am
+@@ -11,6 +11,8 @@ udevlibexec_PROGRAMS = \
+ collect_SOURCES = \
+ collect.c
+
++collect_LDFLAGS = -all-static
++
+ collect_LDADD = \
+ $(top_builddir)/src/libudev/libudev-private.la \
+ $(top_builddir)/src/udev/libudev-core.la
+--- a/src/mtd_probe/Makefile.am
++++ b/src/mtd_probe/Makefile.am
+@@ -6,6 +6,8 @@ AM_CPPFLAGS = \
+ udevlibexec_PROGRAMS = \
+ mtd_probe
+
++mtd_probe_LDFLAGS = -all-static
++
+ mtd_probe_SOURCES = \
+ mtd_probe.c \
+ mtd_probe.h \
+--- a/src/scsi_id/Makefile.am
++++ b/src/scsi_id/Makefile.am
+@@ -14,6 +14,8 @@ scsi_id_SOURCES =\
+ scsi.h \
+ scsi_id.h
+
++scsi_id_LDFLAGS = -all-static
++
+ scsi_id_LDADD = \
+ $(top_builddir)/src/libudev/libudev-private.la \
+ $(top_builddir)/src/udev/libudev-core.la
+--- a/src/udev/Makefile.am
++++ b/src/udev/Makefile.am
+@@ -22,6 +22,8 @@ sbin_PROGRAMS = \
+ udevd_SOURCES = \
+ udevd.c
+
++udevd_LDFLAGS = -all-static
++
+ udevd_LDADD = \
+ libudev-core.la
+
+@@ -38,6 +40,7 @@ udevadm_SOURCES = \
+ udevadm-util.c \
+ udevadm-util.h
+
++udevadm_LDFLAGS = -all-static
+
+ udevadm_LDADD = \
+ libudev-core.la
+--- a/src/v4l_id/Makefile.am
++++ b/src/v4l_id/Makefile.am
+@@ -9,6 +9,8 @@ udevlibexec_PROGRAMS = \
+ v4l_id_SOURCES = \
+ v4l_id.c
+
++v4l_id_LDFLAGS = -all-static
++
+ v4l_id_LDADD = \
+ $(top_builddir)/src/libudev/libudev-private.la \
+ $(top_builddir)/src/udev/libudev-core.la
+
diff --git a/patches/fuse/2.9.9/fuse-2.9.9-glibc-2.34.patch b/patches/fuse/2.9.9/fuse-2.9.9-glibc-2.34.patch
new file mode 100644
index 0000000..eb7737c
--- /dev/null
+++ b/patches/fuse/2.9.9/fuse-2.9.9-glibc-2.34.patch
@@ -0,0 +1,60 @@
+From 5a43d0f724c56f8836f3f92411e0de1b5f82db32 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Sat, 24 Jul 2021 22:02:45 +0100
+Subject: [PATCH] util/ulockmgr_server.c: conditionally define closefrom (fix
+ glibc-2.34+)
+
+closefrom(3) has joined us in glibc-land from *BSD and Solaris. Since
+it's available in glibc 2.34+, we want to detect it and only define our
+fallback if the libc doesn't provide it.
+
+Bug: https://bugs.gentoo.org/803923
+Signed-off-by: Sam James <sam@gentoo.org>
+---
+ configure.ac | 1 +
+ util/ulockmgr_server.c | 6 ++++++
+ 2 files changed, 7 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 9946a0efa..a2d481aa9 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -55,6 +55,7 @@ fi
+
+ AC_CHECK_FUNCS([fork setxattr fdatasync splice vmsplice utimensat])
+ AC_CHECK_FUNCS([posix_fallocate])
++AC_CHECK_FUNCS([closefrom])
+ AC_CHECK_MEMBERS([struct stat.st_atim])
+ AC_CHECK_MEMBERS([struct stat.st_atimespec])
+
+diff --git a/util/ulockmgr_server.c b/util/ulockmgr_server.c
+index 273c7d923..a04dac5c6 100644
+--- a/util/ulockmgr_server.c
++++ b/util/ulockmgr_server.c
+@@ -22,6 +22,10 @@
+ #include <sys/socket.h>
+ #include <sys/wait.h>
+
++#ifdef HAVE_CONFIG_H
++ #include "config.h"
++#endif
++
+ struct message {
+ unsigned intr : 1;
+ unsigned nofd : 1;
+@@ -124,6 +128,7 @@ static int receive_message(int sock, void *buf, size_t buflen, int *fdp,
+ return res;
+ }
+
++#if !defined(HAVE_CLOSEFROM)
+ static int closefrom(int minfd)
+ {
+ DIR *dir = opendir("/proc/self/fd");
+@@ -141,6 +146,7 @@ static int closefrom(int minfd)
+ }
+ return 0;
+ }
++#endif
+
+ static void send_reply(int cfd, struct message *msg)
+ {
diff --git a/patches/gnupg/1.4.23/gnupg-1.4.23-gcc-10.patch b/patches/gnupg/1.4.23/gnupg-1.4.23-gcc-10.patch
new file mode 100644
index 0000000..9f0ba1b
--- /dev/null
+++ b/patches/gnupg/1.4.23/gnupg-1.4.23-gcc-10.patch
@@ -0,0 +1,156 @@
+From 45ef4455a60929932d1499cf718c1c9f59af9f26 Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
+Date: Tue, 26 May 2020 22:57:05 +0200
+Subject: [PATCH] build: Always use EXTERN_UNLESS_MAIN_MODULE pattern
+
+This patch is loosely based on upstream commit
+6aff8a132815a84bab69401c1e7de96ec549fbf2 ("build: Always use
+EXTERN_UNLESS_MAIN_MODULE pattern."). However, this upstream commit
+applies to gnupg2, and the code base has changed quite significantly
+compared to gnupg 1.x, so upstream's patch cannot be applied
+as-is. The goal of the patch is to make sure each variable is only
+defined once, ass gcc 10 now default to -fno-common.
+
+Essentially, this patch mainly fixes the EXTERN_UNLESS_MAIN_MODULE
+define so that it really expands to "extern" when
+INCLUDED_BY_MAIN_MODULE is not defined, even on non-RiscOS
+systems. Contrary to upstream's patch we however do not factorize the
+multiple EXTERN_UNLESS_MAIN_MODULE definitions into a single place as
+it requires too many changes: instead we simply fix the few
+definitions of this macro.
+
+Once the macro is fixed, two places need to define
+INCLUDED_BY_MAIN_MODULE: tools/bftest.c and tools/mpicalc.c so that
+when they include the common headers, their variables are at least
+defined once.
+
+The iobuf.{c,h} case is handled differently: iobuf.h gains an
+unconditional "extern", with the variable being added to iobuf.c. This
+is identical to what upstream's
+6aff8a132815a84bab69401c1e7de96ec549fbf2 is doing.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
+---
+ g10/options.h | 3 +--
+ include/cipher.h | 2 +-
+ include/iobuf.h | 9 +--------
+ include/memory.h | 2 +-
+ include/mpi.h | 2 +-
+ tools/bftest.c | 1 +
+ tools/mpicalc.c | 1 +
+ util/iobuf.c | 2 ++
+ 8 files changed, 9 insertions(+), 13 deletions(-)
+
+diff --git a/g10/options.h b/g10/options.h
+index 0ac6e7755..bae19e9e3 100644
+--- a/g10/options.h
++++ b/g10/options.h
+@@ -26,8 +26,7 @@
+ #include "packet.h"
+
+ #ifndef EXTERN_UNLESS_MAIN_MODULE
+-/* Norcraft can't cope with common symbols */
+-#if defined (__riscos__) && !defined (INCLUDED_BY_MAIN_MODULE)
++#if !defined (INCLUDED_BY_MAIN_MODULE)
+ #define EXTERN_UNLESS_MAIN_MODULE extern
+ #else
+ #define EXTERN_UNLESS_MAIN_MODULE
+diff --git a/include/cipher.h b/include/cipher.h
+index dd4af18cb..6ef6e6829 100644
+--- a/include/cipher.h
++++ b/include/cipher.h
+@@ -115,7 +115,7 @@ struct gcry_md_context {
+ typedef struct gcry_md_context *MD_HANDLE;
+
+ #ifndef EXTERN_UNLESS_MAIN_MODULE
+-#if defined (__riscos__) && !defined (INCLUDED_BY_MAIN_MODULE)
++#if !defined (INCLUDED_BY_MAIN_MODULE)
+ #define EXTERN_UNLESS_MAIN_MODULE extern
+ #else
+ #define EXTERN_UNLESS_MAIN_MODULE
+diff --git a/include/iobuf.h b/include/iobuf.h
+index 030f8c8e9..b4d26b7e1 100644
+--- a/include/iobuf.h
++++ b/include/iobuf.h
+@@ -69,14 +69,7 @@ struct iobuf_struct {
+ } unget;
+ };
+
+-#ifndef EXTERN_UNLESS_MAIN_MODULE
+-#if defined (__riscos__) && !defined (INCLUDED_BY_MAIN_MODULE)
+-#define EXTERN_UNLESS_MAIN_MODULE extern
+-#else
+-#define EXTERN_UNLESS_MAIN_MODULE
+-#endif
+-#endif
+-EXTERN_UNLESS_MAIN_MODULE int iobuf_debug_mode;
++extern int iobuf_debug_mode;
+
+ void iobuf_enable_special_filenames ( int yes );
+ int iobuf_is_pipe_filename (const char *fname);
+diff --git a/include/memory.h b/include/memory.h
+index d414a9b2e..6698337e3 100644
+--- a/include/memory.h
++++ b/include/memory.h
+@@ -91,7 +91,7 @@ unsigned secmem_get_flags(void);
+ #define DBG_MEMSTAT memory_stat_debug_mode
+
+ #ifndef EXTERN_UNLESS_MAIN_MODULE
+-#if defined (__riscos__) && !defined (INCLUDED_BY_MAIN_MODULE)
++#if !defined (INCLUDED_BY_MAIN_MODULE)
+ #define EXTERN_UNLESS_MAIN_MODULE extern
+ #else
+ #define EXTERN_UNLESS_MAIN_MODULE
+diff --git a/include/mpi.h b/include/mpi.h
+index a4c16f5af..7a45ff805 100644
+--- a/include/mpi.h
++++ b/include/mpi.h
+@@ -36,7 +36,7 @@
+ #include "memory.h"
+
+ #ifndef EXTERN_UNLESS_MAIN_MODULE
+-#if defined (__riscos__) && !defined (INCLUDED_BY_MAIN_MODULE)
++#if !defined (INCLUDED_BY_MAIN_MODULE)
+ #define EXTERN_UNLESS_MAIN_MODULE extern
+ #else
+ #define EXTERN_UNLESS_MAIN_MODULE
+diff --git a/tools/bftest.c b/tools/bftest.c
+index 8a1572c2b..5afd7e125 100644
+--- a/tools/bftest.c
++++ b/tools/bftest.c
+@@ -26,6 +26,7 @@
+ #include <fcntl.h>
+ #endif
+
++#define INCLUDED_BY_MAIN_MODULE
+ #include "util.h"
+ #include "cipher.h"
+ #include "i18n.h"
+diff --git a/tools/mpicalc.c b/tools/mpicalc.c
+index 46e5fc824..31acd82a4 100644
+--- a/tools/mpicalc.c
++++ b/tools/mpicalc.c
+@@ -31,6 +31,7 @@
+ #include <stdlib.h>
+ #include <ctype.h>
+
++#define INCLUDED_BY_MAIN_MODULE
+ #include "util.h"
+ #include "mpi.h"
+ #include "i18n.h"
+diff --git a/util/iobuf.c b/util/iobuf.c
+index c8442929a..0d9ee4cec 100644
+--- a/util/iobuf.c
++++ b/util/iobuf.c
+@@ -113,6 +113,8 @@ typedef struct {
+ static CLOSE_CACHE close_cache;
+ #endif
+
++int iobuf_debug_mode;
++
+ #ifdef _WIN32
+ typedef struct {
+ int sock;
+--
+2.26.2
+
diff --git a/patches/iscsi/2.0.875/open-iscsi-2.0.874-musl-ethtool-compat.patch b/patches/iscsi/2.0.875/open-iscsi-2.0.874-musl-ethtool-compat.patch
deleted file mode 100644
index 12b82c7..0000000
--- a/patches/iscsi/2.0.875/open-iscsi-2.0.874-musl-ethtool-compat.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From: Anthony G. Basiel <blueness@gentoo.org>
-
-diff -Naur open-iscsi-2.0.874.orig/iscsiuio/src/unix/libs/bnx2x.c open-iscsi-2.0.874/iscsiuio/src/unix/libs/bnx2x.c
---- open-iscsi-2.0.874.orig/iscsiuio/src/unix/libs/bnx2x.c 2016-09-29 18:33:24.000000000 +0000
-+++ open-iscsi-2.0.874/iscsiuio/src/unix/libs/bnx2x.c 2017-01-03 21:45:47.504035833 +0000
-@@ -42,7 +42,7 @@
- #include <arpa/inet.h>
- #include <linux/types.h> /* Needed for linux/ethtool.h on RHEL 5.x */
- #include <linux/sockios.h>
--#include <linux/ethtool.h>
-+#include "ethtool-compat.h"
- #include <sys/mman.h>
- #include <sys/ioctl.h>
- #include <sys/types.h>
-diff -Naur open-iscsi-2.0.874.orig/iscsiuio/src/unix/libs/ethtool-compat.h open-iscsi-2.0.874/iscsiuio/src/unix/libs/ethtool-compat.h
---- open-iscsi-2.0.874.orig/iscsiuio/src/unix/libs/ethtool-compat.h 1970-01-01 00:00:00.000000000 +0000
-+++ open-iscsi-2.0.874/iscsiuio/src/unix/libs/ethtool-compat.h 2017-01-03 21:45:23.016034980 +0000
-@@ -0,0 +1,51 @@
-+/*
-+ * ethtool-compat.h: adopted from
-+ # ethtool.h: Defines for Linux ethtool.
-+ *
-+ * Copyright (C) 1998 David S. Miller (davem@redhat.com)
-+ * Copyright 2001 Jeff Garzik <jgarzik@pobox.com>
-+ * Portions Copyright 2001 Sun Microsystems (thockin@sun.com)
-+ * Portions Copyright 2002 Intel (eli.kupermann@intel.com,
-+ * christopher.leech@intel.com,
-+ * scott.feldman@intel.com)
-+ * Portions Copyright (C) Sun Microsystems 2008
-+ */
-+
-+#include <linux/types.h>
-+#include <netinet/if_ether.h>
-+
-+#define ETHTOOL_FWVERS_LEN 32
-+#define ETHTOOL_BUSINFO_LEN 32
-+#define ETHTOOL_EROMVERS_LEN 32
-+
-+struct ethtool_drvinfo {
-+ __u32 cmd;
-+ char driver[32];
-+ char version[32];
-+ char fw_version[ETHTOOL_FWVERS_LEN];
-+ char bus_info[ETHTOOL_BUSINFO_LEN];
-+ char erom_version[ETHTOOL_EROMVERS_LEN];
-+ char reserved2[12];
-+ __u32 n_priv_flags;
-+ __u32 n_stats;
-+ __u32 testinfo_len;
-+ __u32 eedump_len;
-+ __u32 regdump_len;
-+};
-+
-+struct ethtool_tcpip4_spec {
-+ __be32 ip4src;
-+ __be32 ip4dst;
-+ __be16 psrc;
-+ __be16 pdst;
-+ __u8 tos;
-+};
-+
-+struct ethtool_ah_espip4_spec {
-+ __be32 ip4src;
-+ __be32 ip4dst;
-+ __be32 spi;
-+ __u8 tos;
-+};
-+
-+#define ETHTOOL_GDRVINFO 0x00000003 /* Get driver info. */
diff --git a/patches/iscsi/2.0.875/open-iscsi-2.0.874-musl-fixes.patch b/patches/iscsi/2.0.875/open-iscsi-2.0.874-musl-fixes.patch
deleted file mode 100644
index cf8b762..0000000
--- a/patches/iscsi/2.0.875/open-iscsi-2.0.874-musl-fixes.patch
+++ /dev/null
@@ -1,51 +0,0 @@
---- ./utils/fwparam_ibft/fwparam_ppc.c 2016-09-29 13:33:24.000000000 -0500
-+++ ./utils/fwparam_ibft/fwparam_ppc.c 2017-01-02 11:37:32.738351217 -0600
-@@ -356,7 +356,7 @@
- * Sort the nics into "natural" order. The proc fs
- * device-tree has them in somewhat random, or reversed order.
- */
-- qsort(niclist, nic_count, sizeof(char *), (__compar_fn_t)nic_cmp);
-+ qsort(niclist, nic_count, sizeof(char *), (int (*)(const void *, const void *))nic_cmp);
-
- snprintf(prefix, sizeof(prefix), "%s/%s", devtree, "aliases");
- dev_count = 0;
---- ./usr/idbm.c.orig
-+++ ./usr/idbm.c
-@@ -25,6 +25,7 @@
- #include <stdlib.h>
- #include <string.h>
- #include <errno.h>
-+#include <fcntl.h>
- #include <dirent.h>
- #include <limits.h>
- #include <sys/stat.h>
---- a/usr/iscsiadm.c 2016-09-29 13:33:24.000000000 -0500
-+++ b/usr/iscsiadm.c 2017-01-02 11:46:37.643506953 -0600
-@@ -3262,6 +3262,7 @@
- int tpgt = PORTAL_GROUP_TAG_UNKNOWN, killiscsid=-1, do_show=0;
- int packet_size=32, ping_count=1, ping_interval=0;
- int do_discover = 0, sub_mode = -1;
-+ int argerror = 0;
- int portal_type = -1;
- struct sigaction sa_old;
- struct sigaction sa_new;
-@@ -3426,6 +3427,9 @@
- break;
- case 'h':
- usage(0);
-+ case '?':
-+ log_error("unrecognized character '%c'", optopt);
-+ argerror = 1;
- }
-
- if (name && value) {
-@@ -3441,8 +3445,7 @@
- }
- }
-
-- if (optopt) {
-- log_error("unrecognized character '%c'", optopt);
-+ if (argerror) {
- rc = ISCSI_ERR_INVAL;
- goto free_ifaces;
- }
diff --git a/patches/iscsi/2.0.875/open-iscsi-2.0.875-declare-inline-best_match_bufcmp-as-static.patch b/patches/iscsi/2.0.875/open-iscsi-2.0.875-declare-inline-best_match_bufcmp-as-static.patch
deleted file mode 100644
index 7bd7f9a..0000000
--- a/patches/iscsi/2.0.875/open-iscsi-2.0.875-declare-inline-best_match_bufcmp-as-static.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From ec9865c5b2a05908dff774eda352d84d6a001e1a Mon Sep 17 00:00:00 2001
-From: Lee Duncan <lduncan@suse.com>
-Date: Sat, 2 Dec 2017 14:24:52 -0800
-Subject: [PATCH] Declare inline best_match_bufcmp() as static.
-
-The 7.2.1 version of gcc seems to be more strict
-about this. See https://gcc.gnu.org/onlinedocs/gcc/Inline.html
----
- iscsiuio/src/uip/ipv6.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/iscsiuio/src/uip/ipv6.c b/iscsiuio/src/uip/ipv6.c
-index ced98a67..05efa73f 100644
---- a/iscsiuio/src/uip/ipv6.c
-+++ b/iscsiuio/src/uip/ipv6.c
-@@ -49,7 +49,7 @@
- #include "dhcpv6.h"
- #include "ping.h"
-
--inline int best_match_bufcmp(u8_t *a, u8_t *b, int len)
-+static inline int best_match_bufcmp(u8_t *a, u8_t *b, int len)
- {
- int i;
-
diff --git a/patches/iscsi/2.0.875/open-iscsi-2.0.875-include-sysmacros.patch b/patches/iscsi/2.0.875/open-iscsi-2.0.875-include-sysmacros.patch
deleted file mode 100644
index 7c19a1e..0000000
--- a/patches/iscsi/2.0.875/open-iscsi-2.0.875-include-sysmacros.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From 6d68ef5871c94c6ebbbe6e6b1fe0bc2dce711052 Mon Sep 17 00:00:00 2001
-From: Lee Duncan <lduncan@suse.com>
-Date: Sat, 2 Dec 2017 14:19:26 -0800
-Subject: [PATCH] Include <sys/sysmacros.h> to properly define minor()
-
----
- iscsiuio/src/unix/libs/qedi.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/iscsiuio/src/unix/libs/qedi.c b/iscsiuio/src/unix/libs/qedi.c
-index c6ff6e77..b81fecdf 100644
---- a/iscsiuio/src/unix/libs/qedi.c
-+++ b/iscsiuio/src/unix/libs/qedi.c
-@@ -58,6 +58,7 @@
- #include <sys/user.h>
- #include <fcntl.h>
- #include <unistd.h>
-+#include <sys/sysmacros.h>
-
- #include "config.h"
-
diff --git a/patches/iscsi/2.0.875/open-iscsi-2.0.875-static-iscsistart.patch b/patches/iscsi/2.0.875/open-iscsi-2.0.875-static-iscsistart.patch
deleted file mode 100644
index c190627..0000000
--- a/patches/iscsi/2.0.875/open-iscsi-2.0.875-static-iscsistart.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/usr/Makefile b/usr/Makefile
-index c1866b6..2990060 100644
---- a/usr/Makefile
-+++ b/usr/Makefile
-@@ -61,7 +61,7 @@ iscsiadm: $(ISCSI_LIB_SRCS) $(DISCOVERY_SRCS) iscsiadm.o session_mgmt.o mntcheck
-
- iscsistart: $(ISCSI_LIB_SRCS) $(INITIATOR_SRCS) $(FW_BOOT_SRCS) \
- iscsistart.o statics.o
-- $(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@ -lrt
-+ $(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@ -static -lrt
- clean:
- rm -f *.o $(PROGRAMS) .depend $(LIBSYS)
-
diff --git a/patches/json-c/0.13.1/json-c-0.13.1-CVE-2020-12762.patch b/patches/json-c/0.13.1/json-c-0.13.1-CVE-2020-12762.patch
new file mode 100644
index 0000000..f3a9860
--- /dev/null
+++ b/patches/json-c/0.13.1/json-c-0.13.1-CVE-2020-12762.patch
@@ -0,0 +1,227 @@
+From 865b5a65199973bb63dff8e47a2f57e04fec9736 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= <besser82@fedoraproject.org>
+Date: Thu, 14 May 2020 12:32:30 +0200
+Subject: [PATCH] Fix CVE-2020-12762.
+
+This commit is a squashed backport of the following commits
+on the master branch:
+
+ * 099016b7e8d70a6d5dd814e788bba08d33d48426
+ * 77d935b7ae7871a1940cd827e850e6063044ec45
+ * d07b91014986900a3a75f306d302e13e005e9d67
+ * 519dfe1591d85432986f9762d41d1a883198c157
+ * a59d5acfab4485d5133114df61785b1fc633e0c6
+---
+ arraylist.c | 3 +++
+ linkhash.c | 21 ++++++++++++++-------
+ printbuf.c | 38 ++++++++++++++++++++++++++------------
+ tests/test4.c | 30 +++++++++++++++++++++++++++++-
+ tests/test4.expected | 1 +
+ 5 files changed, 73 insertions(+), 20 deletions(-)
+
+diff --git a/arraylist.c b/arraylist.c
+index ddeb8d4eb4..e737052e32 100644
+--- a/arraylist.c
++++ b/arraylist.c
+@@ -135,6 +135,9 @@ array_list_del_idx( struct array_list *arr, size_t idx, size_t count )
+ {
+ size_t i, stop;
+
++ /* Avoid overflow in calculation with large indices. */
++ if (idx > SIZE_T_MAX - count)
++ return -1;
+ stop = idx + count;
+ if ( idx >= arr->length || stop > arr->length ) return -1;
+ for ( i = idx; i < stop; ++i ) {
+diff --git a/linkhash.c b/linkhash.c
+index 5497061a8a..6435a154ac 100644
+--- a/linkhash.c
++++ b/linkhash.c
+@@ -12,12 +12,13 @@
+
+ #include "config.h"
+
+-#include <stdio.h>
+-#include <string.h>
+-#include <stdlib.h>
++#include <assert.h>
++#include <limits.h>
+ #include <stdarg.h>
+ #include <stddef.h>
+-#include <limits.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
+
+ #ifdef HAVE_ENDIAN_H
+ # include <endian.h> /* attempt to define endianness */
+@@ -28,8 +29,8 @@
+ # include <windows.h> /* Get InterlockedCompareExchange */
+ #endif
+
+-#include "random_seed.h"
+ #include "linkhash.h"
++#include "random_seed.h"
+
+ /* hash functions */
+ static unsigned long lh_char_hash(const void *k);
+@@ -498,7 +499,9 @@ struct lh_table* lh_table_new(int size,
+ int i;
+ struct lh_table *t;
+
+- t = (struct lh_table*)calloc(1, sizeof(struct lh_table));
++ /* Allocate space for elements to avoid divisions by zero. */
++ assert(size > 0);
++ t = (struct lh_table *)calloc(1, sizeof(struct lh_table));
+ if (!t)
+ return NULL;
+
+@@ -577,8 +580,12 @@ int lh_table_insert_w_hash(struct lh_table *t, const void *k, const void *v, con
+ unsigned long n;
+
+ if (t->count >= t->size * LH_LOAD_FACTOR)
+- if (lh_table_resize(t, t->size * 2) != 0)
++ {
++ /* Avoid signed integer overflow with large tables. */
++ int new_size = (t->size > INT_MAX / 2) ? INT_MAX : (t->size * 2);
++ if (t->size == INT_MAX || lh_table_resize(t, new_size) != 0)
+ return -1;
++ }
+
+ n = h % t->size;
+
+diff --git a/printbuf.c b/printbuf.c
+index 6c77b5defd..6fc56de455 100644
+--- a/printbuf.c
++++ b/printbuf.c
+@@ -15,6 +15,7 @@
+
+ #include "config.h"
+
++#include <limits.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+@@ -64,10 +65,16 @@ static int printbuf_extend(struct printbuf *p, int min_size)
+
+ if (p->size >= min_size)
+ return 0;
+-
+- new_size = p->size * 2;
+- if (new_size < min_size + 8)
+- new_size = min_size + 8;
++ /* Prevent signed integer overflows with large buffers. */
++ if (min_size > INT_MAX - 8)
++ return -1;
++ if (p->size > INT_MAX / 2)
++ new_size = min_size + 8;
++ else {
++ new_size = p->size * 2;
++ if (new_size < min_size + 8)
++ new_size = min_size + 8;
++ }
+ #ifdef PRINTBUF_DEBUG
+ MC_DEBUG("printbuf_memappend: realloc "
+ "bpos=%d min_size=%d old_size=%d new_size=%d\n",
+@@ -82,14 +89,18 @@ static int printbuf_extend(struct printbuf *p, int min_size)
+
+ int printbuf_memappend(struct printbuf *p, const char *buf, int size)
+ {
+- if (p->size <= p->bpos + size + 1) {
+- if (printbuf_extend(p, p->bpos + size + 1) < 0)
+- return -1;
+- }
+- memcpy(p->buf + p->bpos, buf, size);
+- p->bpos += size;
+- p->buf[p->bpos]= '\0';
+- return size;
++ /* Prevent signed integer overflows with large buffers. */
++ if (size > INT_MAX - p->bpos - 1)
++ return -1;
++ if (p->size <= p->bpos + size + 1)
++ {
++ if (printbuf_extend(p, p->bpos + size + 1) < 0)
++ return -1;
++ }
++ memcpy(p->buf + p->bpos, buf, size);
++ p->bpos += size;
++ p->buf[p->bpos] = '\0';
++ return size;
+ }
+
+ int printbuf_memset(struct printbuf *pb, int offset, int charvalue, int len)
+@@ -98,6 +109,9 @@ int printbuf_memset(struct printbuf *pb, int offset, int charvalue, int len)
+
+ if (offset == -1)
+ offset = pb->bpos;
++ /* Prevent signed integer overflows with large buffers. */
++ if (len > INT_MAX - offset)
++ return -1;
+ size_needed = offset + len;
+ if (pb->size < size_needed)
+ {
+diff --git a/tests/test4.c b/tests/test4.c
+index fc8b79dbf4..82d3f494de 100644
+--- a/tests/test4.c
++++ b/tests/test4.c
+@@ -2,9 +2,11 @@
+ * gcc -o utf8 utf8.c -I/home/y/include -L./.libs -ljson
+ */
+
++#include "config.h"
++#include <assert.h>
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <string.h>
+-#include "config.h"
+
+ #include "json_inttypes.h"
+ #include "json_object.h"
+@@ -24,6 +26,29 @@ void print_hex(const char* s)
+ putchar('\n');
+ }
+
++static void test_lot_of_adds(void);
++static void test_lot_of_adds()
++{
++ int ii;
++ char key[50];
++ json_object *jobj = json_object_new_object();
++ assert(jobj != NULL);
++ for (ii = 0; ii < 500; ii++)
++ {
++ snprintf(key, sizeof(key), "k%d", ii);
++ json_object *iobj = json_object_new_int(ii);
++ assert(iobj != NULL);
++ if (json_object_object_add(jobj, key, iobj))
++ {
++ fprintf(stderr, "FAILED to add object #%d\n", ii);
++ abort();
++ }
++ }
++ printf("%s\n", json_object_to_json_string(jobj));
++ assert(json_object_object_length(jobj) == 500);
++ json_object_put(jobj);
++}
++
+ int main(void)
+ {
+ const char *input = "\"\\ud840\\udd26,\\ud840\\udd27,\\ud800\\udd26,\\ud800\\udd27\"";
+@@ -49,5 +74,8 @@ int main(void)
+ retval = 1;
+ }
+ json_object_put(parse_result);
++
++ test_lot_of_adds();
++
+ return retval;
+ }
+diff --git a/tests/test4.expected b/tests/test4.expected
+index 68d4336d90..cb2744012b 100644
+--- a/tests/test4.expected
++++ b/tests/test4.expected
+@@ -1,3 +1,4 @@
+ input: "\ud840\udd26,\ud840\udd27,\ud800\udd26,\ud800\udd27"
+ JSON parse result is correct: 𠄦,𠄧,𐄦,𐄧
+ PASS
++{ "k0": 0, "k1": 1, "k2": 2, "k3": 3, "k4": 4, "k5": 5, "k6": 6, "k7": 7, "k8": 8, "k9": 9, "k10": 10, "k11": 11, "k12": 12, "k13": 13, "k14": 14, "k15": 15, "k16": 16, "k17": 17, "k18": 18, "k19": 19, "k20": 20, "k21": 21, "k22": 22, "k23": 23, "k24": 24, "k25": 25, "k26": 26, "k27": 27, "k28": 28, "k29": 29, "k30": 30, "k31": 31, "k32": 32, "k33": 33, "k34": 34, "k35": 35, "k36": 36, "k37": 37, "k38": 38, "k39": 39, "k40": 40, "k41": 41, "k42": 42, "k43": 43, "k44": 44, "k45": 45, "k46": 46, "k47": 47, "k48": 48, "k49": 49, "k50": 50, "k51": 51, "k52": 52, "k53": 53, "k54": 54, "k55": 55, "k56": 56, "k57": 57, "k58": 58, "k59": 59, "k60": 60, "k61": 61, "k62": 62, "k63": 63, "k64": 64, "k65": 65, "k66": 66, "k67": 67, "k68": 68, "k69": 69, "k70": 70, "k71": 71, "k72": 72, "k73": 73, "k74": 74, "k75": 75, "k76": 76, "k77": 77, "k78": 78, "k79": 79, "k80": 80, "k81": 81, "k82": 82, "k83": 83, "k84": 84, "k85": 85, "k86": 86, "k87": 87, "k88": 88, "k89": 89, "k90": 90, "k91": 91, "k92": 92, "k93": 93, "k94": 94, "k95": 95, "k96": 96, "k97": 97, "k98": 98, "k99": 99, "k100": 100, "k101": 101, "k102": 102, "k103": 103, "k104": 104, "k105": 105, "k106": 106, "k107": 107, "k108": 108, "k109": 109, "k110": 110, "k111": 111, "k112": 112, "k113": 113, "k114": 114, "k115": 115, "k116": 116, "k117": 117, "k118": 118, "k119": 119, "k120": 120, "k121": 121, "k122": 122, "k123": 123, "k124": 124, "k125": 125, "k126": 126, "k127": 127, "k128": 128, "k129": 129, "k130": 130, "k131": 131, "k132": 132, "k133": 133, "k134": 134, "k135": 135, "k136": 136, "k137": 137, "k138": 138, "k139": 139, "k140": 140, "k141": 141, "k142": 142, "k143": 143, "k144": 144, "k145": 145, "k146": 146, "k147": 147, "k148": 148, "k149": 149, "k150": 150, "k151": 151, "k152": 152, "k153": 153, "k154": 154, "k155": 155, "k156": 156, "k157": 157, "k158": 158, "k159": 159, "k160": 160, "k161": 161, "k162": 162, "k163": 163, "k164": 164, "k165": 165, "k166": 166, "k167": 167, "k168": 168, "k169": 169, "k170": 170, "k171": 171, "k172": 172, "k173": 173, "k174": 174, "k175": 175, "k176": 176, "k177": 177, "k178": 178, "k179": 179, "k180": 180, "k181": 181, "k182": 182, "k183": 183, "k184": 184, "k185": 185, "k186": 186, "k187": 187, "k188": 188, "k189": 189, "k190": 190, "k191": 191, "k192": 192, "k193": 193, "k194": 194, "k195": 195, "k196": 196, "k197": 197, "k198": 198, "k199": 199, "k200": 200, "k201": 201, "k202": 202, "k203": 203, "k204": 204, "k205": 205, "k206": 206, "k207": 207, "k208": 208, "k209": 209, "k210": 210, "k211": 211, "k212": 212, "k213": 213, "k214": 214, "k215": 215, "k216": 216, "k217": 217, "k218": 218, "k219": 219, "k220": 220, "k221": 221, "k222": 222, "k223": 223, "k224": 224, "k225": 225, "k226": 226, "k227": 227, "k228": 228, "k229": 229, "k230": 230, "k231": 231, "k232": 232, "k233": 233, "k234": 234, "k235": 235, "k236": 236, "k237": 237, "k238": 238, "k239": 239, "k240": 240, "k241": 241, "k242": 242, "k243": 243, "k244": 244, "k245": 245, "k246": 246, "k247": 247, "k248": 248, "k249": 249, "k250": 250, "k251": 251, "k252": 252, "k253": 253, "k254": 254, "k255": 255, "k256": 256, "k257": 257, "k258": 258, "k259": 259, "k260": 260, "k261": 261, "k262": 262, "k263": 263, "k264": 264, "k265": 265, "k266": 266, "k267": 267, "k268": 268, "k269": 269, "k270": 270, "k271": 271, "k272": 272, "k273": 273, "k274": 274, "k275": 275, "k276": 276, "k277": 277, "k278": 278, "k279": 279, "k280": 280, "k281": 281, "k282": 282, "k283": 283, "k284": 284, "k285": 285, "k286": 286, "k287": 287, "k288": 288, "k289": 289, "k290": 290, "k291": 291, "k292": 292, "k293": 293, "k294": 294, "k295": 295, "k296": 296, "k297": 297, "k298": 298, "k299": 299, "k300": 300, "k301": 301, "k302": 302, "k303": 303, "k304": 304, "k305": 305, "k306": 306, "k307": 307, "k308": 308, "k309": 309, "k310": 310, "k311": 311, "k312": 312, "k313": 313, "k314": 314, "k315": 315, "k316": 316, "k317": 317, "k318": 318, "k319": 319, "k320": 320, "k321": 321, "k322": 322, "k323": 323, "k324": 324, "k325": 325, "k326": 326, "k327": 327, "k328": 328, "k329": 329, "k330": 330, "k331": 331, "k332": 332, "k333": 333, "k334": 334, "k335": 335, "k336": 336, "k337": 337, "k338": 338, "k339": 339, "k340": 340, "k341": 341, "k342": 342, "k343": 343, "k344": 344, "k345": 345, "k346": 346, "k347": 347, "k348": 348, "k349": 349, "k350": 350, "k351": 351, "k352": 352, "k353": 353, "k354": 354, "k355": 355, "k356": 356, "k357": 357, "k358": 358, "k359": 359, "k360": 360, "k361": 361, "k362": 362, "k363": 363, "k364": 364, "k365": 365, "k366": 366, "k367": 367, "k368": 368, "k369": 369, "k370": 370, "k371": 371, "k372": 372, "k373": 373, "k374": 374, "k375": 375, "k376": 376, "k377": 377, "k378": 378, "k379": 379, "k380": 380, "k381": 381, "k382": 382, "k383": 383, "k384": 384, "k385": 385, "k386": 386, "k387": 387, "k388": 388, "k389": 389, "k390": 390, "k391": 391, "k392": 392, "k393": 393, "k394": 394, "k395": 395, "k396": 396, "k397": 397, "k398": 398, "k399": 399, "k400": 400, "k401": 401, "k402": 402, "k403": 403, "k404": 404, "k405": 405, "k406": 406, "k407": 407, "k408": 408, "k409": 409, "k410": 410, "k411": 411, "k412": 412, "k413": 413, "k414": 414, "k415": 415, "k416": 416, "k417": 417, "k418": 418, "k419": 419, "k420": 420, "k421": 421, "k422": 422, "k423": 423, "k424": 424, "k425": 425, "k426": 426, "k427": 427, "k428": 428, "k429": 429, "k430": 430, "k431": 431, "k432": 432, "k433": 433, "k434": 434, "k435": 435, "k436": 436, "k437": 437, "k438": 438, "k439": 439, "k440": 440, "k441": 441, "k442": 442, "k443": 443, "k444": 444, "k445": 445, "k446": 446, "k447": 447, "k448": 448, "k449": 449, "k450": 450, "k451": 451, "k452": 452, "k453": 453, "k454": 454, "k455": 455, "k456": 456, "k457": 457, "k458": 458, "k459": 459, "k460": 460, "k461": 461, "k462": 462, "k463": 463, "k464": 464, "k465": 465, "k466": 466, "k467": 467, "k468": 468, "k469": 469, "k470": 470, "k471": 471, "k472": 472, "k473": 473, "k474": 474, "k475": 475, "k476": 476, "k477": 477, "k478": 478, "k479": 479, "k480": 480, "k481": 481, "k482": 482, "k483": 483, "k484": 484, "k485": 485, "k486": 486, "k487": 487, "k488": 488, "k489": 489, "k490": 490, "k491": 491, "k492": 492, "k493": 493, "k494": 494, "k495": 495, "k496": 496, "k497": 497, "k498": 498, "k499": 499 }
diff --git a/patches/kmod/29/kmod-29-static.patch b/patches/kmod/29/kmod-29-static.patch
new file mode 100644
index 0000000..c29ab7f
--- /dev/null
+++ b/patches/kmod/29/kmod-29-static.patch
@@ -0,0 +1,12 @@
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -155,6 +155,8 @@ tools_kmod_SOURCES += \
+ tools/remove.c
+ endif
+
++tools_kmod_LDFLAGS = -all-static
++
+ tools_kmod_LDADD = \
+ shared/libshared.la \
+ libkmod/libkmod-internal.la
+
diff --git a/patches/kmod/30/kmod-29-static.patch b/patches/kmod/30/kmod-29-static.patch
new file mode 100644
index 0000000..c29ab7f
--- /dev/null
+++ b/patches/kmod/30/kmod-29-static.patch
@@ -0,0 +1,12 @@
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -155,6 +155,8 @@ tools_kmod_SOURCES += \
+ tools/remove.c
+ endif
+
++tools_kmod_LDFLAGS = -all-static
++
+ tools_kmod_LDADD = \
+ shared/libshared.la \
+ libkmod/libkmod-internal.la
+
diff --git a/patches/kmod/31/kmod-29-static.patch b/patches/kmod/31/kmod-29-static.patch
new file mode 100644
index 0000000..c29ab7f
--- /dev/null
+++ b/patches/kmod/31/kmod-29-static.patch
@@ -0,0 +1,12 @@
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -155,6 +155,8 @@ tools_kmod_SOURCES += \
+ tools/remove.c
+ endif
+
++tools_kmod_LDFLAGS = -all-static
++
+ tools_kmod_LDADD = \
+ shared/libshared.la \
+ libkmod/libkmod-internal.la
+
diff --git a/patches/libaio/0.3.110/libaio-0.3.109-install.patch b/patches/libaio/0.3.110/libaio-0.3.109-install.patch
deleted file mode 100644
index 9c049fc..0000000
--- a/patches/libaio/0.3.110/libaio-0.3.109-install.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 2e34caef82a2367a85de4f06daf5e5a92f61e845 Mon Sep 17 00:00:00 2001
-From: Mike Frysinger <vapier@gentoo.org>
-Date: Sun, 17 Jan 2010 17:10:14 -0500
-Subject: [PATCH] fix up install paths
-
-This is similar to the Fedora patch, but this uses more common conventions
-like "DESTDIR" instead of "destdir".
-
-Signed-off-by: Mike Frysinger <vapier@gentoo.org>
----
- src/Makefile | 11 ++++++-----
- 1 files changed, 6 insertions(+), 5 deletions(-)
-
-diff --git a/src/Makefile b/src/Makefile
-index 687c7be..ee431a1 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -1,6 +1,7 @@
- prefix=/usr
- includedir=$(prefix)/include
- libdir=$(prefix)/lib
-+usrlibdir=$(libdir)
-
- CFLAGS ?= -g -fomit-frame-pointer -O2
- CFLAGS += -nostdlib -nostartfiles -Wall -I. -fPIC
-@@ -53,11 +54,11 @@ $(libname): $(libaio_sobjs) libaio.map
- $(CC) $(SO_CFLAGS) -Wl,--version-script=libaio.map -Wl,-soname,$(soname) -o $@ $(libaio_sobjs) $(LINK_FLAGS)
-
- install: $(all_targets)
-- install -D -m 644 libaio.h $(includedir)/libaio.h
-- install -D -m 644 libaio.a $(libdir)/libaio.a
-- install -D -m 755 $(libname) $(libdir)/$(libname)
-- ln -sf $(libname) $(libdir)/$(soname)
-- ln -sf $(libname) $(libdir)/libaio.so
-+ install -D -m 644 libaio.h $(DESTDIR)$(includedir)/libaio.h
-+ install -D -m 644 libaio.a $(DESTDIR)$(usrlibdir)/libaio.a
-+ install -D -m 755 $(libname) $(DESTDIR)$(libdir)/$(libname)
-+ ln -sf $(libname) $(DESTDIR)$(usrlibdir)/$(soname)
-+ ln -sf $(libname) $(DESTDIR)$(usrlibdir)/libaio.so
-
- $(libaio_objs): libaio.h
-
---
-1.7.3.1
-
diff --git a/patches/libaio/0.3.110/libaio-0.3.109-testcase-8.patch b/patches/libaio/0.3.110/libaio-0.3.109-testcase-8.patch
deleted file mode 100644
index de66f21..0000000
--- a/patches/libaio/0.3.110/libaio-0.3.109-testcase-8.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Do not ignore return value of ftruncate(): testcases are compiled with -Werror,
-and ftruncate is declared with attribute warn_unused_result.
---- harness/cases/8.t.orig 2012-03-09 16:40:04.074168070 +0100
-+++ harness/cases/8.t 2012-03-09 16:40:57.777278646 +0100
-@@ -9,12 +9,13 @@
- {
- long long min = 0, max = 9223372036854775807LL;
- char c = 0;
-+ int ret;
-
- while (max - min > 1) {
- if (pwrite64(fd, &c, 1, (min + max) / 2) == -1)
- max = (min + max) / 2;
- else {
-- ftruncate(fd, 0);
-+ ret = ftruncate(fd, 0); assert(ret == 0);
- min = (min + max) / 2;
- }
- }
diff --git a/patches/libaio/0.3.110/libaio-0.3.109-x32.patch b/patches/libaio/0.3.110/libaio-0.3.109-x32.patch
deleted file mode 100644
index 1d2c2a9..0000000
--- a/patches/libaio/0.3.110/libaio-0.3.109-x32.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=f5c071d93c9e6f57930bce56b1e4f009c160a826
-
-Upstream-Status: Pending
-
-Properly load arguments 5 an 6 for x86-64 syscall
-Use asm ("r10") and asm ("r8") to load arguments 5 an 6 for x86-64
-syscall so that it works with both x32 and x86-64.
-
-Received this patch from H.J. Lu <hjl.tools@gmail.com>
-
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
-2011/12/02
-
---- libaio-0.3.109/src/syscall-x86_64.h.x32 2009-10-09 11:17:02.000000000 -0700
-+++ libaio-0.3.109/src/syscall-x86_64.h 2011-12-02 09:09:07.537603224 -0800
-@@ -1,8 +1,18 @@
-+#ifndef __NR_io_setup
- #define __NR_io_setup 206
-+#endif
-+#ifndef __NR_io_destroy
- #define __NR_io_destroy 207
-+#endif
-+#ifndef __NR_io_getevents
- #define __NR_io_getevents 208
-+#endif
-+#ifndef __NR_io_submit
- #define __NR_io_submit 209
-+#endif
-+#ifndef __NR_io_cancel
- #define __NR_io_cancel 210
-+#endif
-
- #define __syscall_clobber "r11","rcx","memory"
- #define __syscall "syscall"
-@@ -42,10 +52,11 @@ return __res; \
- type fname (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
- { \
- long __res; \
--__asm__ volatile ("movq %5,%%r10 ;" __syscall \
-+register long __a4 asm ("r10") = (long) arg4; \
-+__asm__ volatile (__syscall \
- : "=a" (__res) \
- : "0" (__NR_##sname),"D" ((long)(arg1)),"S" ((long)(arg2)), \
-- "d" ((long)(arg3)),"g" ((long)(arg4)) : __syscall_clobber,"r10" ); \
-+ "d" ((long)(arg3)),"r" (__a4)); \
- return __res; \
- }
-
-@@ -54,10 +65,11 @@ return __res; \
- type fname (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5) \
- { \
- long __res; \
--__asm__ volatile ("movq %5,%%r10 ; movq %6,%%r8 ; " __syscall \
-+register long __a4 asm ("r10") = (long) arg4; \
-+register long __a5 asm ("r8") = (long) arg5; \
-+__asm__ volatile ( __syscall \
- : "=a" (__res) \
- : "0" (__NR_##sname),"D" ((long)(arg1)),"S" ((long)(arg2)), \
-- "d" ((long)(arg3)),"g" ((long)(arg4)),"g" ((long)(arg5)) : \
-- __syscall_clobber,"r8","r10" ); \
-+ "d" ((long)(arg3)),"r" (__a4),"r" (__a5)); \
- return __res; \
- }
diff --git a/patches/libaio/0.3.110/libaio-0.3.110-cppflags.patch b/patches/libaio/0.3.110/libaio-0.3.110-cppflags.patch
deleted file mode 100644
index 4567ac9..0000000
--- a/patches/libaio/0.3.110/libaio-0.3.110-cppflags.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 3bf96bb62370035dba18d4b25459406b32365cfc Mon Sep 17 00:00:00 2001
-From: Mike Frysinger <vapier@gentoo.org>
-Date: Wed, 26 Mar 2014 23:10:18 -0400
-Subject: [PATCH] respect env CPPFLAGS
-
-Signed-off-by: Mike Frysinger <vapier@gentoo.org>
----
- src/Makefile | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/Makefile b/src/Makefile
-index 49f448f..b918c8b 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -5,6 +5,7 @@ usrlibdir=$(libdir)
-
- CFLAGS ?= -g -fomit-frame-pointer -O2
- CFLAGS += -nostdlib -nostartfiles -Wall -I. -fPIC
-+CFLAGS += $(CPPFLAGS)
- SO_CFLAGS=-shared $(CFLAGS)
- L_CFLAGS=$(CFLAGS)
- LINK_FLAGS=
---
-1.9.1
-
diff --git a/patches/libaio/0.3.110/libaio-0.3.110-link-stdlib.patch b/patches/libaio/0.3.110/libaio-0.3.110-link-stdlib.patch
deleted file mode 100644
index 696a928..0000000
--- a/patches/libaio/0.3.110/libaio-0.3.110-link-stdlib.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From: Gokturk Yuksek <gokturk@binghamton.edu>
-Subject: [PATCH] Link against stdlib to resolve fortified functions
-
-When '-fstack-protector-strong' is included in CFLAGS, the function
-'__stack_chk_fail_local' needs to be pulled from libc. However, upstream
-uses '-nostdlib' to avoid linking against any C library or gcc libs. Remove
-'-nostdlib' and '-nostartfiles' to pull the required symbols from libc.
-
-Gentoo-Bug: https://bugs.gentoo.org/show_bug.cgi?id=558406
-
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -4,7 +4,7 @@
- usrlibdir=$(libdir)
-
- CFLAGS ?= -g -fomit-frame-pointer -O2
--CFLAGS += -nostdlib -nostartfiles -Wall -I. -fPIC
-+CFLAGS += -Wall -I. -fPIC
- CFLAGS += $(CPPFLAGS)
- SO_CFLAGS=-shared $(CFLAGS)
- L_CFLAGS=$(CFLAGS)
diff --git a/patches/libaio/0.3.110/libaio-0.3.110-optional-werror.patch b/patches/libaio/0.3.112/libaio-0.3.111-optional-werror.patch
index 2933cf5..5b6f91e 100644
--- a/patches/libaio/0.3.110/libaio-0.3.110-optional-werror.patch
+++ b/patches/libaio/0.3.112/libaio-0.3.111-optional-werror.patch
@@ -1,6 +1,6 @@
-From 0cc7dc108d0b2288b40d82bb2fd1fd8bdc08f764 Mon Sep 17 00:00:00 2001
+From ebe62b178f3e5fcde8a311e64aaffe62099204a5 Mon Sep 17 00:00:00 2001
From: Mike Frysinger <vapier@gentoo.org>
-Date: Wed, 26 Mar 2014 23:07:58 -0400
+Date: Sun, 21 Apr 2019 12:44:26 +0200
Subject: [PATCH] make -Werror into an optional flag
This lets distros disable the flag as random errors might come up with
@@ -12,19 +12,19 @@ Signed-off-by: Mike Frysinger <vapier@gentoo.org>
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/harness/Makefile b/harness/Makefile
-index 2a88e71..cf8c90d 100644
+index f477737..a155c4b 100644
--- a/harness/Makefile
+++ b/harness/Makefile
@@ -6,7 +6,8 @@ PROGS:=$(PARTPROGS) $(EXTRAPROGS)
HARNESS_SRCS:=main.c
# io_queue.c
--CFLAGS+=-Wall -Werror -I../src -g -O
+-CFLAGS+=-Wall -Werror -I../src -g -O2 -DPAGE_SIZE=$(shell getconf PAGESIZE)
+CFLAGS_WERROR?=-Werror
-+CFLAGS+=-Wall $(CFLAGS_WERROR) -I../src -g -O
++CFLAGS+=-Wall $(CFLAGS_WERROR) -I../src -g -O2 -DPAGE_SIZE=$(shell getconf PAGESIZE)
#-lpthread -lrt
all: $(PROGS)
--
-1.9.1
+2.21.0
diff --git a/patches/libaio/0.3.112/libaio-0.3.112-cppflags.patch b/patches/libaio/0.3.112/libaio-0.3.112-cppflags.patch
new file mode 100644
index 0000000..dddb9c2
--- /dev/null
+++ b/patches/libaio/0.3.112/libaio-0.3.112-cppflags.patch
@@ -0,0 +1,16 @@
+respect env CPPFLAGS
+
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -2,8 +2,9 @@ prefix=/usr
+ includedir=$(prefix)/include
+ libdir=$(prefix)/lib
+
+-CFLAGS ?= -g -fomit-frame-pointer -O2
+-CFLAGS += -Wall -I. -fPIC
++CFLAGS ?= -fomit-frame-pointer -O2
++CFLAGS += -I. -fPIC
++CFLAGS += $(CPPFLAGS)
+ SO_CFLAGS=-shared $(CFLAGS)
+ L_CFLAGS=$(CFLAGS)
+ LINK_FLAGS=
diff --git a/patches/libgcrypt/1.10.3/libgcrypt-1.10.3-hppa.patch b/patches/libgcrypt/1.10.3/libgcrypt-1.10.3-hppa.patch
new file mode 100644
index 0000000..daa1bba
--- /dev/null
+++ b/patches/libgcrypt/1.10.3/libgcrypt-1.10.3-hppa.patch
@@ -0,0 +1,110 @@
+https://bugs.gentoo.org/925284
+https://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgcrypt.git;a=commit;h=75e9bcccb69a9dea67d90840bd295bbd1749cea3
+
+From 75e9bcccb69a9dea67d90840bd295bbd1749cea3 Mon Sep 17 00:00:00 2001
+From: NIIBE Yutaka <gniibe@fsij.org>
+Date: Mon, 4 Mar 2024 09:00:59 +0900
+Subject: [PATCH] mpi: Fix ECC computation on hppa.
+
+* mpi/ec-inline.h [__hppa] (ADD4_LIMB32, SUB4_LIMB32): New.
+* mpi/longlong.h [__hppa] (add_ssaaaa, sub_ddmmss): Add __CLOBBER_CC.
+
+--
+
+Cherry-pick master commit of:
+ b757f4130af987bdfc769b754b6e9e27882c349c
+
+GnuPG-bug-id: 7022
+Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
+---
+ mpi/ec-inline.h | 40 ++++++++++++++++++++++++++++++++++++++++
+ mpi/longlong.h | 12 ++++++------
+ 2 files changed, 46 insertions(+), 6 deletions(-)
+
+diff --git a/mpi/ec-inline.h b/mpi/ec-inline.h
+index 0ffdf8eb..c24d5352 100644
+--- a/mpi/ec-inline.h
++++ b/mpi/ec-inline.h
+@@ -921,6 +921,46 @@ LIMB64_HILO(mpi_limb_t hi, mpi_limb_t lo)
+
+ #endif /* HAVE_COMPATIBLE_GCC_ARM_PLATFORM_AS */
+
++#if defined (__hppa) && __GNUC__ >= 4
++#define ADD4_LIMB32(A3, A2, A1, A0, B3, B2, B1, B0, C3, C2, C1, C0) \
++ __asm__ ("add %7,%11,%3\n\t" \
++ "addc %6,%10,%2\n\t" \
++ "addc %5,%9,%1\n\t" \
++ "addc %4,%8,%0" \
++ : "=r" (A3), \
++ "=&r" (A2), \
++ "=&r" (A1), \
++ "=&r" (A0) \
++ : "rM" ((mpi_limb_t)(B3)), \
++ "rM" ((mpi_limb_t)(B2)), \
++ "rM" ((mpi_limb_t)(B1)), \
++ "rM" ((mpi_limb_t)(B0)), \
++ "rM" ((mpi_limb_t)(C3)), \
++ "rM" ((mpi_limb_t)(C2)), \
++ "rM" ((mpi_limb_t)(C1)), \
++ "rM" ((mpi_limb_t)(C0)) \
++ : "cc")
++
++#define SUB4_LIMB32(A3, A2, A1, A0, B3, B2, B1, B0, C3, C2, C1, C0) \
++ __asm__ ("sub %7,%11,%3\n\t" \
++ "subb %6,%10,%2\n\t" \
++ "subb %5,%9,%1\n\t" \
++ "subb %4,%8,%0\n\t" \
++ : "=r" (A3), \
++ "=&r" (A2), \
++ "=&r" (A1), \
++ "=&r" (A0) \
++ : "rM" ((mpi_limb_t)(B3)), \
++ "rM" ((mpi_limb_t)(B2)), \
++ "rM" ((mpi_limb_t)(B1)), \
++ "rM" ((mpi_limb_t)(B0)), \
++ "rM" ((mpi_limb_t)(C3)), \
++ "rM" ((mpi_limb_t)(C2)), \
++ "rM" ((mpi_limb_t)(C1)), \
++ "rM" ((mpi_limb_t)(C0)) \
++ : "cc")
++
++#endif /* __hppa */
+
+ /* Common 32-bit arch addition/subtraction macros. */
+
+diff --git a/mpi/longlong.h b/mpi/longlong.h
+index c299534c..1ab70e7e 100644
+--- a/mpi/longlong.h
++++ b/mpi/longlong.h
+@@ -394,23 +394,23 @@ extern UDItype __udiv_qrnnd ();
+ ***************************************/
+ #if defined (__hppa) && W_TYPE_SIZE == 32
+ # define add_ssaaaa(sh, sl, ah, al, bh, bl) \
+- __asm__ (" add %4,%5,%1\n" \
+- " addc %2,%3,%0" \
++ __asm__ ("add %4,%5,%1\n\t" \
++ "addc %2,%3,%0" \
+ : "=r" ((USItype)(sh)), \
+ "=&r" ((USItype)(sl)) \
+ : "%rM" ((USItype)(ah)), \
+ "rM" ((USItype)(bh)), \
+ "%rM" ((USItype)(al)), \
+- "rM" ((USItype)(bl)))
++ "rM" ((USItype)(bl)) __CLOBBER_CC)
+ # define sub_ddmmss(sh, sl, ah, al, bh, bl) \
+- __asm__ (" sub %4,%5,%1\n" \
+- " subb %2,%3,%0" \
++ __asm__ ("sub %4,%5,%1\n\t" \
++ "subb %2,%3,%0" \
+ : "=r" ((USItype)(sh)), \
+ "=&r" ((USItype)(sl)) \
+ : "rM" ((USItype)(ah)), \
+ "rM" ((USItype)(bh)), \
+ "rM" ((USItype)(al)), \
+- "rM" ((USItype)(bl)))
++ "rM" ((USItype)(bl)) __CLOBBER_CC)
+ # if defined (_PA_RISC1_1)
+ # define umul_ppmm(wh, wl, u, v) \
+ do { \
+--
+2.30.2
diff --git a/patches/libgcrypt/1.10.3/libgcrypt-1.10.3-x86-refactor.patch b/patches/libgcrypt/1.10.3/libgcrypt-1.10.3-x86-refactor.patch
new file mode 100644
index 0000000..5271506
--- /dev/null
+++ b/patches/libgcrypt/1.10.3/libgcrypt-1.10.3-x86-refactor.patch
@@ -0,0 +1,428 @@
+https://bugs.gentoo.org/915060
+https://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgcrypt.git;a=commit;h=07f0563d325c6589ca1560525d3b22291feec227
+
+From 07f0563d325c6589ca1560525d3b22291feec227 Mon Sep 17 00:00:00 2001
+From: Jussi Kivilinna <jussi.kivilinna@iki.fi>
+Date: Tue, 19 Dec 2023 20:23:47 +0200
+Subject: [PATCH] mpi/ec-inline: refactor i386 assembly to reduce register
+ usage
+
+* mpi/ec-inline.h [__i386__] (ADD2_LIMB32_CARRY_OUT)
+(ADD2_LIMB32_CARRY_IN_OUT, ADD2_LIB32_CARRY_IN, SUB2_LIMB32_CARRY_OUT)
+(SUB2_LIMB32_CARRY_IN_OUT, SUB2_LIB32_CARRY_IN, ADD8_LIMB32)
+(ADD10_LIMB32, ADD14_LIMB32, SUB8_LIMB32, SUB10_LIMB32)
+(SUB14_LIMB32): New.
+[__i386__] (ADD4_LIMB32, ADD6_LIMB32, SUB4_LIMB32, SUB6_LIMB32): Rewrite
+to use new *_CARRY_* macros.
+[BYTES_PER_MPI_LIMB == 4] (ADD4_LIMB64): Use ADD8_LIMB32 if available.
+[BYTES_PER_MPI_LIMB == 4] (ADD5_LIMB64): Use ADD10_LIMB32 if available.
+[BYTES_PER_MPI_LIMB == 4] (ADD7_LIMB64): Use ADD14_LIMB32 if available.
+[BYTES_PER_MPI_LIMB == 4] (SUB4_LIMB64): Use SUB8_LIMB32 if available.
+[BYTES_PER_MPI_LIMB == 4] (SUB5_LIMB64): Use SUB10_LIMB32 if available.
+[BYTES_PER_MPI_LIMB == 4] (SUB7_LIMB64): Use SUB14_LIMB32 if available.
+--
+
+Cherry pick of master commit:
+ 956f1ed4ec6ead59dc56f574f943f1fe25dac723
+
+This commit reduces number register operands and register pressure
+at i386 assembly used in `ec-nist.c` NIST-P192, P224, P256, and P384.
+Performance stays relatively same, with P192 being ~2% slower
+than before and P384 being ~5% faster.
+
+GnuPG-bug-id: T6892
+Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
+---
+ mpi/ec-inline.h | 327 +++++++++++++++++++++++++++++++++---------------
+ 1 file changed, 229 insertions(+), 98 deletions(-)
+
+diff --git a/mpi/ec-inline.h b/mpi/ec-inline.h
+index a07826e3..0ffdf8eb 100644
+--- a/mpi/ec-inline.h
++++ b/mpi/ec-inline.h
+@@ -641,116 +641,192 @@ LIMB64_HILO(mpi_limb_t hi, mpi_limb_t lo)
+ /* i386 addition/subtraction helpers. */
+ #if defined (__i386__) && defined(HAVE_CPU_ARCH_X86) && __GNUC__ >= 4
+
+-#define ADD4_LIMB32(a3, a2, a1, a0, b3, b2, b1, b0, c3, c2, c1, c0) \
+- __asm__ ("addl %11, %3\n" \
+- "adcl %10, %2\n" \
+- "adcl %9, %1\n" \
+- "adcl %8, %0\n" \
+- : "=r" (a3), \
+- "=&r" (a2), \
++#define ADD2_LIMB32_CARRY_OUT(carry, a1, a0, b1, b0, c1, c0) \
++ __asm__ ("addl %7, %2\n" \
++ "adcl %6, %1\n" \
++ "sbbl %0, %0\n" \
++ : "=r" (carry), \
+ "=&r" (a1), \
+ "=&r" (a0) \
+- : "0" ((mpi_limb_t)(b3)), \
+- "1" ((mpi_limb_t)(b2)), \
+- "2" ((mpi_limb_t)(b1)), \
+- "3" ((mpi_limb_t)(b0)), \
+- "g" ((mpi_limb_t)(c3)), \
+- "g" ((mpi_limb_t)(c2)), \
+- "g" ((mpi_limb_t)(c1)), \
+- "g" ((mpi_limb_t)(c0)) \
++ : "0" ((mpi_limb_t)(0)), \
++ "1" ((mpi_limb_t)(b1)), \
++ "2" ((mpi_limb_t)(b0)), \
++ "re" ((mpi_limb_t)(c1)), \
++ "re" ((mpi_limb_t)(c0)) \
+ : "cc")
+
++#define ADD2_LIMB32_CARRY_IN_OUT(a1, a0, b1, b0, c1, c0, carry) \
++ __asm__ ("addl $1, %0\n" \
++ "adcl %7, %2\n" \
++ "adcl %6, %1\n" \
++ "sbbl %0, %0\n" \
++ : "=r" (carry), \
++ "=&r" (a1), \
++ "=&r" (a0) \
++ : "0" ((mpi_limb_t)(carry)), \
++ "1" ((mpi_limb_t)(b1)), \
++ "2" ((mpi_limb_t)(b0)), \
++ "re" ((mpi_limb_t)(c1)), \
++ "re" ((mpi_limb_t)(c0)) \
++ : "cc")
++
++#define ADD2_LIMB32_CARRY_IN(a1, a0, b1, b0, c1, c0, carry) \
++ __asm__ ("addl $1, %2\n" \
++ "adcl %7, %1\n" \
++ "adcl %6, %0\n" \
++ : "=r" (a1), \
++ "=&r" (a0), \
++ "=&g" (carry) \
++ : "0" ((mpi_limb_t)(b1)), \
++ "1" ((mpi_limb_t)(b0)), \
++ "2" ((mpi_limb_t)(carry)), \
++ "re" ((mpi_limb_t)(c1)), \
++ "re" ((mpi_limb_t)(c0)) \
++ : "cc")
++
++#define ADD4_LIMB32(a3, a2, a1, a0, b3, b2, b1, b0, c3, c2, c1, c0) do { \
++ mpi_limb_t __carry4_32; \
++ ADD2_LIMB32_CARRY_OUT(__carry4_32, a1, a0, b1, b0, c1, c0); \
++ ADD2_LIMB32_CARRY_IN(a3, a2, b3, b2, c3, c2, __carry4_32); \
++ } while (0)
++
+ #define ADD6_LIMB32(a5, a4, a3, a2, a1, a0, b5, b4, b3, b2, b1, b0, \
+ c5, c4, c3, c2, c1, c0) do { \
+ mpi_limb_t __carry6_32; \
+- __asm__ ("addl %10, %3\n" \
+- "adcl %9, %2\n" \
+- "adcl %8, %1\n" \
+- "sbbl %0, %0\n" \
+- : "=r" (__carry6_32), \
+- "=&r" (a2), \
+- "=&r" (a1), \
+- "=&r" (a0) \
+- : "0" ((mpi_limb_t)(0)), \
+- "1" ((mpi_limb_t)(b2)), \
+- "2" ((mpi_limb_t)(b1)), \
+- "3" ((mpi_limb_t)(b0)), \
+- "g" ((mpi_limb_t)(c2)), \
+- "g" ((mpi_limb_t)(c1)), \
+- "g" ((mpi_limb_t)(c0)) \
+- : "cc"); \
+- __asm__ ("addl $1, %3\n" \
+- "adcl %10, %2\n" \
+- "adcl %9, %1\n" \
+- "adcl %8, %0\n" \
+- : "=r" (a5), \
+- "=&r" (a4), \
+- "=&r" (a3), \
+- "=&r" (__carry6_32) \
+- : "0" ((mpi_limb_t)(b5)), \
+- "1" ((mpi_limb_t)(b4)), \
+- "2" ((mpi_limb_t)(b3)), \
+- "3" ((mpi_limb_t)(__carry6_32)), \
+- "g" ((mpi_limb_t)(c5)), \
+- "g" ((mpi_limb_t)(c4)), \
+- "g" ((mpi_limb_t)(c3)) \
+- : "cc"); \
++ ADD2_LIMB32_CARRY_OUT(__carry6_32, a1, a0, b1, b0, c1, c0); \
++ ADD2_LIMB32_CARRY_IN_OUT(a3, a2, b3, b2, c3, c2, __carry6_32); \
++ ADD2_LIMB32_CARRY_IN(a5, a4, b5, b4, c5, c4, __carry6_32); \
++ } while (0)
++
++#define ADD8_LIMB32(a7, a6, a5, a4, a3, a2, a1, a0, \
++ b7, b6, b5, b4, b3, b2, b1, b0, \
++ c7, c6, c5, c4, c3, c2, c1, c0) do { \
++ mpi_limb_t __carry8_32; \
++ ADD2_LIMB32_CARRY_OUT(__carry8_32, a1, a0, b1, b0, c1, c0); \
++ ADD2_LIMB32_CARRY_IN_OUT(a3, a2, b3, b2, c3, c2, __carry8_32); \
++ ADD2_LIMB32_CARRY_IN_OUT(a5, a4, b5, b4, c5, c4, __carry8_32); \
++ ADD2_LIMB32_CARRY_IN(a7, a6, b7, b6, c7, c6, __carry8_32); \
+ } while (0)
+
+-#define SUB4_LIMB32(a3, a2, a1, a0, b3, b2, b1, b0, c3, c2, c1, c0) \
+- __asm__ ("subl %11, %3\n" \
+- "sbbl %10, %2\n" \
+- "sbbl %9, %1\n" \
+- "sbbl %8, %0\n" \
+- : "=r" (a3), \
+- "=&r" (a2), \
++#define ADD10_LIMB32(a9, a8, a7, a6, a5, a4, a3, a2, a1, a0, \
++ b9, b8, b7, b6, b5, b4, b3, b2, b1, b0, \
++ c9, c8, c7, c6, c5, c4, c3, c2, c1, c0) do { \
++ mpi_limb_t __carry10_32; \
++ ADD2_LIMB32_CARRY_OUT(__carry10_32, a1, a0, b1, b0, c1, c0); \
++ ADD2_LIMB32_CARRY_IN_OUT(a3, a2, b3, b2, c3, c2, __carry10_32); \
++ ADD2_LIMB32_CARRY_IN_OUT(a5, a4, b5, b4, c5, c4, __carry10_32); \
++ ADD2_LIMB32_CARRY_IN_OUT(a7, a6, b7, b6, c7, c6, __carry10_32); \
++ ADD2_LIMB32_CARRY_IN(a9, a8, b9, b8, c9, c8, __carry10_32); \
++ } while (0)
++
++#define ADD14_LIMB32(a13, a12, a11, a10, a9, a8, a7, \
++ a6, a5, a4, a3, a2, a1, a0, \
++ b13, b12, b11, b10, b9, b8, b7, \
++ b6, b5, b4, b3, b2, b1, b0, \
++ c13, c12, c11, c10, c9, c8, c7, \
++ c6, c5, c4, c3, c2, c1, c0) do { \
++ mpi_limb_t __carry14_32; \
++ ADD2_LIMB32_CARRY_OUT(__carry14_32, a1, a0, b1, b0, c1, c0); \
++ ADD2_LIMB32_CARRY_IN_OUT(a3, a2, b3, b2, c3, c2, __carry14_32); \
++ ADD2_LIMB32_CARRY_IN_OUT(a5, a4, b5, b4, c5, c4, __carry14_32); \
++ ADD2_LIMB32_CARRY_IN_OUT(a7, a6, b7, b6, c7, c6, __carry14_32); \
++ ADD2_LIMB32_CARRY_IN_OUT(a9, a8, b9, b8, c9, c8, __carry14_32); \
++ ADD2_LIMB32_CARRY_IN_OUT(a11, a10, b11, b10, c11, c10, __carry14_32); \
++ ADD2_LIMB32_CARRY_IN(a13, a12, b13, b12, c13, c12, __carry14_32); \
++ } while (0)
++
++#define SUB2_LIMB32_CARRY_OUT(carry, a1, a0, b1, b0, c1, c0) \
++ __asm__ ("subl %7, %2\n" \
++ "sbbl %6, %1\n" \
++ "sbbl %0, %0\n" \
++ : "=r" (carry), \
+ "=&r" (a1), \
+ "=&r" (a0) \
+- : "0" ((mpi_limb_t)(b3)), \
+- "1" ((mpi_limb_t)(b2)), \
+- "2" ((mpi_limb_t)(b1)), \
+- "3" ((mpi_limb_t)(b0)), \
+- "g" ((mpi_limb_t)(c3)), \
+- "g" ((mpi_limb_t)(c2)), \
+- "g" ((mpi_limb_t)(c1)), \
+- "g" ((mpi_limb_t)(c0)) \
++ : "0" ((mpi_limb_t)(0)), \
++ "1" ((mpi_limb_t)(b1)), \
++ "2" ((mpi_limb_t)(b0)), \
++ "re" ((mpi_limb_t)(c1)), \
++ "re" ((mpi_limb_t)(c0)) \
++ : "cc")
++
++#define SUB2_LIMB32_CARRY_IN_OUT(a1, a0, b1, b0, c1, c0, carry) \
++ __asm__ ("addl $1, %0\n" \
++ "sbbl %7, %2\n" \
++ "sbbl %6, %1\n" \
++ "sbbl %0, %0\n" \
++ : "=r" (carry), \
++ "=&r" (a1), \
++ "=&r" (a0) \
++ : "0" ((mpi_limb_t)(carry)), \
++ "1" ((mpi_limb_t)(b1)), \
++ "2" ((mpi_limb_t)(b0)), \
++ "re" ((mpi_limb_t)(c1)), \
++ "re" ((mpi_limb_t)(c0)) \
++ : "cc")
++
++#define SUB2_LIMB32_CARRY_IN(a1, a0, b1, b0, c1, c0, carry) \
++ __asm__ ("addl $1, %2\n" \
++ "sbbl %7, %1\n" \
++ "sbbl %6, %0\n" \
++ : "=r" (a1), \
++ "=&r" (a0), \
++ "=&g" (carry) \
++ : "0" ((mpi_limb_t)(b1)), \
++ "1" ((mpi_limb_t)(b0)), \
++ "2" ((mpi_limb_t)(carry)), \
++ "re" ((mpi_limb_t)(c1)), \
++ "re" ((mpi_limb_t)(c0)) \
+ : "cc")
+
++#define SUB4_LIMB32(a3, a2, a1, a0, b3, b2, b1, b0, c3, c2, c1, c0) do { \
++ mpi_limb_t __carry4_32; \
++ SUB2_LIMB32_CARRY_OUT(__carry4_32, a1, a0, b1, b0, c1, c0); \
++ SUB2_LIMB32_CARRY_IN(a3, a2, b3, b2, c3, c2, __carry4_32); \
++ } while (0)
++
+ #define SUB6_LIMB32(a5, a4, a3, a2, a1, a0, b5, b4, b3, b2, b1, b0, \
+ c5, c4, c3, c2, c1, c0) do { \
+- mpi_limb_t __borrow6_32; \
+- __asm__ ("subl %10, %3\n" \
+- "sbbl %9, %2\n" \
+- "sbbl %8, %1\n" \
+- "sbbl %0, %0\n" \
+- : "=r" (__borrow6_32), \
+- "=&r" (a2), \
+- "=&r" (a1), \
+- "=&r" (a0) \
+- : "0" ((mpi_limb_t)(0)), \
+- "1" ((mpi_limb_t)(b2)), \
+- "2" ((mpi_limb_t)(b1)), \
+- "3" ((mpi_limb_t)(b0)), \
+- "g" ((mpi_limb_t)(c2)), \
+- "g" ((mpi_limb_t)(c1)), \
+- "g" ((mpi_limb_t)(c0)) \
+- : "cc"); \
+- __asm__ ("addl $1, %3\n" \
+- "sbbl %10, %2\n" \
+- "sbbl %9, %1\n" \
+- "sbbl %8, %0\n" \
+- : "=r" (a5), \
+- "=&r" (a4), \
+- "=&r" (a3), \
+- "=&r" (__borrow6_32) \
+- : "0" ((mpi_limb_t)(b5)), \
+- "1" ((mpi_limb_t)(b4)), \
+- "2" ((mpi_limb_t)(b3)), \
+- "3" ((mpi_limb_t)(__borrow6_32)), \
+- "g" ((mpi_limb_t)(c5)), \
+- "g" ((mpi_limb_t)(c4)), \
+- "g" ((mpi_limb_t)(c3)) \
+- : "cc"); \
++ mpi_limb_t __carry6_32; \
++ SUB2_LIMB32_CARRY_OUT(__carry6_32, a1, a0, b1, b0, c1, c0); \
++ SUB2_LIMB32_CARRY_IN_OUT(a3, a2, b3, b2, c3, c2, __carry6_32); \
++ SUB2_LIMB32_CARRY_IN(a5, a4, b5, b4, c5, c4, __carry6_32); \
++ } while (0)
++
++#define SUB8_LIMB32(a7, a6, a5, a4, a3, a2, a1, a0, \
++ b7, b6, b5, b4, b3, b2, b1, b0, \
++ c7, c6, c5, c4, c3, c2, c1, c0) do { \
++ mpi_limb_t __carry8_32; \
++ SUB2_LIMB32_CARRY_OUT(__carry8_32, a1, a0, b1, b0, c1, c0); \
++ SUB2_LIMB32_CARRY_IN_OUT(a3, a2, b3, b2, c3, c2, __carry8_32); \
++ SUB2_LIMB32_CARRY_IN_OUT(a5, a4, b5, b4, c5, c4, __carry8_32); \
++ SUB2_LIMB32_CARRY_IN(a7, a6, b7, b6, c7, c6, __carry8_32); \
++ } while (0)
++
++#define SUB10_LIMB32(a9, a8, a7, a6, a5, a4, a3, a2, a1, a0, \
++ b9, b8, b7, b6, b5, b4, b3, b2, b1, b0, \
++ c9, c8, c7, c6, c5, c4, c3, c2, c1, c0) do { \
++ mpi_limb_t __carry10_32; \
++ SUB2_LIMB32_CARRY_OUT(__carry10_32, a1, a0, b1, b0, c1, c0); \
++ SUB2_LIMB32_CARRY_IN_OUT(a3, a2, b3, b2, c3, c2, __carry10_32); \
++ SUB2_LIMB32_CARRY_IN_OUT(a5, a4, b5, b4, c5, c4, __carry10_32); \
++ SUB2_LIMB32_CARRY_IN_OUT(a7, a6, b7, b6, c7, c6, __carry10_32); \
++ SUB2_LIMB32_CARRY_IN(a9, a8, b9, b8, c9, c8, __carry10_32); \
++ } while (0)
++
++#define SUB14_LIMB32(a13, a12, a11, a10, a9, a8, a7, \
++ a6, a5, a4, a3, a2, a1, a0, \
++ b13, b12, b11, b10, b9, b8, b7, \
++ b6, b5, b4, b3, b2, b1, b0, \
++ c13, c12, c11, c10, c9, c8, c7, \
++ c6, c5, c4, c3, c2, c1, c0) do { \
++ mpi_limb_t __carry14_32; \
++ SUB2_LIMB32_CARRY_OUT(__carry14_32, a1, a0, b1, b0, c1, c0); \
++ SUB2_LIMB32_CARRY_IN_OUT(a3, a2, b3, b2, c3, c2, __carry14_32); \
++ SUB2_LIMB32_CARRY_IN_OUT(a5, a4, b5, b4, c5, c4, __carry14_32); \
++ SUB2_LIMB32_CARRY_IN_OUT(a7, a6, b7, b6, c7, c6, __carry14_32); \
++ SUB2_LIMB32_CARRY_IN_OUT(a9, a8, b9, b8, c9, c8, __carry14_32); \
++ SUB2_LIMB32_CARRY_IN_OUT(a11, a10, b11, b10, c11, c10, __carry14_32); \
++ SUB2_LIMB32_CARRY_IN(a13, a12, b13, b12, c13, c12, __carry14_32); \
+ } while (0)
+
+ #endif /* __i386__ */
+@@ -820,7 +896,6 @@ LIMB64_HILO(mpi_limb_t hi, mpi_limb_t lo)
+ "Ir" ((mpi_limb_t)(C0)) \
+ : "cc")
+
+-
+ #define SUB6_LIMB32(A5, A4, A3, A2, A1, A0, B5, B4, B3, B2, B1, B0, \
+ C5, C4, C3, C2, C1, C0) do { \
+ mpi_limb_t __borrow6_32; \
+@@ -875,7 +950,13 @@ LIMB64_HILO(mpi_limb_t hi, mpi_limb_t lo)
+ C2.hi, C2.lo, C1.hi, C1.lo, C0.hi, C0.lo)
+ #endif
+
+-#if defined(ADD6_LIMB32)
++#if defined(ADD8_LIMB32)
++/* A[0..3] = B[0..3] + C[0..3] */
++#define ADD4_LIMB64(A3, A2, A1, A0, B3, B2, B1, B0, C3, C2, C1, C0) \
++ ADD8_LIMB32(A3.hi, A3.lo, A2.hi, A2.lo, A1.hi, A1.lo, A0.hi, A0.lo, \
++ B3.hi, B3.lo, B2.hi, B2.lo, B1.hi, B1.lo, B0.hi, B0.lo, \
++ C3.hi, C3.lo, C2.hi, C2.lo, C1.hi, C1.lo, C0.hi, C0.lo)
++#elif defined(ADD6_LIMB32)
+ /* A[0..3] = B[0..3] + C[0..3] */
+ #define ADD4_LIMB64(A3, A2, A1, A0, B3, B2, B1, B0, C3, C2, C1, C0) do { \
+ mpi_limb_t __carry4; \
+@@ -888,6 +969,28 @@ LIMB64_HILO(mpi_limb_t hi, mpi_limb_t lo)
+ } while (0)
+ #endif
+
++#if defined(ADD10_LIMB32)
++/* A[0..4] = B[0..4] + C[0..4] */
++#define ADD5_LIMB64(A4, A3, A2, A1, A0, B4, B3, B2, B1, B0, \
++ C4, C3, C2, C1, C0) \
++ ADD10_LIMB32(A4.hi, A4.lo, A3.hi, A3.lo, A2.hi, A2.lo, A1.hi, A1.lo, \
++ A0.hi, A0.lo, B4.hi, B4.lo, B3.hi, B3.lo, B2.hi, B2.lo, \
++ B1.hi, B1.lo, B0.hi, B0.lo, C4.hi, C4.lo, C3.hi, C3.lo, \
++ C2.hi, C2.lo, C1.hi, C1.lo, C0.hi, C0.lo)
++#endif
++
++#if defined(ADD14_LIMB32)
++/* A[0..6] = B[0..6] + C[0..6] */
++#define ADD7_LIMB64(A6, A5, A4, A3, A2, A1, A0, B6, B5, B4, B3, B2, B1, B0, \
++ C6, C5, C4, C3, C2, C1, C0) \
++ ADD14_LIMB32(A6.hi, A6.lo, A5.hi, A5.lo, A4.hi, A4.lo, A3.hi, A3.lo, \
++ A2.hi, A2.lo, A1.hi, A1.lo, A0.hi, A0.lo, B6.hi, B6.lo, \
++ B5.hi, B5.lo, B4.hi, B4.lo, B3.hi, B3.lo, B2.hi, B2.lo, \
++ B1.hi, B1.lo, B0.hi, B0.lo, C6.hi, C6.lo, C5.hi, C5.lo, \
++ C4.hi, C4.lo, C3.hi, C3.lo, C2.hi, C2.lo, C1.hi, C1.lo, \
++ C0.hi, C0.lo)
++#endif
++
+ #if defined(SUB4_LIMB32)
+ /* A[0..1] = B[0..1] - C[0..1] */
+ #define SUB2_LIMB64(A1, A0, B1, B0, C1, C0) \
+@@ -914,7 +1017,13 @@ LIMB64_HILO(mpi_limb_t hi, mpi_limb_t lo)
+ C2.hi, C2.lo, C1.hi, C1.lo, C0.hi, C0.lo)
+ #endif
+
+-#if defined(SUB6_LIMB32)
++#if defined(SUB8_LIMB32)
++/* A[0..3] = B[0..3] - C[0..3] */
++#define SUB4_LIMB64(A3, A2, A1, A0, B3, B2, B1, B0, C3, C2, C1, C0) \
++ SUB8_LIMB32(A3.hi, A3.lo, A2.hi, A2.lo, A1.hi, A1.lo, A0.hi, A0.lo, \
++ B3.hi, B3.lo, B2.hi, B2.lo, B1.hi, B1.lo, B0.hi, B0.lo, \
++ C3.hi, C3.lo, C2.hi, C2.lo, C1.hi, C1.lo, C0.hi, C0.lo)
++#elif defined(SUB6_LIMB32)
+ /* A[0..3] = B[0..3] - C[0..3] */
+ #define SUB4_LIMB64(A3, A2, A1, A0, B3, B2, B1, B0, C3, C2, C1, C0) do { \
+ mpi_limb_t __borrow4; \
+@@ -927,6 +1036,28 @@ LIMB64_HILO(mpi_limb_t hi, mpi_limb_t lo)
+ } while (0)
+ #endif
+
++#if defined(SUB10_LIMB32)
++/* A[0..4] = B[0..4] - C[0..4] */
++#define SUB5_LIMB64(A4, A3, A2, A1, A0, B4, B3, B2, B1, B0, \
++ C4, C3, C2, C1, C0) \
++ SUB10_LIMB32(A4.hi, A4.lo, A3.hi, A3.lo, A2.hi, A2.lo, A1.hi, A1.lo, \
++ A0.hi, A0.lo, B4.hi, B4.lo, B3.hi, B3.lo, B2.hi, B2.lo, \
++ B1.hi, B1.lo, B0.hi, B0.lo, C4.hi, C4.lo, C3.hi, C3.lo, \
++ C2.hi, C2.lo, C1.hi, C1.lo, C0.hi, C0.lo)
++#endif
++
++#if defined(SUB14_LIMB32)
++/* A[0..6] = B[0..6] - C[0..6] */
++#define SUB7_LIMB64(A6, A5, A4, A3, A2, A1, A0, B6, B5, B4, B3, B2, B1, B0, \
++ C6, C5, C4, C3, C2, C1, C0) \
++ SUB14_LIMB32(A6.hi, A6.lo, A5.hi, A5.lo, A4.hi, A4.lo, A3.hi, A3.lo, \
++ A2.hi, A2.lo, A1.hi, A1.lo, A0.hi, A0.lo, B6.hi, B6.lo, \
++ B5.hi, B5.lo, B4.hi, B4.lo, B3.hi, B3.lo, B2.hi, B2.lo, \
++ B1.hi, B1.lo, B0.hi, B0.lo, C6.hi, C6.lo, C5.hi, C5.lo, \
++ C4.hi, C4.lo, C3.hi, C3.lo, C2.hi, C2.lo, C1.hi, C1.lo, \
++ C0.hi, C0.lo)
++#endif
++
+ #endif /* BYTES_PER_MPI_LIMB == 4 */
+
+
+--
+2.30.2
diff --git a/patches/libgcrypt/1.10.3/libgcrypt-1.10.3-x86.patch b/patches/libgcrypt/1.10.3/libgcrypt-1.10.3-x86.patch
new file mode 100644
index 0000000..51ea004
--- /dev/null
+++ b/patches/libgcrypt/1.10.3/libgcrypt-1.10.3-x86.patch
@@ -0,0 +1,94 @@
+https://bugs.gentoo.org/915060
+https://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgcrypt.git;a=commit;h=08b88b4012f7837736b8d29a3689ce3fff2a10c8
+
+From 08b88b4012f7837736b8d29a3689ce3fff2a10c8 Mon Sep 17 00:00:00 2001
+From: Jussi Kivilinna <jussi.kivilinna@iki.fi>
+Date: Sat, 16 Dec 2023 19:50:23 +0200
+Subject: [PATCH] mpi/ec-nist: fix for -Og build failure on i386
+
+* mpi/ec-nist.c (_gcry_mpi_ec_nist256_mod)
+(_gcry_mpi_ec_nist384_mod): Load p_mult constant with carry offset
+to stack.
+--
+
+Cherry pick master commit of:
+ 90097bd2f41c217dc5c666570e5680f432cf92d3
+
+Patch fixes compilation error on i386 with -Og optimization level.
+
+In file included from ../../mpi/ec-nist.c:34:
+../../mpi/ec-nist.c: In function '_gcry_mpi_ec_nist256_mod':
+../../mpi/ec-inline.h:701:3: error: 'asm' operand has impossible constraints
+ 701 | __asm__ ("subl %11, %3\n" \
+ | ^~~~~~~
+../../mpi/ec-inline.h:894:9: note: in expansion of macro 'SUB4_LIMB32'
+ 894 | SUB4_LIMB32(A1.hi, A1.lo, A0.hi, A0.lo, \
+ | ^~~~~~~~~~~
+../../mpi/ec-inline.h:1009:5: note: in expansion of macro 'SUB2_LIMB64'
+ 1009 | SUB2_LIMB64(A4, A3, B4, B3, C4, C3); \
+ | ^~~~~~~~~~~
+../../mpi/ec-nist.c:474:3: note: in expansion of macro 'SUB5_LIMB64'
+ 474 | SUB5_LIMB64 (s[4], s[3], s[2], s[1], s[0],
+ | ^~~~~~~~~~~
+
+Appears that in problematic function, too many registers end up being
+allocated for addressing and there is not enough register left for
+asm input/output (4 registers needed for this block). Problem can be
+workaround by reducing needed addressing registers by pushing
+`p_mult[carry + ...]` values to stack. On other compiler flag levels
+and architectures, compiler should be able to optimize away this
+extra copying and have not effect on performance.
+
+GnuPG-bug-id: T6892
+Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
+---
+ mpi/ec-nist.c | 23 ++++++++++++++++-------
+ 1 file changed, 16 insertions(+), 7 deletions(-)
+
+diff --git a/mpi/ec-nist.c b/mpi/ec-nist.c
+index f792405c..559d02d9 100644
+--- a/mpi/ec-nist.c
++++ b/mpi/ec-nist.c
+@@ -471,11 +471,15 @@ _gcry_mpi_ec_nist256_mod (gcry_mpi_t w, mpi_ec_t ctx)
+
+ carry = LO32_LIMB64(s[4]);
+
++ /* Load values to stack to ease register pressure on i386. */
++ e[0] = p_mult[carry + 4][0];
++ e[1] = p_mult[carry + 4][1];
++ e[2] = p_mult[carry + 4][2];
++ e[3] = p_mult[carry + 4][3];
++ e[4] = p_mult[carry + 4][4];
+ SUB5_LIMB64 (s[4], s[3], s[2], s[1], s[0],
+ s[4], s[3], s[2], s[1], s[0],
+- p_mult[carry + 4][4], p_mult[carry + 4][3],
+- p_mult[carry + 4][2], p_mult[carry + 4][1],
+- p_mult[carry + 4][0]);
++ e[4], e[3], e[2], e[1], e[0]);
+
+ /* Add 1*P */
+ ADD5_LIMB64 (d[4], d[3], d[2], d[1], d[0],
+@@ -749,12 +753,17 @@ _gcry_mpi_ec_nist384_mod (gcry_mpi_t w, mpi_ec_t ctx)
+
+ carry = LO32_LIMB64(s[6]);
+
++ /* Load values to stack to ease register pressure on i386. */
++ x[0] = p_mult[carry + 3][0];
++ x[1] = p_mult[carry + 3][1];
++ x[2] = p_mult[carry + 3][2];
++ x[3] = p_mult[carry + 3][3];
++ x[4] = p_mult[carry + 3][4];
++ x[5] = p_mult[carry + 3][5];
++ x[6] = p_mult[carry + 3][6];
+ SUB7_LIMB64 (s[6], s[5], s[4], s[3], s[2], s[1], s[0],
+ s[6], s[5], s[4], s[3], s[2], s[1], s[0],
+- p_mult[carry + 3][6], p_mult[carry + 3][5],
+- p_mult[carry + 3][4], p_mult[carry + 3][3],
+- p_mult[carry + 3][2], p_mult[carry + 3][1],
+- p_mult[carry + 3][0]);
++ x[6], x[5], x[4], x[3], x[2], x[1], x[0]);
+
+ ADD7_LIMB64 (d[6], d[5], d[4], d[3], d[2], d[1], d[0],
+ s[6], s[5], s[4], s[3], s[2], s[1], s[0],
+--
+2.30.2
diff --git a/patches/libgcrypt/1.10.3/libgcrypt-1.9.4-no-fgrep-libgcrypt-config.patch b/patches/libgcrypt/1.10.3/libgcrypt-1.9.4-no-fgrep-libgcrypt-config.patch
new file mode 100644
index 0000000..738eac1
--- /dev/null
+++ b/patches/libgcrypt/1.10.3/libgcrypt-1.9.4-no-fgrep-libgcrypt-config.patch
@@ -0,0 +1,21 @@
+https://bugs.gentoo.org/868384
+--- a/src/libgcrypt-config.in
++++ b/src/libgcrypt-config.in
+@@ -154,7 +154,7 @@ if test "$echo_cflags" = "yes"; then
+
+ tmp=""
+ for i in $includes $cflags_final; do
+- if echo "$tmp" | fgrep -v -- "$i" >/dev/null; then
++ if echo "$tmp" | grep -F -v -- "$i" >/dev/null; then
+ tmp="$tmp $i"
+ fi
+ done
+@@ -178,7 +178,7 @@ if test "$echo_libs" = "yes"; then
+
+ tmp=""
+ for i in $libdirs $libs_final; do
+- if echo "$tmp" | fgrep -v -- "$i" >/dev/null; then
++ if echo "$tmp" | grep -F -v -- "$i" >/dev/null; then
+ tmp="$tmp $i"
+ fi
+ done
diff --git a/patches/libgcrypt/1.10.3/libgcrypt-multilib-syspath.patch b/patches/libgcrypt/1.10.3/libgcrypt-multilib-syspath.patch
new file mode 100644
index 0000000..7859851
--- /dev/null
+++ b/patches/libgcrypt/1.10.3/libgcrypt-multilib-syspath.patch
@@ -0,0 +1,23 @@
+diff --git a/src/libgcrypt-config.in b/src/libgcrypt-config.in
+index c052638..4c8ddc3 100644
+--- a/src/libgcrypt-config.in
++++ b/src/libgcrypt-config.in
+@@ -154,9 +154,12 @@ if test "$echo_libs" = "yes"; then
+ libs_final="$libs"
+
+ # Set up `libdirs'.
+- if test "x$libdir" != "x/usr/lib" -a "x$libdir" != "x/lib"; then
+- libdirs="-L$libdir"
+- fi
++ case "$libdir" in
++ /usr/lib|/usr/lib64|/lib|/lib64) ;;
++ *)
++ libdirs="-L$libdir"
++ ;;
++ esac
+
+ # Set up `libs_final'.
+ libs_final="$libs_final $gpg_error_libs"
+--
+1.7.6.1
+
diff --git a/patches/libgcrypt/1.10.3/libgcrypt-powerpc-darwin.patch b/patches/libgcrypt/1.10.3/libgcrypt-powerpc-darwin.patch
new file mode 100644
index 0000000..f1c7cf9
--- /dev/null
+++ b/patches/libgcrypt/1.10.3/libgcrypt-powerpc-darwin.patch
@@ -0,0 +1,16 @@
+Drop guard for CPU detection, configure won't get this wrong, and this
+check fails on some PPC platforms where these guards aren't set (due to
+different kernel/libc).
+
+--- a/src/hwf-ppc.c
++++ b/src/hwf-ppc.c
+@@ -33,9 +33,6 @@
+ #include "g10lib.h"
+ #include "hwf-common.h"
+
+-#if !defined (__powerpc__) && !defined (__powerpc64__)
+-# error Module build for wrong CPU.
+-#endif
+
+
+ #if defined(HAVE_SYS_AUXV_H) && defined(HAVE_ELF_AUX_INFO) && \
diff --git a/patches/libgcrypt/1.9.4/libgcrypt-1.92-use-pkg-config.patch b/patches/libgcrypt/1.9.4/libgcrypt-1.92-use-pkg-config.patch
new file mode 100644
index 0000000..c6b9c39
--- /dev/null
+++ b/patches/libgcrypt/1.9.4/libgcrypt-1.92-use-pkg-config.patch
@@ -0,0 +1,51 @@
+https://lists.gnupg.org/pipermail/gnupg-devel/2018-October/033985.html
+
+--- a/m4/gpg-error.m4
++++ b/m4/gpg-error.m4
+@@ -26,6 +26,7 @@ dnl is added to the gpg_config_script_warn variable.
+ dnl
+ AC_DEFUN([AM_PATH_GPG_ERROR],
+ [ AC_REQUIRE([AC_CANONICAL_HOST])
++ AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+ gpg_error_config_prefix=""
+ dnl --with-libgpg-error-prefix=PFX is the preferred name for this option,
+ dnl since that is consistent with how our three siblings use the directory/
+@@ -41,6 +42,23 @@ AC_DEFUN([AM_PATH_GPG_ERROR],
+ AC_ARG_WITH(gpg-error-prefix,,
+ [gpg_error_config_prefix="$withval"])
+
++ min_gpg_error_version=ifelse([$1], ,1.33,$1)
++
++ gpg_error_use_config=yes
++ if test x"${enable_pkg_config}" = xyes; then
++ PKG_CHECK_MODULES(
++ [GPG_ERROR],
++ [gpg-error >= $min_gpg_error_version],
++ [
++ gpg_error_use_config=no
++ PKG_CHECK_VAR([GPG_ERROR_MT_CFLAGS], [gpg-error], [mtcflags])
++ PKG_CHECK_VAR([GPG_ERROR_MT_LIBS], [gpg-error], [mtlibs])
++ ],
++ [:]
++ )
++ fi
++
++ if test x"${gpg_error_use_config}" = xyes; then
+ if test x"${GPG_ERROR_CONFIG}" = x ; then
+ if test x"${gpg_error_config_prefix}" != x ; then
+ GPG_ERROR_CONFIG="${gpg_error_config_prefix}/bin/gpg-error-config"
+@@ -61,7 +79,6 @@ AC_DEFUN([AM_PATH_GPG_ERROR],
+ fi
+
+ AC_PATH_PROG(GPG_ERROR_CONFIG, gpg-error-config, no)
+- min_gpg_error_version=ifelse([$1], ,1.33,$1)
+ ok=no
+
+ if test "$prefix" = NONE ; then
+@@ -185,4 +202,5 @@ AC_DEFUN([AM_PATH_GPG_ERROR],
+ AC_SUBST(GPG_ERROR_LIBS)
+ AC_SUBST(GPG_ERROR_MT_CFLAGS)
+ AC_SUBST(GPG_ERROR_MT_LIBS)
++ fi
+ ])
+
diff --git a/patches/libgpg-error/1.43/libgpg-error-1.36-gpg-error-config.patch b/patches/libgpg-error/1.43/libgpg-error-1.36-gpg-error-config.patch
new file mode 100644
index 0000000..e94d57e
--- /dev/null
+++ b/patches/libgpg-error/1.43/libgpg-error-1.36-gpg-error-config.patch
@@ -0,0 +1,38 @@
+diff --git a/configure.ac b/configure.ac
+index e46b240..4606c31 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -531,16 +531,6 @@ fi
+ GPG_ERROR_CONFIG_HOST="$host"
+
+ case "$includedir" in
+- /usr/include|/include) ;;
+- '${prefix}/include')
+- if test "$prefix" != / -a "$prefix" != /usr; then
+- if test -z "$GPG_ERROR_CONFIG_CFLAGS"; then
+- GPG_ERROR_CONFIG_CFLAGS="-I$includedir"
+- else
+- GPG_ERROR_CONFIG_CFLAGS="-I$includedir $GPG_ERROR_CONFIG_CFLAGS"
+- fi
+- fi
+- ;;
+ *)
+ if test -z "$GPG_ERROR_CONFIG_CFLAGS"; then
+ GPG_ERROR_CONFIG_CFLAGS="-I$includedir"
+@@ -550,16 +540,6 @@ case "$includedir" in
+ ;;
+ esac
+ case "$libdir" in
+- /usr/lib|/usr/lib64|/lib|/lib64) ;;
+- '${exec_prefix}/lib')
+- if test "$exec_prefix" = "NONE"; then
+- if test "$prefix" != / -a "$prefix" != /usr; then
+- GPG_ERROR_CONFIG_LIBS="-L$libdir $GPG_ERROR_CONFIG_LIBS"
+- fi
+- elif test "$exec_prefix" != / -a "$exec_prefix" != /usr; then
+- GPG_ERROR_CONFIG_LIBS="-L$libdir $GPG_ERROR_CONFIG_LIBS"
+- fi
+- ;;
+ *) GPG_ERROR_CONFIG_LIBS="-L$libdir $GPG_ERROR_CONFIG_LIBS" ;;
+ esac
+
diff --git a/patches/libgpg-error/1.43/libgpg-error-1.37-remove_broken_check.patch b/patches/libgpg-error/1.43/libgpg-error-1.37-remove_broken_check.patch
new file mode 100644
index 0000000..2919a9d
--- /dev/null
+++ b/patches/libgpg-error/1.43/libgpg-error-1.37-remove_broken_check.patch
@@ -0,0 +1,22 @@
+This breaks our multilib builds:
+
+ Confirm gpg-error-config works... no
+ *** Please report to <https://bugs.gnupg.org> with gpg-error-config-test.log
+
+--- libgpg-error-1.37/src/Makefile.am
++++ libgpg-error-1.37/src/Makefile.am
+@@ -338,14 +338,6 @@
+ cp gpg-error.h gpgrt.h
+
+ gpg-error-config: gpgrt-config gpg-error-config-old
+- @echo $(ECHO_N) "Confirm gpg-error-config works... $(ECHO_C)"
+- @if ./gpg-error-config-test.sh --old-new; then \
+- echo "good"; \
+- else \
+- echo "no"; \
+- echo "*** Please report to <https://bugs.gnupg.org> with gpg-error-config-test.log"; \
+- exit 1; \
+- fi
+ cp gpg-error-config-old $@
+
+ install-data-local:
diff --git a/patches/lvm/2.02.183/lvm2-001-example.conf.in.patch b/patches/lvm/2.02.188/lvm2-001-example.conf.in.patch
index 34c710d..34c710d 100644
--- a/patches/lvm/2.02.183/lvm2-001-example.conf.in.patch
+++ b/patches/lvm/2.02.188/lvm2-001-example.conf.in.patch
diff --git a/patches/lvm/2.02.183/lvm2-002-always-make-static-libdm.patch b/patches/lvm/2.02.188/lvm2-002-always-make-static-libdm.patch
index 5ddcb4e..5ddcb4e 100644
--- a/patches/lvm/2.02.183/lvm2-002-always-make-static-libdm.patch
+++ b/patches/lvm/2.02.188/lvm2-002-always-make-static-libdm.patch
diff --git a/patches/lvm/2.02.183/lvm2-003-lvm2create_initrd.patch b/patches/lvm/2.02.188/lvm2-003-lvm2create_initrd.patch
index 59aaa9b..59aaa9b 100644
--- a/patches/lvm/2.02.183/lvm2-003-lvm2create_initrd.patch
+++ b/patches/lvm/2.02.188/lvm2-003-lvm2create_initrd.patch
diff --git a/patches/lvm/2.02.183/lvm2-004-createinitrd.patch b/patches/lvm/2.02.188/lvm2-004-createinitrd.patch
index 7f0bfb8..7f0bfb8 100644
--- a/patches/lvm/2.02.183/lvm2-004-createinitrd.patch
+++ b/patches/lvm/2.02.188/lvm2-004-createinitrd.patch
diff --git a/patches/lvm/2.02.183/lvm2-005-locale-muck.patch b/patches/lvm/2.02.188/lvm2-005-locale-muck.patch
index fe7ec87..fe7ec87 100644
--- a/patches/lvm/2.02.183/lvm2-005-locale-muck.patch
+++ b/patches/lvm/2.02.188/lvm2-005-locale-muck.patch
diff --git a/patches/lvm/2.02.183/lvm2-006-asneeded.patch b/patches/lvm/2.02.188/lvm2-006-asneeded.patch
index c831c6d..c831c6d 100644
--- a/patches/lvm/2.02.183/lvm2-006-asneeded.patch
+++ b/patches/lvm/2.02.188/lvm2-006-asneeded.patch
diff --git a/patches/lvm/2.02.183/lvm2-007-dynamic-static-ldflags.patch b/patches/lvm/2.02.188/lvm2-007-dynamic-static-ldflags.patch
index 0a0e732..0a0e732 100644
--- a/patches/lvm/2.02.183/lvm2-007-dynamic-static-ldflags.patch
+++ b/patches/lvm/2.02.188/lvm2-007-dynamic-static-ldflags.patch
diff --git a/patches/lvm/2.02.183/lvm2-008-static-pkgconfig-libs.patch b/patches/lvm/2.02.188/lvm2-008-static-pkgconfig-libs.patch
index 989b308..989b308 100644
--- a/patches/lvm/2.02.183/lvm2-008-static-pkgconfig-libs.patch
+++ b/patches/lvm/2.02.188/lvm2-008-static-pkgconfig-libs.patch
diff --git a/patches/lvm/2.02.183/lvm2-009-pthread-pkgconfig.patch b/patches/lvm/2.02.188/lvm2-009-pthread-pkgconfig.patch
index c0265e8..c0265e8 100644
--- a/patches/lvm/2.02.183/lvm2-009-pthread-pkgconfig.patch
+++ b/patches/lvm/2.02.188/lvm2-009-pthread-pkgconfig.patch
diff --git a/patches/lvm/2.02.183/lvm2-010-static-libm.patch b/patches/lvm/2.02.188/lvm2-010-static-libm.patch
index 1cbf956..1cbf956 100644
--- a/patches/lvm/2.02.183/lvm2-010-static-libm.patch
+++ b/patches/lvm/2.02.188/lvm2-010-static-libm.patch
diff --git a/patches/lvm/2.02.183/lvm2-011-HPPA-no-O_DIRECT.patch b/patches/lvm/2.02.188/lvm2-011-HPPA-no-O_DIRECT.patch
index 0f830e4..0f830e4 100644
--- a/patches/lvm/2.02.183/lvm2-011-HPPA-no-O_DIRECT.patch
+++ b/patches/lvm/2.02.188/lvm2-011-HPPA-no-O_DIRECT.patch
diff --git a/patches/lvm/2.02.188/lvm2-012-mallinfo.patch b/patches/lvm/2.02.188/lvm2-012-mallinfo.patch
new file mode 100644
index 0000000..2b64d4a
--- /dev/null
+++ b/patches/lvm/2.02.188/lvm2-012-mallinfo.patch
@@ -0,0 +1,11 @@
+--- a/lib/mm/memlock.c.orig 2015-03-09 11:18:41.560028850 -0100
++++ b/lib/mm/memlock.c 2015-03-09 11:19:54.504373309 -0100
+@@ -137,7 +137,7 @@
+
+ static void _allocate_memory(void)
+ {
+-#ifndef VALGRIND_POOL
++#if !defined(VALGRIND_POOL) && defined(__GLIBC__)
+ void *stack_mem;
+ struct rlimit limit;
+ int i, area = 0, missing = _size_malloc_tmp, max_areas = 32, hblks;
diff --git a/patches/lvm/2.02.188/lvm2-013-fix-stdio-usage.patch b/patches/lvm/2.02.188/lvm2-013-fix-stdio-usage.patch
new file mode 100644
index 0000000..71b2e18
--- /dev/null
+++ b/patches/lvm/2.02.188/lvm2-013-fix-stdio-usage.patch
@@ -0,0 +1,49 @@
+--- a/tools/lvmcmdline.c
++++ b/tools/lvmcmdline.c
+@@ -1252,7 +1252,7 @@
+ int err = is_valid_fd(STDERR_FILENO);
+
+ if (!is_valid_fd(STDIN_FILENO) &&
+- !(stdin = fopen(_PATH_DEVNULL, "r"))) {
++ !freopen(_PATH_DEVNULL, "r", stdin)) {
+ if (err)
+ perror("stdin stream open");
+ else
+@@ -1262,7 +1262,7 @@
+ }
+
+ if (!is_valid_fd(STDOUT_FILENO) &&
+- !(stdout = fopen(_PATH_DEVNULL, "w"))) {
++ !freopen(_PATH_DEVNULL, "w", stdout)) {
+ if (err)
+ perror("stdout stream open");
+ /* else no stdout */
+@@ -1270,7 +1270,7 @@
+ }
+
+ if (!is_valid_fd(STDERR_FILENO) &&
+- !(stderr = fopen(_PATH_DEVNULL, "w"))) {
++ !freopen(_PATH_DEVNULL, "w", stderr)) {
+ printf("stderr stream open: %s\n",
+ strerror(errno));
+ return 0;
+--- ./lib/commands/toolcontext.c.orig
++++ ./lib/commands/toolcontext.c
+@@ -1860,7 +1860,7 @@
+ /* FIXME Make this configurable? */
+ reset_lvm_errno(1);
+
+-#ifndef VALGRIND_POOL
++#if !defined(VALGRIND_POOL) && defined(__GLIBC__)
+ /* Set in/out stream buffering before glibc */
+ if (set_buffering) {
+ /* Allocate 2 buffers */
+@@ -2241,7 +2241,7 @@
+
+ if (cmd->pending_delete_mem)
+ dm_pool_destroy(cmd->pending_delete_mem);
+-#ifndef VALGRIND_POOL
++#if !defined(VALGRIND_POOL) && defined(__GLIBC__)
+ if (cmd->linebuffer) {
+ /* Reset stream buffering to defaults */
+ if (is_valid_fd(STDIN_FILENO) &&
diff --git a/patches/lvm/2.02.188/lvm2-014-make-malloc-realloc-check-optional.patch b/patches/lvm/2.02.188/lvm2-014-make-malloc-realloc-check-optional.patch
new file mode 100644
index 0000000..a5bd48a
--- /dev/null
+++ b/patches/lvm/2.02.188/lvm2-014-make-malloc-realloc-check-optional.patch
@@ -0,0 +1,23 @@
+Breaks cross-compilation
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -154,15 +154,16 @@ AC_FUNC_CLOSEDIR_VOID
+ AC_FUNC_CHOWN
+ AC_FUNC_FORK
+ AC_FUNC_LSTAT
+-AC_FUNC_MALLOC
+ AC_FUNC_MEMCMP
+ AC_FUNC_MKTIME
+ AC_FUNC_MMAP
+-AC_FUNC_REALLOC
+ AC_FUNC_STAT
+ AC_FUNC_STRTOD
+ AC_FUNC_VPRINTF
+
++# Optional functions
++AC_CHECK_FUNCS([malloc realloc])
++
+ ################################################################################
+ dnl -- Disable dependency tracking
+ AC_MSG_CHECKING(whether to enable dependency tracking)
diff --git a/patches/lvm/2.02.188/lvm2-015-mksh_build.patch b/patches/lvm/2.02.188/lvm2-015-mksh_build.patch
new file mode 100644
index 0000000..49c6853
--- /dev/null
+++ b/patches/lvm/2.02.188/lvm2-015-mksh_build.patch
@@ -0,0 +1,13 @@
+https://bugs.gentoo.org/686652
+
+--- LVM2.2.02.184/tools/Makefile.in
++++ LVM2.2.02.184/tools/Makefile.in
+@@ -220,6 +220,6 @@
+ echo "/* Do not edit. This file is generated by the Makefile. */" && \
+ echo -en "const char _command_input[] =\n\n\"" && \
+ $(EGREP) -v '^#|\-\-\-|^$$' $(srcdir)/command-lines.in | $(AWK) 'BEGIN {ORS = "\\n\"\n\""} //' && \
+- echo "\\n\";" \
++ printf "%s\n" "\\n\";" \
+ ) > $@
+
+ $(SOURCES:%.c=%.d) $(SOURCES2:%.c=%.d): command-lines-input.h command-count.h cmds.h
diff --git a/patches/lvm/2.02.188/lvm2-016-implement-libc-specific-reopen_stream.patch b/patches/lvm/2.02.188/lvm2-016-implement-libc-specific-reopen_stream.patch
new file mode 100644
index 0000000..6034be3
--- /dev/null
+++ b/patches/lvm/2.02.188/lvm2-016-implement-libc-specific-reopen_stream.patch
@@ -0,0 +1,24 @@
+diff --git a/lib/log/log.c b/lib/log/log.c
+index 79fbd7a..0999d10 100644
+--- a/lib/log/log.c
++++ b/lib/log/log.c
+@@ -161,6 +161,7 @@ static void _check_and_replace_standard_log_streams(FILE *old_stream, FILE *new_
+ * Close and reopen standard stream on file descriptor fd.
+ */
+ int reopen_standard_stream(FILE **stream, const char *mode)
++#ifdef __GLIBC__
+ {
+ int fd, fd_copy, new_fd;
+ const char *name;
+@@ -207,6 +208,11 @@ int reopen_standard_stream(FILE **stream, const char *mode)
+ *stream = new_stream;
+ return 1;
+ }
++#else
++{
++ return (freopen(NULL, mode, *stream) != NULL);
++}
++#endif
+
+ void init_log_fn(lvm2_log_fn_t log_fn)
+ {
diff --git a/patches/lvm/2.02.188/lvm2-017-udev_remove_unsupported_option.patch b/patches/lvm/2.02.188/lvm2-017-udev_remove_unsupported_option.patch
new file mode 100644
index 0000000..f895e19
--- /dev/null
+++ b/patches/lvm/2.02.188/lvm2-017-udev_remove_unsupported_option.patch
@@ -0,0 +1,34 @@
+From f98f79a047dd1c4980008e0ed6c9ad4e18596cdc Mon Sep 17 00:00:00 2001
+From: Peter Rajnoha <prajnoha@redhat.com>
+Date: Tue, 13 Aug 2019 15:18:30 +0200
+Subject: [PATCH] udev: remove unsupported OPTIONS+="event_timeout" rule
+
+The OPTIONS+="event_timeout" is Unsupported since systemd/udev version 216,
+that is ~5 years ago.
+
+Since systemd/udev version 243, there's a new message printed if unsupported
+OPTIONS value is used:
+
+ Invalid value for OPTIONS key, ignoring: 'event_timeout=180'
+
+Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1740666
+---
+ udev/11-dm-lvm.rules.in | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/udev/11-dm-lvm.rules.in b/udev/11-dm-lvm.rules.in
+index 91cb991df9..7c589943b7 100644
+--- a/udev/11-dm-lvm.rules.in
++++ b/udev/11-dm-lvm.rules.in
+@@ -37,8 +37,6 @@ ENV{DM_SUBSYSTEM_UDEV_FLAG0}!="1", ENV{DM_NOSCAN}=="1", ENV{DM_UDEV_DISABLE_OTHE
+
+ ENV{DM_UDEV_DISABLE_SUBSYSTEM_RULES_FLAG}=="1", GOTO="lvm_end"
+
+-OPTIONS+="event_timeout=180"
+-
+ # Do not create symlinks for inappropriate subdevices.
+ ENV{DM_LV_NAME}=="pvmove?*|?*_vorigin", GOTO="lvm_disable"
+ ENV{DM_LV_LAYER}=="?*", GOTO="lvm_disable"
+--
+2.24.0
+
diff --git a/patches/lvm/2.03.22/lvm2-001-example.conf.in.patch b/patches/lvm/2.03.22/lvm2-001-example.conf.in.patch
new file mode 100644
index 0000000..b63b681
--- /dev/null
+++ b/patches/lvm/2.03.22/lvm2-001-example.conf.in.patch
@@ -0,0 +1,42 @@
+Add Gentoo specific changes
+
+--- a/conf/example.conf.in
++++ b/conf/example.conf.in
+@@ -170,6 +170,9 @@
+ # Example
+ # Accept every block device:
+ # filter = [ "a|.*|" ]
++ # Gentoo: we exclude /dev/nbd by default, because it makes a lot of kernel
++ # noise when you probed while not available.
++ filter = [ "r|/dev/nbd.*|", "a|.*|" ]
+ # Reject the cdrom drive:
+ # filter = [ "r|/dev/cdrom|" ]
+ # Work with just loopback devices, e.g. for testing:
+@@ -1843,7 +1846,7 @@
+
+ # Configuration section metadata.
+ # This configuration section has an automatic default value.
+-# metadata {
++metadata {
+
+ # Configuration option metadata/check_pv_device_sizes.
+ # Check device sizes are not smaller than corresponding PV sizes.
+@@ -1888,7 +1891,8 @@
+ #
+ # This configuration option is advanced.
+ # This configuration option has an automatic default value.
+- # pvmetadatacopies = 1
++ # Gentoo: enable for data safety, but PV resize is then disabled.
++ # pvmetadatacopies = 2
+
+ # Configuration option metadata/vgmetadatacopies.
+ # Number of copies of metadata to maintain for each VG.
+@@ -1931,7 +1935,7 @@
+ # This configuration option is advanced.
+ # This configuration option has an automatic default value.
+ # stripesize = 64
+-# }
++}
+
+ # Configuration section report.
+ # LVM report command output formatting.
diff --git a/patches/lvm/2.03.22/lvm2-002-always-make-static-libdm.patch b/patches/lvm/2.03.22/lvm2-002-always-make-static-libdm.patch
new file mode 100644
index 0000000..5ddcb4e
--- /dev/null
+++ b/patches/lvm/2.03.22/lvm2-002-always-make-static-libdm.patch
@@ -0,0 +1,42 @@
+diff -Nuar --exclude '*~' LVM2.2.02.63.orig/daemons/dmeventd/Makefile.in LVM2.2.02.63/daemons/dmeventd/Makefile.in
+--- LVM2.2.02.63.orig/daemons/dmeventd/Makefile.in 2010-04-09 14:42:48.000000000 -0700
++++ LVM2.2.02.63/daemons/dmeventd/Makefile.in 2010-04-19 11:53:27.000000000 -0700
+@@ -28,11 +28,12 @@
+ INSTALL_LIB_TARGETS = install_lib_dynamic
+
+ LIB_NAME = libdevmapper-event
++LIB_STATIC = $(LIB_NAME).a
++INSTALL_LIB_TARGETS += install_lib_static
++TARGETS += $(LIB_STATIC)
+ ifeq ("@STATIC_LINK@", "yes")
+- LIB_STATIC = $(LIB_NAME).a
+- TARGETS += $(LIB_STATIC) dmeventd.static
++ TARGETS += dmeventd.static
+ INSTALL_DMEVENTD_TARGETS += install_dmeventd_static
+- INSTALL_LIB_TARGETS += install_lib_static
+ endif
+
+ LIB_VERSION = $(LIB_VERSION_DM)
+diff -Nuar --exclude '*~' LVM2.2.02.63.orig/libdm/Makefile.in LVM2.2.02.63/libdm/Makefile.in
+--- LVM2.2.02.63.orig/libdm/Makefile.in 2010-04-09 14:42:51.000000000 -0700
++++ LVM2.2.02.63/libdm/Makefile.in 2010-04-19 11:52:20.000000000 -0700
+@@ -34,8 +34,8 @@
+
+ INCLUDES = -I$(srcdir)/$(interface) -I$(srcdir)
+
+-ifeq ("@STATIC_LINK@", "yes")
+ LIB_STATIC = $(interface)/libdevmapper.a
++ifeq ("@STATIC_LINK@", "yes")
+ endif
+
+ LIB_SHARED = $(interface)/libdevmapper.$(LIB_SUFFIX)
+@@ -63,8 +63,8 @@
+
+ INSTALL_TYPE = install_dynamic
+
+-ifeq ("@STATIC_LINK@", "yes")
+ INSTALL_TYPE += install_static
++ifeq ("@STATIC_LINK@", "yes")
+ endif
+
+ ifeq ("@PKGCONFIG@", "yes")
diff --git a/patches/lvm/2.03.22/lvm2-003-lvm2create_initrd.patch b/patches/lvm/2.03.22/lvm2-003-lvm2create_initrd.patch
new file mode 100644
index 0000000..59aaa9b
--- /dev/null
+++ b/patches/lvm/2.03.22/lvm2-003-lvm2create_initrd.patch
@@ -0,0 +1,72 @@
+--- LVM2.2.02.56/scripts/lvm2create_initrd/lvm2create_initrd.orig 2006-11-21 22:41:56.000000000 +0000
++++ LVM2.2.02.56/scripts/lvm2create_initrd/lvm2create_initrd 2009-12-26 01:47:08.025224602 +0000
+@@ -54,7 +54,9 @@
+ DEVRAM=/tmp/initrd.$$
+
+ # set defaults
+-BINFILES=${BINFILES:-"`which lvm` `which bash` `which busybox` `which pivot_root`"}
++LVM=`which lvm.static`
++LVM=${LVM:-"`which lvm`"}
++BINFILES=${BINFILES:-"${LVM} `which bash` `which busybox` `which pivot_root`"}
+ BASICDEVICES=${BASICDEVICES:-"std consoleonly fd"}
+ BLOCKDEVICES=${BLOCKDEVICES:-"md hda hdb hdc hdd sda sdb sdc sdd"}
+ MAKEDEV=${MAKEDEV:-"debian"}
+@@ -119,6 +121,10 @@
+ echo "$PRE Mounting /proc"
+ mount -t proc none /proc
+
++# We need /sys for lvm
++echo "$PRE Mounting /sys"
++mount -t sysfs sysfs /sys
++
+ # plug in modules listed in /etc/modules
+ if [ -f /etc/modules ]; then
+ echo -n "$PRE plugging in kernel modules:"
+@@ -179,26 +185,29 @@
+ # run a shell if we're passed lvm2rescue on commandline
+ grep lvm2rescue /proc/cmdline 1>/dev/null 2>&1
+ if [ $? -eq 0 ]; then
+- lvm vgchange --ignorelockingfailure -P -a y
++ $LVM vgchange --ignorelockingfailure -P -a y
+ do_shell
+ else
+- lvm vgchange --ignorelockingfailure -a y
++ $LVM vgchange --ignorelockingfailure -a y
+ fi
+
+ echo "$PRE Mounting root filesystem $rootvol ro"
+ mkdir /rootvol
+ if ! mount -t auto -o ro $rootvol /rootvol; then
+- echo "\t*FAILED*";
++ echo "\t*FAILED TRYING TO MOUNT ROOTVOL*";
+ do_shell
+ fi
+
+ echo "$PRE Umounting /proc"
+ umount /proc
+
++echo "$PRE Umounting /sys"
++umount /sys
++
+ echo "$PRE Changing roots"
+ cd /rootvol
+ if ! pivot_root . initrd ; then
+- echo "\t*FAILED*"
++ echo "\t*FAILED PIVOT TO NEW ROOT*"
+ do_shell
+ fi
+
+@@ -356,7 +365,7 @@
+ fi
+
+ verbose "creating basic set of directories in $TMPMNT"
+-(cd $TMPMNT; mkdir bin dev etc lib proc sbin var)
++(cd $TMPMNT; mkdir bin dev etc lib proc sbin sys var)
+ if [ $? -ne 0 ]; then
+ echo "$cmd -- ERROR creating directories in $TMPMNT"
+ cleanup 1
+@@ -499,4 +508,3 @@
+ FINALTXT
+
+ cleanup 0
+-
diff --git a/patches/lvm/2.03.22/lvm2-004-createinitrd.patch b/patches/lvm/2.03.22/lvm2-004-createinitrd.patch
new file mode 100644
index 0000000..7f0bfb8
--- /dev/null
+++ b/patches/lvm/2.03.22/lvm2-004-createinitrd.patch
@@ -0,0 +1,18 @@
+X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=301331
+X-Gentoo-Bug: 301331
+
+diff -Nuar LVM2.2.02.67.orig/scripts/lvm2create_initrd/lvm2create_initrd LVM2.2.02.67/scripts/lvm2create_initrd/lvm2create_initrd
+--- LVM2.2.02.67.orig/scripts/lvm2create_initrd/lvm2create_initrd 2010-06-07 18:44:34.182980475 +0000
++++ LVM2.2.02.67/scripts/lvm2create_initrd/lvm2create_initrd 2010-06-07 18:51:27.636312899 +0000
+@@ -469,9 +469,9 @@
+ rmdir $TMPMNT/lost+found
+
+ echo "$cmd -- ummounting ram disk"
+-umount $DEVRAM
++umount $TMPMNT
+ if [ $? -ne 0 ]; then
+- echo "$cmd -- ERROR umounting $DEVRAM"
++ echo "$cmd -- ERROR umounting $TMPMNT"
+ cleanup 1
+ fi
+
diff --git a/patches/lvm/2.03.22/lvm2-005-locale-muck.patch b/patches/lvm/2.03.22/lvm2-005-locale-muck.patch
new file mode 100644
index 0000000..fe7ec87
--- /dev/null
+++ b/patches/lvm/2.03.22/lvm2-005-locale-muck.patch
@@ -0,0 +1,11 @@
+--- LVM2/make.tmpl.in
++++ LVM2/make.tmpl.in
+@@ -395,7 +395,7 @@
+ ( cat $(srcdir)/.exported_symbols; \
+ if test x$(EXPORTED_HEADER) != x; then \
+ $(CC) -E -P $(INCLUDES) $(DEFS) $(EXPORTED_HEADER) | \
+- $(SED) -ne "/^typedef|}/!s/.*[ *]\($(EXPORTED_FN_PREFIX)_[a-z0-9_]*\)(.*/\1/p"; \
++ LC_ALL=C $(SED) -ne "/^typedef|}/!s/.*[ *]\($(EXPORTED_FN_PREFIX)_[a-z0-9_]*\)(.*/\1/p"; \
+ fi \
+ ) > $@
+
diff --git a/patches/lvm/2.03.22/lvm2-011-HPPA-no-O_DIRECT.patch b/patches/lvm/2.03.22/lvm2-011-HPPA-no-O_DIRECT.patch
new file mode 100644
index 0000000..0f830e4
--- /dev/null
+++ b/patches/lvm/2.03.22/lvm2-011-HPPA-no-O_DIRECT.patch
@@ -0,0 +1,12 @@
+--- a/lib/device/dev-io.c
++++ b/lib/device/dev-io.c
+@@ -505,7 +505,9 @@
+ dev->flags |= DEV_NOT_O_NOATIME;
+ if ((dev->fd = open(name, flags, 0777)) >= 0) {
+ log_debug_devs("%s: Not using O_NOATIME", name);
++#ifdef O_DIRECT_SUPPORT
+ goto opened;
++#endif
+ }
+ }
+ #endif
diff --git a/patches/lvm/2.03.22/lvm2-013-fix-stdio-usage.patch b/patches/lvm/2.03.22/lvm2-013-fix-stdio-usage.patch
new file mode 100644
index 0000000..8f3835e
--- /dev/null
+++ b/patches/lvm/2.03.22/lvm2-013-fix-stdio-usage.patch
@@ -0,0 +1,22 @@
+diff --git a/lib/commands/toolcontext.c b/lib/commands/toolcontext.c
+index 2256352..0408808 100644
+--- a/lib/commands/toolcontext.c
++++ b/lib/commands/toolcontext.c
+@@ -1667,7 +1667,7 @@ struct cmd_context *create_toolcontext(unsigned is_clvmd,
+ /* FIXME Make this configurable? */
+ reset_lvm_errno(1);
+
+-#ifndef VALGRIND_POOL
++#if !defined(VALGRIND_POOL) && defined(__GLIBC__)
+ /* Set in/out stream buffering before glibc */
+ if (set_buffering
+ #ifdef SYS_gettid
+@@ -2043,7 +2043,7 @@ void destroy_toolcontext(struct cmd_context *cmd)
+ dm_hash_destroy(cmd->cft_def_hash);
+
+ dm_device_list_destroy(&cmd->cache_dm_devs);
+-#ifndef VALGRIND_POOL
++#if !defined(VALGRIND_POOL) && defined(__GLIBC__)
+ if (cmd->linebuffer) {
+ /* Reset stream buffering to defaults */
+ if (is_valid_fd(STDIN_FILENO) &&
diff --git a/patches/lvm/2.03.22/lvm2-014-make-malloc-realloc-check-optional.patch b/patches/lvm/2.03.22/lvm2-014-make-malloc-realloc-check-optional.patch
new file mode 100644
index 0000000..a5bd48a
--- /dev/null
+++ b/patches/lvm/2.03.22/lvm2-014-make-malloc-realloc-check-optional.patch
@@ -0,0 +1,23 @@
+Breaks cross-compilation
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -154,15 +154,16 @@ AC_FUNC_CLOSEDIR_VOID
+ AC_FUNC_CHOWN
+ AC_FUNC_FORK
+ AC_FUNC_LSTAT
+-AC_FUNC_MALLOC
+ AC_FUNC_MEMCMP
+ AC_FUNC_MKTIME
+ AC_FUNC_MMAP
+-AC_FUNC_REALLOC
+ AC_FUNC_STAT
+ AC_FUNC_STRTOD
+ AC_FUNC_VPRINTF
+
++# Optional functions
++AC_CHECK_FUNCS([malloc realloc])
++
+ ################################################################################
+ dnl -- Disable dependency tracking
+ AC_MSG_CHECKING(whether to enable dependency tracking)
diff --git a/patches/lvm/2.03.22/lvm2-016-implement-libc-specific-reopen_stream.patch b/patches/lvm/2.03.22/lvm2-016-implement-libc-specific-reopen_stream.patch
new file mode 100644
index 0000000..6034be3
--- /dev/null
+++ b/patches/lvm/2.03.22/lvm2-016-implement-libc-specific-reopen_stream.patch
@@ -0,0 +1,24 @@
+diff --git a/lib/log/log.c b/lib/log/log.c
+index 79fbd7a..0999d10 100644
+--- a/lib/log/log.c
++++ b/lib/log/log.c
+@@ -161,6 +161,7 @@ static void _check_and_replace_standard_log_streams(FILE *old_stream, FILE *new_
+ * Close and reopen standard stream on file descriptor fd.
+ */
+ int reopen_standard_stream(FILE **stream, const char *mode)
++#ifdef __GLIBC__
+ {
+ int fd, fd_copy, new_fd;
+ const char *name;
+@@ -207,6 +208,11 @@ int reopen_standard_stream(FILE **stream, const char *mode)
+ *stream = new_stream;
+ return 1;
+ }
++#else
++{
++ return (freopen(NULL, mode, *stream) != NULL);
++}
++#endif
+
+ void init_log_fn(lvm2_log_fn_t log_fn)
+ {
diff --git a/patches/lvm/2.03.22/lvm2-018-autoconf-2.72-egrep.patch b/patches/lvm/2.03.22/lvm2-018-autoconf-2.72-egrep.patch
new file mode 100644
index 0000000..9ce7d54
--- /dev/null
+++ b/patches/lvm/2.03.22/lvm2-018-autoconf-2.72-egrep.patch
@@ -0,0 +1,30 @@
+https://bugs.gentoo.org/920798
+https://gitlab.com/lvmteam/lvm2/-/merge_requests/4
+
+From 39cb34e56b8c04b4d652eb9dbd643e10a05ff21c Mon Sep 17 00:00:00 2001
+From: Kai Kang <kai.kang@windriver.com>
+Date: Mon, 6 Nov 2023 16:44:41 +0800
+Subject: [PATCH] configure.ac: check egrep
+
+The macro AC_HEADER_STDC which requires AC_PROG_EGREP has been removed
+from configure.ac, then it fails to substitute '@EGREP@':
+
+| [GEN] command-lines-input.h
+| /bin/bash: line 2: @EGREP@: command not found
+| [GEN] command-count.h
+
+Call AC_PROG_EGREP to fix the error.
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+--- a/configure.ac
++++ b/configure.ac
+@@ -78,6 +78,7 @@ AC_PROG_LN_S
+ AC_PROG_MAKE_SET
+ AC_PROG_MKDIR_P
+ AC_PROG_RANLIB
++AC_PROG_EGREP
+ AC_CHECK_TOOL([READELF], [readelf])
+ AC_CHECK_TOOL(AR, ar)
+ AC_PATH_TOOL(CFLOW_CMD, cflow)
+--
+GitLab
diff --git a/patches/mdadm/4.2/mdadm-3.4-sysmacros.patch b/patches/mdadm/4.2/mdadm-3.4-sysmacros.patch
new file mode 100644
index 0000000..22a3934
--- /dev/null
+++ b/patches/mdadm/4.2/mdadm-3.4-sysmacros.patch
@@ -0,0 +1,31 @@
+https://bugs.gentoo.org/580188
+
+From 5c97e465b33bf8fefb17da7f553a1c3812e508d5 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Tue, 19 Apr 2016 18:10:54 -0400
+Subject: [PATCH] include sys/sysmacros.h for major/minor/makedev prototypes
+
+These funcs are defined in sys/sysmacros.h, so include it for them.
+It works today due to an implicit include by sys/types.h, but the
+various Linux C libraries are moving away from that.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ mdadm.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/mdadm.h b/mdadm.h
+index d209488..b8767a7 100755
+--- a/mdadm.h
++++ b/mdadm.h
+@@ -33,6 +33,7 @@ extern __off64_t lseek64 __P ((int __fd, __off64_t __offset, int __whence));
+ # endif
+ #endif
+
++#include <sys/sysmacros.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <stdint.h>
+--
+2.7.4
+
diff --git a/patches/open-iscsi/2.1.4/open-iscsi-2.1.4-Makefiles.patch b/patches/open-iscsi/2.1.4/open-iscsi-2.1.4-Makefiles.patch
new file mode 100644
index 0000000..2488b73
--- /dev/null
+++ b/patches/open-iscsi/2.1.4/open-iscsi-2.1.4-Makefiles.patch
@@ -0,0 +1,99 @@
+--- a/libopeniscsiusr/Makefile
++++ b/libopeniscsiusr/Makefile
+@@ -23,7 +23,7 @@ endif
+ INCLUDE_DIR ?= $(prefix)/include
+ PKGCONF_DIR ?= $(LIB_DIR)/pkgconfig
+
+-PKG_CONFIG = /usr/bin/pkg-config
++PKG_CONFIG ?= pkg-config
+
+ LIBISCSI_USR_DIR=$(TOPDIR)/libopeniscsiusr
+
+@@ -45,17 +45,18 @@ EXTRA_MAN_FILES = libopeniscsiusr.h.3
+ OBJS = context.o misc.o session.o sysfs.o iface.o idbm.o node.o default.o
+
+ CFLAGS ?= -O2 -g
+-CFLAGS += -Wall -Werror -Wextra -fvisibility=hidden -fPIC
++CFLAGS += -Wextra -fvisibility=hidden -fPIC
+ CFLAGS += $(shell $(PKG_CONFIG) --cflags libkmod)
+
+ LDFLAGS += $(shell $(PKG_CONFIG) --libs libkmod)
+
+ LIBADD =
+
+-all: $(LIBS) $(LIBS_MAJOR) $(TESTS) doc
++all: $(LIBS) $(LIBS_MAJOR)
+
+ $(LIBS): $(OBJS)
+ @echo CFLAGS= $(CFLAGS)
++ $(AR) $(ARFLAGS) libopeniscsiusr.a $^
+ $(CC) $(CFLAGS) -shared -Wl,-soname=$@ -o $@ $(OBJS) $(LDFLAGS) $(LIBADD)
+ ln -sf $@ $(DEVLIB)
+
+--- a/usr/Makefile
++++ b/usr/Makefile
+@@ -32,7 +32,7 @@ IPC_OBJ=ioctl.o
+ endif
+ endif
+
+-PKG_CONFIG = /usr/bin/pkg-config
++PKG_CONFIG ?= pkg-config
+
+ CFLAGS ?= -O2 -g
+ WARNFLAGS ?= -Wall -Wextra -Werror -Wstrict-prototypes -fno-common
+@@ -78,9 +78,9 @@ iscsistart: $(ISCSI_LIB_SRCS) $(INITIATOR_SRCS) $(FW_BOOT_SRCS) \
+ iscsistart.o statics.o
+ $(CC) $(CFLAGS) $^ -o $@ -lcrypto -lrt $(LDFLAGS) $(ISCSI_LIB)
+ clean:
+- rm -f *.o $(PROGRAMS) .depend $(LIBSYS)
++ $(RM) *.o $(PROGRAMS) .depend $(LIBSYS)
+
+ depend:
+- gcc $(CFLAGS) -M `ls *.c` > .depend
++ $(CC) $(CFLAGS) -M `ls *.c` > .depend
+
+ -include .depend
+--- a/utils/Makefile
++++ b/utils/Makefile
+@@ -10,9 +10,9 @@ iscsi-iname: md5.o iscsi-iname.o
+ $(CC) $(CFLAGS) $(LDFLAGS) $^ $(DBM_LIB) -o $@
+
+ clean:
+- rm -f *.o $(PROGRAMS) .depend
++ $(RM) *.o $(PROGRAMS) .depend
+
+ depend:
+- gcc $(CFLAGS) -M `ls *.c` > .depend
++ $(CC) $(CFLAGS) -M `ls *.c` > .depend
+
+ -include .depend
+--- a/utils/fwparam_ibft/Makefile
++++ b/utils/fwparam_ibft/Makefile
+@@ -41,11 +41,11 @@ LDFLAGS += -L$(TOPDIR)/libopeniscsiusr -liscsiusr
+ all: $(OBJS)
+
+ clean:
+- rm -f *.o $(CLEANFILES) .depend
++ $(RM) *.o $(CLEANFILES) .depend
+
+ $(OBJS): prom_parse.tab.h prom_parse.h fwparam_ibft.h
+
+ depend:
+- gcc $(CFLAGS) -M `ls *.c` > .depend
++ $(CC) $(CFLAGS) -M `ls *.c` > .depend
+
+ -include .depend
+--- a/utils/sysdeps/Makefile
++++ b/utils/sysdeps/Makefile
+@@ -8,9 +8,9 @@ SYSDEPS_OBJS=sysdeps.o
+ all: $(SYSDEPS_OBJS)
+
+ clean:
+- rm -f *.o .depend
++ $(RM) *.o .depend
+
+ depend:
+- gcc $(CFLAGS) -M `ls *.c` > .depend
++ $(CC) $(CFLAGS) -M `ls *.c` > .depend
+
+ -include .depend
diff --git a/patches/open-iscsi/2.1.4/open-iscsi-2.1.4-static-iscsistart.patch b/patches/open-iscsi/2.1.4/open-iscsi-2.1.4-static-iscsistart.patch
new file mode 100644
index 0000000..b84ba92
--- /dev/null
+++ b/patches/open-iscsi/2.1.4/open-iscsi-2.1.4-static-iscsistart.patch
@@ -0,0 +1,11 @@
+--- a/usr/Makefile
++++ b/usr/Makefile
+@@ -76,7 +76,7 @@ $(CC) $(CFLAGS) $^ -o $@ -lisns -lcrypto -lmount $(LDFLAGS) $(ISCSI_LIB)
+
+ iscsistart: $(ISCSI_LIB_SRCS) $(INITIATOR_SRCS) $(FW_BOOT_SRCS) \
+ iscsistart.o statics.o
+- $(CC) $(CFLAGS) $^ -o $@ -lcrypto -lrt $(LDFLAGS) $(ISCSI_LIB)
++ $(CC) $(CFLAGS) $^ -o $@ -static -lcrypto -lrt $(LDFLAGS) $(ISCSI_LIB)
+ clean:
+ $(RM) *.o $(PROGRAMS) .depend $(LIBSYS)
+
diff --git a/patches/open-iscsi/2.1.8/open-iscsi-2.1.8-Makefiles.patch b/patches/open-iscsi/2.1.8/open-iscsi-2.1.8-Makefiles.patch
new file mode 100644
index 0000000..5d0bef1
--- /dev/null
+++ b/patches/open-iscsi/2.1.8/open-iscsi-2.1.8-Makefiles.patch
@@ -0,0 +1,24 @@
+--- a/libopeniscsiusr/Makefile
++++ b/libopeniscsiusr/Makefile
+@@ -50,7 +50,7 @@ EXTRA_MAN_FILE = libopeniscsiusr.h.3
+ OBJS = context.o misc.o session.o sysfs.o iface.o idbm.o node.o default.o
+
+ CFLAGS ?= -O2 -g
+-CFLAGS += -Wall -Werror -Wextra -fvisibility=hidden -fPIC
++CFLAGS += -Wextra -fvisibility=hidden -fPIC
+ CFLAGS += $(shell $(PKG_CONFIG) --cflags libkmod)
+ CFLAGS += -DSBINDIR=\"$(SBINDIR)\"
+ CFLAGS += -DISCSI_DB_ROOT=\"$(DBROOT)\"
+@@ -60,9 +60,10 @@ LDFLAGS += $(shell $(PKG_CONFIG) --libs libkmod)
+
+ LIBADD =
+
+-all: $(LIBS) $(LIBS_MAJOR) $(TESTS) doc
++all: $(LIBS) $(LIBS_MAJOR)
+
+ $(LIBS): $(OBJS)
++ $(AR) $(ARFLAGS) libopeniscsiusr.a $^
+ $(CC) $(CFLAGS) -shared -Wl,-soname=$@ -o $@ $(OBJS) $(LDFLAGS) $(LIBADD)
+ ln -sf $@ $(DEVLIB)
+
+--
diff --git a/patches/open-iscsi/2.1.8/open-iscsi-2.1.8-static-iscsistart.patch b/patches/open-iscsi/2.1.8/open-iscsi-2.1.8-static-iscsistart.patch
new file mode 100644
index 0000000..9ac800a
--- /dev/null
+++ b/patches/open-iscsi/2.1.8/open-iscsi-2.1.8-static-iscsistart.patch
@@ -0,0 +1,11 @@
+--- a/usr/Makefile
++++ b/usr/Makefile
+@@ -99,7 +99,7 @@ iscsiadm: $(ISCSI_LIB_OBJS) $(SYSDEPS_OBJS) $(DISCOVERY_OBJS) $(FW_BOOT_OBJS) \
+
+ iscsistart: $(ISCSI_LIB_OBJS) $(SYSDEPS_OBJS) $(INITIATOR_OBJS) $(FW_BOOT_OBJS) \
+ $(ISCSISTART_OBJS)
+- $(CC) $(CFLAGS) $^ -o $@ -lcrypto -lrt $(LDFLAGS) $(ISCSI_LIB)
++ $(CC) $(CFLAGS) $^ -o $@ -static -lcrypto -lrt $(LDFLAGS) $(ISCSI_LIB)
+
+ install: $(DESTDIR)$(SBINDIR) $(PROGRAMS_DEST)
+
diff --git a/patches/thin-provisioning-tools/0.9.0/thin-provisioning-tools-0.8.5-no-manpages.patch b/patches/thin-provisioning-tools/0.9.0/thin-provisioning-tools-0.8.5-no-manpages.patch
new file mode 100644
index 0000000..25f6381
--- /dev/null
+++ b/patches/thin-provisioning-tools/0.9.0/thin-provisioning-tools-0.8.5-no-manpages.patch
@@ -0,0 +1,27 @@
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -279,7 +279,7 @@ TOOLS:=\
+
+ MANPAGES:=$(patsubst %,man8/%.8,$(TOOLS))
+
+-install: bin/pdata_tools $(MANPAGES)
++install: bin/pdata_tools
+ $(INSTALL_DIR) $(BINDIR)
+ $(INSTALL_PROGRAM) bin/pdata_tools $(BINDIR)
+ $(STRIP) $(BINDIR)/pdata_tools
+@@ -302,6 +302,7 @@ install: bin/pdata_tools $(MANPAGES)
+ ln -s -f pdata_tools $(BINDIR)/era_dump
+ ln -s -f pdata_tools $(BINDIR)/era_invalidate
+ ln -s -f pdata_tools $(BINDIR)/era_restore
++ifeq ("@INSTALLMANPAGES@", "yes")
+ $(INSTALL_DIR) $(MANPATH)/man8
+ $(INSTALL_DATA) man8/cache_check.8 $(MANPATH)/man8
+ $(INSTALL_DATA) man8/cache_dump.8 $(MANPATH)/man8
+@@ -322,6 +323,7 @@ install: bin/pdata_tools $(MANPAGES)
+ $(INSTALL_DATA) man8/era_restore.8 $(MANPATH)/man8
+ $(INSTALL_DATA) man8/era_invalidate.8 $(MANPATH)/man8
+ $(INSTALL_DATA) man8/thin_trim.8 $(MANPATH)/man8
++endif
+ ifeq ("@DEVTOOLS@", "yes")
+ ln -s -f pdata_tools $(BINDIR)/thin_show_duplicates
+ ln -s -f pdata_tools $(BINDIR)/thin_ll_dump
diff --git a/patches/thin-provisioning-tools/0.9.0/thin-provisioning-tools-0.9.0-build-fixes.patch b/patches/thin-provisioning-tools/0.9.0/thin-provisioning-tools-0.9.0-build-fixes.patch
new file mode 100644
index 0000000..802c434
--- /dev/null
+++ b/patches/thin-provisioning-tools/0.9.0/thin-provisioning-tools-0.9.0-build-fixes.patch
@@ -0,0 +1,85 @@
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -160,9 +160,9 @@ endif
+
+ TOP_DIR:=@top_srcdir@
+ TOP_BUILDDIR:=@top_builddir@
+-CFLAGS+=-g -Wall -O3 -fPIC
++CFLAGS+=-fPIC
+ CFLAGS+=@LFS_FLAGS@
+-CXXFLAGS+=-g -Wall -fPIC -fno-strict-aliasing -std=c++11
++CXXFLAGS+=-fPIC -fno-strict-aliasing -std=c++11
+
+ ifeq ("@DEVTOOLS@", "yes")
+ CXXFLAGS+=-DDEV_TOOLS
+@@ -363,7 +363,7 @@ LIBFT_OBJECTS=$(subst .c,.o,$(LIBFT_SOURCE))
+
+ lib/libft.so: $(LIBFT_OBJECTS)
+ @echo " [LD]" $@
+- $(V) gcc -shared -o $@ $+ -laio
++ $(V) $(CC) -shared -o $@ $+ -laio
+
+ .PHONEY: functional-test unit-test
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -35,6 +35,8 @@ AC_LANG(C++)
+
+ ################################################################
+ dnl -- Checks for programs.
++AC_DEFUN([AC_PROG_AR], [AC_CHECK_TOOL([AR],[ar])])
++AC_PROG_AR
+ AC_PROG_SED
+ AC_PROG_AWK
+ AC_PROG_LN_S
+--- a/functional-tests/bcache/Makefile
++++ b/functional-tests/bcache/Makefile
+@@ -1,8 +1,8 @@
+ bcache.so: bcache.o
+- gcc -shared -o $@ $< -laio
++ $(CC) -shared -o $@ $< -laio
+
+ bcache.o: bcache.c
+- gcc -std=gnu11 -fpic -I. -Wall -c -o $@ $<
++ $(CC) -std=gnu11 -fpic -I. -Wall -c -o $@ $<
+
+ .PHONEY: clean
+ clean:
+--- a/functional-tests/crc32c/Makefile
++++ b/functional-tests/crc32c/Makefile
+@@ -1,8 +1,8 @@
+ crc32c.so: crc32c.o
+- gcc -shared -o $@ $< -laio
++ $(CC) -shared -o $@ $< -laio
+
+ crc32c.o: crc32c.c
+- gcc -std=gnu11 -fpic -I. -Wall -c -o $@ $<
++ $(CC) -std=gnu11 -fpic -I. -Wall -c -o $@ $<
+
+ .PHONEY: clean
+ clean:
+--- a/functional-tests/device-mapper/Makefile
++++ b/functional-tests/device-mapper/Makefile
+@@ -1,8 +1,8 @@
+ dm-ioctl.so: dm-ioctl.o
+- gcc -shared -o $@ $< -laio
++ $(CC) -shared -o $@ $< -laio
+
+ dm-ioctl.o: dm-ioctl.c
+- gcc -std=gnu11 -fpic -I. -Wall -c -o $@ $<
++ $(CC) -std=gnu11 -fpic -I. -Wall -c -o $@ $<
+
+ .PHONEY: clean
+ clean:
+--- a/unit-tests/Makefile.in
++++ b/unit-tests/Makefile.in
+@@ -25,7 +25,7 @@ GMOCK_FLAGS=\
+ -Wno-unused-local-typedefs
+
+ GMOCK_LIBS=\
+- -Llib -lpdata -lgmock -lpthread -laio
++ -Llib -lpdata -lgmock -lpthread -laio -lgtest
+
+ GMOCK_DEPS=\
+ $(wildcard $(GMOCK_DIR)/googlemock/include/*.h) \
+
diff --git a/patches/unionfs-fuse/2.0/unionfs-fuse-2.0-use-PKG_CONFIG-env-variable.patch b/patches/unionfs-fuse/2.0/unionfs-fuse-2.0-use-PKG_CONFIG-env-variable.patch
new file mode 100644
index 0000000..30d0f96
--- /dev/null
+++ b/patches/unionfs-fuse/2.0/unionfs-fuse-2.0-use-PKG_CONFIG-env-variable.patch
@@ -0,0 +1,24 @@
+Use pkg-config from environment variable (mimic's autotools' behavior).
+
+While here, request static libs because genkernel builds static unionfs only.
+
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -1,5 +1,7 @@
++PKG_CONFIG ?= pkg-config
++
+ CFLAGS += -Wall
+-CPPFLAGS += $(shell pkg-config --cflags fuse)
++CPPFLAGS += $(shell $(PKG_CONFIG) --cflags fuse)
+ CPPFLAGS += -DFUSE_USE_VERSION=29
+
+ CPPFLAGS += -DLIBC_XATTR # glibc nowadays includes xattr
+@@ -10,7 +12,7 @@ CPPFLAGS += -DLIBC_XATTR # glibc nowadays includes xattr
+
+ LDFLAGS +=
+
+-LIB = $(shell pkg-config --libs fuse) -lpthread
++LIB = $(shell $(PKG_CONFIG) --static --libs fuse) -lpthread
+
+ HASHTABLE_OBJ = hashtable.o hashtable_itr.o
+ UNIONFS_OBJ = unionfs.o opts.o debug.o findbranch.o readdir.o \
diff --git a/patches/xfsprogs/5.13.0/xfsprogs-5.10.0-remove-inih-dep.patch b/patches/xfsprogs/5.13.0/xfsprogs-5.10.0-remove-inih-dep.patch
new file mode 100644
index 0000000..6b93552
--- /dev/null
+++ b/patches/xfsprogs/5.13.0/xfsprogs-5.10.0-remove-inih-dep.patch
@@ -0,0 +1,127 @@
+--- a/configure
++++ b/configure
+@@ -13779,83 +13779,6 @@ fi
+ librt=""
+ fi
+
+-
+-
+- for ac_header in ini.h
+-do :
+- ac_fn_c_check_header_mongrel "$LINENO" "ini.h" "ac_cv_header_ini_h" "$ac_includes_default"
+-if test "x$ac_cv_header_ini_h" = xyes; then :
+- cat >>confdefs.h <<_ACEOF
+-#define HAVE_INI_H 1
+-_ACEOF
+-
+-fi
+-
+-done
+-
+- if test $ac_cv_header_ini_h = no; then
+- echo
+- echo 'FATAL ERROR: could not find a valid ini.h header.'
+- echo 'Install the libinih development package.'
+- exit 1
+- fi
+-
+- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ini_parse in -linih" >&5
+-$as_echo_n "checking for ini_parse in -linih... " >&6; }
+-if ${ac_cv_lib_inih_ini_parse+:} false; then :
+- $as_echo_n "(cached) " >&6
+-else
+- ac_check_lib_save_LIBS=$LIBS
+-LIBS="-linih $LIBS"
+-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h. */
+-
+-/* Override any GCC internal prototype to avoid an error.
+- Use char because int might match the return type of a GCC
+- builtin and then its argument prototype would still apply. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-char ini_parse ();
+-int
+-main ()
+-{
+-return ini_parse ();
+- ;
+- return 0;
+-}
+-_ACEOF
+-if ac_fn_c_try_link "$LINENO"; then :
+- ac_cv_lib_inih_ini_parse=yes
+-else
+- ac_cv_lib_inih_ini_parse=no
+-fi
+-rm -f core conftest.err conftest.$ac_objext \
+- conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
+-fi
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_inih_ini_parse" >&5
+-$as_echo "$ac_cv_lib_inih_ini_parse" >&6; }
+-if test "x$ac_cv_lib_inih_ini_parse" = xyes; then :
+- cat >>confdefs.h <<_ACEOF
+-#define HAVE_LIBINIH 1
+-_ACEOF
+-
+- LIBS="-linih $LIBS"
+-
+-else
+-
+- echo
+- echo 'FATAL ERROR: could not find a valid inih library.'
+- echo 'Install the libinih library package.'
+- exit 1
+-
+-fi
+-
+- libinih=-linih
+-
+-
+-
+ for ac_header in uuid.h sys/uuid.h uuid/uuid.h
+ do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+--- a/include/builddefs.in
++++ b/include/builddefs.in
+@@ -27,7 +27,6 @@ LIBTERMCAP = @libtermcap@
+ LIBEDITLINE = @libeditline@
+ LIBBLKID = @libblkid@
+ LIBDEVMAPPER = @libdevmapper@
+-LIBINIH = @libinih@
+ LIBXFS = $(TOPDIR)/libxfs/libxfs.la
+ LIBFROG = $(TOPDIR)/libfrog/libfrog.la
+ LIBXCMD = $(TOPDIR)/libxcmd/libxcmd.la
+--- a/mkfs/xfs_mkfs.c
++++ b/mkfs/xfs_mkfs.c
+@@ -11,7 +11,6 @@
+ #include "libfrog/fsgeom.h"
+ #include "libfrog/topology.h"
+ #include "libfrog/convert.h"
+-#include <ini.h>
+
+ #define TERABYTES(count, blog) ((uint64_t)(count) << (40 - (blog)))
+ #define GIGABYTES(count, blog) ((uint64_t)(count) << (30 - (blog)))
+@@ -3769,7 +3768,7 @@ cfgfile_parse(
+ if (!cli->cfgfile)
+ return;
+
+- error = ini_parse(cli->cfgfile, cfgfile_parse_ini, cli);
++ error = -3;
+ if (error) {
+ if (error > 0) {
+ fprintf(stderr,
+@@ -3783,6 +3782,10 @@ cfgfile_parse(
+ fprintf(stderr,
+ _("Memory allocation failure parsing %s. Aborting.\n"),
+ cli->cfgfile);
++ } else if (error == -3) {
++ fprintf(stderr,
++ _("Unable to open config file %s. xfsprogs was built without cfg file support.\n"),
++ cli->cfgfile);
+ } else {
+ fprintf(stderr,
+ _("Unknown error %d opening config file %s. Aborting.\n"),
+
diff --git a/patches/zlib/1.2.11/zlib-1.2.11-fix-deflateParams-usage.patch b/patches/zlib/1.2.11/zlib-1.2.11-fix-deflateParams-usage.patch
new file mode 100644
index 0000000..1876484
--- /dev/null
+++ b/patches/zlib/1.2.11/zlib-1.2.11-fix-deflateParams-usage.patch
@@ -0,0 +1,67 @@
+From f9694097dd69354b03cb8af959094c7f260db0a1 Mon Sep 17 00:00:00 2001
+From: Mark Adler <madler@alumni.caltech.edu>
+Date: Mon, 16 Jan 2017 09:49:35 -0800
+Subject: [PATCH] Permit a deflateParams() parameter change as soon as
+ possible.
+
+This commit allows a parameter change even if the input data has
+not all been compressed and copied to the application output
+buffer, so long as all of the input data has been compressed to
+the internal pending output buffer. This also allows an immediate
+deflateParams change so long as there have been no deflate calls
+since initialization or reset.
+---
+ deflate.c | 6 +++---
+ zlib.h | 11 ++++++-----
+ 2 files changed, 9 insertions(+), 8 deletions(-)
+
+diff --git a/deflate.c b/deflate.c
+index b63311a5..20bda4f6 100644
+--- a/deflate.c
++++ b/deflate.c
+@@ -494,7 +494,7 @@ int ZEXPORT deflateResetKeep (strm)
+ s->wrap == 2 ? crc32(0L, Z_NULL, 0) :
+ #endif
+ adler32(0L, Z_NULL, 0);
+- s->last_flush = Z_NO_FLUSH;
++ s->last_flush = -2;
+
+ _tr_init(s);
+
+@@ -587,12 +587,12 @@ int ZEXPORT deflateParams(strm, level, strategy)
+ func = configuration_table[s->level].func;
+
+ if ((strategy != s->strategy || func != configuration_table[level].func) &&
+- s->high_water) {
++ s->last_flush != -2) {
+ /* Flush the last buffer: */
+ int err = deflate(strm, Z_BLOCK);
+ if (err == Z_STREAM_ERROR)
+ return err;
+- if (strm->avail_out == 0)
++ if (strm->avail_in || (s->strstart - s->block_start) + s->lookahead)
+ return Z_BUF_ERROR;
+ }
+ if (s->level != level) {
+diff --git a/zlib.h b/zlib.h
+index 5daf4f28..577d81e3 100644
+--- a/zlib.h
++++ b/zlib.h
+@@ -712,11 +712,12 @@ ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm,
+ used to switch between compression and straight copy of the input data, or
+ to switch to a different kind of input data requiring a different strategy.
+ If the compression approach (which is a function of the level) or the
+- strategy is changed, and if any input has been consumed in a previous
+- deflate() call, then the input available so far is compressed with the old
+- level and strategy using deflate(strm, Z_BLOCK). There are three approaches
+- for the compression levels 0, 1..3, and 4..9 respectively. The new level
+- and strategy will take effect at the next call of deflate().
++ strategy is changed, and if there have been any deflate() calls since the
++ state was initialized or reset, then the input available so far is
++ compressed with the old level and strategy using deflate(strm, Z_BLOCK).
++ There are three approaches for the compression levels 0, 1..3, and 4..9
++ respectively. The new level and strategy will take effect at the next call
++ of deflate().
+
+ If a deflate(strm, Z_BLOCK) is performed by deflateParams(), and it does
+ not have enough output space to complete, then the parameter change will not
diff --git a/patches/zlib/1.2.11/zlib-1.2.11-minizip-drop-crypt-header.patch b/patches/zlib/1.2.11/zlib-1.2.11-minizip-drop-crypt-header.patch
new file mode 100644
index 0000000..2e0a93e
--- /dev/null
+++ b/patches/zlib/1.2.11/zlib-1.2.11-minizip-drop-crypt-header.patch
@@ -0,0 +1,38 @@
+https://bugs.gentoo.org/658536
+https://github.com/madler/zlib/pull/229
+
+From e490ddad3091574a0c2e3b5a66a8fee9a7ab212f Mon Sep 17 00:00:00 2001
+From: Pavel Raiskup <praiskup@redhat.com>
+Date: Sun, 19 Feb 2017 16:42:12 +0100
+Subject: [PATCH] minizip: don't install crypt.h
+
+People did mistakenly or unintentionally include crypt.h before,
+don't install this internal header from now.
+---
+ contrib/minizip/Makefile.am | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/contrib/minizip/Makefile.am b/contrib/minizip/Makefile.am
+index d343011ebc3b..4f46610238d2 100644
+--- a/contrib/minizip/Makefile.am
++++ b/contrib/minizip/Makefile.am
+@@ -26,13 +26,15 @@ libminizip_la_LDFLAGS = $(AM_LDFLAGS) -version-info 1:0:0 -lz
+
+ minizip_includedir = $(includedir)/minizip
+ minizip_include_HEADERS = \
+- crypt.h \
+ ioapi.h \
+ mztools.h \
+ unzip.h \
+ zip.h \
+ ${iowin32_h}
+
++noinst_HEADERS = \
++ crypt.h
++
+ pkgconfigdir = $(libdir)/pkgconfig
+ pkgconfig_DATA = minizip.pc
+
+--
+2.17.1
+
diff --git a/patches/zlib/1.3.1/zlib-1.2.11-minizip-drop-crypt-header.patch b/patches/zlib/1.3.1/zlib-1.2.11-minizip-drop-crypt-header.patch
new file mode 100644
index 0000000..2e0a93e
--- /dev/null
+++ b/patches/zlib/1.3.1/zlib-1.2.11-minizip-drop-crypt-header.patch
@@ -0,0 +1,38 @@
+https://bugs.gentoo.org/658536
+https://github.com/madler/zlib/pull/229
+
+From e490ddad3091574a0c2e3b5a66a8fee9a7ab212f Mon Sep 17 00:00:00 2001
+From: Pavel Raiskup <praiskup@redhat.com>
+Date: Sun, 19 Feb 2017 16:42:12 +0100
+Subject: [PATCH] minizip: don't install crypt.h
+
+People did mistakenly or unintentionally include crypt.h before,
+don't install this internal header from now.
+---
+ contrib/minizip/Makefile.am | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/contrib/minizip/Makefile.am b/contrib/minizip/Makefile.am
+index d343011ebc3b..4f46610238d2 100644
+--- a/contrib/minizip/Makefile.am
++++ b/contrib/minizip/Makefile.am
+@@ -26,13 +26,15 @@ libminizip_la_LDFLAGS = $(AM_LDFLAGS) -version-info 1:0:0 -lz
+
+ minizip_includedir = $(includedir)/minizip
+ minizip_include_HEADERS = \
+- crypt.h \
+ ioapi.h \
+ mztools.h \
+ unzip.h \
+ zip.h \
+ ${iowin32_h}
+
++noinst_HEADERS = \
++ crypt.h
++
+ pkgconfigdir = $(libdir)/pkgconfig
+ pkgconfig_DATA = minizip.pc
+
+--
+2.17.1
+
diff --git a/path_expander.py b/path_expander.py
new file mode 100755
index 0000000..82accad
--- /dev/null
+++ b/path_expander.py
@@ -0,0 +1,18 @@
+#!/usr/bin/env python3
+
+import os
+import sys
+
+def main(argv):
+ if len(argv) != 1:
+ print(
+ "%s expects exactly one argument but %s were given!"
+ % (os.path.basename(__file__), len(argv)),
+ file=sys.stderr
+ )
+ sys.exit(1)
+
+ print(os.path.expanduser(argv[0]))
+
+if __name__ == "__main__":
+ main(sys.argv[1:])
diff --git a/worker_modules/dropbear.sh b/worker_modules/dropbear.sh
new file mode 100644
index 0000000..ed24a8c
--- /dev/null
+++ b/worker_modules/dropbear.sh
@@ -0,0 +1,161 @@
+#!/bin/bash
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+__module_main() {
+ if [[ -z "${DROPBEAR_COMMAND}" ]]
+ then
+ die "Do not know which dropbear command should run: DROPBEAR_COMMAND not set!"
+ elif [[ -z "${DROPBEAR_KEY_FILE}" ]]
+ then
+ die "Unable to create new dropbear host key: DROPBEAR_KEY_FILE not set!"
+ elif [[ -z "${DROPBEAR_KEY_TYPE}" ]]
+ then
+ die "Unable to create new dropbear host key: DROPBEAR_KEY_TYPE not set!"
+ elif [[ -z "${TEMP}" ]]
+ then
+ die "Unable to do work: TEMP is not set!"
+ fi
+
+ local real_main_function=
+ case "${DROPBEAR_COMMAND}" in
+ *dropbearconvert)
+ if [[ -n "${DROPBEAR_KEY_INFO_FILE}" ]]
+ then
+ real_main_function=_dropbear_create_key_info_file
+ else
+ real_main_function=_dropbear_create_from_host
+ fi
+ ;;
+ *dropbearkey)
+ real_main_function=_dropbear_create_new
+ ;;
+ *)
+ die "Unknown DROPBEAR_COMMAND '${DROPBEAR_COMMAND}' set!"
+ ;;
+ esac
+
+ local dropbear_temp=$(mktemp -d -p "${TEMP}" dropbear_XXXXXXXX 2>/dev/null)
+ [ -z "${dropbear_temp}" ] && die "mktemp failed!"
+
+ cd "${dropbear_temp}" || die "Failed to chdir to '${dropbear_temp}'!"
+
+ addwrite "/dev/random:/dev/urandom"
+
+ ${real_main_function}
+}
+
+_dropbear_create_from_host() {
+ local keyname="dropbear_${DROPBEAR_KEY_TYPE}.key"
+
+ local ssh_host_key=/etc/ssh/
+ case "${DROPBEAR_KEY_TYPE}" in
+ dss)
+ ssh_host_key+=ssh_host_dsa_key
+ ;;
+ ecdsa)
+ ssh_host_key+=ssh_host_ecdsa_key
+ ;;
+ ed25519)
+ ssh_host_key+=ssh_host_ed25519_key
+ ;;
+ rsa)
+ ssh_host_key+=ssh_host_rsa_key
+ ;;
+ *)
+ die "Dropbear key type '${DROPBEAR_KEY_TYPE}' is unknown!"
+ ;;
+ esac
+
+ local ssh_host_keyname=$(basename "${ssh_host_key}")
+ if [ -z "${ssh_host_keyname}" ]
+ then
+ die "Failed to get basename from '${ssh_host_key}'!"
+ fi
+
+ cp -aL "${ssh_host_key}" . || die "Failed to copy '${ssh_host_key}' to '$(pwd)'!"
+
+ # Dropbear doesn't support RFC4716 format yet -- luckily ssh-keygen
+ # can be used to convert existing key ...
+ local command=( "ssh-keygen -p -P '' -N '' -m PEM -f ${ssh_host_keyname} &>/dev/null" )
+ gkexec "${command[*]}"
+
+ # Now we can convert using dropbearconvert ...
+ command=( "${DROPBEAR_COMMAND} openssh dropbear ${ssh_host_keyname} ${keyname} &>/dev/null" )
+ gkexec "${command[*]}"
+
+ _dropbear_install "${keyname}"
+}
+
+_dropbear_create_key_info_file() {
+ local ssh_key_file=
+ case "${DROPBEAR_KEY_TYPE}" in
+ dss)
+ ssh_key_file=ssh_host_dsa_key
+ ;;
+ ecdsa)
+ ssh_key_file=ssh_host_ecdsa_key
+ ;;
+ ed25519)
+ ssh_key_file=ssh_host_ed25519_key
+ ;;
+ rsa)
+ ssh_key_file=ssh_host_rsa_key
+ ;;
+ *)
+ die "Dropbear key type '${DROPBEAR_KEY_TYPE}' is unknown!"
+ ;;
+ esac
+
+ local ssh_key_info_file="${ssh_key_file}.info"
+
+ # Convert to SSH key format because dropbear only supports its own SHA1 implementation ...
+ local command=( "${DROPBEAR_COMMAND} dropbear openssh ${DROPBEAR_KEY_FILE} ${ssh_key_file}" )
+ gkexec "${command[*]}"
+
+ # MD5
+ ssh-keygen -l -E md5 -f ${ssh_key_file} > ${ssh_key_info_file} 2>/dev/null \
+ || die "Failed to extract MD5 fingerprint from SSH key '${ssh_key_file}'!"
+
+ # SHA256
+ ssh-keygen -l -E sha256 -f ${ssh_key_file} >> ${ssh_key_info_file} 2>/dev/null \
+ || die "Failed to extract MD5 fingerprint from SSH key '${ssh_key_file}'!"
+
+ sed -i \
+ -e 's/no comment //' \
+ "${ssh_key_info_file}" \
+ || die "Failed to remove comment from '${ssh_key_info_file}'!"
+
+ DROPBEAR_KEY_FILE=${DROPBEAR_KEY_INFO_FILE}
+ _dropbear_install "${ssh_key_info_file}"
+}
+
+_dropbear_create_new() {
+ local keyname="dropbear_${DROPBEAR_KEY_TYPE}.key"
+
+ local command=( "${DROPBEAR_COMMAND} -t ${DROPBEAR_KEY_TYPE} -f ${keyname} &>/dev/null" )
+ gkexec "${command[*]}"
+
+ _dropbear_install "${keyname}"
+}
+
+_dropbear_install() {
+ local keyfile=${1}
+ if [[ -z "${keyfile}" || ! -f "${keyfile}" ]]
+ then
+ die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Keyfile '${keyfile}' is invalid!"
+ fi
+
+ local key_destdir=$(dirname "${DROPBEAR_KEY_FILE}")
+ addwrite "${key_destdir}"
+
+ if [[ ! -d "${key_destdir}" ]]
+ then
+ mkdir -p "${key_destdir}" || die "Failed to create '${key_destdir}'!"
+ fi
+
+ cp -a "${keyfile}" "${DROPBEAR_KEY_FILE}" || die "Failed to copy '${keyfile}' to '${DROPBEAR_KEY_FILE}'!"
+
+ # end here -- sandbox is open!
+ exit 0
+}
diff --git a/worker_modules/gkbuild.sh b/worker_modules/gkbuild.sh
new file mode 100644
index 0000000..101d5d0
--- /dev/null
+++ b/worker_modules/gkbuild.sh
@@ -0,0 +1,770 @@
+#!/bin/bash
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+__module_main() {
+ _gkbuild_main
+}
+
+_disable_distcc() {
+ if [[ -z "${DISABLE_DISTCC}" ]] || ! isTrue "${DISABLE_DISTCC}"
+ then
+ return
+ fi
+
+ if [[ "$(tc-getCC)" != *distcc* ]] && [[ "$(tc-getCXX)" != *distcc* ]]
+ then
+ return
+ fi
+
+ print_warning 3 "distcc usage for ${P} is known to cause problems; Limiting to localhost ..."
+ export DISTCC_HOSTS=localhost
+
+ # We must ensure that parallel jobs aren't set higher than
+ # available processing units which would kill the system now
+ # that we limited distcc usage to localhost
+ local MAKEOPTS_USER=$(makeopts_jobs)
+ local MAKEOPTS_MAX=$(get_nproc)
+ if [[ ${MAKEOPTS_USER} -gt ${MAKEOPTS_MAX} ]]
+ then
+ print_warning 3 "MAKEOPTS for ${P} adjusted to -j${MAKEOPTS_MAX} due to disabled distcc support ..."
+ export MAKEOPTS="-j${MAKEOPTS_MAX}"
+ fi
+}
+
+# Remove occurrences of strings from variable given in $1
+# Strings removed are matched as globs, so for example
+# '-O*' would remove -O1, -O2 etc.
+_filter-var() {
+ local f x var=$1 new=()
+ shift
+
+ for f in ${!var} ; do
+ for x in "$@" ; do
+ # Note this should work with globs like -O*
+ [[ ${f} == ${x} ]] && continue 2
+ done
+ new+=( "${f}" )
+ done
+ export ${var}="${new[*]}"
+}
+
+_gkbuild_main() {
+ _initialize
+
+ addwrite "${TEMP}"
+
+ local all_phases="src_unpack src_prepare src_configure
+ src_compile src_install"
+ local x
+
+ # Set up the default functions
+ for x in ${all_phases} ; do
+ case "${x}" in
+ src_unpack)
+ default_src_unpack() { _src_unpack; }
+ ;;
+
+ src_prepare)
+ default_src_prepare() { _src_prepare; }
+ ;;
+
+ src_configure)
+ default_src_configure() { _src_configure; }
+ ;;
+
+ src_compile)
+ default_src_compile() { _src_compile; }
+ ;;
+
+ src_install)
+ default_src_install() { _src_install; }
+ ;;
+
+ *)
+ eval "default_${x}() {
+ die \"${x}() has no default function!\"
+ }"
+ ;;
+ esac
+
+ if ! declare -F ${x} >/dev/null && declare -F default_${x} >/dev/null
+ then
+ eval "${x}() { default; }"
+ fi
+ done
+
+ _disable_distcc
+
+ local current_phase=
+ for current_phase in ${all_phases}
+ do
+ export GKBUILD_PHASE=${current_phase}
+
+ # Make sure default() points to the correct phase
+ eval "default() {
+ default_${current_phase}
+ }"
+
+ case "${current_phase}" in
+ src_compile)
+ print_info 2 "$(get_indent 2)${P}: >> Compiling source ..."
+ cd "${S}" || die "Failed to chdir to '${S}'!"
+ ;;
+
+ src_configure)
+ print_info 2 "$(get_indent 2)${P}: >> Configuring source ..."
+ cd "${S}" || die "Failed to chdir to '${S}'!"
+ ;;
+
+ src_install)
+ print_info 2 "$(get_indent 2)${P}: >> Install to DESTDIR ..."
+ cd "${S}" || die "Failed to chdir to '${S}'!"
+ ;;
+
+ src_prepare)
+ print_info 2 "$(get_indent 2)${P}: >> Preparing source ..."
+ cd "${S}" || die "Failed to chdir to '${S}'!"
+ ;;
+
+ src_unpack)
+ print_info 2 "$(get_indent 2)${P}: >> Unpacking source ..."
+ ;;
+ esac
+
+ ${current_phase} || die "${P} failed in '${current_phase}' phase!"
+
+ # sanity check
+ [[ "${current_phase}" == "src_unpack" && ! -d "${S}" ]] \
+ && die "The source directory '${S}' does NOT exist!"
+ done
+
+ # We don't use .la files; Let's get rid of them to avoid problems
+ # due to invalid paths.
+ find "${D}" -name '*.la' -type f -delete
+
+ local BINCACHEDIR=$(dirname "${GKPKG_BINPKG}")
+ addwrite "${BINCACHEDIR}"
+
+ print_info 2 "$(get_indent 2)${P}: >> Creating binpkg ..."
+ cd "${D}" || die "Failed to chdir to '${D}'!"
+
+ if ! hash scanelf &>/dev/null
+ then
+ print_warning 3 "'scanelf' not found; Will not ensure that binpkg will not contain dynamically linked binaries."
+ else
+ print_info 5 "Scanning for dynamically linked programs ..."
+
+ # Limiting scan to /{bin,sbin,usr/bin,usr/sbin} will allow us to keep
+ # dynamically linked libs in binpkg which is sometimes required to build
+ # other packages.
+ local -a executable_files_to_scan=()
+ local executable_file_to_scan=
+ local executable_file_to_scan_wo_broot= pattern_to_ignore=
+ while IFS= read -r -u 3 -d $'\0' executable_file_to_scan
+ do
+ executable_file_to_scan_wo_broot=${executable_file_to_scan#${D}}
+
+ if [[ -n "${QA_IGNORE_DYNAMICALLY_LINKED_PROGRAM}" ]]
+ then
+ local pattern_to_ignore=
+ for pattern_to_ignore in ${QA_IGNORE_DYNAMICALLY_LINKED_PROGRAM}
+ do
+ print_info 5 "Using pattern '${pattern_to_ignore}' ..."
+ if [[ "${executable_file_to_scan_wo_broot}" =~ ${pattern_to_ignore} ]]
+ then
+ print_info 5 "Match on '${executable_file_to_scan_wo_broot}'; Will ignore ..."
+ executable_file_to_scan=
+ break
+ else
+ print_info 5 "No match on '${executable_file_to_scan_wo_broot}'!"
+ fi
+ done
+ else
+ print_info 5 "QA_IGNORE_DYNAMICALLY_LINKED_PROGRAM is not set; Not checking '${executable_file_to_scan_wo_broot}' for exclusion ..."
+ fi
+
+ if [[ -n "${executable_file_to_scan}" ]]
+ then
+ executable_files_to_scan+=( "${executable_file_to_scan}" )
+ fi
+ done 3< <(find "${D}"/{bin,sbin,usr/bin,usr/sbin} -type f -perm -a+x -print0 2>/dev/null)
+ IFS="${GK_DEFAULT_IFS}"
+ unset executable_file_to_scan executable_file_to_scan_wo_broot pattern_to_ignore
+
+ local found_dyn_files=
+ if [[ -n "${executable_files_to_scan}" ]]
+ then
+ found_dyn_files=$(scanelf -E ET_DYN "${executable_files_to_scan[@]}" 2>/dev/null)
+ fi
+
+ if [[ -n "${found_dyn_files}" ]]
+ then
+ print_error 1 "Found the following dynamically linked programs:"
+ print_error 1 "=================================================================" 1 0 1
+ print_error 1 "${found_dyn_files}" 1 0 1
+ print_error 1 "=================================================================" 1 0 1
+ die "Dynamically linked program(s) found in ${P} image!"
+ fi
+ unset found_dyn_files
+ fi
+
+ local -a tar_cmd=( "$(get_tar_cmd "${GKPKG_BINPKG}")" )
+ tar_cmd+=( '.' )
+
+ print_info 3 "COMMAND: ${tar_cmd[*]}" 1 0 1
+ eval "${tar_cmd[@]}" || die "Failed to create binpkg of ${P} in '${GKPKG_BINPKG}'!"
+
+ if [ -n "${DU_COMMAND}" ]
+ then
+ print_info 5 "Final size of build root: $(get_du "${BROOT}")"
+ print_info 5 "Final size of build directory: $(get_du "${S}")"
+ print_info 5 "Final size of installed tree: $(get_du "${D}")"
+ fi
+
+ cd "${TEMP}" || die "Failed to chdir to '${TEMP}'!"
+ if [ ! -f "${TEMP}/.no_cleanup" ]
+ then
+ rm -rf "${WORKDIR}"
+ fi
+}
+
+_initialize() {
+ if [[ -z "${GKPKG_PN}" ]]
+ then
+ die "Unable to build: GKPKG_PN not set!"
+ elif [[ -z "${GKPKG_PV}" ]]
+ then
+ die "Unable to build '${PN}': GKPKG_PV not set!"
+ else
+ declare -gr PN=${GKPKG_PN}
+ declare -gr PV=${GKPKG_PV}
+ declare -gr P="${PN}-${PV}"
+ fi
+
+ if [[ -z "${GKPKG_SRCDIR}" ]]
+ then
+ die "Unable to build ${P}: GKPKG_SRCDIR is not set!"
+ elif [[ -z "${GKPKG_SRCTAR}" ]]
+ then
+ die "Unable to build ${P}: GKPKG_SRCTAR is not set!"
+ elif [[ ! -r "${GKPKG_SRCTAR}" ]]
+ then
+ die "Unable to build ${P}: '${GKPKG_SRCTAR}' does NOT exist or is not readable!"
+ elif [[ -z "${GKPKG_BINPKG}" ]]
+ then
+ die "Unable to build ${P}: GKPKG_BINPKG is not set!"
+ elif ! declare -p GKPKG_DEPS >/dev/null
+ then
+ die "Unable to build ${P}: GKPKG_DEPS is not set!"
+ elif [[ -z "${CBUILD}" ]]
+ then
+ die "Unable to build ${P}: CBUILD not set!"
+ elif [[ -z "${CHOST}" ]]
+ then
+ die "Unable to build ${P}: CHOST is not set!"
+ elif [[ -z "${TEMP}" ]]
+ then
+ die "Unable to build ${P}: TEMP is not set!"
+ fi
+
+ print_info 3 "Trying to determine gkbuild for ${P} ..."
+ local GKBUILD= f=
+ local GKBUILD_CANDIDATES=( "${GK_SHARE}/gkbuilds/${P}.gkbuild" )
+ GKBUILD_CANDIDATES+=( "${GK_SHARE}/gkbuilds/${PN}.gkbuild" )
+ for f in "${GKBUILD_CANDIDATES[@]}"
+ do
+ if [[ ! -e "${f}" ]]
+ then
+ print_info 3 "'${f}' not found; Skipping ..."
+ continue
+ else
+ print_info 3 "Will use '${f}' to build ${P} ..."
+ GKBUILD="${f}"
+ break
+ fi
+ done
+ unset f GKBUILD_CANDIDATES
+
+ if [[ -z "${GKBUILD}" ]]
+ then
+ die "Unable to build ${P}: '${GK_SHARE}/gkbuilds/${PN}.gkbuild' does NOT exist!"
+ fi
+
+ declare -gr WORKDIR="${TEMP}/${PN}"
+ mkdir "${WORKDIR}" || die "Failed to create '${WORKDIR}'!"
+
+ declare -gr BROOT="${WORKDIR}/buildroot"
+ mkdir "${BROOT}" || die "Failed to create '${BROOT}'!"
+
+ declare -gr DESTDIR="${WORKDIR}/image"
+ mkdir "${DESTDIR}" || die "Failed to create '${DESTDIR}'!"
+
+ declare -gr HOME="${WORKDIR}/home"
+ mkdir "${HOME}" || die "Failed to create '${HOME}'!"
+
+ # Set up some known variables used in ebuilds for smooth gkbuild
+ # transition
+ declare -gr ED=${DESTDIR}
+ declare -gr D=${DESTDIR}
+
+ local libdir=$(get_chost_libdir)
+ if [[ "${libdir}" =~ ^/(lib|usr/lib) ]]
+ then
+ declare -gr SYSROOT="/"
+ else
+ declare -gr SYSROOT="/usr/${CHOST}"
+ fi
+ unset libdir
+ print_info 4 "SYSROOT set to '${SYSROOT}'!"
+
+ declare -gr T="${WORKDIR}/temp"
+ mkdir "${T}" || die "Failed to create '${T}'!"
+
+ S="${WORKDIR}/${GKPKG_SRCDIR}"
+
+ source "${GKBUILD}" \
+ || die "Failed to source '${GKBUILD}'!"
+
+ # Some tools like eltpatch (libtoolize) depend on these variables
+ export S D
+
+ if [[ -n "${GKPKG_DEPS}" ]]
+ then
+ IFS=';' read -r -a GKPKG_DEPS <<< "${GKPKG_DEPS}"
+ local GKPKG_DEP=
+ for GKPKG_DEP in "${GKPKG_DEPS[@]}"
+ do
+ if [[ ! -r "${GKPKG_DEP}" ]]
+ then
+ die "Unable to build ${P}: Required binpkg '${GKPKG_DEP}' does NOT exist or is not readable!"
+ fi
+
+ print_info 2 "$(get_indent 2)${P}: >> Unpacking required binpkg '${GKPKG_DEP}' ..."
+ "${TAR_COMMAND}" -xaf "${GKPKG_DEP}" -C "${BROOT}" \
+ || die "Unable to build ${P}: Failed to extract required binpkg '${GKPKG_DEP}' to '${BROOT}'!"
+ done
+ unset GKPKG_DEP
+
+ append-cflags -I"${BROOT}"/usr/include
+ append-cppflags -I"${BROOT}"/usr/include
+ append-cxxflags -I"${BROOT}"/usr/include
+ append-ldflags -L"${BROOT}"/usr/lib
+ fi
+
+ if [[ ! -d "${BROOT}/usr/bin" ]]
+ then
+ mkdir -p "${BROOT}"/usr/bin || die "Failed to create '${BROOT}/usr/bin'!"
+ fi
+
+ cat >"${BROOT}"/usr/bin/pkg-config-wrapper <<-EOF
+ #!/bin/sh
+
+ SYSROOT=\$(dirname "\$(dirname "\$(dirname "\$(readlink -fm "\$0")")")")
+
+ # https://git.dereferenced.org/pkgconf/pkgconf/issues/30
+ unset PKG_CONFIG_PATH PKG_CONFIG_DIR LIBRARY_PATH
+
+ export PKG_CONFIG_LIBDIR=\${SYSROOT}/usr/lib/pkgconfig:\${SYSROOT}/usr/share/pkgconfig
+ export PKG_CONFIG_SYSROOT_DIR=\${SYSROOT}
+
+ exec pkg-config "\$@"
+ EOF
+
+ chmod +x "${BROOT}"/usr/bin/pkg-config-wrapper \
+ || die "Failed to chmod of '${BROOT}/usr/bin/pkg-config-wrapper'!"
+
+ export PATH="${BROOT}/usr/sbin:${BROOT}/usr/bin:${BROOT}/sbin:${BROOT}/bin:${PATH}"
+ export PKG_CONFIG="${BROOT}/usr/bin/pkg-config-wrapper"
+}
+
+_src_compile() {
+ if [ -f Makefile ] || [ -f GNUmakefile ] || [ -f makefile ]
+ then
+ gkmake V=1
+ fi
+}
+
+_src_configure() {
+ if [[ -x ${GKCONF_SOURCE:-.}/configure ]]
+ then
+ gkconf
+ fi
+}
+
+_src_install() {
+ if [ -f Makefile ] || [ -f GNUmakefile ] || [ -f makefile ]
+ then
+ gkmake V=1 DESTDIR="${D}" install
+ fi
+}
+
+_src_prepare() {
+ # let's try to be smart and run autoreconf only when needed
+ # when no value was set in gkbuild
+ local want_autoreconf=${WANT_AUTORECONF}
+
+ # by default always run libtoolize
+ local want_libtoolize=${WANT_LIBTOOLIZE:-yes}
+
+ local patchdir="${GK_SHARE}/patches/${PN}/${PV}"
+
+ uses_autoconf() {
+ if [[ -f configure.ac || -f configure.in ]]
+ then
+ return 0
+ fi
+
+ return 1
+ }
+
+ at_checksum() {
+ find '(' -name 'Makefile.am' \
+ -o -name 'configure.ac' \
+ -o -name 'configure.in' ')' \
+ -exec cksum {} + | sort -k2
+ }
+
+ if [ -z "${want_autoreconf}" ] && $(uses_autoconf)
+ then
+ local checksum=$(at_checksum)
+ fi
+
+ if [[ -d "${patchdir}" ]]
+ then
+ local silent="-s "
+ if [[ "${LOGLEVEL}" -gt 3 ]]
+ then
+ silent=
+ fi
+
+ print_info 2 "$(get_indent 2)${P}: >> Applying patches ..."
+ local i
+ for i in "${patchdir}"/*{diff,patch}
+ do
+ [ -f "${i}" ] || continue
+ local patch_success=0
+ local j=
+ for j in $(seq 0 5)
+ do
+ patch -p${j} --backup-if-mismatch -f < "${i}" --dry-run >/dev/null \
+ && patch ${silent}-p${j} --backup-if-mismatch -f < "${i}"
+ if [ $? = 0 ]
+ then
+ patch_success=1
+ break
+ fi
+ done
+ if [ ${patch_success} -eq 1 ]
+ then
+ print_info 3 "$(get_indent 3) - $(basename "${i}")"
+ else
+ die "Failed to apply patch '${i}' for '${P}'!"
+ fi
+ done
+ unset i j patch_success
+ else
+ print_info 2 "$(get_indent 2)${P}: >> No patches found in '$patchdir'; Skipping ..."
+ fi
+
+ if [ -z "${want_autoreconf}" ] && $(uses_autoconf)
+ then
+ if [[ ${checksum} != $(at_checksum) ]]
+ then
+ print_info 3 "$(get_indent 2)${P}: >> Will autoreconfigure due to applied patches ..."
+ want_autoreconf=yes
+ fi
+ fi
+
+ if $(uses_autoconf) && isTrue "${want_autoreconf}"
+ then
+ gkautoreconf
+ fi
+
+ if isTrue "${want_libtoolize}"
+ then
+ gklibtoolize
+ fi
+}
+
+_src_unpack() {
+ cd "${WORKDIR}" || die "Failed to chdir to '${WORKDIR}'!"
+ "${TAR_COMMAND}" -xaf "${GKPKG_SRCTAR}" \
+ || die "Failed to unpack '${GKPKG_SRCTAR}' to '${WORKDIR}'!"
+}
+
+# Return all the flag variables that our high level funcs operate on.
+all-flag-vars() {
+ echo {ADA,C,CPP,CXX,CCAS,F,FC,LD}FLAGS
+}
+
+# @FUNCTION: append-cflags
+# @USAGE: <flags>
+# @DESCRIPTION:
+# Add extra <flags> to the current CFLAGS. If a flag might not be supported
+# with different compilers (or versions), then use test-flags-CC like so:
+# @CODE
+# append-cflags $(test-flags-CC -funky-flag)
+# @CODE
+append-cflags() {
+ [[ $# -eq 0 ]] && return 0
+ # Do not do automatic flag testing ourselves. #417047
+ export CFLAGS+=" $*"
+ return 0
+}
+
+# @FUNCTION: append-cppflags
+# @USAGE: <flags>
+# @DESCRIPTION:
+# Add extra <flags> to the current CPPFLAGS.
+append-cppflags() {
+ [[ $# -eq 0 ]] && return 0
+ export CPPFLAGS+=" $*"
+ return 0
+}
+
+# @FUNCTION: append-cxxflags
+# @USAGE: <flags>
+# @DESCRIPTION:
+# Add extra <flags> to the current CXXFLAGS. If a flag might not be supported
+# with different compilers (or versions), then use test-flags-CXX like so:
+# @CODE
+# append-cxxflags $(test-flags-CXX -funky-flag)
+# @CODE
+append-cxxflags() {
+ [[ $# -eq 0 ]] && return 0
+ # Do not do automatic flag testing ourselves. #417047
+ export CXXFLAGS+=" $*"
+ return 0
+}
+
+# @FUNCTION: append-fflags
+# @USAGE: <flags>
+# @DESCRIPTION:
+# Add extra <flags> to the current {F,FC}FLAGS. If a flag might not be supported
+# with different compilers (or versions), then use test-flags-F77 like so:
+# @CODE
+# append-fflags $(test-flags-F77 -funky-flag)
+# @CODE
+append-fflags() {
+ [[ $# -eq 0 ]] && return 0
+ # Do not do automatic flag testing ourselves. #417047
+ export FFLAGS+=" $*"
+ export FCFLAGS+=" $*"
+ return 0
+}
+
+# @FUNCTION: append-flags
+# @USAGE: <flags>
+# @DESCRIPTION:
+# Add extra <flags> to your current {C,CXX,F,FC}FLAGS.
+append-flags() {
+ [[ $# -eq 0 ]] && return 0
+ case " $* " in
+ *' '-[DIU]*) die 'please use append-cppflags for preprocessor flags' ;;
+ *' '-L*|\
+ *' '-Wl,*) die 'please use append-ldflags for linker flags' ;;
+ esac
+ append-cflags "$@"
+ append-cxxflags "$@"
+ append-fflags "$@"
+ return 0
+}
+
+# @FUNCTION: append-ldflags
+# @USAGE: <flags>
+# @DESCRIPTION:
+# Add extra <flags> to the current LDFLAGS.
+append-ldflags() {
+ [[ $# -eq 0 ]] && return 0
+ export LDFLAGS="${LDFLAGS} $*"
+ return 0
+}
+
+# @FUNCTION: append-lfs-flags
+# @DESCRIPTION:
+# Add flags that enable Large File Support.
+append-lfs-flags() {
+ [[ $# -ne 0 ]] && die "append-lfs-flags takes no arguments"
+ # see comments in filter-lfs-flags func for meaning of these
+ append-cppflags -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
+}
+
+
+# @FUNCTION: filter-flags
+# @USAGE: <flags>
+# @DESCRIPTION:
+# Remove particular <flags> from {C,CPP,CXX,CCAS,F,FC,LD}FLAGS. Accepts shell globs.
+filter-flags() {
+ local v
+ for v in $(all-flag-vars) ; do
+ _filter-var ${v} "$@"
+ done
+ return 0
+}
+
+# @FUNCTION: filter-ldflags
+# @USAGE: <flags>
+# @DESCRIPTION:
+# Remove particular <flags> from LDFLAGS. Accepts shell globs.
+filter-ldflags() {
+ _filter-var LDFLAGS "$@"
+ return 0
+}
+
+# @FUNCTION: gkautomake
+# @USAGE: [<additional-automake-parameter>]
+# @DESCRIPTION:
+# Wrapper for automake.
+# Will die when command will exit with nonzero exit status.
+gkautomake() {
+ if [[ -n "${WANT_AUTOMAKE}" ]]
+ then
+ gkexec "WANT_AUTOMAKE=${WANT_AUTOMAKE} automake ${*}"
+ else
+ gkexec "automake ${*}"
+ fi
+}
+
+# @FUNCTION: gkautoreconf
+# @USAGE: [<additional-autoreconf-parameter>]
+# @DESCRIPTION:
+# Wrapper for autoreconf.
+# Will die when command will exit with nonzero exit status.
+gkautoreconf() {
+ # >autoconf-2.69 will call gtkdocize when used in macros
+ # when called with --install parameter.
+ local -x GTKDOCIZE=true
+
+ gkexec "autoreconf --force --install ${*}"
+}
+
+# @FUNCTION: gkconf
+# @USAGE: [<additional-configure-parameter>]
+# @DESCRIPTION:
+# Wrapper for configure.
+# Will die when command will exit with nonzero exit status.
+gkconf() {
+ : ${GKCONF_SOURCE:=.}
+ if [ -x "${GKCONF_SOURCE}/configure" ]
+ then
+ local pid=${BASHPID}
+ local x
+
+ if [ -e "/usr/share/gnuconfig/" ]
+ then
+ find "${WORKDIR}" -type f '(' \
+ -name config.guess -o -name config.sub ')' -print0 | \
+ while read -r -d $'\0' x ; do
+ print_info 3 "$(get_indent 2)${P}: >> Updating ${x/${WORKDIR}\/} with /usr/share/gnuconfig/${x##*/} ..."
+ # Make sure we do this atomically incase we're run in parallel. #487478
+ cp -f /usr/share/gnuconfig/"${x##*/}" "${x}.${pid}"
+ mv -f "${x}.${pid}" "${x}"
+ done
+ fi
+
+ local -a conf_args=()
+ local conf_help=$("${GKCONF_SOURCE}/configure" --help 2>/dev/null)
+
+ if [[ ${conf_help} == *--disable-dependency-tracking* ]]; then
+ conf_args+=( --disable-dependency-tracking )
+ fi
+
+ if [[ ${conf_help} == *--disable-silent-rules* ]]; then
+ conf_args+=( --disable-silent-rules )
+ fi
+
+ if [[ ${conf_help} == *--docdir* ]]; then
+ conf_args+=( --docdir=/usr/share/doc/${P} )
+ fi
+
+ if [[ ${conf_help} == *--htmldir* ]]; then
+ conf_args+=( --htmldir=/usr/share/doc/${P}/html )
+ fi
+
+ if [[ ${conf_help} == *--with-sysroot* ]]; then
+ conf_args+=( "--with-sysroot='${BROOT}/usr:${SYSROOT}'" )
+ fi
+
+ # Handle arguments containing quoted whitespace (see bug #457136).
+ eval "local -a EXTRA_ECONF=(${EXTRA_ECONF})"
+
+ set -- \
+ --prefix=/usr \
+ ${CBUILD:+--build=${CBUILD}} \
+ --host=${CHOST} \
+ ${CTARGET:+--target=${CTARGET}} \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --datadir=/usr/share \
+ --sysconfdir=/etc \
+ --localstatedir=/var/lib \
+ "${conf_args[@]}" \
+ "$@" \
+ "${EXTRA_ECONF[@]}"
+
+ gkexec "${GKCONF_SOURCE}/configure $*"
+ elif [ -f "${GKCONF_SOURCE}/configure" ]; then
+ die "configure is not executable"
+ else
+ die "no configure script found"
+ fi
+}
+
+# @FUNCTION: gklibtoolize
+# @USAGE: [dirs] [--portage] [--reverse-deps] [--patch-only] [--remove-internal-dep=xxx] [--shallow] [--no-uclibc]
+# @DESCRIPTION:
+# Apply a smorgasbord of patches to bundled libtool files. This function
+# should always be safe to run. If no directories are specified, then
+# ${S} will be searched for appropriate files.
+#
+# If the --shallow option is used, then only ${S}/ltmain.sh will be patched.
+#
+# The other options should be avoided in general unless you know what's going on.
+gklibtoolize() {
+ type -P eltpatch &>/dev/null || die "eltpatch not found; is app-portage/elt-patches installed?"
+
+ local command=( "ELT_LOGDIR='${T}'" )
+ command+=( "LD='$(tc-getLD)'" )
+ command+=( "eltpatch" )
+ command+=( "${@}" )
+
+ gkexec "${command[*]}"
+}
+
+# @FUNCTION: gkmake
+# @USAGE: [<additional-make-parameter>]
+# @DESCRIPTION:
+# Wrapper for make.
+# Will die when command will exit with nonzero exit status.
+gkmake() {
+ local command=( "${NICEOPTS}${MAKE} ${MAKEOPTS}" )
+ command+=( "${@}" )
+
+ gkexec "${command[*]}"
+}
+
+# @FUNCTION: replace-flags
+# @USAGE: <old> <new>
+# @DESCRIPTION:
+# Replace the <old> flag with <new>. Accepts shell globs for <old>.
+replace-flags() {
+ [[ $# != 2 ]] && die "Usage: replace-flags <old flag> <new flag>"
+
+ local f var new
+ for var in $(all-flag-vars) ; do
+ # Looping over the flags instead of using a global
+ # substitution ensures that we're working with flag atoms.
+ # Otherwise globs like -O* have the potential to wipe out the
+ # list of flags.
+ new=()
+ for f in ${!var} ; do
+ # Note this should work with globs like -O*
+ [[ ${f} == ${1} ]] && f=${2}
+ new+=( "${f}" )
+ done
+ export ${var}="${new[*]}"
+ done
+
+ return 0
+}
diff --git a/worker_modules/unpack.sh b/worker_modules/unpack.sh
new file mode 100644
index 0000000..2706bc5
--- /dev/null
+++ b/worker_modules/unpack.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+__module_main() {
+ _unpack_main
+}
+
+_unpack_main() {
+ if [[ -z "${UNPACK_FILE}" ]]
+ then
+ die "Unable to unpack: UNPACK_FILE not set!"
+ elif [[ ! -e "${UNPACK_FILE}" ]]
+ then
+ die "Unable to unpack: UNPACK_FILE '${UNPACK_FILE}' does NOT exist!"
+ elif [[ -z "${UNPACK_DIR}" ]]
+ then
+ die "Unable to unpack: UNPACK_DIR not set!"
+ elif [[ ! -d "${UNPACK_DIR}" ]]
+ then
+ mkdir -p "${UNPACK_DIR}" || die "Failed to create '${UNPACK_DIR}'!"
+ fi
+
+ "${TAR_COMMAND}" -xaf "${UNPACK_FILE}" --directory "${UNPACK_DIR}" \
+ || die "Failed to unpack '${UNPACK_FILE}' to '${UNPACK_DIR}'!"
+}