mirror of
https://github.com/Fishwaldo/build.git
synced 2025-03-15 11:21:29 +00:00
Better user path config and support for etworkd
add user path for configuration scan check for NetworkManager/networkd support for bullseye (i.e. path: config/cli and files: packages, packages.remove)
This commit is contained in:
parent
757d9bc8d2
commit
738996ea33
8 changed files with 100 additions and 43 deletions
|
@ -301,13 +301,13 @@ chroot_installpackages_local()
|
|||
local conf="${SRC}"/config/aptly-temp.conf
|
||||
rm -rf /tmp/aptly-temp/
|
||||
mkdir -p /tmp/aptly-temp/
|
||||
aptly -config="${conf}" repo create temp
|
||||
aptly -config="${conf}" repo create temp >> "${DEST}"/debug/install.log
|
||||
# NOTE: this works recursively
|
||||
aptly -config="${conf}" repo add temp "${DEB_STORAGE}/extra/${RELEASE}-desktop/"
|
||||
aptly -config="${conf}" repo add temp "${DEB_STORAGE}/extra/${RELEASE}-utils/"
|
||||
aptly -config="${conf}" repo add temp "${DEB_STORAGE}/extra/${RELEASE}-desktop/" >> "${DEST}"/debug/install.log
|
||||
aptly -config="${conf}" repo add temp "${DEB_STORAGE}/extra/${RELEASE}-utils/" >> "${DEST}"/debug/install.log
|
||||
# -gpg-key="925644A6"
|
||||
aptly -keyring="${SRC}/packages/extras-buildpkgs/buildpkg-public.gpg" -secret-keyring="${SRC}/packages/extras-buildpkgs/buildpkg.gpg" -batch=true -config="${conf}" \
|
||||
-gpg-key="925644A6" -passphrase="testkey1234" -component=temp -distribution="${RELEASE}" publish repo temp
|
||||
-gpg-key="925644A6" -passphrase="testkey1234" -component=temp -distribution="${RELEASE}" publish repo temp >> "${DEST}"/debug/install.log
|
||||
aptly -config="${conf}" -listen=":8189" serve &
|
||||
local aptly_pid=$!
|
||||
cp "${SRC}"/packages/extras-buildpkgs/buildpkg.key "${SDCARD}"/tmp/buildpkg.key
|
||||
|
@ -329,7 +329,6 @@ chroot_installpackages()
|
|||
{
|
||||
local remote_only=$1
|
||||
local install_list=""
|
||||
display_alert "Installing additional packages" "EXTERNAL_NEW"
|
||||
for plugin in "${SRC}"/packages/extras-buildpkgs/*.conf; do
|
||||
source "${plugin}"
|
||||
if [[ $(type -t package_checkinstall) == function ]] && package_checkinstall; then
|
||||
|
@ -337,6 +336,12 @@ chroot_installpackages()
|
|||
fi
|
||||
unset package_install_target package_checkinstall
|
||||
done
|
||||
if [[ -n $PACKAGE_LIST_RM ]]; then
|
||||
install_list=$(sed -r "s/\W($(tr ' ' '|' <<< ${PACKAGE_LIST_RM}))\W/ /g" <<< " ${install_list} ")
|
||||
install_list="$(echo ${install_list})"
|
||||
fi
|
||||
display_alert "Installing extras-buildpkgs" "$install_list"
|
||||
|
||||
[[ $NO_APT_CACHER != yes ]] && local apt_extra="-o Acquire::http::Proxy=\"http://${APT_PROXY_ADDR:-localhost:3142}\" -o Acquire::http::Proxy::localhost=\"DIRECT\""
|
||||
cat <<-EOF > "${SDCARD}"/tmp/install.sh
|
||||
#!/bin/bash
|
||||
|
@ -359,5 +364,5 @@ chroot_installpackages()
|
|||
rm -- "\$0"
|
||||
EOF
|
||||
chmod +x "${SDCARD}"/tmp/install.sh
|
||||
chroot "${SDCARD}" /bin/bash -c "/tmp/install.sh"
|
||||
chroot "${SDCARD}" /bin/bash -c "/tmp/install.sh" >> "${DEST}"/debug/install.log 2>&1
|
||||
} #############################################################################
|
||||
|
|
|
@ -189,7 +189,7 @@ compile_uboot()
|
|||
rm -rf "${atftempdir}"
|
||||
fi
|
||||
|
||||
echo -e "\n\t== u-boot ==\n" >> "${DEST}"/debug/compilation.log
|
||||
echo -e "\n\t== u-boot make $BOOTCONFIG ==\n" >> "${DEST}"/debug/compilation.log
|
||||
eval CCACHE_BASEDIR="$(pwd)" env PATH="${toolchain}:${toolchain2}:${PATH}" \
|
||||
'make $CTHREADS $BOOTCONFIG \
|
||||
CROSS_COMPILE="$CCACHE $UBOOT_COMPILER"' 2>> "${DEST}"/debug/compilation.log \
|
||||
|
@ -225,6 +225,7 @@ compile_uboot()
|
|||
cross_compile="CROSS_COMPILE=$CCACHE $UBOOT_COMPILER";
|
||||
[[ -n $UBOOT_TOOLCHAIN2 ]] && cross_compile="ARMBIAN=foe"; # empty parameter is not allowed
|
||||
|
||||
echo -e "\n\t== u-boot make $target_make ==\n" >> "${DEST}"/debug/compilation.log
|
||||
eval CCACHE_BASEDIR="$(pwd)" env PATH="${toolchain}:${toolchain2}:${PATH}" \
|
||||
'make $target_make $CTHREADS \
|
||||
"${cross_compile}"' 2>>"${DEST}"/debug/compilation.log \
|
||||
|
|
|
@ -311,17 +311,18 @@ fi
|
|||
# Write to variables :
|
||||
# - aggregated_content
|
||||
aggregate_content() {
|
||||
echo -e "Potential paths : ${potential_paths}\n" >> "${DEST}"/debug/output.log
|
||||
echo -e "Potential paths : ${potential_paths}" >> "${DEST}"/debug/output.log
|
||||
for filepath in ${potential_paths}; do
|
||||
if [[ -f "${filepath}" ]]; then
|
||||
echo -e "${filepath/"$SRC"\//} yes\n" >> "${DEST}"/debug/output.log
|
||||
echo -e "${filepath/"$SRC"\//} yes" >> "${DEST}"/debug/output.log
|
||||
aggregated_content+=$(cat "${filepath}")
|
||||
aggregated_content+="${separator}"
|
||||
else
|
||||
echo -e "${filepath/"$SRC"\//} no\n" >> "${DEST}"/debug/output.log
|
||||
# else
|
||||
# echo -e "${filepath/"$SRC"\//} no\n" >> "${DEST}"/debug/output.log
|
||||
fi
|
||||
|
||||
done
|
||||
echo "" >> "${DEST}"/debug/output.log
|
||||
}
|
||||
|
||||
# set unique mounting directory
|
||||
|
@ -366,6 +367,7 @@ ${SRC}/config/optional/_any_board/_configs
|
|||
${SRC}/config/optional/architectures/${ARCH}/_config
|
||||
${SRC}/config/optional/families/${LINUXFAMILY}/_config
|
||||
${SRC}/config/optional/boards/${BOARD}/_config
|
||||
${USERPATCHES_PATH}
|
||||
"
|
||||
|
||||
DEBOOTSTRAP_SEARCH_RELATIVE_DIRS="
|
||||
|
|
|
@ -53,10 +53,10 @@ debootstrap_ng()
|
|||
install_common
|
||||
|
||||
# install locally built packages
|
||||
[[ $EXTERNAL_NEW == compile ]] && chroot_installpackages_local >> "${DEST}"/debug/install.log 2>&1
|
||||
[[ $EXTERNAL_NEW == compile ]] && chroot_installpackages_local
|
||||
|
||||
# install from apt.armbian.com
|
||||
[[ $EXTERNAL_NEW == prebuilt ]] && chroot_installpackages "yes" >> "${DEST}"/debug/install.log 2>&1
|
||||
[[ $EXTERNAL_NEW == prebuilt ]] && chroot_installpackages "yes"
|
||||
|
||||
# stage: user customization script
|
||||
# NOTE: installing too many packages may fill tmpfs mount
|
||||
|
@ -169,7 +169,7 @@ create_rootfs_cache()
|
|||
|
||||
display_alert "Installing base system" "Stage 1/2" "info"
|
||||
eval 'debootstrap --variant=minbase --include=${DEBOOTSTRAP_LIST// /,} ${PACKAGE_LIST_EXCLUDE:+ --exclude=${PACKAGE_LIST_EXCLUDE// /,}} \
|
||||
--arch=$ARCH --components=${DEBOOTSTRAP_COMPONENTS} --foreign $RELEASE $SDCARD/ $apt_mirror' \
|
||||
--arch=$ARCH --components=${DEBOOTSTRAP_COMPONENTS} $DEBOOTSTRAP_OPTION --foreign $RELEASE $SDCARD/ $apt_mirror' \
|
||||
${PROGRESS_LOG_TO_FILE:+' | tee -a $DEST/debug/debootstrap.log'} \
|
||||
${OUTPUT_DIALOG:+' | dialog --backtitle "$backtitle" --progressbox "Debootstrap (stage 1/2)..." $TTY_Y $TTY_X'} \
|
||||
${OUTPUT_VERYSILENT:+' >/dev/null 2>/dev/null'}
|
||||
|
|
|
@ -178,7 +178,11 @@ install_common()
|
|||
|
||||
else
|
||||
|
||||
cp "${SRC}/config/bootscripts/${bootscript_src}" "${SDCARD}/boot/${bootscript_dst}"
|
||||
if [ -f "${USERPATCHES_PATH}/bootscripts/${bootscript_src}" ]; then
|
||||
cp "${USERPATCHES_PATH}/bootscripts/${bootscript_src}" "${SDCARD}/boot/${bootscript_dst}"
|
||||
else
|
||||
cp "${SRC}/config/bootscripts/${bootscript_src}" "${SDCARD}/boot/${bootscript_dst}"
|
||||
fi
|
||||
|
||||
if [[ -n $BOOTENV_FILE ]]; then
|
||||
if [[ -f $USERPATCHES_PATH/bootenv/$BOOTENV_FILE ]]; then
|
||||
|
@ -450,7 +454,7 @@ install_common()
|
|||
cp "${SDCARD}"/etc/armbian-release "${SDCARD}"/etc/armbian-image-release
|
||||
|
||||
# DNS fix. package resolvconf is not available everywhere
|
||||
if [ -d /etc/resolvconf/resolv.conf.d ]; then
|
||||
if [ -d /etc/resolvconf/resolv.conf.d ] && [ -n "$NAMESERVER" ]; then
|
||||
echo "nameserver $NAMESERVER" > "${SDCARD}"/etc/resolvconf/resolv.conf.d/head
|
||||
fi
|
||||
|
||||
|
@ -460,14 +464,54 @@ install_common()
|
|||
# enable PubkeyAuthentication
|
||||
sed -i 's/#\?PubkeyAuthentication .*/PubkeyAuthentication yes/' "${SDCARD}"/etc/ssh/sshd_config
|
||||
|
||||
# configure network manager
|
||||
sed "s/managed=\(.*\)/managed=true/g" -i "${SDCARD}"/etc/NetworkManager/NetworkManager.conf
|
||||
if [ -f "${SDCARD}"/etc/NetworkManager/NetworkManager.conf ]; then
|
||||
# configure network manager
|
||||
sed "s/managed=\(.*\)/managed=true/g" -i "${SDCARD}"/etc/NetworkManager/NetworkManager.conf
|
||||
|
||||
# remove network manager defaults to handle eth by default
|
||||
rm -f "${SDCARD}"/usr/lib/NetworkManager/conf.d/10-globally-managed-devices.conf
|
||||
# remove network manager defaults to handle eth by default
|
||||
rm -f "${SDCARD}"/usr/lib/NetworkManager/conf.d/10-globally-managed-devices.conf
|
||||
|
||||
# most likely we don't need to wait for nm to get online
|
||||
chroot "${SDCARD}" /bin/bash -c "systemctl disable NetworkManager-wait-online.service" >> "${DEST}"/debug/install.log 2>&1
|
||||
# most likely we don't need to wait for nm to get online
|
||||
chroot "${SDCARD}" /bin/bash -c "systemctl disable NetworkManager-wait-online.service" >> "${DEST}"/debug/install.log 2>&1
|
||||
|
||||
# Just regular DNS and maintain /etc/resolv.conf as a file
|
||||
sed "/dns/d" -i "${SDCARD}"/etc/NetworkManager/NetworkManager.conf
|
||||
sed "s/\[main\]/\[main\]\ndns=default\nrc-manager=file/g" -i "${SDCARD}"/etc/NetworkManager/NetworkManager.conf
|
||||
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
|
||||
|
||||
elif [ -d "${SDCARD}"/etc/systemd/network ]; then
|
||||
# configure networkd
|
||||
rm "${SDCARD}"/etc/resolv.conf
|
||||
ln -s /run/systemd/resolve/resolv.conf "${SDCARD}"/etc/resolv.conf
|
||||
|
||||
# enable services
|
||||
chroot "${SDCARD}" /bin/bash -c "systemctl enable systemd-networkd.service systemd-resolved.service" >> "${DEST}"/debug/install.log 2>&1
|
||||
|
||||
if [ -e /etc/systemd/timesyncd.conf ]; then
|
||||
chroot "${SDCARD}" /bin/bash -c "systemctl enable systemd-timesyncd.service" >> "${DEST}"/debug/install.log 2>&1
|
||||
fi
|
||||
umask 022
|
||||
cat > "${SDCARD}"/etc/systemd/network/eth0.network <<- __EOF__
|
||||
[Match]
|
||||
Name=eth0
|
||||
|
||||
[Network]
|
||||
DHCP=ipv4
|
||||
LinkLocalAddressing=ipv4
|
||||
#Address=192.168.1.100/24
|
||||
#Gateway=192.168.1.1
|
||||
#DNS=192.168.1.1
|
||||
#Domains=example.com
|
||||
NTP=0.pool.ntp.org 1.pool.ntp.org
|
||||
__EOF__
|
||||
|
||||
fi
|
||||
|
||||
# avahi daemon defaults if exists
|
||||
[[ -f "${SDCARD}"/usr/share/doc/avahi-daemon/examples/sftp-ssh.service ]] && \
|
||||
|
@ -475,17 +519,6 @@ install_common()
|
|||
[[ -f "${SDCARD}"/usr/share/doc/avahi-daemon/examples/ssh.service ]] && \
|
||||
cp "${SDCARD}"/usr/share/doc/avahi-daemon/examples/ssh.service "${SDCARD}"/etc/avahi/services/
|
||||
|
||||
# Just regular DNS and maintain /etc/resolv.conf as a file
|
||||
sed "/dns/d" -i "${SDCARD}"/etc/NetworkManager/NetworkManager.conf
|
||||
sed "s/\[main\]/\[main\]\ndns=default\nrc-manager=file/g" -i "${SDCARD}"/etc/NetworkManager/NetworkManager.conf
|
||||
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
|
||||
|
||||
# nsswitch settings for sane DNS behavior: remove resolve, assure libnss-myhostname support
|
||||
sed "s/hosts\:.*/hosts: files mymachines dns myhostname/g" -i "${SDCARD}"/etc/nsswitch.conf
|
||||
|
||||
|
@ -584,15 +617,23 @@ install_distribution_specific()
|
|||
# rc.local is not existing but one might need it
|
||||
install_rclocal
|
||||
|
||||
# Basic Netplan config. Let NetworkManager manage all devices on this system
|
||||
if [ -d "${SDCARD}"/etc/NetworkManager ]; then
|
||||
local RENDERER=NetworkManager
|
||||
else
|
||||
local RENDERER=networkd
|
||||
fi
|
||||
|
||||
# Basic Netplan config. Let NetworkManager/networkd manage all devices on this system
|
||||
[[ -d "${SDCARD}"/etc/netplan ]] && cat <<-EOF > "${SDCARD}"/etc/netplan/armbian-default.yaml
|
||||
network:
|
||||
version: 2
|
||||
renderer: NetworkManager
|
||||
renderer: $RENDERER
|
||||
EOF
|
||||
|
||||
# DNS fix
|
||||
sed -i "s/#DNS=.*/DNS=$NAMESERVER/g" "${SDCARD}"/etc/systemd/resolved.conf
|
||||
if [ -n "$NAMESERVER" ]; then
|
||||
sed -i "s/#DNS=.*/DNS=$NAMESERVER/g" "${SDCARD}"/etc/systemd/resolved.conf
|
||||
fi
|
||||
|
||||
# Journal service adjustements
|
||||
sed -i "s/#Storage=.*/Storage=volatile/g" "${SDCARD}"/etc/systemd/journald.conf
|
||||
|
|
|
@ -1000,7 +1000,7 @@ prepare_host()
|
|||
parted pkg-config libncurses5-dev whiptail debian-keyring debian-archive-keyring f2fs-tools libfile-fcntllock-perl rsync libssl-dev \
|
||||
nfs-kernel-server btrfs-progs ncurses-term p7zip-full kmod dosfstools libc6-dev-armhf-cross imagemagick \
|
||||
curl patchutils liblz4-tool libpython2.7-dev linux-base swig aptly acl python3-dev python3-distutils \
|
||||
locales ncurses-base pixz dialog systemd-container udev lib32stdc++6 libc6-i386 lib32ncurses5 lib32tinfo5 \
|
||||
locales ncurses-base pixz dialog systemd-container udev libfdt-dev lib32stdc++6 libc6-i386 lib32ncurses5 lib32tinfo5 \
|
||||
bison libbison-dev flex libfl-dev cryptsetup gpg gnupg1 cpio aria2 pigz dirmngr python3-distutils jq"
|
||||
|
||||
# build aarch64
|
||||
|
@ -1020,7 +1020,7 @@ prepare_host()
|
|||
local codename=$(lsb_release -sc)
|
||||
|
||||
# Add support for Ubuntu 20.04, 21.04 and Mint Ulyana
|
||||
if [[ $codename =~ ^(focal|groovy|hirsute|ulyana)$ ]]; then
|
||||
if [[ $codename =~ ^(focal|groovy|hirsute|ulyana|bullseye)$ ]]; then
|
||||
hostdeps+=" python2 python3"
|
||||
ln -fs /usr/bin/python2.7 /usr/bin/python2
|
||||
ln -fs /usr/bin/python2.7 /usr/bin/python
|
||||
|
@ -1035,7 +1035,7 @@ prepare_host()
|
|||
#
|
||||
# NO_HOST_RELEASE_CHECK overrides the check for a supported host system
|
||||
# Disable host OS check at your own risk. Any issues reported with unsupported releases will be closed without discussion
|
||||
if [[ -z $codename || "buster groovy focal hirsute debbie tricia ulyana" != *"$codename"* ]]; then
|
||||
if [[ -z $codename || "buster bullseye groovy focal hirsute debbie tricia ulyana" != *"$codename"* ]]; then
|
||||
if [[ $NO_HOST_RELEASE_CHECK == yes ]]; then
|
||||
display_alert "You are running on an unsupported system" "${codename:-(unknown)}" "wrn"
|
||||
display_alert "Do not report any errors, warnings or other issues encountered beyond this point" "" "wrn"
|
||||
|
@ -1051,7 +1051,7 @@ prepare_host()
|
|||
# build aarch64
|
||||
if [[ $(dpkg --print-architecture) == amd64 ]]; then
|
||||
|
||||
if [[ -z $codename || $codename =~ ^(focal|groovy|debbie|buster|hirsute|ulyana)$ ]]; then
|
||||
if [[ -z $codename || $codename =~ ^(focal|groovy|debbie|buster|bullseye|hirsute|ulyana)$ ]]; then
|
||||
hostdeps="${hostdeps/lib32ncurses5 lib32tinfo5/lib32ncurses6 lib32tinfo6}"
|
||||
fi
|
||||
|
||||
|
|
|
@ -32,7 +32,11 @@ fi
|
|||
umask 002
|
||||
|
||||
# destination
|
||||
DEST="${SRC}"/output
|
||||
if [ -d "$CONFIG_PATH/output" ]; then
|
||||
DEST="${CONFIG_PATH}"/output
|
||||
else
|
||||
DEST="${SRC}"/output
|
||||
fi
|
||||
|
||||
if [[ $BUILD_ALL != "yes" && -z $ROOT_FS_CREATE_ONLY ]]; then
|
||||
# override stty size
|
||||
|
|
|
@ -28,7 +28,11 @@ create_board_package()
|
|||
local bootscript_src=${BOOTSCRIPT%%:*}
|
||||
local bootscript_dst=${BOOTSCRIPT##*:}
|
||||
mkdir -p "${destination}"/usr/share/armbian/
|
||||
cp "${SRC}/config/bootscripts/${bootscript_src}" "${destination}/usr/share/armbian/${bootscript_dst}"
|
||||
if [ -f "${USERPATCHES_PATH}/bootscripts/${bootscript_src}" ]; then
|
||||
cp "${USERPATCHES_PATH}/bootscripts/${bootscript_src}" "${destination}/usr/share/armbian/${bootscript_dst}"
|
||||
else
|
||||
cp "${SRC}/config/bootscripts/${bootscript_src}" "${destination}/usr/share/armbian/${bootscript_dst}"
|
||||
fi
|
||||
[[ -n $BOOTENV_FILE && -f $SRC/config/bootenv/$BOOTENV_FILE ]] && \
|
||||
cp "${SRC}/config/bootenv/${BOOTENV_FILE}" "${destination}"/usr/share/armbian/armbianEnv.txt
|
||||
|
||||
|
@ -294,7 +298,7 @@ fi
|
|||
DESKTOP=$DESKTOP_ENVIRONMENT
|
||||
EOF
|
||||
fi
|
||||
|
||||
|
||||
# this is required for NFS boot to prevent deconfiguring the network on shutdown
|
||||
sed -i 's/#no-auto-down/no-auto-down/g' "${destination}"/etc/network/interfaces.default
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue