visto la calma piatta che gira ultimamente nel mondo del modding del DHD ho pensato, perche' non mi metto a compilare un kernel per il mio bambinello?? 
dopo essermi informato a destra e a manca, dopo svariate prove e tentativi andati a vuoto, finalmente sono riuscito a raggruppare le idee per una guida sulla compilazione del kernel android!
spero possa essere utile a tutti gli smanettoni che hanno voglia di provare nuove esperienze! 
cosa serve:
- kernel AOSP: scaricatelo da github o da google code, in base al vostro dispositivo
- kernel Htc: http://htcdev.com/devcenter/downloads
- per altri sorgenti (es.kernel sense 3.5 cercate su XDA nei relativi thread delle rom)
preparazione del sistema:
una volta scaricato tutto scompattate le varie cartelle in un punto a voi comodo (desktop va benissimo)
ora dobbiamo estrarre la configurazione del kernel in uso sul DHD per poter poi compilare il kernel quindi:
aprite il terminale e spostatevi con cd nella cartella dell'sdk contenente ADB
collegate il DHD al pc e date i seguenti comandi:
codice:
adb pull /proc/config.gz
cat config.gz | gunzip > .config
in questo modo estrarremo dal kernel attualmente in uso la configurazione che ci servira' per compilare quello nuovo!
una piccola premessa, se avete una rom sense usate i sorgenti per rom sense, non gli aosp!! ( e' scontato ma e' sempre meglio specificarlo)
ora la tastiera inizia a scottare! 
spostate il file .config ( se non lo vedete nella cartella di ADB cliccate su visualizza> mostra file nascosti) nella cartella dei sorgenti del kernel ( dove c'e' anche il MAKEFILE)
ora apriamo con il terminale spostiamoci nella cartella dei sorgenti e diamo i comandi che seguono:
codice:
export ARCH=arm
export CROSS_COMPILE=/home/utente/Scrivania/android-ndk-r7/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-
export ARCH=arm : noi andiamo a dire al sistema che stiamo per compilare un kernel per architettura ARM
export CROSS_COMPILER=X/Y/Z indichiamo al sistema dove si trovano i vari tool per la compilazione di un kernel per architettura diversa (cross compile appunto) e questi file sono nell'NDK nella cartella con il seguente percorso:
codice:
/android-ndk-r7/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-
se la cartella l'avete sul desktop cambiate la dicitura UTENTE con il nome utente che avete sul PC! 
ora iniziamo la compilazione (finalmente!)
make: avvia la compilazione
-j : jobs, ossia quante operazioni deve svolgere cntemporaneamente
(X+1): numero di operazioni da svolgere contemporaneamente ( dualcore 3 (2+1), quadcore 5 (4+1) e andra' scritto in questo modo: make -j5
se lasciate il solo -j significa che il numero di operazioni contemporaneamente sara' infinito, potreste anche far crashare il sistema!
una volta terminata la compilazione avrete una zImage che andra' dusa con la ramdisk del kernel.
la ramdisk dovrete estrarla da un kernel esistente (possibilemente dello stesso degenere che state compilando). lo faremo con l'aiuto di dsixda kitchen, quindi:
mettete la rom (anche lo zip della rom in uso va bene) nella cartella /dsixda-android-kitchen/original_update
da terminale spostatevi nella cartella di dsixda e date il comando:
- ora premete 1 e date invio per scompattare la rom nella cartella adibita alle modifiche
- ora scrivete 20 e date invio per andare al menu dei tool per la boot.img
- ora premiamo a ( extract kernel+ ramdisk (regular format) from boot.img in any folder), il programma creera' una nuova cartella nella cartella DsiXDA chiamata bootimg_XXXXX_YYY e ci chiedera' di mettere la boot.img in quella cartella. la preleveremo quindi dalla cartella working_folder e la metteremo in bootimg_XXXX_YYY. una volta fatto, diamo invio
- ed ecco qui la nostra ramdisk!
ora dobbiamo fondere zImgae e ramdisk per formare la nuova boot.img. per farlo usate il seguente comando:
codice:
mkbootimg --kernel Mia_zImage --ramdisk Mia_ramdisk.gz --cmdline "no_console_suspend=1" --base 14400000 --output MiaBoot.img
ora e' il momento di testare il nostro lavoro quindi:
mettiamo il DHD in fastboot mode e da fastboot diamo il seguente comando:
codice:
fastboot boot MiaBoot.img
in questo modo se il kernel non funzionera' ci bastera' spegnere il telefono ( rimuovendo la batteria) per annullare le modifiche e avere comunque il telefono funzionante! 
un sentito grazie a RcrdBrt per l'aiuto che mi ha fornito!
Guida veloce alla compilazione del kernel per linux
visto che il procedimento e' molto simili aggiungo anche la compilazione del kernel linux, molto piu' semplice e adatta a chi vuole addentrarsi senza problemi al mondo della compilazione! 
cosa serve:
una distro linux qualunque
sorgenti del kernel: The Linux Kernel Archives
informazioni per il download dei sorgenti
consiglio a tutti di scaricare le versioni con numerazione a 2 o 3 cifre, per esempio 3.2.1 oppure 2.6.39, scartando quindi le versioni a 4 cifre tipo 2.6.39.4, che spesso danno problemi con il patching futuro.
ora cominciamo!
una volta scaricati i sorgenti estraeteli dove volete ( desktop o scrivania vanno benissimo)
aprite il terminale e spostatevi nella cartella contenente i file estratti e date il comando:
codice:
make mrproper
cp /boot/config-`uname -r` .config
con make mrproper puliamo i sorgenti da eventuali tracce di vecchia configurazione ( anche se non dovrebbero essercene)
mentre con cp /boot/config-`uname -r` .config andremo a prendere la configurazione del kernel in uso che ci servira' per compilare il nuovo kernel con una configurazione sicura e funzionante.
diamo ora il comando:
in questo modo creeremo il file di configurazione per il make. probabilmente vi verranno poste una sfilza di domande riguardanti la modifica delle voci di configurazione, non dovrete fare altro che premere invio N-mila volte per non modificare quelle voci! ( se e' la prima volta che compilate non modificatele, premete solo invio una marea di volte!!!)
una volta terminato non ci resta che dare il comando di avvio della compilazione, quindi:
come scritto sopra -j e' il numero dei jobs, quindi operazione che make dovra' svolgere contemporaneamente per la compilazione. X e' il numero dei jobs che volete che faccia, quindi, inserite un numero in base ai core della vostra CPU (2= dualcore, 4= quadcore). se lasciate solo -j verranno eseguite infinite operazioni contemporaneamente (non ve lo consiglio proprio!)
una volta terminata la configurazione dovremo installare il nuovo kernel, per farlo daremo i comandi ( da utente root):
codice:
sudo make modules_install
sudo make install
ora il kernel e' installato e reso come default quindi al riavvio partira' il nostro kernel. per evitare spiacevoli inconvenienti ( il kernel potrebbe anche non partire) dobbiamo modificare le voci del grub in modo che, nel caso il nostro kernel non parta, potremo comunque riavviare il PC con il vecchio kernel funzionante. farlo e' molto semplice:
- installiamo grub customizer (io sono su distro debian):
codice:
sudo apt-get install grub-customizer
all'apertura dovremo dare i privilegi di root inserendo la password, fatto questo il programma analizzera' il sistema per cercare le versioni del kernel installate e la configurazione attuale di grub.
nell'interfaccia avremo una lista delle voci presenti nel grub e che verranno visualizzate all'avvio, noi dovremo aggiungere la voce "previous linux versions" quindi:
- clicchiamo su modifica > aggiungi
- selezioniamo la voce "linux" e nel riquadro sotto assicuriamoci che compaia la voce "previous linux versions"
- clicchiamo su aggiungi
ora dovremmo avere nella pagina principale delle voci, sotto la voce linux, anche la voce previous linux versions, nella quale avremo i vecchi kernel, quindi il kernel precedente a quello appena compilato.
se avete all'avvio il grub solitamente non viene visualizzato, clicchiamo sulla voce preferenze e impostiamo il tempo di visualizzazione del grub a nostro piacimento.
una volta terminate le modifiche clicchiamo su salva e chiudiamo il programma.
ora non resta che riavviare e provare il nuovo kernel!
se non dovesse partire, spegnamo brutalmente il PC, riavviamolo e alla schermata del grub scorriamo fino a previous linux versions e clicchiamo sul vecchio kernel ( non usate quello con la scritta --recovery mode)
nel caso non funzioni il nostro kernel e avremo avviato con il vecchio kernel, non dovremo far altro che tornare in grub customizer > preferenze e impostare il vecchio kernel come kernel di default all'avvio!
enjoy!! 