429254cb2d
Refactors the SONiC Installer to support greater flexibility in building for a given architecture and bootloader. #### Why I did it Currently the SONiC installer assumes that if a platform is ARM based that it uses the `uboot` bootloader and uses the `grub` bootloader otherwise. This is not a correct assumption to make as ARM is not strictly tied to uboot and x86 is not strictly tied to grub. #### How I did it To implement this I introduce the following changes: * Remove the different arch folders from the `installer/` directory * Merge the generic components of the ARM and x86 installer into `installer/installer.sh` * Refactor x86 + grub specific functions into `installer/default_platform.conf` * Modify installer to call `default_platform.conf` file and also call `platform/[platform]/patform.conf` file as well to override as needed * Update references to the installer in the `build_image.sh` script * Add `TARGET_BOOTLOADER` variable that is by default `uboot` for ARM devices and `grub` for x86 unless overridden in `platform/[platform]/rules.mk` * Update bootloader logic in `build_debian.sh` to be based on `TARGET_BOOTLOADER` instead of `TARGET_ARCH` and to reference the grub package in a generic manner #### How to verify it This has been tested on a ARM test platform as well as on Mellanox amd64 switches as well to ensure there was no impact. #### Description for the changelog [arm] Refactor installer and build to allow arm builds targeted at grub platforms #### Link to config_db schema for YANG module changes N/A |
||
---|---|---|
.. | ||
per_namespace | ||
share_image | ||
arp_update_vars.j2 | ||
backend_acl.j2 | ||
buffers_config.j2 | ||
cbf_config.j2 | ||
config-chassisdb.service.j2 | ||
config-setup.service.j2 | ||
database.service.j2 | ||
dhcp_relay.service.j2 | ||
docker_image_ctl.j2 | ||
iccpd.service.j2 | ||
init_cfg.json.j2 | ||
kube_cni.10-flannel.conflist | ||
lldp.service.j2 | ||
lldp.timer.j2 | ||
manifest.json.j2 | ||
mgmt-framework.service.j2 | ||
mgmt-framework.timer | ||
mux.service.j2 | ||
nat.service.j2 | ||
organization_extensions.sh | ||
p4rt.service.j2 | ||
packages.json.j2 | ||
pde.service.j2 | ||
pmon.service.j2 | ||
pmon.timer | ||
qos_config.j2 | ||
radv.service.j2 | ||
restapi.service.j2 | ||
sflow.service.j2 | ||
snmp.service.j2 | ||
snmp.timer | ||
sonic_debian_extension.j2 | ||
sonic_version.yml.j2 | ||
sonic-delayed.target | ||
sonic.target | ||
swss_vars.j2 | ||
tacacs-config.service | ||
tacacs-config.timer | ||
telemetry.service.j2 | ||
telemetry.timer | ||
updategraph.service.j2 |