The images finally f-ing work
This commit is contained in:
175
tp5.md
175
tp5.md
@@ -129,6 +129,181 @@ ensuite c'est une histoire de faire les bons chmods a la racine pour assigner le
|
||||
|
||||
## 2. Hotplug et mdev
|
||||
|
||||
Led bleue : `/sys/class/leds/d2/device/leds/d2/`
|
||||
Led rouge : `/sys/class/leds/d2/device/leds/d3/`
|
||||
|
||||
Dans chacuns de ces repertoires on peut trouver un fichier brightness dans lequel on peut mettre 0 ou 1 pour changer l'étât des leds.
|
||||
|
||||
Ensuite avec le fichier depuis le git compressé
|
||||
|
||||
`xz --decompress disk.img.xz`
|
||||
|
||||
Ensuite on peut utiliser dd pour copier le contenu dans la clé usb
|
||||
|
||||
`dd if=./disk.img of=/dev/sdb`
|
||||
|
||||
la destination est /dev/sdb qui représente la clé usb que on vient d'insèrer.
|
||||
|
||||
`mkdir media` à la racine de notre système embarqué
|
||||
|
||||
Quand on plugg la clé USB sur notre système embarqué le nom est SDA
|
||||
|
||||
donc dans media : `mkdir sda`
|
||||
|
||||
`mount /dev/sda /media/sda`
|
||||
|
||||
On peut voir que désormais dans le repertoire media/sda on a bien toutes les images :
|
||||
|
||||
```
|
||||
/media/sda # ls
|
||||
alien.jpg grimsel_pass.jpg rhone_winter.jpg
|
||||
antelope.jpg ice.jpg sardinia.jpg
|
||||
appenzell.jpg island.jpg shark.jpg
|
||||
autumn.jpg jet_d'eau.jpg snail.jpg
|
||||
azores.jpg jonction.jpg sphere.jpg
|
||||
bamboo.jpg kauai.jpg stranger.jpg
|
||||
beach.jpg lagoa_do_fogo.jpg sunrise.jpg
|
||||
bee.jpg leaves.jpg sunset.jpg
|
||||
blossoms.jpg lizard.jpg sup.jpg
|
||||
boat.jpg lone_horse.jpg surfer.jpg
|
||||
chateau_d'oex.jpg lost+found swan1.jpg
|
||||
cyclists.jpg magnolia.jpg swan2.jpg
|
||||
daisy.jpg misty.jpg tentacles.jpg
|
||||
dendelion.jpg moutain_haze.jpg the_view.jpg
|
||||
dropplets.jpg paradise.jpg tortoises.jpg
|
||||
elephant.jpg peak.jpg tulips.jpg
|
||||
fern.jpg peaks.jpg turtle.jpg
|
||||
flower.jpg petals.jpg vertigo.jpg
|
||||
flower_dropplets.jpg rain_forest.jpg vines.jpg
|
||||
glacier.jpg rhone.jpg
|
||||
```
|
||||
|
||||
Ensuite pour faire ces actions de manière automatique on va crééer le fichier /etc/mdev.conf sur le système embarqué.
|
||||
|
||||
|
||||
```
|
||||
sd[a-z] 0:0 777 @/etc/usb_automount.sh $MDEV
|
||||
```
|
||||
|
||||
Cette commande permet de dire que pour tout perpherique dans /dev qui commence par sd qui appartiendra a root et au groupe 0 et avec les permissions 777 et ca va lancer le script automount.sh avec comme argument le nom du peripherique.
|
||||
|
||||
Pour le script on doit allumer la led rouge
|
||||
|
||||
Créer le repertoire /media/[nom du peripherique]
|
||||
monter le peripherique dans /media/[nom du peripherique]
|
||||
|
||||
Installer le contenu de ce repertoire dans le repertoire correspondant dans le site web sous www
|
||||
|
||||
Démonter le peripherique
|
||||
|
||||
Eteindre la led rouge
|
||||
|
||||
```sh
|
||||
#echo "$1 Mounted !" >> /dev/console
|
||||
|
||||
echo 1 > /sys/class/leds/d2/device/leds/d3/brightness
|
||||
|
||||
echo "mounting fs" >> /dev/console
|
||||
|
||||
mkdir /media/$1
|
||||
mount /dev/$1 /media/$1
|
||||
|
||||
echo "transferring files" >> /dev/console
|
||||
install /media/$1/* /media/installed/
|
||||
|
||||
echo "unmounting" >> /dev/console
|
||||
umount /media/$1
|
||||
rm -r /media/$1
|
||||
|
||||
echo "done" >> /dev/console
|
||||
|
||||
echo 0 > /sys/class/leds/d2/device/leds/d3/brightness
|
||||
```
|
||||
|
||||
Quand on lance ce script on a bien la led rouge qui s'allume pour indiquer que le transfers est en cours et elle s'eteint quand c'est fini.
|
||||
|
||||
Et quand on va regarder dans le repertoire installed après coup :
|
||||
|
||||
```
|
||||
/media # ls ./installed/
|
||||
alien.jpg grimsel_pass.jpg sardinia.jpg
|
||||
antelope.jpg ice.jpg shark.jpg
|
||||
appenzell.jpg island.jpg snail.jpg
|
||||
autumn.jpg jet_d'eau.jpg sphere.jpg
|
||||
azores.jpg jonction.jpg stranger.jpg
|
||||
bamboo.jpg kauai.jpg sunrise.jpg
|
||||
beach.jpg lagoa_do_fogo.jpg sunset.jpg
|
||||
bee.jpg leaves.jpg sup.jpg
|
||||
blossoms.jpg lizard.jpg surfer.jpg
|
||||
boat.jpg lone_horse.jpg swan1.jpg
|
||||
chateau_d'oex.jpg magnolia.jpg swan2.jpg
|
||||
cyclists.jpg misty.jpg tentacles.jpg
|
||||
daisy.jpg moutain_haze.jpg test
|
||||
dendelion.jpg paradise.jpg the_view.jpg
|
||||
dropplets.jpg peak.jpg tortoises.jpg
|
||||
elephant.jpg peaks.jpg tulips.jpg
|
||||
fern.jpg petals.jpg turtle.jpg
|
||||
flower.jpg rain_forest.jpg vertigo.jpg
|
||||
flower_dropplets.jpg rhone.jpg vines.jpg
|
||||
glacier.jpg rhone_winter.jpg
|
||||
```
|
||||
|
||||
Maintenant il faut que on fasse un script qui créée une page web et qui affiche toutes les images du repertoire pour qu'on puisse les voir depuis le site web.
|
||||
|
||||
```sh
|
||||
#!/bin/sh
|
||||
echo "Content-type: text/html"
|
||||
echo "<html>"
|
||||
echo "<body>"
|
||||
echo "<h1>Image gallery</h1>"
|
||||
# Loop through all image files in the current directory
|
||||
|
||||
for img in /image_gallery/*.jpg; do
|
||||
if [ -f "$img" ]; then
|
||||
echo "<div>"
|
||||
echo "<img src=\"$img\" style=\"max-width: 300px; height: auto; margin: 10px;\" alt=\"$img\">"
|
||||
echo "<p>$img</p>"
|
||||
echo "</div>"
|
||||
fi
|
||||
done
|
||||
|
||||
echo "<p><a href=\"/\"><img src=\"/gohome.png\" border=\"0\"></a></p>"
|
||||
echo "</body></html>"
|
||||
```
|
||||
|
||||
On peut ensuite modifier le script original par
|
||||
|
||||
```sh
|
||||
#echo "$1 Mounted !" >> /dev/console
|
||||
|
||||
echo 1 > /sys/class/leds/d2/device/leds/d3/brightness
|
||||
|
||||
echo "mounting fs" >> /dev/console
|
||||
|
||||
mkdir /media/$1
|
||||
mount /dev/$1 /media/$1
|
||||
|
||||
echo "transferring files" >> /dev/console
|
||||
install /media/$1/* /var/www/cgi-bin/image_gallery/
|
||||
|
||||
echo "unmounting" >> /dev/console
|
||||
umount /media/$1
|
||||
rm -r /media/$1
|
||||
|
||||
echo "done" >> /dev/console
|
||||
|
||||
echo 0 > /sys/class/leds/d2/device/leds/d3/brightness
|
||||
```
|
||||
|
||||
Maintenant les images sont directements installées au bon endroit mais va savoir pourquoi ca ne veut pas marcher. Les liens sont generés correctements par le script mais les images ne s'affichent pas c'est l'enfer je ne comprends pas pourquoi.
|
||||
|
||||
Ok après avoir passé LITTERALLEMENT 1h30 sur ce problème j'ai compris pourquoi. Dans la config de HTTP le repertoire cgi-config est utilisé comme un repertoire de fichiers executables. Le problème est que du coup les images ne peuvent pas être executées et cela sort un 404.
|
||||
|
||||
En déplaceant les images dans le repertoire /var/www/image_gallery/ Plus de problèmes les images peuvent être lues correctement et le site les affiches correctement !
|
||||
|
||||
On peut delete toutes les images et dès que on rebranche la clé usb pouf elles sont toutes installées et ca marche nikel ! (Envie de me defenestrer)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user