martes, 30 de agosto de 2011

Linux: Escollir el programa per defecte per una tasca específica (Java, editor de text, ...)

Vaig descobrir-ho quan tenia 2 o més versions instalades de Java i havia de triar-ne una:

a) Per triar una opció dins de les possibles:

xddxdd@ubuntu:~$ sudo update-alternatives --config java


Existen 3 opciones para la alternativa java (que provee /usr/bin/java).

Selección Ruta Prioridad Estado
------------------------------------------------------------
0 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 modo automático
1 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 modo manual
* 2 /usr/lib/jvm/java-6-sun/jre/bin/java 63 modo manual
3 /usr/lib/jvm/jre1.6.0_21/bin/java 1 modo manual

Pulse para mantener el valor por omisión [*] o pulse un número de selección:


b) Per instalar un programa com a alternativa (en el mateix cas de Java per exemple):

xddxdd@ubuntu:~$ sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jre1.6.0/bin/java" 1

c) Per setejar com a alternativa per defecte:

xddxdd@ubuntu:~$ sudo update-alternatives --set java /usr/lib/jvm/jre1.6.0/bin/java

d) Un altre exemple, per veure la llista d'editors que tenim:

xddxdd@ubuntu:~$ sudo update-alternatives --list editor

/bin/ed
/bin/nano
/usr/bin/emacs23
/usr/bin/vim.basic

Linux: Compilar aMule + Compilar WxWidgets

Va haver-hi un temps en que quan tancaves una finestra de cerca a l'aMule es tancava també tot el programa. Altrament quan minimitzavem a la System Tray el programa també petava. Si no recordo malament no era problema del mateix programa aMule si no d'unes llibreries que en depèn anomenades WxWidgets.

"Las wxWidgets son unas bibliotecas multiplataforma y libres, para el desarrollo de interfaces gráficas programadas en lenguaje C++." Wikipedia dixit.

Total que per solventar aquest problema vaig haver de compilar aMule i WxWidgets:

1. Ens baixem un aMule SVN de http://amule.sourceforge.net/tarballs/tarballs.xml

2. Ens baixem una versió estable de WxWidgets com en el meu cas era la versio 2.8.12: http://prdownloads.sourceforge.net/wxwindows/wxWidgets-2.8.12.tar.bz2

3. Descomprimim ambdos fitxers (tar zxfv fitxer.tar.gz i tar jxfv fitxer.tar.bz2)

4. Entrem lògicament primer al directori del WxWidgets i el configurem:

xddxdd@ubuntu:~$ ./configure --prefix=/usr --with-gtk --enable-unicode --disable-compat24 --enable-optimise

L'opció unicode es indispensable per a poder compilar l'aMule.

si tot va bé:

xddxdd@ubuntu:~$ make

xddxdd@ubuntu:~$ sudo make install

xddxdd@ubuntu:~$ sudo ldconfig

