Setting kernel param with a mac + refind

Hi all! I helped a friend install eos on her 2017 macbook pro as a dual-boot with macOS, using rEFInd as the bootloader. Following the advice of various guides, I installed rEFInd first, from the mac side, before installing eos with the “No Bootloader” option. It boots up to both os’es just fine. The problem is with her wifi card, a Broadcom BCM43602 802.11ac that eos isn’t finding at all. According to the archwiki, the solution is to set the kernel parameter brcmfmac.feature_disable=0x82000. For some reason I can’t get rEFInd to let me add the parameter at boot, but in any case I’d like to set that parameter permanently. This is what I’m having problems doing.

I tried adding it via dracut, by following the process given here of creating a /etc/dracut.conf.d/cmdline.conf file with the parameter included and then running # dracut-rebuild, but to no effect. Having read dalto’s comment in the Add kernel parameter to dracut - #2 by dalto? thread, I suspect this didn’t work because eos doesn’t handle kernel parameters with dracut. The advice from dalto in the rest of that comment, about how to add parameters for grub or systemd-boot obviously doesn’t help since I’m using rEFInd.

So, I’m wondering if either of these options might work…

  1. The wiki says that I can add parameters to boot/refind_linux.conf. However, since I installed rEFInd from the mac side rather than through eos, that file doesn’t exist currently. Would it still work if I created the file? And if so, how do I determine the other stuff that I need to put in the Boot using default options line, such as the root UUID?

  2. Would it work if I just re-install rEFInd from the linux side (presumably overwriting the one I installed from the mac side?) and then add the parameter to refind_linux.conf? And would rEFInd still let her boot macOS if I did that?

Or is there some other option?

Thanks, sorry for the long post.

According to the docs, if you install the refind package, then run mkrlconf, that should create the config files for refind. I have never tested this personally.

For the sake of clarity, installing the refind package is different than installing Refind to the bootloader.

OK, thanks. Am I right in taking your old comment to mean that adding a kernel parameter can’t be done with dracut?

And if we did install refind to the bootloader from the linux side (by running the install script, yes?), is it likely that it would autodetect the macOS install? It worked the other way around.

It’s been a while since i used refind and i don’t have a Mac but i thought that the kernel parameter would be added to the refind.conf file? :person_shrugging:

The thing is that there’s no refind.conf file in place, I assume because I installed refind from the mac side. What dalto seems to be suggesting is that if I install refind from the linux side then I can run mkrlconf to add that file, which I can then add the kernel parameter to. So I’ll give that a shot once we manage to get her linux install online (once the ethernet-usb dongle we ordered arrives).

I could try just creating the file, but I’m not confident that I understand the required contents (other than the kernel param) well enough to pull it off, and I don’t want to bork the ability to boot into eos.

1 Like

From https://wiki.archlinux.org/title/REFInd I used this (for some different distro’s):

After installing rEFInd's files to the ESP, verify that rEFInd has created refind_linux.conf containing kernel parameters in the same directory as your kernel. This configuration file will not be created if you used the --usedefault option, run mkrlconf as root to create it. 

If you use it from within your running Linux it should do the job.
Afterwards you may edit this file as you need.

1 Like