Устранение проблем с OTA для PR1.1

Материал из FRUCT Maemo wiki (Russian)
Перейти к: навигация, поиск

Устранение проблем с OTA для PR1.1

Некоторые пользователи столкнулись с проблемами при использовании абсолютно нового обновления программного обеспечения PR1.1, которое было недавно представлено. В результате в большинстве случаев пользователи получали сообщение от Менеджера приложений, в котором говорилось о необходимости инсталлировать данное обновление через прошивку устройства утилитами NSU/flasher (явным симптомом является тот факт, что в диалоге есть только кнопка Создать резервную копию, но полностью отсутствует кнопка Продолжить).

В большинстве случаев данную ситуацию можно объяснить одной из следующих причин:

  • Пропущена модернизация с PR1.0 до PR1.0.1. В таком случае необходимо будет использовать NSU/flasher.
  • Некоторые пакеты Debian были инсталлированы вручную через apt-get или dpkg, возможно в обход санитарных проверок и специальных проверок, которые выполняет HAM (Менеджер приложений Hildon), чтобы гарантировать надлежащее обновление OTA.
  • Устройство каким-то образом было приведено в состояние, когда понадобится удалить некоторые пакеты для выполнения обновления OTA (это то, что исключительно безопасный Менеджер приложений никогда не сделает).

Содержание


Как обнаружить проблему и как все исправить?

  • Если речь идет о первом случае, к сожалению, остается только перепрошить устройство. Пропущен промежуточный шаг между PR1.1 и PR1.0 и устройство пользователя не сможет гарантировать выполнение надлежащего обновления OTA без соблюдения необходимых предварительных условий.
  • В случае инсталлирования пакетов Debian вручную они могут каким-то образом вступать в конфликт с обновлением OTA, в основном в силу одной из следующих причин:
    • Они нарушают политику в отношении пакетов сторонних производителей.
    • Их версии отличаются (это, скорее всего, более новые версии) от версий, которые ожидаются пакетом обновления OTA для надлежащей работы. Считайте пакет OTA метапакетом, который ожидает, что в систему будут инсталлированы точные версии пакетов до модификации. В таком случае станет понятно, почему всего лишь одной зависимости пакета OTA, отличающейся от ожидаемой версии, достаточно, чтобы привести к приостановке процесса. Именно поэтому пользователю предлагается перепрошить устройство.

Если проблема в этом, необходимо каким-то образом вернуть устройство в надлежащее состояние. Для этого сначала удалите эти пакеты и/или восстановите их до ожидаемых версий.

  • В третьем случае (который маловероятен, но не исключен) понадобится, прежде всего, перевести устройство в состояние, в котором бы удаление этих пактов не было бы более необходимым условием для работы OTA (например, вручную выполнить dpkg -r). После этого необходимо будет повторить попытку из HAM. Другим способом, при помощи которого можно попытаться все исправить, но который не рекомендуется и не поддерживается, могло бы быть выполнение apt-get dist-upgrade в командной строке. В результате использования данной команды все конфликтующие пакеты будут удалены и инсталлированы новые. Тем не менее, если пользователь читает эти строки, возможно, было бы лучше также рассмотреть возможность использования NSU или flasher.

Как обнаружить конфликтующие пакеты?

Не существует универсального способа, который будет применим ко всем случаям, но далее предлагаются некоторые советы.

  • Попробуйте выполнить apt-get upgrade в командной строке (без подтверждения!) и обратите внимание на данные на выходе. При получении похожего сообщения будет понятно, какой пакет блокирует обновление OTA и почему:
 # apt-get upgrade
 Reading package lists... Done
 Building dependency tree       
 Reading state information... Done
 You might want to run `apt-get -f install' to correct these.
 The following packages have unmet dependencies:
   mp-fremantle-generic-pr: Depends: package (= 1.0) but 1.1 is installed
 E: Unmet dependencies. Try using -f.

В данном случае был инсталлирована версия пакета, которая новее, чем ожидаемая OTA. Поэтому решением в данном случае будет восстановление пакета до ожидаемой версии, прежде чем продолжить.

Другим решением может стать модификация конфликтующего пакета, при условии, что данная версия доступна в репозитории. Например, если cmt-firmware-rx51 - это название пакета:

# apt-get upgrade cmt-firmware-rx51
  • Если конфликта нет, но пользователь получает сообщение о том, что пакеты не будут модифицированы (или, по крайней мере, не будут модифицированы пакеты, имеющие отношение к метапакету mp-fremantle-generic-pr), попробуйте использовать команду apt-get dist-upgrade и проверить, будут ли получены данные на выходе типа:
 # apt-get dist-upgrade
 Reading package lists... Done
 Building dependency tree       
 Reading state information... Done
 Calculating upgrade... Done
 The following packages will be REMOVED:
   package-1 package-2 package-3
 ...
 After this operation, 4620kB disk space will be freed.
 Do you want to continue [Y/n]?

В таком случае проблема заключается в конфликтующих пакетах, которые необходимо будет удалить вручную до повторного использования Менеджера приложений, если пользователь не желает (и он не должен) продолжать использовать команду code>apt-get dist-upgrade</code>.

Обе команды apt-get update и apt-get dist-upgrade могут не показать никаких конфликтующих пакетов, но Менеджер приложений по-прежнему отказывается инсталлировать обновление. Причиной могут быть libqt4-phonon или libqt4-webkit. Проблему можно решить, если удалить их и приложения, зависящие от них.

 # apt-get remove libqt4-phonon libqt4-webkit

Недостаточное количество свободного места

Если для модернизации не хватает свободного места, в результате использования команды apt-get dist-upgrade появится сообщение об ошибке:

E: You don't have enough free space in /var/cache/apt/archives/

Существует несколько предложений в отношении того, как можно освободить место в rootfs.

Заключительные советы

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

  • Проверьте, чтобы батарея была полностью заряжена или устройство подключено к сети, прежде чем приступить к дальнейшим действиям.
  • Убедитесь в наличие достаточного количества свободного места в разделе rootfs, чтобы можно было выполнить обновление (45 Мб – требуемый минимум). Чтобы это проверить, просто выполните df -h / в командной строке:
 # df -h /
 Filesystem                Size      Used Available Use% Mounted on
 rootfs                  227.5M    152.6M     70.8M  68% /     ---->   70.8M > 45Mb  (Ok)
  • Независимо от количества свободно места, необходимо деинсталлировать ioquake3, если он был ранее инсталлирован.
  • Не забудьте на всякий случай выполнить резервное копирование до выполнения обновления.

Наслаждайтесь!


Примеры решателей задач

Попробуйте один из способов, которые предлагаются в данной ветке. Если это не помогло, попробуйте выполнить следующие действия (следуйте по пунктам в предложенном порядке).

  • Деинсталлируйте ioquake3 через Менеджер приложений (как описано в предыдущем разделе).
  • Блокируйте репозитории extras-devel и extras-testing в Менеджере приложений через каталоги.
  • Деинсталлируйте Tickstill через Менеджер приложений.
  • Инсталлируйте пакет 'rootsh' из Менеджера приложений. Откройте xterminal и введите
 sudo gainroot
 apt-get remove libqt4-phonon
  • Если обновление все еще нельзя выполнить, попробуйте освободить место в rootfs:
 sudo gainroot
 apt-get install pymaemo-optify
 apt-get clean
Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Инструменты