Skip to content

[Guide] Final Solution for ThinkPad X1 Nano IR Camera & Howdy on Ubuntu 24.04 (Linux Mint 22) #1113

Description

@Mandarinzs

Hi everyone,

I recently went through a grueling process trying to get Howdy working on a ThinkPad X1 Nano Gen 1 running Linux Mint 22 (based on Ubuntu 24.04 / Noble).

The issues I encountered: The IR emitter (red light) wouldn't turn on, pure black screens, ValueError with ffmpeg, and Too dark errors. After hours of debugging, here is the ultimate step-by-step guide to fixing all of these issues.

Step 1: Identify the IR Camera Path

First, find your IR camera. ThinkPads often group the RGB and IR cameras under the same controller.

sudo apt install v4l-utils
v4l2-ctl --list-devices

Look for Integrated IR Camera. It is usually /dev/video2.

Step 2: Configure Howdy (Crucial Hardware Tweaks)

The ThinkPad X1 Nano IR sensor outputs a specific 10-bit grayscale format (Y800) at 640x360. Also, because IR shots have pure black backgrounds, Howdy will reject them unless you disable the darkness check.
Run sudo howdy config and make these changes under the [video] section:

device_path = /dev/video2
recording_plugin = opencv
frame_width = 640
frame_height = 360
dark_threshold = 100

Note: Changing dark_threshold to 100 is safe. Howdy still uses strict 3D facial feature points (certainty) to authenticate you.

Step 3: Build linux-enable-ir-emitter from Source

Howdy alone cannot turn on the ThinkPad's red IR emitter LED. You MUST use linux-enable-ir-emitter.
Since the PPA might fail on Ubuntu 24.04 and the repo recently migrated to Rust (requiring edition2024), the standard apt cargo will fail. You must use the Rust nightly toolchain.

# 1. Install Rust Nightly via rustup
curl --proto '=https' --tlsv1.2 -sSf [https://sh.rustup.rs](https://sh.rustup.rs) | sh -s -- -y --default-toolchain nightly
source "$HOME/.cargo/env"

# 2. Install dependencies
sudo apt install libudev-dev libclang-dev git -y

# 3. Clone and build
git clone [https://github.com/EmixamPP/linux-enable-ir-emitter.git](https://github.com/EmixamPP/linux-enable-ir-emitter.git)
cd linux-enable-ir-emitter
cargo build --release

# 4. Install the binary to system
sudo cp target/release/linux-enable-ir-emitter /usr/bin/

Step 4: Map the IR Emitter

Now, let the tool find the exact UVC control code to fire your IR LED:

sudo linux-enable-ir-emitter configure
  • Enter /dev/video2 when prompted.
  • A TUI will appear asking if the emitter is blinking.
  • Keep pressing n (No) when only the white LED is on.
  • Press y (Yes) ONLY when the RED LED flashes and you can see your grayscale face in the preview window.

Step 5: Enroll Your Face

Clean up any background camera processes and run Howdy:

sudo fuser -k /dev/video2
sudo howdy add

The red light should now automatically turn on, and your face will be successfully enrolled without any Too dark or format errors!

Hope this helps my fellow ThinkPad Linux users!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions