2010-02-22 23:44:02 +00:00
|
|
|
rec {
|
Simplified much more the expressions for cross building and multiplatform.
I introduce the new nixpkgs parameter "platform", defaulting to "pc",
which was before defined as an attribute of nixpkgs.
I made the crossSystem nixpkgs attribute set parameter contain its own 'platform'.
This allows cross-building a kernel for a given crossSystem.platform in a non-PC
platform.
The actual native platform can be taken from stdenv.platform, and this way we also
avoid the constant passing of 'platform' to packages for platform-dependant builds
(kernel, initrd, ...).
I will update nixos accordingly to these changes, for non-PC platforms to work.
I think we are gaining on flexibility and clearness. I could cross build succesfully
an ultrasparc kernel and a mipsel kernel on PC. But since this change, I should be able
to do this also in non-PC.
Before this change, there was no possibility of distinguishing the "target platform" or
the "native build platform" when cross building, being the single "platform" attribute
always interpreted as target platform.
The platform is a quite relevant attribute set, as it determines the linuxHeaders used
(in the case, by now the only one supported, of linux targets).
The platform attributes are quite linux centric still. Let's hope for more generality to come.
svn path=/nixpkgs/trunk/; revision=20273
2010-02-27 17:35:47 +00:00
|
|
|
pc = {
|
2009-12-19 12:12:24 +00:00
|
|
|
name = "pc";
|
|
|
|
uboot = null;
|
2010-03-01 13:12:57 +00:00
|
|
|
kernelHeadersBaseConfig = "defconfig";
|
2009-12-19 12:12:24 +00:00
|
|
|
kernelBaseConfig = "defconfig";
|
2010-02-16 19:27:51 +00:00
|
|
|
# Build whatever possible as a module, if not stated in the extra config.
|
|
|
|
kernelAutoModules = true;
|
2010-02-18 11:34:48 +00:00
|
|
|
kernelTarget = "bzImage";
|
2010-03-01 14:06:48 +00:00
|
|
|
# Currently ignored - it should be set according to 'system' once it is
|
|
|
|
# not ignored. This is for stdenv-updates.
|
|
|
|
kernelArch = "i386";
|
2009-12-19 12:12:24 +00:00
|
|
|
kernelExtraConfig =
|
|
|
|
''
|
|
|
|
# Virtualisation (KVM, Xen...).
|
2013-07-01 02:42:51 +01:00
|
|
|
HYPERVISOR_GUEST? y #3.10 version of the paravirt options
|
2013-07-01 01:55:21 +01:00
|
|
|
PARAVIRT_GUEST? y #Doesn't exist in 3.10
|
2012-12-11 16:57:04 +00:00
|
|
|
KVM_CLOCK? y #Part of KVM_GUEST since linux 3.7
|
2013-07-01 01:55:21 +01:00
|
|
|
KVM_GUEST? y #Doesn't exist in 3.10
|
|
|
|
XEN? y #Doesn't exist in 3.10
|
2009-12-19 12:12:24 +00:00
|
|
|
KSM y
|
|
|
|
|
|
|
|
# We need 64 GB (PAE) support for Xen guest support.
|
|
|
|
HIGHMEM64G? y
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
2011-08-24 08:48:02 +01:00
|
|
|
pc_simplekernel = pc // {
|
|
|
|
kernelAutoModules = false;
|
|
|
|
};
|
|
|
|
|
2010-02-17 22:20:56 +00:00
|
|
|
sheevaplug = {
|
2009-12-19 12:12:24 +00:00
|
|
|
name = "sheevaplug";
|
2010-03-10 20:44:48 +00:00
|
|
|
kernelMajor = "2.6";
|
2010-02-27 00:55:03 +00:00
|
|
|
kernelHeadersBaseConfig = "kirkwood_defconfig";
|
2009-12-28 10:35:34 +00:00
|
|
|
kernelBaseConfig = "kirkwood_defconfig";
|
2012-12-06 15:51:52 +00:00
|
|
|
kernelArch = "arm";
|
|
|
|
kernelAutoModules = false;
|
|
|
|
kernelExtraConfig =
|
|
|
|
''
|
|
|
|
BLK_DEV_RAM y
|
|
|
|
BLK_DEV_INITRD y
|
|
|
|
BLK_DEV_CRYPTOLOOP m
|
|
|
|
BLK_DEV_DM m
|
|
|
|
DM_CRYPT m
|
|
|
|
MD y
|
|
|
|
REISERFS_FS m
|
|
|
|
BTRFS_FS m
|
|
|
|
XFS_FS m
|
|
|
|
JFS_FS m
|
|
|
|
EXT4_FS m
|
|
|
|
USB_STORAGE_CYPRESS_ATACB m
|
|
|
|
|
|
|
|
# mv cesa requires this sw fallback, for mv-sha1
|
|
|
|
CRYPTO_SHA1 y
|
|
|
|
|
|
|
|
IP_PNP y
|
|
|
|
IP_PNP_DHCP y
|
|
|
|
NFS_FS y
|
|
|
|
ROOT_NFS y
|
|
|
|
TUN m
|
|
|
|
NFS_V4 y
|
|
|
|
NFS_V4_1 y
|
|
|
|
NFS_FSCACHE y
|
|
|
|
NFSD m
|
|
|
|
NFSD_V2_ACL y
|
|
|
|
NFSD_V3 y
|
|
|
|
NFSD_V3_ACL y
|
|
|
|
NFSD_V4 y
|
|
|
|
NETFILTER y
|
|
|
|
IP_NF_IPTABLES y
|
|
|
|
IP_NF_FILTER y
|
|
|
|
IP_NF_MATCH_ADDRTYPE y
|
|
|
|
IP_NF_TARGET_LOG y
|
|
|
|
IP_NF_MANGLE y
|
|
|
|
IPV6 m
|
|
|
|
VLAN_8021Q m
|
|
|
|
|
|
|
|
CIFS y
|
|
|
|
CIFS_XATTR y
|
|
|
|
CIFS_POSIX y
|
|
|
|
CIFS_FSCACHE y
|
|
|
|
CIFS_ACL y
|
|
|
|
|
|
|
|
WATCHDOG y
|
|
|
|
WATCHDOG_CORE y
|
|
|
|
ORION_WATCHDOG m
|
|
|
|
|
|
|
|
ZRAM m
|
|
|
|
NETCONSOLE m
|
|
|
|
|
|
|
|
# Fail to build
|
|
|
|
DRM n
|
|
|
|
SCSI_ADVANSYS n
|
|
|
|
USB_ISP1362_HCD n
|
|
|
|
SND_SOC n
|
|
|
|
SND_ALI5451 n
|
|
|
|
FB_SAVAGE n
|
|
|
|
SCSI_NSP32 n
|
|
|
|
ATA_SFF n
|
|
|
|
SUNGEM n
|
|
|
|
IRDA n
|
|
|
|
ATM_HE n
|
|
|
|
SCSI_ACARD n
|
|
|
|
BLK_DEV_CMD640_ENHANCED n
|
|
|
|
|
|
|
|
FUSE_FS m
|
|
|
|
|
2013-03-30 17:12:06 +00:00
|
|
|
# systemd uses cgroups
|
2012-12-06 15:51:52 +00:00
|
|
|
CGROUPS y
|
|
|
|
|
|
|
|
# Latencytop
|
|
|
|
LATENCYTOP y
|
|
|
|
|
|
|
|
# Ubi for the mtd
|
|
|
|
MTD_UBI y
|
|
|
|
UBIFS_FS y
|
|
|
|
UBIFS_FS_XATTR y
|
|
|
|
UBIFS_FS_ADVANCED_COMPR y
|
|
|
|
UBIFS_FS_LZO y
|
|
|
|
UBIFS_FS_ZLIB y
|
|
|
|
UBIFS_FS_DEBUG n
|
2012-12-15 16:25:43 +00:00
|
|
|
|
|
|
|
# Kdb, for kernel troubles
|
|
|
|
KGDB y
|
|
|
|
KGDB_SERIAL_CONSOLE y
|
|
|
|
KGDB_KDB y
|
2012-12-06 15:51:52 +00:00
|
|
|
'';
|
|
|
|
kernelTarget = "uImage";
|
|
|
|
uboot = "sheevaplug";
|
|
|
|
# Only for uboot = uboot :
|
|
|
|
ubootConfig = "sheevaplug_config";
|
|
|
|
};
|
|
|
|
|
|
|
|
raspberrypi = {
|
|
|
|
name = "raspberrypi";
|
|
|
|
kernelMajor = "2.6";
|
|
|
|
kernelHeadersBaseConfig = "kirkwood_defconfig";
|
|
|
|
kernelBaseConfig = "bcmrpi_defconfig";
|
2009-12-28 10:35:34 +00:00
|
|
|
kernelArch = "arm";
|
2010-02-16 19:27:51 +00:00
|
|
|
kernelAutoModules = false;
|
2009-12-28 10:35:34 +00:00
|
|
|
kernelExtraConfig =
|
|
|
|
''
|
2009-12-28 17:47:01 +00:00
|
|
|
BLK_DEV_RAM y
|
|
|
|
BLK_DEV_INITRD y
|
2010-03-14 21:17:17 +00:00
|
|
|
BLK_DEV_CRYPTOLOOP m
|
2010-02-24 22:13:48 +00:00
|
|
|
BLK_DEV_DM m
|
2010-03-14 21:17:17 +00:00
|
|
|
DM_CRYPT m
|
2009-12-28 22:29:17 +00:00
|
|
|
MD y
|
2010-02-24 22:13:48 +00:00
|
|
|
REISERFS_FS m
|
2013-01-29 19:16:24 +00:00
|
|
|
BTRFS_FS y
|
2012-06-10 20:11:07 +01:00
|
|
|
XFS_FS m
|
2013-01-29 19:16:24 +00:00
|
|
|
JFS_FS y
|
|
|
|
EXT4_FS y
|
2012-09-23 22:55:07 +01:00
|
|
|
|
2010-03-22 20:01:48 +00:00
|
|
|
IP_PNP y
|
2012-05-15 15:00:21 +01:00
|
|
|
IP_PNP_DHCP y
|
2010-03-22 20:01:48 +00:00
|
|
|
NFS_FS y
|
|
|
|
ROOT_NFS y
|
|
|
|
TUN m
|
2010-06-12 18:42:17 +01:00
|
|
|
NFS_V4 y
|
|
|
|
NFS_V4_1 y
|
|
|
|
NFS_FSCACHE y
|
|
|
|
NFSD m
|
|
|
|
NFSD_V2_ACL y
|
|
|
|
NFSD_V3 y
|
|
|
|
NFSD_V3_ACL y
|
|
|
|
NFSD_V4 y
|
2011-07-21 19:40:24 +01:00
|
|
|
NETFILTER y
|
|
|
|
IP_NF_IPTABLES y
|
|
|
|
IP_NF_FILTER y
|
|
|
|
IP_NF_MATCH_ADDRTYPE y
|
|
|
|
IP_NF_TARGET_LOG y
|
|
|
|
IP_NF_MANGLE y
|
2011-10-25 18:41:43 +01:00
|
|
|
IPV6 m
|
2012-10-04 12:10:24 +01:00
|
|
|
VLAN_8021Q m
|
2009-12-28 17:47:01 +00:00
|
|
|
|
2012-02-15 11:08:38 +00:00
|
|
|
CIFS y
|
|
|
|
CIFS_XATTR y
|
|
|
|
CIFS_POSIX y
|
|
|
|
CIFS_FSCACHE y
|
|
|
|
CIFS_ACL y
|
|
|
|
|
2012-05-15 14:51:03 +01:00
|
|
|
ZRAM m
|
|
|
|
|
2009-12-28 10:35:34 +00:00
|
|
|
# Fail to build
|
|
|
|
DRM n
|
|
|
|
SCSI_ADVANSYS n
|
|
|
|
USB_ISP1362_HCD n
|
|
|
|
SND_SOC n
|
|
|
|
SND_ALI5451 n
|
|
|
|
FB_SAVAGE n
|
|
|
|
SCSI_NSP32 n
|
|
|
|
ATA_SFF n
|
|
|
|
SUNGEM n
|
|
|
|
IRDA n
|
|
|
|
ATM_HE n
|
|
|
|
SCSI_ACARD n
|
|
|
|
BLK_DEV_CMD640_ENHANCED n
|
2010-05-12 20:31:03 +01:00
|
|
|
|
|
|
|
FUSE_FS m
|
2011-12-27 19:33:36 +00:00
|
|
|
|
|
|
|
# nixos mounts some cgroup
|
|
|
|
CGROUPS y
|
2012-09-16 21:42:15 +01:00
|
|
|
|
|
|
|
# Latencytop
|
|
|
|
LATENCYTOP y
|
2009-12-28 10:35:34 +00:00
|
|
|
'';
|
2013-01-28 19:26:27 +00:00
|
|
|
kernelTarget = "zImage";
|
2013-01-28 20:01:53 +00:00
|
|
|
uboot = null;
|
2012-12-30 21:55:02 +00:00
|
|
|
gcc = {
|
|
|
|
arch = "armv6";
|
|
|
|
fpu = "vfp";
|
|
|
|
float = "hard";
|
|
|
|
};
|
2009-12-19 12:12:24 +00:00
|
|
|
};
|
|
|
|
|
2010-09-17 16:56:47 +01:00
|
|
|
guruplug = sheevaplug // {
|
|
|
|
# Define `CONFIG_MACH_GURUPLUG' (see
|
|
|
|
# <http://kerneltrap.org/mailarchive/git-commits-head/2010/5/19/33618>)
|
|
|
|
# and other GuruPlug-specific things. Requires the `guruplug-defconfig'
|
|
|
|
# patch.
|
|
|
|
|
|
|
|
kernelBaseConfig = "guruplug_defconfig";
|
|
|
|
#kernelHeadersBaseConfig = "guruplug_defconfig";
|
|
|
|
};
|
|
|
|
|
2010-02-17 22:20:56 +00:00
|
|
|
versatileARM = {
|
2009-12-19 12:12:24 +00:00
|
|
|
name = "versatileARM";
|
2010-03-10 20:44:48 +00:00
|
|
|
kernelMajor = "2.6";
|
2010-02-27 00:55:03 +00:00
|
|
|
kernelHeadersBaseConfig = "versatile_defconfig";
|
2009-12-28 10:35:34 +00:00
|
|
|
kernelBaseConfig = "versatile_defconfig";
|
|
|
|
kernelArch = "arm";
|
2010-02-16 19:27:51 +00:00
|
|
|
kernelAutoModules = false;
|
2010-02-17 22:20:56 +00:00
|
|
|
kernelTarget = "zImage";
|
2010-02-21 12:24:50 +00:00
|
|
|
kernelExtraConfig =
|
|
|
|
''
|
|
|
|
MMC_ARMMMCI y
|
2010-02-23 22:41:16 +00:00
|
|
|
#MMC_SDHCI y
|
2010-02-21 12:24:50 +00:00
|
|
|
SERIO_AMBAKMI y
|
2010-02-22 23:44:02 +00:00
|
|
|
|
|
|
|
AEABI y
|
2010-02-23 22:41:16 +00:00
|
|
|
RTC_CLASS y
|
|
|
|
RTC_DRV_PL031 y
|
|
|
|
PCI y
|
|
|
|
SCSI y
|
|
|
|
SCSI_DMA y
|
|
|
|
SCSI_ATA y
|
|
|
|
BLK_DEV_SD y
|
|
|
|
BLK_DEV_SR y
|
|
|
|
SCSI_SYM53C8XX_2 y
|
2010-02-24 20:35:14 +00:00
|
|
|
|
2010-02-24 22:13:48 +00:00
|
|
|
TMPFS y
|
|
|
|
IPV6 m
|
|
|
|
REISERFS_FS m
|
|
|
|
EXT4_FS m
|
|
|
|
|
2010-02-24 20:35:14 +00:00
|
|
|
IP_PNP y
|
|
|
|
IP_PNP_DHCP y
|
|
|
|
IP_PNP_BOOTP y
|
|
|
|
ROOT_NFS y
|
2010-02-21 12:24:50 +00:00
|
|
|
'';
|
2009-12-19 12:12:24 +00:00
|
|
|
uboot = null;
|
|
|
|
};
|
2010-02-17 21:09:27 +00:00
|
|
|
|
|
|
|
integratorCP = {
|
2010-02-18 21:10:49 +00:00
|
|
|
name = "integratorCP";
|
2010-03-10 20:44:48 +00:00
|
|
|
kernelMajor = "2.6";
|
2010-02-27 00:55:03 +00:00
|
|
|
kernelHeadersBaseConfig = "integrator_defconfig";
|
2010-02-18 21:10:49 +00:00
|
|
|
kernelBaseConfig = "integrator_defconfig";
|
|
|
|
kernelArch = "arm";
|
|
|
|
kernelAutoModules = false;
|
|
|
|
kernelTarget = "zImage";
|
|
|
|
kernelExtraConfig =
|
|
|
|
''
|
|
|
|
# needed for qemu integrator/cp
|
|
|
|
SERIAL_AMBA_PL011 y
|
|
|
|
SERIAL_AMBA_PL011_CONSOLE y
|
|
|
|
SERIAL_AMBA_PL010 n
|
|
|
|
SERIAL_AMBA_PL010_CONSOLE n
|
2010-02-21 12:24:50 +00:00
|
|
|
|
|
|
|
MMC_ARMMMCI y
|
|
|
|
MMC_SDHCI y
|
|
|
|
SERIO_AMBAKMI y
|
|
|
|
|
|
|
|
CPU_ARM926T y
|
2010-02-22 23:44:02 +00:00
|
|
|
ARCH_INTEGRATOR_CP y
|
|
|
|
VGA_CONSOLE n
|
|
|
|
AEABI y
|
2010-02-18 21:10:49 +00:00
|
|
|
'';
|
|
|
|
uboot = null;
|
|
|
|
ubootConfig = "integratorcp_config";
|
|
|
|
};
|
|
|
|
|
2010-02-22 23:44:02 +00:00
|
|
|
integratorCPuboot = integratorCP // {
|
|
|
|
name = "integratorCPuboot";
|
2010-02-17 22:20:56 +00:00
|
|
|
kernelTarget = "uImage";
|
Simplified much more the expressions for cross building and multiplatform.
I introduce the new nixpkgs parameter "platform", defaulting to "pc",
which was before defined as an attribute of nixpkgs.
I made the crossSystem nixpkgs attribute set parameter contain its own 'platform'.
This allows cross-building a kernel for a given crossSystem.platform in a non-PC
platform.
The actual native platform can be taken from stdenv.platform, and this way we also
avoid the constant passing of 'platform' to packages for platform-dependant builds
(kernel, initrd, ...).
I will update nixos accordingly to these changes, for non-PC platforms to work.
I think we are gaining on flexibility and clearness. I could cross build succesfully
an ultrasparc kernel and a mipsel kernel on PC. But since this change, I should be able
to do this also in non-PC.
Before this change, there was no possibility of distinguishing the "target platform" or
the "native build platform" when cross building, being the single "platform" attribute
always interpreted as target platform.
The platform is a quite relevant attribute set, as it determines the linuxHeaders used
(in the case, by now the only one supported, of linux targets).
The platform attributes are quite linux centric still. Let's hope for more generality to come.
svn path=/nixpkgs/trunk/; revision=20273
2010-02-27 17:35:47 +00:00
|
|
|
uboot = "upstream";
|
2010-02-17 21:09:27 +00:00
|
|
|
ubootConfig = "integratorcp_config";
|
|
|
|
};
|
2010-08-01 21:57:13 +01:00
|
|
|
|
|
|
|
fuloong2f_n32 = {
|
|
|
|
name = "fuloong2f_n32";
|
|
|
|
kernelMajor = "2.6";
|
|
|
|
kernelHeadersBaseConfig = "fuloong2e_defconfig";
|
2010-08-11 21:16:09 +01:00
|
|
|
kernelBaseConfig = "lemote2f_defconfig";
|
2010-08-01 21:57:13 +01:00
|
|
|
kernelArch = "mips";
|
|
|
|
kernelAutoModules = false;
|
|
|
|
kernelExtraConfig =
|
|
|
|
''
|
2013-03-30 17:12:06 +00:00
|
|
|
MIGRATION n
|
|
|
|
COMPACTION n
|
|
|
|
|
|
|
|
# nixos mounts some cgroup
|
|
|
|
CGROUPS y
|
|
|
|
|
2010-08-01 21:57:13 +01:00
|
|
|
BLK_DEV_RAM y
|
|
|
|
BLK_DEV_INITRD y
|
|
|
|
BLK_DEV_CRYPTOLOOP m
|
|
|
|
BLK_DEV_DM m
|
|
|
|
DM_CRYPT m
|
|
|
|
MD y
|
|
|
|
REISERFS_FS m
|
|
|
|
EXT4_FS m
|
|
|
|
USB_STORAGE_CYPRESS_ATACB m
|
|
|
|
|
|
|
|
IP_PNP y
|
2010-09-16 20:32:13 +01:00
|
|
|
IP_PNP_DHCP y
|
|
|
|
IP_PNP_BOOTP y
|
2010-08-01 21:57:13 +01:00
|
|
|
NFS_FS y
|
|
|
|
ROOT_NFS y
|
|
|
|
TUN m
|
|
|
|
NFS_V4 y
|
|
|
|
NFS_V4_1 y
|
|
|
|
NFS_FSCACHE y
|
|
|
|
NFSD m
|
|
|
|
NFSD_V2_ACL y
|
|
|
|
NFSD_V3 y
|
|
|
|
NFSD_V3_ACL y
|
|
|
|
NFSD_V4 y
|
|
|
|
|
|
|
|
# Fail to build
|
|
|
|
DRM n
|
|
|
|
SCSI_ADVANSYS n
|
|
|
|
USB_ISP1362_HCD n
|
|
|
|
SND_SOC n
|
|
|
|
SND_ALI5451 n
|
|
|
|
FB_SAVAGE n
|
|
|
|
SCSI_NSP32 n
|
|
|
|
ATA_SFF n
|
|
|
|
SUNGEM n
|
|
|
|
IRDA n
|
|
|
|
ATM_HE n
|
|
|
|
SCSI_ACARD n
|
|
|
|
BLK_DEV_CMD640_ENHANCED n
|
|
|
|
|
|
|
|
FUSE_FS m
|
2010-09-16 20:32:13 +01:00
|
|
|
|
|
|
|
# Needed for udev >= 150
|
|
|
|
SYSFS_DEPRECATED_V2 n
|
2012-01-21 00:34:38 +00:00
|
|
|
|
|
|
|
VGA_CONSOLE n
|
|
|
|
VT_HW_CONSOLE_BINDING y
|
|
|
|
SERIAL_8250_CONSOLE y
|
|
|
|
FRAMEBUFFER_CONSOLE y
|
|
|
|
EXT2_FS y
|
|
|
|
EXT3_FS y
|
|
|
|
REISERFS_FS y
|
|
|
|
MAGIC_SYSRQ y
|
2013-03-30 17:12:06 +00:00
|
|
|
|
|
|
|
# The kernel doesn't boot at all, with FTRACE
|
|
|
|
FTRACE n
|
2010-08-01 21:57:13 +01:00
|
|
|
'';
|
|
|
|
kernelTarget = "vmlinux";
|
2010-08-05 19:51:12 +01:00
|
|
|
uboot = null;
|
2012-12-31 09:38:32 +00:00
|
|
|
gcc.arch = "loongson2f";
|
2010-08-01 21:57:13 +01:00
|
|
|
};
|
2009-12-19 12:12:24 +00:00
|
|
|
}
|