33set -eux
44
55ROOTFS=$1
6+ FW_VERSION=${2:- " " }
7+
8+ # Extract major.minor version for comparison
9+ get_version_parts () {
10+ echo " $1 " | cut -d ' .' -f 1,2
11+ }
12+
13+ # Check if firmware version is >= 3.12
14+ should_skip_dhcpcd () {
15+ if [ -z " $FW_VERSION " ]; then
16+ return 1 # Don't skip if no version provided
17+ fi
18+
19+ version_parts=$( get_version_parts " $FW_VERSION " )
20+ major=$( echo " $version_parts " | cut -d ' .' -f 1)
21+ minor=$( echo " $version_parts " | cut -d ' .' -f 2)
22+
23+ if [ " $major " -gt 3 ] || ([ " $major " -eq 3 ] && [ " $minor " -ge 12 ]); then
24+ return 0 # Skip dhcpcd modification
25+ else
26+ return 1 # Don't skip
27+ fi
28+ }
629
730qemu-img create -f qcow2 rootfs.qcow2 8G
831
@@ -26,14 +49,23 @@ download /etc/fstab /tmp/fstab
2649! sed -i 's/mmcblk2/mmcblk1/' /tmp/fstab
2750upload /tmp/fstab /etc/fstab
2851
29- download /lib/systemd/system/dhcpcd.service /tmp/dhcpcd.service
30- ! sed -i 's/wlan/eth/' /tmp/dhcpcd.service
31- upload /tmp/dhcpcd.service /lib/systemd/system/dhcpcd.service
32-
3352mount /dev/sda4 /home
3453cp-a /etc/skel /home/root
3554
3655ln-s /dev/null /etc/systemd/system/remarkable-fail.service
3756
3857GFS
3958
59+ # Handle dhcpcd.service modification for firmware versions < 3.12
60+ if ! should_skip_dhcpcd; then
61+ echo " Modifying dhcpcd.service for firmware version $FW_VERSION "
62+ guestfish --rw --add rootfs.qcow2 << DHCPCD_GFS
63+ run
64+ mount /dev/sda2 /
65+ download /lib/systemd/system/dhcpcd.service /tmp/dhcpcd.service
66+ ! sed -i 's/wlan/eth/' /tmp/dhcpcd.service
67+ upload /tmp/dhcpcd.service /lib/systemd/system/dhcpcd.service
68+ DHCPCD_GFS
69+ else
70+ echo " Skipping dhcpcd.service modification for firmware version $FW_VERSION (>= 3.12)"
71+ fi
0 commit comments