NAS herstellen (WD Sentinel DS5100)

Wil je iets weten over de hardware van een computer? Draait je CPU fan niet meer? Je printer wil niet meer mee?
Dan moet je hier zijn.
dean3009
Elite Poster
Elite Poster
Berichten: 836
Lid geworden op: 07 mei 2007, 09:19
Uitgedeelde bedankjes: 81 keer
Bedankt: 39 keer

Bericht

Hallo allen,

Een paar jaar terug heb ik een WD Sentinel DS5100 tweedehands aangeschaft. Die NAS heeft dual BIOS, dus als de eerste BIOS faalt dan schakelt die automatisch over naar de tweede. Vanaf aankoop bootte die al naar de tweede BIOS (die herstartte eerst een paar keer voordat die opstartte). De primaire BIOS was toen eigenlijk al 'kapot'.

Eigenlijk heb ik die nooit echt gebruikt omdat dat ding standaard Windows Server 2012 R2 draait en ik wilde Linux. Maar Linux kon de system fan niet aanspreken omdat WD een eigen driver geschreven heeft die de fan aanstuurt en die werkt natuurlijk enkel onder Windows, en die fan draait standaard altijd 100%... Ik had er dus een hobbyprojectje van gemaakt om onder Linux die fan aan te kunnen spreken door de Windows driver te analyseren.

Vorige week was ik er mee bezig en de NAS was gewoon idle Windows aan het draaien totdat die plots een BSOD kreeg (als ik het me goed herinner 'critical process died'). De daaropvolgende reboot deed de NAS niets meer, bleef maar domweg draaien zonder video-output. Verdere resets hielpen niet. Zonder randapparatuur en harde schijven geprobeerd, verschillende RAM-slots, ... maar doet niets.

Nu heeft dat ding een aansluiting voor seriële poort. Ik heb daar dus een usb adapter aangehangen en uitgelezen en krijg daar toegang tot een soort Linux-omgeving op basis van Busybox? Die draait op een server management processor:

Code: Selecteer alles

CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
CPU: VIVT data cache, VIVT instruction cache
Machine: ASPEED-AST2300
Je ziet hem dan eerst de primaire BIOS proberen en daarna overschakelen naar de backup BIOS, maar daarna is het dus 'kapot':

Code: Selecteer alles

Scheduled delayed BIOS check - SLP_S3#=high, PCH_BIOS_OK=low
timer event# 11 start: 30 sec
...
# timer event 11
CMD_DELAYED_CHECK
Switched to Backup BIOS - SLP_S3#=high, PCH_BIOS_OK=low
PWRBTSW
timer event 8
CMD_REBOOT_HOST
timer event 9
PWRBTSW
CMD_REBOOT_HOST_SM1
timer event 0
CMD_RELEASE_RST
SLP_S3# -> HI count=1
MEM_EVENT[3:0]=0xf
tasklet count=1
timer event# 10 start: 90 sec
timer event 10
CMD_IS_BIOS_OK?
In Backup BIOS already
Als ik 'enter' druk dan kan ik zelf commando's ingeven, en heb zelf via één van de ethernetpoorten internettoegang.

Wat me ook opvalt in de logs is dat het mounten van het flashgeheugen faalt, ik vermoed van de twee BIOS'en:

Code: Selecteer alles

mount: mounting dev/mtdblock0 on /mnt/flash0 failed: No such device or address
mount: mounting dev/mtdblock1 on /mnt/flash1 failed: No such device or address
Een 'cat /proc/mtd' geeft enkel de header weer, maar geen devices. Ik vermoed dus dat die twee chips hardwarematig kapot zijn.

Ik dus wat enthousiast een CH341A BIOS flasher gekocht om dan tot de vaststelling te komen dat die chips niet met een klem te programmeren zijn.
(dit is een voorbeeld van een soortgelijke WSON8-chip, niet van de effectieve chip)
9jneu.jpg
Om dan nog wat meer geld uit te geven voor een hot air gun of iets dergelijks om die chips eraf te halen en uit te lezen is wat te veel van het goede...

Dus ik dacht, ik vraag hier eens of er mogelijks geïnteresseerden zijn met de apparatuur om die chips los te krijgen zodat die met de programmer uit te lezen zijn. Of om mee te denken wat het probleem zou kunnen zijn.

