- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
When I try to run quartus_sh inside Docker, I get the crash below.
Any ideas on how I can address this?
quartus_sh --lower_priority --flow compile top
Info: *******************************************************************
Info: Running Quartus Prime Shell
Info: Version 19.3.0 Build 222 09/23/2019 SC Pro Edition
[deleted]
Info: Processing started: Mon Dec 2 11:08:58 2019
Info: System process ID: 6
Info: Command: quartus_sh --lower_priority --flow compile top
Info: Quartus(args): compile top
Info: Project Name = /home/oyvind/ascenium/ascenium2/hardware/fmax/top
Info: Revision Name = top
quartus_sh: malloc.c:2868: mremap_chunk: Assertion `((size + offset) & (GLRO (dl_pagesize) - 1)) == 0' failed.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It would obviously make Quartus a lot more user-friendly if it wasn't necessary to hunt down this workaround:
I can sweep the problem under the carpet with these Dockerfile incantations:
+RUN apt-get -y --no-install-recommends install libtcmalloc-minimal4
+
+ENV LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libtcmalloc_minimal.so.4
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The goal is to be able to run Quartus in the cloud. My plan to achieve this is to use a local license in the cloud. The concept of a license server breaks down for the cloud.
Overview on how to how to reproduce:
- Make sure you have plenty of disk space. You're going to need an SSD for this with 50-100GByte free. An HDD would be very, very slow for this.
- First create a "quartus19base" Docker image based on the first Dockerfile attached.
- Create a "crash" Docker image based on the second Dockerfile attached.
- Create a simple Quartus project called "top", then use image created in #1 to run a quartush_sh flow
To create "quartus19base" image:
- Create a folder "install"
- copy Quartus-pro-19.3.0.222-linux-complete.tar into "install"
- Copy the first Dockerfile attached into that folder
- build the image: docker build -t quartus19base install/
To create the "crash" image:
- Create folder "crash"
- Copy the second Dockerfile to "crash"
- Copy your single seat license.dat tied to a MAC address into "crash" and update Dockerfile to copy that license.dat into the Docker image
- Copy the attached "runquartus" file into "crash"
- docker build -t crash crash
Reproduce crash:
- Change working folder to where you have your "top" project
- Use your license.dat mac address for the "--mac-address" argument
- Run: docker run --mac-address=xx:xx:xx:xx:xx:xx -ti -u $(id -u ${USER}):$(id -g ${USER}) -v $(pwd):$(pwd) --workdir $(pwd) -t crash quartus_sh --flow compile top
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks for the feedback. We will look into this so that in the future, a newer Quartus version will give a better customer experience.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks!
It would also be great if there was an official way to handle licensing when running in the cloud.
My use-case is that I want to do a place and route run upon pull requests in github.com using the github google cloud pull request plugin.
If the design has no timing violations and the fMax is equal to or better then current fMax, the pull request is automatically merged using Mergify.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page