dimarts, 18 de desembre del 2012

Instal·lacio ssh-server



sudo apt-get update
sudo apt-get install openssh-server

El update per refrescar els repositori o programes que poden instal·lar-se des de els servidors d'Ubuntu.

Podem configurar els paràmetres a l'arxiu:

sudo nano /etc/ssh/sshd_config

Un canvi habitual es el canviar el port del servidor

(Si el arxiu surt en blanc es que no hem fet correctament l'instal·lació)

Podem provar de desintal·lar-lo i tornar-lo a instal·lar o provar el següent que torna
els arxius per defecte: (tarda una mica)

sudo dpkg --configure -a 

O mes ràpid nomes reconfigurar el servidor:

dpkg-reconfigure openssh-server


Fixeu-vos

sshd_config     configuració SERVIDOR
ssh_config      configuració CLIENT





Normalment el original es el port 22
Cal entrar al arxiu anterior i modificar on posa el port.

Port 22

Podeu posar per exemple el 

Port 2222

També podem habilitar que es puguin connectar des de qualsevol ip traient el comentari a 

ListenAddress 0.0.0.0





Una vegada estan els canvis realitzats cal reiniciar el servei ssh

sudo restart ssh

Tambe pot fer-se de la següent manera:

sudo /etc/init.d/ssh restart

o

sudo service ssh restart







divendres, 14 de desembre del 2012

Canviar el teclat una vegada instal·lat Ubuntu Server

Si en la instal·lació no s'ha instal·lat correctament el teclat podem utilitzar el següent (que si no m'equivoque es el mateix que a la debian):

sudo dpkg-reconfigure keyboard-configuration

I elegim els següents:







dijous, 13 de desembre del 2012

slsnif al Ubuntu 10.04 i 12.04

El port serie es difícil de fer-li un sniff perquè si l'aplicació obre el port cap altra aplicació pot accedir al port ja obert.

Recorde de quan utilitzava le windows que havies de fer-ho mitjançant hardware, un derivador que derivava les dades a un segon port així podies veure la comunicació del port en qüestió per altre port. També recorde que havia un software que ho feia però era de pagament modificava el driver del port serie, i aquests programes no estaven piratejats per la poca quantitat d'usuaris que solen tindre.

Ara amb el linux es pot fer i a mes tens el codi font es diu "slsnif" el que fa es crear un pseudoport  que s'anomena pty. Sembla que el pty ve del unix, del BSD i que porta des de molts anys, segurament per qüestions de seguretat al ubuntu nou el 10.04, 12.04, 12.10 que son els que he provat està desactivat, per activar-lo vaig llegir que era una opció a la compilació, vaig seguir investigant i només cal caviar una opció del GRUB



Aquest es el error que em sortia:


Failed to open a pty: No such file or directory

Aquest es el que he fet per solucionar-ho:

sudo nano /etc/default/grub

Afegir el següent:

GRUB_CMDLINE_LINUX="pty.legacy_count=256"

No oblideu que heu de fer:

sudo update-grub

Després com que el grub ha de tornar-se a executar caldrà reiniciar.


dimecres, 12 de desembre del 2012

Proces instal·lació UbuntuServer

Una vegada creada la maquina virtual i inserida la .iso quan engeguem el ordinador comença el proces d'instal·lació.


Cal tenir en compte que ara tinguem dos ordinadors, però nomes un teclat. Si fas Click a la pantalla on es  la màquina virtual aquesta captura el teclat i ja podem escriure a la màquina virtual. Per sortir a la maquina real cal pitjar CONTROL DETRA, de fet si es fixeu a la barra que hi ha sota la màquina virtual es pot veure que apareix la tecla control detra, es la que commuta entre teclat de la màquina virtual i teclat de la maquina real.


El primer que hem de configurar es l'idioma.









El teclat, per configurar el teclat hi ha un assistent que et diu que pitges diferents tecles i així automàticament  detecta el tipus de teclat que acaba pitjant la ç.








Amb una instal·lació senzilla cal deixar el paràmetres que van sortint per defecte. No cal instal·lar tampoc cap programa ja ho farem nosaltres manualment.

