Aktualizováno dne 11. března 2011 - Scribus – vložení tabulky z Writeru

Linux v praxi

Různé drobnosti


Různé poznámky k Archu

Arch Linux logo

libx11 a nefunkční FreeNX

Ve verzi libx11-1.1.3-4 se objevila změna, díky které přestane fungovat freenx server. Problémem je volba --with-xcb při konfiguraci balíčku. Řešením je kompilovat balíček s volbou --without-xcb

xorg-server 1.3 - nedokáže zobrazit různá rozlišení na více displejích.

Takže se zatím zuby-nehty držím verze 1.2

Update:

xorg-server 1.4 už uvedený problém nemá. Ale užil jsem si s ním pár horkých chvilek. Nepovedlo se mi ho zkompilovat, tak jsem ho natáhnul z repozitáře, a nefungovala mi myš. Že prý nemá modul mouse. A když jsem nainstaloval zpět verzi 1.2, tak mi vůbec nenaběhla Xka, že neznají modul kb. Ještěže tu máme strýčka Google. Doteď jsem věděl, že při změnách jádra je potřeba proti němu znovu kompilovat i ovladače, teď už vím, že i při změnách xorg-serveru je potřeba tohle udělat pro ovladače, které si natahuje on. Šlo tedy o xf86-input-mouse, xf86-input-keyboard, nvidia-utils. Kompiloval jsem i balíček nvidia, nevím ale, zda to bylo nezbytně nutné.

Nefunkční automatické připojení USB disků

Vytvořit soubor /etc/hal/fdi/policy/preferences.fdi s tímto obsahem:
<merge key="volume.ignore" type="bool">false</merge>

update 6/2008: již jsem na tento problém u čerstvé instalace nenarazil

update 12/2008: opět problémy, tentokrát s chybovou hláškou org.freedesktop.hal.storage.mount-removable no <-- (action, result)

Je potřeba v souboru /etc/PolicyKit/PolicyKit.conf doplnit dovnitř mezi tagy config tohle:

<match action="org.freedesktop.hal.storage.mount-removable">
    <return result="yes" />
</match>

update 12/2009: opět problém, tentokrát po aktualizaci hal. Řešení je tentokrát trochu komplikovanější. Pro každého uživatele je potřeba doplnit do /etc/dbus-1/system.d/hal.conf tohle:

<policy user="username">
<allow send_destination="org.freedesktop.Hal"
send_interface="org.freedesktop.Hal.Device.Volume"/>
</policy>
KDE logo

Styly pro KDE

Takový skorouniverzální PKGBUILD pro styly z www.kde-look.org

balicek=nazev_balicku
pkgname=kdestyle-$balicek
pkgver=1.2.3
pkgrel=1
pkgdesc="KDE style"
arch=('i686' 'x86_64')
url="http://www.kde-look.org/"
license=('GPL')
depends=('kdebase')
options=('libtool')
source=($balicek-$pkgver.tar.bz2)

build() {
        . /etc/profile.d/qt.sh
        export PATH=$QTDIR/bin:$PATH
        cd $startdir/src/$balicek-$pkgver
        ./configure --disable-debug --prefix=/opt/kde
        make || return 1
        make prefix=$startdir/pkg/opt/kde install
}

Jak zjistit, na kterých balíčcích závisí konkrétní nainstalovaný program

pacman -Qo `ldd /cesta/k/programu | cut -d' ' -f3`

ABS strom pro repozitář testing

Vytvořit soubor /etc/abs/supfile.testing

*default host=cvs.archlinux.org

*default release=cvs
*default delete
*default use-rel-suffix
*default compress
*default tag=TESTING

arch
extra

vytvořit adresář /var/abs/testing a aktualizovat ho skriptem:

#!/bin/bash
cd /var/abs/testing
cvsup -L 1 -r 0 -g -b /var/abs/testing -c .sup /etc/abs/supfile.testing

UPDATE: Po záměně balíčku cvsup za csup je potřeba tento příkaz opravit podobně, tedy místo cvsup napsat csup

update 6/2008: současné ABS už stahuje i repozitáře testing, unstable a community.

Přeinstalování všech instalovaných balíčků balíčkem z repozitáře

pacman -Sy `pacman -Q | awk '{print $1}'`

Případně bez zdlouhavého potvrzování:

pacman -Sy --noconfirm `pacman -Q | awk '{print $1}'`

Vlastní kompilace nainstalovaných balíčků

