Skip to content

Commit 0472e6d

Browse files
committed
Add piCore based wrappers
1 parent b08dff7 commit 0472e6d

3 files changed

Lines changed: 164 additions & 0 deletions

File tree

picore-rpi-eeprom-config

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#!/bin/sh
2+
3+
# piCore script to update Raspberry Pi4/5 boot EEPROM.
4+
5+
usage() {
6+
echo "Usage:"
7+
echo "$0 <options>"
8+
echo ""
9+
echo "The default firmware upgrade is from the critical firmware branch"
10+
echo " to override, set the FIRMWARE_RELEASE_STATUS environmen variable"
11+
echo " export FIRMWARE_RELEASE_STATUS=<default|latest>"
12+
echo ""
13+
echo "----------------------------------------------"
14+
echo ""
15+
echo "rpi-eeprom-config options"
16+
rpi-eeprom-config -h
17+
exit
18+
}
19+
20+
mount_boot_partition() {
21+
BOOTPART="$(tc_autoscan 'bootcode.bin' 'f')"
22+
BOOTDEV=${BOOTPART%%/*}
23+
find_mountpoint "$BOOTDEV"
24+
if [ -n "$MOUNTPOINT" ]; then
25+
mount $MOUNTPOINT
26+
fi
27+
}
28+
29+
OPTS=""
30+
for A in $@; do
31+
case $A in
32+
--help) usage;;
33+
*)OPTS="$OPTS $A";;
34+
esac
35+
done
36+
37+
if [ "$OPTS" != "" ]; then
38+
#If No OPTS are present, then we don't need to mount to just display the current config
39+
mount_boot_partition >/dev/null 2>&1
40+
fi
41+
42+
sudo -E rpi-eeprom-config $OPTS

picore-rpi-eeprom-update

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
#!/bin/sh
2+
3+
# pCP script to update Raspberry Pi4/5 boot EEPROM.
4+
5+
VERSION="v27.9-1-piCore"
6+
7+
. /etc/init.d/tc-functions
8+
PACKAGEDIR=/etc/sysconfig/tcedir/optional
9+
10+
checknotroot
11+
12+
update_ext() {
13+
WGET="busybox wget"
14+
DIFF="busybox diff"
15+
MD5="busybox md5sum"
16+
UPGRADE_DIR=${PACKAGEDIR}/upgrade
17+
18+
rm -f /tmp/rpi-eeprom.tcz*
19+
20+
echo "[ INFO ] Checking for package update: rpi-eeprom.tcz"
21+
echo "[ INFO ] You are running release $VERSION"
22+
LATEST=$($WGET -q https://api.github.com/repos/tinycorelinux/rpi-eeprom/releases/latest -O - | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
23+
echo "[ INFO ] The latest release is $LATEST"
24+
25+
$WGET -q https://github.com/tinycorelinux/rpi-eeprom/releases/latest/download/rpi-eeprom.tcz.md5.txt -P /tmp
26+
$DIFF -q /tmp/rpi-eeprom.tcz.md5.txt /etc/sysconfig/tcedir/optional/rpi-eeprom.tcz.md5.txt >/dev/null 2>&1
27+
if [ $? -eq 0 ]; then
28+
echo "[ INFO ] Extension version Matches"
29+
exit 2
30+
else
31+
echo "[ INFO ] Update Required."
32+
$WGET -q https://github.com/tinycorelinux/rpi-eeprom/releases/latest/download/rpi-eeprom.tcz -P /tmp
33+
fi
34+
35+
cd /tmp
36+
echo "[ INFO ] Validating MD5's of new extensions"
37+
$MD5 -cs rpi-eeprom.tcz.md5.txt
38+
[ -d $UPGRADE_DIR ] || mkdir -p $UPGRADE_DIR
39+
if [ $? -eq 0 ]; then
40+
mv -f /tmp/rpi-eeprom.tcz* ${UPGRADE_DIR}
41+
else
42+
echo "[ERROR] rpi-eeprom.tcz failed md5 check."
43+
exit 1
44+
fi
45+
46+
echo "[ INFO ] A reboot is needed to load new rpi-eeprom extension."
47+
exit
48+
}
49+
50+
usage() {
51+
echo "Usage:"
52+
echo "$0 --update: Update rpi-eeprom.tcz extension"
53+
echo ""
54+
echo "The default firmware upgrade is from the critical firmware branch"
55+
echo " to override, set the FIRMWARE_RELEASE_STATUS environmen variable"
56+
echo " export FIRMWARE_RELEASE_STATUS=<default|latest>"
57+
echo ""
58+
echo "----------------------------------------------"
59+
echo ""
60+
echo "rpi-eeprom-update options"
61+
rpi-eeprom-update -h
62+
exit
63+
}
64+
65+
mount_boot_partition() {
66+
BOOTPART="$(tc_autoscan 'bootcode.bin' 'f')"
67+
BOOTDEV=${BOOTPART%%/*}
68+
find_mountpoint "$BOOTDEV"
69+
if [ -n "$MOUNTPOINT" ]; then
70+
mount $MOUNTPOINT
71+
fi
72+
}
73+
74+
OPTS=""
75+
for A in $@; do
76+
case $A in
77+
--update) update_ext;;
78+
--help) usage;;
79+
*)OPTS="$OPTS $A";;
80+
esac
81+
done
82+
83+
mount_boot_partition >/dev/null 2>&1
84+
85+
if [ ! -f ${PACKAGEDIR}/raspi-utils.tcz ]; then
86+
echo "raspi-utils extension is required for this tool"
87+
exit 1
88+
elif [ ! -f /usr/local/bin/vcgencmd ]; then
89+
tce-load -i raspi-utils.tcz
90+
fi
91+
92+
if [ ! -f ${PACKAGEDIR}/pciutils.tcz ]; then
93+
echo "pciutils extension is required for this tool"
94+
exit 1
95+
elif [ ! -f /usr/local/bin/lspci ]; then
96+
tce-load -i pciutils.tcz
97+
fi
98+
99+
[ -f ${PACKAGEDIR}/python3.11.tcz ] && PYTHON3PKG=python3.11.tcz
100+
[ -f ${PACKAGEDIR}/python3.12.tcz ] && PYTHON3PKG=python3.12.tcz
101+
if [ ! -f ${PACKAGEDIR}/$PYTHON3PKG ]; then
102+
echo "python 3 extension is required for this tool"
103+
exit 1
104+
elif [ ! -f /usr/local/bin/python3 ]; then
105+
tce-load -i $PYTHON3PKG
106+
fi
107+
108+
[ ! -x /usr/local/bin/python ] && sudo ln -s /usr/local/bin/python3 /usr/local/bin/python
109+
110+
echo "piCore rpi-eeprom package version: $VERSION"
111+
sudo -E rpi-eeprom-update $OPTS

rpi-eeprom-update-default-picore

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
TCEDEV="/dev/$(readlink /etc/sysconfig/tcedir | cut -d '/' -f3)"
2+
TCEMNT="/mnt/$(readlink /etc/sysconfig/tcedir | cut -d '/' -f3)"
3+
BOOTDEV=${TCEDEV%%?}1
4+
BOOTMNT=${TCEMNT%%?}1
5+
FIRMWARE_ROOT=/tmp/tcloop/rpi-eeprom/usr/local/lib/firmware/raspberrypi/bootloader
6+
FIRMWARE_RELEASE_STATUS="${FIRMWARE_RELEASE_STATUS:-default}"
7+
FIRMWARE_IMAGE_DIR="${FIRMWARE_ROOT}/${FIRMWARE_RELEASE_STATUS}"
8+
FIRMWARE_BACKUP_DIR="/etc/sysconfig/tcedir/raspberrypi/bootloader/backup"
9+
BOOTFS=${BOOTMNT}
10+
RPI_EEPROM_USE_FLASHROM=0
11+
EEPROM_CONFIG_HOOK=

0 commit comments

Comments
 (0)