Als de chips helemaal kapot zijn en ook niet uit te lezen zijn zit ik met een ander probleem want de originele BIOS voor dit systeem is nergens te vinden online. :lol:

Alle input wordt geapprecieerd. :-D


Volledige logs:

Code: Selecteer alles

PHY NOT READY faradaynic#0
Hit any key to stop autoboot:  3  2  1  0 
## Booting kernel from Legacy Image at 20080000 ...
   Image Name:   
   Image Type:   ARM Linux Kernel Image (gzip compressed)
   Data Size:    1906080 Bytes =  1.8 MB
   Load Address: 40008000
   Entry Point:  40008000
## Loading init Ramdisk from Legacy Image at 20300000 ...
   Image Name:   
   Image Type:   ARM Linux RAMDisk Image (gzip compressed)
   Data Size:    4642171 Bytes =  4.4 MB
   Load Address: 40800000
   Entry Point:  40800000
   Uncompressing Kernel Image ... OK

Starting kernel ...

Initializing cgroup subsys cpu
Linux version 2.6.28.9 (root@shaun-Ubuntu) (gcc version 4.3.2 (crosstool-NG-1.4.1) ) #56 Sat Sep 28 11:59:56 PDT 2013
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
CPU: VIVT data cache, VIVT instruction cache
Machine: ASPEED-AST2300
Memory policy: ECC disabled, Data cache writeback
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 20320
Kernel command line: root=/dev/ram initrd=0x40800000,0x1000000 init=/linuxrc mem=80M rw console=ttyS1 ethaddr=00:90:A9:40:ED:1A
PID hash table entries: 512 (order: 9, 2048 bytes)
Console: colour dummy device 80x30
console [ttyS1] enabled
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 80MB = 80MB total
Memory: 60700KB available (3484K code, 392K data, 112K init)
SLUB: Genslabs=12, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Calibrating delay loop... 191.69 BogoMIPS (lpj=958464)
Mount-cache hash table entries: 512
Initializing cgroup subsys ns
Initializing cgroup subsys cpuacct
CPU: Testing write buffer coherency: ok
net_namespace: 552 bytes
NET: Registered protocol family 16
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
Sangoma WANPIPE Router v1.1 (c) 1995-2000 Sangoma Technologies Inc.
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 4096 (order: 3, 32768 bytes)
TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
TCP reno registered
NET: Registered protocol family 1
checking if image is initramfs...it isn't (no cpio magic); looks like an initrd
Freeing initrd memory: 16384K
NetWinder Floating Point Emulator V0.97 (extended precision)
audit: initializing netlink socket (disabled)
type=2000 audit(3.120:1): initialized
NTFS driver 2.1.29 [Flags: R/W].
JFFS2 version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
yaffs Sep 28 2013 11:55:18 Installing. 
msgmni has been set to 150
alg: No test for cipher_null (cipher_null-generic)
alg: No test for digest_null (digest_null-generic)
alg: No test for compress_null (compress_null-generic)
alg: No test for stdrng (krng)
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
Non-volatile memory driver v1.2
ttyS0 at MMIO 0x1e783000 (irq = 9) is a GUC-MVP2000 UART
ttyS1 at MMIO 0x1e784000 (irq = 10) is a GUC-MVP2000 UART
brd: module loaded
Ethernet Channel Bonding Driver: v3.3.0 (June 10, 2008)
bonding: Warning: either miimon or arp_interval and arp_ip_target module parameters must be specified, otherwise bonding will not detect link failures! see bonding.txt for details.
saved_command_line=root=/dev/ram initrd=0x40800000,0x1000000 init=/linuxrc mem=80M rw console=ttyS1 ethaddr=00:90:A9:40:ED:1A len=106
ethaddr=<00:90:A9:40:ED:1A>
FTGMAC100: ASPEED FTGMAC Driver, (Linux Kernel 2.6.28.9) 09/13/2010 - by ASPEED
FTGMAC100: eth0: at 0xfe660000 IRQ:2 noWait:0, MAC 20:20:20:20:20:20
FTGMAC100: eth0:ftgmac100_reset, phyAddr=0x0, miiPhyId=0x001c_c915
FTGMAC100: eth0:ftgmac100_reset, BMSR=0x7949
FTGMAC100: eth0:ftgmac100_reset, phyLinkSpeed=1 Full Duplex
FTGMAC100: lp->rx_descs = ffc00000, lp->rx_rx_descs_dma = 434b9000
FTGMAC100: lp->rx_buf = 00000000, lp->rx_buf_dma = 0
FTGMAC100: lp->tx_descs = ffc01000, lp->tx_rx_descs_dma = 435c8000
FTGMAC100: lp->tx_buf = 00000000, lp->tx_buf_dma = 0
saved_command_line=root=/dev/ram initrd=0x40800000,0x1000000 init=/linuxrc mem=80M rw console=ttyS1 ethaddr=00:90:A9:40:ED:1A len=106
ethaddr=<00:90:A9:40:ED:1A>
FTGMAC100: eth1: at 0xfe680000 IRQ:3 noWait:0, MAC 20:20:20:20:20:20
FTGMAC100: eth1:ftgmac100_reset, phyAddr=0xff, miiPhyId=0x0000_ffff
FTGMAC100: eth1:ftgmac100_reset, phyLinkSpeed=1 Full Duplex
FTGMAC100: lp->rx_descs = ffc02000, lp->rx_rx_descs_dma = 43577000
FTGMAC100: lp->rx_buf = 00000000, lp->rx_buf_dma = 0
FTGMAC100: lp->tx_descs = ffc03000, lp->tx_rx_descs_dma = 435cf000
FTGMAC100: lp->tx_buf = 00000000, lp->tx_buf_dma = 0
tun: Universal TUN/TAP device driver, 1.6
tun: (C) 1999-2004 Max Krasnyansky <[email protected]>
Driver 'sd' needs updating - please use bus_type methods
Driver 'sr' needs updating - please use bus_type methods
uhci_hcd: USB Universal Host Controller Interface driver
UHCI Base address is c585a000, phy 1e6b0000
 : UHCI Host Controller
 : new USB bus registered, assigned bus number 1
uhci_check_and_reset_hc: cmd = 0x0000
Performing full reset
 : irq 14, io base 0x00000000
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usbcore: registered new interface driver libusual
mice: PS/2 mouse device common for all mice
success to register interrupt for INT_WDT (27)
UMVP2500 WDT is installed.(irq = 27, heartbeat = 6 secs, nowayout = 0)
cpuidle: using governor ladder
usbcore: registered new interface driver usbhid
usbhid: v2.6:USB HID core driver
TCP cubic registered
Initializing XFRM netlink socket
NET: Registered protocol family 17
802.1Q VLAN Support v1.8 Ben Greear <[email protected]>
All bugs added by David S. Miller <[email protected]>
registered taskstats version 1
RAMDISK: Compressed image found at block 0
VFS: Mounted root (ext2 filesystem).
Freeing init memory: 112K
mount: mounting dev/mtdblock0 on /mnt/flash0 failed: No such device or address
mount: mounting dev/mtdblock1 on /mnt/flash1 failed: No such device or address
set MAC to 00:90:A9:40:ED:1A
installing bmcport80
WD BMC port80 driver ver 0.2 loaded major=250
WD_BMC: GPIO D/C/B/A Configuration dir=0x01000000
WD_BMC: GPIO H/G/F/E Configuration dir=0x00000082
WD_BMC: GPIO L/K/J/I Configuration dir=0x01000000
WD_BMC: GPIO P/O/N/M Configuration dir=0x00c0ff17
WD_BMC: SCU70 hwtrap=0a4db442
WD_BMC: SCU70 hwtrap=0a0db442
WD_BMC: SCU90=00070000
WD_BMC: SCU04=ff8f64d8
WD_BMC: SCU88=c1000004
Scheduled delayed BIOS check - SLP_S3#=high, PCH_BIOS_OK=low
timer event# 11 start: 30 sec
installing adc
adc major = 249
installing aspeed_i2c
i2c ioaccess_major = 248
installing mailbox with bmc_mac=00:90:A9:40:ED:1A
WD BMC mailbox driver ver 1.0 loaded major=247
thermald v1.0
udhcpc (v1.13.4) started
FTGMAC100: eth0:ftgmac100_open
FTGMAC100: eth0:ftgmac100_reset, phyAddr=0x0, miiPhyId=0x001c_c915
FTGMAC100: eth0:ftgmac100_reset, BMSR=0x7949
FTGMAC100: eth0:ftgmac100_reset, phyLinkSpeed=1 Full Duplex
FTGMAC100: PHYSTS_CHG 
FTGMAC100: eth0: PHY interrupt status, read_phy_reg(0x13) INSR  = 0x0040
FTGMAC100: eth0: PHY interrupt status, read_phy_reg(0x11) PHYSR = 0x4000
FTGMAC100: eth0:ftgmac100_phy_cfg, LCR reg=0x24
Sending discover...
Sending discover...
Sending discover...
No lease, failing

Please press Enter to activate this console. 
# timer event 11
CMD_DELAYED_CHECK
Switched to Backup BIOS - SLP_S3#=high, PCH_BIOS_OK=low
PWRBTSW
timer event 8
CMD_REBOOT_HOST
timer event 9
PWRBTSW
CMD_REBOOT_HOST_SM1
timer event 0
CMD_RELEASE_RST
SLP_S3# -> HI count=1
MEM_EVENT[3:0]=0xf
tasklet count=1
timer event# 10 start: 90 sec
timer event 10
CMD_IS_BIOS_OK?
In Backup BIOS already
Je hebt niet voldoende permissies om de bijlagen van dit bericht te bekijken.
didi79
Elite Poster
Elite Poster
Berichten: 1095
Lid geworden op: 25 jun 2007, 15:19
Locatie: 8930 Rekkem
Uitgedeelde bedankjes: 102 keer
Bedankt: 113 keer

Bericht

"een voorbeeld van een soortgelijke WSON8-chip"
Welke chip is het exact?

edit: niet onbelangrijk: kan je aan de BIOS ROM geraken?
dean3009
Elite Poster
Elite Poster
Berichten: 836
Lid geworden op: 07 mei 2007, 09:19
Uitgedeelde bedankjes: 81 keer
Bedankt: 39 keer

Bericht

Merci alvast om mee te denken didi79!

Ik heb geen ROM van de BIOS, dus als alle chips kapot zijn (via de flasher) kan ik niet verder. Of ik moet heel hard zagen bij WD (alhoewel ze nu al niet wilde helpen omdat het zo'n oud toestel betreft).

Er zijn verschillende flashchips aanwezig van Winbond.

IMG_7232.jpeg
Voor zover ik kan lezen:
- Winbond 25Q64FVIG (linksboven en -onder) - 8MB
- Winbond 25Q128FVE (rechtsonder) - 16MB
- Winbond 25X20CLSNIG (rechtsboven) - 250KB

Ik geloof dat de twee van 8MB de BIOS flashes zijn en die van 16MB is van de BMC.

Via serial:

Code: Selecteer alles

# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/root                15863     11851      4012  75% /

Ik heb nog iets interessant gevonden: https://lore.kernel.org/linux-arm-kerne ... @ti.com/t/
Dit is een recente kernel patch voor de ASpeed AST2400 en AST2500 (ik heb de AST2300) die ervoor zorgt dat als één van de chips faalt, de mtd-devices die werken toch nog blijven ipv dat alles faalt. Met wat geluk is de primaire BIOS chip helemaal kapot maar werkt de backup chip eigenlijk wel nog, maar wordt die dus niet geregistreerd.

Maar dit zijn de enige modules die actief staan op de BMC:

Code: Selecteer alles

# lsmod
mailbox 8732 0 - Live 0xbf00b000
aspeed_i2c 4680 0 - Live 0xbf007000
adc 3748 0 - Live 0xbf004000
bmcport80 7980 0 - Live 0xbf000000
Waarvan mailbox en bmcport80 blijkbaar modules zijn van WD zelf.

Devices:

Code: Selecteer alles

# ls /dev -l
crw-r--r--    1 root     root     249,   0 Jan  1 00:00 adc
crw-r--r--    1 root     root     248,   0 Jan  1 00:00 aspeed_i2c
crw-r--r--    1 root     root       5,   1 Jan  1 00:36 console
lrwxrwxrwx    1 root     root           13 Nov  7  2011 fd -> /proc/self/fd
drwxr-xr-x    2 root     root         1024 Jan  1 00:00 input
crw-r--r--    1 root     root     247,   0 Jan  1 00:00 mailbox
crw-r--r--    1 root     root       1,   1 Aug 11  2009 mem
brw-r--r--    1 root     root      31,   0 Jan  1 00:00 mtdblock0
brw-r--r--    1 root     root      31,   1 Jan  1 00:00 mtdblock1
crw-r--r--    1 root     root       1,   3 Aug 12  2009 null
crw-r--r--    1 root     root     250,   0 Jan  1 00:00 port80
crw-r--r--    1 root     root      77,   0 Jan  1 00:00 rtc
crw-r--r--    1 root     root       5,   0 Aug 11  2009 tty
crw-r--r--    1 root     root       4,   0 Mar  8  2010 tty0
crw-r--r--    1 root     root       4,   1 Mar  8  2010 tty1
crw-r--r--    1 root     root       4,  64 Aug 11  2009 ttyS0
crw-r--r--    1 root     root       4,  65 Aug 11  2009 ttyS1
Toen ik nog in Windows kon had ik nog een dump gemaakt van de DSDT mocht dat iets betekenen.
https://file.io/8fxcGLoPMljq


Edit:
Oké waarschijnlijk te veel informatie maar ik zal dit maar als m'n onderzoekspagina behandelen :lol:

Ik heb de mailbox en port80 drivers gedecompileerd en kom op het volgende uit:
port80 doet de BIOS checks en schakelt van BIOS 1 naar 2 indien een bepaalde GPIO bit niet gezet is, vermoedelijk door de BIOS?

Code: Selecteer alles


void timer_function(undefined4 param_1)

{
  char *pcVar1;
  
  printk("<6>timer event %lu\n",param_1);
  switch(param_1) {
  case 0:
    ich_pwrbt(1);
    if (my_timer.entry.next != (list_head *)0x0) {
      del_timer();
    }
    pcVar1 = "<6>CMD_RELEASE_RST\n";
    break;
  default:
    printk("<3>bmcport80 timer command error %lu\n",param_1);
    return;
  case 8:
    ich_pwrbt(1);
    my_timer.expires = jiffies + 0x32;
    my_timer.data = 9;
    mod_timer(&my_timer,my_timer.expires);
    pcVar1 = "<6>CMD_REBOOT_HOST\n";
    break;
  case 9:
    ich_pwrbt(0);
    my_timer.expires = jiffies + 0x32;
    my_timer.data = 0;
    mod_timer(&my_timer,my_timer.expires);
    pcVar1 = "<6>CMD_REBOOT_HOST_SM1\n";
    break;
  case 10:
    if (my_timer.entry.next != (list_head *)0x0) {
      del_timer();
    }
    if ((*(uint *)((int)gpio_base_addr + 0x70) & 0x2000000) == 0) {
      return;
    }
    printk("<6>CMD_IS_BIOS_OK?\n");
    if ((*(uint *)((int)gpio_base_addr + 0x78) & 0x10) == 0) {
      if ((*(uint *)((int)gpio_base_addr + 0x78) & 8) != 0) {
        printk("<6>Main BIOS OK!\n");
        slp_s3_counter = 0;
        return;
      }
      pcVar1 = "<6>Switched to Backup BIOS - Main not OK\n";
      *(uint *)((int)gpio_base_addr + 0x78) = *(uint *)((int)gpio_base_addr + 0x78) | 0x10;
LAB_00010560:
      slp_s3_counter = 0;
      printk(pcVar1);
      ich_pwrbt(0);
      my_timer.expires = jiffies + 500;
      my_timer.data = 8;
      mod_timer(&my_timer,my_timer.expires);
      return;
    }
    pcVar1 = "<6>In Backup BIOS already\n";
    break;
  case 0xb:
    if (my_timer.entry.next != (list_head *)0x0) {
      del_timer();
    }
    printk("<6>CMD_DELAYED_CHECK\n");
    if ((*(uint *)((int)gpio_base_addr + 0x70) & 0x2000000) != 0) {
      if ((*(uint *)((int)gpio_base_addr + 0x78) & 0x18) != 0) {
        return;
      }
      pcVar1 = "<6>Switched to Backup BIOS - SLP_S3#=high, PCH_BIOS_OK=low\n";
      *(uint *)((int)gpio_base_addr + 0x78) = *(uint *)((int)gpio_base_addr + 0x78) | 0x10;
      goto LAB_00010560;
    }
    pcVar1 = "<6>event ignored - SLP_S3=low CPU down.\n";
  }
  printk(pcVar1);
  return;
}
en via ioctl kan je via commando's een bepaalde BIOS selecteren:

Code: Selecteer alles


undefined4 bmcport80_ioctl(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4)

{
  undefined4 uVar1;
  uint uVar2;
  
  switch(param_3) {
  case 0:
    printk("<6>WD BMC ioctl CMD_RELEASE_RST\n");
    ich_pwrbt(0);
    uVar1 = 0;
    break;
  case 1:
    printk("<6>WD BMC ioctl CMD_POWER_DOWN\n");
    ich_pwrbt(0);
    uVar1 = 1;
    break;
  case 2:
    uVar1 = *(undefined4 *)((int)lpc_base_addr + 0x94);
    printk("<6>WD BMC ioctl CMD_READ_P80= 0x%lx\n",uVar1);
    *(undefined4 *)(param_4 + 8) = uVar1;
    return 0;
  default:
    printk("<6>WD BMC ioctl -EFAULT\n");
    return 0xfffffff2;
  case 4:
    printk("<6>WD BMC ioctl CMD_BIOS_SEL0\n");
    uVar2 = *(uint *)((int)gpio_base_addr + 0x78) & 0xffffffef;
    goto LAB_00010368;
  case 5:
    printk("<6>WD BMC ioctl CMD_BIOS_SEL1\n");
    uVar2 = *(uint *)((int)gpio_base_addr + 0x78) | 0x10;
LAB_00010368:
    *(uint *)((int)gpio_base_addr + 0x78) = uVar2;
    return 0;
  case 6:
    *(undefined4 *)(param_4 + 8) = *(undefined4 *)((int)gpio_base_addr + *(int *)(param_4 + 4));
    return 0;
  case 7:
    *(undefined4 *)((int)gpio_base_addr + *(int *)(param_4 + 4)) = *(undefined4 *)(param_4 + 8);
    return 0;
  case 8:
    printk("<6>WD BMC ioctl CMD_REBOOT_HOST\n");
    ich_pwrbt(0);
    uVar1 = 8;
  }
  initWorkTimer(uVar1);
  return 0;
}
mailbox stuurt het lcd-scherm aan en behandelt temperaturen en de fan. Ik vermoed ergens (maar weet niet of dit technisch/hardwarematig kan) dat de Windows driver met de BMC communiceert (vandaar de naam mailbox?) en dat de BMC uiteindelijk de fan aanspreekt (gezien er ook een functie aanwezig is "setGpioToPWM". Er is ook een ioctl code die iets met fansnelheid doet:

Code: Selecteer alles

  case 9:
    uVar4 = __udivsi3(*(undefined *)(param_1 + 5),10);
    if ((uVar4 & 0xff) < 0xb) {
      *(ulong *)((int)ptcr_base_addr + 0xc) = fanSpeed[uVar4 & 0xff];
      return;
    }
    goto switchD_00010928_caseD_4;
    
Je hebt niet voldoende permissies om de bijlagen van dit bericht te bekijken.
Laatst gewijzigd door dean3009 2 maanden geleden, in totaal 1 gewijzigd.
didi79
Elite Poster
Elite Poster
Berichten: 1095
Lid geworden op: 25 jun 2007, 15:19
Locatie: 8930 Rekkem
Uitgedeelde bedankjes: 102 keer
Bedankt: 113 keer

Bericht

Op zich zijn dergelijk kleine componenten heel gemakkelijk te desolderen en solderen met een heatgun.

Ga ervan maar van uit dat de chips niet werken:
- je gaat ze niet kunnen uitlezen
- je gaat de chips moeten vervangen (Aliexpress, Mouser)

En daarom ook de vraag of je aan de BIOS ROM kan geraken. Voor moederborden en grafische kaarten is dat vrij gemakkelijk. Ik kan me voorstellen dat voor een NAS niet zomaar te vinden is. Maar misschien vind je wel iemand die het BIOS al eens uitgelezen heeft of iemand met hetzelfde toestel die het voor je wil doen (tip: https://www.badcaps.net/ )
dean3009
Elite Poster
Elite Poster
Berichten: 836
Lid geworden op: 07 mei 2007, 09:19
Uitgedeelde bedankjes: 81 keer
Bedankt: 39 keer

Bericht

Merci voor de info! Ik zal eens een BIOS request bij Badcaps indienen, wie weet.

Heb je een (goedkope) heatgun dat je aanraadt? Is zoiets goedkoops genoeg?
https://amzn.eu/d/04yPXRot

Ik zal eens wat video’s moeten bekijken hoe dat juist gedaan wordt. Wat ik niet zo goed begrijp is als je die chip terug wilt solderen dat ze gewoon daar wat ‘flux’ op doen en terug verwarmen, hoe kan je dan weten dat alle connectors juist zitten?
didi79
Elite Poster
Elite Poster
Berichten: 1095
Lid geworden op: 25 jun 2007, 15:19
Locatie: 8930 Rekkem
Uitgedeelde bedankjes: 102 keer
Bedankt: 113 keer

Bericht

dean3009 schreef: 2 maanden geleden Heb je een (goedkope) heatgun dat je aanraadt? Is zoiets goedkoops genoeg?
https://amzn.eu/d/04yPXRot
Ik gebruik gewoon de goedkoopste van op Ali. Voor sporadisch gebruik goed genoeg. Al doende leer je het toestel kennen, hoe hoog je de temperatuur moet zetten, hoever je met de nozzle van de chip blijft...
dean3009 schreef: 2 maanden geleden Ik zal eens wat video’s moeten bekijken hoe dat juist gedaan wordt. Wat ik niet zo goed begrijp is als je die chip terug wilt solderen dat ze gewoon daar wat ‘flux’ op doen en terug verwarmen, hoe kan je dan weten dat alle connectors juist zitten?
Tin hecht enkel aan metalen oppervlakten. Als de chip gealigneerd is, dan trekt de oppervlaktespanning van het gesmolten tin de chip vanzelf op zijn plaats.
Afhankelijk van de package, moet je de chip wel alsnog tegen pcb duwen. Dat doe je uiteraard niet met BGA chips.

Flux helpt alleen met de vloei van het tin - erg belangrijk - maar doet verder niets voor de gesoldeerde verbinding.

Check de videos van https://www.youtube.com/@NorthridgeFix
Zijn mantra voor zijn webshop moet je erbij nemen...
dean3009
Elite Poster
Elite Poster
Berichten: 836
Lid geworden op: 07 mei 2007, 09:19
Uitgedeelde bedankjes: 81 keer
Bedankt: 39 keer

Bericht

Even een update... Ik heb een goedkoop heteluchtpistool gekocht en daarmee is het gelukt om de twee bios-chips van het moederbord te krijgen. Met de flasher kon ik de eerste niet uitlezen, maar de tweede werd wel gedetecteerd. Daarvan heb ik een dump kunnen nemen (voor de geïnteresseerden: https://uploadnow.io/s/4597d4d5-1e6c-42 ... a9cf215d60).
Dat bevestigt m'n vermoeden dat de eerste bios altijd al kapot was (sinds ik de NAS heb), maar het is vreemd dat de tweede chip wel nog werkt...

Is er dan toch nog iets anders fout waardoor die de bios niet wil booten? Misschien toch eerder problemen met RAM, CPU, ... Maar waarom lukt de mount van mtdblock in de BMC dan niet.

De vervangchips zijn onderweg (heb per ongeluk 5x6 besteld ipv 8x6) en zal dan eens proberen de rom op twee nieuwe te flashen. En dan proberen het opnieuw op het moederbord te krijgen :lol:

Edit:
Ondertussen de bios-chips vervangen maar helaas nog niet verder. Het lijkt zelfs slechter te gaan nu. De fan springt niet meer 100% aan (eerder 5%) en nu doet ie de delayed BIOS check niet meer en eindigen de logs met:

Code: Selecteer alles

timer event# 10 start: 90 sec
SLP_S3# -> HI count=7
Main & Backup failed - Hold backplane in reset.
Ik heb het waarschijnlijk nog meer kapot gemaakt. :lol: