Repository navigation
Expand file tree
/
Copy path.functions.inc
More file actions
144 lines (124 loc) · 4.4 KB
/
Copy path.functions.inc
File metadata and controls
144 lines (124 loc) · 4.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# SAIRPi Project - Slackware AI on Raspberry Pi
# https://sairpi.penthux.net
#
# Copyright (c) 2026
#
# functions.inc
#
# Log function [single line entry]
log() {
echo -e "[$(date '+%F %T %Z')] $*" | tee -a "$LOGFILE"
}
# Log code block function [multiple lines]
log_codeblock() {
tee -a "$LOGFILE"
}
# Log Header function
log_header() {
cat << EOF > "$LOGFILE"
###############################################
#----------- ${HAINAM}-10H.SlackBuild ------------#
###############################################
Target OS..............: Slackware ${ARCHNAM} ${SLACKVERS}
Platform...............: Raspberry Pi ${PIVER}
Hardware...............: ${HAINAM} 10H M.2 AI Accelerator Module
Project eng............: v${SAIRPiBUILDENG_VERS}
Maintainer(s)..........: sairpi.project@penthux.net
Homepage URL...........: $SAIRPiURL
# ${HAINAM}.SlackBuild Batch
Build Batch Ref ID.....: ${BUILDREF_ID}
EOF
}
# Log Host System function
log_hostsystem() {
cat << EOF >> "$LOGFILE"
# ${HAINAM}-10H.SlackBuild Host Status
Build System...........: $(uname -a)
Build System OS........: ${HOSTOSVERS} [${ARCH} ${HOST_BITREG}]
Build System Hardware..: ${HOSTCPUMOD}
Build System Revision..: ${HOSTCPUREV}
Build System Serial....: ${HOSTCPUSER}
EOF
}
# Log SAIRPi Build Status function
log_hailobuildstatus() {
cat << EOF >> "$LOGFILE"
# ${HAINAM}-10H.SlackBuild Status
Target Architecture....: ${ARCHNAM}
Linux Kernel Version...: ${VERSION}
${MARQUE} Build Revision..: ${RELVER}
${MARQUE} Start Build.....: $(date '+%F %T %Z')
EOF
}
# Function to get kernel source version from Makefile [ head -5 ]
function getKRNLSRCVERS() {
if [ -f "${CHRDIR}${LINUX_SOURCE_DIR}"/Makefile ]; then
head -5 "${CHRDIR}${LINUX_SOURCE_DIR}"/Makefile | sed 's/ *= */=/' > "${PKGTMP}"/.krnlsrcvers.tmp
. "${PKGTMP}"/.krnlsrcvers.tmp
rm "${PKGTMP}"/.krnlsrcvers.tmp
else
VERSION="X" PATCHLEVEL="x" SUBLEVEL="Xx" EXTRAVERSION="-novers"
fi
MAJOR_VERSION="${VERSION}"
VERSION="${MAJOR_VERSION}.${PATCHLEVEL}.${SUBLEVEL}${EXTRAVERSION}"
SRCVER="$(echo "$VERSION" | tr - _)"
MODVER="${VERSION}-${ARMVERS}-${SAIRPiSUFFIX}"
LINUX_VERSION="${MODVER}"
}
# Function to download Linux kernel source CLI
function getLINUX_SOURCE() {
# remove and download new RPi kernel source
rm -rvf "${CHRDIR}/${LINUX_SOURCE_DIR}"
git clone "${RPI_GITHUB_REPO}"/linux.git --depth=1 \
--branch "${RPI_KERNEL_BRANCH}" "${CHRDIR}${LINUX_SOURCE_DIR}"
}
# Function to download boot-firmware CLI
function getBOOT_FIRMWARE() {
# remove and download new RPi boot-firmware
rm -rvf "${CHRDIR}/${FIRMWARE_SOURCE_DIR}"
git clone "${RPI_GITHUB_REPO}"/firmware.git --depth=1 \
--branch "${RPI_BOOTFW_BRANCH}" "${CHRDIR}${FIRMWARE_SOURCE_DIR}"
}
# Function to download hailort
function getHAILORT_SOURCE() {
# remove and download new Hailo RT drivers
rm -rvf "${CHRDIR}/${HAILORT_SOURCE_DIR}"
git clone "${HAILORT_GITHUB_REPO}"/hailort.git \
--branch "${HAILORT_DRIVERS_BRANCH}" "${CHRDIR}${HAILORT_SOURCE_DIR}"
}
# Function to download hailort-drivers
function getHAILORT_DRIVERS() {
# remove and download new Hailo RT drivers
rm -rvf "${CHRDIR}/${HAILORT_DRIVERS_DIR}"
git clone "${HAILORT_GITHUB_REPO}"/hailort-drivers.git \
--branch "${HAILORT_DRIVERS_BRANCH}" "${CHRDIR}${HAILORT_DRIVERS_DIR}"
}
# Download BSP binaries
get_board_support_packages() {
# Fetch BSP packages via rsync
log "Fetching SARPi board support packages from ${SLACKUK} ..."
rsync -av --no-motd --progress --delete \
"rsync://${SLACKUK}/sarpi/${RPIVERS}/current-${ARCH}/pkg/" \
"${PKGTMP}/bspkg" || { log "ERROR: ${PROCSS} : Failed to rsync SARPi board support packages from ${SLACKUK} ..." ; exit 1; }
}
# Mount virtual filesystems for chroot
mount_chroot() {
echo " Mounting chroot virtual filesystems ..."
mount -t proc proc "${CHRDIR}/proc"
mount -t sysfs sys "${CHRDIR}/sys"
mount --bind /dev "${CHRDIR}/dev"
mount --bind /dev/pts "${CHRDIR}/dev/pts"
log "Mounted chroot virtual filesystems ..."
}
# Unmount virtual filesystems on exit
umount_chroot() {
echo " Unmounting chroot virtual filesystems ..."
umount "${CHRDIR}/dev/pts"
umount "${CHRDIR}/dev"
umount "${CHRDIR}/sys"
umount "${CHRDIR}/proc"
log "Unmounted chroot virtual filesystems ..."
log "Moved current LOGFILE to ${CWD}/BuildLogs directory ..."
log "${HAINAM}-10H.SlackBuild process concluded ..."
mv "${TMP}"/*.log "${CWD}/BuildLogs/"
}