Привет, Хабр! Меня зовут Дмитрий, я уже пять лет работаю веб-программистом в компании ISPsystem. Моя задача — разработка и поддержка сайтов компании, написание интеграций для этих сайтов с продуктами, которые мы создаем (VMmanager, BILLmanager, DCImanager и DNSmanager). Например, благодаря мне наши клиенты могут заказать триальные лицензии или демоверсии продуктов прямо на сайте. Программирую уже 14 лет, а учился на инженера по специальности «Информационные системы и технологии». Получается, работаю по специальности 🙂
Сегодня я расскажу, как мне довелось решать рабочие задачи, используя портативный компьютер (а-ля игровая консоль) Steam Deck, когда под рукой не оказалось моего ПК, за которым я обычно работаю дома.
Где д̶е̶н̶ь̶г̶и комп, Лебовски?
Началось всё с того, что я решил продать материнскую плату своего ПК, так как на ней начали самопроизвольно и в рандомном порядке отключаться устройства, подключенные по USB после выхода из спящего режима, — что в Windows, что в Linux. Ни свежая прошивка BIOS, ни обновления драйверов на материнскую плату не решали эту проблему — только перезагрузка до следующего такого «отвала» USB-устройств после выхода из режима сна. В итоге я устал с этим мириться и решил просто продать материнку, упомянув в объявлении о данном «недуге».
На вырученные с продажи деньги (и немного добавив сверху) я планировал купить новую материнскую плату другого бренда и рассчитывал получить ее в течение пары дней. Но, как оказалось, покупку нужно было ждать со склада чуть больше недели: в магазинах Иркутска, где я живу, такой платы не оказалось. Выбирать что-то другое мне не хотелось, так как эта просто покорила меня своими характеристиками: встроенные Wi-Fi и Bluetooth, разгонный потенциал для процессоров на сокете AM4, массивные радиаторы на цепях питания, чипсет x570s — с пассивным радиатором, в отличие от моей предыдущей материнской платы, где на чипсете x570 стоял маленький вентилятор, издающий раздражающий гул (даже смазка не помогала).
Что-то я немного отвлекся от темы статьи… В общем, ситуация складывалась таким образом, что пользоваться компьютером со старой платой было просто невозможно, новую ждать — неделю, а работа сама себя не поработает.
На тот момент у меня уже была приставка Steam Deck, она же портативный ПК. Решившись использовать ее в качестве рабочего инструмента, я всё же разместил объявление о продаже старой платы. Покупатель нашелся быстро, поэтому ничего не останавливало меня от покупки новой материнки. Я сделал заказ до ближайшего к дому магазина и вошел в режим ждуна. Дальше началось самое интересное: мне очень хотелось, так сказать, выйти из зоны комфорта и скорее попробовать возможности Steam Deck в качестве основной рабочей машины. Главное, что было важно в тот момент, — иметь под рукой док-станцию или USB-хаб для подключения клавиатуры и мыши для эффективной работы за этим устройством. Всё это у меня было.
Так вот ты какая, с̶и̶н̶я̶я̶ ̶п̶т̶и̶ц̶а Steam Deck
Основное назначение приставки, конечно же, игровое, но никто не мешает использовать ее для каких-то рабочих процессов и всего того, что можно делать за обычным «взрослым» ПК. .
Купил я приставку чуть меньше года назад и до сих пор ни разу не пожалел. После покупки сразу же заменил родной внутренний накопитель eMMC 64 Гб на более быстрый и емкий NVMe SSD на 1 Тб. На тот момент среди конкурентов были более дорогие китайские портативки — разного рода GPD Win и иже с ними.
Как только приставка оказалась у меня в руках, я начал устанавливать игры — тогда на моем аккаунте в Steam их было более 300. На удивление, даже самые тяжелые игры — Days Gone, Cyberpunk 2077, Horizon Zero Dawn, Fallout 76 — работали хорошо. Встроенная в SteamOS система апскейла FSR неплохо себя показала, чуть замыливая картинку, но зато прибавляя лишних FPS игре. Последнее, что я прошел на Steam Deck, — инди-игра COCOON. Элементы головоломки и путешествия по мирам, переносимым на спине главного персонажа… Ставлю 10/10 — игра точно стоит потраченного на нее времени.
До этого у меня был Nintendo Switch. Тоже по-своему интересное портативное устройство со своими эксклюзивными играми. Но меня, как энтузиаста, не совсем устроило, что портативка закрытая в плане ПО и на ней практически невозможно запустить тот же Linux. Есть худо-бедно собранный Ubuntu, но дико лагающий, а про какие-то рабочие процессы и говорить не приходится, потому что устройство совсем другого класса — исключительно игровое. Поэтому было принято решение продать Switch и купить взамен Steam Deck — вот тут простор для творчества просто безграничный.
На приставке уже установлена полноценная операционная система Arch Linux, которая годится для всех моих рабочих задач. Локальный веб-сервер для разработки сайтов? Пожалуйста. Привычная IDE VScode для разработки? Не вопрос. GIT, FTP-клиенты, графические редакторы — всё это без проблем устанавливается из встроенного магазина Discover, кроме веб-сервера, но об этом я расскажу ниже чуть подробнее.
Работает всё на кастомном процессоре от AMD со встроенным графическим ядром на частоте от 2,4 до 3,5 ГГц и оперативной памятью объемом в 16 Гб, из которых 1 Гб отдан графическому ядру, которое, в зависимости от нагрузки, может использовать до 8 Гб. Есть возможность установить dualboot и второй операционкой сделать Windows 10/11. Более старые версии не поддерживаются из-за отсутствия драйверов.
«Осталось добавить монитор», или Как я организовал рабочий процесс
Для полноценной работы как за обычным ПК нужен либо USB-C хаб, либо док-станция, подключаемая по USB-C с USB-портами и портом подключения монитора. В моем случае это была док-станция, к которой я подключил Steam Deck и уже после этого смог пользоваться клавиатурой, мышью, монитором, подключенным по HDMI, беспроводными наушниками с микрофоном, подключенными по радиоканалу к USB-C на док-станции, и даже внешней USB-веб-камерой. При подключении монитора можно продублировать изображение с приставки, расширить экраны (экран приставки и монитор будут работать как два независимых монитора) или выключить один из экранов, если не нужен. Я же решил для себя экран приставки «потушить» и пользовался только подключенным монитором. Так мне показалось более удобно.
В целом Valve постарались сделать так, чтобы опыт работы со SteamOS оставил только положительные впечатления.
Меня также порадовало, что по Arch Linux есть довольно подробная документация как на английском, так и на русском языках — чтобы обращаться с ним, выходя за рамки обычного использования Steam Deck. То есть не просто скачать и установить какие-либо игры, эмуляторы и околоигровой софт, а использовать как полноценный ПК на Linux. Таким образом, установив сначала пароль от суперпользователя (по умолчанию он не задан), а после установив все необходимые пакеты и зависимости из официальных источников, мне удалось поднять локальный веб-сервер для разработки (Apache, PHP, MySQL, PhpMyAdmin), склонировать из репозиториев моей компании исходный код сайтов и продолжить разработку, как если бы я это делал на своем обычном компе под «Виндой».
Да, именно под «Виндой» я всё это время и работал. Перейдя на Linux, установленный на Steam Deck, было немного непривычно перестроиться, так как приходилось устанавливать/настраивать приложения через командную строку. В частности, чтобы завелся локальный веб-сервер, нужно было произвести манипуляции через окно терминала. Но Arch Linux оказался дружелюбной системой, и проблем не возникло. Опять же, благодаря достаточно исчерпывающей документации и гайдам на просторах интернета удалось всё настроить под себя и при этом не уронить всю систему к чертям. Все гайды для обычного Arch Linux подошли и к операционке, установленной на Steam Deck. Из чего можно сделать вывод, что если как-то и была модифицирована ОС, от обычного Arch она ничем не отличается, либо я просто не заметил каких-то существенных отличий.
Теперь, как и обещал, расскажу немного про настройку локального веб-сервера. Для его работы на Steam Deck под задачи веб-разработки был установлен и настроен LAMP (Linux Apache MySQL PHP) стек в связке с PhpMyAdmin для управления базами данных (все манипуляции осуществлялись в командной строке Konsole). Признаюсь, этот процесс занял у меня больше всего времени, поэтому я решил написать инструкцию со всеми нюансами настройки на случай, если вы решите повторить мой опыт. Пользуйтесь, всё работает. Проверено на себе 🙂
Проработав с приставкой целую неделю, я не испытал никаких проблем с производительностью: даже Google Chrome с 20+ открытыми вкладками не уложил на лопатки устройство. Плавность работы сохранилась также и в графическом редакторе GIMP.
Должен быть какой-то подвох…
Как я уже говорил, в качестве полноценного рабочего инструмента приставка превзошла мои ожидания. Но в процессе использования я отметил для себя и несколько негативных моментов. Они касаются самой конструкции девайса, а не технических аспектов, которые меня полностью устроили.
Во-первых, приставка работает в автономном режиме всего 2—2,5 часа в тяжелых AAA-играх. Во-вторых, Steam Deck весит почти 700 граммов, из-за чего ее невозможно долго держать на весу без опоры для рук — всё начинает затекать. Еще, по моему мнению, приставка сделана из скользкого пластика, из-за чего при активной игре она начинает выскальзывать из рук. Но эта проблема легко решается за счет прорезиненного чехла либо, как у меня, прорезиненных накладок на боковые грани.
Заключение
Подводя итоги своего недельного марафона по веб-разработке на Steam Deck, не могу не выразить своего приятного удивления. Ведь с помощью всего одного маленького девайса я справился с кучей задач — от внесения правок в локальные сайты и деплоя изменений до рабочих созвонов по видеосвязи с подключенными вебкой и USB-гарнитурой.
Работа на локальном веб-сервере, запущенном на Steam Deck, оказалась тоже не сильно сложнее, чем на том же Оpen Server на Windows, а доступность всего необходимого ПО превращает девайс в полноценную рабочую лошадку, нисколько не уступающую «старшим собратьям».
Ну, и игровой режим, опять же, никто не отменял, в который переходит ПК мгновенно — простым нажатием на ярлык Return to gaming mode на рабочем столе. И вот у тебя уже «досуг в руках» в своем портативном исполнении — самое то, чтобы отвлечься и отдохнуть от работы в любом удобном месте, сняв Steam Deck с док-станции и устроившись на уютном диване или где душе угодно. Вернуться в режим рабочего стола тоже можно всего в три клика: заходим в меню с помощью кнопки Steam, затем нажимаем кнопку «Выключение», а следом — «Перейти к рабочему столу». Вы великолепны!
И напоследок: если у вас уже есть Steam Deck и желание выйти за рамки привычного, я рекомендую попробовать консоль в качестве портативного ПК (не забудьте про док-станцию или USB-C хаб). А за выносливость не переживайте: если уж задачи веб-разработки Steam Deck «тащит», то и с остальными справится. Кстати, уверен, что такой формат работы будет очень актуален в командировке.
В общем, пробуйте!