La instal·lació pot durar al voltat d'una hora depèn de molts factors. Les màquines virtuals tenen una característica com es desar l'estat actual de la màquina. Si intentem tancar la finestra un es troba la màquina virtual en sur tel següent:


Si triem desa l'estat de la màquina podem interrompre la instal·lació i continuar en altre moment. El que fa es una copia actual de la RAM, i de l'estat de la màquina i quan la reiniciem estem en el mateix lloc on ens havíem quedat, en principi pot fer-se en qualsevol moment però es millor quan esta esperant una resposta.







dimarts, 11 de desembre del 2012

Configuracions per l'instal·lació del UbuntuServer


Abans d'instal·lar l'ubuntu server a la màquina virtual ens cladrà comprovar algunes configuracions:

1. Cal que el processador tingui la característica PAE. (Parametres/Sistema/Processador)



2. La configuració de xarxa la posarem amb la configuració d'Adaptador Pont




Amb aquesta característica la màquina virtual o convidada(GUEST) te accés a la mateixa xarxa que la maquina real o amfitrió (HOST)

Si la deixem en NAT el ordinador amfitrió fa de router a la màquina virtual, donat-li ell mateix una IP. Amb aquesta configuració no es poden veure les màquines virtuals de diferents ordinadors a la xarxa real ja que estan ha diferents subxarxes.

3. Inserirem el CD d'instal·lació. En realitat el que fem es especificar directament on es l'arxiu .iso que ens hem descarregat.





Creació i localització d'una Maquina Virtual amb VirtualBox

Vaig a fer una màquina virtual per a després instal·lar un UbunutuServer.

Fer una màquina virtual amb el VirtualBox es senzill. Cal clicar a NOVA, posar que vas a fer una màquina LinuxUbuntu i deixar totes les caracteristiques per defecte. Despres ja es canviar si es necessari, es a dir, següent ...següent .... següent.....

ON hi es la màquina virtual ?????


Boto dret a sobre de la màquina virtual i obrim on posa "Mostra al gestor de fitxers" i ens obrirà el directori on es.

La màquina virtual es a una carpeta on hi ha un minim de dos arxius, un amb l'extensio .vdi  que es el disc dur i que anirà creixen a mesura que posem coses a ell. L'altre arxiu te l'extensió .vbox i es una arxiu xml que comte la configuració de la màquina virtual.

SI obrim l'arxiu xml amb un editor de text veurem una cosa semblant a aquesta:

      </CPU>
      <Memory RAMSize="512" PageFusion="false"/>
      <HID Pointing="USBTablet" Keyboard="PS2Keyboard"/>
      <HPET enabled="false"/>
      <Chipset type="PIIX3"/>
      <Boot>
        <Order position="1" device="Floppy"/>
        <Order position="2" device="DVD"/>
        <Order position="3" device="HardDisk"/>
        <Order position="4" device="None"/>
      </Boot>
      <Display VRAMSize="12" monitorCount="1" accelerate3D="false" accelerate2DVideo="false"/>
      <RemoteDisplay enabled="false" authType="Null"/>
      <BIOS>
        <ACPI enabled="true"/>
        <IOAPIC enabled="false"/>
        <Logo fadeIn="true" fadeOut="true" displayTime="0"/>
        <BootMenu mode="MessageAndMenu"/>
        <TimeOffset value="0"/>
        <PXEDebug enabled="false"/>

Es un petit extracte on podem veure la RAM, 512 que es un PIIX3, l'orde d'arrancada, etc... aques fitxer es genera amb les característiques que hem creat a la màquina. 

Amb aquestos dos arxius ja podem emportar-nos la màquina virtual a un USB, un disc de xarxa, etc...

A qualssevol ordinador on tinguem instal·lat el VirtualBox podrem fer servir aquesta màquina. De fet normalment fent doble clic al arxiu .vbox s'obri el VirtualBox i arranca la màquina. 



De fet ara seria aconsellabel esborrar la màquina virtual que acabem de crear, quan ens pregunti si esborrem els arxius li diguem que no. Després d'haver-la borrada la obrin des de la destinació definitiva (per exemple un USB), i comprovarem que torna a crear-la.

