— Aggiornata al 10/04/2012 – Kernel Patch per problema Wifi Atheros incluso
 Ho aggiornato il link del sorgente del kernel perchè punti ad una versione opportunamente modificata, buon divertimento.

La presente è una piccola guida per la compilazione e ottimizzazione del kernel su Ubuntu a 64 bit e derivate. L’ottimizzazione si limita solo alle selezione della tipologia del processore all’interno dei files di configurazione, ulteriori ottimizzazioni possono essere eseguite all’interno di tali files in relazione alla propria configurazione Hardware.

Il risultato del lavoro svolto è un kernel compatibile con tutti i processori Intel appartenenti alla famiglia Core2, Corei3, i5, i7 ecc.
Questa guida non è adatta alla compilazione del kernel su macchine dotate di Cpu Amd, presto ne posterò una dedicata a questi processori.
L’ottimizzazione garantisce una migliore velocità nell’esecuzione dei compiti che assorbono molte risorse del processore, Es. codifica/decodifica video, compressione/decompressione files ecc.
Se utilizziamo il nostro pc solo per navigare in rete e scrivere qualche riga di testo non noteremo grandi differenze.

Prima di iniziare con il lavoro vero proprio ringrazio quanti in rete pubblicando ogni giorno le loro esperienze migliorano le nostre competenze e accrescono la nostra cultura. Un particolare ringraziamento va a Sankaran Raman dal cui lavoro ho attinto a piene mani.

Avviate il “Terminale” e digitate al prompt, nell’ordine così come vi appaiono, i comandi che via via troverete nel corso della lettura. Ogni comando è preceduto da una rapida spiegazione.
– Installazione librerie, compilatori e tutto il necessario. Ad ogni comando date “Invio”, inserite la vostra password e attendete che il sistema faccia il resto.
sudo apt-get install fakeroot build-essential crash kexec-tools makedumpfile kernel-wedge libncurses5 binutils-dev libelf-dev libdw-dev libnewt-dev libncurses5-dev
sudo apt-get –no-install-recommends install asciidoc xmlto
sudo apt-get build-dep linux
– Creazione cartella contenente il sorgente del kernel e le patch all’interno della nostra Home (al termine di tutte le operazioni essa conterrà anche il nostro kernel bello e compilato in singoli pacchetti).

mkdir ~/Kernel_3.3.1
cd ~/Kernel_3.3.1
– Download del kernel e delle patch

wget -c http://dl.dropbox.com/u/56720744/linux-3.3.1.tar.bz2
Attendete il termine del download prima i dare il comando successivo (per ogni singolo comando).
wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.1-precise/0001-base-packaging.patch
wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.1-precise/0002-debian-changelog.patch
wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.1-precise/0003-default-configs.patch
– Scompattazione Kernel, creazione collegamento simbolico, accesso alla cartella.

tar xjvf linux-3.3.1.tar.bz2
ln -s linux-3.3.1 linux
cd linux
– Applicazione Patch al Kernel

patch -p1 < ../0001-base-packaging.patch
patch -p1 < ../0002-debian-changelog.patch
patch -p1 < ../0003-default-configs.patch
– Assegnazione diritti accesso ed esecuzione ai vari scripts
chmod -Rv +x debian/rules
chmod -Rv +x debian/scripts/
– Creazione nuovo profilo di compilazione per Corei7
cp debian.master/config/amd64/config.flavour.generic debian.master/config/amd64/config.flavour.i7
– Pulizia ed aggiornamento dei file di configurazione
fakeroot debian/rules clean
fakeroot debian/rules updateconfigs
– Modifica del file di configurazione per adattare il Kernel alle nostre richieste: è un passaggio fondamentale da eseguire con estrema attenzione. All’esecuzione del comando il terminale farà apparire una serie di domande, SOLO ALLA SECONDA RICHIESTA DOVETE RISPONDERE AFFERMATIVAMENTE.

fakeroot debian/rules editconfigs

    Rispondete “n” alla prima domanda, “Y” alla seconda.
    Ora siete entrati nella configurazione del kernel procedete in questo modo (per selezionare intendo muoversi su e giù con le frecce del cursore e poi dare invio):

    1 – Selezionare “Processor type and features”

    2 – Selezionare “Processor family (Generic-x86-64)” 

    3 – Selezionare “Core 2/newer Xeon

    4 – Scorrete tutte le voci in basso fino a trovare “Preemption Model …”
    (Questa voce determina come la vostra cpu si “dedicherà” alla gestione dei vari compiti/programmi in esecuzione nel vostro sistema unitamente alla voce “Timer frequency…”. E’ possibile privilegiare una più rapida risposta del sistema a scapito però dei tempi di esecuzione reali dei vari processi. Consiglio vivamente di lasciare “Desktop”).

    5 – Scorrete tutte le voci in basso fino a trovare “Timer frequency …”
    (Ora se avete un fisso potete selezionare la voce 1000hz, un portatile non superate soglia 300hz. In rete ho trovato infinite differenti spiegazioni e consigli sull’uso di tale parametro, a meno che non utilizziate sul vostro sistema delle applicazioni professionali per la gestione di audio e video settate tale valore su 300hz).

    6 – Tornate al menù precedente Selezionando la voce “Exit” presente nella parte bassa dello schermo

    7 – Selezionate “Networking support …”

    8 – Selezionate “Networking options …”

    9 – Scorrete tutte le voci in basso fino a trovare “The IPv6 protocol”, pigiate sulla vostra tastiera la lettera “M” 
    (in fase di compilazione verrà creato un modulo del kernel per il protocollo IPv6 che sarà possibile bannare per impedirne l’uso da parte del sistema in maniera definitiva).

    10 – Tornate al menù precedente Selezionando la voce “Exit” presente nella parte bassa dello schermo

    11 – Tornate al menù precedente Selezionando la voce “Exit” presente nella parte bassa dello schermo

    12 – Usciamo dal menù sempre Selezionando la voce “Exit” presente nella parte bassa dello schermo

    13 – Rispondiamo “Yes” alla domanda che ci verrà posta all’uscita, salveremo le modifiche apportate alle configurazione base.

    Rispondete “n” alla successive domanda presenti a schermo. 

– Copia delle impostazioni generiche e impostazione della nostra configurazione come predefinita all’interno del processo di compilazione 

cp debian.master/abi/3.2.0-20.33/amd64/generic debian.master/abi/3.2.0-20.33/amd64/i7
cp debian.master/abi/3.2.0-20.33/amd64/generic.modules debian.master/abi/3.2.0-20.33/amd64/i7.modules
sed -i s/getall amd64 generic virtual/getall amd64 generic virtual i7/g debian.master/etc/getabis
sed -i s/= generic virtual/= generic virtual i7/g debian.master/rules.d/amd64.mk
cp debian.master/control.d/vars.generic debian.master/control.d/vars.i7
sed -i s/supported=”Generic”/supported=”Nehalem”/g debian.master/control.d/vars.i7
sed -i s/target=”Geared toward x86_64/target=”Geared toward i7/g debian.master/control.d/vars.i7

– Ottimizzazione del kernel attraverso le variabili -mtune e -march, il compilatore si occuperà di produrre un kernel ottimizzato per architetture Intel Dual Core / Corei-xx
 
sed -i s/= gcc/= gcc -march=corei7 -mtune=corei7/g Makefile
sed -i s/= g++/= g++ -march=corei7 -mtune=corei7/g Makefile
sed -i s/core2/corei7/g arch/x86/Makefile
sed -i s/core2/corei7/g arch/x86/Makefile_32.cpu

– scrittura di tutte le modifiche sul disco

sync
– pulizia prima dell’inizio della compilazione vera e propria
 
fakeroot debian/rules clean
– compilazione delle dipendenze, sorgente e header

skipabi=true skipmodule=true fakeroot debian/rules binary-indep
– avvio del processo di compilazione del kernel

time skipabi=true skipmodule=true no_dumpfile=yes fakeroot debian/rules binary-i7

uliamo quello che non serve più e, infine, diamo il comando per l’installazione del nuovo kernel.

cd ..

rm linux

rm -rf linux-3.3.1

sudo dpkg -i linux-image-3.3.1-030301-i7_3.3.1-030301.201204021435_amd64.deb linux-headers-3.3.1-030301-i7_3.3.1-030301.201204021435_amd64.deb linux-headers-3.3.1-030301_3.3.1-030301.201204021435_all.deb

Riavviamo per utilizzare il nuovo Kernel.

