Configurar Apache en Debian par a tenir diferents dominis

Ara que és assequible tenir un servidor al cloud ens apareixen diferents projectes els quals necessiten de pàgina web. És assequible tenir un servidor al cloud però un servidor per projecte ja no és gens assequible.
Aleshores el que fem és configurar dominis virtuals al servidor per a que s’accedixca a una carpeta específica en condició del ‘nom'(domini) que s’ha escrit al navegador web client. El procés és realment senzill.

En apache hi ha una carpeta (/etc/apache2/sites-available) on hi ha un fitxer anomenat 000-default.conf, doncs be el que anem a fer és una nova configuració per còpia d’aquest. Copiem i editem el nou fitxer>

# cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/vicent.conf
# nano /etc/apache2/sites-available/vicent.conf

Es modifiquen les línies que es mostren a continuació per les dades del nou domini:

ServerAdmin admin@vicent.homelinux.net
ServerName vicent.homelinux.net
ServerAlias vicent.homelinux.com
DocumentRoot /var/www/vicent.homelinux.net

ServerName i ServerAlias no estan al fitxer de configuració, es posen seguit del DocumentRoot (o abans, sempre dins de les etiquetes VirtualHost). ServerAlias no és precís, s’utilitza molt quan es té un domini en diferents extensions.

També es poden canviar els fitxers de logs per si volem separar-los, estan al mateix fitxer.

Guardem les modificacions i:

a2ensite vicent

(fixeu-se que no he posat el .conf) En executar ens sugerirà que reiniciem el servei d’apache, així que el reiniciem i ja està tot fet!

Reviseu que el DocumentRoot apunta a un directori vàlid al qual té accés el grup www-data

Lligar un domini ‘de pago’ al nostre servidor amb ip dinàmica

Ha arribat l’hora de ser més professional cara el públic i vull tindre un domini meu, res d’un subdomini de dyndns que ja tinc sino fer-me el meu nom a la xarxa! Estic disposat a pegar aquest pas però no vull/puc disposar d’una IP fixa en la que enllaçar el meu super domini que acabe de comprar!!! Que faig?? Tranquil que és molt fàcil.

Tot està en modificar com cal la taula de DNS del teu domini. Depén del teu proveidor de dominis es farà d’una forma o d’altra però el concepte és el mateix (i si no ho pots fer en el teu proveïdor… no serà molt bo, val la pena que et canvies). Per si no saps qué és la taula de DNS, és la que indica als servidors DNS de tot internet cóm traduïr el teu domini a la IP correcta i conté etrades CNAME, NS, MX i A.

  • Registres NS indiquen els nostres servidors DNS principals, als quals la resta del mon els preguntarà com arribar fins a nosaltres
  • Registres MX definixen a quin servidor s’ha d’enviar els correus que vagen dirigits al nostre domini.
  • Registres A indiquen la IP a la qual es traduïx el nostre nom del domini.
  • Registres CNAME s’utilitzen per a definir alies.

Aleshores si tenim algun regitre A el borrarem ja que no ens fa falta, segurament els registres NS no es podran modificar (i si es poden modificar no els modifiques a no ser que saps el que fas), els registres MX ja parlarem un altre dia… i finalment arribem als CNAME, els que utilitzarem per a redirigir el nostre domini al nostre subdomini actual.

Si el domini és nou de trinca i no l’has utilitzat mai pots borrar totes les entrades menys les NS. I ara en crearem una CNAME com mostre:

Type Name Value TTL
cname www vicent.homelinux.net 1

Aixina quan escrius www.elmeudomini.es el que es fa és dirigir-se a vicent.homelinux.net però sense modificar el nom al navegador web del client. És a dir que si escrius http://www.elmeudomini.es/informacio.html, et redirigirà a http://vicent.homelinux.net/informacio.html però de forma silenciosa ja que seguirà mostrant-se al navegador http://www.elmeudomini.es/informacio.html

Dir que aquest alies sols servix per al subdomini www, si vols crear un altre domini com el ftp… es crea una altra entrada a la taula DNS i arreando. En cap moment importa el port al que vols accedir, sols es traducció de lletres a números

Actualitzar Debian 6 (squeeze) a Debian 7 (wheezy) al Netgear Stora MS2110-100PES

Com el Debian 6 ja ha deixat de tindre suport anem a fer un upgrade al 7 (millor fer-la amb una instal·lació neta que no si ja l’has ‘guarrejada’ un poc).

S’edita el fitxer de configuració del apt () deixant les següents línies:

deb http://mirrors.kernel.org/debian/ wheezy main
deb-src http://mirrors.kernel.org/debian/ wheezy main

deb http://security.debian.org/ wheezy/updates main
deb-src http://security.debian.org/ wheezy/updates main

I ara a actualitzar (sense tocar el kernel, ja que per sort el 2.6.32 pot estar al Debian 7).

apt-get update
apt-get upgrade
apt-get install udev
apt-get dist-upgrade

