jueves, 20 de septiembre de 2018
lunes, 27 de agosto de 2018
Cambiar libre office al español (Tambien la corrección ortográfica) Ubuntu 18.04
Instalas esto desde terminal:
sudo apt-get install myspell-es libreoffice-java-common libreoffice-l10n-es
Luego de reiniciar, descargas esta mierda en donde quieras:
https://extensions.libreoffice.org/extensions/spanish-dictionaries/2.3/@@download/file/es_ANY.oxt
Luego abres libre officar y seleccionas español en todo lo que te salga en vas a Herramientas -> Gestor de extensiones y agregas el fichero es_ANY.oxt que acabas de agregar
Reinicias y listo
sudo apt-get install myspell-es libreoffice-java-common libreoffice-l10n-es
Luego de reiniciar, descargas esta mierda en donde quieras:
https://extensions.libreoffice.org/extensions/spanish-dictionaries/2.3/@@download/file/es_ANY.oxt
Luego abres libre officar y seleccionas español en todo lo que te salga en vas a Herramientas -> Gestor de extensiones y agregas el fichero es_ANY.oxt que acabas de agregar
Reinicias y listo
sábado, 18 de agosto de 2018
Instalar Android Studio Ubuntu 18.04
Primero instala las dependencias:
sudo apt install lib32z1 lib32ncurses5 lib32bz2-1.0 lib32stdc++6 libbz2-1.0:i386 lib32stdc++6 qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils
Luego instalar android studio
sudo apt install lib32z1 lib32ncurses5 lib32bz2-1.0 lib32stdc++6 libbz2-1.0:i386 lib32stdc++6 qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils
Luego instalar android studio
lunes, 23 de julio de 2018
domingo, 15 de julio de 2018
lunes, 9 de julio de 2018
Manejo de modem analógico 56k en linux
En esta entrada veremos un resumen del uso de un modem analógico en linux. (Esta es una guía para mi, así que me sabe a culo si no está bien explicada)
Primero vemos el model del dispositivo. En mi caso es un USR5637.
Luego nos conectamos al puerto y hacemos una prueba escribiendo AT+GCI?
El dispositivo debería responder con el código Annex A de T.35 de nuestro país, que en mi caso es BB (Venezuela). Puedes ver la lista completa de códigos de paises aquí:
http://www.katpatuka.org/pub/doc/t.35.html
Cabe destacar que el carácter de finalización es el retorno de carro (\r)
Usando NCID
Una vez instalado puedes probar que NCID funcione correctamente con el siguiente comando:
ncidd -Dv3
Probado en Ubuntu 17.10 x86_64
Ejemplo: Para reiniciar de fábrica el comando es &F0 entonces se escribe AT&F0\r
Primero vemos el model del dispositivo. En mi caso es un USR5637.
Luego nos conectamos al puerto y hacemos una prueba escribiendo AT+GCI?
El dispositivo debería responder con el código Annex A de T.35 de nuestro país, que en mi caso es BB (Venezuela). Puedes ver la lista completa de códigos de paises aquí:
http://www.katpatuka.org/pub/doc/t.35.html
Cabe destacar que el carácter de finalización es el retorno de carro (\r)
Probando
Llamar a un número ATD<numero>.
Ejemplo para llamar al número 04141234567
ATD04141234567\rUsando NCID
El paquete NCID nos da un conjunto de facilidades para el manejo del modem usb.
Lo descargamos desde aquí: https://sourceforge.net/projects/ncid/files/ncid/
En mi caso descargué el paquete ncid_1.7-3_amd64.deb y ncid-client_1.7-3_all.deb porque uso Ubuntu 64 bits.
Probado en Ubuntu 17.10 x86_64
Otros:
Comandos
Todos los comandos inician con el prefijo AT siguiendo los estandares: T-REC-V.250-200307Ejemplo: Para reiniciar de fábrica el comando es &F0 entonces se escribe AT&F0\r
Soporte de audio
Para que este dispositivo soporte audio debe tener el firmware en la versión 1.2.23. Para ello te recomiendo que actualices desde Windows. Puedes descargar el firmware desde aquí.
Para comprobar la versión del firmware debes escribir:
ATI3
U.S. Robotics 56K FAX USB V1.2.23
OK
Convertir de WAV a rmf
sox announce.wav -t pvf -c 1 -r 8000 -b 8 announce.pvf
pvftormd V253modem 8 announce.pvf announce.rmd
Referencias:
http://www.xmodus.ch/Downloads/XM3000S/XM3000S-A00-103.pdfjueves, 5 de julio de 2018
Instalar paquetes en alphine linux
Para instalar git por ejemplo:
primero debes hacer updat
apk update
Luego buscas el nombre de paquete aqui :
https://pkgs.alpinelinux.org/packages?name=git&branch=edge
https://pkgs.alpinelinux.org/packages?name=git&branch=edge
Al final instalas
apk add git
miércoles, 4 de julio de 2018
unpack, edit and repack .deb package
Using pluma editor:
fakeroot sh -c '
mkdir tmp
dpkg-deb -R *.deb tmp
pluma tmp/DEBIAN/control
dpkg-deb -b tmp fixed.deb
'
fakeroot sh -c '
mkdir tmp
dpkg-deb -R *.deb tmp
pluma tmp/DEBIAN/control
dpkg-deb -b tmp fixed.deb
'
martes, 3 de julio de 2018
setup and teardown in Golang test
The best article
https://blog.karenuorteva.fi/go-unit-test-setup-and-teardown-db1601a796f2
https://blog.karenuorteva.fi/go-unit-test-setup-and-teardown-db1601a796f2
jueves, 7 de junio de 2018
How to increase SSH Connection timeout?
Add
ClientAliveInterval 30
ClientAliveCountMax 2180
To /etc/ssh/ssh_config
ClientAliveInterval 30
ClientAliveCountMax 2180
To /etc/ssh/ssh_config
viernes, 18 de mayo de 2018
lunes, 23 de abril de 2018
Best way to kill a thread class in Python
class CloudInteractor(threading.Thread):
blablablabla
c = CloudInteractor()
c.start()
# Kill
del c
Instalar dependencias para Android Studio Ubuntu 17.10
apt install lib32z1 lib32ncurses5 lib32stdc++6 libbz2-1.0:i386 libbz2-dev:i386 libbz2-1.0 libbz2-dev
miércoles, 18 de abril de 2018
Run mqtt-spy in Ubuntu 17.10
first install javafx deps
sudo apt-get install openjfx
Then download the latest jar and put in /opt
Download: https://github.com/eclipse/paho.mqtt-spy/wiki/Downloads
Run!
sudo apt-get install openjfx
Then download the latest jar and put in /opt
Download: https://github.com/eclipse/paho.mqtt-spy/wiki/Downloads
Run!
miércoles, 11 de abril de 2018
Publish / Share / Register your own library in PlatformIO Library Registry
Step 1: publish your project on github
You must first create your manifest file that must be called "library.json" and it must be in the root of the project
In my case it has the following structure:
{ "name": "EasyOta", "keywords": "ota, over,to, air,esp8266", "description": " The easiest way to implement ota on an esp8266 based chip using an HTTP server", "repository": { "type": "git", "url": "https://github.com/Eitol/EasyOta.git" }, "authors": [ { "name": "Hector Oliveros", "email": "hector.oliveros.leon@gmail.com", "maintainer": true } ], "license": "MIT", "version": "1.0", "frameworks": "arduino", "platforms": "espressif8266" }
Step 2: copy the url of the raw project
The url is some like this:
https://raw.githubusercontent.com/GITHUB_USER/PROJECT/master/library.json
Example:
For my project with url = https://github.com/Eitol/EasyOta
Then, the url is:
https://raw.githubusercontent.com/Eitol/EasyOta/master/library.json
Step 3: Use the url to register your library
The command is:
platformio lib register [MANIFEST_URL]
example:
platformio lib register https://raw.githubusercontent.com/Eitol/EasyOta/master/library.json
lunes, 9 de abril de 2018
FIX: No output from qDebug
Si qDebug no muestra nada en Qt 5.9 entonces debes crear un fichero qtlogging.ini (vacio) en el directorio home:
.config/QtProject/qtlogging.ini
lunes, 2 de abril de 2018
Raspberry PI 3 Composite video problem
Si conectando la raspberry al television usando un cable plug - RCA ves una imagen como la siguiente:
es porque el cable que estas usando no es el adecuado y tiene intercambiado el pin de tierra con el de video:
Solución:
Solución cara pero fácil: Comprar un cable que sea compatible que transmita el video por el último segmento (como los de Apple)
Solución fea: Soldar los cables a la rb: https://www.raspberrypi.org/forums/viewtopic.php?t=181288
Solución fácil y barata: Con un conector dc hembra y otro macho puedes pasar intercambiar la señal de video por la de tierra (Esta me funcionó perfecto)
Pueder ver mas info aquí:
miércoles, 7 de marzo de 2018
viernes, 2 de marzo de 2018
Usar una Raspberry Pi como programador AVR
En esta entrada veremos el proceso de creación de un Programador Remoto de AVR.
Componentes
Se utilizarán los siguientes componentes:
- Una Raspberry Pi 3 Model B con Raspbian 9 como SO
(También se probó en una Orange Pi con Ubuntu server 16.04)
- Un Arduino Uno o un Mega 2560
Proceso
El proceso sería el siguiente:
1- Un usuario carga el código compilado (hex) a firebase
2- Firebase envía la notificación de cambio a la raspberry (Utilizando la base de datos en tiempo real)
3- La raspberry descarga el código
4- La raspberry sube el código al Arduino
Conexiones
Puedes alimentar el Arduino por USB o por los pines GND y VCC del ICSP.
Puedes cambiar los pines a utilizar, pero no puedes usar el BCM 4 (PIN 7) que por alguna razón da problemas (Ver más info aquí)
Note que las conexiones en la Raspberry son a los pines BCM.
Arduino ICSP | Raspberry BCM
reset | 12; # Pin 32
sck | 11; # Pin 23
mosi | 10; # Pin 19
miso | 9; # Pin 21
Componentes
Se utilizarán los siguientes componentes:
- Una Raspberry Pi 3 Model B con Raspbian 9 como SO
(También se probó en una Orange Pi con Ubuntu server 16.04)
- Un Arduino Uno o un Mega 2560
Proceso
El proceso sería el siguiente:
1- Un usuario carga el código compilado (hex) a firebase
2- Firebase envía la notificación de cambio a la raspberry (Utilizando la base de datos en tiempo real)
3- La raspberry descarga el código
4- La raspberry sube el código al Arduino
Conexiones
Puedes alimentar el Arduino por USB o por los pines GND y VCC del ICSP.
Puedes cambiar los pines a utilizar, pero no puedes usar el BCM 4 (PIN 7) que por alguna razón da problemas (Ver más info aquí)
Note que las conexiones en la Raspberry son a los pines BCM.
Arduino ICSP | Raspberry BCM
reset | 12; # Pin 32
sck | 11; # Pin 23
mosi | 10; # Pin 19
miso | 9; # Pin 21
Conexiones Arduino -> Raspberry ICSP |
Así quedó |
Instalando avrdude
La versión 6.2 y 6.3 de avrdude por alguna razón muy rara no está habilitada para usar los GPIO para cargar código (linuxgpio) y no funciona bien. Pude hacerlo funcionar con la versión 6.1
Debes ejecutar lo siguiente:
sudo apt-get install bison flex libusb-dev gcc gcc-avr avr-libc libelf-dev libusb-1.0-0-dev libusb-1.0-0-dev libftdi1-dev libftdi-dev libhidapi-libusb libevent-pthreads-2.0-5 libpthread-workqueue0 -y
wget http://ftp.nchc.org.tw/Unix/NonGNU/avrdude/avrdude-6.1.tar.gz
tar xfv avrdude-6.1.tar.gz
cd avrdude-6.1
./configure --enable-linuxgpio
make -j4
sudo make install
Probando la instalación de avrdude
Copias el fichero avrdude.conf al home del usuario
cp /usr/local/etc/avrdude.conf ~/avrdude_gpio.conf
Luego abres el fichero que acabas de copiar
nano ~/avrdude_gpio.conf
y le agregas esto al final
programmer
id = "pi_1";
desc = "Use the Linux sysfs interface to bitbang GPIO lines";
type = "linuxgpio";
reset = 12;
sck = 11;
mosi = 10;
miso = 9;
;
Luego probamos la conexión con el Arduino ejecutando lo siguiente:
sudo avrdude -p atmega2560 -C avrdude_gpio.conf -c pi_1 -v
Deberías ver algo así en la consola:
Y el arduino debe parpadear como en el siguiente video:
Probando la carga del código
Primero debemos generar el codigo compilado con extensión .hex.
Para ello abrimos Arduino IDE en cualquier PC (no necesariamente en la raspberry) y entramos en Preferencias y marcamos lo siguiente:
Para ello abrimos Arduino IDE en cualquier PC (no necesariamente en la raspberry) y entramos en Preferencias y marcamos lo siguiente:
Luego compilamos (Estoy usando el ejemplo de Blink) y buscamos el archivo .hex y lo copiamos y pegamos en el home de la raspberry al lado del fichero avrdude_gpio.conf
Para subir el codigo al Arduino debes ejecutar el siguiente comando:
sudo avrdude -p atmega2560 -C ~/avrdude_gpio.conf -c pi_1 -v -U flash:w:NOMBRE_DEL_HEX:i
En nuestro caso como el fichero se llama Blink.ino.hex:
sudo avrdude -p atmega2560 -C ~/avrdude_gpio.conf -c pi_1 -v -U flash:w:Blink.ino.hex:i
NOTA: Debes tener MUCHO cuidado con ese comando y el parámetro "p". He cargado por error un codigo compilado para atmega2561 en mi atmega2560 y se ha brickeado.
Referencias:
https://learn.adafruit.com/program-an-avr-or-arduino-using-raspberry-pi-gpio-pins
http://ozzmaker.com/program-avr-using-raspberry-pi-gpio/
http://blog.stevemarple.co.uk/2012/07/avrarduino-isp-programmer-using.html
FIX: ImportError: cannot import name 'opentype'
Fix this problem:
File "/usr/local/lib/python3.5/dist-packages/oauth2client/_pure_python_crypt.py", line 24, in <module>
from pyasn1_modules.rfc2459 import Certificate
File "/usr/local/lib/python3.5/dist-packages/pyasn1_modules/rfc2459.py", line 20, in <module>
from pyasn1.type import opentype
ImportError: cannot import name 'opentype'
SOLUTION:
pip3 install --upgrade pyasn1-modules
File "/usr/local/lib/python3.5/dist-packages/oauth2client/_pure_python_crypt.py", line 24, in <module>
from pyasn1_modules.rfc2459 import Certificate
File "/usr/local/lib/python3.5/dist-packages/pyasn1_modules/rfc2459.py", line 20, in <module>
from pyasn1.type import opentype
ImportError: cannot import name 'opentype'
SOLUTION:
pip3 install --upgrade pyasn1-modules
Saber si el código se esta ejecutando en una Raspberry Pi
Estoy haciendo un código y deseo saber si se está ejecutando en una Orange Pi o en una Raspberry Pi
Para poder determinarlo se debe usar os.uname()
import os
os.uname()
Para la raspberry retorna:
posix.uname_result(sysname='Linux', nodename='raspberrypi', release='4.9.59-v7+', version='#1047 SMP Sun Oct 29 12:19:23 GMT 2017', machine='armv7l')
Para la orange:
posix.uname_result(sysname='Linux', nodename='OrangePI', release='3.4.39', version='#46 SMP PREEMPT Wed Nov 9 09:50:08 CST 2016', machine='armv7l')os.uname()
Para poder determinarlo se debe usar os.uname()
import os
os.uname()
Para la raspberry retorna:
posix.uname_result(sysname='Linux', nodename='raspberrypi', release='4.9.59-v7+', version='#1047 SMP Sun Oct 29 12:19:23 GMT 2017', machine='armv7l')
Para la orange:
posix.uname_result(sysname='Linux', nodename='OrangePI', release='3.4.39', version='#46 SMP PREEMPT Wed Nov 9 09:50:08 CST 2016', machine='armv7l')os.uname()
posix.uname_result(sysname='Linux', nodename='OrangePI', release='3.4.39', version='#46 SMP PREEMPT Wed Nov 9 09:50:08 CST 2016', machine='armv7l')
Best way to generate requeriments.txt
La mejor forma de generar un fichero requirements.txt
es con pipreqs
$ pip install pipreqs
http://www.idiotinside.com/2015/05/10/python-auto-generate-requirements-txt/
es con pipreqs
$ pip install pipreqs
$ pipreqs /path/to/project
Más info:http://www.idiotinside.com/2015/05/10/python-auto-generate-requirements-txt/
jueves, 1 de marzo de 2018
Valid AVRDUDE Part model list
Valid parts are:
uc3a0512 = AT32UC3A0512 [/home/pi/avrdude_gpio.conf:14158]
c128 = AT90CAN128 [/home/pi/avrdude_gpio.conf:3255]
c32 = AT90CAN32 [/home/pi/avrdude_gpio.conf:3639]
c64 = AT90CAN64 [/home/pi/avrdude_gpio.conf:3447]
pwm2 = AT90PWM2 [/home/pi/avrdude_gpio.conf:8684]
pwm2b = AT90PWM2B [/home/pi/avrdude_gpio.conf:8877]
pwm3 = AT90PWM3 [/home/pi/avrdude_gpio.conf:8867]
pwm316 = AT90PWM316 [/home/pi/avrdude_gpio.conf:8904]
pwm3b = AT90PWM3B [/home/pi/avrdude_gpio.conf:8891]
1200 = AT90S1200 [/home/pi/avrdude_gpio.conf:1716]
2313 = AT90S2313 [/home/pi/avrdude_gpio.conf:1945]
2333 = AT90S2333 [/home/pi/avrdude_gpio.conf:2058]
2343 = AT90S2343 [/home/pi/avrdude_gpio.conf:2186]
4414 = AT90S4414 [/home/pi/avrdude_gpio.conf:1832]
4433 = AT90S4433 [/home/pi/avrdude_gpio.conf:2310]
4434 = AT90S4434 [/home/pi/avrdude_gpio.conf:2434]
8515 = AT90S8515 [/home/pi/avrdude_gpio.conf:2517]
8535 = AT90S8535 [/home/pi/avrdude_gpio.conf:2631]
usb1286 = AT90USB1286 [/home/pi/avrdude_gpio.conf:11466]
usb1287 = AT90USB1287 [/home/pi/avrdude_gpio.conf:11657]
usb162 = AT90USB162 [/home/pi/avrdude_gpio.conf:11670]
usb646 = AT90USB646 [/home/pi/avrdude_gpio.conf:11262]
usb647 = AT90USB647 [/home/pi/avrdude_gpio.conf:11453]
usb82 = AT90USB82 [/home/pi/avrdude_gpio.conf:11857]
m103 = ATmega103 [/home/pi/avrdude_gpio.conf:2752]
m128 = ATmega128 [/home/pi/avrdude_gpio.conf:3075]
m1280 = ATmega1280 [/home/pi/avrdude_gpio.conf:9693]
m1281 = ATmega1281 [/home/pi/avrdude_gpio.conf:9883]
m1284 = ATmega1284 [/home/pi/avrdude_gpio.conf:4451]
m1284p = ATmega1284P [/home/pi/avrdude_gpio.conf:4645]
m1284rfr2 = ATmega1284RFR2 [/home/pi/avrdude_gpio.conf:10318]
m128rfa1 = ATmega128RFA1 [/home/pi/avrdude_gpio.conf:10103]
m128rfr2 = ATmega128RFR2 [/home/pi/avrdude_gpio.conf:10206]
m16 = ATmega16 [/home/pi/avrdude_gpio.conf:3832]
m161 = ATmega161 [/home/pi/avrdude_gpio.conf:5977]
m162 = ATmega162 [/home/pi/avrdude_gpio.conf:4837]
m163 = ATmega163 [/home/pi/avrdude_gpio.conf:5035]
m164p = ATmega164P [/home/pi/avrdude_gpio.conf:4011]
m168 = ATmega168 [/home/pi/avrdude_gpio.conf:7723]
m168p = ATmega168P [/home/pi/avrdude_gpio.conf:7912]
m169 = ATmega169 [/home/pi/avrdude_gpio.conf:5193]
m16u2 = ATmega16U2 [/home/pi/avrdude_gpio.conf:12234]
m2560 = ATmega2560 [/home/pi/avrdude_gpio.conf:9896]
m2561 = ATmega2561 [/home/pi/avrdude_gpio.conf:10090]
m2564rfr2 = ATmega2564RFR2 [/home/pi/avrdude_gpio.conf:10308]
m256rfr2 = ATmega256RFR2 [/home/pi/avrdude_gpio.conf:10157]
m32 = ATmega32 [/home/pi/avrdude_gpio.conf:5800]
m324p = ATmega324P [/home/pi/avrdude_gpio.conf:4035]
m324pa = ATmega324PA [/home/pi/avrdude_gpio.conf:4227]
m325 = ATmega325 [/home/pi/avrdude_gpio.conf:12604]
m3250 = ATmega3250 [/home/pi/avrdude_gpio.conf:12985]
m328 = ATmega328 [/home/pi/avrdude_gpio.conf:8113]
m328p = ATmega328P [/home/pi/avrdude_gpio.conf:8298]
m329 = ATmega329 [/home/pi/avrdude_gpio.conf:5375]
m3290 = ATmega3290 [/home/pi/avrdude_gpio.conf:5574]
m3290p = ATmega3290P [/home/pi/avrdude_gpio.conf:5588]
m329p = ATmega329P [/home/pi/avrdude_gpio.conf:5560]
m32u2 = ATmega32U2 [/home/pi/avrdude_gpio.conf:12046]
m32u4 = ATmega32U4 [/home/pi/avrdude_gpio.conf:11071]
m406 = ATMEGA406 [/home/pi/avrdude_gpio.conf:14496]
m48 = ATmega48 [/home/pi/avrdude_gpio.conf:7323]
m48p = ATmega48P [/home/pi/avrdude_gpio.conf:7510]
m64 = ATmega64 [/home/pi/avrdude_gpio.conf:2892]
m640 = ATmega640 [/home/pi/avrdude_gpio.conf:9503]
m644 = ATmega644 [/home/pi/avrdude_gpio.conf:4243]
m644p = ATmega644P [/home/pi/avrdude_gpio.conf:4434]
m644rfr2 = ATmega644RFR2 [/home/pi/avrdude_gpio.conf:10328]
m645 = ATmega645 [/home/pi/avrdude_gpio.conf:12795]
m6450 = ATmega6450 [/home/pi/avrdude_gpio.conf:12997]
m649 = ATmega649 [/home/pi/avrdude_gpio.conf:5601]
m6490 = ATmega6490 [/home/pi/avrdude_gpio.conf:5787]
m64rfr2 = ATmega64RFR2 [/home/pi/avrdude_gpio.conf:10219]
m8 = ATmega8 [/home/pi/avrdude_gpio.conf:6117]
m8515 = ATmega8515 [/home/pi/avrdude_gpio.conf:6278]
m8535 = ATmega8535 [/home/pi/avrdude_gpio.conf:6436]
m88 = ATmega88 [/home/pi/avrdude_gpio.conf:7523]
m88p = ATmega88P [/home/pi/avrdude_gpio.conf:7710]
m8u2 = ATmega8U2 [/home/pi/avrdude_gpio.conf:12422]
t10 = ATtiny10 [/home/pi/avrdude_gpio.conf:14451]
t11 = ATtiny11 [/home/pi/avrdude_gpio.conf:1211]
t12 = ATtiny12 [/home/pi/avrdude_gpio.conf:1275]
t13 = ATtiny13 [/home/pi/avrdude_gpio.conf:1408]
t15 = ATtiny15 [/home/pi/avrdude_gpio.conf:1583]
t1634 = ATtiny1634 [/home/pi/avrdude_gpio.conf:14184]
t20 = ATtiny20 [/home/pi/avrdude_gpio.conf:14461]
t2313 = ATtiny2313 [/home/pi/avrdude_gpio.conf:8311]
t24 = ATtiny24 [/home/pi/avrdude_gpio.conf:10339]
t25 = ATtiny25 [/home/pi/avrdude_gpio.conf:8957]
t26 = ATtiny26 [/home/pi/avrdude_gpio.conf:6594]
t261 = ATtiny261 [/home/pi/avrdude_gpio.conf:6751]
t4 = ATtiny4 [/home/pi/avrdude_gpio.conf:14407]
t40 = ATtiny40 [/home/pi/avrdude_gpio.conf:14478]
t4313 = ATtiny4313 [/home/pi/avrdude_gpio.conf:8500]
t43u = ATtiny43u [/home/pi/avrdude_gpio.conf:10892]
t44 = ATtiny44 [/home/pi/avrdude_gpio.conf:10523]
t45 = ATtiny45 [/home/pi/avrdude_gpio.conf:9139]
t461 = ATtiny461 [/home/pi/avrdude_gpio.conf:6942]
t5 = ATtiny5 [/home/pi/avrdude_gpio.conf:14424]
t84 = ATtiny84 [/home/pi/avrdude_gpio.conf:10707]
t85 = ATtiny85 [/home/pi/avrdude_gpio.conf:9320]
t861 = ATtiny861 [/home/pi/avrdude_gpio.conf:7133]
t88 = ATtiny88 [/home/pi/avrdude_gpio.conf:7925]
t9 = ATtiny9 [/home/pi/avrdude_gpio.conf:14434]
x128a1 = ATxmega128A1 [/home/pi/avrdude_gpio.conf:13478]
x128a1d = ATxmega128A1revD [/home/pi/avrdude_gpio.conf:13494]
x128a1u = ATxmega128A1U [/home/pi/avrdude_gpio.conf:13504]
x128a3 = ATxmega128A3 [/home/pi/avrdude_gpio.conf:13515]
x128a3u = ATxmega128A3U [/home/pi/avrdude_gpio.conf:13525]
x128a4 = ATxmega128A4 [/home/pi/avrdude_gpio.conf:13536]
x128a4u = ATxmega128A4U [/home/pi/avrdude_gpio.conf:13594]
x128b1 = ATxmega128B1 [/home/pi/avrdude_gpio.conf:13647]
x128b3 = ATxmega128B3 [/home/pi/avrdude_gpio.conf:13706]
x128c3 = ATxmega128C3 [/home/pi/avrdude_gpio.conf:13405]
x128d3 = ATxmega128D3 [/home/pi/avrdude_gpio.conf:13458]
x128d4 = ATxmega128D4 [/home/pi/avrdude_gpio.conf:13468]
x16a4 = ATxmega16A4 [/home/pi/avrdude_gpio.conf:13136]
x16a4u = ATxmega16A4U [/home/pi/avrdude_gpio.conf:13063]
x16c4 = ATxmega16C4 [/home/pi/avrdude_gpio.conf:13116]
x16d4 = ATxmega16D4 [/home/pi/avrdude_gpio.conf:13126]
x16e5 = ATxmega16E5 [/home/pi/avrdude_gpio.conf:14053]
x192a1 = ATxmega192A1 [/home/pi/avrdude_gpio.conf:13780]
x192a3 = ATxmega192A3 [/home/pi/avrdude_gpio.conf:13796]
x192a3u = ATxmega192A3U [/home/pi/avrdude_gpio.conf:13806]
x192c3 = ATxmega192C3 [/home/pi/avrdude_gpio.conf:13717]
x192d3 = ATxmega192D3 [/home/pi/avrdude_gpio.conf:13770]
x256a1 = ATxmega256A1 [/home/pi/avrdude_gpio.conf:13880]
x256a3 = ATxmega256A3 [/home/pi/avrdude_gpio.conf:13896]
x256a3b = ATxmega256A3B [/home/pi/avrdude_gpio.conf:13917]
x256a3bu = ATxmega256A3BU [/home/pi/avrdude_gpio.conf:13927]
x256a3u = ATxmega256A3U [/home/pi/avrdude_gpio.conf:13906]
x256c3 = ATxmega256C3 [/home/pi/avrdude_gpio.conf:13817]
x256d3 = ATxmega256D3 [/home/pi/avrdude_gpio.conf:13870]
x32a4 = ATxmega32A4 [/home/pi/avrdude_gpio.conf:13225]
x32a4u = ATxmega32A4U [/home/pi/avrdude_gpio.conf:13152]
x32c4 = ATxmega32C4 [/home/pi/avrdude_gpio.conf:13205]
x32d4 = ATxmega32D4 [/home/pi/avrdude_gpio.conf:13215]
x32e5 = ATxmega32E5 [/home/pi/avrdude_gpio.conf:14105]
x384c3 = ATxmega384C3 [/home/pi/avrdude_gpio.conf:13938]
x384d3 = ATxmega384D3 [/home/pi/avrdude_gpio.conf:13991]
x64a1 = ATxmega64A1 [/home/pi/avrdude_gpio.conf:13325]
x64a1u = ATxmega64A1U [/home/pi/avrdude_gpio.conf:13341]
x64a3 = ATxmega64A3 [/home/pi/avrdude_gpio.conf:13352]
x64a3u = ATxmega64A3U [/home/pi/avrdude_gpio.conf:13362]
x64a4 = ATxmega64A4 [/home/pi/avrdude_gpio.conf:13373]
x64a4u = ATxmega64A4U [/home/pi/avrdude_gpio.conf:13241]
x64b1 = ATxmega64B1 [/home/pi/avrdude_gpio.conf:13383]
x64b3 = ATxmega64B3 [/home/pi/avrdude_gpio.conf:13394]
x64c3 = ATxmega64C3 [/home/pi/avrdude_gpio.conf:13294]
x64d3 = ATxmega64D3 [/home/pi/avrdude_gpio.conf:13305]
x64d4 = ATxmega64D4 [/home/pi/avrdude_gpio.conf:13315]
x8e5 = ATxmega8E5 [/home/pi/avrdude_gpio.conf:14001]
ucr2 = deprecated, use 'uc3a0512' [/home/pi/avrdude_gpio.conf:14174]
uc3a0512 = AT32UC3A0512 [/home/pi/avrdude_gpio.conf:14158]
c128 = AT90CAN128 [/home/pi/avrdude_gpio.conf:3255]
c32 = AT90CAN32 [/home/pi/avrdude_gpio.conf:3639]
c64 = AT90CAN64 [/home/pi/avrdude_gpio.conf:3447]
pwm2 = AT90PWM2 [/home/pi/avrdude_gpio.conf:8684]
pwm2b = AT90PWM2B [/home/pi/avrdude_gpio.conf:8877]
pwm3 = AT90PWM3 [/home/pi/avrdude_gpio.conf:8867]
pwm316 = AT90PWM316 [/home/pi/avrdude_gpio.conf:8904]
pwm3b = AT90PWM3B [/home/pi/avrdude_gpio.conf:8891]
1200 = AT90S1200 [/home/pi/avrdude_gpio.conf:1716]
2313 = AT90S2313 [/home/pi/avrdude_gpio.conf:1945]
2333 = AT90S2333 [/home/pi/avrdude_gpio.conf:2058]
2343 = AT90S2343 [/home/pi/avrdude_gpio.conf:2186]
4414 = AT90S4414 [/home/pi/avrdude_gpio.conf:1832]
4433 = AT90S4433 [/home/pi/avrdude_gpio.conf:2310]
4434 = AT90S4434 [/home/pi/avrdude_gpio.conf:2434]
8515 = AT90S8515 [/home/pi/avrdude_gpio.conf:2517]
8535 = AT90S8535 [/home/pi/avrdude_gpio.conf:2631]
usb1286 = AT90USB1286 [/home/pi/avrdude_gpio.conf:11466]
usb1287 = AT90USB1287 [/home/pi/avrdude_gpio.conf:11657]
usb162 = AT90USB162 [/home/pi/avrdude_gpio.conf:11670]
usb646 = AT90USB646 [/home/pi/avrdude_gpio.conf:11262]
usb647 = AT90USB647 [/home/pi/avrdude_gpio.conf:11453]
usb82 = AT90USB82 [/home/pi/avrdude_gpio.conf:11857]
m103 = ATmega103 [/home/pi/avrdude_gpio.conf:2752]
m128 = ATmega128 [/home/pi/avrdude_gpio.conf:3075]
m1280 = ATmega1280 [/home/pi/avrdude_gpio.conf:9693]
m1281 = ATmega1281 [/home/pi/avrdude_gpio.conf:9883]
m1284 = ATmega1284 [/home/pi/avrdude_gpio.conf:4451]
m1284p = ATmega1284P [/home/pi/avrdude_gpio.conf:4645]
m1284rfr2 = ATmega1284RFR2 [/home/pi/avrdude_gpio.conf:10318]
m128rfa1 = ATmega128RFA1 [/home/pi/avrdude_gpio.conf:10103]
m128rfr2 = ATmega128RFR2 [/home/pi/avrdude_gpio.conf:10206]
m16 = ATmega16 [/home/pi/avrdude_gpio.conf:3832]
m161 = ATmega161 [/home/pi/avrdude_gpio.conf:5977]
m162 = ATmega162 [/home/pi/avrdude_gpio.conf:4837]
m163 = ATmega163 [/home/pi/avrdude_gpio.conf:5035]
m164p = ATmega164P [/home/pi/avrdude_gpio.conf:4011]
m168 = ATmega168 [/home/pi/avrdude_gpio.conf:7723]
m168p = ATmega168P [/home/pi/avrdude_gpio.conf:7912]
m169 = ATmega169 [/home/pi/avrdude_gpio.conf:5193]
m16u2 = ATmega16U2 [/home/pi/avrdude_gpio.conf:12234]
m2560 = ATmega2560 [/home/pi/avrdude_gpio.conf:9896]
m2561 = ATmega2561 [/home/pi/avrdude_gpio.conf:10090]
m2564rfr2 = ATmega2564RFR2 [/home/pi/avrdude_gpio.conf:10308]
m256rfr2 = ATmega256RFR2 [/home/pi/avrdude_gpio.conf:10157]
m32 = ATmega32 [/home/pi/avrdude_gpio.conf:5800]
m324p = ATmega324P [/home/pi/avrdude_gpio.conf:4035]
m324pa = ATmega324PA [/home/pi/avrdude_gpio.conf:4227]
m325 = ATmega325 [/home/pi/avrdude_gpio.conf:12604]
m3250 = ATmega3250 [/home/pi/avrdude_gpio.conf:12985]
m328 = ATmega328 [/home/pi/avrdude_gpio.conf:8113]
m328p = ATmega328P [/home/pi/avrdude_gpio.conf:8298]
m329 = ATmega329 [/home/pi/avrdude_gpio.conf:5375]
m3290 = ATmega3290 [/home/pi/avrdude_gpio.conf:5574]
m3290p = ATmega3290P [/home/pi/avrdude_gpio.conf:5588]
m329p = ATmega329P [/home/pi/avrdude_gpio.conf:5560]
m32u2 = ATmega32U2 [/home/pi/avrdude_gpio.conf:12046]
m32u4 = ATmega32U4 [/home/pi/avrdude_gpio.conf:11071]
m406 = ATMEGA406 [/home/pi/avrdude_gpio.conf:14496]
m48 = ATmega48 [/home/pi/avrdude_gpio.conf:7323]
m48p = ATmega48P [/home/pi/avrdude_gpio.conf:7510]
m64 = ATmega64 [/home/pi/avrdude_gpio.conf:2892]
m640 = ATmega640 [/home/pi/avrdude_gpio.conf:9503]
m644 = ATmega644 [/home/pi/avrdude_gpio.conf:4243]
m644p = ATmega644P [/home/pi/avrdude_gpio.conf:4434]
m644rfr2 = ATmega644RFR2 [/home/pi/avrdude_gpio.conf:10328]
m645 = ATmega645 [/home/pi/avrdude_gpio.conf:12795]
m6450 = ATmega6450 [/home/pi/avrdude_gpio.conf:12997]
m649 = ATmega649 [/home/pi/avrdude_gpio.conf:5601]
m6490 = ATmega6490 [/home/pi/avrdude_gpio.conf:5787]
m64rfr2 = ATmega64RFR2 [/home/pi/avrdude_gpio.conf:10219]
m8 = ATmega8 [/home/pi/avrdude_gpio.conf:6117]
m8515 = ATmega8515 [/home/pi/avrdude_gpio.conf:6278]
m8535 = ATmega8535 [/home/pi/avrdude_gpio.conf:6436]
m88 = ATmega88 [/home/pi/avrdude_gpio.conf:7523]
m88p = ATmega88P [/home/pi/avrdude_gpio.conf:7710]
m8u2 = ATmega8U2 [/home/pi/avrdude_gpio.conf:12422]
t10 = ATtiny10 [/home/pi/avrdude_gpio.conf:14451]
t11 = ATtiny11 [/home/pi/avrdude_gpio.conf:1211]
t12 = ATtiny12 [/home/pi/avrdude_gpio.conf:1275]
t13 = ATtiny13 [/home/pi/avrdude_gpio.conf:1408]
t15 = ATtiny15 [/home/pi/avrdude_gpio.conf:1583]
t1634 = ATtiny1634 [/home/pi/avrdude_gpio.conf:14184]
t20 = ATtiny20 [/home/pi/avrdude_gpio.conf:14461]
t2313 = ATtiny2313 [/home/pi/avrdude_gpio.conf:8311]
t24 = ATtiny24 [/home/pi/avrdude_gpio.conf:10339]
t25 = ATtiny25 [/home/pi/avrdude_gpio.conf:8957]
t26 = ATtiny26 [/home/pi/avrdude_gpio.conf:6594]
t261 = ATtiny261 [/home/pi/avrdude_gpio.conf:6751]
t4 = ATtiny4 [/home/pi/avrdude_gpio.conf:14407]
t40 = ATtiny40 [/home/pi/avrdude_gpio.conf:14478]
t4313 = ATtiny4313 [/home/pi/avrdude_gpio.conf:8500]
t43u = ATtiny43u [/home/pi/avrdude_gpio.conf:10892]
t44 = ATtiny44 [/home/pi/avrdude_gpio.conf:10523]
t45 = ATtiny45 [/home/pi/avrdude_gpio.conf:9139]
t461 = ATtiny461 [/home/pi/avrdude_gpio.conf:6942]
t5 = ATtiny5 [/home/pi/avrdude_gpio.conf:14424]
t84 = ATtiny84 [/home/pi/avrdude_gpio.conf:10707]
t85 = ATtiny85 [/home/pi/avrdude_gpio.conf:9320]
t861 = ATtiny861 [/home/pi/avrdude_gpio.conf:7133]
t88 = ATtiny88 [/home/pi/avrdude_gpio.conf:7925]
t9 = ATtiny9 [/home/pi/avrdude_gpio.conf:14434]
x128a1 = ATxmega128A1 [/home/pi/avrdude_gpio.conf:13478]
x128a1d = ATxmega128A1revD [/home/pi/avrdude_gpio.conf:13494]
x128a1u = ATxmega128A1U [/home/pi/avrdude_gpio.conf:13504]
x128a3 = ATxmega128A3 [/home/pi/avrdude_gpio.conf:13515]
x128a3u = ATxmega128A3U [/home/pi/avrdude_gpio.conf:13525]
x128a4 = ATxmega128A4 [/home/pi/avrdude_gpio.conf:13536]
x128a4u = ATxmega128A4U [/home/pi/avrdude_gpio.conf:13594]
x128b1 = ATxmega128B1 [/home/pi/avrdude_gpio.conf:13647]
x128b3 = ATxmega128B3 [/home/pi/avrdude_gpio.conf:13706]
x128c3 = ATxmega128C3 [/home/pi/avrdude_gpio.conf:13405]
x128d3 = ATxmega128D3 [/home/pi/avrdude_gpio.conf:13458]
x128d4 = ATxmega128D4 [/home/pi/avrdude_gpio.conf:13468]
x16a4 = ATxmega16A4 [/home/pi/avrdude_gpio.conf:13136]
x16a4u = ATxmega16A4U [/home/pi/avrdude_gpio.conf:13063]
x16c4 = ATxmega16C4 [/home/pi/avrdude_gpio.conf:13116]
x16d4 = ATxmega16D4 [/home/pi/avrdude_gpio.conf:13126]
x16e5 = ATxmega16E5 [/home/pi/avrdude_gpio.conf:14053]
x192a1 = ATxmega192A1 [/home/pi/avrdude_gpio.conf:13780]
x192a3 = ATxmega192A3 [/home/pi/avrdude_gpio.conf:13796]
x192a3u = ATxmega192A3U [/home/pi/avrdude_gpio.conf:13806]
x192c3 = ATxmega192C3 [/home/pi/avrdude_gpio.conf:13717]
x192d3 = ATxmega192D3 [/home/pi/avrdude_gpio.conf:13770]
x256a1 = ATxmega256A1 [/home/pi/avrdude_gpio.conf:13880]
x256a3 = ATxmega256A3 [/home/pi/avrdude_gpio.conf:13896]
x256a3b = ATxmega256A3B [/home/pi/avrdude_gpio.conf:13917]
x256a3bu = ATxmega256A3BU [/home/pi/avrdude_gpio.conf:13927]
x256a3u = ATxmega256A3U [/home/pi/avrdude_gpio.conf:13906]
x256c3 = ATxmega256C3 [/home/pi/avrdude_gpio.conf:13817]
x256d3 = ATxmega256D3 [/home/pi/avrdude_gpio.conf:13870]
x32a4 = ATxmega32A4 [/home/pi/avrdude_gpio.conf:13225]
x32a4u = ATxmega32A4U [/home/pi/avrdude_gpio.conf:13152]
x32c4 = ATxmega32C4 [/home/pi/avrdude_gpio.conf:13205]
x32d4 = ATxmega32D4 [/home/pi/avrdude_gpio.conf:13215]
x32e5 = ATxmega32E5 [/home/pi/avrdude_gpio.conf:14105]
x384c3 = ATxmega384C3 [/home/pi/avrdude_gpio.conf:13938]
x384d3 = ATxmega384D3 [/home/pi/avrdude_gpio.conf:13991]
x64a1 = ATxmega64A1 [/home/pi/avrdude_gpio.conf:13325]
x64a1u = ATxmega64A1U [/home/pi/avrdude_gpio.conf:13341]
x64a3 = ATxmega64A3 [/home/pi/avrdude_gpio.conf:13352]
x64a3u = ATxmega64A3U [/home/pi/avrdude_gpio.conf:13362]
x64a4 = ATxmega64A4 [/home/pi/avrdude_gpio.conf:13373]
x64a4u = ATxmega64A4U [/home/pi/avrdude_gpio.conf:13241]
x64b1 = ATxmega64B1 [/home/pi/avrdude_gpio.conf:13383]
x64b3 = ATxmega64B3 [/home/pi/avrdude_gpio.conf:13394]
x64c3 = ATxmega64C3 [/home/pi/avrdude_gpio.conf:13294]
x64d3 = ATxmega64D3 [/home/pi/avrdude_gpio.conf:13305]
x64d4 = ATxmega64D4 [/home/pi/avrdude_gpio.conf:13315]
x8e5 = ATxmega8E5 [/home/pi/avrdude_gpio.conf:14001]
ucr2 = deprecated, use 'uc3a0512' [/home/pi/avrdude_gpio.conf:14174]
FIX: Can't export GPIO 4 (AVRDUDE Raspberry)
Y muestra el siguiente error:
Can't export GPIO 4, already exported/busy?: Device or resource busy
avrdude done. Thank you.
Para solucionarlo puedes usar otro puerto. Yo he usado el GPIO 12 y me fue de maravillas.
miércoles, 28 de febrero de 2018
Run remote x11 graphical application ssh in PyCharm
Intentando correr una aplicación grafica en mi raspberry pi utilizando pycharm me he conseguido con el siguiente error:
"tkinter.TclError: no display name and no $DISPLAY environment variable"
Esto ocurre porque para correr aplicaciones gráficas usando ssh se debe establecer la variable de entorno DISPLAY=:0
Para ello abrimos el RUN/DEBUG Configuration y la seteamos como en la siguiente imagen
NOTA: Note que el valor es :0 (Incluye el signo dos puntos)
Result:
autologin skype in linux
Para hacer que skype inicie automáticamente debe estar instalado gnome-keyring
Para ello:
sudo apt install gnome-keyring
Luego agregas la siguiente linea al autostart:
gnome-keyring-daemon --start --components=secrets
Para ello:
sudo apt install gnome-keyring
Luego agregas la siguiente linea al autostart:
gnome-keyring-daemon --start --components=secrets
domingo, 25 de febrero de 2018
Mover ventana a la derecha o izquierda en KDE
Si queremos usar la funcionalidad de Windows de mover una ventana a la izquierda o derecha presionando Win + Left / Right
Debemos entrar en Shortcuts -> Global Shortcuts -> KWin y escribir "Tile" en la barra de busqueda
Debemos entrar en Shortcuts -> Global Shortcuts -> KWin y escribir "Tile" en la barra de busqueda
domingo, 18 de febrero de 2018
Instalar ilsap en ubuntu 17.10
Todos sabemos para que queremos instalar ilsap ;)
Pero bueno... manos a la obra:
Primero instala nodejs 8+
apt install curl
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
Luego instalamos ilsap
npm install ilsap
Luego instalamos ngrok (sniarbteJ últimamente esta poniendo en la blacklist al localhost)
Lo descargas de aquí:
https://ngrok.com/download
Lo descomprimes en /opt
Pero bueno... manos a la obra:
Primero instala nodejs 8+
apt install curl
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
Luego instalamos ilsap
npm install ilsap
Luego instalamos ngrok (sniarbteJ últimamente esta poniendo en la blacklist al localhost)
Lo descargas de aquí:
https://ngrok.com/download
Lo descomprimes en /opt
Luego copias el comando TAL CUAL indica el paso 2
Para hacerlo permanente agregalos a los programas de arranque:
martes, 13 de febrero de 2018
FIX: libf77blas.so.3: cannot open shared object file
Intentando correr un código de python me saltó el siguiente error:
SOLUCIÓN:
sudo apt-get install libatlas-base-dev
lunes, 12 de febrero de 2018
Disable serial echo in Raspbian
Por alguna extraña razón, por defecto en Raspbian Strech, todo lo que que se escribe por serial se "devuelve".
Para solucionarlo:
stty -F /dev/ttyS0 -echo -onlcr
Para solucionarlo:
stty -F /dev/ttyS0 -echo -onlcr
jueves, 8 de febrero de 2018
FIx Fritzing problem Ubuntu /home/user/bins/core.fzb:No such file or directory.
sudo apt-get install fritzing-parts
sudo apt-get install fritzing-data
martes, 6 de febrero de 2018
Solve: laravel requires ext-mbstring in AWS Linux
Solución:
sudo yum install php70-mbstring.x86_64
(Cambiar la versión de PHP en la linea de comandos de ser necesario)
domingo, 28 de enero de 2018
Debug Asyncio async script in PyCharm
Por defecto no se puede debuguear las funciones async de asyncio.
Para activar el debugueo debes añadir lo siguiente:
Para activar el debugueo debes añadir lo siguiente:
-E PYTHONASYNCIODEBUG a los parámetros
Instalar VSPDL (Virtual Serial Port Driver for Linux)
*** Probado en Ubuntu 17.10 x86_64
Primero debes descargar el tar de VSPDL desde aquí:
Lo descomprimes en cualquier directorio
Si tienes una versión de kernel > a la 4.13 debes entrar en el directorio que descomprimiste y luego editar el fichero vspm.h que esta en usr/local/vspd-1.49-dist/lib/src/
Debes sustituir la linea 81 que indica:
"typedef wait_queue_t waitq_t;"
y cambiarla por:
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 13, 0)
wait_queue_entry_t wait;
#else
wait_queue_t wait;
#endif
Luego vas a usr/local/vspd-1.49-dist/ y ejecutas:
# bash install.sh /usr/local/vspd
Luego arrancas los servicios:
# /etc/init.d/vspm start
# /etc/init.d/vspd start
viernes, 26 de enero de 2018
Serial Port Sniffer in Ubuntu with IO Ninja
para visualizar lo que emite un puerto serial sin necesidad de utilizar un cable espía puedes utilizar esta una magnífica herramienta llamada tdevmon en combinación con IONinja:
Instrucciones de instalación:
http://ioninja.com/doc/kb/tdevmon_linux_installation.html
Luego de instalado ve y abre IO Ninja
Instrucciones de instalación:
http://ioninja.com/doc/kb/tdevmon_linux_installation.html
Luego de instalado ve y abre IO Ninja
En este caso el módulo tdevmon.ko instalado en el kernel intercepta la data que se envié y se reciba desde el puerto serial (en este caso /dev/ttyUSB0)
Ejemplo de salida:
jueves, 25 de enero de 2018
Correr un programa en segundo plano al iniciar Windows 10
Si deseas correr una aplicación en background al iniciar Windows 10, sigue los siguientes pasos:
1. Tecla windows + R y ejecutar shell:startup
2. En la carpeta que se abrió a continuación, crea un archivo llamado boot.bat
3. El archivo boot.bat debe contener estas líneas de código:
@Echo off
Echo Set WshShell = CreateObject("WScript.Shell") >>%temp%\ghost.vbs
Echo WshShell.CurrentDirectory = "D:\Documents\PythonProjects\mqtt-ngrok" >>%temp%\ghost.vbs
Echo WshShell.Run chr(34) ^& "main.py" ^& Chr(34), 0 >>%temp%\ghost.vbs
Echo Set WshShell = Nothing >>%temp%\ghost.vbs
start %temp%\ghost.vbs
timeout /t 1 >nul
del %temp%\ghost.vbs
Nota: En mi caso estoy ejecutando un script python en segundo plano.
1. Tecla windows + R y ejecutar shell:startup
2. En la carpeta que se abrió a continuación, crea un archivo llamado boot.bat
3. El archivo boot.bat debe contener estas líneas de código:
@Echo off
Echo Set WshShell = CreateObject("WScript.Shell") >>%temp%\ghost.vbs
Echo WshShell.CurrentDirectory = "D:\Documents\PythonProjects\mqtt-ngrok" >>%temp%\ghost.vbs
Echo WshShell.Run chr(34) ^& "main.py" ^& Chr(34), 0 >>%temp%\ghost.vbs
Echo Set WshShell = Nothing >>%temp%\ghost.vbs
start %temp%\ghost.vbs
timeout /t 1 >nul
del %temp%\ghost.vbs
Nota: En mi caso estoy ejecutando un script python en segundo plano.
Suscribirse a:
Entradas (Atom)