LINUX.ORG.RU

RetroPie и файловая система

 ,


0

1

Здравия всем порядочным!

Господа, задумал сделать игровую приставку на железке заморской Raspberry Pi 3. В качестве ОС выбран RetroPie. Это такой линукс для эмуляции ретро игр вечером под алкогольные напитки разной крепости. Коротко опишу что имеем. Образ закатан на SD карточку, в процессе использования на ту же самую карточку записываются сохранялки, скриншоты, если это требуется. Иными словами файловая система находится в режиме RW. В меню есть возможность выключить систему правильно, но...игрокам как правило плевать на это, все равно будут выдергивать тупо из розетки. Не хочу чтобы домашние меня отвлекали на тему «приставка че-то не работает», да и самому облом когда взял пивко, включаешь, а там какая-нибудь дрянь, связанная с некорректным выключением. Отсюда вытекает главный вопрос. Как защитить файловую систему от нерадивых пользователей при этом не урезая или не сильно урезая функционал? В многочисленных роутерах, тех же длинках тоже используется линукс, тем не менее им внезапные выключение по барабану. Значит решение какое-то есть.

Отдельную файловую систему на rw, а всё основное в ro. Причём, системы нужно выровнять по размерам стираемого блока карточки.

mky ★★★★★ ()

Прочитал столько лишних букаф, пришлось пропустить половину. Удивительно, как ты его конфиги смог поправить под корректную работу. Не надо там ничего переключать, всё учтено! Давно гоняю ретропай, кабель был фиговый - иногда сам в процессе игры отключался. Ни разу ничего не полетело! И скажи им, чтобы выключали просто с джойтика. Нажать кнопку Start и выбрать Exit - задание не для профессора, мягко говоря.
Не морочь людям голову, тебе там ничего не надо в RO!
Открою тайну, когда ты проверишь, что все эмули работают нормально и настроены, ты доустановил нужные и выбрал в конфигах подходящие из альтернативных для одной приставки, всё твикнул, чтобы работало без тупняков, ты сразу делаешь копию флешки через dd. В распбиан специально учтена работа именно с любыми неожиданными выключениями (или ты может видел кнопку похожую на малине?), а ретропай именно на нём.
Система должна быть в RW, когда ты нажимаешь на джое кнопку Select+RL - он делает сейв игры, когда Select+RL - загружает сейв, Select+Start - выходит из игры, а для всех залитых ромов есть возможность автоматически загрузить обложки игр и описания (Scrobble Game Data в меню). Допустим, они не будут скачивать обложки для игр, но сейвами-то пользоваться, наверное будут?
Я в детстве некоторые игры не прошёл из-за их отсутствия и вообще, это имхо портит игровой процесс нудно проходить много раз один и тот же уровень, если не убить босса. Потом бывало отведённое на это время потратил, а нормально не поиграл.

anonymous ()
Ответ на: комментарий от anonymous

Тем более, под алкогольные напитки.

anonymous ()
Ответ на: комментарий от evrei_izya

Меньше шансов, что у ro файловой системы возникнут проблемы при отключении питания в момент копировании/перезаписи этого блока (общего между ro и rw ФС).

mky ★★★★★ ()
Ответ на: комментарий от anonymous

Согласен, кнопки выключения на малинке нет, однако ее поставить несложно, и скрипты под ее работу в интернете есть, только это так же бессмысленно. Для людей проще всего выдернуть из розетки, задача конечно не для профессора выключить корректно, но народ выбирает путь наименьшего сопротивления.

Я смотрел в сторону tmpfs. Т.е. идея такая. При старте: 1. Создается ФС в ОЗУ tmpfs (с размеров не определился, понятно что на 1 Гб не разгуляешься особо) 2. Туда копируются конфиги, сохранялки, скриншоты. Одним словом, все, для чего требуется RW 3. Если человек корректно завершает работу, то / монтируется в RW, с tmpfs все данные копируются на флешку, выключение

Об особенностях мелкого предупредить. Выключил из розетки - потерял сэйвы. Если правильно выключишь - все сохранится. Иными словами конфиги, сохранялки, скриншоты будут копироватьтся на флешку только в случае корректного выключения.

Как вам такая идея, коллеги?

evrei_izya ()
Ответ на: комментарий от evrei_izya

Так не принятно делать. Обычно tmpfs объединялась с ro ФС на флешке с помощью unionfs, а потом изменения переносились обратно. Чтобы в ОЗУ хранились только новые/изменённые файлы.

Ну сейчас, вроде как это делают с помощью overlayfs: https://www.domoticz.com/wiki/Setting_up_overlayFS_on_Raspberry_Pi , там ещё про saveoverlays упомянуто, чтобы на флешку всё само переносилось.

mky ★★★★★ ()
Ответ на: комментарий от mky

Если я не ошибаюсь, то по такому принципу работает большинство современных роутеров. Я правильно понял, если используя технологию overlayFS, внезапно выключить питание, то изменения не перейдут на основную систему, которая в RO, поскольку они копятся в ОЗУ?

evrei_izya ()
Ответ на: комментарий от evrei_izya

Да. Но можно сделать синхронизацию по cron'у или какому ещё событию. И не понятно что будет, если выдернуть питание точно в момент, когда данные переходят из ОЗУ на флешку.

mky ★★★★★ ()
Ответ на: комментарий от mky

Благодарю за уделенное внимание и неравнодушие. К концу марта только удасться проделать все вышеописанное, отпишусь по результатам.

evrei_izya ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.