miércoles, 15 de febrero de 2012

Linux: KDE, Optimitzar recursos

Una manera d'estalviar ús de RAM a KDE és deshabilitant el Nepomuk i l'Akonadi (no entraré en detalls).

Per desactivar Nepomuk anem a "Preferencias del sistema" / "Búsqueda de escritorio" i desmarcar "Habilitar el escritorio semántico Nepomuk", i clickem a "Aplicar".

Per desactivar Akonadi, haurem de crear un script al directori ~/.kde/Autostart/, donarli permisos d'execució (chmod +x arxiu) i posar-hi el següent:

#!/bin/sh
akonadictl stop


EDIT: A KDE 4.7 no em funciona la opció del Akonadi al Autostart. La manera de fer-ho es editar ~/.config/akonadi/akonadiserverrc


I canviar:
StartServer=true
per 
StartServer=false



Linux: Crear particions marcant els sectors dolents

Val a dir que encara no he provat cap d'aquestes opcions. És útil quan tenim un disc dur que té alguns sectors defectusos de manera que marcant-los evitem que el sistema els llegeixi i que es perdi el conseqüent temps. Aprofito per afegir que aquest blog no es cap blog per penjar-se medalles ni fer tutorials ni res sino que és una guia per a mi, de comandes i sol·lucions davant diversos problemes determinats. Generalment quan creo alguna entrada en cito la font d'on ho he tret.  Aquesta vegada no serà excepció: 

http://www.gultgu.org/node/152



En este tutorial encontrara la información para realizar mantenimiento a sistemas de ficheros ext2, ext3 y ext4. Ademas de marcar (para que no sean utilizados) esos molestos sectores defectuosos que ponen en riesgo la integridad de los datos.
Es muy importante darle mantenimiento periodico a los sistemas de ficheros ( FS ),
para prevenir perdidas de información.

Las herramientas que utilizaremos en este tutorial son:
 -badblocks
-mke2fs
-e2fsck


Antes de iniciar con la parte técnica es importante entender lo siguiente:
Sector físico: Imaginemos un sector físico como un cuadrito de una hoja de papel cuadriculado. Normalmente un sector físico tiene un tamaño de 512 bytes.
Sector lógico: Es un grupo de sectores físicos, también conocido como bloques o cluster. Con un lápiz podríamos crear un bloque de 2 cuadritos en nuestra hoja, ese bloque seria de 1024 bytes que es igual a 1Kbytes.
badblocks: Como su nombre lo indica, sirve para listar sectores lógicos defectuosos (bloques)
si no se especifica el tamaño de bloque ( opcion -b ) generara bloques de 1k.
mke2fs: Crea FS del tipo; ext2, ext3, ext4.
e2fsck: Es el que repara los FS ext[2, 3, 4].
Ahora planteo unos casos para ilustrar el tutorial:
CASO 1
Si tenemos un disco duro de años, es posibles que tenga sectores defectuosos, asi que es recomendable marcar los sectores defectuosos para que el FS no los utilice. podemos crear particiones con fdisk. Supongamos que creamos una sola particion llamada hdb1. ( En alguna partición de hda esta nuestro SO, que resulta idenfirente ).
Crear FS y marcar sectores lógicos malos:
#mke2fs -t ext4 -c /dev/hdb1

-La opción " -t " es para decir que sistema de fichero usaremos, podría ser ext2 o ext3.
-mke2fs crea bloques de 4k si no se le dice lo contrario. ( opción " -b " )
-La opción " -c " es para marcar bloques malos usando badblocks.
-Listo tenemos una partición con ext4 y con los bloques malos marcados ( no se usaran ).
 
CASO 2
A pasado el tiempo y nuestra partición del ejemplo anterior necesita mantenimiento:
#e2fsck -p -c -k /dev/hdb1
-La opción " -p ", intentara repara automáticamente ( si no me equivo es la opción que se usa al inicio en mantenimiento programado )
- Opción " -c " en combinación con la opción " -k ", agrega nuevos bloques defectuosos a la lista ( y asi no se escanea nuevamente los ya dañados )
*Si no se formateo con la opción " -c " ( ver caso 1 ) simplemente: ( sin " -k " ya que no hay una lista previa de bloques malos )
#e2fsck -c /dev/hdb1.
 
CASO 3
Supongamos que hdb1 sera formateado constantemente por alguna razon. Para no estar analizando los sectores defectuosos cada vez que se desee formatear, se puede crear una lista de sectores defectuosos:
#badblocks /dev/hdb1 -o bloques_dañados
Marcar al formatear usando la lista generada por badblocks:
#mke2fs -t ext4 -l bloques_dañados /dev/hdb1
y si no se marca al formatear también se puede después de formatear:
#e2fsck -l bloques_dañados /dev/hdab1.
 
Notas Importantes:
1)elegí hdb1 para mostrar que por seguridad, no debe de estar montada la partición a la que le daremos mantenimiento.
2) En general le podemos dar mantenimiento a cualquier partición siempre y cuando no este montada.
3)En el caso 3 es muy importante que el tamaño de bloque que genera badblocks coincida con el tamaño de bloque generado por mke2fs y e2fsck. Es decir que si planea usar o usa un sistema de ficheros con tamaño de bloque de 2k
tendría que especificarlo en el comando badblocks: #badblocks -b 2048 /dev/hdb1 -o bloques_dañados
De no ser asi se cometera un error lógico.
4) K = 1000, entonces 2K = 2000?
si pero en este caso hay que recordar que un sector fisico es igual 512 bytes,
2K es igual a 4 sectors físicos. O sea que cada bloque tendra 4 sectores fisicos.
5) Agregar opción -v en los comandos anteriores para que muestren mas información.

Linux:KMix, Backend Pulseaudio VS Backend ALSA

El Backend del KMix és l'estructura de canals que s'assigna a un dispositiu de so. 

En el cas del Pulseaudio, el Backend del KMix consta de un sol canal per cada dispositiu. És molt util quan tenim targetes de so que utilitzen múltiples altaveus (4, 5, 6, ... ) ja que amb UN SOL canal controlem el volum total del dispositiu. Es poden ajustar els volums de cada altaveu amb la comanda pavucontrol.

En el cas de ALSA, el Backend del KMix consta de múltiples canals per cada dispositiu, els Master, PCM, Front, Center, Rear, Synth, Bass, etc.). És útil per controlar els múltiples canals per cada dispositiu de manera que es un desavantatge quan volem controlar tots els altaveus de cop.

Ara ve, quan tenim ambdos sistemes instal·lats, per defecte Pulseaudio es qui controla els dispositius. De manera paral·lela es poden ajustar els volums amb alsamixer sense que afecti al control unic de volum de KMix amb el Backend de Pulseaudio.

Si de tota manera vulguessim tenir el Backend de ALSA al KMix utilitzant com a servidor de so Pulseaudio, fem el següent:

export KMIX_PULSEAUDIO_DISABLE=1

Si reiniciem el KMix hauriem de poder veure els antics Master, PCM, Front, etc.

Problema important

Volem utilitzar el Backend de Pulseaudio al KMix amb el servidor de so Pulseaudio però quan iniciem el sistema operatiu veiem el Backend de ALSA al KMix . Si just tanquem KMix i tornem a executar-lo veiem que el Backend ara es el de Pulseaudio el problema és que el sistema primer carrega KMix i després Pulseaudio.

Les aplicacions d'inici de KDE 4 estan emmagatzemades a /usr/share/autostart, /etc/xdg/autostart i ~/.kde4/Autostart. El primer directori conté els programes de sistema que s'han de carregar i el segon i tercer directori conté les aplicacions d'usuari. KMix guarda els arxius kmix_autostart.desktop and restore_kmix_volumes.desktop a /usr/share/autostart, i Pulseaudio guarda pulseaudio-kde.desktop a /etc/xdg/autostart directory.

La manera de sol·lucionar el problema es invertir els emmagatzemaments, és a dir:

root@debian:~# mv /usr/share/autostart/kmix_autostart.desktop /etc/xdg/autostart/

root@debian:~# mv /usr/share/autostart/restore_kmix_volumes.desktop /etc/xdg/autostart/

root@debian:~# mv /etc/xdg/autostart/pulseaudio* /usr/share/autostart/


Si reiniciem, això hauria d'haver sol·lucionat problema.


Font d'interès:



