diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.26.nix b/pkgs/os-specific/linux/kernel/linux-2.6.26.nix new file mode 100644 index 000000000000..b402cdea7426 --- /dev/null +++ b/pkgs/os-specific/linux/kernel/linux-2.6.26.nix @@ -0,0 +1,177 @@ +{ stdenv, fetchurl, extraConfig ? "", ... } @ args: + +let + configWithPlatform = kernelPlatform : + '' + # Don't include any debug features. + DEBUG_KERNEL n + + # Activate /proc/sys/kernel/modprobe + KMOD y + + # Support drivers that need external firmware. + STANDALONE n + + # Make /proc/config.gz available. + IKCONFIG_PROC y + + # Optimize with -O2, not -Os. + CC_OPTIMIZE_FOR_SIZE n + + # Virtualisation (KVM, Xen...). + PARAVIRT_GUEST y + KVM_CLOCK y + KVM_GUEST y + + # Include the CFQ I/O scheduler in the kernel, rather than as a + # module, so that the initrd gets a good I/O scheduler. + IOSCHED_CFQ y + + # Disable some expensive (?) features. + MARKERS n + KPROBES n + NUMA? n + + # Enable various subsystems. + ACCESSIBILITY y # Accessibility support + AUXDISPLAY y # Auxiliary Display support + DONGLE y # Serial dongle support + HIPPI y + MTD_COMPLEX_MAPPINGS y # needed for many devices + NET_POCKET y # enable pocket and portable adapters + SCSI_LOWLEVEL y # enable lots of SCSI devices + SCSI_LOWLEVEL_PCMCIA y + SPI y # needed for many devices + SPI_MASTER y + WAN y + + # Networking options. + IP_PNP n + IPV6_PRIVACY y + + # Some settings to make sure that fbcondecor works - in particular, + # disable tileblitting and the drivers that need it. + + # Enable various FB devices. + FB_EFI y + FB_NVIDIA_I2C y # Enable DDC Support + FB_RIVA_I2C y + FB_ATY_CT y # ach64 CT/VT/GT/LT (incl. 3D RAGE) support + FB_ATY_GX y # Mach64 GX support + FB_SAVAGE_I2C y + FB_SAVAGE_ACCEL y + FB_SIS_300 y + FB_SIS_315 y + FB_3DFX_ACCEL y + FB_TRIDENT_ACCEL y + FB_GEODE y + + # Sound. + SND_AC97_POWER_SAVE y # AC97 Power-Saving Mode + SND_USB_CAIAQ_INPUT y + PSS_MIXER y # Enable PSS mixer (Beethoven ADSP-16 and other compatible) + + # Enable a bunch of USB storage devices. + USB_STORAGE_DATAFAB y + USB_STORAGE_FREECOM y + USB_STORAGE_ISD200 y + USB_STORAGE_USBAT y + USB_STORAGE_SDDR09 y + USB_STORAGE_SDDR55 y + USB_STORAGE_JUMPSHOT y + USB_STORAGE_ONETOUCH y + USB_STORAGE_KARMA y + USB_STORAGE_CYPRESS_ATACB y + + # USB serial devices. + USB_SERIAL_GENERIC y # USB Generic Serial Driver + USB_SERIAL_KEYSPAN_MPR y # include firmware for various USB serial devices + USB_SERIAL_KEYSPAN_USA28 y + USB_SERIAL_KEYSPAN_USA28X y + USB_SERIAL_KEYSPAN_USA28XA y + USB_SERIAL_KEYSPAN_USA28XB y + USB_SERIAL_KEYSPAN_USA19 y + USB_SERIAL_KEYSPAN_USA18X y + USB_SERIAL_KEYSPAN_USA19W y + USB_SERIAL_KEYSPAN_USA19QW y + USB_SERIAL_KEYSPAN_USA19QI y + USB_SERIAL_KEYSPAN_USA49W y + USB_SERIAL_KEYSPAN_USA49WLC y + + # Filesystem options - in particular, enable extended attributes and + # ACLs for all filesystems that support them. + EXT2_FS_XATTR y # Ext2 extended attributes + EXT2_FS_POSIX_ACL y # Ext2 POSIX Access Control Lists + EXT2_FS_SECURITY y # Ext2 Security Labels + EXT2_FS_XIP y # Ext2 execute in place support + REISERFS_FS_XATTR y + REISERFS_FS_POSIX_ACL y + REISERFS_FS_SECURITY y + JFS_POSIX_ACL y + JFS_SECURITY y + XFS_QUOTA y + XFS_POSIX_ACL y + XFS_RT y # XFS Realtime subvolume support + OCFS2_DEBUG_MASKLOG n + NFSD_V2_ACL y + NFSD_V3 y + NFSD_V3_ACL y + NFSD_V4 y + CIFS_XATTR y + CIFS_POSIX y + + # Misc. options. + 8139TOO_8129 y + 8139TOO_PIO n # PIO is slower + AIC79XX_DEBUG_ENABLE n + AIC7XXX_DEBUG_ENABLE n + AIC94XX_DEBUG n + BLK_DEV_BSG n + BLK_DEV_IDEACPI y # IDE ACPI support + BLK_DEV_IO_TRACE n + BT_HCIUART_BCSP y + BT_HCIUART_H4 y # UART (H4) protocol support + BT_HCIUART_LL y + BT_RFCOMM_TTY y # RFCOMM TTY support + CPU_FREQ_DEBUG n + CRASH_DUMP n + DMAR? n # experimental + FUSION y # Fusion MPT device support + IRDA_ULTRA y # Ultra (connectionless) protocol + KALLSYMS_EXTRA_PASS n + LOGO n # not needed + MEDIA_ATTACH y + MEGARAID_NEWGEN y + MODVERSIONS y + NET_FC y # Fibre Channel driver support + PCI_LEGACY y + PPP_MULTILINK y # PPP multilink support + SCSI_LOGGING y # SCSI logging facility + SERIAL_8250 y # 8250/16550 and compatible serial support + SLIP_COMPRESSED y # CSLIP compressed headers + SLIP_SMART y + THERMAL_HWMON y # Hardware monitoring support + USB_DEBUG n + USB_EHCI_ROOT_HUB_TT y # Root Hub Transaction Translators + X86_MCE y + + ${extraConfig} + ''; +in + +import ./generic.nix ( + + rec { + version = "2.6.26.8"; + + src = fetchurl { + url = "ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-${version}.tar.bz2"; + sha256 = "4f2991378a09bd4ba916236cba200052c18e52e44c9d7e4100337f7df2788dc9"; + }; + + config = configWithPlatform stdenv.platform; + configCross = configWithPlatform stdenv.cross.platform; + } + + // removeAttrs args ["extraConfig"] +) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 4b20300f5abc..64ee61fd4b33 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5064,6 +5064,17 @@ let ]; }; + linux_2_6_26 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.26.nix) { + inherit fetchurl perl mktemp module_init_tools; + stdenv = overrideInStdenv stdenv [gnumake381]; + kernelPatches = + [ kernelPatches.fbcondecor_2_6_25 + kernelPatches.sec_perm_2_6_24 + kernelPatches.glibc_getline + kernelPatches.cifs_timeout_2_6_25 + ]; + }; + linux_2_6_27 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.27.nix) { inherit fetchurl perl mktemp module_init_tools; stdenv = overrideInStdenv stdenv [gnumake381];