diff options
author | Tom Rini <trini@konsulko.com> | 2017-11-03 15:29:15 -0400 |
---|---|---|
committer | Jan-Simon Moeller <jsmoeller@linuxfoundation.org> | 2017-11-22 10:07:25 +0000 |
commit | 9691b89fd8a0014b7d57c9fc35cf75bfe8da1577 (patch) | |
tree | 0cbc41ae0a0c0d4a38e5952f4678c0831fbe6cb7 /meta-agl-bsp/recipes-kernel | |
parent | 5692de99c4e04d51a6c5da86fea1710d55420873 (diff) |
Rework Linux Kernel fragment applications
- All kernel recipes must inherit linux-agl.inc
- All kernel recipes for a given version (e.g. 4.9) should include
linux-VER-agl.inc in order to avoid duplication (such as the SMACK
label patch or security fixes)
- We enforce having merge_config.sh be invoked at the end, in order to
make sure fragments will be applied.
- Add a new fragment for Raspberry Pi to ensure the Pi Touchscreen is
still enabled.
With all of the above, we fix a number of minor issues as well, such as
platforms manually enabling NBD/RAMDISK for netboot as the previous
logic was not working in all cases.
Bug-AGL: SPEC-946
Change-Id: Ic688e899df5861d83712af12d8e1c6c3c9643300
Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-on: https://gerrit.automotivelinux.org/gerrit/12063
Tested-by: Jenkins Job builder account <agl-jobbuilder@automotivelinux.org>
Reviewed-by: José Bollo <jobol@nonadev.net>
Reviewed-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
Diffstat (limited to 'meta-agl-bsp/recipes-kernel')
14 files changed, 157 insertions, 18 deletions
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux-%.bbappend b/meta-agl-bsp/recipes-kernel/linux/linux-%.bbappend deleted file mode 100644 index f64e49ae0..000000000 --- a/meta-agl-bsp/recipes-kernel/linux/linux-%.bbappend +++ /dev/null @@ -1,8 +0,0 @@ -FILESEXTRAPATHS_prepend := "${THISDIR}/linux:" - -# Extra configuration options for the AGL kernel -SRC_URI_append = " file://can-bus.cfg \ - file://usb.cfg \ - file://uvc.cfg \ - file://joystick.cfg \ - " diff --git a/meta-agl-bsp/recipes-kernel/linux/linux-4.9/0004-Smack-Assign-smack_known_web-label-for-kernel-thread.patch b/meta-agl-bsp/recipes-kernel/linux/linux-4.9/0004-Smack-Assign-smack_known_web-label-for-kernel-thread.patch new file mode 100644 index 000000000..a1eeac3d7 --- /dev/null +++ b/meta-agl-bsp/recipes-kernel/linux/linux-4.9/0004-Smack-Assign-smack_known_web-label-for-kernel-thread.patch @@ -0,0 +1,49 @@ +From c8bbb0f916de54610513e376070aea531af19dd6 Mon Sep 17 00:00:00 2001 +From: jooseong lee <jooseong.lee@samsung.com> +Date: Thu, 3 Nov 2016 10:55:43 +0100 +Subject: [PATCH 4/4] Smack: Assign smack_known_web label for kernel thread's +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Assign smack_known_web label for kernel thread's socket in the sk_alloc_security hook + +Creating struct sock by sk_alloc function in various kernel subsystems +like bluetooth dosen't call smack_socket_post_create(). In such case, +received sock label is the floor('_') label and makes access deny. + +Refers-to: https://review.tizen.org/gerrit/#/c/80717/4 + +Change-Id: I2e5c9359bfede84a988fd4d4d74cdb9dfdfc52d8 +Signed-off-by: jooseong lee <jooseong.lee@samsung.com> +Signed-off-by: José Bollo <jose.bollo@iot.bzh> +--- + security/smack/smack_lsm.c | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c +index cf8a93f..21651bc 100644 +--- a/security/smack/smack_lsm.c ++++ b/security/smack/smack_lsm.c +@@ -2321,8 +2321,16 @@ static int smack_sk_alloc_security(struct sock *sk, int family, gfp_t gfp_flags) + if (ssp == NULL) + return -ENOMEM; + +- ssp->smk_in = skp; +- ssp->smk_out = skp; ++ /* ++ * Sockets created by kernel threads receive web label. ++ */ ++ if (unlikely(current->flags & PF_KTHREAD)) { ++ ssp->smk_in = &smack_known_web; ++ ssp->smk_out = &smack_known_web; ++ } else { ++ ssp->smk_in = skp; ++ ssp->smk_out = skp; ++ } + ssp->smk_packet = NULL; + + sk->sk_security = ssp; +-- +2.7.4 + diff --git a/meta-agl-bsp/recipes-kernel/linux/linux-agl-4.9.inc b/meta-agl-bsp/recipes-kernel/linux/linux-agl-4.9.inc new file mode 100644 index 000000000..3235ff4d1 --- /dev/null +++ b/meta-agl-bsp/recipes-kernel/linux/linux-agl-4.9.inc @@ -0,0 +1,8 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/linux-4.9:" + +#------------------------------------------------------------------------- +# smack patches for handling bluetooth + +SRC_URI_append_smack = "\ + file://0004-Smack-Assign-smack_known_web-label-for-kernel-thread.patch \ + " diff --git a/meta-agl-bsp/recipes-kernel/linux/linux-agl.inc b/meta-agl-bsp/recipes-kernel/linux/linux-agl.inc index fcd028062..2c8dab4ad 100644 --- a/meta-agl-bsp/recipes-kernel/linux/linux-agl.inc +++ b/meta-agl-bsp/recipes-kernel/linux/linux-agl.inc @@ -1,20 +1,71 @@ -FILESEXTRAPATHS_prepend := "${THISDIR}/linux-yocto:" +FILESEXTRAPATHS_prepend := "${THISDIR}/linux:" -# Extra configuration options for the QEMU kernel -SRC_URI += "file://fanotify.cfg \ +DEPENDS += "kern-tools-native" + +# returns all the elements from the src uri that are .cfg files +def find_cfgs(d): + sources=src_patches(d, True) + sources_list=[] + for s in sources: + if s.endswith('.cfg'): + sources_list.append(s) + + return sources_list + +do_configure_append () { + [ ! -f .config ] && cp -a ${WORKDIR}/defconfig .config + merge_config.sh -m .config ${@" ".join(find_cfgs(d))} + yes '' | make oldconfig +} + +# Extra configuration options for the AGL kernel +SRC_URI_append = "\ + file://can-bus.cfg \ + file://usb.cfg \ + file://uvc.cfg \ + file://joystick.cfg \ + file://fanotify.cfg \ file://uinput.cfg \ file://hid.cfg \ file://drm.cfg \ + file://btusb.cfg \ " +KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/can-bus.cfg" +# Enable support for usb video class for usb camera devices +KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/uvc.cfg" +# Enable support for joystick devices +KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/joystick.cfg" +KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/fanotify.cfg" +KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/uinput.cfg" +KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/hid.cfg" +# Enable DRM support for graphics +KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/drm.cfg" +# Enable Bluetooth USB devices +KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/btusb.cfg" + +# Enable required features for the agl-netboot feature +SRC_URI_append_netboot = " file://nbd.cfg \ + file://ramdisk.cfg" +KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/nbd.cfg ${WORKDIR}/ramdisk.cfg" # Enable support for TP-Link TL-W722N USB Wifi adapter -SRC_URI += " file://ath9k_htc.cfg \ - " +SRC_URI_append = " file://ath9k_htc.cfg" +KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/ath9k_htc.cfg" # Enable support for RTLSDR -SRC_URI += " file://rtl_sdr.cfg \ - " +SRC_URI_append = " file://rtl_sdr.cfg" +KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/rtl_sdr.cfg" + +# Additional drivers for virtual machines +# OVERRIDES save us some c'n'p below ... +OVERRIDES_prepend_qemux86 = "virtualmachine:" +OVERRIDES_prepend_qemux86-64 = "virtualmachine:" +SRC_URI_append_virtualmachine = " file://vbox-vmware-sata.cfg" +KERNEL_CONFIG_FRAGMENTS_append_virtualmachine = " ${WORKDIR}/vbox-vmware-sata.cfg" -# disk drivers for vmdk -SRC_URI_append_qemux86 = " file://vbox-vmware-sata.cfg " -SRC_URI_append_qemux86-64 = " file://vbox-vmware-sata.cfg " +# Enable support for smack +KERNEL_CONFIG_FRAGMENTS_append_smack = "\ + ${WORKDIR}/audit.cfg \ + ${WORKDIR}/smack.cfg \ + ${WORKDIR}/smack-default-lsm.cfg \ +" diff --git a/meta-agl-bsp/recipes-kernel/linux/linux-yocto/ath9k_htc.cfg b/meta-agl-bsp/recipes-kernel/linux/linux/ath9k_htc.cfg index 6f7d49880..6f7d49880 100644 --- a/meta-agl-bsp/recipes-kernel/linux/linux-yocto/ath9k_htc.cfg +++ b/meta-agl-bsp/recipes-kernel/linux/linux/ath9k_htc.cfg diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/btusb.cfg b/meta-agl-bsp/recipes-kernel/linux/linux/btusb.cfg new file mode 100644 index 000000000..dd7c460bb --- /dev/null +++ b/meta-agl-bsp/recipes-kernel/linux/linux/btusb.cfg @@ -0,0 +1,37 @@ +CONFIG_BT=m +CONFIG_BT_BREDR=y +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=m +CONFIG_BT_HS=y +CONFIG_BT_LE=y +CONFIG_BT_LEDS=y +# CONFIG_BT_SELFTEST is not set +CONFIG_BT_DEBUGFS=y + +# +# Bluetooth device drivers +# +CONFIG_BT_INTEL=m +CONFIG_BT_BCM=m +CONFIG_BT_RTL=m +CONFIG_BT_HCIBTUSB=m +CONFIG_BT_HCIBTUSB_BCM=y +CONFIG_BT_HCIBTUSB_RTL=y +# CONFIG_BT_HCIBTSDIO is not set +# CONFIG_BT_HCIUART is not set +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBFUSB=m +# CONFIG_BT_HCIVHCI is not set +# CONFIG_BT_MRVL is not set +# CONFIG_BT_ATH3K is not set +CONFIG_CRYPTO_ECB=m +CONFIG_CRYPTO_CMAC=m + +# +# Bluetooth AVRCP support +# +CONFIG_INPUT_UINPUT=y diff --git a/meta-agl-bsp/recipes-kernel/linux/linux-yocto/drm.cfg b/meta-agl-bsp/recipes-kernel/linux/linux/drm.cfg index 65fe71cd0..65fe71cd0 100644 --- a/meta-agl-bsp/recipes-kernel/linux/linux-yocto/drm.cfg +++ b/meta-agl-bsp/recipes-kernel/linux/linux/drm.cfg diff --git a/meta-agl-bsp/recipes-kernel/linux/linux-yocto/fanotify.cfg b/meta-agl-bsp/recipes-kernel/linux/linux/fanotify.cfg index de5dd8d31..de5dd8d31 100644 --- a/meta-agl-bsp/recipes-kernel/linux/linux-yocto/fanotify.cfg +++ b/meta-agl-bsp/recipes-kernel/linux/linux/fanotify.cfg diff --git a/meta-agl-bsp/recipes-kernel/linux/linux-yocto/hid.cfg b/meta-agl-bsp/recipes-kernel/linux/linux/hid.cfg index 327c753ae..327c753ae 100644 --- a/meta-agl-bsp/recipes-kernel/linux/linux-yocto/hid.cfg +++ b/meta-agl-bsp/recipes-kernel/linux/linux/hid.cfg diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/nbd.cfg b/meta-agl-bsp/recipes-kernel/linux/linux/nbd.cfg new file mode 100644 index 000000000..af37685e4 --- /dev/null +++ b/meta-agl-bsp/recipes-kernel/linux/linux/nbd.cfg @@ -0,0 +1 @@ +CONFIG_BLK_DEV_NBD=y diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/ramdisk.cfg b/meta-agl-bsp/recipes-kernel/linux/linux/ramdisk.cfg new file mode 100644 index 000000000..41530dd6e --- /dev/null +++ b/meta-agl-bsp/recipes-kernel/linux/linux/ramdisk.cfg @@ -0,0 +1 @@ +CONFIG_BLK_DEV_RAM=y diff --git a/meta-agl-bsp/recipes-kernel/linux/linux-yocto/rtl_sdr.cfg b/meta-agl-bsp/recipes-kernel/linux/linux/rtl_sdr.cfg index d4574700a..d4574700a 100644 --- a/meta-agl-bsp/recipes-kernel/linux/linux-yocto/rtl_sdr.cfg +++ b/meta-agl-bsp/recipes-kernel/linux/linux/rtl_sdr.cfg diff --git a/meta-agl-bsp/recipes-kernel/linux/linux-yocto/uinput.cfg b/meta-agl-bsp/recipes-kernel/linux/linux/uinput.cfg index 7996ef1dd..7996ef1dd 100644 --- a/meta-agl-bsp/recipes-kernel/linux/linux-yocto/uinput.cfg +++ b/meta-agl-bsp/recipes-kernel/linux/linux/uinput.cfg diff --git a/meta-agl-bsp/recipes-kernel/linux/linux-yocto/vbox-vmware-sata.cfg b/meta-agl-bsp/recipes-kernel/linux/linux/vbox-vmware-sata.cfg index ce1eca1a7..ce1eca1a7 100644 --- a/meta-agl-bsp/recipes-kernel/linux/linux-yocto/vbox-vmware-sata.cfg +++ b/meta-agl-bsp/recipes-kernel/linux/linux/vbox-vmware-sata.cfg |