Es important conèixer on es la màquina virtual per aprofitar les principals avantatges, que poder portar-la amb USB, i poden fer una copia de seguretat en qualsevol moment.



divendres, 7 de desembre del 2012

Libnodave + libnodave JAVA + S7 200

Doncs hem funciona. He provat el libnodave test que es un program ja precompilat que només cal indicar el port i -s per stop i r per run

./testPPI -r /dev/ttyUSB0

funciona, de vegades no passa de stop a RUN, trac i torna a posar el USB i ja funciona segurament no tanca el port despres de leegir

I despres vaig provar la libnodave-java-0.1

també te uns programes detest i vaig tenir que importar tot el directori "libnodave-java-0.1" i vaig tenir que canviar 

import javax.com -----------per ----->     import gnu.io.CommPortIdentifier;

perquè la llibreria RXTXcomm que tinc es la 2.1, i ho han canviat per problemes legals amb la Oracle que fa el javax.comm la versio 2.0 queja no s'actualitza tenia el javax....

També he de posar els parametrés que a l'eclipse es posen en run configurations, i despres de executar-lo he de para el programa la consola de l'eclipse, així tanca el port i ja puc executar-lo novament.

Tret d'aques problema de tancar el port va molt be. 

Seguent pas veure quines ares de memoria puc escrire i llegir i així poder fer un escada amb un programa JAVA o amb un aplet. O si nomes es recollir dades un java script.....

Amb C i JAVA pots fer moltes coses. Un orientat a la màquina i l'altre a les comunicacions. Nomes cal dir que Android es basa en aquesta estructura inclus el objetive-c de Apple, la mateixa paraula hodiu en que es basa. Petits programes amb C que siguin rapits i d'acces directe al sistema operatiu, de fet el mateix sistema operatiu està en C. I despres amb el JAVA les comunicacions (els entorns grafics tambe es un sistema de comunicació en esta cas home-màquina).
 Aquestos Nadals faré algun programeta amb C-JAVA.

Altra cosa que he de fer es captures de pantalla. Acustumbrar-me a quan descobreix alguna osa important o un proces fer captures de pantalla i millorar aquest cutre blog.

Supose que fent mes entrades m donaré compte de les errades i les anirè corregint. L'errada més gran es no posar imatges com ara captures de pantalla que son molt facils de fer.

Fins altra...




dijous, 6 de desembre del 2012

Programació JAVA port serie

Feia temps vaig programar el port sèrie amb java. Després ho vaig abandonar perquè el java hem costa, i pareixia que no tenia molt de futur, que era lent, que perquè utilitzar-lo en compte de programar amb altres llenguatges mes "Potents" com el QT i el C++, però si el JAVA es complicat encara ho es més el C++
Les llibreries QT semblaven que anaven a mes, els symbian, el slinux, el KDE.... despres Nokia es fa amb QT i despres Microsoft amb Nokia.

Però paral·lelament el JAVA el compra Oracle. I sobretot el que ara a canviat el panorama de JAVA es el Android. Principalment es programa amb JAVA escara que no es el JAVA de Oracle(Sun), no funciona tampoc amb la màquina virtual .class però el codi es pràcticament el mateix.

I JAVA torna a l'atac. Mentre que QT(C++) sembla que retrocedeix.


  1. JavaScript
  2. Java
  3. PHP
  4. Python
  5. Ruby
  6. C#
  7. C++
  8. C
  9. Objective-C
  10. Shell
Deixant de banda les estes qüestions que tampoc porten a cap lloc. Amb el curs d'Android que estic fent amb la nova perspectiva veig l'util de programar amb JAVA i se es necessari afegir una biblioteca en C, com es el cas del que acabe de fer amb el port serie.

Per utilitzar el port serie amb l'ubuntu i l'eclipse fan falt dos arxius:

librxtxSerial.so"  del directori "i686-unknown-linux-gnu" del arxiu "rxtx-2.1-7-bins-r2"

