tl; dr: я ищу "канонический" или "рекомендуемый" способ установки (cli) .deb пакетов на Ubuntu touch
Я использую Ubuntu на своем рабочем столе и сервере в течение года, и я очень доволен. Теперь я купил первый телефон Ubuntu, BQ Aquaris e4.5 Ubuntu Edition. Тем не менее, я обнаружил, что не могу установить нормальные .deb
пакеты или установить вещи с помощью apt-get
. Как я могу «рутировать» свой телефон, чтобы я мог устанавливать «нормальные» .deb
пакеты?
Я попробовал это сам. Я знаю, во-первых, сделать вашу файловую систему доступной для записи. Я сделал следующие шаги, но затем я застрял из-за ошибки dpkg.
# Desktop:
sudo add-apt-repository ppa:phablet-team/tools
sudo apt-get update
sudo apt-get install phablet-tools
# Phone:
Security & Privacy: Lock phone: Lock when idle: Never
About this phone: Developer Mode: Developer Mode ON
# connect phone to PC via USB
# Desktop:
adb devices
# no device detected so I've manually added file
touch /home/username/.android/adb_usb.ini
# with content: 0x2a47
sudo adb kill-server
sudo adb start-server
adb devices # now my phone is on the list
# Phone:
sudo test -w filename && echo "Writable" || echo "Not Writable"
# verified it is writable
sudo add-apt-repository ppa:phablet-team/ppa
sudo apt-get update && sudo apt-get upgrade
И это место, где ошибка начинает блокировать меня:
dpkg: error processing archive /var/cache/apt/archives/powerd_0.16+15.04.20150430-0ubuntu1_armhf.deb (--unpack):
unable to make backup link of `./usr/share/powerd/device_configs/config-default.xml' before installing new version: Invalid cross-device link
Так я попробовал
sudo apt-get install -f
Но он застрял на "основной конфигурации Bluetooth". Я перезапустил телефон, но он больше не хотел включаться. Я попробовал Recover
вариант загрузки. Это сработало. Я попробовал еще install -f
раз, и на этот раз это сработало. Но после этого у upgrade
меня все еще была та же ошибка.
источник
Ответы:
Создайте chroot внутри домашнего каталога:
Затем используйте chroot и установите все инструменты CLI, которые вам нужны, внутри этого chroot:
Для выполнения определенных действий может потребоваться привязать монтирование некоторых каталогов. При этом вам нужно будет проявить особую осторожность, если вы хотите удалить chroot из вашего телефона или выполнить другие разрушительные действия.
Это не исчерпывающий список, но вы можете подключить другие каталоги при необходимости аналогичным образом. Вам не нужно создавать chroot в вашем домашнем каталоге, если у вас есть внешнее устройство хранения, например SD-карта. Однако не все телефоны имеют слоты для SD-карт. Если вы хотите создать chroot на SD-карте, просто замените домашний каталог в приведенных выше командах на путь к каталогу на вашем альтернативном носителе, на котором вы хотите создать chroot.
источник
/
, когда я хочу возиться со своим телефоном ....sudo mount -o bind /run /home/phablet/vivid-chroot/run
чтобы получить сеть внутри chroot askubuntu.com/questions/469209/…Предупреждение: это всего лишь способ избавиться от проблемы связи между устройствами при обновлении apt-get с помощью пакета powerd. это не сертифицированное решение "UBUNTU"
Предварительное условие: сделав R / W установку Ubuntu с:
Скопируйте загруженный файл powerd * .deb с телефона на ПК по пути:
/ Вар / кэш / кв / архив /
На ПК распакуйте файл .deb, удалите файл /usr/share/powerd/device_configs/config-default.xml (из моих тестов результаты не найдены):
Все должно быть сделано с правами суперпользователя, чтобы сохранить исходные права доступа к файлам пакета и директориям. Перепакуйте, скопируйте обратно на телефон, затем установите с помощью:
Вы все равно получите ошибку:
"/usr/share/powerd/device_configs/config-default.xml": устройство или ресурс занят
Но в конце пакет обновляется.
Теперь, если вы делаете:
sudo apt-get upgrade
ошибка исчезла.Мой телефон BQ Aquaris, кажется, работает хорошо и стабильно.
источник
powerd
? нужно ли взламывать его при каждом обновлении?Как уже указывалось, вы должны установить на своем устройстве chroot с поддержкой ARM и установить все необходимые пакеты в этом chroot. Тем не менее, выполнение этого в вашем домашнем каталоге тратит много ценного пространства. Вместо этого это можно сделать на SD-карте с помощью компьютера, работающего на соответствующей ОС Linux (протестировано на Linux Mint 17 и Ubuntu Trusty). Поскольку я не нашел никакой информации об этом нигде, я разместил ее здесь как ответ на старый вопрос.
Следующие инструкции предполагают, что вы хотите установить debian jessie chroot в каталог jessie.
Создание и заполнение файла изображения на настольном компьютере
Создание пустого файла изображения
Чтобы создать изображение размером 1 ГБ с именем IMAGE.img в текущем рабочем каталоге, выполните:
dd if=/dev/zero of=IMAGE.img bs=1G count=1
Обратите внимание, что B в ГБ опущено. «if» означает «входной файл», «of» для «выходной файл» и «bs» для «размер блока».
Существуют более эффективные команды, но, насколько я знаю, они работают только на определенных типах файловых систем. Этот также работает на SD-карте или tempfs. Обратите внимание на использование / dev / zero, а не / dev / random или / dev / urandom, так как это займет намного больше времени, а потом потребуется больше времени для передачи изображения между устройствами в дальнейшем.
Создание файловой системы на изображении
Без файловой системы телефон не сможет хранить какие-либо данные на изображении. Без файловой системы вы еще не можете смонтировать образ в каталог, только на блочное устройство.
Эта команда bash выведет следующее переменное устройство с пустым циклом в переменную
LOOP
:$LOOP=$(sudo losetup -f)
Затем назначьте изображение на блочное устройство:
sudo losetup $LOOP IMAGE.img
Затем создайте на нем файловую систему ext4:
sudo mkfs -t ext4 $LOOP
Далее отсоедините изображение от петлевого устройства:
sudo losetup -d $LOOP
Если вы получаете команду не найденные ошибки, просто установите отсутствующие программы.
Смонтируйте файл образа на компьютер, чтобы получить к нему доступ
Теперь создайте временный каталог в рабочем каталоге:
mkdir jessie
и смонтируйте файл образа IMAGE.img к нему:
sudo mount -o loop IMAGE.img $(pwd)/jessie
Команда
pwd
убедится, что вы дадите абсолютный путь к вашему текущему рабочему каталогу.Заполнение образа новой операционной системой с помощью qemu-debootstrap
Следующим шагом будет использование qemu-debootstrap для загрузки необходимых файлов. Это легко, если доступен qemu-debootstrap, как в случае с Ubuntu и производными ОС. Если при выполнении вы получите команду not found error
qemu-debootstrap --help
, попробуйте установить соответствующий пакет, что можно сделать в Ubuntu через:sudo apt-get install qemu-user-static
Чтобы загрузить все необходимые файлы и подготовить новую ОС, выполните следующую команду:
sudo qemu-debootstrap --arch=armhf jessie ./jessie http://http.debian.net/debian
Обратите внимание, что первая
jessie
обозначает версию ОС, а втораяjessie
обозначает каталог, в который должны быть установлены файлы. Теперь вы можете размонтировать образ, так как остальная часть работы должна выполняться на телефоне. Сделайте это через:sudo umount $(pwd)/jessie
Если вы не можете установить qemu-debootstrap, смотрите следующий раздел.
Заполнение образа новой операционной системой без qemu-debootstrap
Пожалуйста, пропустите этот раздел, если у вас есть qemu-debootstrap. Тем не менее, вам все равно понадобится собственный debootstrap для вашей архитектуры. Если это происходит с помощью armhf, просто используйте приведенную выше командную строку, но замените
qemu-debootstrap
наdebootstrap
. Если нет, следуйте этому разделу.Чтобы загрузить все необходимые файлы для новой ОС, выполните следующую команду:
Теперь вы можете размонтировать изображение, так как остальная часть работы должна быть выполнена на телефоне. Сделайте это через:
sudo umount $(pwd)/jessie
Передача изображения на телефон
Теперь лучше всего создать архив tar из этого файла, который затем скопировать на телефон. Не имеет значения, помещен ли архив на SD-карту или во внутреннее хранилище. Создайте архив на рабочем столе, используя:
tar -cvzf jessie.tar.gz IMAGE.img
Теперь на вашем телефоне включите поддержку ssh, чтобы скопировать изображение поверх. Вы также можете сделать это с помощью USB-кабеля. Поскольку сервер ssh сбрасывается при каждой перезагрузке, запустите службу ssh на телефоне с помощью:
sudo service ssh start
Затем скопируйте изображение через:
scp jessie.tar.gz phablet@ubuntu-phablet:$COPYDIR
где переменная
COPYDIR
содержит каталог, в котором должно храниться изображение. Эта команда предполагает, что ваше имя пользователя на телефоне - phablet, а имя хоста телефона - ubuntu-phablet. Вы можете узнать как по выдаче, такecho $USER
иecho $HOSTNAME
по телефону соответственно.Теперь вам нужно извлечь архив только там, где вы хотите, чтобы изображение находилось. Предположим, что каталог, в котором вы хотите разместить изображение, хранится в переменной
IMAGEDIR
. Извлеките изображение с помощью команды bash:( cd $IMAGEDIR; tar -xvzf $COPYDIR/jessie.tar.gz; )
Теперь вы можете удалить архив:
rm $COPYDIR/jessie.tar.gz
Завершение и использование изображения на телефоне
Если вы не включили ssh сервер на телефоне, сделайте это сейчас через:
sudo service ssh start
Затем смонтируйте ваш образ в каталог по вашему выбору (в данном случае «jessie»):
sudo mount -o loop $IMAGEDIR/IMAGE.img $(pwd)/jessie
Теперь введите ваш chroot в первый раз через:
ssh localhost "sudo chroot $(pwd)/jessie /bin/bash"
Если на вашем компьютере был доступен qemu-debootstrap, все готово. Используйте вышеуказанные 2 команды для подключения к вашему chroot. Если нет, вам все равно придется выполнить следующую команду, когда вы находитесь в chroot, чтобы правильно настроить ОС:
/debootstrap/debootstrap --second-stage
Краткое описание того, как получить доступ к chroot
Если вы выполнили вышеуказанные шаги, вы сможете получить доступ к вашему chroot, используя этот простой скрипт на телефоне:
Вы должны сначала подключиться к своему телефону с помощью ssh из-за ограничений приложения терминала. Терминальному приложению разрешено выполнять двоичные файлы только в определенных местах, и среди них нет ни вашего домашнего каталога, ни SD-карты. Однако у службы ssh таких ограничений нет.
источник
Сделать корневую файловую систему на телефоне доступной для записи
Чтобы перемонтировать корневую файловую систему как доступную для записи, выполните на телефоне следующую команду (загрузите приложение терминала, если вы этого еще не сделали):
Обратите внимание, что после перезагрузки телефон
/
снова доступен только для чтения . Если вы хотите, чтобы это было постоянным, измените/etc/fstab
. Тем не менее, прикосновение Ubuntu к BQ еще не включено в основной репозиторий Ubuntu. Установка таких вещей, какtree
илиlibreoffice
не будет работать. Они могут быть в последней версии devel.Запуск последней версии Ubuntu devel
(в репозитории есть больше плюсов, таких как инструменты командной строки и тому подобное)
Как запустить последнюю версию Ubuntu Touch для разработчиков на телефоне bq?
Исправление вещей, когда вы все сломаете
Когда вы полностью сломаете устройство , вы можете просто перепрошить свое устройство .
источник