|
Сохранить измениня в системе с ramfs/tmpfs |
|
|
|
Jun 26 2017, 06:23
|

Знающий
   
Группа: Свой
Сообщений: 633
Регистрация: 21-05-10
Из: Томск
Пользователь №: 57 423

|
Добрый день. Начал ковырять отладочную плату с ARM9 и изучать Linux во встраиваемых системах. Пока изучаю примеры, которые идут с платой, читаю информацию. Появились некоторые вопросы, например: 1) в системах с ramfs/tmpfs есть возможность сохранить все изменений в файловой системе? Сейчас, если хочу поменять какой-то конфиг или скрипт, приходится пересобирать rootfs и заново целиком переписывать. 2) как правильно хранить настройки, которые периодически меняются (например, какой-то один конфигурационный файл)? 3) посоветуйте, пожалуйста, где можно почитать (блоги, статьи, книжки) про по Embedded Linux?
--------------------
|
|
|
|
|
 |
Ответов
(1 - 10)
|
Jun 26 2017, 10:27
|
Местный
  
Группа: Свой
Сообщений: 351
Регистрация: 11-09-05
Из: Харьков
Пользователь №: 8 458

|
Цитата(arhiv6 @ Jun 26 2017, 09:23)  3) посоветуйте, пожалуйста, где можно почитать (блоги, статьи, книжки) про по Embedded Linux? Linux по-русскиLinux для программистаЦитата(arhiv6 @ Jun 26 2017, 09:23)  2) как правильно хранить настройки, которые периодически меняются (например, какой-то один конфигурационный файл)? Зачем вам один? Здесь нет реестров, ульев, здесь не водятся пчёлы ... одним словом "здесь вам не вынь-да" Основные принципы UNIX (а Linux один из них), сформулированные лет 45 назад: 1. все конфигурации (настройки) хранятся в текстовых файлах 2. в форматах по принципу: <имя_параметра> = <значение> 3. конфигурации каждой подсистемы хранятся в своём отдельном файле конфига
|
|
|
|
|
Jun 26 2017, 12:55
|

Знающий
   
Группа: Свой
Сообщений: 633
Регистрация: 21-05-10
Из: Томск
Пользователь №: 57 423

|
Olej, с философией UNIX-way знаком, одобряю, Вы меня неправильно поняли просто.
Как я себе представляю: в целях экономии ресурса флешки при старте системы образ rootfs разворачивается в ram и вся работа идёт там, т.е. на флешку ничего не пишется. Запись может потребоваться в двух случаях: 1) Вносится изменение в образ rootfs (например, меняется како-то системный скрипт). 2) Сохранение пользовательских настроек (например, для этого есть один конфигурационный файл)
Сейчас я для обоих пунктов вынужден делать полную пересборку rootfs на компьютере и потом переписывать её на флешку на плате. На одной сторонней железке я когда-то встречал другое - при старте системы самописная утилита из последнего сектора флешки вычитывает данные в файл с пользовательскими настройками и когда необходимо - туда же сохраняла; rootfs тоже самописной утилитой обновлять можно было, минуты 4 длилось. А других способов я не знаю - у меня просто опыта нету, вот я и хочу узнать, как такие вещи делаются (какие вообще бывают подходы и как это делать правильно).
--------------------
|
|
|
|
|
Jun 26 2017, 22:49
|
Знающий
   
Группа: Участник
Сообщений: 750
Регистрация: 1-11-11
Пользователь №: 68 088

|
Цитата(arhiv6 @ Jun 26 2017, 15:55)  Как я себе представляю: в целях экономии ресурса флешки при старте системы образ rootfs разворачивается в ram и вся работа идёт там, т.е. на флешку ничего не пишется. Запись может потребоваться в двух случаях: 1) Вносится изменение в образ rootfs (например, меняется како-то системный скрипт). 2) Сохранение пользовательских настроек (например, для этого есть один конфигурационный файл) Цель ramfs - вовсе не экономия ресурса флэшки, а стремление сделать систему "неубиваемой", то есть 1) устойчивой к внезапному выключению питания, даже во время записи файлов, 2) самоочищаемой от всяких временных файлов, логов и т. п. , которые могут со временем переполнить небольшой (как правило, в таких системах) носитель. Запись туда может понадобиться в 2-х случаях (как вы правильно заметили) - 1) на этапе отладки, для правки какого-то скрипта или конфига, 2) в процессе работы системы для сохранения каких-либо данных (настроек), меняемых в процессе работы. В первом случае, чтобы каждый раз не пересобирать rootfs, нужно вам разобраться, как смонтировать образ rootfs с правами записи. После чего монтируем его с правами rw, вносим изменения в файлы, sync, размонтируем. Если образ - это gzip-архив (даже его имя не оканчивается на .gz), то вносить изменения можно стандартными средствами gzip, вплоть до mc. Второй случай рушит основную цель ramfs (см. выше). Поэтому сохранение настроек в таких системах продумывается особо, с оглядкой на то, что процесс записи в любой момент может быть прерван. Поэтому "тупо" обычный флэш-носитель, смонтированный при загрузке с правами RW не очень правильное решение. Во всяком случае, софт должен быть готов, что настройки окажутся недоступными, и стартануть с настройками по умолчанию и восстановить хранилище этих настроек.
--------------------
"... часами я мог наблюдать, как люди работают." (М. Горький)
|
|
|
|
|
Aug 15 2017, 11:12
|
Участник

Группа: Свой
Сообщений: 70
Регистрация: 2-12-04
Из: Kiev, Ukraine
Пользователь №: 1 294

|
Цитата(arhiv6 @ Jun 26 2017, 09:23)  Добрый день. Начал ковырять отладочную плату с ARM9 и изучать Linux во встраиваемых системах. Пока изучаю примеры, которые идут с платой, читаю информацию. Появились некоторые вопросы, например: 1) в системах с ramfs/tmpfs есть возможность сохранить все изменений в файловой системе? Сейчас, если хочу поменять какой-то конфиг или скрипт, приходится пересобирать rootfs и заново целиком переписывать. 2) как правильно хранить настройки, которые периодически меняются (например, какой-то один конфигурационный файл)? 3) посоветуйте, пожалуйста, где можно почитать (блоги, статьи, книжки) про по Embedded Linux? Если еще актуально... Скорее всего конфиги придется хранить вне файловой системы. Как это делалось в игровых автоматах. На I2C шине сидел контроллер с лампочками/кнопочками и пр., заодно его NVRAM юзалась для конфигов и как storage для апликухи. Вы же можете прямо на шину какую-нибудь 24Сxx подцепить.
|
|
|
|
|
Aug 22 2017, 15:59
|
Участник

Группа: Свой
Сообщений: 70
Регистрация: 2-12-04
Из: Kiev, Ukraine
Пользователь №: 1 294

|
Цитата(Tarbal @ Aug 21 2017, 05:25)  Ну почему же? Можно подлключить флешку, смонтировать ее и на ней все хранить. То уже не будет ramfs/tmpfs, как изначально требовалось.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|