···1+args @ { stdenv, fetchurl, extraConfig ? ""
2+, perl, mktemp, module_init_tools
3+, ... }:
4+5+let
6+ configWithPlatform = kernelPlatform :
7+ ''
8+ # Power management and debugging for powertop.
9+ DEBUG_KERNEL y
10+ PM_ADVANCED_DEBUG y
11+ PM_RUNTIME y
12+ TIMER_STATS y
13+ USB_SUSPEND y
14+ BACKTRACE_SELF_TEST n
15+ CPU_NOTIFIER_ERROR_INJECT? n
16+ DEBUG_DEVRES n
17+ DEBUG_NX_TEST n
18+ DEBUG_STACK_USAGE n
19+ DEBUG_STACKOVERFLOW n
20+ RCU_TORTURE_TEST n
21+ SCHEDSTATS n
22+23+ # Support drivers that need external firmware.
24+ STANDALONE n
25+26+ # Make /proc/config.gz available.
27+ IKCONFIG_PROC y
28+29+ # Optimize with -O2, not -Os.
30+ CC_OPTIMIZE_FOR_SIZE n
31+32+ # Enable the kernel's built-in memory tester.
33+ MEMTEST y
34+35+ # Include the CFQ I/O scheduler in the kernel, rather than as a
36+ # module, so that the initrd gets a good I/O scheduler.
37+ IOSCHED_CFQ y
38+ BLK_CGROUP y # required by CFQ
39+40+ # Enable NUMA.
41+ NUMA? y
42+43+ # Disable some expensive (?) features.
44+ FTRACE n
45+ KPROBES n
46+ PM_TRACE_RTC n
47+48+ # Enable various subsystems.
49+ ACCESSIBILITY y # Accessibility support
50+ AUXDISPLAY y # Auxiliary Display support
51+ DONGLE y # Serial dongle support
52+ HIPPI? y
53+ MTD_COMPLEX_MAPPINGS y # needed for many devices
54+ SCSI_LOWLEVEL y # enable lots of SCSI devices
55+ SCSI_LOWLEVEL_PCMCIA y
56+ SPI y # needed for many devices
57+ SPI_MASTER y
58+ WAN y
59+60+ # Networking options.
61+ IP_PNP n
62+ IPV6_PRIVACY y
63+ NETFILTER_ADVANCED y
64+ IP_VS_PROTO_TCP y
65+ IP_VS_PROTO_UDP y
66+ IP_VS_PROTO_ESP y
67+ IP_VS_PROTO_AH y
68+ IP_DCCP_CCID3 n # experimental
69+ CLS_U32_PERF y
70+ CLS_U32_MARK y
71+72+ # Wireless networking.
73+ IPW2100_MONITOR y # support promiscuous mode
74+ IPW2200_MONITOR? y # support promiscuous mode
75+ HOSTAP_FIRMWARE y # Support downloading firmware images with Host AP driver
76+ HOSTAP_FIRMWARE_NVRAM y
77+ ATH9K_PCI y # Detect Atheros AR9xxx cards on PCI(e) bus
78+ ATH9K_AHB y # Ditto, AHB bus
79+ B43_PHY_HT y
80+ BCMA_HOST_PCI y
81+82+ # Some settings to make sure that fbcondecor works - in particular,
83+ # disable tileblitting and the drivers that need it.
84+85+ # Enable various FB devices.
86+ FB y
87+ FB_EFI y
88+ FB_NVIDIA_I2C y # Enable DDC Support
89+ FB_RIVA_I2C y
90+ FB_ATY_CT y # Mach64 CT/VT/GT/LT (incl. 3D RAGE) support
91+ FB_ATY_GX y # Mach64 GX support
92+ FB_SAVAGE_I2C y
93+ FB_SAVAGE_ACCEL y
94+ FB_SIS_300 y
95+ FB_SIS_315 y
96+ FB_3DFX_ACCEL y
97+ FB_GEODE y
98+99+ # Video configuration
100+ # Enable KMS for devices whose X.org driver supports it.
101+ DRM_I915_KMS y
102+ DRM_RADEON_KMS y
103+ # Hybrid graphics support
104+ VGA_SWITCHEROO y
105+106+ # Sound.
107+ SND_AC97_POWER_SAVE y # AC97 Power-Saving Mode
108+ SND_HDA_INPUT_BEEP y # Support digital beep via input layer
109+ SND_USB_CAIAQ_INPUT y
110+ PSS_MIXER y # Enable PSS mixer (Beethoven ADSP-16 and other compatible)
111+112+ # USB serial devices.
113+ USB_SERIAL_GENERIC y # USB Generic Serial Driver
114+ USB_SERIAL_KEYSPAN_MPR y # include firmware for various USB serial devices
115+ USB_SERIAL_KEYSPAN_USA28 y
116+ USB_SERIAL_KEYSPAN_USA28X y
117+ USB_SERIAL_KEYSPAN_USA28XA y
118+ USB_SERIAL_KEYSPAN_USA28XB y
119+ USB_SERIAL_KEYSPAN_USA19 y
120+ USB_SERIAL_KEYSPAN_USA18X y
121+ USB_SERIAL_KEYSPAN_USA19W y
122+ USB_SERIAL_KEYSPAN_USA19QW y
123+ USB_SERIAL_KEYSPAN_USA19QI y
124+ USB_SERIAL_KEYSPAN_USA49W y
125+ USB_SERIAL_KEYSPAN_USA49WLC y
126+127+ # Filesystem options - in particular, enable extended attributes and
128+ # ACLs for all filesystems that support them.
129+ EXT2_FS_XATTR y # Ext2 extended attributes
130+ EXT2_FS_POSIX_ACL y # Ext2 POSIX Access Control Lists
131+ EXT2_FS_SECURITY y # Ext2 Security Labels
132+ EXT2_FS_XIP y # Ext2 execute in place support
133+ EXT4_FS_POSIX_ACL y
134+ EXT4_FS_SECURITY y
135+ REISERFS_FS_XATTR y
136+ REISERFS_FS_POSIX_ACL y
137+ REISERFS_FS_SECURITY y
138+ JFS_POSIX_ACL y
139+ JFS_SECURITY y
140+ XFS_QUOTA y
141+ XFS_POSIX_ACL y
142+ XFS_RT y # XFS Realtime subvolume support
143+ OCFS2_DEBUG_MASKLOG n
144+ BTRFS_FS_POSIX_ACL y
145+ UBIFS_FS_XATTR? y
146+ UBIFS_FS_ADVANCED_COMPR y
147+ NFSD_V2_ACL y
148+ NFSD_V3 y
149+ NFSD_V3_ACL y
150+ NFSD_V4 y
151+ CIFS_XATTR y
152+ CIFS_POSIX y
153+154+ # Security related features.
155+ STRICT_DEVMEM y # Filter access to /dev/mem
156+ SECURITY_SELINUX_BOOTPARAM_VALUE 0 # disable SELinux by default
157+158+ # Misc. options.
159+ 8139TOO_8129 y
160+ 8139TOO_PIO n # PIO is slower
161+ AIC79XX_DEBUG_ENABLE n
162+ AIC7XXX_DEBUG_ENABLE n
163+ AIC94XX_DEBUG n
164+ B43_PCMCIA y
165+ BLK_DEV_CMD640_ENHANCED y # CMD640 enhanced support
166+ BLK_DEV_IDEACPI y # IDE ACPI support
167+ BLK_DEV_INTEGRITY y
168+ BSD_PROCESS_ACCT_V3 y
169+ BT_HCIUART_BCSP y
170+ BT_HCIUART_H4 y # UART (H4) protocol support
171+ BT_HCIUART_LL y
172+ BT_RFCOMM m
173+ BT_RFCOMM_TTY y # RFCOMM TTY support
174+ CRASH_DUMP n
175+ DMAR? n # experimental
176+ DVB_DYNAMIC_MINORS? y # we use udev
177+ EFI_STUB y # EFI bootloader in the bzImage itself
178+ FUSION y # Fusion MPT device support
179+ IDE_GD_ATAPI y # ATAPI floppy support
180+ IRDA_ULTRA y # Ultra (connectionless) protocol
181+ JOYSTICK_IFORCE_232 y # I-Force Serial joysticks and wheels
182+ JOYSTICK_IFORCE_USB y # I-Force USB joysticks and wheels
183+ JOYSTICK_XPAD_FF y # X-Box gamepad rumble support
184+ JOYSTICK_XPAD_LEDS y # LED Support for Xbox360 controller 'BigX' LED
185+ LDM_PARTITION y # Windows Logical Disk Manager (Dynamic Disk) support
186+ LEDS_TRIGGER_IDE_DISK y # LED IDE Disk Trigger
187+ LOGIRUMBLEPAD2_FF y # Logitech Rumblepad 2 force feedback
188+ LOGO n # not needed
189+ MEDIA_ATTACH? y
190+ MEGARAID_NEWGEN y
191+ MICROCODE_AMD y
192+ MODVERSIONS y
193+ MOUSE_PS2_ELANTECH y # Elantech PS/2 protocol extension
194+ MTRR_SANITIZER y
195+ NET_FC y # Fibre Channel driver support
196+ PPP_MULTILINK y # PPP multilink support
197+ REGULATOR y # Voltage and Current Regulator Support
198+ SCSI_LOGGING y # SCSI logging facility
199+ SERIAL_8250 y # 8250/16550 and compatible serial support
200+ SLIP_COMPRESSED y # CSLIP compressed headers
201+ SLIP_SMART y
202+ THERMAL_HWMON y # Hardware monitoring support
203+ USB_DEBUG n
204+ USB_EHCI_ROOT_HUB_TT y # Root Hub Transaction Translators
205+ USB_EHCI_TT_NEWSCHED y # Improved transaction translator scheduling
206+ X86_CHECK_BIOS_CORRUPTION y
207+ X86_MCE y
208+ XEN_DOM0 y
209+210+ # Linux Containers
211+ RT_GROUP_SCHED? y
212+ CGROUP_DEVICE? y
213+ CGROUP_MEM_RES_CTLR? y
214+ CGROUP_MEM_RES_CTLR_SWAP? y
215+ DEVPTS_MULTIPLE_INSTANCES? y
216+217+ # Enable staging drivers. These are somewhat experimental, but
218+ # they generally don't hurt.
219+ STAGING y
220+221+ # PROC_EVENTS requires that the netlink connector is not built
222+ # as a module. This is required by libcgroup's cgrulesengd.
223+ CONNECTOR y
224+ PROC_EVENTS y
225+226+ # Tracing
227+ FTRACE y
228+ FUNCTION_TRACER y
229+ FTRACE_SYSCALLS y
230+ SCHED_TRACER y
231+232+ # Devtmpfs support.
233+ DEVTMPFS y
234+235+ # Media support
236+ MEDIA_CAMERA_SUPPORT? y
237+ MEDIA_RC_SUPPORT? y
238+239+ ${if kernelPlatform ? kernelExtraConfig then kernelPlatform.kernelExtraConfig else ""}
240+ ${extraConfig}
241+ '';
242+in
243+244+import ./generic.nix (
245+246+ rec {
247+ version = "3.7";
248+ testing = false;
249+250+ modDirVersion = "3.7.0";
251+252+ preConfigure = ''
253+ substituteInPlace scripts/depmod.sh --replace '-b "$INSTALL_MOD_PATH"' ""
254+ '';
255+256+ src = fetchurl {
257+ url = "mirror://kernel/linux/kernel/v3.x/${if testing then "testing/" else ""}linux-${version}.tar.xz";
258+ sha256 = "0n4lddghf0mvp3jrq4lckii88yvm6mwmfp0ibwsw7vkfyw5lv9k0";
259+ };
260+261+ config = configWithPlatform stdenv.platform;
262+ configCross = configWithPlatform stdenv.cross.platform;
263+264+ features.iwlwifi = true;
265+ features.efiBootStub = true;
266+ features.needsCifsUtils = true;
267+ features.canDisableNetfilterConntrackHelpers = true;
268+ features.netfilterRPFilter = true;
269+ }
270+271+ // removeAttrs args ["extraConfig"]
272+)
+14
pkgs/top-level/all-packages.nix
···5900 ];
5901 };
590200000000000005903 /* Linux kernel modules are inherently tied to a specific kernel. So
5904 rather than provide specific instances of those packages for a
5905 specific kernel, we have a function that builds those packages
···6027 linuxPackages_3_4 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_4 pkgs.linuxPackages_3_4);
6028 linuxPackages_3_5 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_5 pkgs.linuxPackages_3_5);
6029 linuxPackages_3_6 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_6 pkgs.linuxPackages_3_6);
060306031 # The current default kernel / kernel modules.
6032 linux = linuxPackages.kernel;
···5900 ];
5901 };
59025903+ linux_3_7 = makeOverridable (import ../os-specific/linux/kernel/linux-3.7.nix) {
5904+ inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
5905+ kernelPatches =
5906+ [
5907+ kernelPatches.sec_perm_2_6_24
5908+ #kernelPatches.aufs3_6
5909+ ] ++ lib.optionals (platform.kernelArch == "mips")
5910+ [ kernelPatches.mips_fpureg_emu
5911+ kernelPatches.mips_fpu_sigill
5912+ kernelPatches.mips_ext3_n32
5913+ ];
5914+ };
5915+5916 /* Linux kernel modules are inherently tied to a specific kernel. So
5917 rather than provide specific instances of those packages for a
5918 specific kernel, we have a function that builds those packages
···6040 linuxPackages_3_4 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_4 pkgs.linuxPackages_3_4);
6041 linuxPackages_3_5 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_5 pkgs.linuxPackages_3_5);
6042 linuxPackages_3_6 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_6 pkgs.linuxPackages_3_6);
6043+ linuxPackages_3_7 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_7 pkgs.linuxPackages_3_6);
60446045 # The current default kernel / kernel modules.
6046 linux = linuxPackages.kernel;
+1-1
pkgs/top-level/platforms.nix
···14 ''
15 # Virtualisation (KVM, Xen...).
16 PARAVIRT_GUEST y
17- KVM_CLOCK y
18 KVM_GUEST y
19 XEN y
20 KSM y
···14 ''
15 # Virtualisation (KVM, Xen...).
16 PARAVIRT_GUEST y
17+ KVM_CLOCK? y #Part of KVM_GUEST since linux 3.7
18 KVM_GUEST y
19 XEN y
20 KSM y