summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Breunig <christian@breunig.cc>2026-09-16 18:35:02 +0000
committerChristian Breunig <christian@breunig.cc>2026-09-16 18:35:02 +0000
commit3996c92edf3eb09486edc7e053abc1ef13bcd189 (patch)
treeeaa0093083f9d63c1470c8b53fb73d31539a7091 /src
parent28207a3068fd23d73c93cda806ed3757f9651a5f (diff)
downloadvyos-1x-3996c92edf3eb09486edc7e053abc1ef13bcd189.tar.gz
vyos-1x-3996c92edf3eb09486edc7e053abc1ef13bcd189.zip
lcd: T9014: resolve the LCDd driver path at runtime
The LCDd driver modules are shipped in the architecture dependent multiarch library directory, but the template hardcoded the x86_64 path. On arm64 this pointed LCDd at a directory that does not exist, so no driver could be loaded. Derive the multiarch triplet at runtime and render it into LCDd.conf instead of assuming x86_64.
Diffstat (limited to 'src')
-rwxr-xr-xsrc/conf_mode/system_lcd.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/conf_mode/system_lcd.py b/src/conf_mode/system_lcd.py
index 1e97414dc..c9c30d2cc 100755
--- a/src/conf_mode/system_lcd.py
+++ b/src/conf_mode/system_lcd.py
@@ -15,6 +15,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import os
+import sysconfig
from sys import exit
@@ -60,6 +61,10 @@ def generate(lcd):
if 'device' in lcd:
lcd['device'] = find_device_file(lcd['device'])
+ # LCDd driver modules are installed into the architecture dependent
+ # multiarch library path - resolve it at runtime
+ lcd['driver_path'] = f'/usr/lib/{sysconfig.get_config_var("MULTIARCH")}/lcdproc/'
+
# Render config file for daemon LCDd
render(lcdd_conf, 'lcd/LCDd.conf.j2', lcd)
# Render config file for client lcdproc