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

[INFO] HowTo Linux Kernel Compile


spymix

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

  • Moderators
3 τινά συμβαίνουν:
  • Δεν έχεις κάνει built-in το filesystem module (π.χ. ext3' date=' reiserfs)
    [*'] Δεν έχεις κάνει built-in το module του controller σου (sata/ide)
  • Έχεις περάσει λάθος παράμετρο root=/dev/hdxy στον πυρήνα.
  • Έχεις software raid και δεν έχεις φτιάξει initrd

Αν έχεις κάνει τα πρώτα 2, τότε δοκίμασε να πειράξεις το grub και να βάλεις root=/dev/hdxy, όπου /dev/hdxy το device του root partition σου.

 

Thanx για το γρηγορο reply καταρχην!

Built in εκανα οτι filesystem βρηκα(..μαλλον ολα)απλα και μονο για να αποφυγω το συγκεκριμενο προβλημα.

Επισης εκανα οτι module βρηκα για ide/sata built in για τον ιδιο ακριβως λογο.

Η παραμετρος root=/dev/hdxy ειναι ιδια με τον προηγουμενο kernel(2.16.13)ο οποιος φορτωνει κανονικα.

Για την τεταρτη περιπτωση αν μπορεις γινε λιγο πιο αναλυτικος!:wink:

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

  • Απαντ. 62
  • Δημ.
  • Τελ. απάντηση

@Gio

 

Το ίδιο ακριβώς πρόβλημα είχα αντιμετωπίσει και εγώ σε ένα από τα πρώτα compile μου (Γιαυτο και το έβαλα στο troubleshooting)....

 

Όπως λέει και ο apoikos κατά 99% δεν έχεις δώσει την σωστή υποστήριξη στο File System που χρησιμοποιείς ή στους σκληρούς σου δίσκους...

 

Κάνε boot με τον παλιο κέρνελ και έλεγξε να δεις τι F.S έχεις και τι σκληρούς δίσκους....

Για το F.S θα πας στην κατηγορία File systems του κερνελ 2.6.16

και για τους σκληρούς σου στην κατηγορία device drivers --> (ATA ATAPI etc) κάπωε έτσι λέγεται δεν θυμάμαι και καλά...

 

Εκεί δώσε σαν built-in αυτά που χρησιμοποιείς... (π.χ IDE, SATA, SCSI, κλπ)

 

Το πρόβλημα θα λυθεί έτσι...

 

Τουλάχιστον εγώ όταν μου έβγαλε αυτό το μύνημα, έτσι το έλυσα...

 

Good Luck man....

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

  • Moderators

Indeed!

Ο Apoikos ειχε δικιο τελικα...Προφανως μου ειχε ξεφυγει κατι και δεν το εκανα built in.Χτες εκατσα ξανα απο την αρχη και πιο προσεκτικα αυτην την φορα και λειτουργησε κανονικοτατα!Σημερα παω για το patch!

Οσον αφορα τις εντολες που μου ειπες apoikos

>  mount

/dev/hda3 on / type reiserfs (rw,acl,user_xattr)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
debugfs on /sys/kernel/debug type debugfs (rw)
udev on /dev type tmpfs (rw)
devpts on /dev/pts type devpts (rw,mode=0620,gid=5)
/dev/hda1 on /windows/C type ntfs (ro,noexec,nosuid,nodev,gid=100,umask=0002,nls=utf8)
/dev/hdb1 on /windows/D type ntfs (ro,noexec,nosuid,nodev,gid=100,umask=0002,nls=utf8)
/dev/sda1 on /windows/E type ntfs (ro,noexec,nosuid,nodev,gid=100,umask=0002,nls=utf8)
securityfs on /sys/kernel/security type securityfs (rw)
/dev/hdd on /media/cdrom type iso9660 (ro,nosuid,nodev,noatime,uid=1000,utf8) 


lsmod

Module                  Size  Used by
joydev                 12992  0
st                     38684  0
sr_mod                 18596  0
ipv6                  242272  14
snd_pcm_oss            47104  0
snd_mixer_oss          20480  2 snd_pcm_oss
snd_seq_midi           12928  0
snd_emu10k1_synth      11520  0
snd_emux_synth         36736  1 snd_emu10k1_synth
snd_seq_virmidi        10752  1 snd_emux_synth
snd_seq_midi_event     10752  2 snd_seq_midi,snd_seq_virmidi
snd_seq_midi_emul       9984  1 snd_emux_synth
snd_seq                53360  5 snd_seq_midi,snd_emux_synth,snd_seq_virmidi,snd_seq_midi_event,snd_seq_midi_emul
af_packet              28296  2
edd                    12484  0
button                 10640  0
battery                13444  0
ac                      8964  0
apparmor               53144  0
aamatch_pcre           17408  1 apparmor
vfat                   16000  0
fat                    51356  1 vfat
nls_utf8                6016  3
ntfs                  201364  3
loop                   19080  0
dm_mod                 57936  0
rfcomm                 41620  0
hidp                   23680  2
l2cap                  30592  10 rfcomm,hidp
hci_usb                18708  2
bluetooth              51300  8 rfcomm,hidp,l2cap,hci_usb
shpchp                 44000  0
pci_hotplug            28860  1 shpchp
hw_random               9496  0
bttv                  164276  0
video_buf              24708  1 bttv
firmware_class         13952  1 bttv
compat_ioctl32          5376  1 bttv
i2c_algo_bit           12168  1 bttv
v4l2_common            11520  1 bttv
btcx_risc               8584  1 bttv
nvidia               4548276  16
ir_common              13188  1 bttv
ehci_hcd               31880  0
sk98lin               138592  0
snd_emu10k1           110596  5 snd_emu10k1_synth
uhci_hcd               32400  0
tveeprom               17552  1 bttv
usbcore               116612  4 hci_usb,ehci_hcd,uhci_hcd
ohci1394               34224  0
videodev               13056  1 bttv
ieee1394               93880  1 ohci1394
snd_rawmidi            28160  3 snd_seq_midi,snd_seq_virmidi,snd_emu10k1
intel_agp              24988  1
emu10k1_gp              7552  0
i8xx_tco               11032  0
i2c_i801               12044  0
agpgart                33352  2 nvidia,intel_agp
i2c_core               24064  5 bttv,i2c_algo_bit,nvidia,tveeprom,i2c_i801
snd_ac97_codec         87072  1 snd_emu10k1
snd_ac97_bus            6144  1 snd_ac97_codec
gameport               18824  2 emu10k1_gp
snd_pcm                86788  4 snd_pcm_oss,snd_emu10k1,snd_ac97_codec
snd_seq_device         11916  6 snd_seq_midi,snd_emu10k1_synth,snd_emux_synth,snd_seq,snd_emu10k1,snd_rawmidi
snd_timer              25860  3 snd_seq,snd_emu10k1,snd_pcm
snd_page_alloc         13576  2 snd_emu10k1,snd_pcm
snd_util_mem            8704  2 snd_emux_synth,snd_emu10k1
snd_hwdep              12804  2 snd_emux_synth,snd_emu10k1
snd                    57092  21 snd_pcm_oss,snd_mixer_oss,snd_seq_midi,snd_emu10k1_synth,snd_emux_synth,snd_seq_virmidi,snd_seq_midi_emul,snd_seq,snd_emu10k1,snd_rawmidi,snd_ac97_codec,snd_pcm,snd_seq_device,snd_timer,snd_util_mem,snd_hwdep
soundcore              13024  2 snd
ide_cd                 39840  1
cdrom                  36512  2 sr_mod,ide_cd
parport_pc             39524  1
lp                     15012  0
parport                37192  2 parport_pc,lp
reiserfs              217856  1
fan                     8580  0
thermal                17416  0
processor              31208  1 thermal
sg                     35996  0
ata_piix               14212  1
libata                 69776  1 ata_piix
piix                   13316  0 [permanent]
sd_mod                 20352  2
scsi_mod              128008  5 st,sr_mod,sg,libata,sd_mod
ide_disk               19200  6
ide_core              123340  3 ide_cd,piix,ide_disk

lspci

bash: lspci: command not found

  

Αν και εχει λυθει το προβλημα,τις παραθετω γιατι η τελευταια μου λεει πως δεν υπαρχει..αλλο προβλημα ισως?

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

Αν και εχει λυθει το προβλημα,τις παραθετω γιατι η τελευταια μου λεει πως δεν υπαρχει..αλλο προβλημα ισως?

 

Δεν είναι πρόβλημα, απλά λείπει το πακέτο 'pciutils', προαιρετικό μεν, πολύ χρήσιμο όμως ;-)

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

  • 1 μήνα μετά...

vasika an exeis sto / partition diaforetiko FS apoti to reiserfs tha prepei na dhmiourghseis ena image me to mkinitrd. an px exeis ext3 tote tha prpeei nakaneis to e3hs: ypothetontas oti o kernel soy einai 2.6.16 cd /boot mkinitrd -k 2.6.16 -m jbd:ext3 -r /dev/hdX -o initrd.img. ayto kanw kai egw edw kai arketo kairo.To idio mporeis na kaneis an exeis kai sata.kai genikotera to FS pou xrhsimopoieis sto / partition sou prepei na to kaneis compile san module kai oxi san built-in epeidh prwta kanei extract to initrd kai meta fortwnei ton kernel.

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

H ανάγκη για init image δεν σχετίζεται με κάποιο συγκεκριμένο filesystem, αλλά με το αν ο driver για το εκάστοτε filesystem (και όποιοσδήποτε άλλος driver είναι αναγκαίος για να προσπελαστεί το / partition του δίσκου, όπως π.χ. SATA driver) είναι ενσωματομένος στο image του kernel ή έχει γίνει compile σαν module. Αν είναι compiled-in δεν υπάρχει καμία ανάγκη για init image. :)

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

  • 3 εβδομάδες αργότερα...

πολύ καλό το HowTo, spymix.

Ερωτήσεις

1) Έχωντας στο /usr/src/ το source του kernel μας (αυτόν που χρησιμοποιούμε σαν default τον οποίο δεν κάναμε εμείς compile αλλά δημιουργήθηκε με το install της distro στο pc μας) κ δίνοντας make xconfig βλέπουμε ορισμένες επιλογές "κλικαρισμένες" σαν built in και άλλες σαν modules και άλλες καθόλου.Αυτή είναι στην ουσία η configuration του default μας kernel? Aν όχι, με ποίο τρόπο μπορώ να δώ τι έχει σαν bulit in και τι σαν module ο default kernel και τι χρησιμοποιεί-χρειάζεται για το σύστημα μου ώστε να τα αφήσω "απ'εξω" στο επόμενο compile .

2) Μιας κ νέος στο compile kernel, -με το πρώτο compile είχα pc πιο αργό από το default :mrgreen: - ήθελα να μάθω αν υπάρχουν και άλλα standarts που πρέπει οπωσδήποτε να γίνουν built in ή έστω σαν modules ή κάποια άλλα tips για σωστό compiling.

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

1) Το αρχείο στο οποίο περιέχεται το configuration του Kernel είναι by default το .config, μέσα στον βασικό κατάλογο με τα sources (π.χ. /usr/src/linux-2.6.17-gentoo). Το xconfig ή menuconfig επεξεργάζεται το περιεχόμενο αυτού του αρχείου. Δεν είναι απαραίτητο ότι το .config εκεί μέσα είναι αυτό με το οποίο έχει γίνει compile ο kernel που τρέχεις, αλλά εφόσον αυτός ο κατάλογος δημιουργήθηκε από το πακέτο της διανομής που περιέχει τα sources του default της Kernel (π.χ. "gentoo-sources-2.6.17") και εφόσον έχεις εγκατεστημένο το πακέτο που περιέχει και το image του default kernel ίδιας έκδοσης και έχεις επιλέξει στον bootloader να bootάρει αυτό το image (π.χ. /boot/vmlinuz-2.6.17-gentoo), τότε λογικά θα είναι το ίδιο. Σχετικά πρόσφατα μπήκε η δυνατότητα να συμπεριλαμβάνεται στο image το configuration του kernel και να είναι διαθέσιμο μέσω του proc fs. Αν είναι ενεργοποιημένο αυτό το χαρακτηριστικό στον Kernel σου, το config θα είναι διαθέσιμο στο /proc/config.gz, οπότε αν θέλεις να είσαι σίγουρος μπορείς να το συγκρίνεις με το .config που βρίσκεται στον κατάλογο που υποψιάζεσαι (π.χ. zcat /proc/config.gz > running_config ; diff running_config /usr/src/linux/.config, ή γράψε το από πάνω και δες το κατευθείαν "cd /usr/src/linux ; zcat /proc/config.gz > .config ; make menuconfig").

 

2) Ό,τι χρειάζεταi όπωσδήποτε αναφέρεται στο description του component (π.χ. άμα πατήσεις "?" στο menuconfig έχοντας επιλέξει κάποιο component). Είναι πάρα πολλά τα components για συγκεκριμένα tips, αλλά σε γενικές γραμμές προσπάθησε να βάζεις μόνο όσα components παρέχουν λειτουργικότητα που σε ενδιαφέρει άμεσα (η περιγραφή δίνει πάντα μια ιδέα). Ως modules βάλε μόνο πράγματα τα οποία μπορεί να τα χρειαστείς, αλλά όχι διαρκώς (π.χ. υποστήριξη για usb_storage devices, firewire, video4linux κλπ), ώστε να μην πιάνουν χώρο άδικα. Όμως όλα τα άλλα, όπως drivers για το βασικό σου hardware (κάρτα δικτύου, ATA/SATA controller, ίσως κάρτα ήχου κ.α.) και filesystem(s) δεν έχεις λόγο να μην τα ενσωματώσεις, αφού και ως modules ούτως ή άλλως θα είναι πάντα φορτωμένα. Και βέβαια απενεργοποίησε τελείως ό,τι δε σε ενδιαφέρει ή αναφέρεται σε hardware που δεν έχεις. Πάντως για να έχεις ένα bootable σύστημα αρκούν αυτά που επισήμανε ο Apoikos :)

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

Ευχαριστω για τη βοηθεια nske.

 

Πάντως για να έχεις ένα bootable σύστημα αρκούν αυτά που επισήμανε ο Apoikos :)

Όντως το πρόσεξα, αλλά μάλλον ήμουν αρκετά "τσιγγούνης" με τα υπόλοιπα settings :-D .

Δεν έχω ακόμα καταλάβει τι κάνει το patch και αν είναι απαραίτητο για το compile.Πχ κατεβάζω το source του τελευταίου kernel κ τον χτίζω. Μετά ειναι απαραίτητο να βάλω κ το αντίστοιχο patch?

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

Όχι, το patch περιλαμβάνει τις διαφορές σε όσα αρχεία κώδικα έχουν αλλάξει ανάμεσα σε δύο εκδόσεις του kernel. Αν έχεις τα sources παλαιότερης έκδοσης, μπορείς αντί να κατεβάσεις τα τελευταία sources να κατεβάσεις το τελευταίο patch που είναι μικρότερο και patch-άροντας τα παλιά σου sources να τα μετατρέψεις στην τελευταία έκδοση. Βέβαια μιλάμε για τα επίσημα patches του kernel.org, υπάρχουν και ανεπίσημα patches που προσθέτουν διάφορα χαρακτηριστικά που δεν έχουν εγκριθεί ακόμη για να συμπεριληφθούν στα επίσημα sources συνήθως επειδή είναι πειραματικά, π.χ. υποστήριξη για reiser4 filesystems. Αυτά αν θέλεις τα περνάς πάνω από τα sources που κατέβασες.

 

Σε κάθε περίπτωση το patch γίνεται πριν το compilation.

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

Αρχειοθετημένο

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


  • Δημιουργία νέου...