18-12-2006, 09:58
|
#1
|
|
Senior Member
Iscritto dal: Jun 2005
Città: Genova
Messaggi: 324
|
Kerneler
Ciao!
Sono l'autore di Kerneler.
Quote:
Compilare il Kernel su GNU/Linux spesso è difficile per i nuovi utenti che si affacciano per la prima volta su questo mondo.
Nasce quindi Kerneler! Un piccolo script che permette di semplificare notevolmente la compilazione del Kernel su distribuzioni debian-based
Kerneler è completamente testuale poiché ritengo abbastanza inutile la grafica per un programma che deve gestire la compilazione del Kernel. In realta' è presente una "grafica testuale" realizzata mediante l'uso di dialog che permette di avere dei menu interattivi che sono molto prossimi a quelli realizzati per X. Alcuni screenshot sono disponibili qui.
Il software è in fase di sviluppo ma attualmente è funzionante sulle seguenti distribuzioni:
* debian sarge (parzialmente, infatti monta una versione molto vecchia di make-kpkg)
* debian etch
* debian sid
* ubuntu dapper
* ubuntu edgy
Features:
* Downloader. Scarica automaticamente la versione scelta con il download manager scelto e ne controlla la dimensione
* Decompressione. Decomprime i file sorgenti e controlla che siano stati correttamente estratti.
* Patcher. Aggiorna i sorgenti all'ultima revisione automaticamente oppure aggiunge patch (con relativa funzione di rimozione) ck, mm e Beyond
* Configuratore. Copia il vecchio file .config in utilizzo e controlla che sia presente tutto il necessario perché make menuconfig possa venir lanciato
* Compilatore. Genera diversi tipi di pacchetti a partire dai sorgenti.
* Installatore. Installa i pacchetti .deb generati in questa, o in precedenti sessioni, della versione specificata
* Menu Hardware. Permette di avere una idea dell'hardware presente tramite un comodo menu
* Wizard. Processo che guida passo passo l'utente durante la compilazione del Kernel. Rispondendo a semplici domande sara' possibile ricompilare il Kernel.
|
Il link al sito ufficiale è http://www.kerneler.org
Per scaricarlo https://sourceforge.net/project/show...ease_id=472032
Vorrei sapere come lo trovate, se vi sembra una buona idea e cosa potrei migliorare!
Grazie a tutti!
__________________
Powered by debian "Sid"
Ricompilare il kernel su distro debianbased: Kerneler.org
|
|
|
18-12-2006, 10:07
|
#2
|
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 18306
|
Quote:
|
Originariamente inviato da Neon87
* Configuratore. Copia il vecchio file .config in utilizzo
|
Non è la scelta ottimale; da un kernel all'altro possono spuntare o scomparire alcune voci, o - peggio - altre potrebbero cambiar nome.
Sarebbe interessante riuscire a rilevare l'hw presente e generare automaticamente un .config personalizzato, ma ovviamente non è banale 
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
|
|
|
18-12-2006, 10:23
|
#3
|
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 18306
|
C'è un serio bug di sicurezza:
Utente esegue ln -s /dev/hda /tmp/kerneler.htm
Root esegue kerneler
Root piange perché hda è andato distrutto
Usa mktemp per creare il file temporaneo
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
|
|
|
18-12-2006, 10:35
|
#4
|
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 18306
|
Altro problema di sicurezza: dai una occhiata ai permessi della cartella contenente il kernel scompattato e dei file contenuti 
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
|
|
|
18-12-2006, 11:06
|
#5
|
|
Senior Member
Iscritto dal: Mar 2005
Città: Ferrara
Messaggi: 1860
|
Quote:
|
Originariamente inviato da ilsensine
Sarebbe interessante riuscire a rilevare l'hw presente e generare automaticamente un .config personalizzato, ma ovviamente non è banale 
|
In linea teorica non basterebbe verificare quali moduli siano caricati e abilitare quelli di conseguenza?
__________________
Dell Inspiron 1720 Ice White, Intel T9300, 4Gb 667 Mhz, 8600GT 256 Mb, 2 x 200 Gb 7200 rpm Free Fall Sensor, Wifi 4965 b/g/n, Bluetooth, 9 Cell Battery, Logitech Mx Air
Windows 7 Pro/Ubuntu 9.10 64bit - 2.6.32.6
|
|
|
18-12-2006, 11:07
|
#6
|
|
Senior Member
Iscritto dal: Jun 2005
Città: Genova
Messaggi: 324
|
Innanzi tutto grazie mille!
1) Il problema della copia del file .config viene meno quando l'utente lancia make menuconfig o roba simile e salva il nuovo config... in questo modo le voci in piu' vengono aggiunte e quelle che vengono tolte vengono eliminate... Posso magari rendere obbligatorio che il file .config e quello nuovo generato devono essere diversi...
2) Effettivamente non ci avevo pensato pongo subito rimedio
3) Allora cambio tar jxvf con qualche cosa che mantenga i permessi originali effettivamente è meglio
Non so come ringraziarti sei stato di prezioso aiuto!
__________________
Powered by debian "Sid"
Ricompilare il kernel su distro debianbased: Kerneler.org
|
|
|
18-12-2006, 11:08
|
#7
|
|
Senior Member
Iscritto dal: Jun 2005
Città: Genova
Messaggi: 324
|
Quote:
|
Originariamente inviato da Cobra78
In linea teorica non basterebbe verificare quali moduli siano caricati e abilitare quelli di conseguenza?
|
Teoricamente se il pc è configurato ad hoc si potrebbe bastare (teoricamente perche' potrebbero cambiare moduli e far cambiare tutto)
Pero' se il pc non è configurato a dovere nemmeno la nuova configurazione lo sara'...
__________________
Powered by debian "Sid"
Ricompilare il kernel su distro debianbased: Kerneler.org
|
|
|
18-12-2006, 11:11
|
#8
|
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 18306
|
Quote:
|
Originariamente inviato da Neon87
3) Allora cambio tar jxvf con qualche cosa che mantenga i permessi originali effettivamente è meglio
|
C'è stato un mezzo flame sulla lkml per il fatto che i pacchetti contengono i privilegi 777. Se scompatti da utente non te ne accorgi (la umask è applicata), ma se esegui tar da root no (in quanto tar in questo caso è pensato per ripristinare un backup, esattamente com'era).
La soluzione è tar -xjf --no-same-permissions -f <file>
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
|
|
|
18-12-2006, 11:41
|
#9
|
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 18306
|
Ti do una piccola dritta per mostrare in un dialog l'output dei programmi (ad es. wget). Prova questo:
Codice:
#!/bin/bash
FIFO=/root/.fifo
# TODO: Controllare che $FIFO non esista,
# oppure che esista ed è effettivamente un fifo
mkfifo "$FIFO" 2>/dev/null
exec 3<>"$FIFO"
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.19.1.tar.bz2 -o "$FIFO" &
PID=$!
dialog --title "titolo" --backtitle "backtitolo" --progressbox 3 80 0<&3 &
DPID=$!
wait $PID
kill -TERM $DPID
E' molto rozzo, dovresti lavorarci un pò per migliorarlo. La cosa più fastidiosa è che utilizzando dialog in questa maniera distrugge le impostazioni del terminale (puoi effettuare un reset del terminale con "reset" all'uscita dello script).
Peccato che trap non cattura anche il SIGCHLD, avrebbe evitato di mettere dialog in background.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
|
|
|
18-12-2006, 12:07
|
#10
|
|
Senior Member
Iscritto dal: Jun 2005
Città: Genova
Messaggi: 324
|
Fantastico! Grazie mille!
Vedo di aggiungere il tutto nella prossima release!
Come idea ti sembra buona puo' avere un futuro o è un fallimento in partenza?
__________________
Powered by debian "Sid"
Ricompilare il kernel su distro debianbased: Kerneler.org
|
|
|
18-12-2006, 12:16
|
#11
|
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 18306
|
Direi che può essere comodo, anche solo per il fatto che scarica & applica patch automaticamente.
Alcuni consigli:
- .config in base alla configurazione attuale. Non è necessario generarlo "completamente", parti dal defconfig per i386 e autoconfigura le parti più importanti (processore, supporto smp/up/highmem, driver necessari per montare il rootfs senza l'ausilio di un initrd ecc.). Il resto dei driver lasciali nella configurazione di default (probabilmente "m"), penserà udev a caricarli a sistema avviato.
- Più fiscalità sul controllo di fallimento dei programmi lanciati
- Possibilità di eseguirlo da utente normale (ovviamente non potrai fare alcune cose, e non potrai usare /usr/src come directory di compilazione ma una dir dell'utente)
- Dividilo in più script, 35k di script bash sono inmantenibili! Usa anche le "funzioni" bash.
- Indenta lo script (sezioni if, ecc.), così è poco leggibile
- Supporto multilingua (almeno l'inglese!) tramite gettext
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
Ultima modifica di ilsensine : 18-12-2006 alle 12:26.
|
|
|
18-12-2006, 12:37
|
#12
|
|
Senior Member
Iscritto dal: Jun 2005
Città: Genova
Messaggi: 324
|
La traduzione l'ho affidata ad un'amica a breve spero di riuscire a metterla su...
Sono sicuramente consigli d'oro...
L'unico problema sara' generare il .config anche sapendo processore ram e roba affina...
Ci lavorero' su
__________________
Powered by debian "Sid"
Ricompilare il kernel su distro debianbased: Kerneler.org
|
|
|
18-12-2006, 12:42
|
#13
|
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 18306
|
Quote:
|
Originariamente inviato da Neon87
L'unico problema sara' generare il .config anche sapendo processore ram e roba affina...
|
Lascialo a bassa priorità, il riutilizzo di .config dovrebbe andar bene per la maggior parte dei casi. Fossi in te comincerei a dividere il progetto in più file e funzioni, in modo da renderlo più mantenibile.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
|
|
|
18-12-2006, 12:43
|
#14
|
|
Senior Member
Iscritto dal: Jun 2005
Città: Genova
Messaggi: 324
|
Quote:
|
Originariamente inviato da ilsensine
Lascialo a bassa priorità, il riutilizzo di .config dovrebbe andar bene per la maggior parte dei casi. Fossi in te comincerei a dividere il progetto in più file e funzioni, in modo da renderlo più mantenibile.
|
io lo ho gia' diviso in vari file... poi quando lo rilascio li unisco tutti per aumentare la comodita' di chi lo usa... perche' credo che portarsi dietro un file unico sia meglio che portarsene 10... certo quando fai una modifica ti metti le mani nei capelli...
bel dilemma... magari faccio 2 pacchetti separati...
__________________
Powered by debian "Sid"
Ricompilare il kernel su distro debianbased: Kerneler.org
|
|
|
19-12-2006, 09:35
|
#15
|
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 18306
|
Quote:
|
Originariamente inviato da ilsensine
Ti do una piccola dritta per mostrare in un dialog l'output dei programmi
|
Ma quanto sono deficiente...
Questo non ha effetti collaterali:
Codice:
#!/bin/bash
wait_child()
{
wait $1
RET=$?
return $RET
}
FIFO=/root/.fifo
# TODO: Controllare che $FIFO non esista,
# oppure che esista ed è effettivamente un fifo
mkfifo "$FIFO" 2>/dev/null
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.19.1.tar.bz2 -o "$FIFO" &
WPID=$!
dialog --title "titolo" --backtitle "backtitolo" --progressbox 3 80 0<$FIFO
# In caso di morte non prevista di dialog, dobbiamo comunque aspettare che wget termini.
wait_child $WPID
RETCODE=$?
if [ $RETCODE -ne 0 ]; then
# gestione errore in wget
fi
Ho provato anche con un reindirizzamento diretto di wget (tramite "|"), ma gli effetti non sono quelli desiderati.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
Ultima modifica di ilsensine : 19-12-2006 alle 10:44.
|
|
|
19-12-2006, 18:52
|
#16
|
|
Senior Member
Iscritto dal: Jun 2005
Città: Genova
Messaggi: 324
|
grande gira benissimo!
non so come ringraziarti! 
__________________
Powered by debian "Sid"
Ricompilare il kernel su distro debianbased: Kerneler.org
|
|
|
19-12-2006, 21:27
|
#17
|
|
Member
Iscritto dal: Aug 2003
Città: Napoli/Milano
Messaggi: 175
|
Scusate se mi intrometto,ma sarebbe possibile in futuro implementare i diversi tipi di configurazione del kernel?
Certo non è che abbia tutta questa importanza,però potrebbe catturare un maggior numero di utilizzatori e rendere piu user-friendly il tutto.
|
|
|
19-12-2006, 21:32
|
#18
|
|
Senior Member
Iscritto dal: Jun 2005
Città: Genova
Messaggi: 324
|
Quote:
|
Originariamente inviato da sjukdom
Scusate se mi intrometto,ma sarebbe possibile in futuro implementare i diversi tipi di configurazione del kernel?
Certo non è che abbia tutta questa importanza,però potrebbe catturare un maggior numero di utilizzatori e rendere piu user-friendly il tutto.
|
in che senso diversi tipi di configurazione?
__________________
Powered by debian "Sid"
Ricompilare il kernel su distro debianbased: Kerneler.org
|
|
|
20-12-2006, 22:39
|
#19
|
|
Senior Member
Iscritto dal: Jun 2005
Città: Genova
Messaggi: 324
|
Il patcher ora puo' aggiungere patch ck, mm e beyond oltre ad aggiornare all'ultima revisione....
conoscete qualche patch interessante che vale la pena di essere inserita?
__________________
Powered by debian "Sid"
Ricompilare il kernel su distro debianbased: Kerneler.org
|
|
|
21-12-2006, 09:31
|
#20
|
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 18306
|
Quote:
|
Originariamente inviato da Neon87
Il patcher ora puo' aggiungere patch ck, mm e beyond oltre ad aggiornare all'ultima revisione....
conoscete qualche patch interessante che vale la pena di essere inserita?
|
Aggiungi il supporto per git:
http://linux.yyz.us/git-howto.html
e la possibilità di scaricare direttamente uno snapshot git del kernel (oppure lo snapshot di una determinata data, se possibile).
Sarebbe molto utile, anche se per un numero limitato di persone, poter applicare direttamente patch dai rami git dei diversi sviluppatori. Nota che il rischio che il patching automatico fallisca è più elevato, chi usa questa funzione deve sapere esattamente cosa sta facendo.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
|
|
|
Regole
|
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi
Il codice HTML è Off
|
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:23.
|