diff options
| author | David-John Willis <John.Willis@Distant-earth.com> | 2012-04-03 20:54:11 +0100 |
|---|---|---|
| committer | David-John Willis <John.Willis@Distant-earth.com> | 2012-04-03 20:54:11 +0100 |
| commit | b1db254c1886300d66c5e53431fcefe90800d36d (patch) | |
| tree | dcaab754fa1b8bbb36622ccdcf1edc073afbc180 | |
| parent | 2684e1f552bfa7daacf52c34f9ea396461ff0902 (diff) | |
| download | meta-raspberrypi-b1db254c1886300d66c5e53431fcefe90800d36d.tar.gz | |
linux-raspberrypi: Add recipe for 3.1.9 kernel.
* Kernel is from https://github.com/raspberrypi/linux
| -rw-r--r-- | recipes-kernel/linux/linux-raspberrypi_3.1.9.bb | 25 | ||||
| -rw-r--r-- | recipes-kernel/linux/linux.inc | 262 |
2 files changed, 287 insertions, 0 deletions
diff --git a/recipes-kernel/linux/linux-raspberrypi_3.1.9.bb b/recipes-kernel/linux/linux-raspberrypi_3.1.9.bb new file mode 100644 index 0000000..075e300 --- /dev/null +++ b/recipes-kernel/linux/linux-raspberrypi_3.1.9.bb | |||
| @@ -0,0 +1,25 @@ | |||
| 1 | require linux.inc | ||
| 2 | |||
| 3 | DESCRIPTION = "Linux kernel for the OpenPandora handheld" | ||
| 4 | KERNEL_IMAGETYPE = "uImage" | ||
| 5 | |||
| 6 | COMPATIBLE_MACHINE = "raspberrypi" | ||
| 7 | |||
| 8 | # This is on the pandora-3.2 branch | ||
| 9 | SRCREV = "d348f1694041b0310e42c6a471e97214eb301e91" | ||
| 10 | |||
| 11 | SRC_URI = " \ | ||
| 12 | git://github.com/raspberrypi/linux.git;protocol=git;branch=rpi-patches \ | ||
| 13 | " | ||
| 14 | |||
| 15 | PV = "3.1.9-rpi+${PR}+git${SRCREV}" | ||
| 16 | |||
| 17 | S = "${WORKDIR}/git" | ||
| 18 | |||
| 19 | # NOTE: For now we pull in the default config from the RPi kernel GIT tree. | ||
| 20 | |||
| 21 | KERNEL_DEFCONFIG = "bcmrpi_defconfig" | ||
| 22 | |||
| 23 | do_configure_prepend() { | ||
| 24 | install -m 0644 ${S}/arch/${ARCH}/configs/${KERNEL_DEFCONFIG} ${WORKDIR}/defconfig || die "No default configuration for ${MACHINE} / ${KERNEL_DEFCONFIG} available." | ||
| 25 | } | ||
diff --git a/recipes-kernel/linux/linux.inc b/recipes-kernel/linux/linux.inc new file mode 100644 index 0000000..a8ddf7f --- /dev/null +++ b/recipes-kernel/linux/linux.inc | |||
| @@ -0,0 +1,262 @@ | |||
| 1 | DESCRIPTION = "Linux Kernel" | ||
| 2 | SECTION = "kernel" | ||
| 3 | LICENSE = "GPLv2" | ||
| 4 | |||
| 5 | LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" | ||
| 6 | |||
| 7 | inherit kernel siteinfo | ||
| 8 | |||
| 9 | # Try to build & install perf | ||
| 10 | require recipes-kernel/linux/linux-tools.inc | ||
| 11 | |||
| 12 | RPSRC = "http://www.rpsys.net/openzaurus/patches/archive" | ||
| 13 | |||
| 14 | # Enable OABI compat for people stuck with obsolete userspace | ||
| 15 | ARM_KEEP_OABI ?= "1" | ||
| 16 | |||
| 17 | # Quirk for udev greater or equal 141 | ||
| 18 | UDEV_GE_141 ?= "0" | ||
| 19 | |||
| 20 | # Specify the commandline for your device | ||
| 21 | |||
| 22 | # Boot from mmc | ||
| 23 | CMDLINE_at91sam9263ek = "mem=64M console=ttyS0,115200 root=/dev/mmcblk0p1 rootfstype=ext2 rootdelay=5" | ||
| 24 | # Boot from nfs | ||
| 25 | #CMDLINE_at91sam9263ek = "mem=64M console=ttyS0,115200 root=301 root=/dev/nfs nfsroot=172.20.3.1:/data/at91 ip=172.20.0.5:::255.255.0.0" | ||
| 26 | |||
| 27 | # Set the verbosity of kernel messages during runtime | ||
| 28 | # You can define CMDLINE_DEBUG in your local.conf or distro.conf to override this behaviour | ||
| 29 | CMDLINE_DEBUG ?= '${@base_conditional("DISTRO_TYPE", "release", "quiet", "debug", d)}' | ||
| 30 | CMDLINE_append = " ${CMDLINE_DEBUG} " | ||
| 31 | |||
| 32 | # Kernel bootlogo is distro-specific (default is OE logo). | ||
| 33 | # Logo resolution (qvga, vga, ...) is machine-specific. | ||
| 34 | LOGO_SIZE ?= "." | ||
| 35 | |||
| 36 | # Support for binary device tree generation | ||
| 37 | |||
| 38 | FILES_kernel-devicetree = "/boot/devicetree*" | ||
| 39 | |||
| 40 | KERNEL_DEVICETREE_boc01 = "${WORKDIR}/boc01.dts" | ||
| 41 | KERNEL_DEVICETREE_calamari = "arch/${ARCH}/boot/dts/mpc8536ds.dts" | ||
| 42 | KERNEL_DEVICETREE_canyonlands = "arch/${ARCH}/boot/dts/canyonlands.dts" | ||
| 43 | KERNEL_DEVICETREE_kilauea = "arch/${ARCH}/boot/dts/kilauea.dts" | ||
| 44 | KERNEL_DEVICETREE_lite5200 = "arch/${ARCH}/boot/dts/lite5200.dts" | ||
| 45 | KERNEL_DEVICETREE_lsppchd = "arch/${ARCH}/boot/dts/kuroboxHD.dts" | ||
| 46 | KERNEL_DEVICETREE_lsppchg = "arch/${ARCH}/boot/dts/kuroboxHG.dts" | ||
| 47 | KERNEL_DEVICETREE_mpc8313e-rdb = "arch/${ARCH}/boot/dts/mpc8313erdb.dts" | ||
| 48 | KERNEL_DEVICETREE_mpc8315e-rdb = "arch/${ARCH}/boot/dts/mpc8315erdb.dts" | ||
| 49 | KERNEL_DEVICETREE_mpc8323e-rdb = "arch/${ARCH}/boot/dts/mpc832x_rdb.dts" | ||
| 50 | KERNEL_DEVICETREE_mpc8544ds = "arch/${ARCH}/boot/dts/mpc8544ds.dts" | ||
| 51 | KERNEL_DEVICETREE_mpc8641-hpcn = "arch/${ARCH}/boot/dts/mpc8641_hpcn.dts" | ||
| 52 | KERNEL_DEVICETREE_p1020rdb = "arch/${ARCH}/boot/dts/p1020rdb.dts" | ||
| 53 | KERNEL_DEVICETREE_p2020ds = "arch/${ARCH}/boot/dts/p2020ds.dts" | ||
| 54 | KERNEL_DEVICETREE_sequoia = "arch/${ARCH}/boot/dts/sequoia.dts" | ||
| 55 | KERNEL_DEVICETREE_tqm8540 = "arch/${ARCH}/boot/dts/tqm8540.dts" | ||
| 56 | KERNEL_DEVICETREE_xilinx-ml507 = "arch/${ARCH}/boot/dts/virtex440-ml507.dts" | ||
| 57 | |||
| 58 | KERNEL_DEVICETREE_FLAGS = "-R 8 -S 0x3000" | ||
| 59 | |||
| 60 | CORTEXA8FIXUP ?= "yes" | ||
| 61 | |||
| 62 | python __anonymous () { | ||
| 63 | |||
| 64 | import bb | ||
| 65 | |||
| 66 | devicetree = bb.data.getVar('KERNEL_DEVICETREE', d, 1) or '' | ||
| 67 | if devicetree: | ||
| 68 | depends = bb.data.getVar("DEPENDS", d, 1) | ||
| 69 | bb.data.setVar("DEPENDS", "%s dtc-native" % depends, d) | ||
| 70 | packages = bb.data.getVar("PACKAGES", d, 1) | ||
| 71 | bb.data.setVar("PACKAGES", "%s kernel-devicetree" % packages, d) | ||
| 72 | } | ||
| 73 | |||
| 74 | do_configure_prepend() { | ||
| 75 | |||
| 76 | # Rename getline in ./scripts/unifdef.c | ||
| 77 | # Kernels up to 2.6.29 are currently failing to build unifdef.c, | ||
| 78 | # clashing with exposed getline() from <stdio.h> | ||
| 79 | # see https://patchwork.kernel.org/patch/11166/ | ||
| 80 | # committed in 2.6.29 (commit d15bd1067b1fcb2b7250d22bc0c7c7fea0b759f7) | ||
| 81 | |||
| 82 | sed -i -e 's/getline/parseline/g' ${S}/scripts/unifdef.c | ||
| 83 | |||
| 84 | |||
| 85 | echo "" > ${S}/.config | ||
| 86 | |||
| 87 | # | ||
| 88 | # logo support, if you supply logo_linux_clut224.ppm in SRC_URI, then it's going to be used | ||
| 89 | # | ||
| 90 | if [ -e ${WORKDIR}/${LOGO_SIZE}/logo_linux_clut224.ppm ]; then | ||
| 91 | install -m 0644 ${WORKDIR}/${LOGO_SIZE}/logo_linux_clut224.ppm drivers/video/logo/logo_linux_clut224.ppm | ||
| 92 | echo "CONFIG_LOGO=y" >> ${S}/.config | ||
| 93 | echo "CONFIG_LOGO_LINUX_CLUT224=y" >> ${S}/.config | ||
| 94 | fi | ||
| 95 | |||
| 96 | # | ||
| 97 | # oabi / eabi support | ||
| 98 | # | ||
| 99 | if [ "${TARGET_OS}" = "linux-gnueabi" -o "${TARGET_OS}" = "linux-uclibceabi" ]; then | ||
| 100 | echo "CONFIG_AEABI=y" >> ${S}/.config | ||
| 101 | if [ "${ARM_KEEP_OABI}" = "1" ] ; then | ||
| 102 | echo "CONFIG_OABI_COMPAT=y" >> ${S}/.config | ||
| 103 | else | ||
| 104 | echo "# CONFIG_OABI_COMPAT is not set" >> ${S}/.config | ||
| 105 | fi | ||
| 106 | else | ||
| 107 | echo "# CONFIG_AEABI is not set" >> ${S}/.config | ||
| 108 | echo "# CONFIG_OABI_COMPAT is not set" >> ${S}/.config | ||
| 109 | fi | ||
| 110 | |||
| 111 | # When enabling thumb for userspace we also need thumb support in the kernel | ||
| 112 | if [ "${ARM_INSTRUCTION_SET}" = "thumb" ] ; then | ||
| 113 | sed -i -e /CONFIG_ARM_THUMB/d ${WORKDIR}/defconfig | ||
| 114 | echo "CONFIG_ARM_THUMB=y" >> ${S}/.config | ||
| 115 | fi | ||
| 116 | |||
| 117 | # Enable thumb2 fixup for specific issue in angstrom toolchains when used on A8 r1p[012] silicon | ||
| 118 | if [ "${DISTRO_NAME}" = "Angstrom" -o "${CORTEXA8FIXUP}" = "yes" ] ; then | ||
| 119 | sed -i -e /CONFIG_ARM_ERRATA_430973/d ${WORKDIR}/defconfig | ||
| 120 | echo "CONFIG_ARM_ERRATA_430973=y" >> ${S}/.config | ||
| 121 | fi | ||
| 122 | |||
| 123 | # | ||
| 124 | # endian support | ||
| 125 | # | ||
| 126 | if [ "${SITEINFO_ENDIANNESS}" = "be" ]; then | ||
| 127 | echo "CONFIG_CPU_BIG_ENDIAN=y" >> ${S}/.config | ||
| 128 | fi | ||
| 129 | |||
| 130 | echo "CONFIG_CMDLINE=\"${CMDLINE}\"" >> ${S}/.config | ||
| 131 | |||
| 132 | sed -e '/CONFIG_AEABI/d' \ | ||
| 133 | -e '/CONFIG_OABI_COMPAT=/d' \ | ||
| 134 | -e '/CONFIG_CMDLINE=/d' \ | ||
| 135 | -e '/CONFIG_CPU_BIG_ENDIAN/d' \ | ||
| 136 | -e '/CONFIG_LOGO=/d' \ | ||
| 137 | -e '/CONFIG_LOGO_LINUX_CLUT224=/d' \ | ||
| 138 | -e '/CONFIG_LOCALVERSION/d' \ | ||
| 139 | -e '/CONFIG_LOCALVERSION_AUTO/d' \ | ||
| 140 | < '${WORKDIR}/defconfig' >>'${S}/.config' | ||
| 141 | |||
| 142 | echo 'CONFIG_LOCALVERSION=""' >>${S}/.config | ||
| 143 | echo '# CONFIG_LOCALVERSION_AUTO is not set' >>${S}/.config | ||
| 144 | |||
| 145 | # | ||
| 146 | # Udev quirks | ||
| 147 | # | ||
| 148 | |||
| 149 | # Newer versions of udev mandate that sysfs doesn't have deprecated entries | ||
| 150 | if [ "${UDEV_GE_141}" = "1" ] ; then | ||
| 151 | sed -e /CONFIG_SYSFS_DEPRECATED/d \ | ||
| 152 | -e /CONFIG_SYSFS_DEPRECATED_V2/d \ | ||
| 153 | -e /CONFIG_HOTPLUG/d \ | ||
| 154 | -e /CONFIG_UEVENT_HELPER_PATH/d \ | ||
| 155 | -e /CONFIG_UNIX/d \ | ||
| 156 | -e /CONFIG_SYSFS/d \ | ||
| 157 | -e /CONFIG_PROC_FS/d \ | ||
| 158 | -e /CONFIG_TMPFS/d \ | ||
| 159 | -e /CONFIG_INOTIFY_USER/d \ | ||
| 160 | -e /CONFIG_SIGNALFD/d \ | ||
| 161 | -e /CONFIG_TMPFS_POSIX_ACL/d \ | ||
| 162 | -e /CONFIG_BLK_DEV_BSG/d \ | ||
| 163 | -i '${S}/.config' | ||
| 164 | |||
| 165 | echo '# CONFIG_SYSFS_DEPRECATED is not set' >> ${S}/.config | ||
| 166 | echo '# CONFIG_SYSFS_DEPRECATED_V2 is not set' >> ${S}/.config | ||
| 167 | echo 'CONFIG_HOTPLUG=y' >> ${S}/.config | ||
| 168 | echo 'CONFIG_UEVENT_HELPER_PATH=""' >> ${S}/.config | ||
| 169 | echo 'CONFIG_UNIX=y' >> ${S}/.config | ||
| 170 | echo 'CONFIG_SYSFS=y' >> ${S}/.config | ||
| 171 | echo 'CONFIG_PROC_FS=y' >> ${S}/.config | ||
| 172 | echo 'CONFIG_TMPFS=y' >> ${S}/.config | ||
| 173 | echo 'CONFIG_INOTIFY_USER=y' >> ${S}/.config | ||
| 174 | echo 'CONFIG_SIGNALFD=y' >> ${S}/.config | ||
| 175 | echo 'CONFIG_TMPFS_POSIX_ACL=y' >> ${S}/.config | ||
| 176 | echo 'CONFIG_BLK_DEV_BSG=y' >> ${S}/.config | ||
| 177 | echo 'CONFIG_DEVTMPFS=y' >> ${S}/.config | ||
| 178 | echo 'CONFIG_DEVTMPFS_MOUNT=y' >> ${S}/.config | ||
| 179 | fi | ||
| 180 | |||
| 181 | # Newer inits like systemd need cgroup support | ||
| 182 | if [ "${KERNEL_ENABLE_CGROUPS}" = "1" ] ; then | ||
| 183 | sed -e /CONFIG_CGROUP_SCHED/d \ | ||
| 184 | -e /CONFIG_CGROUPS/d \ | ||
| 185 | -i '${S}/.config' | ||
| 186 | |||
| 187 | echo 'CONFIG_CGROUP_SCHED=y' >> ${S}/.config | ||
| 188 | echo 'CONFIG_CGROUPS=y' >> ${S}/.config | ||
| 189 | echo 'CONFIG_CGROUP_NS=y' >> ${S}/.config | ||
| 190 | echo 'CONFIG_CGROUP_FREEZER=y' >> ${S}/.config | ||
| 191 | echo 'CONFIG_CGROUP_DEVICE=y' >> ${S}/.config | ||
| 192 | echo 'CONFIG_CPUSETS=y' >> ${S}/.config | ||
| 193 | echo 'CONFIG_PROC_PID_CPUSET=y' >> ${S}/.config | ||
| 194 | echo 'CONFIG_CGROUP_CPUACCT=y' >> ${S}/.config | ||
| 195 | echo 'CONFIG_RESOURCE_COUNTERS=y' >> ${S}/.config | ||
| 196 | fi | ||
| 197 | |||
| 198 | # | ||
| 199 | # root-over-nfs-over-usb-eth support. Limited, but should cover some cases. | ||
| 200 | # Enable this by setting a proper CMDLINE_NFSROOT_USB. | ||
| 201 | # | ||
| 202 | if [ ! -z "${CMDLINE_NFSROOT_USB}" ]; then | ||
| 203 | oenote "Configuring the kernel for root-over-nfs-over-usb-eth with CMDLINE ${CMDLINE_NFSROOT_USB}" | ||
| 204 | sed -e '/CONFIG_INET/d' \ | ||
| 205 | -e '/CONFIG_IP_PNP=/d' \ | ||
| 206 | -e '/CONFIG_USB_GADGET=/d' \ | ||
| 207 | -e '/CONFIG_USB_GADGET_SELECTED=/d' \ | ||
| 208 | -e '/CONFIG_USB_ETH=/d' \ | ||
| 209 | -e '/CONFIG_NFS_FS=/d' \ | ||
| 210 | -e '/CONFIG_ROOT_NFS=/d' \ | ||
| 211 | -e '/CONFIG_CMDLINE=/d' \ | ||
| 212 | -i ${S}/.config | ||
| 213 | echo "CONFIG_INET=y" >> ${S}/.config | ||
| 214 | echo "CONFIG_IP_PNP=y" >> ${S}/.config | ||
| 215 | echo "CONFIG_USB_GADGET=y" >> ${S}/.config | ||
| 216 | echo "CONFIG_USB_GADGET_SELECTED=y" >> ${S}/.config | ||
| 217 | echo "CONFIG_USB_ETH=y" >> ${S}/.config | ||
| 218 | echo "CONFIG_NFS_FS=y" >> ${S}/.config | ||
| 219 | echo "CONFIG_ROOT_NFS=y" >> ${S}/.config | ||
| 220 | echo "CONFIG_CMDLINE=\"${CMDLINE_NFSROOT_USB}\"" >> ${S}/.config | ||
| 221 | fi | ||
| 222 | yes '' | oe_runmake oldconfig | ||
| 223 | } | ||
| 224 | |||
| 225 | do_configure_append() { | ||
| 226 | if test -e scripts/Makefile.fwinst ; then | ||
| 227 | sed -i -e "s:-m0644:-m 0644:g" scripts/Makefile.fwinst | ||
| 228 | fi | ||
| 229 | } | ||
| 230 | |||
| 231 | do_install_append() { | ||
| 232 | oe_runmake headers_install INSTALL_HDR_PATH=${D}${exec_prefix}/src/linux-${KERNEL_VERSION} ARCH=$ARCH | ||
| 233 | } | ||
| 234 | |||
| 235 | PACKAGES =+ "kernel-headers" | ||
| 236 | FILES_kernel-headers = "${exec_prefix}/src/linux*" | ||
| 237 | |||
| 238 | do_devicetree_image() { | ||
| 239 | if test -n "${KERNEL_DEVICETREE}" ; then | ||
| 240 | dtc -I dts -O dtb ${KERNEL_DEVICETREE_FLAGS} -o devicetree ${KERNEL_DEVICETREE} | ||
| 241 | install -d ${D}/boot | ||
| 242 | install -m 0644 devicetree ${D}/boot/devicetree-${KERNEL_VERSION} | ||
| 243 | install -d ${DEPLOY_DIR_IMAGE} | ||
| 244 | install -m 0644 devicetree ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_BASE_NAME}.dtb | ||
| 245 | package_stagefile_shell ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_BASE_NAME}.dtb | ||
| 246 | cd ${DEPLOY_DIR_IMAGE} | ||
| 247 | rm -f ${KERNEL_IMAGE_SYMLINK_NAME}.dtb | ||
| 248 | ln -sf ${KERNEL_IMAGE_BASE_NAME}.dtb ${KERNEL_IMAGE_SYMLINK_NAME}.dtb | ||
| 249 | package_stagefile_shell ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_SYMLINK_NAME}.dtb | ||
| 250 | fi | ||
| 251 | } | ||
| 252 | |||
| 253 | addtask devicetree_image after do_install before do_package do_deploy | ||
| 254 | |||
| 255 | pkg_postinst_kernel-devicetree () { | ||
| 256 | cd /${KERNEL_IMAGEDEST}; update-alternatives --install /${KERNEL_IMAGEDEST}/devicetree devicetree devicetree-${KERNEL_VERSION} ${KERNEL_PRIORITY} || true | ||
| 257 | } | ||
| 258 | |||
| 259 | pkg_postrm_kernel-devicetree () { | ||
| 260 | cd /${KERNEL_IMAGEDEST}; update-alternatives --remove devicetree devicetree-${KERNEL_VERSION} || true | ||
| 261 | } | ||
| 262 | |||
