1 args @ { stdenv, fetchurl, userModeLinux ? false, extraConfig ? ""
2 , perl, mktemp, module_init_tools
6 configWithPlatform = kernelPlatform :
8 # Don't include any debug features.
11 # Support drivers that need external firmware.
14 # Make /proc/config.gz available.
17 # Optimize with -O2, not -Os.
18 CC_OPTIMIZE_FOR_SIZE n
20 # Enable the kernel's built-in memory tester.
23 # Disable some expensive (?) features.
29 # Enable various subsystems.
30 ACCESSIBILITY y # Accessibility support
31 AUXDISPLAY y # Auxiliary Display support
32 DONGLE y # Serial dongle support
34 MTD_COMPLEX_MAPPINGS y # needed for many devices
35 NET_POCKET y # enable pocket and portable adapters
36 SCSI_LOWLEVEL y # enable lots of SCSI devices
37 SCSI_LOWLEVEL_PCMCIA y
38 SPI y # needed for many devices
50 IP_DCCP_CCID3 n # experimental
54 # Wireless networking.
55 IPW2100_MONITOR y # support promiscuous mode
56 IPW2200_MONITOR y # support promiscuous mode
57 HOSTAP_FIRMWARE y # Support downloading firmware images with Host AP driver
58 HOSTAP_FIRMWARE_NVRAM y
60 # Some settings to make sure that fbcondecor works - in particular,
61 # disable tileblitting and the drivers that need it.
63 # Enable various FB devices.
66 FB_NVIDIA_I2C y # Enable DDC Support
68 FB_ATY_CT y # Mach64 CT/VT/GT/LT (incl. 3D RAGE) support
69 FB_ATY_GX y # Mach64 GX support
78 # The intel drivers already require KMS
80 # Hybrid graphics support
84 SND_AC97_POWER_SAVE y # AC97 Power-Saving Mode
85 SND_HDA_INPUT_BEEP y # Support digital beep via input layer
87 PSS_MIXER y # Enable PSS mixer (Beethoven ADSP-16 and other compatible)
90 USB_SERIAL_GENERIC y # USB Generic Serial Driver
91 USB_SERIAL_KEYSPAN_MPR y # include firmware for various USB serial devices
92 USB_SERIAL_KEYSPAN_USA28 y
93 USB_SERIAL_KEYSPAN_USA28X y
94 USB_SERIAL_KEYSPAN_USA28XA y
95 USB_SERIAL_KEYSPAN_USA28XB y
96 USB_SERIAL_KEYSPAN_USA19 y
97 USB_SERIAL_KEYSPAN_USA18X y
98 USB_SERIAL_KEYSPAN_USA19W y
99 USB_SERIAL_KEYSPAN_USA19QW y
100 USB_SERIAL_KEYSPAN_USA19QI y
101 USB_SERIAL_KEYSPAN_USA49W y
102 USB_SERIAL_KEYSPAN_USA49WLC y
104 # Filesystem options - in particular, enable extended attributes and
105 # ACLs for all filesystems that support them.
106 EXT2_FS_XATTR y # Ext2 extended attributes
107 EXT2_FS_POSIX_ACL y # Ext2 POSIX Access Control Lists
108 EXT2_FS_SECURITY y # Ext2 Security Labels
109 EXT2_FS_XIP y # Ext2 execute in place support
113 REISERFS_FS_POSIX_ACL y
114 REISERFS_FS_SECURITY y
119 XFS_RT y # XFS Realtime subvolume support
120 OCFS2_DEBUG_MASKLOG n
123 UBIFS_FS_ADVANCED_COMPR y
131 # Security related features.
132 STRICT_DEVMEM y # Filter access to /dev/mem
133 SECURITY_SELINUX_BOOTPARAM_VALUE 0 # disable SELinux by default
137 8139TOO_PIO n # PIO is slower
138 AIC79XX_DEBUG_ENABLE n
139 AIC7XXX_DEBUG_ENABLE n
142 BLK_DEV_CMD640_ENHANCED y # CMD640 enhanced support
143 BLK_DEV_IDEACPI y # IDE ACPI support
145 BSD_PROCESS_ACCT_V3 y
147 BT_HCIUART_H4 y # UART (H4) protocol support
151 BT_RFCOMM_TTY y # RFCOMM TTY support
153 DMAR? n # experimental
154 DVB_DYNAMIC_MINORS y # we use udev
155 FUSION y # Fusion MPT device support
156 IDE_GD_ATAPI y # ATAPI floppy support
157 IRDA_ULTRA y # Ultra (connectionless) protocol
158 JOYSTICK_IFORCE_232 y # I-Force Serial joysticks and wheels
159 JOYSTICK_IFORCE_USB y # I-Force USB joysticks and wheels
160 JOYSTICK_XPAD_FF y # X-Box gamepad rumble support
161 JOYSTICK_XPAD_LEDS y # LED Support for Xbox360 controller 'BigX' LED
162 LDM_PARTITION y # Windows Logical Disk Manager (Dynamic Disk) support
163 LEDS_TRIGGER_IDE_DISK y # LED IDE Disk Trigger
164 LOGIRUMBLEPAD2_FF y # Logitech Rumblepad 2 force feedback
170 MOUSE_PS2_ELANTECH y # Elantech PS/2 protocol extension
172 NET_FC y # Fibre Channel driver support
173 PPP_MULTILINK y # PPP multilink support
174 REGULATOR y # Voltage and Current Regulator Support
175 SCSI_LOGGING y # SCSI logging facility
176 SERIAL_8250 y # 8250/16550 and compatible serial support
177 SLIP_COMPRESSED y # CSLIP compressed headers
179 THERMAL_HWMON y # Hardware monitoring support
181 USB_EHCI_ROOT_HUB_TT y # Root Hub Transaction Translators
182 X86_CHECK_BIOS_CORRUPTION y
185 ${if kernelPlatform ? kernelExtraConfig then kernelPlatform.kernelExtraConfig else ""}
190 import ./generic.nix (
196 url = "mirror://kernel/linux/kernel/v3.0/linux-${version}.tar.bz2";
197 sha256 = "182n0glwxb6wdm87kxzl7n7fbk9pnykhjq88vyrb0fffaj5j5c34";
200 config = configWithPlatform stdenv.platform;
201 configCross = configWithPlatform stdenv.cross.platform;
203 setModuleDir = false;
205 features.iwlwifi = true;
208 // removeAttrs args ["extraConfig"]