Tuesday, September 22, 2009

FreeBSD 8.0-RC1 Custom XFCE DVD iso


Εδώ και λίγο καιρό έχω ξεκινήσει ένα μικρό project με σκοπό τη δημιουργία custom FreeBSD DVDs για εγκατάσταση κυρίως σε μηχανήματα desktop. Ένα από τα βασικά προβλήματα χρήσης του FreeBSD ως desktop είναι ότι χρειάζεται αρκετά προγράμματα, και οι περισσότεροι "χρήστες" (υπάρχουν "χρήστες" στο FreeBSD; -lol-) προτιμάμε τα ports για την εγκατάσταση τους.

Τα ports δίνουν φοβερές δυνατότητες και ελευθερία και είναι όνειρο να τα χρησιμοποιήσει κάποιος σε ένα server που χρειάζεται ίσως 80-100 προγράμματα μικρού/μεσαίου μεγέθους. Για ένα desktop όμως που χρειάζεται τυπικά πάνω από 500 -και μερικά πολύ μεγάλα, όπως τα γραφικά περιβάλλοντα και το OpenOffice- η εγκατάσταση φαίνεται να είναι ατελείωτη.

Φυσικά, το FreeBSD Project διαθέτει και έτοιμα πακέτα, τόσο στο ftp site όσο και στα CD/DVD εγκατάστασης. Όμως τα πακέτα του CD απαρχαιώνονται γρήγορα και τι γίνεται αν θέλουμε να εγκαταστήσουμε ένα μηχάνημα με αργό (ή καθόλου) Internet;

Στην τοποθεσία:

http://freebsd-custom.wikidot.com

θα βρείτε έτοιμα DVD iso με τα τελευταία πακέτα για να εγκαταστήσετε το FreeBSD 8.0-RC1 (που μόλις κυκλοφόρησε) με XFCE περιβάλλον και διάφορα καλούδια (όπως OpenOffice, inkscape, gimp, evince κλπ). Θα βρείτε επίσης και αντίστοιχες XFCE και GNOME εκδόσεις για FreeBSD 7.2-RELEASE (αν και είναι παλιότερες).

Και φυσικά μην παραλείψετε να μου στείλετε τα σχόλια σας, είτε εδώ είτε στο email μου!

Saturday, July 25, 2009

Centos, RAID1, mdadm και Άλλες Ιστορίες...

Το πως ακριβώς βρέθηκα να ασχοληθώ με αυτό, είναι μεγάλη ιστορία. Αλλά για την ώρα ας πούμε ότι τα παρακάτω τα εφάρμοσα σε VMWare και πιθανόν να χρειαστεί να τα εφαρμόσω και σε απομακρυσμένο μηχάνημα. ΠΟΛΥ απομακρυσμένο (wish me luck).

Το Σενάριο


Έχετε ένα απομακρυσμένο υπολογιστή που έχει μέσα λειτουργικό, δεδομένα, χρήστες κλπ. σε ένα δίσκο. Ο υπολογιστής σας χρησιμοποιεί Centos. Θέλετε να δημιουργήσετε RAID1 προσθέτοντας ένα δίσκο. Προφανώς η εκκίνηση θα γίνεται πλέον από τη συστοιχία RAID.

Προβλήματα



  • Με ποιο τρόπο θα γίνει σε ένα μηχάνημα που δεν έχουμε console access, αλλά μόνο ssh

  • Πόση ώρα θα είναι το downtime

  • Πως θα αντιγραφούν τα δεδομένα και πως θα εξασφαλιστεί ότι μπορούμε να εκκινήσουμε από τη συστοιχία

  • Τι γίνεται σε περίπτωση προβλήματος


Από όλα τα παραπάνω, το μόνο που μπορώ να απαντήσω είναι το τελευταίο: με δεδομένο ότι δεν υπάρχει δυνατότητα console και single user, ένα λάθος θα είναι καταστροφικό. Και με δεδομένο ότι οι άνθρωποι στο remote site δεν ξέρουν και πολλά...


