16.1.10

Voodoo3 akcelerace na ubuntu 9.10

Dnes jsem na počítač s grafickým akcelerátorem Voodoo3 nainstaloval Xubuntu 9.10. Přesto, že Xorg používá ovladač tdfx nefungovala mi akcelerace a spuštění glxgears nebo glxinfo skončilo s chybovou hláškou viz. níže.


X Error of failed request: BadAlloc (insufficient resources for operation)
Major opcode of failed request: 154 (GLX)
Minor opcode of failed request: 3 (X_GLXCreateContext)
Serial number of failed request: 35
Current serial number in output stream: 37


Chvíli jsem pátral po internetu a přes zaručené informace o bugu v xkách nebo v ovladači tdfx jsem se dostal na stránky týpka, který řešil podobný problém. A ten zjistil, že na vině je chybějící knihovna pro glide, uff.



Řešení je tedy prosté, stačí nainstalovat libglide3.


sudo apt-get install libglide3

23.5.09

Přepínání klávesnice v Xubuntu 9.04

Při přechodu na novější verzi Xubuntu mi přestalo mimo jiné fungovat těžce vydobyté nastavení přepínání klávesnice.

Nevím proč, ale konfigurace v /etc/default/console-setup přestala fungovat. Hledal jsem různě po internetu a narazil jsem dokonce na fórum ve kterém uživatel stepron odkazoval na tento blog s tím, že mu to pomohlo. Ale mě paradoxně ne.

Nakonec jsem narazil na stránku týpka z Rumunska, naštěstí psanou v angličtině, ve které se zmínil, že nová verze pluginu pro přepínání klávesnice dodávaného společně s novou verzí xfce, která je v Xubuntu 9.04 obsažená přepínání umožňuje.

Tak tedy, pokud máte nainstalovaný plugin xfce4-xkb-plugin ve verzi vyšší, než 0.5.0 (moje aktuální verze je 0.5.3) přidejte si ho na panel a zbytek je už otázkou pár kliknutí myši do formuláře.

22.2.09

Změna rozlišení monitoru v Xbuntu 8.10

Nainstaloval jsem Xubuntu na starší stroj. Šlo o celeron 1G4 MHz s grafickou kartou GeForce 5700 FX, 512 MB paměti a sedumnácti palcovým monitorem LG Flatron ez T710PH.

Po instalaci jsem použil nesvobodný ovladač Nvidia (Nvidia accelerated driver) verze 117. Potud nebyl žádný problém, grafická karta byla korektně nakonfigurována, akcelerace dle GLX Gears fungovala bez problémů. Problém byl v rozlišení obrazovky a obnovovací frekvenci monitoru, která byla 640x480@60. V klikacím nastavení rozlišení obrazovky byla možnost pouze volby default rozlišení a 300x175.

Rozhodl jsem se tedy přikročit k ruční konfiguraci. Dle předchozích zkušeností, jsem věděl, že klasický konfigurační soubor byl nahrazen HALem, takže jsem se o zásah do xorg.conf z počátku ani nepokoušel. Konfigurovat jsem se rozhodl pomocí programu xrandr.

Po zadání xrandr na mně kromě jiných informací vyskočila hláška
Screen 0: minimum 320 x 175, current 640 x 480, maximum 640 x 480
myslel jsem si, že pouze chybí konfigurace módů, do kterých se může přepnout grafická karta a tak jsem se jal je pomocí příkazů xrandr --newmode a xrandr --addmode přidat. Jenom upozorním, že pokud budete přidávat mód pomocí newmode, je potřeba zadat celý modeline, který můžete získat pro svůj monitor například na adrese http://xtiming.sourceforge.net/ mějte ale se skriptem strpení, server je poměrně nestabilní a skript se odešle a modeline spočítá třeba až na desátý pokus.

Ale můj problém, přidání nového módu nevyřešilo. Přidal jsem 1024x768@75, ale pokud jsem se do něj chtěl přepnout pomocí xrandr --mode, celá operace skončila chybou
xrandr: Configure crtc 0 failed
Začal jsem tedy úplně od začátku. Zadal jsem příkaz xrandr a podíval se na výstup. Až po druhém zkoumání mě trknul řádek, na kterém bylo napsáno
default connected 640x480+0+0 0mm x 0mm
najednou mi bylo jasné, že je špatně nadetekovaný připojený monitor.

