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)
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:
Librem 5 (librem5)
Pinebook (pinebook)
Raspberry Pi (rpi) (vedi anche questo blog post)