neděle 30. prosince 2007

Speakup - pokračování

Speakup - díl druhý

V minulém díle tohoto seriálu jsme zakompilovali podporu speakupu do našeho jádra, nyní nás čeká druhá část tohoto úkolu - přinutit speakup komunikovat v českém jazyce. K tomuto musíme splňovat několik předpokladů:
* Konzole podporuje češtinu a je pro ni nakonfigurována
* Konzole běží v ISO-8859-2
* Máme CVS snapshot programu speechd-up


* * *

Česká konzole
sudo apt-get install console-tools console-data console-setup
sudo dpkg-reconfigure console-data
sudo dpkg-reconfigure console-setup
setupcon

POZNÁMKA: Při konfiguraci console-setup nezapomínejte na to, že konzoli potřebujeme mít v ISO-8859-2

* * *

Konzole a ISO-8859-2

Tady už je to trošku složitější. Nejprve získáme práva superuživatele
sudo -i
a poté editujeme /var/lib/locales/supported.d/cs
kde připíšeme následující řádek
cs_CZ ISO-8859-2

Nyní je na čase vygenerovat nové locales
locale-gen

Abychom si usnadnili následující práci, ve svém domovském adresáři(teď už nikoli jako root) připíšeme následující řádky do souboru .bashrc

if [ "$TERM" == "linux" ] || [ "$TERM" == "screen" ]; then
export LC_ALL="cs_CZ"
export LANG="cs_CZ"
export LANGUAGE="cs_CZ"
fi

To zajistí, že systém bude v ISO-8859-2 pouze tehdy, když bude používána konzole, nikoli xterm, či jiný grafický terminál.


* * *

Správná konfigurace Speechd-up

Nejprve stáhneme "The latest CVS snapshot" ze stránek Free(b)softu - http://freebsoft.org, ten následovně rozbalíme a přejdeme do rozbalivšího se adresáře.

POZNÁMKA: Pro pokračování budeme potřebovat mít nainstalovány následující balíky:
autoconf
autoconf2.13
autoconf-archive
libspeechd-dev
libdotconf1.0
libdotconf-dev
texinfo
make

Pokračujeme těmito příkazy:
sudo ./build.sh
sudo ./configure
sudo make all
sudo make install


Nyní bychom měli mít nainstalovánu nejnovější verzi speechd-upu společně s konfiguračním souborem, který je v /usr/local/etc - což je porušení standardu.

Takže, editujeme /usr/local/etc/speechd-up.conf a na jeho konec přidáme tyto řádky(můžeme také odkomentovat a upravit ty stávající, ale myslím, že takto je to přehlednější.

DontInitTables 0
Language "cs"
SpeakupCoding "iso-8859-2"

Nyní bych doporučil restartovat PC(občas jsou problémy s konfigurací konzole)
shutdown -r now

Nyní by mělo vše korektně běžet!

úterý 25. prosince 2007

Speak-up, aneb i konzole může mluvit

Tak se mi tedy po několika měsících neúspěšného laborování konečně podařilo rozmluvit Linuxovou konzoli pomocí patchování jádra programem speak-up. Na následujících řádcích se Vám pokusím popsat postup, který jsem zvolil.

1. Nainstalujeme potřebné balíčky(git, git-core a cvs)
apt-get install git git-core cvs

2. Stáhneme development verzi speak-upu
git clone http://www.linux-speakup.org/speakup.git
V aktuálním adresáři se nám vytvoří podadresář speakup.

3. Z adresy http://kernel.org/ stáhneme zdrojové kódy jádra systému(já jsem zvolil poslední stabilní verzi 2.6.22). Jakmile bude archiv stažen(předpokládám teď, že jste stáhli 2.6.22), rozbalíme jej následujícím příkazem
tar xjf linux-2.6.22.tar.bz2
Nyní vytvoříme symbolický odkaz /usr/src/linux, který je nutný pro následující kompilaci
sudo ln -s ./linux-2.6.22/ /usr/src/linux

4. Teď příjde asi ta nejkritičtější část - patchování jádra. Otevřte si tedy vytvořený adresář speakup a zadejte
./install /usr/src/linux
Pokud vše proběhne úspěšně, přejděte k následujícímu kroku, pokud nikoli, prostudujte si uživatelskou příručku a pokyny k instalaci(dostupné na http://linux-speakup.org/).

5. Nyní přejděme do adresáře /usr/src/linux, kde provedeme konfiguraci jádra(je potřeba mít nainstalovány balíky make, gcc, ncurses-dev, linux-package, fakeroot a možná ještě několik dalších, na které systém upozorní).
make menuconfig
V objevivší se nabídce provedeme konfiguraci jádra(Speakup najdeme pod Device Drivers/Speakup). Kde musíme zvolit položku Speakout(radši napevno zakompilovat do jádra - prefix hvězdička). Nakonec uložíme konfiguraci(v kořenové nabídce volba Save configuration)

POZNÁMKA: Kompilace jádra není žádný med, proto pečlivě zvažujte, co je potřeba a co ne - obecně se doporučuje volit radši moduly, než-li x MB velké jádro).

6. Zkompilujeme jádro
make-kpkg clean && fakeroot make-kpkg --initrd --revision=2.6.22 kernel_image kernel_headers

POZNÁMKA: kernel_headers nejsou vyloženě nutné, ale když pak potřebujetd přeložit nějaký modul(např. binární ovladače grafických karet atp.), neobejdete se bez jejich přítomnosti.

7. V adresáři /usr/src se nám vytvořily dva balíčky *.deb, které nainstalujeme
deb -i nazev_balicku
Jedním je linux-image-2.6.22.deb, tím druhým linux-headers-2.6.22.deb(názvy se možná budou v závislosti na architektuře odlišovat).

8. Teď nainstalujeme rozhraní speechd-up, které se stará o přenos zpráv mezi jádrem a speech-dispatcherem
apt-get install speechd-up

9. Nakonfigurujeme speech-dispatcher(konfigurační soubor /etc/speech-dispatcher/speechd.conf), tak, aby vyhovoval našim potřebám. TJ. např. jako DefaultLanguage "cs" atp.

10. Restartujeme systém a v bootmanageru zvolíme nové jádro(Bootovací manažer GRUB lze upravit pomocí /boot/grub/menu.lst).
shutdown -r now

11. Speak-up by měl začít mluvit už v průběhu zavádění, takže až se ozve uvítací zvuk GDM, přepněte se pomocí CTRL+ALT+F1 na první virtuální konzoli a směle do práce :-)

POZNAMKA: K tomu, aby bylo možno speak-up konfigurovat a pracovat s ním, je potřeba mít zkompilovánu podporu souborového systému /proc. V následujícím příkladu si ukážeme, jak nastavit rychlost řeči na hodnotu 9.
echo 9 > /proc/speakup/rate
Změny vstoupí v platnost okamžitě.


Příjemnou práci!

Martin Sukaný



* * *

Odkazy:

Domovská stránka projektu
http://linux-speakup.org/

Archiv jader operačního systému Linux
http://kernel.org/

úterý 18. prosince 2007

Zprovoznění 3D akcelerace u grafických karet ATI

Hned úvodem bych napsal to, že zprovoznění 3D akcelerace u graf. karet ostatních výrobců nejspíš bude velmi podobné, takže obecně z následujících řádek vycházel lze.

1. Kompilace jádra
První věcí, kterou bychom měli udělat(není nutnou podmínkou) je kompilace vlastního kernelu(jádra). Nebudu se tady zabývat procesem kompilace(to snad někdy příště), takže jen ve stručnosti. Je potřeba, aby byla v jádru zavedena podpora pro daný typ graf. karty - u karet ATI se jedná o fglrx - jádro zkompilujeme např. tímto způsobem

fakeroot make-kpkg --initrd --revision=ciselne_oznaceni_jadra kernel_image kernel_headers

V adresáři /usr/src se nám vytvoří deb balíček s jádrem, který nainstalujeme.


2. Moduly
K tomu, abychom mohly zprovoznit binární ovladače musíme mít jejich zdrojové kódy - ze stránek http://packages.debian.org/ si stáhneme balík fglrx-kernel-src, který nainstalujeme. Dále budeme potřebovat program module-assistant, který lze získat z různých repozitářů.

Takže, v /usr/src/ nám přibyl archiv se zdrojovými kódy ovladačů fglrx - rozbalíme je(do tohoto adresáře) a pokračujeme těmito příkazy

