nazgul Δημοσ. 31 Ιανουαρίου 2004 Share Δημοσ. 31 Ιανουαρίου 2004 Έφτιαξα μια συστοιχία RAID 0 στο PC μου και αφού του πέρασα τα Windows, ξεκίνησα να βάλω και το Slackware 9.1. Έλα όμως που δεν εντόπιζε το RAID. Πήγα λοιπόν στο site της Promise (ο RAID controller μου είναι ο fasttrak 20276 και είναι ενσωματωμένος στη μητρική) και εκεί είδα πως υπάρχουν drivers για Suse,Redhat και Mandrake ενώ για τις υπόλοιπες distro υπάρχει κάποιο source. Προκειμένου να το compilαρω εγκατέστησα το Suse που το είχα ξεχασμένο σε κάποιο ράφι της βιβλιοθήκης μου (αν δοκιμάσεις Slackware απλώς κολλάς και ξεχνάς τα υπόλοιπα υποκατάστατα ) και έκανα compile το source. Το αντέγραψα σε μια δισκέτα και ξεκίνησα την εγκατάσταση του Slack. Επέλεξα ως kernel τον ataraid.i και μετά το root login έκανα mount την δισκέτα με το module και το εισήγαγα με την εντολή insmod fasttrak.o . Φορτώθηκε χωρίς προβλήματα και επιτέλους το Slackware εντόπισε το RAID μου ως /dev/sda. Η εγκατάσταση ολοκληρώθηκε κανονικότατα αλλά μετά το reboot το λειτουργικό crashαρε δίνοντας μου ένα μήνυμα kernel panic: can't mount root fs . Αυτό συμβαίνει γιατί δε φορτώνεται το fasttrak module. Μπορεί κανείς να μου πει πως μπορώ να το κάνω να φορτώνεται κατά την εκκίνηση; Δε θέλω να επιστρέψω πίσω στο Suse! Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Dimmu_Borgir Δημοσ. 31 Ιανουαρίου 2004 Share Δημοσ. 31 Ιανουαρίου 2004 Prepei na peraseis parametrous ston kernel at boot time (me xrhsh append sto lilo.conf). Prepei na breis ta IRQ twn 2 kanalown tou promise controller mazi me ta I/O ports gia to ka8e IDE. Mporeis na to deis sto /proc/pci. Px gia to diko mou leei: Unknown mass storage controller: Promise Technology, 20265 (rev 2). IRQ 4. Master Capable. Latency=32. I/O at 0xd800 [0xd807]. I/O at 0xd400 [0xd403]. I/O at 0xd000 [0xd007]. I/O at 0xb800 [0xb803]. I/O at 0xb400 [0xb43f]. Non-prefetchable 32 bit memory at 0xed800000 [0xed81ffff]. To append line bgainei ws ekshs: ideX=IO1,IO2+0x0002,IRQ1 ideY=IO3,IO4+0x0002,IRQ2 me ideX kai ideY ta 2 kanalia tou promise. Den exw raid pleon alla otan eixa kai h8ela na to kanw na doulepsei sto slack auta eixa brei...(alla den mphka ston kopo...) Mporeis na kaneis ena search sto google gia linux promise raid howto eixa brei arketa. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
nazgul Δημοσ. 1 Φεβρουαρίου 2004 Μέλος Share Δημοσ. 1 Φεβρουαρίου 2004 Το έχω δοκιμάσει αυτό και το μόνο που κατάφερα ήταν να πάρω ένα segmentation fault. Πάντως παρατήρησα πως πριν crashαρει εντοπίζει τους δίσκους μου ως hde και hdg. Κανονικά δεν θα έπρεπε να τους βλέπει σαν ένα δισκό; Αν φορτώσω το fasttrak module το RAID λειτουργεί μια χαρά. Απλά πρέπει να βρω τρόπο ώστε να φορτώνεται κάθε φορά κατά την εκκίνηση του λειτουργικού. Από το λίγο ψάξιμο που έκανα κατέληξα πως πρέπει να δημιουργήσω ένα αρχείο initrd. Αυτό χρησιμοποιείται για να φορτώνει scsi modules κατά την εκκίνηση (και ο Promise αναγνωρίζεται ως scsi controller). Αλλά όλες οι οδηγίες που βρήκα αναφέρονται στο RedHat. Στο Slackware πως μπορεί να γίνει αυτό; Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Dimmu_Borgir Δημοσ. 1 Φεβρουαρίου 2004 Share Δημοσ. 1 Φεβρουαρίου 2004 Mporeis na baleis mia grammh sto /etc/rc.d/rc.modules na kanei modprobe to fasttrak module (nonizw ienai ft.o) Twra 8elw na se rwthsw egw kati allo gia to raid. Ekanes compile ton driver gia redhat se slack? Me ti kernel? Giati den to dokimasa pote na kanw compile ton driver giati fobomoun gia to raid. raidtools xrhsimopoihses ka8olou h mono me to driver ths promise douleuei? EDIT: ksereis poios driver einai gia ton 20265? Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
apoikos Δημοσ. 1 Φεβρουαρίου 2004 Share Δημοσ. 1 Φεβρουαρίου 2004 Dimmu, για να διαβάσει το rc.modules πρέπει πρώτα να έχει κάνει mount το δίσκο, πράγμα το οποίο δεν μπορεί να κάνει γιατί δεν έχει δει το module. nazgul, για να φορτώνει κατά το boot time το module πρέπει όντως να φτιάξεις ένα initrd (initial ramdrive), το οποίο θα περιέχει το module του fasttrack, καθώς και τα sd_mod και sr_mod και το script linuxrc που θα τα φορτώνει. Στη συνέχεια δηλώνεις το initrd στο lilo (initrd=/boot/initrd.img.gz για παράδειγμα) και μάλλον θα παίξει. Επειδή στο slackware το initrd είναι μεγάλη φασαρία (στο Mandrake και το Redhat υπάρχει η mkinitrd, ενώ στο slack πρέπει να τα φτιάξεις όλα από την αρχή), αν θες να σου στείλω ένα που έχω φτιάξει εγώ (και το φυλάω ως κόρην οφθαλμού) και να βάλεις μέσα τα modules σου ή να μου στείλεις το module και να σου στείλω έτοιμο initrd, pm me. /edit: Ορθώς είναι hde και hdg οι δίσκοι σου, έχεις δύο δίσκους και το linux πρέπει να το βλέπει αυτό. Το raid σου είναι /dev/sda (είναι δηλαδή "λογική" συσκευή). Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
nazgul Δημοσ. 1 Φεβρουαρίου 2004 Μέλος Share Δημοσ. 1 Φεβρουαρίου 2004 Dimmu, εγκατέστησα πρώτα το Suse 8.2 για το οποίο η Promise παρέχει driver, κατέβασα το source code για το module και το έπειτα έκανα compile. Προσοχή όμως! Πρέπει να το κάνεις compile με τον kernel που έχει το Slack (2.4.22) γιατί όταν αργότερα πήγα να το φορτώσω μου έλεγε πως το module είναι για τον kernel 2.4.20 (Suse) και άλλα τέτοια γλαφυρά. Τα raidtools μου φαίνεται πως είναι για SoftRaid. Δεν τα χρησιμοποίησα πουθενά. Απλώς φορτώνεις το module και voila! Apoike, αν το έκανες αυτό θα σου ήμουν ευγνώμων ! Τις οδηγίες για να φτιάξεις το δικό σου initrd τις βρήκες στο Documentation του kernel; Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
apoikos Δημοσ. 1 Φεβρουαρίου 2004 Share Δημοσ. 1 Φεβρουαρίου 2004 Δυστυχώς η τεκμηρίωση του πυρήνα όσον αφορά το initrd είναι λίγο συγκεχυμένη. Για να φτιάξεις δικό σου initrd πρέπει να κάνεις τα ακόλουθα (the quick 'n' dirty guide ): Disclaimer: Δε φέρω καμία ευθύνη σε περίπτωση που κάνοντας τα παρακάτω ψήσετε τον υπολογιστή σας, σας παρατήσει η κοπέλα σας, τρυπήσετε τον τοίχο χτυπώντας τον με το κεφάλι σας και τα λοιπά. Δημιουργείς ένα κενό αρχείο γεμάτο μηδενικά, στο οποίο θα γραφτεί το filesystem, με μέγεθος όσο νομίζεις ότι θα χρειαστεί (περίπου 2ΜΒ είναι αρκετά):dd if=/dev/zero of=initrd.img bs=1024 count=2048 Αντιστοιχίζεις το αρχείο αυτό σε μία loop device για να μπορείς να το χειριστείς με την ησυχία σου:losetup /dev/loop1 initrd.img Δημιουργείς ένα fs (κατά προτίμιση ext2 ή xfs): mke2fs /dev/loop1 Κάνεις mount το /dev/loop1: mkdir newinitrd && mount /dev/loop1 newinitrd && cd newinitrd Δημιουργείς ένα τελείως σπαρτιάτικο directory tree:mkdir bin dev etc lib new_root proc sbin var Δημιουργείς τα τελείως απαραίτητα device entries:> cd dev mknod ./console c 5 1 mknod ./null c 1 3 mkdir rd cd rd mknod ./initrd b 1 250 mknod ./0 b 1 0 mknod ./1 b 1 1 mknod ./2 b 1 2 cd .. ln -sf vc/1 tty1 ln -sf vc/2 tty2 ln -sf vc/3 tty3 ln -sf vc/4 tty4 Προσοχή, υποθέτω ότι χρησιμοποιείς devfs και δίνεις στον πυρήνα κατά το boot "devfs=mount"! Διαφορετικά πρέπει να φτιάξεις με το χέρι και τις vc/* και τα device entries για τους δίσκους σου κλπ (δε λέει καθόλου ). Για τα major/minor numbers συμβουλέψου το /dev σου. Επίσης θα μπορούσες να χρησιμοποιήσεις και το MAKEDEV (man MAKEDEV), δεν το συνιστώ όμως. Κατεβάζεις το busybox, το κάνεις compile (με static linking) με υποστήριξη για ln, modprove, insmod, rmmod, basic shell functions κλπκλπκλπ (δε θυμάμαι ακριβώς, αλλά μπορείς να υποθέσεις μόνος σου βλέποντάς τα). Αν σε ενδιαφέρει το μέγεθος μπορείς να το κάνεις link με τη diet-libc (το δοκίμασα αλλά για κάποιο λόγο δεν έπαιζε καλά). Επίσης λες στο configuration program του busybox να σου φτιάξει τα symlinks Ουσιαστικά το busybox είναι ένα mini-σύστημα μόνο του, το οποίο ενσωματώνει τις λειτουργίες πολλών linux-utils, ανάλογα με το πως το καλείς. π.χ. ένα symlink modprobe -> busybox θα πει στο busybox να κάνει ό,τι θα έκανε το modprobe. Αντιγράφεις το busybox και τα symlinks στο /bin ή/και το /sbin του initrd (προσοχή μην κάνεις overwrite το /bin του συστήματός σου!!!!!). To get the picture:> lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 ash -> busybox* -rwxr-xr-x 1 root root 698112 Σεπ 5 16:06 busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 cat -> busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 chgrp -> busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 chmod -> busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 chown -> busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 cp -> busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 date -> busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 dd -> busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 df -> busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 dmesg -> busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 echo -> busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 false -> busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 fgrep -> busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 grep -> busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 gunzip -> busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 gzip -> busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 kill -> busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 ln -> busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 ls -> busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 mkdir -> busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 mknod -> busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 more -> busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 mount -> busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 mv -> busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 ps -> busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 pwd -> busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 rm -> busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 rmdir -> busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 sed -> busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 sh -> busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 sleep -> busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 sync -> busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 tar -> busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 touch -> busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 true -> busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 umount -> busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 uname -> busybox* lrwxrwxrwx 1 root root 7 Σεπ 5 17:16 zcat -> busybox* Αντιγράφεις τα modules που θες στο /lib Φτιάχνεις ένα εκτελέσιμο script με το όνομα linuxrc στο root του initrd, το οποίο περιέχει τα εξής (το δικό μου τουλάχιστον):> echo "Initial RAMDISK Loading Starting..." insmod /lib/scsi_mod.o insmod /lib/sd_mod.o echo "Initial RAMDISK Loading Completed..." #mkdir /new_root echo "Mounting proc..." mount -n -t proc none /proc echo 0x0301 > /proc/sys/kernel/real-root-dev <- ΠΡΟΣΟΧΗ ΕΔΩ! Πρέπει να βρεις το BIOS number του real root σου! echo "Mounting real root dev..." mount -n -o ro /dev/hda1 /new_root <- ΚΑΙ ΕΔΩ πρέπει να βάλεις /dev/sdax umount /proc cd /new_root echo "Running pivot_root..." pivot_root . initrd if [ -c initrd/dev/.devfsd ] then echo "Mounting devfs..." mount -n -t devfs none dev fi if [ $$ = 1 ] then echo "Running init..." exec chroot . sbin/init dev/console 2>&1 else echo "Using bug circumvention for busybox..." exec chroot . linuxrc dev/console 2>&1 fi Θεωρητικά έχεις τελειώσε με το initrd αυτό καθ' αυτό, οπότε βγαίνεις από μέσα (cd ~), κάνεις unmount (umount /dev/loop1), detach το loopback device (losetup -d /dev/loop1) και συμπιέζεις το initrd (gzip -9 initrd.img). Αντιγράφεις το initrd.img.gz στο /boot, το δηλώνεις στο lilo (σε νέα καταχώρηση, ώστε να μπορείς να κάνεις boot με το παλιό setup σε περίπτωση που κάτι πάει στραβά), κρατάς σφιχτά το αγαπημένο σου επιστημονικό βοήθημα (κοκαλάκι νυχτερίδας, ουρά λαγού, μάτι, κλπ.) και κάνεις reboot... Αν όλα πάνε καλά θα κάνει κανονικό boot στο linuxάκι σου. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
JoKo Δημοσ. 1 Φεβρουαρίου 2004 Share Δημοσ. 1 Φεβρουαρίου 2004 Και εγώ σκέφτομαι να εγκαταστήσω το Slackware 9.1 στο νέο μου PC. Έχω κάνει και εγώ όμως μία συστοιχία RAID-0 με δύο Serial ΑΤΑ δίσκους (η μητρική είναι της Intel). Δυστυχώς, όποιον πυρήνα έτρεξα (δύο ήταν, ο bare.i και ο raid.i) δεν αναγνώριζε αυτός τους δίσκους μου... Μήπως υπάρχει κανένας precompiled kernel που να υποστηρίζει S-ATA και RAID για Slackware 9.1; Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Dimmu_Borgir Δημοσ. 1 Φεβρουαρίου 2004 Share Δημοσ. 1 Φεβρουαρίου 2004 Dimmu' date=' για να διαβάσει το rc.modules πρέπει πρώτα να έχει κάνει mount το δίσκο, πράγμα το οποίο δεν μπορεί να κάνει γιατί δεν έχει δει το module.[/quote'] Nai exeis dikio, den to proseksa... Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
nazgul Δημοσ. 1 Φεβρουαρίου 2004 Μέλος Share Δημοσ. 1 Φεβρουαρίου 2004 Joko έχεις postάρει στο linuxquestions.org; Αν προσέξεις λίγο πιο κάτω από το δικό σου thread είναι ένα από κάποιον Jojef.K. Εγώ είμαι! Αλλά τόσο καιρό κανείς έχει δώσει καμία χρήσιμη απάντηση. Δεν μου φαίνεται πως οι άνθρωποι εκεί είναι τόσο expert όσο θα ήθελαν να είναι... Πάντως γνωρίζω πως το RedHat 9 αναγνωρίζει τους δίσκους SATA. Φαντάζομαι πως και το Fedora που είναι η free edition του RedHat και υπάρχει στο DVD του PC Magazine θα κάνει το ίδιο. Αν θες το δοκιμάζεις. Αλλιώς περίμενε να βγει κάποια έκδοση του Slackware που θα βασίζεται στον πυρήνα 2.6 που προσφέρει υποστήριξη για SerialATA (μου φαίνεται πως ήδη υπάρχει η 9.2b αλλά δε γνωρίζω λεπτομέρειες για τα χαρακτηριστικά της). Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
JoKo Δημοσ. 2 Φεβρουαρίου 2004 Share Δημοσ. 2 Φεβρουαρίου 2004 nazgul, ναι, εγώ είμαι! Όντως πολύ μούφα σαν forum το LinuxQuestions.org... Μάλλον αξίζει να περιμένω λιγάκι ή να βάλω το Slackware Current, γιατί δεν άκουσα καλές κριτικές για το Fedora. Μάλλον θα κάνω αυτό που απεύφευγα, θα κάνω compile κανένα 2.6.x kernel για να κάνω εγκατάσταση μπας και δουλέψει... Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.