Bonjour à tous,
J'ai installé PostMarketOS sur mon fairphone 4.
J'ai réussi à compiler le projet dans le but de faire avancer le driver d'une caméra IMX412 dispo dans le noyau linux pour le porter vers une caméra IMX576.
Seulement, comme je n'ai jamais développé/déboguer de driver bas niveau sous linux, je me demandais quels sont les outils pour effectuer ce genre de déboguage ? et par ou commencer aussi.
Spécification IMX412 :
https://www.sony-semicon.com/files/62/flyer_security/IMX412-AACK_Flyer.pdf
Spécification complète IMX576 :
http://static6.arrow.com/aropdfconversion/c5d8dc9c6ca246360621f83c2e46fca339b7e364/imx576-aakh5-c_4.0.0.pdf
De premiers travaux ont été initié ici.
https://github.com/z3ntu/linux/tree/fp4-6.1.y-wip3-camera/drivers
Dont,
arch/arm64/configs/fp4_defconfig
CONFIG_VIDEO_IMX412=y
drivers/media/i2c/imx412.c
Source du driver IMX412 dispo ici.
https://github.com/z3ntu/linux/blob/fp4-6.1.y-wip3-camera/drivers/media/i2c/imx412.c
Merci pour vos retours.
# directement auprès du projet
Posté par tkr . Évalué à 1.
je pense que le plus simple serait de demander sur le irc/matrix, ou sur leur gitlab, ton problème
l'expertise est beaucoup trop pointue, pour gérer l'APN, seuls quelques uns s'y sont collés
# modinfo
Posté par BAud (site web personnel) . Évalué à 2.
tu as
modinfo imx412
qui devrait te donner les flags/paramètres1 prévus pour démarrer le pilotebon, pas de bol, je ne l'ai pas sur mon noyau 6.6.28-desktop-1.mga10 :/
modinfo imx
tab
# pour l'autocomplétion me propose seulement :imx208 imx214 imx219 imx258 imx274 imx290 imx296 imx319 imx355
c'est ballot pour un pilote de caméra de ne pas se baser sur uvcvideo qui est le standard (bon ok, plutôt pour les webcams en USB :/), au moins ils ont l'air d'utiliser
v4l2
…déjà un
lspci -knn ; lsusb ; lsusb -t
# permettrait de lister plus précisément ton matérielpour revenir au pilote, il pourrait logguer des infos avec le bon flag pour le charger
modprobe -i imx412 debug=2
# par exemple, si c'est implémenté….modprobe -r imx412
# pour décharger le module… tu vas devoir jouer avec les 2 commandes régulièrement :-)par exemple pour ueagle-atm que je connais bien/mieux : parm: debug:module debug level (0=off,1=on,2=verbose) (uint) ↩
[^] # Re: modinfo
Posté par electro575 . Évalué à 2. Dernière modification le 02 mai 2024 à 15:22.
J'ai pris le sujet en main.
Les noeuds sont bien créé dont voici le schéma global.
Schema global des noeuds
Pour résumé, c'est une implémentation du driver CAMSS à base de v4l2.
Qcom-camss
Avec ceci, j'ai pu effectuer les liens entre les entités (en vert).
-imx412 (camera)
-CSIPHY3
-CSID0
-VFE0_RDIO0
-VFE0_VIDEO0 -> /dev/video0
Ajuster le format.
Effectuer l'acquisition d'une image depuis la caméra IMX412.
Les logs ici,
Log haut niveau
Logs bas niveau,
Log bas niveau
J'ai du mal à interpreter les résultats de dmesg n'étant pas de l'info.
Je vois que c'est un problème d'horloge qui reste à 'off' mais je ne vois pas comment débloquer la situation !
La caméra est géré par liaison I2C et c'est le controlleur du driver camss qui renvoie cette erreur.
Si vous avez des suggestions pour débboguer ou un contact qui a déjà travaillé sur ce genre de problème, je suis preneur ! Ou un forum orienté sur ce genre de problématique.
[^] # Re: modinfo
Posté par BAud (site web personnel) . Évalué à 2.
bah déjà tu as un kernel panic ('fin bon un warning mais c'est à peine mieux pour prendre en compte ton matériel) :/ ce n'est jamais très bon : souci d'initialisation de données, non adaptation/reconnaissance du matériel connecté… ça peut venir de pleins de choses.
L'idée c'est d'être robuste et pouvoir réinitialiser au déchargement / rechargement du module…
=> on ne voit pas très bien quelle action génère quelle trace : c'est toujours bien d'avoir un terminal affichant le
journalctl -f
en parallèle d'un terminal où l'on effectue les actions pour déterminer la réponse effective à chaque action.=> pareil, je ne vois pas pourquoi tu passes de
à
pourquoi 2 versions différentes ? ça correspond à quoi ?
ah c'était du dmesg et pas du journalctl ? => indique ta méthodologie pour débugguer :-)
modprobe -i nom_module
dbus
ne vient pas mettre la grouille au passage…)En gros, savoir effectuer les actions séquentiellement et manuellement plutôt que de s'appuyer sur trop d'automatisation qui complique l'analyse…
déjà voir avec les utilisateurs/développeurs de ce pilote s'ils ont un forum/une mailing-list/un chan IRC ou autre…
Ils te demanderont sans doute des informations complémentaires :
uname -a
# pour voir quel noyau tu utiliseslspci -knn
# pour voir quel matériel tu as et les éventuels pilotes le gérantlsusb ; lsusb --tree
# si c'est connecté en USB (a priori non) et quoi est connecté oùd'après https://www.kernel.org/doc/html/latest/admin-guide/media/qcom_camss.html tu dois pouvoir contacter les gens de Linaro qui semblent avoir repris le sujet (je doute que qualcomm soit très coopératif vu que leurs docs' ne sont plus en ligne et dataient de 2016/2018…)
ah… je vois que c'est GKH qui est intervenu sur
https://git.codelinaro.org/clo/la/kernel/msm-3.18/
bah, tu peux essayer de le contacter, il est sympa :-) (je l'ai rencontré au Fosdem et j'avais un peu bossé avec lui pour ueagle-atm), il t'orientera peut-être mieux vers des utilisateurs plus spécialistes que lui (évite la LKML, spa le meilleur endroit pour obtenir du support… outre le fait que tu risques de faire exploser ta boîte mail)
Sinon, je vois que tu as un fairphone : essaie d'abord de voir sur leurs forums s'il y a d'autres utilisateurs dans ton cas.
A priori, tu n'auras pas besoin de recompiler de noyau, les pilotes ça suffit généralement si les interfaces n'ont pas trop changé…
Bon courage, tu n'es pas à l'abri de trouver un autre utilisateur ayant réussi à le faire fonctionner :-) Notez bien ce qui fonctionne correctement pour pouvoir avancer (et y revenir ensuite pour avoir une méthodologie reproductible)
[^] # Re: modinfo
Posté par electro575 . Évalué à 2.
Merci !
Voici les commandes passées.
Commandes
Les logs de la commande gst-launch.
Log gst-launch
Log de dmesg.
Dmesg
La comme ça, je n'ai pas plus.
On m'a conseillé d'augmenter le niveau de verbosité et d'utiliser gdb.
Il y a d'autres outils pour déboguer.
Pour ton contact, je pourrais le joindre par quel moyen ?
Je vais voir pour d'autres sites aussi ou IRC oui
[^] # Re: modinfo
Posté par BAud (site web personnel) . Évalué à 2.
bin, 3 call trace spa engageant :/
ça c'est pour le
gst-launch
, unstrace
aussi donnerait plus d'infos (mais bon difficilement interprétable).l'erreur a l'air d'être à plus bas niveau dans acb3000.camss
mail :-)
commence par les forums fairphone, il y aura bien quelqu'un qui a le même matériel que toi : ou est-ce un ajout spécifique que tu fais ?
[^] # Re: modinfo
Posté par electro575 . Évalué à 1. Dernière modification le 02 mai 2024 à 21:28.
Mais ou est caché le mail de ce brave monsieur ?
En fait, j'essaie de faire fonctionner la camera IMX576 à partir du driver de la caméra IMX412.
Donc sur le modèle fairphone 4, tout le monde a cette caméra mais pas le même OS.
Il existe tellement d'OS, mais j'essaie faire fonctionner cette partie pour PostmarketOS qui est un dérivé d'Alpine Linux.
C'est à priori l'OS qui aurait le plus de matériel maintenu avec une bonne gestion des codes.
Ca permettrait de faire avancer les choses sur ce téléphone que j'ai acheté et pour cet OS.
Et puis, ça me fait découvrir aussi ce monde, de nouvelles techniques que je n'ai pas encore touché, ou de loin :)
# complément
Posté par BAud (site web personnel) . Évalué à 2.
tu as regardé sur la ML linux-media ?
https://www.spinics.net/lists/linux-media/msg215880.html
cela parle de imx577 utilisant imx412…
il y a peut-être des infos à grappiller :-)
[^] # Re: complément
Posté par electro575 . Évalué à 1.
Ca à l'air interessant mais ou peut-on trouver ce qui a été modifié dans les fichiers ?
[^] # Re: complément
Posté par BAud (site web personnel) . Évalué à 2.
ah, bah ça, c'est le jeu de piste ;-)
[^] # Re: complément
Posté par electro575 . Évalué à 1. Dernière modification le 03 mai 2024 à 11:06.
Une piste récente serait la suivante.
Partir de ce code car créé par Qualcomm et repris par Linaro.
https://git.codelinaro.org/clo/la/platform/vendor/opensource/camera-kernel
Et suivre ces commentaires.
Essayons de décrypter !
Que ce sont ces parties à voir précisement dans le code ?
La ça me parait clair mais quand on ne connait pas bien la structure du code et comment sont appellés les différentes fonctions, c'est un peu obscure !
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.