boot dello XNU-Kernel su S3

Pubblicità

Alessandro Cavaliere

Nuovo Utente
Messaggi
43
Reazioni
1
Punteggio
25
Salve da un pò ho l' intenzione di installare questo kernel per curiosità ma non possedendo un iphone volevo farlo sul mio S3 ma non so come fare :help:
 
Sei sicuro che si possa fare? Io credo proprio di no.
Sicuramente non c'è nulla di pronto, in teoria potresti prendere i sorgenti e trovare un modo per compilarli per l'architettura del tuo telefono. E poi che ci fai?
 
L'idea mi piace. Ma cos'è un S3?

Posso dirti che c'era un progetto di nome opendarwin ( fino al 2012 ) per portare l'intero kernel darwin su pc. Allo stato attuale sono disponibili i sorgenti di xnu qui OS X 10.10.1 - Source

Ci sono dei build script qui Install ? DarwinBuild

Ricostruire Android basandosi su un altro kernel ti darà i seguenti grattacapi:

1. KMS e DRM vanno portati/implementati sul nuovo kernel
2. va portata Dalvik ( ART adesso ) e ti può essere di aiuto il lavoro che hanno fatto quelli di Xamarin https://github.com/xamarin/XobotOS
3. rimane il problema delle componenti userspace dei driver e potresti risolverlo come fanno Ubuntu Phone e Sailfish, cioè tramite libhybris
 
Credo si riferisca a lui.

Azz è partito in quarta! Non solo la difficoltà di portare XNU. Aggiungiamoci il portarci sopra Android, le facilities kernel di cui ha bisogno, i driver. Ma infine pure i casini per supportare uno specifico SoC non proprio opensource friendly.

Decisamente un lavoraccio.
 
Azz è partito in quarta! Non solo la difficoltà di portare XNU. Aggiungiamoci il portarci sopra Android, le facilities kernel di cui ha bisogno, i driver. Ma infine pure i casini per supportare uno specifico SoC non proprio opensource friendly.

Decisamente un lavoraccio.

ahahah partirò con la seconda invece perché ho il supporto per il SoC tramite la rom ufficiale oppure le custom Rom:asd::asd::asd:
 
ahahah partirò con la seconda invece perché ho il supporto per il SoC tramite la rom ufficiale oppure le custom Rom:asd::asd::asd:

Moment. A quale supporto ti riferisci? I driver non ci gireranno su un Android basato su XNU, per cui l'hardware non è supportato. E il problema è quale e quanta documentazione Samsung rende disponibile per lo specifico SoC ( a cominciare dalla procedura di bootstrap ).

L'unico supporto che puoi avere è quello del runtime applicativo dopo che l'avrai portato. Almeno le app gireranno.
 
Moment. A quale supporto ti riferisci? I driver non ci gireranno su un Android basato su XNU, per cui l'hardware non è supportato. E il problema è quale e quanta documentazione Samsung rende disponibile per lo specifico SoC ( a cominciare dalla procedura di bootstrap ).

L'unico supporto che puoi avere è quello del runtime applicativo dopo che l'avrai portato. Almeno le app gireranno.

Non sapevo che se basato su XNU i driver non funzionassero adesso è un grattacapo pesante :cav:

- - - Updated - - -

Dici che XNU non supporta anche i processori tipo ARM
 
Non sapevo che se basato su XNU i driver non funzionassero adesso è un grattacapo pesante :cav:

La componente user space dei driver si può "incollare" tramite libhybris ( ubuntu e sailfish fanno così ). Il problema è la componente kernel space. Si potrebbe implementare un DDE come fanno Hurd e Genode. A proposito, potresti considerare di basare il tuo OS su Genode, dato che supporta out of the box un gruppetto di SoC ARM. E c'è anche la possibilità di integrare i driver NetBSD tramite l'uso di rump kernel.

Dici che XNU non supporta anche i processori tipo ARM