(per ajuntar comandes s'utilitza el simbol && de manera que ho podriem fer tot en una sola linia (com a ROOT) ./configure blalbalblal && make && make install && ldconfig però com és possible que el configure no configuri bé i el make doni algun error no sóc partidari, per si algú ho llegeix, de fer servir el && i posar-ho tot en una línia).

Recordar que l'únic que requereix identificar-se com a ROOT és el make install (també lògicament i apart del ldconfig).

5. Ara entrem al directori on hem descomprimit l'aMule

si executem configure així tal cual:

xddxdd@ubuntu:~$ ./configure

probablement tindrem un error:

checking for the --with-wxdebug option... will be automatically detected
checking for the --with-wxversion option... will be automatically detected
checking for wx-config... /usr/local/bin/wx-config
checking for wxWidgets version >= 2.8.12 (--unicode=yes)... no
configure: error:
The requested wxWidgets build couldn't be found.

The configuration you asked for aMule requires a wxWidgets
build with the following settings:
--unicode=yes
but such build is not available.

To see the wxWidgets builds available on this system, please use
'wx-config --list' command. To use the default build, returned by
'wx-config --selected-config', use the options with their 'auto'
default values.

If you still get this error, then check that 'wx-config' is
in path, the directory where wxWidgets libraries are installed
(returned by 'wx-config --libs' command) is in LD_LIBRARY_PATH
or equivalent variable and wxWidgets version is 2.8.12 or above.

Per resoldre aquest fastidiós error s'ha de posar un paràmetre amb la ruta on hem indicat que s'instalés WxWidgets :--with-wxdir=/usr/

(també adjunto 2 paràmetres més que solen utilitzar-se per compilar aMule):

xddxdd@ubuntu:~$ ./configure --with-wxdir=/usr/ --disable-debug --enable-optimize

xddxdd@ubuntu:~$ make

xddxdd@ubuntu:~$ make install


Si tot ha anat bé, ara ja podem executar aMule.

PD: Deixo aquí una seqüència de comandes d'interès per configurar WxWidgets quan hi ha més d'una versió instalada.

wx-config --list

wx-config --selected-config

update-alternatives --config wx-config

Linux: KMix vs PulseAudio

Després de fer un dist-upgrade em trobo que el KMix presenta un únic canal "Internal Audio Analog Stereo" en comptes dels típics canals Master, PCM. Vaig indagar i la sol·lució que vaig trobar va ser borrar el sistema de so PulseAudio:

xddxdd@ubuntu:~$ sudo killall pulseaudio

xddxdd@ubuntu:~$ sudo apt-get remove --purge pulseaudio*

Los siguientes paquetes se ELIMINARÁN:
gstreamer0.10-pulseaudio* indicator-sound* libcanberra-pulse* pulseaudio* pulseaudio-esound-compat*
pulseaudio-module-x11* pulseaudio-utils*

Un cop fet això i reiniciat, ja hauríem de tenir els nostres entranyables canals d'audio de sempre.

PD: Per si algun cop se'ns ocurreix desinstalar ALSA:

xddxdd@ubuntu:~$ sudo /etc/init.d/alsa-utils stop

xddxdd@ubuntu:~$ sudo apt-get remove alsa-base alsa-utils

xddxdd@ubuntu:~$ sudo dpkg-reconfigure linux-sound-base

lunes, 29 de agosto de 2011

Linux: Canviar locales a UTF-8

No recordo bén bé perque ho vaig canviar, crec que va ser perque la codificació de caràcters ISO-8859-1 em donava problemes amb els accents i caràcters varis, així que vaig decidir de canviar-ho a UTF-8

xddxdd@ubuntu:~$ localepurge (per borrar)

xddxdd@ubuntu:~$ locale-gen es_ES.UTF-8

Edito /var/lib/locales/supported.d/local i hi deixo nomes: es_ES.UTF-8 UTF-8

Edito /etc/environment i ho canvio tot per UTF-8

I en principi així hauria d'haver-se canviat la codificació.

Linux: Setejar So Envolvent 5.1 amb una Sound Blaster Live!

Entrades de la meva Sound Blaster Live!:

  1. Taronja: Sortida central / Sortida del Subwoofer.
  2. Blava: Entrada
  3. Rosa: Micro
  4. Verda: Sortida frontal
  5. Negra: Sortida de darrera / Sortida Sorround.
Un cop s'ha configurat bé el cableja (no és dificil amb la foto), s'han de setejar els canals amb qualsevol mesclador que tinguem al sistema operatiu. Jo utilitzo el KMix.

Hi ha 8 canals útils en un mesclador només tenint en compte els altaveus de sortida (no so d'entrada ni ús de micròfon):

1. Master: És el volum general de so. Si tot està ben configurat, posat a 0 no s'hauria de sentir res.

2. PCM (Pulse Code Modulation): Controla el volum dels 2 altaveus setejats com a Front Right i Front Left.

3. Wave: Apareix com 2 canals però només funciona el de la esquerra. Funciona exactament igual que el PCM: Només afecta a Front Right i Front Left.

4. Wave Center: Controla el volum de l'altaveu setejat com a Front.

5. Wave LFE: Controla el volum (més greu, menys greu) del SubWoofer.

6. Wave Sorround: Controla el volum dels 2 altaveus setejats com a Rear.

En el meu cas a Linux, aquest canal és independent de Master pel que si atenuem Master, s'atenua PCM però no Wave Sorround (és a dir, els altaveus Rear) pel que haurem de baixar el volum de Wave Sorround si volem atenuar-ne el volum dels altaveus Rear i viceversa.

7. Bass: Controla el volum dels tons greus.

8. Treble: Controla el volum dels tons aguts.

Al haver-hi aquest problema amb els altaveus de darrere, jo només n'utilitzo 2 i el Subwoofer. D'aquesta manera tinc alineats força a dalt PCM i Wave, una mica menys Wave LFE, una mica menys Wave Center i finalment una mica menys Wave Sorround de manera que queden com una diagonal semi-perfecta entre Wave i Wave Sorround com a vèrtexs.


sábado, 27 de agosto de 2011

Linux: Associar els enllaços ed2k al Mozilla Firefox per obrir-los amb l'aMule

Passos:

1. Instalar amule-utils

xddxdd@debian:~$ sudo apt-get install amule-utils

*amule-utils conté un executable anomenat ed2k que posa els enllaços de la descàrrega a la cua de l'aMule

2. Trobar l'executable ed2k
xddxdd@debian:~$ which ed2k

/usr/local/bin/ed2k

3. Obrir el Firefox i a la barra de direccions escriure-hi:

about:config

I clickar a "¡Tendré cuidado, lo prometo!"

4. Crear una nova preferència lògica anomenada:

network.protocol-handler.expose.ed2k

amb valor: False

5. Ara intentem obrir un elink qualsevol amb el Firefox i quan ens demani l'aplicació a utilitzar, posarem la ruta del ed2k que hem obtingut amb el which (/usr/local/bin/ed2k, en el meu cas per exemple). Clickem a "Recordar mi selección para enlaces ed2k" i llestos.

PD 1: Si després de fer això ens surt el missatge molest de que Firefox no sap com obrir els enllaços ed2k, mirem si a about:config hi trobem la següent entrada setejada a false:

network.protocol-handler.expose-all

Si no ho està, la setegem a false i tornem a provar. Aquest és l'error que no em permetia a mi obrir els enllaços ed2k després d'haver fet tot el procés.

PD 2: En una altra pàgina es suggeria crear les següents preferències. Jo no ho vaig fer però aquí ho deixo, sempre pot ser útil:

Lògica: network.protocol-handler.external.ed2k Valor: True
Cadena: network.protocol-handler.app.ed2k Valor: /usr/local/bin/ed2k (o la ruta de ed2k)

Linux: Instal·lar VMware, a vegades, una autèntica odissea

Ja fa anys que utilitzo VMware sota Linux, em va bé per a aplicacions puntuals. I n'estic al corrent dels "parxes" que fan falta sempre per instalar aquesta costosa aplicació. El que no n'estava tan al corrent va ser un error que em va donar ahir al compilar el mòdul vmmon:

Makefile
:405: *** las reglas implícitas y las normales están mezcladas. Alto.

make: *** [vmmon.ko] Error 2
Vaig estar hores per averiguar la solució i vaig trobar-la a:

http://www.linuxquestions.org/questions/linux-software-2/error-mixed-implicit-and-normal-rules-while-trying-to-build-busybox-826795/

on l'usuari tenia el mateix problema però en anglès

Makefile:10: *** mixed implicit and normal rules.  Stop.

SOL·LUCIÓ: La versió de make que tenia instalada estava donant problemes.
Vaig fer un downgrade de make_3.82 a make_3.81-81 i ja vaig poder compilar el ditxós mòdul.

Ja posats poso les instruccións per instalar el VMware Workstation v7.1.4 Linux

1. Executar l'instal·lable que podem trobar a Internet:

xddxdd@debian:~$ sh VMware-Workstation-Full-7.1.4-385536.i386.bundle

2. Executar vmware:

xddxdd@debian:~$ sh vmware

3. Si hi ha algun error de compilació aplicar el patch corresponent.
Aquí hi ha la llista de parches que s'han d'utilitzar depenent del Kernel que tinguem i/o de la versió de VMware que tinguem: https://wiki.archlinux.org/index.php/VMware

EDIT: Aquesta guia va ser provat amb un 7.1.4 i un kernel 2.6.38, però també va ser provat amb un 7.1.4 i un kernel 3.1.0.

2.6.38: Jo en el meu cas vaig descarregar-me l'arxiu vmware-7.1.4-2.6.38-2-generic.patch.
3.1.0: En aquest cas vaig descarregar el següent arxiu http://weltall.heliohost.org/wordpress/wp-content/uploads/2011/08/fullvmwarelinux310patch.tar.gz
i en en vaig extreure l'arxiu vmware3.1.0.patch 

Vaig fer les mateixes operacions pel vmware-7.1.4-2.6.38-2-generic.patch que pel vmware3.1.0.patch 

Després com a ROOT vaig copiar a aquest arxiu a /usr/lib/vmware/modules/source
i després:

xddxdd@debian:~$ cd /usr/lib/vmware/modules/source
xddxdd@debian:/usr/lib/vmware/modules/source$ for i in ./*.tar; do tar -xf $i; done

xddxdd@debian:/usr/lib/vmware/modules/source$ for i in ./*.tar; do mv $i $i.original; done
xddxdd@debian:/usr/lib/vmware/modules/source$ patch -p1 < vmware-7.1.4-2.6.38-2-generic.patch
xddxdd@debian:/usr/lib/vmware/modules/source$ tar cf vmblock.tar vmblock-only && tar cf vmci.tar vmci-only && tar cf vmmon.tar vmmon-only && tar cf vmnet.tar vmnet-only && tar cf vsock.tar vsock-only

4. Reexecutem vmware de nou:

xddxdd@debian:~$ sh vmware
I ja ens hauria de funcionar el programa.

Linux: Saber ruta dels executables

Sense entrar massa en detalls la comanda Which per Linux:

DESCRIPCIÓN
which devuelve los nombres de ruta de ficheros (o enlaces) que se ejecutarían en el entorno actual, en el caso de haber introducido sus argumentos como órdenes en un intérprete de
órdenes estrictamente conforme con las normas POSIX. Para ello, busca ficheros ejecutables dentro de «PATH» cuyo nombre coincida con el nombre de los argumentos. No sigue enlaces
simbólicos.

Total que per exemple, buscant l'executable ed2k:

xddxdd@debian:~$ which ed2k

/usr/local/bin/ed2k

Linux: Gravar l'escriptori

Opció útil alhora de gravar el nostre escriptori a Linux. Permet escollir la zona de l'escriptori (mitjançant un requadre). La comanda per a treballar en entorn gràfic és:

xddxdd@debian:~$ gtk-recordmydesktop

PD: Per alguna raó encara desconeguda, el so no funciona.

Linux: Winetricks, ajuda per Wine.

Script que ens ajuda alhora de múltiples tasques com instalar llibreries de Windows, aplicacions de Windows, etc. A mi em va ser de molta utilitat per a poder instalar l'Internet Explorer 8 a Linux (la utilitat que té és que una pagina on haig de gestionar un munt de coses, només està suportada per IE8). La comanda és tan simple com:

xddxdd@debian:~$ winetricks

En el cas de Debian l'script està al paquet anomenat igual winetricks (Distribucions Testing i Unstable a dia 27 d'Agost de 2011).

root@debian:~# apt-file search in/winetricks

winetricks: /usr/bin/winetricks

PD: No cal dir que abans hem de tenir instalat Wine (apt-get mateix).

viernes, 26 de agosto de 2011

Wii: Utilitzar la Wii com un servidor FTP

La idea sorgeix quan no tinc cap aparell lector de targetes SD i necessito introduir dades a la SD de la consola Wii. Per utilitzar la targeta SD de la Wii hi ha 3 maneres:

- Utilitzar un lector de targetes SD.

- Utilitzar un component que utilitzi targetes SD i que pugui ser connectat al PC via USB.
Ex: Un GPS que vagi amb SD, una camara de fotos que vagi amb SD, etc.

- Utilitzar la propia Wii com un servidor FTP dins la mateix xarxa local que estem treballant. Clar està que per poder fer-ho necessitarem un router Wifi.

Passos:

1. Baixar-se el programa FTPii Versió 0.0.22 (r308) amb suport AHBPROT y USB 2.0 amb IOS58

http://www.mediafire.com/?j594b8b3ac56zbf


2. Descomprimir l'arxiu i posar la carpeta de ftpii a la carpeta apps de l'arrel de la SD.

3. Arranquem la Wii (S'ha de tenir instalat previament el Homebrew Channel). I arranquem el FTPii. Ens sortirà una pantalleta negra on hi distingirem Wii IP Address: 192.168.1.4 (per exemple)

4. Ara, al PC, ja podem interaccionar la SD de la Wii i el propi PC, mitjançant FTP. Haurem de anar al nostre explorador d'arxius del sistema operatiu que tinguem al PC (Internet Explorer, Dolphin, Konqueror, etc.) i a la barra de direccions posar: ftp://192.168.1.4 (seguint l'exemple, aquí ha haurem de posar la Wii IP Address que ens surt a la Wii quan arranquem FTPii. Ara ens sortirà el contingut de la SD al PC.

5. Per sortir del FTP mantenim el botó A apretat.

PD: Es poden posar passwords i tal però jo no ho he trobat convenient usar-ho/explicar-ho degut al poc ús que en faig de la Wii.

jueves, 18 de agosto de 2011

Calcul de distàncies mitjançant Google Maps

http://www.daftlogic.com/projects-google-maps-distance-calculator.htm

Amb aquesta adreça podrem calcular les distàncies que vulguem utilitzant infinitat de punts. És útil si es vol fer un recorregut que no sigui en carretera i es vulgui calcular la distància recorreguda.

Linux: Crackejant arxius PDF

La manera habitual és amb el programa PDFcrack que podem trobar als repositoris de la Debian. Així doncs una de les maneres de crackejar un arxiu PDF és indicant-ne la longitud mínima que pot tenir el password i llavors fent un atac per bruteforcing (anar provant totes les combinacions possibles). És un bon mètode si sabem que el password no té un mínim de longitud.

xddxdd@debian:~$ pdfcrack -n4 fitxer.pdf

on 4 és la longitud mínima que té el password del fitxer.pdf
-n, --minpw=INTEGER Skip trying passwords shorter than this

Nota: Per a alguns fitxers PDF, vaig comprovar que no servia aquest programa. Així doncs, vaig haver de buscar un mètode alternatiu que va ser utilitzar 1 programa de Windows emulat amb el Wine. El programa en qüestió és el PDF Password Cracker Pro v3.2 o també el PDF Password Cracker v3.1

Tots 2 funcionen perfectament amb Wine.

Linux: Xorg, bloqueig del teclat i ratolí al KDM

Quan ens passi això haurem d'instalar uns paquets del XServer-Xorg que ens falten. Ho resoldrem amb:

xddxdd@debian:~$ apt-get install xserver-xorg-input*

Nota: A vegades, si a la secció ServerFlags del xorg.conf no hi ha la línia AutoAddDevices="off", el ratolí i el teclat no funcionen.

miércoles, 17 de agosto de 2011

Linux: Obrir com a superusuari programes que requereixen entorn gràfic

Si ens identifiquem en una terminal com a ROOT i executem un programa que requereix entorn gràfic (se suposa que estem en un entorn gràfic KDE, GNome, Xfce, etc. ) a vegades ens donarà un error similiar a :

ERROR Invalid MIT-MAGIC-COOKIE-1 key

Hi ha 2 maneres de fer-ho per a que funcioni des d'una terminal:

xddxdd@debian:~$ sudo nomprograma

o bé

xddxdd@debian:~$ gksudo

i a la finestreta que se'ns obrirà, executar el programa allà.

Nota: Per executar gksudo cal tenir previament instalat el paquet gksu.

Linux: Compilar amb CMake i Plasmoides

EDIT: Quan instal·lem nous Plasmoides, una vegada s'ha configurat el CMake i s'ha fet el make && make install per trobar el nou Plasmoide a la llista de "Añadir elementos gráficos ... " cal haver executat la comanda kbuildsyoca4 com a usuari.

Sense entrar en detalls deixo la comanda amb els seus respectius paràmetres que solo utilitzar quan faig servir el CMAKE:

xddxdd@debian:~$ cmake -DCMAKE_INSTALL_PREFIX=/usr/ .

Linux: Compilar FFMpeg

Paràmetres de compilació del FFMpeg (el ffmpeg que podem instalar de Debian, no sempre té compilades les opcions que ens interessen).

./configure --enable-libmp3lame --enable-libtheora --enable-libx264 --enable-libgsm --enable-postproc --enable-libxvid --enable-libfaac --enable-pthreads --enable-libvorbis --enable-libfaad --enable-gpl --enable-x11grab --enable-libamr-nb --enable-libamr-wb --enable-nonfree --enable-bzlib

Linux: Imprimir caràtules CD i DVD

1. Mides DVD: 27, 40 cm x 18,90 cm

Mides CD: Front -> 12,50 cm x 12,02 cm
Back -> 15,42 cm x 11,77 cm

2. Opcions d'impressió (Utilitzant OpenOffice):

Color model: RGB Color
Color precision: Best
Media Type: Photo Quality Inkjet Paper
Print Quality: Best

3. Prink W10420, 20 sheets, 180 gr., a4 21 x 29,7 cm, max 5760.

Linux: NVidia problemes a l'instalar el driver privatiu

Breu post on comentaré un problema que vaig tenir i que "Googlejant" vaig trobar. Bé, després d'un de tants intents d'instalar els drivers privatius de NVidia (els que ens podem baixar de la seva pagina web oficial), em trobava que a l'hora d'instalar el driver, al principi de la instalació, es produia un error que abortava el programa i sortia de nou a la terminal amb l'error:

recieved signal SIGTERM; aborting

El problema es que encara hi havia paquets NVidia instalats. Un cop borrats tots i descarregat el modul (rmmod nvidia). Per veure els paquets que hi havia instalats:

xddxdd@debian:~$ dpkg -l | grep nvidia

I llavors vaig procedir a borrar aquests paquests amb un apt-get remove.

Linux: Operacions entre fitxers d'audio.

Conversions

Paquets necessaris:

xddxdd@debian:~$ sudo apt-get install vorbis-tools lame ffmpeg faad mpg123

1. OGG A MP3

xddxdd@debian:~$ ogg123 -d wav -f - fitxer_font.ogg | lame - fitxer_desti.mp3

2. WAV A MP3

xddxdd@debian:~$ lame -h fitxer.wav noufitxer.mp3

3. MP3 A WAV

xddxdd@debian:~$ lame --decode archivo.mp3 archivo.wav 

Per fer-ho amb múltiples arxius *.MP3 del directori on estiguem:

xddxdd@debian:~$ for i in *.mp3; do mpg123 -w "`basename "$i" .mp3`".wav "$i"; done

4. WAV A OGG

xddxdd@debian:~$ oggenc -b 128 -q 7 archivo.wav

5. OGG A WAV

xddxdd@debian:~$ oggdec fitxer.ogg

6. WMA A MP3

xddxdd@debian:~$ ffmpeg -i fitxer_font.wma -f mp3 -ab 192 fitxer_desti.mp3


7. M4A A MP3

Script que converteix tots els fitxers del directory amb extensio M4A a MP3:

#!/bin/bash

for i in *.m4a; do
echo "Converting: ${i%.m4a}.mp3"
faad -o - "$i" | lame - "${i%.m4a}.mp3"

done

8. Unir MP3

xddxdd@debian:~$ ffmpeg -i "concat:arxiu_1.mp3|arxiu_2.mp3" -acodec copy fitxer_desti.mp3

Linux: apt-file, trobar els paquets d'on provenen els arxius

A vegades ens interessa trobar de quins paquets procedeixen els arxius. En distribucions com la Debian on els arxius venen empaquetats en arxius *.deb hi ha una aplicació anomenada apt-file que permet trobar el paquet d'on prové l'arxiu (clar està, sempre que l'arxiu provingui d'un paquet *.deb, si l'arxiu l'hem instalat nosaltres provinent d'un source o l'hem copiat manualment, apt-file, evidentment, no trobarà el paquet perque simplement no hi ha paquet).

Funciona de la següent manera:

xddxdd@debian:~$ sudo apt-get install apt-file

xddxdd@debian:~$ sudo apt-file update (Per actualitzar la base de dades)

I ara per buscar un paquet, per exemple:

xddxdd@debian:~$ apt-file search zsnes

app-install-data: /usr/share/app-install/desktop/zsnes.desktop
app-install-data: /usr/share/app-install/icons/zsnes.xpm
python-hachoir-parser: /usr/share/pyshared/hachoir_parser/game/zsnes.py
zsnes: /usr/bin/zsnes
zsnes: /usr/share/applications/zsnes.desktop
zsnes: /usr/share/doc-base/zsnes
zsnes: /usr/share/doc/zsnes/README.Debian

Si volem ser més concret i trobar un executable (sabem que la carpeta on estarà l'executable, serà probablement una carpeta anomenada bin):

xddxdd@debian:~$ apt-file search bin/zsnes

zsnes: /usr/bin/zsnes

Linux: Conversió de format codificació de fitxers

És útil quan tenim fitxers en un format de codificació i llavors treballem en un sistema operatiu que utilitza un altre format de codificació. A vegades passa que veiem caracters extranys. Aquí exposo 2 maneres de canviar el format de codificació de fitxers.

Per exemple si estem treballant en un sistema operatiu que utilitza UTF-8 i tenim fitxers en ISO-8859-1 pot ser que els fitxers amb accents o altres signes com ", ^, i d'altres els veiem deformats amb signes d'interrogació per exemple.

El problema és que si intento copiar o editar o el que sigui aquests arxius amb ?, el sistema operatiu no em deixa pel que, o dono per perdut l'arxiu(s) o el canvio de codificació perque ja es vegi com era (amb un ', ^ o el que sigui) i el pugui tractar. Així doncs si volem canviar el format d'un arxiu:

xddxdd@debian:~$ iconv --from-code=ISO-8859-1 --to-code=UTF-8 ./oldfile.htm > ./newfile.html


Si ho vulguessim fer al revés o amb altres formats, hauriem de canviar els paràmetres lògicament.

El problema és si tenim 2368432 arxius en un directori i el seus respectius subdirectoris. Canviar "manualment" cada arxiu pot ser una tasca realment tediosa. Això ho podem subsanar amb:

xddxdd@debian:~$ convmv -r --notest -f iso-8859-1 -t utf-8 *
Nota: També podem fer-ho només per a un arxiu canviant el * pel nom de l'arxiu en qüestió.
Notis que executant aquesta comanda, converteix tots els fitxers del directori i també dels respectius subdirectoris recursivament.

Nota: Les 2 comandes es poden trobar als repositoris de Debian en els paquets libc-bin i convmv.

Linux: Configurar Samba per a compartir rutes, llegir i escriure-hi

Passos per configurar una xarxa local d'arxius, impresores, etc amb SAMBA.

1. Instalar samba, com a ROOT: (aptitude install samba smbclient winbind krb5-doc krb5-user krb5-config)

2. Afegim un usuari al sistema:

adduser nomdusuari (si nomdusuari ja estava creat, llavors no cal).
passwd nomdusuari (idem, serveix per setejar un password a aquest usuari).

smbpasswd -a nomdusuari (li assignem un password per al samba al usuari).

Aquests 2 passos s'ometen, només són per clarificar el que caldria fer per adjudicar com a propietari un directori (el que farem després, es podria fer amb aquest directori sambaexemple):

mkdir /home/nomdusuari/sambaexemple
chown nomdusuari /home/nomdusuari/sambaexemple

3. Ara explicaré com es fa per tenir permisos de lectura/escritura. Primerament necessitem un grup d'escritura lectura a, per exemple /var/www (si es la ruta on volem tenir permisos de r/w).

sudo addgroup www-users
sudo adduser nomdusuari www-users

4. Ara li donem permisos d'escritura a /var/www

sudo chown -R root:www-users /var/www
sudo chmod -R 771 /var/www

5. Finalment editem el fitxer de configuració de samba, /etc/samba/smb.conf

sudo vi -w /etc/samba/smb.conf

I hi afegim:

[www]
comment = www directory
path = /var/www
public = yes
writable = yes
valid users = nomdusuari
create mask = 0771
directory mask = 0771
force user = nomdusuari
force group = www-users


6. Ara nomes cal reiniciar Samba.

sudo /etc/init.d/samba restart

Linux: Tipus de CD/DVD per gravar ISOS de jocs

Medis òptics per a gravar ISOS de jocs.

01) XBOX PRIMERA
DVD -R (120 min, 4.7GB)
Marques provades: Verbatim.

02) XBOX 360
DVD de doble capa (DoubleLayer) DVD +R (240 min, 8.5GB)
Marques provades: TDK, Verbatim.

03) SEGA SATURN
CD-R (700 MB)
Marques provades: Sony, Verbatim, TDK.

04) WII
DVD -R (120 min, 4.7GB)
Marques provades: Verbatim.

05) PC ENGINE
CD-R (80 min, 700 MB)
Marques provades: TDK.

06) NEO GEO CD
CD-R (700 MB)
Marques provades: Sony.

07) GAME CUBE
DVD -R (30 min, 1.46GB)
Marques  provades: Mini DVD Ridata 707709RDA0011

08) DREAMCAST
CD-R (80 min, 700 MB)
Marques provades: Verbatim, TDK, Sony, March, Intenso.

09) MEGA CD
CD-R (80 min, 700 MB)
Marques provades: Verbatim.

10) PSX
CD-R (80 min, 700 MB)
Marques provades: Verbatim, Traxdata, Princo.

11) PS2
CD-R (80 min, 700 MB)
Marques provades: Verbatim, TDK.

martes, 16 de agosto de 2011

Linux: Gravació de ISOS de videojocs

Mètodes de gravació de ISOS de videojocs.

01) XBOX PRIMERA

xddxdd@debian:~$ growisofs -use-the-force-luke=dao -use-the-force-luke=break:1913776 -dvd-compat -speed=2 -Z /dev/dvdrw=joc.iso

DEPRECATED ! NO VA ! En el seu lloc:

xddxdd@debian:~$ /usr/bin/wodim -v gracetime=2 dev=/dev/sr0 speed=2 -sao driveropts=burnfree -data -tsize=2282016s joc.iso

02) XBOX 360

xddxdd@debian:~$ growisofs -use-the-force-luke=dao -use-the-force-luke=break:1913760 -dvd-compat -speed=2 -Z /dev/dvdrw=joc.iso

Basicament canvia en comparació amb la comanda de XBox Primera, el LAYERBREAK de 1913776 a 1913760.

Pels XGD3, fer-ho en Windows amb ImgBurn.

03) SEGA SATURN
  • EDITAT !!!!: Un mètode 100% eficaç amb arxius BIN/CUE i ISO/WAV/CUE és el que està proposat a la secció de Mega CD. Per tant RECOMANO TOTALMENT seguir el mètode "Mega CD" per als jocs de Sega Saturn.
1. Recomano RENOMBRAR l'arxiu bin a un senzil, un arxiu que no tingui espais i estigui tot en minus o mayus (per exemple) com podria ser dracula.bin.
2. Editar l'arxiu *.CUE i a dalt de tot canviar el nom del fitxer *.BIN pel nom del fitxer que hem renombrat (dracula.bin a l'exemple).
3. Gravar:
xddxdd@debian:~$ cdrdao write --driver generic-mmc-raw --device /dev/sr0 --speed 2 fitxer.cue

Notes noves
-------------------------
1. En quan al SatHeader si la ISO està a la BD del SatHeader si que podem parxejar i funciona (comprovat). L'únic que no va funcionar va ser un que no està a la BD.

2. Per gravar les ISOS en qualsevol altre format que no sigui BIN/CUE utilitzo Alcohol 120% emulat amb Wine (versió 1.9.2 1705). Si posa a l'executar el programa que "Falla la carga de controladors" és igual. A l' instalar Alcohol 120% és possible que ens doni un error al final. Doncs abans de donarli a "Aceptar" a aquest error, copiem el contingut de la nova carpeta que s'ha instalat (si no hem canviat la ruta estara a .wine/drive_c/Program Files/Alcohol/etc/etc/etc. En el meu cas perque em detecti el CD haig d'emular Wine amb Windows XP / Vista a winecfg i a la pestanya "Unidades" comprova que estan hi son els dispositius (A:, C:, D: cd-rom) etc. Si no ens surt executar gksu winecfg (és a dir, en mode root) i llavors ens hauria de sortir (el problema és una qüestió de permisos suposo). Llavors tinguem molt en compte que a l'hora d'executar l'Alcohol amb wine l'haurem d'executar com a root, és a dir gksu wine executable_alcohol.exe

Mètodes de gravació : * DAO/SAO * Ignore EFM Error * Velocitat 2x (encara que la meva gravadora només em permet a 10x. La velocitat vé determinada per a la mínima velocitat que pot anar la gravadora i els cd's que fem servir.)

Un parell d'enllaços d'interès per gravar les ISOS de Gametronik En CUE/ISO/APE:

http://saturn.netboarder.com/t1422-sega-saturn-gravure-solution-de-gravure-d-isos-saturn

http://www.gametronik.com/forum/index.php?showtopic=14587
http://www.racketboy.com/retro/burning-sega-cd-and-saturn-games-on


04) WII

xddxdd@debian:~$ growisofs -dvd-compat -speed=2 -Z/dev/hdc=joc.iso

05) PC ENGINE

Malgrat que hauria de poder-se gravar en Linux, vaig ser-ne incapaç ja que cdrdao no funcionava amb la meva gravadora (utilitzo tant una gravadora HP de max. 4x, i una Sony de max. 16x de velocitat de gravació). L'única sol·lució va ser utilitzar IMGBurn utilitzant (Windows XP amb VMWare) amb les següents condicions:
  • Velocitat de gravació preferible a 4x (així ho vaig trobar indicat a la xarxa). Tot i així, jo ho vaig gravar a 2x, encara que insisteixo, cal gravar a 4x.
  • Arxius en format WAV / ISO (utilitzant l'arxiu cue que ve per defecte amb l'imatge del joc).
  • Mètode d'escriptura: RAW DAO, les altres no em van funcionar.

06) NEO GEO CD

IMPORTANT !!!!! Algunes Roms de NeoGeo CD s'han de crackejar previament.

Si ALGÚ ho desitja, tinc els *.PRG crackejats pels jocs que necessiten protecció In-Game.

Passos:

1. Mirem si el joc que volem gravar te algún tipus de protecció (La llista de jocs que tenen protecció o no està abaix de tot d'aquest post). Hi ha 2 tipus de protecció: Protecció In-Game i protecció CDZ. Si el joc no te cap tipus de protecció saltem directament fins al pas 6.

2. Si el joc te protecció In-Game ens haurem de baixar un fitxer on estan els arxius per "crackejar" la ISO del joc. El fitxer és un *.PRG.

3. Instalem un programa anomenat WinIso, l'obrim amb el Wine i ara obrim la imatge (ISO) del joc en qüestió. Llavors si el joc te protecció In-Game, borrem el fitxer *.PRG corresponent de la ISO i introduim (Add Files) el fitxer *.PRG crackejat que ens hem baixat.

4. Si el joc també te protecció CDZ o només te protecció CDZ, cal editar el fitxer CPY.TXT de la ISO. Per fer-ho, amb el WinIso extraiem el fitxer CPY.TXT al disc dur i l'editem:

Això és el que veiem:

Copyright by SNK corporation ºNEO-GEO B€BJ¹ ÷‚g Á J¹ ÷~g Á ²:ÿàg R€Nu

Així haurà de quedar:

Copyright by SNK corporation ºNEO-GEO B€BJ¹ ÷‚f Á J¹ ÷~f Á ²:ÿàg R€Nu

És a dir, canviant les 2 g per 2 f.

5. Ara guardem la ISO (Save)

6. Primer cal fer una transformació. Recomano baixar les roms de Emuparadise (que ja porten el CUE incorporat, el fitxer ISO i els fitxers d'audio en WAV.
xddxdd@debian:~$ cue2toc fitxer.cue -o fitxer.toc

i per gravar

xddxdd@debian:~$ cdrdao write --speed 2 fitxer.toc


07) GAME CUBE

xddxdd@debian:~$ growisofs -dvd-compat -speed=2 -Z/dev/hdc=joc.iso

08) DREAMCAST

Emular l'Alcohol 120% amb Wine. (Sobretot NO IMGburn)

09) MEGA CD

S'utilitzaran les ISOS en format ISO/WAV/CUE. Si no el tenim en aquest format però si en BIN/CUE, només haurem de descomprimir l'arxiu BIN/CUE en ISO/WAV/CUE. Per fer-ho:

1. Si tenim el joc en format ISO/WAV/CUE ens saltem aquest pas. Sino, executem el script que adjunto al final de la pàgina, dins del directori on estan els arxius BIN/CUE sense cap paràmetre (per exemple, si anomenem a l'script megacd.sh, li donem permisos de execució (chmod +x megacd.sh) i executem ./megacd.sh). El que fa aquest script és extreure els arxius ISO/WAV de l'arxiu BIN i després generar l'arxiu CUE corresponent. A més si ho volem, ens pregunta automàticament si volem gravar. Important dir que necessitem l'eina bchunk que podem trobar als repositoris de Debian.

2. Ara gravem el joc:

xddxdd@debian:~$ cdrdao write --device /dev/sr1 --driver generic-mmc --speed 2 --eject fitxer.cue

10) PSX

xddxdd@debian:~$ wodim -v -eject speed=4 dev=1,0,0 Arxiu.iso

11) PS2

xddxdd@debian:~$ wodim -v -eject speed=4 dev=1,0,0 Arxiu.iso


Llista de jocs NeoGeo CD

----------------------------------------------------------------------------------
[ LIST OF GAMES I HAVE AND IF THEY HAVE PROTECTION!!! ]
----------------------------------------------------------------------------------
[ GAME NAME ][ CDZ Protection ][ In-Game Protection ]
----------------------------------------------------------------------------------
[ 3 Count Bout / Fire Suplex ][ NO ][ NO ]
[ A.D. 2020 Super Baseball ][ NO ][ NO ]
[ ADK World! ][ NO ][ NO ]
[ Aero Fighters 2 / Sonic Wings 2 ][ NO ][ NO ]
[ Aero Fighters 3 / Sonic Wings 3 ][ NO ][ NO ]
[ Agressors of Dark Kombat / Gan Gan ][ NO ][ NO ]
[ Alpha Mission II / A.S.O. II ][ NO ][ NO ]
[ Art of Fighting 1 ][ NO ][ NO ]
[ Art of Fighting 2 ][ NO ][ NO ]
[ Art of Fighting 3 ][ YES ][ YES ]
[ Art of Fighting 3 Japan Box Set ][ YES ][ YES ]
[ Baseball Stars Professional ][ NO ][ NO ]
[ Baseball Stars 2 ][ NO ][ NO ]
[ Blues Journey / Raguy ][ NO ][ NO ]
[ Breakers ][ YES ][ NO ]
[ Brikin ' Ger / IronClad ][ YES ][ NO ]
[ Burning Fight ][ NO ][ NO ]
[ Bust - A - Move / Puzzle Bobble ][ NO ][ NO ]
[ Crossed Swords ][ NO ][ NO ]
[ Crossed Swords II ][ NO ][ NO ]
[ Cyber - Lip ][ NO ][ NO ]
[ Double Dragon ][ NO ][ NO ]
[ Fatal Fury 1 ][ NO ][ NO ]
[ Fatal Fury 2 ][ NO ][ NO ]
[ Fatal Fury Special ][ NO ][ NO ]
[ Fatal Fury 3 ][ NO ][ YES ]
[ Fatal Fury Real Bout ][ YES ][ YES ]
[ Fatal Fury Real Bout Special ][ YES ][ YES ]
[ Fatal Fury Real Bout 2: Newcomers ][ YES ][ YES ]
[Fighters H. Dynamite / Karnov's Rev.][ NO ][ NO ]
[ Final Romance 2 Strip Mah-Jong ][ NO ][ NO ]
[ Football Frenzy ][ NO ][ NO ]
[Futsal / Pleasure Goal 5 on 5 Soccer][ YES ][ NO ]
[ Galaxy Fight ][ NO ][ NO ]
[ Ghost Pilots ][ NO ][ NO ]
[ Kabuki Klash Tengai Makyo Shin Den ][ NO ][ NO ]
[ King of Fighters '94 ][ NO ][ NO ]
[ King of Fighters '95 ][ NO ][ YES ]
[ King of Fighters '96 ][ YES ][ YES ]
[ King of Fighters '96 NG Coll. ][ YES ][ YES ]
[ King of Fighters '97 ][ YES ][ YES ]
[ King of Fighters '98 ][ YES ][ YES ]
[ King of Fighters '99 ][ YES ][ YES ]
[ King of the Monsters 2 ][ NO ][ NO ]
[ Last Blade 1 ][ YES ][ YES ]
[ Last Blade 2 ][ YES ][ YES ]
[ Last Resort ][ NO ][ NO ]
[ League Bowling ][ NO ][ NO ]
[ Magical Drop II ][ YES ][ NO ]
[ Magician Lord ][ NO ][ NO ]
[ Mah-Jong Kyo Retsuden ][ NO ][ NO ]
[ Master of Syougi ][ NO ][ NO ]
[ Metal Slug ][ YES ][ NO ]
[ Metal Slug 2 ][ YES ][ NO ]
[ Mutation Nation ][ NO ][ NO ]
[ NAM-1975 ][ NO ][ NO ]
[ Neo Drift Out! ][ YES ][ NO ]
[ Neo Geo CD Special ][ NO ][ YES ]
[ Neo Turf Masters ][ YES ][ NO ]
[ Ninja Combat ][ NO ][ NO ]
[ Ninja Commando ][ NO ][ NO ]
[ Ninja Masters ][ YES ][ NO ]
[ OverTop ][ NO ][ NO ]
[ Power Spikes II ][ NO ][ NO ]
[ Pulstar ][ NO ][ NO ]
[ Puzzled / Joy Joy Kid ][ NO ][ NO ]
[ Quest of the Jong Master ][ NO ][ NO ]
[ Quiz King of Fighters ][ NO ][ NO ]
[ Ragnagard ][ YES ][ NO ]
[ Rally Chase / Thrash Rally ][ NO ][ NO ]
[ Riding Hero ][ NO ][ NO ]
[ Robo Army ][ NO ][ YES ]
[ Samurai Shodown 1 ][ NO ][ NO ]
[ Samurai Shodown 2 ][ NO ][ NO ]
[ Samurai Shodown 3 ][ YES ][ YES ]
[ Samurai Shodown 4 ][ YES ][ YES ]
[ Samurai Spirits R.P.G. ][ YES ][ YES ]
[ Savage Reign ][ NO ][ YES ]
[ Sengoku Densyo 1 ][ NO ][ NO ]
[ Sengoku Densyo 2 ][ NO ][ NO ]
[ Soccer Brawl ][ NO ][ YES ]
[ Stakes Winner ][ YES ][ NO ]
[ Street Hoop / Dunk Dreams ][ NO ][ NO ]
[ Super Sidekicks 1 ][ NO ][ NO ]
[ Super Sidekicks 2 ][ NO ][ NO ]
[ Super Sidekicks 3 ][ NO ][ YES ]
[ The Super Spy ][ NO ][ NO ]
[ Top Hunter ][ NO ][ NO ]
[ Top Players Golf ][ NO ][ NO ]
[ Twinkle Star Sprites ][ YES ][ NO ]
[ Viewpoint ][ NO ][ NO ]
[ Voltage Fighter Gowcaizer ][ NO ][ NO ]
[ Wind Jammers ][ NO ][ NO ]
[ World Heroes 1 ][ NO ][ NO ]
[ World Heroes 2 ][ NO ][ NO ]
[ World Heroes 2 JET ][ NO ][ NO ]
[ World Heroes Perfect ][ NO ][ NO ]
[ ZinTrick ][ NO ][ NO ]
==============================================================================


Script de gravació de Mega CD

#!/bin/bash
# Script de gravació de ISOS de MEGA CD sempre i quan estiguin en format BIN/CUE.
# By Jordi Sanchez.
# Convertim de BIN/CUE a ISO/WAV

bin_or=*.[bB][iI][nN]
cue_or=*.[cC][uU][eE] 
bin=`echo *.[bB][iI][nN] | sed 's/ /_/g' | tr -d '()'`
cue=`echo *.[cC][uU][eE] | sed 's/ /_/g' | tr -d '()'`
echo El fitxer BIN original era: $bin_or;
echo El fitxer CUE original era: $cue_or;
echo El fitxer BIN es: $bin;
echo El fitxer CUE es: $cue;
mv $bin_or $bin
mv $cue_or $cue
base=`echo $bin | sed 's/[.][a-z]*//'`
echo El nom base sera: $base
echo Anem a convertir el BIN/CUE en ISO/WAV:
bchunk -w $bin $cue ${base}_
mkdir bin_cue
mv *.bin *.cue bin_cue

#Generem el fitxer CUE amb els fitxers WAV.
touch game.toc.tmp;
a=0
b=1
for i in *.[iI][sS][oO]; do
echo "Estic processant l'arxiu: $i";
echo "FILE \"$i\" BINARY" >> game.toc.tmp;
echo "  TRACK $a$b MODE1/2048" >> game.toc.tmp;
echo "    INDEX 01 00:00:00" >> game.toc.tmp;
echo "    POSTGAP 00:02:00" >> game.toc.tmp;
b=2
done

for i in *.[wW][aA][vV]; do
echo "Estic processant l'arxiu: $i";
if [[ $i == *02* ]]; then echo 
echo "FILE \"$i\" WAVE" >> game.toc.tmp;
echo "  TRACK $a$b AUDIO" >> game.toc.tmp;
echo "    PREGAP 00:02:00" >> game.toc.tmp;
echo "    INDEX 01 00:00:00" >> game.toc.tmp;
else 
echo "FILE \"$i\" WAVE" >> game.toc.tmp;
if [[ "$b" -lt 10 ]]; then
echo "  TRACK $a$b AUDIO" >> game.toc.tmp;
else echo "  TRACK $b AUDIO" >> game.toc.tmp;
fi
echo "    INDEX 01 00:00:00" >> game.toc.tmp;
fi
b=`expr $b + 1`;
done
echo "" >> game.toc.tmp;
fitxer_cue=${base}_nou_cue.cue;
cp game.toc.tmp $fitxer_cue ;
echo "S'ha generat el fitxer CUE: $fitxer_cue"
rm game.toc.tmp

# Gravem la ISO si s'escau.
echo -e;
echo -e;
echo "Vols gravar la ISO ara ?"
echo "1: Si."
echo "2: No."
while [ "$key" != "2" ] && [ "$key" != "1" ]; do
read -n 1 key
case "$key" in
    '1') 
    echo -e
    echo -e
    cdrdao write --device /dev/sr1 --driver generic-mmc --speed 2 --eject $fitxer_cue
    break;;
    '2') 
    echo -e
    echo -e
    echo "Adeu siau. Recorda que per gravar la ISO de MegaCD la comanda es: "
    echo "cdrdao write --device /dev/sr1 --driver generic-mmc --speed 2 --eject arxiu.cue"
    break;;
