meta-agl-bsp: Enable overlayfs
[AGL/meta-agl.git] / meta-agl-bsp / recipes-kernel / linux / linux-agl.inc
1 FILESEXTRAPATHS_prepend := "${THISDIR}/linux:"
2
3 DEPENDS += "kern-tools-native"
4
5 # returns all the elements from the src uri that are .cfg files
6 def find_cfgs(d):
7     sources=src_patches(d, True)
8     sources_list=[]
9     for s in sources:
10         if s.endswith('.cfg'):
11             sources_list.append(s)
12
13     return sources_list
14
15 do_configure_append () {
16     [ ! -f .config ] && cp -a ${WORKDIR}/defconfig .config
17     # Need to clear CONFIG_LSM for 5.1+ kernels to ensure it'll get
18     # regenerated to reflect configuration changes (e.g. SMACK).
19     sed -i '/^CONFIG_LSM/d' .config
20     merge_config.sh -m .config ${@" ".join(find_cfgs(d))}
21     yes '' | make oldconfig
22 }
23
24 # Extra configuration options for the AGL kernel
25 SRC_URI_append = "\
26             file://can-bus.cfg \
27             file://usb.cfg \
28             file://uvc.cfg \
29             file://joystick.cfg \
30             file://fanotify.cfg \
31             file://uinput.cfg \
32             file://hid.cfg \
33             file://drm.cfg \
34             file://btusb.cfg \
35             file://usbaudio.cfg \
36             file://usbmodem.cfg \
37             file://i2c-led.cfg \
38             file://nfc.cfg \
39             file://overlayfs.cfg \
40         "
41
42 SRC_URI_append = " ${@bb.utils.contains('AGL_XEN_GUEST_WANTED','1','file://xen_domu.cfg','',d)}"
43
44 KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/can-bus.cfg"
45 # Enable support for usb video class for usb camera devices
46 KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/uvc.cfg"
47 # Enable support for joystick devices
48 KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/joystick.cfg"
49 KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/fanotify.cfg"
50 KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/uinput.cfg"
51 KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/hid.cfg"
52 # Enable DRM support for graphics
53 KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/drm.cfg"
54 # Enable Bluetooth USB devices
55 KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/btusb.cfg"
56 # Enable USB audio devices
57 KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/usbaudio.cfg"
58 # Enable I2C and LED for demontrator
59 KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/i2c-led.cfg"
60 # Enable NFC devices
61 KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/nfc.cfg"
62 # Enable overlayfs filesystem support
63 KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/overlayfs.cfg"
64 # Enable XEN support of the guest
65 KERNEL_CONFIG_FRAGMENTS_append = " ${@bb.utils.contains('AGL_XEN_GUEST_WANTED','1','${WORKDIR}/xen_domu.cfg','',d)}"
66
67 # Enable required features for the agl-netboot feature
68 SRC_URI_append_netboot = " file://nbd.cfg \
69         file://ramdisk.cfg"
70 KERNEL_CONFIG_FRAGMENTS_append_netboot = " ${WORKDIR}/nbd.cfg ${WORKDIR}/ramdisk.cfg"
71
72 # Enable support for TP-Link TL-W722N USB Wifi adapter (rev 1 and 2)
73 SRC_URI_append = " file://wifi.cfg"
74 KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/wifi.cfg"
75
76 # Enable support for RTLSDR
77 SRC_URI_append = " file://rtl_sdr.cfg"
78 KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/rtl_sdr.cfg"
79
80 # Additional drivers for virtual machines
81 # OVERRIDES save us some c'n'p below ...
82 OVERRIDES_prepend_qemux86 = "virtualmachine:"
83 OVERRIDES_prepend_qemux86-64 = "virtualmachine:"
84 SRC_URI_append_virtualmachine = " file://vbox-vmware-sata.cfg"
85 KERNEL_CONFIG_FRAGMENTS_append_virtualmachine = " ${WORKDIR}/vbox-vmware-sata.cfg"
86
87 # Extra configuration for using qemux86-64 image on physical hardware
88 SRC_URI_append_qemux86-64 = "\
89     file://x86-extra-graphic-devices.cfg \
90     file://x86-net-devices.cfg \
91     file://x86-security-tpm.cfg \
92     file://x86-usb-devices.cfg \
93     file://x86-upsquare.cfg \
94 "
95 KERNEL_CONFIG_FRAGMENTS_append_qemux86-64 = "\
96     ${WORKDIR}/x86-extra-graphic-devices.cfg \
97     ${WORKDIR}/x86-net-devices.cfg \
98     ${WORKDIR}/x86-security-tpm.cfg \
99     ${WORKDIR}/x86-usb-devices.cfg \
100     ${WORKDIR}/x86-upsquare.cfg \
101 "
102
103 # Enable support for smack
104 KERNEL_CONFIG_FRAGMENTS_append_with-lsm-smack = "\
105        ${WORKDIR}/audit.cfg \
106        ${WORKDIR}/smack.cfg \
107        ${WORKDIR}/smack-default-lsm.cfg \
108 "
109
110 # ALSA support and other sound related configuration
111 SRC_URI_append = " file://sound.cfg"
112 KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/sound.cfg"
113
114 # iio-dummy-device support for test iiodevice
115 SRC_URI_append = " file://iiodevice.cfg"
116 KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/iiodevice.cfg"
117
118 # external rtc support via e.g. http://wiki.seeedstudio.com/Grove-RTC/
119 SRC_URI_append = " file://rtc.cfg"
120 KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/rtc.cfg"
121
122 # netfilter options
123 SRC_URI_append = " file://netfilter.cfg"
124 KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/netfilter.cfg"
125
126 # Enable support for SystemTap
127 SRC_URI_append = " ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', 'file://systemtap.cfg', '', d)}"
128 KERNEL_CONFIG_FRAGMENTS_append = " ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', '${WORKDIR}/systemtap.cfg', '', d)}"