Jump to content
Welcome to InsanelyMac Forum

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.


  • Content count

  • Joined

  • Last visited

About naterh

  • Rank
    InsanelyMac Protégé
  1. [Guide] 10.10 On the Surface Pro 3

    I believe so, yes. Its alot easier to mention what doesn't work rather than what works but I'll highlight a few newer SP3 OSX development items. On 10.11.6 what doesn't work: - Onboard Wifi - Onboard Bluetooth (uses a combo Marvell firmware image) - TypeCover Multitouch (2-finger scroll etc - Work around using Karabiner hold alt to scroll etc.) - Video Out (not tested, might work. Would be relatively easy to do a proper dsdt patch for the video but would dep on i5,i7) - OnBoard Sensors (Accelerometer, Gyro, Compass - Might be able to dump the raw values using i2cdump as the devices are enumerated) Recent Development: - I'd recently implemented multitouch support on OSX using VoodooI2C and it works decent with room for improvement. - I submitted a SP3 battery patch to Rehabman's DSDT patch git repo which works with random short disconnects. Think that might be a power management issue or could be fixed w/ the ACPIBattery.kext source. - I've got ACPI events working for the volume rocker and power hardware buttons along with the Windows screen button and lid events. Suspect either Apple's acpi driver isn't properly initializing i2c resources and so rebooting from an OS that does initialize the devices sustains them across warm reboots etc. Setting up the Windows bootloader to manage the initial boot process seems to fix this as it boots into Windows before rebooting into your OS selection. Also gives you brief touch screen bootloader options. On the i7 SP3, the latest firmware also seems to support on screen keyboard that can be accessed via fw bootloaders. So Grub's gfx mode and also Clover can show a keyboard icon in the corner allowing you to arrow key to your boot selection. - Digging thru some other OSX install guides, I'd discovered Karabiner which allows for hotkey shortcut defs and works in 10.11. I use it for alt-trackpad scrolling atm but sure other things could be quite useful too. I'm relatively pleased with the current state of things and the issues left are minimal and relatively daunting tasks that I don't forsee having time to work towards. There are a few speed up fixes that I've got in the works for the touch screen multitouch though. Compared to the SP4 current state, I think the SP3 is a bit more polished. There are other 2-in-1 tablets that have full support and/or allow you to swap out the wifi/bluetooth card but, I've no regrets and use OSX on it much more than windows lately. https://pqrs.org/osx/karabiner/ https://drive.google.com/open?id=0B5pY1koCM0Msa3F0QXdpbzBYYWc https://github.com/naterh/VoodooI2C/tree/sp3-multitouch https://github.com/RehabMan/Laptop-DSDT-Patch https://github.com/RehabMan/OS-X-ACPI-Keyboard Cheers!
  2. I was able to get the volume and power physical buttons to work. Along with the windows button on the digitizer. Right now it works after warm rebooting from Windows. From a cold boot its not working with no changes in between. Think it could either be Windows EC enables features and populates the mem registers or, my DSDT might have been extracted from a warm reboot and this is a side effect. I extracted both warm and cool boots OSX data using DarwinDumper and diff'd across it which shows the difference in the device registers but, didn't see any differences to the dsl/aml. I tied the EC Query events(_Qxx) to ADB keyboard commands using Rehabman's ADB keyboard and added a bit of debugging into the mix. Hopefully I can get it all sorted soon as to get some more optomizations into the touchscreen driver too. Will post my dsdt edits sometime soon.
  3. Mind sharing how you were able to get the power and volume buttons to work? I've got an sp3 but should be pretty similar. Thanks! For those folks with trackpads detected as standard mouse, you can use Karabiner with hotkey scrolling. I use it on my SP3 holding alt while thumbing across the trackpad allows for vert and horizontal scrolling. Not 2 finger but def much better
  4. [Guide] 10.10 On the Surface Pro 3

    I haven't gone to Sierra yet but did take a bit of time to add better multitouch support into the VoodooI2C driver previously mentioned. On 10.11.6 only bits not working are hardware buttons and sensor hub(gyroscope, compass etc) and the wifi/bluetooth(use a usb). My sdcard, touchscreen(multitouch), battery(using a dsdt patch I upstreamed to Rehabman's). I was going to look more into updating the typecover kext to proper 2 finger scrolling but, came across karabiner which has a load of alt options so I use the hold alt while trackpad-ing to scroll horizontal or vertical. Hopefully anyone looking to venture this far into their sp3 finds this as its running pretty solid here. Check the other threads for a link to that multitouch screen driver. Cheers!
  5. Haven't got 2 finger scrolling working yet but have the next best thing using karabiner with modifier key scrolling. Like holding the Alt(Option) key and thumbing across the typecover trackpad seems to work well. Does require you to set the option and their are alot of options. Def lowers the priority of getting scrolling working on the current IOUSBHIDDevice driver via typecover kext etc.
  6. The OSX tablet experience?

    The progress on the VoodooI2C project is coming along and quite a few different i2c touchscreens now support multi-touch. I recently added limited multi-touch for the Surface Pro 3 touchscreen and the pen support already works in their upstream code. Don't see any significant battery drain from it either.
  7. I use VoodooI2C in my /S/L/E no problem. On occasion when you first load a new driver build you can see a kp on the initial boot but, rebooting back into OSX after that & w/o removing it, works just fine there after. Source: someone who has loaded hundreds of VoodooI2C.kext builds in their /S/L/E No, nothing wrong. The not working list is likely not going to happen unless you feel like adding those specific gestures into the VoodooI2C build. They are not mapped to mimic apple's multitouch and were coded into a VoodooI2C module. That being said, it is somewhat straight forward to add additional swipes and gestures supporting up to 10 fingers. In the latest build of VoodooI2C in the link below, I've removed some of the scrolling roughness and dropped some of the excessive logging that is turned on by default in the main project and it seems to help quite a bit. On the battery side, the level is reported via acpi and the kext uses that info to update the stats. If you follow your console/syslog entries, you'll notice disconnect events coming in every time the x battery appears. I was following a linux thread on what seemed like the issue as they also use acpi and can see what they are doing to fix it. The about this mac System Info also shows some wild swings on the current/amp draw and its possible that the acpi values are either a firmware related issue or something that just wasn't used in the Win8.1/10 driver. Either case, we should be able to build a new ACPIBattery.kext build from Rehabman's git repo and hard set the amps and /or have it ignore those specific disconnect events. Overall, it seems to work well here though and I do get the low battery notifications and whatnot. I was digging into the buttons support last night to use Rehabman's ADB keyboard null driver by adding another binding acpi device and then updating the acpi _Q methods to send those adb events to mimic pressing power and volume on an apple keyboard etc. Made the needed changes but the acpi button press events are not getting emitted. Pretty sure the devices need to be properly enumerated and live on i2c0. Like sub devices of the SAM0 or possibly another bus. Looking at some changes to the enum VoodooI2c currently does now and it should just be a matter of powering on the devices to allow for the events to be triggered so, we'll see. Give this one a try: https://drive.google.com/file/d/0B5pY1koCM0Msa3F0QXdpbzBYYWc/view?usp=sharing //might need to select the latest version?
  8. For realz. Working on some smoother scrolling and looking at adding some additional gestures. Was thinking on 10 finger detection open the on-screen keyboard. Some of the other guys at VoodooI2C have implemented similar with a 5 finger swipe. There is a bit more work that needs to be done before these sp3 changes get merged upstream though and so might be a lil ways out. The good news is the refactoring work ties directly to accessing the sensor hub enumeration. An that includes the compass, gyro, accelerometer, ambient light and rotation sensors. Technically speaking the custom dsdt already enables the acpi lid switch and you can access/monitor it via acpi events. Think its likely a small dsdt patch to link that event to the power management to get sleep working on typecover close events. The hardware buttons still need to be enumerated and last I checked, they were gpio monitored pins with either spi or i2c base device that still needs to be enumerated so hopefully that comes together with all this too. I can't claim credit for this though. Alex, Coolstar, Blankmac, Rehabman and everyone else chipping in on these forums, even if just a little bit, goes a long ways. If you do try out that driver, feedback is appreciated. I'll be tweaking things over the next few weeks and can see about whatever fixes are needed. Oh, also trying to figure out a way to get clover to load without the typecover attached. As in use it fully tablet mode. If you didn't know, you can enable the firmware level on-screen keyboard that works in both grub and clover but so far clover chainloads to a blank screen if you launch it without the typecover attached. At least thats been my experience. So I dumped my dsdt via linux w/o the typecover and was hoping that would help but, maybe an issue specific to clover or one of its settings??? These really are crazy good lil laptops though. Both the i5 and i7 models I've got seem way faster than the last macbook air I'd messed with. Cheers!
  9. I've got everything running pretty well on my setups. I just added multitouch support to a branch of VoodooI2C and it seems to be working well. Single press and hold for right click, two finger scrolling, 3 and 4 finger gestures etc. https://drive.google.com/file/d/0B5pY1koCM0Msa3F0QXdpbzBYYWc/view?usp=sharing Also use a dsdt battery patch I PR'd to with Rehab's ACPI battery kext and should be upstream in his battery patch repo. Working on acpi lid closed events, rotation sensors and buttons. Might look at making a new typecover kext w/ two finger scrolling support too. Just feeling like sharing...Hope some peepz find it useful.
  10. [HOWTO] ACPI access for monitoring

    Great work and thank you for putting this together. I am trying to get access to values in my sensor hub on my MS Surface Pro 3. I would also like to enable the volume rocker, power button and windows home button on the digitizer. The sensor hub is on i2c and I have it enumerated but I believe there is more to it as I've not been able to pull any value data out of it aside from looking at the properties. Id started to look into enabling the buttons and apparently they are handled via monitoring the gpio and sending acpi events. I've enabled the Rehabman's ACPI debug kext and made the needed dsdt changes but don't see any acpi events being generated. Apparently based on some linux driver support the buttons use a non-standard pin config for the gpio. Would any of this fit into the acpi sensors detection hwsensors uses and if possible, monitoring the rotation/axis/accelerometer and other sensors thru this though, I am not sure what their sam acpi value equivalent would be. I was able to verify the lid sensor for the typecover is infact working as it follows the acpi spec. I did also discover a type of tilt sensor built into the typecover that can detect rotation and built a discovery app that uses iokit to output the values. https://bugzilla.kernel.org/show_bug.cgi?id=84651 Any help is appreciated. Thanks!