Sistema utilizzato Kubuntu 12.04 x64 – Cpu Corei3 2°Gen. – 6GB Ram.
Unico problema riscontrato: la mia scheda di rete al ritorno dalla ibernazione (in via di risoluzione) non riesce a riagganciarsi alla stessa rete wireless.
Presto la guida per la versione a 32 Bit, un saluto a tutti.
Ringrazio il “padrone di casa” e i suoi collaboratori per l’ospitalità concessami.
  • Txeyo

    Che bello!
    Io che sono niubbo la volevo una guida così!
    Vi ringrazio tanto, anche per la voglia di scrivere pure a pasquetta xD!
    Buon lavoro

  • PatrisX

    Ciao, io ho un processore Amd, per l’esattezza un Phenom II X6 1100T, dovrei modificare qualcosa della guida da te postata?
    Grazie

    • Pcnoproblem

      Ciao, la guida non è adatta al  tuo tipo di processore ma solo ai processori di casa Intel.
      Il tempo di procurare un macchina con CPU Amd (preferisco provare in proprio prima di far girare info reperite in rete) completerò la guida con le istruzioni necessarie per  l’ottimizzazione dei processori Amd.

  • Max Deliquio

    Ciao su “Core 2/ Quad” devo cambiare qualcosa? Cioè questa guida è specifica per i7 o va bene su tutti gli intel dal Core 2 in poi?
    Seconda cosa al punto 9 non ho capito bene se premo “M” viene disabilitato il protocollo IPv6? E se si come si fa per lasciarlo invariato?
    Grazie.

    • Txeyo

      Ankio me la sono posta questa domanda, xk ho un i5, ma a quanto c’è scritto, la compilazione è avvenuta su un i3
      Secondo me basta che sia intel

      • Pcnoproblem

         Yes !

        • Txeyo

          Ok grazie PcNoproblem!
          Ho provato e mi è venuto tutto a meraviglia!
          Grazie mille, ottimissima guida =)

    • Pcnoproblem

      Per la tua cpu non devi variare nulla, come scritto il kernel è compatibile con tutti i processori Intel dal Core 2 in poi. Al punto 9 rendiamo solo “modulare” il protocollo ipv6 non lo disabilitiamo, per disabilitarlo occorre bannarlo attraverso apposite istruzioni che non ho inserito. In sintesi puoi procedere…

  • Bernardo Mattiucci

    Cioe’…. mi costringi a provare….. 🙁 ….sei cattivo!!!! ora che mi funziona tutto con quelli di default 😛

  • mikronimo

    La guida è per 64 bit, ma mi risulta che i processori a 64 bit siano dell tutto compatibili con quelli a 32 bit; se non sbaglio, quindi, la guida è applicabile anche ai processori a 32 bit. Attendo smentite…

    • Pcnoproblem

       No, la guida non è adatta alla compilazione su sistemi a 32 bit. Abbiate pazienza, più tardi posterò le modifiche per i “32 bit”.

  • Br.Ba.

    Ottimo lavoro pcnoproblem (non so nome di battesimo)…
    Appena ho un secondo provo e ti dico…

    Perdona la mia infinita curiosità, ma molto similmente si potrebbe procedere anche a compilare kernel per dispositivi android ???

  • Marco

    Ciao è da un po che ti seguo e ti faccio tantissimi complimenti per le tue guide e tutti i post.Volevo chiederti una cosa, ma una volta installato e compilato questo kernel, quando il sistema mi dirà che sarà disponibile un aggiornamento al kernel di default che dovrò fare? Quale saranno le conseguenze?
    In poche parole, che conseguenze ha compilare questo kernel, rispetto quello di default? Grazie mille

    • Pcnoproblem

      Ciao Marco, di solito la versione del kernel inserita nei repository ufficiali è molto più “vecchia” dell’ultima versione stabile presente sul sito ufficiale “kernel.org”.
      Ciò non di meno se il kernel ufficiale dovesse sopravanzare la versione da te compilata potrai sempre decidere quale versione utilizzare come default tramite appositi programmi già recensiti da Roberto. Ricordo che al boot il sistema si avvia, salvo diversa indicazione, con la versione del kernel più aggiornata.
      La compilazione del kernel in proprio consente, attraverso la selezione di alcuni parametri,  un ottimizzazione nell’uso delle potenzialità della propria cpu. Tali potenzialità non possono essere sfruttate a fondo nel kernel di default perchè esso deve poter “girare” su cpu differenti Es. Amd, Intel.

  • giocitta

    Caro PCNoproblem, grazie per questa guida assolutamente perfetta nei comandi (infallibili nel copia/incolla) e nel testo d’accompagnamento: l’obiettivo di ottimizzazione del kernel per il mio Itanium7 è stato centrato con facilità. La guida non ha nulla da invidiare a quelle celebrate di LinuxFromScratch. Penso che, continuando così, con l’aiuto del “padrone di casa”, per molti di noi presto l’accesso a siti come webupd8 sarà un semplice ricordo.

  • Br.Ba.

    …dopo l’ultima riga di comando, l’installazione del kernel compilato mi restituisce un paio di errori
    —————————————————————————————–
    Selezionato il pacchetto linux-image-3.3.1-030301-i7.(Lettura del database… 316754 file e directory attualmente installati.)Estrazione di linux-image-3.3.1-030301-i7 (da linux-image-3.3.1-030301-i7_3.3.1-030301.201204021435_amd64.deb)…Done.Selezionato il pacchetto linux-headers-3.3.1-030301-i7.Estrazione di linux-headers-3.3.1-030301-i7 (da linux-headers-3.3.1-030301-i7_3.3.1-030301.201204021435_amd64.deb)…Selezionato il pacchetto linux-headers-3.3.1-030301.Estrazione di linux-headers-3.3.1-030301 (da linux-headers-3.3.1-030301_3.3.1-030301.201204021435_all.deb)…Configurazione di linux-image-3.3.1-030301-i7 (3.3.1-030301.201204021435)…Running depmod.update-initramfs: deferring update (hook will be called later)Examining /etc/kernel/postinst.d.run-parts: executing /etc/kernel/postinst.d/dkms 3.3.1-030301-i7 /boot/vmlinuz-3.3.1-030301-i7Error! Bad return status for module build on kernel: 3.3.1-030301-i7 (x86_64)Consult /var/lib/dkms/bcmwl/5.100.82.38+bdcom/build/make.log for more information.run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.3.1-030301-i7 /boot/vmlinuz-3.3.1-030301-i7update-initramfs: Generating /boot/initrd.img-3.3.1-030301-i7cryptsetup: WARNING: failed to detect canonical device of /dev/sda5run-parts: executing /etc/kernel/postinst.d/pm-utils 3.3.1-030301-i7 /boot/vmlinuz-3.3.1-030301-i7run-parts: executing /etc/kernel/postinst.d/update-notifier 3.3.1-030301-i7 /boot/vmlinuz-3.3.1-030301-i7run-parts: executing /etc/kernel/postinst.d/zz-update-grub 3.3.1-030301-i7 /boot/vmlinuz-3.3.1-030301-i7Generating grub.cfg …Found background image: pics.jpgFound linux image: /boot/vmlinuz-3.3.1-030301-i7Found initrd image: /boot/initrd.img-3.3.1-030301-i7Found linux image: /boot/vmlinuz-3.0.0-17-genericFound initrd image: /boot/initrd.img-3.0.0-17-genericFound linux image: /boot/vmlinuz-3.0.0-16-genericFound initrd image: /boot/initrd.img-3.0.0-16-genericFound memtest86+ image: /boot/memtest86+.bindoneConfigurazione di linux-headers-3.3.1-030301 (3.3.1-030301.201204021435)…Configurazione di linux-headers-3.3.1-030301-i7 (3.3.1-030301.201204021435)…Examining /etc/kernel/header_postinst.d.run-parts: executing /etc/kernel/header_postinst.d/dkms 3.3.1-030301-i7 /boot/vmlinuz-3.3.1-030301-i7Error! Bad return status for module build on kernel: 3.3.1-030301-i7 (x86_64)Consult /var/lib/dkms/bcmwl/5.100.82.38+bdcom/build/make.log for more information
    —————————————————————————————————————————–
    provo a riavviare e incrocio le dita XD

    BINGOOOOO!!!
    Sembra funzionare tutto e bene!!
    Finalmente riesco ad installare kernel che non sia quello nativo sul mio notebook!!
    Grandioso!
    Kernel compilato per Notebook
    Samsung R540 (i5+Ati Radeon)

    • Pcnoproblem

      Da quello che riesco a vedere sembra ci sia un errore nella compilazione del modulo bcmwl (broadcom wireless). Non capisco perchè ne tenti la compilazione via dkms, riportami le specifiche del tuo sistema.

      • Br.Ba.

        Sembra funzioni tutto invece, compreso il wifi…
        e kernel installato perfettamente al comando uname -r mi restituisce il kernel compilato ad ora non ho problemi ti sto scrivendo in wifi

        cmq questo è quello che mi restituisce al “sudo lshw”
        ===========================================
        escription: Laptop
        product: R540/R580/R780/SA41/E452/E852 (To be filled by O.E.M.)
        vendor: SAMSUNG ELECTRONICS CO., LTD.
        version: 03KP
        serial: ZZKP93DB100561
        width: 64 bits
        capabilities: smbios-2.6 dmi-2.6 vsyscall32
        configuration: boot=normal chassis=laptop family=To be filled by O.E.M. sku=To be filled by O.E.M. uuid=04104B28-81CA-DF11-A480-299D2F941000
        *-core
        description: Motherboard
        product: R540/R580/R780/SA41/E452/E852
        vendor: SAMSUNG ELECTRONICS CO., LTD.
        physical id: 0
        version: 03KP
        serial: 123490EN400015
        slot: To be filled by O.E.M.
        *-firmware
        description: BIOS
        vendor: American Megatrends Inc.
        physical id: 0
        version: 03KP.M008.20100927.LDG
        date: 09/27/2010
        size: 64KiB
        capacity: 1984KiB
        capabilities: pci upgrade shadowing cdboot bootselect edd int13floppy1200 int13floppy720 int13floppy2880 int5printscreen int9keyboard int14serial int17printer acpi usb biosbootspecification
        *-cpu
        description: CPU
        product: Intel(R) Core(TM) i5 CPU M 480 @ 2.67GHz
        vendor: Intel Corp.
        physical id: 4
        bus info: cpu@0
        version: Intel(R) Core(TM) i5 CPU M 480 @ 2.67GHz
        serial: Not Specified
        slot: CPU 1
        size: 1199MHz
        capacity: 4GHz
        width: 64 bits
        clock: 133MHz
        capabilities: x86-64 fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt lahf_lm ida arat tpr_shadow vnmi flexpriority ept vpid cpufreq
        configuration: cores=2 enabledcores=1 threads=2
        *-cache:0
        description: L1 cache
        physical id: 5
        slot: L1-Cache
        size: 32KiB
        capacity: 32KiB
        capabilities: internal write-back unified
        *-cache:1
        description: L2 cache
        physical id: 6
        slot: L2-Cache
        size: 256KiB
        capacity: 256KiB
        capabilities: internal varies unified
        *-cache:2
        description: L3 cache
        physical id: 7
        slot: L3-Cache
        size: 3MiB
        capacity: 3MiB
        capabilities: internal varies unified
        *-memory
        description: System Memory
        physical id: 29
        slot: System board or motherboard
        size: 4GiB
        *-bank:0
        description: SODIMM DDR3 Synchronous 1067 MHz (0,9 ns)
        product: M471B5773CHS-CF8
        vendor: Samsung
        physical id: 0
        serial: 6218A240
        slot: DIMM0
        size: 2GiB
        width: 64 bits
        clock: 1067MHz (0.9ns)
        *-bank:1
        description: SODIMM DDR3 Synchronous 1067 MHz (0,9 ns)
        product: M471B5773CHS-CF8
        vendor: Samsung
        physical id: 1
        serial: 6218A1BB
        slot: DIMM2
        size: 2GiB
        width: 64 bits
        clock: 1067MHz (0.9ns)
        *-pci:0
        description: Host bridge
        product: Core Processor DRAM Controller
        vendor: Intel Corporation
        physical id: 100
        bus info: pci@0000:00:00.0
        version: 02
        width: 32 bits
        clock: 33MHz
        *-pci:0
        description: PCI bridge
        product: Core Processor PCI Express x16 Root Port
        vendor: Intel Corporation
        physical id: 1
        bus info: pci@0000:00:01.0
        version: 02
        width: 32 bits
        clock: 33MHz
        capabilities: pci pm msi pciexpress normal_decode bus_master cap_list
        configuration: driver=pcieport
        resources: irq:40 ioport:d000(size=4096) memory:e0000000-f00fffff
        *-display
        description: VGA compatible controller
        product: Manhattan [Mobility Radeon HD 5400 Series]
        vendor: ATI Technologies Inc
        physical id: 0
        bus info: pci@0000:01:00.0
        version: 00
        width: 64 bits
        clock: 33MHz
        capabilities: pm pciexpress msi vga_controller bus_master cap_list rom
        configuration: driver=fglrx_pci latency=0
        resources: irq:45 memory:e0000000-efffffff memory:f0020000-f003ffff ioport:d000(size=256) memory:f0000000-f001ffff
        *-multimedia
        description: Audio device
        product: Manhattan HDMI Audio [Mobility Radeon HD 5000 Series]
        vendor: ATI Technologies Inc
        physical id: 0.1
        bus info: pci@0000:01:00.1
        version: 00
        width: 64 bits
        clock: 33MHz
        capabilities: pm pciexpress msi bus_master cap_list
        configuration: driver=snd_hda_intel latency=0
        resources: irq:44 memory:f0040000-f0043fff
        *-usb:0
        description: USB Controller
        product: 5 Series/3400 Series Chipset USB2 Enhanced Host Controller
        vendor: Intel Corporation
        physical id: 1a
        bus info: pci@0000:00:1a.0
        version: 05
        width: 32 bits
        clock: 33MHz
        capabilities: pm debug ehci bus_master cap_list
        configuration: driver=ehci_hcd latency=0
        resources: irq:16 memory:f4c08000-f4c083ff
        *-multimedia
        description: Audio device
        product: 5 Series/3400 Series Chipset High Definition Audio
        vendor: Intel Corporation
        physical id: 1b
        bus info: pci@0000:00:1b.0
        version: 05
        width: 64 bits
        clock: 33MHz
        capabilities: pm msi pciexpress bus_master cap_list
        configuration: driver=snd_hda_intel latency=0
        resources: irq:43 memory:f4c00000-f4c03fff
        *-pci:1
        description: PCI bridge
        product: 5 Series/3400 Series Chipset PCI Express Root Port 1
        vendor: Intel Corporation
        physical id: 1c
        bus info: pci@0000:00:1c.0
        version: 05
        width: 32 bits
        clock: 33MHz
        capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
        configuration: driver=pcieport
        resources: irq:16 ioport:c000(size=4096) memory:f3800000-f4bfffff ioport:f5100000(size=2097152)
        *-network
        description: Network controller
        product: BCM4313 802.11b/g/n Wireless LAN Controller
        vendor: Broadcom Corporation
        physical id: 0
        bus info: pci@0000:02:00.0
        version: 01
        width: 64 bits
        clock: 33MHz
        capabilities: pm msi pciexpress bus_master cap_list
        configuration: driver=bcma-pci-bridge latency=0
        resources: irq:16 memory:f3800000-f3803fff
        *-pci:2
        description: PCI bridge
        product: 5 Series/3400 Series Chipset PCI Express Root Port 3
        vendor: Intel Corporation
        physical id: 1c.2
        bus info: pci@0000:00:1c.2
        version: 05
        width: 32 bits
        clock: 33MHz
        capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
        configuration: driver=pcieport
        resources: irq:18 ioport:7000(size=16384) memory:f0200000-f23fffff ioport:f4f00000(size=2097152)
        *-pci:3
        description: PCI bridge
        product: 5 Series/3400 Series Chipset PCI Express Root Port 4
        vendor: Intel Corporation
        physical id: 1c.3
        bus info: pci@0000:00:1c.3
        version: 05
        width: 32 bits
        clock: 33MHz
        capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
        configuration: driver=pcieport
        resources: irq:19 ioport:b000(size=4096) memory:f2400000-f37fffff ioport:f4d00000(size=2097152)
        *-network
        description: Ethernet interface
        product: 88E8040 PCI-E Fast Ethernet Controller
        vendor: Marvell Technology Group Ltd.
        physical id: 0
        bus info: pci@0000:06:00.0
        logical name: eth0
        version: 00
        serial: e8:11:32:0e:32:41
        capacity: 100Mbit/s
        width: 64 bits
        clock: 33MHz
        capabilities: pm msi pciexpress bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd autonegotiation
        configuration: autonegotiation=on broadcast=yes driver=sky2 driverversion=1.30 latency=0 link=no multicast=yes port=twisted pair
        resources: irq:42 memory:f2400000-f2403fff ioport:b000(size=256)
        *-usb:1
        description: USB Controller
        product: 5 Series/3400 Series Chipset USB2 Enhanced Host Controller
        vendor: Intel Corporation
        physical id: 1d
        bus info: pci@0000:00:1d.0
        version: 05
        width: 32 bits
        clock: 33MHz
        capabilities: pm debug ehci bus_master cap_list
        configuration: driver=ehci_hcd latency=0
        resources: irq:23 memory:f4c07000-f4c073ff
        *-pci:4
        description: PCI bridge
        product: 82801 Mobile PCI Bridge
        vendor: Intel Corporation
        physical id: 1e
        bus info: pci@0000:00:1e.0
        version: a5
        width: 32 bits
        clock: 33MHz
        capabilities: pci subtractive_decode bus_master cap_list
        *-isa
        description: ISA bridge
        product: Mobile 5 Series Chipset LPC Interface Controller
        vendor: Intel Corporation
        physical id: 1f
        bus info: pci@0000:00:1f.0
        version: 05
        width: 32 bits
        clock: 33MHz
        capabilities: isa bus_master cap_list
        configuration: latency=0
        *-storage
        description: SATA controller
        product: 5 Series/3400 Series Chipset 4 port SATA AHCI Controller
        vendor: Intel Corporation
        physical id: 1f.2
        bus info: pci@0000:00:1f.2
        version: 05
        width: 32 bits
        clock: 66MHz
        capabilities: storage msi pm ahci_1.0 bus_master cap_list
        configuration: driver=ahci latency=0
        resources: irq:41 ioport:e070(size=8) ioport:e060(size=4) ioport:e050(size=8) ioport:e040(size=4) ioport:e020(size=32) memory:f4c06000-f4c067ff
        *-serial UNCLAIMED
        description: SMBus
        product: 5 Series/3400 Series Chipset SMBus Controller
        vendor: Intel Corporation
        physical id: 1f.3
        bus info: pci@0000:00:1f.3
        version: 05
        width: 64 bits
        clock: 33MHz
        configuration: latency=0
        resources: memory:f4c05000-f4c050ff ioport:e000(size=32)
        *-generic
        description: Signal processing controller
        product: 5 Series/3400 Series Chipset Thermal Subsystem
        vendor: Intel Corporation
        physical id: 1f.6
        bus info: pci@0000:00:1f.6
        version: 05
        width: 64 bits
        clock: 33MHz
        capabilities: pm msi bus_master cap_list
        configuration: driver=intel ips latency=0
        resources: irq:18 memory:f4c04000-f4c04fff
        *-pci:1
        description: Host bridge
        product: Core Processor QuickPath Architecture Generic Non-core Registers
        vendor: Intel Corporation
        physical id: 101
        bus info: pci@0000:3f:00.0
        version: 02
        width: 32 bits
        clock: 33MHz
        *-pci:2
        description: Host bridge
        product: Core Processor QuickPath Architecture System Address Decoder
        vendor: Intel Corporation
        physical id: 102
        bus info: pci@0000:3f:00.1
        version: 02
        width: 32 bits
        clock: 33MHz
        *-pci:3
        description: Host bridge
        product: Core Processor QPI Link 0
        vendor: Intel Corporation
        physical id: 103
        bus info: pci@0000:3f:02.0
        version: 02
        width: 32 bits
        clock: 33MHz
        *-pci:4
        description: Host bridge
        product: Core Processor QPI Physical 0
        vendor: Intel Corporation
        physical id: 104
        bus info: pci@0000:3f:02.1
        version: 02
        width: 32 bits
        clock: 33MHz
        *-pci:5
        description: Host bridge
        product: Core Processor Reserved
        vendor: Intel Corporation
        physical id: 105
        bus info: pci@0000:3f:02.2
        version: 02
        width: 32 bits
        clock: 33MHz
        *-pci:6
        description: Host bridge
        product: Core Processor Reserved
        vendor: Intel Corporation
        physical id: 106
        bus info: pci@0000:3f:02.3
        version: 02
        width: 32 bits
        clock: 33MHz
        *-scsi:0
        physical id: 1
        logical name: scsi0
        capabilities: emulated
        *-disk
        description: ATA Disk
        product: Hitachi HTS54505
        vendor: Hitachi
        physical id: 0.0.0
        bus info: scsi@0:0.0.0
        logical name: /dev/sda
        version: PB4O
        serial: 101219PBN403M7H6KDLE
        size: 465GiB (500GB)
        capabilities: partitioned partitioned:dos
        configuration: ansiversion=5 signature=000c9751
        *-volume:0
        description: EXT4 volume
        vendor: Linux
        physical id: 1
        bus info: scsi@0:0.0.0,1
        logical name: /dev/sda1
        logical name: /
        version: 1.0
        serial: a9d32836-49ca-44ad-ad85-a3407abe2f50
        size: 461GiB
        capacity: 461GiB
        capabilities: primary bootable journaled extended_attributes large_files huge_files dir_nlink recover extents ext4 ext2 initialized
        configuration: created=2012-02-06 15:50:52 filesystem=ext4 lastmountpoint=/ modified=2012-04-04 18:38:59 mount.fstype=ext4 mount.options=rw,relatime,errors=remount-ro,user_xattr,acl,barrier=1,data=ordered mounted=2012-04-09 21:21:35 state=mounted
        *-volume:1
        description: Extended partition
        physical id: 2
        bus info: scsi@0:0.0.0,2
        logical name: /dev/sda2
        size: 3944MiB
        capacity: 3944MiB
        capabilities: primary extended partitioned partitioned:extended
        *-logicalvolume
        description: Linux swap / Solaris partition
        physical id: 5
        logical name: /dev/sda5
        capacity: 3944MiB
        capabilities: nofs
        *-scsi:1
        physical id: 2
        logical name: scsi1
        capabilities: emulated
        *-cdrom
        description: DVD-RAM writer
        product: CDDVDW TS-L633J
        vendor: TSSTcorp
        physical id: 0.0.0
        bus info: scsi@1:0.0.0
        logical name: /dev/cdrom1
        logical name: /dev/cdrw1
        logical name: /dev/dvd1
        logical name: /dev/dvdrw1
        logical name: /dev/scd0
        logical name: /dev/sr0
        version: SC01
        capabilities: removable audio cd-r cd-rw dvd dvd-r dvd-ram
        configuration: ansiversion=5 status=nodisc
        *-power UNCLAIMED
        description: To Be Filled By O.E.M.
        product: To Be Filled By O.E.M.
        vendor: To Be Filled By O.E.M.
        physical id: 1
        version: To Be Filled By O.E.M.
        serial: To Be Filled By O.E.M.
        capacity: 32768mWh
        *-network
        description: Wireless interface
        physical id: 2
        logical name: wlan0
        serial: 00:1b:b1:a6:1c:a1
        capabilities: ethernet physical wireless
        configuration: broadcast=yes driver=brcmsmac driverversion=3.3.1-030301-i7 firmware=N/A ip=10.0.0.117 link=yes multicast=yes wireless=IEEE 802.11bgn
        ==============================================================

  • Millalino

    complimenti x la guida, ce ne vorrebbero dieci al giorno di post cosi.

  • pitrino83

    scusate ragazzi,ma a voi quanto è durata la fase di compilazione?ho un core i3 ed e già 10 min. che compila

  • pitrino83

    scusate ragazzi,ma a voi quanto è durata la fase di compilazione?ho un core i3 ed e già 40 min. che compila

    • Br.Ba.

      Io con il mio i5 circa un’oretta…
      …lascialo fare anche se sembra che non lavori…

      • pitrino83

         si,in effetti c’è voluto circa  1 oretta.pensavo che stasse andando male qualcosa.
        cmq ho riavviato e l’unico problema e la scheda wireless,ma non sempre,solo ogni tanto,strano.

  • Alessio

    Compilato in meno di 10 minuti con un i7, ma ora non riesco a connettermi al mio router col wifi =( Qualcuno mi può dare una mano??

    • Pcnoproblem

       Sembra esistano problemi con alcuni chip Wireless Atheros, ho modificato il kernel e lo sto ricompilando in questo momento. Il tempo di provare il tutto e vi posterò sia i link al kernel già pacchettizzato sia la guida aggiornata. Un saluto.

  • Alessio

    Ok grazie Pcnoproblem 😀 Ho proprio una scheda atheros…Aspetto fiducioso, potresti anche postare come si “installa” il kernel gia pacchettizzato?? Grazie 10000000000 in anticipo 😀

  • Alfred888

    perfetto, funziona anche sul mio samsung r540. ma gli 8 giga di files creati durante la compilazione possono essere eliminati mantenendo solo le immagini del kernel?

    • Pcnoproblem

       Ciao Alfred888 i comandi che ho postato servivano allo scopo:
      rm linux

      rm -rf linux-3.3.1Rimuovono il kernel compilato lasciando solo i pacchetti creati.

      • Alfred888

        ..infatti quando ho dato quei comandi, il terminale è stato ad elaborare per qualche minuto e pensavo che stesse eliminando quei files, comunque li ho cancellati a mano lasciando solo le immagini del kernel. l’unica cosa strana è che all’avvio non appare più la schermata di caricamento di kubuntu, ma solo lo sfondo azzurro fino alla schermata del login. quando spengo invece appare una schermata vuota completamente gialla, ma non credo che sia qualcosa di problematico. grazie per la risposta!

  • Tano

    io non ho ancora capito una cosa, ma questa compilazione la si può fare anche su ubuntu oneiric? io attualmente ho ubuntu 11.10 64bit con kernel di default arrivato automaticamente da aggiornamenti software alla versione 3.0.0.19, su un portatile core i7 alienware M11xR3 con 8 giga di ram a bordo. Mi va tutto benissimo, conviene veramente questo passaggio al kernel compilato 3.3.1 oppure non avrei giovamenti particolari, ma anzi comprometto la stabilità del sistema?

    • Pcnoproblem

      Io sono attualmente su Kubuntu 12.04 e kernel 3.3.1, non ho problemi.

      • Tano

        si ma io vorrei sapere se avendo ubuntu 11.10 oneiric si possa fare questa procedura….nessuno lo ha compilato su un sistema simile al mio??

  • Carra82

    Ciao inserendo il comando per la compilazione mi restituisce questo errore

    michele@michele-HP-Pavilion-dv5-Notebook-PC:~/Kernel_3.3.1/linux$ time skipabi=true skipmodule=true no_dumpfile=yes fakeroot debian/rules binary-i7 Preparing i7…install -d /home/michele/Kernel_3.3.1/linux-3.3.1/debian/build/build-i7touch /home/michele/Kernel_3.3.1/linux-3.3.1/debian/build/build-i7/ubuntu-build[ “false” != ‘true’ ] && true || rsync -a –exclude debian –exclude debian.master –exclude debian.master * /home/michele/Kernel_3.3.1/linux-3.3.1/debian/build/build-i7cat /home/michele/Kernel_3.3.1/linux-3.3.1/debian.master/config/config.common.ubuntu /home/michele/Kernel_3.3.1/linux-3.3.1/debian.master/config/amd64/config.common.amd64 /home/michele/Kernel_3.3.1/linux-3.3.1/debian.master/config/amd64/config.flavour.i7 | sed -e ‘s/.*CONFIG_VERSION_SIGNATURE.*/CONFIG_VERSION_SIGNATURE=”Ubuntu 3.3.1-030301.201204021435-i7 3.3.1″/’ > /home/michele/Kernel_3.3.1/linux-3.3.1/debian/build/build-i7/.configfind /home/michele/Kernel_3.3.1/linux-3.3.1/debian/build/build-i7 -name “*.ko” | xargs rm -fmake ARCH=x86_64 CROSS_COMPILE= KERNELVERSION=3.3.1-030301-i7 CONFIG_DEBUG_SECTION_MISMATCH=y KBUILD_BUILD_VERSION=”201204021435″ LOCALVERSION= localver-extra= O=/home/michele/Kernel_3.3.1/linux-3.3.1/debian/build/build-i7 -j1 silentoldconfig prepare scriptsmake[1]: Entering directory `/home/michele/Kernel_3.3.1/linux-3.3.1’make[3]: Nessuna operazione da eseguire per “/home/michele/Kernel_3.3.1/linux-3.3.1/Makefile”.  HOSTCC  scripts/basic/fixdep/home/michele/Kernel_3.3.1/linux-3.3.1/scripts/basic/fixdep.c:1:0: error: bad value (corei7) for -march= switch/home/michele/Kernel_3.3.1/linux-3.3.1/scripts/basic/fixdep.c:1:0: error: bad value (corei7) for -mtune= switchmake[5]: *** [scripts/basic/fixdep] Errore 1make[4]: *** [scripts_basic] Errore 2make[3]: *** [sub-make] Errore 2make[2]: *** [silentoldconfig] Errore 2make[1]: *** [sub-make] Error 2make[1]: Leaving directory `/home/michele/Kernel_3.3.1/linux-3.3.1’make: *** [/home/michele/Kernel_3.3.1/linux-3.3.1/debian/stamps/stamp-prepare-tree-i7] Errore 2real 0m1.272suser 0m0.320ssys 0m0.110s

    qualcuno sa darmi una soluzione

    Grazie in anticipo per l’aiuto

    • Pcnoproblem

       Ciao, che versione di Ubuntu hai ?

      • Carra82

        Natty Narwhal

        • Carra82

          è possibile che cambiando le variabili march e mtune da corei7 a core2 mi abbia risolto il problema? meglio aspettare una risposta prima di installare i deb dato che è stato un cambiamento che ho deciso di fare molto casualmente però per ora sembra faccia qualcosa. ti farò risapere

  • Carra82

    Dimenticavo ho un Intel Core(TM)2 Duo CPU T5800
    Magari non è supportato, non sono esperto di compilazioni

  • ZeroC@ll

    Ciao una domanda, ho un netbook asus 1201N con processore Atom 330 (dualcore @1,6Ghz ) questa guida non và bene?
    Grazie e complimenti per quello che fai…

    • Pcnoproblem

       La guida va bene dovresti modificare solo le seguenti righe di codice

      sed -i s/= gcc/= gcc -march=corei7 -mtune=corei7/g Makefile

      sed -i s/= g++/= g++ -march=corei7 -mtune=corei7/g Makefile

      sed -i s/core2/corei7/g arch/x86/Makefile

      sed -i s/core2/corei7/g arch/x86/Makefile_32.cpu
      in questo modo:

      sed -i s/= gcc/= gcc -march=atom -mtune=atom/g Makefile

      sed -i s/= g++/= g++ -march=atom -mtune=atom/g Makefile

      sed -i s/core2/atom/g arch/x86/Makefile

      sed -i s/core2/atom/g arch/x86/Makefile_32.cpu
      ottenendo un kernel ottimizzato per Processori Intel Atom

  • Rel00

    Ciao…..dopo aver dato il comando sudo apt-get build-dep linux…ottengo il seguente output di errore :

    Lettura elenco dei pacchetti… FattoGenerazione albero delle dipendenze       Lettura informazioni sullo stato… FattoScelto “linux-meta” come pacchetto sorgente al posto di “linux”E: Impossibile trovare un pacchetto sorgente per linux-metaQualcuno saprebbe aiutarmi ?Grazie in anticipo 🙂

  • Br.Ba.

    Ciao credo che il kernel precedentemente compilato mi porti dei problemi post avanzamento a Precise pangoline…
    Come posso risolvere??
    O come posso installare il kernel di default di precise pangoline per capire se è quello il mio problema??

    é possibile compilare l’ultimo kernel 3.4 per precise pangoline???

No more articles