Ugreen DXP 480T Plus - blinkende LED

Hallo zusammen,

ich habe vor kurzem ein Ugreen DXP480T Plus erworben und proxmox installiert, nach der Installation hat mich die blinkende Front LED genervt. Bei der Suche nach einer Lösung bin ich auf einen github Beitrag gestoßen der mir geholfen hat. Anbei für euch die todos als Zusammenfassung:

  • Beim Start: Die LED blinkt weiß und bleibt anschließend dauerhaft weiß.
  • Beim Herunterfahren: Die LED blinkt rot und bleibt anschließend dauerhaft rot.
  1. i2c-tools installieren: sudo apt install i2c-tools

  2. LED-Scripts erstellen
    Startup Script: nano /usr/local/bin/startup-led.sh

    #!/bin/bash 
    i2cset -y 0 0x26 0xa0 1 b # red off 
    i2cset -y 0 0x26 0xa0 2 b # white off 
    i2cset -y 0 0x26 0x51 0 b # Slow Flash off 
    i2cset -y 0 0x26 0x50 0 b # Permanently on 
    i2cset -y 0 0x26 0xb1 2 b # white on 
    i2cset -y 0 0x26 0x50 1 b # Fast Flash on 
    sleep 10 
    i2cset -y 0 0x26 0xa0 1 b # red off 
    i2cset -y 0 0x26 0xa0 2 b # white off 
    i2cset -y 0 0x26 0x51 0 b # Slow Flash off 
    i2cset -y 0 0x26 0xb1 2 b # white on 
    i2cset -y 0 0x26 0x50 0 b # Permanently on 
    sleep 1 
    i2cset -y 0 0x26 0xa0 1 b # red off 
    i2cset -y 0 0x26 0xa0 2 b # white off 
    i2cset -y 0 0x26 0x51 0 b # Slow Flash off 
    i2cset -y 0 0x26 0xb1 2 b # white on 
    i2cset -y 0 0x26 0x50 0 b # Permanently on
    

    Shutdown Script: nano /usr/local/bin/shutdown-led.sh

    #!/bin/bash 
    i2cset -y 0 0x26 0xa0 1 b # red off 
    i2cset -y 0 0x26 0xa0 2 b # white off 
    i2cset -y 0 0x26 0x51 0 b # Slow Flash off 
    i2cset -y 0 0x26 0x50 0 b # Permanently on 
    i2cset -y 0 0x26 0xb1 2 b # white on 
    i2cset -y 0 0x26 0x50 1 b # Fast Flash on 
    sleep 10 
    i2cset -y 0 0x26 0xa0 1 b # red off 
    i2cset -y 0 0x26 0xa0 2 b # white off 
    i2cset -y 0 0x26 0x51 0 b # Slow Flash off 
    i2cset -y 0 0x26 0xb1 2 b # white on 
    i2cset -y 0 0x26 0x50 0 b # Permanently on 
    sleep 1 
    i2cset -y 0 0x26 0xa0 1 b # red off 
    i2cset -y 0 0x26 0xa0 2 b # white off 
    i2cset -y 0 0x26 0x51 0 b # Slow Flash off 
    i2cset -y 0 0x26 0xb1 2 b # white on 
    i2cset -y 0 0x26 0x50 0 b # Permanently on
    
  3. Scripte ausführbar machen

    chmod +x /usr/local/bin/startup-led.sh 
    chmod +x /usr/local/bin/shutdown-led.sh 
    
  4. Systemd Service erstellen

    Startup Service: nano /etc/systemd/system/startup-led.service

    [Unit]
    Description=Startup LED Script 
    After=multi-user.target 
    [Service] 
    Type=oneshot 
    ExecStart=/usr/local/bin/startup-led.sh 
    [Install] 
    WantedBy=multi-user.target
    

    Shutdown Service: nano /etc/systemd/system/shutdown-led.service

    [Unit] 
    Description=Shutdown LED Script 
    DefaultDependencies=no 
    Before=shutdown.target reboot.target halt.target 
    [Service] 
    Type=oneshot ExecStart=/usr/local/bin/shutdown-led.sh 
    [Install] 
    WantedBy=halt.target reboot.target shutdown.target
    
    1. Aktivieren und Neustart der Services
    systemctl daemon-reload 
    systemctl enable startup-led.service 
    systemctl enable shutdown-led.service
    
    1. Manuell testen
    /usr/local/bin/startup-led.sh 
    /usr/local/bin/shutdown-led.sh
    

p.s.

Mit lsmod | grep i2c kann man zum i2c des Systems auflisten

sieht bei mir dann so aus:

i2c_algo_bit           16384  2 xe,i915
i2c_i801               36864  0
i2c_mux                12288  1 i2c_i801
i2c_smbus              20480  1 i2c_i801

und mit i2cdetect -y 0 kann man nochmal prüfen (nur für die, die sich auskennen). Bei dem Ein oder Anderen Modell von Ugreen kann es notwendig sein das Script anzupassen. Dann funktioniert im Script sehr wahrscheinlich i2cset -y 1 usw…

