# Troubleshooting

Troubleshooting a Kernel Extension might not be straight forward, here are some tactics:

# Kernel Extension Loading Status

Run the following command in terminal:

kextstat | grep -i "KEXT'S_NAME"
1

For example:

$ kextstat | grep -i "itlwm"
    70    0 0xffffff7f84126000 0xf86000   0xf86000   com.zxystd.itlwm (1) 10EA7641-BDCB-3820-9AF7-4C773FD9953E <33 13 6 5 3 1>
1
2
  • If a new line with the kext's name appears, it means the kext has successfully loaded.
  • If you get nothing, please recheck your bootloader's configuration.

# Resetting System Preferences - Network

If you've tried other network-related Kernel Extensions before, some system configurations may be corrupted.

WARNING: The following procedures will completely reset your network preferences, including proxies, DNS, etc. The deleted files will be automatically created. But make sure you have made a proper backup.

  1. Open System Preferences → Network, delete all ports, click on apply at the bottom right corner

  2. Open Terminal, run:

    open /Library/Preferences/SystemConfiguration
    
    1
  3. Then Delete

    • com.apple.airport.preferences.plist
    • preferences.plist
    • NetworkInterfaces.plist
    • com.apple.network.identification.plist
    • com.apple.wifi.message-tracer.plist
    • And all files containing enX, (X as an integer)

    If you've changed your SMBIOS before, you must also delete files with names that contain your current and previous models.

  4. Reboot

# Runtime Logs

# AirportItlwm

bash <(curl -sL https://git.io/AirportItlDebug)
1

If nothing appears in your terminal, try the following command:

bash <(curl -sL https://cdn.jsdelivr.net/gh/OpenIntelWireless/OpenIntelWireless.github.io/itlwm/AirItlDebug.sh)
1

# itlwm

Use HeliPort to create a diagnostic report

# Getting Kext Logs For Loading Failures

The log command in macOS is ridiculously unreliable for identifying Kext loading issues when Kexts are injected by bootloaders. Fortunately, we can use msgbuf or load the Kext manually after booting into the system to solve this issue.

# Using dmesg

Credit lvs1974 (opens new window)

  1. Add msgbuf=1048576 into boot-args using either nvram or your bootloader's config

  2. Run the following command in terminal:

    sudo dmesg | grep -i "itlwm" > ~/Desktop/Log_"$(date '+%Y-%m-%d_%H-%M-%S')".log
    
    1
  3. A log file will then be created on your Desktop.

# Loading the kext manually (only works for itlwm)

  1. Download the latest version of itlwm, unzip

  2. Remove itlwm from your EFI

  3. Disable System Integrity Protection

  4. Restart your computer

  5. Run the following commands in Terminal:

    cp -R itlwm.kext /tmp
    sudo chown -R root:wheel /tmp/*.kext
    sudo kextutil -v /tmp/*.kext
    log show --last boot | grep -i "itlwm" > ~/Desktop/Log_"$(date '+%Y-%m-%d_%H-%M-%S')".log
    
    1
    2
    3
    4
  6. A log file will then be created on your Desktop.