TrueNas SCALE braeuchte einen persistenten /udev/rules.d Eintrag

Bohnenhans

Captain
Registriert
Okt. 2022
Beiträge
3.100
Fuer eine 2.5 Gbit Realtek USB braeuchte ich einen Eintrag in udev/rules.d der aber persistent ist - geht das mit TrueNas Scale?
 
  • Gefällt mir
Reaktionen: Crisq
Hmmm bei mir war das nach einem reboot weg.
 
Also ich beantworte das mal selber evtl hat jemand ja auch das mal dass er eigene udev rules bei TrueNAS scale braucht.

Ich kopiere die angepassten udev rules in einem "Pre-Init" Script nach /etc/udev/rules.d und in einem "Post-Init" Script dann erneut einfach 2x weil ich keine Lust habe dass es doch mal fehlt.

=> und "schon" funktioniert es :D damit hat auch die Realtek USB Netzwerkkarte endlich Full-Duplex 2500 das ist ja seit gefühlten Ewigkeiten irgendwas in den Treibern dass die mit Glück wenigstens beim Start Half Duplex läuft oder mit etwas weniger Glück 1000 half duplex und zwar meines Wissens bei ALLEN Linux Distris.

So langsam läuft TrueNAS auch jetzt bei mir auf einem Server - mit ein bisserl Frickeln hier und da aber glaub nichts was das System irgendwie ganz kaputtmacht :D
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Crisq, Tanzmusikus und madmax2010
Und mit dem udev/rules.d fix funktioniert die 2,5 GBit USB Netzwerkkarte echt zuverlässig auch unter TrueNAS wie es aussieht - ohne den ja nur super langsam ..... noch 2-3 Tage muss er kopieren, aber die ersten 24h Dauerlast sind durch. :D

~ 2,3 Gbit Durchschnitt über 24h hinweg ist ein guter Wert. Wenn man googlet findet man dass viele die USB 2.5 Realteks nicht mögen - aber meine Erfahrung ist, wenn die mal "gefixed" sind dann tun die auch klaglos ihren Dienst - die CPU Last durch USB ist auch bei einer kleinen CPU nicht zu merken - bei ITX mit nur einem Steckplatz z.B. in dem schon ein Controller steckt eine gute Alternative wenigstens 2.5 Gbit zu haben.


1702758341528.png
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Crisq
Klasse!
Ich bin zzt bei Xpenology, und schaue nach Alternativen ob ich TrueNas oder Unraid nehme. Ausschlaggebend sind auch ob ich die 2.5gbit Adapter zum Laufen bekomme. Sieht bei dir gut aus. Wie hast du das genau realisiert, also was muss ich in das Skript packen?

Habe 2x Realtek Adapter mit 2.5gbit und einen Club3D den ich wohl für das NAS nehme. Glaub der hat auch Realtek verbaut. Lief an einer Syno seinerzeit stabil.
 
Meine Server sind aktuell FreeBSD klassisch, Arch Linux klassisch, TrueNAS Scale - alle gleich RAIDZ2 + Crypt, die "grossen mit 10 GBit, Truenas mit 2,5

Das TrueNAS gefällt mit echt gut - hab gerade noch nen Display ergänzt - man kann darin auch ein bisserl basteln und zwar sogar bei der SW recht "sauber" basteln - ein dickes Pluis für mich.

Glaube einen Club3D (pollin?) habe ich auch auch noch in der Netzwerkkiste - die 2.5 GBIT USB sind glaub alle Realtek

Das ja bei vielen Linuxen so dass die IDs der Realtek verbogen werden müssen - komisch dass das niermand fixt - ich mach das gefühlt schon seit 3-4 Jahren in allen Linux-Distros :D (naja alle = ubuntus glaub) die 2.5er USB Relteaks laufen wenn man die IDs geremappt hat super ich bin mir sicher ich habe Petabytes schon inzwischen geschaufelt so - und CPU Last ist auch nicht nennenswert.

Also ich kopier den Kram bei truenas scale immer nach /root das musste evtl dann anpassen. wenn das woanders haben willst - ich denke das ist alles vollständig so - sonst nochmal nachfragen

evtl bräuchte man poststart nicht aber war zu faul das herauszufinden, da ich eh da noch anderen Kram drin mache ist mir das auch egal ob ich 1x evtl zu viel kopiere :D