Für detect wäre es
i2cdetect -y 0

und die Ausgabe:

0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         08 – – – – – – –
10: – – – – – – – – – – – – – – – –
20: – – – – – – 26 – – – – – – – – –
30: – – – – – – – – – – – – – – – –
40: – – – – 44 – – – 48 – 4a – – – – –
50: 50 – 52 – – – – – – – – – – – – –
60: – – – – – – – – – – – – – – – –
70: – – – – – – – –

Quelle: github

Zu meiner Ausstattung:

Ich hab die vorinstallierte Ugreen m.2 2242 mit UGOS durch eine Kingston 2230 ersetzt. Die WLAN Karte A+E-Key (die ich nicht brauche) habe ich mit einen Adapter auf M-Key ersetzt und eine Crucial 2TB eingebaut. Die restlichen 4 m.2 Ports habe ich mit 4x WD Black SN850X bestückt.

Was mir aufgefallen ist und ich mir noch nicht ganz erklären kann, ist ein Downgrade bei der Anbindung von zwei der vier SN850X m.2 SSDs.

Ich hab ein kleines Script erstell mit lspci -vv, welches eine Tabelle ausgibt, damit es etwas übersichtlicher bei der Ausgabe wird, anbei das Script:

lspci -vv | awk '
BEGIN {
  W1=40; W2=10; W3=12; W4=10; W5=12; W6=6
  fmt="| %-"W1"s | %-"W2"s | %-"W3"s | %-"W4"s | %-"W5"s | %-"W6"s |"
}
function repeat(ch,n, s,i){s=""; for(i=0;i<n;i++) s=s ch; return s}
function border(){ print "+"repeat("-",W1+2)"+"repeat("-",W2+2)"+"repeat("-",W3+2)"+"repeat("-",W4+2)"+"repeat("-",W5+2)"+"repeat("-",W6+2)"+" }
function row(a,b,c,d,e,f){ printf fmt"\n", a,b,c,d,e,f }

# sammeln
/^[0-9a-f:.]+/ { dev=$0 }
/LnkCap:/ {
  cap_speed=""; cap_width=""
  if (match($0,/Speed [0-9]+GT\/s/)) cap_speed=substr($0,RSTART+6,RLENGTH-6)
  if (match($0,/Width x[0-9]+/)) cap_width=substr($0,RSTART,RLENGTH)
}
/LnkSta:/ {
  sta_speed=""; sta_width=""
  if (match($0,/Speed [0-9]+GT\/s/)) sta_speed=substr($0,RSTART+6,RLENGTH-6)
  if (match($0,/Width x[0-9]+/)) sta_width=substr($0,RSTART,RLENGTH)
  down=(sta_speed!=cap_speed||sta_width!=cap_width)?"YES":"NO"
  n++; devs[n]=dev; caps[n]=cap_speed; capw[n]=cap_width; stas[n]=sta_speed; staw[n]=sta_width; downs[n]=down
}

END {
  border()
  row("Gerät","Cap-Spd","Cap-Wid","Sta-Spd","Sta-Wid","Down")
  border()
  for(i=1;i<=n;i++){
    # Gerät in W1-Chunkes zerlegen
    len=length(devs[i]); pos=1; first=1
    while(pos<=len){
      chunk=substr(devs[i], pos, W1)
      if(first){
        row(chunk, caps[i], capw[i], stas[i], staw[i], downs[i])
        first=0
      } else {
        row(chunk, "", "", "", "", "")
      }
      pos += W1
    }
    # falls Gerät leer (sicherheitsfall)
    if(len==0) row("", caps[i], capw[i], stas[i], staw[i], downs[i])
    border()
  }
}
'

eine Ausgabe in eine Datei kann man noch erzeugen, wenn man die letzte Zeile durch ’ > pcie_info.txt ersetzt.

Ich habe mal meine Ausgabe angehangen, den Unterschied beim Downgrade kann ich mir noch nicht so recht erklären:

vielleicht hat jemand eine Idee…

Viele Grüße

Roger

1 „Gefällt mir“

Hi,

danke für den “LED fix”!

ich habe die originale ssd drin + 1 x Samsung 980Pro und 3x WDBlue

Das ist meine Ausgabe:

Hallo rowie,

ich hab mir das Manual vom DXP 480T nochmal angeschaut, leider steht da nichts zur Anbindung der M.2 SSD drin. Zusätzlich habe ich im BIOS verschiedenste PCIe Einstellung durchgetestet, leider ohne irgendeine Änderung.

Ich bin zufällig auf einen Forenbeitrag bei Computerbase von Snoopy69 gestoßen: “…die ersten zwei Slots PCIe4.0 x4 und die anderen zwei Slots PCIe3.0 x2…” (siehe Computerbase - Forenbeitrag)

Ich bin bisher davon ausgegangen, dass alle 4 Slots mit PCIe 4.0 x4 angebunden sind, dem scheint aber definitiv nicht so zu sein.

Viele Grüße
Roger

1 „Gefällt mir“