Freebsd όπου βρίσκεται το αρχείο διαμόρφωσης του πυρήνα. Μεταγλώττιση του πυρήνα και του κόσμου του FreeBSD από την πηγή. Χρησιμοποιώντας το βοηθητικό πρόγραμμα freebsd-update

Αυτό το άρθρο περιγράφει τον τρόπο μεταγλώττισης του πυρήνα του FreeBSD. Με τη σωστή διαμόρφωση, το μέγεθος του πυρήνα μπορεί να μειωθεί σημαντικά.

Για να μεταγλωττίσετε τον πυρήνα σας, πρέπει να εγκαταστήσετε τις πηγές του πυρήνα (src- Πηγή για τα πάντα εκτός από την κρυπτογράφηση). Εάν είναι ήδη εγκατεστημένοι, τότε μεταβείτε στον κατάλογο /usr/src/sys (πυρήνας FreeBSD) Εάν δεν έχετε εγκαταστήσει τις πηγές πυρήνα, μπορείτε να τις εγκαταστήσετε μέσω sysinstall. Υποθέτουμε ότι έχετε εγκαταστήσει τις πηγές πυρήνα.

Ως χρήστης root, μεταβείτε στο φάκελο /usr/src/sys/i386/conf.

# cd /usr/src/sys/i386/conf

Αντιγράψτε το αρχείο GENERIC, για παράδειγμα στο mykernel. Θα επεξεργαστούμε το αρχείο που προκύπτει.

Εάν έχετε μια μηχανή Pentium4, τότε σας συμβουλεύω να σχολιάσετε αμέσως τις γραμμές:

Παραθέτω
cpu I386_CPU
cpu I486_CPU
cpu I586_CPU

αφήστε το μηχάνημά μας να συντονιστεί συγκεκριμένο επεξεργαστήκαι δεν ψεκάζεται σε κάθε είδους χάλια ;)

Μπορείτε να απενεργοποιήσετε συσκευές που δεν χρησιμοποιούνται, γεγονός που θα μειώσει το μέγεθος του πυρήνα και, κατά συνέπεια, το φορτίο στον επεξεργαστή. Μπορείτε να δείτε ποιες συσκευές έχετε χρησιμοποιώντας την εντολή dmesg μετά την εκκίνηση του υπολογιστή.

Μπορείτε επίσης να προσθέσετε συσκευές που δεν υποστηρίζονται από προεπιλογή στον πυρήνα. Οι συσκευές περιγράφονται με περισσότερες λεπτομέρειες στο αρχείο LINT για τον κλάδο FreeBSD 4.x και στο αρχείο NOTES για τον κλάδο FreeBSD 5.x.

Αφού επεξεργαστούμε το αρχείο μας, μπορούμε να ξεκινήσουμε τη μεταγλώττιση του.

Θα χρειαστεί να εκτελέσουμε τις παρακάτω εντολές:

Αν όλα πήγαν καλά, τότε το μόνο που χρειάζεται να κάνουμε είναι να κάνουμε επανεκκίνηση.

P.S. Πριν πειραματιστείτε, σας συμβουλεύω να αποθηκεύσετε έναν κανονικό πυρήνα, για παράδειγμα με το όνομα kernel.good, και στη συνέχεια, εάν ο νέος μας πυρήνας δεν φορτωθεί, θα καθορίσουμε τον kernel.good για την εκκίνηση αντί για τον kernel.old. Προτείνω να γίνει αυτό γιατί όταν μεταγλωττίσουμε ξανά τον πυρήνα, ο kernel.old μας θα αντικατασταθεί, για παράδειγμα, με έναν πυρήνα που δεν λειτουργεί και δεν θα μπορούμε να κάνουμε καθόλου εκκίνηση.

Π.Π.Σ. Διατηρώντας έναν καλό πυρήνα που λειτουργεί:

Για FreeBSD 4.x - εντολή cp /kernel /kernel.good

Για FreeBSD 5.x - εντολή cp -R /boot/kernel /boot/kernel.good

Δεύτερος τρόπος ενημέρωσης του πυρήνα:

Μεταβείτε στον κατάλογο /usr/src.

Συναρμολογήστε τον πυρήνα.

# make buildkernel KERNCONF=MYKERNEL

Εγκαταστήστε έναν νέο πυρήνα.

# make installkernel KERNCONF=MYKERNEL

Σημείωση: Αυτή η μέθοδος κατασκευής απαιτεί την παρουσία όλων των αρχείων συστήματος προέλευσης. Αν μόλις εγκαταστήσατε αρχεία πηγήςπυρήνες και μετά χρησιμοποιήστε παραδοσιακό τρόπο, όπως περιγράφεται παραπάνω.

MYKERNEL - αρχείο ρυθμίσεωνο πυρήνας σας, ο οποίος για το i386 βρίσκεται στο φάκελο /usr/src/sys/i386/conf. Εάν δεν καθορίσετε την παράμετρο KERNCONF, θα δημιουργηθεί ο πυρήνας GENERIC.

Σήμερα θα μάθουμε πώς να συναρμολογούμε τον πυρήνα και τον κόσμο (βασικό εκτελέσιμα αρχεία, βιβλιοθήκες κ.λπ.) FreeBSD από παρόμοιους κωδικούς. Νωρίτερα στην ανάρτηση PostgreSQL: δημιουργία από πηγή και ρύθμιση για Linux, ανακαλύψαμε γιατί πρέπει να μπορείτε να δημιουργήσετε κάτι από την πηγή. Τα κύρια σενάρια είναι η βελτιστοποίηση για συγκεκριμένο υλικό και η λήψη του πιο πρόσφατου υλικού απευθείας από τον κύριο κλάδο. Επιπλέον, μπορείτε να προσαρμόσετε τον πυρήνα για να ταιριάζει στις συγκεκριμένες ανάγκες σας - επιλέξτε έναν προγραμματιστή, απενεργοποιήστε το IPv6, αφαιρέστε την υποστήριξη για περιττό υλικό κ.λπ. Τέλος, εάν ξαφνικά σκοπεύετε να γίνετε committer για τον πυρήνα του FreeBSD, η γνώση του τρόπου συναρμολόγησης αυτού του πυρήνα δεν θα είναι περιττή.

Αρνηση:Πολλά από αυτά που γράφονται παρακάτω ενδέχεται να μην είναι πλέον σχετικά από τη στιγμή που θα το διαβάσετε. Πριν ακολουθήσετε τις οδηγίες που δίνονται, θα ήταν καλή ιδέα να ελέγξετε πρώτα το εγχειρίδιό σας. Σημειώστε επίσης ότι παρακάτω μιλάμε αποκλειστικά για τη συναρμολόγηση του πυρήνα και του κόσμου από την πηγήκαι τη διαδικασία δυάδικοςΟι ενημερώσεις συστήματος περιγράφονται στη σημείωση Σημείωση για την ενημέρωση του πυρήνα και του κόσμου του FreeBSD.

Προετοιμασία του περιβάλλοντος

Κατά τη σύνταξη αυτής της σημείωσης, χρησιμοποίησα τον ακόλουθο δίσκο εγκατάστασης:

FreeBSD-10.2-RELEASE-amd64-disc1.iso

Δεν είχα επιπλέον υλικό στο χέρι, επομένως όλα τα πειράματα πραγματοποιήθηκαν στο VirtualBox. Το VirtualBox επιλέχθηκε αντί του Vagrant καθώς θα χρειαζόμασταν πρόσβαση στην οθόνη του συστήματος. Στο VirtualBox, δημιουργήθηκαν δύο προσαρμογείς στις ρυθμίσεις δικτύου - ένας NAT και ένας Host Only. Το πρώτο είναι απαραίτητο για το σύστημα επισκεπτών να έχει πρόσβαση στο Διαδίκτυο. Το δεύτερο θα σας επιτρέψει να έχετε πρόσβαση στο σύστημα επισκέπτη από το σύστημα υποδοχής μέσω SSH.

Μετά την εγκατάσταση του συστήματος, εγκαταστήστε τα πακέτα git-lite, vim-lite, tree, bash, sudo, επεξεργαστείτε το /usr/local/etc/sudoers και, στη συνέχεια, αλλάξτε το κέλυφος χρήστη:

sudo chsh -s /usr/local/bin/bash eax

Στο ~/.gitconfig προσθέτουμε:


τηλεειδοποιητής = λιγότερο -S

Προσωπικά μου αρέσει επίσης να έχω το συνηθισμένο htop στο σύστημα:

cd/usr/posts
sudo portsnap fetch απόσπασμα
cd sysutils/htop
sudo make -DBATCH εγκατάσταση καθαρό

Για λεπτομέρειες σχετικά με την αρχική εγκατάσταση συστήματος και τη διαχείριση πακέτων στο FreeBSD, δείτε τις σημειώσεις Χρήση του FreeBSD στην επιφάνεια εργασίας, Έκδοση 2.0 και Διαχείριση πακέτων στο FreeBSD με χρήση του βοηθητικού προγράμματος pkg, αντίστοιχα.