Αναφορές


Μεγάλη βοήθεια στην παραπάνω διαδικασία είχα από το άρθρο του falko στο HowToForge. Μπορείτε να το δείτε: How To Set Up Software RAID1 On A Running System (Incl. GRUB Configuration). Αν και το άρθρο αναφέρεται σε Debian, υπέθεσα ότι θα είναι πολύ κοντά και στο Centos και ευτυχώς, είχα δίκιο! Το παρακάτω είναι ουσιαστικά προσαρμογή του άρθρου στο Centos.


Η μόνη μάλλον διαφορά είναι στον τρόπο ανανεώσης του initrd image, αλλά βρήκα τι γίνεται σε ένα... forum. Δεν θέλω σχόλια παρακαλώ. Ελλείψη Handbook, η τεκμηρίωση είναι τα forums.


Αρχική Εγκατάσταση


Ξεκίνησα με μια βασική εγκατάσταση τύπου server για το Centos (vmware πάντα). Φτάνοντας στην κονσόλα, root login και ξεκινάμε.


To Centos 5.2 που χρησιμοποίησα έχει πυρήνα 2.6.18 και οι δίσκοι (IDE) έχουν ονόματα hda, hdb κλπ. Το σύστημα είναι εγκατεστημένο στον hda, σε τρία partitions: hda1 (/boot), hda2 (swap), hda3 (/). Δεν έχει χρησιμοποιηθεί LVM που κανονικά είναι το default στον installer.


Κλείστε το Selinux: Το πιθανότερο είναι να έχετε προβλήματα διαφορετικά. Τροποποιήστε το αρχείο /etc/selinux/config:

SELINUX=disabled

και κάντε reboot.


Πρώτη κίνηση είναι να δημιουργηθούν τα ίδια partitions στον hdb όπως και στον hda. Αυτό είναι απλό:



sfdisk -d /dev/hda | sfdisk /dev/hdb

Θα πρέπει να φορτωθεί το module RAID1 στον πυρήνα. Το βασικό πρόβλημα είναι ότι πρέπει να φορτώνεται νωρίς (πριν την προσάρτηση του root file system - vinum chapter dejavu) γιατί το ίδιο το root file system θα είναι πάνω στη συστοιχία. Τα modules αυτά θα πρέπει να μπουν στο initrd, κάτι που θα δούμε παρακάτω.



modprobe raid1

Χρησιμοποιώντας την fdisk, αλλάζουμε και τα τρία partitions του δεύτερου δίσκου σε τύπο fd, Linux Raid autodetect.


fdisk /dev/hdb

Είμαστε έτοιμοι να δημιουργήσουμε τις συσκευές:


mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/hdb1
mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/hdb2
mdadm --create /dev/md2 --level=1 --raid-disks=2 missing /dev/hdb3


Και μπορούμε να δημιουργήσουμε τα file systems και το swap space:


mkfs.ext3 /dev/md0
mkswap /dev/md1
mkfs.ext3 /dev/md2


Δημιουργούμε το /etc/mdadm.conf (στο Centos, είναι άδειο):
mdadm --examine --scan >> /etc/mdadm.conf

Δημιουργούμε δύο καταλόγους στο /mnt για να προσαρτήσουμε προσωρινά τις συσκευές και να αντιγράψουμε τα αρχεία:


mkdir /mnt/md0
mkdir /mnt/md2
mount /dev/md0 /mnt/md0
mount /dev/md2 /mnt/md2


Πριν αρχίσουμε την αντιγραφή, αλλάζουμε το /etc/fstab:



/dev/md2 / ext3 defaults 1 1
/dev/md0 /boot ext3 defaults 1 2
/dev/md1 swap swap defaults 0 0


Διορθώνουμε το /boot/grub/menu.lst ώστε να μοιάζει με το παρακάτω:


default=0
fallback=1
timeout=5

splashimage=(hd0,0)/grub/splash.xpm.gz
#hiddenmenu
title CentOS (2.6.18-92.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-92.el5 ro root=/dev/md2
initrd /initrd.raid

title CentOS (2.6.18-92.el5) - secondary plex
root (hd1,0)
kernel /vmlinuz-2.6.18-92.el5 ro root=/dev/md2
initrd /initrd.raid


Δεν έχουμε ακόμα δημιουργήσει το initrd.raid. Για το σκοπό αυτό, προσθέτουμε την παρακάτω γραμμή στο /etc/modprobe.conf:



alias md-personality-3 raid1

και:

cd /boot
mkinitrd --fstab=/etc/fstab --with=raid1 --preload=raid1 initrd.raid `uname -r`


Μπορούμε επιτέλους να αντιγράψουμε τα δεδομένα:



cp -dpRx / /mnt/md2
cd /boot
cp -dpRx . /mnt/md0


Φτιάχνουμε το grub και στους δύο δίσκους:
grub
root (hd0,0)
setup (hd0)
root (hd1,0)
setup (hd1)
quit


Στο σημείο, αυτό θεωρούμε τους εαυτούς μας τυχερούς, και κάνουμε:
reboot

Στο reboot, ο πυρήνας θα φορτώσει από τον δίσκο hda, και όχι από τον md. Ωστόσο αυτό δεν έχει σημασία, γιατί τα περιεχόμενα των δίσκων είναι ίδια. Αυτό που έχει σημασία είναι να γίνεί mount το root file system από το md2, όπως φαίνεται και στο menu.lst.

Μετά την επιτυχή (ελπίζουμε) επανεκκίνηση το root, boot και swap λειτουργούν πλέον από τις αντίστοιχες md κατατμήσεις. Δεν μένει παρά να αλλάξουμε τα partitions στον hda σε type fd (Raid autodetect) όπως και προηγουμένως χρησιμοποιώντας την fdisk. Τέλος μπορούμε να προσθέσουμε και αυτό το δίσκο στο RAID:

mdadm --add /dev/md0 /dev/hda1
mdadm --add /dev/md1 /dev/hda2
mdadm --add /dev/md2 /dev/hda3


Μπορούμε να δούμε την πρόοδο του συγχρονισμού:

cat /proc/mdstat

Δημιουργούμε το τελικό αρχείο /etc/mdadm.conf:

mdadm --examine --scan > /etc/mdadm.conf

Έχουμε τελειώσει. Μόλις τελειώσει ο συγχρονισμός του RAID κάνουμε reboot, και βλέπουμε το σύστημα να ξεκινάει κανονικά. Ανάβουμε ένα κεράκι στην εκκλησία του beastie και υποσχόμαστε από εδώ και μπρος μόνο FreeBSD και gmirror ;)

Saturday, July 11, 2009

Αποτελέσματα Greek Coding Camp


Ολκληρώθηκε το πρώτο Greek Coding Camp!

Μπορείτε να δείτε περισσότερες λεπτομέρειες για τα έργα που πραγματοποιήθηκαν στην σχετική σελίδα του Chania-LUG

Όσο αφορά τα FreeBSD-related projects, το μόνο που ξεκίνησε ήταν η μετάφραση του άρθρου "Practical rc.d Scripting in FreeBSD" από τον Γιώργο Πορτοκάλογλου. Προσωπικά συμμετείχα στη μετάφραση αρκετών templates του OpenOffice writer (τα οποία έχουν ήδη ανέβει στο OpenOffice.org) αλλά επίσης διόρθωσα και κάποια από τα Αγγλικά μηνύματα του Transifex και σύντομα θα αρχίσω και την Ελληνική του μετάφραση.

Αυτό που μετράει ίσως παραπάνω από όλα, είναι που βρεθήκαμε ξανά, μιλήσαμε, διασκεδάσαμε, και τρελάναμε τους πάντες!

Thursday, June 18, 2009

Greek Coding Camp 2009!


