My parents have this old 2015 MacBook Air that they wanted to use but couldn’t due to no security updates and slow running. I convinced them to let me load up fedora on it instead of junking it. They only really need it for some basic document writing, email, and web surfing so I figured this is perfect for them.

Made a bootable drive with Fedora 43 work station on it, figured gnome would be the most Apple like spin. Everything went super smooth until I realized that the WiFi drivers weren’t installed lol. I also didn’t have a Ethernet adapter for usb-a so I had to overnight it to me while my parents swore I bricked their Mac all night. Got the adapter this AM, hooked it up, installed the drivers and other necessary tweaks, and viola! This Mac has new life.

So far my parents are liking it and understanding it (even though my mom seems more excited about the snoopy wallpaper and Firefox theme, lol). Getting their emails on thunderbird was driving me crazy. Nothing to do with thunderbird, they just didn’t know their passwords smh. All in all not bad. To new Linux converts

    • anon5621@lemmy.ml
      link
      fedilink
      arrow-up
      6
      ·
      2 hours ago

      First one

      #!/usr/bin/env bash
      set -euo pipefail
      
      
      URL="https://updates.cdn-apple.com/2019/cert/041-88431-20191011-e7ee7d98-2878-4cd9-bc0a-d98b3a1e24b1/OSXUpd10.11.5.dmg"
      RANGE=204909802-207733123
      OSX_DRV="AppleCameraInterface"
      OSX_DRV_DIR="System/Library/Extensions/AppleCameraInterface.kext/Contents/MacOS"
      FILE="$OSX_DRV_DIR/$OSX_DRV"
      
      DRV_HASH="f56e68a880b65767335071531a1c75f3cfd4958adc6d871adf8dbf3b788e8ee1"
      FW_HASH="e3e6034a67dfdaa27672dd547698bbc5b33f47f1fc7f5572a2fb68ea09d32d3d"
      
      OFFSET=81920
      SIZE=603715
      
      
      WORKDIR=$(mktemp -d)
      cd "$WORKDIR"
      
      echo "Downloading macOS driver..."
      curl -k -L -r "$RANGE" "$URL" | xzcat -qq -Q | cpio --format odc -i -d "./$FILE" &> /dev/null || true
      
      mv "$FILE" .
      
      echo "Extracting firmware..."
      dd bs=1 skip=$OFFSET count=$SIZE if=./$OSX_DRV of=./firmware.bin.gz &> /dev/null
      gunzip ./firmware.bin.gz
      
      
      echo "$DRV_HASH  $OSX_DRV" > firmware.sha256
      echo "$FW_HASH  firmware.bin" >> firmware.sha256
      
      sha256sum -c firmware.sha256
      
      
      TARGET_DIR="/lib/firmware/facetimehd"
      echo "Installing firmware to $TARGET_DIR (requires sudo)..."
      sudo mkdir -p "$TARGET_DIR"
      sudo cp firmware.bin "$TARGET_DIR/"
      
      echo "Done. Firmware installed."
      

      and second

      #!/bin/bash
      
      set -e
      
      BOOTCAMP_ZIP_URL="https://download.info.apple.com/Mac_OS_X/031-30890-20150812-ea191174-4130-11e5-a125-930911ba098f/bootcamp5.1.5769.zip"
      TMPDIR=$(mktemp -d)
      FIRMWARE_DIR="/lib/firmware/facetimehd"
      DAT_FILES=(
          "9112_01XX.dat:1663920:33060:479ae9b2b7ab018d63843d777a3886d1"
          "1771_01XX.dat:1644880:19040:a1831db76ebd83e45a016f8c94039406"
          "1871_01XX.dat:1606800:19040:017996a51c95c6e11bc62683ad1f356b"
          "1874_01XX.dat:1625840:19040:3c3cdc590e628fe3d472472ca4d74357"
      )
      
      
      for cmd in unzip unrar dd md5sum curl; do
          if ! command -v $cmd &> /dev/null; then
              echo "Missing required command: $cmd"
              exit 1
          fi
      done
      
      
      cd "$TMPDIR"
      echo "Downloading Boot Camp Support Software..."
      curl -L -o bootcamp.zip "$BOOTCAMP_ZIP_URL"
      
      
      echo "Extracting Boot Camp package..."
      unzip bootcamp.zip
      
      
      cd BootCamp/Drivers/Apple/
      
      
      echo "Extracting AppleCamera64.exe..."
      unrar x AppleCamera64.exe
      
      
      if [[ ! -f "AppleCamera.sys" ]]; then
          echo "AppleCamera.sys not found!"
          exit 1
      fi
      
      
      cd "$TMPDIR"
      
      
      echo "Extracting calibration data..."
      for entry in "${DAT_FILES[@]}"; do
          IFS=":" read -r filename skip count expected_md5 <<< "$entry"
          echo "Creating $filename..."
          dd bs=1 skip="$skip" count="$count" if=BootCamp/Drivers/Apple/AppleCamera.sys of="$filename" status=none
          actual_md5=$(md5sum "$filename" | awk '{print $1}')
          if [[ "$actual_md5" != "$expected_md5" ]]; then
              echo "Checksum mismatch for $filename (expected $expected_md5, got $actual_md5)"
              exit 1
          fi
      done
      
      
      echo "Copying .dat files to firmware directory..."
      sudo mkdir -p "$FIRMWARE_DIR"
      sudo cp *.dat "$FIRMWARE_DIR"
      
      
      echo "Reloading facetimehd module..."
      sudo modprobe -r facetimehd || true
      sudo modprobe facetimehd
      
      echo "Done. Please Reboot ."