svn path=/nixpkgs/branches/kde-4.7/; revision=28146
[NixPkgs.git] / pkgs / os-specific / linux / kernel / linux-3.0.nix
blob169c37dec492d2526e6a434bb9694386a9859fc2
1 args @ { stdenv, fetchurl, userModeLinux ? false, extraConfig ? ""
2 , perl, mktemp, module_init_tools
3 , ... }:
5 let
6   configWithPlatform = kernelPlatform :
7     ''
8       # Don't include any debug features.
9       DEBUG_KERNEL n
11       # Support drivers that need external firmware.
12       STANDALONE n
14       # Make /proc/config.gz available.
15       IKCONFIG_PROC y
17       # Optimize with -O2, not -Os.
18       CC_OPTIMIZE_FOR_SIZE n
20       # Enable the kernel's built-in memory tester.
21       MEMTEST y
23       # Disable some expensive (?) features.
24       FTRACE n
25       KPROBES n
26       NUMA? n
27       PM_TRACE_RTC n
29       # Enable various subsystems.
30       ACCESSIBILITY y # Accessibility support
31       AUXDISPLAY y # Auxiliary Display support
32       DONGLE y # Serial dongle support
33       HIPPI y
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
39       SPI_MASTER y
40       WAN y
42       # Networking options.
43       IP_PNP n
44       IPV6_PRIVACY y
45       NETFILTER_ADVANCED y
46       IP_VS_PROTO_TCP y
47       IP_VS_PROTO_UDP y
48       IP_VS_PROTO_ESP y
49       IP_VS_PROTO_AH y
50       IP_DCCP_CCID3 n # experimental
51       CLS_U32_PERF y
52       CLS_U32_MARK y
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.
64       FB y
65       FB_EFI y
66       FB_NVIDIA_I2C y # Enable DDC Support
67       FB_RIVA_I2C y
68       FB_ATY_CT y # Mach64 CT/VT/GT/LT (incl. 3D RAGE) support
69       FB_ATY_GX y # Mach64 GX support
70       FB_SAVAGE_I2C y
71       FB_SAVAGE_ACCEL y
72       FB_SIS_300 y
73       FB_SIS_315 y
74       FB_3DFX_ACCEL y
75       FB_GEODE y
77       # Video configuration
78       # The intel drivers already require KMS
79       DRM_I915_KMS y
80       # Hybrid graphics support
81       VGA_SWITCHEROO y
83       # Sound.
84       SND_AC97_POWER_SAVE y # AC97 Power-Saving Mode
85       SND_HDA_INPUT_BEEP y # Support digital beep via input layer
86       SND_USB_CAIAQ_INPUT y
87       PSS_MIXER y # Enable PSS mixer (Beethoven ADSP-16 and other compatible)
89       # USB serial devices.
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
110       EXT4_FS_POSIX_ACL y
111       EXT4_FS_SECURITY y
112       REISERFS_FS_XATTR y
113       REISERFS_FS_POSIX_ACL y
114       REISERFS_FS_SECURITY y
115       JFS_POSIX_ACL y
116       JFS_SECURITY y
117       XFS_QUOTA y
118       XFS_POSIX_ACL y
119       XFS_RT y # XFS Realtime subvolume support
120       OCFS2_DEBUG_MASKLOG n
121       BTRFS_FS_POSIX_ACL y
122       UBIFS_FS_XATTR y
123       UBIFS_FS_ADVANCED_COMPR y
124       NFSD_V2_ACL y
125       NFSD_V3 y
126       NFSD_V3_ACL y
127       NFSD_V4 y
128       CIFS_XATTR y
129       CIFS_POSIX y
131       # Security related features.
132       STRICT_DEVMEM y # Filter access to /dev/mem
133       SECURITY_SELINUX_BOOTPARAM_VALUE 0 # disable SELinux by default
135       # Misc. options.
136       8139TOO_8129 y
137       8139TOO_PIO n # PIO is slower
138       AIC79XX_DEBUG_ENABLE n
139       AIC7XXX_DEBUG_ENABLE n
140       AIC94XX_DEBUG n
141       B43_PCMCIA y
142       BLK_DEV_CMD640_ENHANCED y # CMD640 enhanced support
143       BLK_DEV_IDEACPI y # IDE ACPI support
144       BLK_DEV_INTEGRITY y
145       BSD_PROCESS_ACCT_V3 y
146       BT_HCIUART_BCSP y
147       BT_HCIUART_H4 y # UART (H4) protocol support
148       BT_HCIUART_LL y
149       BT_L2CAP y
150       BT_RFCOMM m
151       BT_RFCOMM_TTY y # RFCOMM TTY support
152       CRASH_DUMP n
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
165       LOGO n # not needed
166       MEDIA_ATTACH y
167       MEGARAID_NEWGEN y
168       MICROCODE_AMD y
169       MODVERSIONS y
170       MOUSE_PS2_ELANTECH y # Elantech PS/2 protocol extension
171       MTRR_SANITIZER y
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
178       SLIP_SMART y
179       THERMAL_HWMON y # Hardware monitoring support
180       USB_DEBUG n
181       USB_EHCI_ROOT_HUB_TT y # Root Hub Transaction Translators
182       X86_CHECK_BIOS_CORRUPTION y
183       X86_MCE y
185       ${if kernelPlatform ? kernelExtraConfig then kernelPlatform.kernelExtraConfig else ""}
186       ${extraConfig}
187     '';
190 import ./generic.nix (
192   rec {
193     version = "3.0";
194   
195     src = fetchurl {
196       url = "mirror://kernel/linux/kernel/v3.0/linux-${version}.tar.bz2";
197       sha256 = "182n0glwxb6wdm87kxzl7n7fbk9pnykhjq88vyrb0fffaj5j5c34";
198     };
200     config = configWithPlatform stdenv.platform;
201     configCross = configWithPlatform stdenv.cross.platform;
203     setModuleDir = false;
205     features.iwlwifi = true;
206   }
208   // removeAttrs args ["extraConfig"]