module-assistant prepare
module-assistant a-i fglrx

POZNÁMKA: Toto je nutné udělat v systému, který běží na jádru, na něž chcete moduly aplikovat.

Nyní nainstaluje balík se samotnými ovladači - tento balíček se jmenuje fglrx-driver

POZNÁMKA: 3D akcelerace je podporována až od verze 8.43.2 - naleznete v testing sekci na http://packages.debian.org/.

Nyní restartujeme PC a zkusíme následující:

aticonfig --initial
Upraví se /etc/X11/xorg.conf

glxgears
Test 2D akcelerace - hodnota FPS by měla překračovat 1000

fgl_glxgears
Test 3D akcelerace

glxinfo (svislá čárka) grep direct
Za svislou čárku dosaďte tento symbol(samozřejmě bez závorek) - nemám teď klávesnici, na které tento symbol je a nechce se mi hledat jeho hodnotu.

Tímto příkazem se zjistí, jestli 3D akcelerace běží, pokud je za Direct rendering slůvko Yes, tak ano, pokud No, buďto nemáte verzi ovladačů, která podporuje 3D akceleraci, nebo jste udělali nějakou chybu, nebo zatím není vaše karta plně podporována.

čtvrtek 13. prosince 2007

PGP šifrování

PGP(z ang. Pretty Good Privacy) je algoritmus navržení v r. 1991 Phillem Zimmermanem sloužící k šifrování souborů za využití asymetrické šifry. To znamená, že každý člověk má vytvořen pár klíčů(veřejný a soukromý).

* * *

Základní pojmy

Soukromý klíč(private key) je nutno uchovávat v tajnosti, protože pouze tímto klíčem je možno rozšifrovat šifrované soubory(e-maily). Naopak, pro zašifrování lze použít jak soukromý, tak veřejný klíč.

Veřejný klíč(public key) můžeme umístit např. na nšich WWW stránkách, nebo na speciálním keyserveru(např. www.keys.pgp.net, nebo www.keyserver.net).

Fingerprint(otisk prstu) je jedinečná kombinace hexadecimálních číslic, která určuje daný klíč - kontrolou fingerptintů lze např. zjistit podvržený klíč.

* * *

Jak vytvořit PGP klíč?

K vytvoření klíče je potřeba vlastnit program GNUPG. Jak už i samotný jeho název vypovídá, jedná se o opensource projekt šířený pod General Public Licence, který je dostupný jak pro Linux, tak pro platformu MS Windows a několik dalších.

POZNÁMKA: V Linuxových distribucích užívajících Debianí balíčkovací systém APT je možno nainstalovat potřebný balík takto:
sudo apt-get install pgp

Jakmile máme dotyčný program v systému, vytvoříme nový pár klíčů:

gpg --gen-key

Program se nás postupně dotáže na několik věcí. Předně se bude jednat o algoritmus(zvolil bych implicitní DSA), dále na délku šifrovacího klíče(doporučuje se 2048 a vyšší). Následně budete muset zadat své jméno a přijímení, e-mailovou adresu, pro niž je klíč vytvářen a heslo, které bude použito při rozšifrovávání souborů.
Při vytváření klíčů bude systém vyžadovat další data, takže je dobré např. pohybovat myší nebo psát na klávesnici.

Jakmile máme vytvořen pár klíčů, vyexportujeme veřejný klíč, který můžeme předat našim přátelům, známým, pracovním kontaktům, úřadům atp.

gpg --export --armor e-mailova_adresa_klice > soubor.pub

Takže, máme-li adresu jarda@blablabla.org, můžeme klíč vyexportovat takto:

gpg --export--armor jarda@blablabla.org > jarda.pub


* * *


Import veřejných klíčů

Tady už jen ve zkratce, neboť příkaz je velmi intuitivní:

gpg --import soubor_s_klicem

Např:

gpg --import jarda.pub


Když už máme klíč importován měli bychom ověřit jeho pravost, což uděláme za pomocí fingerprintu následovně:

gpg --fingerprint

Pokud se shoduje programem vypsaný otisk s otiskem klíče, který Vám dotyčný člověk poskytl, je vše v pořádku a můžeme tento klíč podepsat.

gpg --edit-keys e-mailova_adresa_klice

Objeví se programový interpret kterému nejdříve zadáme příkaz

sign

A poté příkaz

save

Sign zajistí podepsání klíče a save uloží provedené změny + ukončí interpret příkazů gnupg.


* * *


Šifrování souborů

Šifrování souborů je velmi jednoduchou záležitostí

gpg -e -r e-mailova_adresa_klice soubor_k_zasifrovani

Takže, chceme-li zašifrovat soubor textak.txt klíčem jarda@blablabla.org, uděláme to následovně:

gpg -e -r jarda@blablabla.org textak.txt

Vytvoří se nám soubor textak.txt.pgp, což je zašifrovaný ekvivalent textak.txt. Místo parametru -e je možno použít -s, což značí sign(podepsání). V některých případech je totiž dostačující text podepsat, i když zašifrování(encrypt) je rozhodně doporučovanější.


* * *

Rozšifrování souborů

K tomu slouží následující příkaz:

gpg -o vystupni_soubor -d vstupni_soubor

Například:

gpg -o out.txt -d textak.txt.pgp

A je to vše :-)


Co se týká využití PGP, začíná se pomalu protlačovat i na našich úřadech, kde může zastávat úlohu normálního podpisu. Dokladem toho je společnost Brailcom, která se elektronickým podpisem pro nevidomé zabývá. Kde se však důrazně nedoporučuje šifrovat jsou e-mailové konference, neboť nelze počítat s tím, že všichni účastníci mají Váš veřejný klíč, navíc leckdy je syntaxe PGP podpisu charakterizována jako SPAM.


Martin Sukaný

sobota 8. prosince 2007

Jak na SWAT

SWAT, alias Samba Web Administration Tools je webovým rozhraním určeným pro správu démona SAMBA.

Jeho instalace je relativně snadná, avšak i u ní může dojít k několika komplikacím.

1. Nejprve je nutné nainstalovat sambu a swat
apt-get install samba swat

2. Dále potřebujeme nějaký superserver, který bude nade vším bdít :-) Doporučuji novější xinetd
apt-get install xinetd

3. Teď přejdeme ke konfiguraci xinetdu:
Vytvoříme soubor /etc/xinetd.d/swat, do něhož vložíme následujcí řádky:

# default: off
# description: SWAT is the Samba Web Admin Tool. Use swat \
# to configure your Samba server. To use SWAT, \
# connect to port 901 with your favorite web browser.
service swat
{
disable = no
port = 901
socket_type = stream
wait = no
#only_from = 127.0.0.1 10.10.10.30 10.10.10.32
user = root
server = /usr/sbin/swat
log_on_failure += USERID
}

4. Restartujeme xinetd
/etc/init.d/xinetd restart

5. Teď už jen spustíme webový prohlížeč a zadáme
http://localhost:901


POZNÁMKA: Ke správě samby pomocí SWAT je nutný účet root!

pátek 7. prosince 2007

Jak mi spadl systém - tragédie o dvou osobách

ČLOVĚK: apt-get upgrade -y && apt-get dist-upgrade -y
POČíTAČ: Error!

Jak už z výše napsaného vyplývá, přihodila se mi taková příhoda(možná věc bych řekl - blázním). Chtěl jsem vyzkoušet development verzi GNOME, tudíž jsem do /etc/apt.sources.list zavedl repozitáře testovacího Ubuntu 8.04(Hardy Heron).
Dva dny všechno běželo tak, jak má, až včera večer se to stalo - nejprve přestalo běžet GNOME, po dalším upgradu nenaběhlo ani gdm. Tak jsem všelicos zkoušel, zkoušel a zkoušel.....

Nakonec to skončilo tím, že systém je zarytě neústupný vůči všem pokusům o rozumnou domluvu - na logování odpovídá výhradně "Acces denied".....

Největší problém je v tom, že poslední(dnes dostupná) záloha je ze začátku listopadu a od té doby jsem provedl mnoho změn v konfiguraci serverů a některé další servery(exim, mailman) jsem přidal.

Nejspíš to budu řešit tím způsobem, že zazálohuju /home/, /etc/ a /usr/src/linux a celý systém přeinstaluju - moc se mi do tohoto řešení sice nechce, ale co mi zbývá.....