mirror of
https://git.yoctoproject.org/meta-arm
synced 2026-07-19 04:47:08 +00:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 43b6449601 | |||
| 95cfe5ad83 | |||
| c1a92ede20 | |||
| c4057679c8 | |||
| 3d59929e06 |
@@ -1,50 +0,0 @@
|
||||
Introduction
|
||||
------------
|
||||
This repository contains Arm layers for OpenEmbedded
|
||||
|
||||
meta-arm:
|
||||
This layer provides support for general recipes for the Arm
|
||||
architecture. Anything that's not needed explicitly for BSPs, the IOTA
|
||||
distribution, or destined to be upstreamed belongs here.
|
||||
|
||||
meta-arm-bsp:
|
||||
This layer provides support for Arm reference platforms
|
||||
|
||||
meta-arm-iota:
|
||||
This layer provides support for Arm's IOTA Linux Distribution
|
||||
|
||||
meta-arm-toolchain:
|
||||
This layer provides support for Arm's GNU-A toolset releases
|
||||
|
||||
meta-arm-autonomy:
|
||||
This layer provides a reference stack for autonomous systems.
|
||||
|
||||
Contributing
|
||||
------------
|
||||
Currently, we only accept patches from the meta-arm mailing list. For general
|
||||
information on how to submit a patch, please read
|
||||
https://www.openembedded.org/wiki/How_to_submit_a_patch_to_OpenEmbedded
|
||||
|
||||
E-mail meta-arm@lists.yoctoproject.org with patches created using this process. You can configure git-send-email to automatically use this address for the meta-arm repository with the following git command:
|
||||
|
||||
$ git config --local --add sendemail.to meta-arm@lists.yoctoproject.org
|
||||
|
||||
Commits and patches added should follow the OpenEmbedded patch guidelines:
|
||||
|
||||
https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines
|
||||
|
||||
The component being changed in the shortlog should be prefixed with the layer name (without the meta- prefix), for example:
|
||||
|
||||
arm-bsp/trusted-firmware-a: decrease frobbing level
|
||||
|
||||
arm-toolchain/gcc: enable foobar v2
|
||||
|
||||
Reporting bugs
|
||||
--------------
|
||||
E-mail meta-arm@lists.yoctoproject.org with the error encountered and the steps
|
||||
to reproduce the issue.
|
||||
|
||||
Maintainer(s)
|
||||
-------------
|
||||
* Jon Mason <jon.mason@arm.com>
|
||||
* Ross Burton <ross.burton@arm.com>
|
||||
@@ -1,92 +0,0 @@
|
||||
meta-arm-autonomy Yocto Layer
|
||||
=============================
|
||||
|
||||
Introduction
|
||||
------------
|
||||
This layer provides an hypervisor based solution (currently based on Xen) for
|
||||
autonomous system. It contains recipes and classes to build host and guests
|
||||
systems.
|
||||
|
||||
To start using this layer, please check the
|
||||
[Quick Start Guide](documentation/arm-autonomy-quickstart.md).
|
||||
|
||||
Dependencies
|
||||
------------
|
||||
This layer depends on several other Yocto layers:
|
||||
* meta-openembedded (https://git.openembedded.org/meta-openembedded)
|
||||
* poky (https://git.yoctoproject.org/poky)
|
||||
* meta-virtualization (https://git.yoctoproject.org/meta-virtualization)
|
||||
|
||||
Distribution Features
|
||||
---------------------
|
||||
This layer is adding the following Yocto DISTRO_FEATURES:
|
||||
|
||||
* arm-autonomy-host: this feature activates functionalities required to build
|
||||
an autonomy host system. It is doing the following:
|
||||
- add 'xen' and 'ipv4' to DISTRO_FEATURES.
|
||||
- add xen backend drivers to linux kernel configuration.
|
||||
- To reduce the root filesystem image size the kernel image is not installed.
|
||||
|
||||
* arm-autonomy-guest: this feature activates functionalities to run as guest
|
||||
of an autonomy system. It is doing the following:
|
||||
- add 'ipv4' to DISTRO_FEATURES.
|
||||
- add xen frontend drivers to linux kernel configuration.
|
||||
- add console on hvc0 during init.
|
||||
|
||||
Bitbake variables
|
||||
-----------------
|
||||
Some recipes and classes in this layer are introducing variables which can be
|
||||
modified by the user in local.conf.
|
||||
Each recipe introducing such variables has a chapter "Bitbake parameters" in
|
||||
its documentation.
|
||||
|
||||
Those documentation files should be checked for variables:
|
||||
- [xen-devicetree](documentation/xen-devicetree.md)
|
||||
- [xenguest-manager](documentation/xenguest-manager.md)
|
||||
- [xenguest-network-bridge](documentation/xenguest-network-bridge.md)
|
||||
|
||||
BSPs
|
||||
----
|
||||
This layer is adding the following machines:
|
||||
|
||||
* arm64-autonomy-guest: this machines creates a minimal BSP suitable to be used
|
||||
as an autonomy guest. It is in fact only activating ARM64 architecture and
|
||||
SMP in the linux kernel and is enabling the DISTRO_FEATURE
|
||||
arm-autonomy-guest.
|
||||
|
||||
Images
|
||||
------
|
||||
This layer is adding the following images:
|
||||
|
||||
* arm-autonomy-host-image-minimal: this image includes all elements required
|
||||
to create a minimal arm-autonomy-host system. This includes xen and tools to
|
||||
manage xen guests. This image depends on 'arm-autonomy-host' distribution
|
||||
feature.
|
||||
|
||||
Recipes and classes
|
||||
-------------------
|
||||
This layer is adding the following recipes and classes:
|
||||
|
||||
* [xen-devicetree](documentation/xen-devicetree.md): this is a recipe to modify
|
||||
a device tree blob to add information required to boot xen and a Dom0 linux.
|
||||
|
||||
* [xenguest-mkimage](documentation/xenguest-mkimage.md): this is a tool to
|
||||
create and modify images to be used as Xen guests.
|
||||
|
||||
* [xenguest-manager](documentation/xenguest-manager.md): this is a tool to
|
||||
create/remove/start/stop xen guest generated using xenguest-mkimage.
|
||||
|
||||
* [xenguest-network-bridge](documentation/xenguest-network-bridge.md): this
|
||||
recipe add tools and init scripts to create a bridge connected to the
|
||||
external network on the host and allow guests to be connected to it.
|
||||
|
||||
Contributing
|
||||
------------
|
||||
This project has not put in place a process for contributions currently. If you
|
||||
would like to contribute, please contact the maintainers
|
||||
|
||||
|
||||
Maintainer(s)
|
||||
-------------
|
||||
* Diego Sueiro <diego.sueiro@arm.com>
|
||||
* Bertrand Marquis <bertrand.marquis@arm.com>
|
||||
@@ -1,5 +0,0 @@
|
||||
# Include arm-autonomy distro config files if the distro features are set
|
||||
|
||||
require ${@bb.utils.contains('DISTRO_FEATURES', 'arm-autonomy-host', '${ARM_AUTONOMY_DISTRO_CFGDIR}/arm-autonomy-host.inc', '', d)}
|
||||
require ${@bb.utils.contains('DISTRO_FEATURES', 'arm-autonomy-guest', '${ARM_AUTONOMY_DISTRO_CFGDIR}/arm-autonomy-guest.inc', '', d)}
|
||||
|
||||
@@ -1,108 +0,0 @@
|
||||
# Create a xenguest image with kernel and filesystem produced by Yocto
|
||||
# This will create a .xenguest file that the xenguest-manager can use.
|
||||
|
||||
inherit xenguest-image
|
||||
|
||||
# We are creating our guest in a local subdirectory
|
||||
# force the value so that we are not impacted if the user is changing it
|
||||
XENGUEST_IMAGE_DEPLOY_DIR = "${WORKDIR}/tmp-xenguest"
|
||||
|
||||
# Name of deployed file (keep standard image name and add .xenguest)
|
||||
XENGUEST_IMAGE_DEPLOY ??= "${IMAGE_NAME}"
|
||||
|
||||
# Add kernel XENGUEST_IMAGE_KERNEL from DEPLOY_DIR_IMAGE to image
|
||||
xenguest_image_add_kernel() {
|
||||
srcfile="${1:-}"
|
||||
if [ -z "${srcfile}" ]; then
|
||||
srcfile="${DEPLOY_DIR_IMAGE}/${XENGUEST_IMAGE_KERNEL}"
|
||||
fi
|
||||
call_xenguest_mkimage partial --xen-kernel=$srcfile
|
||||
}
|
||||
|
||||
# Add rootfs file to the image
|
||||
xenguest_image_add_rootfs() {
|
||||
call_xenguest_mkimage partial \
|
||||
--disk-add-file=${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.${IMAGE_TYPEDEP_xenguest}:rootfs.${IMAGE_TYPEDEP_xenguest}
|
||||
}
|
||||
|
||||
# Pack xenguest image
|
||||
xenguest_image_pack() {
|
||||
mkdir -p ${IMGDEPLOYDIR}
|
||||
rm -f ${IMGDEPLOYDIR}/${XENGUEST_IMAGE_DEPLOY}.xenguest
|
||||
call_xenguest_mkimage pack \
|
||||
${IMGDEPLOYDIR}/${XENGUEST_IMAGE_DEPLOY}.xenguest
|
||||
}
|
||||
|
||||
#
|
||||
# Task finishing the bootimg
|
||||
# We need this task to actually create the symlinks
|
||||
#
|
||||
python do_bootimg_xenguest() {
|
||||
subtasks = d.getVarFlag('do_bootimg_xenguest', 'subtasks')
|
||||
|
||||
bb.build.exec_func('xenguest_image_clone', d)
|
||||
if subtasks:
|
||||
for tk in subtasks.split():
|
||||
bb.build.exec_func(tk, d)
|
||||
bb.build.exec_func('xenguest_image_pack', d)
|
||||
bb.build.exec_func('create_symlinks', d)
|
||||
}
|
||||
# This is used to add sub-tasks to do_bootimg_xenguest
|
||||
do_bootimg_xenguest[subtasks] = ""
|
||||
# Those are required by create_symlinks to find our image
|
||||
do_bootimg_xenguest[subimages] = "xenguest"
|
||||
do_bootimg_xenguest[imgsuffix] = "."
|
||||
do_bootimg_xenguest[depends] += "xenguest-base-image:do_deploy"
|
||||
# Need to have rootfs so all recipes have deployed their content
|
||||
do_bootimg_xenguest[depends] += "${PN}:do_rootfs"
|
||||
|
||||
# This set in python anonymous after, just set a default value here
|
||||
IMAGE_TYPEDEP_xenguest ?= "tar"
|
||||
|
||||
# We must not be built at rootfs build time because we need the kernel
|
||||
IMAGE_TYPES_MASKED += "xenguest"
|
||||
IMAGE_TYPES += "xenguest"
|
||||
|
||||
python __anonymous() {
|
||||
# Do not do anything if we are not in the want FSTYPES
|
||||
if bb.utils.contains_any('IMAGE_FSTYPES', 'xenguest', '1', '0', d):
|
||||
|
||||
# Check the coherency of the configuration
|
||||
rootfs_needed = False
|
||||
rootfs_file = ''
|
||||
kernel_needed = False
|
||||
|
||||
rootfs_file = xenguest_image_rootfs_file(d)
|
||||
if rootfs_file:
|
||||
rootfs_needed = True
|
||||
|
||||
if d.getVar('XENGUEST_IMAGE_KERNEL') and not d.getVar('INITRAMFS_IMAGE'):
|
||||
# If INITRAMFS_IMAGE is set, even if INITRAMFS_IMAGE_BUNDLE is not
|
||||
# set to 1 to bundle the initramfs with the kernel, kernel.bbclass
|
||||
# is setting a dependency on ${PN}:do_image_complete. We cannot
|
||||
# in this case depend on do_deploy as it would create a circular
|
||||
# dependency:
|
||||
# do_image_complete would depend on kernel:do_deploy which would
|
||||
# depend on ${PN}:do_image_complete
|
||||
# In the case INITRAMFS_IMAGE_BUNDLE = 1, the kernel-xenguest class
|
||||
# will handle the creation of a xenguest image with the kernel.
|
||||
# In the other case the kernel can be added manually to the image.
|
||||
kernel_needed = True
|
||||
|
||||
bb.build.addtask('do_bootimg_xenguest', 'do_image_complete', None, d)
|
||||
|
||||
if rootfs_needed:
|
||||
# tell do_bootimg_xenguest to call add_rootfs
|
||||
d.appendVarFlag('do_bootimg_xenguest', 'subtasks', ' xenguest_image_add_rootfs')
|
||||
# do_bootimg_xenguest will need the tar file
|
||||
d.appendVarFlag('do_bootimg_xenguest', 'depends', ' %s:do_image_tar' % (d.getVar('PN')))
|
||||
# set our TYPEDEP to the proper compression
|
||||
d.setVar('IMAGE_TYPEDEP_xenguest', 'tar' + (rootfs_file.split('.tar', 1)[1] or ''))
|
||||
|
||||
if kernel_needed:
|
||||
# Tell do_bootimg_xenguest to call xenguest_image_add_kernel
|
||||
d.appendVarFlag('do_bootimg_xenguest', 'subtasks', ' xenguest_image_add_kernel')
|
||||
# we will need kernel do_deploy
|
||||
d.appendVarFlag('do_bootimg_xenguest', 'depends', ' virtual/kernel:do_deploy')
|
||||
}
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
# Create a xenguest image containing the kernel with initramfs when
|
||||
# initramfs is activated
|
||||
# This is done using kernel-fitimage as model
|
||||
# To activate this, kernel-xenguest must be added to KERNEL_CLASSES
|
||||
|
||||
inherit xenguest-image
|
||||
|
||||
# use a local copy to pack all together
|
||||
XENGUEST_IMAGE_DEPLOY_DIR = "${WORKDIR}/tmp-xenguest"
|
||||
|
||||
python __anonymous () {
|
||||
# only if xenguest image type is present
|
||||
if bb.utils.contains('IMAGE_FSTYPES', 'xenguest', '1', '0', d):
|
||||
# only if initramfs bundle is activated
|
||||
if d.getVar('INITRAMFS_IMAGE') and d.getVar('INITRAMFS_IMAGE_BUNDLE') == "1":
|
||||
if not bb.utils.contains('KERNEL_IMAGETYPES', 'Image', '1', '0', d):
|
||||
bb.fatal("xenguest image type with initramfs require Image kernel image type")
|
||||
bb.build.addtask('do_assemble_xenguest_initramfs', 'do_deploy', 'do_bundle_initramfs', d)
|
||||
}
|
||||
|
||||
do_assemble_xenguest_initramfs() {
|
||||
xenguest_image_clone
|
||||
call_xenguest_mkimage partial --xen-kernel=${B}/${KERNEL_OUTPUT_DIR}/Image.initramfs
|
||||
rm -f ${B}/${KERNEL_OUTPUT_DIR}/Image-initramfs.xenguest
|
||||
call_xenguest_mkimage pack ${B}/${KERNEL_OUTPUT_DIR}/Image-initramfs.xenguest
|
||||
}
|
||||
do_assemble_xenguest_initramfs[depends] += "${INITRAMFS_IMAGE}:do_image_complete"
|
||||
|
||||
kernel_do_deploy_append() {
|
||||
if [ -f "${B}/${KERNEL_OUTPUT_DIR}/Image-initramfs.xenguest" ]; then
|
||||
install -m 0644 ${B}/${KERNEL_OUTPUT_DIR}/Image-initramfs.xenguest "$deployDir/Image-${INITRAMFS_NAME}.xenguest"
|
||||
ln -snf Image-${INITRAMFS_NAME}.xenguest $deployDir/Image-${INITRAMFS_LINK_NAME}.xenguest
|
||||
fi
|
||||
}
|
||||
@@ -1,114 +0,0 @@
|
||||
# This class must be used to extend the xenguest image
|
||||
# It provides variables to add init scripts, a dtb, xen files or disk files.
|
||||
#
|
||||
# The class is extending deploy function so you recipe must inherit deploy and
|
||||
# have a do_deploy function (even if it is empty)
|
||||
|
||||
# Use standard xenguest-image
|
||||
inherit xenguest-image
|
||||
|
||||
# Add a DTB file for the guest
|
||||
# Only one file should be added, if this is set multiple times or in several
|
||||
# recipes, the last recipe setting it will prevail.
|
||||
XENGUEST_EXTRA_DTB ??= ""
|
||||
|
||||
# Add a ramdisk file for the guest
|
||||
# Only one file should be added, if this is set multiple times or in several
|
||||
# recipes, the last recipe setting it will prevail.
|
||||
XENGUEST_EXTRA_RAMDISK ??= ""
|
||||
|
||||
# Append something to the guest xen configuration
|
||||
# All files here will be merged together in the final xen configuration
|
||||
# This can contain several files or be used in several recipes
|
||||
XENGUEST_EXTRA_XENCONFIG ??= ""
|
||||
|
||||
# Add a xenguest init, init-pre or init-post script
|
||||
XENGUEST_EXTRA_INIT_PRE ??= ""
|
||||
XENGUEST_EXTRA_INIT ??= ""
|
||||
XENGUEST_EXTRA_INIT_POST ??= ""
|
||||
|
||||
# Add xenguest files, (to be used in extra xen config for example)
|
||||
# several files may be added, space separated, the path will be kept on the
|
||||
# generated xenguest image (if dir1/file1 is added, it can be used as
|
||||
# dir1/file1 file in the xen configuration).
|
||||
XENGUEST_EXTRA_FILES ??= ""
|
||||
|
||||
# Add xenguest disk files (to be used as disk partition content)
|
||||
# several files may be added, space separated, the path will be kept on the
|
||||
# generated xenguest image (if dir1/file1 is added, it can be used as
|
||||
# dir1/file1 file in the disk content parameters).
|
||||
XENGUEST_EXTRA_DISK_FILES ??= ""
|
||||
|
||||
do_deploy_append() {
|
||||
if [ -z "${XENGUEST_IMAGE_DEPLOY_DIR}" -o \
|
||||
-z "${XENGUEST_IMAGE_DEPLOY_SUBDIR}" ]; then
|
||||
die "Configuration error: XENGUEST_IMAGE_DEPLOY_DIR or XENGUEST_IMAGE_DEPLOY_SUBDIR is empty"
|
||||
fi
|
||||
rm -rf ${XENGUEST_IMAGE_DEPLOY_DIR}/${XENGUEST_IMAGE_DEPLOY_SUBDIR}
|
||||
mkdir -p ${XENGUEST_IMAGE_DEPLOY_DIR}/${XENGUEST_IMAGE_DEPLOY_SUBDIR}
|
||||
|
||||
if [ -n "${XENGUEST_EXTRA_DTB}" ]; then
|
||||
if [ ! -f ${XENGUEST_EXTRA_DTB} ]; then
|
||||
die "xenguest-image: DTB file ${XENGUEST_EXTRA_DTB} does not exist"
|
||||
fi
|
||||
call_xenguest_mkimage partial --xen-device-tree=${XENGUEST_EXTRA_DTB}
|
||||
fi
|
||||
|
||||
if [ -n "${XENGUEST_EXTRA_RAMDISK}" ]; then
|
||||
if [ ! -f ${XENGUEST_EXTRA_RAMDISK} ]; then
|
||||
die "xenguest-image: DTB file ${XENGUEST_EXTRA_RAMDISK} does not exist"
|
||||
fi
|
||||
call_xenguest_mkimage partial --xen-ramdisk=${XENGUEST_EXTRA_RAMDISK}
|
||||
fi
|
||||
|
||||
if [ -n "${XENGUEST_EXTRA_XENCONFIG}" ]; then
|
||||
for f in ${XENGUEST_EXTRA_XENCONFIG}; do
|
||||
if [ ! -f $f ]; then
|
||||
die "xenguest-image: Xen config $f does not exist"
|
||||
fi
|
||||
call_xenguest_mkimage partial --xen-append=$f
|
||||
done
|
||||
fi
|
||||
|
||||
if [ -n "${XENGUEST_EXTRA_INIT_PRE}" ]; then
|
||||
if [ ! -f ${XENGUEST_EXTRA_INIT_PRE} ]; then
|
||||
die "xenguest-image: Init script ${XENGUEST_EXTRA_INIT_PRE} does not exist"
|
||||
fi
|
||||
call_xenguest_mkimage partial --init-pre=${XENGUEST_EXTRA_INIT_PRE}
|
||||
fi
|
||||
|
||||
if [ -n "${XENGUEST_EXTRA_INIT}" ]; then
|
||||
if [ ! -f ${XENGUEST_EXTRA_INIT} ]; then
|
||||
die "xenguest-image: Init script ${XENGUEST_EXTRA_INIT} does not exist"
|
||||
fi
|
||||
call_xenguest_mkimage partial --init-script=${XENGUEST_EXTRA_INIT}
|
||||
fi
|
||||
|
||||
if [ -n "${XENGUEST_EXTRA_INIT_POST}" ]; then
|
||||
if [ ! -f ${XENGUEST_EXTRA_INIT_POST} ]; then
|
||||
die "xenguest-image: Init script ${XENGUEST_EXTRA_INIT_POST} does not exist"
|
||||
fi
|
||||
call_xenguest_mkimage partial --init-post=${XENGUEST_EXTRA_INIT_POST}
|
||||
fi
|
||||
|
||||
if [ -n "${XENGUEST_EXTRA_FILES}" ]; then
|
||||
for f in ${XENGUEST_EXTRA_FILES}; do
|
||||
if [ ! -f $f ]; then
|
||||
die "xenguest-image: Xen file $f does not exist"
|
||||
fi
|
||||
call_xenguest_mkimage partial --xen-add-file=$f
|
||||
done
|
||||
fi
|
||||
|
||||
if [ -n "${XENGUEST_EXTRA_DISK_FILES}" ]; then
|
||||
for f in ${XENGUEST_EXTRA_DISK_FILES}; do
|
||||
if [ ! -f $f ]; then
|
||||
die "xenguest-image: Disk file $f does not exist"
|
||||
fi
|
||||
call_xenguest_mkimage partial --disk-add-file=$f
|
||||
done
|
||||
fi
|
||||
}
|
||||
# Need to have xenguest-image tool
|
||||
do_deploy[depends] += "xenguest-base-image:do_deploy"
|
||||
|
||||
@@ -1,199 +0,0 @@
|
||||
# This class must be used to create, extend or pack a xenguest image.
|
||||
# It is using xenguest-mkimage tool to do operations
|
||||
|
||||
DEPENDS += "xenguest-mkimage-native"
|
||||
|
||||
#
|
||||
# Xenguest image parameters
|
||||
# All the following parameters can be modified in local.conf or on recipes
|
||||
# inheriting this class
|
||||
#
|
||||
|
||||
# Guest memory size in MB
|
||||
XENGUEST_IMAGE_MEMORY_SIZE ??= "512"
|
||||
|
||||
# Guest number of vcpus
|
||||
XENGUEST_IMAGE_NUM_VCPUS ??= "1"
|
||||
|
||||
# Guest auto boot during init, set to 1 to have guest started during init or
|
||||
# to 0 if the guest should not be auto started
|
||||
XENGUEST_IMAGE_AUTOBOOT ??= "1"
|
||||
|
||||
# Partition containing the root file system
|
||||
# Xen will actually add root=${XENGUEST_IMAGE_ROOT} to your guest kernel
|
||||
# command line
|
||||
# You can let this empty if the root filesystem is specified in an other way
|
||||
# and have root= option added to the command line for example or if you don't
|
||||
# need a root filesystem mounted for your guest (initrd for example)
|
||||
XENGUEST_IMAGE_ROOT ??= "/dev/xvda1"
|
||||
|
||||
# Guest kernel command line arguments
|
||||
XENGUEST_IMAGE_CMDLINE ??= "earlyprintk=xenboot console=hvc0 rw"
|
||||
|
||||
# Extra commands to add to xenguest-image when creating the image
|
||||
XENGUEST_IMAGE_EXTRA_CMD ??= ""
|
||||
|
||||
# Kernel binary
|
||||
# This value is used by the xenguest image type but is declared here to have
|
||||
# all variables in the same place
|
||||
# If this value is empty no kernel will be added to the image
|
||||
XENGUEST_IMAGE_KERNEL ??= "Image"
|
||||
|
||||
# Size of the disk to create (if 0 no disk will be created and rootfs will not
|
||||
# be included in the xenguest image)
|
||||
XENGUEST_IMAGE_DISK_SIZE ??= "${@ '4' if not d.getVar('INITRAMFS_IMAGE') else '0'}"
|
||||
|
||||
#
|
||||
# XENGUEST_IMAGE_DISK PARTITIONS is used to describe the partitions to setup
|
||||
# and their content.
|
||||
# It must be set to a space separated list of entries with each entry having
|
||||
# the format num:sz:fs:[file] where:
|
||||
# - num is a partition number
|
||||
# - sz is the partition size in Gigabit
|
||||
# - fs is the filesystem to use for the partition
|
||||
# - file is optionally pointing to a file to use as content of the partition
|
||||
# Please check image_types_xenguest.bbclass for rootfs handling of files
|
||||
#
|
||||
# Default value creates a partition 1 using the full disk, formated with ext4
|
||||
# and containing the root filesystem produced by Yocto
|
||||
XENGUEST_IMAGE_DISK_PARTITIONS ??= "1:${XENGUEST_IMAGE_DISK_SIZE}:ext4:rootfs.tar.gz"
|
||||
|
||||
# XENGUEST_IMAGE_NETWORK_TYPE can be set to "bridge", "nat" or "none".
|
||||
# The "bridge" type will share the physical eth interface from dom0 with the
|
||||
# domU. This will allow the domU to have access to the external network.
|
||||
# The "nat" type will setup a virtual network between dom0 and domU and also
|
||||
# configure and run the dhcpd on dom0 to serve the domU.
|
||||
# The "none" type will not affect any networking setting between on dom0 and
|
||||
# domU.
|
||||
XENGUEST_IMAGE_NETWORK_TYPE ??= "bridge"
|
||||
|
||||
# Sub-directory in wich the guest is created. This is create in deploy as a
|
||||
# subdirectory and must be coherent between all components using this class so
|
||||
# it must only be modified from local.conf if needed
|
||||
XENGUEST_IMAGE_DEPLOY_SUBDIR ?= "xenguest"
|
||||
|
||||
# Directory in which the xenguest should be deployed
|
||||
# a sub-directory named ${XENGUEST_IMAGE_DEPLOY_SUBDIR} will be created there.
|
||||
# This should be set to:
|
||||
# - ${DEPLOYDIR} (default) if creating or extending the xenguest for a normal
|
||||
# recipe.
|
||||
# - something in ${WORKDIR} if you need to clone and manipulate an image
|
||||
XENGUEST_IMAGE_DEPLOY_DIR ??= "${DEPLOYDIR}"
|
||||
|
||||
#
|
||||
# Wrapper to call xenguest-mkimage
|
||||
# It is using XENGUEST_IMAGE_DEPLOY_DIR and XENGUEST_IMAGE_DEPLOY_SUBDIR
|
||||
# to find the image to operate on
|
||||
#
|
||||
# Usage: call_xenguest_mkimage [operation] [args]
|
||||
call_xenguest_mkimage() {
|
||||
local cmd="${1}"
|
||||
local img="${XENGUEST_IMAGE_DEPLOY_DIR}/${XENGUEST_IMAGE_DEPLOY_SUBDIR}"
|
||||
shift
|
||||
|
||||
echo "xenguest-mkimage $cmd $img $@"
|
||||
xenguest-mkimage $cmd $img $@
|
||||
}
|
||||
|
||||
#
|
||||
# Create an initial xenguest image.
|
||||
# This is a task which must be added in a recipe inheriting deploy
|
||||
# It is using XENGUEST_IMAGE_MEMORY_SIZE, XENGUEST_IMAGE_NUM_VCPUS,
|
||||
# XENGUEST_IMAGE_AUTOBOOT, XENGUEST_IMAGE_ROOT, XENGUEST_IMAGE_EXTRA_CMD,
|
||||
# XENGUEST_IMAGE_CMDLINE, XENGUEST_IMAGE_DISK_SIZE and
|
||||
# XENGUEST_IMAGE_DISK_PARTITIONS to customize the initial guest
|
||||
#
|
||||
xenguest_image_create() {
|
||||
if [ -z "${XENGUEST_IMAGE_DEPLOY_DIR}" -o \
|
||||
-z "${XENGUEST_IMAGE_DEPLOY_SUBDIR}" ]; then
|
||||
die "Configuration error: XENGUEST_IMAGE_DEPLOY_DIR or XENGUEST_IMAGE_DEPLOY_SUBDIR is empty"
|
||||
fi
|
||||
|
||||
rm -rf ${XENGUEST_IMAGE_DEPLOY_DIR}/${XENGUEST_IMAGE_DEPLOY_SUBDIR}
|
||||
|
||||
mkdir -p ${XENGUEST_IMAGE_DEPLOY_DIR}/${XENGUEST_IMAGE_DEPLOY_SUBDIR}
|
||||
|
||||
# Create the image
|
||||
call_xenguest_mkimage create --xen-memory=${XENGUEST_IMAGE_MEMORY_SIZE} \
|
||||
--xen-vcpus=${XENGUEST_IMAGE_NUM_VCPUS} \
|
||||
--xen-root=${XENGUEST_IMAGE_ROOT} \
|
||||
${XENGUEST_IMAGE_EXTRA_CMD}
|
||||
|
||||
# add command line
|
||||
if [ -n "${XENGUEST_IMAGE_CMDLINE}" ]; then
|
||||
call_xenguest_mkimage update --xen-clean-extra
|
||||
for arg in ${XENGUEST_IMAGE_CMDLINE}; do
|
||||
call_xenguest_mkimage update --xen-extra=$arg
|
||||
done
|
||||
fi
|
||||
|
||||
# create disk if needed
|
||||
disksize="${XENGUEST_IMAGE_DISK_SIZE}"
|
||||
if [ -z "$disksize" ]; then
|
||||
disksize="0"
|
||||
fi
|
||||
if [ $disksize -gt 0 ]; then
|
||||
# setup disk size
|
||||
call_xenguest_mkimage update --disk-reset-config --disk-size=$disksize
|
||||
|
||||
diskparts="${XENGUEST_IMAGE_DISK_PARTITIONS}"
|
||||
if [ -n "$diskparts" ]; then
|
||||
for arg in $diskparts; do
|
||||
call_xenguest_mkimage update --disk-add-part=$arg
|
||||
partnum="$(expr $partnum + 1)"
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "${XENGUEST_IMAGE_AUTOBOOT}" = "1" ]; then
|
||||
call_xenguest_mkimage update --set-param=GUEST_AUTOBOOT=1
|
||||
else
|
||||
call_xenguest_mkimage update --set-param=GUEST_AUTOBOOT=0
|
||||
fi
|
||||
|
||||
if [ -n "${XENGUEST_IMAGE_NETWORK_TYPE}" ]; then
|
||||
call_xenguest_mkimage update --set-param=XENGUEST_NETWORK_TYPE="${XENGUEST_IMAGE_NETWORK_TYPE}"
|
||||
else
|
||||
call_xenguest_mkimage update --set-param=XENGUEST_NETWORK_TYPE="none"
|
||||
fi
|
||||
}
|
||||
|
||||
#
|
||||
# Clone the current xenguest from deploy to manipulate it locally
|
||||
# This is required if you need to change things before packing an image
|
||||
# To set the local directory where to clone you must set
|
||||
# XENGUEST_IMAGE_DEPLOY_DIR if you don't want to use do_deploy to modify the
|
||||
# image
|
||||
#
|
||||
xenguest_image_clone() {
|
||||
if [ -z "${XENGUEST_IMAGE_DEPLOY_DIR}" -o \
|
||||
-z "${XENGUEST_IMAGE_DEPLOY_SUBDIR}" ]; then
|
||||
die "Configuration error: XENGUEST_IMAGE_DEPLOY_DIR or XENGUEST_IMAGE_DEPLOY_SUBDIR is empty"
|
||||
fi
|
||||
|
||||
if [ ! -f ${DEPLOY_DIR_IMAGE}/${XENGUEST_IMAGE_DEPLOY_SUBDIR}/guest.cfg ]; then
|
||||
die "xenguest-image: ${DEPLOY_DIR_IMAGE}/${XENGUEST_IMAGE_DEPLOY_SUBDIR} does not contain a valid guest"
|
||||
fi
|
||||
|
||||
rm -rf ${XENGUEST_IMAGE_DEPLOY_DIR}/${XENGUEST_IMAGE_DEPLOY_SUBDIR}
|
||||
mkdir -p ${XENGUEST_IMAGE_DEPLOY_DIR}
|
||||
cp -rf ${DEPLOY_DIR_IMAGE}/${XENGUEST_IMAGE_DEPLOY_SUBDIR} \
|
||||
${XENGUEST_IMAGE_DEPLOY_DIR}/${XENGUEST_IMAGE_DEPLOY_SUBDIR}
|
||||
}
|
||||
|
||||
# Helper function to retrieve rootfs file if present in one partition
|
||||
# This can return an empty string or rootfs.tar[.COMP]
|
||||
def xenguest_image_rootfs_file(d):
|
||||
disksize = d.getVar('XENGUEST_IMAGE_DISK_SIZE')
|
||||
# if disksize is 0, we don't create anything
|
||||
if not disksize or disksize == '0':
|
||||
return ""
|
||||
# Find first partition with file=rootfs.tar*
|
||||
partlist = d.getVar('XENGUEST_IMAGE_DISK_PARTITIONS')
|
||||
if partlist:
|
||||
for partdesc in partlist.split():
|
||||
partelems = partdesc.split(':', 3)
|
||||
if partelems[3]:
|
||||
if partelems[3].startswith('rootfs.tar'):
|
||||
return partelems[3]
|
||||
return ""
|
||||
@@ -1,15 +0,0 @@
|
||||
# This files is added when DISTRO_FEATURES contains arm-autonomy-guest
|
||||
|
||||
# We need to have ipv4 activated
|
||||
DISTRO_FEATURES_append = " ipv4"
|
||||
|
||||
# Build a xenguest type image
|
||||
IMAGE_CLASSES += "image_types_xenguest"
|
||||
IMAGE_FSTYPES += "xenguest"
|
||||
|
||||
# xenguest kernel extension to handle initramfs
|
||||
KERNEL_CLASSES += "kernel-xenguest"
|
||||
|
||||
IMAGE_INSTALL_append = "${@bb.utils.contains('DISTRO_FEATURES', 'docker', \
|
||||
' packagegroup-docker-runtime-minimal', \
|
||||
'', d)}"
|
||||
@@ -1,25 +0,0 @@
|
||||
# This files is added when DISTRO_FEATURES contains arm-autonomy-host
|
||||
|
||||
# We need to have xen and ipv4 activated
|
||||
DISTRO_FEATURES_append = " xen ipv4"
|
||||
DISTRO_FEATURES_NATIVE_append = " arm-autonomy-host"
|
||||
|
||||
# Don't include kernels in standard images when building arm-autonomy-host
|
||||
# If the kernel image is needed in the rootfs the following should be set from
|
||||
# a bbappend: RDEPENDS_${KERNEL_PACKAGE_NAME}-base = "${KERNEL_PACKAGE_NAME}-image"
|
||||
RDEPENDS_${KERNEL_PACKAGE_NAME}-base ?= ""
|
||||
|
||||
# Until we don't move to use the kea dhcp-server we build dhcp_4.4.2.bb recipe
|
||||
# which depends on bind_9.11.22.bb recipe.
|
||||
PREFERRED_VERSION_bind ?= "9.11%"
|
||||
|
||||
# Require extra machine specific settings from meta-arm-bsp dynamic-layers only
|
||||
# if meta-arm-bsp is in the bblayers.conf
|
||||
# Directory for meta-arm-autonomy/dynamic-layers/meta-arm-bsp machine extra settings
|
||||
ARM_AUTONOMY_ARM_BSP_DYNAMIC_EXTRA_CFGDIR = "${ARM_AUTONOMY_ARM_BSP_DYNAMIC_DIR}/conf/machine"
|
||||
ARM_AUTONOMY_MACHINE_EXTRA_REQUIRE ?= \
|
||||
"${ARM_AUTONOMY_ARM_BSP_DYNAMIC_EXTRA_CFGDIR}/arm-autonomy-machine-extra-settings.inc"
|
||||
|
||||
require ${@bb.utils.contains('BBFILE_COLLECTIONS', 'meta-arm-bsp', \
|
||||
'${ARM_AUTONOMY_MACHINE_EXTRA_REQUIRE}' , \
|
||||
'', d)}
|
||||
@@ -1,38 +0,0 @@
|
||||
# Add layer to BBPATH
|
||||
BBPATH .= ":${LAYERDIR}"
|
||||
|
||||
# Add recipes-* directories to BBFILES
|
||||
BBFILES += " \
|
||||
${LAYERDIR}/recipes-*/*/*.bb \
|
||||
${LAYERDIR}/recipes-*/*/*.bbappend \
|
||||
"
|
||||
|
||||
BBFILE_COLLECTIONS += "meta-arm-autonomy"
|
||||
BBFILE_PATTERN_meta-arm-autonomy = "^${LAYERDIR}/"
|
||||
BBFILE_PRIORITY_meta-arm-autonomy = "6"
|
||||
LAYERDEPENDS_meta-arm-autonomy = " \
|
||||
core \
|
||||
yocto \
|
||||
openembedded-layer \
|
||||
virtualization-layer \
|
||||
"
|
||||
LAYERSERIES_COMPAT_meta-arm-autonomy = "gatesgarth"
|
||||
|
||||
# We don't activate virtualization feature from meta-virtualization as it
|
||||
# brings in lots of stuff we don't need. We need to disable the sanity check
|
||||
# otherwise the user will see a warning on each build.
|
||||
SKIP_META_VIRT_SANITY_CHECK = "1"
|
||||
|
||||
ARM_AUTONOMY_LAYERDIR := "${LAYERDIR}"
|
||||
# Directory of our distro config files
|
||||
ARM_AUTONOMY_DISTRO_CFGDIR = "${ARM_AUTONOMY_LAYERDIR}/conf/distro/include/"
|
||||
|
||||
# Add class to handle arm-autonomy distro extensions
|
||||
USER_CLASSES_append = " arm-autonomy-features"
|
||||
|
||||
BBFILES_DYNAMIC += " \
|
||||
meta-arm-bsp:${LAYERDIR}/dynamic-layers/meta-arm-bsp/*/*/*.bbappend \
|
||||
meta-gem5:${LAYERDIR}/dynamic-layers/meta-gem5/*/*/*.bbappend \
|
||||
"
|
||||
# Root directory for the meta-arm-autonomy/dynamic-layers/meta-arm-bsp
|
||||
ARM_AUTONOMY_ARM_BSP_DYNAMIC_DIR = "${ARM_AUTONOMY_LAYERDIR}/dynamic-layers/meta-arm-bsp"
|
||||
@@ -1,17 +0,0 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: Autonomy Guest ARM64 machine
|
||||
#@DESCRIPTION: Machine configuration for ARM64 Autonomy Guest
|
||||
|
||||
TUNE_FEATURES = "aarch64"
|
||||
|
||||
require conf/machine/include/arm/arch-armv8a.inc
|
||||
|
||||
KERNEL_IMAGETYPE = "Image"
|
||||
|
||||
IMAGE_FSTYPES += "tar.bz2"
|
||||
|
||||
PREFERRED_PROVIDER_virtual/kernel = "linux-yocto"
|
||||
PREFERRED_VERSION_linux-yocto ?= "5.4%"
|
||||
|
||||
DISTRO_FEATURES += "arm-autonomy-guest"
|
||||
|
||||
@@ -1,232 +0,0 @@
|
||||
arm-autonomy Quick Start
|
||||
==================
|
||||
|
||||
This documentation is explaining how to quickly start with arm-autonomy layer
|
||||
and the main features provided.
|
||||
You will find in the documentation directory some more detailed documentation
|
||||
for each of the functionalites provided by this layer.
|
||||
|
||||
What to use this layer for?
|
||||
---------------------------
|
||||
Using this layer, you can easily and rapidly create a system based on Xen with
|
||||
one or more guests created using Yocto.
|
||||
|
||||
For this you will need to create at least 2 Yocto projects:
|
||||
- a host project: This one will compile Xen and create a Linux system to be
|
||||
used as Xen Dom0. The Linux system will contain all functionalities required
|
||||
to start and manage guests.
|
||||
- one or several guest projects: Those will create Linux systems with the
|
||||
required Linux kernel configuration to run as Xen DomU.
|
||||
|
||||
Prepare your system
|
||||
-------------------
|
||||
|
||||
First you must download the Yocto layers needed:
|
||||
- [meta-openembedded](https://git.openembedded.org/meta-openembedded)
|
||||
- [poky](https://git.yoctoproject.org/poky)
|
||||
- [meta-virtualization](https://git.yoctoproject.org/meta-virtualization)
|
||||
- [meta-arm](https://git.yoctoproject.org/meta-arm)
|
||||
- [meta-kernel](https://gitlab.com/openembedded/community/meta-kernel.git)
|
||||
- all other layers you might want to use
|
||||
|
||||
For each of the downloaded layer make sure you checkout the release of Yocto
|
||||
you want to use (for example zeus using `git checkout zeus`).
|
||||
|
||||
Please follow [Yocto documentation](https://www.yoctoproject.org/docs/latest/brief-yoctoprojectqs/brief-yoctoprojectqs.html)
|
||||
in order to have the required dependencies.
|
||||
|
||||
|
||||
Create a project
|
||||
----------------
|
||||
|
||||
Here are the main steps to create an arm-autonomy project:
|
||||
|
||||
1. create a new Yocto project using `oe-init-build-env` in a new directory:
|
||||
```
|
||||
oe-init-build-env my-project
|
||||
```
|
||||
|
||||
2. Add `meta-arm/meta-arm-autonomy` layer to the list of layers of your
|
||||
project in the `conf/bblayers.conf`. Also add any other layers you
|
||||
might need (for example `meta-arm/meta-arm-bsp` and `meta-arm/meta-arm` to
|
||||
use Arm boards like Juno or FVP emulator). You can achieve this by using
|
||||
the `bitbake-layers add-layer layerdir [layerdir ...]` command.
|
||||
For example:
|
||||
```
|
||||
export LAYERDIR_BASE="/home/user/arm-autonomy/"
|
||||
bitbake-layers add-layer $LAYERDIR_BASE/meta-poky $LAYERDIR_BASE/meta-yocto-bsp \
|
||||
$LAYERDIR_BASE/meta-openembedded/meta-oe $LAYERDIR_BASE/meta-openembedded/meta-python \
|
||||
$LAYERDIR_BASE/meta-openembedded/meta-filesystems $LAYERDIR_BASE/meta-openembedded/meta-networking \
|
||||
$LAYERDIR_BASE/meta-virtualization $LAYERDIR_BASE/meta-kernel \
|
||||
$LAYERDIR_BASE/meta-arm/meta-arm $LAYERDIR_BASE/meta-arm/meta-arm-toolchain \
|
||||
$LAYERDIR_BASE/meta-arm/meta-arm-bsp $LAYERDIR_BASE/meta-arm/meta-arm-autonomy \
|
||||
```
|
||||
|
||||
Example of a `conf/bblayers.conf`:
|
||||
```
|
||||
BBLAYERS ?= " \
|
||||
/home/user/arm-autonomy/poky/meta \
|
||||
/home/user/arm-autonomy/poky/meta-poky \
|
||||
/home/user/arm-autonomy/poky/meta-yocto-bsp \
|
||||
/home/user/arm-autonomy/meta-openembedded/meta-oe \
|
||||
/home/user/arm-autonomy/meta-openembedded/meta-python \
|
||||
/home/user/arm-autonomy/meta-openembedded/meta-filesystems \
|
||||
/home/user/arm-autonomy/meta-openembedded/meta-networking \
|
||||
/home/user/arm-autonomy/meta-virtualization \
|
||||
/home/user/arm-autonomy/meta-kernel \
|
||||
/home/user/arm-autonomy/meta-arm/meta-arm \
|
||||
/home/user/arm-autonomy/meta-arm/meta-arm-toolchain \
|
||||
/home/user/arm-autonomy/meta-arm/meta-arm-bsp \
|
||||
/home/user/arm-autonomy/meta-arm/meta-arm-autonomy \
|
||||
"
|
||||
```
|
||||
|
||||
Be aware that changing the order may break some dependencies if editing the
|
||||
config file manually.
|
||||
|
||||
Those steps will have to be done for each project you will have to create.
|
||||
|
||||
Host project
|
||||
------------
|
||||
The host project will build Xen and the Dom0 Linux. It will be the only project
|
||||
that will be specific to the board (MACHINE) you will be running on.
|
||||
|
||||
To create a host project:
|
||||
1. Follow the steps of "Create a project"
|
||||
|
||||
2. Add the layers in `bblayers.conf` required to build a Yocto project for the
|
||||
board you want to use.
|
||||
For example to use Arm FVP Base emulator, add `meta-arm/meta-arm` and
|
||||
`meta-arm/meta-arm-bsp`.
|
||||
|
||||
3. edit conf/local.conf to add `arm-autonomy-host` to the DISTRO_FEATURES and
|
||||
set MACHINE to the board you want to use.
|
||||
For example, add the following lines:
|
||||
```
|
||||
MACHINE = "fvp-base"
|
||||
DISTRO_FEATURES += "arm-autonomy-host"
|
||||
```
|
||||
|
||||
4. build the image using `bitbake arm-autonomy-host-image-minimal`
|
||||
|
||||
The project will generate a Linux kernel, a root filesystem, a Xen binary and
|
||||
a DTB modified to include the required entries to boot Xen and Linux as Dom0
|
||||
(this DTB has the extension `-xen.dtb`).
|
||||
|
||||
To boot the system using an u-boot base board you will need to:
|
||||
- Load the kernel (by default at 0x80080000 unless you modify
|
||||
XEN_DEVICETREE_DOM0_ADDR value)
|
||||
- Load the xen device tree (for example at 0x83000000)
|
||||
- Load the xen-efi binary (for example at 0x84000000)
|
||||
- run using `booti 0x84000000 - 0x83000000`
|
||||
|
||||
In this example the addresses might need to be adapted depending on your board.
|
||||
|
||||
Guest project
|
||||
-------------
|
||||
The guest projects are not target specific and will use a Yocto MACHINE defined
|
||||
in meta-arm-autonomy to include only the Linux configuration required to run
|
||||
a xen guest.
|
||||
|
||||
To create a guest project:
|
||||
|
||||
1. Follow the steps of "Create a project"
|
||||
|
||||
2. Optionaly add layers required to build the image and features you need.
|
||||
|
||||
3. edit conf/local.conf to add `arm-autonomy-guest` to the DISTRO_FEATURES and
|
||||
set MACHINE to `arm64-autonomy-guest`:
|
||||
```
|
||||
MACHINE = "arm64-autonomy-guest"
|
||||
DISTRO_FEATURES += "arm-autonomy-guest"
|
||||
```
|
||||
|
||||
4. build the image you want.
|
||||
For example `bitbake core-image-minimal`
|
||||
|
||||
The build will create a ".xenguest" image that can be use on an host project
|
||||
with the xenguest-manager.
|
||||
|
||||
Include guests directly in the host image
|
||||
-----------------------------------------
|
||||
The layer provides a way to directly include in the host project one or several
|
||||
images generated by guest projects.
|
||||
|
||||
To use this feature, you must edit your host project `local.conf` file and
|
||||
add set ARM_AUTONOMY_HOST_IMAGE_EXTERN_GUESTS to the list of xenguest images
|
||||
you want to include in your host. Each xenguest image must be given using a
|
||||
full path to it.
|
||||
For example:
|
||||
```
|
||||
ARM_AUTONOMY_HOST_IMAGE_EXTERN_GUESTS = "/home/user/guest-project/tmp/deploy/images/arm64-autonomy-guest/core-image-minimal-arm64-autonomy-guest.xenguest;guestname=myguest"
|
||||
```
|
||||
This will add the guest and name it `myguest` on the host project image and
|
||||
the xenguest-manager will automatically boot it during startup.
|
||||
|
||||
Add support for your board
|
||||
--------------------------
|
||||
Most of arm-autonomy layer is board independent but some functionalities
|
||||
might need to be customized for your board:
|
||||
|
||||
### Add the kernel configuration for the host
|
||||
The layer is using KERNEL_FEATURES to add drivers required to be a Xen Dom0
|
||||
system.
|
||||
Depending on the kernel used by your BSP and how it is configured you might
|
||||
need to add the required drivers to your kernel configuration:
|
||||
- if KERNEL_FEATURES system is supported by your kernel, make sure that the
|
||||
file `recipes-kernel/linux/linux-arm-autonomy.inc` from the layer is included
|
||||
by your kernel recipe.
|
||||
- if it is not supported, you must add the proper drivers inside your kernel
|
||||
(modules are possible but they must be loaded before xenguest-manager is
|
||||
started). You can find the complete list of the kernel configuration elements
|
||||
required in `recipes-kernel/linux/arm-autonomy-kmeta/features/arm-autonomy/xen-host.cfg`.
|
||||
|
||||
### Define the drive and partition to use for the LVM volume
|
||||
The xenguest-manager is creating disk hard drive using LVM on an empty
|
||||
partition. The default value is set to use /dev/sda2.
|
||||
You can change this for your board by setting XENGUEST_MANAGER_VOLUME_DEVICE.
|
||||
|
||||
Check `recipes-extended/xenguest/xenguest-manager.bbappend` for examples.
|
||||
|
||||
Please also read xenguest-manager.md.
|
||||
|
||||
### Define the interface to add to xenguest network bridge
|
||||
xenguest-network bridge is creating a bridge on the host and adds network
|
||||
interfaces to it so that guest connected to it have access to external network.
|
||||
By default `eth0` is set as the list of interfaces to be added to the bridge.
|
||||
Depending on your board or use case you might want to use an other interface
|
||||
or use multiple interfaces.
|
||||
You can change this for your board by setting XENGUEST_NETWORK_BRIDGE_MEMBERS.
|
||||
|
||||
Check `recipes-extended/xenguest/xenguest-network-bridge.bbappend` for
|
||||
exmaples.
|
||||
|
||||
Please also read xenguest-network-bridge.md.
|
||||
|
||||
### Define the network configuration of the xenguest network bridge
|
||||
xenguest network bridge is putting the host network interfaces in a bridge
|
||||
and is configuring it by default to use dhcp.
|
||||
If you need a different type of configuration you can set
|
||||
XENGUEST_NETWORK_BRIDGE_CONFIG in a xenguest-network-bridge.bbappend to use
|
||||
a different file.
|
||||
The recipe will look for the file in ${WORKDIR} so you will need to add it to
|
||||
SRC_URI in your bbappend.
|
||||
The recipe will also substitute `###BRIDGE_NAME###` with the bridge name
|
||||
configured in ${XENGUEST_NETWORK_BRIDGE_NAME}.
|
||||
|
||||
You can find an example configuration file in
|
||||
`recipes-extended/xenguest/files/xenguest-network-bridge-dhcp.cfg.in`.
|
||||
|
||||
Please also read xenguest-network-bridge.md.
|
||||
|
||||
### Customize Dom0 and Xen boot arguments for you board
|
||||
xen-devicetree is writting inside the generated DTB Xen and Linux boot
|
||||
arguments as long as the address where Dom0 Linux kernel can be found.
|
||||
You might need to have different values for your board or depending on your
|
||||
use case.
|
||||
|
||||
You can find examples to customize this in
|
||||
`recipes-extended/xen-devicetree/xen-devicetree.bbappend`.
|
||||
|
||||
Please also read xen-devicetree.md.
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
Customizing Arm Autonomy Host image layout for N1SDP
|
||||
====================================================
|
||||
|
||||
When buiding with `DISTRO_FEATURES += "arm-autonomy-host"` the user can
|
||||
perform a couple of customizations in the generated wic image:
|
||||
|
||||
1. Set the guest partition size (default: 4iG) via `GUEST_PART_SIZE` and
|
||||
`GUEST_PART_SIZE_UNIT` (M or G) variables to be set in any conf file. The
|
||||
value of these variables should be aligned with the sum of all
|
||||
XENGUEST_IMAGE_DISK_SIZE set for the guests. By default, LVM2 metadata is
|
||||
1 MiB per physical volume, hence it needs to be taken into account when
|
||||
setting GUEST_PART_SIZE.
|
||||
|
||||
2. The wic image partition layout and contents with a custom wks file via
|
||||
`ARM_AUTONOMY_WKS_FILE` variable (default:
|
||||
arm-autonomy-n1sdp-efidisk.wks.in which is affected by GUEST_PART_SIZE,
|
||||
GUEST_PART_SIZE_UNIT and GRUB_CFG_FILE variables).
|
||||
|
||||
3. Custom grub.cfg file via `GRUB_CFG_FILE` (default:
|
||||
arm-autonomy-n1sdp-grub.cfg) variable to be set in any conf file. The full
|
||||
path or relative to `ARM_AUTONOMY_WKS_FILE` should be set.
|
||||
|
||||
The `arm-autonomy-n1sdp-efidisk.wks.in` and `arm-autonomy-n1sdp-grub.cfg` files
|
||||
are located at `meta-arm-autonomy/dynamic-layers/meta-arm-bsp/wic`.
|
||||
|
||||
Other variables can also be custmized to set what files need to be included
|
||||
in the wic image boot partition. Please refer to
|
||||
`meta-arm-autonomy/dynamic-layers/meta-arm-bsp/conf/machine/n1sdp-extra-settings.inc`
|
||||
for more details.
|
||||
@@ -1,104 +0,0 @@
|
||||
Xen device tree
|
||||
===============
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
xen-devicetree recipe can be used to modify an existing Device Tree Blob,
|
||||
produced by Linux kernel or another recipe, to include in it entries required
|
||||
to start Xen and a Dom0 Linux on top of it.
|
||||
|
||||
The recipe will do the following processing:
|
||||
- generate a xen.dtsi file with entries required for xen based on parameters
|
||||
- turn DTBs in ${XEN_DEVICETREE_DTBS} back to dts
|
||||
- include in xen.dtsi and all other dtsi from
|
||||
${XEN_DEVICETREE_DTSI_MERGE} (check Bitbake parameters for more information
|
||||
on this).
|
||||
- use dtc to create a new DTB file
|
||||
|
||||
The recipe will generate new files in deploy/images and name them with the
|
||||
extension "-xen.dtb".
|
||||
For example **machine.dtb** will generate **machine-xen.dtb**.
|
||||
|
||||
Entries added to the DTBs
|
||||
-------------------------
|
||||
|
||||
When a DTB is processed by the recipe, the following block is added:
|
||||
```
|
||||
chosen {
|
||||
xen,dom0-bootargs = "VAL";
|
||||
xen,xen-bootargs = "VAL";
|
||||
|
||||
modules {
|
||||
#size-cells = <0x00000001>;
|
||||
#address-cells = <0x00000001>;
|
||||
|
||||
module@0 {
|
||||
reg = <VAL VAL>;
|
||||
compatible = "multiboot,module";
|
||||
};
|
||||
};
|
||||
};
|
||||
```
|
||||
Each occurence of **VAL** is replaced by the content of the variables listed in
|
||||
this documentation.
|
||||
|
||||
Bitbake parameters
|
||||
------------------
|
||||
|
||||
Several parameters are available to configure the xen-devicetree during Yocto
|
||||
project compilation (those can be set in your project local.conf, for exmple).
|
||||
|
||||
The following parameters are available:
|
||||
|
||||
- XEN_DEVICETREE_DEPEND: This variable can be used to indicate which recipe
|
||||
task is generating the DTBs that xen-devicetree will modify. This makes sure
|
||||
the xen devicetrees are properly regenerated if the source DTBs are changed.
|
||||
This variable is set by default to "virtual/kernel:do_deploy" to use DTBs
|
||||
generated during the compilation of the Linux kernel. This must be changed
|
||||
if the machine your are using is not using a DTB listed in KERNEL_DEVICETREE.
|
||||
|
||||
- XEN_DEVICETREE_DTBS: This should be set to the list of DTBs you want to be
|
||||
modified by xen-devicetree. Those must be files that xen-devicetree can find
|
||||
in the ${DEPLOY_DIR_IMAGE} directory using only the basename of the entries.
|
||||
For example "mydir/board.dtb" will make the recipe look for
|
||||
${DEPLOY_DIR_IMAGE}/board.dtb.
|
||||
This variable is set by default to "${KERNEL_DEVICETREE}" to process the DTBs
|
||||
generated by the Linux kernel.
|
||||
|
||||
- XEN_DEVICETREE_DOM0_MEM: Memory size to allocate to Dom0.
|
||||
This variable is only used if XEN_DEVICETREE_XEN_BOOTARGS has a value
|
||||
containing "dom0_mem=${XEN_DEVICETREE_DOM0_MEM}" as the memory assigned to
|
||||
dom0 is defined using Xen boot arguments.
|
||||
This variable is set by default to "1024M".
|
||||
|
||||
- XEN_DEVICETREE_DOM0_BOOTARGS: Boot arguments to pass to Dom0 Linux when
|
||||
booting it.
|
||||
This variable is set by default to "console=hvc0 earlycon=xen".
|
||||
|
||||
- XEN_DEVICETREE_XEN_BOOTARGS: this variable should be set with the boot
|
||||
arguments to be passed to Xen on boot.
|
||||
This variable is set by default to
|
||||
"noreboot dom0_mem=${XEN_DEVICETREE_DOM0_MEM}".
|
||||
|
||||
- XEN_DEVICETREE_DOM0_ADDR: This is the address from which the Linux kernel to
|
||||
be used for Dom0 will be copied. When using u-boot, this is the address at
|
||||
which you will load the kernel Image before starting Xen.
|
||||
This variable is set by default to "0x80080000".
|
||||
|
||||
- XEN_DEVICETREE_DOM0_SIZE: This is the size of the kernel loaded at
|
||||
${XEN_DEVICETREE_DOM0_ADDR}. Xen will copy this amount of data inside the
|
||||
guest before starting it so the size must be at least equal to the kernel
|
||||
size but can be bigger. You must be careful not to have a value too big as it
|
||||
could slow down boot or copy other parts with it (like the DTB).
|
||||
You might need to increase this if you use a kernel with a bundled initramfs.
|
||||
This variable is set by default to "0x01000000".
|
||||
|
||||
- XEN_DEVICETREE_DTSI_MERGE: This variable contains the list of dtsi files that
|
||||
must be included inside the generated DTB file. By default the only one
|
||||
include is the "xen.dtsi" generated by the recipe.
|
||||
If your board or project needs to include more fixes or entries in the DTB,
|
||||
this variable can be appended from a bbappend file to include other dtsi. The
|
||||
files must be inside the recipe workspace during Yocto compilation.
|
||||
You can check xen-devicetree.bbappend for an example.
|
||||
|
||||
@@ -1,67 +0,0 @@
|
||||
Xenguest Manager
|
||||
================
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
xenguest-manager is a tool to manage Xenguest images generated by
|
||||
[xenguest-mkimage](xenguest-mkimage.md).
|
||||
|
||||
On a Xen Dom0 system it will:
|
||||
- create a xen guest from a xenguest image: extract its components, create a
|
||||
disk for the guest using LVM volumes.
|
||||
- start/stop a xen guest (during init or using xenguest-manager directly).
|
||||
- check guest status
|
||||
|
||||
xenguest-manager is composed of 2 shell scripts:
|
||||
- xenguest-manager which can be used from command line to start/stop/check
|
||||
guests and create or remove guest using xenguest images.
|
||||
- xenguest-init which is called during init to automatically create and start
|
||||
some guests as part of the host init process.
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
||||
xenguest-manager must be called like this:
|
||||
`xenguest-manager OPERATION [OPTIONS]`
|
||||
The following operations are available:
|
||||
- create XENGUEST_IMAGE [GUESTNAME]: create a guest from a xenguest image file
|
||||
as guest GUESTNAME. If GUESTNAME is not given the image file name is used
|
||||
without the xenguest extension.
|
||||
- remove GUESTNAME: remove the guest GUESTNAME.
|
||||
- start GUESTNAME: start the guest GUESTNAME.
|
||||
- stop GUESTNAME: stop the guest GUESTNAME (this is using `xl stop` which is
|
||||
sending a stop signal to the running guest).
|
||||
- kill GUESTNAME: force stopping the guest GUESTNAME.
|
||||
- list: list the available guests.
|
||||
- status [GUESTNAME]: print the current status of GUESTNAME. If GUESTNAME is
|
||||
not given, print the status of all guests.
|
||||
|
||||
For a detailed help on available options please use:
|
||||
`xenguest-manager --help`
|
||||
|
||||
Bitbake parameters
|
||||
------------------
|
||||
|
||||
Several parameters are available to configure the xenguest manager during Yocto
|
||||
project compilation (those can be set in your project local.conf, for example).
|
||||
|
||||
The following parameters are available:
|
||||
|
||||
- XENGUEST_MANAGER_VOLUME_DEVICE: This is the device path used by the
|
||||
xenguest-manager on the device to create LVM disks when guests have a disk
|
||||
configuration.
|
||||
This is set by default to "/dev/sda2".
|
||||
|
||||
- XENGUEST_MANAGER_VOLUME_NAME: This is the LVM volume name that the
|
||||
xenguest-manager will create and use to create guest LVM disks.
|
||||
This is set by default to "vg-xen".
|
||||
|
||||
- XENGUEST_MANAGER_GUEST_DIR: This is the directory on Dom0 where the
|
||||
xenguest-manager will look for xenguest images to create during init. That's
|
||||
the place where xenguest images can be added to have them automatically
|
||||
created during next Dom0 boot. The xenguests found there will only be created
|
||||
if they were not already before (the basename of the files is used as guest
|
||||
name).
|
||||
This is set by default to "/usr/share/guests".
|
||||
|
||||
@@ -1,121 +0,0 @@
|
||||
Xenguest mkimage
|
||||
================
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
xenguest-mkimage is a tool to create and modify images to be used as Guest with
|
||||
Xen. It defines a format to store completely defined guests as a file or as
|
||||
a directory and provides options to create and modify those images.
|
||||
|
||||
A xenguest image contains all elements required to create a xen guest.
|
||||
This is the base elements like a Xen configuration and a Linux kernel binary
|
||||
but also some more advanced elements like init scripts or a disk definition.
|
||||
|
||||
The format is made to be deployable easily by storing everything in a single
|
||||
file and provide tools to easily manipulate the images. It can also easily be
|
||||
extended to have features like encryption or signature of images, updates or
|
||||
complex configurations by providing features to have init script that will be
|
||||
executed on the host embedded inside the image.
|
||||
|
||||
Xenguest images content
|
||||
-----------------------
|
||||
|
||||
### params.cfg
|
||||
|
||||
This file contains parameters that can be used by tools to configure some
|
||||
functionalities on the host. This can be used by init scripts to have
|
||||
configurable parameters as it is sourced before calling init scripts.
|
||||
|
||||
### guest.cfg and guest.d
|
||||
|
||||
guest.cfg is the main xen configuration and guest.d contains optional
|
||||
configuration parts. All those will be merged into one final xen configuration
|
||||
before starting the guest.
|
||||
|
||||
### files
|
||||
This directory contains files that can be used by the xen configuration, for
|
||||
example the binary of the kernel referenced in xen configuration).
|
||||
This is where the kernel binary, the dtb or a ramdisk will be stored.
|
||||
|
||||
### init.pre, init.d and init.post
|
||||
These directories contain init scripts that will be executed on the host
|
||||
during the guest startup. Those must be shell scripts and each directory
|
||||
contains scripts called at a different time:
|
||||
- init.pre: scripts executed before the guest is created. This can be used
|
||||
to prepare some features required to create the guest in xen or to
|
||||
generate part of the xen configuration dynamically.
|
||||
- init.d: scripts executed when the guest has been created but before it is
|
||||
started. This can be used to do some xenstore operations or configure the
|
||||
guest behaviour using xl, for example.
|
||||
- init.post: scripts executed just after starting the guest. This can be
|
||||
used to configure things created by xen for the guest like network
|
||||
network interfaces.
|
||||
|
||||
When a directory contains several scripts, those will be called in alphabetical
|
||||
order.
|
||||
|
||||
### disk.cfg and disk-files
|
||||
disk.cfg contains the guest disk description (disk size and disk partitions).
|
||||
The file contains the following entries:
|
||||
- `DISK_SIZE=X`: size of the disk to create in GB
|
||||
- `DISK_PARTX=SIZE:FS:CONTENT`: create a partition number X (1 to 4) with a
|
||||
size of SIZE GB, format it with filesystem FS (can be ext2, ext3, ext4, vfat
|
||||
or swap) and extract CONTENT as initial partition content
|
||||
(.tar[.gz|.xz|.bz2] file or img[.gz|.bz2] file to be dumped in the partition). FS and
|
||||
CONTENT can be empty.
|
||||
|
||||
The disk-files contain files to be used for initializing the disk partitions
|
||||
content. Those should be used to create a LVM or a physical disk and initialize
|
||||
it (create partitions, format them and put the initial content).
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
||||
xenguest-mkimage is a shell script which must be called like this:
|
||||
`xenguest-mkimage OPERATION XENGUEST [OPTIONS]`
|
||||
|
||||
### Operations
|
||||
- create: create a xenguest image. If XENGUEST is an existing empty directory,
|
||||
the image is created as a directory otherwise it will be created as a file.
|
||||
- check: verify that XENGUEST is a valid xenguest image.
|
||||
- update: modify a xenguest image (see --help for a list of operations).
|
||||
- pack: pack a xenguest image directory into a xenguest image file. The file to
|
||||
be created must be given as 3rd argument.
|
||||
- extract: extract a xenguest image file into a directory. The destination
|
||||
directory must be given as 3rd argument.
|
||||
- dump-xenconfig: dump xenguest image xen configuration.
|
||||
- dump-diskconfig: dump xenguest image disk configuration.
|
||||
- dump-paramsconfig: dump xenguest image parameters configuration.
|
||||
|
||||
For a detailed help on available operations, please use:
|
||||
`xenguest-mkimage --help`
|
||||
|
||||
### Options
|
||||
- --kernel=FILE: add kernel FILE as guest kernel. This is both adding the file
|
||||
to the image and modifying the xen configuration to use it.
|
||||
- --xen-memory=SIZE: set the guest memory size in MB.
|
||||
- --xen-extra: add a kernel command line argument. This can be called several
|
||||
times to add several command line options.
|
||||
- --xen-device-tree=FILE: add dtb FILE as device tree. This both adding the
|
||||
file to the image and modifying the xen configuration to use it.
|
||||
- --xen-ramdisk=FILE: add ramdisk FILE as guest ramdisk. This both adding the
|
||||
file to the image and modifying the xen configuration to use it.
|
||||
- --init-script=FILE: add guest init script. The script is embedded inside the
|
||||
image file. Several script can be added and the basename of FILE is used to
|
||||
distinguish them (calling the option twice with the same file will update the
|
||||
script in the image with the second one).
|
||||
--disk-size=SIZE: set the guest disk size to SIZE in GB. Calling this with 0
|
||||
disable the guest disk.
|
||||
- --disk-add-part=NUM:SIZE:FS:CONTENT: This is adding a partition to the
|
||||
xenguest image disk. The partition is described with the arguments:
|
||||
- NUM: partition number.
|
||||
- SIZE: partition size in GB.
|
||||
- FS: filesystem to format the partition with. This can be ext2, ext3, ext4,
|
||||
vfat of swap. If empty the partition is not formated.
|
||||
- CONTENT: tar of img file to use to initialize the partition. The file must
|
||||
be added to the image using --disk-add-file=FILE:CONTENT.
|
||||
|
||||
For a detailed help on available options, please use:
|
||||
`xenguest-mkimage OPERATION --help`
|
||||
|
||||
@@ -1,76 +0,0 @@
|
||||
Xenguest Network
|
||||
================
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
The xenguest-network package is primarly creating a network bridge to share
|
||||
the host eth physical interfaces with the guests virtual interfaces (vif).
|
||||
This way the guests can have access to the external network.
|
||||
|
||||
At the moment 3 types of network arrangements are provided:
|
||||
|
||||
- Bridge: where the guest vif is added to the created bridge interface;
|
||||
|
||||
- NAT: where a private subnet is created for the guest, a dhcpd is started on
|
||||
the host to serve the guest and the proper iptables rules are created to
|
||||
allow the guest to access the external network;
|
||||
|
||||
- None: the guest vif is not connected to the bridge.
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
||||
On the host project the package xenguest-network must be included in your
|
||||
image, and on the guest project the XENGUEST_NETWORK_TYPE needs to be set to
|
||||
"bridge", "nat" or "none".
|
||||
|
||||
Bitbake parameters
|
||||
------------------
|
||||
|
||||
Several parameters are available to configure the xenguest network bridge
|
||||
during Yocto project compilation (those can be set in your project local.conf
|
||||
or xenguest-network.bbappend, for example).
|
||||
|
||||
The following parameters are available:
|
||||
|
||||
- XENGUEST_NETWORK_BRIDGE_NAME: This variable defines the name of the network
|
||||
bridge that is created on the host during init.
|
||||
This is set by default to "xenbr0".
|
||||
|
||||
- XENGUEST_NETWORK_BRIDGE_MEMBERS: This variable defines the list of the
|
||||
physical network interfaces that are added to the bridge when it is created
|
||||
on the host during init.
|
||||
By default no physical interfaces are added.
|
||||
|
||||
- XENGUEST_NETWORK_BRIDGE_CONFIG: This variable defines the configuration file
|
||||
to use to configure the bridge network. By default it points to have file
|
||||
configuring the network using dhcp.
|
||||
You can provide a different file using a bbappend and make this variable
|
||||
point to it if you want to customize your network configuration.
|
||||
|
||||
- XENGUEST_IMAGE_NETWORK_TYPE: This variable can be set to "bridge" (default),
|
||||
"nat" or "none".
|
||||
The **bridge** type will add the domU vif interface to a bridge which also
|
||||
contains the dom0 physical interface giving the guest direct access to the
|
||||
external network.
|
||||
The **nat** type will setup a private network between dom0 and domU, setup
|
||||
the appropriate routing table, configure and run the dhcpd on dom0 to serve
|
||||
the domU and apply the iptables rules to allow the guest to acess the
|
||||
external network. The dhcpd configuration for the guest can be customised by
|
||||
replacing the
|
||||
"meta-arm-autonomy/recipes-extended/xenguest/files/dhcpd-params.cfg" file
|
||||
in a xenguest-network.bbappend. The dhcpd-params.cfg file is installed in
|
||||
the xenguest image and copied to
|
||||
"/etc/xenguest/guests/${guestname}/files/dhcpd-params.cfg" when the guest
|
||||
image is created. It will be consumed by the
|
||||
"/etc/xen/scripts/vif-post.d/00-vif-xenguest.hook" script which is called by
|
||||
"/etc/xen/scripts/vif-nat" script when starting/stopping the xenguest.
|
||||
In the guest project, the NAT port forward can be customised by changing
|
||||
the XENGUEST_IMAGE_HOST_PORT (default: "1000 + ${domid}") and
|
||||
XENGUEST_IMAGE_GUEST_PORT (default: "22") variables in local.conf or
|
||||
xenguest-base-image.bbappend. This configuration is implemented and installed
|
||||
in "/etc/xenguest/guests/${guestname}/files/00-xenguest-nat-port-forward.hook"
|
||||
script which is called by "/etc/xen/scripts/vif-post.d/00-vif-xenguest.hook".
|
||||
The **none** type will not affect any networking setting between on dom0 and
|
||||
domU.
|
||||
-7
@@ -1,7 +0,0 @@
|
||||
# Require extra machine specific settings
|
||||
ARM_BSP_DYN_MACHINE_EXTRA_REQUIRE ?= ""
|
||||
ARM_BSP_DYN_MACHINE_EXTRA_REQUIRE_n1sdp = "n1sdp-extra-settings.inc"
|
||||
ARM_BSP_DYN_MACHINE_EXTRA_REQUIRE_fvp-base = "fvp-base-extra-settings.inc"
|
||||
ARM_BSP_DYN_MACHINE_EXTRA_REQUIRE_juno = "juno-extra-settings.inc"
|
||||
|
||||
require ${ARM_BSP_DYN_MACHINE_EXTRA_REQUIRE}
|
||||
@@ -1,7 +0,0 @@
|
||||
# Extra machine settings for fvp-base
|
||||
|
||||
# FVP uses vda as hard drive and partition 2 is the
|
||||
# default rootfs, so use vda3 for guest lvm
|
||||
XENGUEST_MANAGER_VOLUME_DEVICE ?= "/dev/vda3"
|
||||
|
||||
XENGUEST_NETWORK_BRIDGE_MEMBERS ?= "eth0"
|
||||
@@ -1,4 +0,0 @@
|
||||
# Extra machine settings for juno
|
||||
|
||||
# Juno board has 2 network interfaces, add both of them to the bridge
|
||||
XENGUEST_NETWORK_BRIDGE_MEMBERS ?= "eth0 eth1"
|
||||
@@ -1,40 +0,0 @@
|
||||
# Extra machine settings for n1sdp
|
||||
|
||||
# We need to extent the wks search path to be able to find the wks file set in
|
||||
# ARM_AUTONOMY_WKS_FILE.
|
||||
WKS_SEARCH_PATH_prepend := "${ARM_AUTONOMY_ARM_BSP_DYNAMIC_DIR}/wic:"
|
||||
|
||||
ARM_AUTONOMY_WKS_FILE ?= "arm-autonomy-n1sdp-efidisk.wks.in"
|
||||
WKS_FILE = "${ARM_AUTONOMY_WKS_FILE}"
|
||||
|
||||
# Set the wks guest partition size and unit. It must be aligned with the sum of
|
||||
# all XENGUEST_IMAGE_DISK_SIZE set for the guests. By default, LVM2 metadata is
|
||||
# 1 MiB per physical volume, hence it needs to be taken into account when
|
||||
# setting GUEST_PART_SIZE. The XENGUEST_IMAGE_DISK_SIZE default value is 4GiB.
|
||||
GUEST_PART_SIZE ?= "4097"
|
||||
GUEST_PART_SIZE_UNIT ?= "M"
|
||||
|
||||
# The GRUB_CFG_FILE affects arm-autonomy-n1sdp-efidisk.wks.in file
|
||||
GRUB_CFG_FILE ?= "${ARM_AUTONOMY_ARM_BSP_DYNAMIC_DIR}/wic/arm-autonomy-n1sdp-grub.cfg"
|
||||
|
||||
# From arm-autonomy-n1sdp-efidisk.wks.in, the /boot partition is /dev/sda1, and
|
||||
# the "/" partition is /dev/sda2.
|
||||
XENGUEST_MANAGER_VOLUME_DEVICE ?= "/dev/sda3"
|
||||
|
||||
XENGUEST_NETWORK_BRIDGE_MEMBERS ?= "eth0"
|
||||
|
||||
# The XEN_DEVICETREE_DEPEND and XEN_DEVICETREE_DTBS variables aftect the
|
||||
# xen-devicetree.bb recipe
|
||||
XEN_DEVICETREE_DEPEND = "virtual/trusted-firmware-a:do_deploy"
|
||||
XEN_DEVICETREE_DTBS ?= "n1sdp-single-chip.dtb"
|
||||
# XEN_MOD_DEVICETREE_DTBS are the generated devicetrees for Xen. By default the
|
||||
# xen-devicetree.bb recipe adds '-xen' suffix to it
|
||||
XEN_MOD_DEVICETREE_DTBS ?= "n1sdp-single-chip-xen.dtb"
|
||||
|
||||
# When generating the wic image we need to have the xen deployed
|
||||
do_image_wic[depends] += "xen:do_deploy"
|
||||
|
||||
# Select the extra files to be included in the boot partition
|
||||
IMAGE_EFI_BOOT_FILES += "xen-n1sdp.efi;xen.efi"
|
||||
IMAGE_EFI_BOOT_FILES += "${XEN_MOD_DEVICETREE_DTBS}"
|
||||
|
||||
-21
@@ -1,21 +0,0 @@
|
||||
# Use OVERRIDES to minimize the usage of
|
||||
# ${@bb.utils.contains('DISTRO_FEATURES', 'xen', ...
|
||||
OVERRIDES_append = "${@bb.utils.contains('DISTRO_FEATURES', 'xen', ':xen', '', d)}"
|
||||
|
||||
FILESEXTRAPATHS_prepend_xen := "${THISDIR}/${PN}:"
|
||||
|
||||
DEPLOY_EXTRA_DEPS ??= ""
|
||||
DEPLOY_EXTRA_DEPS_xen = "xen:do_deploy xen-devicetree:do_deploy"
|
||||
|
||||
do_deploy[depends] += "${DEPLOY_EXTRA_DEPS}"
|
||||
|
||||
do_deploy_prepend_xen() {
|
||||
# To avoid dependency loop between firmware-image-juno:do_install,
|
||||
# xen:do_deploy and xen-devicetree:do_deploy when
|
||||
# INITRAMFS_IMAGE_BUNDLE = "1", we need to handle the xen and
|
||||
# xen-devicetree binaries copying in the do_deploy task.
|
||||
cp ${DEPLOY_DIR_IMAGE}/xen-${COMPATIBLE_MACHINE}.efi \
|
||||
${D}/${UNPACK_DIR}/SOFTWARE/xen
|
||||
cp ${DEPLOY_DIR_IMAGE}/*xen.dtb \
|
||||
${D}/${UNPACK_DIR}/SOFTWARE/
|
||||
}
|
||||
-78
@@ -1,78 +0,0 @@
|
||||
TITLE: Versatile Express Images Configuration File
|
||||
|
||||
[IMAGES]
|
||||
TOTALIMAGES: 11 ;Number of Images (Max: 32)
|
||||
|
||||
NOR0UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR0ADDRESS: 0x00000000 ;Image Flash Address
|
||||
NOR0FILE: \SOFTWARE\fip.bin ;Image File Name
|
||||
NOR0LOAD: 00000000 ;Image Load Address
|
||||
NOR0ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR1UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR1ADDRESS: 0x03EC0000 ;Image Flash Address
|
||||
NOR1FILE: \SOFTWARE\bl1.bin ;Image File Name
|
||||
NOR1LOAD: 00000000 ;Image Load Address
|
||||
NOR1ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR2UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR2ADDRESS: 0x00500000 ;Image Flash Address
|
||||
NOR2FILE: \SOFTWARE\Image ;Image File Name
|
||||
NOR2NAME: norkern ;Rename kernel to norkern
|
||||
NOR2LOAD: 00000000 ;Image Load Address
|
||||
NOR2ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR3UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR3ADDRESS: 0x02700000 ;Image Flash Address
|
||||
NOR3FILE: \SOFTWARE\juno-xen.dtb ;Image File Name
|
||||
NOR3NAME: board.dtb ;Specify target filename to preserve file extension
|
||||
NOR3LOAD: 00000000 ;Image Load Address
|
||||
NOR3ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR4UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR4ADDRESS: 0x01D00000 ;Image Flash Address
|
||||
NOR4FILE: \SOFTWARE\xen ;Image File Name
|
||||
NOR4NAME: xen
|
||||
NOR4LOAD: 00000000 ;Image Load Address
|
||||
NOR4ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR5UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR5ADDRESS: 0x025C0000 ;Image Flash Address
|
||||
NOR5FILE: \SOFTWARE\hdlcdclk.dat ;Image File Name
|
||||
NOR5LOAD: 00000000 ;Image Load Address
|
||||
NOR5ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR6UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR6ADDRESS: 0x03E40000 ;Image Flash Address
|
||||
NOR6FILE: \SOFTWARE\scp_bl1.bin ;Image File Name
|
||||
NOR6LOAD: 00000000 ;Image Load Address
|
||||
NOR6ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR7UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR7ADDRESS: 0x0BF00000 ;Image Flash Address
|
||||
NOR7FILE: \SOFTWARE\startup.nsh ;Image File Name
|
||||
NOR7NAME: startup.nsh
|
||||
NOR7LOAD: 00000000 ;Image Load Address
|
||||
NOR7ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR8UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR8ADDRESS: 0x0BFC0000 ;Image Flash Address
|
||||
NOR8FILE: \SOFTWARE\blank.img ;Image File Name
|
||||
NOR8NAME: BOOTENV
|
||||
NOR8LOAD: 00000000 ;Image Load Address
|
||||
NOR8ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR9UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR9ADDRESS: 0x02600000 ;Image Flash Address
|
||||
NOR9FILE: \SOFTWARE\selftest ;Image File Name
|
||||
NOR9LOAD: 00000000 ;Image Load Address
|
||||
NOR9ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR10UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR10ADDRESS: 0x02780000 ;Image Flash Address
|
||||
NOR10NAME: uEnv.txt
|
||||
NOR10FILE: \SOFTWARE\uEnv.txt ;Image File Name
|
||||
NOR10LOAD: 00000000 ;Image Load Address
|
||||
NOR10ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
|
||||
-78
@@ -1,78 +0,0 @@
|
||||
TITLE: Versatile Express Images Configuration File
|
||||
|
||||
[IMAGES]
|
||||
TOTALIMAGES: 11 ;Number of Images (Max: 32)
|
||||
|
||||
NOR0UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR0ADDRESS: 0x00000000 ;Image Flash Address
|
||||
NOR0FILE: \SOFTWARE\fip.bin ;Image File Name
|
||||
NOR0LOAD: 00000000 ;Image Load Address
|
||||
NOR0ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR1UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR1ADDRESS: 0x03EC0000 ;Image Flash Address
|
||||
NOR1FILE: \SOFTWARE\bl1.bin ;Image File Name
|
||||
NOR1LOAD: 00000000 ;Image Load Address
|
||||
NOR1ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR2UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR2ADDRESS: 0x00500000 ;Image Flash Address
|
||||
NOR2FILE: \SOFTWARE\Image ;Image File Name
|
||||
NOR2NAME: norkern ;Rename kernel to norkern
|
||||
NOR2LOAD: 00000000 ;Image Load Address
|
||||
NOR2ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR3UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR3ADDRESS: 0x02700000 ;Image Flash Address
|
||||
NOR3FILE: \SOFTWARE\juno-r1-xen.dtb ;Image File Name
|
||||
NOR3NAME: board.dtb ;Specify target filename to preserve file extension
|
||||
NOR3LOAD: 00000000 ;Image Load Address
|
||||
NOR3ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR4UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR4ADDRESS: 0x01D00000 ;Image Flash Address
|
||||
NOR4FILE: \SOFTWARE\xen ;Image File Name
|
||||
NOR4NAME: xen
|
||||
NOR4LOAD: 00000000 ;Image Load Address
|
||||
NOR4ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR5UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR5ADDRESS: 0x025C0000 ;Image Flash Address
|
||||
NOR5FILE: \SOFTWARE\hdlcdclk.dat ;Image File Name
|
||||
NOR5LOAD: 00000000 ;Image Load Address
|
||||
NOR5ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR6UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR6ADDRESS: 0x03E40000 ;Image Flash Address
|
||||
NOR6FILE: \SOFTWARE\scp_bl1.bin ;Image File Name
|
||||
NOR6LOAD: 00000000 ;Image Load Address
|
||||
NOR6ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR7UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR7ADDRESS: 0x0BF00000 ;Image Flash Address
|
||||
NOR7FILE: \SOFTWARE\startup.nsh ;Image File Name
|
||||
NOR7NAME: startup.nsh
|
||||
NOR7LOAD: 00000000 ;Image Load Address
|
||||
NOR7ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR8UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR8ADDRESS: 0x0BFC0000 ;Image Flash Address
|
||||
NOR8FILE: \SOFTWARE\blank.img ;Image File Name
|
||||
NOR8NAME: BOOTENV
|
||||
NOR8LOAD: 00000000 ;Image Load Address
|
||||
NOR8ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR9UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR9ADDRESS: 0x02600000 ;Image Flash Address
|
||||
NOR9FILE: \SOFTWARE\selftest ;Image File Name
|
||||
NOR9LOAD: 00000000 ;Image Load Address
|
||||
NOR9ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR10UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR10ADDRESS: 0x02780000 ;Image Flash Address
|
||||
NOR10NAME: uEnv.txt
|
||||
NOR10FILE: \SOFTWARE\uEnv.txt ;Image File Name
|
||||
NOR10LOAD: 00000000 ;Image Load Address
|
||||
NOR10ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
|
||||
-78
@@ -1,78 +0,0 @@
|
||||
TITLE: Versatile Express Images Configuration File
|
||||
|
||||
[IMAGES]
|
||||
TOTALIMAGES: 11 ;Number of Images (Max: 32)
|
||||
|
||||
NOR0UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR0ADDRESS: 0x00000000 ;Image Flash Address
|
||||
NOR0FILE: \SOFTWARE\fip.bin ;Image File Name
|
||||
NOR0LOAD: 00000000 ;Image Load Address
|
||||
NOR0ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR1UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR1ADDRESS: 0x03EC0000 ;Image Flash Address
|
||||
NOR1FILE: \SOFTWARE\bl1.bin ;Image File Name
|
||||
NOR1LOAD: 00000000 ;Image Load Address
|
||||
NOR1ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR2UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR2ADDRESS: 0x00500000 ;Image Flash Address
|
||||
NOR2FILE: \SOFTWARE\Image ;Image File Name
|
||||
NOR2NAME: norkern ;Rename kernel to norkern
|
||||
NOR2LOAD: 00000000 ;Image Load Address
|
||||
NOR2ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR3UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR3ADDRESS: 0x02700000 ;Image Flash Address
|
||||
NOR3FILE: \SOFTWARE\juno-r2-xen.dtb ;Image File Name
|
||||
NOR3NAME: board.dtb ;Specify target filename to preserve file extension
|
||||
NOR3LOAD: 00000000 ;Image Load Address
|
||||
NOR3ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR4UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR4ADDRESS: 0x01D00000 ;Image Flash Address
|
||||
NOR4FILE: \SOFTWARE\xen ;Image File Name
|
||||
NOR4NAME: xen
|
||||
NOR4LOAD: 00000000 ;Image Load Address
|
||||
NOR4ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR5UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR5ADDRESS: 0x025C0000 ;Image Flash Address
|
||||
NOR5FILE: \SOFTWARE\hdlcdclk.dat ;Image File Name
|
||||
NOR5LOAD: 00000000 ;Image Load Address
|
||||
NOR5ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR6UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR6ADDRESS: 0x03E40000 ;Image Flash Address
|
||||
NOR6FILE: \SOFTWARE\scp_bl1.bin ;Image File Name
|
||||
NOR6LOAD: 00000000 ;Image Load Address
|
||||
NOR6ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR7UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR7ADDRESS: 0x0BF00000 ;Image Flash Address
|
||||
NOR7FILE: \SOFTWARE\startup.nsh ;Image File Name
|
||||
NOR7NAME: startup.nsh
|
||||
NOR7LOAD: 00000000 ;Image Load Address
|
||||
NOR7ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR8UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR8ADDRESS: 0x0BFC0000 ;Image Flash Address
|
||||
NOR8FILE: \SOFTWARE\blank.img ;Image File Name
|
||||
NOR8NAME: BOOTENV
|
||||
NOR8LOAD: 00000000 ;Image Load Address
|
||||
NOR8ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR9UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR9ADDRESS: 0x02600000 ;Image Flash Address
|
||||
NOR9FILE: \SOFTWARE\selftest ;Image File Name
|
||||
NOR9LOAD: 00000000 ;Image Load Address
|
||||
NOR9ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR10UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR10ADDRESS: 0x02780000 ;Image Flash Address
|
||||
NOR10NAME: uEnv.txt
|
||||
NOR10FILE: \SOFTWARE\uEnv.txt ;Image File Name
|
||||
NOR10LOAD: 00000000 ;Image Load Address
|
||||
NOR10ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
|
||||
-15
@@ -1,15 +0,0 @@
|
||||
xen_name=xen
|
||||
xen_addr=0x84000000
|
||||
uenvcmd=run mybootcmd
|
||||
mybootcmd=echo Loading custom boot command; \
|
||||
echo Loading kernel; \
|
||||
afs load ${kernel_name} ${kernel_addr} ; \
|
||||
if test $? -eq 1; then echo Loading ${kernel_alt_name} instead of ${kernel_name}; afs load ${kernel_alt_name} ${kernel_addr}; fi; \
|
||||
echo Loading device tree; \
|
||||
afs load ${fdtfile} ${fdt_addr}; \
|
||||
if test $? -eq 1; then echo Loading ${fdt_alt_name} instead of ${fdtfile}; \
|
||||
afs load ${fdt_alt_name} ${fdt_addr}; fi; fdt addr ${fdt_addr}; fdt resize; \
|
||||
echo Loading Xen; \
|
||||
afs load ${xen_name} ${xen_addr}; \
|
||||
if test $? -eq 0; then echo Booting Xen; bootefi ${xen_addr} ${fdt_addr}; fi;
|
||||
|
||||
-11
@@ -1,11 +0,0 @@
|
||||
/*
|
||||
* Disable IOMMU on juno board when Xen is used
|
||||
*/
|
||||
|
||||
/ {
|
||||
|
||||
/* turn off iommu */
|
||||
iommu@2b600000 {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
-41
@@ -1,41 +0,0 @@
|
||||
/*
|
||||
* Modify N1SDP DTB to work properly when Xen is used
|
||||
*/
|
||||
|
||||
/ {
|
||||
|
||||
/*
|
||||
* pmu is using PPI interrupts which are reserved by xen
|
||||
* remove pm nodes
|
||||
*/
|
||||
/delete-node/ pmu;
|
||||
/delete-node/ spe-pmu;
|
||||
|
||||
soc {
|
||||
/*
|
||||
* disable IOMMU until we have a proper support in xen
|
||||
*/
|
||||
/delete-node/ iommu@4f000000;
|
||||
/delete-node/ iommu@4f400000;
|
||||
|
||||
/*
|
||||
* Set extra registers required for PCI quirks to communicate with SCP
|
||||
* and remove invalid properties due to removal
|
||||
*/
|
||||
pcie@68000000 {
|
||||
reg = <0 0x68000000 0 0x1200000>,
|
||||
<0 0x06000000 0 0x80000>,
|
||||
<0 0x62000000 0 0x80000>;
|
||||
/delete-property/ msi-map;
|
||||
/delete-property/ iommu-map;
|
||||
};
|
||||
|
||||
pcie@70000000 {
|
||||
reg = <0 0x70000000 0 0x1200000>,
|
||||
<0 0x06000000 0 0x80000>,
|
||||
<0 0x60000000 0 0x80000>;
|
||||
/delete-property/ msi-map;
|
||||
/delete-property/ iommu-map;
|
||||
};
|
||||
};
|
||||
};
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
# Platform dependent parameters
|
||||
|
||||
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
|
||||
|
||||
# Add a dtb snippet to turn off iommu in dom0 on Juno board
|
||||
SRC_URI_append_juno = " file://xen-juno.dtsi"
|
||||
XEN_DEVICETREE_DTSI_MERGE_append_juno = " xen-juno.dtsi"
|
||||
|
||||
# Add a dtb snippet to remove pmu and iommu in dom0 on N1SDP
|
||||
SRC_URI_append_n1sdp = " file://xen-n1sdp.dtsi"
|
||||
XEN_DEVICETREE_DTSI_MERGE_append_n1sdp = " xen-n1sdp.dtsi"
|
||||
# For N1SDP, the XEN_DEVICETREE_DEPEND and XEN_DEVICETREE_DTBS variables are
|
||||
# being set in meta-arm-autonomy/dynamic-layers/meta-arm-bsp/conf/machine/n1sdp-extra-settings.inc
|
||||
|
||||
# Board specific configs
|
||||
XEN_DEVICETREE_DOM0_BOOTARGS_append_juno = " root=/dev/sda1 rootwait"
|
||||
XEN_DEVICETREE_XEN_BOOTARGS_append_juno = " console=dtuart dtuart=serial0 bootscrub=0 iommu=no"
|
||||
|
||||
XEN_DEVICETREE_DOM0_BOOTARGS_append_n1sdp = " root=/dev/sda2 rootwait"
|
||||
XEN_DEVICETREE_XEN_BOOTARGS_append_n1sdp = " console=dtuart dtuart=serial0 bootscrub=0 iommu=no"
|
||||
|
||||
XEN_DEVICETREE_DOM0_BOOTARGS_append_fvp-base = " root=/dev/vda2"
|
||||
XEN_DEVICETREE_XEN_BOOTARGS_append_fvp-base = " console=dtuart dtuart=serial0 bootscrub=0"
|
||||
-2
@@ -1,2 +0,0 @@
|
||||
CONFIG_DEBUG=y
|
||||
CONFIG_EARLY_PRINTK_FASTMODEL=y
|
||||
-2
@@ -1,2 +0,0 @@
|
||||
CONFIG_DEBUG=y
|
||||
CONFIG_EARLY_PRINTK_JUNO=y
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
CONFIG_DEBUG=y
|
||||
CONFIG_EARLY_UART_CHOICE_PL011=y
|
||||
CONFIG_EARLY_UART_BASE_ADDRESS=0x2a400000
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
CONFIG_EXPERT=y
|
||||
# Enable ACPI support
|
||||
CONFIG_ACPI=y
|
||||
# Enable ARM Interrupt Translation Service (ITS) emulation
|
||||
CONFIG_HAS_ITS=y
|
||||
@@ -1,15 +0,0 @@
|
||||
# FVP Base support
|
||||
COMPATIBLE_MACHINE_fvp-base = "fvp-base"
|
||||
FILESEXTRAPATHS_prepend_fvp-base := "${THISDIR}/files:"
|
||||
SRC_URI_append_fvp-base = " file://early-printk.cfg"
|
||||
|
||||
# Juno support
|
||||
COMPATIBLE_MACHINE_juno = "juno"
|
||||
FILESEXTRAPATHS_prepend_juno := "${THISDIR}/files:"
|
||||
SRC_URI_append_juno = " file://early-printk.cfg"
|
||||
|
||||
# N1SDP support
|
||||
COMPATIBLE_MACHINE_n1sdp = "n1sdp"
|
||||
FILESEXTRAPATHS_prepend_n1sdp := "${THISDIR}/files:"
|
||||
SRC_URI_append_n1sdp = " file://n1sdp.cfg \
|
||||
file://early-printk.cfg"
|
||||
-4
@@ -1,4 +0,0 @@
|
||||
# We need to turn off SVE support in the Linux kernel otherwise Xen is stopping
|
||||
# Linux kernel with a coredump while trying to access ZEN bit of CPACR1 core
|
||||
# register.
|
||||
# CONFIG_ARM64_SVE is not set
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
define KFEATURE_DESCRIPTION "Disable SVE support"
|
||||
|
||||
kconf non-hardware disable-arm64-sve.cfg
|
||||
@@ -1,15 +0,0 @@
|
||||
FILESEXTRAPATHS_prepend := "${THISDIR}:"
|
||||
|
||||
#
|
||||
# arm-autonomy kmeta extra
|
||||
#
|
||||
SRC_URI_append = " file://arm-autonomy-kmeta-extra;type=kmeta;name=arm-autonomy-kmeta-extra;destsuffix=arm-autonomy-kmeta-extra"
|
||||
|
||||
# We need to turn off SVE support in the Linux kernel otherwise Xen is stopping
|
||||
# Linux kernel with a coredump while trying to access XEN bit of CPACR1 core
|
||||
# register.
|
||||
LINUX_ARM_AUTONOMY_DISABLE_ARM64_SVE = "${@bb.utils.contains_any('DISTRO_FEATURES', \
|
||||
'arm-autonomy-host arm-autonomy-guest', \
|
||||
' features/arm-autonomy/disable-arm64-sve.scc','',d)}"
|
||||
|
||||
KERNEL_FEATURES_append_fvp-base = "${LINUX_ARM_AUTONOMY_DISABLE_ARM64_SVE}"
|
||||
@@ -1,14 +0,0 @@
|
||||
# short-description: Create an EFI disk image
|
||||
# long-description: Creates a partitioned EFI disk image that the user
|
||||
# can directly dd to boot media. Uses a custom grub.cfg file to configure the boot.
|
||||
|
||||
# First boot partition normally populated as /dev/sda1
|
||||
part /boot --source bootimg-efi --sourceparams="loader=grub-efi" --ondisk sda --label msdos --active --align 1024
|
||||
|
||||
# Second rootfs partition normally populated as /dev/sda2
|
||||
part / --source rootfs --ondisk sda --fstype=ext4 --label root --align 1024
|
||||
|
||||
# Third partition to accomodate guests images normally populated as /dev/sda3 (used by XENGUEST_MANAGER_VOLUME_DEVICE)
|
||||
part --label guests --source empty --ondisk sda --size="${GUEST_PART_SIZE}${GUEST_PART_SIZE_UNIT}" --system-id 8e --align 1024
|
||||
|
||||
bootloader --ptable msdos --configfile="${GRUB_CFG_FILE}"
|
||||
@@ -1,28 +0,0 @@
|
||||
set term="vt100"
|
||||
set default="3"
|
||||
set timeout="5"
|
||||
|
||||
set kernel_cmdline="earlycon=pl011,0x2A400000 console=ttyAMA0,115200 root=/dev/sda2 rootwait"
|
||||
|
||||
menuentry 'N1SDP ACPI Boot' {
|
||||
linux /Image $kernel_cmdline acpi=force
|
||||
}
|
||||
|
||||
menuentry 'N1SDP Single-Chip Boot (Device Tree)' {
|
||||
devicetree /n1sdp-single-chip.dtb
|
||||
linux /Image $kernel_cmdline
|
||||
}
|
||||
|
||||
menuentry 'N1SDP Multi-Chip Boot (Device Tree)' {
|
||||
devicetree /n1sdp-multi-chip.dtb
|
||||
linux /Image $kernel_cmdline
|
||||
}
|
||||
|
||||
menuentry 'N1SDP Arm Autonomy (Xen) Single-Chip Boot (Device Tree)' {
|
||||
# no_argumants under here is a workaround for a bug
|
||||
# also any kernel or dom0 cmdline arguments has to be passed via dtb
|
||||
# because any arguments put here will be ignored by xen
|
||||
xen_hypervisor /xen.efi no_arguments=use_dtb_for_xen_or_kernel_cmdline
|
||||
xen_module /Image
|
||||
devicetree /n1sdp-single-chip-xen.dtb
|
||||
}
|
||||
-32
@@ -1,32 +0,0 @@
|
||||
# Use OVERRIDES to minimize the usage of
|
||||
# ${@bb.utils.contains('DISTRO_FEATURES', 'xen', ...
|
||||
OVERRIDES_append = "${@bb.utils.contains('DISTRO_FEATURES', 'xen', ':xen', '', d)}"
|
||||
|
||||
# Xen image to put in the image
|
||||
# This should point to a file in the deploy image directory
|
||||
BOOT_WRAPPER_AARCH64_XEN ??= "xen-${MACHINE}"
|
||||
|
||||
# Xen command line for the image
|
||||
BOOT_WRAPPER_AARCH64_XEN_CMDLINE ??= "noreboot dom0_mem=256M"
|
||||
|
||||
BOOT_WRAPPER_AARCH64_XEN_CMDLINE_gem5-arm64 = "noreboot dom0_mem=256M console=dtuart \
|
||||
dtuart=/uart@1c090000 bootscrub=0"
|
||||
|
||||
# Fix command line in the axf file for gem5-arm64 when Xen is present
|
||||
BOOT_WRAPPER_AARCH64_CMDLINE_xen_gem5-arm64 = "console=hvc0 root=/dev/vda rw"
|
||||
|
||||
# Image generated by boot wrapper when Xen is present
|
||||
BOOT_WRAPPER_AARCH64_IMAGE_xen ?= "xen-system.axf"
|
||||
|
||||
EXTRA_OECONF_append_xen = " \
|
||||
--with-xen=${WORKDIR}/kernel/arch/arm64/boot/Image \
|
||||
--with-xen-cmdline="" \
|
||||
"
|
||||
|
||||
EXTRA_OEMAKE_append_xen = " \
|
||||
XEN_IMAGE=${DEPLOY_DIR_IMAGE}/${BOOT_WRAPPER_AARCH64_XEN} \
|
||||
XEN_CMDLINE="${BOOT_WRAPPER_AARCH64_XEN_CMDLINE}" \
|
||||
"
|
||||
|
||||
# We need xen if it is activated
|
||||
do_deploy[depends] += "${@bb.utils.contains('DISTRO_FEATURES', 'xen', 'xen:do_deploy', '', d)}"
|
||||
-7
@@ -1,7 +0,0 @@
|
||||
# When booting gem5-arm64 with Xen we need to set the cpu as Cortex A53 and
|
||||
# remove support for pointer authentification
|
||||
GEM5_RUN_EXTRA_append = " \
|
||||
${@bb.utils.contains('DISTRO_FEATURES_NATIVE', 'arm-autonomy-host', \
|
||||
'--param=system.cpu_cluster[0].cpus[0].isa[0].midr=0x410fd030 \
|
||||
--param=system.cpu_cluster[0].cpus[0].isa[0].id_aa64isar1_el1=0x0', \
|
||||
'', d)}"
|
||||
-2
@@ -1,2 +0,0 @@
|
||||
CONFIG_DEBUG=y
|
||||
CONFIG_EARLY_PRINTK_VEXPRESS=y
|
||||
@@ -1,4 +0,0 @@
|
||||
# gem5-arm64 support
|
||||
COMPATIBLE_MACHINE_gem5-arm64 = "gem5-arm64"
|
||||
FILESEXTRAPATHS_prepend_gem5-arm64 := "${THISDIR}/files:"
|
||||
SRC_URI_append_gem5-arm64 = " file://early-printk.cfg"
|
||||
-1
@@ -1 +0,0 @@
|
||||
XENGUEST_NETWORK_BRIDGE_MEMBERS_gem5-arm64 ?= "eth0"
|
||||
-4
@@ -1,4 +0,0 @@
|
||||
# We need to turn off SVE support in the Linux kernel otherwise Xen is stopping
|
||||
# Linux kernel with a coredump while trying to access ZEN bit of CPACR1 core
|
||||
# register.
|
||||
# CONFIG_ARM64_SVE is not set
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
define KFEATURE_DESCRIPTION "Disable SVE support"
|
||||
|
||||
kconf non-hardware disable-arm64-sve.cfg
|
||||
@@ -1,15 +0,0 @@
|
||||
FILESEXTRAPATHS_prepend_gem5-arm64 := "${THISDIR}:"
|
||||
|
||||
#
|
||||
# arm-autonomy kmeta extra
|
||||
#
|
||||
SRC_URI_append_gem5-arm64 = " file://arm-autonomy-kmeta-extra-gem5;type=kmeta;name=arm-autonomy-kmeta-extra-gem5;destsuffix=arm-autonomy-kmeta-extra-gem5"
|
||||
|
||||
# We need to turn off SVE support in the Linux kernel otherwise Xen is stopping
|
||||
# Linux kernel with a coredump while trying to access XEN bit of CPACR1 core
|
||||
# register.
|
||||
LINUX_ARM_AUTONOMY_DISABLE_ARM64_SVE_gem5-arm64 = "${@bb.utils.contains_any('DISTRO_FEATURES', \
|
||||
'arm-autonomy-host arm-autonomy-guest', \
|
||||
' features/arm-autonomy/disable-arm64-sve.scc','',d)}"
|
||||
|
||||
KERNEL_FEATURES_append_gem5-arm64 = "${LINUX_ARM_AUTONOMY_DISABLE_ARM64_SVE}"
|
||||
@@ -1 +0,0 @@
|
||||
GRUB_BUILDIN += "${@bb.utils.contains('DISTRO_FEATURES', 'xen', 'xen_boot', '', d)}"
|
||||
@@ -1,4 +0,0 @@
|
||||
For now, arm-autonomy-host-image-minimal installs the dhcp-server package and
|
||||
the dchp-4.4.2 depends on bind 9.11 which recipe was copied from oe-core tree
|
||||
https://git.openembedded.org/openembedded-core/tree/meta/recipes-connectivity/bind?id=087e4fafeef82cfd3d71402d6b200fe831f48697
|
||||
since it got removed in the https://git.openembedded.org/openembedded-core/commit/meta/recipes-connectivity?id=29949cd7cf3a660fb3bcf251f5127a4cdb2804ec patch.
|
||||
-27
@@ -1,27 +0,0 @@
|
||||
From 31dde3562f287429eea94b77250d184818b49063 Mon Sep 17 00:00:00 2001
|
||||
From: Chen Qi <Qi.Chen@windriver.com>
|
||||
Date: Mon, 15 Oct 2018 16:55:09 +0800
|
||||
Subject: [PATCH] avoid start failure with bind user
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
|
||||
---
|
||||
init.d | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/init.d b/init.d
|
||||
index b2eec60..6e03936 100644
|
||||
--- a/init.d
|
||||
+++ b/init.d
|
||||
@@ -57,6 +57,7 @@ case "$1" in
|
||||
modprobe capability >/dev/null 2>&1 || true
|
||||
if [ ! -f /etc/bind/rndc.key ]; then
|
||||
/usr/sbin/rndc-confgen -a -b 512 -r /dev/urandom
|
||||
+ chown root:bind /etc/bind/rndc.key >/dev/null 2>&1 || true
|
||||
chmod 0640 /etc/bind/rndc.key
|
||||
fi
|
||||
if [ -f /var/run/named/named.pid ]; then
|
||||
--
|
||||
2.7.4
|
||||
|
||||
-30
@@ -1,30 +0,0 @@
|
||||
From 2325a92f1896a2a7f586611686801b41fbc91b50 Mon Sep 17 00:00:00 2001
|
||||
From: Hongxu Jia <hongxu.jia@windriver.com>
|
||||
Date: Mon, 27 Aug 2018 15:00:51 +0800
|
||||
Subject: [PATCH] configure.in: remove useless `-L$use_openssl/lib'
|
||||
|
||||
Since `--with-openssl=${STAGING_DIR_HOST}${prefix}' is used in bind recipe,
|
||||
the `-L$use_openssl/lib' has a hardcoded suffix, removing it is harmless
|
||||
and helpful for clean up host build path in isc-config.sh
|
||||
|
||||
Upstream-Status: Inappropriate [oe-core specific]
|
||||
|
||||
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
|
||||
|
||||
---
|
||||
configure.ac | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index e85a5c6..2bbfc58 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -1631,7 +1631,7 @@ If you don't want OpenSSL, use --without-openssl])
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
- DST_OPENSSL_LIBS="-L$use_openssl/lib -lcrypto"
|
||||
+ DST_OPENSSL_LIBS="-lcrypto"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
-34
@@ -1,34 +0,0 @@
|
||||
From a3af4a405baf5ff582e82aaba392dd9667d94bdc Mon Sep 17 00:00:00 2001
|
||||
From: Hongxu Jia <hongxu.jia@windriver.com>
|
||||
Date: Mon, 27 Aug 2018 21:24:20 +0800
|
||||
Subject: [PATCH] `named/lwresd -V' and start log hide build options
|
||||
|
||||
The build options expose build path directories, so hide them.
|
||||
[snip]
|
||||
$ named -V
|
||||
|built by make with *** (options are hidden)
|
||||
[snip]
|
||||
|
||||
Upstream-Status: Inappropriate [oe-core specific]
|
||||
|
||||
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
|
||||
---
|
||||
bin/named/include/named/globals.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/bin/named/include/named/globals.h b/bin/named/include/named/globals.h
|
||||
index ba3457e..7741da7 100644
|
||||
--- a/bin/named/include/named/globals.h
|
||||
+++ b/bin/named/include/named/globals.h
|
||||
@@ -68,7 +68,7 @@ EXTERN const char * ns_g_version INIT(VERSION);
|
||||
EXTERN const char * ns_g_product INIT(PRODUCT);
|
||||
EXTERN const char * ns_g_description INIT(DESCRIPTION);
|
||||
EXTERN const char * ns_g_srcid INIT(SRCID);
|
||||
-EXTERN const char * ns_g_configargs INIT(CONFIGARGS);
|
||||
+EXTERN const char * ns_g_configargs INIT("*** (options are hidden)");
|
||||
EXTERN const char * ns_g_builder INIT(BUILDER);
|
||||
EXTERN in_port_t ns_g_port INIT(0);
|
||||
EXTERN isc_dscp_t ns_g_dscp INIT(-1);
|
||||
--
|
||||
2.7.4
|
||||
|
||||
-47
@@ -1,47 +0,0 @@
|
||||
From edda20fb5a6e88548f85e39d34d6c074306e15bc Mon Sep 17 00:00:00 2001
|
||||
From: Paul Gortmaker <paul.gortmaker@windriver.com>
|
||||
Date: Tue, 9 Jun 2015 11:22:00 -0400
|
||||
Subject: [PATCH] bind: ensure searching for json headers searches sysroot
|
||||
|
||||
Bind can fail configure by detecting headers w/o libs[1], or
|
||||
it can fail the host contamination check as per below:
|
||||
|
||||
ERROR: This autoconf log indicates errors, it looked at host include and/or library paths while determining system capabilities.
|
||||
Rerun configure task after fixing this. The path was 'build/tmp/work/core2-64-poky-linux/bind/9.10.2-r1/build'
|
||||
ERROR: Function failed: do_qa_configure
|
||||
ERROR: Logfile of failure stored in: build/tmp/work/core2-64-poky-linux/bind/9.10.2-r1/temp/log.do_configure.5242
|
||||
ERROR: Task 5 (meta/recipes-connectivity/bind/bind_9.10.2.bb, do_configure) failed with exit code '1'
|
||||
NOTE: Tasks Summary: Attempted 773 tasks of which 768 didn't need to be rerun and 1 failed.
|
||||
No currently running tasks (773 of 781)
|
||||
|
||||
Summary: 1 task failed:
|
||||
/meta/recipes-connectivity/bind/bind_9.10.2.bb, do_configure
|
||||
|
||||
One way to fix it would be to unconditionally disable json in bind
|
||||
configure[2] but here we fix it by using the path to where we would
|
||||
put the header if we had json in the sysroot, in case someone wants
|
||||
to make use of the combination some day.
|
||||
|
||||
[1] https://trac.macports.org/ticket/45305
|
||||
[2] https://trac.macports.org/changeset/126406
|
||||
|
||||
Upstream-Status: Inappropriate [OE Specific]
|
||||
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
|
||||
|
||||
---
|
||||
configure.ac | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 17392fd..e85a5c6 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -2449,7 +2449,7 @@ case "$use_libjson" in
|
||||
libjson_libs=""
|
||||
;;
|
||||
auto|yes)
|
||||
- for d in /usr /usr/local /opt/local
|
||||
+ for d in "${STAGING_INCDIR}"
|
||||
do
|
||||
if test -f "${d}/include/json/json.h"
|
||||
then
|
||||
@@ -1,2 +0,0 @@
|
||||
# startup options for the server
|
||||
OPTIONS="-u bind"
|
||||
@@ -1,330 +0,0 @@
|
||||
Upstream-Status: Inappropriate [configuration]
|
||||
|
||||
the patch is imported from openembedded project
|
||||
|
||||
11/30/2010 - Qing He <qing.he@intel.com>
|
||||
|
||||
diff -urN bind-9.3.1.orig/conf/db.0 bind-9.3.1/conf/db.0
|
||||
--- bind-9.3.1.orig/conf/db.0 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ bind-9.3.1/conf/db.0 2005-07-10 22:14:00.000000000 +0200
|
||||
@@ -0,0 +1,12 @@
|
||||
+;
|
||||
+; BIND reverse data file for broadcast zone
|
||||
+;
|
||||
+$TTL 604800
|
||||
+@ IN SOA localhost. root.localhost. (
|
||||
+ 1 ; Serial
|
||||
+ 604800 ; Refresh
|
||||
+ 86400 ; Retry
|
||||
+ 2419200 ; Expire
|
||||
+ 604800 ) ; Negative Cache TTL
|
||||
+;
|
||||
+@ IN NS localhost.
|
||||
diff -urN bind-9.3.1.orig/conf/db.127 bind-9.3.1/conf/db.127
|
||||
--- bind-9.3.1.orig/conf/db.127 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ bind-9.3.1/conf/db.127 2005-07-10 22:14:00.000000000 +0200
|
||||
@@ -0,0 +1,13 @@
|
||||
+;
|
||||
+; BIND reverse data file for local loopback interface
|
||||
+;
|
||||
+$TTL 604800
|
||||
+@ IN SOA localhost. root.localhost. (
|
||||
+ 1 ; Serial
|
||||
+ 604800 ; Refresh
|
||||
+ 86400 ; Retry
|
||||
+ 2419200 ; Expire
|
||||
+ 604800 ) ; Negative Cache TTL
|
||||
+;
|
||||
+@ IN NS localhost.
|
||||
+1.0.0 IN PTR localhost.
|
||||
diff -urN bind-9.3.1.orig/conf/db.empty bind-9.3.1/conf/db.empty
|
||||
--- bind-9.3.1.orig/conf/db.empty 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ bind-9.3.1/conf/db.empty 2005-07-10 22:14:00.000000000 +0200
|
||||
@@ -0,0 +1,14 @@
|
||||
+; BIND reverse data file for empty rfc1918 zone
|
||||
+;
|
||||
+; DO NOT EDIT THIS FILE - it is used for multiple zones.
|
||||
+; Instead, copy it, edit named.conf, and use that copy.
|
||||
+;
|
||||
+$TTL 86400
|
||||
+@ IN SOA localhost. root.localhost. (
|
||||
+ 1 ; Serial
|
||||
+ 604800 ; Refresh
|
||||
+ 86400 ; Retry
|
||||
+ 2419200 ; Expire
|
||||
+ 86400 ) ; Negative Cache TTL
|
||||
+;
|
||||
+@ IN NS localhost.
|
||||
diff -urN bind-9.3.1.orig/conf/db.255 bind-9.3.1/conf/db.255
|
||||
--- bind-9.3.1.orig/conf/db.255 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ bind-9.3.1/conf/db.255 2005-07-10 22:14:00.000000000 +0200
|
||||
@@ -0,0 +1,12 @@
|
||||
+;
|
||||
+; BIND reserve data file for broadcast zone
|
||||
+;
|
||||
+$TTL 604800
|
||||
+@ IN SOA localhost. root.localhost. (
|
||||
+ 1 ; Serial
|
||||
+ 604800 ; Refresh
|
||||
+ 86400 ; Retry
|
||||
+ 2419200 ; Expire
|
||||
+ 604800 ) ; Negative Cache TTL
|
||||
+;
|
||||
+@ IN NS localhost.
|
||||
diff -urN bind-9.3.1.orig/conf/db.local bind-9.3.1/conf/db.local
|
||||
--- bind-9.3.1.orig/conf/db.local 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ bind-9.3.1/conf/db.local 2005-07-10 22:14:00.000000000 +0200
|
||||
@@ -0,0 +1,13 @@
|
||||
+;
|
||||
+; BIND data file for local loopback interface
|
||||
+;
|
||||
+$TTL 604800
|
||||
+@ IN SOA localhost. root.localhost. (
|
||||
+ 1 ; Serial
|
||||
+ 604800 ; Refresh
|
||||
+ 86400 ; Retry
|
||||
+ 2419200 ; Expire
|
||||
+ 604800 ) ; Negative Cache TTL
|
||||
+;
|
||||
+@ IN NS localhost.
|
||||
+@ IN A 127.0.0.1
|
||||
diff -urN bind-9.3.1.orig/conf/db.root bind-9.3.1/conf/db.root
|
||||
--- bind-9.3.1.orig/conf/db.root 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ bind-9.3.1/conf/db.root 2005-07-10 22:14:00.000000000 +0200
|
||||
@@ -0,0 +1,45 @@
|
||||
+
|
||||
+; <<>> DiG 9.2.3 <<>> ns . @a.root-servers.net.
|
||||
+;; global options: printcmd
|
||||
+;; Got answer:
|
||||
+;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18944
|
||||
+;; flags: qr aa rd; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 13
|
||||
+
|
||||
+;; QUESTION SECTION:
|
||||
+;. IN NS
|
||||
+
|
||||
+;; ANSWER SECTION:
|
||||
+. 518400 IN NS A.ROOT-SERVERS.NET.
|
||||
+. 518400 IN NS B.ROOT-SERVERS.NET.
|
||||
+. 518400 IN NS C.ROOT-SERVERS.NET.
|
||||
+. 518400 IN NS D.ROOT-SERVERS.NET.
|
||||
+. 518400 IN NS E.ROOT-SERVERS.NET.
|
||||
+. 518400 IN NS F.ROOT-SERVERS.NET.
|
||||
+. 518400 IN NS G.ROOT-SERVERS.NET.
|
||||
+. 518400 IN NS H.ROOT-SERVERS.NET.
|
||||
+. 518400 IN NS I.ROOT-SERVERS.NET.
|
||||
+. 518400 IN NS J.ROOT-SERVERS.NET.
|
||||
+. 518400 IN NS K.ROOT-SERVERS.NET.
|
||||
+. 518400 IN NS L.ROOT-SERVERS.NET.
|
||||
+. 518400 IN NS M.ROOT-SERVERS.NET.
|
||||
+
|
||||
+;; ADDITIONAL SECTION:
|
||||
+A.ROOT-SERVERS.NET. 3600000 IN A 198.41.0.4
|
||||
+B.ROOT-SERVERS.NET. 3600000 IN A 192.228.79.201
|
||||
+C.ROOT-SERVERS.NET. 3600000 IN A 192.33.4.12
|
||||
+D.ROOT-SERVERS.NET. 3600000 IN A 128.8.10.90
|
||||
+E.ROOT-SERVERS.NET. 3600000 IN A 192.203.230.10
|
||||
+F.ROOT-SERVERS.NET. 3600000 IN A 192.5.5.241
|
||||
+G.ROOT-SERVERS.NET. 3600000 IN A 192.112.36.4
|
||||
+H.ROOT-SERVERS.NET. 3600000 IN A 128.63.2.53
|
||||
+I.ROOT-SERVERS.NET. 3600000 IN A 192.36.148.17
|
||||
+J.ROOT-SERVERS.NET. 3600000 IN A 192.58.128.30
|
||||
+K.ROOT-SERVERS.NET. 3600000 IN A 193.0.14.129
|
||||
+L.ROOT-SERVERS.NET. 3600000 IN A 198.32.64.12
|
||||
+M.ROOT-SERVERS.NET. 3600000 IN A 202.12.27.33
|
||||
+
|
||||
+;; Query time: 81 msec
|
||||
+;; SERVER: 198.41.0.4#53(a.root-servers.net.)
|
||||
+;; WHEN: Sun Feb 1 11:27:14 2004
|
||||
+;; MSG SIZE rcvd: 436
|
||||
+
|
||||
diff -urN bind-9.3.1.orig/conf/named.conf bind-9.3.1/conf/named.conf
|
||||
--- bind-9.3.1.orig/conf/named.conf 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ bind-9.3.1/conf/named.conf 2005-07-10 22:33:46.000000000 +0200
|
||||
@@ -0,0 +1,49 @@
|
||||
+// This is the primary configuration file for the BIND DNS server named.
|
||||
+//
|
||||
+// If you are just adding zones, please do that in /etc/bind/named.conf.local
|
||||
+
|
||||
+include "/etc/bind/named.conf.options";
|
||||
+
|
||||
+// prime the server with knowledge of the root servers
|
||||
+zone "." {
|
||||
+ type hint;
|
||||
+ file "/etc/bind/db.root";
|
||||
+};
|
||||
+
|
||||
+// be authoritative for the localhost forward and reverse zones, and for
|
||||
+// broadcast zones as per RFC 1912
|
||||
+
|
||||
+zone "localhost" {
|
||||
+ type master;
|
||||
+ file "/etc/bind/db.local";
|
||||
+};
|
||||
+
|
||||
+zone "127.in-addr.arpa" {
|
||||
+ type master;
|
||||
+ file "/etc/bind/db.127";
|
||||
+};
|
||||
+
|
||||
+zone "0.in-addr.arpa" {
|
||||
+ type master;
|
||||
+ file "/etc/bind/db.0";
|
||||
+};
|
||||
+
|
||||
+zone "255.in-addr.arpa" {
|
||||
+ type master;
|
||||
+ file "/etc/bind/db.255";
|
||||
+};
|
||||
+
|
||||
+// zone "com" { type delegation-only; };
|
||||
+// zone "net" { type delegation-only; };
|
||||
+
|
||||
+// From the release notes:
|
||||
+// Because many of our users are uncomfortable receiving undelegated answers
|
||||
+// from root or top level domains, other than a few for whom that behaviour
|
||||
+// has been trusted and expected for quite some length of time, we have now
|
||||
+// introduced the "root-delegations-only" feature which applies delegation-only
|
||||
+// logic to all top level domains, and to the root domain. An exception list
|
||||
+// should be specified, including "MUSEUM" and "DE", and any other top level
|
||||
+// domains from whom undelegated responses are expected and trusted.
|
||||
+// root-delegation-only exclude { "DE"; "MUSEUM"; };
|
||||
+
|
||||
+include "/etc/bind/named.conf.local";
|
||||
diff -urN bind-9.3.1.orig/conf/named.conf.local bind-9.3.1/conf/named.conf.local
|
||||
--- bind-9.3.1.orig/conf/named.conf.local 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ bind-9.3.1/conf/named.conf.local 2005-07-10 22:14:06.000000000 +0200
|
||||
@@ -0,0 +1,8 @@
|
||||
+//
|
||||
+// Do any local configuration here
|
||||
+//
|
||||
+
|
||||
+// Consider adding the 1918 zones here, if they are not used in your
|
||||
+// organization
|
||||
+//include "/etc/bind/zones.rfc1918";
|
||||
+
|
||||
diff -urN bind-9.3.1.orig/conf/named.conf.options bind-9.3.1/conf/named.conf.options
|
||||
--- bind-9.3.1.orig/conf/named.conf.options 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ bind-9.3.1/conf/named.conf.options 2005-07-10 22:14:06.000000000 +0200
|
||||
@@ -0,0 +1,24 @@
|
||||
+options {
|
||||
+ directory "/var/cache/bind";
|
||||
+
|
||||
+ // If there is a firewall between you and nameservers you want
|
||||
+ // to talk to, you might need to uncomment the query-source
|
||||
+ // directive below. Previous versions of BIND always asked
|
||||
+ // questions using port 53, but BIND 8.1 and later use an unprivileged
|
||||
+ // port by default.
|
||||
+
|
||||
+ // query-source address * port 53;
|
||||
+
|
||||
+ // If your ISP provided one or more IP addresses for stable
|
||||
+ // nameservers, you probably want to use them as forwarders.
|
||||
+ // Uncomment the following block, and insert the addresses replacing
|
||||
+ // the all-0's placeholder.
|
||||
+
|
||||
+ // forwarders {
|
||||
+ // 0.0.0.0;
|
||||
+ // };
|
||||
+
|
||||
+ auth-nxdomain no; # conform to RFC1035
|
||||
+
|
||||
+};
|
||||
+
|
||||
diff -urN bind-9.3.1.orig/conf/zones.rfc1918 bind-9.3.1/conf/zones.rfc1918
|
||||
--- bind-9.3.1.orig/conf/zones.rfc1918 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ bind-9.3.1/conf/zones.rfc1918 2005-07-10 22:14:10.000000000 +0200
|
||||
@@ -0,0 +1,20 @@
|
||||
+zone "10.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
|
||||
+
|
||||
+zone "16.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
|
||||
+zone "17.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
|
||||
+zone "18.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
|
||||
+zone "19.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
|
||||
+zone "20.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
|
||||
+zone "21.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
|
||||
+zone "22.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
|
||||
+zone "23.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
|
||||
+zone "24.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
|
||||
+zone "25.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
|
||||
+zone "26.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
|
||||
+zone "27.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
|
||||
+zone "28.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
|
||||
+zone "29.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
|
||||
+zone "30.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
|
||||
+zone "31.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
|
||||
+
|
||||
+zone "168.192.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
|
||||
diff -urN bind-9.3.1.orig/init.d bind-9.3.1/init.d
|
||||
--- bind-9.3.1.orig/init.d 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ bind-9.3.1/init.d 2005-07-10 23:09:58.000000000 +0200
|
||||
@@ -0,0 +1,70 @@
|
||||
+#!/bin/sh
|
||||
+
|
||||
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
|
||||
+
|
||||
+# for a chrooted server: "-u bind -t /var/lib/named"
|
||||
+# Don't modify this line, change or create /etc/default/bind9.
|
||||
+OPTIONS=""
|
||||
+
|
||||
+test -f /etc/default/bind9 && . /etc/default/bind9
|
||||
+
|
||||
+test -x /usr/sbin/rndc || exit 0
|
||||
+
|
||||
+case "$1" in
|
||||
+ start)
|
||||
+ echo -n "Starting domain name service: named"
|
||||
+
|
||||
+ modprobe capability >/dev/null 2>&1 || true
|
||||
+ if [ ! -f /etc/bind/rndc.key ]; then
|
||||
+ /usr/sbin/rndc-confgen -a -b 512 -r /dev/urandom
|
||||
+ chmod 0640 /etc/bind/rndc.key
|
||||
+ fi
|
||||
+ if [ -f /var/run/named/named.pid ]; then
|
||||
+ ps `cat /var/run/named/named.pid` > /dev/null && exit 1
|
||||
+ fi
|
||||
+
|
||||
+ # dirs under /var/run can go away on reboots.
|
||||
+ mkdir -p /var/run/named
|
||||
+ mkdir -p /var/cache/bind
|
||||
+ chmod 775 /var/run/named
|
||||
+ chown root:bind /var/run/named >/dev/null 2>&1 || true
|
||||
+
|
||||
+ if [ ! -x /usr/sbin/named ]; then
|
||||
+ echo "named binary missing - not starting"
|
||||
+ exit 1
|
||||
+ fi
|
||||
+ if start-stop-daemon --start --quiet --exec /usr/sbin/named \
|
||||
+ --pidfile /var/run/named/named.pid -- $OPTIONS; then
|
||||
+ if [ -x /sbin/resolvconf ] ; then
|
||||
+ echo "nameserver 127.0.0.1" | /sbin/resolvconf -a lo
|
||||
+ fi
|
||||
+ fi
|
||||
+ echo "."
|
||||
+ ;;
|
||||
+
|
||||
+ stop)
|
||||
+ echo -n "Stopping domain name service: named"
|
||||
+ if [ -x /sbin/resolvconf ]; then
|
||||
+ /sbin/resolvconf -d lo
|
||||
+ fi
|
||||
+ /usr/sbin/rndc stop >/dev/null 2>&1
|
||||
+ echo "."
|
||||
+ ;;
|
||||
+
|
||||
+ reload)
|
||||
+ /usr/sbin/rndc reload
|
||||
+ ;;
|
||||
+
|
||||
+ restart|force-reload)
|
||||
+ $0 stop
|
||||
+ sleep 2
|
||||
+ $0 start
|
||||
+ ;;
|
||||
+
|
||||
+ *)
|
||||
+ echo "Usage: /etc/init.d/bind {start|stop|reload|restart|force-reload}" >&2
|
||||
+ exit 1
|
||||
+ ;;
|
||||
+esac
|
||||
+
|
||||
+exit 0
|
||||
@@ -1,8 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ ! -s /etc/bind/rndc.key ]; then
|
||||
echo -n "Generating /etc/bind/rndc.key:"
|
||||
/usr/sbin/rndc-confgen -a -b 512 -r /dev/urandom
|
||||
chown root:bind /etc/bind/rndc.key
|
||||
chmod 0640 /etc/bind/rndc.key
|
||||
fi
|
||||
-65
@@ -1,65 +0,0 @@
|
||||
Subject: init.d: add support for read-only rootfs
|
||||
|
||||
Upstream-Status: Inappropriate [oe specific]
|
||||
|
||||
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
|
||||
---
|
||||
init.d | 40 ++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 40 insertions(+)
|
||||
|
||||
diff --git a/init.d b/init.d
|
||||
index 0111ed4..24677c8 100644
|
||||
--- a/init.d
|
||||
+++ b/init.d
|
||||
@@ -6,8 +6,48 @@ PATH=/sbin:/bin:/usr/sbin:/usr/bin
|
||||
# Don't modify this line, change or create /etc/default/bind9.
|
||||
OPTIONS=""
|
||||
|
||||
+test -f /etc/default/rcS && . /etc/default/rcS
|
||||
test -f /etc/default/bind9 && . /etc/default/bind9
|
||||
|
||||
+# This function is here because it's possible that /var and / are on different partitions.
|
||||
+is_on_read_only_partition () {
|
||||
+ DIRECTORY=$1
|
||||
+ dir=`readlink -f $DIRECTORY`
|
||||
+ while true; do
|
||||
+ if [ ! -d "$dir" ]; then
|
||||
+ echo "ERROR: $dir is not a directory"
|
||||
+ exit 1
|
||||
+ else
|
||||
+ for flag in `awk -v dir=$dir '{ if ($2 == dir) { print "FOUND"; split($4,FLAGS,",") } }; \
|
||||
+ END { for (f in FLAGS) print FLAGS[f] }' < /proc/mounts`; do
|
||||
+ [ "$flag" = "FOUND" ] && partition="read-write"
|
||||
+ [ "$flag" = "ro" ] && { partition="read-only"; break; }
|
||||
+ done
|
||||
+ if [ "$dir" = "/" -o -n "$partition" ]; then
|
||||
+ break
|
||||
+ else
|
||||
+ dir=`dirname $dir`
|
||||
+ fi
|
||||
+ fi
|
||||
+ done
|
||||
+ [ "$partition" = "read-only" ] && echo "yes" || echo "no"
|
||||
+}
|
||||
+
|
||||
+bind_mount () {
|
||||
+ olddir=$1
|
||||
+ newdir=$2
|
||||
+ mkdir -p $olddir
|
||||
+ cp -a $newdir/* $olddir
|
||||
+ mount --bind $olddir $newdir
|
||||
+}
|
||||
+
|
||||
+# Deal with read-only rootfs
|
||||
+if [ "$ROOTFS_READ_ONLY" = "yes" ]; then
|
||||
+ [ "$VERBOSE" != "no" ] && echo "WARN: start bind service in read-only rootfs"
|
||||
+ [ `is_on_read_only_partition /etc/bind` = "yes" ] && bind_mount /var/volatile/bind/etc /etc/bind
|
||||
+ [ `is_on_read_only_partition /var/named` = "yes" ] && bind_mount /var/volatile/bind/named /var/named
|
||||
+fi
|
||||
+
|
||||
test -x /usr/sbin/rndc || exit 0
|
||||
|
||||
case "$1" in
|
||||
--
|
||||
1.7.9.5
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
bind: make "/etc/init.d/bind stop" work
|
||||
|
||||
Upstream-Status: Inappropriate [configuration]
|
||||
|
||||
Add some configurations, make rndc command be able to controls
|
||||
the named daemon.
|
||||
|
||||
Signed-off-by: Roy Li <rongqing.li@windriver.com>
|
||||
---
|
||||
conf/named.conf | 5 +++++
|
||||
conf/rndc.conf | 5 +++++
|
||||
2 files changed, 10 insertions(+), 0 deletions(-)
|
||||
create mode 100644 conf/rndc.conf
|
||||
|
||||
diff --git a/conf/named.conf b/conf/named.conf
|
||||
index 95829cf..c8899e7 100644
|
||||
--- a/conf/named.conf
|
||||
+++ b/conf/named.conf
|
||||
@@ -47,3 +47,8 @@ zone "255.in-addr.arpa" {
|
||||
// root-delegation-only exclude { "DE"; "MUSEUM"; };
|
||||
|
||||
include "/etc/bind/named.conf.local";
|
||||
+include "/etc/bind/rndc.key" ;
|
||||
+controls {
|
||||
+ inet 127.0.0.1 allow { localhost; }
|
||||
+ keys { rndc-key; };
|
||||
+};
|
||||
diff --git a/conf/rndc.conf b/conf/rndc.conf
|
||||
new file mode 100644
|
||||
index 0000000..a0b481d
|
||||
--- /dev/null
|
||||
+++ b/conf/rndc.conf
|
||||
@@ -0,0 +1,5 @@
|
||||
+include "/etc/bind/rndc.key";
|
||||
+options {
|
||||
+ default-server localhost;
|
||||
+ default-key rndc-key;
|
||||
+};
|
||||
|
||||
--
|
||||
1.7.5.4
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
[Unit]
|
||||
Description=Berkeley Internet Name Domain (DNS)
|
||||
Wants=nss-lookup.target
|
||||
Before=nss-lookup.target
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=forking
|
||||
EnvironmentFile=-/etc/default/bind9
|
||||
PIDFile=/run/named/named.pid
|
||||
|
||||
ExecStartPre=@SBINDIR@/generate-rndc-key.sh
|
||||
ExecStart=@SBINDIR@/named $OPTIONS
|
||||
|
||||
ExecReload=@BASE_BINDIR@/sh -c '@SBINDIR@/rndc reload > /dev/null 2>&1 || @BASE_BINDIR@/kill -HUP $MAINPID'
|
||||
|
||||
ExecStop=@BASE_BINDIR@/sh -c '@SBINDIR@/rndc stop > /dev/null 2>&1 || @BASE_BINDIR@/kill -TERM $MAINPID'
|
||||
|
||||
PrivateTmp=true
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -1,140 +0,0 @@
|
||||
SUMMARY = "ISC Internet Domain Name Server"
|
||||
HOMEPAGE = "http://www.isc.org/sw/bind/"
|
||||
SECTION = "console/network"
|
||||
|
||||
LICENSE = "ISC & BSD"
|
||||
LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=bf39058a7f64b2a934ce14dc9ec1dd45"
|
||||
|
||||
DEPENDS = "openssl libcap zlib"
|
||||
|
||||
SRC_URI = "https://ftp.isc.org/isc/bind9/${PV}/${BPN}-${PV}.tar.gz \
|
||||
file://conf.patch \
|
||||
file://named.service \
|
||||
file://bind9 \
|
||||
file://generate-rndc-key.sh \
|
||||
file://make-etc-initd-bind-stop-work.patch \
|
||||
file://init.d-add-support-for-read-only-rootfs.patch \
|
||||
file://bind-ensure-searching-for-json-headers-searches-sysr.patch \
|
||||
file://0001-configure.in-remove-useless-L-use_openssl-lib.patch \
|
||||
file://0001-named-lwresd-V-and-start-log-hide-build-options.patch \
|
||||
file://0001-avoid-start-failure-with-bind-user.patch \
|
||||
"
|
||||
|
||||
SRC_URI[sha256sum] = "afc6d8015006f1cabf699ff19f517bb8fd9c1811e5231f26baf51c3550262ac9"
|
||||
|
||||
UPSTREAM_CHECK_URI = "https://ftp.isc.org/isc/bind9/"
|
||||
# stay at 9.11 until 9.16, from 9.16 follow the ESV versions divisible by 4
|
||||
UPSTREAM_CHECK_REGEX = "(?P<pver>9.(11|16|20|24|28)(\.\d+)+(-P\d+)*)/"
|
||||
|
||||
# BIND >= 9.11.2 need dhcpd >= 4.4.0,
|
||||
# don't report it here since dhcpd is already recent enough.
|
||||
CVE_CHECK_WHITELIST += "CVE-2019-6470"
|
||||
|
||||
inherit autotools update-rc.d systemd useradd pkgconfig multilib_script multilib_header
|
||||
|
||||
MULTILIB_SCRIPTS = "${PN}:${bindir}/bind9-config ${PN}:${bindir}/isc-config.sh"
|
||||
|
||||
# PACKAGECONFIGs readline and libedit should NOT be set at same time
|
||||
PACKAGECONFIG ?= "readline"
|
||||
PACKAGECONFIG[httpstats] = "--with-libxml2=${STAGING_DIR_HOST}${prefix},--without-libxml2,libxml2"
|
||||
PACKAGECONFIG[readline] = "--with-readline=-lreadline,,readline"
|
||||
PACKAGECONFIG[libedit] = "--with-readline=-ledit,,libedit"
|
||||
PACKAGECONFIG[urandom] = "--with-randomdev=/dev/urandom,--with-randomdev=/dev/random,,"
|
||||
PACKAGECONFIG[python3] = "--with-python=yes --with-python-install-dir=${PYTHON_SITEPACKAGES_DIR} , --without-python, python3-ply-native,"
|
||||
|
||||
ENABLE_IPV6 = "--enable-ipv6=${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'yes', 'no', d)}"
|
||||
EXTRA_OECONF = " ${ENABLE_IPV6} --with-libtool --enable-threads \
|
||||
--disable-devpoll --enable-epoll --with-gost=no \
|
||||
--with-gssapi=no --with-ecdsa=yes --with-eddsa=no \
|
||||
--with-lmdb=no \
|
||||
--sysconfdir=${sysconfdir}/bind \
|
||||
--with-openssl=${STAGING_DIR_HOST}${prefix} \
|
||||
"
|
||||
|
||||
inherit ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3native distutils3-base', '', d)}
|
||||
|
||||
# dhcp needs .la so keep them
|
||||
REMOVE_LIBTOOL_LA = "0"
|
||||
|
||||
USERADD_PACKAGES = "${PN}"
|
||||
USERADD_PARAM_${PN} = "--system --home ${localstatedir}/cache/bind --no-create-home \
|
||||
--user-group bind"
|
||||
|
||||
INITSCRIPT_NAME = "bind"
|
||||
INITSCRIPT_PARAMS = "defaults"
|
||||
|
||||
SYSTEMD_SERVICE_${PN} = "named.service"
|
||||
|
||||
do_install_prepend() {
|
||||
# clean host path in isc-config.sh before the hardlink created
|
||||
# by "make install":
|
||||
# bind9-config -> isc-config.sh
|
||||
sed -i -e "s,${STAGING_LIBDIR},${libdir}," ${B}/isc-config.sh
|
||||
}
|
||||
|
||||
do_install_append() {
|
||||
|
||||
rmdir "${D}${localstatedir}/run"
|
||||
rmdir --ignore-fail-on-non-empty "${D}${localstatedir}"
|
||||
install -d -o bind "${D}${localstatedir}/cache/bind"
|
||||
install -d "${D}${sysconfdir}/bind"
|
||||
install -d "${D}${sysconfdir}/init.d"
|
||||
install -m 644 ${S}/conf/* "${D}${sysconfdir}/bind/"
|
||||
install -m 755 "${S}/init.d" "${D}${sysconfdir}/init.d/bind"
|
||||
if ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'true', 'false', d)}; then
|
||||
sed -i -e '1s,#!.*python3,#! /usr/bin/python3,' \
|
||||
${D}${sbindir}/dnssec-coverage \
|
||||
${D}${sbindir}/dnssec-checkds \
|
||||
${D}${sbindir}/dnssec-keymgr
|
||||
fi
|
||||
|
||||
# Install systemd related files
|
||||
install -d ${D}${sbindir}
|
||||
install -m 755 ${WORKDIR}/generate-rndc-key.sh ${D}${sbindir}
|
||||
install -d ${D}${systemd_unitdir}/system
|
||||
install -m 0644 ${WORKDIR}/named.service ${D}${systemd_unitdir}/system
|
||||
sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \
|
||||
-e 's,@SBINDIR@,${sbindir},g' \
|
||||
${D}${systemd_unitdir}/system/named.service
|
||||
|
||||
install -d ${D}${sysconfdir}/default
|
||||
install -m 0644 ${WORKDIR}/bind9 ${D}${sysconfdir}/default
|
||||
|
||||
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
|
||||
install -d ${D}${sysconfdir}/tmpfiles.d
|
||||
echo "d /run/named 0755 bind bind - -" > ${D}${sysconfdir}/tmpfiles.d/bind.conf
|
||||
fi
|
||||
|
||||
oe_multilib_header isc/platform.h
|
||||
}
|
||||
|
||||
CONFFILES_${PN} = " \
|
||||
${sysconfdir}/bind/named.conf \
|
||||
${sysconfdir}/bind/named.conf.local \
|
||||
${sysconfdir}/bind/named.conf.options \
|
||||
${sysconfdir}/bind/db.0 \
|
||||
${sysconfdir}/bind/db.127 \
|
||||
${sysconfdir}/bind/db.empty \
|
||||
${sysconfdir}/bind/db.local \
|
||||
${sysconfdir}/bind/db.root \
|
||||
"
|
||||
|
||||
ALTERNATIVE_${PN}-utils = "nslookup"
|
||||
ALTERNATIVE_LINK_NAME[nslookup] = "${bindir}/nslookup"
|
||||
ALTERNATIVE_PRIORITY = "100"
|
||||
|
||||
PACKAGE_BEFORE_PN += "${PN}-utils"
|
||||
FILES_${PN}-utils = "${bindir}/host ${bindir}/dig ${bindir}/mdig ${bindir}/nslookup ${bindir}/nsupdate"
|
||||
FILES_${PN}-dev += "${bindir}/isc-config.h"
|
||||
FILES_${PN} += "${sbindir}/generate-rndc-key.sh"
|
||||
|
||||
PACKAGE_BEFORE_PN += "${PN}-libs"
|
||||
FILES_${PN}-libs = "${libdir}/*.so*"
|
||||
FILES_${PN}-staticdev += "${libdir}/*.la"
|
||||
|
||||
PACKAGE_BEFORE_PN += "${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3-bind', '', d)}"
|
||||
FILES_python3-bind = "${sbindir}/dnssec-coverage ${sbindir}/dnssec-checkds \
|
||||
${sbindir}/dnssec-keymgr ${PYTHON_SITEPACKAGES_DIR}"
|
||||
|
||||
RDEPENDS_${PN}-dev = ""
|
||||
RDEPENDS_python3-bind = "python3-core python3-ply"
|
||||
@@ -1,3 +0,0 @@
|
||||
For now, arm-autonomy-host-image-minimal installs the dhcp-server package and
|
||||
the dchp recipe was copied from oe-core tree https://git.openembedded.org/openembedded-core/tree/meta/recipes-connectivity/dhcp?id=087e4fafeef82cfd3d71402d6b200fe831f48697
|
||||
since it got removed in the https://git.openembedded.org/openembedded-core/commit/meta/recipes-connectivity?id=7e3357892f204788162747e907d68f857118cf42 patch.
|
||||
@@ -1,149 +0,0 @@
|
||||
SECTION = "console/network"
|
||||
SUMMARY = "Internet Software Consortium DHCP package"
|
||||
DESCRIPTION = "DHCP (Dynamic Host Configuration Protocol) is a protocol \
|
||||
which allows individual devices on an IP network to get their own \
|
||||
network configuration information from a server. DHCP helps make it \
|
||||
easier to administer devices."
|
||||
|
||||
HOMEPAGE = "http://www.isc.org/"
|
||||
|
||||
LICENSE = "ISC"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;beginline=4;md5=004a4db50a1e20972e924a8618747c01"
|
||||
|
||||
DEPENDS = "openssl bind"
|
||||
|
||||
SRC_URI = "http://ftp.isc.org/isc/dhcp/${PV}/dhcp-${PV}.tar.gz \
|
||||
file://init-relay file://default-relay \
|
||||
file://init-server file://default-server \
|
||||
file://dhclient.conf file://dhcpd.conf \
|
||||
file://dhclient-systemd-wrapper \
|
||||
file://dhclient.service \
|
||||
file://dhcpd.service file://dhcrelay.service \
|
||||
file://dhcpd6.service \
|
||||
"
|
||||
UPSTREAM_CHECK_URI = "http://ftp.isc.org/isc/dhcp/"
|
||||
UPSTREAM_CHECK_REGEX = "(?P<pver>\d+\.\d+\.(\d+?))/"
|
||||
|
||||
inherit autotools-brokensep systemd useradd update-rc.d
|
||||
|
||||
USERADD_PACKAGES = "${PN}-server"
|
||||
USERADD_PARAM_${PN}-server = "--system --no-create-home --home-dir /var/run/${BPN} --shell /bin/false --user-group ${BPN}"
|
||||
|
||||
SYSTEMD_PACKAGES = "${PN}-server ${PN}-relay ${PN}-client"
|
||||
SYSTEMD_SERVICE_${PN}-server = "dhcpd.service dhcpd6.service"
|
||||
SYSTEMD_AUTO_ENABLE_${PN}-server = "disable"
|
||||
|
||||
SYSTEMD_SERVICE_${PN}-relay = "dhcrelay.service"
|
||||
SYSTEMD_AUTO_ENABLE_${PN}-relay = "disable"
|
||||
|
||||
SYSTEMD_SERVICE_${PN}-client = "dhclient.service"
|
||||
SYSTEMD_AUTO_ENABLE_${PN}-client = "disable"
|
||||
|
||||
INITSCRIPT_PACKAGES = "dhcp-server"
|
||||
INITSCRIPT_NAME_dhcp-server = "dhcp-server"
|
||||
INITSCRIPT_PARAMS_dhcp-server = "defaults"
|
||||
|
||||
CFLAGS += "-D_GNU_SOURCE"
|
||||
EXTRA_OECONF = "--with-srv-lease-file=${localstatedir}/lib/dhcp/dhcpd.leases \
|
||||
--with-srv6-lease-file=${localstatedir}/lib/dhcp/dhcpd6.leases \
|
||||
--with-cli-lease-file=${localstatedir}/lib/dhcp/dhclient.leases \
|
||||
--with-cli6-lease-file=${localstatedir}/lib/dhcp/dhclient6.leases \
|
||||
--enable-paranoia --disable-static \
|
||||
--with-randomdev=/dev/random \
|
||||
--with-libbind=${STAGING_DIR_HOST} \
|
||||
--enable-libtool \
|
||||
"
|
||||
|
||||
#Enable shared libs per dhcp README
|
||||
do_configure_prepend () {
|
||||
cp configure.ac+lt configure.ac
|
||||
}
|
||||
|
||||
do_install_append () {
|
||||
install -d ${D}${sysconfdir}/init.d
|
||||
install -d ${D}${sysconfdir}/default
|
||||
install -d ${D}${sysconfdir}/dhcp
|
||||
install -m 0755 ${WORKDIR}/init-relay ${D}${sysconfdir}/init.d/dhcp-relay
|
||||
install -m 0644 ${WORKDIR}/default-relay ${D}${sysconfdir}/default/dhcp-relay
|
||||
install -m 0755 ${WORKDIR}/init-server ${D}${sysconfdir}/init.d/dhcp-server
|
||||
install -m 0644 ${WORKDIR}/default-server ${D}${sysconfdir}/default/dhcp-server
|
||||
|
||||
rm -f ${D}${sysconfdir}/dhclient.conf*
|
||||
rm -f ${D}${sysconfdir}/dhcpd.conf*
|
||||
install -m 0644 ${WORKDIR}/dhclient.conf ${D}${sysconfdir}/dhcp/dhclient.conf
|
||||
install -m 0644 ${WORKDIR}/dhcpd.conf ${D}${sysconfdir}/dhcp/dhcpd.conf
|
||||
|
||||
install -d ${D}${base_sbindir}/
|
||||
if [ "${sbindir}" != "${base_sbindir}" ]; then
|
||||
mv ${D}${sbindir}/dhclient ${D}${base_sbindir}/
|
||||
fi
|
||||
install -m 0755 ${S}/client/scripts/linux ${D}${base_sbindir}/dhclient-script
|
||||
|
||||
# Install systemd unit files
|
||||
install -d ${D}${systemd_unitdir}/system
|
||||
install -m 0644 ${WORKDIR}/dhcpd.service ${D}${systemd_unitdir}/system
|
||||
install -m 0644 ${WORKDIR}/dhcpd6.service ${D}${systemd_unitdir}/system
|
||||
install -m 0644 ${WORKDIR}/dhcrelay.service ${D}${systemd_unitdir}/system
|
||||
sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/dhcpd*.service ${D}${systemd_unitdir}/system/dhcrelay.service
|
||||
sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' ${D}${systemd_unitdir}/system/dhcpd*.service
|
||||
sed -i -e 's,@base_bindir@,${base_bindir},g' ${D}${systemd_unitdir}/system/dhcpd*.service
|
||||
sed -i -e 's,@localstatedir@,${localstatedir},g' ${D}${systemd_unitdir}/system/dhcpd*.service
|
||||
sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' ${D}${systemd_unitdir}/system/dhcrelay.service
|
||||
|
||||
install -d ${D}${base_sbindir}
|
||||
install -m 0755 ${WORKDIR}/dhclient-systemd-wrapper ${D}${base_sbindir}/dhclient-systemd-wrapper
|
||||
install -m 0644 ${WORKDIR}/dhclient.service ${D}${systemd_unitdir}/system
|
||||
sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' ${D}${systemd_unitdir}/system/dhclient.service
|
||||
sed -i -e 's,@BASE_SBINDIR@,${base_sbindir},g' ${D}${systemd_unitdir}/system/dhclient.service
|
||||
}
|
||||
|
||||
PACKAGES += "dhcp-libs dhcp-server dhcp-server-config dhcp-client dhcp-relay dhcp-omshell"
|
||||
|
||||
PACKAGES_remove = "${PN}"
|
||||
RDEPENDS_${PN}-client += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'iproute2', '', d)}"
|
||||
RDEPENDS_${PN}-dev = ""
|
||||
RDEPENDS_${PN}-staticdev = ""
|
||||
FILES_${PN}-libs = "${libdir}/libdhcpctl.so.0* ${libdir}/libomapi.so.0* ${libdir}/libdhcp.so.0*"
|
||||
|
||||
FILES_${PN}-server = "${sbindir}/dhcpd ${sysconfdir}/init.d/dhcp-server"
|
||||
RRECOMMENDS_${PN}-server = "dhcp-server-config"
|
||||
|
||||
FILES_${PN}-server-config = "${sysconfdir}/default/dhcp-server ${sysconfdir}/dhcp/dhcpd.conf"
|
||||
|
||||
FILES_${PN}-relay = "${sbindir}/dhcrelay ${sysconfdir}/init.d/dhcp-relay ${sysconfdir}/default/dhcp-relay"
|
||||
|
||||
FILES_${PN}-client = "${base_sbindir}/dhclient \
|
||||
${base_sbindir}/dhclient-script \
|
||||
${sysconfdir}/dhcp/dhclient.conf \
|
||||
${base_sbindir}/dhclient-systemd-wrapper \
|
||||
"
|
||||
|
||||
FILES_${PN}-omshell = "${bindir}/omshell"
|
||||
|
||||
pkg_postinst_dhcp-server() {
|
||||
mkdir -p $D/${localstatedir}/lib/dhcp
|
||||
touch $D/${localstatedir}/lib/dhcp/dhcpd.leases
|
||||
touch $D/${localstatedir}/lib/dhcp/dhcpd6.leases
|
||||
}
|
||||
|
||||
pkg_postinst_dhcp-client() {
|
||||
mkdir -p $D/${localstatedir}/lib/dhcp
|
||||
}
|
||||
|
||||
pkg_postrm_dhcp-server() {
|
||||
rm -f $D/${localstatedir}/lib/dhcp/dhcpd.leases
|
||||
rm -f $D/${localstatedir}/lib/dhcp/dhcpd6.leases
|
||||
|
||||
if ! rmdir $D/${localstatedir}/lib/dhcp 2>/dev/null; then
|
||||
echo "Not removing ${localstatedir}/lib/dhcp as it is non-empty."
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm_dhcp-client() {
|
||||
rm -f $D/${localstatedir}/lib/dhcp/dhclient.leases
|
||||
rm -f $D/${localstatedir}/lib/dhcp/dhclient6.leases
|
||||
|
||||
if ! rmdir $D/${localstatedir}/lib/dhcp 2>/dev/null; then
|
||||
echo "Not removing ${localstatedir}/lib/dhcp as it is non-empty."
|
||||
fi
|
||||
}
|
||||
-27
@@ -1,27 +0,0 @@
|
||||
From 7cc29144535a622fc671dc86eb1da65b0473a7c4 Mon Sep 17 00:00:00 2001
|
||||
From: Hongxu Jia <hongxu.jia@windriver.com>
|
||||
Date: Tue, 15 Aug 2017 16:14:22 +0800
|
||||
Subject: [PATCH 01/11] define macro _PATH_DHCPD_CONF and _PATH_DHCLIENT_CONF
|
||||
|
||||
Upstream-Status: Inappropriate [OE specific]
|
||||
|
||||
Rebase to 4.3.6
|
||||
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
|
||||
---
|
||||
includes/site.h | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
Index: dhcp-4.4.1/includes/site.h
|
||||
===================================================================
|
||||
--- dhcp-4.4.1.orig/includes/site.h
|
||||
+++ dhcp-4.4.1/includes/site.h
|
||||
@@ -148,7 +148,8 @@
|
||||
/* Define this if you want the dhcpd.conf file to go somewhere other than
|
||||
the default location. By default, it goes in /etc/dhcpd.conf. */
|
||||
|
||||
-/* #define _PATH_DHCPD_CONF "/etc/dhcpd.conf" */
|
||||
+#define _PATH_DHCPD_CONF "/etc/dhcp/dhcpd.conf"
|
||||
+#define _PATH_DHCLIENT_CONF "/etc/dhcp/dhclient.conf"
|
||||
|
||||
/* Network API definitions. You do not need to choose one of these - if
|
||||
you don't choose, one will be chosen for you in your system's config
|
||||
-65
@@ -1,65 +0,0 @@
|
||||
From eec0503cfc36f63d777f5cb3f2719cecedcb8468 Mon Sep 17 00:00:00 2001
|
||||
From: Haris Okanovic <haris.okanovic@ni.com>
|
||||
Date: Mon, 7 Jan 2019 13:22:09 -0600
|
||||
Subject: [PATCH] Workaround busybox limitation in Linux dhclient-script
|
||||
|
||||
Busybox is a lightweight implementation of coreutils commonly used on
|
||||
space-constrained embedded Linux distributions. It's implementation of
|
||||
chown and chmod doesn't provide a "--reference" option added to
|
||||
client/scripts/linux as of commit 9261cb14. This change works around
|
||||
that limitation by using stat to read ownership and permissions flags
|
||||
and simple chown/chmod calls supported in both coreutils and busybox.
|
||||
|
||||
modified: client/scripts/linux
|
||||
|
||||
Signed-off-by: Haris Okanovic <haris.okanovic@ni.com>
|
||||
Upstream-Status: Pending [ISC-Bugs #48771]
|
||||
---
|
||||
client/scripts/linux | 17 +++++++++++++----
|
||||
1 file changed, 13 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/client/scripts/linux b/client/scripts/linux
|
||||
index 0c429697..2435a44b 100755
|
||||
--- a/client/scripts/linux
|
||||
+++ b/client/scripts/linux
|
||||
@@ -32,6 +32,17 @@
|
||||
# if your system holds ip tool in a non-standard location.
|
||||
ip=/sbin/ip
|
||||
|
||||
+chown_chmod_by_reference() {
|
||||
+ local reference_file="$1"
|
||||
+ local target_file="$2"
|
||||
+
|
||||
+ local owner=$(stat -c "%u:%g" "$reference_file")
|
||||
+ local perm=$(stat -c "%a" "$reference_file")
|
||||
+
|
||||
+ chown "$owner" "$target_file"
|
||||
+ chmod "$perm" "$target_file"
|
||||
+}
|
||||
+
|
||||
# update /etc/resolv.conf based on received values
|
||||
# This updated version mostly follows Debian script by Andrew Pollock et al.
|
||||
make_resolv_conf() {
|
||||
@@ -74,8 +85,7 @@ make_resolv_conf() {
|
||||
fi
|
||||
|
||||
if [ -f /etc/resolv.conf ]; then
|
||||
- chown --reference=/etc/resolv.conf $new_resolv_conf
|
||||
- chmod --reference=/etc/resolv.conf $new_resolv_conf
|
||||
+ chown_chmod_by_reference /etc/resolv.conf $new_resolv_conf
|
||||
fi
|
||||
mv -f $new_resolv_conf /etc/resolv.conf
|
||||
# DHCPv6
|
||||
@@ -101,8 +111,7 @@ make_resolv_conf() {
|
||||
fi
|
||||
|
||||
if [ -f /etc/resolv.conf ]; then
|
||||
- chown --reference=/etc/resolv.conf $new_resolv_conf
|
||||
- chmod --reference=/etc/resolv.conf $new_resolv_conf
|
||||
+ chown_chmod_by_reference /etc/resolv.conf $new_resolv_conf
|
||||
fi
|
||||
mv -f $new_resolv_conf /etc/resolv.conf
|
||||
fi
|
||||
--
|
||||
2.20.0
|
||||
|
||||
@@ -1,117 +0,0 @@
|
||||
From be7540d31c356e80ee02e90e8bf162b7ac6e5ba5 Mon Sep 17 00:00:00 2001
|
||||
From: Hongxu Jia <hongxu.jia@windriver.com>
|
||||
Date: Tue, 15 Aug 2017 14:56:56 +0800
|
||||
Subject: [PATCH 02/11] dhclient dbus
|
||||
|
||||
Upstream-Status: Inappropriate [distribution]
|
||||
|
||||
Rebase to 4.3.6
|
||||
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
|
||||
---
|
||||
client/scripts/bsdos | 5 +++++
|
||||
client/scripts/freebsd | 5 +++++
|
||||
client/scripts/linux | 5 +++++
|
||||
client/scripts/netbsd | 5 +++++
|
||||
client/scripts/openbsd | 5 +++++
|
||||
client/scripts/solaris | 5 +++++
|
||||
6 files changed, 30 insertions(+)
|
||||
|
||||
diff --git a/client/scripts/bsdos b/client/scripts/bsdos
|
||||
index d69d0d8..095b143 100755
|
||||
--- a/client/scripts/bsdos
|
||||
+++ b/client/scripts/bsdos
|
||||
@@ -45,6 +45,11 @@ exit_with_hooks() {
|
||||
. /etc/dhclient-exit-hooks
|
||||
fi
|
||||
# probably should do something with exit status of the local script
|
||||
+ if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then
|
||||
+ dbus-send --system --dest=com.redhat.dhcp \
|
||||
+ --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \
|
||||
+ 'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"
|
||||
+ fi
|
||||
exit $exit_status
|
||||
}
|
||||
|
||||
diff --git a/client/scripts/freebsd b/client/scripts/freebsd
|
||||
index 8f3e2a2..ad7fb44 100755
|
||||
--- a/client/scripts/freebsd
|
||||
+++ b/client/scripts/freebsd
|
||||
@@ -89,6 +89,11 @@ exit_with_hooks() {
|
||||
. /etc/dhclient-exit-hooks
|
||||
fi
|
||||
# probably should do something with exit status of the local script
|
||||
+ if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then
|
||||
+ dbus-send --system --dest=com.redhat.dhcp \
|
||||
+ --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \
|
||||
+ 'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"
|
||||
+ fi
|
||||
exit $exit_status
|
||||
}
|
||||
|
||||
diff --git a/client/scripts/linux b/client/scripts/linux
|
||||
index 5fb1612..3d447b6 100755
|
||||
--- a/client/scripts/linux
|
||||
+++ b/client/scripts/linux
|
||||
@@ -174,6 +174,11 @@ exit_with_hooks() {
|
||||
exit_status=$?
|
||||
fi
|
||||
|
||||
+ if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then
|
||||
+ dbus-send --system --dest=com.redhat.dhcp \
|
||||
+ --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \
|
||||
+ 'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"
|
||||
+ fi
|
||||
exit $exit_status
|
||||
}
|
||||
|
||||
diff --git a/client/scripts/netbsd b/client/scripts/netbsd
|
||||
index 07383b7..aaba8e8 100755
|
||||
--- a/client/scripts/netbsd
|
||||
+++ b/client/scripts/netbsd
|
||||
@@ -45,6 +45,11 @@ exit_with_hooks() {
|
||||
. /etc/dhclient-exit-hooks
|
||||
fi
|
||||
# probably should do something with exit status of the local script
|
||||
+ if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then
|
||||
+ dbus-send --system --dest=com.redhat.dhcp \
|
||||
+ --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \
|
||||
+ 'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"
|
||||
+ fi
|
||||
exit $exit_status
|
||||
}
|
||||
|
||||
diff --git a/client/scripts/openbsd b/client/scripts/openbsd
|
||||
index e7f4746..56b980c 100644
|
||||
--- a/client/scripts/openbsd
|
||||
+++ b/client/scripts/openbsd
|
||||
@@ -45,6 +45,11 @@ exit_with_hooks() {
|
||||
. /etc/dhclient-exit-hooks
|
||||
fi
|
||||
# probably should do something with exit status of the local script
|
||||
+ if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then
|
||||
+ dbus-send --system --dest=com.redhat.dhcp \
|
||||
+ --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \
|
||||
+ 'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"
|
||||
+ fi
|
||||
exit $exit_status
|
||||
}
|
||||
|
||||
diff --git a/client/scripts/solaris b/client/scripts/solaris
|
||||
index af553b9..4a2aa69 100755
|
||||
--- a/client/scripts/solaris
|
||||
+++ b/client/scripts/solaris
|
||||
@@ -26,6 +26,11 @@ exit_with_hooks() {
|
||||
. /etc/dhclient-exit-hooks
|
||||
fi
|
||||
# probably should do something with exit status of the local script
|
||||
+ if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then
|
||||
+ dbus-send --system --dest=com.redhat.dhcp \
|
||||
+ --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \
|
||||
+ 'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"
|
||||
+ fi
|
||||
exit $exit_status
|
||||
}
|
||||
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
From d80bd792323dbd56269309f85b4506eb6b1b60e9 Mon Sep 17 00:00:00 2001
|
||||
From: Andrei Gherzan <andrei@gherzan.ro>
|
||||
Date: Tue, 15 Aug 2017 15:05:47 +0800
|
||||
Subject: [PATCH 03/11] link with lcrypto
|
||||
|
||||
From 4.2.0 final release, -lcrypto check was removed and we compile
|
||||
static libraries
|
||||
from bind that are linked to libcrypto. This is why i added a patch in
|
||||
order to add
|
||||
-lcrypto to LIBS.
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
|
||||
|
||||
Rebase to 4.3.6
|
||||
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
|
||||
---
|
||||
configure.ac | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
Index: dhcp-4.4.1/configure.ac
|
||||
===================================================================
|
||||
--- dhcp-4.4.1.orig/configure.ac
|
||||
+++ dhcp-4.4.1/configure.ac
|
||||
@@ -612,6 +612,10 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]],
|
||||
# Look for optional headers.
|
||||
AC_CHECK_HEADERS(sys/socket.h net/if_dl.h net/if6.h regex.h)
|
||||
|
||||
+# find an MD5 library
|
||||
+AC_SEARCH_LIBS(MD5_Init, [crypto])
|
||||
+AC_SEARCH_LIBS(MD5Init, [crypto])
|
||||
+
|
||||
# Solaris needs some libraries for functions
|
||||
AC_SEARCH_LIBS(socket, [socket])
|
||||
AC_SEARCH_LIBS(inet_ntoa, [nsl])
|
||||
@@ -1,95 +0,0 @@
|
||||
From cccec0344d68dac4100b6f260ee24e7c2da9dfda Mon Sep 17 00:00:00 2001
|
||||
From: Hongxu Jia <hongxu.jia@windriver.com>
|
||||
Date: Tue, 15 Aug 2017 15:08:22 +0800
|
||||
Subject: [PATCH 04/11] Fix out of tree builds
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
RP 2013/03/21
|
||||
|
||||
Rebase to 4.3.6
|
||||
|
||||
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
|
||||
---
|
||||
client/Makefile.am | 4 ++--
|
||||
common/Makefile.am | 3 ++-
|
||||
dhcpctl/Makefile.am | 2 ++
|
||||
omapip/Makefile.am | 1 +
|
||||
relay/Makefile.am | 2 +-
|
||||
server/Makefile.am | 2 +-
|
||||
6 files changed, 9 insertions(+), 5 deletions(-)
|
||||
|
||||
Index: dhcp-4.4.1/common/Makefile.am
|
||||
===================================================================
|
||||
--- dhcp-4.4.1.orig/common/Makefile.am
|
||||
+++ dhcp-4.4.1/common/Makefile.am
|
||||
@@ -1,4 +1,5 @@
|
||||
-AM_CPPFLAGS = -I$(top_srcdir) -DLOCALSTATEDIR='"@localstatedir@"'
|
||||
+AM_CPPFLAGS = -I$(top_srcdir)/includes -I$(top_srcdir) -DLOCALSTATEDIR='"@localstatedir@"'
|
||||
+
|
||||
AM_CFLAGS = $(LDAP_CFLAGS)
|
||||
|
||||
lib_LIBRARIES = libdhcp.a
|
||||
Index: dhcp-4.4.1/dhcpctl/Makefile.am
|
||||
===================================================================
|
||||
--- dhcp-4.4.1.orig/dhcpctl/Makefile.am
|
||||
+++ dhcp-4.4.1/dhcpctl/Makefile.am
|
||||
@@ -3,6 +3,8 @@ BINDLIBDNSDIR=@BINDLIBDNSDIR@
|
||||
BINDLIBISCCFGDIR=@BINDLIBISCCFGDIR@
|
||||
BINDLIBISCDIR=@BINDLIBISCDIR@
|
||||
|
||||
+AM_CPPFLAGS = -I$(top_srcdir)/includes -I$(top_srcdir)
|
||||
+
|
||||
bin_PROGRAMS = omshell
|
||||
lib_LIBRARIES = libdhcpctl.a
|
||||
noinst_PROGRAMS = cltest
|
||||
Index: dhcp-4.4.1/server/Makefile.am
|
||||
===================================================================
|
||||
--- dhcp-4.4.1.orig/server/Makefile.am
|
||||
+++ dhcp-4.4.1/server/Makefile.am
|
||||
@@ -4,7 +4,7 @@
|
||||
# production code. Sadly, we are not there yet.
|
||||
SUBDIRS = . tests
|
||||
|
||||
-AM_CPPFLAGS = -I.. -DLOCALSTATEDIR='"@localstatedir@"'
|
||||
+AM_CPPFLAGS = -I$(top_srcdir) -DLOCALSTATEDIR='"@localstatedir@"' -I$(top_srcdir)/includes
|
||||
|
||||
dist_sysconf_DATA = dhcpd.conf.example
|
||||
sbin_PROGRAMS = dhcpd
|
||||
Index: dhcp-4.4.1/client/Makefile.am
|
||||
===================================================================
|
||||
--- dhcp-4.4.1.orig/client/Makefile.am
|
||||
+++ dhcp-4.4.1/client/Makefile.am
|
||||
@@ -5,7 +5,7 @@
|
||||
SUBDIRS = . tests
|
||||
|
||||
AM_CPPFLAGS = -DCLIENT_PATH='"PATH=$(sbindir):/sbin:/bin:/usr/sbin:/usr/bin"'
|
||||
-AM_CPPFLAGS += -DLOCALSTATEDIR='"$(localstatedir)"'
|
||||
+AM_CPPFLAGS += -DLOCALSTATEDIR='"$(localstatedir)"' -I$(top_srcdir)/includes
|
||||
|
||||
dist_sysconf_DATA = dhclient.conf.example
|
||||
sbin_PROGRAMS = dhclient
|
||||
Index: dhcp-4.4.1/omapip/Makefile.am
|
||||
===================================================================
|
||||
--- dhcp-4.4.1.orig/omapip/Makefile.am
|
||||
+++ dhcp-4.4.1/omapip/Makefile.am
|
||||
@@ -2,6 +2,7 @@ BINDLIBIRSDIR=@BINDLIBIRSDIR@
|
||||
BINDLIBDNSDIR=@BINDLIBDNSDIR@
|
||||
BINDLIBISCCFGDIR=@BINDLIBISCCFGDIR@
|
||||
BINDLIBISCDIR=@BINDLIBISCDIR@
|
||||
+AM_CPPFLAGS = -I$(top_srcdir)/includes
|
||||
|
||||
lib_LIBRARIES = libomapi.a
|
||||
noinst_PROGRAMS = svtest
|
||||
Index: dhcp-4.4.1/relay/Makefile.am
|
||||
===================================================================
|
||||
--- dhcp-4.4.1.orig/relay/Makefile.am
|
||||
+++ dhcp-4.4.1/relay/Makefile.am
|
||||
@@ -1,6 +1,6 @@
|
||||
SUBDIRS = . tests
|
||||
|
||||
-AM_CPPFLAGS = -DLOCALSTATEDIR='"@localstatedir@"'
|
||||
+AM_CPPFLAGS = -DLOCALSTATEDIR='"@localstatedir@"' -I$(top_srcdir)/includes
|
||||
|
||||
sbin_PROGRAMS = dhcrelay
|
||||
dhcrelay_SOURCES = dhcrelay.c
|
||||
-36
@@ -1,36 +0,0 @@
|
||||
From 2e8ff0e4f6d39e346ea86b8c514ab4ccc78fa359 Mon Sep 17 00:00:00 2001
|
||||
From: Hongxu Jia <hongxu.jia@windriver.com>
|
||||
Date: Tue, 15 Aug 2017 15:24:14 +0800
|
||||
Subject: [PATCH 05/11] dhcp-client: fix invoke dhclient-script failed on
|
||||
Read-only file system
|
||||
|
||||
In read-only file system, '/etc' is on the readonly partition,
|
||||
and '/etc/resolv.conf' is symlinked to a separate writable
|
||||
partition.
|
||||
|
||||
In this situation, we create temp files 'resolv.conf.dhclient-new'
|
||||
in /tmp dir.
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
|
||||
---
|
||||
client/scripts/linux | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/client/scripts/linux b/client/scripts/linux
|
||||
index 3d447b6..3122a75 100755
|
||||
--- a/client/scripts/linux
|
||||
+++ b/client/scripts/linux
|
||||
@@ -40,7 +40,7 @@ make_resolv_conf() {
|
||||
# DHCPv4
|
||||
if [ -n "$new_domain_search" ] || [ -n "$new_domain_name" ] ||
|
||||
[ -n "$new_domain_name_servers" ]; then
|
||||
- new_resolv_conf=/etc/resolv.conf.dhclient-new
|
||||
+ new_resolv_conf=/tmp/resolv.conf.dhclient-new
|
||||
rm -f $new_resolv_conf
|
||||
|
||||
if [ -n "$new_domain_name" ]; then
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
-62
@@ -1,62 +0,0 @@
|
||||
From 7107511fd209f08f9a96f8938041ae48f3295895 Mon Sep 17 00:00:00 2001
|
||||
From: Christopher Larson <chris_larson@mentor.com>
|
||||
Date: Tue, 15 Aug 2017 16:17:49 +0800
|
||||
Subject: [PATCH 07/11] Add configure argument to make the libxml2 dependency
|
||||
explicit and determinisitic.
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
|
||||
|
||||
Rebase to 4.3.6
|
||||
|
||||
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
|
||||
---
|
||||
configure.ac | 11 +++++++++++
|
||||
1 file changed, 11 insertions(+)
|
||||
|
||||
Index: dhcp-4.4.1/configure.ac
|
||||
===================================================================
|
||||
--- dhcp-4.4.1.orig/configure.ac
|
||||
+++ dhcp-4.4.1/configure.ac
|
||||
@@ -642,6 +642,17 @@ if test "$have_nanosleep" = "rt"; then
|
||||
LIBS="-lrt $LIBS"
|
||||
fi
|
||||
|
||||
+AC_ARG_WITH(libxml2,
|
||||
+ AS_HELP_STRING([--with-libxml2], [link against libxml2. this is needed if bind was built with xml2 support enabled]),
|
||||
+ with_libxml2="$withval", with_libxml2="no")
|
||||
+
|
||||
+if test x$with_libxml2 != xno; then
|
||||
+ AC_SEARCH_LIBS(xmlTextWriterStartElement, [xml2],
|
||||
+ [if test x$with_libxml2 != xauto; then
|
||||
+ AC_MSG_FAILURE([*** Cannot find xmlTextWriterStartElement with -lxml2 and libxml2 was requested])
|
||||
+ fi])
|
||||
+fi
|
||||
+
|
||||
# check for /dev/random (declares HAVE_DEV_RANDOM)
|
||||
AC_MSG_CHECKING(for random device)
|
||||
AC_ARG_WITH(randomdev,
|
||||
Index: dhcp-4.4.1/configure.ac+lt
|
||||
===================================================================
|
||||
--- dhcp-4.4.1.orig/configure.ac+lt
|
||||
+++ dhcp-4.4.1/configure.ac+lt
|
||||
@@ -909,6 +909,18 @@ elif test "$want_libtool" = "yes" -a "$u
|
||||
fi
|
||||
AM_CONDITIONAL(INSTALL_BIND, test "$want_install_bind" = "yes")
|
||||
|
||||
+AC_ARG_WITH(libxml2,
|
||||
+ AS_HELP_STRING([--with-libxml2], [link against libxml2. this is needed if bind was built with xml2 support enabled]),
|
||||
+ with_libxml2="$withval", with_libxml2="no")
|
||||
+
|
||||
+if test x$with_libxml2 != xno; then
|
||||
+ AC_SEARCH_LIBS(xmlTextWriterStartElement, [xml2],,
|
||||
+ [if test x$with_libxml2 != xauto; then
|
||||
+ AC_MSG_FAILURE([*** Cannot find xmlTextWriterStartElement with -lxml2 and libxml2 was requested])
|
||||
+ fi])
|
||||
+fi
|
||||
+
|
||||
+
|
||||
# OpenLDAP support.
|
||||
AC_ARG_WITH(ldap,
|
||||
AS_HELP_STRING([--with-ldap],[enable OpenLDAP support in dhcpd (default is no)]),
|
||||
-28
@@ -1,28 +0,0 @@
|
||||
From f3f8b7726e50e24ef3edf5fa5a17e31d39118d7e Mon Sep 17 00:00:00 2001
|
||||
From: Andre McCurdy <armccurdy@gmail.com>
|
||||
Date: Tue, 15 Aug 2017 15:49:31 +0800
|
||||
Subject: [PATCH 09/11] remove dhclient-script bash dependency
|
||||
|
||||
Upstream-Status: Inappropriate [OE specific]
|
||||
|
||||
Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
|
||||
|
||||
Rebase to 4.3.6
|
||||
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
|
||||
---
|
||||
client/scripts/linux | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/client/scripts/linux b/client/scripts/linux
|
||||
index 3122a75..1712d7d 100755
|
||||
--- a/client/scripts/linux
|
||||
+++ b/client/scripts/linux
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/bin/bash
|
||||
+#!/bin/sh
|
||||
# dhclient-script for Linux. Dan Halbert, March, 1997.
|
||||
# Updated for Linux 2.[12] by Brian J. Murrell, January 1999.
|
||||
# No guarantees about this. I'm a novice at the details of Linux
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
-34
@@ -1,34 +0,0 @@
|
||||
From 501543b3ef715488a142e3d301ff2733aa33eec7 Mon Sep 17 00:00:00 2001
|
||||
From: Awais Belal <awais_belal@mentor.com>
|
||||
Date: Wed, 25 Oct 2017 21:00:05 +0500
|
||||
Subject: [PATCH] dhcp: correct the intention for xml2 lib search
|
||||
|
||||
A missing case breaks the build when libxml2 is
|
||||
required and found appropriately. The third argument
|
||||
to the function AC_SEARCH_LIB is action-if-found which
|
||||
was mistakenly been used for the case where the library
|
||||
is not found and hence breaks the configure phase
|
||||
where it shoud actually pass.
|
||||
We now pass on silently when action-if-found is
|
||||
executed.
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Awais Belal <awais_belal@mentor.com>
|
||||
---
|
||||
configure.ac | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
Index: dhcp-4.4.1/configure.ac
|
||||
===================================================================
|
||||
--- dhcp-4.4.1.orig/configure.ac
|
||||
+++ dhcp-4.4.1/configure.ac
|
||||
@@ -647,7 +647,7 @@ AC_ARG_WITH(libxml2,
|
||||
with_libxml2="$withval", with_libxml2="no")
|
||||
|
||||
if test x$with_libxml2 != xno; then
|
||||
- AC_SEARCH_LIBS(xmlTextWriterStartElement, [xml2],
|
||||
+ AC_SEARCH_LIBS(xmlTextWriterStartElement, [xml2],,
|
||||
[if test x$with_libxml2 != xauto; then
|
||||
AC_MSG_FAILURE([*** Cannot find xmlTextWriterStartElement with -lxml2 and libxml2 was requested])
|
||||
fi])
|
||||
@@ -1,64 +0,0 @@
|
||||
lib and include path is hardcoded for use_libbind
|
||||
|
||||
use libdir and includedir vars
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Armin Kuster <akuster808@gmail.com>
|
||||
|
||||
Index: dhcp-4.4.1/configure.ac+lt
|
||||
===================================================================
|
||||
--- dhcp-4.4.1.orig/configure.ac+lt
|
||||
+++ dhcp-4.4.1/configure.ac+lt
|
||||
@@ -801,22 +801,22 @@ no)
|
||||
if test ! -d "$use_libbind"; then
|
||||
AC_MSG_ERROR([Cannot find bind directory at $use_libbind])
|
||||
fi
|
||||
- if test ! -d "$use_libbind/include" -o \
|
||||
- ! -f "$use_libbind/include/isc/buffer.h"
|
||||
+ if test ! -d "$use_libbind/$includedir" -o \
|
||||
+ ! -f "$use_libbind/$includedir/isc/buffer.h"
|
||||
then
|
||||
- AC_MSG_ERROR([Cannot find bind includes at $use_libbind/include])
|
||||
+ AC_MSG_ERROR([Cannot find bind includes at $use_libbind/$includedir])
|
||||
fi
|
||||
- if test ! -d "$use_libbind/lib" -o \
|
||||
- \( ! -f "$use_libbind/lib/libisc.a" -a \
|
||||
- ! -f "$use_libbind/lib/libisc.la" \)
|
||||
+ if test ! -d "$use_libbind/$libdir" -o \
|
||||
+ \( ! -f "$use_libbind/$libdir/libisc.a" -a \
|
||||
+ ! -f "$use_libbind/$libdir/libisc.la" \)
|
||||
then
|
||||
- AC_MSG_ERROR([Cannot find bind libraries at $use_libbind/lib])
|
||||
+ AC_MSG_ERROR([Cannot find bind libraries at $use_libbind/$libdir])
|
||||
fi
|
||||
BINDDIR="$use_libbind"
|
||||
- BINDLIBIRSDIR="$BINDDIR/lib"
|
||||
- BINDLIBDNSDIR="$BINDDIR/lib"
|
||||
- BINDLIBISCCFGDIR="$BINDDIR/lib"
|
||||
- BINDLIBISCDIR="$BINDDIR/lib"
|
||||
+ BINDLIBIRSDIR="$BINDDIR/$libdir"
|
||||
+ BINDLIBDNSDIR="$BINDDIR/$libdir"
|
||||
+ BINDLIBISCCFGDIR="$BINDDIR/$libdir"
|
||||
+ BINDLIBISCDIR="$BINDDIR/$libdir"
|
||||
DISTCHECK_LIBBIND_CONFIGURE_FLAG="--with-libbind=$use_libbind"
|
||||
;;
|
||||
esac
|
||||
@@ -856,14 +856,14 @@ AC_ARG_ENABLE(libtool,
|
||||
|
||||
if test "$use_libbind" != "no"; then
|
||||
if test "$want_libtool" = "yes" -a \
|
||||
- ! -f "$use_libbind/lib/libisc.la"
|
||||
+ ! -f "$use_libbind/$libdir/libisc.la"
|
||||
then
|
||||
- AC_MSG_ERROR([Cannot find dynamic libraries at $use_libbind/lib])
|
||||
+ AC_MSG_ERROR([Cannot find dynamic libraries at $use_libbind/$libdir])
|
||||
fi
|
||||
if test "$want_libtool" = "no" -a \
|
||||
- ! -f "$use_libbind/lib/libisc.a"
|
||||
+ ! -f "$use_libbind/$libdir/libisc.a"
|
||||
then
|
||||
- AC_MSG_ERROR([Cannot find static libraries at $use_libbind/lib])
|
||||
+ AC_MSG_ERROR([Cannot find static libraries at $use_libbind/$libdir])
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
require dhcp.inc
|
||||
|
||||
SRC_URI += "file://0001-define-macro-_PATH_DHCPD_CONF-and-_PATH_DHCLIENT_CON.patch \
|
||||
file://0002-dhclient-dbus.patch \
|
||||
file://0003-link-with-lcrypto.patch \
|
||||
file://0004-Fix-out-of-tree-builds.patch \
|
||||
file://0005-dhcp-client-fix-invoke-dhclient-script-failed-on-Rea.patch \
|
||||
file://0007-Add-configure-argument-to-make-the-libxml2-dependenc.patch \
|
||||
file://0009-remove-dhclient-script-bash-dependency.patch \
|
||||
file://0012-dhcp-correct-the-intention-for-xml2-lib-search.patch \
|
||||
file://0013-fixup_use_libbind.patch \
|
||||
file://0001-workaround-busybox-limitation-in-linux-dhclient-script.patch \
|
||||
"
|
||||
|
||||
SRC_URI[md5sum] = "2afdaf8498dc1edaf3012efdd589b3e1"
|
||||
SRC_URI[sha256sum] = "1a7ccd64a16e5e68f7b5e0f527fd07240a2892ea53fe245620f4f5f607004521"
|
||||
|
||||
LDFLAGS_append = " -pthread"
|
||||
|
||||
PACKAGECONFIG ?= ""
|
||||
PACKAGECONFIG[bind-httpstats] = "--with-libxml2,--without-libxml2,libxml2"
|
||||
|
||||
CFLAGS += "-fcommon"
|
||||
@@ -1,12 +0,0 @@
|
||||
# Defaults for dhcp-relay initscript
|
||||
# sourced by /etc/init.d/dhcp-relay
|
||||
|
||||
# What servers should the DHCP relay forward requests to?
|
||||
# e.g: SERVERS="192.168.0.1"
|
||||
SERVERS=""
|
||||
|
||||
# On what interfaces should the DHCP relay (dhrelay) serve DHCP requests?
|
||||
INTERFACES=""
|
||||
|
||||
# Additional options that are passed to the DHCP relay daemon?
|
||||
OPTIONS=""
|
||||
@@ -1,7 +0,0 @@
|
||||
# Defaults for dhcp initscript
|
||||
# sourced by /etc/init.d/dhcp-server
|
||||
# installed at /etc/default/dhcp-server by the maintainer scripts
|
||||
|
||||
# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
|
||||
# Separate multiple interfaces with spaces, e.g. "eth0 eth1".
|
||||
INTERFACES=""
|
||||
@@ -1,39 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# In case the interface is used for nfs, skip it.
|
||||
nfsroot=0
|
||||
interfaces=""
|
||||
exec 9<&0 < /proc/mounts
|
||||
while read dev mtpt fstype rest; do
|
||||
if test $mtpt = "/" ; then
|
||||
case $fstype in
|
||||
nfs | nfs4)
|
||||
nfsroot=1
|
||||
nfs_addr=`echo $rest | sed -e 's/^.*addr=\([0-9.]*\).*$/\1/'`
|
||||
break
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
done
|
||||
exec 0<&9 9<&-
|
||||
|
||||
if [ $nfsroot -eq 0 ]; then
|
||||
interfaces="$INTERFACES"
|
||||
else
|
||||
if [ -x /bin/ip -o -x /sbin/ip ] ; then
|
||||
nfs_iface=`ip route get $nfs_addr | grep dev | sed -e 's/^.*dev \([-a-z0-9.]*\).*$/\1/'`
|
||||
fi
|
||||
for i in $INTERFACES; do
|
||||
if test "x$i" = "x$nfs_iface"; then
|
||||
echo "dhclient skipping nfsroot interface $i"
|
||||
else
|
||||
interfaces="$interfaces $i"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
if test "x$interfaces" != "x"; then
|
||||
/sbin/dhclient -d -cf /etc/dhcp/dhclient.conf -q -lf /var/lib/dhcp/dhclient.leases $interfaces
|
||||
fi
|
||||
@@ -1,50 +0,0 @@
|
||||
# Configuration file for /sbin/dhclient, which is included in Debian's
|
||||
# dhcp3-client package.
|
||||
#
|
||||
# This is a sample configuration file for dhclient. See dhclient.conf's
|
||||
# man page for more information about the syntax of this file
|
||||
# and a more comprehensive list of the parameters understood by
|
||||
# dhclient.
|
||||
#
|
||||
# Normally, if the DHCP server provides reasonable information and does
|
||||
# not leave anything out (like the domain name, for example), then
|
||||
# few changes must be made to this file, if any.
|
||||
#
|
||||
|
||||
#send host-name "andare.fugue.com";
|
||||
#send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
|
||||
#send dhcp-lease-time 3600;
|
||||
#supersede domain-name "fugue.com home.vix.com";
|
||||
#prepend domain-name-servers 127.0.0.1;
|
||||
request subnet-mask, broadcast-address, time-offset, routers,
|
||||
domain-name, domain-name-servers, host-name,
|
||||
netbios-name-servers, netbios-scope;
|
||||
#require subnet-mask, domain-name-servers;
|
||||
#timeout 60;
|
||||
#retry 60;
|
||||
#reboot 10;
|
||||
#select-timeout 5;
|
||||
#initial-interval 2;
|
||||
#script "/etc/dhcp3/dhclient-script";
|
||||
#media "-link0 -link1 -link2", "link0 link1";
|
||||
#reject 192.33.137.209;
|
||||
|
||||
#alias {
|
||||
# interface "eth0";
|
||||
# fixed-address 192.5.5.213;
|
||||
# option subnet-mask 255.255.255.255;
|
||||
#}
|
||||
|
||||
#lease {
|
||||
# interface "eth0";
|
||||
# fixed-address 192.33.137.200;
|
||||
# medium "link0 link1";
|
||||
# option host-name "andare.swiftmedia.com";
|
||||
# option subnet-mask 255.255.255.0;
|
||||
# option broadcast-address 192.33.137.255;
|
||||
# option routers 192.33.137.250;
|
||||
# option domain-name-servers 127.0.0.1;
|
||||
# renew 2 2000/1/12 00:00:01;
|
||||
# rebind 2 2000/1/12 00:00:01;
|
||||
# expire 2 2000/1/12 00:00:01;
|
||||
#}
|
||||
@@ -1,13 +0,0 @@
|
||||
[Unit]
|
||||
Description=Dynamic Host Configuration Protocol (DHCP)
|
||||
Wants=network.target
|
||||
Before=network.target
|
||||
After=systemd-udevd.service
|
||||
|
||||
[Service]
|
||||
EnvironmentFile=-@SYSCONFDIR@/default/dhcp-client
|
||||
ExecStart=@BASE_SBINDIR@/dhclient-systemd-wrapper
|
||||
RemainAfterExit=yes
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -1,108 +0,0 @@
|
||||
#
|
||||
# Sample configuration file for ISC dhcpd for Debian
|
||||
#
|
||||
# $Id: dhcpd.conf,v 1.1.1.1 2002/05/21 00:07:44 peloy Exp $
|
||||
#
|
||||
|
||||
# The ddns-updates-style parameter controls whether or not the server will
|
||||
# attempt to do a DNS update when a lease is confirmed. We default to the
|
||||
# behavior of the version 2 packages ('none', since DHCP v2 didn't
|
||||
# have support for DDNS.)
|
||||
ddns-update-style none;
|
||||
|
||||
# option definitions common to all supported networks...
|
||||
option domain-name "example.org";
|
||||
option domain-name-servers ns1.example.org, ns2.example.org;
|
||||
|
||||
default-lease-time 600;
|
||||
max-lease-time 7200;
|
||||
|
||||
# If this DHCP server is the official DHCP server for the local
|
||||
# network, the authoritative directive should be uncommented.
|
||||
#authoritative;
|
||||
|
||||
# Use this to send dhcp log messages to a different log file (you also
|
||||
# have to hack syslog.conf to complete the redirection).
|
||||
log-facility local7;
|
||||
|
||||
# No service will be given on this subnet, but declaring it helps the
|
||||
# DHCP server to understand the network topology.
|
||||
|
||||
#subnet 10.152.187.0 netmask 255.255.255.0 {
|
||||
#}
|
||||
|
||||
# This is a very basic subnet declaration.
|
||||
|
||||
#subnet 10.254.239.0 netmask 255.255.255.224 {
|
||||
# range 10.254.239.10 10.254.239.20;
|
||||
# option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
|
||||
#}
|
||||
|
||||
# This declaration allows BOOTP clients to get dynamic addresses,
|
||||
# which we don't really recommend.
|
||||
|
||||
#subnet 10.254.239.32 netmask 255.255.255.224 {
|
||||
# range dynamic-bootp 10.254.239.40 10.254.239.60;
|
||||
# option broadcast-address 10.254.239.31;
|
||||
# option routers rtr-239-32-1.example.org;
|
||||
#}
|
||||
|
||||
# A slightly different configuration for an internal subnet.
|
||||
#subnet 10.5.5.0 netmask 255.255.255.224 {
|
||||
# range 10.5.5.26 10.5.5.30;
|
||||
# option domain-name-servers ns1.internal.example.org;
|
||||
# option domain-name "internal.example.org";
|
||||
# option routers 10.5.5.1;
|
||||
# option broadcast-address 10.5.5.31;
|
||||
# default-lease-time 600;
|
||||
# max-lease-time 7200;
|
||||
#}
|
||||
|
||||
# Hosts which require special configuration options can be listed in
|
||||
# host statements. If no address is specified, the address will be
|
||||
# allocated dynamically (if possible), but the host-specific information
|
||||
# will still come from the host declaration.
|
||||
|
||||
#host passacaglia {
|
||||
# hardware ethernet 0:0:c0:5d:bd:95;
|
||||
# filename "vmunix.passacaglia";
|
||||
# server-name "toccata.fugue.com";
|
||||
#}
|
||||
|
||||
# Fixed IP addresses can also be specified for hosts. These addresses
|
||||
# should not also be listed as being available for dynamic assignment.
|
||||
# Hosts for which fixed IP addresses have been specified can boot using
|
||||
# BOOTP or DHCP. Hosts for which no fixed address is specified can only
|
||||
# be booted with DHCP, unless there is an address range on the subnet
|
||||
# to which a BOOTP client is connected which has the dynamic-bootp flag
|
||||
# set.
|
||||
#host fantasia {
|
||||
# hardware ethernet 08:00:07:26:c0:a5;
|
||||
# fixed-address fantasia.fugue.com;
|
||||
#}
|
||||
|
||||
# You can declare a class of clients and then do address allocation
|
||||
# based on that. The example below shows a case where all clients
|
||||
# in a certain class get addresses on the 10.17.224/24 subnet, and all
|
||||
# other clients get addresses on the 10.0.29/24 subnet.
|
||||
|
||||
#class "foo" {
|
||||
# match if substring (option vendor-class-identifier, 0, 4) = "SUNW";
|
||||
#}
|
||||
|
||||
#shared-network 224-29 {
|
||||
# subnet 10.17.224.0 netmask 255.255.255.0 {
|
||||
# option routers rtr-224.example.org;
|
||||
# }
|
||||
# subnet 10.0.29.0 netmask 255.255.255.0 {
|
||||
# option routers rtr-29.example.org;
|
||||
# }
|
||||
# pool {
|
||||
# allow members of "foo";
|
||||
# range 10.17.224.10 10.17.224.250;
|
||||
# }
|
||||
# pool {
|
||||
# deny members of "foo";
|
||||
# range 10.0.29.10 10.0.29.230;
|
||||
# }
|
||||
#}
|
||||
@@ -1,15 +0,0 @@
|
||||
[Unit]
|
||||
Description=DHCPv4 Server Daemon
|
||||
Documentation=man:dhcpd(8) man:dhcpd.conf(5)
|
||||
After=network.target
|
||||
After=time-sync.target
|
||||
|
||||
[Service]
|
||||
PIDFile=@localstatedir@/run/dhcpd.pid
|
||||
EnvironmentFile=@SYSCONFDIR@/default/dhcp-server
|
||||
EnvironmentFile=-@SYSCONFDIR@/sysconfig/dhcp-server
|
||||
ExecStartPre=@base_bindir@/touch @localstatedir@/lib/dhcp/dhcpd.leases
|
||||
ExecStart=@SBINDIR@/dhcpd -f -cf @SYSCONFDIR@/dhcp/dhcpd.conf -pf @localstatedir@/run/dhcpd.pid $DHCPDARGS -q $INTERFACES
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -1,15 +0,0 @@
|
||||
[Unit]
|
||||
Description=DHCPv6 Server Daemon
|
||||
Documentation=man:dhcpd(8) man:dhcpd.conf(5)
|
||||
After=network.target
|
||||
After=time-sync.target
|
||||
|
||||
[Service]
|
||||
PIDFile=@localstatedir@/run/dhcpd6.pid
|
||||
EnvironmentFile=@SYSCONFDIR@/default/dhcp-server
|
||||
EnvironmentFile=-@SYSCONFDIR@/sysconfig/dhcpd6
|
||||
ExecStartPre=@base_bindir@/touch @localstatedir@/lib/dhcp/dhcpd6.leases
|
||||
ExecStart=@SBINDIR@/dhcpd -f -6 -cf @SYSCONFDIR@/dhcp/dhcpd6.conf -pf @localstatedir@/run/dhcpd6.pid $DHCPDARGS -q $INTERFACES
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -1,10 +0,0 @@
|
||||
[Unit]
|
||||
Description=DHCP Relay Agent Daemon
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
EnvironmentFile=@SYSCONFDIR@/default/dhcp-relay
|
||||
ExecStart=@SBINDIR@/dhcrelay -d --no-pid -q $SERVERS
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -1,44 +0,0 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# $Id: dhcp3-relay,v 1.1 2004/04/16 15:41:08 ml Exp $
|
||||
#
|
||||
|
||||
# It is not safe to start if we don't have a default configuration...
|
||||
if [ ! -f /etc/default/dhcp-relay ]; then
|
||||
echo "/etc/default/dhcp-relay does not exist! - Aborting..."
|
||||
echo "create this file to fix the problem."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Read init script configuration (interfaces the daemon should listen on
|
||||
# and the DHCP server we should forward requests to.)
|
||||
. /etc/default/dhcp-relay
|
||||
|
||||
# Build command line for interfaces (will be passed to dhrelay below.)
|
||||
IFCMD=""
|
||||
if test "$INTERFACES" != ""; then
|
||||
for I in $INTERFACES; do
|
||||
IFCMD=${IFCMD}"-i "${I}" "
|
||||
done
|
||||
fi
|
||||
|
||||
DHCRELAYPID=/var/run/dhcrelay.pid
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
start-stop-daemon -S -x /usr/sbin/dhcrelay -- -q $OPTIONS $IFCMD $SERVERS
|
||||
;;
|
||||
stop)
|
||||
start-stop-daemon -K -x /usr/sbin/dhcrelay
|
||||
;;
|
||||
restart | force-reload)
|
||||
$0 stop
|
||||
sleep 2
|
||||
$0 start
|
||||
;;
|
||||
*)
|
||||
echo "Usage: /etc/init.d/dhcp-relay {start|stop|restart|force-reload}"
|
||||
exit 1
|
||||
esac
|
||||
|
||||
exit 0
|
||||
@@ -1,44 +0,0 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# $Id: dhcp3-server.init.d,v 1.4 2003/07/13 19:12:41 mdz Exp $
|
||||
#
|
||||
|
||||
test -f /usr/sbin/dhcpd || exit 0
|
||||
|
||||
# It is not safe to start if we don't have a default configuration...
|
||||
if [ ! -f /etc/default/dhcp-server ]; then
|
||||
echo "/etc/default/dhcp-server does not exist! - Aborting..."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Read init script configuration (so far only interfaces the daemon
|
||||
# should listen on.)
|
||||
. /etc/default/dhcp-server
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
echo -n "Starting DHCP server: "
|
||||
test -d /var/lib/dhcp/ || mkdir -p /var/lib/dhcp/
|
||||
test -f /var/lib/dhcp/dhcpd.leases || touch /var/lib/dhcp/dhcpd.leases
|
||||
start-stop-daemon -S -x /usr/sbin/dhcpd -- -q $INTERFACES -user dhcp -group dhcp
|
||||
echo "."
|
||||
;;
|
||||
stop)
|
||||
echo -n "Stopping DHCP server: dhcpd3"
|
||||
start-stop-daemon -K -x /usr/sbin/dhcpd
|
||||
echo "."
|
||||
;;
|
||||
restart | force-reload)
|
||||
$0 stop
|
||||
sleep 2
|
||||
$0 start
|
||||
if [ "$?" != "0" ]; then
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo "Usage: /etc/init.d/dhcp-server {start|stop|restart|force-reload}"
|
||||
exit 1
|
||||
esac
|
||||
|
||||
exit 0
|
||||
-19
@@ -1,19 +0,0 @@
|
||||
# SPDX-License-Identifier: MIT
|
||||
#
|
||||
# Copyright (c) 2020 Arm Limited
|
||||
#
|
||||
|
||||
SUMMARY = "Docker runtime minimal requirements"
|
||||
DESCRIPTION = "The minimal set of packages required for running Docker"
|
||||
|
||||
inherit packagegroup
|
||||
|
||||
RDEPENDS_${PN} = "\
|
||||
docker-ce \
|
||||
docker-ce-contrib \
|
||||
kernel-module-xt-nat \
|
||||
kernel-module-xt-masquerade \
|
||||
kernel-module-xt-addrtype \
|
||||
kernel-module-xt-conntrack \
|
||||
kernel-module-xt-ipvs \
|
||||
"
|
||||
@@ -1,120 +0,0 @@
|
||||
# Recipe to create a minimal Arm Autonomy stack host image
|
||||
|
||||
DESCRIPTION = "Arm Autonomy stack host minimal image"
|
||||
|
||||
inherit core-image
|
||||
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
|
||||
|
||||
# The ARM_AUTONOMY_HOST_IMAGE_EXTERN_GUESTS variable can be used to include in the
|
||||
# image one or several xenguest images.
|
||||
# The list must be space separated and each entry must have the following
|
||||
# format: URL[;guestname=NAME]
|
||||
# - URL can be the full path to a file or a Yocto compatible SRC_URI url
|
||||
# - guestname=NAME can be used to specify the name of the guest. If not
|
||||
# specified the basename of the file (without .xenguest extension) is used.
|
||||
# Here are examples of values:
|
||||
# /home/mydir/myguest.xenguest;guestname=guest1
|
||||
# http://www.url.com/testguest.xenguest
|
||||
#
|
||||
# If you are using the output of an other Yocto project, you should use the
|
||||
# full path syntax instead of the Yocto SRC_URI to be able to use the
|
||||
# symlink version of your image (as the real file has a new name on each
|
||||
# build as it includes the date). You must not use SRC_URI type file:// as
|
||||
# it will try to include the symlink and not the destination file which will
|
||||
# be detected by the recipe and output an error 'Guest file is a symlink'.
|
||||
#
|
||||
# Guests can also be added using a bbapend to this recipe by adding entries
|
||||
# to SRC_URI with parameter ;guestname=NAME to specify the destination
|
||||
# guestname. The parameter guestname must be present as it is used to detect
|
||||
# guests to be added
|
||||
ARM_AUTONOMY_HOST_IMAGE_EXTERN_GUESTS ??= ""
|
||||
|
||||
# Includes minimal set required to start and manage guest. The xen specific
|
||||
# modules are not explicitly included as they are built as part of the kernel
|
||||
# image for performance reasons. It doesn't include all kernel modules to
|
||||
# reduce the image size. If the kernel-modules packages are needed they can
|
||||
# be appended to IMAGE_INSTALL in a bbappend.
|
||||
IMAGE_INSTALL += " \
|
||||
packagegroup-core-boot \
|
||||
packagegroup-core-ssh-openssh \
|
||||
qemu-system-i386 \
|
||||
xenguest-manager \
|
||||
xenguest-network \
|
||||
"
|
||||
|
||||
# Build xen binary
|
||||
EXTRA_IMAGEDEPENDS += "xen"
|
||||
|
||||
# Build xen-devicetree to produce a xen ready devicetree
|
||||
EXTRA_IMAGEDEPENDS += "xen-devicetree"
|
||||
|
||||
python __anonymous() {
|
||||
if bb.utils.contains('DISTRO_FEATURES', 'arm-autonomy-host', False, True, d):
|
||||
raise bb.parse.SkipRecipe("DISTRO_FEATURES does not contain 'arm-autonomy-host'")
|
||||
|
||||
if bb.utils.contains('DISTRO_FEATURES', 'xen', False, True, d):
|
||||
raise bb.parse.SkipRecipe("DISTRO_FEATURES does not contain 'xen'")
|
||||
|
||||
# Check in ARM_AUTONOMY_HOST_IMAGE_EXTERN_GUESTS for extra guests and add them
|
||||
# to SRC_URI with xenguest parameter if not set
|
||||
guestlist = d.getVar('ARM_AUTONOMY_HOST_IMAGE_EXTERN_GUESTS')
|
||||
if guestlist:
|
||||
for guest in guestlist.split():
|
||||
# If the user just specified a file instead of file://FILE, add
|
||||
# the file:// prefix
|
||||
if guest.startswith('/'):
|
||||
guestfile = ''
|
||||
guestname = ''
|
||||
if ';guestname=' in guest:
|
||||
# user specified a guestname
|
||||
guestname = guest.split(';guestname=')[1]
|
||||
guestfile = guest.split(';guestname=')[0]
|
||||
else:
|
||||
# no guestname so use the basename
|
||||
guestname = os.path.basename(guest)
|
||||
guestfile = guest
|
||||
# in case we have a link we need the destination
|
||||
guestfile = os.path.realpath(guestfile)
|
||||
|
||||
# make sure the file exist to give a meaningfull error
|
||||
if not os.path.exists(guestfile):
|
||||
raise bb.parse.SkipRecipe("ARM_AUTONOMY_HOST_IMAGE_EXTERN_GUESTS entry does not exist: " + guest)
|
||||
|
||||
# In case the file is a symlink make sure we use the destination
|
||||
d.appendVar('SRC_URI', ' file://' + guestfile + ';guestname=' + guestname)
|
||||
else:
|
||||
# we have a Yocto URL
|
||||
try:
|
||||
_, _, path, _, _, parm = bb.fetch.decodeurl(guest)
|
||||
# force guestname param in if not already there
|
||||
if not 'guestname' in parm:
|
||||
guest += ';guestname=' + os.path.basename(path)
|
||||
d.appendVar('SRC_URI', ' ' + guest)
|
||||
except:
|
||||
raise bb.parse.SkipRecipe("ARM_AUTONOMY_HOST_IMAGE_EXTERN_GUESTS contains an invalid entry: " + guest)
|
||||
}
|
||||
|
||||
python add_extern_guests () {
|
||||
# Destination directory on the rootfs
|
||||
guestdir = d.getVar('IMAGE_ROOTFS') + d.getVar('datadir') + '/guests'
|
||||
|
||||
# Parse SRC_URI for files with ;guestname= parameter
|
||||
src_uri = d.getVar('SRC_URI')
|
||||
for entry in src_uri.split():
|
||||
_, _, path, _, _, parm = bb.fetch.decodeurl(entry)
|
||||
if 'guestname' in parm:
|
||||
if os.path.islink(path):
|
||||
bb.fatal("Guest file is a symlink: " + path)
|
||||
bb.utils.mkdirhier(guestdir)
|
||||
dstname = parm['guestname']
|
||||
# Add file extension if not there
|
||||
if not dstname.endswith('.xenguest'):
|
||||
dstname += '.xenguest'
|
||||
if not bb.utils.copyfile(path, guestdir + '/' + dstname):
|
||||
bb.fatal("Fail to copy Guest file " + path)
|
||||
}
|
||||
|
||||
IMAGE_PREPROCESS_COMMAND += "add_extern_guests; "
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
# Add support for interface configuration via interfaces.d directory. This
|
||||
# feature can be used by other packages to add network interface
|
||||
# configuration by adding network network interface configuration file under
|
||||
# interfaces.d directory.
|
||||
|
||||
do_install_append() {
|
||||
# Add scan of interfaces.d to interfaces file
|
||||
cp -f ${WORKDIR}/interfaces ${WORKDIR}/interfaces.subdir
|
||||
echo "source-directory ${sysconfdir}/network/interfaces.d/" \
|
||||
>> ${WORKDIR}/interfaces.subdir
|
||||
|
||||
# Create interfaces.d script in case nobody is adding a script
|
||||
# so that there is no error about non existing directory
|
||||
install -d -m 755 ${D}${sysconfdir}/network/interfaces.d
|
||||
|
||||
# Install our file instead of the original one
|
||||
install -m 644 interfaces.subdir ${D}${sysconfdir}/network/interfaces
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
# if arm-autonomy-guest is activated, we are running as a xen guest so we must
|
||||
# have a console on hvc0
|
||||
# This is normally done in meta-virtualization if xen is activated but here
|
||||
# we don't have xen activated.
|
||||
#
|
||||
|
||||
SYSVINIT_ADDHVC0 = "${@bb.utils.contains('DISTRO_FEATURES', \
|
||||
'arm-autonomy-guest', 'true', 'false', d)}"
|
||||
|
||||
do_install_append() {
|
||||
if ${SYSVINIT_ADDHVC0}; then
|
||||
echo "" >> ${D}${sysconfdir}/inittab
|
||||
echo "X0:12345:respawn:/sbin/getty 115200 hvc0" >> \
|
||||
${D}${sysconfdir}/inittab
|
||||
fi
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
# Use OVERRIDES to minimize the usage of
|
||||
# ${@bb.utils.contains('DISTRO_FEATURES', 'xen', ...
|
||||
OVERRIDES_append = "${@bb.utils.contains('DISTRO_FEATURES', 'xen', ':xen', '', d)}"
|
||||
|
||||
# For Xen we only need the i386 binaries
|
||||
QEMU_TARGETS_xen = "i386"
|
||||
|
||||
PACKAGECONFIG[noaudio] = "--audio-drv-list='',,"
|
||||
PACKAGECONFIG_append_xen = " noaudio"
|
||||
PACKAGECONFIG_remove_xen = "fdt sdl kvm"
|
||||
|
||||
require ${@bb.utils.contains('DISTRO_FEATURES', 'xen', 'recipes-devtools/qemu/${BPN}-package-split.inc', '', d)}
|
||||
@@ -1,17 +0,0 @@
|
||||
/ {
|
||||
chosen {
|
||||
xen,dom0-bootargs = "###XEN_DOM0_BOOTARGS###";
|
||||
xen,xen-bootargs = "###XEN_XEN_BOOTARGS###";
|
||||
|
||||
modules {
|
||||
#size-cells = <0x00000001>;
|
||||
#address-cells = <0x00000001>;
|
||||
|
||||
module@0 {
|
||||
reg = <###XEN_DOM0_ADDR### ###XEN_DOM0_SIZE###>;
|
||||
compatible = "multiboot,module";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,72 +0,0 @@
|
||||
# This recipe can be used to modify one or several DTBS to add
|
||||
# entries required to declare and boot Linux as Dom0 from Xen
|
||||
|
||||
SRC_URI = "file://xen.dtsi.in"
|
||||
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "\
|
||||
file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302 \
|
||||
"
|
||||
|
||||
S = "${WORKDIR}"
|
||||
|
||||
DESCRIPTION = "Add entries in DTB for Xen and Dom0"
|
||||
|
||||
# Please refer to documentation/xen-devicetree.md for documentation on those
|
||||
# parameters
|
||||
XEN_DEVICETREE_DEPEND ?= "virtual/kernel:do_deploy"
|
||||
XEN_DEVICETREE_DTBS ?= "${KERNEL_DEVICETREE}"
|
||||
XEN_DEVICETREE_XEN_BOOTARGS ?= "noreboot dom0_mem=${XEN_DEVICETREE_DOM0_MEM}"
|
||||
XEN_DEVICETREE_DOM0_MEM ?= "1024M"
|
||||
XEN_DEVICETREE_DOM0_BOOTARGS ?= "console=hvc0 earlycon=xen"
|
||||
XEN_DEVICETREE_DOM0_ADDR ?= "0x80080000"
|
||||
XEN_DEVICETREE_DOM0_SIZE ?= "0x01000000"
|
||||
XEN_DEVICETREE_DTSI_MERGE ?= "xen.dtsi"
|
||||
|
||||
# Our package does not generate any package for the rootfs but contributes to
|
||||
# deploy
|
||||
inherit nopackages deploy
|
||||
|
||||
DEPENDS += "dtc-native"
|
||||
|
||||
do_configure[noexec] = "1"
|
||||
do_compile[noexec] = "1"
|
||||
do_install[noexec] = "1"
|
||||
|
||||
do_deploy() {
|
||||
if [ ! -f ${WORKDIR}/xen.dtsi.in ]; then
|
||||
die "xen.dtsi.in does not exist"
|
||||
fi
|
||||
cat ${WORKDIR}/xen.dtsi.in \
|
||||
| sed -e "s?###XEN_DOM0_BOOTARGS###?${XEN_DEVICETREE_DOM0_BOOTARGS}?" \
|
||||
| sed -e "s?###XEN_XEN_BOOTARGS###?${XEN_DEVICETREE_XEN_BOOTARGS}?" \
|
||||
| sed -e "s?###XEN_DOM0_ADDR###?${XEN_DEVICETREE_DOM0_ADDR}?" \
|
||||
| sed -e "s?###XEN_DOM0_SIZE###?${XEN_DEVICETREE_DOM0_SIZE}?" \
|
||||
> ${WORKDIR}/xen.dtsi
|
||||
|
||||
# Generate final dtbs
|
||||
for dtbf in ${XEN_DEVICETREE_DTBS}; do
|
||||
rdtb=`basename $dtbf`
|
||||
if [ ! -f ${DEPLOY_DIR_IMAGE}/$rdtb ]; then
|
||||
die "Wrong file in XEN_DEVICETREE_DTBS: ${DEPLOY_DIR_IMAGE}/$rdtb does not exist"
|
||||
fi
|
||||
dtc -I dtb -O dts -o ${WORKDIR}/dom0-linux.dts ${DEPLOY_DIR_IMAGE}/$rdtb
|
||||
|
||||
# Add external includes
|
||||
for inc in ${XEN_DEVICETREE_DTSI_MERGE}; do
|
||||
if [ ! -f ${WORKDIR}/${inc} ]; then
|
||||
die "Wrong file in XEN_DEVICETREE_DTSI_MERGE: ${WORKDIR}/${inc} does not exist"
|
||||
fi
|
||||
echo "/include/ \"$inc\"" >> ${WORKDIR}/dom0-linux.dts
|
||||
done
|
||||
|
||||
rdtbnoextn=`basename $dtbf ".dtb"`
|
||||
dtc -I dts -O dtb \
|
||||
-o ${WORKDIR}/${rdtbnoextn}-xen.dtb ${WORKDIR}/dom0-linux.dts
|
||||
install -m 644 ${rdtbnoextn}-xen.dtb ${DEPLOYDIR}/.
|
||||
done
|
||||
}
|
||||
do_deploy[depends] += "${XEN_DEVICETREE_DEPEND}"
|
||||
|
||||
addtask deploy after do_install
|
||||
|
||||
-40
@@ -1,40 +0,0 @@
|
||||
From 3b418b33265402aab0cb1bf2b745a25724bae2d8 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <3b418b33265402aab0cb1bf2b745a25724bae2d8.1602684880.git.diego.sueiro@arm.com>
|
||||
From: Bertrand Marquis <bertrand.marquis@arm.com>
|
||||
Date: Tue, 18 Aug 2020 14:47:38 +0100
|
||||
Subject: [PATCH] arm: Add Neoverse N1 processor identification
|
||||
|
||||
Add MIDR and CPU part numbers for Neoverse N1
|
||||
|
||||
Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
|
||||
Acked-by: Julien Grall <jgrall@amazon.com>
|
||||
|
||||
Upstream-Status: Backport
|
||||
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
|
||||
---
|
||||
xen/include/asm-arm/processor.h | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/xen/include/asm-arm/processor.h b/xen/include/asm-arm/processor.h
|
||||
index aa642e3..3ca67f8 100644
|
||||
--- a/xen/include/asm-arm/processor.h
|
||||
+++ b/xen/include/asm-arm/processor.h
|
||||
@@ -58,6 +58,7 @@
|
||||
#define ARM_CPU_PART_CORTEX_A73 0xD09
|
||||
#define ARM_CPU_PART_CORTEX_A75 0xD0A
|
||||
#define ARM_CPU_PART_CORTEX_A76 0xD0B
|
||||
+#define ARM_CPU_PART_NEOVERSE_N1 0xD0C
|
||||
|
||||
#define MIDR_CORTEX_A12 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A12)
|
||||
#define MIDR_CORTEX_A17 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A17)
|
||||
@@ -68,6 +69,7 @@
|
||||
#define MIDR_CORTEX_A73 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A73)
|
||||
#define MIDR_CORTEX_A75 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A75)
|
||||
#define MIDR_CORTEX_A76 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A76)
|
||||
+#define MIDR_NEOVERSE_N1 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_N1)
|
||||
|
||||
/* MPIDR Multiprocessor Affinity Register */
|
||||
#define _MPIDR_UP (30)
|
||||
--
|
||||
2.7.4
|
||||
|
||||
-42
@@ -1,42 +0,0 @@
|
||||
From 858c0be8c2fa4125a0fa0acaa03ae730e5c7cb3c Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <858c0be8c2fa4125a0fa0acaa03ae730e5c7cb3c.1602684183.git.diego.sueiro@arm.com>
|
||||
From: Bertrand Marquis <bertrand.marquis@arm.com>
|
||||
Date: Tue, 18 Aug 2020 14:47:39 +0100
|
||||
Subject: [PATCH] xen/arm: Enable CPU Erratum 1165522 for Neoverse
|
||||
|
||||
Enable CPU erratum of Speculative AT on the Neoverse N1 processor
|
||||
versions r0p0 to r2p0.
|
||||
Also Fix Cortex A76 Erratum string which had a wrong errata number.
|
||||
|
||||
Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
|
||||
Acked-by: Julien Grall <jgrall@amazon.com>
|
||||
|
||||
Upstream-Status: Backport
|
||||
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
|
||||
---
|
||||
xen/arch/arm/cpuerrata.c | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/xen/arch/arm/cpuerrata.c b/xen/arch/arm/cpuerrata.c
|
||||
index 0248893..6c09017 100644
|
||||
--- a/xen/arch/arm/cpuerrata.c
|
||||
+++ b/xen/arch/arm/cpuerrata.c
|
||||
@@ -477,8 +477,14 @@ static const struct arm_cpu_capabilities arm_errata[] = {
|
||||
},
|
||||
#endif
|
||||
{
|
||||
+ /* Neoverse r0p0 - r2p0 */
|
||||
+ .desc = "ARM erratum 1165522",
|
||||
+ .capability = ARM64_WORKAROUND_AT_SPECULATE,
|
||||
+ MIDR_RANGE(MIDR_NEOVERSE_N1, 0, 2 << MIDR_VARIANT_SHIFT),
|
||||
+ },
|
||||
+ {
|
||||
/* Cortex-A76 r0p0 - r2p0 */
|
||||
- .desc = "ARM erratum 116522",
|
||||
+ .desc = "ARM erratum 1165522",
|
||||
.capability = ARM64_WORKAROUND_AT_SPECULATE,
|
||||
MIDR_RANGE(MIDR_CORTEX_A76, 0, 2 << MIDR_VARIANT_SHIFT),
|
||||
},
|
||||
--
|
||||
2.7.4
|
||||
|
||||
-35
@@ -1,35 +0,0 @@
|
||||
From 1814a626fb5811184eda64fe22f0055df4600211 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <1814a626fb5811184eda64fe22f0055df4600211.1602684203.git.diego.sueiro@arm.com>
|
||||
From: Julien Grall <jgrall@amazon.com>
|
||||
Date: Tue, 25 Aug 2020 18:38:10 +0100
|
||||
Subject: [PATCH] xen/arm: Update silicon-errata.txt with the Neovers AT
|
||||
erratum
|
||||
|
||||
Commit 858c0be8c2fa "xen/arm: Enable CPU Erratum 1165522 for Neoverse"
|
||||
added a new erratum but forgot to update silicon-errata.txt.
|
||||
|
||||
Update the file accordingly to keep track of errata workaround in Xen.
|
||||
|
||||
Signed-off-by: Julien Grall <jgrall@amazon.com>
|
||||
Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>
|
||||
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
|
||||
|
||||
Upstream-Status: Backport
|
||||
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
|
||||
---
|
||||
docs/misc/arm/silicon-errata.txt | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/docs/misc/arm/silicon-errata.txt b/docs/misc/arm/silicon-errata.txt
|
||||
index 11e5a9d..e15d092 100644
|
||||
--- a/docs/misc/arm/silicon-errata.txt
|
||||
+++ b/docs/misc/arm/silicon-errata.txt
|
||||
@@ -51,4 +51,5 @@ stable hypervisors.
|
||||
| ARM | Cortex-A57 | #1319537 | N/A |
|
||||
| ARM | Cortex-A72 | #1319367 | N/A |
|
||||
| ARM | Cortex-A76 | #1165522 | N/A |
|
||||
+| ARM | Neoverse-N1 | #1165522 | N/A
|
||||
| ARM | MMU-500 | #842869 | N/A |
|
||||
--
|
||||
2.7.4
|
||||
|
||||
-51
@@ -1,51 +0,0 @@
|
||||
From 968bb86d04913f52d7678a842474f2a674a8b23e Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <968bb86d04913f52d7678a842474f2a674a8b23e.1602683678.git.diego.sueiro@arm.com>
|
||||
From: Wei Chen <wei.chen@arm.com>
|
||||
Date: Fri, 28 Aug 2020 02:34:03 +0000
|
||||
Subject: [PATCH] xen/arm: Missing N1/A76/A75 FP registers in vCPU context
|
||||
switch
|
||||
|
||||
Xen has cpu_has_fp/cpu_has_simd to detect whether the CPU supports
|
||||
FP/SIMD or not. But currently, these two MACROs only consider value 0
|
||||
of ID_AA64PFR0_EL1.FP/SIMD as FP/SIMD features enabled. But for CPUs
|
||||
that support FP/SIMD and half-precision floating-point arithmetic, the
|
||||
ID_AA64PFR0_EL1.FP/SIMD are 1 (see Arm ARM DDI0487F.b, D13.2.64).
|
||||
For these CPUs, xen will treat them as no FP/SIMD support, the
|
||||
vfp_save/restore_state will not take effect.
|
||||
|
||||
From the TRM documents of Cortex-A75/A76/N1, we know these CPUs support
|
||||
basic Advanced SIMD/FP and half-precision floating-point arithmetic. In
|
||||
this case, on N1/A76/A75 platforms, Xen will always miss the floating
|
||||
pointer registers save/restore. If different vCPUs are running on the
|
||||
same pCPU, the floating pointer registers will be corrupted randomly.
|
||||
|
||||
This patch fixes Xen on these new cores.
|
||||
|
||||
Signed-off-by: Wei Chen <wei.chen@arm.com>
|
||||
Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>
|
||||
Reviewed-by: Julien Grall <jgrall@amazon.com>
|
||||
|
||||
Upstream-Status: Backport
|
||||
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
|
||||
---
|
||||
xen/include/asm-arm/cpufeature.h | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/xen/include/asm-arm/cpufeature.h b/xen/include/asm-arm/cpufeature.h
|
||||
index 674beb0..10878ea 100644
|
||||
--- a/xen/include/asm-arm/cpufeature.h
|
||||
+++ b/xen/include/asm-arm/cpufeature.h
|
||||
@@ -13,8 +13,8 @@
|
||||
#define cpu_has_el2_64 (boot_cpu_feature64(el2) >= 1)
|
||||
#define cpu_has_el3_32 (boot_cpu_feature64(el3) == 2)
|
||||
#define cpu_has_el3_64 (boot_cpu_feature64(el3) >= 1)
|
||||
-#define cpu_has_fp (boot_cpu_feature64(fp) == 0)
|
||||
-#define cpu_has_simd (boot_cpu_feature64(simd) == 0)
|
||||
+#define cpu_has_fp (boot_cpu_feature64(fp) < 8)
|
||||
+#define cpu_has_simd (boot_cpu_feature64(simd) < 8)
|
||||
#define cpu_has_gicv3 (boot_cpu_feature64(gic) == 1)
|
||||
#endif
|
||||
|
||||
--
|
||||
2.7.4
|
||||
|
||||
-51
@@ -1,51 +0,0 @@
|
||||
From f4c1a541fa351e4f613471bbf397931f9e1ddd27 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <f4c1a541fa351e4f613471bbf397931f9e1ddd27.1602683707.git.diego.sueiro@arm.com>
|
||||
From: Wei Chen <wei.chen@arm.com>
|
||||
Date: Fri, 28 Aug 2020 02:34:04 +0000
|
||||
Subject: [PATCH] xen/arm: Throw messages for unknown FP/SIMD implement ID
|
||||
|
||||
Arm ID_AA64PFR0_EL1 register provides two fields to describe CPU
|
||||
FP/SIMD implementations. Currently, we exactly know the meaning of
|
||||
0x0, 0x1 and 0xf of these fields. Xen treats value < 8 as FP/SIMD
|
||||
features presented. If there is a value 0x2 bumped in the future,
|
||||
Xen behaviors for value <= 0x1 can also take effect. But what Xen
|
||||
done for value <= 0x1 may not always cover new value 0x2 required.
|
||||
We throw these messages to break the silence when Xen detected
|
||||
unknown FP/SIMD IDs to notice user to check.
|
||||
|
||||
Signed-off-by: Wei Chen <wei.chen@arm.com>
|
||||
Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>
|
||||
Acked-by: Julien Grall <jgrall@amazon.com>
|
||||
|
||||
Upstream-Status: Backport
|
||||
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
|
||||
---
|
||||
xen/arch/arm/setup.c | 12 ++++++++++++
|
||||
1 file changed, 12 insertions(+)
|
||||
|
||||
diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
|
||||
index 7968cee..f16b33f 100644
|
||||
--- a/xen/arch/arm/setup.c
|
||||
+++ b/xen/arch/arm/setup.c
|
||||
@@ -133,6 +133,18 @@ static void __init processor_id(void)
|
||||
cpu_has_simd ? " AdvancedSIMD" : "",
|
||||
cpu_has_gicv3 ? " GICv3-SysReg" : "");
|
||||
|
||||
+ /* Warn user if we find unknown floating-point features */
|
||||
+ if ( cpu_has_fp && (boot_cpu_feature64(fp) >= 2) )
|
||||
+ printk(XENLOG_WARNING "WARNING: Unknown Floating-point ID:%d, "
|
||||
+ "this may result in corruption on the platform\n",
|
||||
+ boot_cpu_feature64(fp));
|
||||
+
|
||||
+ /* Warn user if we find unknown AdvancedSIMD features */
|
||||
+ if ( cpu_has_simd && (boot_cpu_feature64(simd) >= 2) )
|
||||
+ printk(XENLOG_WARNING "WARNING: Unknown AdvancedSIMD ID:%d, "
|
||||
+ "this may result in corruption on the platform\n",
|
||||
+ boot_cpu_feature64(simd));
|
||||
+
|
||||
printk(" Debug Features: %016"PRIx64" %016"PRIx64"\n",
|
||||
boot_cpu_data.dbg64.bits[0], boot_cpu_data.dbg64.bits[1]);
|
||||
printk(" Auxiliary Features: %016"PRIx64" %016"PRIx64"\n",
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
|
||||
|
||||
Setting the hostname is failing because the "$XENBUS_PATH/domain"
|
||||
doesn't exist anymore. To fix this we set it to dom$domid
|
||||
|
||||
Index: git/tools/hotplug/Linux/vif-nat
|
||||
===================================================================
|
||||
--- git.orig/tools/hotplug/Linux/vif-nat
|
||||
+++ git/tools/hotplug/Linux/vif-nat
|
||||
@@ -86,6 +86,7 @@ router_ip=$(routing_ip "$ip")
|
||||
vif_ip=`echo ${ip} | awk -F/ '{print $1}'`
|
||||
|
||||
hostname=$(xenstore_read "$XENBUS_PATH/domain" | tr -- '_.:/+' '-----')
|
||||
+[ -z "${hostname}" ] && hostname=dom$domid
|
||||
if [ "$vifid" != "1" ]
|
||||
then
|
||||
hostname="$hostname-$vifid"
|
||||
-45
@@ -1,45 +0,0 @@
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
|
||||
|
||||
Copy temp files used to add/remove dhcpd configurations to avoid
|
||||
replacing potential symlinks.
|
||||
|
||||
Index: git/tools/hotplug/Linux/vif-nat
|
||||
===================================================================
|
||||
--- git.orig/tools/hotplug/Linux/vif-nat
|
||||
+++ git/tools/hotplug/Linux/vif-nat
|
||||
@@ -99,7 +100,8 @@ dhcparg_remove_entry()
|
||||
then
|
||||
rm "$tmpfile"
|
||||
else
|
||||
- mv "$tmpfile" "$dhcpd_arg_file"
|
||||
+ cp "$tmpfile" "$dhcpd_arg_file"
|
||||
+ rm "$tmpfile"
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -109,11 +111,11 @@ dhcparg_add_entry()
|
||||
local tmpfile=$(mktemp)
|
||||
# handle Red Hat, SUSE, and Debian styles, with or without quotes
|
||||
sed -e 's/^DHCPDARGS="*\([^"]*\)"*/DHCPDARGS="\1'"${dev} "'"/' \
|
||||
- "$dhcpd_arg_file" >"$tmpfile" && mv "$tmpfile" "$dhcpd_arg_file"
|
||||
+ "$dhcpd_arg_file" >"$tmpfile" && cp "$tmpfile" "$dhcpd_arg_file"
|
||||
sed -e 's/^DHCPD_INTERFACE="*\([^"]*\)"*/DHCPD_INTERFACE="\1'"${dev} "'"/' \
|
||||
- "$dhcpd_arg_file" >"$tmpfile" && mv "$tmpfile" "$dhcpd_arg_file"
|
||||
+ "$dhcpd_arg_file" >"$tmpfile" && cp "$tmpfile" "$dhcpd_arg_file"
|
||||
sed -e 's/^INTERFACES="*\([^"]*\)"*/INTERFACES="\1'"${dev} "'"/' \
|
||||
- "$dhcpd_arg_file" >"$tmpfile" && mv "$tmpfile" "$dhcpd_arg_file"
|
||||
+ "$dhcpd_arg_file" >"$tmpfile" && cp "$tmpfile" "$dhcpd_arg_file"
|
||||
rm -f "$tmpfile"
|
||||
}
|
||||
|
||||
@@ -125,7 +127,8 @@ dhcp_remove_entry()
|
||||
then
|
||||
rm "$tmpfile"
|
||||
else
|
||||
- mv "$tmpfile" "$dhcpd_conf_file"
|
||||
+ cp "$tmpfile" "$dhcpd_conf_file"
|
||||
+ rm "$tmpfile"
|
||||
fi
|
||||
dhcparg_remove_entry
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
|
||||
|
||||
SRC_URI += "file://0001-vif-nat-fix-hostname.patch \
|
||||
file://0002-vif-nat-fix-symlink-removal.patch \
|
||||
"
|
||||
|
||||
PACKAGECONFIG_remove = "\
|
||||
${@bb.utils.contains('DISTRO_FEATURES', \
|
||||
'arm-autonomy-host', \
|
||||
'sdl', '', d)}"
|
||||
@@ -1,9 +0,0 @@
|
||||
# Make Xen machine specific
|
||||
# This ensures that sstate is properly handled and that each machine can have
|
||||
# its own configuration
|
||||
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||
|
||||
PACKAGECONFIG_remove = "\
|
||||
${@bb.utils.contains('DISTRO_FEATURES', \
|
||||
'arm-autonomy-host', \
|
||||
'sdl', '', d)}"
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user