Astrazione del kernel e dell’hardware#

Questa pagina documenta le risorse e i processi per costruire il kernel e l’astrazione hardware per i dispositivi UT. Questo documento è utile se si desidera lavorare su:

  • Un problema relativo all’hardware (camera, sensori, radio)

  • Un problema relativo al kernel Linux

  • Un problema relativo al processo di aggiornamento dell’immagine del sistema

Questo documento non è utile se si desidera modificare :doc: ../contribute/preinstalled-apps oppure :doc: System software <../systemdev/index>. Vedere la relativa documentazione per ciascuno.

Ci sono alcuni diversi gruppi di dispositivi Ubuntu Touch rispetto a come viene implementata l’astrazione del kernel e dell’hardware:

  • Trasporto basato su Android 5.1

  • Trasporto basato su Halium

  • Linux kernel

Trasporto basato su Android 5.1#

I trasporti basati su Android 5.1 di Ubuntu Touch consistono dal kernel Linux per questo dispositivo più un sistema Android minimale che viene utilizzato per abilitare tutto l’hardware. Ogni dispositivo ha la sua forchetta (fork) del kernel Linux. Sono tutti fortemente modificati per l’hardware specifico utilizzato in quel dispositivo. Queste forchette si basano anche sulle vecchie versioni del kernel Linux.

Per alcuni dispositivi l’integrazione continua (CI) è stata creata per costruire sia il Kernel che il sistema Android. Altri dispositivi devono essere costruiti manualmente dai loro repository. Per un terzo gruppo di dispositivi, purtroppo, non abbiamo il codice sorgente completo disponibile. I dispositivi Bq e Meizu hanno sorgenti del kernel, ma l” «albero dispositivo Android» non è pubblicamente disponibile. I produttori di questi dispositivi fornivano invece delle costruzioni binarie.

  • Con CI
    • Nexus 5 (hammerhead)

    • OnePlus One (bacon)

    • Fairphone 2 (FP2)

  • Costruzioni manuali
    • Nexus 4 (mako)

    • Nexus 7 2013 Wifi (flo)

  • (Parziali) Costruzioni binarie
    • Bq Aquaris E4.5 (krillin)

    • Bq Aquaris E5 (vegetahd)

    • Bq Aquaris M10 HD (cooler)

    • Bq Aquaris M10 FHD (frieza)

    • Meizu MX4 (arale)

    • Meizu Pro 5 (turbo)

    • Nexus 7 2013 GSM (deb)

I passaggi dettagliati per i tre dispositivi abilitati CI possono essere trovati sotto:doc: HAL per Nexus 5, OnePlus One e Fairphone 2 <ubp-5.1>.

Per il Nexus 7 2013 Wifi (flo) dirigersi verso la Comunità Ports repository per flo.

Il trasporto per il Nexus 7 2013 GSM (deb) è stato creato da un membro della comunità. Purtroppo quei depositi (repositories) sono scomparsi nel tempo. Quindi questa build rientra anche nel gruppo dei binari precostruiti.

Da fare

Documentare il processo per Nexus 4 (mako)

Trasporto basato su Halium#

I trasporti più recenti ai dispositivi Android si basano su `Halium <https://docs.halium.org`_. In alcuni aspetti Halium è simile ai trasporti basati 5.1:

  • Utilizza anche la fork specifica del dispositivo del kernel Linux fornita dal produttore.

  • Utilizza anche un sistema Android minimo per abilitare alcuni hardware.

Tuttavia, Halium permette un modo più generico il trasporto a dispositivi Android. Questo consente di condividere il lavoro tra più progetti che portano diversi sapori di sistemi Linux a dispositivi Android. I trasporti Halium si basano anche sulle versioni Android più recenti 7.1 e superiori.

Alcuni esempi di trasporti Halium sono quelli per Sony Xperia X e Oneplus 3. Fondamentalmente tutti i dispositivi che sono elencati su devices.ubuntu-touch.io, aspettatevi che quelli esplicitamente menzionati sopra come 5.1, o sotto come trasporti basati su Linux.

Tutti i nuovi trasporti di UT a dispositivi Android dovrebbero seguire il processo Halium. Ulteriori dettagli possono essere trovati sotto:doc: Halium porting <../porting/introduction/index>

Trasporti basati su Linux#

Il trasporto basato su Linux si riferisce ai dispositivi in cui viene utilizzato un kernel Linux senza parti Android. I seguenti dispositivi sono in questo gruppo: