{"record":{"id":"4c5b130e60201860","repo":"opendatalab/MinerU","slug":"unsupported-operating-system","errorCode":null,"errorMessage":"Unsupported operating system.","messagePattern":"Unsupported operating system\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"mineru/backend/vlm/utils.py","lineNumber":77,"sourceCode":"\ndef set_lmdeploy_backend(device_type: str) -> str:\n    if device_type.lower() in [\"ascend\", \"maca\", \"camb\"]:\n        lmdeploy_backend = \"pytorch\"\n    elif device_type.lower() in [\"cuda\"]:\n        import torch\n        if not torch.cuda.is_available():\n            raise ValueError(\"CUDA is not available.\")\n        if is_windows_environment():\n            lmdeploy_backend = \"turbomind\"\n        elif is_linux_environment():\n            major, minor = torch.cuda.get_device_capability()\n            compute_capability = f\"{major}.{minor}\"\n            if version.parse(compute_capability) >= version.parse(\"8.0\"):\n                lmdeploy_backend = \"pytorch\"\n            else:\n                lmdeploy_backend = \"turbomind\"\n        else:\n            raise ValueError(\"Unsupported operating system.\")\n    else:\n        raise ValueError(f\"Unsupported lmdeploy device type: {device_type}\")\n    return lmdeploy_backend\n\n\ndef set_default_gpu_memory_utilization() -> float:\n    from vllm import __version__ as vllm_version\n    device = get_device()\n    gpu_memory = get_vram(device)\n    default_gpu_memory_utilization = 0.5\n    if version.parse(vllm_version) >= version.parse(\"0.11.0\") and gpu_memory <= 8:\n        default_gpu_memory_utilization = 0.7\n\n    logger.debug(f\"vllm_version: {vllm_version}, gpu_memory: {gpu_memory} GB, default_gpu_memory_utilization: {default_gpu_memory_utilization}\")\n    return default_gpu_memory_utilization\n\n\ndef set_default_batch_size() -> int:","sourceCodeStart":59,"sourceCodeEnd":95,"githubUrl":"https://github.com/opendatalab/MinerU/blob/4fe4bde114a23ee5dd637eae99b767f4669bf58c/mineru/backend/vlm/utils.py#L59-L95","documentation":"Raised inside set_lmdeploy_backend() on the CUDA path when the OS is neither Windows nor Linux as detected by is_windows_environment()/is_linux_environment(). lmdeploy's engine selection (turbomind/pytorch by compute capability) is only implemented for those two platforms.","triggerScenarios":"device_type='cuda' on macOS or another Unix where a CUDA device is reported (rare, e.g. legacy Mac CUDA, BSD with NVIDIA drivers) or environment detection misclassifies the platform.","commonSituations":"Running on macOS with an old CUDA card; esoteric OSes; container reporting a strange platform via platform module.","solutions":["Run lmdeploy-engine on Linux or Windows with an NVIDIA GPU.","On macOS, switch to the mlx-engine backend (Apple Silicon) or transformers backend.","If the platform is genuinely Linux/Windows but detection fails, check platform.system()/env overrides your shell sets."],"exampleFix":"# before\nbackend = set_lmdeploy_backend(\"cuda\")  # on macOS -> Unsupported operating system.\n\n# after (Apple Silicon Mac)\nrun_parse(backend=\"mlx-engine\", ...)","handlingStrategy":"type-guard","validationCode":"import platform\n\ndef lmdeploy_cuda_platform_ok() -> bool:\n    return platform.system() in (\"Windows\", \"Linux\")","typeGuard":"import platform\n\ndef supports_lmdeploy_cuda() -> bool:\n    import torch\n    return platform.system() in (\"Windows\", \"Linux\") and torch.cuda.is_available()","tryCatchPattern":"try:\n    backend = set_lmdeploy_backend(\"cuda\")\nexcept ValueError as e:\n    if \"Unsupported operating system\" in str(e):\n        backend = \"pytorch\"  # ascend/maca/camb path, or switch backends entirely\n    else:\n        raise","preventionTips":["Gate backend selection on platform.system() in launch scripts.","On macOS use mlx-engine (Apple Silicon) or transformers instead.","Keep per-OS config files rather than one shared config."],"tags":["lmdeploy","os-support","vlm","platform"],"backgroundTag":null,"analyzedSha":"4fe4bde114a23ee5dd637eae99b767f4669bf58c","analyzedAt":"2026-08-14T21:29:18.456Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}