did someone of you guys got already app and bitstream from SDS2000X-E? I wish i could get it as well ...
Name of the app: sds2000hsr
File Header Size: 00000070
00000000 - File Checksum: 001C9FBC [00000004-0264BFAE] (with only the File Header decrypted) CKSM NOT OK
00000004 - File Size: 0264BF3F (without 0x70 bytes of the File Header)
0000000C - Product_ID: 14000
00000026 - Vendor/Brand: 0.8.0R1B5
0000003A - USB Host Controller: SIGLENT
00000048 - Version: 0.8.0R1B5
****************************************************
Replacing the shadow file wasn't very hard to do so let's test this method
SDS1004X-E_OSV1_EN_eevblog.zip
How to open a telnet session in a Siglent when the root password is unknown?
Use the following scripts, according to each equipment.
They provide a root session via port 10101.
Duh, figured it out... The .ADS file is not loaded automatically upon insertion of the USB stick, or upon booting the SDG with an inserted stick. One has to explicitly trigger a "firmware update" via the system menu. The SDG will state that the update failed, but subsequently it does have port 10101 enabled. No credentials required for a telnet session on that port.
How did you figure it out? (That is the most educational part that you can leave here... )
Replacing the shadow file wasn't very hard to do so let's test this method
SDS1004X-E_OSV1_EN_eevblog.zip
That file was on some free server, and is gone.
Is the same file available elsewhere???
Or is there a substitute that might be better to use??
9) On remote computer console, press the down arrow until the cursor in the vi window is on the line that starts with <license><bandwidth... and press dd (that means press 'd' twice) You will see the line has disappeared.
(the serial number has been replaced with "1234567890", however.
Perhaps someone else knows how to replace the serial number?
O.K. - Got it figured out
1) Insert USB Stick into front panel USB socket
2) Put SDG into System / Info / Upgrade
3) Select telnet file for SDG2042X and UPDATE
4) LEAVE POWER ON SDG
5) On remote computer console, type: telnet <SDG IP address> <SPACE> 10101 <RETURN>
6) On remote computer console, type: mount -o remount,rw ubi2_0 <SPACE> /usr/bin/siglent/firmdata0
7) On remote computer console, type: cp /usr/bin/siglent/firmdata0/NSP_system_info.xml /usr/bin/siglent/firmdata0/NSP_system_info.xml.orig
8.) On remote computer console, type: vi /usr/bin/siglent/firmdata0/NSP_system_info.xml
ERR: 9) On remote computer console, press the down arrow until the cursor in the vi window is on the line that starts with <license><bandwidth... and press dd (that means press 'd' twice) You will see the line has disappeared.
10) On remote computer console, type: :wq <RETURN>
11) On remote computer console, type: sync
12) on SDG: remove USB stick
13) on SDG: turn power OFF
When you power back on, the status menu indicates the model number is now SDG2122X. (the serial number has been replaced with "1234567890", however.
Perhaps someone else knows how to replace the serial number?
private static void parseADS_SIGLENT_SDS5000X(ref byte[] memDump)
{
byte[] buf1 = new byte[memDump.Length - 0x70];
Array.Reverse(memDump); // reverses the buffer
for (int block = 0x2800, i1 = buf1.Length - block, i2 = 0; block > 0; i2 += block, block = Math.Min(0x2800, i1), i1 -= block) // unshuffling blocks
Buffer.BlockCopy(memDump, i1, buf1, i2, block);
for (int iBlock = 0; iBlock < buf1.Length; iBlock += 0x2800) // XORing with 0xFF (increment. pattern and blocks)...
{
for (int i1 = iBlock + 1, i2 = 2; i1 < iBlock + 0x2800 && i1 < buf1.Length; i1 += i2, i2++)
buf1[i1] ^= 0xFF;
for (int i1 = iBlock + Math.Min(0x1400, (buf1.Length - iBlock + 1) / 2); i1 < iBlock + 0x2800 && i1 < buf1.Length; i1++)
buf1[i1] ^= 0xFF;
}
}
Here is a C# function ...Code: [Select]for (int iBlock = 0; iBlock < buf1.Length; iBlock += 0x2800) // XORing with 0xFF (increment. pattern and blocks)...
{
for (int i1 = iBlock + 1, i2 = 2; i1 < iBlock + 0x2800 && i1 < buf1.Length; i1 += i2, i2++)
buf1[i1] ^= 0xFF;
for (int i1 = iBlock + Math.Min(0x1400, (buf1.Length - iBlock + 1) / 2); i1 < iBlock + 0x2800 && i1 < buf1.Length; i1++)
buf1[i1] ^= 0xFF;
}
}