miércoles, 19 de junio de 2019

DHCP en Linux (configuración de clientes y servidores).

Vamos a ver como utilizar el mejor sistema para hacer DHCP tanto como cliente como servidor:

Cliente DHCP:

Para hacer que una máquina linux use IPs dadas por una servidor DHCP basta indicarle que use IP dinámica, lo que se consigue poniendo las siguientes líneas en /etc/sysconfig/network-scripts/ifcfg-eth0:
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
También hay que comentar la línea GATEWAY=... en el fichero /etc/sysconfig/network

Servidor DHCP.

Para hacer un servidor DHCP en linux debemos crear un fichero /etc/dhcpd.conf con una estructura similar al que ahora comento:


default-lease-time 7200;
max-lease-time 17200;
option subnet-mask 255.255.255.0; Máscara de red de los clientes
option broadcast-address 172.17.9.255; Dirección de broadcast
option routers 172.17.9.254; Dirección del router
option domain-name-servers 150.214.10.1, 150.214.10.2, 150.214.10.3; Los DNS que usarán los clientes
option domain-name "cpcbegin.local"; Dominio de nombres que usarán los clientes
subnet 172.17.9.0 netmask 255.255.255.0 {
   hardware ethernet 01:23:45:67:89:AB;
   fixed-address 172.17.9.2;

  range 172.17.9.3 172.17.9.99;
}
A la máquina que tenga como dirección física MAC 01:23:45:67:89:AB se le asignará la IP 172.17.9.2
Al resto se le irán asignando direcciones a partir de la 172.17.9.3 hasta la 172.17.9.99.

Una vez realizados los cambios iniciamos los servicios de una de las siguientes maneras:
  • /etc/rc.d/init.d/dhcpd start (forma temporal)
  • ntsysv (forma permanente).

miércoles, 12 de junio de 2019

Instalar LDCad en Ubuntu Mate 18.04 (con soporte para Tente 3D y Lego)

LDCad es otro editor del formato abierto LDraw para crear tus modelos TENTE y LEGO, está disponible nativo para GNU/Linux y Windows.

Vamos a instalarlo en mi Ubuntu Mate 18.04 y le vamos a añadir soporte Tente 3D.

 

Instalación

  1. Vamos a la sección Download y descargamos la última versión para GNU/Linux.
  2. Descomprimos el archivo:
    tar -xjvf LDCad-1-6b-Linux.tar.bz2
  3. Entramos en el directorio LDCad-1-6b-Linux y ejecutamos ./LDCad64 ó ./LDCad32 dependiendo si nuestro GNU/Linux es de 64 o 32 bits.

Soporte Tente 3D

LDCad permite tener más de una librería pero solo podemos usar una a la vez por lo que podemos añadir a la librería que trae de LEGO de serie, la de Tente 3D que previamente nos habremos bajado  y descomprimido en algún sitio.
Para ello:
  1. Seleccionamos las opciones:
    Prefs ► LDraw ► Search library paths ..
  2. Escribimos la ruta de nuestra librería y pulsamos el botón New.

Manejo

El programa es muy potente pero se maneja de manera muy diferente a MLCad por lo que hay que navegar por las diferentes opciones de menú para añadir las piezas deseadas.

Recomiendo echar un ojo a vídeos de youtube como el siguiente para hacerse una idea del funcionamiento del mismo.
También permite hacer animaciones.



Una manera más sencilla de tener este programa en tu GNU/Linux es mediante el script de instalación y configuración de aplicaciones LDraw Tente3d_installer que ya incorpora LDCad (solo Ubuntu, de momento).

miércoles, 5 de junio de 2019

Volver a usar tu altavoz interno con beep en Ubuntu o Debian

Las últimas versiones de GNU/Linux no cargan por defecto el módulo para hacer sonar el beeper, zumbador o altavoz interno del ordenador.
Para volverlo a escuchar hay que teclear los siguientes comandos:
sudo modprobe pcspkr
sudo apt-get install beep
A partir de este momento y hasta que reinicies puedes escuchar el zumbador tecleando beep.

Si quieres hacer el cambio permanente debes editar el archivo /etc/modprobe.d/blacklist.conf y comentar la línea que deshabilita del altavoz interno:
blacklist pcspkr
que quedaría como:
# blacklist pcspkr
Ya puedes volver a disfrutar del estridente y encantador sonido del altavoz interno ;-)

¡Ah! Si haciendo esto sigue sin funcionar puede que no lo tengas, algunos equipos son así de cutres, especialmente ciertos portátiles de dudosa calidad.

miércoles, 29 de mayo de 2019

Instalamos LAMP en Ubuntu 18.04, solucionamos el fallo con el socket y lo configuramos para Moodle 3.7

Instalamos los paquetes necesarios

sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql php-curl php-zip php-xml php-intl php-xmlrpc php-gd php-mbstring php-ldap php-pear php-soap

Reiniciamos la contraseña de mysql

Arrancamos el servidor

sudo service mysql start

Vamos a la carpeta del socket

cd /var/run

Hacemos una copia de seguridad del socket

sudo cp -rp ./mysqld ./mysqld.bak

Paramos el servidor

sudo service mysql stop

Restauramos el socket

sudo mv ./mysqld.bak ./mysqld

Iniciamos mysqld_safe

sudo mysqld_safe --skip-grant-tables --skip-networking &

Iniciamos el shell de mysql

mysql -u root

Cambiamos la contraseña

Elegimos la base de datos mysql
mysql> use mysql;
Hacemos las siguientes consultas:
mysql> update user set authentication_string=password('pontuclaveaqui') where user='root';
mysql> update user set plugin="mysql_native_password" where User='root';

Actualizamos los privilegios
mysql> flush privileges;
mysql> quit;

Salimos del modo seguro para entrar en el normal
sudo pkill mysqld
sudo service mysql start

Probamos que funciona bien:
mysql -u root -p

Nos debe pedir la contraseña.


Instalamos Moodle

  1. Creamos la tabla que vamos a usar en Moodle:
    CREATE DATABASE mymoodle CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  2. Salimos de mysql.
    quit;
  3. Descargamos la última versión de Moodle
  4. La descomprimimos en /var/www/html/moodle
  5. Damos permisos de escritura momentáneamente a /var/www
  6. Abrimos desde el navegador la página http://localhost/moodle
  7. Seguimos los pasos del asistente introduciendo la información que se nos va solicitando.
    El puerto de la base de datos y el socket unix no hay que introducirlo.
  8. No nos permitirá crear el archivo config.php así que creamos uno vacío con el contenido que nos indica.
  9. Quitamos los premisos de escritura que dimos a /var/www
  10. Volvemos a cargar la página http://localhost/moodle
  11. Seguimos los pasos del asistente hasta el final, nos pedirá los datos de la configuración del moodle.


Enlaces de interés

viernes, 24 de mayo de 2019

Menu para disquete de Amstrad CPC

Recupero un viejo programa Basic que usaba para poder cargar distintos programas que tuviera en un disquete con un menú como éste:


Nos podemos mover por las entradas con los cursores o el joystick y seleccionarla con las teclas ESPACIO, ENTER o el disparo 0 del joystick.
Este es el listado del programa:

10 REM Ejemplo Menu para seleccionar diversos programas en disquete.
20 MODE 1
30 PEN 1:PAPER 0
40 DIM B$(20)
50 cabecera$="EJEMPLO MENU DE DISCO (CPCBEGIN)"
60 X%=19-LEN(cabecera$)/2
70 ESPACIOS%=4+LEN(cabecera$)
80 PAPER 3
90 FOR Y%=1 TO 3
100 LOCATE X%,Y%:PRINT SPACE$(ESPACIOS%)
110 NEXT Y%
120 LOCATE X%,2
130 PRINT"  "+cabecera$
140 PAPER 0:READ Z%:FOR I%=1 TO Z%:READ a$,b$(i%):LOCATE 5,I%*(2+(z%>10))+5:PEN 2:PRINT USING"##";i%;:PRINT") ";:PEN 1:PRINT a$:NEXT i%
150 REM PEN 3:LOCATE 11,25:PRINT CHR$(164)+" 2019, MENSAJE COPYRIGHT";
160 opcion%=1
170 LOCATE 5,opcion%*(2+(z%>10))+5:PEN 0:PAPER 2:PRINT USING"##";opcion%;:PRINT") ";:a$="":WHILE a$="":a$=INKEY$:WEND
180 IF a$=CHR$(241) OR a$=CHR$(10) THEN LOCATE 5,opcion%*(2+(z%>10))+5:PAPER 0:PEN 2:PRINT USING"##";opcion%;:PRINT") ";:opcion%=opcion%+1:IF opcion%=Z%+1 THEN opcion%=Z%
190 IF a$=CHR$(240) OR a$=CHR$(11) THEN LOCATE 5,opcion%*(2+(z%>10))+5:PAPER 0:PEN 2:PRINT USING"##";opcion%;:PRINT") ";:opcion%=opcion%-1:IF opcion%=0 THEN opcion%=1
200 IF VAL("0"+a$)>0 THEN opcion%=VAL(a$):GOTO 230
210 IF a$<>CHR$(13) AND a$<>"X" AND a$<>" " THEN a$="":GOTO 170 ELSE 230
220 PRINT"Cargando..."b$(opcion%)
230 FOR j%=1 TO z%
240 PEN 2:PAPER 0
250 IF opcion%=j% THEN PRINT CHR$(24);
260 LOCATE 5,j%*(2+(z%>10))+5:PRINT USING"##";j%;:PRINT") ";
270 NEXT j%
280 PEN 1:PAPER 0:RUN B$(OPCION%)
290 END
300 'Use this syntax in DATA line:
310 'DATA number of programs,description 1,access 1,description 2,access 2,...
320 DATA 19,ALGEBRA,ALGEBRA.BAS,"BARAJA ESPANOLA",BARAJA.BAS,EDITOR DE CARACTERES,CARACTER.BAS,CRONOS I,CRONOS.BAS,IMPRIME DIRECTORIOS,DIR.BAS,DIRECCIONES Y TELEFONOS,DIRECCIO.BAS,CALCULO DIVISORES,DIVISOR.BAS,DEMO TINTAS,INKERS.BAS,TEST JOYSTICK
330 DATA JOYTEST.SPA,CALCULO NIF,NIF.SPA,PAGINADOR,PAGINAS.BAS,PIRAMIDE MALAGA,PIRAMIDE.BAS,NUMEROS PRIMOS,PRIMOS.BAS,QUIMICA JBL,QUIMICA.BAS,QUINIELA ALEATORIA,QUINIELA.BAS,TELEFONOS Y PREFIJOS,TELEFONO.BAS,TYPE AMSDOS,TYPE.BAS
340 DATA LEA ESTO,README.BAS,ENGLISH SOFTWARE,ENGLISH.BAS
350 'autosaving
360 SAVE"disc.bas",a

Si no queréis teclear todo esto, tenéis la última versión en mi github.

Para adaptarlo a tus necesidades basta con que cambies las lineas de DATA según lo que dice la linea 300, el primer dato es el número de programas.
También deberías cambiar el texto de la cabecera con el nombre que le des al disco o compilación.

Deben sobrar al menos 2K en el disquete para que quepa el programita.

Para grabarlo en un CPC real o emulado, recuerda que ya hemos visto como hacerlo con disquetes, inyectar código en un DSK con un editor de texto profesional. y que emuladores como RVM permiten inyectar y extraer archivos de las imágenes de disquetes muy fácilmente.

domingo, 19 de mayo de 2019

Tostar un archivo DSK en un disco de 3" desde la unidad de 3.5" del propio Amstrad CPC con dsk-cpc

Imagina que tu copia original de CP/M deja de funcionar (y todas las copias de seguridad que deberías haber hecho), ¿qué haces ahora? ¿cómo vas a hacer tareas habituales en el CPC como formatear disquetes?

La solución es estampar en un disco el archivo DSK del disco estropeado desde la unidad B del propio Amstrad, ¿cómo? con la utilidad dsk-cpc.

¿Qué necesito?


Preparando los discos de 3.5" en el PC

  • Copiamos la aplicación dsk-cpc a un disco de 3.5" en algún formato que lea el CPC tal y como vimos en un artículo anterior.
  • Formateamos el segundo disco de 3.5" como disco IBM de doble densidad:
    SistemaComando para formatear en doble densidad
    DOS/Windows unidad internaformat a: /t:80 /n:9 /v:dsks
    GNU/Linux unidad internafdformat /dev/fd0u720
    DOS/Windows unidad USBufiformat -f
    GNU/Linux unidad USBsudo ufiformat -f 720 -v /dev/sdd #sustituir sdd por lo que corresponda con la disquetera
  • Copiamos los dsk que queramos tostar en este segundo disco, arrastrándolos desde el explorador por ejemplo.

Nota para disqueteras USB

  • Para GNU/Linux: sustituir /dev/sdd por lo que corresponda según lo que nos diga el comando mount.
    ¡Ojo! Si nos equivocamos podemos machacar la información de otra unidad.
  • Para Windows: el driver de la disquetera y la versión del S.O. debe soportar discos de doble densidad.
  • Para ambos: la disquetera debe soportar discos de doble densidad (se puede comprobar con el comando ufiformat -i

Uso de dsk-cpc en el Amstrad CPC

  1. Encendemos la disquetera de 3.5" y el Amstrad CPC.
  2. Introducimos el disquete de 3" a machacar y el disco de 3.5" con el programa dsk-cpc.
  3. Seleccionamos la unidad B: con el comando:
    |B
  4. Ejecutamos dsk-cpc
    RUN"dsk-cpc
  5. Sacamos el disquete de 3.5" con dsk-cpc y lo sustituimos por el disquete con las imagenes DSK.
  6. Pulsamos 1 para seleccionar el DSK.
  7. Seleccionamos el dsk que queramos tostar.
  8. Seleccionamos 1 para tostar el dsk en el disco de 3".
  9. Cuando termine podemos reiniciar y probamos que funciona el disco de 3".
Advertencia: este procedimiento no funciona con todas las imágenes dsk, especialmente si están protegidas o tienen pistas extrañas.

martes, 14 de mayo de 2019

Instalar Marble en Ubuntu Mate 18.04

Marble es una excelente alternativa libre a Google Maps que además consume muchos menos recursos y da un resultado muy bueno.



Se puede instalar desde los repositorios oficiales de Ubuntu Mate con este comando:

sudo apt-get install marble-qt marble-plugins marble-maps marble-data libmarblewidget-qt5-23 libastro

Si quieres instalarla en otras distros consulta este artículo.