System compatibility

Cahute is compatible with multiple host systems and system libraries. The following sections represents these.

Warning

Some sections are present in this document for reference, and the presence of a section in this document does not mean the system is currently supported; it does mean however that support for the platform is considered.

Note

We consider that Cahute officially supports a platform (system with specific components, such as the C library, and so on) when:

  1. Cahute can be built for the platform from Linux, using freely-distributed software;

  2. Cahute can run and access at least one system resource relevant to its function (at least one serial port, some USB devices, or the filesystem);

  3. Cahute build for the platform is integrated within the project’s CI;

  4. Cahute can be installed without being manually built on or for the platform, using a package manager or an installer distribution.

Also note that requirement 1 does not imply that all build methods have to use freely-distributed software, we only need one to be.

linux Linux distributions

Linux is only a kernel, which has spawned multiple distributions around it considered systems on which Cahute can run. Their support is one of the main reasons why alternative tooling to CASIO’s own exist in the first place, which is only distributed on Microsoft Windows.

Officially supported targets for Linux are the following:

Processor architecture

C library

Target

x86

GNU C library

i686-pc-linux-gnu

x64

GNU C library

x86_64-pc-linux-gnu

x86

musl libc

i686-pc-linux-musl

x64

musl libc

x86_64-pc-linux-musl

In addition to the binary compatibility, details such as the filesystem hierarchy must be examined. By default, Cahute assumes the Filesystem Hierarchy Standard (FHS), which for example defines that devices are present in /dev.

Build instructions for Linux are distribution-agnostic, and the built project is selected based on every distribution’s configuration. See Building Cahute for Linux distributions for more information.

archlinux Archlinux and derivatives

Archlinux is a Linux distribution based on the Pacman package manager. Many distributions are based on it, with one of the more well-known ones being Manjaro. It uses the GNU C library.

Cahute does not provide a package repository for Archlinux and derivatives; it however is available on the Archlinux User Repository as the cahute package; see Installing Cahute on Archlinux and derivatives, using the AUR for instructions on how to install it.

debian Debian and derivatives

Warning

Debian is not yet supported as an official target by Cahute. See #8 for more information.

Debian is a Linux distribution based on APT (Advanced Package Tool). Many distributions are based on it, with some of the more well-known ones being Ubuntu and Linux Mint. It uses the GNU C library.

Cahute does not yet provide a package repository for Debian and derivatives, nor endorses any external package repository; one must build Cahute to use it on such systems for now.

void Void Linux

Warning

Void Linux is not yet supported as an official target by Cahute. See #72 for more information.

Void Linux is a Linux distribution based on XBPS (X Binary Package System). It uses the musl libc.

Cahute does not yet provide a package repository for Void Linux, nor endorses any external package repository; one must build Cahute to use it on such systems for now.

apple macOS, OS X

macOS / OS X is, in this context, an alias for Darwin, a system based on XNU developed by Apple for its Mac computers, among others. It is derived from BSD, among other systems.

Support for this platform is mostly common with other UNIX-like platforms such as Linux, and most of the platform-specific code is handled by libusb. The following is implemented in Cahute directly:

  • macOS does not allow detaching the kernel driver for USB devices, unless it is code signed. Cahute ignores access-related errors on kernel driver detaching for this reason;

  • Like for other BSD systems, serial devices are present in /dev as cu.* and cuad.* devices, instead of ttyUSB* for Linux.

Installation on macOS / OS X of Cahute is done via Homebrew, which requires macOS Ventura (13) or higher; see Installing Cahute on macOS / OS X and Homebrew macOS requirements for more information.

For now, Cahute is only built natively for this platform; see Building Cahute for macOS / OS X for more information.

freebsd FreeBSD

Warning

MS-DOS is not yet supported as an official target by Cahute.

FreeBSD is a BSD-derived system.

netbsd NetBSD

Warning

MS-DOS is not yet supported as an official target by Cahute.

NetBSD is a BSD-derived system.

win Microsoft Windows

Warning

Microsoft Windows in general is not yet supported as an official target by Cahute. See #10 for more information.

Microsoft Windows is a family of operating systems made by Microsoft since the 1980s, bearing multiple programmation interfaces, described in the following subsections.

win31 Win16

Warning

This platform is currently unsupported by Cahute.

Win16 is the 16-bit Windows API, only present on the x86 architecture, first introduced with Windows 1.0 in 1985. It is supported by the following systems:

win Win32

Win32 is the 32-bit Windows API, present on the x86 (i686+) and x64 architectures, first introduced with Windows NT 3.1 in 1993. It is supported by the following systems:

Note

The Windows 9x series only support a subset of Win32, also known as “Win32s”.

C/C++ programs using this interface can have one of two existing runtimes:

  • Microsoft Visual C++ Runtime (MSVCRT), available by default on NT 3.1+;

  • Universal C Runtime (UCRT), only available by default on NT 10.0 (Windows 10), and through updates on NT 6.0 (Windows Vista) and above; see Universal CRT deployment for more information.

See UCRT vs. MSVCRT for more information.

One can make use of MinGW-w64 in order to build from Windows itself without Microsoft’s C libraries exclusively distributed with Visual Studio, or from other platforms such as Linux. See Building Cahute for Microsoft Windows for more details.

Cahute currently supports Win32 starting from Windows 2000 (NT 5.0), for both the UCRT and MSVCRT runtimes.

Win32 drivers for CASIO calculators over USB

As opposed to other platforms and interfaces, Cahute cannot access USB devices on calculators, but must make use of a driver specifically installed for the calculator.

Possible drivers include the following:

Name

Description

Compatibility

Generic volume driver

Driver by Microsoft, automatically used when a device presents a USB Mass Storage interface descriptor.

Windows 2000 (NT 5.0)+

CESG502

CASIO’s official driver for serial over USB bulk devices, matching USB devices presenting the 07cf:6101 VID/PID pair.

32-bit (x86) drivers can be found here, and 64-bit (x64) drivers are installed with FA-124;

Windows 2000 (NT 5.0)+

WinUSB

Generic USB device driver by Microsoft.

Can be selected automatically if the calculator presents WCID attributes.

Windows Vista (NT 6.0)+

libusbK.sys

Generic KMF-based USB device driver provided by libusbK, a third-party library.

Windows XP (NT 5.1)+

libusb0.sys

Generic USB device driver provided by libusb-win32, a third-party library implementing the libusb 0.1 API.

Windows 2000 (NT 5.0)+

UsbDk

Generic USB device driver provided by the eponym, third-party component.

Windows XP (NT 5.1)+

See libusb-compatible kernel drivers for more information on generic USB device drivers for Win32.

msdos MS-DOS

Warning

MS-DOS is not yet supported as an official target by Cahute.

MS-DOS is a system made by Microsoft in 1981.

amigaos AmigaOS

Warning

AmigaOS is not yet supported as an official target by Cahute. See #26 for more information.

AmigaOS is a system originally made by Commodore for the Amiga family of computers. Versions 3.2+ of the system were made by Hyperion Entertainment, which went bankrupt in March of 2024.

There were some community-made CASIO software for AmigaOS in the early 2000s, including Amicas and ACas which both implemented CAS50 over serial links.

Cahute can be built for AmigaOS 3.1+ using the Native Development Kit (NDK), which can be found in the Hyperion Entertainment Downloads. See Building Cahute for AmigaOS for more details.