GNU/Linux >> Belajar Linux >  >> Linux

Perbarui perangkat dari jarak jauh dengan alat sumber terbuka ini

Kemampuan untuk mengakses, menghubungkan, dan mengelola beberapa perangkat dari jarak jauh melalui satu akun adalah penting. Selangkah lebih maju, dapat memperbarui perangkat sepenuhnya dari jarak jauh adalah cara lain bagi sysadmin untuk mengurangi upaya dan meminimalkan sakit kepala.

UpdateHub adalah solusi open source yang memungkinkan Anda melakukan pembaruan perangkat lengkap, termasuk firmware dan bootloader, dari jarak jauh. Tujuannya adalah untuk mempermudah melakukan pembaruan perangkat dan mengurangi pengerjaan ulang dan risiko, baik Anda memperbarui ribuan perangkat atau mengelola penerapan kecil. UpdateHub menangani semua aspek pembaruan over-the-air (OTA), termasuk integritas dan keaslian paket, sementara Anda menangani pekerjaan Anda yang lain.

Lebih banyak sumber daya Linux

  • Lembar contekan perintah Linux
  • Lembar contekan perintah Linux tingkat lanjut
  • Kursus online gratis:Ikhtisar Teknis RHEL
  • Lembar contekan jaringan Linux
  • Lembar contekan SELinux
  • Lembar contekan perintah umum Linux
  • Apa itu container Linux?
  • Artikel Linux terbaru kami

Panduan langkah demi langkah untuk UpdateHub ini bertujuan untuk membantu Anda memulai dengan alat profesional ini. Ada dua opsi server UpdateHub:UpdateHub Cloud dan UpdateHub Community Edition (UpdateHub CE), server sumber terbuka sepenuhnya (didistribusikan di bawah Lisensi MIT), yang digunakan dalam tutorial ini.

Periksa persyaratan

Pertama, pastikan distribusi Linux Anda telah menginstal semua paket yang diperlukan untuk membuat image menggunakan Proyek Yocto.

Anda juga memerlukan perangkat keras berikut:

  • Target adalah perangkat pengembangan. Tutorial ini menggunakan Raspberry Pi 3 Model B+, tetapi Anda juga bisa menggunakan Raspberry Pi 3, Model B, atau Model B+.
  • Tuan Rumah adalah komputer tempat Anda akan membuat gambar menggunakan Proyek Yocto. Tutorial ini menggunakan Yocto 3.1 Dunfell.

Untuk memulai UpdateHub CE, Anda harus menginstal Docker di host. Jika Anda tidak memilikinya, lihat orientasi dan petunjuk penyiapan Docker.

Tutorial ini menggunakan alat repo Google untuk memfasilitasi prosesnya, karena memerlukan banyak repositori. Anda dapat mempelajari lebih lanjut tentang repo di panduan penyiapan pengembangan Android.

Pada distro Debian dan Ubuntu, instal repo dengan:

sudo apt install repo

Jika Anda menggunakan distribusi Linux lain, unduh repo secara langsung dan setel distro Anda dengan:

mkdir ~/bin
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
PATH=${PATH}:~/bin

Terakhir, Anda memerlukan konektivitas jaringan melalui DHCP, atau Anda harus mengetahui cara mengubah alamat protokol internet (IP) atau membuat lapisan Proyek Yocto yang menangani konfigurasi ini.

Siapkan lingkungan Anda untuk build

UpdateHub menyediakan repositori dengan file manifes yang digunakan oleh alat repo, yang membuatnya lebih mudah untuk mengelola banyak lapisan.

Unduh kode sumber dengan membuat direktori dan mengambil lapisan Proyek Yocto yang diperlukan:

mkdir updatehub-platform
cd updatehub-platform
repo init -u https://github.com/UpdateHub/updatehub-yocto-project-reference-platform.git -b dunfell
repo sync

Setelah repo sync perintah selesai, Anda akan melihat semua lapisan yang Anda butuhkan di sources direktori.

Platform UpdateHub menyediakan dukungan untuk beberapa perangkat yang didukung. Selama pengaturan lingkungan Proyek Yocto, ia akan menanyakan apakah Anda ingin menerima perjanjian lisensi pengguna akhir (EULA) dari meta-freescale lapisan; ini tidak diperlukan untuk proyek ini.

Muat lingkungan Proyek Yocto:

MACHINE="raspberrypi3" source ./setup-environment build

Perhatikan bahwa perintah ini hanya valid untuk sesi terminal tempat Anda memuat lingkungan. Jika Anda menggunakan terminal baru, Anda perlu memuat lingkungan lagi. Namun, Anda tidak perlu mengkonfigurasi mesin lagi karena konten konfigurasi disimpan di conf/local.conf berkas.

Mulai UpdateHub CE

Dengan Docker terinstal, unduh image Docker dan mulai server pada port 8080:

docker run -d -p 8080:8080 updatehub/updatehub-ce:latest

Akses dasbor UpdateHub CE melalui alamat IP host dan port 8080 (http://IP_ADDRESS:8080 ). IP host dalam contoh adalah 192.168.15.50, sehingga menjadi http://192.168.15.50:8080 .

Gunakan default admin untuk login dan sandi, dan klik Login .

Anda perlu mengonfigurasi UPDATEHUB_SERVER_URL untuk menggunakan alamat CE UpdateHub karena perangkat perlu mengetahui alamat IP server. Secara default, meta-updatehub layer menggunakan alamat UpdateHub Cloud dalam variabel URL server.

Anda akan melihat antarmuka utama UpdateHub CE:

Konfigurasikan lingkungan untuk menghasilkan gambar

Langkah selanjutnya adalah membuat image Linux yang akan digunakan oleh perangkat. Tetapi pertama-tama, Anda perlu mengatur beberapa variabel di conf/local.conf berkas:

UPDATEHUB_SERVER_URL = "http://IP_ADDRESS:8080"
UPDATEHUB_PACKAGE_VERSION_SUFFIX = "-test-image-1"
ENABLE_UART = "1"
UPDATEHUB_POLLING_INTERVAL = "1m"

Baris demi baris dalam kode di atas:

  • UPDATEHUB_SERVER_URL berisi alamat IP tempat UpdateHub CE dijalankan.
  • UPDATEHUB_PACKAGE_VERSION_SUFFIX menambahkan sufiks dalam versi gambar. Ini berguna untuk menempatkan nomor versi dan menambahkannya untuk setiap gambar baru. Variabel ini akan menjadi VERSION_ID , yang terdiri dari DISTRO_VERSION (dijelaskan dalam dokumen) ditambah UPDATEHUB_PACKAGE_VERSION_SUFFIX . Anda dapat memverifikasi ini di /etc/os-release file di target.
  • ENABLE_UART :Ada beberapa cara untuk mengakses perangkat target, seperti menggunakan konsol serial atau menghubungkan keyboard dan monitor. Variabel ini memungkinkan akses ke konsol serial pada Raspberry Pi dengan menggunakan port serial yang tersedia di header GPIO.
  • UPDATEHUB_POLLING_INTERVAL :Secara default, komunikasi antara agen UpdateHub dan server terjadi setiap 24 jam. Gunakan variabel ini untuk mengatur waktu konsultasi baru selama 1 menit.

Tutorial ini menggunakan Minicom untuk terhubung dengan target; jika mau, Anda dapat mempelajari lebih lanjut tentang menggunakan koneksi serial di Raspberry Pi.

Buat gambar

Sekarang setelah lingkungan Proyek Yocto siap, kompilasi gambar menggunakan mesin eksekusi tugas BitBake dengan menjalankan:

bitbake updatehub-image-base

Pembuatan gambar dapat memakan waktu cukup lama, tergantung pada mesin host. Jika ini pertama kalinya Anda membuat gambar untuk raspberrypi3 di cabang Dunfell Yocto, BitBake akan mengunduh seluruh kode sumber, jadi kecepatan unduh Anda akan memengaruhi waktu yang diperlukan untuk menghasilkan gambar.

Setelah gambar dikompilasi, navigasikan ke build/tmp/deploy/images/raspberrypi3/ direktori host dan verifikasi file gambar, updatehub-image-minimal-raspberrypi3.wic.gz , apakah ada.

Masukkan kartu SD ke Raspberry Pi Anda dan periksa namanya dengan menjalankan dmesg . Kemudian flash gambar ke kartu SD Anda dengan perintah berikut, tetapi pastikan untuk mengubah /dev/sdX ke nama kartu SD Anda:

zcat updatehub-image-base-raspberrypi3.wic.gz | sudo dd of=/dev/sdX

Masukkan kartu SD yang dicitrakan ke perangkat target untuk terhubung ke Raspberry Pi. Gambar memiliki jaringan yang dikonfigurasi untuk mendapatkan alamat IP menggunakan DHCP. Akses konsol dengan root pengguna dan biarkan kata sandinya kosong.

Konfirmasi versi gambar yang berjalan pada target menggunakan cat /etc/os-release .

Buat paket pembaruan

Perangkat Anda seharusnya berjalan dan berfungsi dengan benar, tetapi Anda perlu menambahkan fitur tersebut untuk membuat paket pembaruan. Ini membuat gambar untuk memperbarui target Anda. Contoh berikut menambahkan dukungan untuk server SSH pada target dan membuat paket pembaruan untuk menginstal fungsi ini.

Tambahkan dukungan untuk server OpenSSH dengan menambahkan baris berikut ke build/conf/local.conf berkas:

IMAGE_FEATURES += "ssh-server-openssh"

Untuk memperjelas bahwa gambar yang diperbarui akan memiliki versi lain, beri akhiran -test-image-2 di UPDATEHUB_PACKAGE_VERSION_SUFFIX variabel:

UPDATEHUB_PACKAGE_VERSION_SUFFIX = "-test-image-2"

Simpan file dan jalankan:

bitbake updatehub-image-base -c uhuarchive

Perintah ini menghasilkan file dengan .uhupkg ekstensi, format yang digunakan oleh UpdateHub untuk memperbarui sistem. File yang dihasilkan akan berada di direktori yang sama dengan gambar, tmp/deploy/images/raspberrypi3; dalam contoh ini, itu updatehub-image-base-raspberrypi3.uhupkg .

Periksa perangkat Anda

Untuk mengakses dasbor UpdateHub CE, klik Perangkat tab untuk melihat apakah perangkat Anda terdaftar:

Kirim paket pembaruan

Paket dasbor UpdateHub CE tab menunjukkan daftar paket yang tersedia, tetapi Anda belum memilikinya. Untuk menambahkan paket, klik Unggah Paket , dan pilih updatehub-image-minimal-raspberrypi3.uhupkg mengajukan. Dalam contoh ini, ada di tmp/deploy/images/raspberrypi3/directory . Layar yang menunjukkan detail paket akan muncul. Ini menunjukkan proses penambahan paket pembaruan ke dasbor:

Buat peluncuran

Dengan perangkat yang dikenali dan paket yang dikirim ke server, Anda dapat membuat peluncuran, yang pada dasarnya adalah rencana penerapan. Navigasikan ke Peluncuran tab dan klik Buat Peluncuran . Pilih versi paket mana yang ingin Anda gunakan dalam peningkatan. Contoh ini hanya memiliki paket dari langkah sebelumnya, dengan versi 20.04-test-image-2 . Pilih versi ini, dan pastikan itu termasuk daftar perangkat yang akan diperbarui.

Sebelumnya, Anda mengonfigurasi gambar yang berjalan pada target untuk melakukan kueri pembaruan di server UpdateHub setiap menit, jadi dalam satu menit setelah membuat peluncuran, proses pembaruan akan dimulai. Untuk melacak status pembaruan, periksa Peluncuran tab.

Setelah menyelesaikan proses upgrade, target reboot secara otomatis. Gambar baru boot dan secara otomatis menanyakan server untuk pembaruan. Server menjawab bahwa tidak ada pembaruan dan mengakhiri siklus pembaruan.

Saat status menunjukkan updated , jalankan perintah di bawah ini pada host untuk mengakses target melalui SSH:

ssh root@IP_DO_TARGET

Tidak ada kata sandi yang diperlukan; cukup tekan Enter , dan Anda akan berada di konsol target. Anda dapat memeriksa versinya di /etc/os-release file untuk mengonfirmasi.

Selamat! Selesai!

Sekarang Anda memiliki akses ke alat profesional untuk memperbarui perangkat Anda dari jarak jauh. Tutorial ini menggunakan Raspberry Pi 3 dengan Yocto Project versi Dunfell 3.1.2, tetapi perangkat dan versi lain didukung.

Jika Anda memiliki pertanyaan tentang mengintegrasikan perangkat Anda, akses tim pengembang melalui Gitter atau dengan mengirim email ke [email protected].

Artikel ini didasarkan pada UpdateHub:Mengirim Pembaruan OTA menggunakan Proyek Yocto di blog UpdateHub.


Linux
  1. Berbagi file sumber terbuka dengan alat Linux ini

  2. Kisah Linux saya:memecahkan hambatan bahasa dengan open source

  3. Pengusaha untuk meningkatkan perekrutan profesional TI dengan keterampilan open source

  1. Transfer file antara ponsel Anda dan Linux dengan alat sumber terbuka ini

  2. Periksa kemampuan binari ELF dengan alat sumber terbuka ini

  3. Lakukan forensik memori Linux dengan alat sumber terbuka ini

  1. Dapatkan statistik penggunaan memori dengan alat baris perintah Linux ini

  2. Akses iPhone Anda di Linux dengan alat sumber terbuka ini

  3. Simpan beberapa distro Linux di USB dengan alat sumber terbuka ini