oriolrius.cat

Des del 2000 compartiendo sobre…

Tag: linux

Automontem el pendrive o les flash cards

Reading time: 4 – 6 minutes

pendrive.jpg

Si treballeu amb udev i us instal�leu el paquet autofs, amb quatre retocs al kernel i quatre l�nies de configuraci� podeu fer que quan us enxufeu un pendrive amb linux aquest es monti i desmonti autom�ticament. De fet, aquesta soluci� esta explicada de mil formes diferents en un munt de howtos i d’altres similars. Hi ha gent que arriba nivells de sofisticaci� brutals. Per� despr�s d’estar mirant ‘largo y tendido’ tota aquesta informaci� he decidit no complicar la cosa i montar algo ben senzill que em permeti anar per feina amb els pendrives i les flash cards; que �s el que m�s uso al port�til.

Doncs b� per comen�ar el que farem �s que quan es detecti que s’ha connectat un dispositiu de tipus /dev/sdX1 (sent la X=a,b,c,d,etc) que es monti autom�ticament. Com sabeu el sistema de fitxers virtual udev genera autom�ticament els fitxers que representen els dispositius i a m�s tamb� genera uns events que es poden capturar. Si voleu monitoritzar aquests events podeu executar la comanda udevmonitor i podeu provar d’enxufar i desenxufar, per exemple, un pendrive i veureu com es generen els events que comento.

Doncs b� el primer que he fet �s que es generi un symlink autom�tic al detectar-se una partici� en un d’aquests dispositius que comentava, per tal de que aix� passi nom�s hem de modificar el fitxer: /etc/udev/rules.d/00.rules per aconseguir la funcionalitat que comentava nom�s cal afegir-hi aix�:

BUS="usb", KERNEL="sd?1", NAME="%k", SYMLINK="pendrive"

Tal com comentava si busqueu una mica podeu millorar molt�ssim fent per exemple, que nom�s es generi el enlla� din�mic (symlink) si el dispositiu �s de la marca tal o qual, model no s� quin, o que sigui de tipus usb mass-storage, etc. B� doncs, un cop ja tenim l’enlla� din�mic ara el que farem �s que quan intentem accedir a aquest dispositiu es monti autom�ticament el dispositiu i que si passats X’s segons no s’ha usat el dispositiu que es desmonti solet.

Aix� que comento ho farem amb el autofs, per configurar el dimoni ho podem fer al fitxer /etc/conf.d/autofs jo l’�nic que he tocat del fitxer de configuraci� del dimoni �s el timeout per tal de que es desmonti als 2s de no usar-lo:

...
# additional options for automount, ie. timeout
daemonoptions = '--timeout 2'
...

Abans de llen�ar el dimoni, he modificat el seg�ent dels fitxers de configuraci� que es troben a /etc/autofs al fitxer auto.master he afegit aix�:

/var/autofs/removable   /etc/autofs/auto.removable

Despr�s he creat el fitxer auto.removable:

pendrive        -sync,dirsync,fstype=vfat,uid=1000,gid=100,umask=002            :/dev/pendrive

Amb aix� aconseguim que quan s’intenti accedir al recurs /dev/pendrive es monti a /var/autofs/removable/pendrive i despr�s per tal de mantenir l’estructura de directoris de tota la vida el que faig es crear un link a /mnt/pendrive que apunta a /var/autofs/removable/pendrive:

ln -s /var/autofs/removable/pendrive /mnt/pendrive

Ara si anem a /mnt/pendrive (cd /mnt/pendrive) i fem un ls veurem el contigut del dispositiu, potser el primer ls que feu no funciona doneu-li uns segons perqu� pugui reaccionar tot plegat, a mi em triga uns 3 o 4s entre punxar el dispositiu i poder-hi accedir. Si quan acabeu d’usar el pendrive sortiu del directori veureu que al fer un df -a ja no esta montat.

Com comentava hi ha milers de howtos molt millors que el que acabo de fer, per� jo amb aix� ja he sortit del pas. Alguns howto’s que podeu mirar:

btscanner – buscant bluetooth

Reading time: 1 – 2 minutes

Una eina que es dedica a buscar i recollir tota la informació possible als dispositius bluetooth que tenim a l’avast, l’interessant és que no executa cap ordre que requereixi emparellar el nostre ordinador amb el dispositiu bluetooth detectat. Realment interessant per mi però no tan per la útilitat directa que té sinó pel fet de poder veure com treballa a nivell de codi. Ja que fins ara poc més havia vist que les bluez-utils que tingués un codi prou simple com per mirar-se’l amb calma.

Una captura de pantalla del btscanner en acció:

btscanner.png

Si voleu provar l’eina: btscanner download obviament pensada per treballar amb linux.

VRA de Vodafone (GPRS/UMTS) amb linux

Reading time: 6 – 10 minutes

Com ja heu anat podent llegir en els últims posts estic provant la targeta 3G de Vodafone. Per poder iniciar un desenvolupament per un tema de feina. Així doncs després de comprobar com funciona amb windows tan amb el software de comunicacions de vodafone (VMC) com a través de l’acceso telefonico a redes del win. M’he decidit a donar-hi un cop d’ull amb Linux. La veritat és que sorprenenment la cosa ha estat molt més senzilla del que em pensava. Fins hi tot he trovat molta més documentació de la que vaig trobar fa més d’1any quan vaig provar la targeta que llavors només era GPRS.

Malgrat tota la documentació que he trobat per internet parlava de la targeta Option model 5000 us puc confirmar que aquesta també aplica al model 6300. Com podreu veure amb les fotos que us penjo a continuació jo he provat les dues la 5000 i la 6300 ja que una la tinc de fa força temps però no tenia targeta per provar-la i l’altre és la que hem comprat pel projecte.

VRA model 5000:

vra5000.jpg

VRA model 6300:

vra6300.jpg

Configurant el sistema

Tornant al tema linux, doncs bé ambdues targetes disposen d’un bridge intern entre un bus PCMCIA i un HUB USB de 3 ports. Així doncs, per tal de que funcionin heu de tenir el vostre sistema PCMCIA configurat i us heu d’assegurar que es llença el modul usbserial i ohci_hcd que seran els que faran carregar el HUB USB que hi ha dins la PCMCIA i fer apareixer els corresponents ports serie per poder accedir al modem. Si mireu els missatges del kernel podreu veure algo semblant a això (dmesg):

usb 5-1: new full speed USB device using ohci_hcd and address 2
usbcore: registered new driver usbserial
drivers/usb/serial/usb-serial.c: USB Serial support registered for Generic
usbcore: registered new driver usbserial_generic
drivers/usb/serial/usb-serial.c: USB Serial Driver core v2.0
drivers/usb/serial/usb-serial.c: USB Serial support registered for Option 3G data card
option 5-1:1.0: Option 3G data card converter detected
usb 5-1: Option 3G data card converter now attached to ttyUSB0
option 5-1:1.1: Option 3G data card converter detected
usb 5-1: Option 3G data card converter now attached to ttyUSB1
option 5-1:1.2: Option 3G data card converter detected
usb 5-1: Option 3G data card converter now attached to ttyUSB2
usbcore: registered new driver option
drivers/usb/serial/option.c: Option Card (PC-Card to) USB to Serial Driver: v0.4

El que us pot portar a confusió és quan mireu els dispositius USB que teniu connectats al sistema (lsmod):

# lsusb
Bus 005 Device 002: ID 0af0:5000
Bus 005 Device 001: ID 0000:0000
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 003: ID 413c:8000 Dell Computer Corp.
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 004: ID 0d3d:0001 Tangtop Technology Co., Ltd
Bus 001 Device 001: ID 0000:0000

Podeu veure que a la primera línia malgrat no hi ha cap descripció té un dispositiu connectat del venedor amb el codi: 0x0af0 (idVendor, o sigui, Option) i el model del dispositiu: 0x5000 (idProduct). Com podeu veure ara mateix el que tinc connectat és la targeta model 5000 la 6300 simplement apareix aquest número enlloc de l’altre.

Jo he fet les proves amb un kernel 2.6.13.2 (amb udev, devfs ja no es suporta a la v.2.6.13). Si el que vull és verificar que se m’han creat els ports serie amb els que accediré al modem puc fer algo tan senzill com:

