Posts Tagged with linux

posted by qubix on December 29, 2015

Σε περίπτωση που χρειαστεί να φτιάξετε ένα iso από κάποιο dvd, στον κόσμο του linux είναι το πιο εύκολο πράγμα

cat /dev/sr0 > /path/to/myisofile.iso

ο λόγος που αυτό είναι δυνατό είναι επειδή το dvdrom σας στο linux είναι ένα block level device στο οποίο έχετε πρόσβαση από το ειδικό αρχείο /dev/sr0

brw-rw----+ 1 root cdrom 11, 0 Dec 29 12:39 /dev/sr0

Αν τώρα χρειαστεί να γράψετε αυτό το iso σε ένα usb disk/stick, και πάλι είναι μια γραμμή όλη κι όλη

dd bs=4 if=/path/to/myisofile.iso of=/dev/sdX

το bs είναι προαιρετικό αλλά καλό είναι να το βάλετε για να πάει λίγο πιο γρήγορα η αντιγραφή

/dev/sdX είναι το usb drive στο οποίο θέλετε να γράψετε το iso

για να βρείτε πιο είναι στο σύστημά σας, μπορείτε να γράψετε fdisk -l και να δείτε γενικά τους δίσκους -οπότε και να βρείτε ποιος είναι το usb drive-

τέλος, για να δείτε την πρόοδο μπορείτε να στείλετε ένα SIGINFO σήμα από ένα δεύτερο terminal

kill -USR1 $(pidof dd)

και στο terminal που τρέχει το dd θα δείτε στατιστικά όπως:

464300033+0 records in
464300033+0 records out
1857200132 bytes (1.9 GB) copied, 1438.94 s, 1.3 MB/s


posted by qubix on December 27, 2015

Πρόσφατα μου ανατέθηκε το task να μεγαλώσω ένα partition σε ένα vm. Μια χαρά λέω, πάμε. Τα είχα υπολογίσει όμως χωρίς τον ξενοδόχο..ο οποίος είχε κάνει την εγκατάσταση ΧΩΡΙΣ lvm οπότε το μόνο που έμενε ήταν το live resize...

Και πως γίνεται αυτό με ρωτάτε??

Ω ναι ... πρέπει να σβηστεί το partition και να ξαναγραφτεί..

αρχίζουμε κοιτάζοντας την υπάρχουσα κατάσταση:

# fdisk /dev/sda

Command (m for help): p

Disk /dev/sda: 128.8 GB, 128849018880 bytes
255 heads, 63 sectors/track, 15665 cylinders, total 251658240 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000d11b8

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   100663295    50330624   83  Linux
/dev/sda2       100665342   104855551     2095105    5  Extended
/dev/sda5       100665344   104855551     2095104   82  Linux swap / Solaris

Σβήνουμε τα partitions από το partition table
Command (m for help): d
Partition number (1-5): 1

Command (m for help): d
Partition number (1-5): 2

τσεκάρουμε και όντως έχουν σβηστεί
Command (m for help): p

Disk /dev/sda: 128.8 GB, 128849018880 bytes
255 heads, 63 sectors/track, 15665 cylinders, total 251658240 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000d11b8

Device Boot      Start         End      Blocks   Id  System

Φτιάχνουμε το νέο partition
Command (m for help): n
Partition type:
p   primary (0 primary, 0 extended, 4 free)
e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-251658239, default 2048): 2048
Last sector, +sectors or +size{K,M,G} (2048-251658239, default 251658239): 247468030

αν προσέξετε έχω αφήσει 251658239 - 247468030 = 4190209 sectors, το οποίο χοντρικά είναι 2G

Command (m for help): p
Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048   247468030   123732991+  83  Linux

Πάμε τώρα να φτιάξουμε και το extended partition στο οποίο μέσα θα είναι και το ..swap (μη με ρωτάτε γιατί...)
Command (m for help): n
Partition type:
p   primary (1 primary, 0 extended, 3 free)
e   extended
Select (default p): e
Partition number (1-4, default 2): 2
First sector (247468031-251658239, default 247468031):
Using default value 247468031
Last sector, +sectors or +size{K,M,G} (247468031-251658239, default 251658239):
Using default value 251658239

Command (m for help): p

Disk /dev/sda: 128.8 GB, 128849018880 bytes

Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048   247468030   123732991+  83  Linux
/dev/sda2       247468031   251658239     2095104+   5  Extended

Και τέλος φτιάχνουμε και το μελλοντικό swap
Command (m for help): n
Partition type:
p   primary (1 primary, 1 extended, 2 free)
l   logical (numbered from 5)
Select (default p): l
Adding logical partition 5
First sector (247470079-251658239, default 247470079):
Using default value 247470079
Last sector, +sectors or +size{K,M,G} (247470079-251658239, default 251658239):
Using default value 251658239

Ιδού το νέο partition table
Command (m for help): p

Disk /dev/sda: 128.8 GB, 128849018880 bytes

Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048   247468030   123732991+  83  Linux
/dev/sda2       247468031   251658239     2095104+   5  Extended
/dev/sda5       247470079   251658239     2094080+  83  Linux

αλλάζουμε το partition type στο swap
Command (m for help): t
Partition number (1-5): 5
Hex code (type L to list codes): 82
Changed system type of partition 5 to 82 (Linux swap / Solaris)

Command (m for help): p

Disk /dev/sda: 128.8 GB, 128849018880 bytes

Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048   247468030   123732991+  83  Linux
/dev/sda2       247468031   251658239     2095104+   5  Extended
/dev/sda5       247470079   251658239     2094080+  82  Linux swap / Solaris

βάζουμε το boot flag στο 1ο partition
Command (m for help): a
Partition number (1-5): 1

Command (m for help): p

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   247468030   123732991+  83  Linux
/dev/sda2       247468031   251658239     2095104+   5  Extended
/dev/sda5       247470079   251658239     2094080+  82  Linux swap / Solaris

και τέλος γράφουμε τις αλλαγές στον δίσκο
Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

όπως βλέπετε οι αλλαγές δεν είναι ορατές από τον kernel οπότε πρέπε να δοκιμάσετε είτε με το partprobe, είτε με το kpartx. Αν κανένα από τα δύο δεν πιάσει, απλά κάνετε reboot και μπαίνετε σε single user mode

Αφού καταφέραμε να μεγαλώσουμε το partition, πρέπει τώρα να μεγαλώσουμε και το filesystem μέσα σε αυτό. Ευτυχώς για εμάς αυτό το κάνει το resize2fs

# resize2fs /dev/sda1
resize2fs 1.42.9 (4-Feb-2014)
Filesystem at /dev/sda1 is mounted on /; on-line resizing required
old_desc_blocks = 3, new_desc_blocks = 8
The filesystem on /dev/sda1 is now 30933247 blocks long.

# df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sda1      ext4      117G   20G   92G  18% /
none           tmpfs     4.0K     0  4.0K   0% /sys/fs/cgroup
udev           devtmpfs  991M   12K  991M   1% /dev
tmpfs          tmpfs     201M  488K  200M   1% /run
none           tmpfs     5.0M     0  5.0M   0% /run/lock
none           tmpfs    1001M     0 1001M   0% /run/shm
none           tmpfs     100M     0  100M   0% /run/user

===================

Για το τέλος αφήσαμε το swap:

# free -m
total       used       free     shared    buffers     cached
Mem:          2001        592       1409          0         62        459
-/+ buffers/cache:         71       1930
Swap:            0          0          0

όντως δεν υπάρχει swap αφού δεν το φτιάξαμε οπότε πάμε να το "φορμάρουμε"

# mkswap /dev/sda5
Setting up swapspace version 1, size = 2094076 KiB
no label, UUID=8d78c3dc-5ed9-42c1-a04f-050b99b8a39d

είμαστε έτοιμοι και χωρίς απώλειες ελπίζω!

posted by qubix on May 18, 2015

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

Προφανώς μία λύση είναι να ..αγοράσουμε περισσότερη RAM. Αυτό όμως δεν είναι πάντα εφικτό. Ίσως το μηχάνημα να μην παίρνει περισσότερη μνήμη, ίσως δεν υπάρχουν άλλα slots για να μπει, ίσως είναι κάποιο εταιρικό laptop το οποίο δεν μπορούμε ή δε θέλουμε να πειράξουμε.

