Каталог товаров

Расширение доступной памяти Omega

Хоть Omega2 поставляется с 64 МБ ОЗУ, а Omega2 + с 128 МБ, вы можете оказаться в ситуации, когда этого недостаточно. Из этого материала Вы узнаете, как использовать USB-накопитель и файл подкачки, чтобы увеличить объем памяти, доступный для Omega.

Что такое файл подкачки?

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

Поэтому файлы подкачки реализуют виртуальную память. Это также известно как подкачка страниц памяти и используется во всех современных настольных и мобильных операционных системах для управления и оптимизации использования памяти.

Для получения дополнительной информации ознакомьтесь со статьей Википедии о подкачке страниц.

Настройка

Давайте приступим к настройке собственного файла подкачки и расширению доступной памяти на Omega!

Шаг 1: Установка необходимых пакетов

Сначала мы установим пакеты swap-utils и block-mount, которые позволят нам создавать и использовать файлы подкачки:

opkg update

opkg install swap-utils block-mount

Шаг 2: USB-накопитель

Подключите USB-накопитель. По умолчанию Omega автоматически подключает любые USB-устройства хранения данных.

Если вас интересует автоматическая установка, обратитесь к руководству USB Storage за подробностями.

Предположим, что USB-устройство было подключено в /tmp/mounts/USB-A1.

Шаг 3: Создание файла подкачки на USB-накопителе

Теперь нам нужно создать файл на USB-накопителе, который будет использоваться в качестве файла подкачки с помощью утилиты dd. Эта утилита предназначена для преобразования, копирования и записи файлов. Она очень мощная и запись в непредусмотренное место может серьезно повредить систему. 

Будьте предельно осторожны при использовании dd!

Запустим следующую команду:

dd if=/dev/zero of=/tmp/mounts/USB-A1/swap.page bs=1M count=256

Эта команда создаст файл на USB-накопителе размером 256 МБ со всеми его байтами, инициализированными в 0x00. Это файл, который будет использоваться в качестве файла подкачки, поэтому мы будем эффективно расширять нашу оперативную память на 256 МБ.

Давайте пройдемся по каждой части команды:

  • Аргумент if указывает источник данных, в этом случае /dev/zero - это специальный системный файл, который выдает столько байтов 0x00, сколько требуется.
  • Аргумент of сообщает dd, где создать новый файл. В нашем сценарии USB-накопитель был смонтирован в /tmp/mounts/USB-A1, и мы хотим создать файл swap.page в корне накопителя.
  • Аргументы bs и count указывают размер файла, который будет создан:
    • Аргумент bs указывает размер блока, причем блок - это количество байтов, которые были прочитаны, записаны или преобразованы за один раз. Мы устанавливаем размер нашего блока в 1 миллион байтов или 1 мегабайт (МБ)
    • Аргумент count определяет, сколько блоков должно быть создано. Таким образом, мы создаем 256 блоков по 1 МБ каждый, поэтому файл будет 256 МБ в общей сложности

Шаг 4. Настройка файла подкачки

Теперь, когда файл подкачки был создан, мы должны указать Linux настроить этот файл как область подкачки:

mkswap /tmp/mounts/USB-A1/swap.page

Запуск команды free покажет, что ничего не изменилось:

root@Omega-1302:~# free

                    total          used           free     shared       buffers

Mem:         61152        42528        18624           96        11648

-/+ buffers:                 30880        30272

Swap:                0               0               0

Шаг 5: Активация файла подкачки

Чтобы активировать файл подкачки и фактически расширить нашу доступную память:

swapon /tmp/mounts/USB-A1/swap.page

Теперь, когда мы снова запустим free, мы увидим, что строка swap заполнена:

root@Omega-1302:~# free

                    total          used           free     shared       buffers

Mem:         61152        42644        18508           96        11648

-/+ buffers:                 30996        30156

Swap:       262140              0       262140

Единицы, отображаемые командой free, - это килобайты. Общий размер раздела подкачки составляет 262140 килобайт, что эквивалентно 256 МБ, поэтому можно подтвердить, что файл подкачки активен и используется в качестве памяти.

Примечание. После перезагрузки Omega USB-подкачка больше не будет использоваться. Шаг 5 нужно будет повторять после каждой загрузки, если не будет создан какой-либо автоматический метод активации страницы подкачки…

