
Upgrading Linux Mint 22.x to Kernel 7.0 Causes Panic on MacBook Air 2013-2017. What Can You Do?
About a month ago, Linux Mint pushed out kernel version 7.0. If you run Update Manager or apt upgrade, your computer will download and attempt to upgrade to 7.0.0-28. The installation will fail because the proprietary Broadcom wifi driver (broadcom-sta-dkms 6.30.223-.271-23ubuntu1.2) does not build with the 7.0 kernel.
If you reboot your laptop, you will see the KERNEL PANIC error message shown above. This happens on my MacBook Air 11" (2013-2015) models, and the same problem probably occurs on the MacBook Air 13" (2013-2017) models and other similar Intel MacBook Air and Pro models from that era.
I spent some time researching this problem, and I am posting my notes here in case this helps other people.
(Note: I do not use AI to write my posts. I do use AI as a search agent.)
Boot to a Previous Kernel
The GRUB boot loader can display a menu of the previous kernels, and the user can select using the arrow keys. Unfortunately by default, Linux Mint on the MacBook configures the GRUB menu to be hidden.
The Update Manager says (View > Linux Kernels): "Press and hold the Shift key to show the boot menu." Unfortunately, the Shift key does not work on the MacBooks. You must instead use the ESC key to get the boot menu.
You must hit the ESC key only once. If you hit the ESC more than once, you will get the GRUB command line prompt, which looks like this:
grub>
If this happens, type "normal" to restart the boot process:
grub> normal
then hit the ESC key again, but only once.
When the menu appears, select the previous working kernel (e.g. 6.17, or 6.14, or 6.8), then hit ENTER to boot into the previously working kernel.
Enable GRUB Menu By Default
You can force GRUB to always display the boot menu, instead of being hidden. Edit the /etc/default/grub file, change the values of the following options as shown below:
GRUB_TIMEOUT_STYLE=menu
GRUB_TIMEOUT=5
Run the update-grub command:
$ sudo update-grub
Now when the machine reboots, you will always see the GRUB menu. If you don't select anything for 5 seconds, it will automatically boot using the default kernel.
Remove the 7.0 Kernel
If you remove all kernels of a given series (e.g. all versions of the 6.17 kernel), the Update Manager apparently will no longer prompt you to install any new versions of that entire series.
However, if you do a fresh install of Mint 22.3 which comes with the 6.14 kernel as the default, running the Update Manager will prompt you to install the 7.0 kernel, even though there are no 7.0 kernel installed.
It seems then that you must install the 7.0 kernel, then immediately remove it, to prevent the Update Manager from downloading any additional 7.0 kernels in the future. However, if Linux Mint releases a 7.1 kernel, I suspect that the Update Manager will grab the new version since it is a new series.
Pin the 6.8 Kernel
The 6.11, 6.14, and 6.17 kernels are all End Of Life, and will not receive any further security updates. But the 6.8 kernel is supported until April 2029. It seems to work perfectly well on my MacBook Air 11" (2013-2015) models.
Various AI bots suggest that the apt-mark command can be used to pin the kernel to the 6.8 version with something like this:
$ sudo apt-mark hold linux-image-6.8* linux-headers-6.8* linux-modules-6.8* linux-generic linux-image-generic linux-headers-generic
However, this does not work. I have tried dozens of variations of this command, none of them work.
Filter Out the 7.0 Kernel
More advanced AI agents suggest that we can filter away the 7.0 kernel by creating a /etc/apt/preferences.d/no-kernel-7.pref file that contains the following lines:
Package: /^linux-(image|headers|modules|generic|hwe).*/
Pin: version /^7\..*/
Pin-Priority: -1
I have verified that this method does work. The 7.0 kernel will not get downloaded by the Update Manager or by apt with this filtering in place.
But I Really Want to Use the 7.0 Kernel
The 6.8 kernel is supported until April 2029. The 7.0 kernel is also an LTS kernel which is supported until May 2029.
As far as I can tell, there are no major features in the 7.0 kernel which are relevant to an Intel MacBook Air or Pro laptop from the 2011-2017 era. The only thing that might be beneficial are some improvements to the memory management subsystem which might help laptops with limited memory, e.g. only 4GB of RAM.
Currently, it seems that the only way to run a 7.0 kernel on a MacBook from this era is to replace the Broadcom WiFi chip with an Intel WiFi chip (e.g. an Intel AX210). The Intel chip driver is built directly into the Linux kernel, and does not require a proprietary driver like the Broadcom.
I have upgraded one of my MacBook Air 11" to use the Intel AX210, and I have verified that it works perfectly with the 7.0 kernel. No more Broadcom driver required. I will make another post that describes my experience with the AX210 WiFi card upgrade.