Protože jsem nenašel možnost konfigurovat monitor přes xrandr, vyřešil jsem to nakonec přidáním sekce Monitor do xorg.confu, takže celá konfigurace vypadá následovně:
Section "Monitor"
Identifier "Flatron"
ModelName "ez T710PH"
Option "DPMS"
HorizSync 30 - 85
VertRefresh 50.0 - 160.0
DisplaySize 310 230
EndSection

Section "Screen"
Identifier "Default Screen"
Monitor "Flatron"
DefaultDepth 24
EndSection

Section "Module"
Load "glx"
EndSection

Section "Device"
Identifier "Default Device"
Driver "nvidia"
Option "NoLogo" "True"
EndSection
Následoval restart X-ek a monitor se automaticky přepnul do rozlišení 1024x768@85. Konfigurace grafické karty nebo cokoli s xrandrem nebylo potřeba.

27.12.08

Přepínání rozložení klávesnice v Xubuntu 8.10

Dnes jsem dost bojoval s přepínáním rozložení klávesnice v novém Xubutu. Při instalaci jsem zvolil anglické rozložení, které bylo pro systém výchozí a za boha se mi nedařilo, přidat rozložení české qwerty.

Klávesnice se v novém ubuntu již nekonfiguruje pomocí xorg.conf souboru, ale pomocí HALu. Bohužel, ať jsem editoval konfigurační soubory HAL, jak jsem chtěl, tak se změny neprojevovaly.

Nejdře jsem vytvořil zvláštní konfigurační .fdi soubor v /etc/hal/fdi/policy/, nastavil příslušné parametry, restartoval HAL a pomocí lshal si nechal vypsat konfigurační hodnoty. Změny se neprojevily.

Po chvilce tápání jsem se rozhodl pro editaci souborů přímo v /usr/share/hal/fdi/policy/10osvendor/ bohužel opět bez úspěchu.

Nakonec můj problém vyřešila konfigurace souboru /etc/default/console-setup a v něm zápis:

XKBMODEL="pc105"
XKBLAYOUT="us,cz_qwerty"
XKBVARIANT=""
XKBOPTIONS="grp:alt_shift_toggle"

10.11.07

Rozdíly v přiřazení objektů v php4 a php5

Napíšu si nějakou třídu a z ní vytvořím do proměnné objekt. Ten potom přiřadím jiné proměnné a nastavím objektu v ní nějakou hodnotu vlastnosti.
class Tfoo
{
var $bar = 1;

function Tfoo()
{

}
}

$a = new Tfoo();
$b = $a;
Výsledky vypíšu pomocí funkce print_r.
print_r($a);
print_r($b);
V php4 se na obrazovku vypíše
tfoo Object
(
[bar] => 1
)
tfoo Object
(
[bar] => 2
)
V php5 se vypíše
Tfoo Object
(
[bar] => 2
)
Tfoo Object
(
[bar] => 2
)
protože se přiřazením objektů vytvořila reference. Aby obojí fungovalo stejně musím k přiřazení v php5 přidat
$b = clone $a;
Zajímavé také je, že php5 vypíše správně velikost písmen v názvu třídy.

30.10.07

Znemožnění uživateli opustit svou složku v proftpd.

Potřeboval jsem účtu hosta omezit na ftp přístup ke složkám, ke kterým má normálně v linuxu přístup z pozice svých práv. Host je ve skupině uživatelů, takže může číst z většiny složek v systému a tomu jsem chtěl zabránit. Chtěl jsem, aby se mohl pohybovat pouze ve své domovské složce /home/guest a aby v ní mohl dělat cokoli. Používám démona proftpd.

