2010-02-23 00:44:02 +01:00
|
|
|
rec {
|
2014-01-01 03:34:44 +01:00
|
|
|
pcBase = {
|
2009-12-19 13:12:24 +01:00
|
|
|
name = "pc";
|
|
|
|
uboot = null;
|
2010-03-01 14:12:57 +01:00
|
|
|
kernelHeadersBaseConfig = "defconfig";
|
2009-12-19 13:12:24 +01:00
|
|
|
kernelBaseConfig = "defconfig";
|
2010-02-16 20:27:51 +01:00
|
|
|
# Build whatever possible as a module, if not stated in the extra config.
|
|
|
|
kernelAutoModules = true;
|
2010-02-18 12:34:48 +01:00
|
|
|
kernelTarget = "bzImage";
|
2009-12-19 13:12:24 +01:00
|
|
|
};
|
|
|
|
|
2014-01-01 03:34:44 +01:00
|
|
|
pc64 = pcBase // { kernelArch = "x86_64"; };
|
|
|
|
|
|
|
|
pc32 = pcBase // { kernelArch = "i386"; };
|
|
|
|
|
|
|
|
pc32_simplekernel = pc32 // {
|
|
|
|
kernelAutoModules = false;
|
|
|
|
};
|
|
|
|
|
|
|
|
pc64_simplekernel = pc64 // {
|
2011-08-24 09:48:02 +02:00
|
|
|
kernelAutoModules = false;
|
|
|
|
};
|
|
|
|
|
2010-02-17 23:20:56 +01:00
|
|
|
sheevaplug = {
|
2009-12-19 13:12:24 +01:00
|
|
|
name = "sheevaplug";
|
2010-03-10 21:44:48 +01:00
|
|
|
kernelMajor = "2.6";
|
2016-03-17 12:55:13 +01:00
|
|
|
kernelHeadersBaseConfig = "multi_v5_defconfig";
|
2015-05-06 09:35:38 +02:00
|
|
|
kernelBaseConfig = "multi_v5_defconfig";
|
2012-12-06 16:51:52 +01: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
|
2013-07-17 09:33:39 +02:00
|
|
|
# Fast crypto
|
|
|
|
CRYPTO_TWOFISH y
|
|
|
|
CRYPTO_TWOFISH_COMMON y
|
|
|
|
CRYPTO_BLOWFISH y
|
|
|
|
CRYPTO_BLOWFISH_COMMON y
|
2012-12-06 16:51:52 +01:00
|
|
|
|
|
|
|
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
|
|
|
|
|
2016-11-06 12:20:43 +01:00
|
|
|
# Disable OABI to have seccomp_filter (required for systemd)
|
|
|
|
# https://github.com/raspberrypi/firmware/issues/651
|
|
|
|
OABI_COMPAT n
|
|
|
|
|
2012-12-06 16:51:52 +01: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
|
|
|
|
|
|
|
|
FUSE_FS m
|
|
|
|
|
2013-03-30 18:12:06 +01:00
|
|
|
# systemd uses cgroups
|
2012-12-06 16:51:52 +01: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 17:25:43 +01:00
|
|
|
|
|
|
|
# Kdb, for kernel troubles
|
|
|
|
KGDB y
|
|
|
|
KGDB_SERIAL_CONSOLE y
|
|
|
|
KGDB_KDB y
|
2012-12-06 16:51:52 +01:00
|
|
|
'';
|
2015-05-06 09:35:38 +02:00
|
|
|
kernelMakeFlags = [ "LOADADDR=0x0200000" ];
|
2012-12-06 16:51:52 +01:00
|
|
|
kernelTarget = "uImage";
|
|
|
|
uboot = "sheevaplug";
|
|
|
|
# Only for uboot = uboot :
|
|
|
|
ubootConfig = "sheevaplug_config";
|
2015-05-06 09:35:38 +02:00
|
|
|
kernelDTB = true; # Beyond 3.10
|
2016-07-16 23:11:34 +02:00
|
|
|
gcc = {
|
|
|
|
arch = "armv5te";
|
|
|
|
float = "soft";
|
|
|
|
};
|
2012-12-06 16:51:52 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
raspberrypi = {
|
|
|
|
name = "raspberrypi";
|
|
|
|
kernelMajor = "2.6";
|
2015-11-15 22:08:02 +01:00
|
|
|
kernelHeadersBaseConfig = "bcm2835_defconfig";
|
2012-12-06 16:51:52 +01:00
|
|
|
kernelBaseConfig = "bcmrpi_defconfig";
|
2016-07-04 00:50:47 +02:00
|
|
|
kernelDTB = true;
|
2009-12-28 11:35:34 +01:00
|
|
|
kernelArch = "arm";
|
2010-02-16 20:27:51 +01:00
|
|
|
kernelAutoModules = false;
|
2009-12-28 11:35:34 +01:00
|
|
|
kernelExtraConfig =
|
|
|
|
''
|
2009-12-28 18:47:01 +01:00
|
|
|
BLK_DEV_RAM y
|
|
|
|
BLK_DEV_INITRD y
|
2010-03-14 22:17:17 +01:00
|
|
|
BLK_DEV_CRYPTOLOOP m
|
2010-02-24 23:13:48 +01:00
|
|
|
BLK_DEV_DM m
|
2010-03-14 22:17:17 +01:00
|
|
|
DM_CRYPT m
|
2009-12-28 23:29:17 +01:00
|
|
|
MD y
|
2010-02-24 23:13:48 +01:00
|
|
|
REISERFS_FS m
|
2013-01-29 20:16:24 +01:00
|
|
|
BTRFS_FS y
|
2012-06-10 21:11:07 +02:00
|
|
|
XFS_FS m
|
2013-01-29 20:16:24 +01:00
|
|
|
JFS_FS y
|
|
|
|
EXT4_FS y
|
2012-09-23 23:55:07 +02:00
|
|
|
|
2010-03-22 21:01:48 +01:00
|
|
|
IP_PNP y
|
2012-05-15 16:00:21 +02:00
|
|
|
IP_PNP_DHCP y
|
2010-03-22 21:01:48 +01:00
|
|
|
NFS_FS y
|
|
|
|
ROOT_NFS y
|
|
|
|
TUN m
|
2010-06-12 19:42:17 +02: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 20:40:24 +02: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 19:41:43 +02:00
|
|
|
IPV6 m
|
2012-10-04 13:10:24 +02:00
|
|
|
VLAN_8021Q m
|
2009-12-28 18:47:01 +01:00
|
|
|
|
2012-02-15 12:08:38 +01:00
|
|
|
CIFS y
|
|
|
|
CIFS_XATTR y
|
|
|
|
CIFS_POSIX y
|
|
|
|
CIFS_FSCACHE y
|
|
|
|
CIFS_ACL y
|
|
|
|
|
2012-05-15 15:51:03 +02:00
|
|
|
ZRAM m
|
|
|
|
|
2016-11-06 12:20:43 +01:00
|
|
|
# Disable OABI to have seccomp_filter (required for systemd)
|
|
|
|
# https://github.com/raspberrypi/firmware/issues/651
|
|
|
|
OABI_COMPAT n
|
|
|
|
|
2009-12-28 11:35:34 +01: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 21:31:03 +02:00
|
|
|
|
|
|
|
FUSE_FS m
|
2011-12-27 20:33:36 +01:00
|
|
|
|
|
|
|
# nixos mounts some cgroup
|
|
|
|
CGROUPS y
|
2012-09-16 22:42:15 +02:00
|
|
|
|
|
|
|
# Latencytop
|
|
|
|
LATENCYTOP y
|
2009-12-28 11:35:34 +01:00
|
|
|
'';
|
2013-01-28 20:26:27 +01:00
|
|
|
kernelTarget = "zImage";
|
2013-01-28 21:01:53 +01:00
|
|
|
uboot = null;
|
2012-12-30 22:55:02 +01:00
|
|
|
gcc = {
|
|
|
|
arch = "armv6";
|
|
|
|
fpu = "vfp";
|
|
|
|
float = "hard";
|
|
|
|
};
|
2009-12-19 13:12:24 +01:00
|
|
|
};
|
|
|
|
|
2015-05-10 12:59:29 +02:00
|
|
|
raspberrypi2 = armv7l-hf-multiplatform // {
|
2015-02-20 14:39:35 +01:00
|
|
|
name = "raspberrypi2";
|
|
|
|
kernelBaseConfig = "bcm2709_defconfig";
|
|
|
|
kernelDTB = true;
|
|
|
|
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 y
|
|
|
|
XFS_FS m
|
|
|
|
JFS_FS y
|
|
|
|
EXT4_FS 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
|
|
|
|
|
|
|
|
ZRAM m
|
|
|
|
|
2016-11-06 12:20:43 +01:00
|
|
|
# Disable OABI to have seccomp_filter (required for systemd)
|
|
|
|
# https://github.com/raspberrypi/firmware/issues/651
|
|
|
|
OABI_COMPAT n
|
|
|
|
|
2015-02-20 14:39:35 +01: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
|
|
|
|
|
|
|
|
FUSE_FS m
|
|
|
|
|
|
|
|
# nixos mounts some cgroup
|
|
|
|
CGROUPS y
|
|
|
|
|
|
|
|
# Latencytop
|
|
|
|
LATENCYTOP y
|
|
|
|
|
|
|
|
# Disable the common config Xen, it doesn't build on ARM
|
|
|
|
XEN? n
|
|
|
|
'';
|
|
|
|
kernelTarget = "zImage";
|
|
|
|
uboot = null;
|
|
|
|
};
|
|
|
|
|
2010-09-17 17:56:47 +02: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-08-01 22:57:13 +02:00
|
|
|
fuloong2f_n32 = {
|
|
|
|
name = "fuloong2f_n32";
|
|
|
|
kernelMajor = "2.6";
|
|
|
|
kernelHeadersBaseConfig = "fuloong2e_defconfig";
|
2010-08-11 22:16:09 +02:00
|
|
|
kernelBaseConfig = "lemote2f_defconfig";
|
2010-08-01 22:57:13 +02:00
|
|
|
kernelArch = "mips";
|
|
|
|
kernelAutoModules = false;
|
|
|
|
kernelExtraConfig =
|
|
|
|
''
|
2013-03-30 18:12:06 +01:00
|
|
|
MIGRATION n
|
|
|
|
COMPACTION n
|
|
|
|
|
|
|
|
# nixos mounts some cgroup
|
|
|
|
CGROUPS y
|
|
|
|
|
2010-08-01 22:57:13 +02: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 21:32:13 +02:00
|
|
|
IP_PNP_DHCP y
|
|
|
|
IP_PNP_BOOTP y
|
2010-08-01 22:57:13 +02: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 21:32:13 +02:00
|
|
|
|
|
|
|
# Needed for udev >= 150
|
|
|
|
SYSFS_DEPRECATED_V2 n
|
2012-01-21 01:34:38 +01: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 18:12:06 +01:00
|
|
|
|
|
|
|
# The kernel doesn't boot at all, with FTRACE
|
|
|
|
FTRACE n
|
2010-08-01 22:57:13 +02:00
|
|
|
'';
|
|
|
|
kernelTarget = "vmlinux";
|
2010-08-05 20:51:12 +02:00
|
|
|
uboot = null;
|
2012-12-31 10:38:32 +01:00
|
|
|
gcc.arch = "loongson2f";
|
2010-08-01 22:57:13 +02:00
|
|
|
};
|
2015-01-31 11:53:17 +01:00
|
|
|
|
2015-05-10 12:59:29 +02:00
|
|
|
beaglebone = armv7l-hf-multiplatform // {
|
2015-01-31 11:53:17 +01:00
|
|
|
name = "beaglebone";
|
|
|
|
kernelBaseConfig = "omap2plus_defconfig";
|
|
|
|
kernelAutoModules = false;
|
|
|
|
kernelExtraConfig = ""; # TBD kernel config
|
|
|
|
kernelTarget = "zImage";
|
|
|
|
uboot = null;
|
|
|
|
};
|
2015-05-06 10:15:46 +02:00
|
|
|
|
|
|
|
armv7l-hf-multiplatform = {
|
|
|
|
name = "armv7l-hf-multiplatform";
|
2015-05-10 12:59:29 +02:00
|
|
|
kernelMajor = "2.6"; # Using "2.6" enables 2.6 kernel syscalls in glibc.
|
2015-05-06 10:15:46 +02:00
|
|
|
kernelHeadersBaseConfig = "multi_v7_defconfig";
|
|
|
|
kernelBaseConfig = "multi_v7_defconfig";
|
|
|
|
kernelArch = "arm";
|
2015-05-10 12:59:29 +02:00
|
|
|
kernelDTB = true;
|
2015-05-06 10:15:46 +02:00
|
|
|
kernelAutoModules = false;
|
|
|
|
uboot = null;
|
2015-05-10 12:59:29 +02:00
|
|
|
kernelTarget = "zImage";
|
2016-06-06 17:20:15 +02:00
|
|
|
kernelExtraConfig = ''
|
|
|
|
AHCI_IMX y
|
|
|
|
'';
|
2015-05-06 10:15:46 +02:00
|
|
|
gcc = {
|
2015-05-10 12:59:29 +02:00
|
|
|
# Some table about fpu flags:
|
|
|
|
# http://community.arm.com/servlet/JiveServlet/showImage/38-1981-3827/blogentry-103749-004812900+1365712953_thumb.png
|
|
|
|
# Cortex-A5: -mfpu=neon-fp16
|
|
|
|
# Cortex-A7 (rpi2): -mfpu=neon-vfpv4
|
|
|
|
# Cortex-A8 (beaglebone): -mfpu=neon
|
|
|
|
# Cortex-A9: -mfpu=neon-fp16
|
|
|
|
# Cortex-A15: -mfpu=neon-vfpv4
|
|
|
|
|
|
|
|
# More about FPU:
|
2016-07-16 23:14:22 +02:00
|
|
|
# https://wiki.debian.org/ArmHardFloatPort/VfpComparison
|
2015-05-10 12:59:29 +02:00
|
|
|
|
2016-07-16 23:14:22 +02:00
|
|
|
# vfpv3-d16 is what Debian uses and seems to be the best compromise: NEON is not supported in e.g. Scaleway or Tegra 2,
|
|
|
|
# and the above page suggests NEON is only an improvement with hand-written assembly.
|
2015-05-06 10:15:46 +02:00
|
|
|
arch = "armv7-a";
|
2016-07-16 23:14:22 +02:00
|
|
|
fpu = "vfpv3-d16";
|
2015-05-06 10:15:46 +02:00
|
|
|
float = "hard";
|
2015-05-10 12:59:29 +02:00
|
|
|
|
|
|
|
# For Raspberry Pi the 2 the best would be:
|
|
|
|
# cpu = "cortex-a7";
|
|
|
|
# fpu = "neon-vfpv4";
|
2015-05-06 10:15:46 +02:00
|
|
|
};
|
|
|
|
};
|
2015-05-10 12:59:29 +02:00
|
|
|
|
2009-12-19 13:12:24 +01:00
|
|
|
}
|