LINUX.ORG.RU
решено ФорумAdmin

ubuntu 18 lts + eth speed 100Mb

 , , , ,


2

2

Всех приветствую.

Есть система на ubuntu 18.04. Там есть сетевка на гигабит. Но для конкретной системы нужно чтобы там сетевка не автоопределением баловалась, а стоял конкретный 100mb full duplex.

Как это сделать из консоли очевидно: ethtool или mii-tool. Но мне нужно чтобы это сохранялось при перезагрузке. И вот тут тупик.

Максимальный совет это сделать свой скрипт в /etc/init.d и потом его при помощи update-rc.d прописать во все уровни загрузки. Но update-rc.d молча отрабатывает и не запускается. Что делал:

ls /etc/init.d
100Mbs

# update-rc.d -f 100Mbs defaults

Второй вариант

# cat /etc/systemd/network/10-eth0.link
[Match]
  OriginalName=eth0
[Link]
  BitsPerSecond=100M
  Duplex=full
  AutoNegotiation=disable

Нигде не нашел какие варинты приемлет AutoNegotiation.

Тоже мимо.

Как вообще в убунте это делается?

Вариант руками неделать ссылок в /etc/rcX.d не предлагать.

★★★★★

Последнее исправление: yax123 (всего исправлений: 2)

Что за сетевуха?

А какая конечная цель? Интерфейс на том конце провода может только 100 мбит и auto negotiation в каких-то случаях срабатывает неправильно?

damix9 ★★★
()
Ответ на: комментарий от Morin

мы сеть через netplan настраиваем

yax123 ★★★★★
() автор топика
Ответ на: комментарий от damix9

Что за сетевуха? не важно, через ethtool все работает

А какая конечная цель?

конечная цель: установить настройки сетевого интерфейса на постоянной основе

Интерфейс на том конце провода может только 100 мбит и auto negotiation в каких-то случаях срабатывает неправильно?

все работае правильно, нужно установить такую скорость.

yax123 ★★★★★
() автор топика

похоже sustemd тут не доработан:

# journalctl --system
...
июн 22 18:44:19 test1tx2 systemd-udevd[3107]: link_config: Cannot get device settings for eth1 : Invalid argument
июн 22 18:44:19 test1tx2 systemd-udevd[3107]: Could not set speed or duplex of eth1 to 100 Mbps (full): Invalid argument
...
yax123 ★★★★★
() автор топика
Ответ на: комментарий от yax123

как обычно работает только олдскул и харкор:

SUBSYSTEM=="net", DRIVERS=="eqos" RUN+="/sbin/ethtool -s eth0 speed 100 duplex full autoneg off "

systemd отстой!

yax123 ★★★★★
() автор топика
Последнее исправление: yax123 (всего исправлений: 1)
Ответ на: комментарий от yax123

А в .link файле ты AutoNegotiation=off, разумеется, не догадался, только тут? systemd у него виноват, ага.

P.S. For negative settings, the strings 0, no, false and off are equivalent © man systemd.syntax

gremlin_the_red ★★★★★
()
Ответ на: комментарий от gremlin_the_red

Ставил конечно. И disable и off и false, не помогает.

Ты, если такой грамотный, сам попробуй или утрись.

Конечно, я может еще что-то забыл или не знаю. Но вот пока так.

yax123 ★★★★★
() автор топика
Ответ на: комментарий от yax123

systemd отстой!

«Никогда такого не было, и вот опять»

ex-kiev
()

Я хз, но есть же рецепт, как вернуть божественный /etc/rc.local средствами systemd. Я пробовал, все извращения с ethtool работают (у меня плохой длинный кабель, нужен халф) - пробовал и на 18.04, и на 20.04

Shadow ★★★★★
()
Ответ на: комментарий от Shadow

Я хз, но есть же рецепт, как вернуть божественный /etc/rc.local средствами systemd

Эм, «вернуть»? А по дефолту он не работает? У меня в debian 11 (в нём systemd) работает.

firkax ★★★★★
()
Ответ на: комментарий от Shadow

Это да, для такой задачи он подходит.

anc ★★★★★
()
Ответ на: комментарий от Shadow

Работает, ты плохо искал :) Создаёшь файл, делаешь его запускным и юнит rc-local.service его выполняет :)

Dimez ★★★★★
()

хинт: порт можно перевести в нужный режим на свитче

но системд - говно, да

Rost ★★★★★
()
Ответ на: комментарий от Rost

хинт: порт можно перевести в нужный режим на свитче

1. Если он есть.
2. Если он умеет.

anc ★★★★★
()

У меня на этой же версии дистрибутива была похожая проблема, только я наоборот хотел включить auto negotiation. Убрал костыль

systemctl disable root-resume.service
перезапускавший r8169, усыпил, затем разбудил комп, смотрю, а сеть есть. Разве что полудуплекс, и auto negotiation выключен. Тогда я в network manager'е в настройках «проводного соединения» поставил галку Allow auto-negotiation и переподключился. Теперь и дуплекс полный.
$ ethtool enp30s0
Settings for enp30s0:
        Supported ports: [ TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Supported pause frame use: Symmetric Receive-only
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Advertised pause frame use: Symmetric Receive-only
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Link partner advertised link modes:  10baseT/Half 10baseT/Full 
                                             100baseT/Half 100baseT/Full 
        Link partner advertised pause frame use: No
        Link partner advertised auto-negotiation: Yes
        Link partner advertised FEC modes: Not reported
        Speed: 100Mb/s
        Duplex: Full
        Port: MII
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
Cannot get wake-on-lan settings: Operation not permitted
        Current message level: 0x00000033 (51)
                               drv probe ifdown ifup
        Link detected: yes
Вроде все работает, как ожидается.

В том же графическом меню, если отжать указанную галку, можно задать скорость и дуплекс.

damix9 ★★★
()
Последнее исправление: damix9 (всего исправлений: 1)
Ответ на: комментарий от damix9

Проблема в том что у меня нет графической консоли. Максимум доступ по ssh. И городить там графику я там не буду. Это некое устройство на просторах нашей необъятной страный с доступом через пару впн-ов внутри рдп и энидеска.

yax123 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.