Repository navigation
Conversation
The repo kept a 446-file copy of the 7.2.8 Omarchy recipe and 20,791 lines of local patches. It now keeps only the delta: kernel/PKGBUILD.patch and six patches. scripts/build-kernel.sh fetches pkgbuilds/linux-omarchy-aarch64 at the omarchy-pkgs commit in sources.json (b4e7d40, 7.3-20) into build/kernel/, copies the patches, applies PKGBUILD.patch at fuzz 0 and runs makepkg there. - 9100, 9101, 9103 and 9104 are unchanged copies of omarchy-pkgs#1958 at f9a172da. They replace asus-arm64-combined.patch, p16-virtual-gpio.patch and #12's gate. 9102 is not carried: 7.3 spi_probe() already does the ACPI GPIO IRQ lookup. The CVE patch goes; the fix is in v7.3. - PKGBUILD.patch: package linux-p16-asus-$pkgrel, pkgrel 26, release suffix -omarchy-p16-asus, the ASUS WMI and SPI-HID config lines, no NVIDIA package. --disable RUST goes; 7.3's config has Rust off. - p16_release.py reads pkgver and pkgrel from build/kernel/PKGBUILD and names 7.3 as the kernel does, 7.3.0. common.sh reads no release. The installer and the two check scripts take it with --shell, in two lines, so a missing recipe stops them. - check-issue-9.sh drops the kallsyms check; the boot-log check stays. - The P16 UKI drops power_wrap_drv.usb4_release=0 and mem_sleep_default=s2idle. Omarchy 1112 and 1113 make them defaults. - verify_preserved also requires every entry of the saved limine.conf. - The five kernel lists accept 7.3.0-26 beside 24 and 25. - scripts/usb4-pcie-hotplug-check comes from the #4 branch unchanged. Part of #15. Part of #8, #9 and #4. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A dock that showed a PCIe bridge but no NVMe controller passed, so the check never proved that an NVMe enclosure gets PCIe (#4). It now needs at least one NVMe controller below the tunnel port, each with a block device. Part of #15. Part of #4. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
With Secure Boot off, the cmdline line in limine.conf overrides the one in the UKI. limine-entry-tool wrote the default one for linux-p16-asus-26: root @ instead of the booted subvolume, no RMSkipACPIBattCap, the usb4_release and mem_sleep options that 7.3 drops, and acpi_osi in literal single quotes. That entry would boot a root without the 7.3 modules. The installer now writes KERNEL_CMDLINE[<package>] from build/p16.cmdline into one drop-in, so limine-entry-tool writes the same line on install and on every later rebuild. verify-boot.py requires the P16 entry's cmdline to equal the UKI's, and the checkpoint covers the new drop-in. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… path limine-entry-tool keeps only the first of equal words when it writes an entry's cmdline. kernel_cmdline.build() now does the same, so the UKI and the menu entry hold the same line and a repeated word no longer fails the menu check and rolls the install back. verify_menu found the P16 entry by any text that named its image, comments included, so a stock entry with such a comment was checked against the P16 command line. It now selects the entry by its path line. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
limine-entry-tool reads ' and " as quotes and drops empty words when it splits the entry's line. kernel_cmdline.build() now drops empty words and refuses ', as it already refuses ". A test runs the built line through the tool's split and requires it unchanged. verify_menu now finds the P16 entry only by an active path line, so a comment field that holds the image's pinned path no longer counts as the entry. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Owner steps 4 to 6 and the install are done on the P16. The reboot is next.
Found during the install, and fixed in 3 commits (ef62624, 94dbe1e, 8a846bc). With Secure Boot off, the
The fix:
Review: gpt-6.1-sol did three rounds. Rounds 1 and 2 passed elegance and found 4 bugs, all fixed with tests that fail on the old code. Round 3 passed both elegance and bugs, including 2,744 generated inputs through both split implementations. The live entry is regenerated through the drop-in. DKMS note, local to the lab. Left: one reboot into |
|
Follow-up after #19 merged. This PR conflicts with main, and it must carry the following before it merges:
The GPU work is done: issue #3 is closed. I removed the |
Problem
The P16 kernel was a 446-file copy of the 7.2.8 Omarchy recipe plus 20,791 lines of local patches. Each Omarchy release was a hand port. Fixes that Omarchy and another P16 owner already carry were missing here: 1105 (USB4 tunnel ports stay awake, #4), 1111 (the Modern Standby call, #8), 1112 and 1113.
Fix
This builds shape card v2 on #15, with amendments v2a and v2b.
kernel/PKGBUILD.patchand six patches.scripts/build-kernel.shfetchespkgbuilds/linux-omarchy-aarch64at the omarchy-pkgs commit insources.json(b4e7d40, 7.3-20) intobuild/kernel/. It copies the patches, appliesPKGBUILD.patchat--fuzz=0and runsmakepkgthere. The packages land inbuild/kernel/.9100,9101,9103and9104are byte-identical copies of omarchy-pkgs#1958 atf9a172da. They replaceasus-arm64-combined.patch,p16-virtual-gpio.patchand the asus-nb-wmi: install no i8042 key filter on a kernel built without i8042 #12 gate.9102is not carried, because the 7.3spi_probe()already does the ACPI GPIO IRQ lookup.p16-thermal.patchandarm64-acpi-allocation.patchstay. The CVE patch goes, because the fix is in v7.3.PKGBUILD.patchsets packagelinux-p16-asus-$pkgrelwithpkgrel=26, the release suffix-omarchy-p16-asus, the ASUS WMI and SPI-HID config lines, and no NVIDIA package.--disable RUSTgoes, because 7.3 has Rust off.scripts/p16_release.pyreadsbuild/kernel/PKGBUILDand namespkgver=7.3as the kernel does,7.3.0.common.shreads no release. The installer,check-system.shandcheck-issue-9.shread it with--shell, in two lines, so a missing recipe stops them.check-issue-9.shdrops theasus_i8042_filterkallsyms check. The boot-log check for "Unable to install key filter" stays.power_wrap_drv.usb4_release=0andmem_sleep_default=s2idle. 1112 and 1113 make them defaults. Both names stay blocked, so the new entry carries neither.install_state.py verify_preservedalso requires every entry of the savedlimine.confto be present and unchanged.scripts/usb4-pcie-hotplug-checkcomes from the USB4: a PCIe device connected after boot gets its PCIe tunnel #4 branch. Review found that it passed with no NVMe controller below the port. It now fails then.SHA256SUMSloses the 446 vendored entries.Kept, as the card says: the DSDT override and the touchpad quirk, until 7.2.8-24 leaves the menu, and the stock-kernel drop-ins.
Proof
Proven on this laptop without the full kernel build. Every CPU step ran at
nice -n 19 ionice -c3.scripts/build-kernel.sh --nobuildfrom this branch fetched the pin, appliedPKGBUILD.patchat fuzz 0, verified every source and PGP signature, and applied all 442 patches at--fuzz=0. It printedPrepared linux-p16-asus-26 version 7.3.0-26-omarchy-p16-asusand exited 0. The six delta patches applied with no fuzz. Onlyarm64-acpi-allocation.patchlanded at line offsets (34 and 1 lines)..configafterolddefconfighasCONFIG_SPI_HID_ACPI=m,CONFIG_ACPI_WMI=m,CONFIG_ASUS_WMI=m,CONFIG_ASUS_NB_WMI=m,ASUS_ARMOURY,ASUS_WMI_DEPRECATED_ATTRSandDELL_ARM64_HOTKEYSnot set,CONFIG_RUSTnot set,CONFIG_ACPI_THERMAL=y,CONFIG_PINCTRL_MT8901=y.SERIO_I8042is not set, so9103skips the i8042 filter on this kernel.python3 -m unittest discover -s tests: 49 tests pass on a checkout with nobuild/. The new tests failed on their bugs: the 7.3 release read as7.3-26, a dropped Limine entry, and the one-lineevalform that ran past a missing recipe.f9a172dabyte for byte.NVIDIA 620.70.06 on 7.3. Omarchy packages only 615.78.08 for 7.3, and no upstream source shows 620.70.06 on 7.3. So I compiled the installed DKMS source,
/usr/src/nvidia-620.70.06, two ways:linux-omarchy7.3.0-13 headers, all five modules built and linked, and modpost resolved every symbol:nvidia,nvidia-uvm,nvidia-modeset,nvidia-drmandnvidia-peermem.make modules_prepare, conftest ran. 301 of its 330 results match the stock 7.3 headers exactly. The other 29 are export-symbol probes, which readModule.symvers. Only the full build makes that file. With them false, the build stops ondel_timer_sync, so that tree cannot finish the module build until the full build exists.The patched tree therefore has the same 7.3 API that 620.70.06 builds and links against. The link against this kernel's own
Module.symversis not proven yet. Acceptance step 3 below proves it.Not proven yet, waiting for the full build and the reboot: the kernel and headers packages, NVIDIA linked against this kernel, DKMS in the installer, boot, and every live check below. That includes IRQ 190 on
spi-MSFW1111without9102, sensor-hub enumeration on BIOS 300, and the 80% charge limit under9100.Owner steps: one build, one install, one reboot
Work in the main checkout. It already holds
build/acpi/andbuild/speaker-firmware/, which the installer needs.Before the install. Nothing reboots in this part.
df -h /homeshows at least 60 GB free. Today 38 GB is free. The old 7.2.8 build tree inkernel/srcof the main checkout uses 34 GB.git fetch fork && git switch t3/omarchy-7.3-rebase. Usemainafter merge.nice -n 19 ionice -c3 ./scripts/build-kernel.sh. It makesbuild/kernel/linux-p16-asus-26-7.3-26-aarch64.pkg.tar.zstand the-headerspackage. Do this while the renders are idle.python3 -m unittest discover -s testspasses.@nv620entry withRMSkipACPIBattCap=1. The installer builds the new command line from/proc/cmdline. Check withgrep -o 'rootflags=subvol=@nv620' /proc/cmdlineandgrep RMSkipACPIBattCap /proc/driver/nvidia/params.sudo rm -rf /var/lib/dkms/nvidia/615.78.08 /var/lib/dkms/nvidia/kernel-7.3.0-13-omarchy-aarch64. Thendkms statusmust list no broken entry.Install.
sudo ./scripts/install-kernel.sh. It builds DKMS 620.70.06 for 7.3.0-26, checks that UPower reportsPowerOff(#16), and adds the Limine entry. Then it checks that every earlier entry, every earlier image and the default are unchanged. It does not change the default.The one reboot, while the GPU lab is idle. Select
linux-p16-asus-26in the Limine menu. Press Esc if the menu is hidden. Record the #9 key results in~/p16-issue9.txt, in the format in the header ofscripts/check-issue-9.sh. Then this command must pass. Connect the NVMe enclosure when the hotplug check asks.What each part proves:
check-system.sh: the release,platform_profileand the services.check-issue-9.sh: ASUS WMI on ARM64: fan-curve defaults, key filter and keyboard handshake fail #9, with the live key results.usb4-pcie-hotplug-check: USB4: a PCIe device connected after boot gets its PCIe tunnel #4. An NVMe enclosure connected after login gets PCIe below a22cfport.check-cuda.shand the three NVIDIA reads: the GPU lab pins, root@nv620, driver 620.70.06 andRMSkipACPIBattCap=1.busctl: Power off at critical battery instead of suspending #16.9100keeps the firmware's 80%./proc/interruptsand001C:: the sensor hub gets IRQ 190 without9102, and it enumerates on SPI.mem_sleep: s2idle is the default without the boot option.p16-thermal.patch.Record, not required: the touchpad
propertiesvalue (85means1108marked it a pressure pad), an IIO device from the sensor hub, andcpufreq/boostfor #7.Rollback. The 7.2.8-24 package, images and Limine entries stay, including
@nv620. If 7.3.0-26 does not boot or fails the check, select a 7.2.8-24 entry in Limine. To remove 26, runsudo scripts/restore-install.shfrom this branch's checkout.Review
One read-only reviewer, GPT-6.1 Sol at high effort, ran both passes.
8d54c27: elegance PASS. Bugs FAIL with one blocker, B1: the hotplug check passed with no NVMe controller. It also noted that an entry moved between Limine folders passes the menu check.fed2348: elegance PASS, bugs PASS. B1 is closed. The folder note does not block, because an entry still boots from either folder and the card does not ask for folder placement.Token change (about 4 characters a token)
scripts/,config/,sources.json): 20,136 to 21,782, +1,646. Of that, +1,071 is the hotplug check, which moves in from the USB4: a PCIe device connected after boot gets its PCIe tunnel #4 branch. The fetch step, the menu check and the release reader make the rest.kernel/): 1,788,117 to 7,271, -1,780,846.README.md): 8,505 to 8,672, +167.SHA256SUMS: 14,719 to 1,354, -13,365.The code and test growth got no separate ruling. The elegance pass judged the full diff and passed it.
Part of #15
Part of #8
Part of #9
Part of #4
🤖 Generated with Claude Code