aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWen-chien Jesse Sung <jesse.sung@canonical.com>2013-02-07 16:00:06 +0800
committerLubomir Rintel <lkundrak@v3.sk>2019-07-22 19:40:02 +0200
commitc606386682c2b00b458aee392f12ac6bbda5716d (patch)
tree5e87e77660127dffa64d3e61791979b3f3cf3c64
parentaaeaba1e78b7de0fce5afc685e961f1b8eb6388c (diff)
downloadlinux-mmp3-dell-ariel-c606386682c2b00b458aee392f12ac6bbda5716d.tar.gz
Debianized
Signed-off-by: Wen-chien Jesse Sung <jesse.sung@canonical.com>
-rw-r--r--debian.dajia/NOTES4
-rw-r--r--debian.dajia/changelog6
-rw-r--r--debian.dajia/config/armel/config.common.armel0
-rw-r--r--debian.dajia/config/armel/config.flavour.dajia0
-rw-r--r--debian.dajia/config/armhf/config.common.armhf0
-rw-r--r--debian.dajia/config/armhf/config.flavour.dajia0
-rw-r--r--debian.dajia/config/config.common.ubuntu2679
-rw-r--r--debian.dajia/config/enforce92
-rw-r--r--debian.dajia/control.d/flavour-control.stub98
-rw-r--r--debian.dajia/control.d/vars.dajia8
-rw-r--r--debian.dajia/control.stub.in44
-rw-r--r--debian.dajia/copyright29
-rw-r--r--debian.dajia/d-i/exclude-firmware.armel-dajia2
-rw-r--r--debian.dajia/d-i/exclude-firmware.armhf-dajia2
-rw-r--r--debian.dajia/d-i/exclude-modules.armel-dajia10
-rw-r--r--debian.dajia/d-i/exclude-modules.armhf-dajia10
-rw-r--r--debian.dajia/d-i/firmware/README.txt4
-rw-r--r--debian.dajia/d-i/firmware/nic-modules8
-rw-r--r--debian.dajia/d-i/firmware/scsi-modules3
-rw-r--r--debian.dajia/d-i/kernel-versions.in16
-rw-r--r--debian.dajia/d-i/modules-powerpc/block-modules31
-rw-r--r--debian.dajia/d-i/modules-powerpc/message-modules13
-rw-r--r--debian.dajia/d-i/modules-powerpc/nic-modules152
-rw-r--r--debian.dajia/d-i/modules-powerpc/scsi-modules116
-rw-r--r--debian.dajia/d-i/modules-powerpc/storage-core-modules13
-rw-r--r--debian.dajia/d-i/modules-sparc/block-modules9
-rw-r--r--debian.dajia/d-i/modules-sparc/message-modules13
-rw-r--r--debian.dajia/d-i/modules/block-modules31
-rw-r--r--debian.dajia/d-i/modules/crypto-modules8
-rw-r--r--debian.dajia/d-i/modules/fat-modules7
-rw-r--r--debian.dajia/d-i/modules/fb-modules3
-rw-r--r--debian.dajia/d-i/modules/firewire-core-modules4
-rw-r--r--debian.dajia/d-i/modules/floppy-modules1
-rw-r--r--debian.dajia/d-i/modules/fs-core-modules4
-rw-r--r--debian.dajia/d-i/modules/fs-secondary-modules5
-rw-r--r--debian.dajia/d-i/modules/input-modules21
-rw-r--r--debian.dajia/d-i/modules/irda-modules30
-rw-r--r--debian.dajia/d-i/modules/md-modules13
-rw-r--r--debian.dajia/d-i/modules/message-modules14
-rw-r--r--debian.dajia/d-i/modules/mouse-modules2
-rw-r--r--debian.dajia/d-i/modules/nfs-modules4
-rw-r--r--debian.dajia/d-i/modules/nic-modules164
-rw-r--r--debian.dajia/d-i/modules/nic-pcmcia-modules19
-rw-r--r--debian.dajia/d-i/modules/nic-shared-modules26
-rw-r--r--debian.dajia/d-i/modules/nic-usb-modules30
-rw-r--r--debian.dajia/d-i/modules/parport-modules2
-rw-r--r--debian.dajia/d-i/modules/pata-modules47
-rw-r--r--debian.dajia/d-i/modules/pcmcia-modules8
-rw-r--r--debian.dajia/d-i/modules/pcmcia-storage-modules6
-rw-r--r--debian.dajia/d-i/modules/plip-modules1
-rw-r--r--debian.dajia/d-i/modules/ppp-modules6
-rw-r--r--debian.dajia/d-i/modules/sata-modules13
-rw-r--r--debian.dajia/d-i/modules/scsi-modules118
-rw-r--r--debian.dajia/d-i/modules/serial-modules3
-rw-r--r--debian.dajia/d-i/modules/speakup-modules16
-rw-r--r--debian.dajia/d-i/modules/squashfs-modules1
-rw-r--r--debian.dajia/d-i/modules/storage-core-modules10
-rw-r--r--debian.dajia/d-i/modules/usb-modules9
-rw-r--r--debian.dajia/d-i/modules/virtio-modules4
-rw-r--r--debian.dajia/d-i/modules/vlan-modules3
-rw-r--r--debian.dajia/d-i/package-list185
-rw-r--r--debian.dajia/etc/getabis7
-rw-r--r--debian.dajia/etc/kernelconfig2
-rw-r--r--debian.dajia/rules.d/armel.mk19
-rw-r--r--debian.dajia/rules.d/armhf.mk19
-rw-r--r--debian/commit-templates/bumpabi3
-rw-r--r--debian/commit-templates/config-updates15
-rw-r--r--debian/commit-templates/external-driver20
-rw-r--r--debian/commit-templates/missing-modules3
-rw-r--r--debian/commit-templates/newrelease3
-rw-r--r--debian/commit-templates/sauce-patch40
-rw-r--r--debian/commit-templates/upstream-patch27
-rw-r--r--debian/compat1
-rw-r--r--debian/control-scripts/headers-postinst126
-rw-r--r--debian/control-scripts/postinst1095
-rw-r--r--debian/control-scripts/postinst.extra8
-rw-r--r--debian/control-scripts/postrm361
-rw-r--r--debian/control-scripts/postrm.extra8
-rw-r--r--debian/control-scripts/preinst306
-rw-r--r--debian/control-scripts/prerm312
-rw-r--r--debian/debian.env1
-rw-r--r--debian/docs/README.inclusion-list51
-rwxr-xr-xdebian/rules235
-rw-r--r--debian/rules.d/0-common-vars.mk227
-rw-r--r--debian/rules.d/1-maintainer.mk120
-rw-r--r--debian/rules.d/2-binary-arch.mk449
-rw-r--r--debian/rules.d/3-binary-indep.mk143
-rw-r--r--debian/rules.d/4-checks.mk24
-rw-r--r--debian/rules.d/5-udebs.mk38
-rwxr-xr-xdebian/scripts/abi-check2
-rwxr-xr-xdebian/scripts/config-check2
-rwxr-xr-xdebian/scripts/control-create25
-rwxr-xr-xdebian/scripts/link-headers42
-rwxr-xr-xdebian/scripts/misc/getabis95
-rwxr-xr-xdebian/scripts/misc/git-ubuntu-log232
-rwxr-xr-xdebian/scripts/misc/insert-changes.pl36
-rwxr-xr-xdebian/scripts/misc/insert-ubuntu-changes58
-rwxr-xr-xdebian/scripts/misc/kernelconfig172
-rwxr-xr-xdebian/scripts/misc/retag34
-rwxr-xr-xdebian/scripts/misc/splitconfig.pl111
-rwxr-xr-xdebian/scripts/module-check2
-rwxr-xr-xdebian/scripts/module-inclusion60
-rwxr-xr-xdebian/scripts/sub-flavour69
-rw-r--r--debian/source/format1
-rw-r--r--debian/stamps/keep-dir1
-rw-r--r--debian/tests/README21
-rw-r--r--debian/tests/check-aliases24
-rw-r--r--debian/tools/perf16
-rw-r--r--debian/tools/turbostat16
-rw-r--r--debian/tools/x86_energy_perf_policy16
110 files changed, 8878 insertions, 0 deletions
diff --git a/debian.dajia/NOTES b/debian.dajia/NOTES
new file mode 100644
index 00000000000000..f65ae4ac279ff1
--- /dev/null
+++ b/debian.dajia/NOTES
@@ -0,0 +1,4 @@
+eSCO patch removed. Replaced upstream with a disable_esco module parm.
+airprime: Module gone, use option driver instead
+AppArmor: Patch is all there and ported. Ooops when enabled, so default
+ off (still can be enabled apparmor=1)
diff --git a/debian.dajia/changelog b/debian.dajia/changelog
new file mode 100644
index 00000000000000..deb9bab1a9a68f
--- /dev/null
+++ b/debian.dajia/changelog
@@ -0,0 +1,6 @@
+linux-dajia (3.0.1-0.1) precise; urgency=low
+ [ Jesse Sung ]
+
+ * Initial import
+
+ -- Jesse Sung <jesse.sung@canonical.com> Mon, 04 Feb 2013 18:00:53 +0800
diff --git a/debian.dajia/config/armel/config.common.armel b/debian.dajia/config/armel/config.common.armel
new file mode 100644
index 00000000000000..e69de29bb2d1d6
--- /dev/null
+++ b/debian.dajia/config/armel/config.common.armel
diff --git a/debian.dajia/config/armel/config.flavour.dajia b/debian.dajia/config/armel/config.flavour.dajia
new file mode 100644
index 00000000000000..e69de29bb2d1d6
--- /dev/null
+++ b/debian.dajia/config/armel/config.flavour.dajia
diff --git a/debian.dajia/config/armhf/config.common.armhf b/debian.dajia/config/armhf/config.common.armhf
new file mode 100644
index 00000000000000..e69de29bb2d1d6
--- /dev/null
+++ b/debian.dajia/config/armhf/config.common.armhf
diff --git a/debian.dajia/config/armhf/config.flavour.dajia b/debian.dajia/config/armhf/config.flavour.dajia
new file mode 100644
index 00000000000000..e69de29bb2d1d6
--- /dev/null
+++ b/debian.dajia/config/armhf/config.flavour.dajia
diff --git a/debian.dajia/config/config.common.ubuntu b/debian.dajia/config/config.common.ubuntu
new file mode 100644
index 00000000000000..7da5928ffeaa77
--- /dev/null
+++ b/debian.dajia/config/config.common.ubuntu
@@ -0,0 +1,2679 @@
+#
+# Automatically generated make config: don't edit
+# Linux/arm 3.0.31 Kernel Configuration
+#
+CONFIG_ARM=y
+CONFIG_HAVE_PWM=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_HAVE_SCHED_CLOCK=y
+CONFIG_GENERIC_GPIO=y
+# CONFIG_ARCH_USES_GETTIMEOFFSET is not set
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_KTIME_SCALAR=y
+CONFIG_HAVE_PROC_CPU=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_LOCKBREAK=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_ARCH_HAS_CPUFREQ=y
+CONFIG_ARCH_HAS_DEVFREQ=y
+CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_ARCH_PROVIDES_UDELAY=y
+CONFIG_VECTORS_BASE=0xffff0000
+# CONFIG_ARM_PATCH_PHYS_VIRT is not set
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_HAVE_IRQ_WORK=y
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_CROSS_COMPILE=""
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_LZO=y
+CONFIG_KERNEL_GZIP=y
+# CONFIG_KERNEL_LZMA is not set
+# CONFIG_KERNEL_LZO is not set
+CONFIG_DEFAULT_HOSTNAME="(none)"
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_FHANDLE is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_AUDIT is not set
+CONFIG_HAVE_GENERIC_HARDIRQS=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_HAVE_SPARSE_IRQ=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_SPARSE_IRQ=y
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_PREEMPT_RCU=y
+CONFIG_PREEMPT_RCU=y
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=32
+# CONFIG_RCU_FANOUT_EXACT is not set
+# CONFIG_TREE_RCU_TRACE is not set
+# CONFIG_RCU_BOOST is not set
+# CONFIG_IKCONFIG is not set
+CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_CGROUPS is not set
+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 is not set
+# CONFIG_SYSFS_DEPRECATED is not set
+# CONFIG_RELAY is not set
+# CONFIG_BLK_DEV_INITRD is not set
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+CONFIG_PANIC_TIMEOUT=0
+CONFIG_EXPERT=y
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+# CONFIG_ASHMEM is not set
+CONFIG_AIO=y
+CONFIG_EMBEDDED=y
+CONFIG_HAVE_PERF_EVENTS=y
+CONFIG_PERF_USE_VMALLOC=y
+
+#
+# Kernel Performance Events And Counters
+#
+# CONFIG_PERF_EVENTS is not set
+# CONFIG_PERF_COUNTERS is not set
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_COMPAT_BRK=y
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+CONFIG_PROFILING=y
+# CONFIG_OPROFILE is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_USE_GENERIC_SMP_HELPERS=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_GCOV_KERNEL is not set
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+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 is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_STOP_MACHINE=y
+CONFIG_BLOCK=y
+CONFIG_LBDAF=y
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_BLK_DEV_INTEGRITY is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+# CONFIG_INLINE_SPIN_TRYLOCK is not set
+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK is not set
+# CONFIG_INLINE_SPIN_LOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_SPIN_UNLOCK is not set
+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
+# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_READ_TRYLOCK is not set
+# CONFIG_INLINE_READ_LOCK is not set
+# CONFIG_INLINE_READ_LOCK_BH is not set
+# CONFIG_INLINE_READ_LOCK_IRQ is not set
+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_READ_UNLOCK is not set
+# CONFIG_INLINE_READ_UNLOCK_BH is not set
+# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_WRITE_TRYLOCK is not set
+# CONFIG_INLINE_WRITE_LOCK is not set
+# CONFIG_INLINE_WRITE_LOCK_BH is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_WRITE_UNLOCK is not set
+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
+# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+CONFIG_FREEZER=y
+
+#
+# System Type
+#
+CONFIG_MMU=y
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_VEXPRESS is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_BCMRING is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_CNS3XXX is not set
+# CONFIG_ARCH_GEMINI is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_MXC is not set
+# CONFIG_ARCH_MXS is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_DOVE is not set
+# CONFIG_ARCH_KIRKWOOD is not set
+# CONFIG_ARCH_LOKI is not set
+# CONFIG_ARCH_LPC32XX is not set
+# CONFIG_ARCH_MV78XX0 is not set
+# CONFIG_ARCH_ORION5X is not set
+CONFIG_ARCH_MMP=y
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_W90X900 is not set
+# CONFIG_ARCH_NUC93X is not set
+# CONFIG_ARCH_TEGRA is not set
+# CONFIG_ARCH_PNX4008 is not set
+# CONFIG_ARCH_PXA is not set
+# CONFIG_ARCH_MSM is not set
+# CONFIG_ARCH_SHMOBILE is not set
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+# CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_S3C64XX is not set
+# CONFIG_ARCH_S5P64X0 is not set
+# CONFIG_ARCH_S5PC100 is not set
+# CONFIG_ARCH_S5PV210 is not set
+# CONFIG_ARCH_EXYNOS4 is not set
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_TCC_926 is not set
+# CONFIG_ARCH_U300 is not set
+# CONFIG_ARCH_U8500 is not set
+# CONFIG_ARCH_NOMADIK is not set
+# CONFIG_ARCH_DAVINCI is not set
+# CONFIG_ARCH_OMAP is not set
+# CONFIG_PLAT_SPEAR is not set
+# CONFIG_ARCH_VT8500 is not set
+# CONFIG_GPIO_PCA953X is not set
+# CONFIG_KEYBOARD_GPIO_POLLED is not set
+# CONFIG_MACH_TAVOREVB is not set
+CONFIG_PXA_SSP=y
+CONFIG_PXA_32KTIMER=y
+# CONFIG_PINMUX_DEBUG_FS is not set
+
+#
+# Marvell PXA168/910/MMP2 Implmentations
+#
+# CONFIG_MACH_ASPENITE is not set
+# CONFIG_MACH_ZYLONITE2 is not set
+# CONFIG_MACH_AVENGERS_LITE is not set
+# CONFIG_MACH_TTC_DKB is not set
+# CONFIG_MACH_BROWNSTONE is not set
+# CONFIG_MACH_FLINT is not set
+# CONFIG_MACH_MARVELL_JASPER is not set
+# CONFIG_MACH_TETON_BGA is not set
+# CONFIG_MACH_ABILENE is not set
+CONFIG_MACH_QSEVEN=y
+# CONFIG_MACH_MK2 is not set
+# CONFIG_MACH_YELLOWSTONE is not set
+# CONFIG_MACH_ORCHID is not set
+# CONFIG_MACH_THUNDERSTONEM is not set
+# CONFIG_MACH_EMEIDKB is not set
+CONFIG_CPU_MMP3=y
+# CONFIG_CORE_MORPHING is not set
+
+#
+# System MMU
+#
+CONFIG_PLAT_PXA=y
+
+#
+# Processor Type
+#
+CONFIG_CPU_PJ4B=y
+CONFIG_CPU_V7=y
+CONFIG_CPU_32v6K=y
+CONFIG_CPU_32v7=y
+CONFIG_CPU_ABRT_EV7=y
+CONFIG_CPU_PABRT_V7=y
+CONFIG_CPU_CACHE_V7=y
+CONFIG_CPU_CACHE_VIPT=y
+CONFIG_CPU_COPY_V6=y
+CONFIG_CPU_TLB_V7=y
+CONFIG_CPU_HAS_ASID=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+
+#
+# Processor Features
+#
+CONFIG_ARM_THUMB=y
+CONFIG_ARM_THUMBEE=y
+# CONFIG_SWP_EMULATE is not set
+# CONFIG_CPU_ICACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_CPU_BPREDICT_DISABLE is not set
+CONFIG_OUTER_CACHE=y
+CONFIG_OUTER_CACHE_SYNC=y
+CONFIG_CACHE_L2X0=y
+# CONFIG_CACHE_L2X0_PREFETCH is not set
+CONFIG_CACHE_PL310=y
+# CONFIG_CACHE_TAUROS2 is not set
+CONFIG_ARM_L1_CACHE_SHIFT=5
+CONFIG_ARM_DMA_MEM_BUFFERABLE=y
+CONFIG_PJ4_RETURNSTACK_ISSUE=y
+CONFIG_DISABLE_CWF=y
+# CONFIG_DISABLE_CACHE_TLB_OP_BCAST is not set
+# CONFIG_FORCE_SCU_SINGLE_ENTRY is not set
+# CONFIG_DISABLE_SCU_PIPELINE is not set
+# CONFIG_ENABLE_WRITE_EVICTS is not set
+# CONFIG_ENABLE_SNOOP_FILTER is not set
+# CONFIG_DISABLE_CLEAN_INTERVENTION is not set
+# CONFIG_CACHE_TAUROS3_WRITETHROUGH is not set
+CONFIG_CACHE_TAUROS3_DISABLE_MEMORY_MAPPED_FUNCTIONS=y
+# CONFIG_CACHE_TAUROS3_ENABLE_FULL_WRITE_LINE is not set
+CONFIG_IWMMXT=y
+CONFIG_CPU_HAS_PMU=y
+# CONFIG_ARM_ERRATA_430973 is not set
+# CONFIG_ARM_ERRATA_458693 is not set
+# CONFIG_ARM_ERRATA_460075 is not set
+# CONFIG_ARM_ERRATA_742230 is not set
+# CONFIG_ARM_ERRATA_742231 is not set
+# CONFIG_PL310_ERRATA_588369 is not set
+# CONFIG_ARM_ERRATA_720789 is not set
+# CONFIG_PL310_ERRATA_727915 is not set
+# CONFIG_ARM_ERRATA_743622 is not set
+# CONFIG_ARM_ERRATA_751472 is not set
+# CONFIG_PL310_ERRATA_753970 is not set
+# CONFIG_ARM_ERRATA_754322 is not set
+# CONFIG_ARM_ERRATA_754327 is not set
+# CONFIG_PJ4B_ERRATA_5807 is not set
+# CONFIG_PJ4B_ERRATA_6026 is not set
+CONFIG_PJ4B_ERRATA_6315=y
+# CONFIG_PJ4B_ERRATA_6133 is not set
+# CONFIG_PJ4B_ERRATA_6011 is not set
+# CONFIG_PJ4B_ERRATA_6075 is not set
+# CONFIG_PJ4B_ERRATA_6107 is not set
+CONFIG_PJ4B_ERRATA_6359=y
+# CONFIG_PJ4B_ERRATA_6359_LIGHTWEIGHT is not set
+CONFIG_PJ4B_ERRATA_6409=y
+# CONFIG_PJ4B_ERRATA_6382 is not set
+CONFIG_ARM_GIC=y
+# CONFIG_FIQ_DEBUGGER is not set
+
+#
+# Bus support
+#
+# CONFIG_PCI_SYSCALL is not set
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+# CONFIG_PCCARD is not set
+# CONFIG_ARM_ERRATA_764369 is not set
+# CONFIG_PL310_ERRATA_769419 is not set
+
+#
+# Kernel Features
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_SMP=y
+CONFIG_SMP_ON_UP=y
+CONFIG_HAVE_ARM_SCU=y
+CONFIG_HAVE_ARM_TWD=y
+CONFIG_VMSPLIT_3G=y
+# CONFIG_VMSPLIT_2G is not set
+# CONFIG_VMSPLIT_1G is not set
+CONFIG_PAGE_OFFSET=0xC0000000
+# CONFIG_TEXT_OFFSET_OVERRIDE is not set
+CONFIG_NR_CPUS=2
+CONFIG_HOTPLUG_CPU=y
+CONFIG_LOCAL_TIMERS=y
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
+CONFIG_PREEMPT=y
+CONFIG_HZ=128
+# CONFIG_THUMB2_KERNEL is not set
+CONFIG_AEABI=y
+CONFIG_OABI_COMPAT=y
+# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
+# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
+CONFIG_HAVE_ARCH_PFN_VALID=y
+CONFIG_HIGHMEM=y
+# CONFIG_HIGHPTE is not set
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_HAVE_MEMBLOCK=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_COMPACTION is not set
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=0
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+# CONFIG_KSM is not set
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+# CONFIG_CLEANCACHE is not set
+CONFIG_FORCE_MAX_ZONEORDER=16
+CONFIG_ALIGNMENT_TRAP=y
+# CONFIG_UACCESS_WITH_MEMCPY is not set
+# CONFIG_SECCOMP is not set
+# CONFIG_CC_STACKPROTECTOR is not set
+# CONFIG_DEPRECATED_PARAM_STRUCT is not set
+# CONFIG_ARM_FLUSH_CONSOLE_ON_RESTART is not set
+
+#
+# Boot options
+#
+# CONFIG_USE_OF is not set
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE="debug loglevel=17 rootdelay=10 rootfstype=ext4 root=/dev/mmcblk1p1 rw console=ttyS2,115200 panic_debug reserve_pmem=0x8000000 "
+CONFIG_CMDLINE_FROM_BOOTLOADER=y
+# CONFIG_CMDLINE_EXTEND is not set
+# CONFIG_CMDLINE_FORCE is not set
+# CONFIG_XIP_KERNEL is not set
+# CONFIG_KEXEC is not set
+# CONFIG_CRASH_DUMP is not set
+# CONFIG_AUTO_ZRELADDR is not set
+
+#
+# CPU Power Management
+#
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=y
+CONFIG_CPU_FREQ_STAT=y
+# CONFIG_CPU_FREQ_STAT_DETAILS is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE 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_INTERACTIVE=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+CONFIG_CPU_FREQ_MMP3=y
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+# CONFIG_DVFM is not set
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+CONFIG_FPE_NWFPE=y
+# CONFIG_FPE_NWFPE_XP is not set
+# CONFIG_FPE_FASTFPE is not set
+CONFIG_VFP=y
+CONFIG_VFPv3=y
+CONFIG_NEON=y
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
+CONFIG_HAVE_AOUT=y
+# CONFIG_BINFMT_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
+
+#
+# Power management options
+#
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+# CONFIG_WAKELOCK is not set
+CONFIG_PM_SLEEP=y
+CONFIG_PM_SLEEP_SMP=y
+CONFIG_PM_RUNTIME=y
+CONFIG_PM=y
+# CONFIG_PM_DEBUG is not set
+# CONFIG_APM_EMULATION is not set
+CONFIG_PM_RUNTIME_CLK=y
+# CONFIG_SUSPEND_TIME is not set
+CONFIG_CPU_PM=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+# CONFIG_IPM is not set
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+# CONFIG_XFRM_USER is not set
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_XFRM_STATISTICS is not set
+CONFIG_XFRM_IPCOMP=y
+CONFIG_NET_KEY=y
+# CONFIG_NET_KEY_MIGRATE is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_ROUTE_CLASSID=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+CONFIG_IP_PNP_RARP=y
+CONFIG_NET_IPIP=y
+# CONFIG_NET_IPGRE_DEMUX is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+CONFIG_INET_AH=y
+CONFIG_INET_ESP=y
+CONFIG_INET_IPCOMP=y
+CONFIG_INET_XFRM_TUNNEL=y
+CONFIG_INET_TUNNEL=y
+CONFIG_INET_XFRM_MODE_TRANSPORT=y
+CONFIG_INET_XFRM_MODE_TUNNEL=y
+CONFIG_INET_XFRM_MODE_BEET=y
+# CONFIG_INET_LRO is not set
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+# 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=y
+CONFIG_IPV6_PRIVACY=y
+# CONFIG_IPV6_ROUTER_PREF is not set
+# CONFIG_IPV6_OPTIMISTIC_DAD is not set
+# CONFIG_INET6_AH is not set
+# CONFIG_INET6_ESP is not set
+# CONFIG_INET6_IPCOMP is not set
+# CONFIG_IPV6_MIP6 is not set
+# CONFIG_INET6_XFRM_TUNNEL is not set
+# CONFIG_INET6_TUNNEL is not set
+CONFIG_INET6_XFRM_MODE_TRANSPORT=y
+CONFIG_INET6_XFRM_MODE_TUNNEL=y
+CONFIG_INET6_XFRM_MODE_BEET=y
+# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
+CONFIG_IPV6_SIT=y
+# CONFIG_IPV6_SIT_6RD is not set
+CONFIG_IPV6_NDISC_NODETYPE=y
+# CONFIG_IPV6_TUNNEL is not set
+# CONFIG_IPV6_MULTIPLE_TABLES is not set
+# CONFIG_IPV6_MROUTE is not set
+# CONFIG_ANDROID_PARANOID_NETWORK is not set
+CONFIG_NET_ACTIVITY_STATS=y
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_NETFILTER_ADVANCED=y
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_NETLINK=y
+CONFIG_NETFILTER_NETLINK_QUEUE=y
+CONFIG_NETFILTER_NETLINK_LOG=y
+CONFIG_NF_CONNTRACK=y
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+# CONFIG_NF_CONNTRACK_TIMESTAMP is not set
+# CONFIG_NF_CT_PROTO_DCCP is not set
+# CONFIG_NF_CT_PROTO_SCTP is not set
+# CONFIG_NF_CT_PROTO_UDPLITE is not set
+# CONFIG_NF_CONNTRACK_AMANDA is not set
+# CONFIG_NF_CONNTRACK_FTP is not set
+# CONFIG_NF_CONNTRACK_H323 is not set
+# CONFIG_NF_CONNTRACK_IRC is not set
+# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
+# CONFIG_NF_CONNTRACK_SNMP is not set
+# CONFIG_NF_CONNTRACK_PPTP is not set
+# CONFIG_NF_CONNTRACK_SANE is not set
+# CONFIG_NF_CONNTRACK_SIP is not set
+# CONFIG_NF_CONNTRACK_TFTP is not set
+# CONFIG_NF_CT_NETLINK is not set
+CONFIG_NETFILTER_TPROXY=y
+CONFIG_NETFILTER_XTABLES=y
+
+#
+# Xtables combined modules
+#
+# CONFIG_NETFILTER_XT_MARK is not set
+# CONFIG_NETFILTER_XT_CONNMARK is not set
+
+#
+# Xtables targets
+#
+# CONFIG_NETFILTER_XT_TARGET_CHECKSUM is not set
+# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
+# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
+# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
+# CONFIG_NETFILTER_XT_TARGET_HL is not set
+# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set
+# CONFIG_NETFILTER_XT_TARGET_LED is not set
+# CONFIG_NETFILTER_XT_TARGET_MARK is not set
+# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
+# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
+# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
+# CONFIG_NETFILTER_XT_TARGET_TEE is not set
+# CONFIG_NETFILTER_XT_TARGET_TPROXY is not set
+# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
+# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
+
+#
+# Xtables matches
+#
+# CONFIG_NETFILTER_XT_MATCH_ADDRTYPE is not set
+# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
+# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNTRACK is not set
+# CONFIG_NETFILTER_XT_MATCH_CPU is not set
+# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
+# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set
+# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
+# CONFIG_NETFILTER_XT_MATCH_ESP is not set
+# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
+# CONFIG_NETFILTER_XT_MATCH_HELPER is not set
+# CONFIG_NETFILTER_XT_MATCH_HL is not set
+# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
+# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
+# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
+# CONFIG_NETFILTER_XT_MATCH_MAC is not set
+# CONFIG_NETFILTER_XT_MATCH_MARK is not set
+# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
+# CONFIG_NETFILTER_XT_MATCH_OSF is not set
+# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
+# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
+# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
+CONFIG_NETFILTER_XT_MATCH_QTAGUID=y
+# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
+# CONFIG_NETFILTER_XT_MATCH_QUOTA2 is not set
+# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
+CONFIG_NETFILTER_XT_MATCH_REALM=y
+# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
+# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
+CONFIG_NETFILTER_XT_MATCH_SOCKET=y
+CONFIG_NETFILTER_XT_MATCH_STATE=y
+# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
+# CONFIG_NETFILTER_XT_MATCH_STRING is not set
+# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
+# CONFIG_NETFILTER_XT_MATCH_TIME is not set
+# CONFIG_NETFILTER_XT_MATCH_U32 is not set
+# 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_CONNTRACK_PROC_COMPAT=y
+CONFIG_IP_NF_QUEUE=y
+CONFIG_IP_NF_IPTABLES=y
+# CONFIG_IP_NF_MATCH_AH is not set
+# CONFIG_IP_NF_MATCH_ECN is not set
+# CONFIG_IP_NF_MATCH_TTL is not set
+CONFIG_IP_NF_FILTER=y
+CONFIG_IP_NF_TARGET_REJECT=y
+# CONFIG_IP_NF_TARGET_REJECT_SKERR is not set
+# CONFIG_IP_NF_TARGET_LOG is not set
+# CONFIG_IP_NF_TARGET_ULOG is not set
+CONFIG_NF_NAT=y
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=y
+# CONFIG_IP_NF_TARGET_NETMAP is not set
+# CONFIG_IP_NF_TARGET_REDIRECT is not set
+# CONFIG_NF_NAT_FTP is not set
+# CONFIG_NF_NAT_IRC is not set
+# CONFIG_NF_NAT_TFTP is not set
+# CONFIG_NF_NAT_AMANDA is not set
+# CONFIG_NF_NAT_PPTP is not set
+# CONFIG_NF_NAT_H323 is not set
+# CONFIG_NF_NAT_SIP is not set
+CONFIG_IP_NF_MANGLE=y
+# CONFIG_IP_NF_TARGET_CLUSTERIP is not set
+# CONFIG_IP_NF_TARGET_ECN is not set
+# CONFIG_IP_NF_TARGET_TTL is not set
+# CONFIG_IP_NF_RAW is not set
+# CONFIG_IP_NF_ARPTABLES is not set
+
+#
+# IPv6: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV6=y
+# CONFIG_NF_CONNTRACK_IPV6 is not set
+# CONFIG_IP6_NF_QUEUE is not set
+CONFIG_IP6_NF_IPTABLES=y
+# CONFIG_IP6_NF_MATCH_AH is not set
+# CONFIG_IP6_NF_MATCH_EUI64 is not set
+# CONFIG_IP6_NF_MATCH_FRAG is not set
+# CONFIG_IP6_NF_MATCH_OPTS is not set
+# CONFIG_IP6_NF_MATCH_HL is not set
+# CONFIG_IP6_NF_MATCH_IPV6HEADER is not set
+# CONFIG_IP6_NF_MATCH_MH is not set
+# CONFIG_IP6_NF_MATCH_RT is not set
+# CONFIG_IP6_NF_TARGET_LOG is not set
+# CONFIG_IP6_NF_FILTER is not set
+# CONFIG_IP6_NF_MANGLE is not set
+# CONFIG_IP6_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=y
+# CONFIG_L2TP_DEBUGFS is not set
+# CONFIG_L2TP_V3 is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_NET_DSA 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_ECONET is not set
+# CONFIG_WAN_ROUTER 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_RPS=y
+CONFIG_RFS_ACCEL=y
+CONFIG_XPS=y
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+# CONFIG_AF_RXRPC is not set
+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=y
+# CONFIG_NL80211_TESTMODE is not set
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+# CONFIG_CFG80211_REG_DEBUG is not set
+CONFIG_CFG80211_DEFAULT_PS=y
+# CONFIG_CFG80211_DEBUGFS is not set
+# CONFIG_CFG80211_INTERNAL_REGDB is not set
+CONFIG_CFG80211_WEXT=y
+CONFIG_WIRELESS_EXT_SYSFS=y
+CONFIG_LIB80211=y
+# CONFIG_LIB80211_DEBUG is not set
+# CONFIG_CFG80211_ALLOW_RECONNECT is not set
+CONFIG_MAC80211=y
+CONFIG_MAC80211_HAS_RC=y
+# CONFIG_MAC80211_RC_PID is not set
+CONFIG_MAC80211_RC_MINSTREL=y
+CONFIG_MAC80211_RC_MINSTREL_HT=y
+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_WIMAX is not set
+CONFIG_RFKILL=y
+CONFIG_RFKILL_PM=y
+CONFIG_RFKILL_LEDS=y
+# CONFIG_RFKILL_INPUT is not set
+# CONFIG_RFKILL_REGULATOR is not set
+# CONFIG_RFKILL_GPIO is not set
+# CONFIG_NET_9P is not set
+# CONFIG_CAIF is not set
+# CONFIG_CEPH_LIB is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH=""
+# CONFIG_DEVTMPFS is not set
+# CONFIG_STANDALONE is not set
+# CONFIG_PREVENT_FIRMWARE_BUILD is not set
+CONFIG_FW_LOADER=y
+CONFIG_FIRMWARE_IN_KERNEL=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_SYNC is not set
+CONFIG_CONNECTOR=y
+CONFIG_PROC_EVENTS=y
+# CONFIG_MTD is not set
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_DRBD is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_UB is not set
+# CONFIG_BLK_DEV_RAM is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+# CONFIG_MG_DISK is not set
+# CONFIG_BLK_DEV_RBD is not set
+# CONFIG_SENSORS_LIS3LV02D is not set
+CONFIG_MISC_DEVICES=y
+# CONFIG_AD525X_DPOT is not set
+# CONFIG_ANDROID_PMEM is not set
+# CONFIG_INTEL_MID_PTI is not set
+# CONFIG_ICS932S401 is not set
+# CONFIG_ENCLOSURE_SERVICES is not set
+# CONFIG_APDS9802ALS is not set
+# CONFIG_ISL29003 is not set
+# CONFIG_ISL29020 is not set
+# CONFIG_SENSORS_TSL2550 is not set
+# CONFIG_SENSORS_BH1780 is not set
+# CONFIG_SENSORS_BH1770 is not set
+# CONFIG_SENSORS_APDS990X is not set
+# CONFIG_HMC6352 is not set
+# CONFIG_SENSORS_AK8975 is not set
+# CONFIG_DS1682 is not set
+# CONFIG_TI_DAC7512 is not set
+CONFIG_UID_STAT=y
+# CONFIG_BMP085 is not set
+# CONFIG_WL127X_RFKILL is not set
+# CONFIG_APANIC is not set
+# CONFIG_TC35876X is not set
+# CONFIG_SD8XXX_RFKILL is not set
+# CONFIG_C2PORT is not set
+
+#
+# EEPROM support
+#
+# CONFIG_EEPROM_AT24 is not set
+# CONFIG_EEPROM_AT25 is not set
+# CONFIG_EEPROM_LEGACY is not set
+# CONFIG_EEPROM_MAX6875 is not set
+# CONFIG_EEPROM_93CX6 is not set
+# CONFIG_IWMC3200TOP is not set
+
+#
+# Texas Instruments shared transport line discipline
+#
+# CONFIG_TI_ST is not set
+# CONFIG_SENSORS_LIS3_SPI is not set
+# CONFIG_SENSORS_LIS3_I2C is not set
+CONFIG_HAVE_IDE=y
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+CONFIG_SCSI_MOD=y
+# CONFIG_RAID_ATTRS is not set
+CONFIG_SCSI=y
+CONFIG_SCSI_DMA=y
+# CONFIG_SCSI_TGT is not set
+# CONFIG_SCSI_NETLINK is not set
+# CONFIG_SCSI_PROC_FS is not set
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=y
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+# CONFIG_BLK_DEV_SR is not set
+# CONFIG_CHR_DEV_SG is not set
+# CONFIG_CHR_DEV_SCH is not set
+# CONFIG_SCSI_MULTI_LUN is not set
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+# CONFIG_SCSI_SCAN_ASYNC is not set
+CONFIG_SCSI_WAIT_SCAN=m
+
+#
+# SCSI Transports
+#
+# CONFIG_SCSI_SPI_ATTRS is not set
+# CONFIG_SCSI_FC_ATTRS is not set
+# CONFIG_SCSI_ISCSI_ATTRS is not set
+# CONFIG_SCSI_SAS_ATTRS is not set
+# CONFIG_SCSI_SAS_LIBSAS is not set
+# CONFIG_SCSI_SRP_ATTRS is not set
+# CONFIG_SCSI_LOWLEVEL is not set
+# CONFIG_SCSI_DH is not set
+# CONFIG_SCSI_OSD_INITIATOR is not set
+# CONFIG_ATA is not set
+CONFIG_MD=y
+# CONFIG_BLK_DEV_MD is not set
+CONFIG_BLK_DEV_DM=y
+# CONFIG_DM_DEBUG is not set
+CONFIG_DM_CRYPT=y
+CONFIG_DM_SNAPSHOT=y
+CONFIG_DM_MIRROR=y
+# CONFIG_DM_RAID is not set
+CONFIG_DM_LOG_USERSPACE=y
+CONFIG_DM_ZERO=y
+CONFIG_DM_MULTIPATH=y
+CONFIG_DM_MULTIPATH_QL=y
+CONFIG_DM_MULTIPATH_ST=y
+CONFIG_DM_DELAY=y
+CONFIG_DM_UEVENT=y
+# CONFIG_DM_FLAKEY is not set
+# CONFIG_TARGET_CORE is not set
+CONFIG_NETDEVICES=y
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_VETH is not set
+CONFIG_MII=y
+CONFIG_PHYLIB=y
+
+#
+# MII PHY device drivers
+#
+# CONFIG_MARVELL_PHY is not set
+# CONFIG_DAVICOM_PHY is not set
+# CONFIG_QSEMI_PHY is not set
+# CONFIG_LXT_PHY is not set
+# CONFIG_CICADA_PHY is not set
+# CONFIG_VITESSE_PHY is not set
+# CONFIG_SMSC_PHY is not set
+# CONFIG_BROADCOM_PHY is not set
+# CONFIG_ICPLUS_PHY is not set
+# CONFIG_REALTEK_PHY is not set
+# CONFIG_NATIONAL_PHY is not set
+# CONFIG_STE10XP is not set
+# CONFIG_LSI_ET1011C_PHY is not set
+# CONFIG_MICREL_PHY is not set
+# CONFIG_FIXED_PHY is not set
+# CONFIG_MDIO_BITBANG is not set
+CONFIG_NET_ETHERNET=y
+# CONFIG_AX88796 is not set
+CONFIG_SMC91X=y
+# CONFIG_DM9000 is not set
+# CONFIG_ENC28J60 is not set
+# CONFIG_ETHOC is not set
+# CONFIG_SMC911X is not set
+# CONFIG_SMSC911X is not set
+# CONFIG_DNET is not set
+# 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_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
+# CONFIG_B44 is not set
+# CONFIG_KS8851 is not set
+# CONFIG_KS8851_MLL is not set
+# CONFIG_FTMAC100 is not set
+CONFIG_NETDEV_1000=y
+# CONFIG_STMMAC_ETH is not set
+CONFIG_NETDEV_10000=y
+CONFIG_WLAN=y
+# CONFIG_LIBERTAS_THINFIRM is not set
+# CONFIG_AT76C50X_USB is not set
+# CONFIG_USB_ZD1201 is not set
+# CONFIG_USB_NET_RNDIS_WLAN is not set
+# CONFIG_RTL8187 is not set
+# CONFIG_MAC80211_HWSIM is not set
+# CONFIG_WIFI_CONTROL_FUNC is not set
+# CONFIG_ATH_COMMON is not set
+# CONFIG_B43 is not set
+# CONFIG_B43LEGACY is not set
+# CONFIG_BCM4329 is not set
+# CONFIG_BCMDHD is not set
+# CONFIG_HOSTAP is not set
+# CONFIG_IWM is not set
+# CONFIG_LIBERTAS is not set
+# CONFIG_P54_COMMON is not set
+# CONFIG_RT2X00 is not set
+# CONFIG_RTL8192SE is not set
+# CONFIG_RTL8192CU is not set
+# CONFIG_WL1251 is not set
+# CONFIG_WL12XX_MENU is not set
+# CONFIG_ZD1211RW is not set
+# CONFIG_MWIFIEX is not set
+
+#
+# Enable WiMAX (Networking options) to see the WiMAX drivers
+#
+
+#
+# USB Network Adapters
+#
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+CONFIG_USB_USBNET=y
+CONFIG_USB_NET_AX8817X=y
+CONFIG_USB_NET_CDCETHER=y
+CONFIG_USB_NET_CDC_EEM=y
+CONFIG_USB_NET_CDC_NCM=y
+# CONFIG_USB_NET_DM9601 is not set
+CONFIG_USB_NET_SMSC75XX=y
+# CONFIG_USB_NET_SMSC95XX is not set
+# CONFIG_USB_NET_GL620A is not set
+CONFIG_USB_NET_NET1080=y
+# CONFIG_USB_NET_PLUSB is not set
+CONFIG_USB_NET_MCS7830=y
+CONFIG_USB_NET_RNDIS_HOST=y
+CONFIG_USB_NET_CDC_SUBSET=y
+# CONFIG_USB_ALI_M5632 is not set
+# CONFIG_USB_AN2720 is not set
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+# CONFIG_USB_EPSON2888 is not set
+# CONFIG_USB_KC2190 is not set
+CONFIG_USB_NET_ZAURUS=y
+# CONFIG_USB_NET_CX82310_ETH is not set
+# CONFIG_USB_NET_KALMIA is not set
+# CONFIG_USB_HSO is not set
+# CONFIG_USB_NET_INT51X1 is not set
+# CONFIG_USB_IPHETH is not set
+# CONFIG_USB_SIERRA_NET is not set
+# CONFIG_USB_VL600 is not set
+# CONFIG_WAN is not set
+
+#
+# CAIF transport drivers
+#
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_ISDN is not set
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+CONFIG_INPUT_POLLDEV=y
+# CONFIG_INPUT_SPARSEKMAP 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_KEYRESET is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ADP5588 is not set
+# CONFIG_KEYBOARD_ADP5589 is not set
+CONFIG_KEYBOARD_ATKBD=y
+# CONFIG_KEYBOARD_QT1070 is not set
+# CONFIG_KEYBOARD_QT2160 is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+CONFIG_KEYBOARD_GPIO=y
+# CONFIG_KEYBOARD_TCA6416 is not set
+# CONFIG_KEYBOARD_MATRIX is not set
+# CONFIG_KEYBOARD_LM8323 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_PXA27x=y
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_KBDE is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+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_TRACKPOINT=y
+# CONFIG_MOUSE_PS2_ELANTECH is not set
+# CONFIG_MOUSE_PS2_SENTELIC is not set
+# CONFIG_MOUSE_PS2_TOUCHKIT is not set
+# CONFIG_MOUSE_SERIAL is not set
+# CONFIG_MOUSE_APPLETOUCH is not set
+# CONFIG_MOUSE_BCM5974 is not set
+# CONFIG_MOUSE_VSXXXAA is not set
+# CONFIG_MOUSE_GPIO is not set
+# CONFIG_MOUSE_SYNAPTICS_I2C is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+CONFIG_INPUT_MISC=y
+# CONFIG_INPUT_AD714X is not set
+# CONFIG_INPUT_ATI_REMOTE is not set
+# CONFIG_INPUT_ATI_REMOTE2 is not set
+# CONFIG_INPUT_KEYCHORD is not set
+# CONFIG_INPUT_KEYSPAN_REMOTE is not set
+# CONFIG_INPUT_POWERMATE is not set
+# CONFIG_INPUT_YEALINK is not set
+# CONFIG_INPUT_CM109 is not set
+CONFIG_INPUT_UINPUT=y
+# CONFIG_INPUT_GPIO is not set
+# CONFIG_INPUT_PCF8574 is not set
+# CONFIG_INPUT_PWM_BEEPER is not set
+# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
+# CONFIG_INPUT_ADXL34X is not set
+# CONFIG_INPUT_CMA3000 is not set
+# CONFIG_INPUT_ADUX1001_VIBRA is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+CONFIG_SERIO_SERPORT=y
+CONFIG_SERIO_LIBPS2=y
+# CONFIG_SERIO_RAW is not set
+# CONFIG_SERIO_ALTERA_PS2 is not set
+# CONFIG_SERIO_PS2MULT is not set
+CONFIG_SERIO_ENEEC_KB3930_I2C=y
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+# CONFIG_VT_HW_CONSOLE_BINDING is not set
+CONFIG_UNIX98_PTYS=y
+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+# CONFIG_N_GSM is not set
+# CONFIG_TRACE_SINK is not set
+CONFIG_DEVMEM=y
+CONFIG_DEVKMEM=y
+
+#
+# Serial drivers
+#
+# CONFIG_SERIAL_8250 is not set
+
+#
+# Non-8250 serial port support
+#
+# CONFIG_SERIAL_MAX3100 is not set
+# CONFIG_SERIAL_MAX3107 is not set
+CONFIG_SERIAL_PXA=y
+CONFIG_SERIAL_PXA_CONSOLE=y
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+# CONFIG_SERIAL_TIMBERDALE is not set
+# CONFIG_SERIAL_ALTERA_JTAGUART is not set
+# CONFIG_SERIAL_ALTERA_UART is not set
+# CONFIG_SERIAL_IFX6X60 is not set
+# CONFIG_SERIAL_XILINX_PS_UART is not set
+# CONFIG_TTY_PRINTK is not set
+# CONFIG_HVC_DCC is not set
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_HW_RANDOM is not set
+# CONFIG_R3964 is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_TCG_TPM is not set
+# CONFIG_DCC_TTY is not set
+# CONFIG_RAMOOPS is not set
+CONFIG_MMP3_SYSSET=y
+# CONFIG_MMP_ZSP is not set
+CONFIG_MMP3_HSI=y
+# CONFIG_LED_FLASH_ADP1650 is not set
+# CONFIG_LED_FLASH_BD7704 is not set
+# CONFIG_MXDCMMB is not set
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CHARDEV=y
+# CONFIG_I2C_MUX is not set
+# CONFIG_I2C_HELPER_AUTO is not set
+# CONFIG_I2C_SMBUS is not set
+
+#
+# I2C Algorithms
+#
+CONFIG_I2C_ALGOBIT=y
+# CONFIG_I2C_ALGOPCF is not set
+# CONFIG_I2C_ALGOPCA is not set
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+# CONFIG_I2C_DESIGNWARE is not set
+# CONFIG_I2C_GPIO is not set
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_PCA_PLATFORM is not set
+CONFIG_I2C_PXA=y
+# CONFIG_I2C_PXA_PCI is not set
+# CONFIG_I2C_PXA_SLAVE is not set
+# CONFIG_I2C_SIMTEC is not set
+# CONFIG_I2C_XILINX is not set
+
+#
+# External I2C/SMBus adapter drivers
+#
+# CONFIG_I2C_DIOLAN_U2C is not set
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_TAOS_EVM is not set
+# CONFIG_I2C_TINY_USB is not set
+
+#
+# Other I2C/SMBus bus drivers
+#
+# CONFIG_I2C_STUB 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 is not set
+# CONFIG_SPI_BITBANG is not set
+# CONFIG_SPI_GPIO is not set
+# CONFIG_SPI_OC_TINY is not set
+CONFIG_SPI_PXA2XX=y
+# CONFIG_SPI_PXA2XX_PCI is not set
+# CONFIG_SPI_XILINX is not set
+# CONFIG_SPI_DESIGNWARE is not set
+
+#
+# SPI Protocol Masters
+#
+# CONFIG_SPI_SPIDEV is not set
+# CONFIG_SPI_TLE62X0 is not set
+
+#
+# PPS support
+#
+# CONFIG_PPS is not set
+
+#
+# PPS generators support
+#
+
+#
+# PTP clock support
+#
+
+#
+# Enable Device Drivers -> PPS to see the PTP clock options.
+#
+CONFIG_ARCH_REQUIRE_GPIOLIB=y
+CONFIG_GPIOLIB=y
+# CONFIG_DEBUG_GPIO is not set
+# CONFIG_GPIO_SYSFS is not set
+
+#
+# Memory mapped GPIO drivers:
+#
+# CONFIG_GPIO_BASIC_MMIO is not set
+# CONFIG_GPIO_IT8761E is not set
+
+#
+# I2C GPIO expanders:
+#
+# CONFIG_GPIO_MAX7300 is not set
+# CONFIG_GPIO_MAX732X is not set
+# CONFIG_GPIO_PCF857X is not set
+# CONFIG_GPIO_SX150X is not set
+# CONFIG_GPIO_ADP5588 is not set
+
+#
+# PCI GPIO expanders:
+#
+
+#
+# SPI GPIO expanders:
+#
+# CONFIG_GPIO_MAX7301 is not set
+# CONFIG_GPIO_MCP23S08 is not set
+# CONFIG_GPIO_MC33880 is not set
+# CONFIG_GPIO_74X164 is not set
+
+#
+# AC97 GPIO expanders:
+#
+
+#
+# MODULbus GPIO expanders:
+#
+# CONFIG_GPIO_PCA9575 is not set
+# CONFIG_W1 is not set
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+# CONFIG_PDA_POWER is not set
+# CONFIG_TEST_POWER is not set
+# CONFIG_BATTERY_DS2780 is not set
+# CONFIG_BATTERY_DS2782 is not set
+# CONFIG_BATTERY_BQ20Z75 is not set
+# CONFIG_BATTERY_BQ27x00 is not set
+# CONFIG_BATTERY_BQ27425 is not set
+# CONFIG_BATTERY_MAX17040 is not set
+# CONFIG_BATTERY_MAX17042 is not set
+# CONFIG_BATTERY_MAX17043 is not set
+# CONFIG_CHARGER_SMB347 is not set
+# CONFIG_BATTERY_FAN4010 is not set
+# CONFIG_CHARGER_ISP1704 is not set
+# CONFIG_CHARGER_MAX8903 is not set
+# CONFIG_CHARGER_GPIO is not set
+# CONFIG_CHARGER_ISL9519 is not set
+# CONFIG_CHARGER_MAX8900 is not set
+# CONFIG_CHARGER_ISL9226 is not set
+# CONFIG_CHARGER_FAN540X is not set
+CONFIG_HWMON=y
+# CONFIG_HWMON_VID is not set
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
+# CONFIG_SENSORS_AD7414 is not set
+# CONFIG_SENSORS_AD7418 is not set
+# CONFIG_SENSORS_ADCXX is not set
+# CONFIG_SENSORS_ADM1021 is not set
+# CONFIG_SENSORS_ADM1025 is not set
+# CONFIG_SENSORS_ADM1026 is not set
+# CONFIG_SENSORS_ADM1029 is not set
+# CONFIG_SENSORS_ADM1031 is not set
+# CONFIG_SENSORS_ADM9240 is not set
+# CONFIG_SENSORS_ADT7411 is not set
+# CONFIG_SENSORS_ADT7462 is not set
+# CONFIG_SENSORS_ADT7470 is not set
+# CONFIG_SENSORS_ADT7475 is not set
+# CONFIG_SENSORS_ASC7621 is not set
+# CONFIG_SENSORS_ATXP1 is not set
+# CONFIG_SENSORS_DS620 is not set
+# CONFIG_SENSORS_DS1621 is not set
+# CONFIG_SENSORS_F71805F is not set
+# CONFIG_SENSORS_F71882FG is not set
+# CONFIG_SENSORS_F75375S is not set
+# CONFIG_SENSORS_G760A is not set
+# CONFIG_SENSORS_GL518SM is not set
+# CONFIG_SENSORS_GL520SM is not set
+# CONFIG_SENSORS_GPIO_FAN is not set
+# CONFIG_SENSORS_IT87 is not set
+# CONFIG_SENSORS_JC42 is not set
+# CONFIG_SENSORS_LINEAGE is not set
+# CONFIG_SENSORS_LM63 is not set
+# CONFIG_SENSORS_LM70 is not set
+# CONFIG_SENSORS_LM73 is not set
+# CONFIG_SENSORS_LM75 is not set
+# CONFIG_SENSORS_LM77 is not set
+# CONFIG_SENSORS_LM78 is not set
+# CONFIG_SENSORS_LM80 is not set
+# CONFIG_SENSORS_LM83 is not set
+# CONFIG_SENSORS_LM85 is not set
+# CONFIG_SENSORS_LM87 is not set
+# CONFIG_SENSORS_LM90 is not set
+# CONFIG_SENSORS_LM92 is not set
+# CONFIG_SENSORS_LM93 is not set
+# CONFIG_SENSORS_LTC4151 is not set
+# CONFIG_SENSORS_LTC4215 is not set
+# CONFIG_SENSORS_LTC4245 is not set
+# CONFIG_SENSORS_LTC4261 is not set
+# CONFIG_SENSORS_LM95241 is not set
+# CONFIG_SENSORS_MAX1111 is not set
+# CONFIG_SENSORS_MAX16065 is not set
+# CONFIG_SENSORS_MAX1619 is not set
+# CONFIG_SENSORS_MAX6639 is not set
+# CONFIG_SENSORS_MAX6642 is not set
+# CONFIG_SENSORS_MAX6650 is not set
+# CONFIG_SENSORS_PC87360 is not set
+# CONFIG_SENSORS_PC87427 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_PMBUS is not set
+# CONFIG_SENSORS_SHT15 is not set
+# CONFIG_SENSORS_SHT21 is not set
+# CONFIG_SENSORS_SMM665 is not set
+# CONFIG_SENSORS_DME1737 is not set
+# CONFIG_SENSORS_EMC1403 is not set
+# CONFIG_SENSORS_EMC2103 is not set
+# CONFIG_SENSORS_EMC6W201 is not set
+# CONFIG_SENSORS_SMSC47M1 is not set
+# CONFIG_SENSORS_SMSC47M192 is not set
+# CONFIG_SENSORS_SMSC47B397 is not set
+# CONFIG_SENSORS_SCH5627 is not set
+# CONFIG_SENSORS_ADS1015 is not set
+# CONFIG_SENSORS_ADS7828 is not set
+# CONFIG_SENSORS_ADS7871 is not set
+# CONFIG_SENSORS_AMC6821 is not set
+# CONFIG_SENSORS_THMC50 is not set
+# CONFIG_SENSORS_TMP102 is not set
+# CONFIG_SENSORS_TMP401 is not set
+# CONFIG_SENSORS_TMP421 is not set
+# CONFIG_SENSORS_VT1211 is not set
+# CONFIG_SENSORS_W83781D is not set
+# CONFIG_SENSORS_W83791D is not set
+# CONFIG_SENSORS_W83792D is not set
+# CONFIG_SENSORS_W83793 is not set
+# CONFIG_SENSORS_W83795 is not set
+# CONFIG_SENSORS_W83L785TS is not set
+# CONFIG_SENSORS_W83L786NG is not set
+# CONFIG_SENSORS_W83627HF is not set
+# CONFIG_SENSORS_W83627EHF is not set
+# CONFIG_SENSORS_CM3623 is not set
+# CONFIG_SENSORS_ISL29043 is not set
+# CONFIG_SENSORS_CM3218 is not set
+# CONFIG_SENSORS_CM3213 is not set
+# CONFIG_SENSORS_LIS331DL is not set
+# CONFIG_SENSORS_LSM303DLHC_ACC is not set
+# CONFIG_SENSORS_LSM303DLHC_MAG is not set
+# CONFIG_SENSORS_L3G4200D_GYR is not set
+# CONFIG_SENSORS_CWMI is not set
+# CONFIG_SENSORS_CWGD is not set
+# CONFIG_SENSORS_LPS331AP is not set
+# CONFIG_SENSORS_ROHM_BH1772 is not set
+# CONFIG_SENSORS_APDS990X_MRVL is not set
+# CONFIG_SENSORS_BMA250 is not set
+# CONFIG_SENSORS_BMM050 is not set
+# CONFIG_SENSORS_BMM050_MPU3050 is not set
+CONFIG_THERMAL=y
+CONFIG_THERMAL_HWMON=y
+CONFIG_MMP3_THERMAL=y
+# CONFIG_WATCHDOG is not set
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+# CONFIG_SSB is not set
+CONFIG_BCMA_POSSIBLE=y
+
+#
+# Broadcom specific AMBA
+#
+# CONFIG_BCMA is not set
+CONFIG_MFD_SUPPORT=y
+# CONFIG_MFD_CORE is not set
+# CONFIG_MFD_88PM860X is not set
+# CONFIG_MFD_88PM80X is not set
+# CONFIG_MFD_SM501 is not set
+# CONFIG_MFD_ASIC3 is not set
+# CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_HTC_I2CPLD is not set
+# CONFIG_PXA_DS1WM is not set
+# CONFIG_TPS6105X is not set
+# CONFIG_TPS65010 is not set
+# CONFIG_TPS6507X is not set
+# CONFIG_MFD_TPS6586X is not set
+# CONFIG_TWL4030_CORE is not set
+# CONFIG_MFD_STMPE is not set
+# CONFIG_MFD_TC3589X is not set
+# CONFIG_MFD_TMIO is not set
+# CONFIG_MFD_T7L66XB is not set
+# CONFIG_MFD_TC6387XB is not set
+# CONFIG_MFD_TC6393XB is not set
+# CONFIG_PMIC_DA903X is not set
+# CONFIG_PMIC_ADP5520 is not set
+# CONFIG_MFD_MAX8925 is not set
+# CONFIG_MFD_MAX8997 is not set
+# CONFIG_MFD_MAX8998 is not set
+# CONFIG_MFD_MAX77601 is not set
+# CONFIG_MFD_WM8400 is not set
+# CONFIG_MFD_WM831X_I2C is not set
+# CONFIG_MFD_WM831X_SPI is not set
+# CONFIG_MFD_WM8350_I2C is not set
+# CONFIG_MFD_WM8994 is not set
+# CONFIG_MFD_PCF50633 is not set
+# CONFIG_MFD_MC13XXX is not set
+# CONFIG_ABX500_CORE is not set
+# CONFIG_EZX_PCAP is not set
+# CONFIG_MFD_WL1273_CORE is not set
+# CONFIG_MFD_TPS65910 is not set
+CONFIG_REGULATOR=y
+# CONFIG_REGULATOR_DEBUG is not set
+# CONFIG_REGULATOR_DUMMY is not set
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
+# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
+# CONFIG_REGULATOR_BQ24022 is not set
+# CONFIG_REGULATOR_DS4432 is not set
+# CONFIG_REGULATOR_MAX1586 is not set
+# CONFIG_REGULATOR_MAX8649 is not set
+# CONFIG_REGULATOR_MAX8660 is not set
+# CONFIG_REGULATOR_MAX8952 is not set
+# CONFIG_REGULATOR_LP3971 is not set
+# CONFIG_REGULATOR_LP3972 is not set
+# CONFIG_REGULATOR_TPS65023 is not set
+# CONFIG_REGULATOR_TPS6507X is not set
+# CONFIG_REGULATOR_ISL6271A is not set
+# CONFIG_REGULATOR_AD5398 is not set
+# CONFIG_REGULATOR_TPS6524X is not set
+# CONFIG_REGULATOR_FAN53555 is not set
+CONFIG_REGULATOR_88PM867=y
+CONFIG_MEDIA_SUPPORT=y
+
+#
+# Multimedia core support
+#
+CONFIG_MEDIA_CONTROLLER=y
+CONFIG_VIDEO_DEV=y
+CONFIG_VIDEO_V4L2_COMMON=y
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
+# CONFIG_DVB_CORE is not set
+CONFIG_VIDEO_MEDIA=y
+
+#
+# Multimedia drivers
+#
+# CONFIG_RC_CORE is not set
+# CONFIG_MEDIA_ATTACH is not set
+CONFIG_MEDIA_TUNER=y
+# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
+CONFIG_MEDIA_TUNER_SIMPLE=y
+CONFIG_MEDIA_TUNER_TDA8290=y
+CONFIG_MEDIA_TUNER_TDA827X=y
+CONFIG_MEDIA_TUNER_TDA18271=y
+CONFIG_MEDIA_TUNER_TDA9887=y
+CONFIG_MEDIA_TUNER_TEA5761=y
+CONFIG_MEDIA_TUNER_TEA5767=y
+CONFIG_MEDIA_TUNER_MT20XX=y
+CONFIG_MEDIA_TUNER_XC2028=y
+CONFIG_MEDIA_TUNER_XC5000=y
+CONFIG_MEDIA_TUNER_MC44S803=y
+CONFIG_VIDEO_V4L2=y
+CONFIG_VIDEOBUF_GEN=y
+CONFIG_VIDEOBUF2_CORE=y
+CONFIG_VIDEOBUF2_MEMOPS=y
+CONFIG_VIDEOBUF2_DMA_CONTIG=y
+CONFIG_VIDEO_CAPTURE_DRIVERS=y
+CONFIG_VIDEO_ADV_DEBUG=y
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
+
+#
+# Audio decoders, processors and mixers
+#
+
+#
+# RDS decoders
+#
+
+#
+# Video decoders
+#
+
+#
+# Video and audio decoders
+#
+
+#
+# MPEG video encoders
+#
+
+#
+# Video encoders
+#
+
+#
+# Camera sensor devices
+#
+
+#
+# Video improvement chips
+#
+
+#
+# Miscelaneous helper chips
+#
+# CONFIG_VIDEO_CPIA2 is not set
+# CONFIG_VIDEO_SR030PC30 is not set
+# CONFIG_VIDEO_NOON010PC30 is not set
+# CONFIG_VIDEO_M5MOLS is not set
+CONFIG_VIDEO_MVISP=y
+# CONFIG_VIDEO_MVISP_OV882X is not set
+# CONFIG_VIDEO_MVISP_OV8820 is not set
+# CONFIG_VIDEO_MVISP_OV8825 is not set
+# CONFIG_ECS_DRIVER is not set
+# CONFIG_ECS_DRIVER_SUBDEV is not set
+CONFIG_SOC_CAMERA=y
+# CONFIG_SOC_CAMERA_ICPHD is not set
+# CONFIG_SOC_CAMERA_M6MO is not set
+# CONFIG_SOC_CAMERA_OV5642 is not set
+# CONFIG_SOC_CAMERA_OV5640 is not set
+# CONFIG_SOC_CAMERA_OV2659 is not set
+# CONFIG_SOC_CAMERA_OV7692 is not set
+# CONFIG_SOC_CAMERA_IMX074 is not set
+# CONFIG_SOC_CAMERA_MT9M001 is not set
+# CONFIG_SOC_CAMERA_MT9M111 is not set
+# CONFIG_SOC_CAMERA_MT9T031 is not set
+# CONFIG_SOC_CAMERA_MT9T112 is not set
+# CONFIG_SOC_CAMERA_MT9V022 is not set
+# CONFIG_SOC_CAMERA_RJ54N1 is not set
+# CONFIG_SOC_CAMERA_TW9910 is not set
+# CONFIG_SOC_CAMERA_PLATFORM is not set
+# CONFIG_SOC_CAMERA_OV2640 is not set
+# CONFIG_SOC_CAMERA_OV6650 is not set
+# CONFIG_SOC_CAMERA_OV772X is not set
+# CONFIG_SOC_CAMERA_OV9640 is not set
+# CONFIG_SOC_CAMERA_OV9740 is not set
+CONFIG_VIDEO_MV=y
+# CONFIG_VIDEO_SH_MOBILE_CSI2 is not set
+# CONFIG_VIDEO_SH_MOBILE_CEU is not set
+CONFIG_V4L_USB_DRIVERS=y
+# CONFIG_USB_VIDEO_CLASS is not set
+CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
+CONFIG_USB_GSPCA=m
+# CONFIG_USB_M5602 is not set
+# CONFIG_USB_STV06XX is not set
+# CONFIG_USB_GL860 is not set
+# CONFIG_USB_GSPCA_BENQ is not set
+# CONFIG_USB_GSPCA_CONEX is not set
+# CONFIG_USB_GSPCA_CPIA1 is not set
+# CONFIG_USB_GSPCA_ETOMS is not set
+# CONFIG_USB_GSPCA_FINEPIX is not set
+# CONFIG_USB_GSPCA_JEILINJ is not set
+# CONFIG_USB_GSPCA_KINECT is not set
+# CONFIG_USB_GSPCA_KONICA is not set
+# CONFIG_USB_GSPCA_MARS is not set
+# CONFIG_USB_GSPCA_MR97310A is not set
+# CONFIG_USB_GSPCA_NW80X is not set
+# CONFIG_USB_GSPCA_OV519 is not set
+# CONFIG_USB_GSPCA_OV534 is not set
+# CONFIG_USB_GSPCA_OV534_9 is not set
+# CONFIG_USB_GSPCA_PAC207 is not set
+# CONFIG_USB_GSPCA_PAC7302 is not set
+# CONFIG_USB_GSPCA_PAC7311 is not set
+# CONFIG_USB_GSPCA_SN9C2028 is not set
+# CONFIG_USB_GSPCA_SN9C20X is not set
+# CONFIG_USB_GSPCA_SONIXB is not set
+# CONFIG_USB_GSPCA_SONIXJ is not set
+# CONFIG_USB_GSPCA_SPCA500 is not set
+# CONFIG_USB_GSPCA_SPCA501 is not set
+# CONFIG_USB_GSPCA_SPCA505 is not set
+# CONFIG_USB_GSPCA_SPCA506 is not set
+# CONFIG_USB_GSPCA_SPCA508 is not set
+# CONFIG_USB_GSPCA_SPCA561 is not set
+# CONFIG_USB_GSPCA_SPCA1528 is not set
+# CONFIG_USB_GSPCA_SQ905 is not set
+# CONFIG_USB_GSPCA_SQ905C is not set
+# CONFIG_USB_GSPCA_SQ930X is not set
+# CONFIG_USB_GSPCA_STK014 is not set
+# CONFIG_USB_GSPCA_STV0680 is not set
+# CONFIG_USB_GSPCA_SUNPLUS is not set
+# CONFIG_USB_GSPCA_T613 is not set
+# CONFIG_USB_GSPCA_TV8532 is not set
+# CONFIG_USB_GSPCA_VC032X is not set
+# CONFIG_USB_GSPCA_VICAM is not set
+# CONFIG_USB_GSPCA_XIRLINK_CIT is not set
+# CONFIG_USB_GSPCA_ZC3XX is not set
+# CONFIG_VIDEO_PVRUSB2 is not set
+# CONFIG_VIDEO_HDPVR is not set
+# CONFIG_VIDEO_USBVISION is not set
+# CONFIG_USB_ET61X251 is not set
+# CONFIG_USB_SN9C102 is not set
+# CONFIG_USB_PWC is not set
+# CONFIG_USB_ZR364XX is not set
+# CONFIG_USB_STKWEBCAM is not set
+# CONFIG_USB_S2255 is not set
+# CONFIG_CMMB is not set
+# CONFIG_V4L_MEM2MEM_DRIVERS is not set
+CONFIG_VIDEO_DISPLAY_DRIVERS=y
+CONFIG_PXA168_V4L2_OVERLAY=y
+# CONFIG_RADIO_ADAPTERS is not set
+
+#
+# Graphics support
+#
+CONFIG_DRM=m
+CONFIG_DRM_VIVANTE=m
+# CONFIG_ION is not set
+# CONFIG_VGASTATE is not set
+# CONFIG_VIDEO_OUTPUT_CONTROL is not set
+CONFIG_FB=y
+# CONFIG_FIRMWARE_EDID is not set
+# CONFIG_FB_DDC is not set
+# 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 is not set
+# CONFIG_FB_SYS_COPYAREA is not set
+# CONFIG_FB_SYS_IMAGEBLIT is not set
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+# CONFIG_FB_SYS_FOPS is not set
+# CONFIG_FB_WMT_GE_ROPS is not set
+# 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_UVESA is not set
+# CONFIG_FB_S1D13XXX is not set
+CONFIG_PXA688_MISC=y
+CONFIG_FB_PXA168=y
+CONFIG_PXA688_PHY=y
+# CONFIG_PXA688_CMU is not set
+CONFIG_PXA688_VDMA=y
+# CONFIG_FB_UDL is not set
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_BROADSHEET is not set
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=y
+# CONFIG_LCD_L4F00242T03 is not set
+# CONFIG_LCD_LMS283GF05 is not set
+# CONFIG_LCD_LTV350QV is not set
+# CONFIG_LCD_TDO24M is not set
+# CONFIG_LCD_VGG2432A4 is not set
+# CONFIG_LCD_PLATFORM is not set
+# CONFIG_LCD_S6E63M0 is not set
+# CONFIG_LCD_LD9040 is not set
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_GENERIC=y
+CONFIG_BACKLIGHT_PWM=y
+# CONFIG_BACKLIGHT_ADP8860 is not set
+# CONFIG_BACKLIGHT_ADP8870 is not set
+# CONFIG_BACKLIGHT_ADP8885 is not set
+# CONFIG_BACKLIGHT_KTD253 is not set
+
+#
+# Display device support
+#
+# CONFIG_DISPLAY_SUPPORT is not set
+
+#
+# Console display driver support
+#
+CONFIG_DUMMY_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE is not set
+CONFIG_LOGO=y
+CONFIG_LOGO_LINUX_MONO=y
+CONFIG_LOGO_LINUX_VGA16=y
+CONFIG_LOGO_LINUX_CLUT224=y
+CONFIG_SOUND=y
+CONFIG_SOUND_OSS_CORE=y
+CONFIG_SOUND_OSS_CORE_PRECLAIM=y
+CONFIG_SND=y
+CONFIG_SND_TIMER=y
+CONFIG_SND_PCM=y
+CONFIG_SND_JACK=y
+# CONFIG_SND_SEQUENCER is not set
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=y
+CONFIG_SND_PCM_OSS=y
+CONFIG_SND_PCM_OSS_PLUGINS=y
+# CONFIG_SND_HRTIMER is not set
+# CONFIG_SND_DYNAMIC_MINORS is not set
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+# CONFIG_SND_RAWMIDI_SEQ is not set
+# CONFIG_SND_OPL3_LIB_SEQ is not set
+# CONFIG_SND_OPL4_LIB_SEQ is not set
+# CONFIG_SND_SBAWE_SEQ is not set
+# CONFIG_SND_EMU10K1_SEQ is not set
+CONFIG_SND_DRIVERS=y
+# CONFIG_SND_DUMMY is not set
+# CONFIG_SND_ALOOP is not set
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+CONFIG_SND_ARM=y
+CONFIG_SND_SPI=y
+CONFIG_SND_USB=y
+# CONFIG_SND_USB_AUDIO is not set
+# CONFIG_SND_USB_UA101 is not set
+# CONFIG_SND_USB_CAIAQ is not set
+# CONFIG_SND_USB_6FIRE is not set
+CONFIG_SND_SOC=y
+# CONFIG_SND_SOC_CACHE_LZO is not set
+
+#
+# SoC Audio for the Marvell PXA910
+#
+# CONFIG_SND_PXA910_SOC is not set
+
+#
+# SoC Audio for the Marvell PXA988
+#
+# CONFIG_SND_PXA988_SOC is not set
+CONFIG_SND_MMP_LEGACY_SOC=y
+
+#
+# SoC Audio for the Marvell MMPx
+#
+CONFIG_SND_MMP_SOC=y
+# CONFIG_SND_MMP2_SOC is not set
+# CONFIG_SND_MMP_SOC_MK2 is not set
+CONFIG_SND_MMP_SOC_QSEVEN=y
+CONFIG_SND_SOC_I2C_AND_SPI=y
+# CONFIG_SND_SOC_ALL_CODECS is not set
+CONFIG_SND_SOC_88CE156=y
+# CONFIG_SOUND_PRIME is not set
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=y
+# CONFIG_HIDRAW is not set
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=y
+CONFIG_HID_PID=y
+# CONFIG_USB_HIDDEV is not set
+
+#
+# Special HID drivers
+#
+# CONFIG_HID_A4TECH is not set
+# CONFIG_HID_ACRUX is not set
+# CONFIG_HID_APPLE is not set
+# CONFIG_HID_BELKIN is not set
+# CONFIG_HID_CHERRY is not set
+# CONFIG_HID_CHICONY is not set
+# CONFIG_HID_PRODIKEYS is not set
+# CONFIG_HID_CYPRESS is not set
+# CONFIG_HID_DRAGONRISE is not set
+# CONFIG_HID_EMS_FF is not set
+# CONFIG_HID_EZKEY is not set
+# CONFIG_HID_KEYTOUCH is not set
+# CONFIG_HID_KYE is not set
+# CONFIG_HID_UCLOGIC is not set
+# CONFIG_HID_WALTOP is not set
+# CONFIG_HID_GYRATION is not set
+# CONFIG_HID_TWINHAN is not set
+# CONFIG_HID_KENSINGTON is not set
+# CONFIG_HID_LCPOWER is not set
+# CONFIG_HID_LOGITECH is not set
+# CONFIG_HID_MICROSOFT is not set
+# CONFIG_HID_MONTEREY is not set
+# CONFIG_HID_MULTITOUCH is not set
+CONFIG_HID_NTRIG=y
+# CONFIG_NTRIG_SPI is not set
+# CONFIG_NTRIG_USBHID is not set
+# CONFIG_HID_ORTEK is not set
+# CONFIG_HID_PANTHERLORD is not set
+# CONFIG_HID_PETALYNX is not set
+# CONFIG_HID_PICOLCD is not set
+# CONFIG_HID_QUANTA is not set
+# CONFIG_HID_ROCCAT is not set
+# CONFIG_HID_ROCCAT_ARVO is not set
+# CONFIG_HID_ROCCAT_KONE is not set
+# CONFIG_HID_ROCCAT_KONEPLUS is not set
+# CONFIG_HID_ROCCAT_KOVAPLUS is not set
+# CONFIG_HID_ROCCAT_PYRA is not set
+# CONFIG_HID_SAMSUNG is not set
+# CONFIG_HID_SONY is not set
+# CONFIG_HID_SUNPLUS is not set
+# CONFIG_HID_GREENASIA is not set
+# CONFIG_HID_SMARTJOYPLUS is not set
+# CONFIG_HID_TOPSEED is not set
+# CONFIG_HID_THRUSTMASTER is not set
+# CONFIG_HID_ZEROPLUS is not set
+# CONFIG_HID_ZYDACRON is not set
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+# CONFIG_USB_ARCH_HAS_OHCI is not set
+CONFIG_USB_ARCH_HAS_EHCI=y
+CONFIG_USB=y
+# CONFIG_USB_DEBUG is not set
+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
+
+#
+# Miscellaneous USB options
+#
+# CONFIG_USB_DEVICEFS is not set
+CONFIG_USB_DEVICE_CLASS=y
+# CONFIG_USB_DYNAMIC_MINORS is not set
+CONFIG_USB_SUSPEND=y
+CONFIG_USB_OTG=y
+CONFIG_USB_OTG_WHITELIST=y
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+# CONFIG_USB_MON is not set
+# CONFIG_USB_WUSB is not set
+# CONFIG_USB_WUSB_CBAF is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_C67X00_HCD is not set
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+CONFIG_USB_EHCI_PXA=y
+CONFIG_USB_EHCI_PXA_U2O=y
+CONFIG_USB_EHCI_PXA_U2H_HSIC=y
+# CONFIG_USB_EHCI_PXA_U2H_FSIC is not set
+# CONFIG_USB_OXU210HP_HCD is not set
+# CONFIG_USB_ISP116X_HCD is not set
+# CONFIG_USB_ISP1760_HCD is not set
+# CONFIG_USB_ISP1362_HCD is not set
+# CONFIG_USB_SL811_HCD is not set
+# CONFIG_USB_R8A66597_HCD is not set
+# CONFIG_USB_HWA_HCD is not set
+# CONFIG_USB_MUSB_HDRC is not set
+
+#
+# USB Device Class drivers
+#
+CONFIG_USB_ACM=y
+# CONFIG_USB_PRINTER is not set
+# CONFIG_USB_WDM is not set
+# CONFIG_USB_TMC is not set
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+CONFIG_USB_STORAGE=y
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_REALTEK is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_ISD200 is not set
+# CONFIG_USB_STORAGE_USBAT is not set
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+# CONFIG_USB_STORAGE_ALAUDA is not set
+# CONFIG_USB_STORAGE_ONETOUCH is not set
+# CONFIG_USB_STORAGE_KARMA is not set
+# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
+# CONFIG_USB_STORAGE_ENE_UB6250 is not set
+# CONFIG_USB_UAS is not set
+# CONFIG_USB_LIBUSUAL is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+
+#
+# USB port drivers
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_EMI62 is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_ADUTUX is not set
+# CONFIG_USB_SEVSEG is not set
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+# CONFIG_USB_LCD is not set
+# CONFIG_USB_LED is not set
+# CONFIG_USB_CYPRESS_CY7C63 is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_FTDI_ELAN is not set
+# CONFIG_USB_APPLEDISPLAY is not set
+# CONFIG_USB_SISUSBVGA is not set
+# CONFIG_USB_LD is not set
+# CONFIG_USB_TRANCEVIBRATOR is not set
+# CONFIG_USB_IOWARRIOR is not set
+# CONFIG_USB_TEST is not set
+# CONFIG_USB_ISIGHTFW is not set
+# CONFIG_USB_YUREX is not set
+CONFIG_USB_GADGET=y
+# 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_SELECTED=y
+# CONFIG_USB_GADGET_FUSB300 is not set
+# CONFIG_USB_GADGET_R8A66597 is not set
+CONFIG_USB_GADGET_PXA_U2O=y
+CONFIG_USB_PXA_U2O=y
+# CONFIG_USB_GADGET_M66592 is not set
+# CONFIG_USB_GADGET_DUMMY_HCD is not set
+CONFIG_USB_GADGET_DUALSPEED=y
+# CONFIG_USB_ZERO is not set
+# CONFIG_USB_AUDIO is not set
+# CONFIG_USB_ETH is not set
+# CONFIG_USB_G_NCM is not set
+# CONFIG_USB_GADGETFS is not set
+# CONFIG_USB_FUNCTIONFS is not set
+# CONFIG_USB_FILE_STORAGE is not set
+CONFIG_USB_MASS_STORAGE=y
+# CONFIG_USB_G_SERIAL is not set
+# CONFIG_USB_MIDI_GADGET is not set
+# CONFIG_USB_G_PRINTER is not set
+# CONFIG_USB_G_ANDROID is not set
+# CONFIG_USB_CDC_COMPOSITE is not set
+# CONFIG_USB_G_MULTI is not set
+# CONFIG_USB_G_HID is not set
+# CONFIG_USB_G_DBGP is not set
+# CONFIG_USB_G_WEBCAM is not set
+
+#
+# OTG and related infrastructure
+#
+CONFIG_USB_OTG_UTILS=y
+# CONFIG_USB_GPIO_VBUS is not set
+# CONFIG_USB_ULPI is not set
+# CONFIG_NOP_USB_XCEIV is not set
+CONFIG_USB_PXA_U2O_OTG=y
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+CONFIG_MMC_UNSAFE_RESUME=y
+# CONFIG_MMC_NONSTANDARD_RECOVERY is not set
+# CONFIG_MMC_CLKGATE is not set
+# CONFIG_MMC_EMBEDDED_SDIO is not set
+# CONFIG_MMC_PARANOID_SD_INIT is not set
+# CONFIG_EMMC_BUSWIDTH_SET_EARLIER is not set
+
+#
+# MMC/SD/SDIO Card Drivers
+#
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_BLOCK_MINORS=16
+CONFIG_MMC_BLOCK_BOUNCE=y
+# CONFIG_MMC_BLOCK_AUTO_RESUME is not set
+# CONFIG_MMC_BLOCK_DEFERRED_RESUME is not set
+# CONFIG_MMC_BLOCK_CMD13_AFTER_CMD18 is not set
+# CONFIG_SDIO_UART is not set
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_PXAV3=y
+# CONFIG_MMC_SDHCI_PXAV2 is not set
+# CONFIG_MMC_SDHCI_PXAV2_TAVOR is not set
+# CONFIG_MMC_DW is not set
+# CONFIG_MMC_VUB300 is not set
+# CONFIG_MMC_USHC is not set
+# CONFIG_MEMSTICK is not set
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+
+#
+# LED drivers
+#
+# CONFIG_LEDS_LM3530 is not set
+# CONFIG_LEDS_PCA9532 is not set
+# CONFIG_LEDS_GPIO is not set
+# CONFIG_LEDS_LP3944 is not set
+# CONFIG_LEDS_LP5521 is not set
+# CONFIG_LEDS_LP5523 is not set
+# CONFIG_LEDS_PCA955X is not set
+# CONFIG_LEDS_PCA963X is not set
+# CONFIG_LEDS_DAC124S085 is not set
+# CONFIG_LEDS_PWM is not set
+# CONFIG_LEDS_REGULATOR is not set
+# CONFIG_LEDS_BD2802 is not set
+# CONFIG_LEDS_LT3593 is not set
+CONFIG_LEDS_TRIGGERS=y
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGER_TIMER=y
+# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
+# CONFIG_LEDS_TRIGGER_GPIO is not set
+# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
+
+#
+# iptables trigger is under Netfilter config (LED target)
+#
+# CONFIG_NFC_DEVICES is not set
+CONFIG_SWITCH=y
+# CONFIG_SWITCH_GPIO is not set
+# CONFIG_SWITCH_HEADSET is not set
+# CONFIG_SWITCH_88PM80X_HEADSET is not set
+# CONFIG_SWITCH_WM8994_HEADSET is not set
+# CONFIG_ACCESSIBILITY is not set
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_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_INTF_ALARM=y
+CONFIG_RTC_INTF_ALARM_DEV=y
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_DS3232 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_ISL12022 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+# CONFIG_RTC_DRV_BQ32K is not set
+# CONFIG_RTC_DRV_S35390A is not set
+# CONFIG_RTC_DRV_FM3130 is not set
+# CONFIG_RTC_DRV_RX8581 is not set
+# CONFIG_RTC_DRV_RX8025 is not set
+# CONFIG_RTC_DRV_EM3027 is not set
+# CONFIG_RTC_DRV_RV3029C2 is not set
+CONFIG_RTC_DRV_IDT1338=y
+
+#
+# SPI RTC drivers
+#
+# CONFIG_RTC_DRV_M41T93 is not set
+# CONFIG_RTC_DRV_M41T94 is not set
+# CONFIG_RTC_DRV_DS1305 is not set
+# CONFIG_RTC_DRV_DS1390 is not set
+# CONFIG_RTC_DRV_MAX6902 is not set
+# CONFIG_RTC_DRV_R9701 is not set
+# CONFIG_RTC_DRV_RS5C348 is not set
+# CONFIG_RTC_DRV_DS3234 is not set
+# CONFIG_RTC_DRV_PCF2123 is not set
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1286 is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T35 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_MSM6242 is not set
+# CONFIG_RTC_DRV_BQ4802 is not set
+# CONFIG_RTC_DRV_RP5C01 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+
+#
+# on-CPU RTC drivers
+#
+CONFIG_RTC_DRV_MMP=y
+# CONFIG_DMADEVICES is not set
+# CONFIG_AUXDISPLAY is not set
+CONFIG_UIO=y
+# CONFIG_UIO_PDRV is not set
+# CONFIG_UIO_PDRV_GENIRQ is not set
+CONFIG_UIO_VMETA=y
+# CONFIG_VMETA_POLLING_MODE is not set
+CONFIG_UIO_HDMI=y
+# CONFIG_UIO_CODA7542 is not set
+CONFIG_STAGING=y
+# CONFIG_USBIP_CORE is not set
+# CONFIG_W35UND is not set
+# CONFIG_PRISM2_USB is not set
+# CONFIG_ECHO is not set
+# CONFIG_BRCMUTIL is not set
+# CONFIG_ASUS_OLED is not set
+# CONFIG_R8712U is not set
+# CONFIG_TRANZPORT is not set
+
+#
+# Android
+#
+# CONFIG_ANDROID is not set
+# CONFIG_POHMELFS is not set
+# CONFIG_LINE6_USB is not set
+# CONFIG_VT6656 is not set
+# CONFIG_IIO is not set
+# CONFIG_XVMALLOC is not set
+# CONFIG_ZRAM is not set
+# CONFIG_FB_SM7XX is not set
+# CONFIG_EASYCAP is not set
+CONFIG_MACH_NO_WESTBRIDGE=y
+# CONFIG_ATH6K_LEGACY is not set
+# CONFIG_USB_ENESTORAGE is not set
+# CONFIG_BCM_WIMAX is not set
+# CONFIG_FT1000 is not set
+
+#
+# Speakup console speech
+#
+# CONFIG_SPEAKUP is not set
+# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set
+# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set
+
+#
+# Altera FPGA firmware download module
+#
+# CONFIG_ALTERA_STAPL is not set
+CONFIG_CLKDEV_LOOKUP=y
+# CONFIG_PM_DEVFREQ is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+CONFIG_EXT2_FS_XATTR=y
+# CONFIG_EXT2_FS_POSIX_ACL is not set
+# CONFIG_EXT2_FS_SECURITY is not set
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_DEFAULTS_TO_ORDERED=y
+CONFIG_EXT3_FS_XATTR=y
+# CONFIG_EXT3_FS_POSIX_ACL is not set
+# CONFIG_EXT3_FS_SECURITY is not set
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_XATTR=y
+# CONFIG_EXT4_FS_POSIX_ACL is not set
+# CONFIG_EXT4_FS_SECURITY is not set
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_JBD=y
+CONFIG_JBD_DEBUG=y
+CONFIG_JBD2=y
+# CONFIG_JBD2_DEBUG is not set
+CONFIG_FS_MBCACHE=y
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_BTRFS_FS is not set
+# CONFIG_NILFS2_FS is not set
+CONFIG_FS_POSIX_ACL=y
+CONFIG_FILE_LOCKING=y
+CONFIG_FSNOTIFY=y
+# CONFIG_DNOTIFY is not set
+CONFIG_INOTIFY_USER=y
+# CONFIG_FANOTIFY is not set
+# CONFIG_QUOTA is not set
+# CONFIG_QUOTACTL is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+CONFIG_GENERIC_ACL=y
+
+#
+# Caches
+#
+# CONFIG_FSCACHE is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_TMPFS_XATTR=y
+# CONFIG_HUGETLB_PAGE is not set
+# CONFIG_CONFIGFS_FS is not set
+CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_ECRYPT_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_LOGFS is not set
+CONFIG_CRAMFS=y
+# CONFIG_SQUASHFS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_OMFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_PSTORE is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+# CONFIG_NFS_V4_1 is not set
+CONFIG_ROOT_NFS=y
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+CONFIG_NFS_USE_KERNEL_DNS=y
+# CONFIG_NFS_USE_NEW_IDMAPPER is not set
+# CONFIG_NFSD is not set
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_ACL_SUPPORT=y
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+CONFIG_SUNRPC_GSS=y
+# CONFIG_CEPH_FS is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS 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 is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_BSD_DISKLABEL is not set
+# CONFIG_MINIX_SUBPARTITION is not set
+# CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL 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=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=y
+# 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 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+CONFIG_NLS_UTF8=y
+
+#
+# Kernel hacking
+#
+CONFIG_PRINTK_TIME=y
+CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
+CONFIG_ENABLE_WARN_DEPRECATED=y
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_FRAME_WARN=1024
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_STRIP_ASM_SYMS is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+CONFIG_DEBUG_FS=y
+# CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+# CONFIG_LOCKUP_DETECTOR is not set
+# CONFIG_HARDLOCKUP_DETECTOR is not set
+# CONFIG_DETECT_HUNG_TASK is not set
+CONFIG_SCHED_DEBUG=y
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_TIMER_STATS is not set
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_DEBUG_SLAB is not set
+# CONFIG_DEBUG_KMEMLEAK is not set
+# CONFIG_DEBUG_PREEMPT is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_SPARSE_RCU_POINTER 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_STACKTRACE=y
+# CONFIG_DEBUG_STACK_USAGE 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_INFO_REDUCED is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_WRITECOUNT is not set
+# CONFIG_DEBUG_MEMORY_INIT is not set
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+CONFIG_RCU_CPU_STALL_TIMEOUT=60
+CONFIG_RCU_CPU_STALL_VERBOSE=y
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+# CONFIG_LKDTM is not set
+CONFIG_CPU_NOTIFIER_ERROR_INJECT=y
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_SYSCTL_SYSCALL_CHECK is not set
+# CONFIG_DEBUG_PAGEALLOC is not set
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
+CONFIG_TRACING_SUPPORT=y
+CONFIG_FTRACE=y
+# CONFIG_FUNCTION_TRACER is not set
+# CONFIG_IRQSOFF_TRACER is not set
+# CONFIG_PREEMPT_TRACER is not set
+# CONFIG_SCHED_TRACER is not set
+# CONFIG_ENABLE_DEFAULT_TRACERS 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 is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+CONFIG_DYNAMIC_DEBUG=y
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+# CONFIG_REGDUMP is not set
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_KGDB is not set
+# CONFIG_TEST_KSTRTOX is not set
+# CONFIG_STRICT_DEVMEM is not set
+CONFIG_ARM_UNWIND=y
+CONFIG_DEBUG_USER=y
+CONFIG_DEBUG_LL=y
+# CONFIG_EARLY_PRINTK is not set
+# CONFIG_DEBUG_ICEDCC is not set
+# CONFIG_OC_ETM is not set
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+# CONFIG_KEYS_DEBUG_PROC_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_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD=y
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_PCOMP2=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
+# CONFIG_CRYPTO_GF128MUL is not set
+# CONFIG_CRYPTO_NULL is not set
+# CONFIG_CRYPTO_PCRYPT is not set
+CONFIG_CRYPTO_WORKQUEUE=y
+# CONFIG_CRYPTO_CRYPTD is not set
+CONFIG_CRYPTO_AUTHENC=y
+# 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_SEQIV is not set
+
+#
+# Block modes
+#
+CONFIG_CRYPTO_CBC=y
+# CONFIG_CRYPTO_CTR is not set
+# CONFIG_CRYPTO_CTS is not set
+CONFIG_CRYPTO_ECB=y
+# CONFIG_CRYPTO_LRW is not set
+# CONFIG_CRYPTO_PCBC is not set
+# CONFIG_CRYPTO_XTS is not set
+
+#
+# Hash modes
+#
+CONFIG_CRYPTO_HMAC=y
+# CONFIG_CRYPTO_XCBC is not set
+# CONFIG_CRYPTO_VMAC is not set
+
+#
+# Digest
+#
+# CONFIG_CRYPTO_CRC32C is not set
+# CONFIG_CRYPTO_GHASH is not set
+# CONFIG_CRYPTO_MD4 is not set
+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=y
+# CONFIG_CRYPTO_SHA256 is not set
+# 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_AES_MV is not set
+# CONFIG_CRYPTO_ANUBIS is not set
+CONFIG_CRYPTO_ARC4=y
+# 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_SEED is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_TEA is not set
+CONFIG_CRYPTO_TWOFISH=y
+CONFIG_CRYPTO_TWOFISH_COMMON=y
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=y
+# CONFIG_CRYPTO_ZLIB is not set
+# CONFIG_CRYPTO_LZO is not set
+
+#
+# Random Number Generation
+#
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+# CONFIG_CRYPTO_USER_API_HASH is not set
+# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
+CONFIG_CRYPTO_HW=y
+# CONFIG_BINARY_PRINTF is not set
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+CONFIG_CRC_CCITT=y
+CONFIG_CRC16=y
+# CONFIG_CRC_T10DIF is not set
+# CONFIG_CRC_ITU_T is not set
+CONFIG_CRC32=y
+# CONFIG_CRC7 is not set
+# CONFIG_LIBCRC32C is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=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_GENERIC_ALLOCATOR=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
+CONFIG_CPU_RMAP=y
+CONFIG_NLATTR=y
+CONFIG_AVERAGE=y
diff --git a/debian.dajia/config/enforce b/debian.dajia/config/enforce
new file mode 100644
index 00000000000000..3bc7af86007e4b
--- /dev/null
+++ b/debian.dajia/config/enforce
@@ -0,0 +1,92 @@
+#
+# SECURITY items
+#
+# Ensure this option is enabled.
+value CONFIG_COMPAT_BRK n
+value CONFIG_DEVKMEM n
+value CONFIG_LSM_MMAP_MIN_ADDR 0
+value CONFIG_SECURITY y
+!exists CONFIG_SECURITY_FILE_CAPABILITIES | value CONFIG_SECURITY_FILE_CAPABILITIES y
+value CONFIG_SECURITY_SELINUX y
+value CONFIG_SECURITY_SMACK y
+value CONFIG_SECURITY_YAMA y
+value CONFIG_SYN_COOKIES y
+value CONFIG_DEFAULT_SECURITY_APPARMOR y
+# For architectures which support this option ensure it is enabled.
+!exists CONFIG_SECCOMP | value CONFIG_SECCOMP y
+!exists CONFIG_HAVE_SECCOMP_FILTER | value CONFIG_SECCOMP_FILTER y
+!exists CONFIG_CC_STACKPROTECTOR | value CONFIG_CC_STACKPROTECTOR y
+!exists CONFIG_DEBUG_RODATA | value CONFIG_DEBUG_RODATA y
+!exists CONFIG_DEBUG_SET_MODULE_RONX | value CONFIG_DEBUG_SET_MODULE_RONX y
+!exists CONFIG_STRICT_DEVMEM | value CONFIG_STRICT_DEVMEM y
+# For architectures which support this option ensure it is disabled.
+!exists CONFIG_COMPAT_VDSO | value CONFIG_COMPAT_VDSO n
+!exists CONFIG_ACPI_CUSTOM_METHOD | value CONFIG_ACPI_CUSTOM_METHOD n
+# Default to 32768 on ARM, 65536 for everything else.
+(arch armel armhf & value CONFIG_DEFAULT_MMAP_MIN_ADDR 32768) | \
+ (!arch armel armhf & value CONFIG_DEFAULT_MMAP_MIN_ADDR 65536)
+
+# CONFIG_USB_DEVICE_FS breaks udev USB firmware loading and is deprecated
+# ensure it is disabled.
+value CONFIG_USB_DEVICEFS n
+
+# upstart requires DEVTMPFS be enabled and mounted by default.
+value CONFIG_DEVTMPFS y
+value CONFIG_DEVTMPFS_MOUNT y
+
+# some /dev nodes require POSIX ACLs, like /dev/dsp
+value CONFIG_TMPFS_POSIX_ACL y
+
+# Ramdisk size should be a minimum of 64M
+value CONFIG_BLK_DEV_RAM_SIZE 65536
+
+# LVM requires dm_mod built in to activate correctly (LP: #560717)
+value CONFIG_BLK_DEV_DM y
+
+# sysfs: ensure all DEPRECATED items are off
+!exists CONFIG_SYSFS_DEPRECATED_V2 | value CONFIG_SYSFS_DEPRECATED_V2 n
+!exists CONFIG_SYSFS_DEPRECATED | value CONFIG_SYSFS_DEPRECATED n
+
+# automatically add local version will cause packaging failure
+value CONFIG_LOCALVERSION_AUTO n
+
+# provide framebuffer console form the start
+# UbuntuSpec:foundations-m-grub2-boot-framebuffer
+value CONFIG_FRAMEBUFFER_CONSOLE y
+
+# GRUB changes will rely on built in vesafb on x86,
+# UbuntuSpec:foundations-m-grub2-boot-framebuffer
+#(( arch i386 | arch amd64 ) & value CONFIG_FB_VESA y) | \
+# value CONFIG_FB_VESA m | !exists CONFIG_FB_VESA
+value CONFIG_FB_VESA m | !exists CONFIG_FB_VESA
+
+# Build in uinput module so that it's always available (LP: 584812)
+value CONFIG_INPUT_UINPUT y
+
+# upstart relies on getting all of the kernel arguments
+value CONFIG_INIT_PASS_ALL_PARAMS y
+
+# Enabling CONFIG_IMA is vastly expensive, ensure it is off
+value CONFIG_IMA n
+
+# Ensure CONFIG_INTEL_IDLE is turned off for -virtual.
+!exists CONFIG_INTEL_IDLE | \
+ (flavour virtual & value CONFIG_INTEL_IDLE n) | \
+ (!flavour virtual & value CONFIG_INTEL_IDLE y)
+
+# Ensure CONFIG_IPV6 is y, if this is a module we get a module load for
+# every ipv6 packet, bad.
+value CONFIG_IPV6 y
+
+# Ensure ECRYPT_FS is y as it cannot be autoloaded and it has complex
+# dependancies which can pull it =m at a whim.
+value CONFIG_ECRYPT_FS y
+
+# Ensure CONFIG_EFI_VARS is y as debian-installer relies on having
+# access to efivars when installing in EFI mode. See LP:837332
+value CONFIG_EFI_VARS y | !exists CONFIG_EFI_VARS
+
+# Ensure CONFIG_FAT_FS is y for arm, needed to ensure we able to replace
+# a kernel with the same version.
+(arch armel armhf & value CONFIG_FAT_FS y) | \
+ (!arch armel armhf & value CONFIG_FAT_FS m)
diff --git a/debian.dajia/control.d/flavour-control.stub b/debian.dajia/control.d/flavour-control.stub
new file mode 100644
index 00000000000000..be264cf9664797
--- /dev/null
+++ b/debian.dajia/control.d/flavour-control.stub
@@ -0,0 +1,98 @@
+# Items that get replaced:
+# FLAVOUR
+# DESC
+# ARCH
+# SUPPORTED
+# TARGET
+# BOOTLOADER
+# =PROVIDES=
+#
+# Items marked with =FOO= are optional
+#
+# This file describes the template for packages that are created for each flavour
+# in debian/control.d/vars.*
+#
+# This file gets edited in a couple of places. See the debian/control.stub rule in
+# debian/rules. PGGVER, ABINUM, and SRCPKGNAME are all converted in the
+# process of creating debian/control.
+#
+# The flavour specific strings (ARCH, DESC, etc) are converted using values from the various
+# flavour files in debian/control.d/vars.*
+#
+# XXX: Leave the blank line before the first package!!
+
+Package: linux-image-PKGVER-ABINUM-FLAVOUR
+Architecture: ARCH
+Section: admin
+Priority: optional
+Pre-Depends: dpkg (>= 1.10.24)
+Provides: linux-image, linux-image-3.0, fuse-module, =PROVIDES=
+Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3), crda (>=1.1.1-1ubuntu2) | wireless-crda
+Conflicts: hotplug (<< 0.0.20040105-1)
+Recommends: BOOTLOADER
+Suggests: fdutils, SRCPKGNAME-doc-PKGVER | SRCPKGNAME-source-PKGVER, SRCPKGNAME-tools
+Description: Linux kernel image for version PKGVER on DESC
+ This package contains the Linux kernel image for version PKGVER on
+ DESC.
+ .
+ Also includes the corresponding System.map file, the modules built by the
+ packager, and scripts that try to ensure that the system is not left in an
+ unbootable state after an update.
+ .
+ Supports SUPPORTED processors.
+ .
+ TARGET
+ .
+ You likely do not want to install this package directly. Instead, install
+ the linux-FLAVOUR meta-package, which will ensure that upgrades work
+ correctly, and that supporting packages are also installed.
+
+Package: linux-image-extra-PKGVER-ABINUM-FLAVOUR
+Architecture: ARCH
+Section: admin
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-PKGVER-ABINUM-FLAVOUR
+Description: Linux kernel image for version PKGVER on DESC
+ This package contains the Linux kernel image for version PKGVER on
+ DESC.
+ .
+ Also includes the corresponding System.map file, the modules built by the
+ packager, and scripts that try to ensure that the system is not left in an
+ unbootable state after an update.
+ .
+ Supports SUPPORTED processors.
+ .
+ TARGET
+ .
+ You likely do not want to install this package directly. Instead, install
+ the linux-FLAVOUR meta-package, which will ensure that upgrades work
+ correctly, and that supporting packages are also installed.
+
+Package: linux-headers-PKGVER-ABINUM-FLAVOUR
+Architecture: ARCH
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, SRCPKGNAME-headers-PKGVER-ABINUM, ${shlibs:Depends}
+Provides: SRCPKGNAME-headers, SRCPKGNAME-headers-3.0
+Description: Linux kernel headers for version PKGVER on DESC
+ This package provides kernel header files for version PKGVER on
+ DESC.
+ .
+ This is for sites that want the latest kernel headers. Please read
+ /usr/share/doc/SRCPKGNAME-headers-PKGVER-ABINUM/debian.README.gz for details.
+
+Package: linux-image-PKGVER-ABINUM-FLAVOUR-dbgsym
+Architecture: ARCH
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}
+Provides: linux-debug
+Description: Linux kernel debug image for version PKGVER on DESC
+ This package provides a kernel debug image for version PKGVER on
+ DESC.
+ .
+ This is for sites that wish to debug the kernel.
+ .
+ The kernel image contained in this package is NOT meant to boot from. It
+ is uncompressed, and unstripped. This package also includes the
+ unstripped modules.
diff --git a/debian.dajia/control.d/vars.dajia b/debian.dajia/control.d/vars.dajia
new file mode 100644
index 00000000000000..d12a61397da1f2
--- /dev/null
+++ b/debian.dajia/control.d/vars.dajia
@@ -0,0 +1,8 @@
+arch="armel armhf"
+supported="MARVELL PXA2128"
+desc="MARVELL PXA2128-based systems"
+target="Targeted towards Dajia project"
+bootloader="flash-kernel"
+provides=""
+section_image="universe/base"
+do_debug="Yes"
diff --git a/debian.dajia/control.stub.in b/debian.dajia/control.stub.in
new file mode 100644
index 00000000000000..bcd548a9de7266
--- /dev/null
+++ b/debian.dajia/control.stub.in
@@ -0,0 +1,44 @@
+Source: SRCPKGNAME
+Section: devel
+Priority: optional
+Maintainer: Ubuntu Kernel Team <kernel-team@lists.ubuntu.com>
+Standards-Version: 3.8.4.0
+Build-Depends: debhelper (>= 5), cpio, module-init-tools, kernel-wedge (>= 2.24ubuntu1), makedumpfile [amd64 i386], device-tree-compiler [powerpc], libelf-dev, binutils-dev, rsync, libdw-dev, dpkg (>= 1.16.0~ubuntu4), util-linux
+Build-Depends-Indep: xmlto, docbook-utils, ghostscript, transfig, bzip2, sharutils, asciidoc
+Build-Conflicts: findutils (= 4.4.1-1ubuntu1)
+Vcs-Git: http://kernel.ubuntu.com/git-repos/ubuntu/ubuntu-precise.git
+
+Package: linux-headers-PKGVER-ABINUM
+Architecture: armel armhf
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0)
+Provides: SRCPKGNAME-headers, SRCPKGNAME-headers-3
+Description: Header files related to Linux kernel version PKGVER
+ This package provides kernel header files for version PKGVER, for sites
+ that want the latest kernel headers. Please read
+ /usr/share/doc/SRCPKGNAME-headers-PKGVER-ABINUM/debian.README.gz for details
+
+Package: SRCPKGNAME-libc-dev
+Architecture: armel armhf
+Depends: ${misc:Depends}
+Conflicts: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), amd64-libs-dev (<= 1.1), SRCPKGNAME-kernel-headers
+Replaces: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), SRCPKGNAME-kernel-headers, libdrm-dev
+Provides: SRCPKGNAME-kernel-headers
+Multi-Arch: same
+Description: Linux Kernel Headers for development
+ This package provides headers from the Linux kernel. These headers
+ are used by the installed headers for GNU glibc and other system
+ libraries. They are NOT meant to be used to build third-party modules for
+ your kernel. Use SRCPKGNAME-headers-* packages for that.
+
+Package: linux-tools-PKGVER-ABINUM
+Architecture: armel armhf
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common
+Description: Linux kernel tools for version PKGVER-ABINUM
+ This package provides the architecture dependant parts for kernel
+ version locked tools for version PKGVER-ABINUM on
+ DESC.
+
diff --git a/debian.dajia/copyright b/debian.dajia/copyright
new file mode 100644
index 00000000000000..d1d04a6d669749
--- /dev/null
+++ b/debian.dajia/copyright
@@ -0,0 +1,29 @@
+This is the Ubuntu prepackaged version of the Linux kernel.
+Linux was written by Linus Torvalds <Linus.Torvalds@cs.Helsinki.FI>
+and others.
+
+This package was put together by the Ubuntu Kernel Team, from
+sources retrieved from upstream linux git.
+The sources may be found at most Linux ftp sites, including
+ftp://ftp.kernel.org/pub/linux/kernel/
+
+This package is currently maintained by the
+Ubuntu Kernel Team <ubuntu-kernel@lists.ubuntu.com>
+
+Linux is copyrighted by Linus Torvalds and others.
+
+ 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; version 2 dated June, 1991.
+
+ 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+On Ubuntu Linux systems, the complete text of the GNU General
+Public License v2 can be found in `/usr/share/common-licenses/GPL-2'.
diff --git a/debian.dajia/d-i/exclude-firmware.armel-dajia b/debian.dajia/d-i/exclude-firmware.armel-dajia
new file mode 100644
index 00000000000000..ddb5eb867b2e95
--- /dev/null
+++ b/debian.dajia/d-i/exclude-firmware.armel-dajia
@@ -0,0 +1,2 @@
+nic-modules
+scsi-modules
diff --git a/debian.dajia/d-i/exclude-firmware.armhf-dajia b/debian.dajia/d-i/exclude-firmware.armhf-dajia
new file mode 100644
index 00000000000000..ddb5eb867b2e95
--- /dev/null
+++ b/debian.dajia/d-i/exclude-firmware.armhf-dajia
@@ -0,0 +1,2 @@
+nic-modules
+scsi-modules
diff --git a/debian.dajia/d-i/exclude-modules.armel-dajia b/debian.dajia/d-i/exclude-modules.armel-dajia
new file mode 100644
index 00000000000000..39ab95b3a51820
--- /dev/null
+++ b/debian.dajia/d-i/exclude-modules.armel-dajia
@@ -0,0 +1,10 @@
+serial-modules
+firewire-core-modules
+floppy-modules
+pcmcia-storage-modules
+fb-modules
+nic-pcmcia-modules
+pcmcia-modules
+pata-modules
+message-modules
+virtio-modules
diff --git a/debian.dajia/d-i/exclude-modules.armhf-dajia b/debian.dajia/d-i/exclude-modules.armhf-dajia
new file mode 100644
index 00000000000000..39ab95b3a51820
--- /dev/null
+++ b/debian.dajia/d-i/exclude-modules.armhf-dajia
@@ -0,0 +1,10 @@
+serial-modules
+firewire-core-modules
+floppy-modules
+pcmcia-storage-modules
+fb-modules
+nic-pcmcia-modules
+pcmcia-modules
+pata-modules
+message-modules
+virtio-modules
diff --git a/debian.dajia/d-i/firmware/README.txt b/debian.dajia/d-i/firmware/README.txt
new file mode 100644
index 00000000000000..27a8600bc0f88a
--- /dev/null
+++ b/debian.dajia/d-i/firmware/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
diff --git a/debian.dajia/d-i/firmware/nic-modules b/debian.dajia/d-i/firmware/nic-modules
new file mode 100644
index 00000000000000..ef47d989f4078c
--- /dev/null
+++ b/debian.dajia/d-i/firmware/nic-modules
@@ -0,0 +1,8 @@
+e100/d101m_ucode.bin
+e100/d101s_ucode.bin
+e100/d102e_ucode.bin
+bnx2/bnx2-mips-06-6.2.1.fw
+bnx2/bnx2-mips-09-6.2.1a.fw
+bnx2/bnx2-rv2p-06-6.0.15.fw
+bnx2/bnx2-rv2p-09-6.0.17.fw
+bnx2/bnx2-rv2p-09ax-6.0.17.fw
diff --git a/debian.dajia/d-i/firmware/scsi-modules b/debian.dajia/d-i/firmware/scsi-modules
new file mode 100644
index 00000000000000..b089c7db8444fc
--- /dev/null
+++ b/debian.dajia/d-i/firmware/scsi-modules
@@ -0,0 +1,3 @@
+qlogic/1040.bin
+qlogic/12160.bin
+qlogic/1280.bin
diff --git a/debian.dajia/d-i/kernel-versions.in b/debian.dajia/d-i/kernel-versions.in
new file mode 100644
index 00000000000000..574f0d22007fad
--- /dev/null
+++ b/debian.dajia/d-i/kernel-versions.in
@@ -0,0 +1,16 @@
+# arch version flavour installedname suffix bdep
+amd64 PKGVER-ABINUM generic PKGVER-ABINUM-generic -
+amd64 PKGVER-ABINUM virtual PKGVER-ABINUM-virtual -
+
+i386 PKGVER-ABINUM generic PKGVER-ABINUM-generic -
+i386 PKGVER-ABINUM generic-pae PKGVER-ABINUM-generic-pae -
+i386 PKGVER-ABINUM virtual PKGVER-ABINUM-virtual -
+
+armel PKGVER-ABINUM omap PKGVER-ABINUM-omap -
+
+armhf PKGVER-ABINUM omap PKGVER-ABINUM-omap -
+
+# Ports
+# arch version flavour installedname suffix bdep
+powerpc PKGVER-ABINUM powerpc PKGVER-ABINUM-powerpc -
+powerpc PKGVER-ABINUM powerpc64-smp PKGVER-ABINUM-powerpc64-smp -
diff --git a/debian.dajia/d-i/modules-powerpc/block-modules b/debian.dajia/d-i/modules-powerpc/block-modules
new file mode 100644
index 00000000000000..cd95917c717a08
--- /dev/null
+++ b/debian.dajia/d-i/modules-powerpc/block-modules
@@ -0,0 +1,31 @@
+aoe
+aten
+bpck
+bpck6 ?
+cciss
+comm
+cpqarray ?
+DAC960
+dstr
+epat
+epia
+fit2
+fit3
+friq
+frpw
+kbic
+ktti
+nbd
+on20
+on26
+paride
+pcd
+pd
+pf
+pg
+ps3disk ?
+ps3vram ?
+pt
+sx8
+umem
+virtio_blk ?
diff --git a/debian.dajia/d-i/modules-powerpc/message-modules b/debian.dajia/d-i/modules-powerpc/message-modules
new file mode 100644
index 00000000000000..f318308f6214f0
--- /dev/null
+++ b/debian.dajia/d-i/modules-powerpc/message-modules
@@ -0,0 +1,13 @@
+mptbase
+mptctl
+mptfc
+mptlan
+mptsas
+mptscsih
+mptspi
+i2o_block
+i2o_bus
+i2o_config ?
+i2o_core
+i2o_proc
+i2o_scsi
diff --git a/debian.dajia/d-i/modules-powerpc/nic-modules b/debian.dajia/d-i/modules-powerpc/nic-modules
new file mode 100644
index 00000000000000..0e1310f5989fb6
--- /dev/null
+++ b/debian.dajia/d-i/modules-powerpc/nic-modules
@@ -0,0 +1,152 @@
+3c359 ?
+3c501 ?
+3c503 ?
+3c505 ?
+3c507 ?
+3c509 ?
+3c515 ?
+3c523 ?
+3c527 ?
+3c59x ?
+8139cp ?
+8139too ?
+82596 ?
+abyss ?
+ac3200 ?
+adm8211 ?
+airo ?
+airport ?
+amd8111e ?
+arc4 ?
+arcnet ?
+arc-rawmode ?
+arc-rimi ?
+arlan ?
+at1700 ?
+atl1 ?
+atl1e ?
+atl2 ?
+atmel ?
+atmel_pci ?
+b44 ?
+bcm43xx ?
+bcm43xx-mac80211 ?
+bmac ?
+bnx2 ?
+bnx2x ?
+bonding ?
+cassini ?
+com20020 ?
+com20020-pci ?
+com90io ?
+com90xx ?
+cs89x0 ?
+de2104x ?
+de4x5 ?
+de600 ?
+de620 ?
+defxx ?
+depca ?
+dl2k ?
+dmfe ?
+dummy ?
+e100 ?
+e1000 ?
+e1000e ?
+e2100 ?
+eepro ?
+eepro100 ?
+eexpress ?
+epic100 ?
+eql ?
+es3210 ?
+eth16i ?
+ewrk3 ?
+fealnx ?
+forcedeth ?
+igb ?
+hamachi ?
+hermes ?
+hp ?
+hp100 ?
+hp-plus ?
+ibmtr ?
+ipddp ?
+ipw2100 ?
+ipw2200 ?
+ipw3945 ?
+ixgb ?
+lance ?
+lanstreamer ?
+lasi_82596 ?
+lne390 ?
+lp486e ?
+mace ?
+mv643xx_eth ?
+myri_sbus ?
+natsemi ?
+ne ?
+ne2 ?
+ne2k-pci ?
+ne3210 ?
+netconsole ?
+netxen_nic ?
+ni5010 ?
+ni52 ?
+ni65 ?
+niu ?
+ns83820 ?
+olympic ?
+orinoco ?
+orinoco_pci ?
+orinoco_plx ?
+orinoco_tmd ?
+pcnet32 ?
+prism54 ?
+ps3_gelic ?
+r8169 ?
+rate_control ?
+rfc1051 ?
+rfc1201 ?
+rrunner ?
+rt2400 ?
+rt2500 ?
+rt61pci ?
+s2io ?
+shaper ?
+sis190 ?
+sis900 ?
+spidernet ?
+skfp ?
+skge ?
+sk98lin ?
+sky2 ?
+smc9194 ?
+smc-ultra ?
+smc-ultra32 ?
+starfire ?
+strip ?
+sunbmac ?
+sundance ?
+sungem ?
+sungem_phy ?
+sunhme ?
+sunlance ?
+sunqe ?
+sunvnet ?
+tg3 ?
+tlan ?
+tms380tr ?
+tmspci ?
+tulip ?
+tun ?
+typhoon ?
+uli526x ?
+via-rhine ?
+via-velocity ?
+virtio_net ?
+wavelan ?
+wd ?
+winbond-840 ?
+yellowfin ?
+znet ?
diff --git a/debian.dajia/d-i/modules-powerpc/scsi-modules b/debian.dajia/d-i/modules-powerpc/scsi-modules
new file mode 100644
index 00000000000000..ea54d0e49576b7
--- /dev/null
+++ b/debian.dajia/d-i/modules-powerpc/scsi-modules
@@ -0,0 +1,116 @@
+# SCSI
+raid_class ?
+scsi_transport_spi ?
+scsi_transport_fc ?
+scsi_transport_iscsi ?
+scsi_transport_sas ?
+iscsi_tcp ?
+libiscsi ?
+amiga7xx ?
+a3000 ?
+a2091 ?
+gvp11 ?
+mvme147 ?
+sgiwd93 ?
+cyberstorm ?
+cyberstormII ?
+blz2060 ?
+blz1230 ?
+fastlane ?
+oktagon_esp_mod ?
+atari_scsi ?
+mac_scsi ?
+mac_esp ?
+sun3_scsi ?
+mvme16x ?
+bvme6000 ?
+sim710 ?
+advansys ?
+psi240i ?
+BusLogic ?
+dpt_i2o ?
+u14-34f ?
+ultrastor ?
+aha152x ?
+aha1542 ?
+aha1740 ?
+aic7xxx_old ?
+ips ?
+fd_mcs ?
+fdomain ?
+in2000 ?
+g_NCR5380 ?
+g_NCR5380_mmio ?
+NCR53c406a ?
+NCR_D700 ?
+NCR_Q720_mod ?
+sym53c416 ?
+qlogicfas408 ?
+qla1280 ?
+pas16 ?
+seagate ?
+seagate ?
+t128 ?
+dmx3191d ?
+dtc ?
+zalon7xx ?
+eata_pio ?
+wd7000 ?
+mca_53c9x ?
+ibmmca ?
+eata ?
+dc395x ?
+tmscsim ?
+megaraid ?
+atp870u ?
+esp ?
+gdth ?
+initio ?
+a100u2w ?
+qlogicpti ?
+ide-scsi ?
+mesh ?
+mac53c94 ?
+pluto ?
+dec_esp ?
+3w-xxxx ?
+3w-9xxx ?
+ppa ?
+imm ?
+jazz_esp ?
+sun3x_esp ?
+fcal ?
+lasi700 ?
+nsp32 ?
+ipr ?
+hptiop ?
+stex ?
+osst ?
+sg ?
+ch ?
+scsi_debug ?
+aacraid ?
+aic7xxx ?
+aic79xx ?
+aic94xx ?
+arcmsr ?
+acornscsi_mod ?
+arxescsi ?
+cumana_1 ?
+cumana_2 ?
+ecoscsi ?
+oak ?
+powertec ?
+eesox ?
+ibmvscsic ?
+libsas ?
+lpfc ?
+megaraid_mm ?
+megaraid_mbox ?
+megaraid_sas ?
+qla2xxx ?
+sym53c8xx ?
+qla4xxx ?
+mvsas ?
+sr_mod ?
+sd_mod ?
diff --git a/debian.dajia/d-i/modules-powerpc/storage-core-modules b/debian.dajia/d-i/modules-powerpc/storage-core-modules
new file mode 100644
index 00000000000000..de158a97412afd
--- /dev/null
+++ b/debian.dajia/d-i/modules-powerpc/storage-core-modules
@@ -0,0 +1,13 @@
+# Core stacks
+usb-storage ?
+
+# Block level
+
+# Loop modules
+cryptoloop
+
+# Needs to be here for better cdrom initrd layout
+isofs
+
+ps3stor_lib ?
+ps3rom ?
diff --git a/debian.dajia/d-i/modules-sparc/block-modules b/debian.dajia/d-i/modules-sparc/block-modules
new file mode 100644
index 00000000000000..da58241a221614
--- /dev/null
+++ b/debian.dajia/d-i/modules-sparc/block-modules
@@ -0,0 +1,9 @@
+aoe
+cciss
+comm
+cpqarray ?
+DAC960
+nbd
+sx8
+umem
+virtio_blk ?
diff --git a/debian.dajia/d-i/modules-sparc/message-modules b/debian.dajia/d-i/modules-sparc/message-modules
new file mode 100644
index 00000000000000..f318308f6214f0
--- /dev/null
+++ b/debian.dajia/d-i/modules-sparc/message-modules
@@ -0,0 +1,13 @@
+mptbase
+mptctl
+mptfc
+mptlan
+mptsas
+mptscsih
+mptspi
+i2o_block
+i2o_bus
+i2o_config ?
+i2o_core
+i2o_proc
+i2o_scsi
diff --git a/debian.dajia/d-i/modules/block-modules b/debian.dajia/d-i/modules/block-modules
new file mode 100644
index 00000000000000..49ac4063876e4c
--- /dev/null
+++ b/debian.dajia/d-i/modules/block-modules
@@ -0,0 +1,31 @@
+aoe ?
+aten ?
+bpck ?
+bpck6 ?
+cciss ?
+comm ?
+cpqarray ?
+DAC960 ?
+dstr ?
+epat ?
+epia ?
+fit2 ?
+fit3 ?
+friq ?
+frpw ?
+hpsa ?
+kbic ?
+ktti ?
+nbd ?
+on20 ?
+on26 ?
+paride ?
+pcd ?
+pd ?
+pf ?
+pg ?
+pt ?
+sx8 ?
+umem ?
+virtio_blk ?
+xen-blkfront ?
diff --git a/debian.dajia/d-i/modules/crypto-modules b/debian.dajia/d-i/modules/crypto-modules
new file mode 100644
index 00000000000000..b2f623a91e098e
--- /dev/null
+++ b/debian.dajia/d-i/modules/crypto-modules
@@ -0,0 +1,8 @@
+aes_generic ?
+blowfish ?
+twofish ?
+serpent ?
+sha256_generic ?
+cbc ?
+ecb ?
+crc32c ?
diff --git a/debian.dajia/d-i/modules/fat-modules b/debian.dajia/d-i/modules/fat-modules
new file mode 100644
index 00000000000000..0aa17c3810f0ff
--- /dev/null
+++ b/debian.dajia/d-i/modules/fat-modules
@@ -0,0 +1,7 @@
+fat ?
+vfat ?
+
+# Supporting modules ?
+nls_cp437 ?
+nls_iso8859-1 ?
+nls_utf8 ?
diff --git a/debian.dajia/d-i/modules/fb-modules b/debian.dajia/d-i/modules/fb-modules
new file mode 100644
index 00000000000000..eae829f89c7da4
--- /dev/null
+++ b/debian.dajia/d-i/modules/fb-modules
@@ -0,0 +1,3 @@
+fbcon ?
+vesafb ?
+vga16fb ?
diff --git a/debian.dajia/d-i/modules/firewire-core-modules b/debian.dajia/d-i/modules/firewire-core-modules
new file mode 100644
index 00000000000000..dbb92297368b49
--- /dev/null
+++ b/debian.dajia/d-i/modules/firewire-core-modules
@@ -0,0 +1,4 @@
+firewire-core ?
+firewire-ohci ?
+firewire-sbp2 ?
+firewire-net ?
diff --git a/debian.dajia/d-i/modules/floppy-modules b/debian.dajia/d-i/modules/floppy-modules
new file mode 100644
index 00000000000000..ca8d7ffed619dd
--- /dev/null
+++ b/debian.dajia/d-i/modules/floppy-modules
@@ -0,0 +1 @@
+floppy ?
diff --git a/debian.dajia/d-i/modules/fs-core-modules b/debian.dajia/d-i/modules/fs-core-modules
new file mode 100644
index 00000000000000..a9c75417984066
--- /dev/null
+++ b/debian.dajia/d-i/modules/fs-core-modules
@@ -0,0 +1,4 @@
+ext2 ?
+jfs ?
+reiserfs ?
+xfs ?
diff --git a/debian.dajia/d-i/modules/fs-secondary-modules b/debian.dajia/d-i/modules/fs-secondary-modules
new file mode 100644
index 00000000000000..db46bb75fc1a6d
--- /dev/null
+++ b/debian.dajia/d-i/modules/fs-secondary-modules
@@ -0,0 +1,5 @@
+btrfs ?
+fuse ?
+ntfs ?
+hfs ?
+hfsplus ?
diff --git a/debian.dajia/d-i/modules/input-modules b/debian.dajia/d-i/modules/input-modules
new file mode 100644
index 00000000000000..53a409dfb27bfe
--- /dev/null
+++ b/debian.dajia/d-i/modules/input-modules
@@ -0,0 +1,21 @@
+hid-a4tech ?
+hid-apple ?
+hid-belkin ?
+hid-bright ?
+hid-cherry ?
+hid-chicony ?
+hid-cypress ?
+hid-dell ?
+hid-ezkey ?
+hid-gyration ?
+hid-logitech ?
+hid-microsoft ?
+hid-monterey ?
+hid-petalynx ?
+hid-pl ?
+hid-samsung ?
+hid-sony ?
+hid-sunplus ?
+hid-tmff ?
+hid-zpff ?
+usbhid ?
diff --git a/debian.dajia/d-i/modules/irda-modules b/debian.dajia/d-i/modules/irda-modules
new file mode 100644
index 00000000000000..552e7a757c72a1
--- /dev/null
+++ b/debian.dajia/d-i/modules/irda-modules
@@ -0,0 +1,30 @@
+act200l-sir ?
+actisys-sir ?
+ali-ircc ?
+donauboe ?
+esi-sir ?
+girbil-sir ?
+ircomm ?
+ircomm-tty ?
+irda ?
+irda-usb ?
+irlan ?
+irnet ?
+irport ?
+irtty-sir ?
+kingsun-sir ?
+ks959-sir ?
+ksdazzle-sir ?
+litelink-sir ?
+ma600-sir ?
+mcp2120-sir ?
+mcs7780 ?
+nsc-ircc ?
+old_belkin-sir ?
+sir-dev ?
+smsc-ircc2 ?
+stir4200 ?
+tekram-sir ?
+via-ircc ?
+vlsi_ir ?
+w83977af_ir ?
diff --git a/debian.dajia/d-i/modules/md-modules b/debian.dajia/d-i/modules/md-modules
new file mode 100644
index 00000000000000..18d02149f7fcfb
--- /dev/null
+++ b/debian.dajia/d-i/modules/md-modules
@@ -0,0 +1,13 @@
+dm-crypt ?
+dm-zero ?
+faulty ?
+linear ?
+multipath ?
+raid0 ?
+raid1 ?
+raid10 ?
+raid456 ?
+
+# Extras
+dm-raid4-5 ?
+dm-loop ?
diff --git a/debian.dajia/d-i/modules/message-modules b/debian.dajia/d-i/modules/message-modules
new file mode 100644
index 00000000000000..505eea7bf92181
--- /dev/null
+++ b/debian.dajia/d-i/modules/message-modules
@@ -0,0 +1,14 @@
+mptbase ?
+mptctl ?
+mptfc ?
+mptlan ?
+mptsas ?
+mpt2sas ?
+mptscsih ?
+mptspi ?
+i2o_block ?
+i2o_bus ?
+i2o_config ?
+i2o_core ?
+i2o_proc ?
+i2o_scsi ?
diff --git a/debian.dajia/d-i/modules/mouse-modules b/debian.dajia/d-i/modules/mouse-modules
new file mode 100644
index 00000000000000..7b06256488b7fc
--- /dev/null
+++ b/debian.dajia/d-i/modules/mouse-modules
@@ -0,0 +1,2 @@
+psmouse ?
+usbmouse ?
diff --git a/debian.dajia/d-i/modules/nfs-modules b/debian.dajia/d-i/modules/nfs-modules
new file mode 100644
index 00000000000000..92ca0b56e6ff31
--- /dev/null
+++ b/debian.dajia/d-i/modules/nfs-modules
@@ -0,0 +1,4 @@
+nfs ?
+nfs_acl ?
+lockd ?
+sunrpc ?
diff --git a/debian.dajia/d-i/modules/nic-modules b/debian.dajia/d-i/modules/nic-modules
new file mode 100644
index 00000000000000..99e5ed299f8e65
--- /dev/null
+++ b/debian.dajia/d-i/modules/nic-modules
@@ -0,0 +1,164 @@
+3c359 ?
+3c501 ?
+3c503 ?
+3c505 ?
+3c507 ?
+3c509 ?
+3c515 ?
+3c523 ?
+3c527 ?
+3c59x ?
+8139cp ?
+8139too ?
+82596 ?
+abyss ?
+ac3200 ?
+adm8211 ?
+airo ?
+airport ?
+amd8111e ?
+arc4 ?
+arcnet ?
+arc-rawmode ?
+arc-rimi ?
+arlan ?
+at1700 ?
+ath5k ?
+ath9k ?
+ath9k_htc ?
+atl1 ?
+atl1c ?
+atl1e ?
+atl2 ?
+atmel ?
+atmel_pci ?
+b44 ?
+bcm43xx ?
+bcm43xx-mac80211 ?
+be2net ?
+bmac ?
+bnx2 ?
+bnx2x ?
+bonding ?
+cassini ?
+com20020 ?
+com20020-pci ?
+com90io ?
+com90xx ?
+cs89x0 ?
+de2104x ?
+de4x5 ?
+de600 ?
+de620 ?
+defxx ?
+depca ?
+dl2k ?
+dmfe ?
+dummy ?
+e100 ?
+e1000 ?
+e1000e ?
+e2100 ?
+eepro ?
+eepro100 ?
+eexpress ?
+enic ?
+epic100 ?
+eql ?
+es3210 ?
+eth16i ?
+ewrk3 ?
+fealnx ?
+forcedeth ?
+igb ?
+ps3_gelic ?
+hamachi ?
+hermes ?
+hp ?
+hp100 ?
+hp-plus ?
+ibmtr ?
+ipddp ?
+ipw2100 ?
+ipw2200 ?
+ipw3945 ?
+ixgb ?
+ixgbe ?
+lance ?
+lanstreamer ?
+lasi_82596 ?
+lne390 ?
+lp486e ?
+mace ?
+mv643xx_eth ?
+myri_sbus ?
+natsemi ?
+ne ?
+ne2 ?
+ne2k-pci ?
+ne3210 ?
+netconsole ?
+netxen_nic ?
+ni5010 ?
+ni52 ?
+ni65 ?
+niu ?
+ns83820 ?
+olympic ?
+orinoco ?
+orinoco_pci ?
+orinoco_plx ?
+orinoco_tmd ?
+pcnet32 ?
+prism54 ?
+r8169 ?
+rate_control ?
+rfc1051 ?
+rfc1201 ?
+rrunner ?
+rt2400 ?
+rt2400pci ?
+rt2500 ?
+rt2500pci ?
+rt2800pci ?
+rt61pci ?
+s2io ?
+shaper ?
+sis190 ?
+sis900 ?
+spidernet ?
+skfp ?
+skge ?
+sk98lin ?
+sky2 ?
+smc9194 ?
+smc-ultra ?
+smc-ultra32 ?
+starfire ?
+strip ?
+sunbmac ?
+sundance ?
+sungem ?
+sungem_phy ?
+sunhme ?
+sunlance ?
+sunqe ?
+sunvnet ?
+tg3 ?
+tlan ?
+tms380tr ?
+tmspci ?
+tulip ?
+tun ?
+typhoon ?
+uli526x ?
+via-rhine ?
+via-velocity ?
+virtio_net ?
+wavelan ?
+wd ?
+winbond-840 ?
+yellowfin ?
+znet ?
+vmxnet3 ?
+xen-netfront ?
diff --git a/debian.dajia/d-i/modules/nic-pcmcia-modules b/debian.dajia/d-i/modules/nic-pcmcia-modules
new file mode 100644
index 00000000000000..191687536f32e4
--- /dev/null
+++ b/debian.dajia/d-i/modules/nic-pcmcia-modules
@@ -0,0 +1,19 @@
+3c574_cs ?
+3c589_cs ?
+airo_cs ?
+atmel_cs ?
+axnet_cs ?
+com20020_cs ?
+fmvj18x_cs ?
+ibmtr_cs ?
+netwave_cs ?
+nmclan_cs ?
+orinoco_cs ?
+pcnet_cs ?
+ray_cs ?
+smc91c92_cs ?
+wavelan_cs ?
+wl3501_cs ?
+xirc2ps_cs ?
+xircom_cb ?
+xircom_tulip_cb ?
diff --git a/debian.dajia/d-i/modules/nic-shared-modules b/debian.dajia/d-i/modules/nic-shared-modules
new file mode 100644
index 00000000000000..0ee15aab43454b
--- /dev/null
+++ b/debian.dajia/d-i/modules/nic-shared-modules
@@ -0,0 +1,26 @@
+# PHY
+8390 ?
+mii ?
+
+# CRC modules
+crc-ccitt ?
+crc-itu-t ?
+libcrc32c ?
+
+# mac80211 stuff
+mac80211 ?
+cfg80211 ?
+
+# rt2x00 lib (since rt2x00 is split across usb/pci/cb
+rt2x00lib ?
+rt2800lib ?
+
+# Atheros library (since drivers are split across nic-modules/nic-usb-modules)
+ath ?
+
+# Wireless 802.11 modules
+lib80211 ?
+cfg80211 ?
+lib80211_crypt_ccmp ?
+lib80211_crypt_tkip ?
+lib80211_crypt_wep ?
diff --git a/debian.dajia/d-i/modules/nic-usb-modules b/debian.dajia/d-i/modules/nic-usb-modules
new file mode 100644
index 00000000000000..06a40f9a93f2c6
--- /dev/null
+++ b/debian.dajia/d-i/modules/nic-usb-modules
@@ -0,0 +1,30 @@
+catc ?
+kaweth ?
+pegasus ?
+prism2_usb ?
+rtl8150 ?
+usbnet ?
+zd1211rw ?
+zd1201 ?
+rt2500usb ?
+rt73usb ?
+rt2570 ?
+rt2800usb ?
+rt2x00usb ?
+cdc_ether ?
+asix ?
+cdc_eem ?
+cdc_ether ?
+cdc-phonet ?
+cdc_subset ?
+dm9601 ?
+gl620a ?
+hso ?
+int51x1 ?
+mcs7830 ?
+net1080 ?
+plusb ?
+rndis_host ?
+smsc95xx ?
+zaurus ?
+carl9170 ?
diff --git a/debian.dajia/d-i/modules/parport-modules b/debian.dajia/d-i/modules/parport-modules
new file mode 100644
index 00000000000000..75fe0b927c7db3
--- /dev/null
+++ b/debian.dajia/d-i/modules/parport-modules
@@ -0,0 +1,2 @@
+parport ?
+parport_pc ?
diff --git a/debian.dajia/d-i/modules/pata-modules b/debian.dajia/d-i/modules/pata-modules
new file mode 100644
index 00000000000000..a58c30a89caa6f
--- /dev/null
+++ b/debian.dajia/d-i/modules/pata-modules
@@ -0,0 +1,47 @@
+pata_ali.ko ?
+pata_amd.ko ?
+pata_artop.ko ?
+pata_atiixp.ko ?
+pata_atp867x.ko ?
+pata_cmd640.ko ?
+pata_cmd64x.ko ?
+pata_cs5520.ko ?
+pata_cs5530.ko ?
+pata_cs5535.ko ?
+pata_cs5536.ko ?
+pata_cypress.ko ?
+pata_efar.ko ?
+pata_hpt366.ko ?
+pata_hpt37x.ko ?
+pata_hpt3x2n.ko ?
+pata_hpt3x3.ko ?
+pata_isapnp.ko ?
+pata_it8213.ko ?
+pata_it821x.ko ?
+pata_jmicron.ko ?
+pata_legacy.ko ?
+pata_macio.ko ?
+pata_marvell.ko ?
+pata_mpiix.ko ?
+pata_netcell.ko ?
+pata_ninja32.ko ?
+pata_ns87410.ko ?
+pata_ns87415.ko ?
+pata_oldpiix.ko ?
+pata_optidma.ko ?
+pata_opti.ko ?
+pata_pcmcia.ko ?
+pata_pdc2027x.ko ?
+pata_pdc202xx_old.ko ?
+pata_qdi.ko ?
+pata_radisys.ko ?
+pata_rdc.ko ?
+pata_rz1000.ko ?
+pata_sc1200.ko ?
+pata_sch.ko ?
+pata_serverworks.ko ?
+pata_sil680.ko ?
+pata_sl82c105.ko ?
+pata_triflex.ko ?
+pata_via.ko ?
+pata_winbond.ko ?
diff --git a/debian.dajia/d-i/modules/pcmcia-modules b/debian.dajia/d-i/modules/pcmcia-modules
new file mode 100644
index 00000000000000..06a50311d5c3d4
--- /dev/null
+++ b/debian.dajia/d-i/modules/pcmcia-modules
@@ -0,0 +1,8 @@
+i82092 ?
+i82365 ?
+pcmcia ?
+pcmcia_core ?
+pd6729 ?
+rsrc_nonstatic ?
+tcic ?
+yenta_socket ?
diff --git a/debian.dajia/d-i/modules/pcmcia-storage-modules b/debian.dajia/d-i/modules/pcmcia-storage-modules
new file mode 100644
index 00000000000000..bb042a648afaf6
--- /dev/null
+++ b/debian.dajia/d-i/modules/pcmcia-storage-modules
@@ -0,0 +1,6 @@
+pata_pcmcia ?
+qlogic_cs ?
+fdomain_cs ?
+aha152x_cs ?
+nsp_cs ?
+sym53c500_cs ?
diff --git a/debian.dajia/d-i/modules/plip-modules b/debian.dajia/d-i/modules/plip-modules
new file mode 100644
index 00000000000000..446e2bd33502a4
--- /dev/null
+++ b/debian.dajia/d-i/modules/plip-modules
@@ -0,0 +1 @@
+plip ?
diff --git a/debian.dajia/d-i/modules/ppp-modules b/debian.dajia/d-i/modules/ppp-modules
new file mode 100644
index 00000000000000..d4f6a923e20c12
--- /dev/null
+++ b/debian.dajia/d-i/modules/ppp-modules
@@ -0,0 +1,6 @@
+ppp_async ?
+ppp_deflate ?
+ppp_mppe ?
+pppoe ?
+pppox ?
+ppp_synctty ?
diff --git a/debian.dajia/d-i/modules/sata-modules b/debian.dajia/d-i/modules/sata-modules
new file mode 100644
index 00000000000000..55a260e451d548
--- /dev/null
+++ b/debian.dajia/d-i/modules/sata-modules
@@ -0,0 +1,13 @@
+sata_inic162x.ko ?
+sata_mv.ko ?
+sata_nv.ko ?
+sata_promise.ko ?
+sata_qstor.ko ?
+sata_sil24.ko ?
+sata_sil.ko ?
+sata_sis.ko ?
+sata_svw.ko ?
+sata_sx4.ko ?
+sata_uli.ko ?
+sata_via.ko ?
+sata_vsc.ko ?
diff --git a/debian.dajia/d-i/modules/scsi-modules b/debian.dajia/d-i/modules/scsi-modules
new file mode 100644
index 00000000000000..3a29e81c4132e3
--- /dev/null
+++ b/debian.dajia/d-i/modules/scsi-modules
@@ -0,0 +1,118 @@
+# SCSI
+raid_class ?
+scsi_transport_spi ?
+scsi_transport_fc ?
+scsi_transport_iscsi ?
+scsi_transport_sas ?
+iscsi_tcp ?
+libiscsi ?
+amiga7xx ?
+a3000 ?
+a2091 ?
+gvp11 ?
+mvme147 ?
+sgiwd93 ?
+cyberstorm ?
+cyberstormII ?
+blz2060 ?
+blz1230 ?
+fastlane ?
+oktagon_esp_mod ?
+atari_scsi ?
+mac_scsi ?
+mac_esp ?
+sun3_scsi ?
+mvme16x ?
+bvme6000 ?
+sim710 ?
+advansys ?
+psi240i ?
+BusLogic ?
+dpt_i2o ?
+u14-34f ?
+ultrastor ?
+aha152x ?
+aha1542 ?
+aha1740 ?
+aic7xxx_old ?
+ips ?
+fd_mcs ?
+fdomain ?
+fnic ?
+in2000 ?
+g_NCR5380 ?
+g_NCR5380_mmio ?
+NCR53c406a ?
+NCR_D700 ?
+NCR_Q720_mod ?
+sym53c416 ?
+qlogicfas408 ?
+qla1280 ?
+pas16 ?
+seagate ?
+seagate ?
+t128 ?
+dmx3191d ?
+dtc ?
+zalon7xx ?
+eata_pio ?
+wd7000 ?
+mca_53c9x ?
+ibmmca ?
+eata ?
+dc395x ?
+tmscsim ?
+megaraid ?
+atp870u ?
+esp ?
+gdth ?
+initio ?
+a100u2w ?
+qlogicpti ?
+ide-scsi ?
+mesh ?
+mac53c94 ?
+pluto ?
+dec_esp ?
+3w-xxxx ?
+3w-9xxx ?
+ppa ?
+imm ?
+jazz_esp ?
+sun3x_esp ?
+fcal ?
+lasi700 ?
+nsp32 ?
+ipr ?
+hptiop ?
+stex ?
+osst ?
+sg ?
+ch ?
+scsi_debug ?
+aacraid ?
+aic7xxx ?
+aic79xx ?
+aic94xx ?
+arcmsr ?
+acornscsi_mod ?
+arxescsi ?
+cumana_1 ?
+cumana_2 ?
+ecoscsi ?
+oak ?
+powertec ?
+eesox ?
+ibmvscsic ?
+libsas ?
+lpfc ?
+megaraid_mm ?
+megaraid_mbox ?
+megaraid_sas ?
+qla2xxx ?
+sym53c8xx ?
+qla4xxx ?
+mvsas ?
+vmw_pvscsi ?
+ums-cypress ?
+be2iscsi ?
diff --git a/debian.dajia/d-i/modules/serial-modules b/debian.dajia/d-i/modules/serial-modules
new file mode 100644
index 00000000000000..81ef801affecb2
--- /dev/null
+++ b/debian.dajia/d-i/modules/serial-modules
@@ -0,0 +1,3 @@
+generic_serial ?
+serial_cs ?
+synclink_cs ?
diff --git a/debian.dajia/d-i/modules/speakup-modules b/debian.dajia/d-i/modules/speakup-modules
new file mode 100644
index 00000000000000..c3bef915ef7ab7
--- /dev/null
+++ b/debian.dajia/d-i/modules/speakup-modules
@@ -0,0 +1,16 @@
+speakup ?
+speakup_acntpc ?
+speakup_acntsa ?
+speakup_apollo ?
+speakup_audptr ?
+speakup_bns ?
+speakup_decext ?
+speakup_dectlk ?
+speakup_dtlk ?
+speakup_dummy ?
+speakup_keypc ?
+speakup_ltlk ?
+speakup_soft ?
+speakup_spkout ?
+speakup_txprt ?
+speakup_decpc ?
diff --git a/debian.dajia/d-i/modules/squashfs-modules b/debian.dajia/d-i/modules/squashfs-modules
new file mode 100644
index 00000000000000..b0c5ed0a164b63
--- /dev/null
+++ b/debian.dajia/d-i/modules/squashfs-modules
@@ -0,0 +1 @@
+squashfs ?
diff --git a/debian.dajia/d-i/modules/storage-core-modules b/debian.dajia/d-i/modules/storage-core-modules
new file mode 100644
index 00000000000000..2abfc068a4d38b
--- /dev/null
+++ b/debian.dajia/d-i/modules/storage-core-modules
@@ -0,0 +1,10 @@
+# Core stacks
+usb-storage ?
+
+# Block level
+
+# Loop modules
+cryptoloop ?
+
+# Needs to be here for better cdrom initrd layout
+isofs ?
diff --git a/debian.dajia/d-i/modules/usb-modules b/debian.dajia/d-i/modules/usb-modules
new file mode 100644
index 00000000000000..8e245c263f4bad
--- /dev/null
+++ b/debian.dajia/d-i/modules/usb-modules
@@ -0,0 +1,9 @@
+ehci-hcd ?
+isp116x-hcd ?
+isp1760 ?
+ohci-hcd ?
+r8a66597-hcd ?
+sl811_cs ?
+sl811-hcd ?
+u132-hcd ?
+uhci-hcd ?
diff --git a/debian.dajia/d-i/modules/virtio-modules b/debian.dajia/d-i/modules/virtio-modules
new file mode 100644
index 00000000000000..270e6ab24d04f4
--- /dev/null
+++ b/debian.dajia/d-i/modules/virtio-modules
@@ -0,0 +1,4 @@
+virtio_balloon ?
+virtio_pci ?
+virtio_ring ?
+virtio-rng ?
diff --git a/debian.dajia/d-i/modules/vlan-modules b/debian.dajia/d-i/modules/vlan-modules
new file mode 100644
index 00000000000000..3d65a5592b5a6a
--- /dev/null
+++ b/debian.dajia/d-i/modules/vlan-modules
@@ -0,0 +1,3 @@
+slp ?
+garp ?
+8021q ?
diff --git a/debian.dajia/d-i/package-list b/debian.dajia/d-i/package-list
new file mode 100644
index 00000000000000..d19d5138badc82
--- /dev/null
+++ b/debian.dajia/d-i/package-list
@@ -0,0 +1,185 @@
+Package: kernel-image
+
+Package: fat-modules
+Depends: kernel-image
+Priority: standard
+Description: FAT filesystem support
+ This includes Windows FAT and VFAT support.
+
+Package: fb-modules
+Depends: kernel-image
+Priority: standard
+Description: Framebuffer modules
+
+Package: firewire-core-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: Firewire (IEEE-1394) Support
+
+Package: floppy-modules
+Depends: kernel-image
+Priority: standard
+Description: Floppy driver support
+
+Package: fs-core-modules
+Depends: kernel-image
+Priority: standard
+Provides: jfs-modules, reiserfs-modules, xfs-modules
+Description: Base filesystem modules
+ This includes jfs, reiserfs and xfs.
+
+Package: fs-secondary-modules
+Depends: kernel-image, fat-modules
+Priority: standard
+Provides: ntfs-modules, hfs-modules
+Description: Extra filesystem modules
+ This includes support for Windows NTFS and MacOS HFS/HFSPlus
+
+Package: input-modules
+Depends: kernel-image, usb-modules
+Priority: standard
+Description: Support for various input methods
+
+Package: irda-modules
+Depends: kernel-image, nic-shared-modules
+Priority: standard
+Description: Support for Infrared protocols
+
+Package: md-modules
+Depends: kernel-image
+Priority: standard
+Description: Multi-device support (raid, device-mapper, lvm)
+
+Package: nic-modules
+Depends: kernel-image, nic-shared-modules, virtio-modules
+Priority: standard
+Description: Network interface support
+
+Package: nic-pcmcia-modules
+Depends: kernel-image, nic-shared-modules, nic-modules
+Priority: standard
+Description: PCMCIA network interface support
+
+Package: nic-usb-modules
+Depends: kernel-image, nic-shared-modules, usb-modules
+Priority: standard
+Description: USB network interface support
+
+Package: nic-shared-modules
+Depends: kernel-image, crypto-modules
+Priority: standard
+Description: nic shared modules
+ This package contains modules which support nic modules
+
+Package: parport-modules
+Depends: kernel-image
+Priority: standard
+Description: Parallel port support
+
+Package: pata-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: PATA support modules
+
+Package: pcmcia-modules
+Depends: kernel-image
+Priority: standard
+Description: PCMCIA Modules
+
+Package: pcmcia-storage-modules
+Depends: kernel-image, scsi-modules
+Priority: standard
+Description: PCMCIA storage support
+
+Package: plip-modules
+Depends: kernel-image, nic-shared-modules, parport-modules
+Priority: standard
+Description: PLIP (parallel port) networking support
+
+Package: ppp-modules
+Depends: kernel-image, nic-shared-modules, serial-modules
+Priority: standard
+Description: PPP (serial port) networking support
+
+Package: sata-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: SATA storage support
+
+Package: scsi-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: SCSI storage support
+
+Package: serial-modules
+Depends: kernel-image
+Priority: standard
+Description: Serial port support
+
+Package: storage-core-modules
+Depends: kernel-image
+Priority: standard
+Provides: loop-modules
+Description: Core storage support
+ Includes core SCSI, LibATA, USB-Storage. Also includes related block
+ devices for CD, Disk and Tape medium (and IDE Floppy).
+
+Package: usb-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: Core USB support
+
+Package: nfs-modules
+Priority: standard
+Depends: kernel-image
+Description: NFS filesystem drivers
+ Includes the NFS client driver, and supporting modules.
+
+Package: block-modules
+Priority: standard
+Depends: kernel-image, storage-core-modules, parport-modules, virtio-modules
+Description: Block storage devices
+ This package contains the block storage devices, including DAC960 and
+ paraide.
+
+Package: message-modules
+Priority: standard
+Depends: kernel-image, storage-core-modules, scsi-modules
+Description: Fusion and i2o storage modules
+ This package containes the fusion and i2o storage modules.
+
+Package: crypto-modules
+Priority: extra
+Depends: kernel-image
+Description: crypto modules
+ This package contains crypto modules.
+
+Package: virtio-modules
+Priority: standard
+Depends: kernel-image
+Description: VirtIO Modules
+ Includes modules for VirtIO (virtual machine, generally kvm guests)
+
+Package: socket-modules
+Depends: kernel-image
+Priority: standard
+Description: Unix socket support
+
+Package: mouse-modules
+Depends: kernel-image, input-modules, usb-modules
+Priority: extra
+Description: Mouse support
+ This package contains mouse drivers for the Linux kernel.
+
+Package: squashfs-modules
+Depends: kernel-image
+Priority: extra
+Description: squashfs modules
+ This package contains squashfs modules.
+
+Package: vlan-modules
+Depends: kernel-image
+Priority: extra
+Description: vlan modules
+ This package contains vlan (8021.Q) modules.
+
diff --git a/debian.dajia/etc/getabis b/debian.dajia/etc/getabis
new file mode 100644
index 00000000000000..b0cc7fdddb41ac
--- /dev/null
+++ b/debian.dajia/etc/getabis
@@ -0,0 +1,7 @@
+repo_list=(
+ "http://ports.ubuntu.com/ubuntu-ports/pool/main/l/linux"
+ "http://ports.ubuntu.com/ubuntu-ports/pool/universe/l/linux"
+)
+
+getall armel dajia
+getall armhf dajia
diff --git a/debian.dajia/etc/kernelconfig b/debian.dajia/etc/kernelconfig
new file mode 100644
index 00000000000000..c0c905ad9cbe2b
--- /dev/null
+++ b/debian.dajia/etc/kernelconfig
@@ -0,0 +1,2 @@
+archs="armel armhf"
+family='ubuntu'
diff --git a/debian.dajia/rules.d/armel.mk b/debian.dajia/rules.d/armel.mk
new file mode 100644
index 00000000000000..8486e560ff1904
--- /dev/null
+++ b/debian.dajia/rules.d/armel.mk
@@ -0,0 +1,19 @@
+build_arch = arm
+header_arch = arm
+asm_link = arm
+defconfig = defconfig
+flavours = dajia
+build_image = zImage
+kernel_file = arch/$(build_arch)/boot/zImage
+install_file = vmlinuz
+no_dumpfile = true
+
+loader = grub
+
+do_doc_package = false
+do_source_package = false
+do_common_headers_indep = false
+do_libc_dev_package = false
+disable_d_i = true
+skipmodule = true
+do_tools = false
diff --git a/debian.dajia/rules.d/armhf.mk b/debian.dajia/rules.d/armhf.mk
new file mode 100644
index 00000000000000..14a47eebde1073
--- /dev/null
+++ b/debian.dajia/rules.d/armhf.mk
@@ -0,0 +1,19 @@
+build_arch = arm
+header_arch = arm
+asm_link = arm
+defconfig = defconfig
+flavours = dajia
+build_image = zImage
+kernel_file = arch/$(build_arch)/boot/zImage
+install_file = vmlinuz
+no_dumpfile = true
+
+loader = grub
+
+do_doc_package = false
+do_source_package = false
+do_common_headers_indep = false
+do_libc_dev_package = false
+disable_d_i = true
+skipmodule = true
+do_tools = false
diff --git a/debian/commit-templates/bumpabi b/debian/commit-templates/bumpabi
new file mode 100644
index 00000000000000..6c373c9726bc08
--- /dev/null
+++ b/debian/commit-templates/bumpabi
@@ -0,0 +1,3 @@
+UBUNTU: Bump ABI
+
+Ignore: yes
diff --git a/debian/commit-templates/config-updates b/debian/commit-templates/config-updates
new file mode 100644
index 00000000000000..4b62c299965c8d
--- /dev/null
+++ b/debian/commit-templates/config-updates
@@ -0,0 +1,15 @@
+#
+# This template is used for commit messages that don't need to
+# show up in debian/changelog. Administrative stuff like config
+# updates, ABI bumps, etc. Setting 'Ignore: yes' prevents
+# 'debian/rules insertchanges' from inserting this commit meesage
+# as a changelog entry.
+#
+# Please give a one-line description of the config change followed
+# by a detailed explanation if necessary
+
+UBUNTU: [Config] XXXX
+
+# BugLink: http://bugs.launchpad.net/bugs/<enter bug# here>
+# Ignore: yes
+# Other text below here.
diff --git a/debian/commit-templates/external-driver b/debian/commit-templates/external-driver
new file mode 100644
index 00000000000000..decdc897bdd66e
--- /dev/null
+++ b/debian/commit-templates/external-driver
@@ -0,0 +1,20 @@
+# Ubuntu external driver commit.
+#
+# NOTE: This gets reformatted for README.Ubuntu-External-Drivers and
+# debian/changelog.
+#
+# This is only needed when a driver is added, updated or removed. It is
+# not needed when patches or fixes are applied to the driver. If the
+# driver is being removed, add the line:
+#
+# Removing: yes
+#
+# to the commit, and you can remove all other tags (except UBUNTU:).
+#
+UBUNTU:
+
+ExternalDriver:
+Description:
+Url:
+Mask:
+Version:
diff --git a/debian/commit-templates/missing-modules b/debian/commit-templates/missing-modules
new file mode 100644
index 00000000000000..f4872e7568cdec
--- /dev/null
+++ b/debian/commit-templates/missing-modules
@@ -0,0 +1,3 @@
+UBUNTU: build/modules: Add modules that have intentionally gone missing
+
+Ignore: yes
diff --git a/debian/commit-templates/newrelease b/debian/commit-templates/newrelease
new file mode 100644
index 00000000000000..5f8931c40cd374
--- /dev/null
+++ b/debian/commit-templates/newrelease
@@ -0,0 +1,3 @@
+UBUNTU: Start new release
+
+Ignore: yes
diff --git a/debian/commit-templates/sauce-patch b/debian/commit-templates/sauce-patch
new file mode 100644
index 00000000000000..08720a8c20f20d
--- /dev/null
+++ b/debian/commit-templates/sauce-patch
@@ -0,0 +1,40 @@
+# Ubuntu commit template.
+#
+# NOTE: This gets reformatted for debian/changelog
+#
+#
+# SAUCE refers to the fact that this patch might not go upstream, but we need to
+# carry it to successive releases. In most cases you DONOT want to use this
+# template.
+#
+# An example of a SAUCE patch is the ACPI DSDT-in-initramfs patch which has been
+# refused upstream, but still provides useful functionality to users with broken
+# BIOSes.
+#
+#-------------------------------------------------------------------------
+#
+# The initial UBUNTU is a flag that this is an Ubuntu commit. It will be
+# referenced to the Author in the debian/changelog entry.
+#
+# The text following is the short message that will be placed in the
+# changelog. Extra text on the following lines will be ignored, but left
+# in the git commit. Lines with # will be ignored in the commit.
+#
+# OriginalAuthor allows for alternate attribution.
+#
+# OriginalLocation allows for a URL or description of where the patch came
+# from.
+#
+# BugLink is a URL to a Malone bug.
+#
+# Ignore: yes will keep this commit from showing up in the changelog.
+#
+UBUNTU: SAUCE:
+
+<Why is this patch not going upstream?>
+
+# OriginalAuthor:
+# OriginalLocation:
+# BugLink: http://bugs.launchpad.net/bugs/<enter bug# here>
+# Ignore: yes
+# Other text below here.
diff --git a/debian/commit-templates/upstream-patch b/debian/commit-templates/upstream-patch
new file mode 100644
index 00000000000000..671ab6a0921f08
--- /dev/null
+++ b/debian/commit-templates/upstream-patch
@@ -0,0 +1,27 @@
+# Ubuntu commit template.
+#
+# NOTE: This gets reformatted for debian/changelog
+#
+# The initial UBUNTU is a flag that this is an Ubuntu commit. It will be
+# referenced to the Author in the debian/changelog entry.
+#
+# The text following is the short message that will be placed in the
+# changelog. Extra text on the following lines will be ignored, but left
+# in the git commit. Lines with # will be ignored in the commit.
+#
+# OriginalAuthor allows for alternate attribution.
+#
+# OriginalLocation allows for a URL or description of where the patch came
+# from.
+#
+# BugLink is a URL to a Malone bug.
+#
+# Ignore: yes will keep this commit from showing up in the changelog.
+#
+UBUNTU: [Upstream]
+
+# OriginalAuthor:
+# OriginalLocation:
+# BugLink: http://bugs.launchpad.net/bugs/<enter bug# here>
+# Ignore: yes
+# Other text below here.
diff --git a/debian/compat b/debian/compat
new file mode 100644
index 00000000000000..7ed6ff82de6bcc
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+5
diff --git a/debian/control-scripts/headers-postinst b/debian/control-scripts/headers-postinst
new file mode 100644
index 00000000000000..2fb2be858a41d4
--- /dev/null
+++ b/debian/control-scripts/headers-postinst
@@ -0,0 +1,126 @@
+#!/usr/bin/perl
+# -*- Mode: Cperl -*-
+# debian.postinst ---
+# Author : Manoj Srivastava ( srivasta@pilgrim.umass.edu )
+# Created On : Sat Apr 27 05:42:43 1996
+# Created On Node : melkor.pilgrim.umass.edu
+# Last Modified By : Manoj Srivastava
+# Last Modified On : Sat Aug 5 13:20:22 2006
+# Last Machine Used: glaurung.internal.golden-gryphon.com
+# Update Count : 45
+# Status : Unknown, Use with caution!
+# HISTORY :
+# Description :
+#
+#
+#
+# arch-tag: 1c716174-2f0a-476d-a626-a1322e62503a
+#
+
+
+$|=1;
+
+# Predefined values:
+my $version = "=V";
+my $kimage = "=K";
+my $package_name = "linux-image-$version";
+
+
+# Ignore all invocations uxcept when called on to configure.
+exit 0 unless ($ARGV[0] && $ARGV[0] =~ /configure/);
+
+#known variables
+my $image_dest = "/";
+my $realimageloc = "/boot/";
+my $silent_modules = '';
+my $modules_base = '/lib/modules';
+my $CONF_LOC = '/etc/kernel-img.conf';
+# remove multiple leading slashes; make sure there is at least one.
+$realimageloc =~ s|^/*|/|o;
+$realimageloc =~ s|/+|/|o;
+
+chdir '/usr/src' or die "Could not chdir to /usr/src:$!";
+
+if (-r "$CONF_LOC" && -f "$CONF_LOC" ) {
+ if (open(CONF, "$CONF_LOC")) {
+ while (<CONF>) {
+ chomp;
+ s/\#.*$//g;
+ next if /^\s*$/;
+
+ $header_postinst_hook = "$1" if /^\s*header_postinst_hook\s*=\s*(\S+)/ig;
+ }
+ close CONF;
+ }
+}
+
+sub exec_script {
+ my $type = shift;
+ my $script = shift;
+ print STDERR "Running $type hook script $script.\n";
+ system ("$script $version $realimageloc$kimage-$version") &&
+ print STDERR "User $type hook script [$script] ";
+ if ($?) {
+ if ($? == -1) {
+ print STDERR "failed to execute: $!\n";
+ }
+ elsif ($? & 127) {
+ printf STDERR "died with signal %d, %s coredump\n",
+ ($? & 127), ($? & 128) ? 'with' : 'without';
+ }
+ else {
+ printf STDERR "exited with value %d\n", $? >> 8;
+ }
+ exit $? >> 8;
+ }
+}
+sub run_hook {
+ my $type = shift;
+ my $script = shift;
+ if ($script =~ m,^/,) {
+ # Full path provided for the hook script
+ if (-x "$script") {
+ &exec_script($type,$script);
+ }
+ else {
+ die "The provided $type hook script [$script] could not be run.\n";
+ }
+ }
+ else {
+ # Look for it in a safe path
+ for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') {
+ if (-x "$path/$script") {
+ &exec_script($type, "$path/$script");
+ return 0;
+ }
+ }
+ # No luck
+ print STDERR "Could not find $type hook script [$script].\n";
+ die "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n";
+ }
+}
+
+## Run user hook script here, if any
+if (-x "$header_postinst_hook") {
+ &run_hook("postinst", $header_postinst_hook);
+}
+
+if (-d "/etc/kernel/header_postinst.d") {
+ print STDERR "Examining /etc/kernel/header_postinst.d.\n";
+ system ("run-parts --verbose --exit-on-error --arg=$version " .
+ "--arg=$realimageloc$kimage-$version " .
+ "/etc/kernel/header_postinst.d") &&
+ die "Failed to process /etc/kernel/header_postinst.d";
+}
+
+if (-d "/etc/kernel/header_postinst.d/$version") {
+ print STDERR "Examining /etc/kernel/header_postinst.d/$version.\n";
+ system ("run-parts --verbose --exit-on-error --arg=$version " .
+ "--arg=$realimageloc$kimage-$version " .
+ "/etc/kernel/header_postinst.d/$version") &&
+ die "Failed to process /etc/kernel/header_postinst.d/$version";
+}
+
+exit 0;
+
+__END__
diff --git a/debian/control-scripts/postinst b/debian/control-scripts/postinst
new file mode 100644
index 00000000000000..ce5ae569a090ad
--- /dev/null
+++ b/debian/control-scripts/postinst
@@ -0,0 +1,1095 @@
+#! /usr/bin/perl
+# OriginalAuthor : Manoj Srivastava ( srivasta@pilgrim.umass.edu )
+#
+# Customized for Ubuntu by: Ben Collins <bcollins@ubuntu.com>
+
+#use strict; #for debugging
+use Cwd 'abs_path';
+
+$|=1;
+
+# Predefined values:
+my $version = "=V";
+my $link_in_boot = ""; # Should be empty, mostly
+my $no_symlink = ""; # Should be empty, mostly
+my $reverse_symlink = ""; # Should be empty, mostly
+my $do_symlink = "Yes"; # target machine defined
+my $do_boot_enable = "Yes"; # target machine defined
+my $do_bootfloppy = "Yes"; # target machine defined
+my $do_bootloader = "Yes"; # target machine defined
+my $move_image = ''; # target machine defined
+my $kimage = "=K"; # Should be empty, mostly
+my $loader = "=L"; # lilo, silo, quik, palo, vmelilo, nettrom, arcboot or delo
+my $image_dir = "/boot"; # where the image is located
+my $clobber_modules = ''; # target machine defined
+my $relative_links = ""; # target machine defined
+my $initrd = "YES"; # initrd kernel
+my $do_initrd = ''; # Normally we do not
+my $use_hard_links = ''; # hardlinks do not work across fs boundaries
+my $postinst_hook = ''; #Normally we do not
+my $postrm_hook = ''; #Normally we do not
+my $preinst_hook = ''; #Normally we do not
+my $prerm_hook = ''; #Normally we do not
+my $minimal_swap = ''; # Do not swap symlinks
+my $ignore_depmod_err = ''; # normally we do not
+my $kernel_arch = "=B";
+my $ramdisk = "/usr/sbin/update-initramfs"; # List of tools to create initial ram fs.
+my $notifier = "/usr/share/update-notifier/notify-reboot-required";
+my $package_name = "linux-image-$version";
+my $explicit_do_loader = 'Yes';
+
+my $Loader = "NoLOADER"; #
+$Loader = "LILO" if $loader =~ /^lilo/io;
+$Loader = "SILO" if $loader =~ /^silo/io;
+$Loader = "QUIK" if $loader =~ /^quik/io;
+$Loader = "yaboot" if $loader =~ /^yaboot/io;
+$Loader = "PALO" if $loader =~ /^palo/io;
+$Loader = "NETTROM" if $loader =~ /^nettrom/io;
+$Loader = "VMELILO" if $loader =~ /^vmelilo/io;
+$Loader = "ZIPL" if $loader =~ /^zipl/io;
+$Loader = "ELILO" if $loader =~ /^elilo/io;
+$Loader = "ARCBOOT" if $loader =~ /^arcboot/io;
+$Loader = "DELO" if $loader =~ /^delo/io;
+
+# This should not point to /tmp, because of security risks.
+my $temp_file_name = "/var/log/$loader" . "_log.$$";
+
+#known variables
+my $image_dest = "/";
+my $realimageloc = "/$image_dir/";
+my $have_conffile = "";
+my $silent_modules = '';
+my $silent_loader = '';
+my $warn_reboot = 'Yes'; # Warn that we are installing a version of
+ # the kernel we are running
+
+my $modules_base = '/lib/modules';
+my $CONF_LOC = '/etc/kernel-img.conf';
+
+# Ignore all invocations except when called on to configure.
+exit 0 unless $ARGV[0] =~ /configure/;
+
+my $DEBUG = 0;
+
+# Do some preliminary sanity checks here to ensure we actually have an
+# valid image dir
+chdir('/') or die "could not chdir to /:$!\n";
+die "Internal Error: ($image_dir) is not a directory!\n"
+ unless -d $image_dir;
+
+# remove multiple leading slashes; make sure there is at least one.
+$realimageloc =~ s|^/*|/|o;
+$realimageloc =~ s|/+|/|o;
+die "Internal Error: ($realimageloc) is not a directory!\n"
+ unless -d $realimageloc;
+
+if (-r "$CONF_LOC" && -f "$CONF_LOC" ) {
+ if (open(CONF, "$CONF_LOC")) {
+ while (<CONF>) {
+ chomp;
+ s/\#.*$//g;
+ next if /^\s*$/;
+
+ $do_symlink = "" if /^\s*do_symlinks\s*=\s*(no|false|0)\s*$/ig;
+ $no_symlink = "" if /^\s*no_symlinks\s*=\s*(no|false|0)\s*$/ig;
+ $reverse_symlink = "" if /^\s*reverse_symlink\s*=\s*(no|false|0)\s*$/ig;
+ $link_in_boot = "" if /^\s*image_in_boot\s*=\s*(no|false|0)\s*$/ig;
+ $link_in_boot = "" if /^\s*link_in_boot\s*=\s*(no|false|0)\s*$/ig;
+ $move_image = "" if /^\s*move_image\s*=\s*(no|false|0)\s*$/ig;
+ $clobber_modules = '' if /^\s*clobber_modules\s*=\s*(no|false|0)\s*$/ig;
+ $do_boot_enable = '' if /^\s*do_boot_enable\s*=\s*(no|false|0)\s*$/ig;
+ $do_bootfloppy = '' if /^\s*do_bootfloppy\s*=\s*(no|false|0)\s*$/ig;
+ $relative_links = '' if /^\s*relative_links \s*=\s*(no|false|0)\s*$/ig;
+ $do_bootloader = '' if /^\s*do_bootloader\s*=\s*(no|false|0)\s*$/ig;
+ $explicit_do_loader = '' if /^\s*do_bootloader\s*=\s*(no|false|0)\s*$/ig;
+ $do_initrd = '' if /^\s*do_initrd\s*=\s*(no|false|0)\s*$/ig;
+ $use_hard_links = '' if /^\s*use_hard_links\s*=\s*(no|false|0)\s*$/ig;
+ $silent_modules = '' if /^\s*silent_modules\s*=\s*(no|false|0)\s*$/ig;
+ $silent_loader = '' if /^\s*silent_loader\s*=\s*(no|false|0)\s*$/ig;
+ $warn_reboot = '' if /^\s*warn_reboot\s*=\s*(no|false|0)\s*$/ig;
+ $minimal_swap = '' if /^\s*minimal_swap\s*=\s*(no|false|0)\s*$/ig;
+ $ignore_depmod_err = '' if /^\s*ignore_depmod_err\s*=\s*(no|false|0)\s*$/ig;
+
+ $do_symlink = "Yes" if /^\s*do_symlinks\s*=\s*(yes|true|1)\s*$/ig;
+ $no_symlink = "Yes" if /^\s*no_symlinks\s*=\s*(yes|true|1)\s*$/ig;
+ $reverse_symlink = "Yes" if /^\s*reverse_symlinks\s*=\s*(yes|true|1)\s*$/ig;
+ $link_in_boot = "Yes" if /^\s*image_in_boot\s*=\s*(yes|true|1)\s*$/ig;
+ $link_in_boot = "Yes" if /^\s*link_in_boot\s*=\s*(yes|true|1)\s*$/ig;
+ $move_image = "Yes" if /^\s*move_image\s*=\s*(yes|true|1)\s*$/ig;
+ $clobber_modules = "Yes" if /^\s*clobber_modules\s*=\s*(yes|true|1)\s*$/ig;
+ $do_boot_enable = "Yes" if /^\s*do_boot_enable\s*=\s*(yes|true|1)\s*$/ig;
+ $do_bootfloppy = "Yes" if /^\s*do_bootfloppy\s*=\s*(yes|true|1)\s*$/ig;
+ $do_bootloader = "Yes" if /^\s*do_bootloader\s*=\s*(yes|true|1)\s*$/ig;
+ $explicit_do_loader = "YES" if /^\s*do_bootloader\s*=\s*(yes|true|1)\s*$/ig;
+ $relative_links = "Yes" if /^\s*relative_links\s*=\s*(yes|true|1)\s*$/ig;
+ $do_initrd = "Yes" if /^\s*do_initrd\s*=\s*(yes|true|1)\s*$/ig;
+ $use_hard_links = "Yes" if /^\s*use_hard_links\s*=\s*(yes|true|1)\s*$/ig;
+ $silent_modules = 'Yes' if /^\s*silent_modules\s*=\s*(yes|true|1)\s*$/ig;
+ $silent_loader = 'Yes' if /^\s*silent_loader\s*=\s*(yes|true|1)\s*$/ig;
+ $warn_reboot = 'Yes' if /^\s*warn_reboot\s*=\s*(yes|true|1)\s*$/ig;
+ $minimal_swap = 'Yes' if /^\s*minimal_swap\s*=\s*(yes|true|1)\s*$/ig;
+ $ignore_depmod_err = 'Yes' if /^\s*ignore_depmod_err\s*=\s*(yes|true|1)\s*$/ig;
+
+ $image_dest = "$1" if /^\s*image_dest\s*=\s*(\S+)/ig;
+ $postinst_hook = "$1" if /^\s*postinst_hook\s*=\s*(\S+)/ig;
+ $postrm_hook = "$1" if /^\s*postrm_hook\s*=\s*(\S+)/ig;
+ $preinst_hook = "$1" if /^\s*preinst_hook\s*=\s*(\S+)/ig;
+ $prerm_hook = "$1" if /^\s*prerm_hook\s*=\s*(\S+)/ig;
+ $ramdisk = "$1" if /^\s*ramdisk\s*=\s*(.+)$/ig;
+ }
+ close CONF;
+ $have_conffile = "Yes";
+ }
+}
+
+
+
+# For some versions of kernel-package, we had this warning in the
+# postinst, but the rules did not really interpolate the value in.
+# Here is a sanity check.
+my $pattern = "=" . "I";
+$initrd=~ s/^$pattern$//;
+
+if ($link_in_boot) {
+ $image_dest = "/$image_dir/"; # same as realimageloc
+}
+
+# Tack on at least one trainling /
+$image_dest = "$image_dest/";
+$image_dest =~ s|^/*|/|o;
+$image_dest =~ s|/+$|/|o;
+
+if (! -d "$image_dest") {
+ die "Expected Image Destination dir ($image_dest) to be a valid directory!\n";
+}
+
+# sanity
+if (!($do_bootfloppy || $do_bootloader)) {
+ $do_boot_enable = '';
+}
+if ($do_symlink && $no_symlink) {
+ warn "Both do_symlinks and no_symlinks options enabled; disabling no_symlinks\n";
+ $no_symlink = 0;
+}
+
+# most of our work is done in $image_dest (nominally /)
+chdir("$image_dest") or die "could not chdir to $image_dest:$!\n";
+
+# Paranoid check to make sure that the correct value is put in there
+if (! $kimage) { $kimage = "vmlinuz"; } # Hmm. empty
+elsif ($kimage =~ m/^b?uImage$/o) { $kimage = "vmlinuz"; } # these produce vmlinuz
+elsif ($kimage =~ m/^b?zImage$/o) { $kimage = "vmlinuz"; } # these produce vmlinuz
+elsif ($kimage =~ m/^[iI]mage$/o) { my $nop = $kimage; }
+elsif ($kimage =~ m/^vmlinux$/o) { my $nop = $kimage; }
+else { $kimage = "vmlinuz"; } # Default
+
+$ENV{KERNEL_ARCH}=$kernel_arch if $kernel_arch;
+
+
+die "Internal Error: Could not find image (" . $realimageloc
+ . "$kimage-$version)\n" unless -e $realimageloc
+ . "$kimage-$version";
+
+# search for the boot loader in the path
+my $loader_exec;
+($loader_exec = $loader) =~ s|.*/||;
+my ($loaderloc) = grep -x, map "$_/$loader_exec",
+ map { length($_) ? $_ : "." } split /:/, $ENV{PATH};
+
+
+######################################################################
+######################################################################
+########### Test whether a relative symlinkwould be OK #######
+######################################################################
+######################################################################
+sub test_relative {
+ my %params = @_;
+ my $cwd;
+
+ die "Internal Error: Missing Required paramater 'Old Dir' "
+ unless $params{'Old Dir'};
+ die "Internal Error: Missing Required paramater New Dir' "
+ unless $params{'New Dir'};
+
+
+ die "Internal Error: No such dir $params{'Old Dir'} "
+ unless -d $params{'Old Dir'};
+ die "Internal Error: No such dir $params{'New Dir'} "
+ unless -d $params{'New Dir'};
+
+ warn "Test relative: testing $params{'Old Dir'} -> $params{'New Dir'}"
+ if $DEBUG;
+ chomp($cwd = `pwd`);
+ chdir ($params{'New Dir'}) or die "Could not chdir to $params{'New Dir'}:$!";
+ my $ok = 0;
+ $params{'Old Dir'} =~ s|^/*||o;
+ if (-d $params{'Old Dir'} ) {
+ if (defined $params{'Test File'}) {
+ if (-e $params{'Old Dir'} . $params{'Test File'}) {
+ $ok = 1;
+ }
+ } else {
+ $ok = 1; # well, backward compatibility
+ }
+ }
+ chdir ($cwd) or die "Could not chdir to $params{'New Dir'}:$!";
+ return $ok;
+}
+
+######################################################################
+######################################################################
+############
+######################################################################
+######################################################################
+# sub CanonicalizePath {
+# my $path = join '/', @_;
+# my @work = split '/', $path;
+# my @out;
+# my $is_absolute;
+
+# if (@work && $work[0] eq "") {
+# $is_absolute = 1; shift @work;
+# }
+
+# while (@work) {
+# my $seg = shift @work;
+# if ($seg eq "." || $seg eq "") {
+# }
+# elsif ($seg eq "..") {
+# if (@out && $out[-1] ne "..") {
+# pop @out;
+# }
+# else {
+# # Leading "..", or "../..", etc.
+# push @out, $seg;
+# }
+# }
+# else {
+# push @out, $seg;
+# }
+# }
+
+# unshift @out, "" if $is_absolute;
+# return join('/', @out);
+# }
+######################################################################
+######################################################################
+############
+######################################################################
+######################################################################
+
+sub spath {
+ my %params = @_;
+
+ die "Missing Required paramater 'Old'" unless $params{'Old'};
+ die "Missing Required paramater 'New'" unless $params{'New'};
+
+ my @olddir = split '/', `readlink -q -m $params{'Old'}`;
+ my @newdir = split '/', `readlink -q -m $params{'New'}`;
+ my @outdir = @olddir;
+
+ my $out = '';
+ my $i;
+ for ($i = 0; $i <= $#olddir && $i <= $#newdir; $i++) {
+ $out++ if ($olddir[$i] ne $newdir[$i]);
+ shift @outdir unless $out;
+ unshift @outdir, ".." if $out;
+ }
+ if ($#newdir > $#olddir) {
+ for ($i=0; $i < $#newdir; $i++) {
+ unshift @outdir, "..";
+ }
+ }
+ return join ('/', @outdir);
+}
+######################################################################
+######################################################################
+############
+######################################################################
+######################################################################
+
+
+# This routine actually moves the kernel image
+# From: $realimageloc/$kimage-$version (/boot/vmlinuz-2.6.12)
+# To: $image_dest/$kimage-$version (/vmlinuz-2.6.12)
+# Note that the image is moved to a versioned destination, but ordinary
+# symlinks we create otherwise are not normally versioned
+sub really_move_image {
+ my $src_dir = $_[0];
+ my $target = $_[1];
+ my $dest_dir = $_[2];
+
+ warn "Really move image: src_dir=$src_dir, target=$target,\n destdir=$dest_dir"
+ if $DEBUG;
+ if (-e "$target") {
+ # we should be in dir $dest_dir == $image_dest /, normally
+ rename("$target", "$target.$$") ||
+ die "failed to move " . $dest_dir . "$target:$!";
+ warn "mv $target $target.$$" if $DEBUG;
+ }
+ warn "mv -f $src_dir$target $target" if $DEBUG;
+ my $ret = system("mv -f " . $src_dir . "$target " .
+ " $target");
+ if ($ret) {
+ die("Failed to move " . $src_dir . "$target to "
+ . $dest_dir . "$target.\n");
+ }
+ # Ok, now we may clobber the previous .old files
+ if (-e "$target.$$") {
+ rename("$target.$$", "$target.old") ||
+ die "failed to move " . $dest_dir . "$target:$!";
+ warn "mv $target.$$ $target " if $DEBUG;
+ }
+}
+
+# Normally called after really_move_image; and only called if we asked for
+# reversed link this routine reverses the symbolic link that is notmally
+# created. Since the real kernel image has been moved over to
+# $image_dest/$kimage-$version. So, this routine links
+# From: $image_dest/$kimage-$version (/vmlinuz-2.6.12)
+# To: $realimageloc/$kimage-$version (/boot/vmlinuz-2.6.12)
+sub really_reverse_link {
+ my $src_dir = $_[0];
+ my $link_name = $_[1];
+ my $dest_dir = $_[2];
+ warn "Really reverse link: src_dir=$src_dir, link name=$link_name\n" .
+ "\tdestdir=$dest_dir" if $DEBUG;
+
+ my $Old = $dest_dir;
+ if (test_relative ('Old Dir' => $Old, 'New Dir' => $src_dir,
+ 'Test File' => "$link_name")) {
+ $Old =~ s|^/*||o;
+ }
+ # Special case is they are in the same dir
+ my $rel_path = spath('Old' => "$Old", 'New' => "$src_dir" );
+ $Old ="" if $rel_path =~ m/^\s*$/o;
+
+ if ($use_hard_links =~ m/YES/i) {
+ link($Old . "$link_name", $src_dir . "$link_name") ||
+ die("Failed to link " . $dest_dir . "$link_name to " . $src_dir .
+ "$link_name .\n");
+ warn "ln " . $Old . "$link_name " . $src_dir . "$link_name" if $DEBUG;
+ }
+ else {
+ symlink($Old . "$link_name", $src_dir . "$link_name") ||
+ die("Failed to symbolic-link " . $dest_dir . "$link_name to " . $src_dir
+ . "$link_name : $!\n");
+ warn "ln -s " . $Old . "$link_name " . $src_dir . "$link_name" if $DEBUG;
+ }
+}
+
+# This routine is invoked if there is a symbolic link in place
+# in $image_dest/$kimage -- so a symlink exists in the destination.
+# What we are trying to determine is if we need to move the symbolic link over
+# to the the .old location
+sub move_p {
+ my $kimage = $_[0]; # Name of the symbolic link
+ my $image_dest = $_[1]; # The directory the links goes into
+ my $image_name = $_[2];
+ my $src_dir = $_[3];
+ my $force_move = 0;
+ warn "Move?: kimage=$kimage, image_dest=$image_dest, \n" .
+ "\timage_name=$image_name, src_dir=$src_dir" if $DEBUG;
+
+ if ($no_symlink || $reverse_symlink) {
+ # we do not want links, yet we have a symbolic link here!
+ warn "found a symbolic link in " . $image_dest . "$kimage \n" .
+ "even though no_symlink is defined\n" if $no_symlink;
+ warn "found a symbolic link in " . $image_dest . "$kimage \n" .
+ "even though reverse_symlink is defined\n" if $reverse_symlink;
+ # make sure we change this state of affairs
+ $force_move = 1;
+ return $force_move;
+ }
+
+ warn "DEBUG: OK. We found symlink, and we should have a symlink here.\n"
+ if $DEBUG;
+ my $vmlinuz_target = readlink "$kimage";
+ my $real_target = '';
+ my $target = `readlink -q -m "${realimageloc}${kimage-$version}"`;
+ $real_target = abs_path($vmlinuz_target) if defined($vmlinuz_target);
+
+ if (!defined($vmlinuz_target) || ! -f "$real_target") {
+ # what, a dangling symlink?
+ warn "The link " . $image_dest . "$kimage is a dangling link" .
+ "to $real_target\n";
+ $force_move = 1;
+ return $force_move;
+ }
+
+
+ warn "DEBUG: The link $kimage points to ($vmlinuz_target)\n" if $DEBUG;
+ warn "DEBUG: ($vmlinuz_target) is really ($real_target)\n" if $DEBUG;
+ my $cwd;
+ chomp ($cwd=`pwd`);
+ if ($vmlinuz_target !~ m|^/|o) {
+ $vmlinuz_target = $cwd . "/" . $vmlinuz_target;
+ $vmlinuz_target =~ s|/+|/|o;
+ }
+ $vmlinuz_target = `readlink -q -m $vmlinuz_target`;
+
+ if ("$vmlinuz_target" ne "$target") {
+ warn "DEBUG: We need to handle this.\n" if $DEBUG;
+ if ($minimal_swap) {
+ warn "DEBUG: Minimal swap.\n" if $DEBUG;
+ if (-l "$kimage.old") {
+ warn "DEBUG: There is an old link at $kimage.old\n" if $DEBUG;
+ my $old_target = readlink "$kimage.old";
+ my $real_old_target = '';
+ $real_old_target=abs_path($old_target) if defined ($old_target);
+
+ if ($real_old_target && -f "$real_old_target") {
+ if ($old_target !~ m|^/|o) {
+ $old_target = $cwd . "/" . $old_target;
+ $old_target =~ s|/+|/|o;
+ }
+ $old_target = `readlink -q -m $old_target`;
+ if ("$old_target" ne "$target") {
+ $force_move = 1;
+ warn "DEBUG: Old link ($old_target) does not point to us ($target)\n"
+ if $DEBUG;
+ }
+ else { # The .old points to the current
+ warn "$kimage.old --> $target -- doing nothing";
+ $force_move = 0;
+ }
+ }
+ else {
+ warn "DEBUG: Well, the old link does not exist -- so we move\n"
+ if $DEBUG;
+ $force_move = 1;
+ }
+ }
+ else {
+ warn "DEBUG: No .old link -- OK to move\n"
+ if $DEBUG;
+ $force_move = 1;
+ }
+ }
+ else {
+ warn "DEBUG: ok, minimal swap is no-- so we move.\n"
+ if $DEBUG;
+ $force_move = 1;
+ }
+ }
+ else { # already have proper link
+ warn "$kimage($vmlinuz_target) points to $target ($real_target) -- doing nothing";
+ $force_move = 0;
+ }
+ return $force_move;
+}
+
+
+# This routine moves the symbolic link around (/vmlinuz -> /vmlinuz.old)
+# It pays attention to whether we should the fact whether we should be using
+# hard links or not.
+sub really_move_link {
+ my $kimage = $_[0]; # Name of the symbolic link
+ my $image_dest = $_[1]; # The directory the links goes into
+ my $image_name = $_[2];
+ my $src_dir = $_[3];
+ warn "really_move_link: kimage=$kimage, image_dest=$image_dest\n" .
+ "\t image_name=$image_name, src_dir=$src_dir" if $DEBUG;
+
+ # don't clobber $kimage.old quite yet
+ rename("$kimage", "$kimage.$$") ||
+ die "failed to move " . $image_dest . "$kimage:$!";
+ warn "mv $kimage $kimage.$$" if $DEBUG;
+ my $Old = $src_dir;
+ my $cwd;
+
+ chomp($cwd=`pwd`);
+ if (test_relative ('Old Dir' => $Old, 'New Dir' => $cwd,
+ 'Test File' => "$image_name")) {
+ $Old =~ s|^/*||o;
+ }
+ # Special case is they are in the same dir
+ my $rel_path = spath('Old' => "$Old", 'New' => "$cwd" );
+ $Old ="" if $rel_path =~ m/^\s*$/o;
+
+ if ($use_hard_links =~ m/YES/i) {
+ warn "ln ${Old}${image_name} $kimage" if $DEBUG;
+ if (! link("${Old}${image_name}", "$kimage")) {
+ rename("$kimage.$$", "$kimage");
+ die("Failed to link ${Old}${image_name} to " .
+ "${image_dest}${kimage}.\n");
+ }
+ }
+ else {
+ warn "ln -s ${Old}${image_name} $kimage" if $DEBUG;
+ if (! symlink("${Old}${image_name}", "$kimage")) {
+ rename("$kimage.$$", "$kimage");
+ die("Failed to symbolic-link ${Old}${image_name} to " .
+ "${image_dest}${kimage}: $!\n");
+ }
+ }
+
+ # Ok, now we may clobber the previous .old file
+ if (-l "$kimage.old" || ! -e "$kimage.old" ) {
+ rename("$kimage.$$", "$kimage.old");
+ warn "mv $kimage.$$ $kimage.old" if $DEBUG;
+ }
+ else {
+ warn "$kimage.old is not a symlink, not clobbering\n";
+ warn "rm $kimage.$$";
+ unlink "$kimage.$$" if $DEBUG;
+ }
+}
+
+# This routine handles a request to do symlinks, but there is no
+# symlink file already there. Either we are supposed to use copy, or we are
+# installing on a pristine system, or the user does not want symbolic links at
+# all. We use a configuration file to tell the last two cases apart, creating
+# a config file if needed.
+sub handle_missing_link {
+ my $kimage = $_[0]; # Name of the symbolic link
+ my $image_dest = $_[1]; # The directory the links goes into
+ my $image_name = $_[2];
+ my $src_dir = $_[3];
+ warn "handle_missing_link: kimage=$kimage, image_dest=$image_dest\n" .
+ "\t image_name=$image_name, src_dir=$src_dir" if $DEBUG;
+
+ if ($no_symlink) {
+ warn "cp -a --backup=t $realimageloc$image_name $kimage" if $DEBUG;
+ my $ret = system("cp -a --backup=t " . $realimageloc .
+ "$image_name " . " $kimage");
+ if ($ret) {
+ die("Failed to copy " . $realimageloc . "$image_name to "
+ . $image_dest . "$kimage .\n");
+ }
+ }
+ elsif ($reverse_symlink) {
+ warn "mv -f $realimageloc$image_name $kimage" if $DEBUG;
+ my $ret = system("mv -f " . $realimageloc . "$image_name "
+ . "$kimage");
+ if ($ret) {
+ die("Failed to move " . $realimageloc . "$image_name to "
+ . $image_dest . "$kimage .\n");
+ }
+ }
+ else {
+ if (! $have_conffile) {
+ my $ret;
+ my $answer='';
+ $do_symlink = "Yes";
+
+ if (open(CONF, ">$CONF_LOC")) {
+ print CONF "# Kernel Image management overrides\n";
+ print CONF "# See kernel-img.conf(5) for details\n";
+ if ($loader =~ /palo/i) {
+ print CONF "link_in_boot = Yes\n";
+ print CONF "do_symlinks = Yes\n";
+ print CONF "relative_links = Yes\n";
+ print CONF "do_bootloader = No\n";
+ } else {
+ print CONF "do_symlinks = $do_symlink\n";
+ }
+ close CONF;
+ }
+ $have_conffile = "Yes";
+ }
+ }
+
+ if (! $no_symlink && $do_symlink =~ /Yes/i) {
+ my $Old = $realimageloc;
+ my $New = $image_dest;
+ my $Name = "$image_name";
+ my $Link_Dest = "$kimage";
+
+ if ($reverse_symlink) {
+ $Old = $image_dest;
+ $New = $realimageloc;
+ $Name = "$kimage";
+ $Link_Dest = $realimageloc . "$image_name";
+ }
+ if (test_relative ('Old Dir' => $Old,
+ 'New Dir' => $New,
+ 'Test File' => $Name)) {
+ $Old =~ s|^/*||o;
+ }
+ # Special case is they are in the same dir
+ my $rel_path = spath('Old' => "$Old", 'New' => "$New" );
+ $Old ="" if $rel_path =~ m/^\s*$/o;
+
+ symlink($Old . "$Name", "$Link_Dest") ||
+ die("Failed to symbolic-link ${Old}$Name to $Link_Dest: $!\n");
+ warn "ln -s ${Old}$Name $Link_Dest" if $DEBUG;
+
+ }
+}
+
+# This routine handles the rest of the cases, where the user has requested
+# non-traditional handling, like using cp, or reverse symlinks, or hard links.
+sub handle_non_symlinks {
+ my $kimage = $_[0]; # Name of the symbolic link
+ my $image_dest = $_[1]; # The directory the links goes into
+ my $image_name = $_[2];
+ my $src_dir = $_[3];
+ warn "handle_non_link: kimage=$kimage, image_dest=$image_dest\n" .
+ "\t image_name=$image_name, src_dir=$src_dir" if $DEBUG;
+
+ # Save the current image. We do this in all four cases
+ rename("$kimage", "$kimage.$$") ||
+ die "failed to move " . $image_dest . "$kimage:$!";
+ warn "mv $kimage $kimage.$$" if $DEBUG;
+
+ ##,####
+ # case One
+ #`####
+ if ($no_symlink) {
+ # Maybe /$image_dest is on a dos system?
+ warn "cp -a --backup=t $realimageloc$image_name $kimage" if $DEBUG;
+ my $ret = system("cp -a --backup=t " . $realimageloc
+ . "$image_name " . "$kimage");
+ if ($ret) {
+ if (-e "$kimage.$$") {
+ rename("$kimage.$$", "$kimage");
+ warn "mv $kimage.$$ $kimage" if $DEBUG;
+ }
+ die("Failed to copy " . $realimageloc . "$image_name to "
+ . $image_dest . "$kimage .\n");
+ }
+ }
+ ##,####
+ # case Two
+ #`####
+ elsif ($reverse_symlink) { # Maybe /$image_dest is on a dos system?
+ warn "mv -f $realimageloc$image_name $kimage" if $DEBUG;
+ my $ret = system("mv -f " . $realimageloc . "$image_name "
+ . $image_dest . "$kimage");
+ if ($ret) {
+ if (-e "$kimage.$$") {
+ rename("$kimage.$$", "$kimage");
+ warn "mv $kimage.$$ $kimage" if $DEBUG;
+ }
+ die("Failed to move " . $realimageloc . "$image_name to "
+ . $image_dest . "$kimage .\n");
+ }
+ my $Old = $image_dest;
+ if (test_relative ('Old Dir' => $Old, 'New Dir' => $realimageloc,
+ 'Test File' => "$kimage")) {
+ $Old =~ s|^/*||o;
+ }
+ # Special case is they are in the same dir
+ my $rel_path = spath('Old' => "$Old", 'New' => "$realimageloc" );
+ $Old ="" if $rel_path =~ m/^\s*$/o;
+
+ if ($use_hard_links =~ m/YES/i) {
+ warn "ln " . $Old . "$kimage " . $realimageloc . "$image_name" if $DEBUG;
+ if (! link($Old . "$kimage", $realimageloc . "$image_name")) {
+ warn "Could not link " . $image_dest .
+ "$kimage to $image_name :$!";
+ }
+ }
+ else {
+ warn "ln -s " . $Old . "$kimage " . $realimageloc . "$image_name" if $DEBUG;
+ if (! symlink($Old . "$kimage", $realimageloc . "$image_name")) {
+ warn "Could not symlink " . $image_dest .
+ "$kimage to $image_name :$!";
+ }
+ }
+ }
+ ##,####
+ # case Three
+ #`####
+ elsif ($use_hard_links =~ m/YES/i ) {
+ # Ok then. this ought to be a hard link, and hence fair game
+ # don't clobber $kimage.old quite yet
+ my $Old = $realimageloc;
+ my $cwd;
+ chomp($cwd=`pwd`);
+ if (test_relative ('Old Dir' => $Old, 'New Dir' => $cwd,
+ 'Test File' => "$image_name")) {
+ $Old =~ s|^/*||o;
+ }
+ # Special case is they are in the same dir
+ my $rel_path = spath('Old' => "$Old", 'New' => "$cwd" );
+ $Old ="" if $rel_path =~ m/^\s*$/o;
+
+ warn "ln " . $Old . "$image_name " . "$kimage" if $DEBUG;
+ if (! link($Old . "$image_name", "$kimage")) {
+ warn "mv $kimage.$$ $kimage" if $DEBUG;
+ rename("$kimage.$$", "$kimage");
+ die("Failed to link " . $realimageloc . "$image_name to "
+ . $image_dest . "$kimage .\n");
+ }
+ }
+ ##,####
+ # case Four
+ #`####
+ else {
+ # We just use cp
+ warn "cp -a --backup=t $realimageloc$image_name $kimage" if $DEBUG;
+ my $ret = system("cp -a --backup=t " . $realimageloc
+ . "$image_name " . "$kimage");
+ if ($ret) {
+ if (-e "$kimage.$$") {
+ warn "mv $kimage.$$ $kimage" if $DEBUG;
+ rename("$kimage.$$", "$kimage");
+ }
+ die("Failed to copy " . $realimageloc . "$image_name to "
+ . $image_dest . "$kimage .\n");
+ }
+ }
+ # Ok, now we may clobber the previous .old file
+ warn "mv $kimage.$$ $kimage.old if -e $kimage.$$" if $DEBUG;
+ rename("$kimage.$$", "$kimage.old") if -e "$kimage.$$";
+}
+
+# This routine is responsible for setting up the symbolic links
+# So, the actual kernel image lives in
+# $realimageloc/$image_name (/boot/vmlinuz-2.6.12).
+# This routine creates symbolic links in $image_dest/$kimage (/vmlinuz)
+sub image_magic {
+ my $kimage = $_[0]; # Name of the symbolic link
+ my $image_dest = $_[1]; # The directory the links goes into
+ my $image_name = "$kimage-$version";
+ my $src_dir = $realimageloc;
+ warn "image_magic: kimage=$kimage, image_dest=$image_dest\n" .
+ "\t image_name=$image_name, src_dir=$src_dir" if $DEBUG;
+
+ # Well, in any case, if the destination (the symlink we are trying
+ # to create) is a directory, we should do nothing, except throw a
+ # diagnostic.
+ if (-d "$kimage" ) {
+ die ("Hmm. $kimage is a directory, which I did not expect. I am\n" .
+ "trying to create a symbolic link with that name linked to \n" .
+ "$image_dest . Since a directory exists here, my assumptions \n" .
+ "are way off, and I am aborting.\n" );
+ exit (3);
+ }
+
+ if ($move_image) { # Maybe $image_dest is in on dos, or something?
+ # source dir, link name, dest dir
+ really_move_image( $realimageloc, $image_name, $image_dest);
+ really_reverse_link($realimageloc, $image_name, $image_dest)
+ if $reverse_symlink;
+ return;
+ }
+
+ if (-l "$kimage") { # There is a symbolic link
+ warn "DEBUG: There is a symlink for $kimage\n" if $DEBUG;
+ my $force_move = move_p($kimage, $image_dest, $image_name, $src_dir);
+
+ if ($force_move) {
+ really_move_link($kimage, $image_dest, $image_name, $src_dir);
+ }
+ }
+ elsif (! -e "$kimage") {
+ # Hmm. Pristine system? How can that be? Installing from scratch?
+ # Or maybe the user does not want a symbolic link here.
+ # Possibly they do not want a link here. (we should be in /
+ # here[$image_dest, really]
+ handle_missing_link($kimage, $image_dest, $image_name, $src_dir);
+ }
+ elsif (-e "$kimage" ) {
+ # OK, $kimage exists -- but is not a link
+ handle_non_symlinks($kimage, $image_dest, $image_name, $src_dir);
+ }
+}
+
+######################################################################
+######################################################################
+######################################################################
+######################################################################
+
+# We may not have any modules installed
+if ( -d "$modules_base/$version" ) {
+ print STDERR "Running depmod.\n";
+ my $ret = system("depmod -a $version");
+ if ($ret) {
+ print STDERR "Failed to run depmod\n";
+ exit(1);
+ }
+}
+
+
+
+sub find_initrd_tool {
+ my $hostversion = shift;
+ my $version = shift;
+ print STDERR "Finding valid ramdisk creators.\n";
+ my @ramdisks =
+ grep {
+ my $args =
+ "$_ " .
+ "--supported-host-version=$hostversion " .
+ "--supported-target-version=$version " .
+ "1>/dev/null 2>&1"
+ ;
+ system($args) == 0;
+ }
+ split (/[:,\s]+/, $ramdisk);
+}
+
+# The initrd symlink should probably be in the same dir that the
+# symlinks are in
+if ($initrd) {
+ my $success = 0;
+
+ # Update-initramfs is called slightly different than mkinitrd and
+ # mkinitramfs. XXX It should really be made compatible with this stuff
+ # some how.
+ my $upgrading = 1;
+ if (! defined $ARGV[1] || ! $ARGV[1] || $ARGV[1] =~ m/<unknown>/og) {
+ $upgrading = 0;
+ }
+ my $ret = system("$ramdisk " . ($upgrading ? "-u" : "-c") . " -k " . $version . " >&2");
+ $success = 1 unless $ret;
+ die "Failed to create initrd image.\n" unless $success;
+ if (! defined $ARGV[1] || ! $ARGV[1] || $ARGV[1] =~ m/<unknown>/og) {
+ image_magic("initrd.img", $image_dest);
+ }
+ else {
+ if (! -e "initrd.img") {
+ handle_missing_link("initrd.img", $image_dest, "initrd.img-$version",
+ $realimageloc);
+ }
+ else {
+ print STDERR
+ "Not updating initrd symbolic links since we are being updated/reinstalled \n";
+ print STDERR
+ "($ARGV[1] was configured last, according to dpkg)\n";
+ }
+ }
+
+ if ($initrd && -l "initrd" ) {
+ unlink "initrd";
+ }
+
+ if ($initrd && -l "$image_dir/initrd" && ! $link_in_boot) {
+ unlink "$image_dir/initrd";
+ }
+}
+else { # Not making an initrd emage
+ if (-l "initrd.img") {
+ # Ooh, last image was an initrd image? in any case, we should move it.
+ my $target = readlink "initrd.img";
+ my $real_target = '';
+ $real_target = abs_path($target) if defined ($target);
+
+ if (!defined($target) || ! -f "$real_target") {
+ # Eh. dangling link. can safely be removed.
+ unlink("initrd.img");
+ } else {
+ if (-l "initrd.img.old" || ! -e "initrd.img.old" ) {
+ rename("initrd.img", "initrd.img.old");
+ } else {
+ warn "initrd.img.old is not a symlink, not clobbering\n";
+ unlink("initrd.img");
+ }
+ }
+ }
+}
+
+# Warn of a reboot
+if (-x $notifier) {
+ system($notifier);
+}
+
+# Let programs know not to hibernate if the kernel that would be used for
+# resume-from-hibernate is likely to differ from the currently running kernel.
+system("mountpoint -q /var/run");
+if ($? eq 0) {
+ system("touch /var/run/do-not-hibernate");
+}
+
+# Only change the symlinks if we are not being upgraded
+if (! defined $ARGV[1] || ! $ARGV[1] || $ARGV[1] =~ m/<unknown>/og) {
+ image_magic($kimage, $image_dest);
+}
+else {
+ if (! -e "$kimage") {
+ handle_missing_link($kimage, $image_dest, "$kimage-$version",
+ $realimageloc);
+ }
+ else {
+ print STDERR
+ "Not updating image symbolic links since we are being updated/reinstalled \n";
+ print STDERR
+ "($ARGV[1] was configured last, according to dpkg)\n";
+ }
+}
+
+# We used to have System.* files in /
+if (-e "/System.map" || -e "/System.old") {
+ unlink '/System.map' if -e '/System.map';
+ unlink '/System.old' if -e '/System.old';
+}
+
+# creating some info about kernel and initrd
+if ($DEBUG) {
+ my $ksize=sprintf("%.0f",(stat($realimageloc .
+ "$kimage-$version"))[7]/1024)."kB";
+ my $initrdsize='';
+ if ($initrd) {
+ $initrdsize=sprintf("%.0f",(stat($realimageloc .
+ "initrd.img-$version"))[7]/1024)."kB";
+ }
+
+ print STDERR <<"EOMSG";
+A new kernel image has been installed at $realimageloc$kimage-$version
+ (Size: $ksize)
+
+Symbolic links, unless otherwise specified, can be found in $image_dest
+
+EOMSG
+ ;
+
+ if ($initrd) {
+ print STDERR <<"EOMSGA";
+
+ Initial rootdisk image: ${realimageloc}initrd.img-$version (Size: $initrdsize)
+EOMSGA
+ ;
+ }
+}
+
+# set the env var stem
+$ENV{'STEM'} = "linux";
+sub exec_script {
+ my $type = shift;
+ my $script = shift;
+ print STDERR "Running $type hook script $script.\n";
+ system ("$script $version $realimageloc$kimage-$version") &&
+ print STDERR "User $type hook script [$script] ";
+ if ($?) {
+ if ($? == -1) {
+ print STDERR "failed to execute: $!\n";
+ }
+ elsif ($? & 127) {
+ printf STDERR "died with signal %d, %s coredump\n",
+ ($? & 127), ($? & 128) ? 'with' : 'without';
+ }
+ else {
+ printf STDERR "exited with value %d\n", $? >> 8;
+ }
+ exit $? >> 8;
+ }
+}
+sub run_hook {
+ my $type = shift;
+ my $script = shift;
+ if ($script =~ m,^/,) {
+ # Full path provided for the hook script
+ if (-x "$script") {
+ &exec_script($type,$script);
+ }
+ else {
+ die "The provided $type hook script [$script] could not be run.\n";
+ }
+ }
+ else {
+ # Look for it in a safe path
+ for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') {
+ if (-x "$path/$script") {
+ &exec_script($type, "$path/$script");
+ return 0;
+ }
+ }
+ # No luck
+ print STDERR "Could not find $type hook script [$script].\n";
+ die "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n";
+ }
+}
+
+my $options;
+for (@ARGV) {
+ s,','\\'',g;
+ $options .= " '$_'";
+}
+$ENV{'DEB_MAINT_PARAMS'}="$options";
+
+## Run user hook script here, if any
+if ($postinst_hook) {
+ &run_hook("postinst", $postinst_hook);
+}
+
+if (-d "/etc/kernel/postinst.d") {
+ print STDERR "Examining /etc/kernel/postinst.d.\n";
+ system ("run-parts --verbose --exit-on-error --arg=$version " .
+ "--arg=$realimageloc$kimage-$version " .
+ "/etc/kernel/postinst.d") &&
+ die "Failed to process /etc/kernel/postinst.d";
+}
+
+if (-d "/etc/kernel/postinst.d/$version") {
+ print STDERR "Examining /etc/kernel/postinst.d/$version.\n";
+ system ("run-parts --verbose --exit-on-error --arg=$version " .
+ "--arg=$realimageloc$kimage-$version " .
+ "/etc/kernel/postinst.d/$version") &&
+ die "Failed to process /etc/kernel/postinst.d/$version";
+}
+
+LOADER: {
+ last unless $do_boot_enable; # Exit if explicitly asked to
+
+ last if $loader =~ /silo/i; # SILO does not have to be executed.
+ last if $loader =~ /yaboot/i; # yaboot does not have to be executed.
+ last if $loader =~ /milo/i; # MILO does not have to be executed.
+ last if $loader =~ /nettrom/i; # NETTROM does not have to be executed.
+ last if $loader =~ /arcboot/i; # ARCBOOT does not have to be executed.
+ last if $loader =~ /delo/i; # DELO does not have to be executed.
+ last if $loader =~ /quik/i; # maintainer asked quik invocation to be ignored
+
+ last unless $loaderloc;
+ last unless -x $loaderloc;
+ last unless $do_bootloader;
+
+ if (-T "/etc/$loader.conf") {
+ # Trust and use the existing lilo.conf.
+ print STDERR "You already have a $Loader configuration in /etc/$loader.conf\n";
+ my $ret = &run_lilo();
+ exit $ret if $ret;
+ }
+}
+
+
+sub run_lilo (){
+ my $ret;
+ # Try and figure out if the user really wants lilo to be run --
+ # since the default is to run the boot laoder, which is ! grub -- but
+ # the user may be using grub now, and not changed the default.
+
+ # So, if the user has explicitly asked for the loader to be run, or
+ # if there is no postinst hook, or if there is no grub installed --
+ # we are OK. Or else, we ask.
+ if ($explicit_do_loader || (! ($postinst_hook && -x '/usr/sbin/grub'))) {
+ print STDERR "Running boot loader as requested\n";
+ } else {
+ print STDERR "Ok, not running $loader\n";
+ }
+ if ($loader =~ /^lilo/io or $loader =~ /vmelilo/io) {
+ print STDERR "Testing $loader.conf ... \n";
+ unlink $temp_file_name; # security
+ $ret = system("$loaderloc -t >$temp_file_name 2>&1");
+ if ($ret) {
+ print STDERR "Boot loader test failed\n";
+ return $ret;
+ }
+ unlink "$temp_file_name";
+ print STDERR "Testing successful.\n";
+ print STDERR "Installing the ";
+ print STDERR "partition " if $loader =~ /^lilo/io;
+ print STDERR "boot sector... \n";
+ }
+
+ print STDERR "Running $loaderloc ... \n";
+ if ($loader =~ /^elilo/io) {
+ $ret = system("$loaderloc 2>&1 | tee $temp_file_name");
+ } else {
+ $ret = system("$loaderloc >$temp_file_name 2>&1");
+ }
+ if ($ret) {
+ print STDERR "Boot loader failed to run\n";
+ return $ret;
+ }
+ unlink $temp_file_name;
+ print STDERR "Installation successful.\n";
+ return 0;
+}
+
+exit 0;
+
+__END__
+
diff --git a/debian/control-scripts/postinst.extra b/debian/control-scripts/postinst.extra
new file mode 100644
index 00000000000000..a370b4c09317cf
--- /dev/null
+++ b/debian/control-scripts/postinst.extra
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+case "$1" in
+ configure)
+ depmod -a -F /boot/System.map-@@KVER@@ @@KVER@@
+ update-initramfs -u -k @@KVER@@
+ ;;
+esac
diff --git a/debian/control-scripts/postrm b/debian/control-scripts/postrm
new file mode 100644
index 00000000000000..227e351fc59bdf
--- /dev/null
+++ b/debian/control-scripts/postrm
@@ -0,0 +1,361 @@
+#! /usr/bin/perl
+# -*- Mode: Cperl -*-
+# image.postrm ---
+# Author : Manoj Srivastava ( srivasta@glaurung.green-gryphon.com )
+# Created On : Sat May 15 11:05:13 1999
+# Created On Node : glaurung.green-gryphon.com
+# Last Modified By : Manoj Srivastava
+# Last Modified On : Wed Sep 13 11:26:19 2006
+# Last Machine Used: glaurung.internal.golden-gryphon.com
+# Update Count : 57
+# Status : Unknown, Use with caution!
+# HISTORY :
+# Description :
+#
+# $Id: image.postrm,v 1.31 2003/10/07 16:24:20 srivasta Exp $
+#
+
+
+#
+#use strict; #for debugging
+use Cwd 'abs_path';
+
+$|=1;
+
+# Predefined values:
+my $version = "=V";
+my $link_in_boot = ""; # Should be empty, mostly
+my $no_symlink = ""; # Should be empty, mostly
+my $reverse_symlink = ""; # Should be empty, mostly
+my $do_symlink = "Yes"; # target machine defined
+my $do_boot_enable = "Yes"; # target machine defined
+my $do_bootfloppy = "Yes"; # target machine defined
+my $do_bootloader = "Yes"; # target machine defined
+my $move_image = ''; # target machine defined
+my $kimage = "=K"; # Should be empty, mostly
+my $loader = "=L"; # lilo, silo, quik, palo, vmelilo, or nettrom
+my $image_dir = "/boot"; # where the image is located
+my $clobber_modules = ''; # target machine defined
+my $initrd = "YES"; # initrd kernel
+my $do_initrd = ''; # Normally, we don't
+my $warn_initrd = 'YES'; # Normally we do
+my $use_hard_links = ''; # hardlinks do not work across fs boundaries
+my $postinst_hook = ''; #Normally we do not
+my $postrm_hook = ''; #Normally we do not
+my $preinst_hook = ''; #Normally we do not
+my $prerm_hook = ''; #Normally we do not
+my $minimal_swap = ''; # Do not swap symlinks
+my $ignore_depmod_err = ''; # normally we do not
+my $relink_build_link = 'YES'; # There is no harm in checking the link
+my $force_build_link = ''; # we shall not create a dangling link
+my $kernel_arch = "=B";
+my $ramdisk = "/usr/sbin/update-initramfs";
+my $package_name = "linux-image-$version";
+
+my $Loader = "NoLOADER"; #
+$Loader = "LILO" if $loader =~ /^lilo/io;
+$Loader = "SILO" if $loader =~ /^silo/io;
+$Loader = "QUIK" if $loader =~ /^quik/io;
+$Loader = "yaboot" if $loader =~ /^yaboot/io;
+$Loader = "PALO" if $loader =~ /^palo/io;
+$Loader = "NETTROM" if $loader =~ /^nettrom/io;
+$Loader = "VMELILO" if $loader =~ /^vmelilo/io;
+$Loader = "ZIPL" if $loader =~ /^zipl/io;
+$Loader = "ELILO" if $loader =~ /^elilo/io;
+
+
+# This should not point to /tmp, because of security risks.
+my $temp_file_name = "/var/log/$loader" . "_log.$$";
+
+#known variables
+my @boilerplate = ();
+my @silotemplate = ();
+my @quiktemplate = ();
+my @palotemplate = ();
+my @vmelilotemplate = ();
+my $bootdevice = '';
+my $rootdevice = '';
+my $rootdisk = '';
+my $rootpartition = '';
+my $image_dest = "/";
+my $realimageloc = "/$image_dir/";
+my $have_conffile = "";
+my $CONF_LOC = '/etc/kernel-img.conf';
+my $relative_links = '';
+my $silent_modules = '';
+my $silent_loader = '';
+my $warn_reboot = 'Yes'; # Warn that we are installing a version of
+ # the kernel we are running
+
+chdir('/') or die "could not chdir to /:$!\n";
+# remove multiple leading slashes; make sure there is at least one.
+$realimageloc =~ s|^/*|/|o;
+$realimageloc =~ s|/+|/|o;
+
+
+if (-r "$CONF_LOC" && -f "$CONF_LOC" ) {
+ if (open(CONF, "$CONF_LOC")) {
+ while (<CONF>) {
+ chomp;
+ s/\#.*$//g;
+ next if /^\s*$/;
+
+ $do_symlink = "" if /^\s*do_symlinks\s*=\s*(no|false|0)\s*$/ig;
+ $no_symlink = "" if /^\s*no_symlinks\s*=\s*(no|false|0)\s*$/ig;
+ $reverse_symlink = "" if /^\s*reverse_symlinks\s*=\s*(no|false|0)\s*$/ig;
+ $link_in_boot = "" if /^\s*image_in_boot\s*=\s*(no|false|0)\s*$/ig;
+ $link_in_boot = "" if /^\s*link_in_boot\s*=\s*(no|false|0)\s*$/ig;
+ $move_image = "" if /^\s*move_image\s*=\s*(no|false|0)\s*$/ig;
+ $clobber_modules = '' if /^\s*clobber_modules\s*=\s*(no|false|0)\s*$/ig;
+ $do_boot_enable = '' if /^\s*do_boot_enable\s*=\s*(no|false|0)\s*$/ig;
+ $do_bootfloppy = '' if /^\s*do_bootfloppy\s*=\s*(no|false|0)\s*$/ig;
+ $relative_links = '' if /^\s*relative_links \s*=\s*(no|false|0)\s*$/ig;
+ $do_bootloader = '' if /^\s*do_bootloader\s*=\s*(no|false|0)\s*$/ig;
+ $do_initrd = '' if /^\s*do_initrd\s*=\s*(no|false|0)\s*$/ig;
+ $warn_initrd = '' if /^\s*warn_initrd\s*=\s*(no|false|0)\s*$/ig;
+ $use_hard_links = '' if /^\s*use_hard_links\s*=\s*(no|false|0)\s*$/ig;
+ $silent_modules = '' if /^\s*silent_modules\s*=\s*(no|false|0)\s*$/ig;
+ $silent_loader = '' if /^\s*silent_loader\s*=\s*(no|false|0)\s*$/ig;
+ $warn_reboot = '' if /^\s*warn_reboot\s*=\s*(no|false|0)\s*$/ig;
+ $minimal_swap = '' if /^\s*minimal_swap\s*=\s*(no|false|0)\s*$/ig;
+ $ignore_depmod_err = '' if /^\s*ignore_depmod_err\s*=\s*(no|false|0)\s*$/ig;
+ $relink_build_link = '' if /^\s*relink_build_link\s*=\s*(no|false|0)\s*$/ig;
+ $force_build_link = '' if /^\s*force_build_link\s*=\s*(no|false|0)\s*$/ig;
+
+ $do_symlink = "Yes" if /^\s*do_symlinks\s*=\s*(yes|true|1)\s*$/ig;
+ $no_symlink = "Yes" if /^\s*no_symlinks\s*=\s*(yes|true|1)\s*$/ig;
+ $reverse_symlink = "Yes" if /^\s*reverse_symlinks\s*=\s*(yes|true|1)\s*$/ig;
+ $link_in_boot = "Yes" if /^\s*image_in_boot\s*=\s*(yes|true|1)\s*$/ig;
+ $link_in_boot = "Yes" if /^\s*link_in_boot\s*=\s*(yes|true|1)\s*$/ig;
+ $move_image = "Yes" if /^\s*move_image\s*=\s*(yes|true|1)\s*$/ig;
+ $clobber_modules = "Yes" if /^\s*clobber_modules\s*=\s*(yes|true|1)\s*$/ig;
+ $do_boot_enable = "Yes" if /^\s*do_boot_enable\s*=\s*(yes|true|1)\s*$/ig;
+ $do_bootfloppy = "Yes" if /^\s*do_bootfloppy\s*=\s*(yes|true|1)\s*$/ig;
+ $do_bootloader = "Yes" if /^\s*do_bootloader\s*=\s*(yes|true|1)\s*$/ig;
+ $relative_links = "Yes" if /^\s*relative_links\s*=\s*(yes|true|1)\s*$/ig;
+ $do_initrd = "Yes" if /^\s*do_initrd\s*=\s*(yes|true|1)\s*$/ig;
+ $warn_initrd = "Yes" if /^\s*warn_initrd\s*=\s*(yes|true|1)\s*$/ig;
+ $use_hard_links = "Yes" if /^\s*use_hard_links\s*=\s*(yes|true|1)\s*$/ig;
+ $silent_modules = 'Yes' if /^\s*silent_modules\s*=\s*(yes|true|1)\s*$/ig;
+ $silent_loader = 'Yes' if /^\s*silent_loader\s*=\s*(yes|true|1)\s*$/ig;
+ $warn_reboot = 'Yes' if /^\s*warn_reboot\s*=\s*(yes|true|1)\s*$/ig;
+ $minimal_swap = 'Yes' if /^\s*minimal_swap\s*=\s*(yes|true|1)\s*$/ig;
+ $ignore_depmod_err = 'Yes' if /^\s*ignore_depmod_err\s*=\s*(yes|true|1)\s*$/ig;
+ $relink_build_link = 'Yes' if /^\s*relink_build_link\s*=\s*(yes|true|1)\s*$/ig;
+ $force_build_link = 'Yes' if /^\s*force_build_link\s*=\s*(yes|true|1)\s*$/ig;
+
+ $image_dest = "$1" if /^\s*image_dest\s*=\s*(\S+)/ig;
+ $postinst_hook = "$1" if /^\s*postinst_hook\s*=\s*(\S+)/ig;
+ $postrm_hook = "$1" if /^\s*postrm_hook\s*=\s*(\S+)/ig;
+ $preinst_hook = "$1" if /^\s*preinst_hook\s*=\s*(\S+)/ig;
+ $prerm_hook = "$1" if /^\s*prerm_hook\s*=\s*(\S+)/ig;
+ $ramdisk = "$1" if /^\s*ramdisk\s*=\s*(.+)$/ig;
+ }
+ close CONF;
+ $have_conffile = "Yes";
+ }
+}
+
+if ($link_in_boot) {
+ $image_dest = "/$image_dir/";
+ $image_dest =~ s|^/*|/|o;
+}
+
+$image_dest = "$image_dest/";
+$image_dest =~ s|/+$|/|o;
+
+# The destdir may be gone by now.
+if (-d "$image_dest") {
+ chdir("$image_dest") or die "could not chdir to $image_dest:$!\n";
+}
+
+# Paranoid check to make sure that the correct value is put in there
+if (! $kimage) {$kimage = "vmlinuz"} # Hmm. empty
+elsif ($kimage =~ m/^b?uImage$/o) {$kimage = "vmlinuz"} # these produce vmlinuz
+elsif ($kimage =~ m/^b?zImage$/o) {$kimage = "vmlinuz"} # these produce vmlinuz
+elsif ($kimage =~ m/^[iI]mage$/o) { my $nop = $kimage;}
+elsif ($kimage =~ m/^vmlinux$/o) { my $nop = $kimage;}
+else {$kimage = "vmlinuz"} # default
+
+$ENV{KERNEL_ARCH}=$kernel_arch if $kernel_arch;
+
+
+######################################################################
+######################################################################
+############
+######################################################################
+######################################################################
+sub remove_sym_link {
+ my $bad_image = $_[0];
+
+ warn "Removing symbolic link $bad_image \n";
+ if ($loader =~ /lilo/i)
+ {
+ warn "Unless you used the optional flag in lilo, \n";
+ }
+ warn " you may need to re-run your boot loader" . ($loader ? "[$loader]":"")
+ . "\n";
+ # Remove the dangling link
+ unlink "$bad_image";
+}
+
+######################################################################
+######################################################################
+############
+######################################################################
+######################################################################
+sub CanonicalizePath {
+ my $path = join '/', @_;
+ my @work = split '/', $path;
+ my @out;
+ my $is_absolute;
+
+ if (@work && $work[0] eq "") { $is_absolute = 1; shift @work; }
+
+ while (@work) {
+ my $seg = shift @work;
+ if ($seg eq "." || $seg eq "") {
+ } elsif ($seg eq "..") {
+ if (@out && $out[-1] ne "..") {
+ pop @out;
+ } else {
+ # Leading "..", or "../..", etc.
+ push @out, $seg;
+ }
+ } else {
+ push @out, $seg;
+ }
+ }
+
+ unshift @out, "" if $is_absolute;
+ return join('/', @out);
+}
+
+######################################################################
+######################################################################
+############
+######################################################################
+######################################################################
+# This removes dangling symlinks. What do we do about hard links? Surely a
+# something with the nane $image_dest . "$kimage" ought not to be left behind?
+sub image_magic {
+ my $kimage = $_[0];
+ my $image_dest = $_[1];
+
+ if (-l "$kimage") {
+ # There is a symbolic link
+ my $force_move = 0;
+ my $vmlinuz_target = readlink "$kimage";
+ my $real_target = '';
+ $real_target = abs_path($vmlinuz_target) if defined ($vmlinuz_target);
+ if (!defined($vmlinuz_target) || ! -f "$real_target") {
+ # what, a dangling symlink?
+ warn "The link " . $image_dest . "$kimage is a damaged link\n";
+ # Remove the dangling link
+ &remove_sym_link("$kimage");
+ }
+ else {
+ my $canonical_target = CanonicalizePath("$vmlinuz_target");
+ if (! -e $canonical_target) {
+ warn "The link " . $image_dest . "$kimage is a dangling link\n";
+ &remove_sym_link("$kimage");
+ }
+ }
+ }
+}
+
+# set the env var stem
+$ENV{'STEM'} = "linux";
+
+sub exec_script {
+ my $type = shift;
+ my $script = shift;
+ print STDERR "Running $type hook script $script.\n";
+ system ("$script $version $realimageloc$kimage-$version") &&
+ print STDERR "User $type hook script [$script] ";
+ if ($?) {
+ if ($? == -1) {
+ print STDERR "failed to execute: $!\n";
+ }
+ elsif ($? & 127) {
+ printf STDERR "died with signal %d, %s coredump\n",
+ ($? & 127), ($? & 128) ? 'with' : 'without';
+ }
+ else {
+ printf STDERR "exited with value %d\n", $? >> 8;
+ }
+ }
+}
+sub run_hook {
+ my $type = shift;
+ my $script = shift;
+ if ($script =~ m,^/,) {
+ # Full path provided for the hook script
+ if (-x "$script") {
+ &exec_script($type,$script);
+ }
+ else {
+ warn "The provided $type hook script [$script] could not be run.\n";
+ }
+ }
+ else {
+ # Look for it in a safe path
+ for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') {
+ if (-x "$path/$script") {
+ &exec_script($type, "$path/$script");
+ return 0;
+ }
+ }
+ # No luck
+ print STDERR "Could not find $type hook script [$script].\n";
+ warn "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n";
+ }
+}
+
+my $options;
+for (@ARGV) {
+ s,','\\'',g;
+ $options .= " '$_'";
+}
+$ENV{'DEB_MAINT_PARAMS'}="$options";
+
+## Run user hook script here, if any
+if ($postrm_hook) {
+ &run_hook("postrm", $postrm_hook);
+}
+if (-d "/etc/kernel/postrm.d") {
+ warn "Examining /etc/kernel/postrm.d .\n";
+ system ("run-parts --verbose --exit-on-error --arg=$version " .
+ "--arg=$realimageloc$kimage-$version " .
+ "/etc/kernel/postrm.d") &&
+ die "Failed to process /etc/kernel/postrm.d";
+}
+if (-d "/etc/kernel/postrm.d/$version") {
+ warn "Examining /etc/kernel/postrm.d/$version .\n";
+ system ("run-parts --verbose --exit-on-error --arg=$version " .
+ "--arg=$realimageloc$kimage-$version " .
+ "/etc/kernel/postrm.d/$version") &&
+ die "Failed to process /etc/kernel/postrm.d/$version";
+}
+
+# check and remove damaged and dangling symlinks
+if ($ARGV[0] !~ /upgrade/) {
+ system("$ramdisk -d -k " . $version . " > /dev/null 2>&1");
+ if (-f $realimageloc . "initrd.img-$version.bak") {
+ unlink $realimageloc . "initrd.img-$version.bak";
+ }
+ image_magic($kimage, $image_dest);
+ image_magic($kimage . ".old", $image_dest);
+ image_magic("initrd.img", $image_dest) if $initrd;
+ image_magic("initrd.img.old", $image_dest) if $initrd;
+}
+
+exit 0;
+
+__END__
+
+
+
+
+
+
diff --git a/debian/control-scripts/postrm.extra b/debian/control-scripts/postrm.extra
new file mode 100644
index 00000000000000..0adcc6283620bf
--- /dev/null
+++ b/debian/control-scripts/postrm.extra
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+case "$1" in
+ remove|purge)
+ depmod -a -F /boot/System.map-@@KVER@@ @@KVER@@
+ update-initramfs -u -k @@KVER@@
+ ;;
+esac
diff --git a/debian/control-scripts/preinst b/debian/control-scripts/preinst
new file mode 100644
index 00000000000000..6824225faa272e
--- /dev/null
+++ b/debian/control-scripts/preinst
@@ -0,0 +1,306 @@
+#! /usr/bin/perl
+# -*- Mode: Cperl -*-
+# image.preinst ---
+# Author : Manoj Srivastava ( srivasta@tiamat.datasync.com )
+# Created On : Sun Jun 14 03:38:02 1998
+# Created On Node : tiamat.datasync.com
+# Last Modified By : Manoj Srivastava
+# Last Modified On : Sun Sep 24 14:04:42 2006
+# Last Machine Used: glaurung.internal.golden-gryphon.com
+# Update Count : 99
+# Status : Unknown, Use with caution!
+# HISTORY :
+# Description :
+#
+#
+
+#
+#use strict; #for debugging
+
+use Debconf::Client::ConfModule qw(:all);
+version('2.0');
+my $capb=capb("backup");
+
+$|=1;
+
+# Predefined values:
+my $version = "=V";
+my $link_in_boot = ""; # Should be empty, mostly
+my $no_symlink = ""; # Should be empty, mostly
+my $reverse_symlink = ""; # Should be empty, mostly
+my $do_symlink = "Yes"; # target machine defined
+my $do_boot_enable = "Yes"; # target machine defined
+my $do_bootfloppy = "Yes"; # target machine defined
+my $do_bootloader = "Yes"; # target machine defined
+my $move_image = ''; # target machine defined
+my $kimage = "=K"; # Should be empty, mostly
+my $loader = "=L"; # lilo, silo, quik, palo, vmelilo, nettrom
+ # or elilo
+my $image_dir = "/boot"; # where the image is located
+my $initrd = "YES"; # initrd kernel
+my $use_hard_links = ''; # hardlinks do not wirk across fs boundaries
+my $postinst_hook = ''; #Normally we do not
+my $postrm_hook = ''; #Normally we do not
+my $preinst_hook = ''; #Normally we do not
+my $prerm_hook = ''; #Normally we do not
+my $minimal_swap = ''; # Do not swap symlinks
+my $ignore_depmod_err = ''; # normally we do not
+my $relink_src_link = 'YES'; # There is no harm in checking the link
+my $relink_build_link = 'YES'; # There is no harm in checking the link
+my $force_build_link = ''; # There is no harm in checking the link
+my $kernel_arch = "=B";
+my $ramdisk = "/usr/sbin/update-initramfs"; # List of tools to create initial ram fs.
+my $package_name = "linux-image-$version";
+
+my $Loader = "NoLOADER"; #
+$Loader = "LILO" if $loader =~ /^lilo/io;
+$Loader = "SILO" if $loader =~ /^silo/io;
+$Loader = "QUIK" if $loader =~ /^quik/io;
+$Loader = "yaboot" if $loader =~ /^yaboot/io;
+$Loader = "PALO" if $loader =~ /^palo/io;
+$Loader = "NETTROM" if $loader =~ /^nettrom/io;
+$Loader = "VMELILO" if $loader =~ /^vmelilo/io;
+$Loader = "ZIPL" if $loader =~ /^zipl/io;
+$Loader = "ELILO" if $loader =~ /^elilo/io;
+
+
+#known variables
+my @boilerplate = ();
+my @silotemplate = ();
+my @quiktemplate = ();
+my @palotemplate = ();
+my @vmelilotemplate = ();
+my $bootdevice = '';
+my $rootdevice = '';
+my $rootdisk = '';
+my $rootpartition = '';
+my $image_dest = "/";
+my $realimageloc = "/$image_dir/";
+my $have_conffile = "";
+my $CONF_LOC = '/etc/kernel-img.conf';
+my $relative_links = '';
+my $silent_loader = '';
+my $warn_reboot = ''; # Warn that we are installing a version of
+ # the kernel we are running
+
+my $modules_base = '/lib/modules';
+
+die "Pre inst Internal error. Aborting." unless $version;
+
+exit 0 if $ARGV[0] =~ /abort-upgrade/;
+exit 1 unless $ARGV[0] =~ /(install|upgrade)/;
+
+# remove multiple leading slashes; make sure there is at least one.
+$realimageloc =~ s|^/*|/|o;
+$realimageloc =~ s|/+|/|o;
+
+if (-r "$CONF_LOC" && -f "$CONF_LOC" ) {
+ if (open(CONF, "$CONF_LOC")) {
+ while (<CONF>) {
+ chomp;
+ s/\#.*$//g;
+ next if /^\s*$/;
+
+ $do_symlink = "" if /^\s*do_symlinks\s*=\s*(no|false|0)\s*$/ig;
+ $no_symlink = "" if /^\s*no_symlinks\s*=\s*(no|false|0)\s*$/ig;
+ $reverse_symlink = "" if /^\s*reverse_symlinks\s*=\s*(no|false|0)\s*$/ig;
+ $link_in_boot = "" if /^\s*image_in_boot\s*=\s*(no|false|0)\s*$/ig;
+ $link_in_boot = "" if /^\s*link_in_boot\s*=\s*(no|false|0)\s*$/ig;
+ $move_image = "" if /^\s*move_image\s*=\s*(no|false|0)\s*$/ig;
+ $do_boot_enable = '' if /^\s*do_boot_enable\s*=\s*(no|false|0)\s*$/ig;
+ $do_bootfloppy = '' if /^\s*do_bootfloppy\s*=\s*(no|false|0)\s*$/ig;
+ $do_bootloader = '' if /^\s*do_bootloader\s*=\s*(no|false|0)\s*$/ig;
+ $relative_links = '' if /^\s*relative_links \s*=\s*(no|false|0)\s*$/ig;
+ $use_hard_links = '' if /^\s*use_hard_links\s*=\s*(no|false|0)\s*$/ig;
+ $silent_loader = '' if /^\s*silent_loader\s*=\s*(no|false|0)\s*$/ig;
+ $warn_reboot = '' if /^\s*warn_reboot\s*=\s*(no|false|0)\s*$/ig;
+ $minimal_swap = '' if /^\s*minimal_swap\s*=\s*(no|false|0)\s*$/ig;
+ $ignore_depmod_err = '' if /^\s*ignore_depmod_err\s*=\s*(no|false|0)\s*$/ig;
+ $relink_src_link = '' if /^\s*relink_src_link\s*=\s*(no|false|0)\s*$/ig;
+ $relink_build_link = '' if /^\s*relink_build_link\s*=\s*(no|false|0)\s*$/ig;
+ $force_build_link = '' if /^\s*force_build_link\s*=\s*(no|false|0)\s*$/ig;
+
+ $do_symlink = "Yes" if /^\s*do_symlinks\s*=\s*(yes|true|1)\s*$/ig;
+ $no_symlink = "Yes" if /^\s*no_symlinks\s*=\s*(yes|true|1)\s*$/ig;
+ $reverse_symlink = "Yes" if /^\s*reverse_symlinks\s*=\s*(yes|true|1)\s*$/ig;
+ $link_in_boot = "Yes" if /^\s*image_in_boot\s*=\s*(yes|true|1)\s*$/ig;
+ $link_in_boot = "Yes" if /^\s*link_in_boot\s*=\s*(yes|true|1)\s*$/ig;
+ $move_image = "Yes" if /^\s*move_image\s*=\s*(yes|true|1)\s*$/ig;
+ $do_boot_enable = "Yes" if /^\s*do_boot_enable\s*=\s*(yes|true|1)\s*$/ig;
+ $do_bootfloppy = "Yes" if /^\s*do_bootfloppy\s*=\s*(yes|true|1)\s*$/ig;
+ $do_bootloader = "Yes" if /^\s*do_bootloader\s*=\s*(yes|true|1)\s*$/ig;
+ $relative_links = "Yes" if /^\s*relative_links\s*=\s*(yes|true|1)\s*$/ig;
+ $use_hard_links = "Yes" if /^\s*use_hard_links\s*=\s*(yes|true|1)\s*$/ig;
+ $silent_loader = 'Yes' if /^\s*silent_loader\s*=\s*(yes|true|1)\s*$/ig;
+ $warn_reboot = 'Yes' if /^\s*warn_reboot\s*=\s*(yes|true|1)\s*$/ig;
+ $minimal_swap = 'Yes' if /^\s*minimal_swap\s*=\s*(yes|true|1)\s*$/ig;
+ $ignore_depmod_err = 'Yes' if /^\s*ignore_depmod_err\s*=\s*(yes|true|1)\s*$/ig;
+ $relink_src_link = 'Yes' if /^\s*relink_src_link\s*=\s*(yes|true|1)\s*$/ig;
+ $relink_build_link = 'Yes' if /^\s*relink_build_link\s*=\s*(yes|true|1)\s*$/ig;
+ $force_build_link = 'Yes' if /^\s*force_build_link\s*=\s*(yes|true|1)\s*$/ig;
+
+ $image_dest = "$1" if /^\s*image_dest\s*=\s*(\S+)/ig;
+ $postinst_hook = "$1" if /^\s*postinst_hook\s*=\s*(\S+)/ig;
+ $postrm_hook = "$1" if /^\s*postrm_hook\s*=\s*(\S+)/ig;
+ $preinst_hook = "$1" if /^\s*preinst_hook\s*=\s*(\S+)/ig;
+ $prerm_hook = "$1" if /^\s*prerm_hook\s*=\s*(\S+)/ig;
+ $ramdisk = "$1" if /^\s*ramdisk\s*=\s*(.+)$/ig;
+ }
+ close CONF;
+ $have_conffile = "Yes";
+ $have_conffile = "Yes"; # stop perl complaining
+ }
+}
+
+$ENV{KERNEL_ARCH}=$kernel_arch if $kernel_arch;
+
+# About to upgrade this package from version $2 TO THIS VERSION.
+# "prerm upgrade" has already been called for the old version of
+# this package.
+
+sub find_initrd_tool {
+ my $hostversion = shift;
+ my $version = shift;
+ my @ramdisks =
+ grep {
+ my $args =
+ "$_ " .
+ "--supported-host-version=$hostversion " .
+ "--supported-target-version=$version " .
+ "1>/dev/null 2>&1"
+ ;
+ system($args) == 0;
+ }
+ split (/[:,\s]+/, $ramdisk);
+}
+
+sub check {
+ my $version = shift;
+ my $lib_modules="$modules_base/$version";
+ my $message = '';
+
+ if (-d "$lib_modules") {
+ opendir(DIR, $lib_modules) || die "can’t opendir $lib_modules: $!";
+ my @children = readdir(DIR);
+ if ($#children > 1) {
+ my @dirs = grep { -d "$lib_modules/$_" } @children;
+ if ($#dirs > 1) { # we have subdirs
+ my $dir_message='';
+ for my $dir (@dirs) {
+ if ($dir =~/kernel$/) {
+ $dir_message="An older install was detected.\n";
+ }
+ else {
+ $dir_message="Module sub-directories were detected.\n"
+ unless $dir_message;
+ }
+ }
+ $message += $dir_message if $dir_message;
+ }
+
+ my @links = grep { -l "$lib_modules/$_" } @children;
+ if ($#links > -1) {
+ my $links_message = '';
+ for my $link (@links) {
+ next if ($link =~ /^build$/);
+ next if ($link =~ /^source$/);
+ $links_message = "Symbolic links were detected in $modules_base/$version.\n";
+ }
+ $message += $links_message if $links_message;
+ }
+ my @files = grep { -f "$lib_modules/$_" } @children;
+ $message += "Additional files also exist in $modules_base/$version.\n"
+ if ($#files > -1);
+ }
+ }
+ else { $message .= "$lib_modules does not exist. ";}
+ return $message;
+}
+
+if (-d "$modules_base/$version") {
+ my $errors=check($version);
+ warn "Info:\n$errors\n" if $errors;
+}
+
+# set the env var stem
+$ENV{'STEM'} = "linux";
+
+sub exec_script {
+ my $type = shift;
+ my $script = shift;
+ print STDERR "Running $type hook script $script.\n";
+ system ("$script $version $realimageloc$kimage-$version") &&
+ print STDERR "User $type hook script [$script] ";
+ if ($?) {
+ if ($? == -1) {
+ print STDERR "failed to execute: $!\n";
+ }
+ elsif ($? & 127) {
+ printf STDERR "died with signal %d, %s coredump\n",
+ ($? & 127), ($? & 128) ? 'with' : 'without';
+ }
+ else {
+ printf STDERR "exited with value %d\n", $? >> 8;
+ }
+ exit $? >> 8;
+ }
+}
+sub run_hook {
+ my $type = shift;
+ my $script = shift;
+ if ($script =~ m,^/,) {
+ # Full path provided for the hook script
+ if (-x "$script") {
+ &exec_script($type,$script);
+ }
+ else {
+ die "The provided $type hook script [$script] could not be run.\n";
+ }
+ }
+ else {
+ # Look for it in a safe path
+ for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') {
+ if (-x "$path/$script") {
+ &exec_script($type, "$path/$script");
+ return 0;
+ }
+ }
+ # No luck
+ print STDERR "Could not find $type hook script [$script].\n";
+ die "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n";
+ }
+}
+
+
+my $options;
+for (@ARGV) {
+ s,','\\'',g;
+ $options .= " '$_'";
+}
+$ENV{'DEB_MAINT_PARAMS'}="$options";
+
+## Run user hook script here, if any
+if (-x "$preinst_hook") {
+ &run_hook("preinst", $preinst_hook);
+}
+if (-d "/etc/kernel/preinst.d") {
+ print STDERR "Examining /etc/kernel/preinst.d/\n";
+ system ("run-parts --verbose --exit-on-error --arg=$version" .
+ " --arg=$realimageloc$kimage-$version" .
+ " /etc/kernel/preinst.d") &&
+ die "Failed to process /etc/kernel/preinst.d";
+}
+if (-d "/etc/kernel/preinst.d/$version") {
+ print STDERR "Examining /etc/kernel/preinst.d/$version.\n";
+ system ("run-parts --verbose --exit-on-error --arg=$version" .
+ " --arg=$realimageloc$kimage-$version" .
+ " /etc/kernel/preinst.d/$version") &&
+ die "Failed to process /etc/kernel/preinst.d/$version";
+}
+print STDERR "Done.\n";
+
+exit 0;
+
+__END__
+
+
diff --git a/debian/control-scripts/prerm b/debian/control-scripts/prerm
new file mode 100644
index 00000000000000..07e41461d3ab58
--- /dev/null
+++ b/debian/control-scripts/prerm
@@ -0,0 +1,312 @@
+#! /usr/bin/perl
+# -*- Mode: Perl -*-
+# image.prerm ---
+# Author : root ( root@melkor.pilgrim.umass.edu )
+# Created On : Fri May 17 03:28:59 1996
+# Created On Node : melkor.pilgrim.umass.edu
+# Last Modified By : Manoj Srivastava
+# Last Modified On : Sat Aug 5 13:14:17 2006
+# Last Machine Used: glaurung.internal.golden-gryphon.com
+# Update Count : 85
+# Status : Unknown, Use with caution!
+# HISTORY :
+# Description :
+#
+#
+# $Id: image.prerm,v 1.22 2003/10/07 16:24:20 srivasta Exp $
+#
+#
+#use strict;
+
+$|=1;
+# Predefined values:
+my $version = "=V";
+my $link_in_boot = ""; # Should be empty, mostly
+my $no_symlink = ""; # Should be empty, mostly
+my $reverse_symlink = ""; # Should be empty, mostly
+my $do_symlinks = "Yes"; # target machine defined
+my $do_boot_enable = "Yes"; # target machine defined
+my $do_bootfloppy = "Yes"; # target machine defined
+my $do_bootloader = "Yes"; # target machine defined
+my $move_image = ''; # target machine defined
+my $kimage = "=K"; # Should be empty, mostly
+my $loader = "=L"; # lilo, silo, quik, palo, vmelilo, or nettrom
+my $image_dir = "/boot"; # where the image is located
+my $clobber_modules = ''; # target machine defined
+my $initrd = "YES"; # initrd kernel
+my $use_hard_links = ''; # hardlinks do not wirk across fs boundaries
+my $postinst_hook = ''; #Normally we do not
+my $postrm_hook = ''; #Normally we do not
+my $preinst_hook = ''; #Normally we do not
+my $prerm_hook = ''; #Normally we do not
+my $minimal_swap = ''; # Do not swap symlinks
+my $ignore_depmod_err = ''; # normally we do not
+my $relink_build_link = 'YES'; # There is no harm in checking the link
+my $force_build_link = ''; # There is no harm in checking the link
+my $kernel_arch = "=B";
+my $ramdisk = "/usr/sbin/update-initramfs";
+my $package_name = "linux-image-$version";
+
+my $Loader = "NoLOADER"; #
+$Loader = "LILO" if $loader =~ /^lilo/io;
+$Loader = "SILO" if $loader =~ /^silo/io;
+$Loader = "QUIK" if $loader =~ /^quik/io;
+$Loader = "yaboot" if $loader =~ /^yaboot/io;
+$Loader = "PALO" if $loader =~ /^palo/io;
+$Loader = "NETTROM" if $loader =~ /^nettrom/io;
+$Loader = "VMELILO" if $loader =~ /^vmelilo/io;
+$Loader = "ZIPL" if $loader =~ /^zipl/io;
+$Loader = "ELILO" if $loader =~ /^elilo/io;
+
+
+# This should not point to /tmp, because of security risks.
+my $temp_file_name = "/var/log/$loader" . "_log.$$";
+
+#known variables
+my $image_dest = "/";
+my $realimageloc = "/$image_dir/";
+my $have_conffile = "";
+my $CONF_LOC = '/etc/kernel-img.conf';
+my $relative_links = '';
+my $silent_loader = '';
+my $warn_reboot = 'Yes'; # Warn that we are installing a version of
+ # the kernel we are running
+
+# remove multiple leading slashes; make sure there is at least one.
+$realimageloc =~ s|^/*|/|o;
+$realimageloc =~ s|/+|/|o;
+
+my $DEBUG = 0;
+
+# Variables used
+my $image='';
+my $ret=0;
+my $seen='';
+my $answer='';
+my $running = '';
+my $WouldInvalidate = 0;
+
+if ($ARGV[0] && ($ARGV[0] =~ /remove/ || $ARGV[0] =~ /upgrade/)) {
+ if (-l "/usr/doc/linux-image-$version") {
+ unlink "/usr/doc/linux-image-$version";
+ }
+}
+
+# Ignore all invocations uxcept when called on to remove
+exit 0 unless ($ARGV[0] && $ARGV[0] =~ /remove/) ;
+
+# Paranoid check to make sure that the correct value is put in there
+if (! $kimage) { $kimage = "vmlinuz";} # Hmm. empty
+elsif ($kimage =~ m/^b?uImage$/o) { $kimage = "vmlinuz";} # these produce vmlinuz
+elsif ($kimage =~ m/^b?zImage$/o) { $kimage = "vmlinuz";} # these produce vmlinuz
+elsif ($kimage =~ m/^[iI]mage$/o) { my $nop = $kimage; }
+elsif ($kimage =~ m/^vmlinux$/o) { my $nop = $kimage; }
+else { $kimage = "vmlinuz";} # Default
+
+if (-r "$CONF_LOC" && -f "$CONF_LOC" ) {
+ if (open(CONF, "$CONF_LOC")) {
+ while (<CONF>) {
+ chomp;
+ s/\#.*$//g;
+ next if /^\s*$/;
+
+ $do_symlink = "" if /^\s*do_symlinks\s*=\s*(no|false|0)\s*$/ig;
+ $no_symlink = "" if /^\s*no_symlinks\s*=\s*(no|false|0)\s*$/ig;
+ $reverse_symlink = "" if /^\s*reverse_symlinks\s*=\s*(no|false|0)\s*$/ig;
+ $link_in_boot = "" if /^\s*image_in_boot\s*=\s*(no|false|0)\s*$/ig;
+ $link_in_boot = "" if /^\s*link_in_boot\s*=\s*(no|false|0)\s*$/ig;
+ $move_image = "" if /^\s*move_image\s*=\s*(no|false|0)\s*$/ig;
+ $clobber_modules = '' if /^\s*clobber_modules\s*=\s*(no|false|0)\s*$/ig;
+ $do_boot_enable = '' if /^\s*do_boot_enable\s*=\s*(no|false|0)\s*$/ig;
+ $do_bootfloppy = '' if /^\s*do_bootfloppy\s*=\s*(no|false|0)\s*$/ig;
+ $relative_links = '' if /^\s*relative_links \s*=\s*(no|false|0)\s*$/ig;
+ $do_bootloader = '' if /^\s*do_bootloader\s*=\s*(no|false|0)\s*$/ig;
+ $do_initrd = '' if /^\s*do_initrd\s*=\s*(no|false|0)\s*$/ig;
+ $use_hard_links = '' if /^\s*use_hard_links\s*=\s*(no|false|0)\s*$/ig;
+ $silent_loader = '' if /^\s*silent_loader\s*=\s*(no|false|0)\s*$/ig;
+ $warn_reboot = '' if /^\s*warn_reboot\s*=\s*(no|false|0)\s*$/ig;
+ $minimal_swap = '' if /^\s*minimal_swap\s*=\s*(no|false|0)\s*$/ig;
+ $ignore_depmod_err = '' if /^\s*ignore_depmod_err\s*=\s*(no|false|0)\s*$/ig;
+ $relink_build_link = '' if /^\s*relink_build_link\s*=\s*(no|false|0)\s*$/ig;
+ $force_build_link = '' if /^\s*force_build_link\s*=\s*(no|false|0)\s*$/ig;
+
+
+ $do_symlink = "Yes" if /^\s*do_symlinks\s*=\s*(yes|true|1)\s*$/ig;
+ $no_symlink = "Yes" if /^\s*no_symlinks\s*=\s*(yes|true|1)\s*$/ig;
+ $reverse_symlink = "Yes" if /^\s*reverse_symlinks\s*=\s*(yes|true|1)\s*$/ig;
+ $link_in_boot = "Yes" if /^\s*image_in_boot\s*=\s*(yes|true|1)\s*$/ig;
+ $link_in_boot = "Yes" if /^\s*link_in_boot\s*=\s*(yes|true|1)\s*$/ig;
+ $move_image = "Yes" if /^\s*move_image\s*=\s*(yes|true|1)\s*$/ig;
+ $clobber_modules = "Yes" if /^\s*clobber_modules\s*=\s*(yes|true|1)\s*$/ig;
+ $do_boot_enable = "Yes" if /^\s*do_boot_enable\s*=\s*(yes|true|1)\s*$/ig;
+ $do_bootfloppy = "Yes" if /^\s*do_bootfloppy\s*=\s*(yes|true|1)\s*$/ig;
+ $do_bootloader = "Yes" if /^\s*do_bootloader\s*=\s*(yes|true|1)\s*$/ig;
+ $relative_links = "Yes" if /^\s*relative_links\s*=\s*(yes|true|1)\s*$/ig;
+ $do_initrd = "Yes" if /^\s*do_initrd\s*=\s*(yes|true|1)\s*$/ig;
+ $use_hard_links = "Yes" if /^\s*use_hard_links\s*=\s*(yes|true|1)\s*$/ig;
+ $silent_loader = 'Yes' if /^\s*silent_loader\s*=\s*(yes|true|1)\s*$/ig;
+ $warn_reboot = 'Yes' if /^\s*warn_reboot\s*=\s*(yes|true|1)\s*$/ig;
+ $minimal_swap = 'Yes' if /^\s*minimal_swap\s*=\s*(yes|true|1)\s*$/ig;
+ $ignore_depmod_err = 'Yes' if /^\s*ignore_depmod_err\s*=\s*(yes|true|1)\s*$/ig;
+ $relink_build_link = 'Yes' if /^\s*relink_build_link\s*=\s*(yes|true|1)\s*$/ig;
+ $force_build_link = 'Yes' if /^\s*force_build_link\s*=\s*(yes|true|1)\s*$/ig;
+
+ $image_dest = "$1" if /^\s*image_dest\s*=\s*(\S+)/ig;
+ $postinst_hook = "$1" if /^\s*postinst_hook\s*=\s*(\S+)/ig;
+ $postrm_hook = "$1" if /^\s*postrm_hook\s*=\s*(\S+)/ig;
+ $preinst_hook = "$1" if /^\s*preinst_hook\s*=\s*(\S+)/ig;
+ $prerm_hook = "$1" if /^\s*prerm_hook\s*=\s*(\S+)/ig;
+ $ramdisk = "$1" if /^\s*ramdisk\s*=\s*(.+)$/ig;
+ }
+ close CONF;
+ $have_conffile = "Yes";
+ }
+}
+
+
+$ENV{KERNEL_ARCH}=$kernel_arch if $kernel_arch;
+
+#check to see if we are trying to remove a running kernel
+# if so we abort right now.
+chop($running=`uname -r`);
+if ($running eq $version) {
+ print STDERR "WARN: Proceeding with removing running kernel image.\n";
+}
+
+#Now, they have an alternate kernel which they are currently running
+
+# This is just us being nice to lilo users.
+
+chdir("/") or die "could not chdir to /:$!\n";
+
+if (-f "/etc/$loader.conf") { #I know, could be a link, but ..
+ open (LILO, "/etc/$loader.conf") || &success(); # this is not critical
+ while (<LILO>) {
+ chop;
+ s/\#.*//; # nix the comments
+ next unless /^\s*image\s*=\s(\S+)/o;
+ $image = $1;
+ if ($image && -e $image) {
+ while (defined($image) && -l $image) {
+ $image = readlink ($image);
+ }
+ if (defined($image) && -e $image) {
+ $WouldInvalidate |= $image =~ /$kimage-$version/;
+ }
+ else {
+ &success(); # invalid $loader.conf file
+ }
+ }
+ else {
+ &success(); # invalid $loader.conf file
+ }
+ }
+ close (LILO);
+ if ($WouldInvalidate) {
+ print STFERR "WARN: Proceeding with removing running kernel image.\n";
+ &success();
+ }
+}
+
+
+# set the env var stem
+$ENV{'STEM'} = "linux";
+
+sub exec_script {
+ my $type = shift;
+ my $script = shift;
+ print STDERR "Running $type hook script $script.\n";
+ system ("$script $version $realimageloc$kimage-$version") &&
+ print STDERR "User $type hook script [$script] ";
+ if ($?) {
+ if ($? == -1) {
+ print STDERR "failed to execute: $!\n";
+ }
+ elsif ($? & 127) {
+ printf STDERR "died with signal %d, %s coredump\n",
+ ($? & 127), ($? & 128) ? 'with' : 'without';
+ }
+ else {
+ printf STDERR "exited with value %d\n", $? >> 8;
+ }
+ exit $? >> 8;
+ }
+}
+sub run_hook {
+ my $type = shift;
+ my $script = shift;
+ if ($script =~ m,^/,) {
+ # Full path provided for the hook script
+ if (-x "$script") {
+ &exec_script($type,$script);
+ }
+ else {
+ die "The provided $type hook script [$script] could not be run.\n";
+ }
+ }
+ else {
+ # Look for it in a safe path
+ for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') {
+ if (-x "$path/$script") {
+ &exec_script($type, "$path/$script");
+ return 0;
+ }
+ }
+ # No luck
+ print STDERR "Could not find $type hook script [$script].\n";
+ die "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n";
+ }
+}
+
+
+my $options;
+for (@ARGV) {
+ s,','\\'',g;
+ $options .= " '$_'";
+}
+$ENV{'DEB_MAINT_PARAMS'}="$options";
+
+## Run user hook script here, if any
+if (-x "$prerm_hook") {
+ &run_hook("prerm", $prerm_hook);
+}
+if (-d "/etc/kernel/prerm.d") {
+ print STDERR "Examining /etc/kernel/prerm.d.\n";
+ system ("run-parts --verbose --exit-on-error --arg=$version " .
+ "--arg=$realimageloc$kimage-$version /etc/kernel/prerm.d") &&
+ die "Failed to process /etc/kernel/prerm.d";
+}
+if (-d "/etc/kernel/prerm.d/$version") {
+ print STDERR "Examining /etc/kernel/prerm.d/$version.\n";
+ system ("run-parts --verbose --exit-on-error --arg=$version" .
+ " --arg=$realimageloc$kimage-$version " .
+ "/etc/kernel/prerm.d/$version") &&
+ die "Failed to process /etc/kernel/prerm.d/$version";
+}
+
+sub success () {
+ # NOTE: need to keep this list in sync with rules.d/2-binary-arch.mk
+ my %files_to_keep = (
+ 'modules.builtin' => 1,
+ 'modules.order' => 1,
+ );
+ my $short;
+ for my $file (</lib/modules/$version/modules.*>) {
+ $short = $file; $short =~ s,.*/,,;
+ if (!defined $files_to_keep{$short}) {
+ unlink "$file";
+ }
+ }
+ exit 0;
+}
+
+
+
+&success();
+exit 0;
+__END__
+
+
+
+
+
diff --git a/debian/debian.env b/debian/debian.env
new file mode 100644
index 00000000000000..ee46a9062f5725
--- /dev/null
+++ b/debian/debian.env
@@ -0,0 +1 @@
+DEBIAN=debian.dajia
diff --git a/debian/docs/README.inclusion-list b/debian/docs/README.inclusion-list
new file mode 100644
index 00000000000000..b025393e7c19f8
--- /dev/null
+++ b/debian/docs/README.inclusion-list
@@ -0,0 +1,51 @@
+This README describes the reason for, and the use of, module
+inclusion lists.
+
+The original Hardy release had the notion of sub-flavours,
+e.g., a flavour that was constructed as a subset of an existing flavour.
+For example, the virtual flavour was extracted from the server flavour using
+a subset of the server flavour modules. However, there were some difficult
+mainteneance issues with regard to packaging, make rules, and scripts. This
+re-implementation of the sub-flavours philosophy is hopefully simpler,
+and retrofitable to all releases.
+
+A module inclusion list looks at the problem of of constructing a package
+from the perspective of what modules do we _want_ in the package, as opposed
+to what modules we _don't_ want. As the kernel matures, more and more devices are added
+which makes the problem of configuration maintenance a real pain in the ass.
+If we took the approach of disabling all of the config options that we don't want,
+then the differences between flavours will quickly become quite large, making
+it difficult to quickly compare the individual flavour configs. Each time a
+new config option is added then we also have to make a decision about disabling in
+order to continue to keep the minimal number of modules.
+
+A module inclusion list is applied on a per-flavour basis. For example,
+debian.<BRANCH>/control.d/${flavour}.inclusion-list. For example, the
+config for virtual is very close to server and generic, but the inclusion list
+causes the virtual package to be constructed with _only_ the modules described
+in the inclusion list.
+
+The inclusion list format is a simple bash regular expression list of files. For example,
+
+arch/*/{crypto,kernel,oprofile}
+drivers/acpi/*
+drivers/ata/ahci.ko
+
+These 3 regular expression forms are suitable for expansion by bash and as inputs to 'find'.
+See debian/scripts/module-inclusion for details.
+
+There are 2 log files created as a side effect of the application of the module
+inclusion list; $(flavour).inclusion-list.log and $(flavour).depmod.log.
+
+$(flavour).inclusion-list.log : This log is created while the inclusion list
+modules are being copied. If any are missing, then those warnings go in this log.
+While its not considered a fatal error, you should endevour to correct your inclusion
+list such that there are no missing modules.
+
+$(flavour).depmod.log : The log is created as a result of running depmod on the
+resulting set of modules. If there are missing symbols then you'll find that information
+here. Again, you should modify your inclusion list such that there are no missing
+symbols.
+
+Tim Gardner <tim.gardner@canonical.com>
+June 2, 2010
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 00000000000000..92ec033af3ed88
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,235 @@
+#!/usr/bin/make -f
+#
+# $(DEBIAN)/rules for Ubuntu linux
+#
+# Use this however you want, just give credit where credit is due.
+#
+# Copyright (c) 2007 Ben Collins <bcollins@ubuntu.com>
+#
+
+DEBIAN=$(shell awk -F= '($$1 == "DEBIAN") { print $$2 }' <debian/debian.env)
+
+# dpkg-buildpackage passes options that are incomptatible
+# with the kernel build.
+unexport CFLAGS
+unexport LDFLAGS
+
+export LC_ALL=C
+export SHELL=/bin/bash -e
+
+# Where do we find the common configuration.
+export DROOT=debian
+
+# Common variables for all architectures
+include $(DROOT)/rules.d/0-common-vars.mk
+
+# Pull in some arch specific stuff
+-include $(DEBIAN)/rules.d/$(arch).mk
+
+# Maintainer targets
+include $(DROOT)/rules.d/1-maintainer.mk
+
+# Stages
+ifeq ($(DEB_STAGE),stage1)
+ do_tools=false
+ do_doc_package=false
+ do_source_package=false
+ do_flavour_image_package=false
+ do_flavour_header_package=false
+endif
+
+# Debian Build System targets
+binary: binary-indep binary-arch
+
+build: build-arch build-indep
+
+clean: debian/control
+ dh_testdir
+ dh_testroot
+ dh_clean
+
+ # d-i stuff
+ rm -rf $(DEBIAN)/d-i-$(arch)
+
+ # normal build junk
+ rm -rf $(DEBIAN)/abi/$(release)-$(revision)
+ rm -rf $(builddir)
+ rm -f $(stampdir)/stamp-*
+ rm -rf $(DEBIAN)/linux-*
+
+ # This gets rid of the d-i packages in control
+ cp -f $(DEBIAN)/control.stub $(DEBIAN)/control
+ cp $(DEBIAN)/changelog debian/changelog
+
+ # Install the copyright information.
+ cp $(DEBIAN)/copyright debian/copyright
+
+distclean: clean
+ rm -rf $(DEBIAN)/control $(DEBIAN)/control.stub \
+ $(DEBIAN)/d-i/kernel-versions debian/changelog \
+ debian/control debian/control.stub debian/copyright
+
+# Builds the image, arch headers and debug packages
+include $(DROOT)/rules.d/2-binary-arch.mk
+
+# Rules for building the udebs ($(DEBIAN)-installer)
+include $(DROOT)/rules.d/5-udebs.mk
+
+# Builds the source, doc and linux-headers indep packages
+include $(DROOT)/rules.d/3-binary-indep.mk
+
+# Various checks to be performed on builds
+include $(DROOT)/rules.d/4-checks.mk
+
+# Misc stuff
+$(DEBIAN)/control.stub: $(DEBIAN)/d-i/kernel-versions.in \
+ $(DROOT)/scripts/control-create \
+ $(DEBIAN)/control.stub.in \
+ $(DEBIAN)/changelog \
+ $(wildcard $(DEBIAN)/control.d/* $(DEBIAN)/sub-flavours/*.vars)
+ for i in $(DEBIAN)/d-i/kernel-versions.in $(DEBIAN)/control.stub.in; do \
+ new=`echo $$i | sed 's/\.in$$//'`; \
+ cat $$i | sed -e 's/PKGVER/$(release)/g' \
+ -e 's/ABINUM/$(abinum)/g' \
+ -e 's/SRCPKGNAME/$(src_pkg_name)/g' \
+ > $$new; \
+ done
+ flavours="$(wildcard $(DEBIAN)/control.d/vars.* $(DEBIAN)/sub-flavours/*.vars)";\
+ for i in $$flavours; do \
+ $(SHELL) $(DROOT)/scripts/control-create $$i | \
+ sed -e 's/PKGVER/$(release)/g' \
+ -e 's/ABINUM/$(abinum)/g' \
+ -e 's/SRCPKGNAME/$(src_pkg_name)/g' \
+ >> $(DEBIAN)/control.stub; \
+ done
+ cp $(DEBIAN)/control.stub $(DEBIAN)/control
+
+.PHONY: debian/control
+debian/control: $(DEBIAN)/control.stub
+ rm -rf $(builddir)/modules $(builddir)/firmware \
+ $(builddir)/kernel-versions $(builddir)/package-list \
+ $(builddir)/$(DEBIAN)
+ mkdir -p $(builddir)/modules/$(arch)/
+ cp $(DEBIAN)/d-i/modules/* $(builddir)/modules/$(arch)/
+ mkdir -p $(builddir)/firmware/$(arch)/
+ cp $(DEBIAN)/d-i/firmware/* $(builddir)/firmware/$(arch)/
+ cp $(DEBIAN)/d-i/package-list $(DEBIAN)/d-i/kernel-versions $(builddir)/
+ touch $(builddir)/modules/$(arch)/kernel-image
+ # kernel-wedge needs to poke around in $(DEBIAN)/
+ ln -nsf $(CURDIR)/debian $(builddir)/debian
+
+ # Some files may need to differ between architectures
+ if [ -d $(DEBIAN)/d-i/modules-$(arch) ]; then \
+ cp $(DEBIAN)/d-i/modules-$(arch)/* \
+ $(builddir)/modules/$(arch)/; \
+ fi
+ if [ -d $(DEBIAN)/d-i/firmware-$(arch) ]; then \
+ cp $(DEBIAN)/d-i/firmware-$(arch)/* \
+ $(builddir)/firmware/$(arch)/; \
+ fi
+
+ # Remove unwanted stuff for this architecture
+ if [ -r "$(DEBIAN)/d-i/exclude-modules.$(arch)" ]; then \
+ (cat $(DEBIAN)/d-i/exclude-modules.$(arch); \
+ ls $(builddir)/modules/$(arch)/) | sort | uniq -d | \
+ (cd $(builddir)/modules/$(arch)/; xargs rm -f); \
+ fi
+ if [ -r "$(DEBIAN)/d-i/exclude-firmware.$(arch)" ]; then \
+ (cat $(DEBIAN)/d-i/exclude-firmware.$(arch); \
+ ls $(builddir)/firmware/$(arch)/) | sort | uniq -d | \
+ (cd $(builddir)/firmware/$(arch)/; xargs rm -f); \
+ fi
+
+ # Per flavour module lists
+ flavour_modules=`ls $(DEBIAN)/d-i/modules.$(arch)-* 2>/dev/null` \
+ || true; \
+ if [ "$$flavour_modules" != "" ]; then \
+ for flav in $$flavour_modules; do \
+ name=`echo $$flav | sed 's/.*\/modules.$(arch)-//'`; \
+ mkdir $(builddir)/modules/$(arch)-$$name; \
+ (cd $(builddir)/modules/; tar cf - `cat ../$$flav`) | \
+ (cd $(builddir)/modules/$(arch)-$$name/; tar xf -); \
+ touch $(builddir)/modules/$(arch)-$$name/kernel-image; \
+ done; \
+ fi
+ flavour_firmware=`ls $(DEBIAN)/d-i/firmware.$(arch)-* 2>/dev/null` \
+ || true; \
+ if [ "$$flavour_firmware" != "" ]; then \
+ for flav in $$flavour_firmware; do \
+ name=`echo $$flav | sed 's/.*\/firmware.$(arch)-//'`; \
+ mkdir $(builddir)/firmware/$(arch)-$$name; \
+ (cd $(builddir)/firmware/; tar cf - `cat ../$$flav`) | \
+ (cd $(builddir)/firmware/$(arch)-$$name/; tar xf -);\
+ touch $(builddir)/firmware/$(arch)-$$name/kernel-image; \
+ done; \
+ fi
+
+ # Some files may need to differ between flavours
+ flavour_module_dirs=`ls -d $(DEBIAN)/d-i/modules-$(arch)-* 2>/dev/null`\
+ || true; \
+ if [ "$$flavour_module_dirs" ]; then \
+ for flav in $$flavour_module_dirs; do \
+ name=`echo $$flav | sed 's/.*\/modules-$(arch)-//'`; \
+ [ -d $(builddir)/modules/$(arch)-$$name ] || \
+ cp -a $(builddir)/modules/$(arch) \
+ modules/$(arch)-$$name; \
+ cp $$flav/* $(builddir)/modules/$(arch)-$$name/; \
+ done; \
+ fi
+ flavour_firmware_dirs=`ls -d $(DEBIAN)/d-i/firmware-$(arch)-* 2>/dev/null`\
+ || true; \
+ if [ "$$flavour_firmware_dirs" ]; then \
+ for flav in $$flavour_firmware_dirs; do \
+ name=`echo $$flav | sed 's/.*\/firmware-$(arch)-//'`; \
+ [ -d $(builddir)/firmware/$(arch)-$$name ] || \
+ cp -a $(builddir)/firmware/$(arch) \
+ firmware/$(arch)-$$name; \
+ cp $$flav/* $(builddir)/firmware/$(arch)-$$name/; \
+ done; \
+ fi
+
+ # Remove unwanted stuff for each flavour
+ flavour_exclude=`ls $(DEBIAN)/d-i/exclude-modules.$(arch)-* 2>/dev/null`\
+ || true; \
+ if [ "$$flavour_exclude" ]; then \
+ for flav in $$flavour_exclude; do \
+ name=`echo $$flav | sed 's/.*\/exclude-modules.$(arch)-//'`;\
+ [ -d $(builddir)/modules/$(arch)-$$name ] || \
+ cp -a $(builddir)/modules/$(arch) \
+ $(builddir)/modules/$(arch)-$$name; \
+ (cat $$flav; \
+ ls $(builddir)/modules/$(arch)-$$name) | \
+ sort | uniq -d | \
+ (cd $(builddir)/modules/$(arch)-$$name/; \
+ xargs rm -f); \
+ done; \
+ fi
+ flavour_exclude=`ls $(DEBIAN)/d-i/exclude-firmware.$(arch)-* 2>/dev/null`\
+ || true; \
+ if [ "$$flavour_exclude" ]; then \
+ for flav in $$flavour_exclude; do \
+ name=`echo $$flav | sed 's/.*\/exclude-firmware.$(arch)-//'`;\
+ [ -d $(builddir)/firmware/$(arch)-$$name ] || \
+ cp -a $(builddir)/firmware/$(arch) \
+ $(builddir)/firmware/$(arch)-$$name; \
+ (cat $$flav; \
+ ls $(builddir)/firmware/$(arch)-$$name) | \
+ sort | uniq -d | \
+ (cd $(builddir)/firmware/$(arch)-$$name/; \
+ xargs rm -f); \
+ done; \
+ fi
+
+ if [ ! -d $(builddir)/modules/$(build_arch) ]; then \
+ mkdir -p $(builddir)/modules/$(build_arch); \
+ cp $(builddir)/modules/$(arch)/* \
+ $(builddir)/modules/$(build_arch); \
+ fi
+ if [ ! -d $(builddir)/firmware/$(build_arch) ]; then \
+ mkdir -p $(builddir)/firmware/$(build_arch); \
+ cp $(builddir)/firmware/$(arch)/* \
+ $(builddir)/firmware/$(build_arch); \
+ fi
+
+ cp $(DEBIAN)/control.stub debian/control.stub
+ cd $(builddir) && kernel-wedge gen-control > $(CURDIR)/debian/control
diff --git a/debian/rules.d/0-common-vars.mk b/debian/rules.d/0-common-vars.mk
new file mode 100644
index 00000000000000..9022d53fad2cff
--- /dev/null
+++ b/debian/rules.d/0-common-vars.mk
@@ -0,0 +1,227 @@
+#
+# The source package name will be the first token from $(DEBIAN)/changelog
+#
+src_pkg_name=$(shell sed -n '1s/^\(.*\) (.*).*$$/\1/p' $(DEBIAN)/changelog)
+
+# Get some version info
+series := oneiric
+release := $(shell sed -n '1s/^$(src_pkg_name).*(\(.*\)-.*).*$$/\1/p' $(DEBIAN)/changelog)
+revisions := $(shell sed -n 's/^$(src_pkg_name)\ .*($(release)-\(.*\)).*$$/\1/p' $(DEBIAN)/changelog | tac)
+revision ?= $(word $(words $(revisions)),$(revisions))
+prev_revisions := $(filter-out $(revision),0.0 $(revisions))
+prev_revision := $(word $(words $(prev_revisions)),$(prev_revisions))
+
+family=ubuntu
+
+# This is an internally used mechanism for the daily kernel builds. It
+# creates packages whose ABI is suffixed with a minimal representation of
+# the current git HEAD sha. If .git/HEAD is not present, then it uses the
+# uuidgen program,
+#
+# AUTOBUILD can also be used by anyone wanting to build a custom kernel
+# image, or rebuild the entire set of Ubuntu packages using custom patches
+# or configs.
+AUTOBUILD=
+
+#
+# This is a way to support some external variables. A good example is
+# a local setup for ccache and distcc See LOCAL_ENV_CC and
+# LOCAL_ENV_DISTCC_HOSTS in the definition of kmake.
+# For example:
+# LOCAL_ENV_CC="ccache distcc"
+# LOCAL_ENV_DISTCC_HOSTS="localhost 10.0.2.5 10.0.2.221"
+#
+-include $(CURDIR)/../.$(series)-env
+
+ifneq ($(AUTOBUILD),)
+skipabi = true
+skipmodule = true
+skipdbg = true
+gitver=$(shell if test -f .git/HEAD; then cat .git/HEAD; else uuidgen; fi)
+gitverpre=$(shell echo $(gitver) | cut -b -3)
+gitverpost=$(shell echo $(gitver) | cut -b 38-40)
+abi_suffix = -$(gitverpre)$(gitverpost)
+endif
+
+ifneq ($(NOKERNLOG),)
+ubuntu_log_opts += --no-kern-log
+endif
+ifneq ($(PRINTSHAS),)
+ubuntu_log_opts += --print-shas
+endif
+
+# Get the kernels own extra version to be added to the release signature.
+raw_kernelversion=$(shell make kernelversion)
+
+#
+# full_build -- are we doing a full buildd style build
+#
+ifeq ($(wildcard /CurrentlyBuilding),)
+full_build?=false
+else
+full_build?=true
+endif
+
+#
+# The debug packages are ginormous, so you probably want to skip
+# building them (as a developer).
+#
+ifeq ($(full_build),false)
+skipdbg=true
+endif
+
+abinum := $(shell echo $(revision) | sed -e 's/\..*//')$(abi_suffix)
+prev_abinum := $(shell echo $(prev_revision) | sed -e 's/\..*//')$(abi_suffix)
+abi_release := $(release)-$(abinum)
+
+uploadnum := $(shell echo $(revision) | sed -e 's/.*\.//')
+ifneq ($(full_build),false)
+ uploadnum := $(uploadnum)-Ubuntu
+endif
+
+# XXX: linux-libc-dev got bumped to -803.N inadvertantly by a ti-omap4 upload
+# shift our version higher for this package only. Ensure this only
+# occurs for the v2.6.35 kernel so that we do not propogate this into
+# any other series.
+raw_uploadnum := $(shell echo $(revision) | sed -e 's/.*\.//')
+libc_dev_version :=
+ifeq ($(DEBIAN),debian.master)
+ifeq ($(release),2.6.35)
+libc_dev_version := -v$(release)-$(shell expr "$(abinum)" + 1000).$(raw_uploadnum)
+endif
+endif
+
+DEB_HOST_MULTIARCH = $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
+DEB_HOST_GNU_TYPE = $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+DEB_BUILD_GNU_TYPE = $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+DEB_HOST_ARCH = $(shell dpkg-architecture -qDEB_HOST_ARCH)
+DEB_BUILD_ARCH = $(shell dpkg-architecture -qDEB_BUILD_ARCH)
+
+#
+# Detect invocations of the form 'fakeroot debian/rules binary arch=armel'
+# within an x86'en schroot. This only gets you part of the way since the
+# packaging phase fails, but you can at least compile the kernel quickly.
+#
+arch := $(DEB_HOST_ARCH)
+ifneq ($(arch),$(DEB_HOST_ARCH))
+ CROSS_COMPILE ?= $(shell dpkg-architecture -a$(arch) -qDEB_HOST_GNU_TYPE -f 2>/dev/null)-
+endif
+
+#
+# Detect invocations of the form 'dpkg-buildpackage -B -aarmel' within
+# an x86'en schroot. This is the only way to build all of the packages
+# (except for tools).
+#
+ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
+ CROSS_COMPILE ?= $(DEB_HOST_GNU_TYPE)-
+endif
+
+abidir := $(CURDIR)/$(DEBIAN)/abi/$(release)-$(revision)/$(arch)
+prev_abidir := $(CURDIR)/$(DEBIAN)/abi/$(release)-$(prev_revision)/$(arch)
+commonconfdir := $(CURDIR)/$(DEBIAN)/config
+archconfdir := $(CURDIR)/$(DEBIAN)/config/$(arch)
+sharedconfdir := $(CURDIR)/debian.master/config
+builddir := $(CURDIR)/debian/build
+stampdir := $(CURDIR)/debian/stamps
+
+#
+# The binary package name always starts with linux-image-$KVER-$ABI.$UPLOAD_NUM. There
+# are places that you'll find linux-image hard coded, but I guess thats OK since the
+# assumption that the binary package always starts with linux-image will never change.
+#
+bin_pkg_name=linux-image-$(abi_release)
+extra_pkg_name=linux-image-extra-$(abi_release)
+hdrs_pkg_name=linux-headers-$(abi_release)
+#
+# The generation of content in the doc package depends on both 'AUTOBUILD=' and
+# 'do_doc_package_content=true'. There are usually build errors during the development
+# cycle, so its OK to leave 'do_doc_package_content=false' until those build
+# failures get sorted out. Finally, the doc package doesn't really need to be built
+# for developer testing (its kind of slow), so only do it if on a buildd.
+do_doc_package=true
+do_doc_package_content=true
+ifeq ($(full_build),false)
+do_doc_package_content=false
+endif
+doc_pkg_name=$(src_pkg_name)-doc
+
+#
+# Similarly with the linux-source package, you need not build it as a developer. Its
+# somewhat I/O intensive and utterly useless.
+#
+do_source_package=true
+do_source_package_content=true
+ifeq ($(full_build),false)
+do_source_package_content=false
+endif
+
+# linux-libc-dev may not be needed, default to building it.
+do_libc_dev_package=true
+
+# common headers normally is built as an indep package, but may be arch
+do_common_headers_indep=true
+
+# add a 'full source' mode
+do_full_source=false
+
+# build tools
+ifneq ($(wildcard $(CURDIR)/tools),)
+do_tools?=true
+else
+do_tools?=false
+endif
+tools_pkg_name=$(src_pkg_name)-tools-$(abi_release)
+tools_common_pkg_name=$(src_pkg_name)-tools-common
+
+# The general flavour specific image package.
+do_flavour_image_package=true
+
+# The general flavour specific header package.
+do_flavour_header_package=true
+
+# Support parallel=<n> in DEB_BUILD_OPTIONS (see #209008)
+#
+# These 2 environment variables set the -j value of the kernel build. For example,
+# CONCURRENCY_LEVEL=16 fakeroot $(DEBIAN)/rules binary-debs
+# or
+# DEB_BUILD_OPTIONS=parallel=16 fakeroot $(DEBIAN)/rules binary-debs
+#
+# The default is to use the number of CPUs.
+#
+COMMA=,
+DEB_BUILD_OPTIONS_PARA = $(subst parallel=,,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS))))
+ifneq (,$(DEB_BUILD_OPTIONS_PARA))
+ CONCURRENCY_LEVEL := $(DEB_BUILD_OPTIONS_PARA)
+endif
+
+ifeq ($(CONCURRENCY_LEVEL),)
+ # Check the environment
+ CONCURRENCY_LEVEL := $(shell echo $$CONCURRENCY_LEVEL)
+ # No? Then build with the number of CPUs on the host.
+ ifeq ($(CONCURRENCY_LEVEL),)
+ CONCURRENCY_LEVEL := $(shell expr `getconf _NPROCESSORS_ONLN` \* 1)
+ endif
+ # Oh hell, give 'em one
+ ifeq ($(CONCURRENCY_LEVEL),)
+ CONCURRENCY_LEVEL := 1
+ endif
+endif
+
+conc_level = -j$(CONCURRENCY_LEVEL)
+
+# target_flavour is filled in for each step
+kmake = make ARCH=$(build_arch) \
+ CROSS_COMPILE=$(CROSS_COMPILE) \
+ KERNELVERSION=$(abi_release)-$(target_flavour) \
+ CONFIG_DEBUG_SECTION_MISMATCH=y \
+ KBUILD_BUILD_VERSION="$(uploadnum)" \
+ LOCALVERSION= localver-extra=
+ifneq ($(LOCAL_ENV_CC),)
+kmake += CC=$(LOCAL_ENV_CC) DISTCC_HOSTS=$(LOCAL_ENV_DISTCC_HOSTS)
+endif
+
+# Locking is required in parallel builds to prevent loss of contents
+# of the debian/files.
+lockme_file = $(CURDIR)/debian/.LOCK
+lockme_cmd = flock -w 60
+lockme = $(lockme_cmd) $(lockme_file)
diff --git a/debian/rules.d/1-maintainer.mk b/debian/rules.d/1-maintainer.mk
new file mode 100644
index 00000000000000..975cd79de9e70f
--- /dev/null
+++ b/debian/rules.d/1-maintainer.mk
@@ -0,0 +1,120 @@
+# The following targets are for the maintainer only! do not run if you don't
+# know what they do.
+
+.PHONY: printenv updateconfigs printchanges insertchanges startnewrelease diffupstream help updateportsconfigs editportsconfigs
+
+help:
+ @echo "These are the targets in addition to the normal $(DEBIAN) ones:"
+ @echo
+ @echo " printenv : Print some variables used in the build"
+ @echo
+ @echo " updateconfigs : Update core arch configs"
+ @echo
+ @echo " editconfigs : Update core arch configs interractively"
+ @echo " genconfigs : Generate core arch configs in CONFIGS/*"
+ @echo
+ @echo " updateportsconfigs : Update ports arch configs"
+ @echo
+ @echo " editportsconfigs : Update ports arch configs interactivly"
+ @echo " genportconfigs : Generate ports arch configs in CONFIGS/*"
+ @echo
+ @echo " printchanges : Print the current changelog entries (from git)"
+ @echo
+ @echo " insertchanges : Insert current changelog entries (from git)"
+ @echo
+ @echo " startnewrelease : Start a new changelog set"
+ @echo
+ @echo " diffupstream : Diff stock kernel code against upstream (git)"
+ @echo
+ @echo " help : If you are kernel hacking, you need the professional"
+ @echo " version of this"
+ @echo
+ @echo "Environment variables:"
+ @echo
+ @echo " NOKERNLOG : Do not add upstream kernel commits to changelog"
+ @echo " CONCURRENCY_LEVEL=X"
+ @echo " : Use -jX for kernel compile"
+ @echo " PRINTSHAS : Include SHAs for commits in changelog"
+
+printdebian:
+ @echo "$(DEBIAN)"
+
+updateconfigs defaultconfigs editconfigs genconfigs dumpconfigs:
+ dh_testdir;
+ $(SHELL) $(DROOT)/scripts/misc/kernelconfig $@
+ rm -rf build
+
+updateportsconfigs defaultportsconfigs editportsconfigs genportsconfigs askconfigs:
+ dh_testdir;
+ $(SHELL) $(DROOT)/scripts/misc/kernelconfig $@ ports
+ rm -rf build
+
+printenv:
+ dh_testdir
+ @echo "src package name = $(src_pkg_name)"
+ @echo "release = $(release)"
+ @echo "revisions = $(revisions)"
+ @echo "revision = $(revision)"
+ @echo "uploadnum = $(uploadnum)"
+ @echo "prev_revisions = $(prev_revisions)"
+ @echo "prev_revision = $(prev_revision)"
+ @echo "abinum = $(abinum)"
+ @echo "gitver = $(gitver)"
+ @echo "flavours = $(flavours)"
+ @echo "skipabi = $(skipabi)"
+ @echo "skipmodule = $(skipmodule)"
+ @echo "skipdbg = $(skipdbg)"
+ @echo "ubuntu_log_opts = $(ubuntu_log_opts)"
+ @echo "CONCURRENCY_LEVEL = $(CONCURRENCY_LEVEL)"
+ @echo "bin package name = $(bin_pkg_name)"
+ @echo "hdr package name = $(hdrs_pkg_name)"
+ @echo "doc package name = $(doc_pkg_name)"
+ @echo "do_doc_package = $(do_doc_package)"
+ @echo "do_doc_package_content = $(do_doc_package_content)"
+ @echo "do_source_package = $(do_source_package)"
+ @echo "do_source_package_content = $(do_source_package_content)"
+ @echo "do_libc_dev_package = $(do_libc_dev_package)"
+ @echo "do_flavour_image_package = $(do_flavour_image_package)"
+ @echo "do_flavour_header_package = $(do_flavour_header_package)"
+ @echo "do_common_headers_indep = $(do_common_headers_indep)"
+ @echo "do_full_source = $(do_full_source)"
+ @echo "do_tools = $(do_tools)"
+ @echo "full_build = $(full_build)"
+ @echo "libc_dev_version = $(libc_dev_version)"
+ @echo "DEB_HOST_GNU_TYPE = $(DEB_HOST_GNU_TYPE)"
+ @echo "DEB_BUILD_GNU_TYPE = $(DEB_BUILD_GNU_TYPE)"
+ @echo "DEB_HOST_ARCH = $(DEB_HOST_ARCH)"
+ @echo "DEB_BUILD_ARCH = $(DEB_BUILD_ARCH)"
+ @echo "arch = $(arch)"
+ @echo "kmake = $(kmake)"
+
+prev_release="$(release)-$(prev_revision)"
+printchanges:
+ @baseCommit=$$(git log --pretty=format:'%H %s' | \
+ awk '/UBUNTU: '".*Ubuntu-$(prev_release)"'$$/ { print $$1; exit }'); \
+ git log "$$baseCommit"..HEAD | \
+ perl -w -f $(DROOT)/scripts/misc/git-ubuntu-log $(ubuntu_log_opts)
+
+insertchanges:
+ @perl -w -f $(DROOT)/scripts/misc/insert-changes.pl $(DROOT) $(DEBIAN)
+
+diffupstream:
+ @git diff-tree -p refs/remotes/linux-2.6/master..HEAD $(shell ls | grep -vE '^(ubuntu|$(DEBIAN)|\.git.*)')
+
+startnewrelease:
+ dh_testdir
+ @nextminor=$(shell expr `echo $(revision) | awk -F. '{print $$2}'` + 1); \
+ now="$(shell date -R)"; \
+ echo "Creating new changelog set for $(abi_release).$$nextminor..."; \
+ echo -e "$(src_pkg_name) ($(abi_release).$$nextminor) UNRELEASED; urgency=low\n" > $(DEBIAN)/changelog.new; \
+ echo " CHANGELOG: Do not edit directly. Autogenerated at release." >> \
+ $(DEBIAN)/changelog.new; \
+ echo " CHANGELOG: Use the printchanges target to see the curent changes." \
+ >> $(DEBIAN)/changelog.new; \
+ echo " CHANGELOG: Use the insertchanges target to create the final log." \
+ >> $(DEBIAN)/changelog.new; \
+ echo -e "\n -- $$DEBFULLNAME <$$DEBEMAIL> $$now\n" >> \
+ $(DEBIAN)/changelog.new ; \
+ cat $(DEBIAN)/changelog >> $(DEBIAN)/changelog.new; \
+ mv $(DEBIAN)/changelog.new $(DEBIAN)/changelog
+
diff --git a/debian/rules.d/2-binary-arch.mk b/debian/rules.d/2-binary-arch.mk
new file mode 100644
index 00000000000000..1b26a39c45ce16
--- /dev/null
+++ b/debian/rules.d/2-binary-arch.mk
@@ -0,0 +1,449 @@
+# We don't want make removing intermediary stamps
+.SECONDARY :
+
+# Prepare the out-of-tree build directory
+ifeq ($(do_full_source),true)
+build_cd = cd $(builddir)/build-$*; #
+build_O =
+else
+build_cd =
+build_O = O=$(builddir)/build-$*
+endif
+
+$(stampdir)/stamp-prepare-%: config-prepare-check-%
+ @touch $@
+$(stampdir)/stamp-prepare-tree-%: target_flavour = $*
+$(stampdir)/stamp-prepare-tree-%: $(commonconfdir)/config.common.$(family) $(archconfdir)/config.common.$(arch) $(archconfdir)/config.flavour.%
+ @echo "Preparing $*..."
+ install -d $(builddir)/build-$*
+ touch $(builddir)/build-$*/ubuntu-build
+ [ "$(do_full_source)" != 'true' ] && true || \
+ rsync -a --exclude debian --exclude debian.master --exclude $(DEBIAN) * $(builddir)/build-$*
+ cat $^ | sed -e 's/.*CONFIG_VERSION_SIGNATURE.*/CONFIG_VERSION_SIGNATURE="Ubuntu $(release)-$(revision)-$* $(raw_kernelversion)"/' > $(builddir)/build-$*/.config
+ find $(builddir)/build-$* -name "*.ko" | xargs rm -f
+ $(build_cd) $(kmake) $(build_O) -j1 silentoldconfig prepare scripts
+ touch $@
+
+# Used by developers as a shortcut to prepare a tree for compilation.
+prepare-%: $(stampdir)/stamp-prepare-%
+ @echo Prepared $* for $(arch)
+
+# Do the actual build, including image and modules
+$(stampdir)/stamp-build-%: target_flavour = $*
+$(stampdir)/stamp-build-%: $(stampdir)/stamp-prepare-%
+ @echo "Building $*..."
+ $(build_cd) $(kmake) $(build_O) $(conc_level) $(build_image) modules
+ @touch $@
+
+# Install the finished build
+install-%: pkgdir = $(CURDIR)/debian/$(bin_pkg_name)-$*
+install-%: pkgdir_ex = $(CURDIR)/debian/$(extra_pkg_name)-$*
+install-%: bindoc = $(pkgdir)/usr/share/doc/$(bin_pkg_name)-$*
+install-%: dbgpkgdir = $(CURDIR)/debian/$(bin_pkg_name)-$*-dbgsym
+install-%: basepkg = $(hdrs_pkg_name)
+install-%: hdrdir = $(CURDIR)/debian/$(basepkg)-$*/usr/src/$(basepkg)-$*
+install-%: target_flavour = $*
+install-%: checks-%
+ dh_testdir
+ dh_testroot
+ dh_clean -k -p$(bin_pkg_name)-$*
+ dh_clean -k -p$(hdrs_pkg_name)-$*
+ dh_clean -k -p$(dbg_pkg_name)-$*
+
+ # The main image
+ # compress_file logic required because not all architectures
+ # generate a zImage automatically out of the box
+ifeq ($(compress_file),)
+ install -m600 -D $(builddir)/build-$*/$(kernel_file) \
+ $(pkgdir)/boot/$(install_file)-$(abi_release)-$*
+else
+ install -d $(pkgdir)/boot
+ gzip -c9v $(builddir)/build-$*/$(kernel_file) > \
+ $(pkgdir)/boot/$(install_file)-$(abi_release)-$*
+ chmod 600 $(pkgdir)/boot/$(install_file)-$(abi_release)-$*
+endif
+
+ install -m644 $(builddir)/build-$*/.config \
+ $(pkgdir)/boot/config-$(abi_release)-$*
+ install -m644 $(abidir)/$* \
+ $(pkgdir)/boot/abi-$(abi_release)-$*
+ install -m600 $(builddir)/build-$*/System.map \
+ $(pkgdir)/boot/System.map-$(abi_release)-$*
+ifeq ($(no_dumpfile),)
+ makedumpfile -g $(pkgdir)/boot/vmcoreinfo-$(abi_release)-$* \
+ -x $(builddir)/build-$*/vmlinux
+ chmod 0600 $(pkgdir)/boot/vmcoreinfo-$(abi_release)-$*
+endif
+
+ $(build_cd) $(kmake) $(build_O) $(conc_level) modules_install \
+ INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=$(pkgdir)/ \
+ INSTALL_FW_PATH=$(pkgdir)/lib/firmware/$(abi_release)-$*
+
+ #
+ # Remove all modules not in the inclusion list.
+ #
+ if [ -f $(DEBIAN)/control.d/$(target_flavour).inclusion-list ] ; then \
+ mkdir -p $(pkgdir_ex)/lib/modules/$(abi_release)-$*; \
+ mv $(pkgdir)/lib/modules/$(abi_release)-$*/kernel \
+ $(pkgdir_ex)/lib/modules/$(abi_release)-$*/kernel; \
+ $(SHELL) $(DROOT)/scripts/module-inclusion --master \
+ $(pkgdir_ex)/lib/modules/$(abi_release)-$*/kernel \
+ $(pkgdir)/lib/modules/$(abi_release)-$*/kernel \
+ $(DEBIAN)/control.d/$(target_flavour).inclusion-list 2>&1 | \
+ tee $(target_flavour).inclusion-list.log; \
+ /sbin/depmod -b $(pkgdir) -ea -F $(pkgdir)/boot/System.map-$(abi_release)-$* \
+ $(abi_release)-$* 2>&1 |tee $(target_flavour).depmod.log; \
+ fi
+
+ifeq ($(no_dumpfile),)
+ makedumpfile -g $(pkgdir)/boot/vmcoreinfo-$(abi_release)-$* \
+ -x $(builddir)/build-$*/vmlinux
+ chmod 0600 $(pkgdir)/boot/vmcoreinfo-$(abi_release)-$*
+endif
+ rm -f $(pkgdir)/lib/modules/$(abi_release)-$*/build
+ rm -f $(pkgdir)/lib/modules/$(abi_release)-$*/source
+
+ # Some initramfs-tools specific modules
+ install -d $(pkgdir)/lib/modules/$(abi_release)-$*/initrd
+ if [ -f $(pkgdir)/lib/modules/$(abi_release)-$*/kernel/drivers/video/vesafb.ko ]; then\
+ ln -f $(pkgdir)/lib/modules/$(abi_release)-$*/kernel/drivers/video/vesafb.ko \
+ $(pkgdir)/lib/modules/$(abi_release)-$*/initrd/; \
+ fi
+
+ # Now the image scripts
+ install -d $(pkgdir)/DEBIAN
+ for script in postinst postrm preinst prerm; do \
+ sed -e 's/=V/$(abi_release)-$*/g' -e 's/=K/$(install_file)/g' \
+ -e 's/=L/$(loader)/g' -e 's@=B@$(build_arch)@g' \
+ $(DROOT)/control-scripts/$$script > $(pkgdir)/DEBIAN/$$script; \
+ chmod 755 $(pkgdir)/DEBIAN/$$script; \
+ done
+ # Install the postinit/postrm scripts in the extras package.
+ if [ -f $(DEBIAN)/control.d/$(target_flavour).inclusion-list ] ; then \
+ install -d $(pkgdir_ex)/DEBIAN; \
+ for script in postinst postrm ; do \
+ sed -e 's/@@KVER@@/$(release)-$(abinum)-$(target_flavour)/g' \
+ debian/control-scripts/$$script.extra > $(pkgdir_ex)/DEBIAN/$$script; \
+ chmod 755 $(pkgdir_ex)/DEBIAN/$$script; \
+ done; \
+ fi
+
+ # Install the full changelog.
+ifeq ($(do_doc_package),true)
+ install -d $(bindoc)
+ cat $(DEBIAN)/changelog $(DEBIAN)/changelog.historical | \
+ gzip -9 >$(bindoc)/changelog.Debian.old.gz
+ chmod 644 $(bindoc)/changelog.Debian.old.gz
+endif
+
+ifneq ($(skipsub),true)
+ for sub in $($(*)_sub); do \
+ if ! (TO=$$sub FROM=$* ABI_RELEASE=$(abi_release) $(SHELL) \
+ $(DROOT)/scripts/sub-flavour); then exit 1; fi; \
+ /sbin/depmod -b debian/$(bin_pkg_name)-$$sub \
+ -ea -F debian/$(bin_pkg_name)-$$sub/boot/System.map-$(abi_release)-$* \
+ $(abi_release)-$*; \
+ install -d debian/$(bin_pkg_name)-$$sub/DEBIAN; \
+ for script in postinst postrm preinst prerm; do \
+ sed -e 's/=V/$(abi_release)-$*/g' \
+ -e 's/=K/$(install_file)/g' \
+ -e 's/=L/$(loader)/g' \
+ -e 's@=B@$(build_arch)@g' \
+ $(DROOT)/control-scripts/$$script > \
+ debian/$(bin_pkg_name)-$$sub/DEBIAN/$$script;\
+ chmod 755 debian/$(bin_pkg_name)-$$sub/DEBIAN/$$script;\
+ done; \
+ done
+endif
+
+ifneq ($(skipdbg),true)
+ # Debug image is simple
+ install -m644 -D $(builddir)/build-$*/vmlinux \
+ $(dbgpkgdir)/usr/lib/debug/boot/vmlinux-$(abi_release)-$*
+ $(build_cd) $(kmake) $(build_O) modules_install \
+ INSTALL_MOD_PATH=$(dbgpkgdir)/usr/lib/debug
+ rm -f $(dbgpkgdir)/usr/lib/debug/lib/modules/$(abi_release)-$*/build
+ rm -f $(dbgpkgdir)/usr/lib/debug/lib/modules/$(abi_release)-$*/source
+ rm -f $(dbgpkgdir)/usr/lib/debug/lib/modules/$(abi_release)-$*/modules.*
+ rm -fr $(dbgpkgdir)/usr/lib/debug/lib/firmware
+endif
+
+ # The flavour specific headers image
+ # TODO: Would be nice if we didn't have to dupe the original builddir
+ install -d -m755 $(hdrdir)
+ cat $(builddir)/build-$*/.config | \
+ sed -e 's/.*CONFIG_DEBUG_INFO=.*/# CONFIG_DEBUG_INFO is not set/g' > \
+ $(hdrdir)/.config
+ chmod 644 $(hdrdir)/.config
+ $(kmake) O=$(hdrdir) -j1 silentoldconfig prepare scripts
+ # We'll symlink this stuff
+ rm -f $(hdrdir)/Makefile
+ rm -rf $(hdrdir)/include2
+ # powerpc seems to need some .o files for external module linking. Add them in.
+ifeq ($(arch),powerpc)
+ mkdir -p $(hdrdir)/arch/powerpc/lib
+ cp $(builddir)/build-$*/arch/powerpc/lib/*.o $(hdrdir)/arch/powerpc/lib
+endif
+ # Script to symlink everything up
+ $(SHELL) $(DROOT)/scripts/link-headers "$(hdrdir)" "$(basepkg)" "$*"
+ # Setup the proper asm symlink
+ rm -f $(hdrdir)/include/asm
+ ln -s asm-$(asm_link) $(hdrdir)/include/asm
+ # The build symlink
+ install -d debian/$(basepkg)-$*/lib/modules/$(abi_release)-$*
+ ln -s /usr/src/$(basepkg)-$* \
+ debian/$(basepkg)-$*/lib/modules/$(abi_release)-$*/build
+ # And finally the symvers
+ install -m644 $(builddir)/build-$*/Module.symvers \
+ $(hdrdir)/Module.symvers
+
+ # Now the header scripts
+ install -d $(CURDIR)/debian/$(basepkg)-$*/DEBIAN
+ for script in postinst; do \
+ sed -e 's/=V/$(abi_release)-$*/g' -e 's/=K/$(install_file)/g' \
+ $(DROOT)/control-scripts/headers-$$script > \
+ $(CURDIR)/debian/$(basepkg)-$*/DEBIAN/$$script; \
+ chmod 755 $(CURDIR)/debian/$(basepkg)-$*/DEBIAN/$$script; \
+ done
+
+ # At the end of the package prep, call the tests
+ DPKG_ARCH="$(arch)" KERN_ARCH="$(build_arch)" FLAVOUR="$*" \
+ VERSION="$(abi_release)" REVISION="$(revision)" \
+ PREV_REVISION="$(prev_revision)" ABI_NUM="$(abinum)" \
+ PREV_ABI_NUM="$(prev_abinum)" BUILD_DIR="$(builddir)/build-$*" \
+ INSTALL_DIR="$(pkgdir)" SOURCE_DIR="$(CURDIR)" \
+ run-parts -v $(DROOT)/tests
+
+ #
+ # Remove files which are generated at installation by postinst,
+ # except for modules.order and modules.builtin
+ #
+ # NOTE: need to keep this list in sync with postrm
+ #
+ mkdir $(pkgdir)/lib/modules/$(abi_release)-$*/_
+ mv $(pkgdir)/lib/modules/$(abi_release)-$*/modules.order \
+ $(pkgdir)/lib/modules/$(abi_release)-$*/_
+ if [ -f $(pkgdir)/lib/modules/$(abi_release)-$*/modules.builtin ] ; then \
+ mv $(pkgdir)/lib/modules/$(abi_release)-$*/modules.builtin \
+ $(pkgdir)/lib/modules/$(abi_release)-$*/_; \
+ fi
+ rm -f $(pkgdir)/lib/modules/$(abi_release)-$*/modules.*
+ mv $(pkgdir)/lib/modules/$(abi_release)-$*/_/* \
+ $(pkgdir)/lib/modules/$(abi_release)-$*
+ rmdir $(pkgdir)/lib/modules/$(abi_release)-$*/_
+
+headers_tmp := $(CURDIR)/debian/tmp-headers
+headers_dir := $(CURDIR)/debian/linux-libc-dev
+
+hmake := $(MAKE) -C $(CURDIR) O=$(headers_tmp) \
+ KERNELVERSION=$(abi_release) INSTALL_HDR_PATH=$(headers_tmp)/install \
+ SHELL="$(SHELL)" ARCH=$(header_arch)
+
+install-arch-headers:
+ dh_testdir
+ dh_testroot
+ dh_clean -k -plinux-libc-dev
+
+ rm -rf $(headers_tmp)
+ install -d $(headers_tmp) $(headers_dir)/usr/include/
+
+ $(hmake) $(defconfig)
+ mv $(headers_tmp)/.config $(headers_tmp)/.config.old
+ sed -e 's/^# \(CONFIG_MODVERSIONS\) is not set$$/\1=y/' \
+ -e 's/.*CONFIG_LOCALVERSION_AUTO.*/# CONFIG_LOCALVERSION_AUTO is not set/' \
+ $(headers_tmp)/.config.old > $(headers_tmp)/.config
+ $(hmake) silentoldconfig
+ $(hmake) $(conc_level) headers_install
+
+ ( cd $(headers_tmp)/install/include/ && \
+ find . -name '.' -o -name '.*' -prune -o -print | \
+ cpio -pvd --preserve-modification-time \
+ $(headers_dir)/usr/include/ )
+ mkdir $(headers_dir)/usr/include/$(DEB_HOST_MULTIARCH)
+ mv $(headers_dir)/usr/include/asm $(headers_dir)/usr/include/$(DEB_HOST_MULTIARCH)/
+
+ rm -rf $(headers_tmp)
+
+binary-arch-headers: install-arch-headers
+ dh_testdir
+ dh_testroot
+ifeq ($(do_libc_dev_package),true)
+ifneq ($(DEBIAN),debian.master)
+ echo "non-master branch building linux-libc-dev, aborting"
+ exit 1
+endif
+ dh_installchangelogs -plinux-libc-dev
+ dh_installdocs -plinux-libc-dev
+ dh_compress -plinux-libc-dev
+ dh_fixperms -plinux-libc-dev
+ dh_installdeb -plinux-libc-dev
+ $(lockme) dh_gencontrol -plinux-libc-dev -- $(libc_dev_version)
+ dh_md5sums -plinux-libc-dev
+ dh_builddeb -plinux-libc-dev
+endif
+
+binary-%: pkgimg = $(bin_pkg_name)-$*
+binary-%: pkgimg_ex = $(extra_pkg_name)-$*
+binary-%: pkghdr = $(hdrs_pkg_name)-$*
+binary-%: dbgpkg = $(bin_pkg_name)-$*-dbgsym
+binary-%: dbgpkgdir = $(CURDIR)/debian/$(bin_pkg_name)-$*-dbgsym
+binary-%: target_flavour = $*
+binary-%: install-%
+ dh_testdir
+ dh_testroot
+
+ dh_installchangelogs -p$(pkgimg)
+ dh_installdocs -p$(pkgimg)
+ dh_compress -p$(pkgimg)
+ dh_fixperms -p$(pkgimg) -X/boot/
+ dh_installdeb -p$(pkgimg)
+ dh_shlibdeps -p$(pkgimg)
+ $(lockme) dh_gencontrol -p$(pkgimg)
+ dh_md5sums -p$(pkgimg)
+ dh_builddeb -p$(pkgimg) -- -Zbzip2 -z9
+
+ if [ -f $(DEBIAN)/control.d/$(target_flavour).inclusion-list ] ; then \
+ dh_installchangelogs -p$(pkgimg_ex); \
+ dh_installdocs -p$(pkgimg_ex); \
+ dh_compress -p$(pkgimg_ex); \
+ dh_fixperms -p$(pkgimg_ex) -X/boot/; \
+ dh_installdeb -p$(pkgimg_ex); \
+ dh_shlibdeps -p$(pkgimg_ex); \
+ $(lockme) dh_gencontrol -p$(pkgimg_ex); \
+ dh_md5sums -p$(pkgimg_ex); \
+ dh_builddeb -p$(pkgimg_ex) -- -Zbzip2 -z9; \
+ fi
+
+ dh_installchangelogs -p$(pkghdr)
+ dh_installdocs -p$(pkghdr)
+ dh_compress -p$(pkghdr)
+ dh_fixperms -p$(pkghdr)
+ dh_shlibdeps -p$(pkghdr)
+ dh_installdeb -p$(pkghdr)
+ $(lockme) dh_gencontrol -p$(pkghdr)
+ dh_md5sums -p$(pkghdr)
+ dh_builddeb -p$(pkghdr)
+
+ifneq ($(skipsub),true)
+ @set -e; for sub in $($(*)_sub); do \
+ pkg=$(bin_pkg_name)-$$sub; \
+ dh_installchangelogs -p$$pkg; \
+ dh_installdocs -p$$pkg; \
+ dh_compress -p$$pkg; \
+ dh_fixperms -p$$pkg -X/boot/; \
+ dh_shlibdeps -p$$pkg; \
+ dh_installdeb -p$$pkg; \
+ $(lockme) dh_gencontrol -p$$pkg; \
+ dh_md5sums -p$$pkg; \
+ dh_builddeb -p$$pkg; \
+ done
+endif
+
+ifneq ($(skipdbg),true)
+ dh_installchangelogs -p$(dbgpkg)
+ dh_installdocs -p$(dbgpkg)
+ dh_compress -p$(dbgpkg)
+ dh_fixperms -p$(dbgpkg)
+ dh_installdeb -p$(dbgpkg)
+ $(lockme) dh_gencontrol -p$(dbgpkg)
+ dh_md5sums -p$(dbgpkg)
+ dh_builddeb -p$(dbgpkg)
+
+ # Hokay...here's where we do a little twiddling...
+ # Renaming the debug package prevents it from getting into
+ # the primary archive, and therefore prevents this very large
+ # package from being mirrored. It is instead, through some
+ # archive admin hackery, copied to http://ddebs.ubuntu.com.
+ #
+ mv ../$(dbgpkg)_$(release)-$(revision)_$(arch).deb \
+ ../$(dbgpkg)_$(release)-$(revision)_$(arch).ddeb
+ set -e; \
+ ( \
+ $(lockme_cmd) 9 || exit 1; \
+ if grep -qs '^Build-Debug-Symbols: yes$$' /CurrentlyBuilding; then \
+ sed -i '/^$(dbgpkg)_/s/\.deb /.ddeb /' debian/files; \
+ else \
+ grep -v '^$(dbgpkg)_.*$$' debian/files > debian/files.new; \
+ mv debian/files.new debian/files; \
+ fi; \
+ ) 9>$(lockme_file)
+ # Now, the package wont get into the archive, but it will get put
+ # into the debug system.
+endif
+ifneq ($(full_build),false)
+ # Clean out this flavours build directory.
+ rm -rf $(builddir)/build-$*
+ # Clean out the debugging package source directory.
+ rm -rf $(dbgpkgdir)
+endif
+
+#
+# per-architecture packages
+#
+$(stampdir)/stamp-prepare-perarch:
+ @echo "Preparing perarch ..."
+ifeq ($(do_tools),true)
+ rm -rf $(builddir)/tools
+ install -d $(builddir)/tools
+ for i in *; do ln -s $(CURDIR)/$$i $(builddir)/tools/; done
+ rm $(builddir)/tools/tools
+ rsync -a tools/ $(builddir)/tools/tools/
+endif
+ touch $@
+
+$(stampdir)/stamp-build-perarch: $(stampdir)/stamp-prepare-perarch
+ifeq ($(do_tools),true)
+ cd $(builddir)/tools/tools/perf && \
+ make HAVE_CPLUS_DEMANGLE=1 $(CROSS_COMPILE) $(conc_level)
+ if [ "$(arch)" = "amd64" ] || [ "$(arch)" = "i386" ]; then \
+ cd $(builddir)/tools/tools/power/x86/x86_energy_perf_policy && make $(CROSS_COMPILE); \
+ cd $(builddir)/tools/tools/power/x86/turbostat && make $(CROSS_COMPILE); \
+ fi
+endif
+ @touch $@
+
+install-perarch: toolspkgdir = $(CURDIR)/debian/$(tools_pkg_name)
+install-perarch: $(stampdir)/stamp-build-perarch
+ # Add the tools.
+ifeq ($(do_tools),true)
+ install -d $(toolspkgdir)/usr/bin
+ install -s -m755 $(builddir)/tools/tools/perf/perf \
+ $(toolspkgdir)/usr/bin/perf_$(abi_release)
+ if [ "$(arch)" = "amd64" ] || [ "$(arch)" = "i386" ]; then \
+ install -s -m755 $(builddir)/tools/tools/power/x86/x86_energy_perf_policy/x86_energy_perf_policy \
+ $(toolspkgdir)/usr/bin/x86_energy_perf_policy_$(abi_release); \
+ install -s -m755 $(builddir)/tools/tools/power/x86/turbostat/turbostat \
+ $(toolspkgdir)/usr/bin/turbostat_$(abi_release); \
+ fi
+endif
+
+binary-perarch: toolspkg = $(tools_pkg_name)
+binary-perarch: install-perarch
+ @# Empty for make to be happy
+ifeq ($(do_tools),true)
+ dh_installchangelogs -p$(toolspkg)
+ dh_installdocs -p$(toolspkg)
+ dh_compress -p$(toolspkg)
+ dh_fixperms -p$(toolspkg)
+ dh_shlibdeps -p$(toolspkg)
+ dh_installdeb -p$(toolspkg)
+ $(lockme) dh_gencontrol -p$(toolspkg)
+ dh_md5sums -p$(toolspkg)
+ dh_builddeb -p$(toolspkg)
+endif
+
+binary-debs: binary-perarch $(addprefix binary-,$(flavours))
+
+build-arch-deps-$(do_flavour_image_package) += $(addprefix $(stampdir)/stamp-build-,$(flavours))
+build-arch: $(build-arch-deps-true)
+
+ifeq ($(AUTOBUILD),)
+binary-arch-deps-$(do_flavour_image_package) += binary-udebs
+else
+binary-arch-deps-$(do_flavour_image_package) = binary-debs
+endif
+binary-arch-deps-$(do_libc_dev_package) += binary-arch-headers
+ifneq ($(do_common_headers_indep),true)
+binary-arch-deps-$(do_flavour_header_package) += binary-headers
+endif
+binary-arch: $(binary-arch-deps-true)
diff --git a/debian/rules.d/3-binary-indep.mk b/debian/rules.d/3-binary-indep.mk
new file mode 100644
index 00000000000000..462d7219cd2594
--- /dev/null
+++ b/debian/rules.d/3-binary-indep.mk
@@ -0,0 +1,143 @@
+build-indep:
+
+docpkg = $(doc_pkg_name)
+docdir = $(CURDIR)/debian/$(docpkg)/usr/share/doc/$(docpkg)
+install-doc: install-headers
+ifeq ($(do_doc_package),true)
+ dh_testdir
+ dh_testroot
+ dh_clean -k -p$(docpkg)
+
+ install -d $(docdir)
+ifeq ($(do_doc_package_content),true)
+ # First the html docs. We skip these for autobuilds
+ if [ -z "$(AUTOBUILD)" ]; then \
+ install -d $(docdir)/$(doc_pkg_name)-tmp; \
+ $(kmake) O=$(docdir)/$(doc_pkg_name)-tmp htmldocs; \
+ mv $(docdir)/$(doc_pkg_name)-tmp/Documentation/DocBook \
+ $(docdir)/html; \
+ rm -rf $(docdir)/$(doc_pkg_name)-tmp; \
+ fi
+endif
+ # Copy the rest
+ cp -a Documentation/* $(docdir)
+ rm -rf $(docdir)/DocBook
+ find $(docdir) -name .gitignore | xargs rm -f
+endif
+
+indep_hdrpkg = $(hdrs_pkg_name)
+indep_hdrdir = $(CURDIR)/debian/$(indep_hdrpkg)/usr/src/$(indep_hdrpkg)
+install-headers:
+ifeq ($(do_flavour_header_package),true)
+ dh_testdir
+ dh_testroot
+ dh_clean -k -p$(indep_hdrpkg)
+
+ install -d $(indep_hdrdir)
+ find . -path './debian' -prune -o -path './$(DEBIAN)' -prune \
+ -o -path './include/*' -prune \
+ -o -path './scripts/*' -prune -o -type f \
+ \( -name 'Makefile*' -o -name 'Kconfig*' -o -name 'Kbuild*' -o \
+ -name '*.sh' -o -name '*.pl' -o -name '*.lds' \) \
+ -print | cpio -pd --preserve-modification-time $(indep_hdrdir)
+ cp -a drivers/media/dvb/dvb-core/*.h $(indep_hdrdir)/drivers/media/dvb/dvb-core
+ cp -a drivers/media/video/*.h $(indep_hdrdir)/drivers/media/video
+ cp -a drivers/media/dvb/frontends/*.h $(indep_hdrdir)/drivers/media/dvb/frontends
+ cp -a scripts include $(indep_hdrdir)
+ (find arch -name include -type d -print | \
+ xargs -n1 -i: find : -type f) | \
+ cpio -pd --preserve-modification-time $(indep_hdrdir)
+endif
+
+srcpkg = $(src_pkg_name)-source-$(release)
+srcdir = $(CURDIR)/debian/$(srcpkg)/usr/src/$(srcpkg)
+balldir = $(CURDIR)/debian/$(srcpkg)/usr/src/$(srcpkg)/$(srcpkg)
+install-source: install-doc
+ifeq ($(do_source_package),true)
+ dh_testdir
+ dh_testroot
+ dh_clean -k -p$(srcpkg)
+
+ install -d $(srcdir)
+ifeq ($(do_source_package_content),true)
+ find . -path './debian' -prune -o -path './$(DEBIAN)' -prune -o \
+ -path './.*' -prune -o -print | \
+ cpio -pd --preserve-modification-time $(balldir)
+ (cd $(srcdir); tar cf - $(srcpkg)) | bzip2 -9c > \
+ $(srcdir)/$(srcpkg).tar.bz2
+ rm -rf $(balldir)
+ find './debian' './$(DEBIAN)' \
+ -path './debian/linux-*' -prune -o \
+ -path './debian/$(src_pkg_name)-*' -prune -o \
+ -path './debian/build' -prune -o \
+ -path './debian/files' -prune -o \
+ -path './debian/stamps' -prune -o \
+ -path './debian/tmp' -prune -o \
+ -print | \
+ cpio -pd --preserve-modification-time $(srcdir)
+ ln -s $(srcpkg)/$(srcpkg).tar.bz2 $(srcdir)/..
+endif
+endif
+
+install-tools: toolspkg = $(tools_common_pkg_name)
+install-tools: toolsbin = $(CURDIR)/debian/$(toolspkg)/usr/bin
+install-tools: toolsman = $(CURDIR)/debian/$(toolspkg)/usr/share/man
+install-tools: install-source
+ifeq ($(do_tools),true)
+ dh_testdir
+ dh_testroot
+ dh_clean -k -p$(toolspkg)
+
+ install -d $(toolsbin)
+ install -d $(toolsman)/man1
+
+ install -m755 debian/tools/perf $(toolsbin)/perf
+ if [ "$(arch)" = "amd64" ] || [ "$(arch)" = "i386" ]; then \
+ install -m755 debian/tools/x86_energy_perf_policy $(toolsbin)/x86_energy_perf_policy; \
+ install -m755 debian/tools/turbostat $(toolsbin)/turbostat; \
+ fi
+
+ rm -rf $(builddir)/tools
+ install -d $(builddir)/tools
+ for i in *; do ln -s $(CURDIR)/$$i $(builddir)/tools/; done
+ rm $(builddir)/tools/tools
+ rsync -a tools/ $(builddir)/tools/tools/
+
+ cd $(builddir)/tools/tools/perf && make man
+ install -m644 $(builddir)/tools/tools/perf/Documentation/*.1 \
+ $(toolsman)/man1
+ if [ "$(arch)" = "amd64" ] || [ "$(arch)" = "i386" ]; then \
+ install -d $(toolsman)/man8; \
+ install -m644 $(CURDIR)/tools/power/x86/x86_energy_perf_policy/*.8 $(toolsman)/man8; \
+ install -m644 $(CURDIR)/tools/power/x86/turbostat/*.8 $(toolsman)/man8; \
+ fi
+endif
+
+install-indep: install-tools
+
+# This is just to make it easy to call manually. Normally done in
+# binary-indep target during builds.
+binary-headers: install-headers
+ dh_testdir
+ dh_testroot
+ dh_installchangelogs -p$(indep_hdrpkg)
+ dh_installdocs -p$(indep_hdrpkg)
+ dh_compress -p$(indep_hdrpkg)
+ dh_fixperms -p$(indep_hdrpkg)
+ dh_installdeb -p$(indep_hdrpkg)
+ $(lockme) dh_gencontrol -p$(indep_hdrpkg)
+ dh_md5sums -p$(indep_hdrpkg)
+ dh_builddeb -p$(indep_hdrpkg)
+
+binary-indep: install-indep
+ dh_testdir
+ dh_testroot
+
+ dh_installchangelogs -i
+ dh_installdocs -i
+ dh_compress -i
+ dh_fixperms -i
+ dh_installdeb -i
+ $(lockme) dh_gencontrol -i
+ dh_md5sums -i
+ dh_builddeb -i
diff --git a/debian/rules.d/4-checks.mk b/debian/rules.d/4-checks.mk
new file mode 100644
index 00000000000000..c4df2fabaedf20
--- /dev/null
+++ b/debian/rules.d/4-checks.mk
@@ -0,0 +1,24 @@
+# Check ABI for package against last release (if not same abinum)
+abi-check-%: $(stampdir)/stamp-build-%
+ install -d $(abidir)
+ sed -e 's/^\(.\+\)[[:space:]]\+\(.\+\)[[:space:]]\(.\+\)$$/\3 \2 \1/' \
+ $(builddir)/build-$*/Module.symvers | sort > $(abidir)/$*
+ @perl -f $(DROOT)/scripts/abi-check "$*" "$(prev_abinum)" "$(abinum)" \
+ "$(prev_abidir)" "$(abidir)" "$(skipabi)"
+
+# Check the module list against the last release (always)
+module-check-%: $(stampdir)/stamp-build-%
+ install -d $(abidir)
+ find $(builddir)/build-$*/ -name \*.ko | \
+ sed -e 's/.*\/\([^\/]*\)\.ko/\1/' | sort > $(abidir)/$*.modules
+ @perl -f $(DROOT)/scripts/module-check "$*" \
+ "$(prev_abidir)" "$(abidir)" $(skipmodule)
+
+checks-%: module-check-% abi-check-%
+ @echo checks-$*
+
+# Check the config against the known options list.
+config-prepare-check-%: $(stampdir)/stamp-prepare-tree-%
+ @perl -f $(DROOT)/scripts/config-check \
+ $(builddir)/build-$*/.config "$(arch)" "$*" "$(sharedconfdir)" "$(skipconfig)"
+
diff --git a/debian/rules.d/5-udebs.mk b/debian/rules.d/5-udebs.mk
new file mode 100644
index 00000000000000..2cb81fdd6efdb1
--- /dev/null
+++ b/debian/rules.d/5-udebs.mk
@@ -0,0 +1,38 @@
+# Do udebs if not disabled in the arch-specific makefile
+binary-udebs: binary-debs
+ifeq ($(disable_d_i),)
+ @$(MAKE) --no-print-directory -f $(DROOT)/rules DEBIAN=$(DEBIAN) \
+ do-binary-udebs
+endif
+
+do-binary-udebs: debian/control
+ dh_testdir
+ dh_testroot
+
+ # unpack the kernels into a temporary directory
+ mkdir -p debian/d-i-${arch}
+
+ imagelist=$$(cat $(builddir)/kernel-versions | grep ^${arch} | awk '{print $$4}') && \
+ for i in $$imagelist; do \
+ dpkg -x $$(ls ../linux-image-$$i\_$(release)-$(revision)_${arch}.deb) \
+ debian/d-i-${arch}; \
+ /sbin/depmod -b debian/d-i-${arch} $$i; \
+ done
+
+ # kernel-wedge will error if no modules unless this is touched
+ touch $(CURDIR)/debian/build/no-modules
+
+ touch ignore-dups
+ export SOURCEDIR=$(CURDIR)/debian/d-i-${arch} && \
+ cd $(builddir) && \
+ kernel-wedge install-files && \
+ kernel-wedge check
+
+ # Build just the udebs
+ dilist=$$(dh_listpackages -s | grep "\-di$$") && \
+ [ -z "$dilist" ] || \
+ for i in $$dilist; do \
+ dh_fixperms -p$$i; \
+ $(lockme) dh_gencontrol -p$$i; \
+ dh_builddeb -p$$i; \
+ done
diff --git a/debian/scripts/abi-check b/debian/scripts/abi-check
new file mode 100755
index 00000000000000..039e4d0069c5c2
--- /dev/null
+++ b/debian/scripts/abi-check
@@ -0,0 +1,2 @@
+#!/bin/sh
+exit 0
diff --git a/debian/scripts/config-check b/debian/scripts/config-check
new file mode 100755
index 00000000000000..039e4d0069c5c2
--- /dev/null
+++ b/debian/scripts/config-check
@@ -0,0 +1,2 @@
+#!/bin/sh
+exit 0
diff --git a/debian/scripts/control-create b/debian/scripts/control-create
new file mode 100755
index 00000000000000..f8ee9a2408eaf2
--- /dev/null
+++ b/debian/scripts/control-create
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+. debian/debian.env
+
+vars=$1
+
+. $vars
+
+if [ "$is_sub" = "" ]; then
+ flavour=$(basename $vars | sed 's/.*\.//')
+ stub=${DEBIAN}/control.d/flavour-control.stub
+else
+ flavour=$(basename $vars .vars)
+ stub=${DEBIAN}/sub-flavours/control.stub
+fi
+
+cat $stub | grep -v '^#' | sed \
+ -e "s#FLAVOUR#$flavour#g" \
+ -e "s#DESC#$desc#g" \
+ -e "s#ARCH#$arch#g" \
+ -e "s#SUPPORTED#$supported#g" \
+ -e "s#TARGET#$target#g" \
+ -e "s#BOOTLOADER#$bootloader#g" \
+ -e "s#=PROVIDES=#$provides#g" \
+ -e "s#=CONFLICTS=#$conflicts#g"
diff --git a/debian/scripts/link-headers b/debian/scripts/link-headers
new file mode 100755
index 00000000000000..fb42dbd12e4df2
--- /dev/null
+++ b/debian/scripts/link-headers
@@ -0,0 +1,42 @@
+#!/bin/bash -e
+
+. debian/debian.env
+
+hdrdir="$1"
+symdir="$2"
+flavour="$3"
+
+echo "Symlinking and copying headers for $flavour..."
+
+excludes="( -path ./debian -prune -o -path ./${DEBIAN} -prune -o -path ./.git ) -prune -o"
+
+(
+find . $excludes -type f \
+ \( -name 'Makefile*' -o -name 'Kconfig*' -o -name 'Kbuild*' -o \
+ -name '*.sh' -o -name '*.pl' -o -name '*.lds' \) -print
+find ./include ./scripts -name .gitignore -prune -o -type f -print
+find ./include -mindepth 1 -maxdepth 1 $excludes -type d -print
+) | (
+while read file; do
+ dir=$file
+ lastdir=$file
+
+ if [ -e "$hdrdir/$file" -o -L "$hdrdir/$file" ]; then
+ continue
+ fi
+
+ while [ ! -e "$hdrdir/$dir" -a ! -L "$hdrdir/$dir" ]; do
+ lastdir=$dir
+ dir=`dirname $dir`
+ done
+ # If the last item to exist is a symlink we assume all is good
+ if [ ! -L "$hdrdir/$dir" ]; then
+ # Turns things like "./foo" into "../"
+ deref="`echo -n $lastdir | sed -e 's/^\.//' -e's,/[^/]*,../,g'`"
+ item="`echo -n $lastdir | sed -e 's/^\.\///'`"
+ ln -s $deref$symdir/$item $hdrdir/$item
+ fi
+done
+)
+
+exit
diff --git a/debian/scripts/misc/getabis b/debian/scripts/misc/getabis
new file mode 100755
index 00000000000000..0556f8ee2dccbc
--- /dev/null
+++ b/debian/scripts/misc/getabis
@@ -0,0 +1,95 @@
+#!/bin/bash
+
+. debian/debian.env
+
+if [ "$#" != "2" ]; then
+ echo "Usage: $0 <release> <revision>" 1>&2
+ exit 1
+fi
+
+ver=$1
+revision=$2
+abi=$(echo $revision | awk -F. '{print $1}')
+
+verabi=$ver-$abi
+verfull=$ver-$revision
+
+WGET="wget --quiet -c"
+
+abidir="`pwd`/$DEBIAN/abi/$verfull"
+tmpdir="`pwd`/abi-tmp-$verfull"
+origdir="`pwd`"
+
+test -d $tmpdir || mkdir $tmpdir
+
+getall() {
+ arch=$1
+ shift
+
+ mkdir -p $abidir/$arch
+
+ for sub in $@; do
+ if [ -f $abidir/$arch/$sub ]; then
+ echo "Exists: $sub"
+ continue
+ fi
+ echo -n "Fetching $sub..."
+ filename=linux-image-${verabi}-${sub}_${verfull}_${arch}.deb
+ cd $tmpdir
+ for r in "${repo_list[@]}"
+ do
+ if ! [ -f $filename ]; then
+ $WGET $r/$filename
+ fi
+ done
+ if [ "$?" = "0" ]; then
+ echo -n "extracting..."
+ dpkg-deb --extract $filename tmp
+ if [ -f tmp/boot/abi-* ]; then
+ mv tmp/boot/abi-* $abidir/$arch/$sub
+ else
+ echo -n "NO ABI FILE..."
+ fi
+ (cd tmp; find lib/modules/$verabi-$sub/kernel -name '*.ko') | \
+ sed -e 's/.*\/\([^\/]*\)\.ko/\1/' | sort > \
+ $abidir/$arch/$sub.modules
+ (
+ cd tmp;
+ ko=`find lib/modules/$verabi-$sub/kernel -name '*.ko' | head -1`
+ readelf -p .comment "$ko" | awk '
+ ($1 == "[") {
+ printf("%s", $3);
+ for (n=4; n<=NF; n++) {
+ printf(" %s", $n);
+ }
+ print ""
+ }' | sort -u >$abidir/$arch/$sub.compiler
+ version=`cat $abidir/$arch/$sub.compiler`
+ echo -n "$version..."
+ )
+ rm -rf tmp $filename
+ echo "done."
+ else
+ echo "FAILED."
+ fi
+ cd $origdir
+ done
+}
+
+# MAIN
+
+# Setup abi directory
+mkdir -p $abidir
+echo $abi > $abidir/abiname
+
+# NOTE: The flavours are hardcoded, because they may have changed from the
+# current build.
+
+. $DEBIAN/etc/getabis
+
+compilers=`cat $abidir/*/*.compiler | sort -u | wc -l`
+if [ "$compilers" != 1 ]; then
+ echo "WARNING: inconsistant compiler versions detected" 1>&2
+fi
+
+rmdir $tmpdir
diff --git a/debian/scripts/misc/git-ubuntu-log b/debian/scripts/misc/git-ubuntu-log
new file mode 100755
index 00000000000000..2967d875bd64b8
--- /dev/null
+++ b/debian/scripts/misc/git-ubuntu-log
@@ -0,0 +1,232 @@
+#!/usr/bin/perl -w
+
+use strict;
+use Text::Wrap;
+
+my $kernel_auth = "Upstream Kernel Changes";
+
+my (%map, @reverts);
+my $pstate = 1;
+my $no_kern_log = 0;
+my $print_shas = 0;
+my $first_print = 1;
+
+while (@ARGV) {
+ my $opt = $ARGV[0];
+ shift;
+ if ($opt eq "--no-kern-log") {
+ $no_kern_log = 1;
+ } elsif ($opt eq "--print-shas") {
+ $print_shas = 1;
+ } else {
+ print STDERR "Unknown options: $opt\n";
+ exit(1);
+ }
+}
+
+sub check_reverts($) {
+ my ($entry) = @_;
+ my ($check);
+
+ foreach $check (reverse @reverts) {
+ my $desc = "Revert \"" . $entry->{'desc'} . "\"";
+ if ($check->{'desc'} eq $desc) {
+ @reverts = grep($_->{'desc'} ne $desc, @reverts);
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
+sub add_entry($) {
+ my ($entry) = @_;
+ my $key = $entry->{'author'};
+
+ # store description in array, in email->{desc list} map
+ if (exists $map{$key}) {
+ # grab ref
+ my $obj = $map{$key};
+
+ # add desc to array
+ push(@$obj, $entry);
+ } else {
+ # create new array, containing 1 item
+ my @arr = ($entry);
+
+ # store ref to array
+ $map{$key} = \@arr;
+ }
+}
+
+sub shortlog_entry($$$$$) {
+ my ($name, $desc, $bug, $cve, $commit) = @_;
+ my $entry;
+
+ $desc =~ s#/pub/scm/linux/kernel/git/#/.../#g;
+ $desc =~ s#\[PATCH\] ##g;
+
+ $desc =~ s#^\s*##g;
+ $desc =~ s# *UBUNTU: ##g;
+
+ $entry->{'desc'} = $desc;
+ if ($bug ne '') {
+ $entry->{'bugno'} = $bug;
+ }
+ $entry->{'cve'} = $cve;
+ $entry->{'commit'} = $commit;
+ $entry->{'author'} = $name;
+
+ if ($desc =~ /^Revert "/) {
+ push(@reverts, $entry);
+ return;
+ }
+
+ return if check_reverts($entry);
+
+ add_entry($entry);
+}
+
+# sort comparison function
+sub by_name($$) {
+ my ($a, $b) = @_;
+
+ uc($a) cmp uc($b);
+}
+
+sub shortlog_output {
+ my ($obj, $key, $entry);
+
+ foreach $key (sort by_name keys %map) {
+ next if $key eq $kernel_auth and $no_kern_log;
+
+ print "\n" unless $first_print;
+ $first_print = 0;
+
+ # output author
+ printf " [ %s ]\n\n", $key;
+
+ # output author's 1-line summaries
+ $obj = $map{$key};
+ foreach $entry (reverse @$obj) {
+ print wrap(" * ", " ", $entry->{'desc'}) . "\n";
+ # For non upstream changes, add other info.
+ if ($key ne $kernel_auth) {
+ if ($print_shas) {
+ print " - GIT-SHA " . $entry->{'commit'} .
+ "\n";
+ }
+ }
+ if (defined($entry->{'bugno'})) {
+ print " - LP: #" . $entry->{'bugno'} . "\n";
+ }
+ if (defined($entry->{'cve'})) {
+ print " - " . $entry->{'cve'} . "\n";
+ }
+ }
+ }
+}
+
+sub changelog_input {
+ my ($author, $desc, $commit, $entry, $cve);
+
+ while (<STDIN>) {
+ # get commit
+ if ($pstate == 1) {
+ next unless /^commit (.*)/;
+
+ $commit = $1;
+
+ $pstate++;
+ }
+
+ # get author and email
+ elsif ($pstate == 2) {
+ my ($email);
+
+ next unless /^[Aa]uthor:?\s*(.*?)\s*<(.*)>/;
+
+ $author = $1;
+ $email = $2;
+ $desc = undef;
+ $cve = undef;
+
+ # cset author fixups
+ if (!$author) {
+ $author = $email;
+ }
+ $pstate++;
+ }
+
+ # skip to blank line
+ elsif ($pstate == 3) {
+ next unless /^\s*$/;
+ $pstate++;
+ }
+
+ # skip to non-blank line
+ elsif ($pstate == 4) {
+ next unless /^\s*?(.*)/;
+ my $ignore = 0;
+ my $do_ignore = 0;
+ my $bug = undef;
+ my %bugz = ();
+ my $k;
+
+ # skip lines that are obviously not
+ # a 1-line cset description
+ next if /^\s*From: /;
+
+ chomp;
+ $desc = $1;
+
+ if ($desc =~ /^ *(Revert "|)UBUNTU:/) {
+ $do_ignore = 1;
+ } else {
+ $do_ignore = 0;
+ $author = $kernel_auth;
+ $ignore = 1 if $desc =~ /Merge /;
+ }
+ while (<STDIN>) {
+ $ignore = 1 if ($do_ignore && /^ *Ignore: yes/i);
+ if (/^ *Bug: *(#|)([0-9#,\s]*)\s*$/i) {
+ foreach $k (split('(,|\s)\s*(#|)', $2)) {
+ $bugz{$k} = 1 if (($k ne '') and ($k =~ /[0-9]+/));
+ }
+ }
+ elsif (/^ *BugLink: *http.*:\/\/.*\/([0-9]+)/i) {
+ $bugz{$1} = 1;
+ }
+ elsif (/^ *(CVE-.*)/) {
+ $cve = $1
+ }
+ last if /^commit /;
+ }
+
+ $bug = join(", #", sort keys(%bugz));
+ if (!$ignore) {
+ &shortlog_entry($author, $desc, $bug,
+ $cve, $commit, 0);
+ }
+
+ $pstate = 1;
+ if ($_ && /^commit (.*)/) {
+ $commit = $1;
+ $pstate++;
+ }
+ }
+
+ else {
+ die "invalid parse state $pstate";
+ }
+ }
+
+ foreach $entry (@reverts) {
+ add_entry($entry);
+ }
+}
+
+&changelog_input;
+&shortlog_output;
+
+exit(0);
diff --git a/debian/scripts/misc/insert-changes.pl b/debian/scripts/misc/insert-changes.pl
new file mode 100755
index 00000000000000..c820597a9fc948
--- /dev/null
+++ b/debian/scripts/misc/insert-changes.pl
@@ -0,0 +1,36 @@
+#!/usr/bin/perl -w
+
+my $debian;
+$droot = $ARGV[0] if (defined $ARGV[0]);
+$droot = 'debian' if (!defined $droot);
+$debian = $ARGV[1] if (defined $ARGV[1]);
+$debian = 'debian.master' if (!defined $debian);
+
+system("make -s -f $droot/rules printchanges > $debian/changes");
+
+open(CHANGELOG, "< $debian/changelog") or die "Cannot open changelog";
+open(CHANGES, "< $debian/changes") or die "Cannot open new changes";
+open(NEW, "> $debian/changelog.new") or die "Cannot open new changelog";
+
+$printed = 0;
+
+while (<CHANGELOG>) {
+ if (/^ CHANGELOG: /) {
+ next if $printed;
+
+ while (<CHANGES>) {
+ print NEW;
+ }
+
+ $printed = 1;
+ } else {
+ print NEW;
+ }
+}
+
+close(NEW);
+close(CHANGES);
+close(CHANGELOG);
+
+rename("$debian/changelog.new", "$debian/changelog");
+unlink("$debian/changes");
diff --git a/debian/scripts/misc/insert-ubuntu-changes b/debian/scripts/misc/insert-ubuntu-changes
new file mode 100755
index 00000000000000..9ede7f3950d7de
--- /dev/null
+++ b/debian/scripts/misc/insert-ubuntu-changes
@@ -0,0 +1,58 @@
+#!/usr/bin/perl
+
+if ($#ARGV != 2) {
+ die "Usage: $0 <changelog> <stop at> <start at>\n";
+}
+my ($changelog, $end, $start) = @ARGV;
+
+$end =~ s/.*\.//;
+$start =~ s/.*\.//;
+
+my @changes = ();
+my $output = 0;
+open(CHG, "<debian.master/changelog") ||
+ open(CHG, "<debian/changelog") ||
+ die "$0: debian/changelog: open failed - $!\n";
+while (<CHG>) {
+ if (/^\S+\s+\((.*\.(\d+))\)/) {
+ if ($2 <= $end) {
+ last;
+ }
+ if ($2 == $start) {
+ $output = 1;
+ }
+ if ($output) {
+ push(@changes, "\n [ Ubuntu: $1 ]\n\n");
+ next;
+ }
+ }
+ next if ($output == 0);
+
+ next if (/^\s*$/);
+ next if (/^\s--/);
+ next if (/^\s\s[^\*\s]/);
+
+ push(@changes, $_);
+}
+close(CHG);
+
+open(CHANGELOG, "< $changelog") or die "Cannot open changelog";
+open(NEW, "> $changelog.new") or die "Cannot open new changelog";
+
+$printed = 3;
+while (<CHANGELOG>) {
+ if (/^ CHANGELOG: /) {
+ $printed--;
+ print NEW;
+ if ($printed == 0) {
+ print NEW @changes;
+ }
+ next;
+ }
+ print NEW;
+}
+
+close(NEW);
+close(CHANGELOG);
+
+rename("$changelog.new", "$changelog");
diff --git a/debian/scripts/misc/kernelconfig b/debian/scripts/misc/kernelconfig
new file mode 100755
index 00000000000000..8812b61c6e5606
--- /dev/null
+++ b/debian/scripts/misc/kernelconfig
@@ -0,0 +1,172 @@
+#!/bin/bash
+
+. debian/debian.env
+
+# Script to merge all configs and run 'make silentoldconfig' on it to wade out bad juju.
+# Then split the configs into distro-commmon and flavour-specific parts
+
+# We have to be in the top level kernel source directory
+if [ ! -f MAINTAINERS ] || [ ! -f Makefile ]; then
+ echo "This does not appear to be the kernel source directory." 1>&2
+ exit 1
+fi
+
+mode=${1:?"Usage: $0 [oldconfig|editconfig]"}
+yes=0
+case "$mode" in
+ update*configs) mode='silentoldconfig' ;;
+ default*configs) mode='oldconfig'; yes=1 ;;
+ edit*configs) ;; # All is good
+ gen*configs) mode='genconfigs' ;; # All is good
+ dump*configs) mode='config'; yes=1 ;;
+ *) echo "$0 called with invalid mode" 1>&2
+ exit 1 ;;
+esac
+kerneldir="`pwd`"
+confdir="$kerneldir/${DEBIAN}/config"
+sharedconfdir="$kerneldir/debian.master/config"
+variant="$2"
+
+. $DEBIAN/etc/kernelconfig
+
+bindir="`pwd`/${DROOT}/scripts/misc"
+common_conf="$confdir/config.common.$family"
+tmpdir=`mktemp -d`
+mkdir "$tmpdir/CONFIGS"
+
+if [ "$mode" = "genconfigs" ]; then
+ keep=1
+ mode="oldconfig"
+ test -d CONFIGS || mkdir CONFIGS
+fi
+
+for arch in $archs; do
+ rm -rf build
+ mkdir build
+
+ # Map debian archs to kernel archs
+ case "$arch" in
+ ppc64) kernarch="powerpc" ;;
+ amd64) kernarch="x86_64" ;;
+ lpia) kernarch="x86" ;;
+ sparc) kernarch="sparc64" ;;
+ armel|armhf) kernarch="arm" ;;
+ *) kernarch="$arch" ;;
+ esac
+
+ archconfdir=$confdir/$arch
+ flavourconfigs=$(cd $archconfdir && ls config.flavour.*)
+
+ # Merge configs
+ # We merge config.common.ubuntu + config.common.<arch> +
+ # config.flavour.<flavour>
+
+ for config in $flavourconfigs; do
+ fullconf="$tmpdir/$arch-$config-full"
+ case $config in
+ *)
+ : >"$fullconf"
+ if [ -f $common_conf ]; then
+ cat $common_conf >> "$fullconf"
+ fi
+ if [ -f $archconfdir/config.common.$arch ]; then
+ cat $archconfdir/config.common.$arch >> "$fullconf"
+ fi
+ cat "$archconfdir/$config" >>"$fullconf"
+ if [ -f $confdir/OVERRIDES ]; then
+ cat $confdir/OVERRIDES >> "$fullconf"
+ fi
+ ;;
+ esac
+ done
+
+ for config in $flavourconfigs; do
+ if [ -f $archconfdir/$config ]; then
+ fullconf="$tmpdir/$arch-$config-full"
+ cat "$fullconf" > build/.config
+ # Call oldconfig or menuconfig
+ case "$mode" in
+ editconfigs)
+ # Interactively edit config parameters
+ while : ; do
+ echo -n "Do you want to edit config: $arch/$config? [Y/n] "
+ read choice
+
+ case "$choice" in
+ y* | Y* | "" )
+ make O=`pwd`/build ARCH=$kernarch menuconfig
+ break ;;
+ n* | N* )
+ break ;;
+ *)
+ echo "Entry not valid"
+ esac
+ done
+ ;;
+ *)
+ echo "* Run $mode (yes=$yes) on $arch/$config ..."
+ if [ "$yes" -eq 1 ]; then
+ yes "" | make O=`pwd`/build ARCH=$kernarch "$mode"
+ else
+ make O=`pwd`/build ARCH=$kernarch "$mode"
+ fi ;;
+ esac
+ cat build/.config > $archconfdir/$config
+ cat build/.config > "$tmpdir/CONFIGS/$arch-$config"
+ if [ "$keep" = "1" ]; then
+ cat build/.config > CONFIGS/$arch-$config
+ fi
+ else
+ echo "!! Config not found $archconfdir/$config..."
+ fi
+ done
+
+ echo "Running splitconfig.pl for $arch"
+ echo
+
+ # Can we make this more robust by avoiding $tmpdir completely?
+ # This approach was used for now because I didn't want to change
+ # splitconfig.pl
+ (cd $archconfdir; $bindir/splitconfig.pl; mv config.common \
+ config.common.$arch; cp config.common.$arch $tmpdir)
+done
+
+rm -f $common_conf
+
+# Now run splitconfig.pl on all the config.common.<arch> copied to
+# $tmpdir
+(cd $tmpdir; $bindir/splitconfig.pl)
+(
+ cd $confdir;
+ rm -f *-full
+ grep -v 'is UNMERGABLE' <$tmpdir/config.common >$common_conf
+ for arch in $archs; do
+ grep -v 'is UNMERGABLE' <$tmpdir/config.common.$arch \
+ >$arch/config.common.$arch
+ done
+)
+
+echo ""
+echo "Running config-check for all configurations ..."
+echo ""
+fail=0
+for arch in $archs; do
+ archconfdir=$confdir/$arch
+ flavourconfigs=$(cd $archconfdir && ls config.flavour.*)
+ for config in $flavourconfigs; do
+ flavour="${config##*.}"
+ if [ -f $archconfdir/$config ]; then
+ fullconf="$tmpdir/CONFIGS/$arch-$config"
+ "$bindir/../config-check" "$fullconf" "$arch" "$flavour" "$sharedconfdir" "0" || let "fail=$fail+1"
+ fi
+ done
+done
+
+if [ "$fail" != 0 ]; then
+ echo ""
+ echo "*** ERROR: $fail config-check failures detected"
+ echo ""
+fi
+
+rm -rf build
+
diff --git a/debian/scripts/misc/retag b/debian/scripts/misc/retag
new file mode 100755
index 00000000000000..94cf169a076902
--- /dev/null
+++ b/debian/scripts/misc/retag
@@ -0,0 +1,34 @@
+#!/usr/bin/perl -w
+
+open(TAGS, "git tag -l |") or die "Could not get list of tags";
+@tags = <TAGS>;
+close(TAGS);
+
+open(LOGS, "git log --pretty=short |") or die "ERROR: Calling git log";
+my $commit = "";
+
+while (<LOGS>) {
+ my $origtag;
+
+ if (m|^commit (.*)$|) {
+ $commit = $1;
+ next;
+ }
+
+ m|\s*UBUNTU: (Ubuntu-2\.6\..*)| or next;
+
+ $tag = $1;
+
+ ($origtag) = grep(/^$tag.orig$/, @tags);
+
+ if (!defined($origtag)) {
+ print "I: Adding original tag for $tag\n";
+ system("git tag -m $tag $tag.orig $tag");
+ }
+
+ print "I: Tagging $tag => $commit\n";
+
+ system("git tag -f -m $tag $tag $commit");
+}
+
+close(LOGS);
diff --git a/debian/scripts/misc/splitconfig.pl b/debian/scripts/misc/splitconfig.pl
new file mode 100755
index 00000000000000..3dca468fca6afc
--- /dev/null
+++ b/debian/scripts/misc/splitconfig.pl
@@ -0,0 +1,111 @@
+#!/usr/bin/perl -w
+
+%allconfigs = ();
+%common = ();
+
+print "Reading config's ...\n";
+
+opendir(DIR, ".");
+
+while (defined($config = readdir(DIR))) {
+ # Only config.*
+ next if $config !~ /^config\..*/;
+ # Nothing that is disabled, or remnant
+ next if $config =~ /.*\.(default|disabled|stub)$/;
+
+ %{$allconfigs{$config}} = ();
+
+ print " processing $config ... ";
+
+ open(CONFIG, "< $config");
+
+ while (<CONFIG>) {
+ # Skip comments
+ /^#*\s*CONFIG_(\w+)[\s=](.*)$/ or next;
+
+ ${$allconfigs{$config}}{$1} = $2;
+
+ $common{$1} = $2;
+ }
+
+ close(CONFIG);
+
+ print "done.\n";
+}
+
+closedir(DIR);
+
+print "\n";
+
+print "Merging lists ... \n";
+
+# %options - pointer to flavour config inside the allconfigs array
+for $config (keys(%allconfigs)) {
+ my %options = %{$allconfigs{$config}};
+
+ print " processing $config ... ";
+
+ for $key (keys(%common)) {
+ next if not defined $common{$key};
+
+ # If we don't have the common option, then it isn't
+ # common. If we do have that option, it must have the same
+ # value. EXCEPT where this file does not have a value at all
+ # which may safely be merged with any other value; the value
+ # will be elided during recombination of the parts.
+ if (!defined($options{$key})) {
+ # Its ok really ... let it merge
+ } elsif (not defined($options{$key})) {
+ undef $common{$key};
+ } elsif ($common{$key} ne $options{$key}) {
+ undef $common{$key};
+ }
+ }
+
+ print "done.\n";
+}
+
+print "\n";
+
+print "Creating common config ... ";
+
+open(COMMON, "> config.common");
+print COMMON "#\n# Common config options automatically generated by splitconfig.pl\n#\n";
+
+for $key (sort(keys(%common))) {
+ if (not defined $common{$key}) {
+ print COMMON "# CONFIG_$key is UNMERGABLE\n";
+ } elsif ($common{$key} eq "is not set") {
+ print COMMON "# CONFIG_$key is not set\n";
+ } else {
+ print COMMON "CONFIG_$key=$common{$key}\n";
+ }
+}
+close(COMMON);
+
+print "done.\n\n";
+
+print "Creating stub configs ...\n";
+
+for $config (keys(%allconfigs)) {
+ my %options = %{$allconfigs{$config}};
+
+ print " processing $config ... ";
+
+ open(STUB, "> $config");
+ print STUB "#\n# Config options for $config automatically generated by splitconfig.pl\n#\n";
+
+ for $key (sort(keys(%options))) {
+ next if defined $common{$key};
+
+ if ($options{$key} =~ /^is /) {
+ print STUB "# CONFIG_$key $options{$key}\n";
+ } else {
+ print STUB "CONFIG_$key=$options{$key}\n";
+ }
+ }
+
+ close(STUB);
+
+ print "done.\n";
+}
diff --git a/debian/scripts/module-check b/debian/scripts/module-check
new file mode 100755
index 00000000000000..039e4d0069c5c2
--- /dev/null
+++ b/debian/scripts/module-check
@@ -0,0 +1,2 @@
+#!/bin/sh
+exit 0
diff --git a/debian/scripts/module-inclusion b/debian/scripts/module-inclusion
new file mode 100755
index 00000000000000..deb07a8133a50e
--- /dev/null
+++ b/debian/scripts/module-inclusion
@@ -0,0 +1,60 @@
+#!/bin/bash
+
+#
+# Build a new directory of modules based on an inclusion list.
+# The includsion list format must be a bash regular expression.
+#
+# usage: $0 ROOT INCLUSION_LIST
+# example: $0 debian/build/build-virtual \
+# debian/build/build-virtual-ALL debian/build/build-virtual \
+# debian.master/control.d/virtual.inclusion-list
+master=0
+if [ "$1" = "--master" ]; then
+ master=1
+ shift
+fi
+
+ROOT=$1
+NROOT=$2
+ILIST=$3
+
+#
+# Prep a destination directory.
+#
+mkdir -p ${NROOT}
+
+# Copy over the framework...
+if [ "$master" -eq 1 ]; then
+ (cd ${ROOT}; find . ! -name "*.ko" -type f) | \
+ while read f
+ do
+ mkdir -p ${NROOT}/`dirname $f`
+ mv ${ROOT}/$f ${NROOT}/$f
+ done
+fi
+
+cat ${ILIST} |while read i
+do
+ #
+ # 'find' blurts a warning if it cannot find any ko files.
+ #
+ if echo "$i" | grep '\*' > /dev/null
+ then
+ (cd ${ROOT}; eval find "${i}" -name "*.ko") |while read f
+ do
+ mkdir -p ${NROOT}/`dirname $f`
+ mv ${ROOT}/$f ${NROOT}/$f
+ done
+ else
+ if [ -f "${ROOT}/$i" ]
+ then
+ mkdir -p ${NROOT}/`dirname $i`
+ mv ${ROOT}/$i ${NROOT}/$i
+ else
+ echo Warning: Could not find ${ROOT}/$i
+ fi
+ fi
+
+done
+
+exit 0
diff --git a/debian/scripts/sub-flavour b/debian/scripts/sub-flavour
new file mode 100755
index 00000000000000..01004939617c75
--- /dev/null
+++ b/debian/scripts/sub-flavour
@@ -0,0 +1,69 @@
+#!/bin/bash
+
+. debian/debian.env
+
+echo "SUB_PROCESS $FROM => $TO"
+
+export from_pkg="linux-image-$ABI_RELEASE-$FROM"
+export to_pkg="linux-image-$ABI_RELEASE-$TO"
+
+from_moddir="debian/$from_pkg/lib/modules/$ABI_RELEASE-$FROM"
+to_moddir="debian/$to_pkg/lib/modules/$ABI_RELEASE-$FROM"
+
+install -d "debian/$to_pkg/boot"
+install -m644 debian/$from_pkg/boot/config-$ABI_RELEASE-$FROM \
+ debian/$to_pkg/boot/
+install -m600 debian/$from_pkg/boot/{vmlinuz,System.map}-$ABI_RELEASE-$FROM \
+ debian/$to_pkg/boot/
+
+#
+# Print some warnings if there are files in the sub-flavours list
+# that do not actually exist.
+#
+cat ${DEBIAN}/sub-flavours/$TO.list | while read line
+do
+(
+ cd debian/$from_pkg/lib/modules/$ABI_RELEASE-$FROM/kernel;
+ #
+ # If its a wildcard, then check that there are files that match.
+ #
+ if echo "$line" | grep '\*' > /dev/null
+ then
+ if [ `eval find "$line" -name '*.ko' 2>/dev/null|wc -l` -lt 1 ]
+ then
+ echo SUB_INST Warning - No files in $line
+ fi
+ #
+ # Else it should be a single file reference.
+ #
+ elif [ ! -f "$line" ]
+ then
+ echo SUB_INST Warning - could not find "$line"
+ fi
+)
+done
+
+cat ${DEBIAN}/sub-flavours/$TO.list | while read line; do
+ (
+ cd debian/$from_pkg/lib/modules/$ABI_RELEASE-$FROM/kernel;
+ if echo "$line" | grep '\*' > /dev/null
+ then
+ eval find "$line" -name '*.ko' 2>/dev/null || true
+ elif [ -f "$line" ]
+ then
+ echo "$line"
+ fi
+ );
+done | while read mod; do
+ echo "SUB_INST checking: $mod"
+ fromdir="/lib/modules/$ABI_RELEASE-$FROM/"
+ egrep "^($fromdir)?kernel/$mod:" \
+ $from_moddir/modules.dep | sed -e "s|^$fromdir||" -e 's/://' -e 's/ /\n/g' | \
+ while read m; do
+ m="${fromdir}$m"
+ test -f debian/$to_pkg/$m && continue
+ echo "SUB_INST installing: $m"
+ install -D -m644 debian/$from_pkg/$m \
+ debian/$to_pkg/$m
+ done
+done
diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 00000000000000..d3827e75a5cadb
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+1.0
diff --git a/debian/stamps/keep-dir b/debian/stamps/keep-dir
new file mode 100644
index 00000000000000..5c38d4a5c411f2
--- /dev/null
+++ b/debian/stamps/keep-dir
@@ -0,0 +1 @@
+Place holder
diff --git a/debian/tests/README b/debian/tests/README
new file mode 100644
index 00000000000000..c74d1c4aef8598
--- /dev/null
+++ b/debian/tests/README
@@ -0,0 +1,21 @@
+Scripts placed in this directory get called one at a time by run-parts(8).
+The scripts are expected to perform some sort of sanity checks on the
+finished build. Scripts will be called once for each flavour.
+
+Some environment variables are exported to make life a little easier:
+
+DPKG_ARCH : The dpkg architecture (e.g. "amd64")
+KERN_ARCH : The kernel architecture (e.g. "x86_64")
+FLAVOUR : The specific flavour for this run (e.g. "generic")
+VERSION : The full version of this build (e.g. 2.6.22-1)
+REVISION : The exact revision of this build (e.g. 1.3)
+PREV_REVISION : The revision prior to this one
+ABI_NUM : The specific ABI number for this build (e.g. 2)
+PREV_ABI_NUM : The previous ABI number. Can be the same as ABI_NUM.
+BUILD_DIR : The directory where this build took place
+INSTALL_DIR : The directory where the package is prepared
+SOURCE_DIR : Where the main kernel source is
+
+Scripts are expected to have a zero exit status when no problems occur,
+and non-zero when an error occurs that should stop the build. Scripts
+should print whatever info they deem needed to deduce the problem.
diff --git a/debian/tests/check-aliases b/debian/tests/check-aliases
new file mode 100644
index 00000000000000..b85118ff12c274
--- /dev/null
+++ b/debian/tests/check-aliases
@@ -0,0 +1,24 @@
+#!/usr/bin/perl -w
+
+my %map;
+
+print "Checking for dupe aliases in $ENV{'FLAVOUR'}...\n";
+
+$aliases =
+ "$ENV{'INSTALL_DIR'}/lib/modules/$ENV{'VERSION'}-$ENV{'FLAVOUR'}/modules.alias";
+
+open(ALIASES, "< $aliases") or die "Could not open $aliases";
+
+while (<ALIASES>) {
+ chomp;
+ my ($junk, $alias, $module) = split;
+
+ if (defined($map{$alias})) {
+ printf("%s %20s / %-20s : %s \n", ("$map{$alias}" eq "$module")
+ ? "INT" : " ", $map{$alias}, $module, $alias);
+ } else {
+ $map{$alias} = $module;
+ }
+}
+
+exit(0);
diff --git a/debian/tools/perf b/debian/tools/perf
new file mode 100644
index 00000000000000..ab35fab9f0f78a
--- /dev/null
+++ b/debian/tools/perf
@@ -0,0 +1,16 @@
+#!/bin/bash
+full_version=`uname -r`
+
+# Removing flavour from version i.e. generic or server.
+flavour_abi=${full_version#*-}
+flavour=${flavour_abi#*-}
+version=${full_version%-$flavour}
+perf="perf_$version"
+
+if ! which "$perf" > /dev/null; then
+ echo "$perf not found" >&2
+ echo "You may need to install linux-tools-$version" >&2
+ exit 2
+fi
+
+exec "$perf" "$@"
diff --git a/debian/tools/turbostat b/debian/tools/turbostat
new file mode 100644
index 00000000000000..ac4af7c9acc49a
--- /dev/null
+++ b/debian/tools/turbostat
@@ -0,0 +1,16 @@
+#!/bin/bash
+full_version=`uname -r`
+
+# Removing flavour from version i.e. generic or server.
+flavour_abi=${full_version#*-}
+flavour=${flavour_abi#*-}
+version=${full_version%-$flavour}
+turbostat="turbostat_$version"
+
+if ! which "$turbostat" > /dev/null; then
+ echo "$turbostat not found" >&2
+ echo "You may need to install linux-tools-$version" >&2
+ exit 2
+fi
+
+exec "$turbostat" "$@"
diff --git a/debian/tools/x86_energy_perf_policy b/debian/tools/x86_energy_perf_policy
new file mode 100644
index 00000000000000..7b97a9e091b333
--- /dev/null
+++ b/debian/tools/x86_energy_perf_policy
@@ -0,0 +1,16 @@
+#!/bin/bash
+full_version=`uname -r`
+
+# Removing flavour from version i.e. generic or server.
+flavour_abi=${full_version#*-}
+flavour=${flavour_abi#*-}
+version=${full_version%-$flavour}
+x86_energy_perf_policy="x86_energy_perf_policy_$version"
+
+if ! which "$x86_energy_perf_policy" > /dev/null; then
+ echo "$x86_energy_perf_policy not found" >&2
+ echo "You may need to install linux-tools-$version" >&2
+ exit 2
+fi
+
+exec "$x86_energy_perf_policy" "$@"