https://bbs.archlinux.org/viewtopic.php?id=116215

Linux: Reinicialitzar PulseAudio

Després de casi 2 hores ja he trobat la sol·lució. El problema bàsic és que reinicialitzant Pulseaudio per les bones, fa que al Phonon (System Settings / Multimedia) no hi hagi els dispositius que hi havia abans de reinicialitzar. 

Dit d'una altra manera, que si fem pulseaudio -k (sempre, sempre com a usuari es farà), el que fa es matar el procés però automàticament s'executa pulseaudio de nou. La culpa la té una opció que es diu "autospawn".

Quan aconseguim, però, matar el procés i que no es reexecuti automàticament trobarem un altre problema: Que executant pulseaudio o pulseaudio --start o qualsevol de les variants per arrancar pulseaudio, quan anem al Phonon no trobarem els dispositius que teniem abans.

Per sol·lucionar aquests 2 problemes:

1. Crear ~/.pulse/client.conf i afegir-hi

autospawn = no

Tambe podríem haver fet directament:

xddxdd@debian:~$ echo "autospawn = no" >> ~/.pulse/client.conf

2. Executar com a usuari:

xddxdd@debian:~$ pulseaudio -k

Ara si que tenim el procés mort de debò (xD)

3. Executar com a usuari

xddxdd@debian:~$ start-pulseaudio-kde

Ara en principi ja hauríem de tenir al Phonon els dispositius de sempre (els "SB Live EMU10K1 Análogo Envolvente 5.1").

Nota: Contingut del fitxer start-pulse-audio-kde que està a /usr/bin/


#!/bin/sh

# This file is part of PulseAudio.
#
# PulseAudio is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# PulseAudio is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with PulseAudio; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
# USA.

set -e

[ -z "$PULSE_SERVER" ]

/usr/bin/pulseaudio --start "$@"

if [ x"$DISPLAY" != x ] ; then

    /usr/bin/pactl load-module module-device-manager "do_routing=1" > /dev/null

fi

Linux: Configurar volum dels altaveus al Pavucontrol

El Pavucontrol és una aplicació referent al Pulseaudio que permet configurar el volum de cada altaveu d'un sistema de so (paral·lelament com feiem amb l'alsamixer pero en comptes de tocar tants canals, ara ens cenyirem només a "Altavoz izquierdo frontal o trasero, etc".

Però per poder fer-ho caldra dir-li a Pulseaudio que realment tenim 6 altaveus (o 4, els que siguin). Per fer-ho cal editar l'arxiu /etc/pulse/daemon.conf , concretament la següent línia:


; default-sample-channels = 6

És de suposar amb un /etc/init.d/pulseaudio restart n'hi ha prou per veure els canals al pavucontrol.

Linux: Comprimir JPG/PNG , crear PDF a partir d'imatges JPG/PNG i conversió entre formats.


Abans que res recomano fer copies dels JPG i PDF a manipular ja que si ens equivoquem amb el tractament, podríem sobreescriure els nostres fitxers originals.

1) Crear PDF's a partir d'imatges

El mètode que feia servir abans era a través del GIMP ( Archivo / Crear / Multiple PDF (o algo així )) però malauradament amb la versió 2.7.5 ja no hi és aquesta opció. En el seu lloc hi ha la comanda convert (que podem trobar als repos de la Debian al paquet imagemagick encara que potser també necessitarem el paquet ghostscript). El funcionament per crear un PDF a partir d'imatges és senzill:

xddxdd@debian:~$ convert 1.jpg 2.jpg nom.pdf

xddxdd@debian:~$ convert *.jpg nom.pdf

A l'utilitzar la primera comanda hem d'anar amb molt de compte a posar de paràmetre el nom del PDF, si no reescriurem la ultima imatge com a arxiu PDF i la borrarem (epic fail).

Si vulguéssim crear un PDF amb les imatge JPG però rotant-les X graus (Per exemple 90º):

xddxdd@debian:~$ convert -rotate 90 *.jpg nom.pdf

Es clar que potser també ens interessaria el pas invers: Obtenir imatges d'un PDF. Llavors:

xddxdd@debian:~$ convert nom.pdf nom_base_de_les_imatges.jpg

