Compare commits

..

5 Commits

Author SHA1 Message Date
Dustin a776a5aa96 install-update: Use Gentoo shell functions 2023-02-14 00:31:42 -06:00
Dustin e0d873bbf0 Makefile: Fix recipe dependencies 2023-02-14 00:31:26 -06:00
Dustin d4fdb36d45 Exclude more extraneous files from rootfs image 2023-02-14 00:30:32 -06:00
Dustin 0b6edeeed7 build-rootfs: Add missing busybox du symlink 2023-02-14 00:03:42 -06:00
Dustin 41891a1be6 Disable unnecessary media drivers
These were adding over 60 MB to the rootfs image, and they'll never be
used.
2023-02-14 00:02:52 -06:00
7 changed files with 44 additions and 32 deletions

View File

@ -75,6 +75,7 @@ images/firmware.img: images/sdcard.img
output/update.tar.zstd: \
images/rootfs.squashfs \
images/firmware.img \
install-update.sh \
.host-tools \
.prepared
./build-update.sh

View File

@ -15,6 +15,7 @@ cd linux
../linux.config
make -C /usr/src/linux O=${PWD} olddefconfig
make -j$(nproc)
touch arch/arm64/boot/Image.gz
kver=$(make -s kernelversion)
make modules_install INSTALL_MOD_PATH=/mnt/gentoo/usr
cd -

View File

@ -61,6 +61,10 @@ tar -c -C overlay . \
cp -uv /usr/${target}/usr/bin/grub-editenv /mnt/gentoo/usr/bin/
find /mnt/gentoo/usr/${target}/usr/lib/udev/rules.d \
-name '*.rules' \
-exec mv -t /mnt/gentoo/usr/lib/udev/rules.d/ {} +
if [ -f /mnt/gentoo/etc/udev/hwdb.bin ]; then
mv /mnt/gentoo/etc/udev/hwdb.bin /mnt/gentoo/usr/lib/udev/
fi

View File

@ -3,6 +3,7 @@ cat
cp
dd
df
du
echo
env
false

View File

@ -1,6 +1,8 @@
#!/bin/sh
# vim: set sw=4 ts=4 sts=4 et :
. /lib/gentoo/functions.sh
die() {
rc=$?
if [ $rc -eq 0 ]; then
@ -10,23 +12,10 @@ die() {
exit $rc
}
error() {
printf 'ERROR: '
info "$@"
}
get_partuuid() {
blkid -o value -s PARTUUID "$1"
}
info() {
if [ $# -eq 1 ]; then
echo "$1" >&2
elif [ $# -gt 1 ]; then
printf "$@" >&2
fi
}
set_default_boot() {
_rc=0
mkdir -p newroot || return
@ -38,53 +27,55 @@ set_default_boot() {
_kver=${_kernel#vmlinuz-}
_partuuid=$(get_partuuid "$1")
_id=id-${_partuuid}-${_kver}
printf 'Setting default boot entry to %s\n' "${_id}"
grub-editenv /boot/efi/EFI/gentoo/grubenv set "default=${_id}" || rc=$?
ebegin 'Setting default boot entry'
veindent
veinfo "Menu entry ID: ${_id}"
veoutdent
grub-editenv /boot/efi/EFI/gentoo/grubenv set "default=${_id}" || _rc=$?
eend $_rc
umount newroot
return $rc
}
warn() {
printf 'WARNING: '
info "$@"
return $_rc
}
write_firmware() {
_rc=0
_esp=$(findfs PARTLABEL='EFI System Partition')
if [ -z "${_esp}" ]; then
error 'Could not identify EFI System Partition'
eerror 'Could not identify EFI System Partition'
return 1
fi
if ! mountpoint -q /boot/efi; then
mount -o ro "${_esp}" /boot/efi \
|| warn 'Failed to mount EFI System Partition'
|| ewarn 'Failed to mount EFI System Partition'
fi
if [ -f /boot/efi/EFI/gentoo/grubenv ]; then
info 'Saving current GRUB environment ...'
cp /boot/efi/EFI/gentoo/grubenv . \
|| warn 'Failed to save GRUB environment'
ebegin 'Saving current GRUB environment'
cp /boot/efi/EFI/gentoo/grubenv .
ewend $? 'Failed to save GRUB environment'
fi
if mountpoint -q /boot/efi; then
umount /boot/efi || return
fi
info 'Writing firmware image to EFI System Partition (%s) ...\n' "${_esp}"
ebegin "Writing firmware image to EFI System Partition (${_esp})"
dd if=firmware.img of="${_esp}" bs=1M || _rc=$?
if [ $_rc -eq 0 ]; then
mount -orw "${_esp}" /boot/efi || rc=$?
fi
if [ $_rc -eq 0 ]; then
if [ -f grubenv ]; then
printf 'Restoring GRUB environment ...\n'
ebegin 'Restoring GRUB environment'
cp grubenv /boot/efi/EFI/gentoo/grubenv || _rc=$?
eend $_rc
fi
fi
return $_rc
}
write_rootfs() {
printf 'Writing rootfs image to %s ...\n' "$1"
dd if=rootfs.squashfs of="$1" bs=1M
_rc=0
ebegin "Writing rootfs image to $1"
dd if=rootfs.squashfs of="$1" bs=1M || _rc=$?
eend $_rc
}
rc=0
@ -94,10 +85,10 @@ write_rootfs "${newroot}" || die 'Failed to write new rootfs image to disk'
write_firmware || die 'Failed to write new firmware image to disk'
if ! set_default_boot "${newroot}"; then
rc=$?
error 'Failed to set default boot option'
eerror 'Failed to set default boot option'
fi
if [ $rc -eq 0 ]; then
info 'Successfully installed update'
einfo 'Successfully installed update'
fi
exit $rc

View File

@ -44,3 +44,6 @@ CONFIG_BT=m
CONFIG_IPV6=y
CONFIG_IPV6_SIT=m
CONFIG_IPV6_SIT_6RD=m
# CONFIG_MEDIA_CEC_SUPPORT is not set
# CONFIG_MEDIA_SUPPORT is not set

View File

@ -9,13 +9,24 @@ etc/csh.env
etc/init.d
etc/portage
etc/runlevels
usr/aarch64-unknown-linux-gnu
usr/include
usr/lib*/*.a
usr/lib*/cmake
usr/lib*/pkgconfig
usr/lib/kernel
usr/lib/rpm
usr/local
usr/share/aclocal
usr/share/baselayout
usr/share/bash-completion
usr/share/doc
usr/share/factory
usr/share/info
usr/share/man
usr/share/pkgconfig
usr/share/polkit-1
usr/share/zsh
var/cache/edb
var/db/Makefile
var/db/pkg