3
0
Fork 0
forked from mirrors/nixpkgs

Merging changes to make more things build on rpi2

This commit is contained in:
Lluís Batlle i Rossell 2015-03-06 15:43:32 +00:00
commit d1e302121a
5 changed files with 113 additions and 8 deletions

View file

@ -31,6 +31,10 @@ stdenv.mkDerivation rec {
preCheck = ''
rm jit-test/tests/sunspider/check-date-format-tofte.js # https://bugzil.la/600522
# Test broken on ARM. Fedora disables it.
# https://lists.fedoraproject.org/pipermail/scm-commits/Week-of-Mon-20130617/1041155.html
echo -e '#!${stdenv.shell}\nexit 0' > config/find_vanilla_new_calls
paxmark m shell/js17
paxmark mr jsapi-tests/jsapi-tests
'';

View file

@ -2,15 +2,17 @@
let
rev = "7849605f5a";
rev = "fe4a83540ec73dfc298f16f027277355470ea9a0";
in import ./generic.nix (args // rec {
version = "3.6.y-${rev}";
version = "3.18.y-${rev}";
modDirVersion = "3.18.7-v7";
src = fetchurl {
url = "https://api.github.com/repos/raspberrypi/linux/tarball/${rev}";
name = "linux-raspberrypi-${version}.tar.gz";
sha256 = "1diwc5p6az6ipcldwmkq7hb5f15nvdgwzmypixc2vmzmc4ylarxl";
sha256 = "05gq40f038hxjqd3sdb1914g2bzw533dyxy59sgdpybs8801x2vb";
};
features.iwlwifi = true;

View file

@ -118,9 +118,12 @@ let
# Some image types need special install targets (e.g. uImage is installed with make uinstall)
installTargets = [ (if platform.kernelTarget == "uImage" then "uinstall" else "install") ];
postInstall = optionalString installsFirmware ''
postInstall = (optionalString installsFirmware ''
mkdir -p $out/lib/firmware
'' + (if isModular then ''
'') + (if (platform ? kernelDTB && platform.kernelDTB) then ''
make $makeFlags "''${makeFlagsArray[@]}" dtbs
cp $buildRoot/arch/$karch/boot/dts/*dtb $out
'' else "") + (if isModular then ''
make modules_install $makeFlags "''${makeFlagsArray[@]}" \
$installFlags "''${installFlagsArray[@]}"
unlink $out/lib/modules/${modDirVersion}/build
@ -222,6 +225,8 @@ stdenv.mkDerivation ((drvAttrs config stdenv.platform (kernelPatches ++ nativeKe
"ARCH=${stdenv.platform.kernelArch}"
];
karch = stdenv.platform.kernelArch;
crossAttrs = let cp = stdenv.cross.platform; in
(drvAttrs crossConfig cp (kernelPatches ++ crossKernelPatches) crossConfigfile) // {
makeFlags = commonMakeFlags ++ [
@ -229,6 +234,8 @@ stdenv.mkDerivation ((drvAttrs config stdenv.platform (kernelPatches ++ nativeKe
"CROSS_COMPILE=$(crossConfig)-"
];
karch = cp.kernelArch;
# !!! uboot has messed up cross-compiling, nativeDrv builds arm tools on x86,
# crossDrv builds x86 tools on x86 (but arm uboot). If this is fixed, uboot
# can just go into buildInputs (but not nativeBuildInputs since cp.uboot

View file

@ -7061,7 +7061,7 @@ let
poker-eval = callPackage ../development/libraries/poker-eval { };
polkit = callPackage ../development/libraries/polkit {
spidermonkey = spidermonkey_185;
spidermonkey = spidermonkey_17;
};
polkit_qt4 = callPackage ../development/libraries/polkit-qt-1 {
@ -8762,7 +8762,7 @@ let
];
};
linux_3_6_rpi = makeOverridable (import ../os-specific/linux/kernel/linux-rpi-3.6.nix) {
linux_rpi = makeOverridable (import ../os-specific/linux/kernel/linux-rpi.nix) {
inherit fetchurl stdenv perl buildLinux;
kernelPatches = [ kernelPatches.bridge_stp_helper ];
};
@ -8982,7 +8982,7 @@ let
# Build the kernel modules for the some of the kernels.
linuxPackages_3_2 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_2 linuxPackages_3_2);
linuxPackages_3_4 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_4 linuxPackages_3_4);
linuxPackages_3_6_rpi = linuxPackagesFor pkgs.linux_3_6_rpi linuxPackages_3_6_rpi;
linuxPackages_rpi = linuxPackagesFor pkgs.linux_rpi linuxPackages_rpi;
linuxPackages_3_10 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_10 linuxPackages_3_10);
linuxPackages_3_10_tuxonice = linuxPackagesFor pkgs.linux_3_10_tuxonice linuxPackages_3_10_tuxonice;
linuxPackages_3_12 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_12 linuxPackages_3_12);

View file

@ -212,6 +212,98 @@ rec {
};
};
raspberrypi2 = {
name = "raspberrypi2";
kernelMajor = "3.14";
kernelHeadersBaseConfig = "kirkwood_defconfig";
kernelBaseConfig = "bcm2709_defconfig";
kernelArch = "arm";
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
# 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;
gcc = {
# For gcc 4.8, the best for rpi2 would be:
# cpu = "cortex-a7";
# fpu = "neon-vfpv4";
# But we prefer compatibility with the beaglebone, so both
# can run the same built store paths.
arch = "armv7-a";
fpu = "vfpv3-d16";
float = "hard";
};
};
guruplug = sheevaplug // {
# Define `CONFIG_MACH_GURUPLUG' (see
# <http://kerneltrap.org/mailarchive/git-commits-head/2010/5/19/33618>)