Windows 10 と Ubuntu 22.04 LTS を実行するデュアル ブート システムを使用していますが、有線接続が正しく機能しないようです。次のことを試しました。
ethtoolをインストールしました
sudo apt-get install ethtool
そしてコマンドを実行した
sudo ethtool -s ens5f5 autoneg off speed 100 duplex full
ここで、ens5f5 は、先ほど ifconfig で取得したイーサネット インターフェイスです。
私はそれを見つけました18.04 で自宅のイーサネット ネットワークに接続できない - ケーブルが外れているしかし、その解決策を実装して速度テストを実行すると、WiFi接続を使用する場合よりもはるかに遅くなります。速度を1000に置き換えようとしましたが、次のエラーが返されます: netlinkエラー: 無効な引数
Wi-Fi の速度には満足していますが、イーサネット接続が許容できる速度で動作しない理由がわかりません。
答え1
問題が解決しました
Ubuntu 22.04 を再インストールしてから実行します。
sudo ethtool -s ens5f5 autoneg on speed 100 duplex full
スピード テストでは許容できる速度 (ダウンロード速度 93.45) を達成できました。autoneg をオフからオンに変更したので、それが役立ったのか、Ubuntu の新規インストールが原因なのか、あるいはその両方が原因なのかはわかりませんが、とりあえずこれでよしとします。
次に、コンピューターを起動するたびにコマンドを実行しなくても済むように、起動時に実行するスクリプトを作成しました。
まず、以下の例のように Systemd サービス ファイルを作成します (私が作成したファイルは /etc/systemd/system/start-ethernet.service です)。
[Unit]
After=network.target
[Service]
ExecStart=/usr/local/bin/start-ethernet.sh
[Install]
WantedBy=default.target
After: スクリプトをいつ実行するかを systemd に指示します。この場合、スクリプトはネットワーク接続後に実行されます。他の例としては、mysql.target などがあります。
ExecStart: このフィールドは、起動時に実行される実際のスクリプトへのフルパスを提供します。
WantedBy: systemd ユニットをどのブートターゲットにインストールするか
Ubuntu システムの起動時に実行されるスクリプトを作成します。上記の手順 1 で指定したように、新しいスクリプトのパスと名前は /usr/local/bin/start-ethernet.sh です。
以下はそのようなスクリプトの例です。
#!/bin/bash
ethtool -s ens5f5 autoneg on speed 100 duplex full
Systemd サービス ユニットとスクリプトの両方に適切な権限を設定します。
$ sudo chmod 744 /usr/local/bin/start-ethernet.sh
$ sudo chmod 664 /etc/systemd/system/start-ethernet.service
次に、サービス ユニットを有効にします。
$ sudo systemctl daemon-reload
$ sudo systemctl enable start-ethernet.service
これでシステムを再起動する準備ができました。再起動すると、有線接続がアクティブになります。
起動スクリプトの作成と実行の手順は次の場所にあります。https://linuxconfig.org/how-to-run-script-on-startup-on-ubuntu-22-04-jammy-jellyfish-server-desktopそして、それを自分用にカスタマイズしました。