projects:disable_pcie_aspm
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| projects:disable_pcie_aspm [2025/03/31 14:11] – | projects:disable_pcie_aspm [2025/04/14 15:09] (текущий) – | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| ====== Отключение Энергосбережения Pi4/5 ====== | ====== Отключение Энергосбережения Pi4/5 ====== | ||
| - | ✅ Raspberry Pi 4:\\ | + | ✅ **Raspberry Pi 4:**\\ |
| Имеет встроенный USB 3.0 контроллер, | Имеет встроенный USB 3.0 контроллер, | ||
| - | pcie_aspm=off влияет на поведение USB 3.0 и Ethernet, может улучшить стабильность под высокой нагрузкой.\\ | + | '' |
| - | ✅ Raspberry Pi 5:\\ | + | ✅ **Raspberry Pi 5**:\\ |
| Имеет полноценный PCIe-шлюз (можно подключать NVMe и прочее).\\ | Имеет полноценный PCIe-шлюз (можно подключать NVMe и прочее).\\ | ||
| - | Здесь pcie_aspm=off особенно полезен: | + | Здесь |
| стабилизирует поведение при работе с SSD, NVMe, USB-хабами, | стабилизирует поведение при работе с SSD, NVMe, USB-хабами, | ||
| Строка 33: | Строка 33: | ||
| fi | fi | ||
| </ | </ | ||
| + | |||
| + | |||
| + | <code bash power_mode.sh> | ||
| + | #!/bin/bash | ||
| + | export LANG=en_US.UTF-8 | ||
| + | export LC_ALL=en_US.UTF-8 | ||
| + | # ==AUTOEXEC== | ||
| + | # === Power Mode === | ||
| + | # power_mode.sh | ||
| + | # Меню управления энергосбережением: | ||
| + | # Универсальный скрипт для Pi 4/5: CPU, Wi-Fi, USB + постоянный USB-on через udev | ||
| + | |||
| + | set -euo pipefail | ||
| + | |||
| + | UDEV_RULE_PATH="/ | ||
| + | |||
| + | # Определение модели | ||
| + | MODEL=$(tr -d ' | ||
| + | echo "🧠 Устройство: | ||
| + | |||
| + | # CPU governor | ||
| + | GOV=$(cat / | ||
| + | echo " | ||
| + | |||
| + | # Wi-Fi | ||
| + | WIFI_IF=$(iw dev | awk ' | ||
| + | if [[ -n " | ||
| + | WIFI_STATE=$(iw dev " | ||
| + | echo "📶 Wi-Fi интерфейс: | ||
| + | else | ||
| + | echo "📶 Wi-Fi интерфейс не найден." | ||
| + | fi | ||
| + | |||
| + | # USB | ||
| + | USB_STATE=$(grep . / | ||
| + | echo "🔌 USB power control (текущие): | ||
| + | |||
| + | |||
| + | # 💡 Оценка конфигурации | ||
| + | CONFIG_STATUS_ICON="" | ||
| + | CONFIG_STATUS_DESC="" | ||
| + | |||
| + | if [[ " | ||
| + | CONFIG_STATUS_ICON=" | ||
| + | CONFIG_STATUS_DESC=" | ||
| + | elif [[ " | ||
| + | CONFIG_STATUS_ICON=" | ||
| + | CONFIG_STATUS_DESC=" | ||
| + | elif [[ " | ||
| + | CONFIG_STATUS_ICON=" | ||
| + | CONFIG_STATUS_DESC=" | ||
| + | elif [[ " | ||
| + | CONFIG_STATUS_ICON=" | ||
| + | CONFIG_STATUS_DESC=" | ||
| + | else | ||
| + | CONFIG_STATUS_ICON=" | ||
| + | CONFIG_STATUS_DESC=" | ||
| + | fi | ||
| + | |||
| + | echo " | ||
| + | |||
| + | # udev правило | ||
| + | if [[ -f " | ||
| + | echo "📂 Udev-правило обнаружено: | ||
| + | else | ||
| + | echo "📂 Udev-правило НЕ найдено (USB отключается по умолчанию)" | ||
| + | fi | ||
| + | |||
| + | echo "" | ||
| + | echo "🔧 Выберите действие:" | ||
| + | echo " | ||
| + | echo " | ||
| + | echo " | ||
| + | echo " | ||
| + | echo " | ||
| + | read -rp "👉 Выбор: " choice | ||
| + | |||
| + | case " | ||
| + | 1) | ||
| + | if [[ " | ||
| + | read -rp "🌙 Переключить в ondemand? [y/N] " ans | ||
| + | [[ " | ||
| + | else | ||
| + | read -rp "🚀 Переключить в performance? | ||
| + | [[ " | ||
| + | fi | ||
| + | ;; | ||
| + | 2) | ||
| + | if [[ -n " | ||
| + | if [[ " | ||
| + | read -rp "📶 Отключить энергосбережение Wi-Fi ($WIFI_IF)? [y/N] " ans | ||
| + | [[ " | ||
| + | else | ||
| + | read -rp "🔌 Включить энергосбережение Wi-Fi ($WIFI_IF)? [y/N] " ans | ||
| + | [[ " | ||
| + | fi | ||
| + | fi | ||
| + | ;; | ||
| + | 3) | ||
| + | if [[ " | ||
| + | read -rp "🔋 Отключить USB энергосбережение (on)? [y/N] " ans | ||
| + | [[ " | ||
| + | else | ||
| + | read -rp "🌙 Включить USB энергосбережение (auto)? [y/N] " ans | ||
| + | [[ " | ||
| + | fi | ||
| + | ;; | ||
| + | 4) | ||
| + | if [[ -f " | ||
| + | read -rp "❌ Удалить udev-правило и вернуть поведение по умолчанию? | ||
| + | if [[ " | ||
| + | sudo rm " | ||
| + | sudo udevadm control --reload | ||
| + | echo "✅ Правило удалено." | ||
| + | fi | ||
| + | else | ||
| + | read -rp "📂 Создать правило для постоянного включения USB? [y/N] " ans | ||
| + | if [[ " | ||
| + | echo ' | ||
| + | sudo udevadm control --reload | ||
| + | sudo udevadm trigger --subsystem-match=usb --action=add | ||
| + | echo "✅ Правило создано: | ||
| + | fi | ||
| + | fi | ||
| + | ;; | ||
| + | 0) | ||
| + | echo "👋 Выход." | ||
| + | *) | ||
| + | echo "❓ Неверный выбор." | ||
| + | esac | ||
| + | </ | ||
| + | ---- | ||
| + | {{page> | ||
projects/disable_pcie_aspm.1743419477.txt.gz · Последнее изменение: —
