Réseau : automatiser ethtool ?

Tags: #<Tag:0x00007f63f1ef79a8> #<Tag:0x00007f63f1ef7868>

Bonjour,
j’ai récupéré un (vieil) ordinateur que je cherche à utiliser comme serveur, mais j’ai un souci de connexion : je l’ai paramétré en IP statique, mais l’auto-négociation ethernet ne fonctionne pas (j’ai plusieurs fois un message “autonegotiation failed (speed/duplex)”). Je peux manuellement passer au travers, en utilisant
ethtool -s enp2s21 speed 10 duplex half autoneg off
qui me permet de me connecter, mais je suis obligé de rentrer manuellement cette commande à chaque démarrage, ce qui est gênant.

J’ai essayé plusieurs manières d’automatiser la commande (via pre-up et post-up dans /etc/network/interfaces et via des options dans ce même fichiers (link-speed, link-duplex, etc), mais à chaque reboot, ces modifications semblent ignorées et je dois accéder manuellement au serveur pour refaire les réglages avec ethtool.

Y’a-t-il une syntaxe précise à respecter dans le fichier interfaces que je n’aurais pas utilisée? Sinon, comment faire en sorte que le réglage soit persistant ?

Une solution serait de te servir de networkd, via systemd il y a la possibilité de lui configurer le duplex et l’auto-négocation :
https://www.freedesktop.org/software/systemd/man/systemd.link.html

Cela t’oblige par contre à mettre un peu les mains dans le cambouis pour te créer une unit-file.

Dans ce genre là vite fait :

[Unit]
Description=Disable auto-negotiation for %i
Requires=sys-subsystem-net-devices-%i.device
After=sys-subsystem-net-devices-%i.device

[Service]
ExecStart=/usr/bin/ethtool -s %i duplex half speed 10 autoneg off
Type=oneshot

[Install]
WantedBy=multi-user.target

Cela a été étudié et résolu précédemment sur ce forum : https://www.debian-fr.org/t/pre-up-ethtool-dans-etc-network-interfaces/52527


AnonymousCoward

Même si ifupdown a beaucoup de problèmes, ce n’est pas pour autant une raison pour aller raconter que les dernières poudres de perlinpinpin (networkd et netplan.io) sont la solution à tous les problèmes en matière de réseau. C’est complètement faux.

Sans compter que ces deux alternatives ont déjà fort à faire pour être au niveau de ifupdown.


AnonymousCoward

Bonjour, merci beaucoup :slight_smile:
En fait, j’ai l’impression que cela revient à exécuter un script au démarrage non ?
Mais si ça ne fonctionne pas avec un bash dans init.d (j’ai aussi essayé ça), ça marcherait avec networkd ?

@AnonymousCoward justement, j’ai lu ce sujet du forum (et beaucoup d’autres), mais les solutions présentées ne fonctionnaient pas. C’est aussi pour ça que j’ai demandé si une syntaxe particulière était à respecter dans le fichier interfaces (à quel endroit placer les pre-up, post-up, etc)

tu peux me citer un passage de mon message où j’incline dans ce sens ?

Si je fais cette proposition c’est tous simplement qu’en ce moment j’en mange régulièrement.

https://www.debian-fr.org/t/utiliser-ipv6/76717/4

https://www.debian-fr.org/t/dual-stack-avec-networkd/76266

Sur ce, je vais sortir soigner mon allergie à systemd.


AnonymousCoward

Et en faisant comme cela ?

iface ethX inet static
    up ethtool --change $IFACE autoneg off speed 10 duplex half
    address 192.168.X.Y/24

Mais c’est pour raccorder un vieil ordi à un autre directement via un cordon ? Je veux dire, sans passer par un switch / hub ?


AnonymousCoward

Comme tu veux mais je vois pas en quoi ma réponse dans CE sujet pousse à systématiquement utilisé Networkd ou Netplan, je ne propos qu’une solution.

Tu fais ce que tu veux mais évite de tirer des conclusion hâtive sur mes propos, je n’ai pas la science infuse et je ne suis pas un gourou de systemd.

L’un des liens propose une astuce et l’autre une par mi tant d’autre solution fonctionnelle.