O Chania-LUG και η ελληνική ομάδα Fedora διοργανώνουν 4-7 Ιουλίου το Greek Coding Camp. Μια κατασκήνωση στην Παλαιόχωρα με laptop, hacking, μπάνια και άλλα events.

Μέσα στα projects έχω βάλει και κάποια scripts και προγραμματάκια που χρησιμοποιώ στο FreeBSD Documentation αλλά και για την δημιουργία Custom FreeBSD DVDs. Επίσης υπάρχει και μια πρόταση για μετάφραση documentation (θα προτείνω κάποιο άρθρο).

Ελπίζω να εγκριθεί κάποια από τις προτάσεις μου. Το σίγουρο πάντως είναι ότι θα περάσουμε καλά!

Λεπτομέρειες για τη διοργάνωση μπορείτε να βρείτε εδώ:

Greek Coding Camp Wiki

Ανακοινώσεις έχουν ήδη σταλεί στις περισσότερες ενεργές λίστες / forums. Μη λείψει κανείς!

Friday, June 5, 2009

Git on FreeBSD - Repository για τον Chania-LUG

Κάποια μέλη του Συλλόγου ζήτησαν να βάλουμε git στο server του Chania-LUG. Έχουμε ήδη εγκατεστημένο mercurial αλλά προφανώς ένα ακόμα repository δεν βλάπτει. Ξεκίνησα λοιπόν να διαβάζω το documentation, τόσο τα αρχεία READΜΕ και INSTALL που εγκαθίστανται με το git, όσο και τις online πηγές. Οι πιο βοηθητικές για μένα ήταν:

Όπως είναι λογικό, λίγο αργότερα είχα μπερδευτεί. Τι θέλω τελικά; Ενα repository που να μπορεί να γίνεται clone μέσω git protocol, να γίνεται push/pull μέσω ssh (για ελάχιστους χρήστες, γιατί ssh πρόσβαση στο server είναι πολύ περιορισμένη) και http pull/push για όλους τους υπόλοιπους. Με βάση τα παραπάνω πρέπει:

  • Να εκτελείται ο git daemon με κάποιες ρυθμίσεις (εύκολο) για git clone / pull

  • Να χρησιμοποιηθεί http ή https authentication

  • Να χρησιμοποιηθεί WebDAV για την αποστολή / λήψη δεδομένων μέσω http (σύμφωνα πάντα με τις πληροφορίες που βρήκα)


Μεταξύ http και https προτίμησα το απλό http γιατί 1)στο https το certificate θα ήταν self signed και θα γεμίζαμε χαζά warnings 2)το κενό ασφαλείας είναι πολύ μικρό, καθώς ακόμα και αν κάποιος έπαιρνε τον κωδικό με man-in-the-middle attack, το πολύ να έμπαινε σε ένα git repo. Αφήνουμε βέβαια πάντα ανοικτό το ενδεχόμενο να αλλάξουμε γνώμη στο μέλλον.

Ας δούμε λοιπόν πως γίνεται η εγκατάσταση git σε FreeBSD!


Εγκατάσταση του Port


Αυτό είναι το εύκολο κομμάτι:

# cd /usr/ports/devel/git
# make install clean


Και εδώ είναι οι δύο επιλογές που χρησιμοποιήθηκαν:

[X] GUI       Enable building of GUI tools
[X] GITWEB Install gitweb


Προφανώς δεν με ενδιαφέρουν οι επιλογές που αναφέρονται σε CVS και Perforce. Μετά από λίγη ώρα building, η βασική εγκατάσταση είναι έτοιμη. Αρχίζει το διάβασμα των αρχείων README / INSTALL από το /usr/local/share/examples/git/gitweb καθώς και των οδηγών που ανέφερα παραπάνω.

HTTP Configuration


Μετά από διάφορες δοκιμές αλλαγές και πειραματισμούς, κατέληξα στην παρακάτω VirtualHosts καταχώριση για τον apache που χρησιμοποιούμε:

