PB6 sur Raspberry Pi

Sujets variés concernant le développement en PureBasic
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

PB6 sur Raspberry Pi

Message par Ar-S »

Salut salut,

Je viens de terminer (enfin) mon serveur de fichier vidéo sur Raspberry Pi 4
Et comme avec la beta 5 de PB6 il y a une version ARM64 qui est sorti, j'ai dit : Pourquoi pas l'installer...

Alors je ne suis pas un expert en Linux du tout (même si j'ai pourtant déjà tâté de Ubuntu 16.xx à 20.xx ainsi que Mint, Manjaro, et Batocera)
J'ai donc cette fois installé la version console pour Raspberry puis j'ai greffé le minimum vitale graphique. Ainsi j'ai un OS léger avec juste ce que je veux dedans (j'ai ajouté vnc, plex, firefox, python).

Donc je partage mon aventure qui fera marrer les pro linuxiens mais qui aidera peut-être les amateurs qui voudraient s'essayer à coder sous Raspberry.

Je me retrouve donc avec un petit système prêt à accueillir PB.
Je le télécharge, je le décompresse avec la commande tar

Dans le dossier, on trouve le fichier checkinstall.sh
Comme c'est un script python, je double clique dessus mais rien... Je farfouille sur le net et je vois que pour lancer un script py du terminal il faut faire précéder le nom du script par ./
Je lance donc un terminal du dossier purebasic et je tape ./checkinstall.sh et là pouf, le script m'affiche la commande sudo avec toutes les libs nécessaires ! :P
Tout heureux, copie colle cette ligne et l’exécute..
ça brasse vite fait et me lance une erreur sur la lib Gnome qui n'existe pas. :?
Je supprime cette lib de la ligne de commande et je relance.
Et là BIM tout s'installe niveau lib.. :P :P

Je lance PB...
Et il s'ouvre

Je fais un premier test avec un code qui permet de lister les fichiers d'un dossier pour voir si je peux utiliser runprogram et la commande ls (équivalente de dir sous windows).

Voilà le script :

Code : Tout sélectionner

InitialPath$ = "/home/pi/"   ; set initial path to display (could also be blank)
mpath$ = PathRequester("Please choose your path", InitialPath$ )
If mpath$
  Debug "You have selected following path:"+mpath$
  
  p=RunProgram("ls",mpath$,"",#PB_Program_Hide|#PB_Program_Open|#PB_Program_Read|#PB_Program_Error)
While ProgramRunning(p)
  If AvailableProgramOutput(p)
    t$ = ReadProgramString(p)
    Debug t$
  EndIf
  Wend

Else
  MessageRequester("Information", "The requester was canceled.", 0) 
EndIf
Et la compilation à marché ! Je suis trop content. 8) 8) 8)

Fin de l'aventure.
Je vais faire des tests plus avancé mais c'est déjà une belle victoire.
P.S : Je déteste linux, c'est un truc de masochiste. Désormais j'appellerai les fan de linux des sudomites ! :mrgreen:
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Re: PB6 sur Raspberry Pi

Message par case »

:D quelle expérience , merci du partage
ImageImage
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: PB6 sur Raspberry Pi

Message par falsam »

Hello Ar-s. Merci pour ce partage d'expérience.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Marc56
Messages : 2197
Inscription : sam. 08/févr./2014 15:19

Re: PB6 sur Raspberry Pi

Message par Marc56 »

Merci pour le didacticiel.