$ ls -l /dev/tts
total 0
crw-rw----  1 oriol tty   4, 64 Sep 25  2005 0
crw-rw----  1 oriol tty   4, 65 Sep 25  2005 1
crw-rw----  1 oriol tty   4, 66 Sep 25  2005 2
crw-rw----  1 oriol tty   4, 67 Sep 25  2005 3
crw-rw----  1 root  tty 188,  0 Sep 25 17:29 USB0
crw-rw----  1 root  tty 188,  1 Sep 25 17:28 USB1
crw-rw----  1 root  tty 188,  2 Sep 25 17:28 USB2

Notes sobre el kernel

Aneu en compte perquè no es configura igual la targeta per kernels >2.6 i <2.6.13 que pels >2.6.12. Més informació al link [2] de la secció de links. Els primers només necessiten el mòdul usbserial i ohci_hcd. Els més nous porten un mòdul dins la secció USB Serial del kernel especific pels mòdems GPRS/UMTS de la marca Option (CONFIG_USB_SERIAL_OPTION=m). Per tant, heu d’usar els dos mòduls anteriors més el modul específic.

Accedint al modem amb el minicom per introduir el PIN

El primer que hem de fer és introduir el codi PIN de la targeta SIM, notareu que quan la targeta esta configurada i encara no em entrat el PIN els dos LEDs que porta un fa pampallugues de color verd i l’altre de color vermell després d’entrar el PIN la vermella hauria de desapareixer.

Per posar el PIN de moment no he buscat cap sistema que ho fassi automàticament. Així doncs ho he fet a mà. Amb el minicom la configuració que he usat per entrar-hi és la següent: (minicom -s)

minicom.png

Per introduir el PIN només em d’entrar al minicom i escriure: AT+CPIN=”1234″, sent 1234 el nostre PIN. Si el PIN és correcte el modem ens tornarà un OK i al cap d’uns 30s el llumet vermell s’apagarà.

Aprofitant que estem al minicom podem aprofitar per llençar algunes ordres més a través de les comandes AT:

  • AT+CSQ torna el nivell de senyal que estem revent. Per tenir una connexió acceptable en GRPS/UMTS hem de rebre almenys un nivell 12. Jo a casa només rebo entre un 5 i un 9 per això em falla tan l’enllaç.
  • AT&V ens permet consultar les configuracions que porta la targeta de serie.
  • AT_OPSYS=”0,2″ només acceptem enllaços per GPRS
  • AT_OPSYS=”1,2″ només UMTS.
  • AT_OPSYS=”2,2″ preferiblement GPRS.
  • AT_OPSYS=”3,2″ preferiblement UMTS.

Configurant el dial-up

Com a programa per gestionar les connexions a internet he usat el gnome-ppp. Recordeu que l’usuari que llenci aquest aplicatiu ha de tenir permisos (amb read+write n’hi ha prou) sobre el dispositiu de modem (en el meu cas /dev/tts/USB0). La configuració del dia-up és molt simple us la poso en aquestes captures:

screen1.png
screen2.png
screen3.png
screen4.png

Conclusió

Bé doncs, amb tot això n’haurieu de tenir prou per poder configurar les VRA 5000 o 6300 de Vodafone. No oblideu que per molt Vodafone que posi, l’empresa que realment fabrica les targetes és OPTION. Per aconseguir ajuda per internet sempre pot ser útil. Tot el que he explicat aquí ho he extret els links que us engaxo a continuació.

Links

La comanda screen

Reading time: 2 – 4 minutes

Doncs la veritat és que amb els anys que fa que uso linux que no són pocs ja, havia sentit ha parlar moltes vegades d’eines com l’screen però no sé per quin motiu mai m’havia dedicat a mirar-les a fons. Doncs bé aprofitant que ara mateix estic a Andorra més sol que un mussol, que no fan res a la TV i que no tinc cap peli en DIVX per mirar al portatil m’he llegit un article de NOVELL que tenia descarregat sobre el tema de l’screen i realment m’he quedat sorprés de la potència i la de coses interessants que ens permet fer.

Havia pensat en reescriure el manual que acabo de llegir en anglès en català però crec que no val la pena perquè el manual és molt simple. Així que us recomano que el mireu: Turbocharge an SSH Connection with screen (cache local)a més és molt fàcil de llegir i ple de captures de pantalla. El que si que faré és argumentar-vos perquè l’heu de llegir i què té de bo l’screen.

Una de les avantatges que més m’han agradat és el fet de poder mantenir sessions amb aplicatius de linia de comanda sense que aquestes es perdin quan perdem una sessió remota. O sigui, que podem fer el mateix que fem amb la comanda nohup (man nohup) deixar aplicacions funcionant quan sortim de la sessió però a més aquestes aplicacions poden ser interactives i les podem recuperar quan vulguem. Bàsicament la diferència esta en que nohup llença comandes sense associar-les a un tty i screen treballa amb pseudo-ttys (pts).

L’altre avantatge que m’ha agradat molt és el fet de poder tenir multiples sub-consoles dins de la propia consola remota. O sigui, que només obrint un SSH (un sol socket) podem tenir més d’un programa funcionant a la vegada (encara que sigui interactiu) i podem anar canviant de l’un a l’altre sense haver d’obrir més sessions. En el document de NOVELL usen d’exemple 3 comandes simultanees: top, vi i ps. A més ens permet saltar d’una sessió a l’altre o fer coses tan espectaculars com partir la pantalla i veure la sortida de les dues aplicacions simultaneament.

La potència de la comanda no acaba aquí, podeu copiar i enganxar texte entre consoles i moltes altres coses així que us recomano que us passeu pel wiki del programa i aprofundiu en el tema si us ha agradat tan com a mi.

gumstix – mu-ordinadors amb linux

Reading time: 3 – 5 minutes

gmustix: Encara més petits que els micro-ITX uns ordinadorets que fan 8cm x 2cm x 6.3cm amb processadors XScale PXA255 de 200MHz i 400MHz, amb 64Mb d’SDRAM i 16 o 4Mb Strataflash. A més tenen una gran varietat de mòduls d’expanció (resum característiques). Hi ha mòduls de tot tipus: USB, Compac Flash (storage i wifi), bluetooth, serie, MMC, targetes de so i segueixen ampliant el catàleg. No us espanteu a més el que seria l’ordinador bàsic el podeu comprar des de 99$ fins a 174$ segons el model.

Realment una passada, a més ve amb Linux de serie amb amplicacions com:

  • System: Linux, busybox, hotplug, mtd-utils, pcmcia, u-boot
  • Communications: Bluez, sshd, hostap-conf, links, lrzsz ntp, rendezvous, udhcp
  • Web/Database/Scripting: boa (an HTTP server) and wget (an http client)
  • Libraries/Miscellaneous: uclibc
  • Audio: Aumix, bplay, madplay

A més permet instal·lar coses com les següents:

  • System: Bash, bzip2, coreutils, diffutils, ed file, findutils, gawk, grep, gzip, less, microwin, nano, procps, rxvt, sed, sfdisk, tar, tinylogin, tinyx, util-linux
  • Communications: Ckermit, bridge, dhcp_relay, dnsmasq, dropbear, hostap, iproute2, iptables, libpcap, microcom, mrouted, netkitbase, netkittelnet, netsnmp, ntpd, ogg, openobex (includes opd), openssh, openssl, openvpn, pppd, snort, socat, tcpdump, tn5250, ttcp, vtun, wireless-tools.
  • Web/Database/Scripting: Berkeleydb, perl (php) (postgres) python, (squeak) SQLite and SQLite3 – which use readline and ncurses
  • Libraries/Miscellaneous: Gettext, gpsd, gpsutil, jpeg, libpcre, lzo, mkdosfs, mke2fs, ncurses, newt, slang, zlib
  • Development tools: Autoconf, automake, binutils-uclibc, bison, ccache, flex, gcc-uclibc-2.95, gcc-uclibc-3.x, gdb, libtool, ltrace, m4, make, patch, pxaregs, strace, valgrind.

El model connex

connex.png

El model connex amb un slot d’extenció amb CompactFlash + Ethernet

connex+eth+cf.png

Aplicacions

No us perdeu les cosetes que en fan amb aquests ordinadors realment espectacular. La gent els usa per controlar helicopters fets per ells mateixos i controlats remotament amb el nostre PC via bluetooth. A més també en fan avions i robots, una passada. A mi se m’acudeixen moltes aplicacions domòtiques i d’altres a nivell professional que tampoc cal comentar aquí.

flybywire.jpg

Conclusió

Realment ara si no posem un linux a cada raconet de la nostre vida ja no és per la mida, la potència i el dinamisme. Potser encara pot ser per una qüestió de preu. Si, perquè malgrat a primera vista semblin uns bons preus els que us he comentat podeu comprar per quasi el mateix preu ordinadors amb molta més potència, una miqueta més grossos uns 17cm x 17cm i amb molt més dinamisme. Però si el que ens preocupa és la mida, realment ja tenim una bona solució.

Una cosa a provar seria si el GNAP que comentava l’altre dia funcionaria en aquest ordinadores, això ja seria l’ostia,eh!? jo crec que amb una MMC o una CF, funcionaria segur.

GNAP – Gentoo Network APpliance

Reading time: 2 – 3 minutes

És una forma senzilla de montar una Gentoo en un sistema de xarxa ‘embedid’, o de treballar amb Gentoo en PCs vells, tot això sense haver de fer una instal·lació completa.

gnap.png

Amb GNAP amb pocs minuts podem montar-nos el nostres servidor d’aplicacions de xarxa: routing, firewalling, traffic profiling, VPN i monitorització de xarxes, podem fer correr el GNAP directament amb un LiveCD o un pen drive, CF, SD, etc.

Montar un sistema amb GNAP ens dona avantatges com: poder incorporar els nostres fitxers de configuració en els LiveCDs o personalitzar el seu comportament. El que es busca amb aquest tipus de sistemes és poder reiniciar-los via hard, a més de poder treballa amb entorns sense estat (statless).

Hi ha dues guies d’usuari, molt bones per cert, que ens permetran coneixer millor el sistema abans de provar-lo la users guide i la advanced users guid. La primera bàsicament és per montar sistemes GNAP per defecte i l’altre serveix

The GNAP Advanced User Guide gives information for power users that want to further customize and modify what their GNAP systems can do. You should be familiar with GNAP systems and Gentoo systems in general before reading this guide.

Features

  • Stripped down system with squashfs compressed filesystem (13Mb)
  • hardened-sources 2.6 kernel
  • GRsec kernel security patch enabled, including PaX address randomization
  • Small footprint executables with PIE/SSP security protection (Gentoo uclibc/x86/hardened profile)
  • Features supported as configuration options: Dropbear (SSH server), Shorewall/FireHOL (iptables firewall helpers), traffic control using cbqinit or htbinit, OpenVPN, OpenNTPD (time synchronisation), DNSMasq (DNS relay and DHCP server), RP-PPPOE
  • Utilities: Watch network traffic flow using iftop or tcpdump
  • Standard Extensions: boa HTTP server, rrdtool graph backend

Plesk 7.5 – centre de control de hostings

Reading time: 2 – 2 minutes

Aquest item és poc habitual ja que parla d’un producte per linux comercial. Cosa que no m’agrada gaire fer. Però degut a la qualitat del mateix crec que valia la pena dedicar-li una estona en referenciar-lo. Degut a un nou conctacte que he fet gràcies al blog. He congut una gent de Barcelona que tenen un redhat amb un aplicatiu de gestió de dominis molt interessant el plesk. És tipus un webmin però molt més orientat a la gestió de hostings que no pas a la gestió de la màquina en si. No només té una qualitat d’imatge i organització d’informació molt més elegant i còmode que el webmin sinó que a més jo diria que és el millor centre de control de hostings que he vist.

plesk.gif

Una cosa interessant és que permet assignar rols de privilegis als usuaris i deixar-los gestionar més o menys informació segons si són l’administrador de tots els hostings, l’administrador d’alguns hostings, d’un hosting o bé simplement un usuari d’un hosting. Tot es fa amb la mateixa interfície i d’una forma molt amigable. Des de canviar una clau, fins a afegir un nou subdomini, passant per reiniciar un servei. Per tant, si algú no sap gaire Linux/Unix i vol disposar d’un servei de gestió de hostings potent i senzill aquest és el meu consell val la pena pagar el cost de les llicències.

Un bon consell pels que els hagi picat la curiositat de saber més coses del Plesk, és que us passeu per la demo de la web.

Shell scripts: eliminar extensió del nom d’un fitxer (bash)

Reading time: 1 – 2 minutes

Quan fem shell scripts tenim la necessitat d’extreure l’extensió dels fitxers i ens acostumem, almenys en el meu cas, a fer experiments amb l’ordre cut i d’altres similars intentant treure alguna solució que ens permeti fer això. El més dur és descobrir que sabies com fer-ho d’una forma ràpida i neta. Això és el que em va passar revisant un article que jo mateix havia referenciat: Shell Scripts.

Doncs bé anant al que interessa per extreure una extensió, per exemple .jpg l’únic que em de fer és això:

${FITXER%.jpg}

Perquè us quedi clar, ho pdriem usar en aquest exemple útil:

#!/bin/sh
for FITXER in `ls *gif`
do
        F=`echo ${FITXER%.gif}`
        echo convert $F.gif $F.jpg
done

Com segur que heu descovert el que ens permet fer aquest petit script és convertir tots els fitxers *.gif a *.jpg

Devilspie: obrir programes sempre a un workspace a les X’s

Reading time: 1 – 2 minutes

Doncs jo sempre treballo amb 5 workspaces al GNOME, els uso per:

  • Consoles
  • Misc
  • Aplicaciones d’oficina, editors, etc.
  • Navegar
  • Correu

El problema és que sempre havia d’anar al workspace per obrir els mateixos aplicatius als espais que jo volia. Això amb KDE ho sabia controlar, però amb GNOME no sabia com. Així que he buscat una aplicació que permet gestionar això i d’altres propietats més de les aplicacions quan es llencen. Aquest aplicatiu és Devilspie, no he trobat massa ajuda de com configurar-la malgrat que amb les quatre coses que explica la gentoo quan s’instal·lat n’he tingut prou per crear el fitxer de configuració. Si voleu veure el fitxer de configuració que de moment tinc fet, l’únic que heu de fer és col·locar aquest fitxer amb vostre home i ja ta. ( ~/.devilspie.xml)

Linux Tips: Modules, Who Are They, And How Do They Work?

Reading time: 2 – 3 minutes

[ Via Migraine Heartache ] A very nice feature of the Linux kernel is the modules. Modules are pieces of software that can be loaded and unloaded from the kernel at runtime. That way you can save kernel memory (and that’s important for small machines, since kernel memory is never swapped out on disk), and keep your kernel clean when you’re not working with some of your hardware.

Especially sound and network cards are really good to compile as modules, since sometimes they are a bit hard to configure, and when you have a module, you don’t have to recompile and reboot your kernel to configure some irq or io setting.

The Tools Used

The tools you use to handle modules are all located in /sbin. They are insmod, modprobe, lsmod, depmod and rmmod.. Notice the names, and compare them to some often used unix commands such as ls and rm and you’ll immediatelly understand what each command will do for you. As always I recommend reading the manual pages. Anyway, here’s what they do:

  • lsmod – List the modules currently loaded. A completely harmless command, even a normal user can run it.
  • rmmod – Removes a loaded module from memory. Checks dependencies, ie if a module needs another module, the other module may not be unloaded before the first one.
  • insmod – Inserts a specific module in memory. You may give a path, or just a filename with or without extension. In the latter case, insmod will search some standard module paths to find the module.
  • modprobe – Inserts a module in memory, but checks dependencies. If you modprobe module A, and module A needs module B to run, modprobe will insert module B and then module A.
  • depmod – Calculates dependencies between modules needed by the other module commands. This is most probably done by your init scripts at system startup, but some time you may need to execute a depmod -a.
  • modinfo – ens dona informació sobre les funcions del mòdul, els paràemtres que suporta, etc.(se l’havien deixat)

How do I make modules?

When you compile your kernel, you choose to make things as modules, instead of into the kernel itself.

The modules will be installed when you do a make modules ; make modules_install after your kernel is compiled. They will reside in a directory called /lib/modules/xx.yy.zz where xx.yy.zz is your kernel version.