Sicuramente supporta gli Ax di Apple. Il problema è che i SoC ARM non sono come le cpu x86, che sono tutte standard ( al netto della gpu ovviamente ). Ogni SoC ha dei componenti più o meno fondamentali differenti rispetto agli altri. Alcuni vanno inizializzati obbligatoriamente ( e supportati con opportuni driver ), altri li puoi tralasciare ( ad esempio la parte 3D di una gpu ). E poi variano pure i meccanismi di bootstrap. Uno sforzo è stato fatto e si è materializzato tramite FDT FDTWiki

Ciò non toglie che, documentazione alla mano, puoi benissimo supportare uno specifico SoC. Il discorso fatto NON vale per ARMv8 perchè è stata standardizzata e il meccanismo di bootstrap è gestito via UEFI.
 
Ultima modifica:
La componente user space dei driver si può "incollare" tramite libhybris ( ubuntu e sailfish fanno così ). Il problema è la componente kernel space. Si potrebbe implementare un DDE come fanno Hurd e Genode. A proposito, potresti considerare di basare il tuo OS su Genode, dato che supporta out of the box un gruppetto di SoC ARM. E c'è anche la possibilità di integrare i driver NetBSD tramite l'uso di rump kernel.



Sicuramente supporta gli Ax di Apple. Il problema è che i SoC ARM non sono come le cpu x86, che sono tutte standard ( al netto della gpu ovviamente ). Ogni SoC ha dei componenti più o meno fondamentali differenti rispetto agli altri. Alcuni vanno inizializzati obbligatoriamente ( e supportati con opportuni driver ), altri li puoi tralasciare ( ad esempio la parte 3D di una gpu ). E poi variano pure i meccanismi di bootstrap. Uno sforzo è stato fatto e si è materializzato tramite FDT FDTWiki

Ciò non toglie che, documentazione alla mano, puoi benissimo supportare uno specifico SoC. Il discorso fatto NON vale per ARMv8 perchè è stata standardizzata e il meccanismo di bootstrap è gestito via UEFI.

La mia idea di creare un os personale basato su XNU all' inizio mi parve semplice con te invece la cosa si è fatta più complicata ma mi piacciono le sfide quindi continuo e dato che pensavo di cambiare il mio s3 con un OnePlus 2 che ha un SoC Snapdragon 810 penso di risolvere alcuni problemi perché questo SoC è più accessibile tu che ne dici?
 
La mia idea di creare un os personale basato su XNU all' inizio mi parve semplice con te invece la cosa si è fatta più complicata ma mi piacciono le sfide quindi continuo e dato che pensavo di cambiare il mio s3 con un OnePlus 2 che ha un SoC Snapdragon 810 penso di risolvere alcuni problemi perché questo SoC è più accessibile tu che ne dici?

Qualcomm è paradossalmente una delle imprese più opensource-friendly. Allwinner e Freescale sono le altre due. Amlogic, Broadcom, Rockchip si piazzano nel mezzo.

Allo stato attuale esistono i driver freedreno nel kernel linux che supportano le gpu adreno degli snapdragon. Il porting verso altri kernel si può fare.
 
Quindi quando acquisterò il nuovo smartphone prelevo il kernel linux e poi i driver freedreno all' interno.

Dipende da cosa intendi per prelevare. Quello che ti serve sono i codici sorgente del kernel. Lì dentro troverai pure le componenti kernel space dei driver, mentre quelle user space si trovano altrove ( il 3D fa parte del progetto Mesa e relativi sorgenti ).

Dopo di che devi effettuare il porting dei driver verso XNU. Comunque sia è tutta roba che richiede di programmare ed è fondamentale studiarsi l'architettura hardware dei SoC su cui si va a portare il sistema operativo.

C'è un tizio che ha fatto un lavoro preliminare di port su ARM

Current status of XNU/ARM and beyond – winocmblag
Porting the XNU (Mac OS X/iOS) kernel to ARM – winocmblag

Inutile dire che il tizio ha svolto si e no il 10% del lavoro necessario.
 
Pubblicità
Pubblicità

Discussioni Simili

Indietro
Top