IMPORTANT: Per defecte el DPI és 72, la qual cosa vol dir una resolució d'imatge molt pobre. Podem modificar-lo amb el paràmetre -density:

xddxdd@debian:~$ convert -density 300 nom.pdf nom_base_de_les_imatges.jpg

Ara la qualitat ja és més bona.

Per últim indicar que es poden fer afegir JPG's a un PDF. Ho podem fer així.

xddxdd@debian:~$ convert imatge.jpg nom_pdf_base.pdf nom_pdf_final.jpg

Fixem-nos-hi que la imatge JPG s'afegeix per davant o per darrere del PDF segons si posem el nom del JPG abans o el posem després del PDF. En l'exemple anterior la imatge aniria davant ja que l'hem posat davant de nom_pdf_base.pdf

Tenim el mateix problema amb la qualitat que també solventarem amb el paràmetre -density:

xddxdd@debian:~$ convert -density 300 imatge.jpg nom_pdf_base.pdf nom_pdf_final.jpg

Tenim el mateix problema amb la qualitat que també solventarem amb el paràmetre -density:


2) Comprimir imatges (JPG i PNG)

JPG

La comanda és senzilla:

xddxdd@debian:~$ convert -quality 40 * Imatge.jpg

Converteix tots els fitxers que hi ha al directori una qualitat del 40% i els guarda a nous fitxers que comencen per Imatge-. També podria haver utilitzat *.jpg o *.jpeg en comptes de *.

IMPORTANT: Deixo una comanda de força utilitat que comprimeix els fitxers i automàticament crea el PDF.

 xddxdd@debian:~$ convert -quality 40 * Imatge.jpg ; convert Imatge*.jpg Document.pdf

Utilitant punt i coma fem que el segon procés convert s'executi quan acabi el primer.

PNG

Cal tenir el paquet pngquant. La comanda és:

xddxdd@debian:~$ find ./ -name "*.png" -exec pngquant --quality 1-2 {} \;

3) Conversió entre formats

Cal tenir el paquet imagemagick. La comanda és:

JPG a PNG

xddxdd@debian:~$ find ./ -name "*.jpg" -exec mogrify -format png {} \;        

PNG a JPG

xddxdd@debian:~$ for i in *.png ; do convert "$i" "${i%.*}.jpg" ; done
       

Linux: Configuracio dels jacks de sortida en una Sound Blaster

Segueixo insistint en el tema. Aquesta vegada tracta la configuració de cada Jack de sortida de la meva Sound Blaster a qualsevol mesclador (preferentment Alsamixer) a Linux. 

Es dona per suposat que la conexió física de cablejat s'ha fet correctament (tinc una entrada feta en aquest blog amb el tag de Sound Blaster). 

En aquest cas jo utilitzo el Subwoofer i 4 altaveus (2 altaveus connectats al Subwoofer com a Front i 2 altaveus connectats al Subwoofer com a Rear). 

El mesclador que jo utilitzo per setejar tot això és l'Alsamixer (no GUI). Recomano instal·lar Pulseaudio i controlar el volum total del KMix (o el mesclador que utilitzem a l'entorn gràfic) amb un sol canal ja que si no, no podrem baixar ni pujar el volum de l'equip de so només amb un canal si no que cal modificar tots els canals de volum que veurem a continuació. 

Amb alsamixer setejarem els següents canals i llavors controlarem el volum total només amb un canal (SB Live EMU10K1 Análogo Envolvente 5.1 per exemple)

NOTA: Hi ha una entrada al blog adjacent a aquesta que explica com setejar el KMix perque funcioni amb un sol canal amb el Pulseaudio per si per defecte ens surt el mateix al KMix que a l'Alsamixer.

Tenim 3 Jacks:

a) FRONT JACK: Controla els altaveus connectats com a Front. Ho setejo a Mixer Output. Es controla amb els canals Master i PCM.


b) CENTER/ LFE JACK: Controla els altaveus connectats com a Rear. Ho setejo a Center / LFE Output. Es controla principalment amb Surround (o tambeWave Surround i Surround Mix).

c) REAR JACK: Controla el Subwoofer, si tingues un 5è altaveu també es controlaria per aquí. Ho setejo a Front Output. Es controla amb el Front Output. Si ho setejo a Rear Output es controla amb el Wave Center, Wave LFE o Center.

