Index of /firmware/musa

[ICO]NameLast modifiedSizeDescription

[PARENTDIR]Parent Directory  -  
[   ]musa-pytorch.tar2026-06-13 17:15 5.0G 
[TXT]README.html2026-07-04 04:57 9.5K 
[DIR]1.2/2026-07-16 11:59 -  
[DIR]1.1/2026-07-04 18:53 -  
[DIR]1.0/2026-07-04 18:45 -  

+---------------+
|MTT S80 Drivers|
+---------------+

By default, the official MTT S80 drivers are locked to only run on Ubuntu.

The "Unlocked" drivers presented here have been binary modified to remove this limitation. I have also, by hand, converted the DEB package to an RPM package, so the drivers can be installed on Fedora-based systems as well and not just Debian-based systems.

The official drivers, as well as the "Unlocked" drivers provided here, do not tend to work on kernels above 6.1, with the officially recommended kernel being 5.15. 

The "Compute" drivers are massively stripped down drivers with all graphical capabilities removed, and thus are only useful for compute-only workloads, such as AI. These drivers have also had their code significantly modified such that they can run on kernels above 6.1. I have personally tested them to work just fine for llama.cpp and ComfyUI on kernel 6.17 in Linux Mint.

+-------------+
|Flatpak Notes|
+-------------+

If you are trying to run Flatpak software with the MTT S80 drivers, they will not take advantage of hardware acceleration out of the box. However, it is possible to get the drivers to work inside of a Flatpak container.

Create a directory called `/opt/moorethreads`.

Inside of it, create two directories lib/ and lib64/.

Inside of lib/, place all relevant 32-bit GPU files.

lib
├── dri
├── gbm
│   └── mtgpu_gbm.so
├── libEGL_mtgpu.so -> libEGL_mtgpu.so.0
├── libEGL_mtgpu.so.0 -> libEGL_mtgpu.so.0.0.0
├── libEGL_mtgpu.so.0.0.0
├── libglapi_musa.so -> libglapi_musa.so.0
├── libglapi_musa.so.0 -> libglapi_musa.so.0.0.0
├── libglapi_musa.so.0.0.0
├── libGLX_mtgpu.so -> libGLX_mtgpu.so.0
├── libGLX_mtgpu.so.0 -> libGLX_mtgpu.so.0.0.0
├── libGLX_mtgpu.so.0.0.0
├── libMT_SPIRV-Tools.so
├── libmusa_mesa_wsi.so -> libmusa_mesa_wsi.so.0.0.0
├── libmusa_mesa_wsi.so.0.0.0
└── musa

Inside of lib64/, place all relevant 64-bit GPU files.

lib64
├── cx4_builtins.bc
├── cx4_driocl.so
├── cx4libclc
│   └── clc
│       └── 2.0
│           ├── include
│           │   ├── clc_base.h
│           │   └── clcdnmfun.h
│           └── lib
├── cx4oclasm.so
├── cx4oclcompiler.so
├── dri
│   ├── Cx4App.cfg
│   ├── cx4_drv_video.so
│   ├── cx4_vndri.so
│   ├── kms_swrast_musa_dri.so
│   ├── mtgpu_dri.so
│   ├── mtgpu_drv_video_1.so
│   ├── mtgpu_drv_video_2.so
│   ├── mtgpu_drv_video.so
│   ├── musa_dri.so
│   ├── musa_drv_video.so -> mtgpu_drv_video.so
│   └── swrast_musa_dri.so
├── gbm
│   ├── cx4_gbm.so
│   └── mtgpu_gbm.so
├── libcx4arb_compiler.so
├── libcx4bec.so
├── libcx4GLSLCompiler.so
├── libcx4keinterface_v2.so.0 -> libcx4keinterface_v2.so.0.0.0
├── libcx4keinterface_v2.so.0.0.0
├── libcx4_mgmt_interface.so
├── libcx4spirv2nir.so
├── libdrm_mtgpu.so -> libdrm_mtgpu.so.1
├── libdrm_mtgpu.so.1 -> libdrm_mtgpu.so.1.0.0
├── libdrm_mtgpu.so.1.0.0
├── libEGL_cx4.so.0.0.0
├── libEGL_mtgpu.so -> libEGL_mtgpu.so.0
├── libEGL_mtgpu.so.0 -> libEGL_mtgpu.so.0.0.0
├── libEGL_mtgpu.so.0.0.0
├── libglapi_cx4.so.0.0.0
├── libglapi_musa.so -> libglapi_musa.so.0
├── libglapi_musa.so.0 -> libglapi_musa.so.0.0.0
├── libglapi_musa.so.0.0.0
├── libGLESv1_CM_MUSA_MESA.so -> libGLESv1_CM_MUSA_MESA.so.1.0.0
├── libGLESv1_CM_MUSA_MESA.so.1.0.0
├── libGLESv2_MUSA_MESA.so -> libGLESv2_MUSA_MESA.so.1.0.0
├── libGLESv2_MUSA_MESA.so.1.0.0
├── libGLX_cx4.so.0.0.0
├── libGLX_mtgpu.so -> libGLX_mtgpu.so.0
├── libGLX_mtgpu.so.0 -> libGLX_mtgpu.so.0.0.0
├── libGLX_mtgpu.so.0.0.0
├── libMT_SPIRV-Tools.so
├── libmusa_dri_support.so -> libmusa_dri_support.so.1.0.0
├── libmusa_dri_support.so.1.0.0
├── libmusa_mesa_wsi.so -> libmusa_mesa_wsi.so.0.0.0
├── libmusa_mesa_wsi.so.0.0.0
├── librogue2d_api_MUSA.so -> librogue2d_api_MUSA.so.1.0.0
├── librogue2d_api_MUSA.so.1.0.0
├── libSPIRV-Tools-shared.so
├── libsrv_um_MUSA.so -> libsrv_um_MUSA.so.1.0.0
├── libsrv_um_MUSA.so.1.0.0
├── libsutu_display_MUSA.so -> libsutu_display_MUSA.so.1.0.0
├── libsutu_display_MUSA.so.1.0.0
├── libufwriter_MUSA.so -> libufwriter_MUSA.so.1.0.0
├── libufwriter_MUSA.so.1.0.0
├── libusc_MUSA.so -> libusc_MUSA.so.1.0.0
├── libusc_MUSA.so.1.0.0
├── libVK_MT.so -> libVK_MT.so.1.0.0
├── libVK_MT.so.1 -> libVK_MT.so.1.0.0
├── libVK_MT.so.1.0.0
├── libvulkan_cx4.so
├── musa
└── vdpau
    ├── libvdpau_cx4.so -> libvdpau_cx4.so.1.0.0
    ├── libvdpau_cx4.so.1 -> libvdpau_cx4.so.1.0.0
    ├── libvdpau_cx4.so.1.0 -> libvdpau_cx4.so.1.0.0
    └── libvdpau_cx4.so.1.0.0

Also, at the root of our /opt/moorethreads directory, create a configuration file named `musaicdconf.json` with the following contents.

{
        "file_format_version": "1.0.0",
        "ICD": {
                "library_path": "/opt/moorethreads/lib64/libVK_MT.so",
                "api_version": "1.0.0"
        }
}

Finally, when you launch Flatpak, use the following parameters. In this example, we are launching Steam.

flatpak run \
  --device=all \
  --filesystem=/opt/moorethreads:ro \
  --filesystem=/dev/mtgpu.0:rw \
  --filesystem=/dev/mtgpu0:rw \
  --filesystem=/usr/local/musa:ro \
  --env=LD_LIBRARY_PATH=/opt/moorethreads/lib64:/opt/moorethreads/lib32:/usr/local/musa/lib \
  --env=VK_DRIVER_FILES=/opt/moorethreads/musaicdconf.json \
  com.valvesoftware.Steam

+------------+
|AI Workloads|
+------------+

If you want to run AI workloads on the MTT S80, such as llama.cpp or ComfyUI, then you will want to use the official Docker container.

First, install Docker.

sudo apt install docker.io #Debian-based distros
sudo yum install docker    #Fedora-based distros
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
sudo reboot