Ps. checkinstall.sh n'est pas écrit en Python, c'est un simple script shell, l'équivalent d'un batch sous Windows.
La première ligne du script (appelée Shebang indique au système avec quoi le lancer)
C'est la seule ligne d'un script (la première) où le caractère de commentaire (#) est ignoré.
#!/bin/sh indique que le script est interprété par le shell sh, qui est sur les systèmes linux le plus souvent bash, il en existe plein d'autres csh, zsh, ksh etc (tout comme sous windows on a command.com pour win 9x et cmd.exe pour la génération NT)
Pour simplifier les scripts, on met sh qui est un lien symbolique vers le vrai shell (taper: ls -l /bin/sh) et permet de lancer de la même façon quelque soit le shell utilisé.

le ./ qu'on met pour lancer un programme sert à forcer son lancement bien qu'on soit déjà dans le répertoire.
On peut aussi préciser le chemin complet ou relatif ex:
$ /usr/home/purebasic/check _install.sh
$ ~/purebasic/checkinstall.sh
On doit taper l'extension car elle fait partie du nom complet.
C'est une sécurité unix de ne pas permettre de lancer un programme par son simple nom, car comme le système ne s'occupe pas des extensions, si on tapait * alors tous les programmes du répertoire se lancent ensemble...
(on peut modifier ça en ajoutant un . dans la variable PATH, mais ça peut faire des dégâts)
L'autre alternative pour lancer un script est de le lancer en paramètre du shell.
Pareil, on ne tapes que 'sh' quelque soit le shell utilisé.
Ex:
$ sh checkinstall.sh

Pour connaitre le type d'un fichier, on utilise la commande file
$ file <fichier>

Pour voir la page de manuel du shell
$ man bash
Pour chercher quelque chose dans la page
/<mot_à_trouver>
n (next) pour aller a suivant
p (previous) pour aller au précédent
q (quit) pour quitter
(Ce sont les commandes du pager less qui est souvent déclaré par défaut)

:wink:
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: PB6 sur Raspberry Pi

Message par Ar-S »

Merci pour ces précisions Marc56
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: PB6 sur Raspberry Pi

Message par Ollivier »

Je suis resté collé à la qualification de sudomites...
S'il n'y avait pas 25000 morts de faim chaque jour, je te dirais que je suis mort de rire.

En gros, t'as réussi à démarrer une console sous PB sous Linux ?
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: PB6 sur Raspberry Pi

Message par Ar-S »

Ollivier a écrit : mar. 15/mars/2022 0:04 Je suis resté collé à la qualification de sudomites...
S'il n'y avait pas 25000 morts de faim chaque jour, je te dirais que je suis mort de rire.
J'avoue j'en suis assez fier :mrgreen:
Ollivier a écrit : mar. 15/mars/2022 0:04 En gros, t'as réussi à démarrer une console sous PB sous Linux ?
C'est ça, et j'en suis assez fier aussi :mrgreen:
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: PB6 sur Raspberry Pi

Message par Ollivier »

Good. Et ça marche ça ?

Code : Tout sélectionner

define pmccntr.i
!asm volatile ("mrc p15, 0, %0, c9, c13, 0" : "=r" (pmccntr));
Debug pmccntr
C'est sensé donner le nombre de cycles d'horloge CPU par paquets de 64 cycles.
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: PB6 sur Raspberry Pi

Message par Ar-S »

Non,
error: ‘pmccntr’ undeclared (first use in this function); did you mean ‘v_pmccntr’?
317 | asm volatile ("mrc p15, 0, %0, c9, c13, 0" : "=r" (pmccntr));
| ^~~~~~~
| v_pmccntr
purebasic.c:317:52: note: each undeclared identifier is reported only once for each function it appears in
purebasic.c:317:1: error: invalid lvalue in ‘asm’ output 0
317 | asm volatile ("mrc p15, 0, %0, c9, c13, 0" : "=r" (pmccntr));
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: PB6 sur Raspberry Pi

Message par Ollivier »

La manuel gcc est tellement big que je m'y perds. Peut-être un préfixe v_ dans v_pmccntr comme le compilateur suggère. Mais, sans tenter moi-même, je te fais perdre du temps...
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: PB6 sur Raspberry Pi

Message par Ar-S »

Je t'avais anticipé. ça ne passe pas non plus.
De toute façon, pour le moment, le PI fonctionne à merveille pour ce qu'il a à faire, à savoir un serveur multimedia. :mrgreen:
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Répondre