Starfish/howdy-beta

Description

Unofficial builds of Howdy beta.

Installation Instructions

IMPORTANT

Remove howdy and the repo before installing this version!

dnf remove howdy dnf copr remove principis/howdy

Enable repository

dnf copr enable principis/howdy-beta

Install howdy

dnf --refresh install howdy howdy-gtk

Configure your camera

Use howdy-gtk or see below.

Manual

Find all video devices:

$ ls /dev/video*

Configure howdy:

sudo howdy config # or use your favorite text editor sudo vim /lib64/security/howdy/config.ini

Change device_path to your camera.

device_path = /dev/video2

You can test if you've chosen the correct camera by running howdy test and see if the IR emitters turn on.

Configure PAM

Configure howdy for sudo

Add the following line to the top of /etc/pam.d/sudo

auth sufficient pam_howdy.so

Configure howdy for kde lockscreen

Add howdy to /etc/pam.d/kde so it looks something like this:

$ cat /etc/pam.d/kde auth sufficient pam_howdy.so auth substack system-auth auth include postlogin account required pam_nologin.so ...

Only add the pam_howdy.so line in the appropriate place (before system-auth), don't change anything else you don't understand!

Configure howdy for login (sddm)

Add howdy to /etc/pam.d/sddm so it looks something like this:

$ cat sddm auth [success=done ignore=ignore default=bad] pam_selinux_permit.so auth sufficient pam_howdy.so auth substack password-auth ...

Only add the pam_howdy.so line in the appropriate place (before system-auth), don't change anything else you don't understand!

Configure howdy for login (gdm)

Add howdy to /etc/pam.d/gdm-password so it looks something like this:

$ cat gdm-password auth [success=done ignore=ignore default=bad] pam_selinux_permit.so auth sufficient pam_howdy.so auth substack password-auth

Only add the pam_howdy.so line in the appropriate place (before system-auth), don't change anything else you don't understand!

Annoying messages

If you see messages like these when using howdy:

libva info: VA-API version 1.13.0 libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so libva info: Found init function __vaDriverInit_1_13 libva info: va_openDriver() returns 0

You can disable them by editing the /etc/profile.d/howdy.sh and /etc/profile.d/howdy.csh files and uncommenting the lines containing OPENCV_VIDEOIO_PRIORITY_INTEL_MFX.

Active Releases

The following unofficial repositories are provided as-is by owner of this project. Contact the owner directly for bugs or issues (IE: not bugzilla).

Release Architectures Repo Download Fedora 40 aarch64 (0)*, ppc64le (0)*, s390x (0)*, x86_64 (0)* Fedora 40 (0 downloads) Fedora 41 aarch64 (0)*, ppc64le (0)*, s390x (0)*, x86_64 (0)* Fedora 41 (0 downloads) Fedora 42 aarch64 (0)*, ppc64le (0)*, s390x (0)*, x86_64 (0)* Fedora 42 (0 downloads) Fedora rawhide aarch64 (0)*, ppc64le (0)*, s390x (0)*, x86_64 (0)* Fedora rawhide (0 downloads)

* Total number of downloaded packages.


This is a companion discussion topic for the original entry at https://copr.fedorainfracloud.org/coprs/starfish/howdy-beta

Good bro

Hey, great job, one thing that does not work for me is the login screen / gdm on the fedora 43. sudo in the terminal works just fine, i can see the message on the login screen that its trying to authenticate using howdy, but no activity on the IR camera on my zephyrus 14g 2022

Not working rn:

Updating and loading repositories:
Repositories loaded.
Failed to resolve the transaction:
Problem 1: package howdy-3.0.0-7.20250714gitd3ab993.fc43.x86_64 from copr:copr.fedorainfracloud.org:principis:howdy-beta requires python3dist(pyv4l2), but none of the providers can be installed

  • conflicting requests
  • nothing provides python(abi) = 3.13 needed by python3-pyv4l2-1.0.2-3.20240124gitf12f0b3.fc41.x86_64 from copr:copr.fedorainfracloud.org:principis:howdy-beta
    Problem 2: package howdy-gtk-3.0.0-7.20250714gitd3ab993.fc43.noarch from copr:copr.fedorainfracloud.org:principis:howdy-beta requires python3dist(elevate), but none of the providers can be installed
  • conflicting requests
  • nothing provides python(abi) = 3.13 needed by python3-elevate-0.1.3-3.20240124git78e82a8.fc41.noarch from copr:copr.fedorainfracloud.org:principis:howdy-beta
    You can try to add to command line:
    –skip-broken to skip uninstallable packages

Here is what I get when I try to run sudo howdy-gtk

MFX: Unsupported extension: /dev/v4l/by-path/pci-0000:00:14.0-usb-0:3:1.2-video-index0
howdy add output:
/usr/bin/python: can’t open file ‘/usr/local/lib64/howdy/cli.py’: [Errno 2] No such file or directory

modify the pam files and selinux stuff for the corresponding display manager and sessions accordingly.

I’ll try to update the instructions when I have time.

You seem to still have principis’ copr enabled. Try enabling this copr and install accordingly.

I’ll see what I can do if I have time.

I followed the guide and got Howdy working on Fedora 43 KDE. It is working for login as well as for sudo.

But when i restart pc, it doesnt work. There is no error, the IR camera light dont work. But if i manually enter password, than it again works for all logins and sudo.

So it is not working for first login when the pc boots but working for all other instances

What should i do?

My pc is using disk encryption and auto unlocks using TPM

either selinux issues or a problem with your ir emitter(or your setup of linux-enable-ir-emitter)

The following additional steps got howdy working for me on Fedora 44 (GNOME).

GDM Permissions & SELinux Policy

Grant the display manager access to your camera and compile a custom SELinux policy to prevent access denials.

Grant Video Group Access:

sudo usermod -aG video gdm<

Compile and Inject the SELinux Module:

Create a file named howdy.te in your current working directory with the following contents:

module howdy 1.0;

require {
type lib_t;
type xdm_t;
type v4l_device_t;
type sysctl_vm_t;
class chr_file map;
class file { create getattr open read write };
class dir add_name;
}

#============= xdm_t ==============
allow xdm_t lib_t:dir add_name;
allow xdm_t lib_t:file { create write };
allow xdm_t sysctl_vm_t:file { getattr open read };
allow xdm_t v4l_device_t:chr_file map;

Compile the Type Enforcement file into a policy module

checkmodule -M -m -o howdy.mod howdy.te

Package the module

semodule_package -o howdy.pp -m howdy.mod

Inject the module into the running SELinux kernel policy

sudo semodule -i howdy.pp

Cleanup & Apply (Remove build files and template)

rm -f howdy.te howdy.mod howdy.pp

Restart the display manager to apply changes (Warning: This logs you out instantly!)

sudo systemctl restart gdm