Guide d’Autodéfense RSA-France-Travail | Coordination Autonome Brest
6 novembre 2025 à 14:04
C'est dingue de devoir avoir un guide pour un truc social qui devrait aider tous ceux qui en ont besoin de base…
— Liens directs
C'est dingue de devoir avoir un guide pour un truc social qui devrait aider tous ceux qui en ont besoin de base…
Avec un tissu déperlant à l'intérieur, ça peut faire une bonne trousse de toilette de voyage !
sudo apt-get install python-mysqldb
CREATE TABLE IF NOT EXISTS `gpio` (
`id_gpio` int(2) NOT NULL,
`state` int(2) NOT NULL,
`mode` int(2) NOT NULL,
PRIMARY KEY (`id_gpio`)
)
#!/usr/bin/env python # -*- coding: utf-8 -*- # Import des modules import RPi.GPIO as GPIO import time import MySQLdb # Initialisation de la numerotation et des E/S GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) db = MySQLdb.connect("localhost", "root", "raspberry", "GPIO_CONTROLE") curs = db.cursor() def Update_State_GPIO(iGPIO, iState): curs.execute("""UPDATE gpio SET state=%s WHERE id_gpio=%s""",(iState,iGPIO)) while True: time.sleep(0.15) # Pour toutes les GPIO de la base curs.execute("SELECT * FROM gpio") rows = curs.fetchall() for row in rows: if (row[3]==1): GPIO.setup(int(row[0]), GPIO.OUT) if (GPIO.input(row[0])!=int(row[2])): GPIO.output(int(row[0]), int(row[2])) else: GPIO.setup(int(row[0]), GPIO.IN) Update_State_GPIO(int(row[0]), GPIO.input(int(row[0]))) db.commit()
import picamera import time import RPi.GPIO as GPIO # Definition de l'objet camera camera = picamera.PiCamera() # Lecture de l'incrementation fichier ficR = open('/home/pi/Programme/Python/Video_Drone/Videos/INCR.txt','r+') sINCR = ficR.read(3) print sINCR iINCR = int(sINCR) ficR.close() iINCR +=1 # Ecriture du fichier d'incrementation ficW = open('/home/pi/Programme/Python/Video_Drone/Videos/INCR.txt','wb') ficW.write(str(iINCR)) ficW.close() camera.rotation = 180 camera.start_recording('/home/pi/Programme/Python/Video_Drone/Videos/Flight' + str(iINCR) + '.h264') while (1): time.sleep(1)
@reboot sudo python /home/pi/Programme/Python/Video_Drone/Video_Reboot.py
sudo apt-get install gpac
MP4Box -add ./Flight9.h264 ./Flight9.mp4
#include "../Lib/libGPIO.h" #include <stdio.h> #include <stdlib.h> int main() { GPIO led("A23"); // "A23" ou kernel id = 23 led.pinMode(OUTPUT); while(1) { Delay(250); led.digitalWrite(HIGH); Delay(250); led.digitalWrite(LOW); } }
#include "../Lib/libGPIO.h" #include <stdio.h> #include <stdlib.h> int main() { GPIO led("A23"); // "A23" ou kernel id = 23 led.pinMode(OUTPUT); while(1) { led.digitalWrite(readButton()); } }
git clone https://github.com/kkiwill/Arietta_G25_GPIO_Library.git
cd ./Arietta_G25_GPIO_Library/Example
g++ ./Blink.cpp ../Lib/libGPIO.cpp -o Blink -lrt
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import Socket_Event
import subprocess
import RPi.GPIO as GPIO
from Sys_Info import *
# Variables globale
DEBUT_TRAME = "R"
FIN_TRAME = "I"
SEPARATEUR = chr(0x02)
# Reception de la trame et renvoie d'une autre
def TraiteRecv(self, data):
# Variable
ToSend = ""
# Test si debut et fin de trame(pour vérification de trame complète)
if (data[:1] == DEBUT_TRAME and data[-1:] == FIN_TRAME):
data = data[1:len(data)-1]
# Selon contenue
if (data == "temp"):
ToSend = str(get_temperature())
if (data == "cpu"):
ToSend = str(get_cpu_speed())
if (data == "uptime"):
ToSend = get_up_stats()[0]
if (data == "ram"):
ToSend = str(get_ram()[1])+' ('+str(get_ram()[0])+')'
if (data == "nbproc"):
ToSend = str(get_process_count())
# GPIO mode
if (data[0:2] == "GM"):
try:
mode = data[2:3]
pin = int(data[3::])
if (mode == "I"):
GPIO.setup(pin,GPIO.IN)
else:
GPIO.setup(pin,GPIO.OUT)
except Exception, e:
ToSend = ("Erreur_%s" % e)
# GPIO write
if (data[0:2] == "GW"):
try:
etat = int(data[2:3])
pin = int(data[3::])
if (etat == 1):
GPIO.output(pin, GPIO.HIGH)
else:
GPIO.output(pin, GPIO.LOW)
except Exception, e:
ToSend = ("Erreur_%s" % e)
# GPIO read
if (data[0:2] == "GR"):
try:
pin = int(data[2::])
etat = GPIO.input(pin)
ToSend = str(etat)
except Exception, e:
ToSend = ("Erreur_%s" % e)
# On renvoie la donnée recu et la réponse (séparer par caract de 2)
Socket_Event.EchoHandler.handle_write(self, DEBUT_TRAME + data + SEPARATEUR + ToSend + FIN_TRAME)
# Definition de la socket
interface = "192.168.0.13"
port = 59004
# GPIO configuration
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
# Lancement de la socket
server = Socket_Event.EchoServer((interface, port), TraiteRecv)
server.serve_forever()
dmesg
sudo apt-get install GPartedPuis dans vos application lancer GParted, vous pouvez maintenant sélectionner votre carte SD et voir quelque chose comme le screenshot ci dessous :
sudo wget http://www.acmesystems.it/download/microsd/Arietta-30aug2014/kernel.tar.bz2Téléchargement de rootfs :
sudo wget http://www.acmesystems.it/download/microsd/Arietta-30aug2014/rootfs.tar.bz2On va maintenant décompresser ces deux archives dans les partitions avec pour le kernel :
sudo tar -xvjpSf kernel.tar.bz2 -C /media/$USER/KERNEL
sudo tar -xvjpSf rootfs.tar.bz2 -C /media/$USER/rootfsPenser à remplacer $USER par votre nom d'utilisateur :). Voila votre carte est prête à être démonter la carte SD puis brancher votre Arietta G25. Prochaine étape le premier démarrage.
sudo nano /media/$USER/rootfs/etc/network/interfacesEt éditer le fichier comme ceci :
sudo nano /etc/network/interfacesPuis ajouter les lignes suivantes :
sudo ifup usb0
nano /var/log/auth.logAprès avoir vu le nombre de tentatives j'ai décidé de rechercher des solutions, je vais donc vous faire par de toutes les méthodes de protection que j'ai suivies pour sécurisé votre le serveur.
sudo nano /etc/ssh/sshd_configRechercher la ligne avec "Port" et modifier la ligne en conséquence, mais attention si vous êtes connecté en SSH vous serez aussitôt déconnecter au moment de la sauvegarde du fichier.
PermitRootLogin yespar :
PermitRootLogin no
sudo apt-get install fail2ban
git clone https://github.com/kkiwill/Arietta_MF-RC522
cd ./SPI_Librairie
python setup install
cp ./Exemple/read.py ./MF-RC522_Librairie
python ./read.py
git clone git://github.com/tanzilli/ablib.git
cd ablib
python setup.py installLa librairie est maintenant installée et prête à être utilisé.
from ablib import Pin
from time import sleep
while True:
led = Pin('J4.7','OUTPUT') # pin 7 du port J4 en sortie
led.on()
sleep(0.5)
led.off()
sleep(0.25)
#include "stdio.h"
#include "stdlib.h"
#include "unistd.h"
int gpioexport(int gpioid)
{
FILE *filestream;
if ((filestream=fopen("/sys/class/gpio/export","w"))==NULL) {
printf("Error on export GPIO\n");
return -1;
}
fprintf(filestream,"%d",gpioid);
fclose(filestream);
return 0;
}
int gpiosetdir(int gpioid,char *mode)
{
FILE *filestream;
char filename[50];
sprintf(filename,"/sys/class/gpio/gpio%d/direction",gpioid);
if ((filestream=fopen(filename,"w"))==NULL) {
printf("Error on direction setup\n");
return -1;
}
fprintf(filestream,mode);
fclose(filestream);
return 0;
}
int gpiogetbits(int gpioid)
{
FILE *filestream;
char filename[50];
char retchar;
sprintf(filename,"/sys/class/gpio/gpio%d/value",gpioid);
if ((filestream=fopen(filename,"r"))==NULL) {
printf("Error on gpiogetbits %d\n",gpioid);
return -1;
}
retchar=fgetc(filestream);
fclose(filestream);
if (retchar=='0') return 0;
else return 1;
}
int gpiosetbits(int gpioid)
{
FILE *filestream;
char filename[50];
sprintf(filename,"/sys/class/gpio/gpio%d/value",gpioid);
if ((filestream=fopen(filename,"w"))==NULL) {
printf("Error on setbits %d\n",gpioid);
return -1;
}
fprintf(filestream,"1");
fclose(filestream);
return 0;
}
int gpioclearbits(int gpioid)
{
FILE *filestream;
char filename[50];
sprintf(filename,"/sys/class/gpio/gpio%d/value",gpioid);
if ((filestream=fopen(filename,"w"))==NULL) {
printf("Error on clearbits %d\n",gpioid);
return -1;
}
fprintf(filestream,"0");
fclose(filestream);
return 0;
}
int main(void)
{
int led = 23; # GPIO PA23 donc son nom est 23
gpioexport(led);
gpiosetdir(led,"out");
for (;;) {
gpiosetbits(led);
sleep(1);
gpioclearbits(led);
sleep(1);
}
}
mkdir ./LCD_IPcd ./LCD_IPEnsuite on télécharge la librairie :
git clone https://github.com/quick2wire/quick2wire-python-api.git
cd ./quick2wire-python-apiEt on telecharge la derniere librairie "i2cLibrairies" avec :
sudo git clone https://bitbucket.org/thinkbowl/i2clibraries.gitVoila c'est fini pour la librairie vous devriez avoir un nouveau dossier avec à l'intérieur tout les librairie.
lcd = i2c_lcd.i2c_lcd(0x27, 0, 2, 1, 0, 4, 5, 6, 7, 3)
import sys, os
# On définie l'emplacement de la librairie
sys.path.append(r'/home/pi/LCD_IP/quick2wire-python-api')
from i2clibraries import i2c_lcd
from time import *
import socket
#Init de 'afficheur
lcd = i2c_lcd.i2c_lcd(0x27,1, 2, 1, 0, 4, 5, 6, 7, 3)
#Récupère l'adresse ip
locals = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
locals.connect(('google.com', 0))
#On affiche tout sa sur l'afficheur
LCDlcd.backLightOn()
lcd.clear()
lcd.setPosition(1, 2)
lcd.writeString(str(locals.getsockname()[0]))
lcd.setPosition(2, 0)
lcd.writeString("hello")
sudo python3 ./LCD.pyEt voila l'afficheur LCD vous affiche votre adresse IP local.
#!/bin/bash
# /etc/init.d/LCD_IP.sh
case "$1" in
start)
echo "lancement du programme de l'afficheur LCD"
#la on lance le programme
sudo python3 /home/pi/LCD_IP/LCD_IP.py &
;;
stop)
echo "arret du programme de l'afficheur LCD"
sudo killall LCD_IP.py
;;
*)
echo "Usage: /etc/init.d/LCD_IP {start|stop}"
exit 1
;;
esac
exit 0
sudo chmod /etc/init.d/LCD_IPDernière étapes ajouter se script au démarrage du système avec ceci :
sudo update-rc.d LCD_IP defaultsEt voila fini pour ce petit tuto, plus besoin de chercher sur le réseaux l'adresse de votre RPI.
sudo raspi-configensuite dans overclocking choisir le mode de votre choix pour moi le medium suffit.
sudo apt-get updatesudo apt-get upgrade
sudo mkdir ./minecraft
cd ./minecraft
sudo apt-get installer oracle-java7-jdk
wget CraftBukkit.jar
sudo chmod +x Craftbukkit.jarNe reste plus qu'a lancer votre serveur avec :
sudo java -Xms300M -jar craftbukkit.jarEt voilà le serveur se lance, c'est un peu long. Mais une fois lancer une connexion et en avant.
sudo nano mkdir ./CraftBukkit.shEnsuite on colle ceci, si cela est nécessaire on change le nom du .jar :
#!/bin/sh BINDIR=$(dirname "$(readlink -fn "$0")") cd "$BINDIR" java -Xms300M -jar craftbukkit.jar -o falseOn donne les droits au script :
sudo chmod 555 ./CraftBukkit.shEt voilà le script est prêt. Et maintenant il serait pratique de lancer se script en fond de tache, pour cela j'utilise Screen qui permet en gros de créer plusieurs terminaux dans le même terminale. Donc on commence par installer Screen :
sudo apt-get install screenEnsuite il va falloir modifier notre script pour que la commande de lancement se passe dans un autre screen, on remplace la ligne "java -Xms300M -jar craftbukkit.jar -o false" par :
screen -s minecraft java -Xms300M -jar craftbukkit.jar -o falseOn à donc créer lors du lancement du script un screen qui se nomme "minecraft", lors du lancement vous serez sur le ce fameux screen mais vous pouvez revenir sur votre espace de travail avec le raccourci ctrl-a+d, pour revenir sur le screen cette commande vous sera utile :
screen -raAd minecraftEt voilà vous avez maintenant un joli serveur minecraft en fond de tache vous pouvez quitter votre session putty et le serveur sera toujours la.
sudo gpp ++ -o NFC NFC.cpp -lwiringPi
sudo ./NFC