4444# Place the ZIP in this directory before running makepkg.
4545
4646pkgname=mediatek-mt7927-dkms
47- pkgver=2.3
47+ pkgver=2.4
4848pkgrel=1
4949# Keywords: MT7927 MT7925 MT6639 MT7902 Filogic 380 WiFi 7 Bluetooth btusb mt7925e mt7921e
5050pkgdesc=" DKMS Bluetooth (MT6639) and WiFi (MT7925e/MT7902) modules for MediaTek MT7927 Filogic 380"
@@ -71,44 +71,14 @@ source=(
7171 " https://cdn.kernel.org/pub/linux/kernel/v${_mt76_kver%% .* } .x/linux-${_mt76_kver} .tar.xz"
7272 ' extract_firmware.py'
7373 ' dkms.conf'
74- ' dkms-patchmodule.sh'
7574)
7675sha256sums=(' 4d9f3ff73214f68c0194ef02db9ca4b7ba713253ac1045441d4e9f352bc22e14'
77- ' e94c77671abe0d589faa01c1a9451f626b1fc45fb04f765b43fd0e126d01a436'
78- ' b6449dce574cd411eb5f17a740b68d5c62a164adae5e912a4bf2bf50ab4094e7'
79- ' bd29eefcec618ec17d6ff3b6521d8292a6e092c3cbbdd1fca93b63e4c86a7fec' )
76+ ' 5410e79d1c9170264769c7149a78bf588ec85245c1556833605fc1c4657ba37a'
77+ ' a663197cf356fbaf3b91c78aa683ef62608c23ab8cde922e5d22d31ecf3310ce' )
8078
81- # Auto-download via ASUS CDN token API.
82- # Based on code by Eadinator: https://github.com/openwrt/mt76/issues/927#issuecomment-3936022734
79+ # Auto-download via ASUS CDN token API
8380_download_driver_zip () {
84- local _token_url=" https://cdnta.asus.com/api/v1/TokenHQ?filePath=https:%2F%2Fdlcdnta.asus.com%2Fpub%2FASUS%2Fmb%2F08WIRELESS%2F${_driver_filename} %3Fmodel%3DROG%2520CROSSHAIR%2520X870E%2520HERO&systemCode=rog"
85-
86- echo " Fetching download token from ASUS CDN..."
87- local _json
88- _json=" $( curl -sf " ${_token_url} " -X POST -H ' Origin: https://rog.asus.com' ) "
89-
90- if [[ -z " ${_json} " ]]; then
91- echo >&2 " Failed to retrieve download token from ASUS CDN"
92- return 1
93- fi
94-
95- local _expires _signature _key_pair_id
96- _expires=${_json#* \" expires\" : \" }
97- _expires=${_expires%% \" * }
98-
99- _signature=${_json#* \" signature\" : \" }
100- _signature=${_signature%% \" * }
101-
102- _key_pair_id=${_json#* \" keyPairId\" : \" }
103- _key_pair_id=${_key_pair_id%% \" * }
104-
105- local _download_url=" https://dlcdnta.asus.com/pub/ASUS/mb/08WIRELESS/${_driver_filename} ?model=ROG%20CROSSHAIR%20X870E%20HERO&Signature=${_signature} &Expires=${_expires} &Key-Pair-Id=${_key_pair_id} "
106-
107- echo " Downloading ${_driver_filename} ..."
108- if ! curl -L -f -o " ${SRCDEST:- .} /${_driver_filename} " " ${_download_url} " ; then
109- echo >&2 " Failed to download driver ZIP"
110- return 1
111- fi
81+ DRIVER_FILENAME=" ${_driver_filename} " " ${startdir} /download-driver.sh" " ${SRCDEST:- .} "
11282}
11383
11484prepare () {
@@ -150,108 +120,16 @@ prepare() {
150120build () {
151121 local _zips=(" ${SRCDEST:- .} " /DRV_WiFi_MTK_MT7925_MT7927* .zip)
152122
153- # Extract BT + WiFi firmware from ASUS driver ZIP
154- bsdtar -xf " ${_zips[0]} " -C " ${srcdir} " mtkwlan.dat
155- python " ${srcdir} /extract_firmware.py" " ${srcdir} /mtkwlan.dat" " ${srcdir} /firmware"
156-
157- # Extract mt76 and bluetooth source from kernel tarball
158- echo " Extracting mt76 source from kernel v${_mt76_kver} tarball..."
159- mkdir -p " ${srcdir} /mt76"
160- tar -xf " ${srcdir} /linux-${_mt76_kver} .tar.xz" \
161- --strip-components=6 \
162- -C " ${srcdir} /mt76" \
163- " linux-${_mt76_kver} /drivers/net/wireless/mediatek/mt76"
164-
165- echo " Extracting bluetooth source..."
166- mkdir -p " ${srcdir} /bluetooth"
167- tar -xf " ${srcdir} /linux-${_mt76_kver} .tar.xz" \
168- --strip-components=3 \
169- -C " ${srcdir} /bluetooth" \
170- " linux-${_mt76_kver} /drivers/bluetooth"
171-
172- cd " ${srcdir} /mt76"
173-
174- echo " Applying mt7902-wifi-6.19.patch..."
175- patch -p1 < " ${startdir} /mt7902-wifi-6.19.patch"
176-
177- echo " Applying MT7927 WiFi patches..."
178- for _p in " ${startdir} " /mt7927-wifi-* .patch; do
179- echo " $( basename " $_p " ) "
180- patch -p1 < " $_p "
181- done
182-
183- # Create Kbuild files for out-of-tree mt76 build
184- cat > " ${srcdir} /mt76/Kbuild" << 'EOF '
185- obj-m += mt76.o
186- obj-m += mt76-connac-lib.o
187- obj-m += mt792x-lib.o
188- obj-m += mt7921/
189- obj-m += mt7925/
190-
191- mt76-y := \
192- mmio.o util.o trace.o dma.o mac80211.o debugfs.o eeprom.o \
193- tx.o agg-rx.o mcu.o wed.o scan.o channel.o pci.o
194-
195- mt76-connac-lib-y := mt76_connac_mcu.o mt76_connac_mac.o mt76_connac3_mac.o
196-
197- mt792x-lib-y := mt792x_core.o mt792x_mac.o mt792x_trace.o \
198- mt792x_debugfs.o mt792x_dma.o mt792x_acpi_sar.o
199-
200- CFLAGS_trace.o := -I$(src)
201- CFLAGS_mt792x_trace.o := -I$(src)
202- EOF
203-
204- cat > " ${srcdir} /mt76/mt7921/Kbuild" << 'EOF '
205- obj-m += mt7921-common.o
206- obj-m += mt7921e.o
207-
208- mt7921-common-y := mac.o mcu.o main.o init.o debugfs.o
209- mt7921e-y := pci.o pci_mac.o pci_mcu.o
210- EOF
211-
212- cat > " ${srcdir} /mt76/mt7925/Kbuild" << 'EOF '
213- obj-m += mt7925-common.o
214- obj-m += mt7925e.o
215-
216- mt7925-common-y := mac.o mcu.o regd.o main.o init.o debugfs.o
217- mt7925e-y := pci.o pci_mac.o pci_mcu.o
218- EOF
219-
220- echo " mt76 source prepared with MT7902 + MT7927 patches"
123+ make -C " ${startdir} " sources \
124+ MT76_KVER=" ${_mt76_kver} " \
125+ KERNEL_TARBALL=" ${srcdir} /linux-${_mt76_kver} .tar.xz" \
126+ DRIVER_ZIP=" ${_zips[0]} " \
127+ SRCDIR=" ${srcdir} /_build"
221128}
222129
223130package () {
224- local _dkmsdir=" ${pkgdir} /usr/src/mediatek-mt7927-${pkgver} "
225-
226- # Install DKMS config and scripts
227- install -Dm644 " ${srcdir} /dkms.conf" " ${_dkmsdir} /dkms.conf"
228- install -Dm755 " ${srcdir} /dkms-patchmodule.sh" " ${_dkmsdir} /dkms-patchmodule.sh"
229- install -Dm644 " ${startdir} /mt6639-bt-6.19.patch" " ${_dkmsdir} /patches/bt/mt6639-bt-6.19.patch"
230- install -dm755 " ${_dkmsdir} /patches/wifi"
231- install -m644 " ${startdir} " /mt7927-wifi-* .patch " ${_dkmsdir} /patches/wifi/"
232- install -Dm755 " ${srcdir} /extract_firmware.py" " ${_dkmsdir} /extract_firmware.py"
233-
234- # Install pre-extracted bluetooth source for DKMS btusb builds
235- install -dm755 " ${_dkmsdir} /drivers/bluetooth"
236- install -m644 " ${srcdir} /bluetooth" /{btusb.c,btmtk.c,btmtk.h,btbcm.c,btbcm.h,btintel.h,btrtl.h} \
237- " ${_dkmsdir} /drivers/bluetooth/"
238-
239- # Install patched mt76 WiFi source tree
240- install -dm755 " ${_dkmsdir} /mt76/mt7921" " ${_dkmsdir} /mt76/mt7925"
241- install -m644 " ${srcdir} /mt76" /* .{c,h} " ${_dkmsdir} /mt76/"
242- install -m644 " ${srcdir} /mt76/Kbuild" " ${_dkmsdir} /mt76/"
243- install -m644 " ${srcdir} /mt76/mt7921" /* .{c,h} " ${_dkmsdir} /mt76/mt7921/"
244- install -m644 " ${srcdir} /mt76/mt7921/Kbuild" " ${_dkmsdir} /mt76/mt7921/"
245- install -m644 " ${srcdir} /mt76/mt7925" /* .{c,h} " ${_dkmsdir} /mt76/mt7925/"
246- install -m644 " ${srcdir} /mt76/mt7925/Kbuild" " ${_dkmsdir} /mt76/mt7925/"
247-
248- # Install BT firmware
249- install -Dm644 " ${srcdir} /firmware/BT_RAM_CODE_MT6639_2_1_hdr.bin" \
250- " ${pkgdir} /usr/lib/firmware/mediatek/mt6639/BT_RAM_CODE_MT6639_2_1_hdr.bin"
251-
252- # Install WiFi firmware
253- install -Dm644 " ${srcdir} /firmware/WIFI_MT6639_PATCH_MCU_2_1_hdr.bin" \
254- " ${pkgdir} /usr/lib/firmware/mediatek/mt7927/WIFI_MT6639_PATCH_MCU_2_1_hdr.bin"
255- install -Dm644 " ${srcdir} /firmware/WIFI_RAM_CODE_MT6639_2_1.bin" \
256- " ${pkgdir} /usr/lib/firmware/mediatek/mt7927/WIFI_RAM_CODE_MT6639_2_1.bin"
131+ make -C " ${startdir} " install \
132+ SRCDIR=" ${srcdir} /_build" \
133+ DESTDIR=" ${pkgdir} " \
134+ VERSION=" ${pkgver} "
257135}
0 commit comments