Современные проблемы требуют современных решений
У дека в России сейчас одна большая беда: обновления SteamOS и софта иногда превращаются в квест уровня «пройди TTY без сохранений».
Где-то не резолвится DNS, где-то не отвечает сервер Valve, где-то Discover честно пишет «ошибка 403» при попытке поставить OpenH264.
Где-то не резолвится DNS, где-то не отвечает сервер Valve, где-то Discover честно пишет «ошибка 403» при попытке поставить OpenH264.
Я довольно долго собирал статистику по этим поломкам, смотрел на трассировки, на то, какие узлы режутся по пути, и в итоге решил сделать маленький набор утилит Geekcom Deck Tools.
По сути это три вещи:
- Сервер-оркестратор VPN (на моей стороне), который выдаёт временный WireGuard-конфиг, следит за попытками, помечает рабочие и мёртвые узлы.
- Клиент на деке — набор скриптов, который:запрашивает конфиг,поднимает туннель,проверяет, что интернет реально пошёл через него,выполняет нужное действие,аккуратно всё убирает за собой.
- GUI-обёртка — аккуратное окно в стиле старых Source-меню (две вкладки: «Основное» и «Лог») с четырьмя кнопками.
Да, я всё это делал не в одиночку:
вооружившись своими знаниями, смекалкой и божьей (зачёркнуто) нейронной помощью собрал инструмент, который закрывает несколько типичных болей.
вооружившись своими знаниями, смекалкой и божьей (зачёркнуто) нейронной помощью собрал инструмент, который закрывает несколько типичных болей.
Что уже умеет Geekcom Deck Tools
- OpenH264 fix (403 в Discover/Flatpak)Запускается VPN, подтягивается нужный репозиторий, ставится/обновляется openh264, проверяется результат. Если регион режет CDN — делаем это через туннель.
- Обновление SteamOS через VPNДля тех случаев, когда обновление висит, падает с ошибками или просто не находит сервер.Скрипт поднимает временный WireGuard-туннель на мои сервера, проверяет доступность внешки, и уже через этот канал запускает стандартные команды обновления SteamOS. После окончания туннель гасится, конфиг удаляется.
- Обновление Flatpak-приложенийКлассика: flatpak update для системных и пользовательских приложений, тоже через VPN, чтобы не упираться в региональные блокировки. Нажал кнопку — пошёл лог, по окончании всё красиво закрывается.
- Geekcom antizapret — в разработкеЭто отдельная история. Задумка — сделать кнопку, которая поднимает «антизапретный» профиль: чтобы корректно работали сервисы, от которых Steam Deck зависит косвенно (Discord, WSS-шлюзы, разные API и т.п.).Серверная часть уже живёт и крутится, но клиентская кнопка в текущей версии помечена как WIP:логика есть, но я ещё не готов назвать её стабильной. Ничего страшного не случится, если нажать, но официально считаю её «экспериментальной».
Про sudo и безопасность
Дек из коробки живёт без пароля, что отлично для пользователя, но плохо для автоматизации.
Поэтому в GUI-версии есть отдельная кнопка sudo, которая:
Поэтому в GUI-версии есть отдельная кнопка sudo, которая:
- показывает, есть ли вообще пароль у пользователя;
- позволяет задать новый (например, простенький «0000», если дек чисто домашний);
- проверяет его через sudo -S true;
- хранит его только в памяти приложения и отдаёт скриптам через переменную окружения GDT_SUDO_PASS.
Нет пароля — скрипт не стартует. Есть, но не активирован — тоже не стартует. Всё максимально прозрачно: снизу лампочка и текстовое состояние.
GUI и no-GUI режимы
Я понимаю, что не у всех деков сейчас вообще запускается рабочий стол, поэтому сделал два сценария запуска.
1. Обычный GUI-режим (Desktop Mode)
В любом терминале (Konsole, например):
curl -fsSL https://fix.geekcom.org/gdt | bash
Скрипт:
- скачивает последнюю версию бинарника и скриптов из релиза,
- кладёт их в ~/.scripts/geekcom-deck-tools,
- создаёт .desktop-файл,
- запускает окно с кнопками «OpenH264», «Обновить SteamOS», «Обновить приложения (Flatpak)» и «Geekcom antizapret».
Во вкладке «Лог» видно всё, что происходит: VPN-конфиги, пинги, команды обновления. Есть отдельная кнопка «Копировать лог в буфер», чтобы скинуть мне или кому-то ещё для разбора.
2. noGUI-режим (для TTY и тех, у кого сломан Desktop Mode)
Сценарий для случаев, когда у человека есть просто дек. Только купленный и не инициализированный. нужна физическая клавиатура, интернет, внимательность и немного свободного времени.
Подключаешь клавиатуру к Steam Deck.
Переходишь в TTY нажав Ctrl+Alt+F4.
Логин: deck
Если sudo не работает или пароль не задан — командой passwd
задаёшь новый пароль (ввод два раза, символы не показываются). Этот же пароль потом будет запрашивать sudo.
Запускаешь no-GUI обновление одной строкой:
curl -fsSL https://fix.geekcom.org/ngdt | bash
Скрипт сам подтянет нужные файлы, поднимет VPN и запустит обновление SteamOS.
После завершения выполняешь перезагрузку командой sudo reboot
То есть можно не стартовать Wayland, не лазить в меню — просто зайти в TTY, ввести одну команду и дождаться окончания.
Что дальше
План такой:
- добить и стабилизировать кнопку Geekcom antizapret;
- добавить ещё пару утилит для диагностики сети дека;
- Улучшить интерфейс
утилиты
1) С телефона раздавал впн. Современные андроиды не умеют раздавать впн вместе с вай-фай. Гугл закручивает гайки. Уверен в том, что точно впн раздаётся?
2) Стим - это Валв. он цепляется к своим серверам и оттуда качает, а Дискавер - это отдельная разработка, и он цепляется к серверам линукс-коммьюнити. Флэтхаб.орг Выход такой: подцепиться к другому интернету и попробовать что-то скачать в Discover. тут GDT ничем не поможет, к сожалению
Это помогло и она заработала. Может в этом дело? Единственное приложение, которое на ней сейчас установлено - это Counter Strike из магазина Steamю Он бесплатный.
На GDT все 3 вкладки запускал и обновление Steam OS? и по ошибке 403 и Flatpak.
2) не, игры не влияют. После каждого не надо =)) Что ты установить хочешь? какой софт? Можно попробовать обходным путём пока что установить. А потом уже голову ломать что за проблема у тебя с openh264
Установка хрома: flatpak install flathub com.google.Chrome
Установка варпинатор: flatpak install flathub org.x.Warpinator А про какой протон ты говоришь не очень понимаю. Из того, что можно/нужно установить в голову приходит только ProtonUP-QT и Protontricks. Но они вряд ли нужны прям сразу, с ходу.