Dr.Fuzzy Δημοσ. 22 Οκτωβρίου 2012 Δημοσ. 22 Οκτωβρίου 2012 Χτίζω ένα 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 να φέρει αυτό το όνομα;
martinoff Δημοσ. 22 Οκτωβρίου 2012 Δημοσ. 22 Οκτωβρίου 2012 όταν είσαι μέσα στο 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 του
Dr.Fuzzy Δημοσ. 22 Οκτωβρίου 2012 Μέλος Δημοσ. 22 Οκτωβρίου 2012 Κάτσε να γίνω πιο συγκεκριμένος. Μέσα στο 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 του ;;;;
martinoff Δημοσ. 22 Οκτωβρίου 2012 Δημοσ. 22 Οκτωβρίου 2012 >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
Dr.Fuzzy Δημοσ. 24 Οκτωβρίου 2012 Μέλος Δημοσ. 24 Οκτωβρίου 2012 Κάτι δεν πήγε καλά...έφτιαξα τα .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. Ελπίζω να μη λέω βλακείες!
martinoff Δημοσ. 24 Οκτωβρίου 2012 Δημοσ. 24 Οκτωβρίου 2012 (επεξεργασμένο) >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 ? Επεξ/σία 24 Οκτωβρίου 2012 από martinoff
Dr.Fuzzy Δημοσ. 24 Οκτωβρίου 2012 Μέλος Δημοσ. 24 Οκτωβρίου 2012 κάτσε το apt-get install linux-source-3.2.0 μου φέρνει το 3.2.0. Πως μπορώ να πάρω το 3.2.0-32; Αντιλαμβάνομαι ότι το -32 είναι το 3.2.0 με κάποιες αλλαγές ή λέω βλακείες; Για το 3.6.3....δεν το σκέφτηκα καν!
martinoff Δημοσ. 24 Οκτωβρίου 2012 Δημοσ. 24 Οκτωβρίου 2012 > 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
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα