Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 10/04/2023, à 01:07

Troletti-Gillot

Fichier impossible à créer

Bonsoir à tous,

Je reviens vers vous suite à mon sujet sur la gestion de la charge de la batterie, car j'aimerai créer un fichier charge_control_end_threshold avec le pourcentage de batterie à partir duquel couper la charge dans /sys/class/power_supply/BAT0, qui est un lien symbolique vers /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0A:00/power_supply/BAT0.

Cependant, je n'arrive pas à en avoir les droits, et même en en faisant un crontab cela ne fonctionne pas:

echo 60 > /sys/class/power_supply/BAT0/charge_control_end_threshold
bash: /sys/class/power_supply/BAT0/charge_control_end_threshold: Permission non accordée

Savez vous s'il existe une solution de contournement?


En vous remerciant par avance,

Bien cordialement.

Hors ligne

#2 Le 10/04/2023, à 08:11

GR 34

Re : Fichier impossible à créer

Salut, je suppose que tu t'es donné les droits sur le fichier (qui fait partie du système) ?


Karantez-vro...  Breizhad on ha lorc'h ennon !
«Les animaux sont mes amis. Et je ne mange pas mes amis.» George Bernard Shaw
https://www.l214.com/

Hors ligne

#3 Le 10/04/2023, à 08:18

gl38

Re : Fichier impossible à créer

On peut supposer qu'il faut être root pour pouvoir écrire dans un fichier système.
On peut aussi lancer un cron en étant root, ça ne marchera pas si tu le lances avec ton identité.
Cordialement,
Guy

Hors ligne

#4 Le 10/04/2023, à 13:30

Troletti-Gillot

Re : Fichier impossible à créer

Bonjour, j'ai effectivement mis la commande dans le crontab de root:

root@HIDDEN:~# crontab -l
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
# m h  dom mon dow   command
@reboot fstrim -a
@reboot echo 60 > /sys/class/power_supply/BAT0/charge_control_end_threshold

Et il a l'air d'avoir les droits en écriture dans le dossier:

lrwxrwxrwx 1 root root 0 avril  6 15:13 BAT0 -> ../../devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0A:00/power_supply/BAT0
root@CHM-407N-ZTG2:~# ls -l /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0A:00/power_supply/ |grep BAT0
d-wx--x--x 4 root root 0 avril 10 01:59 BAT0

En vous remerciant,
Bien cordialement.

Hors ligne

#5 Le 10/04/2023, à 13:46

Watael

Re : Fichier impossible à créer

s'il y a des opérations à effectuer sur le système à chaque reboot, cela peut probablement être configuré de façon permanente quelque part sous /etc...
sans recourir à cron.

Dernière modification par Watael (Le 10/04/2023, à 13:47)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#6 Le 10/04/2023, à 14:31

jplemoine

Re : Fichier impossible à créer

Surtout que l'utilisation du crontab est "old-school"....
Il faut créer un fichier dans /etc/cron.d afin d'éviter de se le faire supprimer par le système.
Et oui, il y a l'utilisation des "runlevels" (/etc/rcX.d) qui est beaucoup plus propre car cela permet de définir l'ordre d'execution des différents scripts.

NB : l'utilisation des répertoires *.d en lieu et place de *.conf est à privilégier depuis plusieurs versions. Cela permet de séparer les acteurs.
- *.conf "appartient" au système et peut être modifié lors qu'une mise à jour / mise à niveau
- *.d est un répertoire "appartenant" à l'utilisateur et ne doit pas être modifié (une fois créé)  car il contient la personnalisation et/ou des paramètres spécifiques.


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#7 Le 10/04/2023, à 17:00

diesel

Re : Fichier impossible à créer

jplemoine a écrit :

Surtout que l'utilisation du crontab est "old-school"....
...
Et oui, il y a l'utilisation des "runlevels" (/etc/rcX.d) qui est beaucoup plus propre car cela permet de définir l'ordre d’exécution des différents scripts.

Ah ah ah ! Parce que l'utilisation des runlevels, c'est pas old school ?

Depuis, je crois qu'on a inventé systemd.

Amicalement.

Jean-Marie


Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.

Hors ligne

#8 Le 10/04/2023, à 18:56

jplemoine

Re : Fichier impossible à créer

diesel a écrit :

Depuis, je crois qu'on a inventé systemd.

J'ai appris un truc : je pensais que systemd s'appuyait sur les runlevels...
Donc, systemd pas runlevel...


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#9 Le 10/04/2023, à 19:34

Troletti-Gillot

Re : Fichier impossible à créer

Je vous remercie de vos renseignements, mais cela ne répond pas à mon problème. L'action est normalement à faire qu'une fois; j'avais lu de le mettre dans cron pour résoudre le problème de droits, mais il n'en est rien...

Hors ligne

#10 Le 10/04/2023, à 20:28

diesel

Re : Fichier impossible à créer

jplemoine a écrit :
diesel a écrit :

Depuis, je crois qu'on a inventé systemd.

J'ai appris un truc : je pensais que systemd s'appuyait sur les runlevels...
Donc, systemd pas runlevel...

Non.

