Package: src:linux
Version: 6.12.90-2
Severity: wishlist
Control: found -1 7.0.13-1
Control: found -1 7.1.2-1~exp1

Hello,
At least a few retailers that cater to hobbyist electronics have miniature and 
inexpensive LCD character displays like the following, which can be controlled 
over I2C:
https://www.microcenter.com/product/632704/-
https://community.microcenter.com/kb/articles/649-inland-1602-i2c-module

A survey of the literature suggests these are most commonly used for embedded 
Linux devices or more primitive microcontrollers. However they can be just as 
straightforward for an average x86_64 desktop user using a neat hack: a spare 
VGA or DVI port provides an I2C interface as well as some 5V power, which is 
all that's needed. Thus these displays can be used with machines of all kinds 
and I'd like it to be possible on all architectures.

The kernel has a CONFIG_HD44780 option to build a module for the integrated 
circuit that draws characters on the screen, but it's currently unset. If this 
module could be built, it'd introduce the 'auxdisplay' Linux device class and 
allow text to be written to the screen via a /dev/lcd* character device, much 
like opening a tty.
For convenience in reducing the number of pins needed for communication, a 
second IC, a PCF8574, is used to allow the many parallel lines to be controlled 
over I2C. There is a module for the GPIO system to use this guarded behind 
CONFIG_GPIO_PCF857X, which uses the Linux I2C subsystem to expose the GPIO 
pins. An upstream kernel contributor has ensured that these two drivers can 
work in tandem, and some blog posts document the success:
Gentle introductions to configuring the driver: 
https://yeah.nah.nz/embedded/linux-chardev-lcd/ 
https://blog.microjoe.org/2019/hd44780-lcd-i2c-screen-using-linux-mainline-charlcd-driver.html
Clearing up usage with the I/O expander: 
https://blog.runtux.com/posts/2021/01/06/

In conclusion, I think my local Linux Users Group will be interested in using 
these and they're a fun learning tool too, and one that can give an 
introduction to building embedded Linux systems even from a conventional 
workstation at minimal expense. So please consider setting CONFIG_HD44780=m and 
CONFIG_GPIO_PCF857X=m (if I understand this right?) so the modules are 
available; the former should imply CONFIG_AUXDISPLAY to be set appropriately. I 
haven't been able to try this—I'm taking my time wrapping my head around how 
the source package works—but I have no doubt this will be adequate.

/usr/src/linux-config-*/config.amd64_none_amd64.xz says
# CONFIG_AUXDISPLAY is not set
# CONFIG_GPIO_PCF857X is not set
at least in Trixie and newer, it seems.

Thanks

-- Package-specific info:
** Version:
Linux version 6.12.90+deb13.1-amd64 ([email protected]) 
(x86_64-linux-gnu-gcc-14 (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for 
Debian) 2.44) #1 SMP PREEMPT_DYNAMIC Debian 6.12.90-2 (2026-05-27)

-- System Information:
Debian Release: 13.5
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 
'proposed-updates'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 6.12.90+deb13.1-amd64 (SMP w/2 CPU threads; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages linux-image-6.12.90+deb13.1-amd64 depends on:
ii  dracut [linux-initramfs-tool]  106-6
ii  kmod                           34.2-2
ii  linux-base                     4.12.1

Versions of packages linux-image-6.12.90+deb13.1-amd64 recommends:
ii  apparmor  4.1.0-1

Versions of packages linux-image-6.12.90+deb13.1-amd64 suggests:
ii  debian-kernel-handbook               1.0.21
ii  firmware-linux-free                  20241210-2
pn  grub-pc | grub-efi-amd64 | extlinux  <none>
ii  linux-doc-6.12                       6.12.90-2

Versions of packages linux-image-6.12.90+deb13.1-amd64 is related to:
pn  firmware-amd-graphics      <none>
pn  firmware-atheros           <none>
pn  firmware-bnx2              <none>
pn  firmware-bnx2x             <none>
pn  firmware-brcm80211         <none>
pn  firmware-cavium            <none>
pn  firmware-cirrus            <none>
ii  firmware-intel-graphics    20250410-2
ii  firmware-intel-misc        20250410-2
ii  firmware-intel-sound       20250410-2
pn  firmware-ipw2x00           <none>
pn  firmware-ivtv              <none>
pn  firmware-iwlwifi           <none>
pn  firmware-libertas          <none>
pn  firmware-marvell-prestera  <none>
ii  firmware-mediatek          20250410-2
ii  firmware-misc-nonfree      20250410-2
pn  firmware-myricom           <none>
pn  firmware-netronome         <none>
pn  firmware-netxen            <none>
ii  firmware-nvidia-graphics   20250410-2
pn  firmware-qcom-soc          <none>
pn  firmware-qlogic            <none>
pn  firmware-realtek           <none>
pn  firmware-samsung           <none>
pn  firmware-siano             <none>
pn  firmware-ti-connectivity   <none>
pn  xen-hypervisor             <none>

-- no debconf information

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to