<virtualhost>
ServerName git.chania-lug.gr
DocumentRoot "/usr/local/www/gitweb"
DAVLockDB "/some/place/locks/DAV.lock"
DirectoryIndex gitweb.cgi
CustomLog /some/place/logs/git.chania-lug.gr/access_log.txt combined env=!dontlog
ErrorLog /some/place/logs/git.chania-lug.gr/error_log.txt
<directory>
Options FollowSymlinks ExecCGI
AllowOverride None
Order allow,deny
Allow from all
<files>
SetHandler cgi-script
<files>
</directory>

<location /repos/test.git>
DAV on
Options +Indexes
AuthUserFile /some/other/place/htpasswd
AuthGroupFile /dev/null
AuthName "git"
AuthType Basic
Require valid-user
</location>

<location /repos/live-helper.git>
DAV on
Options +Indexes
AuthUserFile /some/other/place/htpasswd
AuthGroupFile /dev/null
AuthName "git"
AuthType Basic
Require valid-user
</location>
<virtualhost>


Με αυτό τον τρόπο το web interface εμφανίζεται στη διεύθυνση http://git.chania-lug.gr
Ναι, αλλά αυτό δεν είναι αρκετό.

Πρέπει να δημιουργηθούν τα repositories. Εδώ δείχνω τη δημιουργία του test.git. Η ίδια διαδικασία χρησιμοποιείται για καθένα:
# cd /usr/local/www/gitweb/repos
# mkdir test.git
# cd test.git
# git init --bare


H επιλογή bare ορίζει ότι δεν θα δημιουργηθεί work area για το repository.

# touch git-daemon-export-ok


Με το παραπάνω θα επιτρέπεται στον git daemon να δίνει αυτό το repository.

# git --bare update-server-info
# mv hooks/post-update.sample hooks/post-update


Επειδή θα γίνεται http push/pull, το repo θα ανήκει στο χρήστη www. Το www group θα έχει επίσης write access ώστε όσοι χρήστες χρησιμοποιούν ssh (και ανηκουν στο www group) θα μπορούν επίσης να κάνουν push.

# cd ..
# chown -R www:www test.git
# chmod -R g+w test.git


Καλά όλα αυτά, αλλά ακόμα δεν είμαστε έτοιμοι. Πρέπει να επεξεργαστούμε το αρχείο /usr/local/www/gitweb/gitweb.cgi (ή να φτιάξουμε άλλο δικό μας αρχείο ρυθμίσεων). Προτιμάμε την πρώτη λύση, μια και οι αλλαγές είναι λίγες. Ο κατάλογος των repositories (repos) βρίσκεται άλλωστε ήδη μέσα στο DocumentRoot του site. Οι αλλαγές που κάνουμε στο gitweb.cgi είναι:

our $projectroot = "/usr/local/www/gitweb/repos";
our $projects_list = "/usr/local/www/gitweb/projects.list";


Ακόμα δεν έχουμε projects.list και χρειαζόμαστε ένα όπως φαίνεται παραπάνω, με το περιεχόμενο:

test.git Manolis+Kiagias


Τέλος ξεχάσαμε να βάλουμε description στο repository. Αλλάζουμε το περιεχόμενο του αρχείου:

/usr/local/www/gitweb/repos/test.git/.git/description


με το επιθυμητό.
Πρέπει ακόμα να φτιάξουμε το αρχείο κωδικών με την httpasswd καθώς και να επιβεβαιώσουμε ότι το WebDAV και το davfs είναι ενεργοποιημένα στα modules του apache. Νομίζω θα το καταφέρετε. Εδώ κάπου τελειώνει (νομίζω) το web configuration.

Ρύθμιση του git_daemon


Σε σχέση με τα προηγούμενα, αυτό είναι παιχνιδάκι. Υπάρχει αντίστοιχο /usr/local/etc/rc.d script, και κάποιες μεταβλητές για το /etc/rc.conf που φαίνονται παρακάτω:

git_daemon_enable="YES"
git_daemon_flags="--base-path=/usr/local/www/gitweb/repos /usr/local/www/gitweb/repos"


Εξαιτίας του base-path μπορεί κάποιος να κάνει:

git clone git://git.chania-lug.gr/test.git

αντί για:
git clone git://git.chania-lug.gr/repos/test.git


To δεύτερο πάντως χρειάζεται όταν γίνεται git http-push (pull).
Μην ξεχάσετε να ανοίξετε την πόρτα 9418 TCP στο firewall (και να κάνετε προώθηση από το router σας).

Ρύθμιση του Client


Έχοντας κάνει όλα τα παραπάνω, μπορούμε να κάνουμε μερικές απλές ρυθμίσεις στο client μηχάνημα μας:

Δημιουργούμε το αρχείο ~/.netrc με τα παρακάτω περιεχόμενα:

machine git.chania-lug.gr
login yourusername
password yourpassword


και διορθώνουμε στα γρήγορα τα permissions:
chmod 600 ~/.netrc


Προαιρετικά, μπορούμε να γράψουμε και:

git-config remote.upload.url \
http://yourusername@git.chania-lug.gr/test.git/


ώστε να μη χρειάζεται συνέχεια να δίνουμε το url του server.

Μπορούμε τώρα να κάνουμε clone, μέσω πρωτοκόλλου git:

git clone git://git.chania-lug.gr/test.git test.git


και push μέσω http:

git http-push http://git.chania-lug.gr/repos/test.git master


Τι είναι αυτός ο θόρυβος; Α ναι, ο δίσκος γυρίζει σαν τρελός. Είναι πάλι τρεις το πρωί, και μου κάνει παρέα ο cron...

Monday, May 4, 2009

Ανακοίνωση Κυκλοφορίας: FreeBSD 7.2-RELEASE


Σήμερα το πρωί, το FreeBSD Project ανακοίνωσε επίσημα την κυκλοφορία της έκδοσης 7.2-RELEASE. Η έκδοση αυτή βελτιώνει την προηγούμενη 7.1-RELEASE με διορθώσεις και νέα προγράμματα οδήγησης, ενώ έχουν προστεθεί και κάποια νέα χαρακτηριστικά. Η αναβάθμιση απο προηγούμενες εκδόσεις μπορεί να γίνει τόσο μέσω του πηγαίου κώδικα, όσο και μέσω του freebsd-update. Για πληροφορίες, διαβάστε το αντίστοιχο κεφάλαιο στο Εγχειρίδιο.

Mπορείτε να δείτε τα νέα χαρακτηριστικά του 7.2-RELEASE στην ανακοίνωση κυκλοφορίας:

FreeBSD 7.2 Release Announcement

Το docs CD και το DVD της 7.2-RELEASE περιέχει και το Ελληνικό Εγχειρίδιο, αποτέλεσμα επίπονης εργασίας του FreeBSD Greek Documentation Project.
Η μετάφραση προχωράει με αρκετά γρήγορο ρυθμό, και ελπίζουμε να ολοκληρωθεί σε σχετικά σύντομο διάστημα.

Στο DVD (και το docs CD) η ελληνική τεκμηρίωση βρίσκεται στον κατάλογο:

/usr/share/doc/el_GR.ISO8859-7

Στην επίσημη τοποθεσία του FreeBSD, μπορείτε να βρείτε όλη την Ελληνική τεκμηρίωση εδώ:

http://www.freebsd.org/doc/el/

Μπορείτε να κατεβάσετε οποιαδήποτε διαθέσιμη έκδοση του FreeBSD από κάποιο από τα πολλά mirror sites. To 7.2-RELEASE θα εμφανιστεί σύντομα και στους FTP servers μεγάλων ελληνικών ISPs.

Το Project επικεντρώνει τώρα τις προσπάθειες του στην επόμενη μεγάλη έκδοση, την 8.0-RELEASE, που αναμένεται να κυκλοφορήσει προς το τέλος του 2009.

Sunday, April 26, 2009

Xorg 7.4, HAL και άλλες ιστορίες

Το Xorg 7.4 υπάρχει εδώ και κάποιο διάστημα στα FreeBSD Ports. Διαβάζοντας τα διάφορα προβλήματα που έχει - ειδικά όσο αφορά το xorg.conf και τα πληκτρολόγια / ποντίκια - ανέβαλλα για αρκετό διάστημα την αναβάθμιση. Τελικά βέβαια, το έβαλα. Ελπίζω οι πληροφορίες που παρουσιάζω εδώ να είναι χρήσιμες.

Τι γίνεται με το xorg.conf;



Η απάντηση εδώ είναι... τίποτα. Το Xorg 7.4 δεν χρειάζεται xorg.conf για να λειτουργήσει αφού όλα γίνονται autodetect στην εκκίνηση του. Και λέγοντας "όλα" εννοούμε τα πάντα εκτός από τα δικά σας εξαρτήματα. Αλλά θα φτάσουμε σε αυτό. Πριν δοκιμάσετε να εκκινήσετε με το 7.4, βάλτε τις παρακάτω γραμμές στο /etc/rc.conf:

hald_enable="YES"
dbus_enable="YES"


Εκκινήστε τις υπηρεσίες χειροκίνητα (ή κάντε επανεκκίνηση αν βαριέστε τόσο πολύ πια). Μετά την επανεκκίνηση μπορείτε να δοκιμάσετε απευθείας με

$ startx


(θεωρώντας ότι έχετε ήδη έγκυρο ~/.xinitrc)
Αν το πληκτρολόγιο και το ποντίκι σας δουλεύουν, και η ανάλυση σας είναι σωστή, δεν χρειάζεστε κανένα xorg.conf. Αλλά αν χρησιμοποιούσατε το xorg.conf για keyboard layout switching; Κανένα πρόβλημα, μπορείτε τώρα να χρησιμοποιήσετε το HAL:

Δημιουργήστε το αρχείο /usr/local/etc/hal/fdi/policy/keyboard.fdi με το εξής περιεχόμενο:

<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
<device>
<match key="info.capabilities" contains="input.keyboard">
<merge key="input.x11_driver" type="string">kbd</merge>
<merge key="input.xkb.Model" type="string">pc105</merge>
<merge key="input.xkb.Layout" type="string">us,gr</merge>
<merge key="input.xkb.Rules" type="string">xorg</merge>
<merge key="input.xkb.Options" type="string">grp:alt_shift_toggle</merge>
</match>
</device>
</deviceinfo>


επαννεκκινήστε το hal, και θα μπορείτε ξανά να γράφετε ελληνικά. <sarcasm>Τι απλό!</sarcasm>

Και ο παλιός κλασικός τρόπος



Αν τα παραπάνω σας εκνευρίζουν, ή αν το πληκτρολόγιο ή το ποντίκι σας δεν λειτουργούν σωστά, μπορείτε και πάλι να γυρίσετε στο αγαπημένο μας xorg.conf. Δημιουργήστε ένα (ως root):

# X -configure


Επεξεργαστείτε το xorg.conf.new και προσθέστε την παρακάτω γραμμή στο ServerLayoyt section:

option "AutoAddDevices" "False"
option "DontZap" "False"


(To DontZap θα σας επιτρέπει να κάνετε kill τον Xserver με CTRL+ALT+BKSP όπως στις προηγούμενες εκδόσεις)

Φτιάξτε το keyboard section όπως παλιά. Δοκιμάστε το xorg.conf με:

# X -config /root/xorg.conf.new -retro


Χωρίς το -retro η δοκιμή αποτελείται από μια... μαύρη οθόνη. Πολύ χρήσιμο για να διαπιστώσει κανείς αν δουλεύουν οι ρυθμίσεις του...
Καλώς ήλθατε στο μέλλον :)