Συναρμολόγηση του πυρήνα

Ο τρόπος κατασκευής του πυρήνα του FreeBSD ελέγχεται από πολλά αρχεία διαμόρφωσης.

Μερικές από τις ρυθμίσεις βρίσκονται στο /etc/make.conf. Αυτό το αρχείο επηρεάζει τη δημιουργία των θυρών, τον κόσμο, τον πυρήνα του FreeBSD και γενικά όλα τα προγράμματα που είναι γραμμένα σε C. Εδώ μπορείτε να καθορίσετε την CPU για την οποία γίνεται η κατασκευή, σημαίες βελτιστοποίησης κ.λπ. Μια λίστα με όλες τις διαθέσιμες επιλογές μπορεί να βρεθεί στο /usr/share/examples/etc/make.conf και στο man make.conf. Παράδειγμα /etc/make.conf:

# χρησιμοποιήστε Clang 3.7 αντί για την προεπιλεγμένη 3.4
CC=/usr/local/bin/clang37
CXX=/usr/local/bin/clang++37
CPP=/usr/local/bin/clang-cpp37

# βελτιστοποιήστε τον κώδικα για την CPU που χρησιμοποιείται στο μηχάνημα
CPUTYPE?=εγγενής

# σημαίες κατά τη μεταγλώττιση κώδικα σε C και C++
CFLAGS+=-O2 -σωλήνας
CXXFLAGS+=-O2 -σωλήνας

Υπάρχει επίσης το /etc/src.conf, το οποίο έχει ελαφρώς διαφορετικές ρυθμίσεις και επηρεάζει μόνο τον πυρήνα και τον κόσμο. Δείτε το man src.conf για λεπτομέρειες. Παράδειγμα /etc/src.conf:

CPUTYPE?=εγγενής
CFLAGS+=-O2 -σωλήνας
COPTFLAGS+=-O2 -σωλήνας

Τέλος, υπάρχει επίσης ένα αρχείο ρυθμίσεων για τον ίδιο τον πυρήνα. Θα συζητηθεί αργότερα.

Αν στο εγκατάσταση του FreeBSDΕάν επιλέξατε το πλαίσιο ελέγχου "εγκατάσταση όλων των πηγών", τότε οι πηγές του πυρήνα και του κόσμου θα βρίσκονται στον κατάλογο /usr/src. Πληροφορίες σχετικά με τον υποκατάλογο σε ποιον υποκατάλογο μπορείτε να βρείτε στο Εγχειρίδιο προγραμματιστή και στο αρχείο README.

# αντί για head, υποδείξτε το υποκατάστημα ή την ετικέτα που σας ενδιαφέρει
cd / usr/ src && sudo svn co http:// svn.freebsd.org/ base/ head/ ./

Οι ρυθμίσεις με τις οποίες είναι χτισμένος ο πυρήνας βρίσκονται στο αρχείο:

/usr/src/sys/(αρχιτεκτονική)/conf/(config)

Το όνομα της αρχιτεκτονικής εξαρτάται από την CPU σας. Κατά κανόνα, αυτό είναι είτε i386 είτε amd64. Η προεπιλεγμένη διαμόρφωση πυρήνα στο σύστημα ονομάζεται ΓΕΝΙΚΗ. Μπορείτε να το αντιγράψετε και να το ονομάσετε, για παράδειγμα, MYKERNEL.

cd sys/ amd64/ conf
sudo cp GENERIC MYKERNEL

Η διαμόρφωση είναι καλά τεκμηριωμένη. Για παράδειγμα, μπορείτε να απενεργοποιήσετε την υποστήριξη για IPv6 και IPSec σχολιάζοντας δύο γραμμές:

#options INET6
#optionsIPSEC

Σπουδαίος!Το CURRENT περιλαμβάνει από προεπιλογή τον μηχανισμό μάρτυρα, σχεδιασμένο για αναζήτηση αδιεξόδων. Λάβετε υπόψη ότι μπορεί να παράγει τρομακτικά ίχνη στοίβας στην κονσόλα, μερικά από τα οποία είναι σφάλματα και θα πρέπει να αναφέρονται στη λίστα αλληλογραφίας του freebsd-current@ και μερικά από τα οποία είναι αρκετά ακίνδυνα. Αναφέρεται επίσης ότι αυτός ο μηχανισμός είναι αρκετά αργός και επομένως μπορεί να θέλετε να τον απενεργοποιήσετε.

Κατασκευάζουμε τον πυρήνα με τις ρυθμίσεις μας:

cd ../ ../ ..
sudo make -j4 buildkernel KERNCONF =MYKERNEL

Πριν εγκαταστήσετε τον πυρήνα, δημιουργήστε ένα αντίγραφο ασφαλείας του τρέχοντος:

sudo cp -r /boot/kernel/ /boot/kernel.good

Κατά την εγκατάσταση ενός νέου πυρήνα εφεδρικόςδημιουργείται αυτόματα, αλλά αυτό το αντίγραφο θα αντικατασταθεί όταν επόμενοςεγκατάσταση. Αφού δημιουργήσουμε ένα μη αυτόματο αντίγραφο ασφαλείας, θα έχουμε πάντα ένα 100% λειτουργικό GENERIC, από το οποίο μπορούμε να κάνουμε εκκίνηση εάν προκύψουν προβλήματα.

Εγκατάσταση νέου πυρήνα:

sudo make installkernel KERNCONF =MYKERNEL

Μετά την εγκατάσταση, ο πυρήνας θα βρίσκεται στον κατάλογο /boot/kernel και το αντίγραφο ασφαλείας τρέχον πυρήναθα βρίσκεται στο /boot/kernel.old.

Αντί για μερικά βήματα buildkernel και installkernel, θα μπορούσατε επίσης να χρησιμοποιήσετε τις εντολές:

sudo make -j4 πυρήνας KERNCONF =MYKERNEL INSTKERNNAME =kernel.test
sudo nextboot -k kernel.test

Αυτό θα μας πει να βάλουμε τον πυρήνα στο /boot/kernel.test και να τον χρησιμοποιήσουμε μία φορά την επόμενη φορά που θα εκκινήσει. Εάν όλα πάνε καλά, μετά από μια επανεκκίνηση, το /boot/kernel.test μπορεί να μετονομαστεί σε /boot/kernel. Αυτή η επιλογή μπορεί να είναι πιο βολική εάν δεν υπάρχει φυσική πρόσβαση στο μηχάνημα.

Επανεκκίνηση:

επανεκκίνηση sudo

Μετά τη φόρτωση του συστήματος, ελέγξτε την έκδοση του πυρήνα:

ονόματι -α

Πρέπει να δούμε κάτι τέτοιο

FreeBSD vbox 11.0-CURRENT FreeBSD 11.0-CURRENT #0 6a8922d(master): Τρ.
28 Φεβρουαρίου 13:40:05 MSK 2016 root@vbox:/usr/obj/usr/src/sys/MYKERNEL amd64

Εάν κάτι πάει στραβά, κατά την εκκίνηση του συστήματος, μπορείτε να επιλέξετε εκκίνηση από το kernel.old στο μενού (πατώντας τον αριθμό 5). Μπορείτε επίσης να επιλέξετε "Escape to a loader prompt" (πατώντας τον αριθμό 3) και να επιλέξετε οποιονδήποτε πυρήνα, για παράδειγμα:

πυρήνας εκκίνησης.καλό

Με αυτόν τον τρόπο, ακόμα κι αν ξαφνικά μπλοκάρουμε τον πυρήνα, υπάρχει ένα εφεδρικό αλεξίπτωτο.

Συνδυάζοντας τον κόσμο

Ο κόσμος από το FreeBSD 10 είναι σχεδόν βέβαιο ότι δεν θα λειτουργήσει καλύτερα με τον πυρήνα του FreeBSD 11. Επομένως, είναι λογικό να ενημερώσετε αμέσως τον κόσμο μαζί με την ανακατασκευή του πυρήνα του συστήματος.

Σπουδαίος!Η σύνταξη του κόσμου μπορεί να χρειαστεί τόσα πολλάχρόνο, ειδικά αν στο VirtualBox δώσατε στην εικονική μηχανή μόνο έναν πυρήνα. Εάν χρησιμοποιείτε πραγματικό μηχάνημα, θα χρειαστείτε φυσική πρόσβαση σε αυτό. Θα χρειαστεί επίσης να συγχωνεύσετε με μη αυτόματο τρόπο πολλές ρυθμίσεις παραμέτρων, να επιβεβαιώσετε τη διαγραφή πολλών αρχείων και, στη συνέχεια, (!) να εγκαταστήσετε ξανά όλα τα εγκατεστημένα πακέτα και να δημιουργήσετε ξανά τα πάντα εγκατεστημένες θύρες. Ίσως, αντί να συναρμολογήσετε έναν νέο κόσμο, θα είναι πιο εύκολο για εσάς να παροπλίσετε προσωρινά το μηχάνημα, να το φορέσετε νέο σύστημακαι διαμορφώστε όλα όσα χρειάζεστε από πάνω. Ή χρησιμοποιήστε τον ήδη αναφερόμενο μηχανισμό δυάδικοςενημερώσεις. Μου φαίνεται ότι η ανοικοδόμηση του κόσμου είναι μια διαδικασία περισσότερο για τους προγραμματιστές του FreeBSD παρά για τους διαχειριστές διακομιστών μάχης.