Si hi ha algun error executar també:
apt-get -f install
apt-get dist-upgrade

I per a finalitzar:

update-initramfs -u
cd /boot
/root/stora-flash -i vmlinuz-2.6.32-2-kirkwood -r initrd.img-2.6.32-2-kirkwood

Ara es reinicia i ja està el Debian 7 instal·lat

https://www.garron.me/es/gnu-linux/actualizando-debian-6-a-7-squeeze-wheezy.HTML

Crear RAID 1 bootable al Netgear Stora MS2110-100PES

Aquest apartat es pot aplicar a qualsevol equip al qual estiga instal·lat linux Debian. Excepte la última part on s’indica l’ordre per a arrancar el sistema, però al final del post deixe l’enllaç a la web original on ho explica. Tot el que s’indica és com a super usuari.

Per a fer RAID 1 es seguixen els següents passos:
– Instal·lar mdadm.
– Copiar estructura del disc A al disc B.
– Indicar que totes les particions del disc B són per a RAID.
– Crear RAID i afegir les particions del disc B.
– Muntar el RAID a una carpeta temporal i copiar tots els fitxers.
– Reiniciar i arrancar amb el RAID.
– Indicar que totes les particions del disc A són per a RAID.
– Afegir les particions del disc A al RAID.
– Configurar el fitxer mdadm.conf per a muntar el RAID automàticament al iniciar.

Instal·lar mdadm

apt-get install mdadm

Eixim del asistent de configuració si es pot. Com jo no sabia de que anava la cosa quan ho he instal·lat… si que he fet l’assistent i després tenia algun que altre problema.

Per a copiar l’estructura del disc A al disc B s’executa l’ordre:

sfdisk -d /dev/sda | sfdisk /dev/sdb

I ara es modifica el tipus de particions, primer vegem les particions que tenim amb:

fdisk -l

I després les modifiquem:

fdisk /dev/sdb

s’accedix a un menú al qual es farà aquest procediment per cada partició que hi haja:

Command (m for help): <-- t
Partition number (1-4): <-- num de la partició
Hex code (type L to list codes): <-- fd

I per a finalitzar:

Command (m for help): <-- w
The partition table has been altered!

Ara es continua amb la creació dels RAIDs, es crea una partició RAID per cada partició que tingam. Al meu cas tinc una per a dades (sdb1) i altra per a swap (sdb5).

mdadm -C /dev/md0 --metadata=0.90 --chunk=128 --level raid1 --raid-disks 2 missing /dev/sdb1
mkfs.ext3 /dev/md0
mdadm -C /dev/md1 --metadata=0.90 --chunk=128 --level raid1 --raid-disks 2 missing /dev/sdb5
mkswap /dev/md1

Es torna a actualitzar l’arranc per a que puga arrancar des del RAID

mdadm-startall
update-initramfs -u
cd /boot
/root/stora-flash -i vmlinuz-2.6.32-2-kirkwood -r initrd.img-2.6.32-2-kirkwood

I ara es munta la partició de dades del RAID i es copien les dades de l’actual /

mkdir /mnt/newroot
mount -t ext3 /dev/md0 /mnt/newroot
cp -ax / /mnt/newroot

Es reemplaça sda1 per md0 i sdb5 per md1 a la taula de muntatge fstab del nou / (la ruta seria /mnt/newroot/etc/fstab)

Fem un reinici i tornem a cancelar l’autoarranc. Executem les següents ordres per a executar el sistema:

setenv bootcmd_ide 'ide reset; ext2load ide 1 0x200000 /boot/uImage; ext2load ide 1 0x800000 /boot/uInitrd'
setenv bootcmd 'setenv bootargs $(console) root=/dev/md0; run bootcmd_ide; bootm 0x200000 0x800000'
boot

El més segur es que no trobe automàticament el RAID i es quede al (initramfs), aleshores executar aquestes ordres per a configurar els RAIDs i continuar:

mdadm --assemble /dev/md0 /dev/sdb1
mdadm --assemble /dev/md1 /dev/sdb5
exit

Ara continuem amb el procés, li toca al disc A. Copiem la estructura de particions del disc B:

sfdisk -d /dev/sdb | sfdisk /dev/sda

i afegim les particions del disc A al RAID:

mdadm --manage /dev/md0 -a /dev/sda1
mdadm --manage /dev/md1 -a /dev/sda5

Automàticament començarà a regenerar-se el disc A fins que siga igual que el B. Aquest procés es pot veure amb l’ordre:

watch cat /proc/mdstat

I per a eixir pulsar CTRL-C.

Una vegada ja ha acabat de regenerar-se passem a editar el fitxer de configuració de RAID, que al debian està a /etc/mdadm/mdadm.conf, i si hi ha alguna línia que comença amb la paraula ARRAY la borrem o la comentem (posant un # davant).

Ara li posem la configuració correcta d’ARRAY amb la següent ordre:

mdadm --verbose --detail --scan >> /etc/mdadm/mdadm.conf

Es torna a actualitzar l’arranc per a que puga arrancar des del RAID

update-initramfs -u
cd /boot
/root/stora-flash -i vmlinuz-2.6.32-2-kirkwood -r initrd.img-2.6.32-2-kirkwood

*Aquest pas no se si és precís ja que el que he fet jo seguint els manuals és reiniciar després de la regeneració i sempre es quedava en (initramfs). Tenia que muntar manualment el RAID amb les ordres:

mdadm --assemble /dev/md0 /dev/sda1 /dev/sdb1
mdadm --assemble /dev/md1 /dev/sda5 /dev/sdb5
exit

Finalment googlejant he trobat l’ordre per a posar la configuració correcta d’ARRAY i jo he afegit aquest últim pas. Aixina que igual no fa falta.

Després d’aquest incís reiniciem l’equip, cancelem l’autoarranc i executem les següents ordres:

setenv bootcmd_ide 'ide reset; ext2load ide 1 0x200000 /boot/uImage; ext2load ide 1 0x800000 /boot/uInitrd'
setenv bootcmd 'setenv bootargs $(console) root=/dev/md0 rootdelay=5; run bootcmd_ide; bootm 0x200000 0x800000';
boot

Comprovem que s’ha iniciat correctament i que la partició / està muntada al /dev/md0 (amb el df -h per exemple) i tornem a reiniciar per a guardar els valors d’inici i que l’autoarranc inicie linux. Aixina que es reinicia, cancelem l’autoarranc i executem les següents ordres:

setenv bootcmd_ide 'ide reset; ext2load ide 1 0x200000 /boot/uImage; ext2load ide 1 0x800000 /boot/uInitrd'
setenv bootcmd 'setenv bootargs $(console) root=/dev/md0 rootdelay=5; run bootcmd_ide; bootm 0x200000 0x800000';
saveenv
boot

Com es pot comprovar en la línia de setenv bootcmd_ide, estem apuntant al disc 1 (ide 1), supose que si falla aquest disc el sistema no s’iniciarà a soles i es tindria que connectar via consola al NAS i modificar aquesta línia per:

setenv bootcmd_ide 'ide reset; ext2load ide 0 0x200000 /boot/uImage; ext2load ide 0 0x800000 /boot/uInitrd'
saveenv

Després referent al RAID pot ser que també falle l’arranc del linux al fallar un disc i pot ser s’haja de fer en manual alguna historia com sol passar als servidors quan falla un disc i toca ‘apretar F1’ per a continuar jaja.

Configurar RAID:
http://www.openstora.com/forum/viewtopic.php?f=6&t=396
https://www.howtoforge.com/software-raid1-grub-boot-debian-etch-p2

Instal·lant linux a Netgear Stora MS2110-100PES

“Arrglant trastos” he trobat el NAS que havia retirat i m’ha vingut al cap que una vegada vaig llegir que es podia posar linux. La veritat que el firmware que porta no m’agrada gens: és prou llimitat, s’accedix per una web de netgear, i ja està una mica desfassat.
He buscat novament la web on indicava cóm posar el debian al NAS i vos explique els resultats:

La web que explica el procés és [aquesta], però jo ho he aconseguit instal·lar sense USB extern i en RAID1 ajudat d’altres webs que deixe al final del post. Fent el que indique es perdrà tota la informació que hi haja al NAS

Estem parlant d’una arquitectura arm, amb un bootloader anomenat U-BOOT el qual al arrancar el sistema et dona 3 segons per a interrompre l’arranc automàtic i interactuar amb ell. Ens connectem per serial per a poder interactuar amb el sistema. A la web hi ha un exemple de com utilitzar Arduino UNO per a ‘fer de pont’ entre el pc i el NAS, jo he utilitzat un convertor USB – SERIAL TTL per a comunicar-me (però el procés és el mateix).

El software que he utilitzat al Windows és el putty, que ja l’utilitze per a client SSH, per a linux es pot utilitzar l’utilitat ‘screen’ (a la web està explicat).

Instal·lant el sistema

Seguint la web, el primer pas és baixar-se al pc en local tots els arxius de l’adreça http://openstora.cablecat.dk/ (realment no s’utilitzen totes però aixina i tot jo les he baixat)

Per a poder carregar l’arranc de la instal·lació es necessita passar fitxers del nostre pc al NAS. Ho farem per tftp, el programa utilitzat és el pumpkin (que ens hem baixat). L’instal·lem i modifiquem la configuració per a definir el directori (on estan guardats els fitxers que ens hem baixat) i per a permetre qualsevol connexió:
post01

Ara ens connectem amb el Putty al NAS. Obrim putty, indiquem que és una connexió serial, indiquem el número del port i la velocitat de 115200.

Posem en marxa el NAS i començarem a veure ‘coses’ fins que mostra

Hit any key to stop autoboot:  3

Aleshores es pulsa qualsevol tecla per a parar el procés automàtic.

En aquest punt anem a fer un backup de les opcions configurades per defecte. Amb la funció printenv es mostra per pantalla tota la configuració (que copiarem a un txt i el guardarem)
Ara es configura unes opcions que no se que són, la IP del NAS, la IP del nostre equip (que fa de servidor tftp), es guarden els canvis i es reinicia:

setenv mainlineLinux yes
setenv arcNumber 2743
setenv ipaddr XXX.XXX.XXX.XXX   #This is the IP of your Stora
setenv serverip XXX.XXX.XXX.XXX #This is the IP of your TFTP server
saveenv
reset

(per conforme està la meva xarxa també he tingut que modificar la màscara, setenv netmask)

Es reinicia i es torna a parar l’arranc automàtic. Ara es carreguen els fitxers d’arranc de l’instal·lador:

tftpboot 0x200000 uImage.di
tftpboot 0x800000 uInitrd.di
setenv bootargs console=ttyS0,115200n8 base-installer/initramfs-tools/driver-policy=most
bootm 0x200000 0x800000

I comença la instal·lació! Jo he tingut bastants problemes amb la instal·lació. El primer problema es que aquesta versió de debian ha deixat de tindre suport i per tant s’ha retirat dels repositoris, deixant-lo sols al repositori ‘archive’. El problema d’aquest repositori es que la estructura de carpetes és diferent a la que espera el programa d’instal·lació i per tant no hi ha forma de seguir.
Mirant per internet he trobat posts on la gent posava un proxy pel mig, capturava la url i la modificava. Jo això no ho se fer, aixina que he buscat fins trobar un mirror on encara tinguera aquesta versió. També descartava instal·lar una nova versió com m’ho oferia l’instal·lador per por a que el kernel que s’instal·la després a ma no fos compatible (ho desconec).
Be el mirror que s’introduix manualment és:
Servidor: snapshot.debian.org
Carpeta: /archive/debian/20120402T153222Z/

Aquest servidor pareix que tinga snapshots de qualsevol dia, així que es pot provar a instal·lar un més vell

Altre problema que he tingut es que després de descarregar els primers paquets la pantalla es queda negra ‘i au’, no passa res més. Era perquè triava en la configuració que la localització era Espanya. Si es deixa totes les opcions per defecte si que funcionarà OK.

Pot mostrar varis errors com:
– No kernel modules were found.
– Software RAID not available
– Logical Volume Manager not available
– No installable kernel was found

Quan s’arriba a la partició s’indica que el format de la taula de particions és ‘msdos’ (perquè? per que he provat eixa i m’ha funcionat). En aquest cas com volia fer RAID i no volia liar-me amb les particions he posat que sols vull una partició on estiga tot.
Important en aquest punt que s’utilitze sols un dels discs i es creen particions primaries, a mi se m’ha creat la partició swap en lògic. No passa res però crec que per al RAID quea més ‘net’.
Al final no s’instal·la el GRUB perque indica que no es pot i intentarà reiniciar.

Instal·lació del kernel

Al reiniciar tornarem a cancelar l’autoarranc i carregarem els fitxers corresponents per a arrancar el nostre sistema:

tftpboot 0x200000 uImage
tftpboot 0x800000 uInitrd
setenv bootargs $(console) root=/dev/sda1
bootm 0x200000 0x800000

(pot ser que la vostra partició / no siga /dev/sda1, si és així es te que modificar)

una vegada ja ha arrancat el sistema s’instal·la el kernel amb les següents ordres:

aptitude update
aptitude -y install uboot-mkimage initramfs-tools ntpdate
ntpdate-debian
wget http://dl.dropbox.com/u/1397036/stora_di/linux-headers-2.6.32-6-kirkwood_2.6.32-6-kirkwood-10.00.Custom_armel.deb
wget http://dl.dropbox.com/u/1397036/stora_di/linux-image-2.6.32-6-kirkwood_2.6.32-6-kirkwood-10.00.Custom_armel.deb
wget http://dl.dropbox.com/u/1397036/stora_di/2.6.32.mach.tgz
dpkg -i linux-*-2.6.32-6-kirkwood_*.deb
ln -s /usr/src/linux-headers-2.6.32-6-kirkwood/ /lib/modules/2.6.32-6-kirkwood/build
tar xzf 2.6.32.mach.tgz -C /usr/src/linux-headers-2.6.32-6-kirkwood/arch/arm/

i ara es confiugura el kernel per a poder arrancar:

wget http://dl.dropbox.com/u/1397036/stora_di/stora-flash
chmod +x stora-flash
/root/stora-flash -i /boot/vmlinuz-2.6.32-6-kirkwood -r /boot/initrd.img-2.6.32-6-kirkwood

(les versions de vmlinuz i initrd poden variar)

En aquest punt ja tenim tot el sistema correcte a falta de configurar l’autoarranc per a que arranque linux. Primer fem una prova en manual per a comprovar que el sistema arranca sense problemes. Així que es reinicia, es torna a cancelar l’autoarranc i s’executen les següents ordres:

setenv bootcmd_ide 'ide reset; ext2load ide 0 0x200000 /boot/uImage; ext2load ide 0 0x800000 /boot/uInitrd'
setenv bootcmd 'setenv bootargs $(console) root=/dev/sda1; run bootcmd_ide; bootm 0x200000 0x800000'
boot

Si arranca sense problemes (com m’ha passat a mi) ja podem respirar tranquils, jejeje. Indicar que el linux no agarra l’hora del maquinari, instal·lar el paquet ntpdate-debian per a que actualitze l’hora. Sino es pot fer manual:

date --set "2016-10-07 14:35"

Aixina no ens eixiran missatges indicant que hi ha paquets que s’han creat al futur.

Seguint el que he fet jo, passem a configurar el RAID i després a actualitzar de debian 6 a debian 7. Però supose que es pot invertir l’ordre, primer actualitzar i després configurar el RAID

Amb aquesta instal·lació no es modifica res de l’anterior sistema d’arranc. Per a tornar a utilitzar el firmware del NAS el que es farà és tornar a posar els valors de les variables env al seu lloc (ixes que hem guardat abans!).

Instal·lació Debian al NAS:
http://www.openstora.com/wiki/index.php?title=How_to_install_Debian_Linux_on_NETGEAR_Stora

Instal·lar Mac OS El Capitan a vmware en Windows 7

Hola!

Hui toca explicar cóm instal·lar ‘El Capitán” a una màquina virtual. Explicaré el que m’ha funcionat a mi, ja que també hi ha per ahí altres formes que a mi no m’han funcionat (extreure una imatge per passar-la a ISO,…).  Ho he fet tenint de Host el Windows 7, supose que per a Linux i altres Windows també valdrà.

Es necessita:

  • Vmware Workstation 12 player.
  • Un pc de la poma rosegada (d’algun amic, parent, …).
  • Unlocker 2.0.8
  • Un USB de 8Gb mínim (es perdrà tota la info que tingues en ell).

Una vegada instal·lat el vmware es descarrega des d’ací el Unlocker 2.0.8. Et tens que registrar al fórum per a poder descarregar-te el fitxer. S’executa l’instal·lador com a administrador (el vmware el tanques abans), i quan tornes a obrir el vmware i intentes crear una nova màquina virtual ja eixirà la opció d’escollir el S.O. d’Apple

Ara anem a fer-nos amb l’instal·lador del S.O., a un pc Mac ens baixe’m del AppStore la nova versió del O.S. (El capitán) i una vegada baixada (sense instal·lar-la) executem el següent:

  • Una vegada connectat el USB obrim un Terminal (consola) i executem:
df -h

Ens mostrarà per pantalla les unitats muntades, el tamany de cada unitat i el path del volum, per exemple /Volumes/USBExtern.

  • Ara executem:
sudo /Applications/Install\ OS\ X\ El\ Capitan.app/Contents/Resources/createinstallmedia --volume /Volumes/USBExtern --applicationpath /Applications/Install\ OS\ X\ El\ Capitan.app --nointeraction

Recordar cambiar /Volumes/USBExtern pel que ens ixca al pas anterior. Ara estarà un ratet creant el sistema i quan acabe ja tenim l’usb preparat.

Ara al vmware creem una nova màquina indicant que volem un Apple Mac OS X i la versió OS X 10.11, connectem el USB i iniciem. Ens dèmanarà permís per a conectar el USB a la màquina virtual, acceptem i a partir d’ací ja és instal·lar el S.O.. Si no demana no passa res, anem a les icones del que hi ha connectat, botó dret i “connectar”, reiniciem la màquina amb ctrl+alt+ins i ja ens ho agarrarà.

Està contat un poc per damunt però la idea està clara. Amb el unlocker habilites el vmware per a suportar el Mac OS X, amb el terminal crees un USB bootable amb la instal·lació del S.O. i després sols queda arrancar des del USB amb la màquina virtual.

Després et tindràs que crear un ID d’Apple per a tindre les facilitats del seu sistema.

Ah! Amb i5, 4Gb de RAM i 80Gb de HDD El capitán es comporta més o menys be.

ATTINY85 amb el Arduino ID 1.6.x

Ja he vist com poder utilitzar l’IDE 1.6.x amb el Attiny i és molt senzill, el que passa que nosaltres volem que siga copiar y pegar… i a funcionar!

Les fonts que m’han funcionat són aquestes, el que hem de fer una vegada descomprés l’arxiu al hardware és renombrar l’arxiu de text “Prospective Boards.txt” a “boards.txt” i ja està tot (tot si has seguit l’anterior post).

Pel que veig, qui ha fet aquestes fonts ho ha fet així per a que copiem i peguem al boards.txt original el que nosaltres vulgam

Arduino a ATTINY85

Hui toca un poc d’arduino, una de les coses que segons llig ‘per ahí’ és molt senzill però que jo no ho he pogut fer, al final si però m’ha costat més del que em pensava. Crec que el culpable ha sigut un condensador de 10uf, que no el tenia! En tenia de 100uf però es veu que no era bo, tampoc entenc molt d’electrònica.

Aquest és l’esquema del attiny85, encara que els que tinc jo no tenen la ‘muesca’ de dalt, sols tenen el foradet que es veu a l’esquerra.

untitled

Introducció/Història

He tingut problemes per a fer-ho anar amb la versió 1.6.5 del arduino IDE utilitzant la placa Arduino UNO perquè a la xarxa hi ha molta informació per a programar els xips de la familia attiny i no s’indica si és per a la versió 1.0.x o 1.6.x del IDE, així que he utilitzat la versió 1.0.5 del arduino IDE per a poder carregar el codi (és important saber quina versió s’utilitza ja que canvien les estructures de les carpetes). També he tingut problemes en les plaques arduino, en la arduino uno no m’ha funcionat i en la arduino leonardo si!

L’únic error que ha aparegut i no he pogut solucionar es el de ‘firma no valida’ i el problema el causa el reinici que fa Arduino Uno al enviar-li el progrma. Per a poder programar al attiny primer li diguem a la placa d’arduino que va a ser un programador ISP i després escrivim un codi i li’l enviem (enviant-lo aquest al xip que hem connectat).

El problema ve que al rebre aquest codi el Arduino Uno es reinicia (funcionament normal del arduino uno cada vegada que s’obri una comunicació per serial USB (carregar codi, obrir monitor del arduino IDE,….). La solució en totes les webs que he mirat és posar un condensador de 10uf, condensador si que se el que és però 10uf no se quina medida és (no tinc ni idea d’electrònica). El que sí que se es que jo no tinc condensador d’eixes característiques, el que tinc és de 100uf i si el pose no em funciona 🙁

Segons llig ‘per ahí’ aquest condensador el que fa és aguantar energia durant el microtall d’alimentació al pin reset que fa que es reinicie la placa, és a dir… que anula el reinici.

Revisant per casa veig que tinc una placa arduino leonardo (que no m’agrada gens perquè la configuració de pins no és la mateix que la UNO i no val casi cap shield per a ella…) i la bombilleta del cervell(que ara ja és de led) s’activa: Arduino Leonardo no es reinicia quan s’activa una connexió per USB, aleshores no farà falta condensador, aleshores pot ser funcione!

Com no confie ja amb el IDE 1.6.x… vaig a veure el 1.0.x i en aquest si que em funciona

Explicació de la falla

Primer que res es configura l’arduino IDE per a poder programar la familia de attiny. Per a això es baixa aquestos arxius: versió 1.0.x i versió 1.6.x, i es guarden en la carpeta ./hardware dins de la carpeta principal del arduino. També es pot crear una carpeta ‘hardware’ dins de la carpeta on es guarden els sketch per defecte i descomprimir la carpeta allí.

Ara obrim arduino IDE i carreguem l’exemple ArduinoISP a la nostra placa. Modifiquem el codi per a que siga compatible amb la nostra Leonardo, tant sols modificar el que indique, indicar que és un Arduino Leonardo i pujar a la placa.

#define RESET     SS     canviar a     #define RESET     10
#define LED_HB    9      canviar a     #define LED_HB    13

Ara tindrem el led L parpadejant suaument, això és perquè està en mode ISP, jo crec que és perquè està en mode bootloader però no ho puc confirmar.

També modifiquem l’IDE per a poder pujar el codi a la placa. Es crea dins de la carpeta ./hardware una altra que anomenarem ‘leofix’ (es pot posar el nom que vulgues) i dintre d’ella crearem un fitxer anomenat programmers.txt (el nom d’aquest fitxer sí és important, sino l’IDE no el detectarà). Editem el fitxer i afegim:

arduinoispleo.name=Arduino as ISP (Leonardo)
arduinoispleo.communication=serial
arduinoispleo.protocol=arduino
arduinoispleo.speed=19200

El següent pas és connectar el attiny a la placa (millor fer-ho amb la placa sense alimentació jeje) com mostre al dibuix:

tG26dSulReviseu be que estiga tot connectat com s’indica! ja que a mi no em funcionava i era perquè se m’havia oblidat connectar el pin 10, quin cap…

A continuació mostre la configuració del Arduino Uno per a comprovar que no utilitzen les mateixes connexions:

VhUXVNgl

Ara configurem l’Arduino IDE, canviant el model de placa a ATtiny85 (Internal 1Mhz clock), deixem el mateix port que s’ha utilitzat per a pujar el codi al Leonardo i canviem el programador a Arduino as ISP (Leonardo) que hem creat a un pas anterior.

Per provar que va podem carregar-li l’exemple blink, que el que fa és encendre/apagar un led, modificant primer el número de pin de 13 a 0 (per exemple) i ara ja es pot pujar ‘sense problemes’.

Dir que aquest procediment sols m’ha servit per a la versió 1.0.5, segurament es pot adaptar per a la 1.6.x però com no tinc temps de investigar-ho i la primera versió encara es pot baixar de les fonts oficials… ací s’acaba la història.

Problemes:

Invalid signature: revisa el voltatge que arriba o si la placa programadora fa reset

No sync: No sincronitza perquè no s’ha escollit el port COM adequat, a una mala sempre pots desconnectar i tornar a connectar la placa (a mi m’acaba de passar ara mateix) o perquè el tipus de compilador no és el correcte (si has seguit els meus passos si que serà el correcte però per si a cas revisa-ho una altra vegada).

Error de compilació, no troba Arduino.h: M’ha passat i és perquè tens les dues versions instal·lades a l’equip i compartixen directori de configuració, ves a Archivo->Preferencias i canvia el directori (posa-li un 1 al final per exemple).

PIN  D5/A0/RESET

El pin D5/A0 està compartit amb RESET, això vol dir que fa la funció de reset. Es pot canviar i poder utilitzar aquest pin però aleshores ja no es pot programar amb ISP, es té que programar d’una altra manera. Així que si es vol utilitzar aquest pin el que es pot fer és programar-ho tot be, pensant en utilitzar aquest pin, comprovar que et funciona tot be (pensant que aquest pin si que anirà be) i deshabilitar el reset. No vaig a explicar com es fa perquè encara no ho se.

Una altra forma d’utilitzar el pin A0 és com a INPUT i que no sobrepasse els 2’2v, sino el reset s’activa.

 

Webs d’on he tret la info:

 

Moure partició arrel de SD a USB en la Raspberry

Després d’un temps utilitzant una raspberry amb el S.O. a la targeta SD ens podem trobar que aquest falla. Pel que he llegit ‘per ahí’ sol passar prou a sovint ja que en realitat la targeta SD no està preparada para tanta lectura/escriptura (això pareix). Però hi ha una solució per a aquest problema: Passar la partició arrel del S.O. a una unitat USB, és un canvi ben senzill però que depenent del tamany de la partició necessitarà més temps o menys (i estic parlant fins a varies hores).

El primer que es fa és identificar on està la nostra partició arrel, per a això es fa un df -h i localitzem la línia on indica que la partició és ‘/’:

Filesystem Size Used Avail Use% Mounted on
 rootfs 15G 1.9G 13G 14% /
 /dev/mmcblk0p2 15G 1.9G 13G 14% /
 devtmpfs 243M 0 243M 0% /dev
 tmpfs 49M 224K 49M 1% /run
 tmpfs 5.0M 0 5.0M 0% /run/lock
 tmpfs 98M 0 98M 0% /run/shm
 /dev/mmcblk0p1 56M 17M 40M 30% /boot

En aquest cas seria /dev/mmcblk0p2

Després identifiquem la nostra unitat USB, podem fer un ls /dev/sd* abans de connectar el nostre USB, connectar el nostre USB i tornar a fer un ls /dev/sd*, veurem que hi ha algun element nou. Imaginem que al nostre cas hem identificat el /dev/sda1 (sda és la unitat i el 1 és la partició, pot ser sda, sdb, sdc,…. i la partició 1, 2, 3,…).
Aleshores executem:

 sudo dd if=/dev/mmcblk0p2 of=/dev/sda1 bs=4M

Aquest comandament el que fa és fer una ‘foto’ de la partició arrel i plasmar-la a la partició que li hem indicat (borrant tot el que hi havia abans, per supost). Després es necessita revisar la nova partició en busca d’errors. Si no es fa no es podrà seguir al següent pas.

 sudo e2fsck /dev/sda1

Ara tenim una copia exacta de la partició de la SD en la unitat USB, però segurament la unitat USB té més espai i el estem desaprofitant. Per a ocupar tot l’espai possible executem:

 sudo resize2fs /dev/sda1

I ací podriem dir que acaba la primera part: la migració de dades. Ara comença la segona part: la configuració del S.O. per a iniciar amb la nova partició com a partició arrel.
Primer muntem la nova partició

 sudo mount /dev/sda1 /mnt

I editem el seu fitxer fstab

 sudo nano /mnt/etc/fstab

El que anem a fer és canviar el /dev/mmcblk0p2 que haviem vist al primer pas per el /dev/sda1 que és la nova partició (en aquest cas té aquest nom, recordeu al vostre cas pot tenir un altre nom)

Exemple:
Abans

 proc /proc proc defaults 0 0
 /dev/mmcblk0p1 /boot vfat defaults 0 2
 /dev/mmcblk0p2 / ext4 defaults,noatime 0 1
 # a swapfile is not a swap partition, so no using swapon|off...

Després

 proc /proc proc defaults 0 0
 /dev/mmcblk0p1 /boot vfat defaults 0 2
 /dev/sda1 / ext4 defaults,noatime 0 1
 # a swapfile is not a swap partition, so no using swapon|off...

Ara ja podem desmuntar la partició nova

 sudo umount /dev/sda1

I anem a editar un fitxer de configuració del boot

 sudo nano /boot/cmdline.txt

On modifiquem el root=/dev/mmcblk0p2 per root=/dev/sda1

Ara ja si que podem reiniciar i comprovar que estem a la nova partició. Ho podem comprovar amb un df -h per a veure les particions muntades i el tamany.

La partició vella la podem deixar ahí sense tocar, no se sap mai si algun dia es necessitarà per a alguna emergència com voler utilitzar la raspberry sense la unitat USB. Per a aquest cas sols fariem l’últim pass, tornant a posar el root=/dev/mmcblk0p2.

Aquesta informació l’he extret i mig traduït de:
http://travisred.github.io/using-a-usb-drive-as-os-root-on-a-raspberry-pi/

Configurar el comandament de la TV per a controlar Kodi

A l’entrada anterior he explicar (ja se que molt per damunt) que podiem controlar Kodi amb el ‘mando’ de la ‘tele’. El que passa es que anirem descobrint poc a poc el funcionament de cada tecla del mando. L’activació o reconeiximent dels dispositius CEC de cada TV és diferent així que no ho explicaré, ademés no hi ha tantes opcions en una TV, navegueu per elles i ja la trobareu. Des de la meua experiència vaig a explicar com assignar tecles del ‘mando’ a accions del Kodi.

Al provar en diferents marques de TV he vist que en la Samsung no fa falta cap modificació des del meu punt de vista, es pot controlar be. Però al provar en LG em vaig emportar una gran desil·lusió ja que la funció ‘arrere’ no anava des del comandament i damunt ho volia utilitzar per a aquesta TV! Així que mirant per ahí i provant ho he pogut canviar, és molt senzill i ho vaig a explicar.

El primer a tenir en compte és que la TV no envia per HDMI la informació de totes les tecles que apretes al ‘mando’. No se si depén de models, marques de TV o versions del HDMI però el que si que se es que en la LG que tinc no es pot configurar qualsevol tecla. Després, per a canviar la configuració de les tecles es pot editar a pel el fitxer de configuració o utilitzar un plug-in que ens facilita aquesta tasca. Com a mi m’ha funcionat el plug-in (add-on), explicaré aquest apartat i no l’altre més interessant jeje.

Instal·lem el add-on “Keymap editor”. Executem aquest add-on i en l’apartat global busquem l’acció que volem configurar: ‘arrere’ en aquest cas, pulsem enter i editar. Durant 5 segons està esperant el sistema que apretes una tecla, be siga del teclat, del ‘mando’,…En aquest punt tenim 2 opcions: la primera és anar apretant tecles fins que alguna responga o monitoritzar les tecles que la TV envia al Kodi i elegir una d’aquestes. Jo primer em vaig decantar per la primera ja que pensava que el botó ‘exit’ del ‘mando’ si que funcionava (i no funcionava), després els botons de color (i tampoc funcionaven), i al final vaig triar la segon opció.

Per a monitorizar les tecles que envia la TV a Kodi per HDMI s’habilita l’accés SSH al sistema (que si ho hem fet en la configuració inicial ja no fa falta habilitar-ho) i també habilitarem la opció de debug del Kodi, que s’habilita des de les opcions de sistema del Kodi. Hi ha dos opcions de debug, si actives les dos opcions es pot monitorizar encara que crec que sols fa falta activar la segon opció. En la part superior esquerra de la TV apareixerà informació on indicarà la ruta del fitxer de log del sistema.

Ara toca accedir amb un client SSH des d’un altre equip a openELEC (usuari:root pass:openelec) i executar ‘cat /ruta/del/arxiu.log’, ens fixem en l’hora de l’últim event, apretem una tecla del ‘mando’ i tornem a executar l’ordre anterior, ens fixem si s’ha registrat un nou event. La veritat es que aquesta opció també és ‘prueba-error’ però al menys tens on mirar per a comprovar si ‘fa algo’ o no el botó que s’apreta. Una vegada tenim identificada una tecla que creguem que no fa res, tornem a executar el Keymap editor, anem a l’acció a configurar i quan ens demane una tecla… apretem eixa tecla.

Clar? si no està clar sempre podeu preguntar. Per a accedir per SSH es pot utilitzar qualsevol client com putty per a windows. També es necessitarà la IP de l’equip per a poder accedir, la podem trobar a opcions del sistema de OpenELEC.

Hi ha moltes accions a configurar, pot ser entretés perdres per ahí, també veure que hi ha accions que estan tant en global com en altres seccions i supose que la global tindrà més pes que les altres, no se. Tampoc he comrpovat qué passa si configures una mateixa tecla per a dos accions, però crec que el que farà és executar les dos accions. No crec que comprove primer si eixa tecla està fent una altra acció, aixina que si vols canviar la acció de una tecla primer et toca anar a eliminar tecla del event anterior i després assignar-la al nou event.