Outils pour utilisateurs

Outils du site


wikilonia_oavl2020

Wikilonia ou comment avoir Wikipédia dans sa poche

0 - But

Le but de ce projet “Wikilonia” est de disposer de Wikipédia dans sa poche, sans internet, sur un Raspberry Pi alimenté par batterie ou panneau solaire, avec écran tactile et wifi pour partager Wikipédia en wifi avec d'autres appareils aux alentours.

Ainsi, quoi qu'il advienne, il vous restera toujours une grande part des connaissances de l'humanité, et de quoi lire jusqu'à votre retour contraint à la terre !

1 - Matériel

Pour ce faire, nous aurons besoin :

  • D'un ordinateur sous Linux
  • D'un Raspberry Pi (ici on a utilisé un Raspberry Pi 3B+)
  • D'un écran tactile petit adaptable au Raspberry Pi (ici on a utilisé un Pimoroni Hyperpixel TFT 3.5" mais on pourrait utiliser le Pimoroni Hyperpixel 4")
  • D'une batterie USB et d'un cable USB pour alimenter le Raspberry Pi
  • D'une carte mémoire microSD d'au moins 8Go pour le système d'exploitation
  • D'une clef USB si l'on souhaite stocker les archives de Wikipédia ailleurs que sur la carte SD (c'est ce qu'on fera ici)

2 - Installer et configurer le système d'exploitation

  • Télécharger Raspberry Pi OS (Anciennement Raspbian). Ici on a choisi la version Desktop de base, car nous voulons avoir une interface de bureau pour l'écran
  • Écrire l'image téléchargée sur la carte microSD (via l'utilitaire GNOME Disques, Etcher, ou une autre méthode)
  • Sur la carte mémoire, créer un fichier /boot/ssh vide pour activer le SSH sur le Raspberry (désactivé par défaut)
  • Connecter le Raspberry à votre réseau :
    • Soit en filaire
    • Soit en wifi : sur la carte mémoire, créer un fichier /boot/wpa_supplicant.conf qui contiendra :
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
ap_scan=1
fast_reauth=1
country=FR

network={
	ssid="Nom du wifi"
	psk="Mot de passe du wifi"
	id_str="0"
	priority=100
}
  • Éjecter proprement la carte SD
  • L'insérer dans le Raspberry
  • Allumer le Raspberry

3 - Trouver son Raspberry

Il s'agit de retrouver l'IP de son Raspberry sur le réseau auquel on l'a connecté. Pour cela, soit :

  • Se connecter à l'interface du routeur si on y a accès, et retrouver son appareil dans les options

OU

  • Regarder l'IP de l'ordinateur avec lequel on se connecte, par exemple 192.168.0.13, et ne conserver que les 3 premiers octets (192.168.0)
  • Lancer un terminal et exécuter la commande suivante, avec les 3 premiers octets et en terminant par 0 (via sudo, sinon on ne verra pas le nom des machines)
sudo nmap -sn 192.168.0.0/24

Si nmap n'est pas installé, tapez la commande suivante :

sudo apt install nmap

Vous devriez avoir un appareil intitulé “Raspberry Pi Foundation”, retenez son IP.

4 - Se connecter à son Raspberry

Nous allons nous connecter en SSH au Raspberry, avec dans un terminal la commande suivante :

ssh pi@IP_QUE_VOUS_AVEZ_TROUVE
  • Le terminal vous demandera si vous faites confiance à cette machine. Tapez “yes” puis Entrée
  • Le terminal vous demandera le mot de passe. Par défaut sur Raspberry Pi OS, c'est “raspberry”
  • S'il vous demande de changer le mot de passe, faites-le, et rappelez-vous-en ! (Par exemple via un utilitaire comme KeepassXC, généralement présent dans les dépôts de votre distribution)
  • S'il ne vous demande pas de changer de mot de passe, faites-le tout de même en tapant la commande suivante :
passwd

Vous êtes désormais connecté au Raspberry !

5 - Installer l'écran Hyperpixel

  • Éteignez le Raspberry, idéalement via la commande suivante, plus propre :
sudo halt
  • Débranchez le Raspberry de son alimentation
  • Connectez l'écran au Raspberry sur les ports GPIO, délicatement, mais jusqu'au bout, de sorte que l'écran couvre le Raspberry
  • Rallumez le Raspberry
  • Connectez-vous en SSH
  • Installez git, si ce n'est déjà fait
sudo apt install git
  • Clonez le github de l'écran :
git clone https://github.com/pimoroni/hyperpixel
  • Exécutez le script d'installation de l'écran :
./setup.sh
  • Redémarrez le Raspberry :
sudo reboot

Vous devriez voir l'écran s'allumer. Vous avez dorénavant un Raspberry avec un écran tactile et une interface de bureau LXDE !

6 - Télécharger Wikipédia sur une clef USB

Vous pouvez télécharger Wikipédia sous la forme de fichier .zim, format ouvert optimisé pour ce type de large contenu. Vous trouverez de nombreux fichiers .zim à cette adresse A noter que l'on peut également télécharger le wiktionnaire, wikisource, stackexchange ou tout autre contenu .zim

