[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#745349: Basic arm64 kernel



Package: src:linux
Version: 3.14.1-1~exp1
Severity: wishlist
Tags: patch
X-Debbugs-CC: Wookey <wookey@wookware.org>
User: debian-arm@lists.debian.org
Usertags: arm64

The attached patch enables building a kernel for the arm64 platform. It
enables vexpress and xgene arch support.

Currently it can't be built due to missing build-deps:
        The following packages have unmet dependencies:
         sbuild-build-depends-linux-dummy : Depends: python but it is not going to be installed
                                            Depends: python-six but it is not going to be installed
                                            Depends: patchutils but it is not installable
        E: Unable to correct problems, you have held broken packages.
        
However with the little patch below it cross builds with the Linaro
4.8.2 compiler and:
        DEB_HOST_ARCH=arm64 debuild --prepend-path=$CROSSBIN/gcc-linaro-aarch64-linux-gnu-4.8-2013.08_linux/bin/ -B -aarm64 -j4

I've not actually booted this one anything but it seems like a good
starting point.

Ian.

diff --git a/linux/debian/config/defines b/linux/debian/config/defines
index 76948a2..6b62b49 100644
--- a/linux/debian/config/defines
+++ b/linux/debian/config/defines
@@ -23,7 +23,7 @@ arches:
  sparc
  sparc64
  x32
-compiler: gcc-4.8
+compiler: gcc-4.8.2
 featuresets:
  none
  rt
@@ -47,6 +47,7 @@ gcc-4.4: gcc-4.4
 gcc-4.6: gcc-4.6
 gcc-4.7: gcc-4.7
 gcc-4.8: gcc-4.8
+gcc-4.8.2: gcc-4.8.2
 
 # initramfs-generators
 initramfs-fallback: linux-initramfs-tool

>From bcfe5f5b118276269d0e5556adf42a6a7e00a86c Mon Sep 17 00:00:00 2001
From: Ian Campbell <ian.campbell@citrix.com>
Date: Sun, 20 Apr 2014 20:04:16 +0100
Subject: [PATCH] [arm64] Initial kernel configuration and packaging.

---
 linux/debian/changelog                                   |  1 +
 linux/debian/config/arm64/defines                        | 16 +++++++++++++++-
 linux/debian/installer/arm64/kernel-versions             |  2 ++
 linux/debian/installer/arm64/modules/arm64/ata-modules   |  1 +
 linux/debian/installer/arm64/modules/arm64/btrfs-modules |  1 +
 linux/debian/installer/arm64/modules/arm64/core-modules  |  1 +
 linux/debian/installer/arm64/modules/arm64/crc-modules   |  1 +
 .../installer/arm64/modules/arm64/crypto-dm-modules      |  1 +
 .../debian/installer/arm64/modules/arm64/crypto-modules  |  1 +
 linux/debian/installer/arm64/modules/arm64/event-modules |  1 +
 linux/debian/installer/arm64/modules/arm64/ext4-modules  |  1 +
 linux/debian/installer/arm64/modules/arm64/fat-modules   |  1 +
 linux/debian/installer/arm64/modules/arm64/fuse-modules  |  1 +
 linux/debian/installer/arm64/modules/arm64/input-modules |  1 +
 linux/debian/installer/arm64/modules/arm64/isofs-modules |  1 +
 linux/debian/installer/arm64/modules/arm64/jfs-modules   |  1 +
 linux/debian/installer/arm64/modules/arm64/kernel-image  |  1 +
 linux/debian/installer/arm64/modules/arm64/loop-modules  |  1 +
 linux/debian/installer/arm64/modules/arm64/md-modules    |  1 +
 linux/debian/installer/arm64/modules/arm64/mmc-modules   |  1 +
 .../installer/arm64/modules/arm64/multipath-modules      |  1 +
 linux/debian/installer/arm64/modules/arm64/nbd-modules   |  1 +
 linux/debian/installer/arm64/modules/arm64/nic-modules   |  1 +
 .../installer/arm64/modules/arm64/nic-shared-modules     |  1 +
 .../debian/installer/arm64/modules/arm64/nic-usb-modules |  1 +
 .../installer/arm64/modules/arm64/nic-wireless-modules   |  1 +
 linux/debian/installer/arm64/modules/arm64/ppp-modules   |  1 +
 linux/debian/installer/arm64/modules/arm64/sata-modules  |  1 +
 .../installer/arm64/modules/arm64/scsi-core-modules      |  1 +
 linux/debian/installer/arm64/modules/arm64/scsi-modules  |  2 ++
 .../installer/arm64/modules/arm64/squashfs-modules       |  1 +
 linux/debian/installer/arm64/modules/arm64/udf-modules   |  1 +
 .../debian/installer/arm64/modules/arm64/uinput-modules  |  1 +
 linux/debian/installer/arm64/modules/arm64/usb-modules   |  1 +
 .../installer/arm64/modules/arm64/usb-storage-modules    |  2 ++
 linux/debian/installer/arm64/modules/arm64/zlib-modules  |  1 +
 linux/debian/installer/arm64/package-list                |  7 +++++++
 linux/debian/rules.real                                  |  8 ++++++++
 38 files changed, 68 insertions(+), 1 deletion(-)
 create mode 100644 linux/debian/installer/arm64/kernel-versions
 create mode 100644 linux/debian/installer/arm64/modules/arm64/ata-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/btrfs-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/core-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/crc-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/crypto-dm-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/crypto-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/event-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/ext4-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/fat-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/fuse-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/input-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/isofs-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/jfs-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/kernel-image
 create mode 100644 linux/debian/installer/arm64/modules/arm64/loop-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/md-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/mmc-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/multipath-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/nbd-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/nic-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/nic-shared-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/nic-usb-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/nic-wireless-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/ppp-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/sata-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/scsi-core-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/scsi-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/squashfs-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/udf-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/uinput-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/usb-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/usb-storage-modules
 create mode 100644 linux/debian/installer/arm64/modules/arm64/zlib-modules
 create mode 100644 linux/debian/installer/arm64/package-list

diff --git a/linux/debian/changelog b/linux/debian/changelog
index 5450f8d..a91c3f5 100644
--- a/linux/debian/changelog
+++ b/linux/debian/changelog
@@ -10,6 +10,7 @@ linux (3.14.1-1~exp1) UNRELEASED; urgency=medium
 
   [ Ian Campbell ]
   * [armhf] Drop suffix from kernel udeb.
+  * [arm64] Initial kernel configuration and packaging.
 
  -- Ben Hutchings <ben@decadent.org.uk>  Mon, 14 Apr 2014 01:58:22 +0100
 
diff --git a/linux/debian/config/arm64/defines b/linux/debian/config/arm64/defines
index d201ee9..7eedea8 100644
--- a/linux/debian/config/arm64/defines
+++ b/linux/debian/config/arm64/defines
@@ -1,4 +1,18 @@
 [base]
 kernel-arch: arm64
 featuresets:
-# empty; we don't have initramfs working yet
+ none
+
+[build]
+debug-info: true
+
+[image]
+configs:
+image-file: arch/arm64/boot/Image
+
+[arm64_description]
+hardware: 64-bit ARMv8 machines
+
+[arm64_image]
+configs:
+ arm64/config
diff --git a/linux/debian/installer/arm64/kernel-versions b/linux/debian/installer/arm64/kernel-versions
new file mode 100644
index 0000000..11d7399
--- /dev/null
+++ b/linux/debian/installer/arm64/kernel-versions
@@ -0,0 +1,2 @@
+# arch version flavour installedname suffix build-depends
+arm64  -       arm64   -             -      -
diff --git a/linux/debian/installer/arm64/modules/arm64/ata-modules b/linux/debian/installer/arm64/modules/arm64/ata-modules
new file mode 100644
index 0000000..04d9c88
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/ata-modules
@@ -0,0 +1 @@
+libata
diff --git a/linux/debian/installer/arm64/modules/arm64/btrfs-modules b/linux/debian/installer/arm64/modules/arm64/btrfs-modules
new file mode 100644
index 0000000..e261e13
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/btrfs-modules
@@ -0,0 +1 @@
+#include <btrfs-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/core-modules b/linux/debian/installer/arm64/modules/arm64/core-modules
new file mode 100644
index 0000000..f05d062
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/core-modules
@@ -0,0 +1 @@
+#include <core-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/crc-modules b/linux/debian/installer/arm64/modules/arm64/crc-modules
new file mode 100644
index 0000000..7e00de7
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/crc-modules
@@ -0,0 +1 @@
+#include <crc-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/crypto-dm-modules b/linux/debian/installer/arm64/modules/arm64/crypto-dm-modules
new file mode 100644
index 0000000..4c8f235
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/crypto-dm-modules
@@ -0,0 +1 @@
+#include <crypto-dm-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/crypto-modules b/linux/debian/installer/arm64/modules/arm64/crypto-modules
new file mode 100644
index 0000000..3a1e862
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/event-modules b/linux/debian/installer/arm64/modules/arm64/event-modules
new file mode 100644
index 0000000..f8819af
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/event-modules
@@ -0,0 +1 @@
+#include <event-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/ext4-modules b/linux/debian/installer/arm64/modules/arm64/ext4-modules
new file mode 100644
index 0000000..394c577
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/ext4-modules
@@ -0,0 +1 @@
+#include <ext4-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/fat-modules b/linux/debian/installer/arm64/modules/arm64/fat-modules
new file mode 100644
index 0000000..274584e
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/fuse-modules b/linux/debian/installer/arm64/modules/arm64/fuse-modules
new file mode 100644
index 0000000..0b6ba0c
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/fuse-modules
@@ -0,0 +1 @@
+#include <fuse-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/input-modules b/linux/debian/installer/arm64/modules/arm64/input-modules
new file mode 100644
index 0000000..5ecb595
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/input-modules
@@ -0,0 +1 @@
+#include <input-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/isofs-modules b/linux/debian/installer/arm64/modules/arm64/isofs-modules
new file mode 100644
index 0000000..da4fa9a
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/isofs-modules
@@ -0,0 +1 @@
+#include <isofs-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/jfs-modules b/linux/debian/installer/arm64/modules/arm64/jfs-modules
new file mode 100644
index 0000000..7e4d912
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/jfs-modules
@@ -0,0 +1 @@
+#include <jfs-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/kernel-image b/linux/debian/installer/arm64/modules/arm64/kernel-image
new file mode 100644
index 0000000..1bb8bf6
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/kernel-image
@@ -0,0 +1 @@
+# empty
diff --git a/linux/debian/installer/arm64/modules/arm64/loop-modules b/linux/debian/installer/arm64/modules/arm64/loop-modules
new file mode 100644
index 0000000..c1c948f
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/loop-modules
@@ -0,0 +1 @@
+#include <loop-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/md-modules b/linux/debian/installer/arm64/modules/arm64/md-modules
new file mode 100644
index 0000000..26115e1
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/mmc-modules b/linux/debian/installer/arm64/modules/arm64/mmc-modules
new file mode 100644
index 0000000..dadfd53
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/mmc-modules
@@ -0,0 +1 @@
+#include <mmc-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/multipath-modules b/linux/debian/installer/arm64/modules/arm64/multipath-modules
new file mode 100644
index 0000000..a8b69b2
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/nbd-modules b/linux/debian/installer/arm64/modules/arm64/nbd-modules
new file mode 100644
index 0000000..3c9b3e5
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/nbd-modules
@@ -0,0 +1 @@
+#include <nbd-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/nic-modules b/linux/debian/installer/arm64/modules/arm64/nic-modules
new file mode 100644
index 0000000..2512e83
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/nic-shared-modules b/linux/debian/installer/arm64/modules/arm64/nic-shared-modules
new file mode 100644
index 0000000..cc84b14
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/nic-usb-modules b/linux/debian/installer/arm64/modules/arm64/nic-usb-modules
new file mode 100644
index 0000000..c479669
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/nic-wireless-modules b/linux/debian/installer/arm64/modules/arm64/nic-wireless-modules
new file mode 100644
index 0000000..53fd18d
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/nic-wireless-modules
@@ -0,0 +1 @@
+#include <nic-wireless-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/ppp-modules b/linux/debian/installer/arm64/modules/arm64/ppp-modules
new file mode 100644
index 0000000..1f26aa1
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/ppp-modules
@@ -0,0 +1 @@
+#include <ppp-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/sata-modules b/linux/debian/installer/arm64/modules/arm64/sata-modules
new file mode 100644
index 0000000..01318c2
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/sata-modules
@@ -0,0 +1 @@
+#include <sata-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/scsi-core-modules b/linux/debian/installer/arm64/modules/arm64/scsi-core-modules
new file mode 100644
index 0000000..dd65d66
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/scsi-core-modules
@@ -0,0 +1 @@
+#include <scsi-core-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/scsi-modules b/linux/debian/installer/arm64/modules/arm64/scsi-modules
new file mode 100644
index 0000000..675462a
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/scsi-modules
@@ -0,0 +1,2 @@
+#include <scsi-modules>
+
diff --git a/linux/debian/installer/arm64/modules/arm64/squashfs-modules b/linux/debian/installer/arm64/modules/arm64/squashfs-modules
new file mode 100644
index 0000000..42d7788
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/squashfs-modules
@@ -0,0 +1 @@
+#include <squashfs-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/udf-modules b/linux/debian/installer/arm64/modules/arm64/udf-modules
new file mode 100644
index 0000000..b90d7ee
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/udf-modules
@@ -0,0 +1 @@
+#include <udf-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/uinput-modules b/linux/debian/installer/arm64/modules/arm64/uinput-modules
new file mode 100644
index 0000000..58a8337
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/uinput-modules
@@ -0,0 +1 @@
+#include <uinput-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/usb-modules b/linux/debian/installer/arm64/modules/arm64/usb-modules
new file mode 100644
index 0000000..c598ded
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/usb-modules
@@ -0,0 +1 @@
+#include <usb-modules>
diff --git a/linux/debian/installer/arm64/modules/arm64/usb-storage-modules b/linux/debian/installer/arm64/modules/arm64/usb-storage-modules
new file mode 100644
index 0000000..6938b5c
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/usb-storage-modules
@@ -0,0 +1,2 @@
+#include <usb-storage-modules>
+usb-storage -
diff --git a/linux/debian/installer/arm64/modules/arm64/zlib-modules b/linux/debian/installer/arm64/modules/arm64/zlib-modules
new file mode 100644
index 0000000..e02ad64
--- /dev/null
+++ b/linux/debian/installer/arm64/modules/arm64/zlib-modules
@@ -0,0 +1 @@
+#include <zlib-modules>
diff --git a/linux/debian/installer/arm64/package-list b/linux/debian/installer/arm64/package-list
new file mode 100644
index 0000000..aefbc7e
--- /dev/null
+++ b/linux/debian/installer/arm64/package-list
@@ -0,0 +1,7 @@
+# This file is used to build up the control file. The kernel version and
+# "-di" are appended to the package names. Section can be left out. So can
+# architecture, which is derived from the files in the modules directory.
+# It overwrites specifications from /usr/share/kernel-wedge/package-list.
+#
+
+Package: kernel-image
diff --git a/linux/debian/rules.real b/linux/debian/rules.real
index bb819e3..c6a4980 100644
--- a/linux/debian/rules.real
+++ b/linux/debian/rules.real
@@ -385,6 +385,14 @@ install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_plain_image:
 	done
 endif
 
+install-image_arm64_$(FEATURESET)_$(FLAVOUR)_plain_image: DTB_INSTALL_DIR = /usr/lib/linux-image-$(REAL_VERSION)
+install-image_arm64_$(FEATURESET)_$(FLAVOUR)_plain_image:
+	install -m644 '$(DIR)/arch/$(KERNEL_ARCH)/boot/Image' $(INSTALL_DIR)/vmlinuz-$(REAL_VERSION)
+	+$(MAKE_CLEAN) -C $(DIR) dtbs
+	shopt -s nullglob ; for i in $(DIR)/arch/arm64/boot/dts/*.dtb ; do \
+		install -D -m644 $$i '$(PACKAGE_DIR)'/'$(DTB_INSTALL_DIR)'/$$(basename $$i) ; \
+	done
+
 install-image_amd64_$(FEATURESET)_$(FLAVOUR)_plain_image \
 install-image_i386_$(FEATURESET)_$(FLAVOUR)_plain_image:
 	install -m644 '$(DIR)/arch/$(KERNEL_ARCH)/boot/bzImage' $(INSTALL_DIR)/vmlinuz-$(REAL_VERSION)
-- 
1.9.0


Reply to: