diff --git a/pkgs/kernel/default.nix b/pkgs/kernel/default.nix index d2fec55..224ed35 100644 --- a/pkgs/kernel/default.nix +++ b/pkgs/kernel/default.nix @@ -54,6 +54,7 @@ stdenv.mkDerivation rec { patches = [ ./cmdline-cookie.patch + ./make-mtdsplit-jffs2-endian-agnostic.patch ]; # this is here to work around what I think is a bug in nixpkgs diff --git a/pkgs/kernel/make-mtdsplit-jffs2-endian-agnostic.patch b/pkgs/kernel/make-mtdsplit-jffs2-endian-agnostic.patch new file mode 100644 index 0000000..2e7b784 --- /dev/null +++ b/pkgs/kernel/make-mtdsplit-jffs2-endian-agnostic.patch @@ -0,0 +1,20 @@ +On a little-endian CPU, the little-endian JFFS2 magic +appears to be word-swapped. + +There is probably a better way to implement this; if you are reading +this patch you are probably well-qualified to do that and upstream it +to OpenWrt + + +diff --git a/drivers/mtd/mtdsplit/mtdsplit.c b/drivers/mtd/mtdsplit/mtdsplit.c +index b2e51dcfc6..533af0298e 100644 +--- a/drivers/mtd/mtdsplit/mtdsplit.c ++++ b/drivers/mtd/mtdsplit/mtdsplit.c +@@ -92,6 +93,6 @@ + *type = MTDSPLIT_PART_TYPE_SQUASHFS; + return 0; +- } else if (magic == 0x19852003) { ++ } else if ((magic == 0x19852003) || (magic == 0x20031985)) { + if (type) + *type = MTDSPLIT_PART_TYPE_JFFS2; + return 0;