Jo ho tinc així (si es descarrega l'imatge, es poden veure les lletres).


Linux: Matar un procés passant com a paràmetre el nom

Fonts:

Fins ara la manera que tenia de matar un procés era saber-ne el seu PID (Process Identifier), fent un ps -e  | grep nomproces i despres matant-lo amb un kill nomproces.
Poso aquí diferents maneres de matar un procés passant com a paràmetre el seu nom (sense haver de saber-ne el seu PID). No cal dir que el cal canviar es PROCESS pel nom del procés que vulguem matar:

xddxdd@debian:~$ ps -ef | grep PROCESS | grep -v grep | awk '{print $2}' | xargs kill -9


xddxdd@debian:~$ ps -ef | awk '/PROCESS/ && !/awk/ {print $2}' | xargs -r kill -9


xddxdd@debian:~$ pkill -9 -f PROCESS

xddxdd@debian:~$ tokill=`ps -fea|grep PROCESS|awk '{ printf $2" "}'`; kill -9 $tokill;

xddxdd@debian:~$ killall PROCESS

martes, 14 de febrero de 2012

Linux: Setejar disc dur secundari al FSTAB amb pemisos d'escriptura per qualsevol usuari.

Crec que no cal comentar res més que el procediment:

1. Es crea el directori alla on es vulgui (mkdir nomdirectori).
2. Se li donen permisos d'escriptura per a qualsevol usuari (chmod o+rwx nomdirectori).
3. Editar /etc/fstab com a ROOT:


/dev/sdbX /ruta/del/directori auto errors=remount-ro,noauto,user 0 0 


Poso un link on s'explica amb detall les opcions de cada linia que es posa al fstab:


http://www.tuxfiles.org/linuxhelp/fstab.html


Linux: Desactivar Speaker

Desactivar l'Speaker és una de les coses més torracollons (perdó) que hi ha a Linux. Abans, amb un modprobe -r pcspkr (o rmmod pcspkr) n'hi havia prou. Deixo un parell de links on proposen algunes maneres.


La que m'ha funcionat a mi consta del següent:

1. Editar /etc/modprobe.d/blacklist.conf (o crear-lo si no existeix) i posar-hi:
blacklist pcspkr
blacklist snd_pcspkr

En principi amb això n'hi ha prou (el que fa es no carregar els mòduls que s'escriuen després de blacklist, és a dir un rmmod modul però que es manté quan reiniciem).

A una de les pàgines anteriorment vistes es suggereix que encara que posem a la blacklist els mòduls del Speaker no n'hi ha prou ja que: 

Note: The blacklist command will blacklist a module so that it will not be loaded automatically, but the module may be loaded if another non-blacklisted module depends on it or if it is loaded manually.
However, there is a workaround for this behaviour; the install command instructs modprobe to run a custom command instead of inserting the module in the kernel as normal, so you can force the module to always fail loading with:
/etc/modprobe.d/blacklist.conf
...
install MODULE /bin/false
...
This will effectively "blacklist" that module and any other that depends on it. "

Jo aquest opció no l'he provat així que seria interessant fer-ho. Enlloc d'això:

2. root@debian:~# apt-get install alsa-base
   xddxdd@debian:~$  echo "options snd_hda_intel beep_mode=0" >> /etc/modprobe.d/alsa-base.conf

Ara si reiniciem, no hauriem de sentir més el molest soroll de l'Speaker.

NOTA: Si desinstal·lem ALSA (apt-get remove alsa-base) veurem que al reiniciar tindrem el Speaker tocant els pebrots un altre cop en forma de dispositiu del Phonon. Es tan facil com anar al Phonon ("Preferencias del sistema" / "Multimedia" / "Audio Hardware Setup") i sel·leccionar:

Tarjeta de sonido: pcsp
Perfil: Apagado

És possible que encara tinguem l'Speaker (és pitjor que el monstre Bu) anem a alsamixer i F6 sel·leccionem pcsp, anem a "Beep" i clickem la tecla "m" i veurem com es canvia de 00 a MM (mute). A dalt veiem: Item: Beep [off]. Clickem "Esc".

Ara en principi si que ja està.