Then, download the official Docker container.

#After rebooting
docker run -it \
  --privileged \
  --env MTHREADS_VISIBLE_DEVICES=all \
  --network=host \
  -v /:/host \
  registry.mthreads.com/mcconline/musa-pytorch-release-public:rc4.2.0-v2.1.0-S80-py310 \
  /bin/bash

This will automatically download the container from Moore Thread's servers. If the official Docker container ever goes down, you can download `musa-pytorch.tar` from this repository. Download the image then load it using the command below. After the image is loaded, then you can just run the command above, as it will start a container without trying to download the image if it is already on your system.

docker load -i musa-pytorch.tar

Once the Docker container loads, it will say "Moore Threads Failed." 

Error! mthreads-gmi did not output anything! Please check the underlying drivers and container tools 
/usr/bin/which: this version of `which' is deprecated; use `command -v' in scripts instead.
/home/check_status.sh: line 13: [: 
2377
1428: integer expression expected
simple demo check successfully! 
 __  __  ___   ___  ____  _____   _____ _   _ ____  _____    _    ____  ____  
|  \/  |/ _ \ / _ \|  _ \| ____| |_   _| | | |  _ \| ____|  / \  |  _ \/ ___| 
| |\/| | | | | | | | |_) |  _|     | | | |_| | |_) |  _|   / _ \ | | | \___ \ 
| |  | | |_| | |_| |  _ <| |___    | | |  _  |  _ <| |___ / ___ \| |_| |___) |
|_|  |_|\___/ \___/|_| \_\_____|   |_| |_| |_|_| \_\_____/_/   \_\____/|____/ 

 _____     _ _          _ _ 
|  ___|_ _(_) | ___  __| | |
| |_ / _` | | |/ _ \/ _` | |
|  _| (_| | | |  __/ (_| |_|
|_|  \__,_|_|_|\___|\__,_(_)

After you see this message, type the following command.

cp /host/usr/bin/mthreads-gmi /usr/bin/ && exit

Then, run the following command to re-enter the Docker container.

n=$(docker ps -a | grep mthreads | cut -d' ' -f1); docker start $n; docker attach $n

This time, it should say "Moore Threads Success."

mthreads-gmi command check successfully! 
simple demo check successfully! 
 __  __  ___   ___  ____  _____   _____ _   _ ____  _____    _    ____  ____  
|  \/  |/ _ \ / _ \|  _ \| ____| |_   _| | | |  _ \| ____|  / \  |  _ \/ ___| 
| |\/| | | | | | | | |_) |  _|     | | | |_| | |_) |  _|   / _ \ | | | \___ \ 
| |  | | |_| | |_| |  _ <| |___    | | |  _  |  _ <| |___ / ___ \| |_| |___) |
|_|  |_|\___/ \___/|_| \_\_____|   |_| |_| |_|_| \_\_____/_/   \_\____/|____/ 

 ____                              _ 
/ ___| _   _  ___ ___ ___  ___ ___| |
\___ \| | | |/ __/ __/ _ \/ __/ __| |
 ___) | |_| | (_| (_|  __/\__ \__ \_|
|____/ \__,_|\___\___\___||___/___(_)

The next two sections will provide the commands needed for llama.cpp and ComfyUI. These must be ran within the Docker container!


+---------+
|llama.cpp|
+---------+

# Setup
apt update
apt install -y libssl-dev git ccache cmake
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
git checkout tags/b9610
mkdir build
cd build/
cmake .. -DGGML_MUSA=ON -DCMAKE_BUILD_TYPE=Release -DLLAMA_OPENSSL=ON
cmake --build . --config Release -j$(nproc)

# Run it
./bin/llama-server --gpt-oss-20b-default -ngl 999 --ctx-size 5120 --parallel 1

+-------+
|ComfyUI|
+-------+

# Setup
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
pip install torchada
pip install -r requirements.txt
pip install "numpy<2"
sed -i '1s/^/import torchada\n/' main.py

# Run it
MUSA_VISIBLE_DEVICES=0 python main.py --force-fp32