Apakah ada layanan cloud atau kerangka kerja untuk pembaruan firmware melalui udara?

9

Saya memiliki prototipe perangkat sumber daya terbatas (8-bit MCU tanpa firmware OS), berinteraksi dengan server web. Saya ingin tahu apakah ada solusi, kerangka kerja atau layanan cloud untuk memperbarui firmware perangkat saya dari web. Dari penelitian saya ada Microsoft IoT Hub, tapi saya khawatir itu tidak cocok untuk perangkat yang terbatas sumber daya. Ada satu solusi lagi, saya menemukan - portal Cloud mbed, tapi saya tidak yakin bagaimana cara kerjanya. Adakah yang bisa membantu saya melalui saran apa pun, mungkin ada beberapa praktik terbaik untuk menerapkan peningkatan firmware melalui udara untuk perangkat tertanam dengan cara yang aman dan kuat?

Vadimchik
sumber
Tidak ada layanan seperti itu setidaknya sampai sekarang. Menerapkan satu secara umum sangat membosankan, penargetan layanan tipe perangkat tertentu dapat diterapkan.
bravokeyl
Ada mender.io , yang mungkin Anda inginkan. Tapi saya percaya, ini adalah target perangkat tertanam "high-end" dan untuk node 8-bit.
mat

Jawaban:

4

Saya hanya akan menjawab bagian ini, karena saya tahu tidak ada sistem 'out of the box' untuk firwmare yang tidak diketahui.

mungkin ada beberapa praktik terbaik untuk menerapkan peningkatan firmware melalui udara untuk perangkat tertanam dengan cara yang aman dan kuat?

Dalam hal latihan, apa yang akan saya lakukan adalah sebagai berikut:

1) Memiliki boot loader yang sangat minim, sesuatu yang sebodoh mungkin hanya bertanggung jawab memuat firmware dengan batasan-batasan berikut:

  • Kemampuan untuk merekam keberhasilan / kegagalan booting terakhir (untuk mengembalikan ke versi yang berfungsi jika terjadi kegagalan)
  • Beberapa jenis proses darurat untuk menerima firmware baru jika terjadi kegagalan besar (opsional, dapat dihindari jika perangkat "bricked" diperbolehkan)

2) Atur penyimpanan Anda untuk memiliki dua "bank boot" dengan ukuran yang masuk akal untuk menangani evolusi di masa depan dan pertumbuhan firmware.

3) Periksa ulang gambar firmware setelah mengunduh untuk memastikannya benar sebelum membakar, periksa kembali bank tujuan setelah membakar untuk memastikan lagi tidak akan gagal untuk mem-boot sedikit pun di suatu tempat.

Titik yang diabaikan biasanya adalah checksum dari gambar yang diunduh sebelum dan sesudah pembakaran, mengakibatkan sistem rusak yang tertulis pada perangkat. Menggunakan dua bank dan bergantian biasanya memudahkan proses pembaruan.

Tensibai
sumber
5

mbed cloud memang menawarkan fungsionalitas pembaruan firmware penuh, tapi saya pikir Anda akan mengalami masalah porting ke platform Anda jika Anda menjalankan tanpa OS. Saya tidak berpikir sumbernya terbuka hari ini, jadi Anda bahkan tidak dapat menggunakannya untuk referensi. Saya juga tidak yakin apa kriteria untuk mendapatkan akses saat ini.

Anda perlu memikirkan fitur yang Anda butuhkan - apakah ini penyebaran skala besar di mana Anda harus dapat melakukan peluncuran firmware secara bertahap, apakah Anda peduli untuk menandatangani firmware, atau apakah platform Anda sepenuhnya terbuka untuk siapa saja yang memiliki akses fisik? Seberapa besar kepedulian Anda untuk memulihkan perangkat tanpa JTAG?

Secara realistis, fitur seperti pembaruan OTA mungkin adalah sesuatu yang mendorong OS dan pemilihan perangkat Anda - begitu Anda memperhitungkan biaya pengembangan.

Sean Houlihane
sumber
5

Lihatlah OTA yang merupakan kependekan dari Over The Air. Arduino memiliki properti itu .

Anda dapat melakukan pembaruan dengan Arduino IDE, Web Browser atau HTTP Server.

Opsi Arduino IDE dimaksudkan terutama untuk fase pengembangan perangkat lunak. Dua opsi lain akan lebih bermanfaat setelah penyebaran, untuk menyediakan modul dengan pembaruan aplikasi secara manual dengan browser web atau secara otomatis menggunakan server http.

mico
sumber
Salah satu hal yang paling tidak menyenangkan tentang perpustakaan dan Arduino secara umum adalah kurangnya keamanan. Solusi ini cocok untuk proyek DIY atau sekolah, tetapi tidak untuk perangkat komersial. Hal khusus yang saya tidak suka adalah tidak adanya otentikasi: itu tidak dilindungi dari mengganti firmware dengan yang jahat, memiliki MD5 yang benar.
Vadimchik
4

Anda mungkin melihat Partikel (IoT) . Saya tidak yakin mereka mendukung Arduino, tetapi mereka sendiri menawarkan beberapa papan embedded murah.

Jeroen Jacobs
sumber
3

Satu lagi platform yang menarik, saya temukan adalah DeviceDrive . Berikut adalah video yang menjelaskan cara kerja. Sistem OTA mereka tampaknya cukup fleksibel.

Vadimchik
sumber