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 Windows-compatible.

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.

win Microsoft Windows

Warning

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

NT 5.0 (Windows 2000) compatibility is also being discussed in #73.

Warning

Microsoft Windows in this context refers to Windows NT based systems by Microsoft. For other systems by Microsoft bearing the name “Windows”, see MS-DOS and Windows 9x.

Windows NT is a family of systems made by Microsoft. In this context, we only consider systems including the Win32 subsystem, which was introduced in NT 3.1. Currently, only NT 5.1 (Windows XP) and above are supported by Cahute.

Cahute only supports x86 (i686+) and x64 for Windows. It aims at supporting both available runtimes for Windows:

  • 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.

Microsoft Windows drivers for CASIO calculators over USB

As opposed to other platforms, Cahute cannot access USB devices on calculators, but must make use of a driver specifically installed for the calculator. Possible drivers are the following:

  • CASIO’s CESG502 driver, which matches devices using the 07cf:6101 VID/PID pair for devices implementing Serial transport over USB bulk in order to provide a stream-like interface.

    It is compatible with NT 5.0 (Windows 2000) onwards. 32-bit (x86) drivers can be found here, and 64-bit (x64) drivers are installed with FA-124;

  • WinUSB, a generic USB driver made by Microsoft and compatible with NT 6.0 (Windows Vista) onwards. Cahute uses this through libusb;

  • libusbK.sys, a generic USB driver provided by libusbK, compatible with NT 5.1 (Windows XP) onwards. Cahute uses this through libusb;

  • libusb0.sys, a generic USB driver provided by libusb-win32, compatible with NT 5.0 (Windows 2000) onwards. Cahute uses this through libusb.

This compatibility is limited by the fact that Cahute uses libusb, which, while originally compatible NT 5.1 (Windows XP) onwards, has dropped compatibility with Windows XP in version 1.0.24; see libusb supported environments for more information.

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.

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, on which Windows 3.1 runs.

win95 Windows 9x

Warning

Windows 9x is not yet supported as an official target by Cahute.

Windows 9x is a series of systems made by Microsoft in the 1990s, including Windows 95, Windows 98 and Windows Me (Millennium Edition). It is distinct from MS-DOS as it uses a different kernel that takes advance of 32-bit protected mode on x86; see What was the role of MS-DOS in Windows 95? for more information.

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.