Chtěl jsem si překompilovat celý systém, ale samozřejmě je zbytečné kompilovat nenainstalované balíčky, takže příkaz makeworld jsem zavrhnul. Nakonec jsem to zvládnul svépomocí. V každém adresáři stromu /var/abs/ jsem si spustil příkaz (nutno opravit cesty dle konkrétního adresáře):

echo \#\!\/bin\/bash > skript && pacman -Q `ls` | awk '{print $1}'| sed 's/^/cd \/var\/abs\/extra\/lib\//' | sed 's/$/ \&\& makepkg -csr --noconfirm/' >> skript
Vylepšená verze:
echo \#\!\/bin\/bash > skript && pacman -Q `ls` | awk '{print $1}'| sed 's/^/cd \/var\/abs\/extra\/x11\//' | sed 's/$/ \&\& echo -e "\\narch=(i686)" >> PKGBUILD \&\& nice -n 15 makepkg -csr --noconfirm/' >> skript

Co dělá? Vytvoří soubor skript, na začátek zapíše potřebné #!/bin/bash, pokusí se najít verze balíčků dle názvů v aktuálním adresáři, když se to povede, vezme z toho opět jen název balíčku a na začátek každého řádku doplní příkaz cd s cestou k danému adresáři a za to příkaz, který zkompiluje balíček, v případě nutnosti doinstaluje závislosti, a nakonec po sobě vše zase uklidí a ponechá nám hotový balíček.

Samozřejmě je potřeba nastavit soubor jako spustitelný. Člověk pak stejně ale narazí na spoustu problémů, protože mnoho PKGBUILDů nemá doplněn parametr arch=(), k některým je potřeba dohledat zdroj, protože uvedený zdroj je nedostupný, něco se nedaří zkompilovat vůbec.

update 6/2008: pokud tohle chcete páchat, je potřeba doplnit ještě parametr --asroot

Parametry pro makepkg

Můj procesor:
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 15
model           : 2
model name      : Intel(R) Pentium(R) 4 CPU 2.40GHz
stepping        : 7
cpu MHz         : 2394.152
cache size      : 512 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe up cid xtpr
bogomips        : 4792.79
clflush size    : 64
A v /etc/makepkg.conf mám nastaveno tohle:
CARCH="i686"
CHOST="i686-pc-linux-gnu"
CFLAGS="-march=pentium4 -mtune=native -O2 -pipe -s -fomit-frame-pointer -mfpmath=sse -msse2"
CXXFLAGS="-march=pentium4 -mtune=native -O2 -pipe -s -fomit-frame-pointer -fvisibility-inlines-hidden"
Po kompilaci mi nefungoval balíček wxgtk, který tedy používám z repozitáře. Některé balíčky mi nešly zkompilovat vůbec, ale netestoval jsem, zda by šly zkompilovat s bezpečnějším nastavením.

update 6/2008: již mám trošku lepší počítadlo. Procesor AMD Athlon X2 4850e:

processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 107
model name      : AMD Athlon(tm) Dual Core Processor 4850e
stepping        : 2
cpu MHz         : 2501.000
cache size      : 512 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow rep_good pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch
bogomips        : 5007.75
TLB size        : 1024 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp tm stc 100mhzsteps

processor       : 1
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 107
model name      : AMD Athlon(tm) Dual Core Processor 4850e
stepping        : 2
cpu MHz         : 2501.000
cache size      : 512 KB
physical id     : 0
siblings        : 2
core id         : 1
cpu cores       : 2
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow rep_good pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch
bogomips        : 5004.47
TLB size        : 1024 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp tm stc 100mhzsteps
A v /etc/makepkg.conf mám pro kompilátor nastaveno tohle:
CFLAGS="-march=athlon64 -msse3 -O2 -pipe -fomit-frame-pointer"
CXXFLAGS="-march=athlon64 -msse3 -O2 -pipe -fomit-frame-pointer"
MAKEFLAGS="-j3"

Přehrávání midi souborů, zvuk v midi programech

logo timidity

Sám jsem se funkčností midi nějak netrápil, ale zrovna nedávno si mi stěžoval kolega, že kvůli NoteWorthy Composeru má doma dualboot do Windows, protože se mu pod Linuxem nepodařilo vůbec midi rozběhat (natož pak pod Wine). Tak jsem začal hledat, způsobů je více, hezky mi funguje přehrávání přes TiMidity++. Tento balíček obsahuje jednak program timidity, který dokáže přímo přehrávat midi soubory, ale také daemona timidity++, kterého když spustíte, tak se timidity objeví jako midi zařízení, přes které lze přehrávat.