esac
echo -e;
echo -e;
echo "Si us plau, prem 1 o 2";
done
exit

# End


Linux: Afegir usuari a la llista de SUDOers.

La comanda sudo permet executar a un usuari un programa amb els permisos d'un altre programa (normalment amb permisos de ROOT, superusuari). Vindria ser el mateix que identificar-se com a root, executar la comanda i després fer un exit per tornar al mode usuari.

Per fer-ho cal afegir els usuaris corresponents a la llista de SUDOers. Sense entrar en detalls de les possibilitats que presenten les llistes de SUDOers, ens identifiquem com a ROOT i:

xddxdd@debian:~$ visudo

o simplement

xddxdd@debian:~$ vi /etc/sudoers

i afegim una entrada similar a aquesta:

usuari ALL=(ALL) ALL

Després sortim del Vim: Esc, :wq i Intro.

On usuari es el nom d'usuari que volem afegir a la llista.

Linux: Crear RAR amb múltiples volums

Primer de tot instalar el paquet RAR amb un apt-get install rar
Després la sintaxi és:

rar a -v num factormultiplicador nomdelsfitxers.rar ruta

on

a: Vol dir add.
-v: vol dir cada quanta capacitat partirem els volums.
nomdelsfitxers.rar: es el nom base dels futurs fitxers partits (nomdelsfitxers.rar, nomdelsfitxers.r01, nom dels fitxers.r02, ...)
ruta: especifica la ruta dels fitxers que volem comprimir.

Exemple

xddxdd@debian:~$ rar a -v5m ImatgeISO.rar /home/usuari/exemple/*

Aquesta comanda ens crearia arxius RAR de 5MB. És important posar el * al final de la ruta perque ens indica que afegeixi tot el que hi ha inclos en aquell directori (inclòs els subdirectoris que hi hagi recursivament).

Linux: Extreure múltiples arxius RAR o ZIP

Bé, crec que no cal ni dir que aquest post no va encaminat a obrir arxius RAR o ZIP que tenen múltiples volums, és a dir, si tenim 3 arxius RAR fitxer.rar fitxer.r01 fitxer.r02 n'hi haurà prou amb que descomprimim el primer, perque automàticament es descomprimeixin els altres volums.

No, aquest post va encaminat a obrir tots els arxius RAR o ZIP que trobem dins d'una carpeta. És senzill pensar en fer un unrar *.rar o unzip *.zip però fent això ens donarà error. Una manera de fer el que volem es amb 2 scripts en bash.

1) Script pels fitxers ZIP.

#!/bin/bash
echo "Extraccio de tots els arxius ZIP trobats a la carpeta ..."
##extraccio
for ZIP in `ls|grep .zip`
do unzip $ZIP
done
echo "Fet"

1) Script pels fitxers RAR.

#!/bin/bash
for RAR in `ls | grep .rar`
do unrar x $RAR
done

No cal dir que editar un arxiu en bash es pot fer amb qualsevol editor (nano, vi, joe) i despres donantli permisos d'execució (chmod +x fitxer.sh). De manera que ara hauríem de tenir 2 arxius extzip.sh i extrar.sh (per exemple) amb els quals hauríem de poder descomprimir tots els arxius d'un directori.

Nota: Aquests scripts tenen un petit bug i és que descomprimeixen TOTS els arxius que troba al directori de manera que si per exemple tenim 3 arxius que pertanyen al mateix volum fitxer.rar fitxer.r01 fitxer.r02 intentarà descomprimir 3 vegades el mateix volum.

Linux: Operacions entre fitxers de vídeo

Nota preliminar: Encara no se bén be perque quan utilitzo aplicacions de recodificació (tant Ffmpeg com Mencoder) utilitzant molts threads (ara no recordo bé si 6 o més) que en teoria són el nombre de nuclis de la CPU (la meva CPU és una AMD de 8 cores) a utilitzar en el procés, l'ordinador es reseteja o s'apaga. La càrrega total de la CPU en aquests casos crec que arriba a més del 80% així que diria que el problema podria ser de càrrega de la CPU encara que m'inclinaria més a pensar que pot ser un problema de prevenció de temperatura, ja que aquesta puja espectacularment al fer aquests processos, malgrat que compto amb un bon refrigerador Noctua. També vaig pensar que fos un problema de software però em vaig baixar les fonts de Ffmpeg i Mencoder per a ser compilades i el problema persistia. La nota aquesta la escric perque els paràmetres de recodificació que faré servir, haurien d'incloure un màxim de 5 threads que és un nombre prou considerable de cores i que he comprovat que l'ordinador no en pateix les conseqüències.

Abans de fer conversions entre arxius aclareixo que sembla ser (no n'estic del tot cert) que els fitxers amb contenidor AVI no poden tenir un tamany superior a 4 GB. Això fa que si necessitem un tamany superior a 4 GB haguem d'utilitzar altres contenidors, per exemple el MKV, que a més, aporta altres novetats i que el fa altament recomanable en cas de poder reproduir arxius MKV en el nostre reproductor preferit..

1) Veure els paràmetres d'un arxiu de vídeo

xddxdd@debian:~$ ffmpeg -i default.avi

Input #0, avi, from 'Default.avi':
Duration: 01:22:48.68, start: 0.000000, bitrate: 581 kb/s
Stream #0.0: Video: mpeg4, yuv420p, 640x480 [PAR 1:1 DAR 4:3], 25.00 tb(r)
Stream #0.1: Audio: mp3, 48000 Hz, stereo, s16, 128 kb/s

Fent un man ffmpeg podem veure tots els paràmetres que se li poden passar a ffmpeg.


2) Conversions de contenidors i Codecs

FLV a AVI (Nou Codec de vídeo: Lavc)

xddxdd@debian:~$ mencoder fitxer_font.flv -ovc lavc -oac copy -o fitxer_desti.avi

3GP a AVI (Nou Codec de vídeo: Lavc)

xddxdd@debian:~$ mencoder fitxer_font.3GP -ovc lavc -oac pcm -o fitxer_desti.avi NOTA: Notis que jo utilitzo el codec LAVC per a video i PCM per a audio però es poden utilitzar altres códecs.

OGV a AVI (Nou Codec de vídeo: Xvid, nou Codec d'Audio: Libmp3lame)

xddxdd@debian:~$ mencoder fitxer_font.ogv -oac mp3lame -ovc xvid -vf scale=X:Y -xvidencopts pass=1 -o fitxer_desti.avi

AVI a AVI (Nou Codec de vídeo: Xvid, nou Codec d'Audio: Libmp3lame)

xddxdd@debian:~$ ffmpeg -i fitxer_font.avi -acodec libmp3lame -vcodec libxvid -ab 96000 -ar 48000 -b 800k fitxer_desti.avi

Alguns paràmetres d'interès:

-s 640x480
-aspect 4:3 (si en demana)

Nota: Obviament els paràmetres s'han de canviar segons ens convingui.

Una altra opció:

xddxdd@debian:~$ mencoder fitxer_font.avi -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -vf scale=[ResX]:[ResY] -oac copy -o fitxer_desti.avi

El mateix, els paràmetre que he posat són al meu gust i per un vídeo concret. Si ens fixem, en aquesta última comanda he posat -oac copy que vol dir que no es processa el codec de audio, sinó que es copia tal qual.

AVI a MKV (No recodificació)

1. xddxdd@debian:~$ ffmpeg -i arxiu_origen.mp4 -c:v copy -c:a copy arxiu_resultant.mkv

2. xddxdd@debian:~$ mkvmerge arxiu_origen.avi -o arxiu_resultant.mkv

3. xddxdd@debian:~$ mencoder arxiu_origen.avi -ovc copy -oac copy -o arxiu_resultant.mkv

3) Unir fitxers AVI i MKV

3.1) Si l'arxiu te 1 pista d'audio:

xddxdd@debian:~$ mencoder -oac copy -ovc copy 1rfitxer.avi 2nfitxer.avi -o fitxer_final.avi

3.2) Si l'arxiu te més d'una pista d'audio:

xddxdd@debian:~$ avimerge -i 1rfitxer.avi 2nfitxer.avi -o fitxer_final.avi

Nota: Perque es pugui fer la unió, els arxius de video hauran de tenir els mateixos paràmetres de códec d'audio, codec de video, etc..


Però a vegades aquest mètode no funciona i ara proposo una alternativa

a) Tenia 2 videos AVI (mateixes característiques de format, codecs ...).

b) Obro Avidemux2-GTK.

c) Obro 1rfitxer.avi i li dic que si a les 2 coses.

d) Em situo al final del fitxer amb el cursor (ultim frame).

e) Archivo / Ajuntar / Adjunto el nou 2nfitxer.avi.

f) Ara guardo el fitxer_final.avi i es guardara el video bé però només amb la primera pista
d'audio.

g) Per guardar amb la segona pista, obro el fitxer_final.avi amb Avidemux2-GTK i Audio / Canal secundario de audio i poso allà el fitxer.wav corresponent.

h) IMPORTANT: Ara a FORMATO (a l'esquerra de la pantalleta VIDEO AUDIO i FORMATO un a sobre laltre), poso AVI, sonido dual. I guardo el fitxer.

Bé, aquí m'he saltat un pas perque m'he tret el fitxer del 2n canal d'audio (fitxer.wav) de la màniga.

Per tenir el fitxer WAV:

En el meu cas ho he fet així perque els arxius MP3 que extreia de les 2 parts del fitxer AVI quan les obria amb el XMMS i movia a esquerra i dreta amb les fletxes sem repetia i ho he hagut de recodificar tot a WAV. Comencem així doncs:

a) Extraiem els 2 fitxers en MP3. És VITAL l'opcio aid que selecciona que extraiem la segona TRACK d'audio.

xddxdd@debian:~$ mplayer 1rfitxer.avi -aid 2 -dumpaudio -dumpfile Part1.mp3

xddxdd@debian:~$ mplayer 2nfitxer.avi -aid 2 -dumpaudio -dumpfile Part2.mp3

b) Transformem a WAV.

xddxdd@debian:~$ mpg123 -w Part1WAV.wav Part1.mp3

xddxdd@debian:~$ mpg123 -w Part2WAV.wav Part2.mp3

c) Uneixo els WAV.

xddxdd@debian:~$ qwavjoin Part1WAV.wav Part2WAV.wav -o fitxer.wav

NOTA: Suposo que si ara recodifico el fitxer final *.WAV a *.MP3 i l'adjunto com a segon canal a l'Avidemux ocuparà menys el video final. És qüestió de provar-ho. Per convertir de WAV a MP3 és:

xddxdd@debian:~$
lame -h fitxer.wav nou_fitxer.mp3


3.3) En cas d'unir arxius MKV:

xddxdd@debian:~$ mkvmerge -o arxiu_resultant.mkv arxiu1.mkv +arxiu2.mkv

4) Dividir arxius AVI

Hi ha 2 maneres de fer-ho

1. Avidemux: Obrim el vídeo i tallem els trossos "a la carte" i guardem els que ens interessa.

2. Avisplit: Mode de comanda de terminal com per exemple podria ser:

xddxdd@debian:~$ avisplit -i Fitxer_Font.avi -t 00:00:00-00:09:53,00:09:58-00:19:45,00:19:54-00:29:55

En aquest cas, passem per paràmetre el temps exacte on volem que es produeixi el tall. El resultat són X fitxers de vídeo, tants com talls fem.

Nota: Recomano Avidemux ja que és per entorn gràfic i permet precisar més els talls del vídeo.


5) Ripejar arxius de vídeo d'un decodificador MVision (fitxers *.irm) a fitxers AVI

Passos:

1.Passar el IRM a MVP amb el programa IRM Converter que proporciona el decodificador MVision
(es pot baixar d'Internet també).

2.Passar MVP a MPG amb el ProjectX:

- Anar a baix a l'esquerra i Clickar al signe + i adjuntar l'arxiu MVP
que hem obtingut amb el IRM Converter.

- Process/prepare ...

- Action: Seleccionar To M2P

- Clickar al PLAY

Ara ja tindrem el fitxer en MPG. Llavors tenim 2 opcions:

5a).Passar MPG a AVI de la manera ja indicada en altres apartats.

5b). Grabar en DVD si s'escau amb el programa DeVeDe.

6) Afegir subtítols a un arxiu MKV (Matroska)

Segons Wikipedia: " Matroska es un formato contenedor de estándar abierto, un archivo informático que puede contener una cantidad ilimitada de vídeo, audio, imagen o pistas de subtítulos dentro de un solo archivo. "

Un dels avantatges d'aquest CONTENIDOR (MKV és un contenidor com AVI, MOV, FLV i no un Codec com XVid o H264) és poder introduir diversos subtítols sense haver de recodificar el vídeo, de manera que amb pocs minuts tenim un arxiu MKV amb els seus corresponents subtítols, a diferència d'altres contenidors com AVI on només es pot tenir un subtítol i encastat al vídeo de manera que no es pot separar el subtítol del vídeo alhora de visualitzar-lo.

2 maneres de fer-ho (mode consola i mode gràfic) tot instal·lant prèviament els paquets mkvtoolnix i si es vol mkvtoolnix-gui (mode gràfic) que estàn als repositoris de Debian.

1. Mode gràfic:

xddxdd@debian:~$ mmg

una vegada a dins del programa, a "Entrada" cliquem a "Añadir" i afegim l'arxiu MKV o AVI (el contenidor origen tan fa, al final acabarà convertint a MKV sigui quin sigui el contenidor font) i tot seguit insertem els arxius de subtítol (en el meu cas, inserto arxius en format *.SRT). Cliquem a "Iniciar Multiplexado" i el programa sol ens ajunta el vídeo amb el/s subtítol/s que haguem afegit.

2. Mode consola:

xddxdd@debian:~$ mkvmerge -o arxiu_resultant.mkv --default-track 0 arxiu1.srt arxiu2.art arxiu_origen.avi

La comanda és senzilla. A més l'opció --default-track està a 0 per setejar quina de les pistes d'audio que conté l'arxiu volem que sigui la per defecte (si bé haig de dir que no he indagat massa en les opcions d'aquesta comanda).

7) Afegir una pista d'audio a un vídeo AVI.

La comanda (sense tenir en compte altres paràmetres) és:

xddxdd@debian:~$ mencoder -ovc copy -audiofile arxiu.mp3 -oac copy input.avi -o output.avi

8) Extreure audio d'un vídeo i convertir-lo a MP3.

xddxdd@debian:~$ ffmpeg -i inputfile.m4a -acodec mp3 -ac 2 -ab 160 outputfile.mp3
o
xddxdd@debian:~$ ffmpeg -i inputfile.m4a -acodec libmp3lame -ac 2 -ab 160 outputfile.mp3

Si l'arxiu és MKV:

xddxdd@debian:~$ mplayer -vo null -dumpaudio -dumpfile outputfile.mp3 input.mkv

Si el que volem es extreure una pista concreta (ja sigui de vídeo o d'audio dins d'un arxiu AVI o MKV) utilitzarem el paràmetre -map 0:2 (per exemple el 0:2) on 2 vol dir que és la tercera pista dins de l'avi (comença a comptar des de 0, per tant si posessim 0:0 extrauríem la primera pista, usualment la de vídeo, si posessim 0:1 extrauríem la segona pista, usualment d'audio, i amb 0:2 extrauríem la tercera pista, segurament la segona pista d'audio del vídeo):

xddxdd@debian:~$ ffmpeg -i input.avi -map 0:2 -vn -ar 48000 -ac 2 -ab 256k -f mp3 outputfile.mp3

Links d'interès

Linux: Gestió de processos en una terminal

· Per veure TOTS els processos dins d'una terminal:

xddddxdd@debian:~$ ps -e

PID TTY TIME CMD
10489 ? 00:00:03 dolphin
10523 ? 00:00:14 xmms
10604 ? 00:00:02 kwrite

· Per veure TOTS els processos dins d'una terminal i l'usuari de cada procés

xddddxdd@debian:~$ ps -e -f

UID PID PPID C STIME TTY TIME CMD
xddddxdd 2208 1 0 Aug15 ? 00:00:00 /usr/bin/kactivitymanagerd
xddddxdd 2240 1 1 Aug15 ? 00:39:21 /usr/bin/knotify4
xddddxdd 2243 1 0 Aug15 ? 00:05:56 /usr/bin/plasma-desktop

· Per eliminar un procés dins d'una terminal:

xddddxdd@debian:~$ kill PID

On PID és el nombre del procés corresponent. Per "matar" processos que son de ROOT caldra identificar-nos previament.

· Per buscar un procés dins d'una terminal:

xddddxdd@debian:~$ ps -e | grep nomdelproces

2032 ? 00:00:00 nomdelproces

· Per eliminar un procés dins d'una terminal passant per paràmetre un nom o part del nom (el que posaríem després del grep)

xddddxdd@debian:~$ ps aux | grep firef | awk '{print $2}' | xargs kill

kill: No such process



Linux: Programar en LISP amb CLISP + Emacs + Slime

Una de les opcions per a programar en LISP a Linux és utilitzar l'editor Emacs adaptat a LISP amb el programa CLISP. Per fer-ho necessitarem alguns paquets addicionals com el paquet Slime.

Passos a seguir:

1. Instalar CLISP. Jo ho vaig fer amb un apt-get install clisp.

2. Tenir instalat Emacs. Igual, apt-get install emacs emacs23

3. Tenir instalat Slime. Ull !! Instalant el paquet que em venia amb Debian, no em funcionava.

a) Em vaig baixar doncs, el paquet de http://common-lisp.net/project/slime/snapshots/slime-current.tgz

b) Faig un tar zfxv del slime-current.tgz i s'em descomprimeix un directori slime-xxxxxx

c) Copio el directori slime a:
c.a) cp sudo cp slime-xxxxxx /usr/share/emacs/site-lisp/ -R
c.b) cp sudo cp slime-xxxxxx /usr/share/emacs23/site-lisp/ -R (Sense aquest segon cp, no em funcionava)

d) Edito un fitxer anomenat ".emacs" al /home/usuari: vi /home/usuari/.emacs

(setq inferior-lisp-program "clisp -q")

(require 'slime)
(slime-setup '(slime-fancy))

e) Inicio emacs: emacs

f) Executo "Alt x" i escric slime
Llavors em comença a compilar coses i ja esta.

g) Amb "Ctrl X 2" creo una nova finestra on editare els arxius *.lsp

h) A una de les 2 finestres obro o creo un fitxer *.lsp
Edito les funcions i tot i quan he acabat Clicko a "Ctrl X E" per introduir les noves funcions a la llista, sino no funcionen.

i) Ara a la altra finestra ja puc passar les funcions per parametre.