Как создать портативный USB-накопитель для ретроигр с помощью Batocera Linux
Batocera — это бесплатный дистрибутив Linux с открытым исходным кодом, предназначенный для создания ретроигровых консолей из огромного выбора устройств. Он поддерживает различные платформы и архитектуры, от компьютеров на базе Intel до плат Raspberry Pi и портативных консолей, и работает как центральная панель управления для всех лучших эмуляторов консолей.
В этом уроке мы узнаем, как прошить Batocera Linux на USB-накопителе и создать портативное устройство для ретрогейминга.
В этом уроке вы узнаете:
- Как скачать и прошить Batocera на USB-накопитель
- Как получить доступ к ROMS и другим ресурсам из общих папок сети samba или NFS
Скачивание изображения Batocera
Чтобы скачать последнюю версию Batocera Linux (39 на момент написания статьи), все, что нам нужно сделать, это перейти на страницу загрузки официального сайта дистрибутива. Наша цель в этом уроке - установить Batocera на USB-накопитель и использовать его в качестве загрузочного устройства на x86_64 машинах, поэтому нас интересует первая запись:
После завершения загрузки мы должны записать изображение на достаточно большой USB-накопитель. Давайте посмотрим, как мы можем это сделать.
Написание изображения Batocera
Есть много способов записать изображение Batocera на USB-накопители: один из самых удобных для пользователя — использовать balenaEtcher, бесплатный инструмент с открытым исходным кодом, разработанный для простоты использования и работы на любой платформе. Мы можем скачать подходящую версию для нашей операционной системы, прямо с официального сайта проекта; портативный Appimage доступен для Linux. После установки и запуска инструмента мы должны увидеть следующее окно:
Первое, что нам нужно сделать, это нажать на кнопку "Прошить из файла" и выбрать сжатое изображение Batocera, которое мы ранее скачали: нет необходимости извлекать его заранее, так как Etcher достаточно умен, чтобы сделать это за нас.
После того, как мы выбрали изображение, нам нужно выбрать цель: устройство, на котором мы хотим его прошить. Нажимаем на кнопку "Выбрать цель" и выбираем из списка устройство, которое хотим использовать в качестве цели; наконец, нажимаем на кнопку "Выбрать", чтобы подтвердить свой выбор:
Мы почти у цели. Чтобы прошить изображение на целевое устройство, мы просто нажимаем на кнопку "Flash!" в главном интерфейсе Etcher и при необходимости вводим пароль администратора. Начнется процесс прошивки:
Через несколько минут мигание должно быть завершено.
Запись образа Batocera с помощью dd (только для Linux и macOS)
Если мы используем дистрибутив Linux или macOS и нам удобно работать из командной строки, мы можем прошить образ Batocera с помощью dd, инструмента, который обычно устанавливается по умолчанию в любой операционной системе на основе Unix. Если мы решили использовать этот способ, то должны быть внимательны при указании целевого устройства, потому что запроса на подтверждение не будет.
Мы можем извлечь и записать изображение на целевое устройство с помощью одной команды, используя следующий синтаксис:
zcat </path/to/batocera/compressed/image> | sudo dd of=</target/device/path> bs=1M
Здесь я предположу, что образ Batocera находится в каталоге ~/Downloads
, а путь к целевому устройству — /dev/sdb
(пример выполняется в Linux), поэтому я выполню следующую команду:
zcat ~/Downloads/batocera-x86_64-x86_64-39-20240304.img.gz | sudo dd of=/dev/sdb bs=1M
Загрузка с USB-накопителя
После того, как образ будет прошит, мы должны перезагрузиться (или создать виртуальную машину) и использовать USB-накопитель в качестве загрузочного устройства. Клавиша, используемая для доступа к загрузочному меню, варьируется в зависимости от производителя компьютера (на некоторых машинах используется клавиша ESC, в то время как на Lenovo Thinkpad, как правило, используется клавиша F12).
В загрузочном меню мы выбираем наше USB-устройство и нажимаем Enter. Вместо нашей операционной системы должна запуститься Batocera. При первой загрузке Batocera она автоматически изменит размер разделов, созданных на USB-устройстве, чтобы использовать все доступное пространство. Это может занять некоторое время, в зависимости от системных ресурсов и размера USB-устройства:
Как только процесс будет завершен, мы увидим экран выбора эмулятора системы/консоли:
Как получить доступ к ПЗУ из сетевого ресурса
Batocera создает два раздела на целевом USB-устройстве; первый отформатирован с помощью файловой системы VFAT и помечен как "BATOCERA". Он содержит файлы, необходимые для загрузки системы, такие как batocera.conf
. Второй, который охватывает остальную часть устройства, является разделом "userdata", отформатированным в файловой системе EXT4 с меткой "SHARE". Он содержит, среди прочего, каталоги "saves", "bios" и "roms". Первый содержит файлы сохранения, второй — место, где мы размещаем образы биографии, необходимые для определенных консолей, а третий содержит изображения игр в ряде подкаталогов, названных в честь эмулируемых систем:
Для того, чтобы смонтировать общие директории, нам нужно отредактировать файл batocera.conf
, который, как мы видели, находится в разделе "BATOCERA". Нас интересует содержание строки 11:
sharedevice=INTERNAL
Чтобы смонтировать общие сетевые каталоги, нам нужно изменить это на:
sharedevice=NETWORK
Затем нам нужно указать каталоги, которые мы хотим смонтировать по сети. Почти каждый каталог в разделе пользовательских данных Batocera идентифицируется ключевым словом, которое в основном является его именем, написанным с заглавной буквы. Ключевое слово SHARE
является исключением, так как оно представляет содержимое раздела в целом. Доступные ключевые слова:
- ПРЕДОСТАВИТЬ ОБЩИЙ ДОСТУП
- ДИСКОВ
- БИОС
- ЗАКЛАДОК
- МУЗЫКА
- УКРАШЕНИЯ
- СКРИНШОТЫ
- ТЕМЫ
- КОДЫ
- ЗВУКИ
- БИБЛИОТЕКА
- ВСПЛЕСК
Batocera поддерживает монтирование сетевых ресурсов samba и NFS. Давайте сначала рассмотрим, как монтировать общие каталоги samba.
Крепление лап самбы
Предположим, что у нас есть общая папка samba с именем "data", доступная в качестве анонимного (гостевого) пользователя на NAS с IP-адресом 192.168.0.39
. Внутри этой общей папки у нас есть директория под названием "batocera", которая содержит всю структуру каталогов разделов Batocera "SHARE". Чтобы смонтировать эту директорию целиком, мы можем использовать ключевое слово "SHARE". Вот синтаксис, который мы будем использовать:
sharenetwork_smb1=SHARE@192.168.0.39:data/batocera:guest
Если для доступа к общей папке требуется аутентификация, мы можем указать имя пользователя и пароль с помощью специальных опций:
sharenetwork_smb1=SHARE@192.168.0.39:data/batocera:username=<username>,password=<password>
Что делать, если мы хотим смонтировать только определенную директорию? Все, что нам нужно сделать, это использовать соответствующее ключевое слово directory. Предположим, например, что мы хотим смонтировать только общие ромы. Предполагая ту же долю сети, которую мы видели в предыдущем примере, мы напишем:
sharenetwork_smb1=ROMS@192.168.0.39:data/batocera/roms:username=<username>,password=<password>
Мы можем указать несколько сетевых монтирований. В приведенном ниже примере мы монтируем общие директории "roms", "saves" и "bios", отдельно:
sharenetwork_smb1=ROMS@192.168.0.39:data/batocera/roms:username=<username>,password=<password>
sharenetwork_smb2=SAVES@192.168.0.39:data/batocera/saves:username=<username>,password=<password>
sharenetwork_smb3=BIOS@192.168.0.39:data/batocera/bios:username=<username>,password=<password>
Подключение общих ресурсов NFS
А как насчет акций NFS? Синтаксис тот же; Разница в том, что нам нужно использовать префикс "NFS " вместо "SMB", а полный путь к общему каталогу вместо имени общего ресурса. Предположим, например, что общий каталог на NAS — /srv/batocera
. Чтобы смонтировать все его содержимое, мы напишем:
sharenetwork_nfs1=SHARE@192.168.0.39:/srv/batocera
Чтобы смонтировать директории отдельно, вместо этого:
sharenetwork_nfs1=ROMS@192.168.0.39:/srv/batocera/roms
sharenetwork_nfs2=SAVES@192.168.0.39:/srv/batocera/saves
sharenetwork_nfs3=BIOS@192.168.0.39:/srv/batocera/bios
Выводы
В этом уроке мы узнали, как создать портативную ретроигровую систему на USB-накопителе с помощью Batocera. Мы рассмотрели, как прошить изображение с помощью balenaEtcher и как использовать dd в качестве альтернативы командной строке в операционных системах на базе Unix. Наконец, мы рассмотрели, как Batocera разделяет USB-накопитель и как получить доступ к ресурсам из сетевых ресурсов samba или NFS.