[build]: build ARM kernel support from sonic-linux-kernel (#3556)
* Makefile: ARM kernel support from sonic-linux-kernel * Fix for multiarch build docker spawn Platform: Install the DTB deb for the platform Signed-off-by: Antony Rheneus <arheneus@marvell.com>
This commit is contained in:
parent
150ed36be2
commit
2694e66074
@ -126,7 +126,7 @@ ifneq (,$(filter $(CONFIGURED_ARCH), armhf arm64))
|
|||||||
|
|
||||||
DOCKER_MULTIARCH_CHECK := docker inspect --type image multiarch/qemu-user-static:register &> /dev/null || (echo "multiarch docker not found ..."; docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes)
|
DOCKER_MULTIARCH_CHECK := docker inspect --type image multiarch/qemu-user-static:register &> /dev/null || (echo "multiarch docker not found ..."; docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes)
|
||||||
|
|
||||||
DOCKER_SERVICE_MULTIARCH_CHECK := docker -H unix:///var/run/march/docker.sock info &> /dev/null || (echo "Docker march service not running..."; sudo rm -fr /var/run/march/*; (sudo $(SONIC_NATIVE_DOCKERD_FOR_MUTLIARCH) &) &>/dev/null ; sleep 1; sudo $(SONIC_USERFACL_DOCKERD_FOR_MUTLIARCH);)
|
DOCKER_SERVICE_MULTIARCH_CHECK := docker -H unix:///var/run/march/docker.sock info &> /dev/null || (echo "Docker march service not running..."; sudo rm -fr /var/run/march/; (sudo $(SONIC_NATIVE_DOCKERD_FOR_MUTLIARCH) &) &>/dev/null ; sleep 1; sudo $(SONIC_USERFACL_DOCKERD_FOR_MUTLIARCH);)
|
||||||
|
|
||||||
# Docker service to load the compiled dockers-*.gz
|
# Docker service to load the compiled dockers-*.gz
|
||||||
SONIC_NATIVE_DOCKERD_FOR_DOCKERFS := rm -fr $(PWD)/dockerfs/; mkdir -p $(PWD)/dockerfs/; sudo dockerd --storage-driver=overlay2 --iptables=false \
|
SONIC_NATIVE_DOCKERD_FOR_DOCKERFS := rm -fr $(PWD)/dockerfs/; mkdir -p $(PWD)/dockerfs/; sudo dockerd --storage-driver=overlay2 --iptables=false \
|
||||||
@ -184,8 +184,10 @@ SONIC_BUILD_INSTRUCTION := make \
|
|||||||
%::
|
%::
|
||||||
ifneq (,$(filter $(CONFIGURED_ARCH), armhf arm64))
|
ifneq (,$(filter $(CONFIGURED_ARCH), armhf arm64))
|
||||||
@$(DOCKER_MULTIARCH_CHECK)
|
@$(DOCKER_MULTIARCH_CHECK)
|
||||||
|
ifneq ($(BLDENV), )
|
||||||
@$(DOCKER_SERVICE_MULTIARCH_CHECK)
|
@$(DOCKER_SERVICE_MULTIARCH_CHECK)
|
||||||
@$(DOCKER_SERVICE_DOCKERFS_CHECK)
|
@$(DOCKER_SERVICE_DOCKERFS_CHECK)
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
@$(OVERLAY_MODULE_CHECK)
|
@$(OVERLAY_MODULE_CHECK)
|
||||||
|
|
||||||
|
@ -132,16 +132,11 @@ fi
|
|||||||
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install busybox
|
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install busybox
|
||||||
echo '[INFO] Install SONiC linux kernel image'
|
echo '[INFO] Install SONiC linux kernel image'
|
||||||
## Note: duplicate apt-get command to ensure every line return zero
|
## Note: duplicate apt-get command to ensure every line return zero
|
||||||
if [[ $CONFIGURED_ARCH == armhf || $CONFIGURED_ARCH == arm64 ]]; then
|
|
||||||
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install cpio klibc-utils kmod libklibc udev linux-base
|
|
||||||
sudo dpkg --root=$FILESYSTEM_ROOT -i $debs_path/linux-image-*${CONFIGURED_ARCH}*.deb || \
|
|
||||||
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f
|
|
||||||
fi
|
|
||||||
sudo dpkg --root=$FILESYSTEM_ROOT -i $debs_path/initramfs-tools-core_*.deb || \
|
sudo dpkg --root=$FILESYSTEM_ROOT -i $debs_path/initramfs-tools-core_*.deb || \
|
||||||
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f
|
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f
|
||||||
sudo dpkg --root=$FILESYSTEM_ROOT -i $debs_path/initramfs-tools_*.deb || \
|
sudo dpkg --root=$FILESYSTEM_ROOT -i $debs_path/initramfs-tools_*.deb || \
|
||||||
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f
|
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f
|
||||||
sudo dpkg --root=$FILESYSTEM_ROOT -i $debs_path/linux-image-${LINUX_KERNEL_VERSION}-${CONFIGURED_ARCH}_*.deb || \
|
sudo dpkg --root=$FILESYSTEM_ROOT -i $debs_path/linux-image-${LINUX_KERNEL_VERSION}-*_${CONFIGURED_ARCH}.deb || \
|
||||||
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f
|
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f
|
||||||
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install acl
|
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install acl
|
||||||
[[ $CONFIGURED_ARCH == amd64 ]] && sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install dmidecode
|
[[ $CONFIGURED_ARCH == amd64 ]] && sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install dmidecode
|
||||||
|
@ -1,10 +1,7 @@
|
|||||||
# linux kernel package for marvell armhf
|
# linux kernel package for marvell armhf
|
||||||
|
|
||||||
KVERSION = 4.9.168
|
# Add platform specific DTB
|
||||||
|
LINUX_KERNEL_DTB = linux-image-4.9.168-armhf.deb
|
||||||
|
$(LINUX_KERNEL_DTB)_URL = https://github.com/Marvell-switching/sonic-marvell-binaries/raw/master/armhf/kernel/$(LINUX_KERNEL_DTB)
|
||||||
LINUX_KERNEL = linux-image-4.9.168-armhf.deb
|
SONIC_ONLINE_DEBS += $(LINUX_KERNEL_DTB)
|
||||||
export LINUX_KERNEL
|
SONIC_STRETCH_DEBS += $(LINUX_KERNEL_DTB)
|
||||||
|
|
||||||
$(LINUX_KERNEL)_SRC_PATH = $(PLATFORM_PATH)/linux
|
|
||||||
SONIC_MAKE_DEBS += $(LINUX_KERNEL)
|
|
||||||
|
@ -2,9 +2,9 @@
|
|||||||
SHELL = /bin/bash
|
SHELL = /bin/bash
|
||||||
.SHELLFLAGS += -e
|
.SHELLFLAGS += -e
|
||||||
|
|
||||||
LINUX_KERNEL_MRVL_URL = https://github.com/Marvell-switching/sonic-marvell-binaries/raw/master/armhf/kernel/$(LINUX_KERNEL)
|
LINUX_KERNEL_MRVL_URL = https://github.com/Marvell-switching/sonic-marvell-binaries/raw/master/armhf/kernel/$(LINUX_KERNEL_DTB)
|
||||||
|
|
||||||
$(addprefix $(DEST)/, $(LINUX_KERNEL)): $(DEST)/% :
|
$(addprefix $(DEST)/, $(LINUX_KERNEL_DTB)): $(DEST)/% :
|
||||||
# get deb package
|
# get deb package
|
||||||
wget -O $(DEST)/$(LINUX_KERNEL) $(LINUX_KERNEL_MRVL_URL)
|
wget -O $(DEST)/$(LINUX_KERNEL_DTB) $(LINUX_KERNEL_MRVL_URL)
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ echo "Preparing for installation ... "
|
|||||||
kernel_addr=0x1100000
|
kernel_addr=0x1100000
|
||||||
fdt_addr=0x1000000
|
fdt_addr=0x1000000
|
||||||
|
|
||||||
image_name="/boot/zImage"
|
image_name="/vmlinuz"
|
||||||
fdt_name="/boot/armada-385-ET6448M_4G_Nand.dtb"
|
fdt_name="/boot/armada-385-ET6448M_4G_Nand.dtb"
|
||||||
|
|
||||||
# global mount defines
|
# global mount defines
|
||||||
|
@ -4,6 +4,10 @@ KVERSION_SHORT = 4.9.0-9-2
|
|||||||
KVERSION = $(KVERSION_SHORT)-$(CONFIGURED_ARCH)
|
KVERSION = $(KVERSION_SHORT)-$(CONFIGURED_ARCH)
|
||||||
KERNEL_VERSION = 4.9.168
|
KERNEL_VERSION = 4.9.168
|
||||||
KERNEL_SUBVERSION = 1+deb9u5
|
KERNEL_SUBVERSION = 1+deb9u5
|
||||||
|
ifeq ($(CONFIGURED_ARCH), armhf)
|
||||||
|
# Override kernel version for ARMHF as it uses arm MP (multi-platform) for short version
|
||||||
|
KVERSION = $(KVERSION_SHORT)-armmp
|
||||||
|
endif
|
||||||
|
|
||||||
export KVERSION_SHORT KVERSION KERNEL_VERSION KERNEL_SUBVERSION
|
export KVERSION_SHORT KVERSION KERNEL_VERSION KERNEL_SUBVERSION
|
||||||
|
|
||||||
|
@ -156,6 +156,9 @@ RUN apt-get update && apt-get install -y \
|
|||||||
# For broadcom sdk build
|
# For broadcom sdk build
|
||||||
{%- if CONFIGURED_ARCH == "amd64" %}
|
{%- if CONFIGURED_ARCH == "amd64" %}
|
||||||
linux-compiler-gcc-6-x86 \
|
linux-compiler-gcc-6-x86 \
|
||||||
|
{%- endif %}
|
||||||
|
{%- if CONFIGURED_ARCH == "armhf" %}
|
||||||
|
linux-compiler-gcc-6-arm \
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
linux-kbuild-4.9 \
|
linux-kbuild-4.9 \
|
||||||
# teamd build
|
# teamd build
|
||||||
|
Reference in New Issue
Block a user