Προς το περιεχόμενο

Custom Kernel


Dr.Fuzzy

Προτεινόμενες αναρτήσεις

Χτίζω ένα custom kernel:

 

 

>fakeroot debian/rules clean

DEB_BUILD_OPTIONS=parallel=2 AUTOBUILD=1 NOEXTRAS=1 fakeroot debian/rules binary-generic

 

που τελικά μου παράγει 2 .deb αρχεία, π.χ., linux-image.3.2.0-32.deb και linux-headers.3.2.0-32.deb.

 

 

Και τώρα η ψυχαναγκαστική ερώτηση!!!

 

Γίνεται να ορίσω το όνομα των παραγόμενων .deb αρχείων στο DEB_BUILD_OPTIONS, δηλαδή, π.χ., linux-image-3.2.0-32-vaio, προκειμένου όταν θα τα κάνω Install το entry στο grub menu να φέρει αυτό το όνομα;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

όταν είσαι μέσα στο directory του source

 

>fakeroot make-kpkg --append-to-version -vaio --revision=2 kernel_image kernel-headers modules-image

 

 

--append-to-version=θα δει τον κερνελ που κατέβασες και θα βάλει το όνομά του

-vaio=ότι θες να λέει από πίσω

--revision=για να ξέρεις ποια έκδοση είναι (linux-3-6-2)

kernel-image = kernel

kernel-headers=headers

modules-image=θα σου φτιάξει και τα modules για nvidia,fglxr,vbox κτλ

 

 

υπόψιν το debian βάζει πάρα πολλά patch στον kernel του

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Κάτσε να γίνω πιο συγκεκριμένος. Μέσα στο directory του kernel source που με ενδιαφέρει, κάνω patch για να δημιουργήσω τον custom kernel που θέλω, π.χ., είμαι στο linux-source-3.2.0-32, κάνω apply το patch μου, patch -p1 < [path to the patch].

 

Επειδή σε έχασα! --append-to-version, δεν το έπιασα, θα δει μόνο του τι, ας πούμε στο συγκεκριμένο παράδειγμα. --revision, το παίρνει από μόνο του ή το δηλώνω εγώ, π.χ., 3.2.0-32

 

υπόψιν το debian βάζει πάρα πολλά patch στον kernel του

 

;;;;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

>Linux deb 3.6.2-deb #1 SMP Fri Oct 12 23:36:47 EEST 2012 x86_64 GNU/Linux

αυτό είναι το δικό μου home-server χτισμένο με την εντολή που σου έδωσα

 

το --append-to-version ναι βλέπει τον κέρνελ που έχεις κατεβάσει και βάζει το όνομα, εδώ 3-6-2

το --revision το βάζεις εσύ, ένα νούμερο ότι θες αλλά να βάζεις του κερνελ για να μην μπερδευτείς

 

τα patch είναι δίπλα σε κάθε kernel εδώ http://kernel.org/ και βάζεις αυτά που θες http://www.kernel.org/diff/diffview.cgi?file=/pub/linux/kernel/v3.0/patch-3.6.3.bz2

εγώ πχ βάζω bfs,alsa,hda_intel που με ενδιαφέρουν

τα patch του debian μπορείς να τα πάρεις από sid, experimental όποιο έχει το kernel που σε ενδιαφέρει, χωρίς να είναι απαραίτητο

μια χαρά θα είναι και χωρίς τα debian-patch

 

με την ευκαιρία πρέπει να περάσω τον 3.6.3 που έγινε stable :)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Κάτι δεν πήγε καλά...έφτιαξα τα .deb αλλά όταν τα κάνω Install στο reboot κολλάει (kernel panic!). Anyway, με

sudo apt-get source linux-image-$(uname -r)

 

μου κατεβάζει ένα linux_3.2.0.tar.gz, ένα diff.gz, .dsc και ένα sub-directory linux-3.2.0.

Ωραία, δεδομένου ότι εγώ θέλω να κάνω apply το patch μου στο 3.2.0-32, πως κάνω apply ta diffs προκειμένου να δημιουργήσω απο το 3.2.0 το 3.2.0-32;

 

Εκτός και αν υπάρχει τρόπος να κατεβάσω κατευθείαν τα sources για 3.2.0-32.

 

Ελπίζω να μη λέω βλακείες!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

>apt-get install linux-source-3.2.0

 

>
cd /usr/src
tar xjf linux-source-3.2.0.tar.bz2
cd linux-source-3.2

 

>ls /boot/config*

 

>cp /boot/config-bla-bla-3.2.0 /path/tou/kernel-source/.config

 

>patch -p1 < file.patch

 

>
make nconfig

F6=load config κάνεις load το config του kernel που έχεις ήδη και είσαι σίγουρος ότι θα παίξει

F7=save config

 

 

 

>make-kpkg clean

 

>export CONCURRENCY_LEVEL=X --> στο Χ βάζεις των αριθμό πυρήνων +1, πχ για διπύρηνο βάζεις 3

 

>fakeroot make-kpkg --append-to-version -vaio --revision=2 --initrd kernel_image kernel-headers modules-image

 

προσθέτω και την --initrd για να φτιάξει και initramfs

 

μπορεί να δεις διάφορες ερωτήσεις για νέες επιλογές που έχουν προστεθεί στο καινούριο κερνελ, τα αφήνεις default, enter,enter,enter

 

σε περίπτωση που θες να ξαναχτίσεις η έχεις χτίσει πριν, κάνεις οπωσδήποτε πρώτα

 

>make clean 

 

 

edit: αλλά γιατί θες συγκεκριμένα τον 3,2 και δεν κατεβάζεις κατευθείαν τον 3.6.3 ?

Επεξ/σία από martinoff
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

κάτσε το

apt-get install linux-source-3.2.0

 

μου φέρνει το 3.2.0. Πως μπορώ να πάρω το 3.2.0-32; Αντιλαμβάνομαι ότι το -32 είναι το 3.2.0 με κάποιες αλλαγές ή λέω βλακείες;

 

Για το 3.6.3....δεν το σκέφτηκα καν!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

>
apt-get update
apt-cache search linux-source

 

για να δεις τι είναι διαθέσιμο στα repo σου, πχ το δικό μου έχει

 

>deb@deb:~$ sudo aptitude search linux-source
p linux-source - Linux kernel source (meta-package)
p linux-source-2.6 - Linux kernel source (dummy package)
p linux-source-3.0 - Linux kernel source for version 3.0 with Debian patches
deb@deb:~$

το 3,2 θα σου κατεβάσει το τελευταίο που πέρασε στα ρεπο οπότε ναι μάλλον θα είναι ο 3.2.0-32

 

αλλά πραγματικά ότι και να θες να κάνεις καν το με το τελευταίο stable και μην ασχολήσε με του debian

εκτός αν μιλάμε για κάνα άγριο bug που μπορείς να το δεις στο mailing list του sid η experimental δεν ξέρω που έχουν τον 3.6.3

 

κατεβάζεις το linux-3.6.3 στο /home σου, extract tar xjvf linux-bla-bla, cd ~/linux-bla-bla, patch όποια θες και η εντολές που σου έδωσα πιο πάνω και είσαι έτοιμος

>
cd ../
sudo dpkg -i *.deb
sudo update-grub
reboot

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...