Ήρθε η ώρα λοιπόν για τη δημιουργία ενός swapfile! Τι είναι αυτό καταρχάς. Το swapfile είναι ένα αρχείο το οποίο το λειτουργικό μπορεί να χρησιμοποιήσει ως εικονική μνήμη RAM όταν η κανονική τελειώσει. Αυτό έχει τα υπερ του, όπως για παράδειγμα το οτι μπορούμε να βάλουμε 64Gb αν θέλουμε και να σηκώσουμε 10 Virtual machines με windozzzee, αλλά έχει και το κατά πως οι σκληροί δίσκοι -ακόμη και οι ssd- είναι αργοί σα χελώνες σε σύγκριση με τη RAM και όλα θα σέρνονται.

Εν πάση περιπτώσει η διαδικασία είναι πολύ απλή. Χρειάζεται βέβαια να έχουμε δικαιώματα root ή παραπλήσια ώστε να την πραγματοποιήσουμε.

Πάμε παρακάτω λοιπόν:

1) τσεκάρουμε αν υπάρχει ήδη swap file ή κάποιο swap partition

free -m

αν δεν υπάρχει swap θα πρέπει να δείτε μια γραμμή

Swap: 0 0 0

2) εφόσον δεν υπάρχει κάποιο swap, πάμε να φτιάξουμε ένα με το utility fallocate

fallocate /swapfile -l 2G

έβαλα εγώ τώρα 2G, μπορείτε εσείς να βάλετε όσο θέλετε, κατά προτίμηση όσο και η διαθέσιμη RAM που έχετε, εκτός και έχετε πολύ λίγη οπότε βάλτε επί δύο ή τρία

3) κάνουμε το αρχείο swapfile format ως swap

mkswap /swapfile

4) του δίνουμε τα κατάλληλα δικαιώματα για να μη διαμαρτύρεται το σύστημα πως είναι "insecure"

chmod 600 /swapfile

5) του δίνουμε μία να ξεκινήσει :]

swapon /swapfile

6) τσεκάρουμε πως τώρα υπάρχει swap

swapon (σκέτο χωρίς ορίσματα)

πρέπει να δούμε κάτι σαν το παρακάτω:

NAME TYPE SIZE USED PRIO
/swapfile file 2G 0B -1

7) πάμε τώρα στο αρχείο /etc/fstab να το δηλώσουμε ώστε σε κάθε εκκίνηση να γίνεται mount

nano /etc/fstab (ή vim, emacs ότι editor προτιμάτε)

και προσθέτουμε τη γραμμή

/swapfile1 none swap sw 0 0

8) σώζουμε το αρχείο και είμαστε έτοιμοι!

posted by qubix on May 9, 2014

Ποιος linuxας δεν έχει ονειρευτεί να κάνει build τον δικό του linux kernel? Ευτυχώς τα πράγματα δεν είναι τόσο δύσκολα όσο παλιότερα και με μερικές εντολές μπορούμε να κάνουμε το όνειρο πραγματικότητα!

χρειαζόμαστε καταρχήν τα παρακάτω

apt-get install libncurses5-dev gcc make git exuberant-ctags

φτιάχνουμε έναν φάκελο στο /usr/src ή όπου θέλουμε και κάνουμε clone το kernel tree κατευθείαν από τον linus
git clone https://github.com/torvalds/linux.git

μπορούμε να δούμε πληροφορίες για τα τελευταία commits και τα περιεχόμενα του tree με τις παρακάτω git εντολές
git tag -l | less
git show


σε περίπτωση που χρειαστεί να ενημερώσουμε το tree, αρκεί να κάνουμε ένα pull ενώ είμαστε στον φάκελο που φτιάξαμε
git pull

με το git log, βλέπουμε τις τελευταίες αλλαγές πχ το τελευταίο commit που έγινε
git log

χρειάζεται τώρα να κάνουμε ένα checkout στην έκδοση του kernel που θέλουμε να ετοιμάσουμε ώστε να μη γίνει compile όλο το tree :)
git checkout -v3.15-rc4

οι επιλογές για το compilation του kernel είναι..1652(!!) οπότε μπορούμε να αντιγράψουμε το υπάρχον working configuration από το σύστημά μας. Καταρχήν εάν είναι ρυθμισμένος ο kernel να κάνει output στο proc το configuration, εύκολα μπορούμε να το πάρουμε κάνοντας:
zcat /proc/config.gz > .config

αν τώρα αυτό δεν υπάρχει, μπορούμε πάντα να το πάρουμε από το /boot/
cp /boot/config-`uname -r` .config

το uname -r το χρησιμοποιούμε για να δούμε την έκδοση kernel που τρέχουμε και το όνομα του config αρχείου είναι απαραίτητα το .config

σε περίπτωση που θέλουμε να αλλάξουμε ρυθμίσεις όπως πχ να προσθέσουμε μια custom string στο όνομα του kernel, πατάμε nconfig και εξερευνούμε τις ρυθμίσεις
make nconfig

για να γίνει το compilation αρκεί ένα απλό make. Αν τώρα έχουμε πολυπύρηνο επεξεργαστή, μπορούμε να αφιερώσουμε παραπάνω πυρήνες με το -jX όπου Χ o αριθμός πυρήνων. Αν έχουμε 4-πύρηνο επεξεργαστή μπορούμε να βάλουμε οποιονδήποτε αριθμό μεταξύ 2 και 5 (ναι είναι +1 το maximum). Φυσικά αν ταυτόχρονα έχουμε σχέδια όπως να σερφάρουμε για περάσει η ώρα, βάζουμε μικρότερο αριθμό από τον διαθέσιμο.
make -jX

αφού το compilation τελειώσει και το οποίο θα πάρει κάποια ώρα οπότε φτιάξτε κανένα καφέ, φάτε τίποτα κ.ο.κ, ήρθε η στιγμή να κάνουμε στο σύστημα install τα modules του kernel στο /lib/modules/.
Ευτυχώς είναι πολύ εύκολο:
make modules_install

και μετά κάνουμε install τον kernel που περιλαμβάνει αντιγραφή του στο /boot/ αντιγραφή του config, update τον grub και πάει λέγοντας. Μπορείτε να το κάνετε manual όλο αυτό αλλά καλύτερα να πατήσετε:
make install

θα δείτε διάφορα όπως:

sh /media/shared/linux/kernel/linus/linux/arch/x86/boot/install.sh 3.15.0-rc4gdimi-2bab43e2528f arch/x86/boot/bzImage \ System.map "/boot"
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 3.15.0-rc4gdimi-2bab43e2528f /boot/vmlinuz-3.15.0-rc4gdimi-2bab43e2528f
run-parts: executing /etc/kernel/postinst.d/dkms 3.15.0-rc4gdimi-2bab43e2528f /boot/vmlinuz-3.15.0-rc4gdimi-2bab43e2528f
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.15.0-rc4gdimi-2bab43e2528f /boot/vmlinuz-3.15.0-rc4gdimi-2bab43e2528f
update-initramfs: Generating /boot/initrd.img-3.15.0-rc4gdimi-2bab43e2528f

κλπ κλπ


Είμαστε έτοιμοι, κάνουμε reboot και παρακολουθούμε χαροπά τον kernel μας να φορτώνει κατά την εκκίνηση :D
 

posted by qubix on March 4, 2014

Λοιπόν σε αρκετά datacenters η ανοιχτή πόρτα για vnc viewing είναι η 5900. Το πρόβλημα είναι πως κάποια προγράμματα σε linux που ανοίγουν χωριστό X session σε κάθε login, υπολογίζουν την πόρτα σε 5900+number_of_display. Οπότε αν θέτε να ανοίξετε ένα vnc για κάποιον πελάτη/χρήστη ή τον εαυτό σας, τζίφος..ένα παραδειγμά τέτοιο είναι το xtightvnc.

Η λύση? Πάμε και κάνουμε edit το αρχείο

/usr/bin/vncserver

Μη φοβάστε, είναι ένα perl script...
Βρίσκουμε τη γραμμή

$vncPort = 5900 + $displayNumber;

και αλλάζουμε το 5900 σε...5899..

Οκ δεν είναι και πολύ intuitive λύση αλλά για έναν χρήστη κάνει τη δουλειά!

Φυσικά μπορούμε να χρησιμοποιήσουμε κάποιον άλλο vnc server πχ x11vnc ο οποίος ακούει στην 5900 αλλά χρησιμοποιεί ένα ήδη υπάρχον X session, περίπτωση που δεν ταιριάζει σε όλα τα σενάρια χρήσης.

posted by qubix on December 18, 2013

Πρόσφατα προσπαθούσα να κάνω update το bios μιας σχετικά παλιάς μητρικής gigabyte του 2006. Το καλό της υπόθεσης (νόμιζα) ήταν πως είχε ένα flash utility μέσα από το bios το οποίο υποτίθεται πως αν βάλεις το bios file σε ένα floppy disk, το διαβάζει και κάνει το update (για usb stick ούτε λόγος..).
Μετά από κάποιες αποτυχημένες προσπάθειες μιας και ότι δισκέτα και να έβαζα κάποιο I/O error γινόταν και μιας και το pc είχε linux οπότε κάτι κουλά windoze flash bios utils δεν μπορούσα να τα δοκιμάσω..είπα να δω τι γίνεται από κονσόλα linux..

Ε λοιπόν, πιο απλό δεν γίνεται:

1) κάνουμε install το flashrom
2) τρέχουμε $flashrom --read bios.bak για να πάρουμε backup το υπάρχον bios
3) μετά τρέχουμε $flashrom --write to_arxeio_tou_bios -p internal
Από την παραπάνω γραμμή που είναι αρκετά self-explaining, το μόνο που χρειάζεται να εξηγήσουμε είναι η παράμετρος -p, με την οποία λέμε στο flashrom ποιο chip να χρησιμοποιήσει για να γράψει το bios. O λόγος είναι πως υποστηρίζει παραπάνω από μια συσκευή, δηλαδή μπορεί να γράψει το bios/firmware σε κάρτες γραφικών, controllers και φυσικά και στην ίδια την μητρική οπότε χρειάζεται να του πούμε τι να κάνει.
To internal λοιπόν, το βάζουμε για flash σε μητρικές.

Για να πάρετε μια ιδέα του τι υποστηρίζει, πάτε εδώ: supported programmers

posted by qubix on November 17, 2013

Στον παρόν οδηγό δε θα ασχοληθούμε με την κατάσταση στο χώρο των πιστοποιητικών η οποία είναι νταβαντζιλίκι και απαράδεκτη...θα δούμε πως μπορούμε να προσθέσουμε το cacert ως "νόμιμο" authority στον chrome/chromium.

Περισσότερα για το cacert στο site τους, cacert.org

Συνοπτικές οδηγίες λοιπόν για να κάνουμε import τα βασικά πιστοποιητικά του cacert σε chrome/chromium (σε linux πάντα! :P)

Πρώτα εγκαθιστούμε τα libnss3 tools, τα οποία μας είναι πολύ χρήσιμα και φυσικά "κάθονται" πάνω στη βιβλιοθήκη libnss3 η οποία υποστηρίζει διάφορα σχήματα ασφαλείας όπως sslv2/4,TLS, PKCS #5, #7, #11, #12, S/MIME, X.509 v3 κλπ κλπ

$ apt-get install libnss3-tools



Μιας και πρόκειται για καινούργια εγκατάσταση (υποθέτω..) χρειάζεται να φτιάξουμε τον φάκελο στον οποίο θα αποθηκεύουμε τα πιστοποιητικά και ότι άλλο χρειαστεί

$ mkdir -p $HOME/.pki/nssdb


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

$ certutil -d $HOME/.pki/nssdb -N



Τώρα κατεβάζουμε τα πιστοποιητικά του cacert (το root και το class3)

$ wget -O cacert-root.crt "http://www.cacert.org/certs/root.crt"
$ wget -O cacert-class3.crt "http://www.cacert.org/certs/class3.crt"



Και τα κάνουμε import στη βάση δεδομένων που δημιουργήσαμε πιο πάνω

$ certutil -d sql:$HOME/.pki/nssdb -A -t TC -n "CAcert.org" -i cacert-root.crt 
$ certutil -d sql:$HOME/.pki/nssdb -A -t TC -n "CAcert.org Class 3" -i cacert-class3.crt



Αυτό ήταν, τώρα sites με δωρεάν πιστοποιητικά ssl από το cacert θα είναι καθόλα νόμιμα και δε θα πετάει ενοχλητικές προειδοποιήσεις "ασφαλείας" σε κάθε μας βήμα ο chrome ή chromium...

posted by qubix on October 10, 2013

Αρκετά πακέτα στο arch δεν βρίσκονται στα επίσημα repositories αλλά στο Arch User Repository.
Στον παρόν οδηγό δε θα χρησιμοποιήσουμε το yaourt που είναι ένα utility βοηθητικό για το AUR. Παρακάτω ακολουθεί η διαδικασία εγκατάστασης του πακέτου gimp-gap (GIMP Animation Package).

1) Πάμε στη σελίδα του aur για το πακέτο gimp-gap
https://aur.archlinux.org/packages/gimp-gap/

2) κατεβάζουμε στο /tmp/ το tarball
cd /tmp/ && wget https://aur.archlinux.org/packages/gi/gimp-gap/gimp-gap.tar.gz

2.5) αν δεν έχουμε το base-devel το κάνουμε install:
pacman -Su base-devel

3) κάνουμε untar το tarball και μπαίνουμε στο directory που θα δημιουργηθεί
tar xvzf gimp-gap.tar.gz && cd gimp-gap

4) φτιάχνουμε το πακέτο και το κάνουμε install
makepkg -i --asroot
4.5) σε περίπτωση που υπάρχουν dependancies τα οποία απαιτούνται για να συνεχιστεί η εγκατάσταση, τρέχουμε
makepkg -s --asroot
η εγκατάσταση των dependancies και τυχόν compilations μπορεί να πάρουν αρκετή ώρα οπότε απλά..περιμένουμε :]

4.5.1) μετά κάνουμε
makepkg -U pacman -U gimp-gap-2.6.0-1-x86_64.pkg.tar.xz

και η εγκατάσταση ολοκληρώνεται!

posted by qubix on July 14, 2013


Αφού κάνουμε upgrade το mate είτε από την 1.2 είτε από την 1.4 έκδοση στην 1.6, διαπιστώνουμε πως ξαφνικά δεν βλέπουμε τα thumbs από εικόνες, pdf κλπ, πως η cpu τρέχει σαν τρελή και ο δίσκος όλο γράφει και γράφει κάτι.

Δε συμβαίνει κάτι περίεργο, απλά ο νέος caja ψάχνει τον φάκελο ~/.cache/thumbnails που δεν υπάρχει! Αντί αυτού πάει στον ~/.thumbnails/failed και γράφει εκεί..κάτι...

Συνεπώς η λύση είναι απλή:

- bootάρουμε σε single user mode ή αν δεν έχει (κανένα ubuntu-based δλδ...) κάνουμε logout και πατάμε Ctrl-F1 για να ανοίξουμε κονσόλα - αφού κάνουμε login σβήνουμε τον φάκελο ~/.thumbnails και ότι έχει μέσα
- και τον αντικαθιστούμε με ένα symlink:
ln -s ~/.cache/thumbnails ~/.thumbnails

κάνουμε reboot και θα διαπιστώσουμε πως όλα πάνε καλά..

posted by qubix on July 6, 2013

crude steps to install and use a dvb hybrid pcmcia card on arch

card: Kworld NB TV 220

1) view dmesg

2) generic, autodetect failed!

3) 17de:7203 -->this is the id of the card

4) card=88 -> Tevion/KWorld DVB-T 220RF 17de:7201 -->this is the closest I could find. Hopefully it uses the same chipset!

5)/etc/modprobe.d/saa7134.conf --> now edit this to pass the following parameter
options saa7134 card=88

6) pacman -S dvbutils

7) dvbscan /usr/share/dvb/dvb-t/gr-Athens > .tzap/channels.conf
Unable to query frontend status -->oops not working!

8) dvbv5-scan /usr/share/dvb/dvb-t/gr-Athens > .tzap/channels.conf ERROR key/value without a channel group while parsing line 3 of /usr/share/dvb/dvb-t/gr-Athens -->not working either

9) new file format for dvbv5-scan
Apparently there is a new format..
cp /usr/share/dvb/dvb-t/auto-Default .
dvb-format-convert -I CHANNEL -O DVBV5 auto-Default auto-Default-v5
dvbv5-scan auto-Default-v5

10) dvbv5 channel file incompatible with vlc --> but vlc doesnt understand it
dvb-format-convert segfault -->and the default util throws a segfault..

11) w_scan -->daraam this is a utility we can use to convert channel format output
wget http://wirbel.htpc-forum.de/w_scan/w_scan-20130331.tar.bz2
extract
./configure
make
make install
w_scan -ft -L > channels.xspf

12) vlc channels.xspf
-->this works! Finaly!!
DONE

hyperworks