Skip to content
View in the app

A better way to browse. Learn more.

Armbian Community Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

sys-oled problems in Trixie

Featured Replies

I've been trying to get the sys-oled script working in Trixie, but I'm pretty out of my depth here.

 

I started with https://github.com/helios-4/sys-oled.git and https://github.com/rpardini/sys-oled-hc4.git

 

 

/usr/bin/python3 /usr/local/bin/sys-oled --display sh1106 --i2c-port 0 --rotate 2
Traceback (most recent call last):
  File "/usr/local/bin/sys-oled", line 140, in <module>
    device = get_device()
  File "/usr/local/bin/sys-oled", line 56, in get_device
    device = cmdline.create_device(args)
  File "/usr/lib/python3/dist-packages/luma/core/cmdline.py", line 241, in create_device
    device = Device(serial_interface=interface(), **params)
  File "/usr/lib/python3/dist-packages/luma/oled/device/__init__.py", line 75, in __init__
    self.command(
    ~~~~~~~~~~~~^
        self._const.DISPLAYOFF,
        ^^^^^^^^^^^^^^^^^^^^^^^
    ...<11 lines>...
        self._const.SETVCOMDETECT,      0x20,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        self._const.CHARGEPUMP,         0x14)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/luma/core/device.py", line 48, in command
    self._serial_interface.command(*cmd)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
  File "/usr/lib/python3/dist-packages/luma/core/interface/serial.py", line 93, in command
    self._bus.write_i2c_block_data(self._addr, self._cmd_mode,
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                   list(cmd))
                                   ^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/smbus2/smbus2.py", line 643, in write_i2c_block_data
    ioctl(self.fd, I2C_SMBUS, msg)
    ~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
OSError: [Errno 6] No such device or address

 

The script wants to compile luma.core on it's own and Trixie throws up some walls to that. I was hoping to use the system libraries, so I installed python3-luma.core and python3-luma.oled. I'm not sure if it's better to override Trixie and just install the luma.core from the script.

 

Does anyone have any experience with this? Will I need to redo this with a Python venv?

  • Author

That's what I'm using.

 

> OLED support is available.

 

I'm not sure what this means. There doesn't appear to be a package or any software installed for it.

 

Do you have a place for me to look?

 

Unfortunately, the answer for 

was really not very helpful.

 

If I get it working, I'll post what I learn here, but I was unable to find any notes on that particularly on the forums or the Helios4 page.

 

Thank you for your time.

 

James

 

  • Author
On 8/3/2026 at 7:16 AM, FredK said:

Did you use the informations at https://wiki.kobol.io/helios4/i2c/ ?

 

All the variants of sys-oled including the the one mentioned in the wiki at kobol pull in their own luma.oled library, which Armbian (and Debian for that matter) complain about with 

error: externally-managed-environment

 

If I try to use the package python3-luma.oled, it doesn't really work (see prior posts in this thread).

 

I will eventually figure out how to get this all running in venv and have systemct start it up. But that wont be for a while.

@jimbolaya

I'll try to summarize how I got sys-oled up and running. 

 

Six years ago I built my Helios4 with Armbian and OMV running a RAID5 with four disks. sys-oled was generated as documented in the Kobol Wiki. At some point migrating from Buster till Bookworm the OLED was no more working. I had to edit the sys-oled sources in minor ways (Today I cant remember any more what I did). In April 2026 I moved OMV to a 64bit platform. The Helios4 is used nowadays for testing purposes. To do so, I installed Armbian from scratch using "Armbian_25.11.1_Helios4_trixie_current_6.6.116_minimal.img". sys-oled was up and running.

 

I adapt /etc/sys-oled.conf, that's all. My /etc/sys-oled.conf:

[main]
# Define your OLED display model
# Check luma.oled project to check supported displays.
display_model = sh1106

# Define OLED display contrast level (value: 0 to 255)
contrast = 255

# Show Helios4 logo (value: yes or no)
show_logo = yes

# Status refresh interval
refresh = 10

[device]
# Network Device
network_name = end1

# Storage Device 1
# Device name
storage1_name = DiskA

# Device mount path
storage1_path = /mnt/A

# Storage Device 2
storage2_name= DiskB
storage2_path= /mnt/B

 

sys-oled also "survived" the subsequent switch to rolling releases.

 

I will look for a recent backup of my Helios4 before reinstall in April.

  • Author
On 8/24/2026 at 10:57 AM, FredK said:

sys-oled also "survived" the subsequent switch to rolling releases.

 

Oh, dang. I feel so stupid. 

 

I tried updating my helios4 but it failed, so I started from a new image. I forgot I still had the old image somewhere. I found the old sys-oled python script and copied it over and now it works. 

 

Still, it seems like there's got to be a better way to do this.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.