···11-args @ { stdenv, fetchurl, extraConfig ? ""
22-, perl, mktemp, module_init_tools
33-, ... }:
44-55-let
66- configWithPlatform = kernelPlatform :
77- ''
88- # Power management and debugging for powertop.
99- DEBUG_KERNEL y
1010- PM_ADVANCED_DEBUG y
1111- PM_RUNTIME y
1212- TIMER_STATS y
1313- USB_SUSPEND y
1414- BACKTRACE_SELF_TEST n
1515- CPU_NOTIFIER_ERROR_INJECT? n
1616- DEBUG_DEVRES n
1717- DEBUG_NX_TEST n
1818- DEBUG_STACK_USAGE n
1919- DEBUG_STACKOVERFLOW n
2020- RCU_TORTURE_TEST n
2121- SCHEDSTATS n
2222-2323- # Support drivers that need external firmware.
2424- STANDALONE n
2525-2626- # Make /proc/config.gz available.
2727- IKCONFIG_PROC y
2828-2929- # Optimize with -O2, not -Os.
3030- CC_OPTIMIZE_FOR_SIZE n
3131-3232- # Enable the kernel's built-in memory tester.
3333- MEMTEST y
3434-3535- # Include the CFQ I/O scheduler in the kernel, rather than as a
3636- # module, so that the initrd gets a good I/O scheduler.
3737- IOSCHED_CFQ y
3838- BLK_CGROUP y # required by CFQ
3939-4040- # Enable NUMA.
4141- NUMA? y
4242-4343- # Disable some expensive (?) features.
4444- FTRACE n
4545- KPROBES n
4646- PM_TRACE_RTC n
4747-4848- # Enable various subsystems.
4949- ACCESSIBILITY y # Accessibility support
5050- AUXDISPLAY y # Auxiliary Display support
5151- DONGLE y # Serial dongle support
5252- HIPPI? y
5353- MTD_COMPLEX_MAPPINGS y # needed for many devices
5454- SCSI_LOWLEVEL y # enable lots of SCSI devices
5555- SCSI_LOWLEVEL_PCMCIA y
5656- SPI y # needed for many devices
5757- SPI_MASTER y
5858- WAN y
5959-6060- # Networking options.
6161- IP_PNP n
6262- IPV6_PRIVACY y
6363- NETFILTER_ADVANCED y
6464- IP_VS_PROTO_TCP y
6565- IP_VS_PROTO_UDP y
6666- IP_VS_PROTO_ESP y
6767- IP_VS_PROTO_AH y
6868- IP_DCCP_CCID3 n # experimental
6969- CLS_U32_PERF y
7070- CLS_U32_MARK y
7171-7272- # Wireless networking.
7373- IPW2100_MONITOR y # support promiscuous mode
7474- IPW2200_MONITOR? y # support promiscuous mode
7575- HOSTAP_FIRMWARE y # Support downloading firmware images with Host AP driver
7676- HOSTAP_FIRMWARE_NVRAM y
7777- ATH9K_PCI y # Detect Atheros AR9xxx cards on PCI(e) bus
7878- ATH9K_AHB y # Ditto, AHB bus
7979- B43_PHY_HT y
8080- BCMA_HOST_PCI y
8181-8282- # Some settings to make sure that fbcondecor works - in particular,
8383- # disable tileblitting and the drivers that need it.
8484-8585- # Enable various FB devices.
8686- FB y
8787- FB_EFI y
8888- FB_NVIDIA_I2C y # Enable DDC Support
8989- FB_RIVA_I2C y
9090- FB_ATY_CT y # Mach64 CT/VT/GT/LT (incl. 3D RAGE) support
9191- FB_ATY_GX y # Mach64 GX support
9292- FB_SAVAGE_I2C y
9393- FB_SAVAGE_ACCEL y
9494- FB_SIS_300 y
9595- FB_SIS_315 y
9696- FB_3DFX_ACCEL y
9797- FB_GEODE y
9898-9999- # Video configuration
100100- # Enable KMS for devices whose X.org driver supports it.
101101- DRM_I915_KMS y
102102- DRM_RADEON_KMS y
103103- # Hybrid graphics support
104104- VGA_SWITCHEROO y
105105-106106- # Sound.
107107- SND_AC97_POWER_SAVE y # AC97 Power-Saving Mode
108108- SND_HDA_INPUT_BEEP y # Support digital beep via input layer
109109- SND_USB_CAIAQ_INPUT y
110110- PSS_MIXER y # Enable PSS mixer (Beethoven ADSP-16 and other compatible)
111111-112112- # USB serial devices.
113113- USB_SERIAL_GENERIC y # USB Generic Serial Driver
114114- USB_SERIAL_KEYSPAN_MPR y # include firmware for various USB serial devices
115115- USB_SERIAL_KEYSPAN_USA28 y
116116- USB_SERIAL_KEYSPAN_USA28X y
117117- USB_SERIAL_KEYSPAN_USA28XA y
118118- USB_SERIAL_KEYSPAN_USA28XB y
119119- USB_SERIAL_KEYSPAN_USA19 y
120120- USB_SERIAL_KEYSPAN_USA18X y
121121- USB_SERIAL_KEYSPAN_USA19W y
122122- USB_SERIAL_KEYSPAN_USA19QW y
123123- USB_SERIAL_KEYSPAN_USA19QI y
124124- USB_SERIAL_KEYSPAN_USA49W y
125125- USB_SERIAL_KEYSPAN_USA49WLC y
126126-127127- # Filesystem options - in particular, enable extended attributes and
128128- # ACLs for all filesystems that support them.
129129- EXT2_FS_XATTR y # Ext2 extended attributes
130130- EXT2_FS_POSIX_ACL y # Ext2 POSIX Access Control Lists
131131- EXT2_FS_SECURITY y # Ext2 Security Labels
132132- EXT2_FS_XIP y # Ext2 execute in place support
133133- EXT4_FS_POSIX_ACL y
134134- EXT4_FS_SECURITY y
135135- REISERFS_FS_XATTR y
136136- REISERFS_FS_POSIX_ACL y
137137- REISERFS_FS_SECURITY y
138138- JFS_POSIX_ACL y
139139- JFS_SECURITY y
140140- XFS_QUOTA y
141141- XFS_POSIX_ACL y
142142- XFS_RT y # XFS Realtime subvolume support
143143- OCFS2_DEBUG_MASKLOG n
144144- BTRFS_FS_POSIX_ACL y
145145- UBIFS_FS_XATTR? y
146146- UBIFS_FS_ADVANCED_COMPR y
147147- NFSD_V2_ACL y
148148- NFSD_V3 y
149149- NFSD_V3_ACL y
150150- NFSD_V4 y
151151- NFS_FSCACHE y
152152- CIFS_XATTR y
153153- CIFS_POSIX y
154154- CIFS_FSCACHE y
155155-156156- # Security related features.
157157- STRICT_DEVMEM y # Filter access to /dev/mem
158158- SECURITY_SELINUX_BOOTPARAM_VALUE 0 # disable SELinux by default
159159-160160- # Misc. options.
161161- 8139TOO_8129 y
162162- 8139TOO_PIO n # PIO is slower
163163- AIC79XX_DEBUG_ENABLE n
164164- AIC7XXX_DEBUG_ENABLE n
165165- AIC94XX_DEBUG n
166166- B43_PCMCIA y
167167- BLK_DEV_CMD640_ENHANCED y # CMD640 enhanced support
168168- BLK_DEV_IDEACPI y # IDE ACPI support
169169- BLK_DEV_INTEGRITY y
170170- BSD_PROCESS_ACCT_V3 y
171171- BT_HCIUART_BCSP y
172172- BT_HCIUART_H4 y # UART (H4) protocol support
173173- BT_HCIUART_LL y
174174- BT_RFCOMM m
175175- BT_RFCOMM_TTY y # RFCOMM TTY support
176176- CRASH_DUMP n
177177- DMAR? n # experimental
178178- DVB_DYNAMIC_MINORS? y # we use udev
179179- EFI_STUB y # EFI bootloader in the bzImage itself
180180- FUSION y # Fusion MPT device support
181181- IDE_GD_ATAPI y # ATAPI floppy support
182182- IRDA_ULTRA y # Ultra (connectionless) protocol
183183- JOYSTICK_IFORCE_232 y # I-Force Serial joysticks and wheels
184184- JOYSTICK_IFORCE_USB y # I-Force USB joysticks and wheels
185185- JOYSTICK_XPAD_FF y # X-Box gamepad rumble support
186186- JOYSTICK_XPAD_LEDS y # LED Support for Xbox360 controller 'BigX' LED
187187- LDM_PARTITION y # Windows Logical Disk Manager (Dynamic Disk) support
188188- LEDS_TRIGGER_IDE_DISK y # LED IDE Disk Trigger
189189- LOGIRUMBLEPAD2_FF y # Logitech Rumblepad 2 force feedback
190190- LOGO n # not needed
191191- MEDIA_ATTACH? y
192192- MEGARAID_NEWGEN y
193193- MICROCODE_AMD y
194194- MODVERSIONS y
195195- MOUSE_PS2_ELANTECH y # Elantech PS/2 protocol extension
196196- MTRR_SANITIZER y
197197- NET_FC y # Fibre Channel driver support
198198- PPP_MULTILINK y # PPP multilink support
199199- REGULATOR y # Voltage and Current Regulator Support
200200- SCSI_LOGGING y # SCSI logging facility
201201- SERIAL_8250 y # 8250/16550 and compatible serial support
202202- SLIP_COMPRESSED y # CSLIP compressed headers
203203- SLIP_SMART y
204204- THERMAL_HWMON y # Hardware monitoring support
205205- USB_DEBUG n
206206- USB_EHCI_ROOT_HUB_TT y # Root Hub Transaction Translators
207207- USB_EHCI_TT_NEWSCHED y # Improved transaction translator scheduling
208208- X86_CHECK_BIOS_CORRUPTION y
209209- X86_MCE y
210210- XEN_DOM0 y
211211-212212- # Linux Containers
213213- RT_GROUP_SCHED? y
214214- CGROUP_DEVICE? y
215215- CGROUP_MEM_RES_CTLR? y
216216- CGROUP_MEM_RES_CTLR_SWAP? y
217217- DEVPTS_MULTIPLE_INSTANCES? y
218218-219219- # Enable staging drivers. These are somewhat experimental, but
220220- # they generally don't hurt.
221221- STAGING y
222222-223223- # PROC_EVENTS requires that the netlink connector is not built
224224- # as a module. This is required by libcgroup's cgrulesengd.
225225- CONNECTOR y
226226- PROC_EVENTS y
227227-228228- # Tracing
229229- FTRACE y
230230- FUNCTION_TRACER y
231231- FTRACE_SYSCALLS y
232232- SCHED_TRACER y
233233-234234- # Devtmpfs support.
235235- DEVTMPFS y
236236-237237- # Media support
238238- MEDIA_CAMERA_SUPPORT? y
239239- MEDIA_RC_SUPPORT? y
240240-241241- # Easier debug of NFS issues
242242- SUNRPC_DEBUG y
243243-244244- ${if kernelPlatform ? kernelExtraConfig then kernelPlatform.kernelExtraConfig else ""}
245245- ${extraConfig}
246246- '';
247247-in
248248-249249-import ./generic.nix (
250250-251251- rec {
252252- version = "3.6.11";
253253- testing = false;
254254-255255- preConfigure = ''
256256- substituteInPlace scripts/depmod.sh --replace '-b "$INSTALL_MOD_PATH"' ""
257257- '';
258258-259259- src = fetchurl {
260260- url = "mirror://kernel/linux/kernel/v3.x/${if testing then "testing/" else ""}linux-${version}.tar.xz";
261261- sha256 = "0cnbdhsgxxdl44gqfqlh8nyf6yzmdz7xkfa0xh2rzdscwqh8085h";
262262- };
263263-264264- config = configWithPlatform stdenv.platform;
265265- configCross = configWithPlatform stdenv.cross.platform;
266266-267267- features.iwlwifi = true;
268268- features.efiBootStub = true;
269269- features.needsCifsUtils = true;
270270- features.canDisableNetfilterConntrackHelpers = true;
271271- features.netfilterRPFilter = true;
272272- }
273273-274274- // removeAttrs args ["extraConfig"]
275275-)
-14
pkgs/os-specific/linux/kernel/patches.nix
···147147 features.aufs3 = true;
148148 };
149149150150- aufs3_6 = rec {
151151- name = "aufs3.6";
152152- version = "3.6.20121210";
153153- utilRev = "91af15f977d12e02165759620005f6ce1a4d7602";
154154- utilHash = "dda4df89828dcf0e4012d88b4aa3eda8c30af69d6530ff5fedc2411de872c996";
155155- patch = makeAufs3StandalonePatch {
156156- inherit version;
157157- rev = "f541ebfd88df0f4e6f9daf55053282e4f52cc4d9";
158158- sha256 = "4d615a5f3c14a6a7c49bc6d65e78a2cdb89321cbd8a53f87cc8fe9edda382c3a";
159159- };
160160- features.aufsBase = true;
161161- features.aufs3 = true;
162162- };
163163-164150 # not officially released yet, but 3.x seems to work fine
165151 aufs3_7 = rec {
166152 name = "aufs3.7";