Так как я пользуюсь картридером, то довольно часто флешку приходится из телефона доставать. Каждый раз после того, как я её вновь подключал, приходилось вручную подключать своп файл с флешки. Мне это немного надоело и я этот процесс автоматизировал.
Выкладываю пошаговую инструкцию.
Для всех прошивок:
1. Открываем свою прошивку в программе EZXCodec, распаковываем кодовую группу CG43.
2. Проходим в папку с распакованной кодовой группой, заменяем файл /etc/hotplug/mmc.agent на тот, что во вложенном архиве.
3. Собираем кодовую группу CG43 на вкладке CramFS, на вкладке SBF в таблице с кодовыми группами убираем все галочки, кроме RDL3 и CG43.
4. Сохраняем файл, шьёмся им.
5. Любым удобным способом кидаем файл mmcplug.sh из вложения в папку /ezxlocal в телефоне.
6. Телнетимся к телефону, выполняем команду
7. Заливаем на флешку своп файл по пути, указанном в файле mmcplug.sh (/mmc/mmca1 - это корень флешки. В данном случае путь указан /mmc/mmca1/.system/swapfile - это папка .system в корне флешки, имя файла swapfile. Своп файлы нужных размеров можно взять здесь)
В принципе можно проверять работоспособность.
Для прошивок со стартапом:
1. Любым удобным способом кидаем файлы mmc.agent и mmcplug.sh из вложения в папку /ezxlocal в телефоне.
2. Телнетимся к телефону, выполняем команды
3. См. пункт 7 выше.
4. Добавляем в стартап следующую строку:
Перезагружаемся, проверяем работоспособность
Листинг файла mmc.agent
почему не после exec? Да потому что не работает
При подключении флешки, переменная ACTION имеет значение add, при отключении - remove. Переменная SLOT всегда 0.
Листинг файла mmcplug.sh
здесь /mmc/mmca1/.system/swapfile - путь к своп файлу, его можно изменить на своё усмотрение. Естественно, он должен существовать.
sleep 15 нужно для выдержки времени перед тем, как флешка определится корректно и смонтируется. 15 секунд должно вполне хватить.
В принципе этот файл можно использовать для чего угодно, выполняться он будет при каждом подключении флешки.
Если всё сделать правильно, то своп будет автоматически подключаться при каждом "втыкании" флешки в телефон.
Отключать своп в любом случае приходится вручную (если установлен MemExpand, то можно просто ткнуть на его иконку в меню. Зависимости от пути своп файла при его отключении нет).
Не сделал автоматически потому, что этот скрипт вызывается только при _физическом_ подключении/отключении флешки. При нажатии на кнопку "Извл." в том окошке, где часы, антенна и т.п. (в виндах это называется трей ), вызывается что-то другое. Если кто-нибудь знает, что именно при этом вызывается, то отпишитесь плиз. Хотя у меня такое ощущение, что выполняются какие-то внутренние функции в процессе windowssaver.
Сообщение отредактировал kycb-kycb - 22.4.2008, 11:14
Выкладываю пошаговую инструкцию.
Для всех прошивок:
1. Открываем свою прошивку в программе EZXCodec, распаковываем кодовую группу CG43.
2. Проходим в папку с распакованной кодовой группой, заменяем файл /etc/hotplug/mmc.agent на тот, что во вложенном архиве.
3. Собираем кодовую группу CG43 на вкладке CramFS, на вкладке SBF в таблице с кодовыми группами убираем все галочки, кроме RDL3 и CG43.
4. Сохраняем файл, шьёмся им.
5. Любым удобным способом кидаем файл mmcplug.sh из вложения в папку /ezxlocal в телефоне.
6. Телнетимся к телефону, выполняем команду
Код
chmod +x /ezxlocal/mmcplug.sh
7. Заливаем на флешку своп файл по пути, указанном в файле mmcplug.sh (/mmc/mmca1 - это корень флешки. В данном случае путь указан /mmc/mmca1/.system/swapfile - это папка .system в корне флешки, имя файла swapfile. Своп файлы нужных размеров можно взять здесь)
В принципе можно проверять работоспособность.
Для прошивок со стартапом:
1. Любым удобным способом кидаем файлы mmc.agent и mmcplug.sh из вложения в папку /ezxlocal в телефоне.
2. Телнетимся к телефону, выполняем команды
Код
chmod +x /ezxlocal/mmcplug.sh
chmod +x /ezxlocal/mmc.agent
chmod +x /ezxlocal/mmc.agent
3. См. пункт 7 выше.
4. Добавляем в стартап следующую строку:
Код
mount --bind /ezxlocal/mmc.agent /etc/hotplug/mmc.agent
Перезагружаемся, проверяем работоспособность
Листинг файла mmc.agent
Код
#!/bin/bash
#set QTDIR for root
export QTDIR=/usr/lib/ezx
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH:/usr/language/vr/english/lib:/usr/language/vr/mandarin/lib:/usr/language/vr/common/lib
export EZX_PLUGINS_DIR=/hatcreek/plugins
# font path
export EZX_RES_FONT_PATH=$QTDIR/lib/fonts
# icon path
export EZX_RES_ICON_PATH=/usr/language/icon
# string path
export EZX_RES_STRING_PATH=/usr/language/string
# начало исправления
if [ $ACTION="add" ] && [ -f /ezxlocal/mmcplug.sh ]
then
/ezxlocal/mmcplug.sh &
fi
# конец исправления
# MMC Hotplug Module
exec /sbin/mmchotplug $SLOT $ACTION
#set QTDIR for root
export QTDIR=/usr/lib/ezx
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH:/usr/language/vr/english/lib:/usr/language/vr/mandarin/lib:/usr/language/vr/common/lib
export EZX_PLUGINS_DIR=/hatcreek/plugins
# font path
export EZX_RES_FONT_PATH=$QTDIR/lib/fonts
# icon path
export EZX_RES_ICON_PATH=/usr/language/icon
# string path
export EZX_RES_STRING_PATH=/usr/language/string
# начало исправления
if [ $ACTION="add" ] && [ -f /ezxlocal/mmcplug.sh ]
then
/ezxlocal/mmcplug.sh &
fi
# конец исправления
# MMC Hotplug Module
exec /sbin/mmchotplug $SLOT $ACTION
почему не после exec? Да потому что не работает
При подключении флешки, переменная ACTION имеет значение add, при отключении - remove. Переменная SLOT всегда 0.
Листинг файла mmcplug.sh
Код
#!/bin/bash
SWAPFILE=/mmc/mmca1/.system/swapfile
sleep 15
if [ -f $SWAPFILE ]
then
start-stop-daemon --start --exec /sbin/swapon -p 1 -v $SWAPFILE
fi
SWAPFILE=/mmc/mmca1/.system/swapfile
sleep 15
if [ -f $SWAPFILE ]
then
start-stop-daemon --start --exec /sbin/swapon -p 1 -v $SWAPFILE
fi
здесь /mmc/mmca1/.system/swapfile - путь к своп файлу, его можно изменить на своё усмотрение. Естественно, он должен существовать.
sleep 15 нужно для выдержки времени перед тем, как флешка определится корректно и смонтируется. 15 секунд должно вполне хватить.
В принципе этот файл можно использовать для чего угодно, выполняться он будет при каждом подключении флешки.
Если всё сделать правильно, то своп будет автоматически подключаться при каждом "втыкании" флешки в телефон.
Отключать своп в любом случае приходится вручную (если установлен MemExpand, то можно просто ткнуть на его иконку в меню. Зависимости от пути своп файла при его отключении нет).
Не сделал автоматически потому, что этот скрипт вызывается только при _физическом_ подключении/отключении флешки. При нажатии на кнопку "Извл." в том окошке, где часы, антенна и т.п. (в виндах это называется трей ), вызывается что-то другое. Если кто-нибудь знает, что именно при этом вызывается, то отпишитесь плиз. Хотя у меня такое ощущение, что выполняются какие-то внутренние функции в процессе windowssaver.
Сообщение отредактировал kycb-kycb - 22.4.2008, 11:14