Files
build/extensions/network/net-network-manager.sh
ColorfulRhino 497c6dce0e extension: net: Refactor, fix and improve network extensions
- Rename extensions with "net-*" prefix
- Put the extensions into their own folder
- Split off time sync packages into their own extensions to be able to be used separately
- Put their config files into directories instead of using inline `cat <<- EOF >`
- Move some other NetworkManager related stuff into the extension
- Remove unneeded steps
- Install iproute2 by default on all images (for the `ip` command)
2024-06-20 19:59:52 +02:00

50 lines
2.2 KiB
Bash

#
# Extension to manage network interfaces with NetworkManager + Netplan
#
function add_host_dependencies__install_network_manager() {
display_alert "Extension: ${EXTENSION}: Installing additional packages" "network-manager network-manager-openvpn netplan.io" "info"
add_packages_to_rootfs network-manager network-manager-openvpn netplan.io
if [[ "${BUILD_DESKTOP}" == "yes" ]]; then
display_alert "Extension: ${EXTENSION}: Installing additional packages for desktop" "network-manager-gnome network-manager-ssh network-manager-vpnc" "info"
add_packages_to_rootfs network-manager-gnome network-manager-ssh network-manager-vpnc
fi
if [[ "${DISTRIBUTION}" == "Ubuntu" ]]; then
display_alert "Extension: ${EXTENSION}: Installing additional packages for Ubuntu" "network-manager-config-connectivity-ubuntu" "info"
add_packages_to_rootfs network-manager-config-connectivity-ubuntu
fi
}
function pre_install_kernel_debs__configure_network_manager()
{
display_alert "Extension: ${EXTENSION}: Enabling Network-Manager" "" "info"
# We can't disable/mask systemd-networkd.service since it is required by Netplan
# Most likely we don't need to wait for nm to get online
chroot_sdcard systemctl disable NetworkManager-wait-online.service
if [[ -n $NM_IGNORE_DEVICES ]]; then
mkdir -p "${SDCARD}"/etc/NetworkManager/conf.d/
cat <<- EOF > "${SDCARD}"/etc/NetworkManager/conf.d/10-ignore-interfaces.conf
[keyfile]
unmanaged-devices=$NM_IGNORE_DEVICES
EOF
fi
# Copy network config files into the appropriate folders
display_alert "Configuring" "NetworkManager and Netplan" "info"
local netplan_config_src_folder="${EXTENSION_DIR}/config-nm/netplan/"
local netplan_config_dst_folder="${SDCARD}/etc/netplan/"
local network_manager_config_src_folder="${EXTENSION_DIR}/config-nm/NetworkManager/"
local network_manager_config_dst_folder="${SDCARD}/etc/NetworkManager/conf.d/"
run_host_command_logged cp "${netplan_config_src_folder}"* "${netplan_config_dst_folder}"
run_host_command_logged cp "${network_manager_config_src_folder}"* "${network_manager_config_dst_folder}"
# Change the file permissions according to https://netplan.readthedocs.io/en/stable/security/
chmod 600 "${SDCARD}"/etc/netplan/*
}