Λοιπόν, ας πάμε στον κατάλογο με τις πηγές:

cd/usr/src

Καθάρισμα προσωρινά αρχεία, το οποίο θα μπορούσε να παραμείνει από την προηγούμενη κατασκευή:

sudo rm -rf /usr/obj

Συνδυάζοντας τον κόσμο:

sudo make -j4 buildworld

Για να ελαχιστοποιήσετε τους κινδύνους που σχετίζονται με την ενημέρωση εφαρμογών που ήδη εκτελούνται και εκτελούνται, συνιστάται η εναλλαγή του λειτουργικού συστήματος σε λειτουργία ενός χρήστη:

# σε ένα παράθυρο VirtualBox ή δίπλα στο διακομιστή
τερματισμός λειτουργίας sudo τώρα

Τώρα προσαρτούμε το σύστημα αρχείων (έχω ZFS):

zfs set μόνο για ανάγνωση =off zroot
zfs mount -a

Εάν χρησιμοποιείτε UFS τότε.

Υπάρχουν τόνοι άρθρων στο Διαδίκτυο, ό,τι θέλετε, συλλέξτε τον πυρήνα, θα γράψω τι χρησιμοποιώ και γιατί ναι, όσοι δεν συμφωνούν, γράψτε παρακάτω :)

1. Αντιγράφουμε τον καλό μας πυρήνα, τι κι αν... (ναι, ξέρω ότι κατά την εγκατάσταση ο παλιός θα μεταφερθεί στον kernel.old)

# cp -R kernel/ kernel.good/

2. Συλλογή πληροφοριών: τι είδους ελεγκτές έχουμε στη μητέρα μας και τι είδους υλικό;

# cat /var/run/dmesg.boot Δείτε ποιοι ελεγκτές είναι χρήσιμοι για εμάς # pciconf -lv

3. Ελέγξτε εάν οι πηγαίοι κώδικες είναι στη θέση τους

# ls /sys

3.0 Εάν δεν υπάρχουν, τα παίρνουμε είτε από το δίσκο είτε από το Διαδίκτυο:
3.0a Από δίσκο

Προσάρτηση /cdrom cd /cdrom ls ; θα πρέπει να δείτε φακέλους στο δίσκο cd src/ ./install.sh όλα τα cd /usr/src/ umount /cdrom

3.0b Εάν κατά τύχη έχουμε Internet, αλλά όχι δίσκο, τότε (στην περίπτωσή μου Frya 8.3):

Cd /usr/ports/devel/subversion make config-recursive svn checkout http://svn.freebsd.org/base/releng/8.3/ /usr/src grep -A 2 "TYPE="" /usr/src/sys /conf/newvers.sh Θα πρέπει να εμφανίζεται κάτι σαν αυτό TYPE="FreeBSD" REVISION="8.3" BRANCH="RELEASE-p4"

Αν θέλουμε να ενημερώσουμε ποτέ τους πηγαίους κώδικες, τότε:

Ενημέρωση Svn /usr/src/

Χρειαζόμαστε επίσης έναν διακομιστή VPN, pppoe με συμπίεση MPPE και κρυπτογράφηση, λοιπόν
3.1 τράβηγμα http://mavhome.dp.ua/MPPC/mppc-1.0.tgz

Wget http://mavhome.dp.ua/MPPC/mppc-1.0.tgz

3.2 Αποσυσκευάστε στο /usr/src/sys/net

Cd /usr/src/sys/net tar -xvf /usr/home/username/mppc-1.0.tgz

4. Αντιγράψτε τη γενική διαμόρφωση (θα την ξαναγράψουμε και θα έχουμε τον δικό μας πυρήνα)
Ένα κομμάτι θεωρίας
Τα αρχεία διαμόρφωσης βρίσκονται στον κατάλογο /sys/»arch»/conf. Ο κατάλογος περιέχει πολλά αρχεία, τα πιο σημαντικά από τα οποία είναι:
DEFAULTS Αυτή είναι μια λίστα ρυθμίσεων και συσκευών που είναι ενεργοποιημένες από προεπιλογή για αυτήν την αρχιτεκτονική.
ΓΕΝΙΚΟ Αυτό το αρχείο περιέχει τη διαμόρφωση του τυπικού πυρήνα.
GENERIC.hints Αυτό είναι ένα αρχείο υπόδειξης που στη συνέχεια εγκαθίσταται ως /boot/device.hints. Αυτό το αρχείο περιέχει τις πληροφορίες διαμόρφωσης που απαιτούνται για τη διαμόρφωση συσκευών υλικού παλαιού τύπου.
MAC Αυτό το αρχείο διαμόρφωσης πυρήνα παρέχει υποστήριξη για τα υποχρεωτικά στοιχεία ελέγχου πρόσβασης, ένα σύστημα ελέγχου πρόσβασης πολλαπλών επιπέδων που χρησιμοποιείται σε περιβάλλοντα υψηλής ασφάλειας. Αυτό το αρχείο ρυθμίσεων απαιτείται μόνο εάν χρησιμοποιείτε MAC.
ΣΗΜΕΙΩΣΕΙΣ Αυτή είναι μια ολοκληρωμένη διαμόρφωση πυρήνα για μια δεδομένη αρχιτεκτονική υλικού, συμπεριλαμβανομένων όλων των χαρακτηριστικών που αφορούν την πλατφόρμα. Τα χαρακτηριστικά ανεξάρτητα από την πλατφόρμα βρίσκονται στο /usr/src/sys/conf/NOTES.

# cd /usr/src/sys/i386/conf # mkdir /root/kernels # cp GENERIC /root/kernels/MYKERNEL # ln -s /root/kernels/MYKERNEL

5. Ας δούμε από τι αποτελείται ο πυρήνας μας και ας επεξεργαστούμε το γενικό στην πορεία
Παράμετροι πυρήνα:
CPUΑυτή η ετικέτα υποδεικνύει ποιοι τύποι επεξεργαστών υποστηρίζονται από τον πυρήνα. Η διαμόρφωση πυρήνα για την πλατφόρμα υλικού amd64/EM64T περιλαμβάνει η μόνη είσοδοςυποδεικνύοντας τον τύπο του επεξεργαστή.
ταυτότηταπεριέχει το όνομα του πυρήνα, αυθαίρετη συμβολοσειρά
επιλογές μακιγιάζ Αυτή η γραμμήπεριέχει οδηγίες για λογισμικό, που χτίζει τον πυρήνα. Η πιο κοινή επιλογή είναι DEBUG=-g, η οποία λέει στον μεταγλωττιστή να συμπεριλάβει πληροφορίες εντοπισμού σφαλμάτων στον πυρήνα.
επιλογέςΟι καταχωρήσεις αυτού του τύπου περιγράφουν λειτουργίες πυρήνα που δεν σχετίζονται άμεσα με το υλικό. Αυτό περιλαμβάνει συστήματα αρχείων, πρωτόκολλα δικτύουκαι προγράμματα εντοπισμού σφαλμάτων ενσωματωμένα στον πυρήνα.
συσκευέςΟι καταχωρήσεις αυτού του τύπου περιγράφουν συσκευές ή προγράμματα οδήγησης συσκευών περιέχουν οδηγίες που περιγράφουν τον τρόπο αλληλεπίδρασης του πυρήνα με ορισμένες συσκευές.

Δεν χρειαζόμαστε τον πυρήνα που θα υποστηρίξει την πρώτη κάνναβη, οπότε την αφήνουμε:

Cpu I686_CPU ident MYKERNEL # επιλογές εντοπισμού σφαλμάτων πυρήνα (πιθανώς δεν είναι χρήσιμες στην πραγματική ζωή, αλλά εάν αντιληφθείτε ένα σφάλμα # και θέλετε να το αναφέρετε στους προγραμματιστές, θα σας φανούν χρήσιμες) 4PF: Συσκευή pf συσκευή pflog επιλογές pfsync Επιλογές ALTQ ALTQ_CBQ Επιλογές ALTQ_RED Επιλογές ALTQ_RIO Επιλογές ALTQ_HFSC Επιλογές ALTQ_CDNR Επιλογές ALTQ_NOPCC Επιλογές ALTQ_NOPCC Επιλογές ALTQ_DEBUG #4RAPHETRA PHSOGET_RAPHET Επιλογές NETGRAPH_TEE Επιλογές NETGRAPH_BPF Επιλογές NETGRAPH_IFACE Επιλογές NETGRAPH_KSO CKET Επιλογές NETGRAPH_PPP Επιλογές NETGRAPH_PPTPGRE Επιλογές NETGRAPH_TCPMSS NETGRAPH_VJC #polling ΜΗΝ το κάνετε αυτό, τώρα 2012!! #options DEVICE_POLLING #options HZ=1000 # ή 2000 ή 4000 όσο περισσότερο, τόσο πιο γρήγορη είναι η ροή της κυκλοφορίας #Επιλογές πολλαπλών πινάκων δρομολόγησης ROUTETABLES=3 # # Καθορίζει τον αριθμό των περιγραφικών στο σύστημα # (0 σημαίνει ότι ορίζει "αυτόματο πιλότο" :) )) maxusers 0 # ULE χρονοπρογραμματιστής (διανέμει νήματα) επιλογές SCHED_ULE # Η δυνατότητα Preemption βελτιώνει την αποτελεσματικότητα # multitasking του FreeBSD. επιλογές PREEMPTION # InterNETworking επιλογές IPv4 INET # IPv6 πρωτόκολλα επικοινωνίας Επιλογές IPv6 INET6 # χωρίς αυτό το IPv6 δεν λειτουργεί επιλογές SCTP # αρχείο Σύστημα FreeBSDεπιλογές FFS # Αυτή η επιλογή ενεργοποιεί την τεχνολογία Soft Updates στον πυρήνα, η οποία αυξάνει # την ταχύτητα εγγραφής σε δίσκους. Παρόλο που αυτή η τεχνολογία είναι ενεργοποιημένη # στον πυρήνα, πρέπει να ενεργοποιηθεί ανά μονάδα δίσκου. επιλογές SOFTUPDATES # σας επιτρέπουν να ορίσετε λεπτομερείς επιλογές δικαιωμάτων αρχείων Το UFS_ACL # παρέχει υποστήριξη για ευρετηρίαση καταλόγου, που βελτιώνει την ταχύτητα # εργασίας με καταλόγους που περιέχουν χιλιάδες αρχεία. επιλογές Το UFS_DIRHASH # ενεργοποιεί τις επιλογές ημερολογίου UFS με βάση το gjournal. Το πρόγραμμα εγκατάστασης χρησιμοποιεί # root σύστημα αρχείωνσυσκευή μνήμης (MD). Εάν χρησιμοποιείτε # συστήματα χωρίς δίσκο, θα χρειαστείτε υποστήριξη NFS ως διαμέρισμα ρίζας #. Εάν εγκαθιστάτε το FreeBSD στο τυπικός υπολογιστής- # με σκληρό δίσκο και πληκτρολόγιο, τότε δεν θα χρειαστείτε όλες αυτές τις παραμέτρους. #options NFSCLIENT #Network Filesystem Client #options NFSSERVER #Network Filesystem Server #Αυτές οι δύο επιλογές παρέχουν υποστήριξη συστήματος αρχείων δικτύου (NFS). # Η παράμετρος NFSCLIENT θα σας επιτρέψει να προσαρτήσετε διαμερίσματα που εξυπηρετούνται από # άλλον υπολογιστή στο δίκτυο και η παράμετρος NFSSERVER θα σας επιτρέψει να παρέχετε πρόσβαση # στα διαμερίσματα σας για άλλους υπολογιστές. # Network Lock Manager #options NFSLOCKD # NFS χρησιμοποιήσιμο ως /, απαιτεί NFSCLIENT #options NFS_ROOT # MSDOS Υποστήριξη συστήματος αρχείων για επιλογές fat partitions MSDOSFS # ISO 9660 Υποστήριξη συστήματος αρχείων για επιλογές κατατμήσεων CD CD9660 # Process filesystem (απαιτείται σύστημα αρχείων PRODOFSF) PSEUSF Επιλογές πλαισίου ψευδο-αρχείων PSEUDOFS # GUID Πίνακες διαμερισμάτων. επιλογές GEOM_PART_GPT # Παρέχει επιλογές σήμανσης GEOM_LABEL #συμβατό με παλαιότερες εκδόσεις # Επιλογές BSD 4.3 TTY συμβατές (sgtty) Επιλογές COMPAT_FREEBSD4 Επιλογές COMPAT_FREEBSD5 Επιλογές COMPAT_FREEBSD5 COMPAT_FREEBSD6 Επιλογές COMPAT_FREEBSDE πριν από τη φόρτωση #BSDE προκειμένου ο ελεγκτής SCSI er κατάφερε # να εντοπίσει όλες τις συσκευές που είναι συνδεδεμένες σε αυτό. #options SCSI_DELAY=5000 #options KTRACE # ktrace(1) επιλογές υποστήριξης STACK # stack(9) support # Αυτές οι επιλογές παρέχουν υποστήριξη για κοινόχρηστη μνήμη και επικοινωνία μεταξύ διαδικασιών τύπου System V. Πολλά προγράμματα διαχείρισης βάσεων δεδομένων βασίζονται σε αυτή τη δυνατότητα. #Αυτή η επιλογή παρέχει υποστήριξη για κοινόχρηστη μνήμη System V #Η πιο κοινή χρήση αυτής είναι η επέκταση XSHM στο X, την οποία #πολλές εφαρμογές με ένταση γραφικών θα #χρησιμοποιήσουν αυτόματα για να βελτιώσουν την ταχύτητα. Εάν χρησιμοποιείτε το X, αυτή η επιλογή θα είναι #χρειάζεται. επιλογές SYSVSHM # Κοινόχρηστη μνήμη τύπου SYSV # Υποστήριξη μηνυμάτων System V Αυτή η επιλογή προσθέτει μόνο μερικές εκατοντάδες byte στον πυρήνα. Επιλογές SYSVMSG # Ουρές μηνυμάτων τύπου SYSV # Υποστήριξη για σηματοφόρους του System V Δεν είναι πολύ συχνά χρησιμοποιούμενο # χαρακτηριστικό, αλλά προσθέτει μόνο μερικές εκατοντάδες byte στον πυρήνα. επιλογές SYSVSEM # Επιλογές σηματοφόρου τύπου SYSV P1003_1B_SEMAPHORES # Σηματοφόροι τύπου POSIX # Προστέθηκαν επεκτάσεις σε πραγματικό χρόνο το 1993 POSIX®. # Συγκεκριμένες Εφαρμογέςαπό τη συλλογή που χρησιμοποιούνται, για παράδειγμα StarOffice™. επιλογές _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B επιλογές επεκτάσεων σε πραγματικό χρόνο PRINTF_BUFR_SIZE=128 # Αποτρέψτε την παρεμβολή της εξόδου printf. #options KBD_INSTALL_CDEV # εισάγετε μια καταχώριση CDEV στο /dev για επιλογές πληκτρολογίων USB HWPMC_HOOKS # Απαραίτητα άγκιστρα πυρήνα για επιλογές hwpmc(4) AUDIT # Επιλογές ελέγχου συμβάντων ασφαλείας MAC # TrustedBSD Επιλογές πλαισίου MAC FLOWTABLE # per-cpu #KernelhookS Routing Επιλογές αγκίστρων DTrace INCLUDE_CONFIG_FILE # Συμπεριλάβετε αυτό το αρχείο στον πυρήνα # επιλογές για επιλογές εντοπισμού σφαλμάτων KDB # Επιλογές κώδικα που σχετίζονται με τον εντοπισμό σφαλμάτων πυρήνα KDB_TRACE # Εκτύπωση ίχνους στοίβας για πανικό # Για να δημιουργήσετε έναν πυρήνα SMP, χρειάζονται οι επόμενες δύο γραμμές επιλογές SMP # Symmetric MultiProcessor Kernel συσκευή apic # I/O APIC (μόνο i386) # ενεργοποίηση Symmetric # Multiprocessing (SMP) σε πυρήνες που έχουν σχεδιαστεί για εκτέλεση στην αρχιτεκτονική i386: # Η παράμετρος SMP δίνει εντολή στον πυρήνα να προγραμματίσει διεργασίες # σε πολλαπλές CPU και η επιλογή apic παρέχει I Υποστήριξη /O για # πυρήνες SMP. Το FreeBSD διανέμεται με υποστήριξη SMP, ενεργοποιημένη από προεπιλογή. # Η συσκευή apic επιτρέπει τη χρήση του συνόλου I/O APIC για τη διανομή διακοπών. Μπορεί να χρησιμοποιηθεί τόσο με πυρήνες ενός επεξεργαστή όσο και με πολλαπλούς επεξεργαστές (για τον τελευταίο απαιτείται apic). # Συσκευή ελέγχου συχνότητας CPU cpufreq # Υποστήριξη διαύλου. συσκευή acpi συσκευή eisa συσκευή pci # Θα πρέπει να αφαιρεθούν εάν το σύστημα πραγματικά δεν διαθέτει τέτοιους διαύλους. # Υπάρχει μεγάλος αριθμός συστημάτων «χωρίς υποστήριξη παραδοσιακές συσκευές"(χωρίς παλαιού τύπου), # στο οποίο το λεωφορείο ISA είναι κρυμμένο κάπου μέσα. # Μονάδες δισκέτας #συσκευή fdc # Συσκευές ATA και ATAPI Συσκευές ΑΤΑ και ΑΤΑΠΙ συσκευή ataraid συσκευής # ATA δίσκοι μονάδες δίσκου συσκευή ataraid # ATA RAID μονάδες δίσκου συσκευής atapicd # ATAPI μονάδες CDROM #συσκευή atapifd # μονάδες δισκέτας ATAPI #αταπιστής συσκευής # Επιλογές μονάδων δίσκου ταινίας ATAPI ATA_STATIC_ID αρίθμηση # Στη στατική λειτουργία, ο ελεγκτής αντιμετωπίζεται ως ένα κομμάτι υλικού, αντίστοιχα # έχουμε 2 κανάλια των 2 συσκευών 0-1 και 2-3, αντίστοιχα PrMaster PrSlave # και SecMaster SecSlave για τα τηγανητά ad0 ad1 ad2 ad3. και αν μετακινήσετε τη βίδα από το # PriMaster στο SecMaster, τότε οι τόμοι σε αυτήν από το ad0 θα γίνουν ad2. # Εάν απενεργοποιήσετε το ATA_STATIC_ID, τότε λαμβάνουμε δυναμική αρίθμηση όχι από # κανάλια και συσκευές, αλλά από συσκευές, π.χ. βίδες. Είναι πιο εύκολο να το θέσουμε ως εξής: # αν είχαμε μία βίδα PriMaster και απενεργοποιούσαμε αυτήν την επιλογή, τότε μετά την # εκκίνηση ενός νέου πυρήνα, ο αριθμός των κατατμήσεων δεν θα αλλάξει. Τώρα, αν αλλάξετε, # χρησιμοποιώντας ένα καλώδιο ή βραχυκυκλωτήρες, τη βίδα στη θέση οποιασδήποτε άλλης, για παράδειγμα SecSlave, # θα παραμείνει ad0! Είναι η μόνη στο αυτοκίνητο;) # Κατά συνέπεια, προσθέτοντας μια δεύτερη βίδα, το σύστημα θα καθορίσει την προτεραιότητά τους # σύμφωνα με τη σειρά σύνδεσης # Για παράδειγμα, θα ενεργοποιήσουμε 2 βίδες στο PriSlave και στο SecMaster # Θα πάρουμε PriSlave - ad0 και SecMaster - ad1. # Ελεγκτές SCSI (σχολίασε ολόκληρη την ενότητα) #συσκευή ahb #οικογένεια EISA AHA1742 #συσκευή ahc # AHA2940 και ενσωματωμένες συσκευές AIC7xxx #επιλογές AHC_REG_PRETTY_PRINT # Εκτύπωση πεδίων bit μητρώου στην έξοδο σφαλμάτων #. Προσθέτει ~128k στο πρόγραμμα οδήγησης. #device ahd # AHA39320/29320 και ενσωματωμένες συσκευές AIC79xx #options AHD_REG_PRETTY_PRINT # Εκτύπωση πεδίων bit καταχωρητή στην έξοδο εντοπισμού σφαλμάτων #. Προσθέτει ~215k στο πρόγραμμα οδήγησης. #Γραμμές όπως *_REG_PRETTY_PRINT ενεργοποιούν τη λειτουργία εντοπισμού σφαλμάτων για τα αντίστοιχα προγράμματα οδήγησης. # Περιφερειακά SCSI απομένουν επειδή χρειάζονται για USB) scbus συσκευής # Δίαυλος SCSI (απαιτείται για SCSI) συσκευή ch # Συσκευή αλλαγής πολυμέσων SCSI da # Συσκευή άμεσης πρόσβασης (δίσκοι) sa # Διαδοχική πρόσβαση (κασέτα κ.λπ.) συσκευή cd # Δίαυλος συσκευής CD # Passthrough συσκευή (άμεση πρόσβαση SCSI) συσκευή ses # SCSI Environmental Services (και SAF-TE) # atkbdc0 ελέγχει τόσο το πληκτρολόγιο όσο και τη συσκευή ποντικιού PS/2 atkbdc # Συσκευή ελεγκτή πληκτρολογίου AT atkbd # Συσκευή πληκτρολογίου AT psm # PS/2 συσκευή ποντικιού kbdmux # Συσκευή πολυπλέκτη πληκτρολογίου vga # VGA κάρτα βίντεοΠρόγραμμα οδήγησης συσκευή splash # Η οθόνη splash και η προφύλαξη οθόνης υποστηρίζουν # syscons είναι το προεπιλεγμένο πρόγραμμα οδήγησης κονσόλας, που μοιάζει με κονσόλα SCO # κονσόλα συστήματος- χωρίς αυτό το στοιχείο όλα λειτουργούν, αλλά τίποτα δεν εμφανίζεται στην # τοπική οθόνη :)) συσκευή sc συσκευής agp # υποστήριξη πολλών chipset AGP # Υποστήριξη διαχείρισης ενέργειας (δείτε ΣΗΜΕΙΩΣΕΙΣ για περισσότερες επιλογές) #device apm # Προσθήκη αναστολής/συνέχισης υποστήριξης για το i8254 . συσκευή pmtimer # PCCARD (PCMCIA) υποστήριξη # PCMCIA και υποστήριξη γέφυρας cardbus για κάθε περίπτωση #συσκευή cbb # cardbus (yenta) bridge #device pccard # PC Card (16-bit) bus #device cardbus # CardBus (32-bit) bus # Σειριακές θύρες (COM) συσκευή uart # Γενικό πρόγραμμα οδήγησης UART # Συσκευή παράλληλης θύρας ppc # Διεπαφή παράλληλης θύρας σε ISA. συσκευή ppbus # Δίαυλος παράλληλης θύρας (απαιτείται) συσκευή lpt # Εκτυπωτής #στήριγμα συσκευής # TCP/IP σε παράλληλη #συσκευή ppi # I/O γενικής χρήσης ("θύρα geek") + IEEE1284 I/O. #device vpo # Πρόγραμμα οδήγησης Iomega Zip. Απαιτεί scbus και da. # NIC Ethernet PCI. Άφησα μόνο μία :) συσκευή em # Intel PRO/1000 Gigabit EthernetΟικογένεια # Ψευδοσυσκευές. # Αυτή είναι μια διεπαφή loopback που επιτρέπει στο σύστημα να επικοινωνεί με τον εαυτό του # μέσω υποδοχών δικτύου χρησιμοποιώντας πρωτόκολλα δικτύου. βρόχος συσκευής # Δικτυακός βρόχος # Αυτή η συσκευή παρέχει ψευδο τυχαίους αριθμούς, απαιτείται σε # λειτουργίες κρυπτογράφησης και σημαντικά προγράμματα όπως παιχνίδια. Το FreeBSD # παρέχει υποστήριξη για μια ποικιλία πηγών τυχαίων αριθμών, οι οποίες συνδυάζονται # σε συσκευές ψευδοτυχαίων αριθμών # /dev/random /dev/urandom. Το device random # έχει πολλές λειτουργίες για συγκεκριμένες συσκευές, επομένως το FreeBSD # το αντιπροσωπεύει ως συσκευή. Αφήστε αυτή τη γραμμή! αιθέρας συσκευής # Συσκευή υποστήριξης Ethernet vlan # 802.1Q Υποστήριξη VLAN # λογική σήραγγα πακέτων. Χρησιμοποιείται από διάφορα # προγράμματα για την ανταλλαγή πακέτων με τον πυρήνα. Μια τέτοια ψευδο-συσκευή χρειάζεται # για την υποστήριξη PPP χρησιμοποιώντας μέσα εκτός του πυρήνα (userland PPP) - # κανονικές συνδέσεις μέσω τηλεφώνου. συσκευή συντονισμού # Σήραγγα πακέτων. # αυτό είναι ένα ψευδοτερματικό. Όταν συνδέεστε σε ένα σύστημα μέσω telnet ή # SSH, το FreeBSD πρέπει να μπορεί να παρακολουθεί περιόδους σύνδεσης τερματικού, # να εκτυπώνει χαρακτήρες στην οθόνη και να διαβάζει την είσοδο του πληκτρολογίου. Το σύστημα # αντιμετωπίζει την απομακρυσμένη σύνδεση ως κανονική φυσική οθόνη και πληκτρολόγιο. # Ένα ψευδοτερματικό είναι μια ψευδο-συσκευή # που μοιάζει με τερματικό που σχετίζεται με μια σύνδεση. συσκευή pty # Συμβατότητα τύπου BSD pseudo ttys # σας επιτρέπει να αποθηκεύετε αρχεία στη μνήμη. Αυτό είναι πολύ βολικό για την οργάνωση πολύ # γρήγορη αποθήκευσηπροσωρινά δεδομένα. Για τους περισσότερους (αλλά όχι όλους) # διακομιστές Διαδικτύου, οι δίσκοι στη μνήμη είναι απλώς μια μη παραγωγική σπατάλη RAM. Επιπλέον, οι δίσκοι στη μνήμη μπορούν να χρησιμοποιηθούν # για την προσάρτηση και πρόσβαση σε εικόνες δίσκου. συσκευή md # Μνήμη "δίσκοι" συσκευής gif # IPv6 και IPv4 tunneling συσκευή πίστη # IPv6-to-IPv4 αναμετάδοση (μετάφραση) υλικολογισμικό συσκευής # μονάδα υποβοήθησης υλικολογισμικού # Η συσκευή `bpf" ενεργοποιεί το φίλτρο πακέτων Berkeley. # Να γνωρίζετε το διαχειριστικό συνέπειες της ενεργοποίησης αυτής της επιλογής # Σημειώστε ότι απαιτείται "bpf" για τη συσκευή DHCP. Συσκευή διεπαφής USB ehci # EHCI PCI->Διασύνδεση USB (USB 2.0) συσκευή usb # Δίαυλος USB (απαιτείται) #συσκευή udbp # Συσκευές USB Double Bulk Pipe Συσκευή uhid # Συσκευές "Human Interface Devices" ukbd # Συσκευή πληκτρολογίου ulpt # Συσκευή εκτυπωτή umass # Δίσκοι/Μαζική αποθήκευση - Απαιτεί scbus και ums συσκευής # Ποντίκι #συσκευή urio # Diamond Rio 500 MP3 player # USB σειριακές συσκευές συσκευή u3g # μόντεμ 3G που βασίζονται σε USB (Option, Huawei, Sierra)

6. Ας περάσουμε στα είδη

# cd /usr/src

7. Συναρμολόγηση του πυρήνα

# make buildkernel KERNCONF=MYKERNEL

8. Εγκαταστήστε τον πυρήνα

# make installkernel KERNCONF=MYKERNEL

10. Εάν το συλλέξατε εξ αποστάσεως, περιμένετε ή κάντε λήψη του νέου πυρήνα μία φορά

App0.Συμπλήρωμα σιδήρου
Εάν έχετε συσκευή υλικούπου δεν υποστηρίζεται από τον πυρήνα GENERIC, κοιτάξτε στο αρχείο NOTES. Ορισμένες από τις δυνατότητες που αναφέρονται σε αυτό το αρχείο δεν έχουν σαφή σκοπό, αλλά εάν έχετε ορισμένες Συμπεριλήψεις, εξαιρέσεις και επεκτάσεις συσκευής πυρήνα, τότε μπορείτε να καταλάβετε ποια καταχώρηση αντιστοιχεί σε αυτήν.
Ο μηχανισμός διαμόρφωσης πυρήνα του FreeBSD έχει δύο ενδιαφέροντα χαρακτηριστικά που μπορούν να κάνουν τη συντήρηση του πυρήνα ευκολότερη: χωρίς λέξεις-κλειδιά και περιλαμβάνει λέξεις-κλειδιά. Η συνδεσιμότητα σάς επιτρέπει να προσθέτετε ξεχωριστό αρχείοστη διαμόρφωση του πυρήνα. Για παράδειγμα, εάν έχετε μια διαμόρφωση πυρήνα που περιγράφεται ως "GENERIC with a pair πρόσθετες ρυθμίσεις", θα μπορούσατε να συμπεριλάβετε μια GENERIC διαμόρφωση χρησιμοποιώντας τη δήλωση include: include GENERIC Έτσι, για παράδειγμα, εάν θέλετε να δημιουργήσετε έναν πυρήνα που να έχει GENERIC λειτουργικότητα, αλλά να υποστηρίζει και τον μικροεπεξεργαστή Soekris, θα μπορούσατε να δημιουργήσετε μια διαμόρφωση που να αποτελείται από παρακάτω γραμμές:
ident MYKERNEL
περιλαμβάνουν ΓΕΝΙΚΟ
επιλογές CPU_SOEKRIS
μπορεί επίσης να χρησιμοποιηθεί
κόμβος
καμία επιλογή

Εφαρμογή 1.Εφάπαξ λήψη ενός νέου πυρήνα:
1. Αντιγράψτε τον συναρμολογημένο πυρήνα στον φάκελο δοκιμής του καλού πυρήνα στο φάκελο του πυρήνα

# mv /boot/kernel /boot/kernel.test # mkdir /boot/kernel # cp /boot/kernel.good/* /boot/kernel/

2. Κατά την επόμενη εκκίνηση, το δοκιμαστικό θα φορτωθεί μία φορά, αν σας αρέσει, κάντε το κύριο

Nextboot -k kernel.test

3. Αν όλα πήγαιναν ομαλά

# mv /boot/kernel /boot/kernel.previous # mv /boot/kernel.test /boot/kernel

Εάν όχι, ζητήστε από το προσωπικό συντήρησης να το απενεργοποιήσει και να το ενεργοποιήσει :)

Εφαρμογή 2.ΠΡΟΒΛΗΜΑΤΑ:
Όταν το σύστημα εκτοξεύει μια τρομερή κατάρα: "Η σειρά κλειδώματος αντιστρέφεται"(αίτημα κλειδώματος ανακλήθηκε), Οι κύριες πηγές προβλημάτων είναι ACPI, PAE (μη απενεργοποιημένο), SMP και αίτημα κλειδώματος ανακλήθηκε.
http://ipv4.sources.zabbadoz.net/freebsd/lor.html

υπαινιγμός. απικ. 0. disabled=1. απενεργοποίηση σε έναν ήδη συναρμολογημένο πυρήνα
kern. smp. disabled=1 απενεργοποίηση σε έναν ήδη χτισμένο πυρήνα
υπαινιγμός. acpi. 0. disabled=1 disable σε ήδη ενσωματωμένο πυρήνα

App3. DEBUG όταν πανικοβάλλεστε
1.Ο πυρήνας πρέπει να είναι με
makeoptions DEBUG=-g
επιλογές KDB
επιλογές KDB_TRACE
επιλογές DDB # απενεργοποιήστε την αυτόματη επανεκκίνηση
2.Λήψη ανίχνευσης
cd /boot/kernel.panicked/
# kgdb kernel.symbols /var/crash/vmcore.0
Backtrace
3. Επαναλάβετε τον πανικό σε λειτουργία για έναν παίκτη
mount -ar
# /etc/rc.d/dumpon start

Εφαρμογή 4.ΦΟΡΤΩΤΗΣ
Αν μπερδέψαμε κάτι και ο διακομιστής δεν ξεκινήσει, τότε χρησιμοποιώντας τον φορτωτή μπορούμε να φορτώσουμε τον παλιό πυρήνα
lsdev - λίστα συσκευών που είναι διαθέσιμες για λήψη
εμφάνιση - την τιμή των μεταβλητών φόρτωσης από το αρχείο conf
set - αλλάξτε την παράμετρο εκκίνησης
lsmod - μονάδες και πυρήνας που φορτώνονται στη μνήμη
unload - ξεφορτώστε εντελώς τον πυρήνα και τα modules από τη μνήμη
εκκίνηση – συνεχίστε την εκκίνηση
Λήψη εναλλακτικού πυρήνα
ξεφορτώνω
φόρτωση /boot/kernel.good/kernel
load /boot/kernel.good/acpi.ko όλα τα άλλα είναι προαιρετικά
μπότα

Εφαρμογή 5.Μονάδες πυρήνα
kldstatλίστα με φορτωμένες μονάδες

Kldload wlan_wep ή kldload /boot/kernel/wlan_wep.ko

kldunloadμονάδα εκφόρτωσης

Kldunload wlan_wep.ko

με εγγραφή στο /boot/kernel/loader.conf απαιτούμενη ενότητα, θα φορτώσει αυτόματα όταν ξεκινήσει το σύστημα

Procfs_load="ΝΑΙ"

Εφαρμογή 6.Επιλεκτική επανασυναρμολόγηση μονάδας
Από προεπιλογή, κατά τη δημιουργία ενός πυρήνα, όλες οι μονάδες πυρήνα θα αναδημιουργηθούν επίσης. Εάν θέλετε να ενημερώσετε τον πυρήνα πιο γρήγορα ή να δημιουργήσετε μόνο ορισμένες ενότητες, τότε πρέπει να επεξεργαστείτε το αρχείο /etc/make.conf πριν ξεκινήσετε τη διαδικασία δημιουργίας πυρήνα:

MODULES_OVERRIDE = ήχος linux acpi/ήχος ήχου/πρόγραμμα οδήγησης/ds1 ntfs
Αυτή η μεταβλητή ορίζει τη λίστα των λειτουργικών μονάδων που θα δημιουργηθούν αντί να δημιουργήσουν όλες τις ενότητες.

WITHOUT_MODULES = linux acpi ήχος ntfs
Αυτή η μεταβλητή παραθέτει τις βασικές μονάδες που θα πρέπει να εξαιρεθούν από τη διαδικασία δημιουργίας. Για άλλες μεταβλητές που μπορεί να σας φανούν χρήσιμες κατά τη διαδικασία κατασκευής του πυρήνα, ανατρέξτε στη σελίδα man.conf(5).


dMS UVPTLY SDTB OEPVIPDYNP OBMYUYE CHUEI YUIPDOSHI ZHBKMPCH FreeBSD.

ChP-RETCHSHI, DBCHBKFE UDEMBEN LTBFLYK PVЪPT LBFBMPZB, CH LPFPTPN VHDEF RTPYUIPDYFSH UVPTLB SDTB. CHUE LBFBMPZY, LPFPTSCHE VHDHF KHRPNYOBFSHUS, VHDHF PFOPUIFEMSHOSCHNY RP PFOPEYOIA L PUOPCHOPNH LBFBMPZH /usr/src/sys , LPFPTSCHK FBLCE DPUFHREO DPUFHREO LBLBFs. lFPF LBFBMPZ UPDETSYF NOPTSEUFChP RPDLBFBMPZPCH, RTEDUFBCHMSAEYI UPVPK TBMYUOSCH YUBUFY SDTB, OP OBYVPMEE CHBTTSOSCHN DMS OBU VKhDEF LBFBMP αψίδα/conf , CH LPFPTPN CHCH VHDEF TEDBLFYTPCHBFSH LPOZHYZHTBGYPOOSCHK ZHBKM SDTB Y CH LPFPTPN OBIPDIFUS LBFBMPZ μεταγλώττιση , ZDE VHDEF UPVYTBFSHUSTP.CHBYE αψίδα NPTsEF VShchFSh i386, amd64, ia64, powerpc, sparc64 YMY pc98 (BMSHFETOBFYCHOBS CHEFCHSH BRRBTBFOPZP PVEUREYEOYS, RPRHMSTOBS CH sRPPOY). CHUE, YuFP OBIPDIFUS CHOKHFTY LBFBMPZB PRTEDEMOOOPK BTIYFELFKhTSCH, PFOPUYFUS FPMSHLP L LFK BTIYFELFKHTE; PUFBMSHOPK LPD SCHMSEFUS NBYOOOP OEBCHYUYNSCHN Y PWAYN DMS CHUEI RMBFZHTTN, ΣΧΕΤΙΚΑ ΜΕ ΤΟ LPFPTSCH FreeBSD NPTsEF VSHFSH RPFEOGYBMSHOP RPTFYTPCHBOB. pVTBFYFE CHOYNBOYE ΣΧΕΤΙΚΑ ΜΕ ΤΟ MZYUYUULHA UFTKHLFKHTH LBFBMPZPCH, CH LPFPTPK LBTSDPE RPDDETSYCHBENPE HUFTPKUFChP, LBCDBS JBKMPCHBS UYUFENB LBCDBSUPWNE CH FBMPZE.

h RTYNETBI LFK ZMBCHSH RPDTBHNECHBEFUS, YuFP CHSH YURPMSH'HEFE BTIIFFELFHTH i386. eUMY BTIYFELFKHTB CHBYEK UYUFENSCH PFMYUBEFUS PF YURPMSH'KHENPK CH RTYNETBI, FP CHBN OEPVIPDYNP VHDEF UPPFCHEFUFCHOOOP YYNEOIFSH YNEOB LBFBMPZHR.

RTYNEYUBOYE:

eUMY LBFBMPZ /usr/src/ PFUKHFUFCHHEF CH CHBYEK UYUFENE (YMY LFPF LBFBMPZ RKHUF), FP LFP OBYUYF, YuFP YUIPDOSHCH FELUFSCH OE VSHMY KHUFBOPCHME. aboutOBYVPMEE RTPUFPK URPUPV KHUFBOPCHYFSH YI - CHPURPMSHЪPCHBFSHUS , LBL PRYUBOP CH tBDEMљ21.5, > . dBMEE, UPЪDBKFE UYNCHPMYUEULHA UUSCHMLH ΣΧΕΤΙΚΑ ΜΕ /usr/src/sys/ :

# ln -s /usr/src/sys /sys

ъBFEN, RETEKDYFE CH LBFBMPZ αψίδα/conf Y ULPRYTHKFE ZHBKM LPOZHYZHTBGYY GENERIC CH ZHBKM U CHCHVTBOOSCHN CHBNY YNEOEN. ΓΙΑ:

# cd /usr/src/sys/ i386/συνδ # cp ΓΕΝΙΚΟ MYKERNEL

rP FTBDYGYY YNS UPUFPYF YJ VHLCH CHETIOEN TEZYUFTE, Y EUMY CHCH RPDDETSYCHBEFE OUEULPMSHLP LPNRSHAFETPCH FreeBSD ΣΧΕΤΙΚΑ ΜΕ ΤΟ TBMYUOPN PVPTHDPCHBOYY, IPTPYBSFBPYNSY. NSH OBCHBMY SDTP MYKERNEL CH LFPN RTYNETE.

rPDULLBLB:

rPNEEEOOYE ZHBKMB LPOZHYZHTBGYY SDTB Ch /usr/src NPTsEF VShchFSH RMPIPK IDEEK. eUMY CHCH YURSHCHFSHCHBEFE RTPVMENSH, YI NPTsOP TEYYFSH KHDBMYCH /usr/src Y OBYUBCH CHUE U OYUBMB. rPUME LFZP PVSHYUOP FTEVHEFUS OUEULPMSHLP UELKHOD, YuFPVShch RPOSFSH, YuFP CHSHCH KHDBMYMY UPVUFCHEOOSCHK ZHBKM OBUFTPKLY SDTB. Ο.Ε.

CHSC NPTSEFE UPITBOIFSH ZHBKM LPOZHYZHTBGYY SDTB CH DTHZPN NEUFE, B ЪBFEN UPЪDBFSH UINCHPMYUEULHA UUSCHMLKH ΣΧΕΤΙΚΑ ΜΕ ΤΟ LFPF ZHBKM CH LBFBMPZE i386 .

ΓΙΑ:

# cd /usr/src/sys/ i386/συνδ # mkdir /root/kernels # cp GENERIC /root/kernels/ MYKERNEL # ln -s /root/kernels/ MYKERNEL

FERETSH PFTEDBLFYTHKFE JBKM MYKERNEL CH UCHPEN MAVYNPN FELUFPCHPN TEDBLFPTE. еUMY CHSH FPMSHLP OBYOUBEFE, EDYOUFHEOOSCHN DPUFHROSCHN TEDBLFPTPN ULPTEE CHUEZP VHDEF vi, LPFPTSCHK UMYYLPN UMPTsEO DMS FPZP, YUFPVSH TEDBLFPTPN ETEYUYUMEOP NOPTSEUFCHP LOYZ, CH LPFPTSCHI EZP YURPMSHЪPCHBOIE IPTPYP PUCHEEOP. pDOBLP FreeBSD RTEDPUFBCHMSEF VPMEE RTPUFPK TEDBLFPT ee, LPFPTSCHK, EUMY CHSHCH - OPCHYYUPL, RPPDKDF CHBN VPMSHYE CHUEZP. OE UFEUOSKFEUSH YJNEOSFSH UFTPLY LPNNEOFBTYECH CH OBYUBME ZHBKMB, U FEN, YUFPVSH PFPVTBIYFSH CHBYH LPOZHYZHTBGYA YMY YJNEOOYS, LPFBBCHORPYCHEN.

eUMY ChBN RTYIPDYMPUSH UPVYTBFSH SDTP DMS SunOS TM YMY LBLPK-MYVP DTHZPK PRTBGYPOOPK UYUFENSH FYRB BSD, NOPZPE YJ FPZP, YuFP UPDETSYFUS Ch LFPHDEFLBKME. еUMY CE CHCH, OBRTPFYCH, YURPMSHЪPCHBMY DTHZHA PRETBGYPOOHA UYUFENKH, FBLHA LBL DOS, ZhBKM LPOZHYZHTBGYY GENERIC NPTsEF RPLBBFSHUS CHBBFSHUS CHBRPSHPHFUML, YSN CH TBDEME lPOZHYZHTBGYPOOSCHK JBKM NEDMEOOOP Y CHOINBFEMSHOP.

oChPE SDTP VHDEF ULPRYTPCHBOP CH LBFBMPZ /boot/kernel LBL /boot/kernel/kernel , B UFBTPE SDTP VHDEF RETENEEEOP CH /boot/kernel.old/kernel .

RTYNEYUBOYE:

FERTSH RETE'BZTHYFE UYUFENKH DMS FPZP, YUFPVSH YURPMSH'PCHBFSH OPCHPE SDTP. еUMY YUFP-FP RPKDЈF OE FBL, CHSC NPTSEFE PVTBFYFSHUS L TBDEMH TEYEOYE RTPVMEN CH LPOGE LFPK ZMBCHSHCH, LPFPTSCHK NPTsEF PLBBBFSHUS RPMEЪEO. OE ЪБВХДШFE RTPYUYFBFSH TBDEM, LPFPTSCHK PVASUOSEF LBL YURTBCHYFSH UYFHBGYA, LPZDB SDTP OE ЪБЗТХЦБЭФУС.

dTHZIE ZHBKMSCH, PFOPUSEYEUS L RTPGEUUH ЪBZTHYULY, FBLYE LBL ЪBZTHYUYL () Y EZP LPOZHYZHTBGYPOOSCHE ZBKMSCH, TBNEEBAFUS H /boot . Npdkhmy ufptpooyi rtpychpdyfemek npzhf vshfsh rpneeeosch h /boot /kernel, ipfs rpmshъpchbfemy dpmtsosch obfsh, yufp pyueosh chbtsop, yufpvsh npmy uyoitpoyytpchbosh uphn sdtpnsytpchbosh uphn sdtpn sdtpn. | Κανένα σχόλιο

Το λειτουργικό σύστημα FreeBSD 10.1 χρησιμοποιεί τον πυρήνα GENERIC από προεπιλογή. Αυτή η τυπική διαμόρφωση χρησιμοποιείται για την υποστήριξη μεγάλης ποσότητας υλικού εκτός συσκευασίας. Η μεταγλώττιση ενός προσαρμοσμένου πυρήνα, με τη σειρά του, βελτιώνει την ασφάλεια, τη λειτουργικότητα και την απόδοση του διακομιστή.

Για να γίνει αυτό, το FreeBSD χρησιμοποιεί δύο κλάδους κώδικα: σταθερό και τρέχον. Ένας σταθερός κλάδος είναι η τελευταία έκδοση κώδικα έτοιμου για παραγωγή. Ο τρέχων κλάδος είναι η πιο πρόσφατη έκδοση κώδικα από την ομάδα ανάπτυξης, η οποία παρέχει προηγμένες λειτουργίες, αλλά είναι επίσης πιο ευάλωτη σε σφάλματα και αστάθειες του συστήματος. ΣΕ αυτό το εγχειρίδιοΧρησιμοποιείται ο κλάδος σταθερού κώδικα.

Αυτό το σεμινάριο θα σας δείξει πώς να κάνετε προσαρμοσμένη μεταγλώττιση του πυρήνα του FreeBSD.

Απαιτήσεις

1: Λήψη του πηγαίου κώδικα του πυρήνα

Πρώτα πρέπει να κατεβάσετε τον πηγαίο κώδικα του λειτουργικού συστήματος.

Το FreeBSD, όπως και πολλές άλλες διανομές UNIX, παρέχει δημόσια πρόσβασηστον κώδικά σας για λήψη και τροποποίηση. Για να επαναμεταγλωττίσετε τον πυρήνα, πρέπει πρώτα να κατεβάσετε τον πηγαίο κώδικα από το σύστημα ελέγχου έκδοσης του FreeBSD.

Η ομάδα του FreeBSD χρησιμοποιεί το αποθετήριο Subversion για την αποθήκευση κώδικα, επομένως πρώτα πρέπει να εγκαταστήσετε τη δυαδική θύρα Subversion.

sudo pkg install subversion

Από προεπιλογή, το σύστημα FreeBSD χρησιμοποιεί το κέλυφος tcsh, το οποίο χρησιμοποιεί έναν εσωτερικό πίνακα κατακερματισμού εντολών στο $PATH. Μετά την εγκατάσταση του Subversion, πρέπει να εκτελέσετε την εντολή rehash, η οποία αναγκάζει το σύστημα να διαβάσει ξανά τα αρχεία διαμόρφωσης.

Τώρα βρείτε ένα αντίγραφο του πιο πρόσφατου σταθερού κλάδου στον κατάλογο /usr/src.

sudo svn co https://svn0.us-east.FreeBSD.org/base/stable/10 /usr/src

Το σύστημα μπορεί να σας ζητήσει να αποδεχτείτε το πιστοποιητικό διακομιστή. Για να το αποδεχτείτε, πληκτρολογήστε p, βεβαιωθείτε ότι άθροισμα ελέγχουαρχείο (ή δακτυλικό αποτύπωμα) αντιστοιχεί στο ποσό που υποδεικνύεται στο κάτω μέρος αυτής της σελίδας.

2: Προσαρμοσμένη προσαρμογή πυρήνα

Τώρα μπορείτε να ξεκινήσετε τη διαμόρφωση του πυρήνα του συστήματος.

Σύμφωνα με τη σύμβαση ονομασίας του αρχείου διαμόρφωσης πυρήνα, το όνομα του πυρήνα πρέπει να γράφεται με κεφαλαία. Σε αυτόν τον οδηγό, αυτό το αρχείο θα ονομάζεται EXAMPLE. Οι ρυθμίσεις του πυρήνα αποθηκεύονται στον κατάλογο /usr/src/sys/architecture/conf. Ας υποθέσουμε ότι χρησιμοποιείται η αρχιτεκτονική AMD64.

Ανοίξτε τον κατάλογο ρυθμίσεων:

cd /usr/src/sys/amd64/conf

Δημιουργήστε ένα αρχείο EXAMPLE και ανοίξτε το για επεξεργασία σε οποιοδήποτε επεξεργαστής κειμένου(στην περίπτωση αυτή χρησιμοποιείται):

Ο πυρήνας GENERIC υποστηρίζει τεράστιο ποσόΔιάφορος εξοπλισμός? Ο πυρήνας EXAMPLE υποστηρίζει μόνο το υλικό που απαιτείται για την εκτέλεση του διακομιστή, όλα τα τυπικά και περιττές συσκευέςδιαγράφηκε. Το ΠΑΡΑΔΕΙΓΜΑ υποστηρίζει επίσης τείχος προστασίας φιλτραρίσματος πακέτων (pf), διαμόρφωση κυκλοφορίας (altq), κρυπτογράφηση συστήματος αρχείων (geom_eli) και ασφάλεια IP (IPsec).

ΣημείωμαΣημείωση: Μπορείτε να διαβάσετε περισσότερα για τις επιλογές στην τεκμηρίωση του FreeBSD. Δοκιμάστε να γράψετε μόνοι σας τον κώδικα του πυρήνα.

3: Κατασκευή και εγκατάσταση του πυρήνα

Αφού δημιουργήσετε προσαρμοσμένες διαμορφώσεις πυρήνα, πρέπει να το δημιουργήσετε και να το μεταγλωττίσετε ξανά.

Επιστρέψτε στον κατάλογο /usr/src και εκτελέστε το make buildkernel χρησιμοποιώντας το νέο αρχείο ρυθμίσεων:

cd /usr/src
sudo make buildkernel KERNCONF=ΠΑΡΑΔΕΙΓΜΑ

Αυτό μπορεί να πάρει κάποιο χρόνο ανάλογα με την ποσότητα των πόρων του διακομιστή (κατά μέσο όρο, ένας διακομιστής 1 GB χρειάζεται 90 λεπτά για τη μεταγλώττιση).

Μόλις ολοκληρωθεί η εκ νέου μεταγλώττιση, εγκαταστήστε τον νέο πυρήνα:

sudo make installkernel KERNCONF=EXAMPLE

Στη συνέχεια επανεκκινήστε το σύστημα.

sudo shutdown -r τώρα

Μετά από αυτό ο διακομιστής θα κλείσει τρέχουσες υπηρεσίες, συγχρονίζει δίσκους και ενημερώνει τον πυρήνα.

Μετά την επανεκκίνηση του διακομιστή, συνδεθείτε. Χρησιμοποιήστε την ακόλουθη εντολή για να επαληθεύσετε ότι το αρχείο ρύθμισης παραμέτρων του πυρήνα χρησιμοποιείται από το σύστημα.

sysctl kern.conftxt | grep ident

Το ακόλουθο αποτέλεσμα θα πρέπει να εμφανιστεί στην οθόνη:

Η ρύθμιση και η εκ νέου μεταγλώττιση του πυρήνα ολοκληρώθηκαν με επιτυχία.

Ετικέτες: ,

Ερωτήσεις;

Αναφέρετε ένα τυπογραφικό λάθος

Κείμενο που θα σταλεί στους συντάκτες μας: