Skip to content

Building from sources

Josh at WL Tech Blog edited this page Mar 23, 2026 · 19 revisions

Prerequisites

To successfully compile the firmware natively, you need a modern Linux distribution equipped with up-to-date system libraries and tools. Most users should use our containerized builder which uses Podman or Docker to allow building on any system supported by them. If you have issues with native compilation, please use the container process instead of asking for help.

Important

Building is currently supported only on x86_64 and ARM64 platforms.

  • Required Distribution: Recent versions of Debian or Ubuntu, are recommended.
  • Essential Libraries and Tools:
    • glibc 2.31 or newer: Ensure your system's C library is up-to-date to avoid compatibility issues.
    • GNU awk: Required for processing scripts during the build.

A few of our dependencies have version requirements which may not be easily met with your package manager. Again, consider using our containerized builder.

For detailed instructions on setting up and using containers to compile firmware, visit our Container Development page.

Downloading the repository

Step 1: Clone the Repository

Start by cloning the Thingino firmware repository to your local machine. Open a terminal and run the following command:

git clone --depth=1 --recurse-submodules \
--shallow-submodules https://github.com/themactep/thingino-firmware

Step 2: Navigate to the Firmware Directory

Change into the cloned directory:

cd thingino-firmware

Guided Compilation

Step 1: Launch the Configuration Menu

Run the user configuration script:

./user-menu.sh

Upon running the script, you will see the main menu:

image

Select "Guided Compilation" from the menu.

image

Step 2: Select Your Device Profile

  1. Select Device: Choose a device profile from the list. You can select either a Camera Profile or a Module Profile:
    • Camera Profile: Includes all necessary configurations for the device, such as GPIOs.
    • Module Profile: Basic configuration suitable for experienced developers.

image

Click OK to confirm your selection.

Step 3: Install Prerequisites

Select "Install prerequisites" from the menu to install the necessary components for compilation.

image

Step 4: Compile the Firmware

Select "Step 3: Make Firmware" to start the compilation process.

image

Please wait while the firmware compiles; this may take some time. This step also creates the necessary images to flash the firmware onto your device.

Step 5: Retrieving the Compiled Firmware

image

Upon completion, a message will indicate that the process is done. You can find the firmware images in your home directory under:

HOME FOLDER/output/<profile_name>/images

For example:

  • thingino-teacup.bin – This full image includes the bootloader and is used for fresh installations.
  • thingino-teacup-update.bin – This image does not include the bootloader and is suitable for updating your device without erasing your bootloader or environment variables.

Conclusion

Congratulations! You have successfully compiled and prepared the Thingino firmware for installation. Follow the above steps to recompile or update the firmware as needed.

Manual Compilation

  • Run make and select a device profile.
  • Upon completion, a message will indicate that the process is done. You can find the firmware images in your home directory under:
HOME FOLDER/output/<profile_name>/images

For example:

  • thingino-teacup.bin – This full image includes the bootloader and is used for fresh installations.
  • thingino-teacup-update.bin – This image does not include the bootloader and is suitable for updating your device without erasing your bootloader or environment variables.
  1. Wiki Home
  2. About the Project
    1. Contributions
    2. Features
    3. Project Philosophy
    4. Releases
  3. Getting Started
    1. FAQ
    2. Hardware Identification
    3. Ingenic USB Cloner
      1. OTG Booting
    4. PPSTRONG
    5. Installation: General
    6. Installation: No Tools Methods
    7. Resources and Links
    8. Support Community
    9. Troubleshooting
    10. UART Connection
    11. Updating Firmware
    12. Unbricking
    13. Web UI
  4. Supported Cameras
    1. Cameras
    2. 360 AP1PA3
    3. AliExpress LTIA‐37FJZ (Vanhua Z55 module)
    4. AOQEE C1
    5. Aosu C5L
    6. Cinnado
      1. Cinnado D1 2K
      2. Cinnado D1 3K
    7. Dekco DC5L
    8. Eufy
      1. Eufy E210 Outdoor Cam
      2. Eufy E220
    9. Galayou/Wansview
      1. Galayou G2
      2. Galayou G7
      3. Wansview W6
      4. Wansview W7/Galayou Y4
    10. Hualai (Wyze/Atom/Neos/Personal)
      1. Dafang Upgrading for Wyze v2
      2. NEOS conversion
      3. Personalcam
      4. Wyze Cam Pan V1
      5. Wyze Doorbell (V1)
        1. Chime Reverse Engineering
      6. Wyze v2/Neos SmartCam/ATOM Cam 1
      7. Wyze v3
      8. Wyze Accessories
    11. iFlytek XFP301‐M
    12. Jienuo JN-107-AR-E-WIFI
    13. Jooan A6M
    14. LaView L2
    15. LongPlus X07
    16. LSC 3215672
    17. Sannce I21AG
    18. Sonoff Cam‐S2 and B1P
    19. TP-Link Tapo C100/C110/C111
    20. Wuuk Y0510
    21. Xiaomi
      1. Xiaomi Mijia1080p (SXJ02ZM)
      2. Xiaomi MJSXJ03HL
      3. Xiaomi Outdoor Camera AW200 (MJSXJ05HL)
  5. Configuration
    1. Administration
    2. Automation
      1. Configuring camera using runonce.sh script
    3. Cron jobs
    4. General
    5. LED Indicators
    6. Lighting
    7. Media Streaming Endpoints
    8. Network Storage
    9. Networking
      1. Wireless Networking
      2. USB Direct w CDC
      3. USB Ethernet Networking
      4. Remote Access
      5. VPN
        1. Tailscale
        2. Wireguard
        3. Zerotier
      6. Wi-Fi
        1. Self Hosted AP
        2. Tips and Tricks
      7. WWAN (Cellular)
    10. Night Mode
    11. ONVIF
    12. OSD (On-screen Display)
    13. Plugins
      1. Motion Guard
      2. Yandex Disk
    14. SSH Access Keys
    15. Wi-Fi Access
    16. Provisioning
    17. Streamer Bitrate Control
  6. Integration
    1. Home Assistant
    2. Frigate
    3. Ingenic A1/$15 NVR
    4. Mobile Apps
    5. MQTT Integration
    6. Virtual Webcam on Linux
    7. Mainsail (Klipper)
  7. Development
    1. Booting
      1. Boot: MMC SD
      2. Boot: NFS
    2. CH341A Programmer
    3. RTSP Players
    4. Flash Chips
    5. go2rtc
    6. Porting Guide
    7. Ingenic Platform Capability Matrix
    8. Ingenic Image Processor
    9. ISP Reserved Memory (RMEM)
    10. Debugging
    11. Software
      1. Building From Sources
      2. Buildroot
      3. Toolchain
      4. Choice of JSON library
    12. SSL and TLS Web UI in thingino
    13. Tech Info
      1. Hardware
      2. PWM Info
      3. Supported Hardware
      4. T23 GPIOs
      5. T31 GPIOs
    14. U-Boot Cheatsheet
    15. Zeratul/Atlas/Tassadar
    16. Resources

Clone this wiki locally