I am trying to run this tutorial in Raspbery Pi with Raspian Stretch OS installed.
pi@raspberrypi:~ $ sudo iotedge list
NAME STATUS DESCRIPTION CONFIG
sql failed Failed (1) 2 days ago microsoft/mssql-server-linux:2017-latest
sqlFunction running Up 2 days <my_registry>/sqlfunction:0.0.1-arm32v7
edgeHub running Up 2 days mcr.microsoft.com/azureiotedge-hub:1.0
tempSensor running Up 2 days mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.0
edgeAgent running Up 2 days mcr.microsoft.com/azureiotedge-agent:1.0
```
The sql module logs shows the following error:-
``` pi@raspberrypi:~ $ sudo iotedge logs sql -f
standard_init_linux.go:190: exec user process caused "exec format error"
standard_init_linux.go:190: exec user process caused "exec format error"
standard_init_linux.go:190: exec user process caused "exec format error"
standard_init_linux.go:190: exec user process caused "exec format error"
standard_init_linux.go:190: exec user process caused "exec format error"
standard_init_linux.go:190: exec user process caused "exec format error"
standard_init_linux.go:190: exec user process caused "exec format error"
standard_init_linux.go:190: exec user process caused "exec format error"
standard_init_linux.go:190: exec user process caused "exec format error"
standard_init_linux.go:190: exec user process caused "exec format error"
standard_init_linux.go:190: exec user process caused "exec format error"
standard_init_linux.go:190: exec user process caused "exec format error"
.....
This error seems to be because of architecture problem.
microsoft/mssql-server-linux:2017-latest supported only for linux-x64 and not available for arm architectures?⚠Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.
@SarithaMaran Can you please provide the tutorial you are following? The best way to mitigate this is to follow the tutorial as detailed, including the use of Linux-x64 versus , etc. If the documentation is not clear on this, then we can address this via this channel. If you are having issues deploying a variation of the tutorial, the MSDN or Stack Overflow forums are best to get the visibility + feedback.
My initial response is that ARM is likely not supported (at this time) but I need to know more about what you are trying to accomplish. Is the image based upon Ubuntu 16.04 LTS, as that is Linux-x64. I see Ubuntu Server 18.04 in ARM architecture only. I will sync with @sergaz-msft but please include the tutorial you are trying to follow. Thank you!
@Mike-Ubezzi-MSFT
I am following this tutorial for storing data locally with SQL.
Under the section Add a SQL Server Container, for _Linux system_, the mentioned image is:
microsoft/mssql-server-linux:2017-latest
@SarithaMaran I believe that SQL Server Container for Linux is x64-compatible only. See the following Docker and GH repositories that generate the container for more info:
https://hub.docker.com/r/microsoft/mssql-server-linux/
https://github.com/Microsoft/mssql-docker
"Linux-based containers: This Docker image uses SQL Server 2017 Developer Edition on Linux on top of an Ubuntu 16.04 base image. This is meant to be run on Docker Engine on its multiple platforms. There are also Dockerfiles here for building RHEL & CentOS based images."
I would suggest that you request this feature on the two UserVoice locations:
I also researched on the GH issues section and couldn't find anything related with ARM.
Let us know if we can help you further?
Thanks!
Since we have not heard back from you we will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.
I just got into the same issue.
I run armbian on orangepi arm64 board and tried
docker pull mcr.microsoft.com/mssql/server
This worked fine, and indicates, that manifest for the image declares support for arm architecture.
But, when I run the image, I see same error about format.
I think the problem is, mssql server image by error has arm support stated in manifest
I suffer from the same issue: I followed this tutorial, but using a Raspberry Pi 3B+. I'm getting the same error as initially posted (exec user process caused "exec format error") and came up with the same conclusion: The image seems not to be available for ARM architecture as the according "tag" is not shown here https://hub.docker.com/_/microsoft-mssql-server
Would be nice to have this image for ARM as well - or at least to mention at the beginning of this tutorial that it'll not going to work on RPi & Co.
@maxbl4 @zulli73 thank you so much for your feedback.
I am reopening this issue to evaluate if we need to enhance the document so that we can be more clear whether this can run on ARM or just ADM64.
@kgremban can you help validate?
Thanks!
Thanks for adding me. I can update the tutorial with more specific prerequisites, and I've contacted the owners of the microsoft-mssql-server container image to see what can be done about preventing it from being pulled onto ARM devices.
SQL Server is not supported on ARM architecture. For installing the SQL database engine on ARM64, you need to use Azure SQL Database Edge. Azure SQL Database Edge is currently in Public Preview and is supported on ARM64 devices. You will need to sign up for the public preview using the Contact Form located at the bottom of the Azure SQL Database Edge homepage.
@maxbl4 and @zulli73, I created a pull request to clarify the prerequisites for this tutorial. As written, this tutorial supports AMD64 Linux devices running IoT Edge. I added a note that ARM device users may consider signing up for the Azure SQL Database Edge preview. (Since it's Friday afternoon in Redmond, these changes will go live on Monday not over the weekend.)
Unfortunately, at this time we can't make Docker throw an error earlier if users do try to run the SQL Server module on an ARM device.
Does this answer your questions?
Yes, that makes things clear. Thanks!
I suppose that helps. Thanks!
Great. I'm going to close this issue now, but if you have new concerns around the same topic you are welcome to post here again and we can reopen the issue if necessary.
is there a plan to provide ODBC support for ARM64 too? - I have SQL Edge running fine, but my local app can't connect to it (remote app can)
any update on arm support?
ref: https://forums.developer.nvidia.com/t/install-microsoft-odbc-driver-for-sql-server-linux-at-jetson-nano-problem/121784/5
SQL Server is not supported on ARM. We have Azure SQL Edge which is supported on ARM and is generally available. https://docs.microsoft.com/en-us/azure/azure-sql-edge/overview
@amitmsft Thank you for following up!
If folks want on ARM "msodbcsql17 & mssql-tools", what should they do?
We currently do not have a ARM package for msodbcsql17 & mssql-tools. Its recommended that you do remote management for SQL Edge running on ARM.
As for Local apps connecting to SQL, if the apps are built using dotnetcore, then you can use the Microsoft.Data.SqlClient dotnetcore lib to connect to sql.
Most helpful comment
SQL Server is not supported on ARM architecture. For installing the SQL database engine on ARM64, you need to use Azure SQL Database Edge. Azure SQL Database Edge is currently in Public Preview and is supported on ARM64 devices. You will need to sign up for the public preview using the Contact Form located at the bottom of the Azure SQL Database Edge homepage.