diff options
Diffstat (limited to 'pkgs/os-specific/linux')
-rw-r--r-- | pkgs/os-specific/linux/firmware/ipw2100/default.nix | 25 | ||||
-rw-r--r-- | pkgs/os-specific/linux/hal/default.nix | 5 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/linux-2.6.36.nix | 207 | ||||
-rw-r--r-- | pkgs/os-specific/linux/qemu-kvm/default.nix | 6 | ||||
-rw-r--r-- | pkgs/os-specific/linux/qemu-kvm/unix-domain.patch | 175 |
5 files changed, 238 insertions, 180 deletions
diff --git a/pkgs/os-specific/linux/firmware/ipw2100/default.nix b/pkgs/os-specific/linux/firmware/ipw2100/default.nix new file mode 100644 index 000000000000..2ffa8c3e8375 --- /dev/null +++ b/pkgs/os-specific/linux/firmware/ipw2100/default.nix @@ -0,0 +1,25 @@ +{stdenv, fetchurl}: + +stdenv.mkDerivation { + name = "ipw2100-fw-1.3"; + src = fetchurl { + url = http://bughost.org/firmware/ipw2100-fw-1.3.tgz; + sha256 = "18m7wgd062qwfdr6y0kjrvf1715wjcjn4yml2sk29ls8br2pq471"; + }; + + unpackPhase = "tar xvzf $src"; + + # Installation copies the firmware AND the license. The license + # says: "Your rights to redistribute the Software shall be + # contingent upon your installation of this Agreement in its + # entirety in the same directory as the Software." + installPhase = "ensureDir $out; cp * $out"; + + meta = { + # "... you may transfer a copy of the Software ... provided such + # recipient agrees to be fully bound by the terms hereof." + description = "Firmware for the Intel 2100BG wireless card (requires acceptance of license, see http://ipw2100.sourceforge.net/firmware.php?fid=2)"; + homepage = http://ipw2100.sourceforge.net/firmware.php; + license = http://ipw2100.sourceforge.net/firmware.php?fid=2; + }; +} diff --git a/pkgs/os-specific/linux/hal/default.nix b/pkgs/os-specific/linux/hal/default.nix index 45a3efbfce53..718d54f3106e 100644 --- a/pkgs/os-specific/linux/hal/default.nix +++ b/pkgs/os-specific/linux/hal/default.nix @@ -2,7 +2,7 @@ , libusb, dbus, dbus_glib, glib, libuuid, perl , perlXMLParser, gettext, zlib, gperf, consolekit, policykit , libsmbios, dmidecode, udev, utillinuxng, pmutils, usbutils -, eject +, eject, upstart }: assert stdenv ? glibc; @@ -54,7 +54,8 @@ stdenv.mkDerivation rec { --replace /bin/mount ${utillinuxng}/bin/mount \ --replace /bin/umount ${utillinuxng}/bin/umount \ --replace /usr/bin/pm-is-supported ${pmutils}/bin/pm-is-supported \ - --replace /usr/sbin/pm ${pmutils}/sbin/pm + --replace /usr/sbin/pm ${pmutils}/sbin/pm \ + --replace /sbin/shutdown ${upstart}/sbin/shutdown done ''; diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.36.nix b/pkgs/os-specific/linux/kernel/linux-2.6.36.nix new file mode 100644 index 000000000000..dbc036bec372 --- /dev/null +++ b/pkgs/os-specific/linux/kernel/linux-2.6.36.nix @@ -0,0 +1,207 @@ +args @ { stdenv, fetchurl, userModeLinux ? false, extraConfig ? "" +, ... }: + +let + configWithPlatform = kernelPlatform : + '' + # Don't include any debug features. + DEBUG_KERNEL n + + # 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 + + # Enable the kernel's built-in memory tester. + MEMTEST y + + # Disable some expensive (?) features. + FTRACE n + KPROBES n + NUMA? n + PM_TRACE_RTC 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 + NETFILTER_ADVANCED y + IP_VS_PROTO_TCP y + IP_VS_PROTO_UDP y + IP_VS_PROTO_ESP y + IP_VS_PROTO_AH y + IP_DCCP_CCID3 n # experimental + CLS_U32_PERF y + CLS_U32_MARK y + + # Wireless networking. + IPW2100_MONITOR y # support promiscuous mode + IPW2200_MONITOR y # support promiscuous mode + IWL4965 y # Intel Wireless WiFi 4965AGN + IWL5000 y # Intel Wireless WiFi 5000AGN + HOSTAP_FIRMWARE y # Support downloading firmware images with Host AP driver + HOSTAP_FIRMWARE_NVRAM y + + # Some settings to make sure that fbcondecor works - in particular, + # disable tileblitting and the drivers that need it. + + # Enable various FB devices. + FB y + FB_EFI y + FB_NVIDIA_I2C y # Enable DDC Support + FB_RIVA_I2C y + FB_ATY_CT y # Mach64 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_GEODE y + + # Video configuration + # The intel drivers already require KMS + DRM_I915_KMS y + + # Sound. + SND_AC97_POWER_SAVE y # AC97 Power-Saving Mode + SND_HDA_INPUT_BEEP y # Support digital beep via input layer + SND_USB_CAIAQ_INPUT y + PSS_MIXER y # Enable PSS mixer (Beethoven ADSP-16 and other compatible) + + # 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 + EXT4_FS_POSIX_ACL y + EXT4_FS_SECURITY y + 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 + BTRFS_FS_POSIX_ACL y + UBIFS_FS_XATTR y + UBIFS_FS_ADVANCED_COMPR y + NFSD_V2_ACL y + NFSD_V3 y + NFSD_V3_ACL y + NFSD_V4 y + CIFS_XATTR y + CIFS_POSIX y + + # Security related features. + STRICT_DEVMEM y # Filter access to /dev/mem + SECURITY_SELINUX_BOOTPARAM_VALUE 0 # disable SELinux by default + + # Misc. options. + 8139TOO_8129 y + 8139TOO_PIO n # PIO is slower + AIC79XX_DEBUG_ENABLE n + AIC7XXX_DEBUG_ENABLE n + AIC94XX_DEBUG n + B43_PCMCIA y + BLK_DEV_BSG n + BLK_DEV_CMD640_ENHANCED y # CMD640 enhanced support + BLK_DEV_IDEACPI y # IDE ACPI support + BLK_DEV_INTEGRITY y + BSD_PROCESS_ACCT_V3 y + 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 + DVB_DYNAMIC_MINORS y # we use udev + FUSION y # Fusion MPT device support + IDE_GD_ATAPI y # ATAPI floppy support + IRDA_ULTRA y # Ultra (connectionless) protocol + JOYSTICK_IFORCE_232 y # I-Force Serial joysticks and wheels + JOYSTICK_IFORCE_USB y # I-Force USB joysticks and wheels + JOYSTICK_XPAD_FF y # X-Box gamepad rumble support + JOYSTICK_XPAD_LEDS y # LED Support for Xbox360 controller 'BigX' LED + KALLSYMS_EXTRA_PASS n + LDM_PARTITION y # Windows Logical Disk Manager (Dynamic Disk) support + LEDS_TRIGGER_IDE_DISK y # LED IDE Disk Trigger + LOGIRUMBLEPAD2_FF y # Logitech Rumblepad 2 force feedback + LOGO n # not needed + MEDIA_ATTACH y + MEGARAID_NEWGEN y + MICROCODE_AMD y + MODVERSIONS y + MOUSE_PS2_ELANTECH y # Elantech PS/2 protocol extension + MTRR_SANITIZER y + NET_FC y # Fibre Channel driver support + PPP_MULTILINK y # PPP multilink support + REGULATOR y # Voltage and Current Regulator 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_CHECK_BIOS_CORRUPTION y + X86_MCE y + + ${if kernelPlatform ? kernelExtraConfig then kernelPlatform.kernelExtraConfig else ""} + ${extraConfig} + ''; +in + +import ./generic.nix ( + + rec { + version = "2.6.36"; + + src = fetchurl { + url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2"; + sha256 = "15a076d1a435a6bf8e92834eba4b390b4ec094ce06d47f89d071ca9e5788ce04"; + }; + + config = configWithPlatform stdenv.platform; + configCross = configWithPlatform stdenv.cross.platform; + + features.iwlwifi = true; + } + + // removeAttrs args ["extraConfig"] +) diff --git a/pkgs/os-specific/linux/qemu-kvm/default.nix b/pkgs/os-specific/linux/qemu-kvm/default.nix index 69222d5a24d0..ef7153871fd2 100644 --- a/pkgs/os-specific/linux/qemu-kvm/default.nix +++ b/pkgs/os-specific/linux/qemu-kvm/default.nix @@ -3,14 +3,14 @@ assert stdenv.isLinux; stdenv.mkDerivation rec { - name = "qemu-kvm-0.12.5"; + name = "qemu-kvm-0.13.0"; src = fetchurl { url = "mirror://sourceforge/kvm/${name}.tar.gz"; - sha256 = "0gsqmws24s96g1h0z2m8r28pyv08wnzh5jip925ym167rfp8bh14"; + sha256 = "0lxym4p2bvqcb37h3wbjd81w4jrj4dn5kivdxcpx27iwgq6n1ckd"; }; - patches = [ ./unix-domain.patch ./smb-tmpdir.patch ]; + patches = [ ./smb-tmpdir.patch ]; buildInputs = [ zlib SDL alsaLib pkgconfig pciutils libuuid ]; diff --git a/pkgs/os-specific/linux/qemu-kvm/unix-domain.patch b/pkgs/os-specific/linux/qemu-kvm/unix-domain.patch deleted file mode 100644 index 86815a06cd21..000000000000 --- a/pkgs/os-specific/linux/qemu-kvm/unix-domain.patch +++ /dev/null @@ -1,175 +0,0 @@ -diff -rc --exclude '*~' qemu-kvm-0.12.1.2-orig/slirp/socket.c qemu-kvm-0.12.1.2/slirp/socket.c -*** qemu-kvm-0.12.1.2-orig/slirp/socket.c 2009-12-29 21:46:34.000000000 +0100 ---- qemu-kvm-0.12.1.2/slirp/socket.c 2010-01-03 20:24:11.000000000 +0100 -*************** -*** 588,593 **** ---- 588,594 ---- - u_int lport, int flags) - { - struct sockaddr_in addr; -+ struct sockaddr_un addr_un; - struct socket *so; - int s, opt = 1; - socklen_t addrlen = sizeof(addr); -*************** -*** 622,634 **** - so->so_lport = lport; /* Kept in network format */ - so->so_laddr.s_addr = laddr; /* Ditto */ - -! addr.sin_family = AF_INET; -! addr.sin_addr.s_addr = haddr; -! addr.sin_port = hport; - -! if (((s = qemu_socket(AF_INET,SOCK_STREAM,0)) < 0) || - (setsockopt(s,SOL_SOCKET,SO_REUSEADDR,(char *)&opt,sizeof(int)) < 0) || -! (bind(s,(struct sockaddr *)&addr, sizeof(addr)) < 0) || - (listen(s,1) < 0)) { - int tmperrno = errno; /* Don't clobber the real reason we failed */ - ---- 623,644 ---- - so->so_lport = lport; /* Kept in network format */ - so->so_laddr.s_addr = laddr; /* Ditto */ - -! so->so_uds = ntohs(hport) >= 0xff00; -! -! if (so->so_uds) { -! addr_un.sun_family = AF_UNIX; -! sprintf(addr_un.sun_path, "./%d.socket", ntohs(hport)); -! unlink(addr_un.sun_path); -! } else { -! addr.sin_family = AF_INET; -! addr.sin_addr.s_addr = haddr; -! addr.sin_port = hport; -! } - -! if (((s = qemu_socket(so->so_uds ? PF_UNIX : AF_INET, SOCK_STREAM, 0)) < 0) || - (setsockopt(s,SOL_SOCKET,SO_REUSEADDR,(char *)&opt,sizeof(int)) < 0) || -! (bind(s, so->so_uds ? (struct sockaddr *) &addr_un : (struct sockaddr *) &addr, -! so->so_uds ? sizeof(addr_un) : sizeof(addr)) < 0) || - (listen(s,1) < 0)) { - int tmperrno = errno; /* Don't clobber the real reason we failed */ - -*************** -*** 644,655 **** - } - setsockopt(s,SOL_SOCKET,SO_OOBINLINE,(char *)&opt,sizeof(int)); - -! getsockname(s,(struct sockaddr *)&addr,&addrlen); -! so->so_fport = addr.sin_port; -! if (addr.sin_addr.s_addr == 0 || addr.sin_addr.s_addr == loopback_addr.s_addr) -! so->so_faddr = slirp->vhost_addr; -! else -! so->so_faddr = addr.sin_addr; - - so->s = s; - return so; ---- 654,670 ---- - } - setsockopt(s,SOL_SOCKET,SO_OOBINLINE,(char *)&opt,sizeof(int)); - -! if (so->so_uds) { -! so->so_fport = hport; -! so->so_faddr = slirp->vhost_addr; -! } else { -! getsockname(s,(struct sockaddr *)&addr,&addrlen); -! so->so_fport = addr.sin_port; -! if (addr.sin_addr.s_addr == 0 || addr.sin_addr.s_addr == loopback_addr.s_addr) -! so->so_faddr = slirp->vhost_addr; -! else -! so->so_faddr = addr.sin_addr; -! } - - so->s = s; - return so; -diff -rc --exclude '*~' qemu-kvm-0.12.1.2-orig/slirp/socket.h qemu-kvm-0.12.1.2/slirp/socket.h -*** qemu-kvm-0.12.1.2-orig/slirp/socket.h 2009-12-29 21:46:34.000000000 +0100 ---- qemu-kvm-0.12.1.2/slirp/socket.h 2010-01-03 20:20:50.000000000 +0100 -*************** -*** 33,39 **** - struct in_addr so_laddr; /* local host table entry */ - u_int16_t so_fport; /* foreign port */ - u_int16_t so_lport; /* local port */ -! - u_int8_t so_iptos; /* Type of service */ - u_int8_t so_emu; /* Is the socket emulated? */ - ---- 33,40 ---- - struct in_addr so_laddr; /* local host table entry */ - u_int16_t so_fport; /* foreign port */ - u_int16_t so_lport; /* local port */ -! int so_uds; /* foreign "port" is a unix domain socket */ -! - u_int8_t so_iptos; /* Type of service */ - u_int8_t so_emu; /* Is the socket emulated? */ - -diff -rc --exclude '*~' qemu-kvm-0.12.1.2-orig/slirp/tcp_subr.c qemu-kvm-0.12.1.2/slirp/tcp_subr.c -*** qemu-kvm-0.12.1.2-orig/slirp/tcp_subr.c 2009-12-29 21:46:34.000000000 +0100 ---- qemu-kvm-0.12.1.2/slirp/tcp_subr.c 2010-01-03 20:20:50.000000000 +0100 -*************** -*** 383,389 **** - Slirp *slirp = inso->slirp; - struct socket *so; - struct sockaddr_in addr; -! socklen_t addrlen = sizeof(struct sockaddr_in); - struct tcpcb *tp; - int s, opt; - ---- 383,390 ---- - Slirp *slirp = inso->slirp; - struct socket *so; - struct sockaddr_in addr; -! struct sockaddr_un addr_un; -! socklen_t addrlen; - struct tcpcb *tp; - int s, opt; - -*************** -*** 413,419 **** - - (void) tcp_mss(sototcpcb(so), 0); - -! if ((s = accept(inso->s,(struct sockaddr *)&addr,&addrlen)) < 0) { - tcp_close(sototcpcb(so)); /* This will sofree() as well */ - return; - } ---- 414,423 ---- - - (void) tcp_mss(sototcpcb(so), 0); - -! addrlen = inso->so_uds ? sizeof(struct sockaddr_un) : sizeof(struct sockaddr_in); -! -! if ((inso->so_uds && (s = accept(inso->s, (struct sockaddr *) &addr_un, &addrlen)) < 0) || -! (!inso->so_uds && (s = accept(inso->s, (struct sockaddr *) &addr, &addrlen)) < 0)) { - tcp_close(sototcpcb(so)); /* This will sofree() as well */ - return; - } -*************** -*** 425,435 **** - opt = 1; - setsockopt(s,IPPROTO_TCP,TCP_NODELAY,(char *)&opt,sizeof(int)); - -! so->so_fport = addr.sin_port; -! so->so_faddr = addr.sin_addr; -! /* Translate connections from localhost to the real hostname */ -! if (so->so_faddr.s_addr == 0 || so->so_faddr.s_addr == loopback_addr.s_addr) -! so->so_faddr = slirp->vhost_addr; - - /* Close the accept() socket, set right state */ - if (inso->so_state & SS_FACCEPTONCE) { ---- 429,444 ---- - opt = 1; - setsockopt(s,IPPROTO_TCP,TCP_NODELAY,(char *)&opt,sizeof(int)); - -! if (inso->so_uds) { -! so->so_fport = htons(s); /* use the fd number as the foreign port */ -! so->so_faddr = slirp->vhost_addr; -! } else { -! so->so_fport = addr.sin_port; -! so->so_faddr = addr.sin_addr; -! /* Translate connections from localhost to the real hostname */ -! if (so->so_faddr.s_addr == 0 || so->so_faddr.s_addr == loopback_addr.s_addr) -! so->so_faddr = slirp->vhost_addr; -! } - - /* Close the accept() socket, set right state */ - if (inso->so_state & SS_FACCEPTONCE) { |