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:
ahauimix
2026-06-19 22:26:33 +03:00
parent 1938b7c743
commit 4bc9629a09
381 changed files with 3442 additions and 773 deletions

View 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'