Posts Tagged with linux

posted by qubix on January 1, 2013

Πηγαίνοντας να κάνω το πρώτο dist upgrade στη νέα μου arch εγκατάσταση, όλα πάνε καλά μέχρι που εμφανίζεται ένα pacnew file και μου ζητά να πατήσω view (v) για να δω τις αλλαγές. Όλα κομπλέ, έχω κάνει τόσα και τόσα dist upgrades αυτό είναι κάτι συνηθισμένο. Αλλά όχι στο arch! Επιλέγοντας "v" για να δω τι τρέχει λοιπόν, μου πετά το error:
/usr/bin/pacdiff: line 69: vimdiff: command not found

Κάτι προσπάθειες με shell vars του στυλ export pacdiff_program=diff πήγαν στον κουβά, δεν άλλαξε κάτι και δεν το πολυέψαξα βασικά.
Σαν καλός sysadmin που ξέρει τι κάνει (χαρ χαρ χαρ) πήγα στην πηγή του προβλήματος, στο /usr/bin/pacdiff το οποίο είναι ένα απλό bash script και αφού έκανα comment την line 20:
diffprog=${DIFFPROG:-vimdiff}
πρόσθεσα το:
diffprog=${DIFFPROG:-diff}

και πλέον δεν ψάχνει να βρει το vimdiff το οποίο ΔΕΝ έχω και ΔΕΝ θέλω να έχω προς το παρών

posted by qubix on December 28, 2012

Λοιπόν τελικά έβαλα arch να υσηχάσω στο λάπτοπ. Όλα καλά και όλα ωραία, μου πήρε μια μέρα να το σετάρω γενικώς και είναι ελαφρύ, γρήγορο και με πολύ καλή ανταπόκριση.
Δυστυχώς όμως..δεν μπορούσα να συνδεθώ ΜΕ ΤΙΠΟΤΑ με dhcp από την ethernet θύρα. Αρχικά δεν έβγαζα άκρη με διάφορα περίεργα μηνύματα στο dmesg τα οποία δεν πολυκαταλάβαινα
e1000e 0000:00:19.0: irq 45 for MSI/MSI-X
e1000e 0000:00:19.0: irq 45 for MSI/MSI-X
ADDRCONF(NETDEV_UP): eth0: link is not ready

και το dhcpd να κολλάει στο
waiting for carrier...
Μετά από πολύ ψάξιμο, ανακάλυψα πως υπάρχει bug με το MSI όταν προσπαθεί να ξυπνήσει η κάρτα καθώς βρίσκεται σε D3 status (μπορείτε να τσεκάρετε το status με lspci -vvnn, θα δείτε κάτι σαν το
Status: D3 NoSoftRst- PME-Enable+ DSel=0 DScale=1 PME+)
Χοντρικά λοιπόν, η κάρτα πρέπει να ξυπνήσει όταν είναι inactive και γιαυτό χρησιμοποιούνται τα MSI/MSI-X interrupts, οπότε στα logs βλέπουμε τα request για αυτά τα interrupts, τα οποία όμως δεν καταφέρνουν τίποτα απολύτως καθότι ο εν λόγω driver έχει κάποιο bug και δεν καταλαβαίνει πως να στείλει το ανάλογο μήνυμα στον kernel οτι ένα interrupt συνέβη επειδή πχ συνδέσαμε το καλώδιο lan στην θύρα.

Κάπου εδώ αρχίζει ο δεύτερος γολγοθάς προσπαθώντας να βρω workaround. Τα παρακάτω απέτυχαν παταγωδώς:
1) διαγραφή και επαναφόρτωση του module
rmmod e1000e && modprobe e1000e
2) διάφορα boot flags όπως
pcie_msi=off/auto/no_msi
3) disable από το laptop mode tools το power management της κάρτας

τελικά τη λύση έδωσε το powertop(!!) Μόλις από το menu "tunables" άλλαξα το PM για την ethernet από Good σε Bad, et voila, όλα δουλεύουν ρολόι!!
όχι πως αυτό τώρα είναι σοβαρή λύση..αλλαά...

posted by qubix on December 26, 2012

Λοιπόον...επιστροφή στο δεύτερο μέρος της περιπέτειας ή μάλλον failure..
Το πρώτο πράγμα που έκανα λοιπόν μετά από τα προηγούμενα ήταν να δω αν μπορώ να ενεργοποιήσω το power saving της intel3945abg. E φυσικά και δεν γινόταν! Ο λόγος? Λόγω της νέας δομής των οδηγών για τις κάρτες intel ώστε να υπάρχει ένας driver για όλες τις κάρτες, απενεργοποιήθηκε η δυνατότητα power saving γιατί δεν ήταν πλέον συμβατή με τις "legacy" όπως η δική μου (και η 4965agn και πιθανότατα 5xxxx...)
SUPER!
Πάει αυτό..δεν υπάρχει λύση εκτός από recompile του driver με το powersaving ενεργοποιημένο και μάλιστα ΠΑΛΙΟΥ driver.

Next thing to do, απενεργοποιώ ότι χαζομάρα φορτώνεται είτε από μόνη της, είτε επειδή κάποτε δοκίμασα κάτι και ξέμεινε εις αεί. Οτι περιβάλλον και να έχετε, συμβουλή μου είναι, πάτε στο αντίστοιχο "startup applications" και ξεμαρκάρετε ότι δε σας αρέσει. Αν θέλετε να παίξετε κι άλλο, εγκαταστήστε τον bum (boot up manager) να δείτε τι άλλο φορτώνει. Τέλος, μπορείτε πάντα να πάτε μέσω rc και να κάνετε the hard but the nice way τη δουλειά.
Επίσης, αν έχετε τίποτα επιλογές "power management" στο μενού, κοιτάξτε αν μπορείτε να βάλετε το δίσκο να κάνει spin down όταν είναι idle, να χαμηλώνει ένταση το backlight όταν το laptop είναι idle επίσης και τέτοια.

Επόμενο: δίσκος. Σε περίπτωση που ο δίσκος δεν έχει advanced power mode enabled, καλή ιδέα είναι να το κάνουμε ε? Για να δούμε τι γίνεται χρησιμοποιούμε το hdparm που μας λύνει τα χέρια:
hdparm -i /dev/sdx
Λογικά θα δούμε κάτι που να αρχίζει με AdvancedPM=. Στην περίπτωση που δεν είναι ενεργοποιημένο το pm ή δε βγάζουμε άκρη από το output, καλύτερα να τρέξουμε το:
hdparm -B 1 -S 12 /dev/sdX
Τι κάνει αυτό? Θα φανεί από το output:
/dev/sdX: setting Advanced Power Management level to 0x01 (1) setting standby to 12 (1 minutes) APM_level = 1
Μπορεί να φαίνονται υπερβολικές αυτές οι τιμές ( standby ανά λεπτό??, APM level 1?? -255 είναι το disable) και ναι είναι. Δυστυχώς με αυτές τις τιμές ο δίσκος θα παρκάρει τις κεφαλές πολύ συχνά και αυτό προκαλεί φθορά στον δίσκο - μπορείτε να τσεκάρετε από το smart status σε τι load count βρίσκεστε και αν ανεβαίνει γρήγορα με τo
smartctl -d ata -a /dev/sda | grep Load_Cycle_Count
Αν το παραπάνω pipe το επαναλάβετε ανά μερικά λεπτά και δείτε πως ανεβαίνει..επικίνδυνα xD και αν όντως ακούτε τον δίσκο να παρκάρει τις κεφαλές, ε ήρθε η ώρα να αλλάξετε τις ρυθμίσεις με κάτι σαν
hdparm -B 128 -s 120
Εδώ τώρα είμαστε καλύτερα, το APM level 128 είναι το happy middle και ανά 10 λεπτά head parking είναι πιο λογικό.
Αλλά και πάλι μπορεί να είναι ενοχλητικό να ακούς το parking του δίσκου οπότε στην τελική το απενεργοποιούμε και τελείως...

Η συνέχεια σε επόμενο ποστ, όταν δλδ δε θα βαριέμαι να ξανα-ασχοληθώ...

posted by qubix on December 25, 2012

Μου έκατσε σήμερα η ιδέα καθότι διακοπές να δω τι κατανάλωση κάνει το laptop μου!
E, λοιπόν έβαλα το powertop και είδα μια κατανάλωση..17.8W !!! Η τιμή είναι μεγάλη για laptop γενικώς...οπότε έπρεπε να πάρω τα μέτρα μου.
που κάνει την κατανάλωση να ανεβαίνει?
1) cpu - αλλά εδώ ήταν ενεργοποιημένος ο cpu governor ο οποίος ρίχνει την συχνότητα λειτουργίας ανάλογα με τον φόρτο εργασίας
2) hdd ο οποίος ειδικά αν δεν είναι ssd (επειδή έχει μηχανικά μέρη) καταναλώνει αρκετή ενέργεια
3) άλλες συσκευές όπως ήχος, GPU, wifi κλπ για τα οποία οι ρυθμίσεις είναι pain in the ass, όταν μπορούν να γίνουν..

τέλος πάντων, αποφάσισα να πάω με τον εύκολο δρόμο, δηλαδή την εγκατάσταση του laptop-mode-tools το οποίο τρέχει στο background και ενεργοποιεί διάφορα πραγματάκια.
Πριν κάνω αυτό όμως, κοίταξα στο powertop πως πάμε από ρυθμίσεις συστήματος μέχρι τώρα (στο μενού "tunables"). Τα μόνα με status "bad" ήταν του wifi, VM writeback timeout, enable audio codec power management.
Τα έκανα όλα good πατώντας το enter ή μάλλον όχι όλα γιατί η κάρτα wifi (intel 3945ABG) ΔΕΝ έχει ενεργοποιημένο το power saving(!!).
Anywayz αποφάσισα πως προς το παρών μπορώ να ζήσω χωρίς αυτό (αν και θα ψάξω για καμιά 5100 που έχει ενεργοποιημένο το pm...) οπότε έκλεισα χαρούμενος το powertop. ΔΥΣΤΥΧΩΣ βέβαια..το powertop διαμαρτυρήθηκε:
cannot load from file /var/cache/powertop/saved_parameters.powertop
Οπότε τσέκαρα και όντως, δεν υπάρχει τέτοιο αρχείο οπότε και περιχαρής πήγα και το έφτιαξα με touch και πάει το warning.
Το καλό είναι πως η κατανάλωση μειώθηκε στα 13.5W με το που άλλαξα τις εν λόγω ρυθμίσεις.
ΔΥΣΤΥΧΩΣ και πάλι, το powertop ΔΕΝ γράφει τις αλλαγές..κάθε φορά που κάνω επανεκκίνηση, τα ίδια settings εμφανίζονται "bad"...

Συνέχεια στο επόμενο post..

posted by qubix on December 25, 2012

Λοιπόν αποφάσισα να εγκαταστήσω έναν liquorix kernel στην lmde (linux mint debian edition) στο laptop μου, αφενός μεν για να ξεφύγω από τον 3.2 kernel του mint, αφετέρου δε για να δω τυχόν διαφορές!
Η εγκατάσταση είναι πολύ εύκολη:

1)προσθέτουμε στο /etc/apt/sources.list το
deb http://liquorix.net/debian sid main
2)κάνουμε apt-get update για να τραβήξουμε τα νέα πακέτα
3)θα δούμε μια προειδοποίηση πως κάτι δεν είναι signed και πάει λέγοντας οπότε χρειάζεται να κάνουμε
apt-get install '^liquorix-([^-]+-)?keyring.?'
ώστε να εγκατασταθεί το keyring του liquorix
4)κάνουμε install τον kernel που θέλουμε και τέλος!
Φυσικά..δεν πήγαν όλα ρολόι...
Το dkms (dynamic kernel module system) διαμαρτυρήθηκε με το σφάλμα:
dkms.conf: Error! No 'BUILT_MODULE_NAME' directive specified for record #0.
Τι στα windoze είναι αυτό??
Ένα search για να δούμε τι σόι dkms modules έχουμε εγκατεστημένα, θα μας λύσει την απορία!
dpkg -l | grep dkms
Αποτέλεσμα:
είχα δύο πακέτα dkms, ένα του ndiswrapper (χαζομάρα για να τρέχεις drivers των windoze όταν everything else fails..) και του virtualbox. E γενικώς στην περίπτωσή μου δεν χρειάζομαι κανένα από τα δύο οπότε και τα έστειλα στον κουβά... :P (ειδικά αυτό το ndiswrapper...)
πάω τώρα για το reboot! wish me luck...

posted by qubix on December 14, 2012

 Ας πούμε πως θέλετε να εγκαταστήσετε το CDRTOOLS στο debian. ΑΝ μπορέσετε να το εγκαταστήσετε, αυτό που δεν ξέρετε είναι πως δεν βάζετε την κανονική έκδοσή του, αλλά μια..τροποποιημένη από το debian team, για λόγους άδειας χρήσης...

Περισσότερα για αυτό το θέμα στο
http://cdrecord.berlios.de/private/linux-dist.html
Ευτυχώς η εγκατάστασή του είναι πολύ εύκολη:
wget ftp://ftp.berlios.de/pub/cdrecord/cdrtools-3.00.tar.gz
tar -xvzf cdrtools-3.00.tar.gz
make
make install

η νεοεγκατεστημένη αυθεντική βερζιόν των cdrtools θα έχει εγκατασταθεί στο /opt/schily/ οπότε καλό είναι να το βάλουμε και στο path:
PATH=/opt/schily/bin:$PATH

posted by qubix on April 5, 2012

Ας υποθέσουμε πως θέλετε να κάνετε upgrade ένα μέρος μόνο των εγκατεστημένων πακέτων που έχετε. Για παράδειγμα έχετε εγκαταστήσει το mate και θέλετε να το κάνετε upgrade χωρίς όμως ένα μαζικό apt-get update ή ακόμη χειρότερα apt-get dist-upgrade.

Αυτό που θέλουμε είναι
1) ποιά πακέτα του mate έχουν εγκατασταθεί?
αυτό δεν είναι και πολύ δύσκολο, το dpkg -l μπορεί να μας δείξει τι υπάρχει εγκατεστημένο και με ένα pipe σε grep να διαλέξουμε τα mate πακέτα

dpkg - l | grep mate

2)κατάλληλη μορφή της λίστας με τα εγκατεστημένα πακέτα
το πρόβλημα είναι πως θα έχουμε τα αποτελέσματα σε μια μορφή που δεν είναι χρήσιμη για να την περάσουμε στο apt

ii  libmate      1.2.0-2~wheezy    MATE library
ii  libmate-common  1.2.0-2~wheezy    MATE library (common files)
ii  libmatecanvas   1.2.0-1  powerful object-oriented display engine


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

awk '{print $2}'

στην περίπτωση του output μας από το dpkg, το $1 αντιστοιχεί στο "ii", το $2 στο εκάστοτε όνομα του πακέτου, το $3 στην έκδοση κ.ο.κ

αν τώρα κάνουμε pipe το ouput του dpkg και της grep στην AWK, θα έχουμε:

dpkg -l | grep mate | awk '{print $2}'

το οποίο δίνει

libmate
libmate-common
libmatecanvas


πολύ καλύτερα αλλά μπορεί να βελτιωθεί κιάλλο!
Από το manual της AWK βλέπουμε πως μπορούμε να αλλάξουμε την εξορισμού "ανά σειρά" απάντηση στο input που της δίνουμε σε ότι θέλουμε, οπότε στην περίπτωσή μας βολεύει το κενό (space)->

awk 'BEGIN {ORS = " "} ; { print $2 }'

όπου ORS = το πως θα ενώσει τις απαντήσεις στο output η AWK

οπότε τώρα η one-liner εντολή μας γίνεται:

dpkg -l | grep mate | awk 'BEGIN {ORS = " " } ; { print $2 }'

το output της οποίας πλέον είναι:

libmate-common mate-applets mate-applets-common ...κοκ


3)apt-get install
Άρα τώρα μπορούμε να χρησιμοποιήσουμε την παραπάνω one-liner σε συνδυασμό με το apt ως εξής:

apt-get install `dpkg -l | grep mate- | awk 'BEGIN {ORS = " " } ; { print $2 }'`

προσέξτε πως έβαλα την one-liner μέσα σε δύο " ` ", αυτό ισοδυναμεί με το output της one-liner δλδ πρώτα θα εκτελεστεί ότι έχουμε στα "`" και μετά θα περαστεί στο apt!

Μετά αρκεί να πατήσουμε ένα "y" και enter :]

posted by qubix on March 4, 2012

Μερικές φορές ακόμη και σε κάποια εγκατάσταση linux, μπορεί να παγώσει το desktop και να μην αποκρίνεται ούτε το πληκτρολόγιο, ούτε το ποντίκι. Οι φίλες/φίλοι που έχουν windows σίγουρα έχουνε άφθονες τέτοιες εμπειρίες, αλλά συμβαίνει και στο linux!

Το καλό με το linux όμως είναι πως υπάρχουν τρόποι αντιμετώπισης του "παγώματος" χάρις στην αρχιτεκτονική του που επιτρέπει στο σύστημα να παγώνει το desktop, αλλά πίσω από αυτό, τα υπόλοιπα να παίζουν κανονικά!

Τι κάνουμε λοιπόν?? Ο σκοπός μας είναι είτε να ξεκολλήσουμε το σύστημα, είτε να κάνουμε επανεκκίνηση χωρίς το "κουμπί"!. Δοκιμάζουμε με την παρακάτω σειρά:

1) πατάμε Alt-Backspace για να κάνουμε restart το γραφικό περιβάλλον

2) πατάμε Alt-F1 για να ανοίξει ένα text-mode και από εκεί να κάνουμε login στην κονσόλα με τα στοιχεία του χρήστη μας. Μετά με sudo bash ή su (αν έχουμε ενεργοποιημένο root χρήστη) μπορούμε να κάνουμε ένα κανονικό reboot χωρίς κίνδυνο να χαθούν αρχεία ή να προκαλέσουμε βλάβη στο σύστημα αρχείων.

3) Αν τα παραπάνω δεν πετυχαίνουν, το κουμπί SysRq (ή αλλιώς Print Screen) μπορεί να μας βοηθήσει να κάνουμε μια καθαρή επανεκκίνηση:

Πατάμε διαδοχικά:
* alt+sysrq+r (επαναφορά του πληκτρολογίου)
* alt+sysrq+s (συγχρονισμός αρχείων)
* alt+sysrq+e (στέλνει το σήμα τερματισμού σε όλες τις διεργασίες εκτός από την "init")
* alt+sysrq+i (στέλνει το σήμα "kill" σε όλες τις διεργασίες εκτός από την "init")
* alt+sysrq+u (κάνει mount το σύστημα αρχείων σε read-only mode, οπότε δε θα γίνει fsck μετά το reboot)
* alt+sysrq+b (κάνει επανεκκίνηση. Χωρίς τα προηγούμενα βήματα κάνει "hard reset").
 

Σημαντικό είναι να δίνουμε μερικά δευτερόλεπτα μεταξύ των παραπάνω βημάτων, ώστε να ολοκληρώνονται. Για παράδειγμα ο τερματισμός όλων των διεργασιών μπορεί να πάρει ..λιγάκι.

Τα γράμματα μπορούμε εύκολα να τα θυμόμαστε:

"Reboot System Even If Utterly Broken"


Ένας άλλος τρόπος:
"Raising Skinny Elephants Is Utterly Boring"


 

posted by qubix on January 10, 2012

Τι γίνεται όταν πας να κάνεις extract ένα αρχείο zip και σου επιστρέφει την μούτζα:

unsupported compression method 99??

Καταρχήν τι είναι αυτό το compression method 99?

Ψάχνοντας βρήκα την παρακάτω λίστα που υποστηρίζει το winzip στις πρόσφατες εκδόσεις του:
    Enhanced deflate - Compression Method 9
    bzip2 - Compression Method 12
    WavPack - Compression Method 97
    PPMd - Compression Method 98
    LZMA - Compression Method 14
    Jpeg compression - Compression Method 96
    AES encryption - Compression Method 99

Άρα πρόκειται για κρυπτογραφημένο zip αρχείο, το οποίο δεν ανοίγει με το zip utility μιας και δεν υποστηρίζει αυτή την μέθοδο 99.

Η λύση είναι η εγκατάσταση του p7zip:

debian: apt-get install p7zip-full
centos/RHEL/fedora: yum install p7zip


και μετά μπορούμε να κάνουμε

7z x -pPASSWORD archive.zip

posted by qubix on October 8, 2011

Για να ενεργοποιήσουμε τον root user σε ένα σύστημα linux (πχ ubuntu, mint κλπ) το οποίο δουλεύει με sudo, τα βήματα είναι πολύ απλά:

1) ανοίγουμε ένα τερματικό
2) πατάμε sudo -i (γράφουμε το password του χρήστη μας όταν ζητηθεί)
3) πατάμε passwd root και γράφουμε το νέο pass του root


et voila! έχουμε ενεργό τον root χρήστη :)

hyperworks