どうすればいいのか分からないので、ここにいるすべての人に助けを求めます。
簡単に言えば、背景の詳細
私のRaspberry Pi 5にはUSB3 2.5gb NICが接続されています。(このSBCには独自の1GB NICも内蔵されています)。オペレーティングシステムRaspberry Pi OS Lite 64ビットをインストールしました。Debian バージョン: 12 (nerdy)- はい、すべてが更新されました。
ネットワークとネットワークカードが設定されている詳細/投稿は次のとおりです。
- USB3 NICを基本/基本インターフェイスとして使用したいです。
質問 起動/再起動するたびに(しばしば終了および開始も可能)USB3 NICを取り外して再接続して物理的に切断する必要がありました。
インターネットで検索しながら、いくつかのコマンドを提案する投稿を見つけました。私の考えではこれはスクリプトにスタックして実行できます。 Ubuntu、根そしてこの記事はGeekLandから抜粋したものです。すべてが詳細に説明されています。スペイン語で書かれているので、Google翻訳などを使用してください。
私の質問は。 誰かが親切にこれをより永続的な方法で実行し、それを私のシステムに実装する方法を説明できますか?
私の究極の目標は。何らかの方法で私のシステムブートスクリプトに影響を与えますusb3nic.shUSB3 NICを切断して再接続するためのコードを含むスクリプト(それが最善の解決策であれば)スクリプトを開始する前に実行されます私の論理的な考えでは、これが私が経験している問題を解決することができるでしょう。これは一種のカーネル問題のようです。。
私はまた、すべての人にコンパイルを手伝ってくれて親切に頼む。usb3nic.shこれについての私の知識は非常に限られているので、これはシステムの起動を妨げるので、基本的に恐ろしい部分です。
これが出力ですそう思います。これらのスクリプトを作成するには、次のものが必要です。
sudo lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 003: ID 0bda:8156 Realtek Semiconductor Corp. USB 10/100/1G/2.5G LAN
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
sudo lsusb -t
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/2p, 480M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
|__ Port 1: Dev 3, If 0, Class=Vendor Specific Class, Driver=r8152, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/2p, 480M
ls -l /sys/bus/usb/devices/
total 0
lrwxrwxrwx 1 root root 0 Apr 28 14:24 1-0:1.0 -> ../../../devices/platform/axi/1000120000.pcie/1f00200000.usb/xhci-hcd.0/usb1/1-0:1.0
lrwxrwxrwx 1 root root 0 Apr 28 14:24 2-0:1.0 -> ../../../devices/platform/axi/1000120000.pcie/1f00200000.usb/xhci-hcd.0/usb2/2-0:1.0
lrwxrwxrwx 1 root root 0 Apr 28 14:24 2-1 -> ../../../devices/platform/axi/1000120000.pcie/1f00200000.usb/xhci-hcd.0/usb2/2-1
lrwxrwxrwx 1 root root 0 Apr 28 14:24 2-1:1.0 -> ../../../devices/platform/axi/1000120000.pcie/1f00200000.usb/xhci-hcd.0/usb2/2-1/2-1:1.0
lrwxrwxrwx 1 root root 0 Apr 28 14:24 3-0:1.0 -> ../../../devices/platform/axi/1000120000.pcie/1f00300000.usb/xhci-hcd.1/usb3/3-0:1.0
lrwxrwxrwx 1 root root 0 Apr 28 14:24 4-0:1.0 -> ../../../devices/platform/axi/1000120000.pcie/1f00300000.usb/xhci-hcd.1/usb4/4-0:1.0
lrwxrwxrwx 1 root root 0 Apr 28 14:24 usb1 -> ../../../devices/platform/axi/1000120000.pcie/1f00200000.usb/xhci-hcd.0/usb1
lrwxrwxrwx 1 root root 0 Apr 28 14:24 usb2 -> ../../../devices/platform/axi/1000120000.pcie/1f00200000.usb/xhci-hcd.0/usb2
lrwxrwxrwx 1 root root 0 Apr 28 14:24 usb3 -> ../../../devices/platform/axi/1000120000.pcie/1f00300000.usb/xhci-hcd.1/usb3
lrwxrwxrwx 1 root root 0 Apr 28 14:24 usb4 -> ../../../devices/platform/axi/1000120000.pcie/1f00300000.usb/xhci-hcd.1/usb4
lsusb -v
Bus 002 Device 003: ID 0bda:8156 Realtek Semiconductor Corp. USB 10/100/1G/2.5G LAN
Couldn't open device, some information will be missing
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 3.20
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 9
idVendor 0x0bda Realtek Semiconductor Corp.
idProduct 0x8156
bcdDevice 31.00
iManufacturer 1 Realtek
iProduct 2 USB 10/100/1G/2.5G LAN
iSerial 6 001000001
bNumConfigurations 3
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0039
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 256mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 3
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 3
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0002 1x 2 bytes
bInterval 11
bMaxBurst 0
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0068
bNumInterfaces 2
bConfigurationValue 2
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 256mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 2 Communications
bInterfaceSubClass 13
bInterfaceProtocol 0
iInterface 5
CDC Header:
bcdCDC 1.10
CDC Union:
bMasterInterface 0
bSlaveInterface 1
CDC Ethernet:
iMacAddress 3 (??)
bmEthernetStatistics 0x0031501f
wMaxSegmentSize 1518
wNumberMCFilters 0x8000
bNumberPowerFilters 0
CDC NCM:
bcdNcmVersion 1.00
bmNetworkCapabilities 0x2b
8-byte ntb input size
max datagram size
net address
packet filter
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0010 1x 16 bytes
bInterval 11
bMaxBurst 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0
bInterfaceProtocol 1
iInterface 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 2
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0
bInterfaceProtocol 1
iInterface 4
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 3
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 3
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0062
bNumInterfaces 2
bConfigurationValue 3
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 256mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 2 Communications
bInterfaceSubClass 6 Ethernet Networking
bInterfaceProtocol 0
iInterface 5
CDC Header:
bcdCDC 1.10
CDC Union:
bMasterInterface 0
bSlaveInterface 1
CDC Ethernet:
iMacAddress 3 (??)
bmEthernetStatistics 0x0031501f
wMaxSegmentSize 1518
wNumberMCFilters 0x8000
bNumberPowerFilters 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0010 1x 16 bytes
bInterval 11
bMaxBurst 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 2
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 4
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 3
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 3
とても感謝しています!
更新:リクエストした出力をここのコメントに入力してください。
ls -1 /etc/systemd/network/
73-usb-net-by-mac.link
99-default.link
enp0.network
enp1.network
lo.network
---------------------------------------------
/etc/systemd/network/enp0.network
[Match]
#Name=eth0
MACAddress=2c:cf:67:2f:cf:9a
Type=ether
RequiredForOnline=no
[Network]
DHCP=yes
[DHCPv4]
RouteMetric=100
---------------------------------------------
/etc/systemd/network/enp1.network
[Match]
#Name=eth1
MACAddress=00:24:27:88:29:17
Type=ether
RequiredForOnline=no
[Address]
Address=10.0.0.10/24
Broadcast=true
RouteMetric=10
[Network]
DHCP=no
DNS=1.1.1.1
[Route]
Gateway=10.0.0.1
Metric=10
---------------------------------------------
ip l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
link/ether 2c:cf:67:2f:cf:9a brd ff:ff:ff:ff:ff:ff
---------------------------------------------
ip r
nothing, not even error or something
---------------------------------------------
lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 002: ID 0bda:8151 Realtek Semiconductor Corp. RTL8151 Adapteon Business Mobile Networks BV
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 0b05:1a07 ASUSTek Computer, Inc. ROG STRIX SCOPE RX TKL WIRELESS DELUXE
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
大規模なアップデートが必要な時点です 2024-04-30
一つ修正する興味がある人とヘルプリクエスト残りの問題を解決する方法を知っている人がいる場合は、フィードバックをリクエストしてください。
修正する 本当に想像できないものを保管しておきました... 小切手の詳細ここ
sudo apt-get update
sudo apt-get install git -y
git config --global user.name "YourGitHudUserName"
git config --global user.email "YourRegisterdEmailAdressOnGitHudAccount"
sudo apt-get install libusb-1.0-0-dev
sudo git clone https://github.com/mvp/uhubctl
cd uhubctl
sudo make
sudo make install
それから
ip a > status_before_uhubctl.txt
sudo uhubctl -l 1 -a 0 > output_of_uhubctl.txt
ip a > status_after_uhubctl.txt
これはログです
status_before_uhubctl.txt
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen>
link/ether 2c:cf:67:2f:cf:9a brd ff:ff:ff:ff:ff:ff
uhubctl 出力.txt
Current status for hub 2 [1d6b:0003 Linux 6.6.28+rpt-rpi-2712 xhci-hcd xHCI Host Controller xhci-hcd>
Port 1: 0203 power 5gbps U0 enable connect [0bda:8151 Realtek USB 10/100/1G/2.5G LAN 001000001]
Sent power off request
New status for hub 2 [1d6b:0003 Linux 6.6.28+rpt-rpi-2712 xhci-hcd xHCI Host Controller xhci-hcd.0, >
Port 1: 0080 off
Current status for hub 1 [1d6b:0002 Linux 6.6.28+rpt-rpi-2712 xhci-hcd xHCI Host Controller xhci-hcd>
Port 1: 0100 power
Port 2: 0103 power enable connect [0b05:1a07 ASUSTeK ROG STRIX SCOPE RX TKL WIRELESS DELUXE]
Sent power off request
New status for hub 1 [1d6b:0002 Linux 6.6.28+rpt-rpi-2712 xhci-hcd xHCI Host Controller xhci-hcd.0, >
Port 1: 0000 off
Port 2: 0000 off
status_after_uhubctl.txt
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether 2c:cf:67:2f:cf:9a brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:24:27:88:29:17 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.10/24 metric 10 brd 10.0.0.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fd75:a6e1:4b04:360:224:27ff:fe88:2917/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 1758sec preferred_lft 1758sec
inet6 fe80::224:27ff:fe88:2917/64 scope link
valid_lft forever preferred_lft forever
あなたが見たようにイーサネット1ある戻るつまり、NICを物理的に削除して再接続する必要はありません。
今は助けるセクション、誰かが私がどのようにこの問題を解決して削除できるかを説明できますか?下記をご覧ください丸太 または おそらく私はsystemd-networkdを使用しているので、上記のコマンド(デフォルトではUSBポートの電源サイクル)をサービスとしてブートスクリプトに入れることが解決策でした。このアプローチは私が知っているものの中では最高ではないかもしれませんが、効果はあります。"systemd-networkd-wait-online.serviceを起動できません。"一度だけ。 (それとも私は完全に間違っていますか?)
できれば私を助けてください!
ここにいる丸太
systemctl status systemd-networkd-wait-online.service
× systemd-networkd-wait-online.service - Wait for Network to be Configured
Loaded: loaded (/lib/systemd/system/systemd-networkd-wait-online.service; enabled; preset: disabled)
Drop-In: /etc/systemd/system/systemd-networkd-wait-online.service.d
└─override.conf
Active: failed (Result: exit-code) since Tue 2024-04-30 11:14:08 CEST; 24min ago
Docs: man:systemd-networkd-wait-online.service(8)
Process: 416 ExecStart=/lib/systemd/systemd-networkd-wait-online (code=exited, status=1/FAILURE)
Main PID: 416 (code=exited, status=1/FAILURE)
CPU: 9ms
Apr 30 11:12:07 Pi5 systemd[1]: Starting systemd-networkd-wait-online.service - Wait for Network to be Configured...
Apr 30 11:14:08 Pi5 systemd-networkd-wait-online[416]: Timeout occurred while waiting for network connectivity.
Apr 30 11:14:08 Pi5 systemd[1]: systemd-networkd-wait-online.service: Main process exited, code=exited, status=1/FAILURE
Apr 30 11:14:08 Pi5 systemd[1]: systemd-networkd-wait-online.service: Failed with result 'exit-code'.
Apr 30 11:14:08 Pi5 systemd[1]: Failed to start systemd-networkd-wait-online.service - Wait for Network to be Configured.
答え1
プログラムの出力は次のとおりですlsusb
。
Bus 002 Device 003: ID 0bda:8156 Realtek Semiconductor Corp. USB 10/100/1G/2.5G LAN
出力を見てください。
ls -1ong /sys/bus/usb/devices/
このパスは、/sys/devices/pci000:00/*
PCIシステムバスのデバイスを表します。 (マザーボードデータは「バス」と呼ばれる指定されたパスを介して送信されます。)
Sysfsは仮想ファイルシステムですカーネルで使用されます。デバイスとドライバに関する情報、およびシステムに接続されているデバイスを設定および制御するために使用されるいくつかの変更可能な情報。
[Unit]
Description=Reset usb2 on startup
[Service]
ExecStart=bash -c "echo '0' > /sys/bus/usb/devices/usb2/power/autosuspend_delay_ms" && bash -c "echo 'auto' > /sys/bus/usb/devices/usb2/power/control
Type=oneshot
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
ファイルを作成します.service
。上記のテキストをコピーして、次のコマンドを実行します。
sudo nano /etc/systemd/system/usb_reset.service
次に、テキストをナノに貼り付けます。
保存と終了。 (Ctrl+S>はい>入力する>Ctrl+X)
今、次の2つのコマンドを実行してみてください。
新しい .service ファイルを初期化し、サービスを開始します。
sudo systemctl daemon-reload
sudo systemctl enable usb_reset.service
終わる!これにより、ExecStart=
.serviceファイルのコマンドが実行され、usb2
起動するたびに自動的にリセットされます。