Nejdříve si otevřu konfigurační soubor /etc/proftpd.conf a do něj přidám řádky, které zamezí přístup uživateli guest do jakékoli složky skrz ftp na počítači.
<Directory /*>
<Limit ALL>
DenyUser guest
</Limit>
</Directory>
Tady si musím dát pozor na to, že pokud už mám v konfiguráku nějakou konfiguraci pro Directory /*, přidám její obsah do již existující. Tzn tag Limit vložím někam do tagu Directory /*.

Nyní pod to vložím řádky, které naopak povolí přístup, ale pouze v uživatelově složce.
<Directory /home/guest>
<Limit ALL>
AllowUser guest
</Limit>
</Directory>
A teď už jenom nastavím složku, do které bude defaultně po přihlášení přemístěn.
DefaultRoot /home/guest guest
Uložím konfigurační soubor a pomocí příkazu
/etc/init.d/proftpd restart
restartuji ftp démona. Na konci konfiguračního souboru je zakomentovaný řádek #DefaultRoot ~ , jeho odkomentování způsobí, že úplně všichni uživatelé budou uzamčeni ve svých domovských složkách.

Ještě zakážu uživateli guest možnost přihlášení do shellu, protože tam stále platí linuxová práva. Nejdříve si vytvořím kopii pseudo shellu /bin/false, pod novým názvem /bin/ftp, kvůli přehlednosti.
#cp /bin/false /bin/ftp
A tento nový shell přidám mezi ostatní do seznamu použitelných shellů /etc/shells pomocí příkazu
#echo "/bin/ftp" >> /etc/shells
Přidání do seznamu shellů nemusím provádět pomocí přesměrování výstupu, ale můžu ho zeditovat nějakým textovým editorem, podle chuti. A teď tento shell nastavím uživateli guest jako defaultní
#usermod -s /bin/ftp guest

28.10.07

Instalace jdk6 na debian etch

Protože oficiální linuxový instalátor javy nefunguje na debianu (hází hlášku error: Failed dependencies), je potřeba zvolit jiný postup.

Nejdříve si otestuju aktuální verzi javy nainstalovanou na mém systému, pomocí příkazu:
java -version
Mělo by se vypsat něco jako:
java version "1.4.2"
gij (GNU libgjc)...
Teď si stáhnu poslední verzi javy z http://java.sun.com, stáhnu soubor s koncovkou .bin. Teď tento soubor rozbalím do nějakého temp adresáře, pomocí příkazu:
./jdk-6u2-linux-i586-rpm.bin -x
Měl by se mi rozbalit jeden nebo více .rpm souborů.
Teď nainstaluji alien, pomocí:
apt-get install alien
a pustím ho na .rpm soubory:
alien --scripts --keep-version -d *.rpm
Chvilku to bude trvat, záleží na výkonnosti pc. Na mém celeronu 1400Mhz to trvalo asi 5 minut. V tmp adresáři by se měl/měly objevit instalační soubory debianu s koncovkou .deb. Ty nainstaluji pomocí příkazu:
dpkg -i *.deb
A voila, java byla nainstalována někam do /usr/java/. Nyní ještě vytvořím softlink na javu pomocí
ln -s /usr/java/latest /usr/lib/java
a dou souboru /etc/profile přidám mezi původní řádky export systémové proměnné
PATH
umask 022
cestu k javě, tzn., soubor bude vypadat asi takhle:
export PATH
JAVA_HOME="/usr/lib/java"
export JAVA_HOME
umask 022
Namapuju binárky pro cestu k javě, aby se po zadání příkazu java do konzole volala správná verze:
# update-alternatives --install /usr/bin/java java $JAVA_HOME/bin/java 200
# update-alternatives --install /usr/bin/javac javac $JAVA_HOME/bin/javac 200
# update-alternatives --install /usr/bin/jar jar $JAVA_HOME/bin/jar 200
# update-alternatives --install /usr/bin/keytool keytool $JAVA_HOME/bin/keytool 200

Teď už jenom stačí restartovat PC. A znovu otestovat příkazem
java -version
Můžu si i přidat javu do firefoxu a to tak, že vytvořím symbolický link do složky plugins firefoxu na plugin v adresáři, kde mám nainstalovanou javu. Pod debianem se firefox jmenuje iceweasel, proto ta složka.
ln -s /usr/java/jdk1.6.0/jre/plugin/i386/ns7/libjavaplugin_oji.so /usr/lib/iceweasel/plugins/libjavaplugin_oji.so
Restartuju firefox a otestuju zadáním
about:plugins
a podívám se, jestli je java nainstalovaná.
 
tepláky | prostěradla | trenky