Vous disposez désormais d'une clef USB avec tout Wikipédia version française !

7 - Installer Kiwix pour lire Wikipédia

  • Télécharger et décompresser l'utilitaire Kiwix Tools pour Raspberry :
cd /home/pi/ && wget https://download.kiwix.org/release/kiwix-tools/kiwix-tools_linux-armhf.tar.gz && tar xvzf kiwix-tools_linux-armhf.tar.gz
  • Créer un lien symbolique vers l'exécutable kiwix-serve pour simplifier les commandes :
sudo ln -s /home/pi/kiwix-tools/kiwix-tools_linux-armhf-3.1.1-6/kiwix-serve /usr/bin/kiwix-serve
  • Créer un script shell contenant les informations de lancement de kiwix, qui cherche les fichiers .zim à la racine de tout support USB connecté au démarrage. On crée un script car l'ajout de chemins relatifs ne peut se faire dans le service systemd, qui n'accepte que les chemins absolus, donc pas les *. On lancera le service sur le port 8080, pour éviter d'avoir à utiliser un port <1000, qui nécessite l'exécution en sudo.
sudo nano /home/pi/kiwix-tools/kiwix-tools_linux-armhf-3.1.1-6/kiwix-serve.sh
  • Ajouter le contenu suivant à kiwix-serve.sh :
#!/bin/sh
kiwix-serve --port=8080 /media/pi/*/*.zim
  • Donner les droits d'exécution à ce script :
sudo chmod +X /home/pi/kiwix-tools/kiwix-tools_linux-armhf-3.1.1-6/kiwix-serve.sh
  • Créer un service systemd pour ce script, afin qu'il soit exécuté au démarrage :
sudo nano /lib/systemd/system/kiwix-serve.service
  • Ajouter le contenu suivant à kiwix-serve.service, incluant une attente de 10 secondes au démarrage le temps de monter les clefs USB :
[Unit]
Description=Kiwix Serve
After=multi-user.target

[Service]
Type=idle
ExecStartPre=/bin/sleep 10
ExecStart=bash /home/pi/kiwix-tools/kiwix-tools_linux-armhf-3.1.1-6/kiwix-serve.sh
[Install]
WantedBy=multi-user.target
  • Donner les bonnes permissions à ce service :
sudo chmod 644 /lib/systemd/system/kiwix-serve.service
  • Recharger les configurations de service :
sudo systemctl daemon-reload
  • Activer le service kiwix-serve.service:
sudo systemctl enable kiwix-serve.service
  • Redémarrez le Raspberry :
sudo reboot

Vous pouvez tester le fonctionnement de kiwix en vous connectant depuis un ordinateur sur le même réseau local via un navigateur à http://IP_QUE_VOUS_AVEZ_TROUVE:8080

8 - Générer un wifi depuis le Raspberry pour consulter Wikipédia depuis d'autres appareils

Le but de cette étape est que le Raspberry génère son propre réseau wifi afin que tout appareil à proximité puisse s'y connecter et consulter le Wikipédia qui s'y trouve, via son navigateur. Pour cela, on va configurer le wifi en mode “ad-hoc” pour créer un hotspot sans partage de connexion Internet. ATTENTION : Pour cette étape, il est nécessaire que le Raspberry soit connecté en filaire à votre réseau !

  • Créer un fichier de configuration des interfaces réseau :
sudo nano /etc/network/interfaces.d/wikilonia
  • Ajouter le contenu suivant (on va conserver la connexion Ethernet en DHCP pour pouvoir continuer à accéder au Raspberry en SSH, et configurer le Wifi “ad-hoc”) :
auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet dhcp

auto wlan0
iface wlan0 inet static
  address 192.168.1.1
  netmask 255.255.255.0
  wireless-channel 1
  wireless-essid Wikilonia
  wireless-mode ad-hoc
  • Redémarrer le service réseau :
sudo service networking restart
  • Installer un serveur DHCP (pour que les appareils qui se connectent au Raspberry aient automatiquement une adresse) :
sudo apt install isc-dhcp-server
  • Editer le fichier de configuration DHCP :
sudo nano /etc/dhcp/dhcpd.conf
  • Décommenter (retirer le #) :
authoritative;
  • Ajouter :
subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.2 192.168.1.253;
  option routers 192.168.1.1;
}
  • Redémarrer le service DHCP :
sudo service dhcpd restart
  • Editer le fichier de configuration du serveur DHCP :
sudo nano /etc/default/isc-dhcp-server
  • Commenter toutes les lignes IPV6
  • Décommenter toutes les lignes IPV4
  • Reconfigurer le serveur DHCP :
sudo dpkg-reconfigure isc-dhcp-server
  • Lorsque la reconfiguration demande le nom de l'interface, taper “wlan0” puis Entrée

Vous pouvez désormais vous connecter avec n'importe quel appareil à proximité au wifi nommé “Wikilonia” ! Vous pourrez accéder à Wikipédia via votre navigateur avec l'adresse http://192.168.1.1:8080

wikilonia_oavl2020.txt · Dernière modification: 2020/07/29 12:41 par Benjamin Labomedia