blob: c353a141078587bcac2d1253ffdda893c9c09bc8 (
plain)
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
144
145
146
147
148
149
150
|
# Maintainer: John Vogel <jvogel@stygian.me>
# This APKBUILD borrows heavily from the jool-lts and jool-rpi aports.
# AIC8800 version
# Keep _ver in sync with radxa/aic8800
# When changing _ver we *must* bump _rel!
_name=aic8800
_ver=5.0_git20260429
_srcver=5.0+git20260123.5f7be68d-5
_rel=0
_flavor=dragon
# For custom kernels set $FLAVOR.
_flavor="$FLAVOR"
_extra_flavors=""
if [ -z "$FLAVOR" ]; then
_flavor="dragon"
fi
# Kernel version
# Keep in sync with radxa/linux-dragon!
_kpkg=linux-$_flavor
_kver=7.0.11
_krel=0
_kpkgver="$_kver-r$_krel"
maintainer="John Vogel <jvogel@stygian.me>"
pkgname=$_name-$_flavor
pkgver=$_kver
pkgrel=$(( _krel + _rel ))
pkgdesc="Aicsemi AIC8800 drivers for Linux (kernel modules for linux-$_flavor)"
url="https://github.com/radxa-pkg/aic8800"
arch="aarch64"
license="GPL-3.0-or-later"
makedepends="$_kpkg-dev=$_kpkgver linux-headers xz"
subpackages="$pkgname-doc $pkgname-firmware"
source="aic8800-$_srcver.tar.gz::https://github.com/radxa-pkg/aic8800/archive/refs/tags/$_srcver.tar.gz"
builddir="$srcdir/$_name-${_srcver/+/-}"
options="!strip !check !usrmerge"
for _f in $_extra_flavors; do
makedepends="$makedepends linux-$_f-dev=$_kpkgver"
subpackages="$subpackages $_name-$_f:_extra"
done
prepare() {
default_prepare
dos2unix src/USB/driver_fw/drivers/aic8800/aic_load_fw/aicbluetooth.c
dos2unix src/USB/driver_fw/drivers/aic_btusb/aic_btusb.h
dos2unix src/USB/driver_fw/drivers/aic8800/aic_load_fw/aic_bluetooth_main.c
while read -r p; do
printf 'applying %s\n' "$p"
patch -Np1 -i debian/patches/$p
done < debian/patches/series
# verify the kernel version
local _kapkbuild="$startdir"/../../testing/linux-$_flavor/APKBUILD
if [ -f $_kapkbuild ]; then
( . $_kapkbuild
pkgname=$_name-$_flavor
[ "$_kver" != "$pkgver" ] && die "please update _kver to $pkgver"
[ "$_krel" != "$pkgrel" ] && die "please update _krel to $pkgrel"
return 0
)
fi
}
_kernelarch() {
local arch="$1"
case "$arch" in
aarch64*) arch="arm64" ;;
arm*) arch="arm" ;;
ppc*) arch="powerpc" ;;
s390*) arch="s390" ;;
riscv*) arch="riscv" ;;
loongarch64) arch="loongarch" ;;
esac
echo "$arch"
}
build() {
local flavor= kabi=
for flavor in $_flavor $_extra_flavors; do
kabi="${_kver/_rc/-rc}-$_krel-$flavor"
cp -a -l "$builddir" "$srcdir"/"$kabi"
cd "$srcdir"/"$kabi"
make -C "/lib/modules/$_kver-$_krel-$flavor/build" \
M="$srcdir/$kabi/src/USB/driver_fw/drivers/aic_btusb" \
ARCH="$(_kernelarch $CBUILD)" \
CROSS_COMPILE= \
modules
make -C "/lib/modules/$_kver-$_krel-$flavor/build" \
M="$srcdir/$kabi/src/USB/driver_fw/drivers/aic8800" \
ARCH="$(_kernelarch $CBUILD)" \
CROSS_COMPILE= \
modules
done
}
package() {
install -Dm644 -t "$pkgdir"/usr/share/licenses/"$pkgname" LICENSE
local flavor= kabi=
for flavor in $_flavor $_extra_flavors; do
kabi="${_kver/_rc/-rc}-$_krel-$flavor"
cd "$srcdir"/"$kabi"
make -C "/lib/modules/$_kver-$_krel-$flavor/build" \
M="$srcdir/$kabi/src/USB/driver_fw/drivers/aic_btusb" \
ARCH="$(_kernelarch $CBUILD)" \
CROSS_COMPILE= \
INSTALL_MOD_PATH="$pkgdir" \
CONFIG_MODULE_SIG_KEY="/lib/modules/$_kver-$_krel-$flavor/build/certs/signing_key.x509" \
modules_install
make -C "/lib/modules/$_kver-$_krel-$flavor/build" \
M="$srcdir/$kabi/src/USB/driver_fw/drivers/aic8800" \
ARCH="$(_kernelarch $CBUILD)" \
CROSS_COMPILE= \
INSTALL_MOD_PATH="$pkgdir" \
CONFIG_MODULE_SIG_KEY="/lib/modules/$_kver-$_krel-$flavor/build/certs/signing_key.x509" \
modules_install
done
}
_extra() {
local flavor=${subpkgname##*-}
local kabi="${_kver/_rc/-rc}-$_krel-$flavor"
depends="linux-$flavor=$_kpkgver"
install_if="linux-$flavor=$_kpkgver"
pkgdesc="Aicsemi AIC8800 drivers for Linux (kernel modules for linux-$flavor)"
install -dm755 "$subpkgdir"/lib/modules
mv "$pkgdir"/lib/modules/"$kabi" "$subpkgdir"/lib/modules
}
firmware() {
pkgdesc="Aicsemi AIC8800 drivers for Linux (usb firmware)"
install -Dm644 -t "$subpkgdir"/lib/firmware/aic8800_fw/USB/aic8800D80 \
"$builddir"/src/USB/driver_fw/fw/aic8800D80/*.bin
install -Dm644 -t "$subpkgdir"/lib/firmware/aic8800_fw/USB/aic8800D80 \
"$builddir"/src/USB/driver_fw/fw/aic8800D80/*.txt
}
sha512sums="
d99215a577ebc65d275c00298e7ddd8819e3ecd16f0db352dd7b2a3665d12da80ee62c97e7f7de96c62b7237c0f6b7d1dffc13e6d16bac86fd2d052432772be8 aic8800-5.0+git20260123.5f7be68d-5.tar.gz
"
|