MacBook 12, 2017 Challenge: The quest for drivers

First-off to @marbetschar, and others who with your willingness and technical wizardry have made it possible for me to run Manjaro, bluetooth working flawlessly, and have a rescue USB to save me when needed, on my little 12" Macbook; thank you, thank you, thank you so very much.

Yes @turkeyzawa the suspend (or hibernate for that matter) does not work yet. However, I have found that with the appropriately tweaked bash scripts, it is possible to have what I refer to as a "faux-hibernate/suspend" capability. I run the KDE version of Manjaro. The scripts utilize KDE's very good session-save capabilities. Its not perfect but it works for my purposes at the moment. I had tried to do this using GNOME about a year ago and gave up. However, KDE's session save/restore capability turns out to be very effective and vastly superior to what I experienced under Gnome. It may be Gnome has been refined since then, though I cannot say.

My scripts are nothing special. They certainly could be written by anyone and I'm sure improved by everyone. But I'd be happy to share them if anyone is interested.

Once suspend/hibernate is working I will go that route but for now the scripts make my little 12" MBR very useful. Thanks to the herculean efforts of others in providing custom Manjaro Live USB.

1 Like

If your network components are causing your suspend issue you can often solve this by writing a service. I usually don't specifically include the Bluetooth components, but in your cases I would definitely do that. Lots of examples of how to write the required services on the forum.

Simply search "systemd suspend service".

@Catbert thank you very much, glad you like it! :partying_face: having a few scripts in place which do the heavy load in terms of suspend/resume sounds like a reasonable approach to get things rolling quicker. Had no idea this is possible at all. Do you mind sharing your work? I'll happily add it to the iso if you don't mind - and they might point me towards a similar solution under GNOME.

@tbg wasn't aware we are able to use systemd to suspend services, will definately check this out.

And at everybody: Does anyone know how to debug suspend/resume issues? The tricky thing right now for me is, that my screen sometimes turns black and or GNOME stops responding after suspend. Therefore I hav to force reboot - and then no clue how to figure out what exactly caused the issue in the first place.

If the suspend issue is caused by your video driver a service will not help. If the issues are caused by other hardware then the issue can often be worked around with a service or tweaking your tlp settings.

Try this:

sudo systemctl disable tlp

Reboot.

If you can suspend properly with tlp disabled, then you simply need to find and change the tlp setting responsible.

If it is not tlp causing your issue it is likely a piece of hardware that is not responding to the suspend command causing your issue. If that hardware is your video drivers a service is useless. Any other hardware causing suspend problems can usually be corrected with a service (but not always).

1 Like

@marbetschar Thanks for your quick response and updating the matrix! I have really appreciated:grinning: Try to fix the suspend issue myself and will report it on this!

@Catbert Thanks for sharing! it would be greatly appreciated if you share your work:grin:

@tbg Hi, thanks for posting workarounds! I tried disabling tlp and reboot right away but it could not fix it sadly. Suspend my laptop and push the power button but blacklight came on and nothing happened. I am going to search "systemd suspend service" on the forum and try to another workaround you've posted.

I have helped on quite a few threads with Macs and suspend issues. If I recall correctly sometimes the Multimedia Card reader, Trackpad, WiFi, or Bluetooth was responsible for preventing a proper suspend. A systemd service worked in some cases and others had no luck.

You need to start by running the command lsmod to identify your running modules. Then you need to examine your logs for any suspend errors. You need to unload the modules or disable the device by its PCI:ID, or its USB bus ID. The first step is identifying which device is responsible for preventing a proper suspend.

1 Like

@marbetschar

Happy to share my scripts; unclear how to go about it though. I could zip them up and then...I don't know how to deliver.

@Catbert you could copy & paste them as a Gist on GitHub: https://gist.github.com

If you would like more information on writingservices see this thread on the forum:

Done. The scripts can be found at...

Hmm. That didn't post quite like I expected.

@marbetschar

I do have a question. After installing your Version 4. I was unable to do a sudo pacman -Syyu. I kept getting the "there's nothing to do" message. Updating mirrors had no effect. On doing more searching I learned and then got the latest mirrors list from "https://www.archlinux.org/mirrorlist/" . I enabled the US servers as that's where I am. And now I get this....

sudo pacman -Syyuu
:: Synchronizing package databases...
 core                                           134.6 KiB   512K/s 00:00 [########################################] 100%
 extra                                         1667.0 KiB  2.20M/s 00:01 [########################################] 100%
 community                                        4.8 MiB  2.75M/s 00:02 [########################################] 100%
 multilib                                       175.0 KiB  1346K/s 00:00 [########################################] 100%
:: Starting full system upgrade...
warning: cryptsetup: downgrading from version 2.1.0-1.1 to version 2.1.0-1
warning: gd: downgrading from version 2.2.5-1.1 to version 2.2.5-1
warning: lib32-systemd: downgrading from version 241.607-1 to version 241.93-1
warning: openssh: downgrading from version 7.9p1-1.1 to version 7.9p1-1
warning: os-prober: downgrading from version 1.76-2 to version 1.76-1
warning: procps-ng: downgrading from version 3.3.15-1.2 to version 3.3.15-1
warning: screenfetch: downgrading from version 3.8.0.r107.g522c9c0-1 to version 3.8.0-3
warning: systemd: downgrading from version 241.607-1 to version 241.93-1
warning: systemd-libs: downgrading from version 241.607-1 to version 241.93-1
warning: systemd-sysvcompat: downgrading from version 241.607-1 to version 241.93-1
resolving dependencies...
looking for conflicting packages...
error: failed to prepare transaction (could not satisfy dependencies)
:: installing icu (64.1-1) breaks dependency 'icu<63.2' required by manjaro-settings-manager

Any thoughts? Would Version 4 have newer versions of the packages than available via pacman -Syyu?

Oh and the icon on my taskbar now shows 147 updates

@Catbert from what I know Manjaro uses its own mirrors, so simply switching to the Arch ones might not be a good idea. I assume this is what eventually leads to your dependency error. Not sure though, I'm not too familiar with the Manjaro ecosystem yet.

For updates in general: Since the v0.4.0 of the iso was built 6 days ago, it might be true that there are no updates available yet. At least I can't think of a reason why updating should not work at all.

Be aware of Kernel updates: Please be aware that as of now the iso-build might only work with the kernel version provided. Therefore simply doing a system upgrade may lead to loss of Bluetooth functionality and/or break other MacBook related hardware stuff. This is something I'd love to fix in the long run - but as of now: Don't do any kernel upgrades if you like to keep the hardware working as it is.

@marbetschar Right! Makes perfect sense. Armed with that tidbit of information, I did a pacman-mirrors command switching to 'unstable' branch. Yup! lots of updates available. I didn't update though, I prefer to stay with 'stable'. Thank you for the help.

Here is an example of a service I wrote that will hopefully resolve suspend issues created by any problematic USB device. This service will not work if the device causing the issue is on the PCI bus, but it does encompass a lot of devices that could cause suspend issues.

If your networking is causing your suspend issues I have many examples of how to write those type of services on the forum.

Hmm... so updates showed up when I checked today. Did the upgrade thinking if it switched me to a new kernel I'd just go in to the "kernel-Systems Settings Module' applet and re-select the older kernel. Unfortunately the upgrade boosted the 4.19.32 to 4.19.34 and the 4.19.32 is not a choice in the settings applet. So the keyboard continues to work but bluetooth is gone. No adapter. Any suggestions on how to get it back short of reinstalling via the @marbetschar created V4 iso? which I'm thinking I lose all the other upgraded items too. I running "timeshift" so maybe I can just right a couple files back to my system? Or do I right a (pre-ugrade) full backup? That would be better maybe than actually going back the the V4 live usb. I don't know. Then if I did the timeshift thing. Is there a way to do the upgrade again but prevent the kernel jump from the 4.19.32 to the 4.19.34?

VIVA LA TIMESHIFT!!!!

That got me back to where I was before doing the update. Now I just need to know how to do the update without doing the kernel update from 4.19.32 to 4.19.34.

@Catbert sorry for the troubles. As said, Kernel updates are not safe yet. Need to find a way to work around this - unfortunately the needed module patching for Bluetooth is a fairly manual process. But it should at least work automatically if you stick with the LTS version (4.19) - obviously this is not the case yet.

Does anybody have had any luck in getting a response of some sort from the pcwc_pcie driver guy (FaceTime HD camera support)? Or does anybody got the 480p FaceTime camera working? Seems like the project is somehow dead...

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.

Forum kindly sponsored by Bytemark