Add Joplin, old Mac, and Fedora WiFi runbooks; simplify JA3 Whisky scripts and hotspot recovery.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
63
docs/old_mac/scripts/install-bcm4322-firmware-fedora.sh
Executable file
63
docs/old_mac/scripts/install-bcm4322-firmware-fedora.sh
Executable file
@@ -0,0 +1,63 @@
|
||||
#!/usr/bin/env bash
|
||||
# Установить firmware b43 для BCM4322 на Fedora (offline).
|
||||
# Запуск на Fedora MacBook (root):
|
||||
# tar xzf fedora-bcm4322-wifi-fix.tar.gz
|
||||
# cd fedora-bcm4322-wifi-fix
|
||||
# sudo bash install-bcm4322-firmware-fedora.sh
|
||||
set -euo pipefail
|
||||
|
||||
die() { printf 'error: %s\n' "$*" >&2; exit 1; }
|
||||
|
||||
if [ "$(id -u)" -ne 0 ]; then
|
||||
die "запустите с sudo"
|
||||
fi
|
||||
|
||||
ROOT="$(cd "$(dirname "$0")" && pwd)"
|
||||
SRC="${1:-$ROOT/bundle/bcm4322-offline-bundle}"
|
||||
|
||||
[ -d "$SRC/b43" ] || die "нет каталога $SRC/b43"
|
||||
[ -f "$SRC/b43/ucode16_mimo.fw" ] || die "нет $SRC/b43/ucode16_mimo.fw (BCM4322)"
|
||||
|
||||
DEST="/lib/firmware/b43"
|
||||
BACKUP="/var/lib/bcm4322-firmware-backup-$(date +%Y%m%d-%H%M%S)"
|
||||
|
||||
mkdir -p "$DEST" "$BACKUP"
|
||||
if [ -d "$DEST" ] && [ "$(ls -A "$DEST" 2>/dev/null | wc -l)" -gt 0 ]; then
|
||||
cp -a "$DEST/." "$BACKUP/" 2>/dev/null || true
|
||||
printf 'Резервная копия старых файлов: %s\n' "$BACKUP"
|
||||
fi
|
||||
|
||||
cp -a "$SRC/b43/." "$DEST/"
|
||||
chmod 644 "$DEST"/*.fw 2>/dev/null || true
|
||||
restorecon -Rv /lib/firmware/b43 >/dev/null 2>&1 || true
|
||||
|
||||
COUNT="$(find "$DEST" -maxdepth 1 -name '*.fw' | wc -l | tr -d ' ')"
|
||||
printf 'Установлено %s файлов в %s\n' "$COUNT" "$DEST"
|
||||
printf 'Ключевой файл: %s (%s bytes)\n' "$DEST/ucode16_mimo.fw" "$(stat -c%s "$DEST/ucode16_mimo.fw" 2>/dev/null || stat -f%z "$DEST/ucode16_mimo.fw")"
|
||||
|
||||
printf 'Перезагрузка модуля b43 …\n'
|
||||
modprobe -r b43 2>/dev/null || true
|
||||
sleep 1
|
||||
modprobe b43
|
||||
|
||||
sleep 2
|
||||
if dmesg | tail -50 | grep -qi 'firmware file.*not found'; then
|
||||
die "ядро всё ещё не видит firmware — проверьте: sudo dmesg | grep -i b43"
|
||||
fi
|
||||
|
||||
if command -v nmcli >/dev/null 2>&1; then
|
||||
nmcli device status || true
|
||||
WIFI_DEV="$(nmcli -t -f DEVICE,TYPE device | awk -F: '$2=="wifi"{print $1; exit}')"
|
||||
if [ -n "${WIFI_DEV:-}" ]; then
|
||||
printf 'Wi-Fi интерфейс появился: %s\n' "$WIFI_DEV"
|
||||
nmcli radio wifi on 2>/dev/null || true
|
||||
nmcli device wifi list 2>/dev/null | head -10 || true
|
||||
else
|
||||
printf 'Wi-Fi интерфейс пока не виден — нужна перезагрузка.\n'
|
||||
fi
|
||||
fi
|
||||
|
||||
printf '\nГотово. Дальше:\n'
|
||||
printf ' sudo reboot\n'
|
||||
printf ' nmcli device wifi list\n'
|
||||
printf ' nmcli device wifi connect "SSID" password "пароль"\n'
|
||||
Reference in New Issue
Block a user