tl; dr: Saya mencari cara "canonical" atau "recommended" untuk menginstal (cli) paket deb di Ubuntu touch.
Saya telah menggunakan Ubuntu di Desktop dan Server saya selama setahun dan saya sangat puas. Sekarang saya membeli ponsel Ubuntu pertama, BQ Aquaris e4.5 Edition Ubuntu. Namun, saya menemukan bahwa saya tidak dapat menginstal .deb
paket normal atau menginstal sesuatu menggunakan apt-get
. Bagaimana saya bisa "melakukan root" pada ponsel saya sehingga saya dapat menginstal .deb
paket "normal" ?
Saya mencobanya sendiri. Saya tahu hal pertama adalah membuat sistem file Anda dapat ditulis. Saya melakukan langkah-langkah berikut tetapi kemudian saya macet karena kesalahan 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
Dan ini adalah tempat di mana kesalahan mulai menghalangi saya:
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
Jadi saya mencoba
sudo apt-get install -f
Tapi macet di "konfigurasi utama Bluetooth". Saya me-restart telepon, tetapi tidak mau dihidupkan lagi. Saya mencoba Recover
opsi boot. Itu berhasil. Saya mencoba install -f
lagi, dan kali ini berhasil. Tetapi setelah melakukan upgrade
saya masih memiliki kesalahan yang sama.
sumber
Jawaban:
Buat chroot di dalam direktori home:
Kemudian, gunakan chroot dan instal alat CLI apa pun yang perlu Anda gunakan, di dalam chroot itu:
Untuk melakukan hal-hal tertentu, mungkin diperlukan untuk mengikat mount beberapa direktori. Anda perlu ekstra hati-hati saat melakukannya, jika Anda ingin menghapus chroot dari ponsel Anda, atau melakukan tindakan merusak lainnya.
Ini bukan daftar lengkap, tetapi Anda dapat mengikat direktori lain yang diperlukan dengan cara yang sama. Anda tidak perlu membuat chroot di direktori home Anda jika Anda memiliki perangkat penyimpanan eksternal untuk membuatnya aktif, seperti kartu SD. Namun, tidak semua ponsel memiliki slot kartu SD. Jika Anda ingin membuat chroot pada kartu SD, cukup ganti direktori home pada perintah di atas, dengan jalur ke direktori pada media penyimpanan alternatif tempat Anda ingin membuat chroot.
sumber
/
lagi ketika saya ingin mengutak-atik ponsel saya ....sudo mount -o bind /run /home/phablet/vivid-chroot/run
untuk mendapatkan jaringan di dalam chroot askubuntu.com/questions/469209/...Peringatan: ini hanya peretasan untuk menyingkirkan masalah tautan lintas perangkat pada pemutakhiran apt-get dengan paket powerd. ini bukan solusi tersertifikasi "UBUNTU"
Prasyarat: telah menjadikan R / W instalasi ubuntu dengan:
Salin file powerd * .deb yang diunduh dari ponsel ke PC dari path:
/ var / cache / apt / arsip /
Pada PC, bukalah file .deb, hapus file /usr/share/powerd/device_configs/config-default.xml (dari pengujian saya hasilnya tidak mendasar):
Semuanya harus dilakukan sebagai root untuk menjaga izin asli dari file paket dan direktori. Bungkus ulang, salin kembali ke telepon, lalu instal dengan:
Anda masih akan mendapatkan kesalahan:
"/usr/share/powerd/device_configs/config-default.xml": Perangkat atau sumber daya sibuk
Tetapi pada akhirnya paket diperbarui.
Sekarang jika Anda melakukannya:
sudo apt-get upgrade
kesalahan menghilang.Ponsel saya BQ Aquaris tampaknya berfungsi dengan baik dan stabil.
sumber
powerd
? apakah itu perlu untuk meretasnya di setiap pembaruan?Seperti yang telah ditunjukkan, Anda harus menginstal chroot yang mampu ARM di perangkat Anda dan menginstal semua paket yang diperlukan di chroot itu. Namun, melakukannya di direktori home Anda menghabiskan banyak ruang berharga. Sebaliknya, itu dapat dilakukan pada kartu SD Anda menggunakan komputer yang berjalan pada OS Linux yang sesuai (diuji pada Linux Mint 17 dan Ubuntu Trusty). Karena saya tidak menemukan informasi tentang ini di tempat lain, saya taruh di sini sebagai jawaban untuk pertanyaan lama.
Petunjuk berikut menganggap Anda ingin menginstal chroot debian jessie di direktori jessie.
Membuat dan mengisi file gambar di komputer desktop
Membuat file gambar kosong
Untuk membuat gambar 1GB bernama IMAGE.img di direktori kerja saat ini, lakukan:
dd if=/dev/zero of=IMAGE.img bs=1G count=1
Perhatikan bahwa B dalam GB ditinggalkan. "jika" singkatan dari "file input", "dari" untuk "file output" dan "bs" untuk "ukuran blok".
Ada perintah yang lebih efisien di luar sana, tetapi itu hanya bekerja pada jenis sistem file tertentu, sejauh yang saya tahu. Yang ini juga berfungsi pada kartu SD atau tempfs. Harap perhatikan penggunaan / dev / zero dan bukan / dev / random atau / dev / urandom karena itu akan memakan waktu lebih lama dan membuatnya membutuhkan waktu lebih lama untuk mentransfer gambar antar perangkat di kemudian hari.
Membuat sistem file pada gambar
Tanpa sistem file, ponsel tidak akan dapat menyimpan data apa pun pada gambar. Tanpa sistem file, Anda belum dapat me-mount gambar ke direktori, hanya ke perangkat blok.
Perintah bash ini akan menampilkan perangkat loop kosong berikutnya ke dalam variabel
LOOP
:$LOOP=$(sudo losetup -f)
Selanjutnya, tetapkan gambar ke perangkat blok:
sudo losetup $LOOP IMAGE.img
Selanjutnya, buat sistem file ext4 di atasnya:
sudo mkfs -t ext4 $LOOP
Selanjutnya, lepaskan gambar dari perangkat loop:
sudo losetup -d $LOOP
Jika Anda mendapatkan perintah tidak ditemukan kesalahan, cukup instal program yang hilang.
Pasang file gambar di komputer untuk mengaksesnya
Sekarang, buat direktori sementara di direktori kerja:
mkdir jessie
dan pasang file gambar IMAGE.img ke sana:
sudo mount -o loop IMAGE.img $(pwd)/jessie
Perintah ini
pwd
akan memastikan Anda memberikan mount jalur absolut ke direktori kerja Anda saat ini.Mengisi gambar dengan sistem operasi baru dengan qemu-debootstrap
Langkah selanjutnya adalah menggunakan qemu-debootstrap untuk mengunduh file yang diperlukan. Ini mudah jika qemu-debootstrap tersedia seperti pada Ubuntu dan OS yang diturunkan. Jika Anda mendapatkan perintah tidak ditemukan kesalahan saat menjalankan
qemu-debootstrap --help
, coba instal paket yang sesuai, yang dapat dilakukan di Ubuntu melalui:sudo apt-get install qemu-user-static
Untuk mengunduh semua file yang diperlukan dan menyiapkan OS baru, jalankan perintah berikut:
sudo qemu-debootstrap --arch=armhf jessie ./jessie http://http.debian.net/debian
Harap dicatat bahwa
jessie
singkatan pertama untuk versi OS sedangkan yang keduajessie
singkatan direktori di mana file akan diinstal. Sekarang Anda dapat meng-unmount gambar karena sisa pekerjaan harus dilakukan di telepon. Lakukan melalui:sudo umount $(pwd)/jessie
Jika Anda tidak dapat menginstal qemu-debootstrap, lihat bagian selanjutnya.
Mengisi gambar dengan sistem operasi baru tanpa qemu-debootstrap
Lewati bagian ini jika Anda memiliki qemu-debootstrap. Anda masih membutuhkan debootstrap asli untuk arsitektur Anda. Jika ini adalah armhf, cukup gunakan baris perintah di atas tetapi ganti
qemu-debootstrap
dengandebootstrap
. Jika tidak, ikuti bagian ini.Untuk mengunduh semua file yang diperlukan untuk OS baru, jalankan perintah berikut:
Sekarang Anda dapat meng-unmount gambar karena sisa pekerjaan harus dilakukan di telepon. Lakukan melalui:
sudo umount $(pwd)/jessie
Transfer gambar ke telepon
Sekarang lebih baik buat arsip tar dari sini yang kemudian Anda salin ke telepon Anda. Tidak masalah apakah arsipnya diletakkan di SD-card atau penyimpanan internal. Buat arsip di desktop menggunakan:
tar -cvzf jessie.tar.gz IMAGE.img
Sekarang, di ponsel Anda, aktifkan dukungan ssh untuk menyalin gambar. Anda juga dapat melakukannya menggunakan kabel USB. Karena server ssh di-reset pada setiap reboot, mulai layanan ssh di ponsel melalui:
sudo service ssh start
Selanjutnya, salin gambar melalui:
scp jessie.tar.gz phablet@ubuntu-phablet:$COPYDIR
di mana variabel
COPYDIR
berisi direktori tempat gambar akan disimpan. Perintah ini mengasumsikan bahwa nama pengguna Anda pada ponsel adalah phablet dan nama host ponsel adalah ubuntu-phablet. Anda dapat mengetahui masing-masing dengan mengeluarkanecho $USER
danecho $HOSTNAME
di telepon.Sekarang Anda hanya perlu mengekstrak arsip di mana pun Anda ingin gambar berada. Asumsikan direktori tempat Anda ingin gambar berada disimpan dalam variabel
IMAGEDIR
. Ekstrak gambar di sana melalui perintah bash:( cd $IMAGEDIR; tar -xvzf $COPYDIR/jessie.tar.gz; )
Anda sekarang dapat menghapus arsip:
rm $COPYDIR/jessie.tar.gz
Menyelesaikan dan menggunakan gambar di telepon
Jika Anda tidak mengaktifkan server ssh di telepon, lakukan sekarang melalui:
sudo service ssh start
Selanjutnya, pasang gambar Anda ke direktori pilihan Anda (dalam hal ini "jessie"):
sudo mount -o loop $IMAGEDIR/IMAGE.img $(pwd)/jessie
Sekarang, masukkan chroot Anda untuk pertama kalinya melalui:
ssh localhost "sudo chroot $(pwd)/jessie /bin/bash"
Jika Anda memiliki qemu-debootstrap yang tersedia di komputer Anda, Anda sudah selesai. Gunakan 2 perintah di atas untuk menghubungkan ke chroot Anda. Jika tidak, Anda masih harus menjalankan perintah berikut setelah Anda berada di dalam chroot Anda, untuk mengatur OS dengan benar:
/debootstrap/debootstrap --second-stage
Ringkasan cara mengakses chroot
Jika Anda mengikuti langkah-langkah di atas, Anda seharusnya dapat mengakses chroot menggunakan skrip sederhana ini di ponsel:
Anda harus ssh pertama ke ponsel Anda sendiri dari telepon karena pembatasan apparmor dari aplikasi terminal. Aplikasi terminal hanya diperbolehkan untuk menjalankan binari di lokasi tertentu dan direktori home Anda atau kartu SD tidak termasuk di dalamnya. Namun, layanan ssh tidak memiliki batasan seperti itu.
sumber
Buat sistem file root di telepon dapat ditulisi
Untuk memount ulang sistem file root sebagai dapat ditulis, jalankan perintah berikut di ponsel Anda (unduh aplikasi terminal jika Anda belum melakukannya):
Harap dicatat bahwa setelah me-reboot ponsel Anda,
/
hanya-baca lagi . Jika Anda ingin ini permanen, ubah/etc/fstab
. Namun, sentuhan Ubuntu pada BQ belum pada repo lengan utama Ubuntu. Menginstal hal-hal sepertitree
ataulibreoffice
belum berfungsi. Mereka mungkin dalam versi devel terbaru.Menjalankan versi devel terbaru dari Ubuntu
(memiliki lebih banyak barang dalam repo, seperti alat baris perintah dan semacamnya)
Bagaimana menjalankan rilis pengembangan sentuh Ubuntu terbaru pada ponsel bq?
Memperbaiki hal-hal ketika Anda menghancurkan segalanya
Ketika Anda benar-benar memecahkan sesuatu, Anda dapat merombak perangkat Anda .
sumber