Aby to nebylo tak moc jednoduché, tak po instalaci zjistíte, že ale žádné zvuky neslyšíte. Je totiž potřeba ještě knihovna zvuků, kterou poskytuje například balíček fluidr3. K vytvoření balíčku je ještě zapotřebí dekompresor sfarkxtc. Nakonec ještě oznámit TiMidity, kde má hledat zvuky: do konfiguračního souboru /etc/timidity++/timidity.cfg doplnit řádek

soundfont /usr/share/soundfonts/fluidr3/FluidR3GM.SF2

Po nainstalování a nastavení už vše krásně funguje i přes zmíněné WINE.

A když už budete mít TiMidity nainstalováno, tak lze použít na více věcí, než jen přehrávání (nechtělo se mi překládat):

  • Plays MIDI files without any external MIDI instruments at all
  • Understands SMF, MOD, RCP/R36/G18/G36, MFI
  • Converts MIDI files into various audio file formats: .wav, .au, .aiff, .ogg and so on
  • Uses Gravis Ultrasound compatible patch files and/or SoundFonts as the voice data
  • Displays information about the music that is now playing
  • Various user interfaces: ncurses, gtk, Win32-GUI, and others
  • Plays remote MIDI files over the network
  • Plays MIDI files in archive files
  • Displays sound spectrogram for the playing music
  • Trace playing

Vyhledávání balíčků v Konqueroru

Konqueror obsahuje mimo jiné i velmi šikovný modul vyhledávací lišty, do kterého lze doplňovat vlastní vyhledávače, takže není problém si doplnit i vyhledávání v repozitářích ArchLinuxu. Takže jednoduše a stručně. První řádek je pro oficiální repozitář, druhý pro AUR.

  1. http://www.archlinux.org/packages/search/?q=\{@}
  2. http://aur.archlinux.org/packages.php?K=\{@}

Jak se vyhnout tvrdému restartu, když vytuhnou Xka

Už vám někdy vytuhnul Xserver natolik, že jste museli natvrdo restartovat? A odnesly to nějaké soubory? Pokud ne, měli jste štěstí, pokud ano, víte o čem mluvím…

Pokud se podíváte na klávesu PrintScreen, můžete si všimnout, že je pod ní napsáno ještě SysRq. Tato klávesa je takovou malou KPZ (staří pionýři jistě znají). Slouží k řešení krizovek, když se něco (kromě kernelu) pokazí. Lze s ní uvolnit klávesnici, ukradenou mrtvým Xserverem, lze s ní přemountovat disky do RO režimu, lze s ní spousta jiných věcí.

Její použití ale není automatické, musíme ho povolit. V Archu je v jádře standardně zakompilována (volba Magic SysRQ Key v části Kernel Hacking), ale je potřeba ji ještě povolit v systému. Buď okamžitě (a jen dočasně do restartu) příkazem

echo "1" > /proc/sys/kernel/sysrq
nebo trvale přidáním řádku kernel.sysrq = 1 do souboru /etc/sysctl.conf.

A až dojde k nejhoršímu, stisknete kombinaci kláves Alt+SysRq+klávesa. Seznam kláves a jejich funkcí naleznete například ve Wikipedii. Doporučuji si tento seznam vytisknout, protože až ho budete potřebovat, asi se na internet nedostanete.

Jak zakázat brzdící IPv6

Vzhledem k tomu, že mnoho programů zkouší v případě přítomnosti modulu ipv6 dotazovat první IPv6 adresu, je tento modul lépe zakázat (pokud ho tedy zrovna nepotřebujeme). A to se provede tak, že se do /etc/modprobe.conf zadá tento řádek:

alias net-pf-10 off

Údajné zrychlení připojení podle my10sen.com

Prý by to mělo být účelné (po doplnění do /etc/sysctl.conf):

net.core.wmem_default = 524288
net.core.wmem_max = 524288
net.ipv4.tcp_wmem = 4096 87380 524288
net.ipv4.tcp_rmem = 4096 87380 524288
net.ipv4.tcp_mem = 524288 524288 524288
net.ipv4.tcp_rfc1337 = 1
net.ipv4.ip_no_pmtu_disc = 0
net.ipv4.tcp_sack = 1
net.ipv4.tcp_fack = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_ecn = 0
net.ipv4.route.flush = 1