Falls deine usb nicht geht muss man evtl deren ID nachpflegen. (mit ethtool sieht man ja ob half oder fullduplex.)

------[ Dateien ]------------

Bei mir ist unter /root/startstuff/


1x die Datei "50-usb-realtek-net.rules"
1x die Datei "prestart.sh"
1x die Datei "poststart.sh"


Dateirechte in /root/startstuff
Code:
-rw-r--r--  1 root root  3823 Dec 12  2022 50-usb-realtek-net.rules
-rwxr-xr-x  1 root root   259 Dec 27 16:04 poststart.sh
-rwxr-xr-x  1 root root   110 Dec 13 11:59 prestart.sh


Inhalt der Dateien
1. /root/startstuff/prestart.sh
Code:
#!/usr/bin/bash
cp /root/startstuff/50-usb-realtek-net.rules /etc/udev/rules.d/50-usb-realtek-net.rules
exit 0

2. /root/startstuff/poststart.sh
Code:
#!/usr/bin/bash
cp /root/startstuff/50-usb-realtek-net.rules /etc/udev/rules.d/50-usb-realtek-net.rules
exit 0


3. Die Datei /root/startstuff/50-usb-realtek-net.rules
Code:
# This is used to change the default configuration of Realtek USB ethernet adapters

ACTION!="add", GOTO="usb_realtek_net_end"
SUBSYSTEM!="usb", GOTO="usb_realtek_net_end"
ENV{DEVTYPE}!="usb_device", GOTO="usb_realtek_net_end"

# Modify this to change the default value
ENV{REALTEK_MODE1}="1"
ENV{REALTEK_MODE2}="3"

# Realtek
ATTR{idVendor}=="0bda", ATTR{idProduct}=="815[2,3,5,6]", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
ATTR{idVendor}=="0bda", ATTR{idProduct}=="8053", ATTR{bcdDevice}=="e???", ATTR{bConfigurationValue}!="$env{REALTEK_MODE2}", ATTR{bConfigurationValue}="$env{REALTEK_MODE2}"

# Samsung
ATTR{idVendor}=="04e8", ATTR{idProduct}=="a101", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"

# Lenovo
ATTR{idVendor}=="17ef", ATTR{idProduct}=="304f", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
ATTR{idVendor}=="17ef", ATTR{idProduct}=="3052", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
ATTR{idVendor}=="17ef", ATTR{idProduct}=="3054", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
ATTR{idVendor}=="17ef", ATTR{idProduct}=="3057", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
ATTR{idVendor}=="17ef", ATTR{idProduct}=="3062", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
ATTR{idVendor}=="17ef", ATTR{idProduct}=="3069", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
ATTR{idVendor}=="17ef", ATTR{idProduct}=="3082", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
ATTR{idVendor}=="17ef", ATTR{idProduct}=="3098", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
ATTR{idVendor}=="17ef", ATTR{idProduct}=="7205", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
ATTR{idVendor}=="17ef", ATTR{idProduct}=="720a", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
ATTR{idVendor}=="17ef", ATTR{idProduct}=="720b", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
ATTR{idVendor}=="17ef", ATTR{idProduct}=="720c", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
ATTR{idVendor}=="17ef", ATTR{idProduct}=="7214", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
ATTR{idVendor}=="17ef", ATTR{idProduct}=="721e", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
ATTR{idVendor}=="17ef", ATTR{idProduct}=="8153", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
ATTR{idVendor}=="17ef", ATTR{idProduct}=="a359", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
ATTR{idVendor}=="17ef", ATTR{idProduct}=="a387", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"

# TP-LINK
ATTR{idVendor}=="2357", ATTR{idProduct}=="0601", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"

# Nvidia
ATTR{idVendor}=="0955", ATTR{idProduct}=="09ff", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"

# LINKSYS
ATTR{idVendor}=="13b1", ATTR{idProduct}=="0041", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"

LABEL="usb_realtek_net_end"


Eintragen unter Truenas-Scale inSystem Settings/Erweitert bei init/shutdownscripts

1x Pre

1703832085949.png




1x Post
1703832161859.png
 

Anhänge

  • 1703832267193.png
    1703832267193.png
    23,7 KB · Aufrufe: 96
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Crisq
Zurück
Oben