ssd1306_git.bb: Add ssd1306_linux

Add ssd1306_linux, a simple OLED I2C SSD1306 Linux driver based on
the i2c library libi2c from i2c-tools. Example usage for a
compatible display with resolution 128x64 pixels:

ssd1306_bin -n 1 -I 128x64
ssd1306_bin -n 1 -c
ssd1306_bin -n 1 -r 0
ssd1306_bin -n 1 -x 1 -y 1
ssd1306_bin -n 1 -l "Hello World"

Pending GitHub pull request to the upstream of the project:
https://github.com/armlabs/ssd1306_linux/pull/4

After fixing the upstream 0001-Use-include-filename.patch should
be removed from the recipe.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Leon Anavi
2024-01-02 20:54:10 +02:00
committed by Khem Raj
parent 231c8bd264
commit 13a1b1b1a5
2 changed files with 74 additions and 0 deletions
@@ -0,0 +1,49 @@
From cb32ebbb1efb3202808809861ec3cbd811c55bd2 Mon Sep 17 00:00:00 2001
From: Leon Anavi <leon.anavi@konsulko.com>
Date: Sat, 30 Dec 2023 13:23:31 +0000
Subject: [PATCH] Use include "filename"
Use include "filename" to include programmer-defined header files
from the same directory as the file containing the directive.
Upstream-Status: Submitted [https://github.com/armlabs/ssd1306_linux/pull/4]
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
---
main.c | 2 +-
ssd1306.c | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/main.c b/main.c
index c1ffc2f..18e2b84 100644
--- a/main.c
+++ b/main.c
@@ -6,7 +6,7 @@
#include <string.h>
#include <fcntl.h>
#include <sys/ioctl.h>
-#include <ssd1306.h>
+#include "ssd1306.h"
void print_help()
{
diff --git a/ssd1306.c b/ssd1306.c
index a03674a..2e6ba97 100644
--- a/ssd1306.c
+++ b/ssd1306.c
@@ -8,9 +8,9 @@
#include <string.h>
#include <fcntl.h>
#include <sys/ioctl.h>
-#include <linux_i2c.h>
-#include <ssd1306.h>
-#include <font.h>
+#include "linux_i2c.h"
+#include "ssd1306.h"
+#include "font.h"
const char init_oled_type_file[] = "/tmp/.ssd1306_oled_type";
--
2.39.2
@@ -0,0 +1,25 @@
SUMMARY="SSD1306 OLED I2C drive"
DESCRIPTION = "SSD1306 OLED I2C driver working in Linux"
HOMEPAGE = "https://github.com/armlabs/ssd1306_linux"
SECTION = "console/utils"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=7b694e603a996c3bfdc6093ed1f70c8f"
SRC_URI = " \
git://github.com/armlabs/ssd1306_linux.git;protocol=https;branch=master \
file://0001-Use-include-filename.patch \
"
SRCREV = "7375f1088732d243f7167c9a17725f1a860da587"
S = "${WORKDIR}/git"
# coreutils provides fmt which is used in the Makefile
DEPENDS = "i2c-tools coreutils-native"
EXTRA_OEMAKE = "CC='${CC}' CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}'"
do_install() {
install -d ${D}${bindir}
install -m 0755 ${B}/ssd1306_bin ${D}${bindir}
}