Les runlevels, c'est de l'init system V. Ça date de 1983 (c'est pas jeune) UNIX system V

systemd s'affranchit de tout ça et offre des fonctionnalités sans commune mesure avec l'init system V.

Cependant, les distributions linux qui utilisent systemd conservent aussi une init system V qui fonctionne, ne serait-ce que pour pouvoir démarrer des services qui n'ont pas encore migré vers systemd.

Ainsi, on peut encore utiliser l'init system V pour démarrer des services même si ce n'est pas recommandé.

Amicalement.

Jean-Marie


Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.

Hors ligne

#11 Le 11/04/2023, à 07:28

bruno

Re : Fichier impossible à créer

Bonjour,

Seul root peut écrire dans le dossier que tu indiques.
Cela devrait fonctionner avec cron (en root) mais tu peux essayer avec une unité de service systemd. Il faut créer un fichier /etc/systemd/system/battery.service contenant :

[Unit]
Description=Seuil d'arrêt de charge de la batterie

[Service]
Type=oneshot
ExecStart=/usr/bin/sh -c "echo 60 > /sys/class/power_supply/BAT0/charge_control_end_threshold"

[Install]
WantedBy=multi-user.target

Puis activer le service avec :

sudo systemctl enable battery.service

Il te suffira de vérifier le contenu de  /sys/class/power_supply/BAT0/charge_control_end_threshold au prochain démarrage.

--
#6 : tu confonds visiblement la commande crontab et le fichier /etc/crontab…

Dernière modification par bruno (Le 11/04/2023, à 08:49)

En ligne

#12 Le 11/04/2023, à 08:26

diesel

Re : Fichier impossible à créer

Euh..., Bruno, tu es certain du /etc/systemd/.system/battery.service ? Avec un "." devant "system"

Amicalement.

Jean-Marie


Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.

Hors ligne

#13 Le 11/04/2023, à 08:50

bruno

Re : Fichier impossible à créer

Merci, corrigé. wink

En ligne

#14 Le 11/04/2023, à 11:49

Troletti-Gillot

Re : Fichier impossible à créer

Bonjour,

Je vous remercie et tenterai ce soir de redémarrer le PC!

Hors ligne

#15 Le 12/04/2023, à 15:03

Troletti-Gillot

Re : Fichier impossible à créer

Bonjour,

Malheureusement cela ne fonctionne pas, voici ce que j'ai après redémarrage du PC:

× battery.service - Seuil d'arrêt de charge de la batterie
     Loaded: loaded (/etc/systemd/system/battery.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Tue 2023-04-11 22:15:51 CEST; 6min ago
    Process: 887 ExecStart=/usr/bin/sh -c echo 60 > /sys/class/power_supply/BAT0/charge_control_end_threshold (code=exited, status=2)
   Main PID: 887 (code=exited, status=2)
        CPU: 634us

avril 11 22:15:51 HIDDEN systemd[1]: Starting Seuil d'arrêt de charge de la batterie...
avril 11 22:15:51 HIDDEN sh[887]: /usr/bin/sh: 1: cannot create /sys/class/power_supply/BAT0/charge_control_end_threshold: Permission denied
avril 11 22:15:51 HIDDEN systemd[1]: battery.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
avril 11 22:15:51 HIDDEN systemd[1]: battery.service: Failed with result 'exit-code'.
avril 11 22:15:51 HIDDEN systemd[1]: Failed to start Seuil d'arrêt de charge de la batterie.

Bien cordialement.

Hors ligne

#16 Le 12/04/2023, à 15:29

bruno

Re : Fichier impossible à créer

Si le fichier n'existe pas au préalable, cela ne peut pas fonctionner.
À vérifier avec :

ls -l /sys/class/power_supply/BAT*/charge_control_end_threshold 

Si c'est un portable ASUS, il y a des infos supplémentaires en anglais sur le Wiki ArchLinux

En ligne

#17 Le 12/04/2023, à 15:30

Troletti-Gillot

Re : Fichier impossible à créer

En effet, le fichier n'existe pas, mais comment le créer? Je n'ai vraisemblablement pas les droits pour cela...

Il ne s'agit pas d'un Asus mais HP Elitebook 1040 G9.

Hors ligne

#18 Le 12/04/2023, à 18:05

iznobe

Re : Fichier impossible à créer

En effet, le fichier n'existe pas, mais comment le créer?

Salut ,
Si il n ' y a rien a y ecrire dedans et qu ' il suffit de creer un fichier vide , donne voir le retour de :

sudo touch /sys/class/power_supply/BAT0/charge_control_end_threshold

il y a probablement d' autres fichiers a creer , mais comme tu ne donnes pas le retour de la commande demandée par @bruno ...


retour utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .

Hors ligne

#19 Le 12/04/2023, à 18:39

bruno

Re : Fichier impossible à créer

On ne peut pas créer un fichier ou un dossier, même en root, dans sysfs. C'est un système de fichier virtuel géré par le noyau (et ses modules).

Et désolé, si j'avais lu plus attentivement le premier message je te l'aurais dit dès le départ.

Dernière modification par bruno (Le 12/04/2023, à 19:41)

En ligne

#20 Le 12/04/2023, à 18:55

Troletti-Gillot

Re : Fichier impossible à créer

En effet, je suis toujours bloqué:

trolettigillot@HIDDEN:~$ sudo touch /sys/class/power_supply/BAT0/charge_control_end_threshold
[sudo] Mot de passe de trolettigillot :
touch: impossible de faire un touch '/sys/class/power_supply/BAT0/charge_control_end_threshold': Permission non accordée
trolettigillot@HIDDEN:~$ ls -l /sys/class/power_supply/BAT*/charge_control_end_threshold 
ls: impossible d'accéder à '/sys/class/power_supply/BAT*/charge_control_end_threshold': Aucun fichier ou dossier de ce type

Donc il faut installer un module au kernel? J'ai peur de casser quelque chose...

Hors ligne

#21 Le 13/04/2023, à 06:27

bruno

Re : Fichier impossible à créer

Si le fichier n'existe pas c'est que ton matériel, ou le pilote Linux correspondant, ne prend pas en charge cette fonctionnalité.

En ligne

#22 Le 13/04/2023, à 11:21

Troletti-Gillot

Re : Fichier impossible à créer

Bonjour,

Je vous remercie de vos renseignements, et pense donc abandonner.


Bien cordialement.

Hors ligne