4d9466c131
- remove older stable release recipes - bump stable linux recipe to 4.14.2 - bump git linux recipe to 4.15-rc1 - rename linux to linux-mainline Renaming kernel recipe from 'linux' to 'linux-mainline' is needed to get ready for adding aarch64 support. The reason is in the value of OVERRIDES environment variable. BitBake uses OVERRIDES to control what variables are overridden after BitBake parses recipes and configuration files. So packages names are not allowed to take values listed in OVERRIDES. One of the OVERRIDES values is TARGET_OS: TARGET_OS = linux${LIBCEXTENSION}${ABIEXTENSION} For arm architecture TARGET_OS = "linux-gnueabi". However for aarch64 architecture TARGET_OS = "linux". As a result, in the case of aarch64 kernel package can not be named 'linux'. This patch renames kernel package name to 'linux-mainline' in order to be able to maintain the same kernel recipes for both arm and aarch64 boards. Signed-off-by: Sergey Matyukevich <geomatsi@gmail.com> |
||
---|---|---|
classes | ||
conf | ||
recipes-bsp | ||
recipes-devtools/python | ||
recipes-graphics | ||
recipes-kernel/linux | ||
recipes-multimedia/gstreamer | ||
recipes-support/sunxi-tools | ||
COPYING.MIT | ||
README.md |
meta-sunxi
Official sunxi OpenEmbedded layer for Allwinner-based boards.
This layer depends on the additional layer:
meta-openembedded: git://git.openembedded.org/meta-openembedded
Tested with core-image-base.
Maintainers:
- Nicolas Aguirre aguirre.nicolas@gmail.com
- Enrico Butera ebutera@users.sourceforge.net
- Sergey Lapin slapin@ossfans.org
Kernel / U-Boot Version
Most Allwinner devices and hardware are supported in mainline kernel and U-Boot, so this layer builds mainline by default. There is a custom U-Boot and Kernel version for sunxi devices which includes some special drivers not mainlined. These versions are rather old (3.4 for kernel and 2014.04 for U-Boot), but may support more functions and devices than current mainline
If you want to switch back to sunxi versions for some reasons (no device tree available, unsupported hardware), either:
-
change the file conf/machine/include/sunxi.inc to include the following block
-
edit your conf/local.conf to add the following block
PREFERRED_PROVIDER_u-boot="u-boot-sunxi" PREFERRED_PROVIDER_virtual/bootloader="u-boot-sunxi" PREFERRED_PROVIDER_virtual/kernel="linux-sunxi"
If you already have built the mainline versions it might be necessary to reset the build directories with:
bitbake -c clean linux u-boot
Performance
The default machine settings are meant to be the lowest common denominator, maximizing generality. Significantly better performance (2x-3x) can be achieved with the following settings:
Allwinner A20
For Allwinner A20 (Cubieboard2/CubieTruck), the following tuning options are recommended:
Enable hardfloat, thumb2 and neon capabilities
DEFAULTTUNE = "cortexa7hf-neon-vfpv4"
This tuning profile takes advantage of the Allwinner A20 hardfloat, neon and vfpv4 capabilities.
Change CPU governor to ondemand, and tune settings
echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 336000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 912000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
#More aggressive
#echo 1008000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo 40 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
echo 200000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
This code changes the default CPU governor from fantasy to ondemand, and tunes its settings, as recommended at http://linux-sunxi.org/Cpufreq
For additional discussion, see https://github.com/linux-sunxi/meta-sunxi/issues/25