К счастью для вас, известно, как это сделать!

Идем далее

Немного проблематично, что файл подкачки нужно активировать вручную после каждой загрузки, поэтому давайте автоматизируем это.

Автоматически монтировать USB с помощью Block + Fstab

Чтобы автоматически активировать файл подкачки, нужно настроить автомонтирование для USB, используя метод, отличный от инструмента по умолчанию на Omega2. Файл /etc/fstab содержит информацию о том, как автоматизировать монтирование разделов (например, USB-накопитель).

Убедитесь, что USB-накопитель подключен к Omega. Чтобы Omega обнаружил информацию для диска и сохранил ее в конфигурации fstab, запустите следующую команду:

block detect > /etc/config/fstab

Теперь у Omega есть запись fstab в uci для этого конкретного USB-накопителя. Давайте обновим запись uci, чтобы USB-накопитель автоматически смонтировался.

Во-первых, посмотрите текущую конфигурацию, запустив uci show fstab. Команда выведет что-то вроде следующего:

fstab.@global[0]=global

fstab.@global[0].anon_swap=0

fstab.@global[0].anon_mount=0

fstab.@global[0].auto_swap=1

fstab.@global[0].auto_mount=1

fstab.@global[0].delay_root=5

fstab.@global[0].check_fs=0

fstab.@mount[0]=mount

fstab.@mount[0].target=/mnt/sda1‘          // we‘ll use this path for automounting

fstab.@mount[0].uuid=‘  // eg. 19BF-3A86

fstab.@mount[0].enabled=0

Теперь давайте включим устройство mount [0]:

uci set fstab.@mount[0].enabled=1‘

uci commit fstab

Убедимся, что fstab включен

На всякий случай, давайте включим fstab при загрузке:

/etc/init.d/fstab enable

block mount

Теперь Omega знает, как смонтировать ваш USB-диск в /mnt/sda1. Запишите это или запустите uci show fstab, чтобы снова увидеть эту информацию.

Перезапуск fstab

Если вам нужно изменить конфигурацию fstab, используйте следующую команду, чтобы изменения вступили в силу:

block umount;block mount

Активация файла подкачки при загрузке

Теперь, когда Omega автоматически монтирует USB-накопитель, нужно указать ему активировать файл подкачки при запуске. Существует файл /etc/rc.local, в который можно поместить команды, которые будут запускаться автоматически после каждой загрузки. Это идеально подходит для нашей задачи.

См. статью запуск команд при загрузке для получения дополнительной информации.

Нужно добавить код, чтобы Omega нашла файл swap.page, созданный ранее, и активировала его. В нашем примере USB-накопитель будет смонтирован в /mnt/sda1. Добавьте в файл /etc/rc.local:

### activate the swap file on an external USB drive

SWAP_FILE="/mnt/sda1/swap.page"

if [ -e "$SWAP_FILE" ]; then

        swapon $SWAP_FILE

fi

, где SWAP_FILE - полный путь к swap.page. 

Убедитесь, что этот код выше строки exit 0, которая уже существует в файле!

После добавления этого кода перезагрузите Omega с подключенным USB-накопителем. Запустите free, чтобы убедиться, что файл подкачки действительно используется:

root@Omega-1302:~# free

                   total           used           free     shared       buffers

Mem:         61152        42644        18508           96        11648

-/+ buffers:                 30996        30156

Swap:      262140               0       262140

Резюме

  • Использование файла подкачки позволяет нам использовать другие типы хранилищ (USB, flash) для увеличения объема оперативной памяти, доступной в нашей системе.
  • Все современные настольные и мобильные операционные системы так или иначе реализуют файлы подкачки, поскольку хранилище обычно намного дешевле, чем память.
  • Это не то же самое, что добавить больше оперативной памяти, потому что она намного быстрее.
  • В ситуациях, когда использование памяти становится проблемой, этот метод невероятно полезен.
Контакты

г. Москва, Пятницкое ш. д. 18, пав. 566

zakaz@compacttool.ru

8-495-752-55-22

Информация представленная на данном информационном ресурсе преследует исключительно рекламные цели и не является договором-офертой !

© Все права защищены 2021г https://compacttool.ru