-
Posts
95,399 -
Joined
-
Last visited
Reputation
9,004,271 ExcellentAbout MaLd0n

Hackintosh Specs
-
CPU
Intel Core Ultra 9 285K
-
MOTHERBOARD
MSI PRO Z890-P WIFI
-
GPU
Radeon RX 6600 XT
-
INTERESTS
Hacks Like Macs
-
OCCUPATION
Eating some DSDTs
- WEBSITE
Recent Profile Visitors
181,912 profile views
-
UVCProbeFix is a macOS kernel extension designed to restore certain USB UVC webcams that are correctly detected by macOS but fail to produce a usable video stream, resulting in a black screen or a failed camera start. Confirmed Working – Lenovo IdeaPad S145 Ice Lake The fix has been verified through UVC runtime traces, not only by visual testing. Before UVCProbeFix was active, the webcam returned a malformed PROBE response: Frame: 4 Frame Size: 184549376 Payload: 16842753 Result: Start Stream Failed With UVCProbeFix loaded, the same camera negotiated: Frame: 1 Frame Size: 614400 Payload: 3072 Interval: 333333 The captured PROBE response and COMMIT were byte-for-byte identical, after which macOS selected Stream Alternate Setting 6, opened the USB streaming pipe and reported start streaming for client. The successful trace contains zero Start Stream Failed events. Hardware: Lenovo IdeaPad S145 Ice Lake Resolution: 640×480 YUV422 @ 30 FPS Result: ✅ UVC negotiation recovered and video streaming successfully started. The problem Some UVC webcams enumerate normally and expose valid video formats, but their firmware returns malformed values during the UVC PROBE/COMMIT negotiation performed by macOS. In the hardware case that led to this project, macOS selected a valid video mode, but the webcam returned an invalid GET_CUR(VS_PROBE_CONTROL) response containing incorrect frame-size and payload values. macOS then committed those invalid parameters and attempted to start the stream, which resulted in a black image / stream startup failure. The camera itself was functional. The failure happened during UVC negotiation. What UVCProbeFix does UVCProbeFix intercepts the affected negotiation path and applies a known-good recovery before macOS commits the broken configuration. For the currently verified hardware case, the original negotiation behaves approximately like this: macOS selects: Frame 4 640x480 30 FPS Camera returns: Frame size: 184549376 Payload: 16842753 macOS COMMIT: same invalid values Result: stream fails / black screen UVCProbeFix detects this broken negotiation and performs a controlled re-negotiation using the working equivalent UVC frame. The recovered negotiation becomes: Frame: 1 Resolution: 640x480 Interval: 333333 Frame size: 614400 Payload: 3072 macOS then commits the corrected values and the camera starts producing real image data normally. Important distinction UVCProbeFix is not a generic webcam driver and it does not replace Apple's UVC stack. It works alongside the existing macOS camera stack and targets a specific class of problems where: the webcam is detected; the UVC interface enumerates correctly; supported video formats are visible; PROBE/COMMIT negotiation occurs; but the camera firmware returns malformed negotiation values or a broken equivalent-frame path. Problems involving USB power, physical connection, proprietary camera protocols, missing device enumeration, sensor failure or unsupported codecs are outside this recovery path. Current release strategy The production Release currently preserves the physically verified recovery implementation for the known working case. The experimental branch also contains a descriptor-driven generic recovery engine intended to eventually support other webcams exhibiting the same class of UVC negotiation failure. The generic design does not rely on a specific VID/PID or fixed camera model. Instead, it is being developed to: parse the webcam's own UVC descriptors; validate the returned PROBE data; identify impossible frame-size or payload values; discover equivalent frames dynamically; perform at most one safe re-negotiation; leave healthy webcams completely untouched; fail closed when a correction cannot be proven. This generic path remains isolated from the stable Release until it passes sufficient real-hardware validation. Compatibility Initial target: macOS Tahoe Darwin 25.6 Intel x86_64 Lilu-based kernel extension environment The current recovery has been physically validated on the hardware that originally exhibited the black-screen UVC negotiation issue. Other webcams may exhibit a similar symptom for completely different reasons, so additional hardware must be analyzed before compatibility can be claimed. Future webcam support For additional webcams, the goal is not to create an endless VID/PID compatibility list. The intended workflow is: Passive UVC trace ↓ Analyze PROBE / COMMIT negotiation ↓ Parse the webcam's descriptors ↓ Identify the failure class ↓ Prove a safe recovery ↓ Add regression fixtures ↓ Test in Generic Recovery mode ↓ Hardware validation This allows future fixes to be based on UVC behavior and descriptor evidence, rather than camera brand or model. Safety The project follows a conservative recovery policy: healthy negotiations are passed through unchanged; no arbitrary frame or payload values are guessed; unsupported or ambiguous cases remain untouched; internal recovery attempts are bounded; the stable legacy recovery remains isolated from experimental generic code. Status The original black-screen webcam case is working again under the stable recovery path. Development is now focused on safely generalizing the same concept so that other UVC webcams with equivalent negotiation failures can potentially be recovered without camera-specific hardcoding. Download Kext HERE Download DUMP HERE Credits Special thanks to the developers and projects that made this work possible: Lilu by vit9696 / Acidanthera — kernel patching framework used by UVCProbeFix. MacKernelSDK by Acidanthera — kernel development headers and build support. Apple UVC / IOUSBHost stack — platform interfaces analyzed during development and debugging. Linux uvcvideo developers — valuable reference for UVC negotiation, descriptor parsing and recovery behavior. Olarila.com community — testing, feedback and hardware reports that help expand compatibility. UVCProbeFix development and research: DNMTechLabs / MaLd0n Contact: dnmtechlabs@gmail.com
-
U just need to use imac20 smbios
-
Dont use internal graphics, use RX6600m
-
This guide explains how to create an audio codec dump using Clover Bootloader or Linux. -Linux Use Ubuntu or other distro then run this tool HERE Download Ubuntu HERE -Clover You must already have the prepared EFI folder installed or copied to your EFI partition. Download EFI HERE Steps Boot your computer using the prepared EFI folder with Clover Bootloader. When you reach the Clover boot screen, do not boot macOS. Press the F8 key on your keyboard. You don't need boot to macOS! Clover will create a codec/audio dump automatically. Open your EFI partition. Go to the Clover folder: EFI/CLOVER/ Inside the Clover folder, look for a folder named: misc Compress the entire misc folder into a .zip file. Send me the zipped misc folder. Important Notes The F8 key must be pressed at the Clover boot screen, before booting macOS. Do not rename or modify the files created inside the misc folder. Send me the complete misc folder exactly as Clover/Linux created it. If the misc folder was not created, reboot and try pressing F8 again at the Clover boot screen.
-
no support for this
-
Compact Play started following MaLd0n
-
Yes. Have support.
-
ZeroRPMBuilder is a native macOS utility created to generate AMD GPU fan-control patches for Clover/OpenCore through DeviceProperties. The application can extract or import an AMD PowerPlay table, validate its structure, apply a controlled Zero RPM modification, and generate a ready-to-use PP_PhmSoftPowerPlayTable without flashing or modifying the GPU VBIOS. It was designed for users who want a cleaner and safer way to disable Zero RPM or configure a predictable fan start/stop temperature on supported AMD GPUs. Extracting the VBIOS with Clover (if you don't use Windows) You can dump your GPU VBIOS directly from the boot menu: Boot with Clover HERE Press F6. Clover will save the GPU ROM/VBIOS to the EFI partition, usually inside the Clover misc folder. Copy the generated file and load it into ZeroRPMBuilder. This is useful when you want ZeroRPMBuilder to work with the exact VBIOS from your GPU. Main Features Native macOS application AMD GPU and PowerPlay table detection Automatic GFX0 detection Bundled gfxutil 1.84b Automatic OpenCore PCI Device Path detection VBIOS / PowerPlay table extraction SPPT import support Strict PowerPlay structure validation Automatic Clover/OpenCoreDeviceProperties generation Automatic device-id spoofing when required Automatic no-gfx-spoof for supported Lexa cases Offline patch generation for GPUs not installed in the current Mac Original SPPT backup Patched binary and hexadecimal exports OpenCore config.plist generation OpenCore DeviceProperties snippet generation Detailed export report No VBIOS flashing required Fan Presets ZeroRPM OFF — Fan Always On This mode disables the GPU's Zero RPM behavior. Only the Zero RPM enable field is changed. The original: fan start temperature fan stop temperature fan curve RPM limits thermal targets are preserved. This is intended for users who prefer the fans to remain available instead of entering the GPU's factory Zero RPM state. FAN 35°C — Stop 30°C This preset keeps Zero RPM enabled but changes the fan activation temperatures to: Fan Stop Temperature: 30°C Fan Start Temperature: 35°C Zero RPM: Enabled The GPU can stop its fans below the configured threshold and restart them at approximately 35°C. Only the required PowerPlay fan-control fields are modified. Supported AMD Architectures ZeroRPMBuilder currently supports validated PowerPlay layouts for: Polaris Polaris 10 Polaris 11 Polaris 12 / Lexa Polaris 20 Polaris 21 Polaris 23 Examples include: RX 460 RX 470 RX 480 RX 550 RX 560 RX 570 RX 580 RX 590 Radeon Pro WX series Vega 10 Including: RX Vega 56 RX Vega 64 Vega Frontier Edition Radeon Pro WX 8100 / 8200 / 9100 Vega 20 Including: Radeon VII Radeon Pro VII Navi 10 / Navi 14 Including: RX 5300 RX 5500 RX 5600 RX 5700 Radeon Pro W5500 Radeon Pro W5700 Navi 21 / Navi 22 / Navi 23 Including members of the: RX 6600 family RX 6700 family RX 6800 family RX 6900 family Radeon Pro W6600 / W6800 families The application currently recognizes 56 AMD PCI Device IDs across the supported PowerPlay families. Automatic DeviceProperties Detection ZeroRPMBuilder includes gfxutil 1.84b directly inside the application bundle. No Homebrew installation is required. The application first attempts: gfxutil -f GFX0 to obtain the real EFI PCI device path. Example: PciRoot(0x2)/Pci(0x0,0x0)/Pci(0x0,0x0) If gfxutil cannot resolve the device, ZeroRPMBuilder uses its internal IORegistry detector. If no usable GPU path can be determined, generation is still allowed through a generic fallback: PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0) The user can also manually enter the required DeviceProperties path. Offline / Cross-GPU Patch Generation ZeroRPMBuilder does not require the target GPU to be installed in the Mac used to generate the patch. For example: Mac currently running: RX 6600 XT / Navi 23 Loaded VBIOS: RX 580 / Polaris The application will still generate the Polaris patch. The local GPU is used only when appropriate for DeviceProperties path detection. The loaded VBIOS/SPPT remains authoritative for the actual patch. This makes ZeroRPMBuilder useful for: preparing an EFI for another computer; preparing a patch before installing the GPU; building patches remotely; working with VBIOS dumps from another machine. A different GPU installed in the current Mac will no longer block generation. Automatic Device-ID Spoofing For selected GPUs that require a compatible PCI Device ID, ZeroRPMBuilder can automatically generate: device-id inside OpenCore DeviceProperties. Current automatic mappings include selected: Navi 21 Navi 23 Polaris Lexa Examples: 73EF → 73FF 73AF → 73BF 73A5 → 73BF and supported Lexa mappings such as: 699F → 67FF 6987 → 67FF 6995 → 67E3 6985 → 67E3 6981 → 67E3 The property is stored in the correct little-endian OpenCore format. Lexa no-gfx-spoof For the supported Lexa Device IDs that require the additional WhateverGreen behavior, ZeroRPMBuilder also generates: <key>no-gfx-spoof</key> <data>AQAAAA==</data> which corresponds to: 01 00 00 00 This is currently applied to: 699F 6987 6995 6985 6981 It is not added globally to every spoofed GPU. Generated OpenCore Properties A generated entry can look like: DeviceProperties └── Add └── PciRoot(...)/Pci(...)/Pci(...) ├── PP_PhmSoftPowerPlayTable ├── device-id └── no-gfx-spoof device-id and no-gfx-spoof are only added when applicable. The actual PowerPlay patch is stored as raw binary data in: PP_PhmSoftPowerPlayTable Safe PowerPlay Validation ZeroRPMBuilder does not blindly patch arbitrary offsets. Before modifying a table, it validates the expected PowerPlay structure for the detected architecture. Depending on the GPU family, validation can include: PowerPlay format revision content revision table revision declared structure size fan table revision fan table offset SMU PowerPlay version thermal controller type OverDrive table layout required field bounds If the loaded table does not match a supported structure, the application refuses to patch it. Unknown layouts are not guessed. What Does ZeroRPMBuilder Modify? Depending on the architecture, only the equivalent fields for: FanZeroRpmEnable FanStopTemp FanStartTemp are modified. ZeroRPMBuilder does not intentionally change: GPU core clocks memory clocks GPU voltage memory voltage power limits TDC limits fan curves minimum RPM maximum RPM fan target temperature OverDrive capability tables FeaturesToRun Original Table Preservation Before exporting the modified PowerPlay table, ZeroRPMBuilder preserves the original source. Generated packages can contain: Original SPPT Patched SPPT HEX export OpenCore config.plist OpenCore DeviceProperties snippet Generation report This makes it easier to compare or restore the original configuration. VBIOS Safety ZeroRPMBuilder does not flash your GPU. It does not write anything to the physical VBIOS. The modified PowerPlay table is applied through OpenCore: DeviceProperties → PP_PhmSoftPowerPlayTable Removing the property restores normal behavior without reflashing the graphics card. Built-in gfxutil ZeroRPMBuilder includes the official Acidanthera gfxutil 1.84b RELEASE universal binary: x86_64 arm64 It is used exclusively for PCI / EFI Device Path discovery. The application therefore does not require the user to install gfxutil separately. Credit for gfxutil belongs to its respective upstream authors and contributors. Testing The current release has been validated through automated regression, structural, parser and stress testing. The current development test set includes: Core regression tests: 405/405 Structural validation: 143/143 Swift parser checks: 13/13 AddressSanitizer tests: 405/405 ThreadSanitizer tests: 405/405 Stress testing: PASS Stress testing includes repeated: PowerPlay modifications; VBIOS extraction; PCI path parsing; OpenCore plist generation; ZIP generation; import/export operations. The patch matrix also covers both fan modes across all currently recognized GPU IDs. Important Notes PowerPlay tables can vary between: GPU generations; board partners; VBIOS revisions; OEM cards; workstation variants. ZeroRPMBuilder therefore validates the structure before writing anything. If a VBIOS contains an unknown PowerPlay layout, please provide the original ROM/SPPT so support can be investigated safely. Always keep a working EFI backup before modifying your OpenCore configuration. Feedback and Hardware Samples Compatibility reports are welcome. If a GPU is detected but its PowerPlay table is rejected, please include: exact GPU model; PCI Device ID; VBIOS ROM if possible; original SPPT; macOS version; ZeroRPMBuilder log. Additional real-world VBIOS samples help improve validation without resorting to unsafe generic offsets. Credits ZeroRPMBuilder ©DNMTechLabs dnmtechlabs@gmail.com Additional credit to the Acidanthera project and the authors/contributors of gfxutil, Lilu, WhateverGreen and the broader Hackintosh development community. Download ZeroRPMBuilder HERE AMD PowerPlay / Zero RPM patch generator for macOS and OpenCore. No VBIOS flashing. No permanent GPU modification.
-
Disable HT, dual socket dont work with HT enable in many cases
-
Yes. Have support.
-
I think this processor is kabylake
-
**UPDATE** Here are the most important improvements. 🔹 Major Intel HDMI / DisplayPort audio evolution Intel integrated graphics display audio received one of the largest development efforts in the project. Support was improved for shared-HDEF architectures and multiple Intel generations, with better framebuffer discovery, native audio-codec-info handling and stricter association between the HDA controller and the correct graphics device. HDMI/DP endpoints can now be matched using actual framebuffer topology instead of relying only on generic assumptions. 🔹 Native framebuffer audio topology HDAUniversal can use framebuffer-provided codec information to identify: • Codec Address • Audio Function Group • Digital Pin • Active display endpoint The discovered topology is cross-checked against the live HDA widget graph and ELD information before being accepted. Ambiguous mappings fail safely rather than selecting an arbitrary display output. 🔹 Improved Intel display-audio wake Display-audio codec wake handling was added for supported Intel generations. The implementation verifies the correct GPU, framebuffer, codec address, active endpoint and display state before interacting with the display-audio hardware. Wake attempts are bounded and protected against unsupported hardware. 🔹 Intel HDMI/DP mux improvements Intel Haswell-style digital mux handling was significantly expanded. Dynamic converter selection can now follow the actual codec topology instead of assuming a fixed converter. Multiple HDMI/DP pins are handled more safely, with retry and end-to-end validation of the selected path. 🔹 Better multi-monitor and MST support DisplayPort MST routing received additional protection around converter selection and Device Select state. Previous hardware state is preserved and can be restored if a route transaction fails. This significantly reduces the risk of leaving another display endpoint in an invalid state. 🔹 Linux-aligned Intel stripe control Intel display audio gained capability-driven WCAP_STRIPE support. Stripe configuration now considers: • controller NSDO capability • sample rate • sample width • channel count • converter capabilities • active stream descriptor Both converter and stream-descriptor programming are verified through hardware readback. If the physical commit cannot be confirmed, the previous state is restored. 🔹 Capability-driven HDMI/DP amplifier handling Digital pins that expose a hardware output amplifier can now be detected through their widget capabilities. Muted amplifier channels are selectively unmuted while preserving the existing gain value. The operation includes physical readback and rollback protection. This behavior is limited to qualified Intel display-audio routes and is not applied blindly to analog codecs or unrelated digital hardware. 🔹 Stronger hotplug handling HDMI/DisplayPort hotplug processing was extensively redesigned to eliminate lifecycle races. Framebuffer callbacks no longer perform heavy HDA operations directly. Events are safely transferred to the HDAUniversal workloop, while callback lifetime is protected during detach, sleep and teardown. This also addresses scenarios involving rapid monitor connection/disconnection. 🔹 Deadlock prevention Lock ordering between framebuffer events and HDA runtime operations was hardened. Registry operations, notifier callbacks and graphics discovery are kept outside inappropriate HDA lock regions. This reduces the risk of WindowServer or graphics-stack stalls during HDMI/DP hotplug events. 🔹 Late framebuffer metadata recovery HDAUniversal can now recover when framebuffer audio metadata is not available during the first hardware scan. A bounded retry mechanism allows audio-codec-info to appear later without permanently losing the HDMI/DP endpoint. Retries stop automatically after the metadata becomes valid or the defined retry budget is exhausted. No unlimited polling is used. 🔹 Connection List parser hardening Malformed HDA Connection List ranges are now handled safely. Invalid range entries can be skipped without corrupting neighboring valid connections, selector indices or downstream routes. This behavior was aligned more closely with proven Linux HDA parsing strategies. 🔹 Physical route qualification Route discovery became more rigorous. A route can now be physically qualified by checking: • Pin direction • Widget type • Converter direction • Connection graph • Canonical path edges • DAC/ADC reachability • Pin capabilities This prevents a semantic label from overriding an impossible physical topology. 🔹 Route Authority separated from hardware qualification Detecting a valid physical path no longer automatically gives that path authority over the selected layout. This preserves an important project principle: the selected layout remains authoritative unless explicit runtime route authority is enabled. Live codec discovery is used as a fallback when layout information is absent, not as an uncontrolled replacement. 🔹 AppleALC-style layout authority preserved User-selected layouts remain the primary source for: • Pin configuration • Routing • PathMap • Codec-specific initialization Live codec data cannot silently replace a valid selected layout. This makes behavior more predictable across different machines using the same codec. 🔹 Advanced combo-jack support Combo-jack handling was extensively redesigned. Headphone and microphone detection are treated independently. A simple TRS headphone is no longer incorrectly interpreted as a headset microphone. CTIA/OMTP headset routing can be handled through explicit layout policy while ordinary layouts retain their existing behavior. 🔹 Improved microphone and headset transitions Headset state changes now use transactional routing. If a new microphone or headphone route cannot be fully committed, HDAUniversal can restore the previous verified state. This prevents partial jack transitions from leaving the codec incorrectly configured. 🔹 Smarter jack detection Jack monitoring received major efficiency improvements. HDAUniversal prioritizes unsolicited codec events whenever they are reliable. Physical polling becomes a fallback rather than the default source of constant hardware traffic. 🔹 Automatic unsolicited-event recovery When unsolicited jack events stop behaving correctly, HDAUniversal can temporarily enable fallback polling and later attempt to restore event-driven operation. This provides recovery without forcing permanent aggressive polling. 🔹 Adaptive jack fallback Fallback polling uses bounded timing and backoff. Stable hardware is queried less frequently, reducing unnecessary verb traffic while still allowing physical changes to be detected. 🔹 Corrected analog fallback latency A timing interaction that could accidentally increase non-combo jack polling from approximately hundreds of milliseconds into multi-second intervals was identified and corrected. Normal analog fallback detection once again operates at the intended responsive cadence. 🔹 Bluetooth / A2DP idle isolation Idle HDA behavior was reduced where unnecessary so that the driver avoids generating avoidable hardware activity while another audio transport is active. The implementation deliberately avoids making unsupported assumptions about the Bluetooth stack itself. 🔹 Transactional output routing Output routing now follows a stricter transaction model. Before changing hardware, previous codec state can be captured. After programming, the result is verified. If verification fails, HDAUniversal attempts a controlled rollback rather than continuing with a partially configured route. 🔹 Transactional input routing The same fail-safe model was expanded to input and capture paths. ADC selection, mixers, PinControl, amplifier state and related routing components can participate in verified route transactions. 🔹 Fail-closed recovery One of the most important architectural changes was the wider adoption of fail-closed behavior. If a hardware transaction fails and the previous known-good state cannot be restored, HDAUniversal avoids pretending that the route is valid. Unknown codec state is treated as unsafe. 🔹 Verified rollback Rollback itself is no longer assumed to succeed. Critical restoration paths can be physically verified through codec readback. This applies to several routing, initialization, capture and digital-output operations. 🔹 Capture lifecycle hardening Capture start, stop and rollback paths received additional protection. Partial ADC or stream ownership cannot silently remain active after a failed capture transaction. Lease and ownership states are kept consistent with the actual hardware state. 🔹 Exact Init safety Codec-specific initialization sequences were integrated more tightly with transactional state management. Initialization failures can participate in the same verification and rollback model instead of leaving partially programmed codec state behind. 🔹 Controller stability audit Low-level HDA controller operations were reviewed for compliance and stability. Work included: • CORB handling • RIRB handling • stream format programming • register access • bounded transport recovery • controller reset boundaries • DMA lifecycle protection 🔹 Sleep / wake improvements Command transport, framebuffer state, timers and codec state received additional lifecycle protection across system sleep and wake. The driver avoids freeing resources when hardware quiescence cannot be proven. This favors safety over aggressive cleanup. 🔹 Timer lifecycle hardening Timer creation, arming, cancellation and teardown were audited. Timers are armed with a new deadline before being enabled, preventing stale deadlines from being accidentally reused. Callback draining is also coordinated with teardown. 🔹 Framebuffer lifecycle cleanup Graphics resources, notifier objects and framebuffer references are released through safer lifecycle boundaries. Races between discovery, callback execution and driver shutdown received additional protection. 🔹 Release signing integrity The build pipeline was hardened so Release artifacts consistently use the expected signing model. Nested Mach-O components are processed correctly instead of assuming that only the main kext executable requires handling. 🔹 Executable-mode integrity Release packaging now verifies that executable permissions survive every stage of the build/package process. Nested binaries remain executable inside the final bundle instead of depending on filesystem luck. 🔹 Stronger release validation The project now uses an extensive regression matrix covering previous fixes as new functionality is introduced. Validation includes areas such as: • layouts and codecs • routing • jack handling • HDMI/DP • MST • capture • controller transport • sleep/wake • rollback • framebuffer lifecycle • release packaging • signing • resource integrity 🔹 Expanded hardware database HDAUniversal continued expanding its codec and layout database while preserving strict (Codec ID + Layout ID) identity. New layouts can coexist for the same codec without changing existing configurations. ⚙️ What these development cycles represent The biggest change is not a single codec or feature. HDAUniversal has progressively moved toward a hardware-verified, transactional and fail-safe HDA architecture. Instead of assuming that a verb worked, critical operations can verify the hardware. Instead of accepting an ambiguous route, the driver can reject it. Instead of leaving partially programmed state behind, transactions can roll back. Instead of continuously polling hardware, event-driven mechanisms are preferred and polling becomes a controlled fallback. And instead of letting runtime discovery override everything, the user-selected layout remains authoritative. The goal remains simple: broader HDA hardware compatibility on macOS while maintaining predictable behavior, strong isolation and strict hardware-state control.
-
With one GPU with support yes
-
We are releasing a version of VoodooI2C with VoodooI2CSynaptics that includes a specific fix for Sleep/Wake issues affecting Synaptics trackpads. On some laptops, the Synaptics trackpad works normally after boot, but stops responding after macOS enters Sleep and wakes up again. The device may still remain present in the system, but the RMI communication/interrupt state is not properly restored after wake. This version introduces specific power-management handling inside VoodooI2CSynaptics. What does the fix do? During Sleep, the driver tracks the device power-state transition. After Wake, VoodooI2CSynaptics performs the required recovery procedure to restore proper trackpad operation, including: restoring RMI ATTN mode; restoring the F01 interrupt mask; dedicated handling through IOKit power states; preventing unnecessary reinitialization when the trackpad is already awake; dedicated Sleep/Wake diagnostic messages. When the recovery succeeds, the driver reports: Woke up from Sleep! RMI ATTN mode restored. There are also specific diagnostic messages if any part of the recovery procedure fails: Wake recovery failed to restore RMI ATTN mode Wake recovery failed to restore F01 interrupt mask If the device is already active, the driver reports: Trackpad already awake! Not reinitializing. Version The provided package contains: VoodooI2C 2.9.1 VoodooI2CSynaptics 1.0 Current architecture: x86_64 The current build is configured for the Synaptics device identified as: SYNA2B61 Please verify the ACPI device name of your trackpad before using this version. Purpose of this fix The main goal is to address the common behavior where: Boot → Trackpad works → Sleep → Wake → Trackpad stops working With this fix, the RMI state required for trackpad interrupts is restored during Wake, allowing the device to remain operational without requiring a macOS reboot. Check the trackpad device name in IORegistryExplorer (IOReg) for each laptop, then replace the existing device name in the VoodooI2CSynaptics.kext Info.plist with the correct one for your hardware. Download: VoodooI2CSynaptics.zip Credits to the original VoodooI2C project and its developers. This version keeps the original project base while adding the Synaptics Sleep/Wake handling described above.
-
If driver don't exist u can try create one driver for that, but it's a hard work.
- 1 reply
-
- 1
-
-
DSDT.aml could not be disassembled!
MaLd0n replied to GUILHERME MARQUES RANGEL's topic in DSDT & Patch Requests
U can use this patch
