Skip to content

Commit a9e692b

Browse files
committed
[build_debian]: install deps in rootfs instead of just extracting the packages
packages contains post-install that needs to be performed
1 parent 55acd9e commit a9e692b

File tree

6 files changed

+21
-7
lines changed

6 files changed

+21
-7
lines changed

.gitmodules

+2-2
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,6 @@
5050
[submodule "platform/broadcom/sonic-platform-modules-s6000"]
5151
path = platform/broadcom/sonic-platform-modules-s6000
5252
url = https://github.com/Azure/sonic-platform-modules-s6000
53-
[submodule "sonic-platform-modules-arista"]
53+
[submodule "platform/broadcom/sonic-platform-modules-arista"]
5454
path = platform/broadcom/sonic-platform-modules-arista
55-
url = https://github.com/lguohan/sonic-1
55+
url = https://github.com/aristanetworks/sonic

build_debian.sh

+1-4
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ DEFAULT_USERINFO="Default admin user,,,"
5858

5959
## Prepare the file system directory
6060
if [[ -d $FILESYSTEM_ROOT ]]; then
61-
sudo rm -r $FILESYSTEM_ROOT || die "Failed to clean chroot directory"
61+
sudo rm -rf $FILESYSTEM_ROOT || die "Failed to clean chroot directory"
6262
fi
6363
mkdir -p $FILESYSTEM_ROOT
6464

@@ -272,6 +272,3 @@ pushd $FILESYSTEM_ROOT && sudo tar czf $OLDPWD/$FILESYSTEM_DOCKERFS -C var/lib/d
272272
## Compress together with /boot and /var/lib/docker as an installer payload zip file
273273
pushd $FILESYSTEM_ROOT && sudo zip $OLDPWD/$ONIE_INSTALLER_PAYLOAD -r boot/; popd
274274
sudo zip -g $ONIE_INSTALLER_PAYLOAD $FILESYSTEM_SQUASHFS $FILESYSTEM_DOCKERFS
275-
276-
## Remove fsroot
277-
sudo rm -rf $FILESYSTEM_ROOT

files/build_templates/sonic_debian_extension.j2

+15
Original file line numberDiff line numberDiff line change
@@ -95,9 +95,24 @@ sudo mv sonic_version.yml $FILESYSTEM_ROOT/etc/sonic/
9595
# Copy sudoers configuration file
9696
sudo cp $IMAGE_CONFIGS/sudoers/sudoers $FILESYSTEM_ROOT/etc/
9797

98+
## Install package without starting service
99+
## ref: https://wiki.debian.org/chroot
100+
sudo tee -a $FILESYSTEM_ROOT/usr/sbin/policy-rc.d > /dev/null <<EOF
101+
#!/bin/sh
102+
exit 101
103+
EOF
104+
sudo chmod a+x $FILESYSTEM_ROOT/usr/sbin/policy-rc.d
105+
98106
{% for deb in installer_debs.strip().split(' ') -%}
107+
if [ $sonic_asic_platform == "mellanox" ]; then
99108
sudo dpkg --extract {{deb}} $FILESYSTEM_ROOT
109+
else
110+
sudo dpkg --root=$FILESYSTEM_ROOT -i {{deb}} || sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f
111+
fi
100112
{% endfor %}
113+
114+
sudo rm -f $FILESYSTEM_ROOT/usr/sbin/policy-rc.d
115+
101116
## Run depmod command for target kernel modules
102117
sudo LANG=C chroot $FILESYSTEM_ROOT depmod -a {{kversion}}
103118
{% endif %}

platform/broadcom/docker-syncd-brcm.mk

+1
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@ SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_SYNCD_BRCM)
1111
$(DOCKER_SYNCD_BRCM)_CONTAINER_NAME = syncd
1212
$(DOCKER_SYNCD_BRCM)_RUN_OPT += --net=host --privileged -t
1313
$(DOCKER_SYNCD_BRCM)_RUN_OPT += -v /host/machine.conf:/etc/machine.conf
14+
$(DOCKER_SYNCD_BRCM)_RUN_OPT += -v /var/run/docker-syncd:/var/run/sswsyncd
1415
$(DOCKER_SYNCD_BRCM)_RUN_OPT += --volumes-from database
1516
$(DOCKER_SYNCD_BRCM)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro

slave.mk

+1
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,7 @@ $(addprefix $(TARGET_PATH)/, $(SONIC_INSTALLERS)) : $(TARGET_PATH)/% : .platform
297297
export image_type="$($*_IMAGE_TYPE)"
298298
export sonicadmin_user="$(USERNAME)"
299299
export sonic_hwsku="$(CONFIGURED_SKU)"
300+
export sonic_asic_platform="$(CONFIGURED_PLATFORM)"
300301
$(foreach docker, $($*_DOCKERS),\
301302
export docker_image="$(docker)"
302303
export docker_image_name="$(basename $(docker))"

0 commit comments

Comments
 (0)