Aquesta llibreria està escrita en C i compilada amb el gcc en windows o inclus en android caldrà (a més de ser root) posar-la a la màquina on executem el programa i ja està. O portar-la el programa a la seva distribució com fa el programa del LOGO!.

Una vegada em fet això cal carregar les classes al jre que utilitzarem al programa. 

RXTXcomm.jar

Despres arranquem el eclipse i ja ens surt el RXTXcomm.jar però aquí he tingut algun problemeta, l'eclise no trobava els



import gnu.io.CommPort;
import gnu.io.CommPortIdentifier;
import gnu.io.SerialPort;


Ho vaig solucionar barrant tota la llibreria JRE i tornat a "add library" el JRE de nou i ja funciona. 

connect("/dev/ttyUSB0");

A part del nom que ha de portar obligatòriament el /dev tambe cal tenir permisos

sudo adduser usuari dialout

Hem de afegir el usuari normal al grup dialout que es que te permis per escriure i llegir del port serie

I aqui està el programa que es una mena de putty de la consola que al testes que tinc hem cumunique i en retorna la temperatura quan li envie el return.

El proxim repte es comunicar-me amb el S7-200......



  



import gnu.io.CommPort;
import gnu.io.CommPortIdentifier;
import gnu.io.SerialPort;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class JTCom
{
   public JTCom()
   {
       super();
   }
   
   void connect ( String portName ) throws Exception
   {
       CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier(portName);
       if ( portIdentifier.isCurrentlyOwned() )
       {
           System.out.println("Error: Port is currently in use");
       }
       else
       {
           CommPort commPort = portIdentifier.open(this.getClass().getName(),2000);
           
           if ( commPort instanceof SerialPort )
           {
               SerialPort serialPort = (SerialPort) commPort;
               serialPort.setSerialPortParams(1200,SerialPort.DATABITS_7,SerialPort.STOPBITS_2,SerialPort.PARITY_NONE);
               
               InputStream in = serialPort.getInputStream();
               OutputStream out = serialPort.getOutputStream();
               
               (new Thread(new SerialReader(in))).start();
               (new Thread(new SerialWriter(out))).start();

           }
           else
           {
               System.out.println("Error: Only serial ports are handled by this example.");
           }
       }     
   }
   
   /** */
   public static class SerialReader implements Runnable 
   {
       InputStream in;
       
       public SerialReader ( InputStream in )
       {
           this.in = in;
       }
       
       public void run ()
       {
           byte[] buffer = new byte[1024];
           int len = -1;
           try
           {
               while ( ( len = this.in.read(buffer)) > -1 )
               {
                   System.out.print(new String(buffer,0,len));
               }
           }
           catch ( IOException e )
           {
               e.printStackTrace();
           }            
       }
   }

   /** */
   public static class SerialWriter implements Runnable 
   {
       OutputStream out;
       
       public SerialWriter ( OutputStream out )
       {
           this.out = out;
       }
       
       public void run ()
       {
           try
           {                
               int c = 0;
               while ( ( c = System.in.read()) > -1 )
               {
                   this.out.write(c);
               }                
           }
           catch ( IOException e )
           {
               e.printStackTrace();
           }            
       }
   }
   
   public static void main ( String[] args )
   {
       try
       {
           (new JTCom()).connect("/dev/ttyUSB0");
       }
       catch ( Exception e )
       {
           // TODO Auto-generated catch block
           e.printStackTrace();
       }
   }
}

dimecres, 5 de desembre del 2012

UBUNTU unity + lxde-core

Tinc ara instal·lat el ubuntu 12.10. Si que he notat que va una mica lent. Encara que soc prou defensor del entorn, m'agrada molt al meu petit ordiandor (AcerONe) va una mica lent. Ara el que faig es:

Feina-Treball:  lxde-core  
Casa-Altres: Unity

Tinc tots dos i un es mes ràpid però menys atractiu i al reves.

EL que si he de dir per instal·lar nome el lxde ca fer

sudo at-get install lxde-core

I no instal·la coses adicionals, nomes el lxde que despre puc triar al inici del entorn grafic

El ubuntu server + lxde tambe es molt bona elecció per instal·lar-lo el mateix.