Pro aktivaci bez restartu slouží příkaz # sysctl -p

Jak zapnout numlock při startu systému

K zapnutí numlocku slouží program numlockx, který si nainstalujeme příkazem

# pacman -S numlockx

Pro přihlášení do systémů využívám KDM, ve kterém se aktivace nastaví tak, že se do souboru /opt/kde/share/config/kdm/Xsetup zadá příkaz

numlockx on

Jak to nastavit v jiných případech, najdete ve WIKI

Škaredý OpenOffice s mizejícími ikonkami a nabídkami

K tomuto problému dochází v kombinaci s gtk-qt-engine a nastavením stylu na styl v KDE. Šikovné řešení poradil v diskuzi na abclinuxu Kozzi: nainstalovat si balíček community/qtcurve-gtk2 a v gtk-qt-engine potom zvolit styl qtcurve. Vypadá dobře, jeho použitelnost je velmi dobrá. Pokud byste chtěli mít ve stejném stylu i jiné, než GTK2 aplikace, lze stáhnout i balíčky qtcurve-kde3, qtcurve-kde4 a qtcurve-gtk1.

Jak spustit „počítač” ve VirtualBoxu z příkazového řádku/skriptu

VBoxManage startvm nazev-virtualniho-stroje

Pokud jde o samotný VirtualBox, používám binární verzi, která je v AURu. Jaderný modul se po nainstalování vytvoří příkazem

# vbox_build_module
a poté je potřeba modul zavést příkazem
# modprobe vboxdrv
Uživatele, kteří mají mít právo vbox používat, je potřeba přidat do skupiny vboxusers.

Kompilace Wormuxu z SVN

Rádi doma s děckama hrajeme proti sobě po síti Wormux. Stále se v něm ovšem vyskytuje chybka, že se stává, že hráč odehraje, ale hra je přesvědčena, že neodehrál, a nelze pokračovat. Tak stále doufám, že se oprava objeví v některé nové verzi a kompiluji :-) To nejnovější z SVN. Nedávno se ovšem vyskytnul problém. Revize 4609, ani žádná novější, nešla sestavit. Psal jsem Wormuxákům, ale ignorovali to. Tak jsem napsal do fóra Archlinux.cz a uživatel Limoto mi poradil co s tím: že totiž kompilátor bere všechno to, co se normálně vypíše jako warning, za chybu. A vinou tohoto zbytečně přísného nastavení jsem narazil na problém, který se objevil v particle.cpp, ale není přitom kritický. Řešením je doplnit do PKGBUILD mezi příkazy configure a make tento řádek:

sed -i 's/-Werror//g' src/Makefile

Když už píšu o kompilaci z SVN…

…tak takto kompiluji i některé další programy. Jednak můj oblíbený GIMP, jehož vývojová větev 2.5.x je již použitelná, dále Hugin, který je na rozdíl ode všech „klasických“ vydání stabilní. A k Huginu také Autopano-SIFT-C a enblend (no dobře, ten je z CVS;-))

Desetinná čárka na numerickém bloku

Pro nastavení klávesnice používám uživatelský příkaz

$ setxkbmap -model pc104 -layout cz

Jenže to má ten problém, že je tam taková malá nenápadná, ale nepříjemná chybka. Česká klávesnice totiž nerespektuje desetinnou čárku. Místo ní píše tečku. Co s tím? Na abclinuxu.cz mi poradil uživatel 'petr_p'. Je potřeba přidat do souboru /usr/share/X11/xkb/symbols/cz do sekce basic tento řádek:

key <KPDL>  { type[Group1]="FOUR_LEVEL_KEYPAD", [ KP_Delete, comma, KP_Delete, KP_Decimal ] };

Nefunkční Google-earth s novými ovladači nvidia

Velmi zajímavý problém, na který mi nikdo nikdy neodpověděl. S ovladači nvidia 185 a vyššími v 64bitovém Archu přestane fungovat zobrazení zeměkoule v Google-earth. Řešení je prostinké: nainstalovat místo lib32-libgl balíček lib32-nvidia-utils ve stejné verzi, jako jsou 64bitové ovladače nvidia :-) (Starším verzím libgl stačilo, novým už nestačí).

A ještě další chybička - pokud máte problém s tím, že GE dislokuje špatně místa. je potřeba ho spouštět takto:

$ LC_NUMERIC=C googleearth

Pár odkazů do ArchWiki

Používáte browser CCBot/2.0 (http://commoncrawl.org/faq/)