Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,9 @@ swaymsg output DSI-1 transform 0
```
export SWAYSOCK=/home/debian/sway-ipc.$(id -u).$(pgrep -x sway).sock
swaymsg "exec /usr/bin/launcher -l -E /dev/input/by-path/platform-gpio-keys-event -A /etc/apps.toml"

export SWAYSOCK=/home/debian/sway-ipc.$(id -u).$(pgrep -x sway).sock
swaymsg "exec /usr/bin/dmm"
```

## Toggle sway bar
Expand Down
16 changes: 16 additions & 0 deletions build-image.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ readonly DEBOOTSTRAP_DIR="debootstrap"
readonly DEBOOTSTRAP_PREFETCHED_DIR="debootstrap-prefetched"
readonly KERNEL_DIR="board/linux/linux-v6.17"
readonly UBOOT_DIR="board/u-boot/u-boot-v2025.04"
readonly DMM_DIR="software/dmm"
readonly DEPLOY_DIR="deploy"

readonly STM32_DT="stm32mp157c-dk2.dtb"
Expand Down Expand Up @@ -293,6 +294,19 @@ use_prefetched_download() {
sudo cp -p -r ${DEBOOTSTRAP_PREFETCHED_DIR} ${DEBOOTSTRAP_DIR}
}

build_and_install_dmm() {
echo "-I building and installing DMM"

cmake -DCMAKE_TOOLCHAIN_FILE=user_cross_compile_setup.cmake \
-DCONFIG=wayland -DCMAKE_SYSROOT=$(pwd)/${DEBOOTSTRAP_DIR} \
-B ${DMM_DIR}/build -S ${DMM_DIR}

make -C ${DMM_DIR}/build -j

sudo install --verbose --owner=root --group=root --mode=755 \
${DMM_DIR}/build/bin/dmm ${DEBOOTSTRAP_DIR}/usr/bin/dmm
}

create_rootfs_ext4() {
sudo rm -rf ${DEPLOY_DIR} && mkdir -p ${DEPLOY_DIR}
sudo dd if=/dev/zero of=${DEPLOY_DIR}/rootfs.ext4 bs=1 count=0 seek=2500M
Expand Down Expand Up @@ -426,6 +440,8 @@ start_image_build() {

enable_serial_console

build_and_install_dmm

umount_vfs

create_rootfs_ext4
Expand Down
8 changes: 4 additions & 4 deletions software/dmm/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -364,18 +364,18 @@ target_include_directories(lvgl_linux PUBLIC
# Link LVGL with external dependencies - Modern CMake/CMP0079 allows this
target_link_libraries(lvgl PUBLIC ${PKG_CONFIG_LIB} m pthread)

add_executable(lvglsim src/main.c
add_executable(dmm src/main.c
assets/fonts/dhurjati_70.c
assets/fonts/dhurjati_140.c
assets/fonts/digital7_230.c
assets/icons/continuity.c
assets/icons/omega.c)

# Repeat lvgl_linux to resolve circular dependency with lvgl
target_link_libraries(lvglsim lvgl_linux lvgl lvgl_linux)
target_link_libraries(dmm lvgl_linux lvgl lvgl_linux)

if(WERROR)
target_compile_options(lvglsim PRIVATE -Werror)
target_compile_options(dmm PRIVATE -Werror)
target_compile_options(lvgl PRIVATE -Werror)
target_compile_options(lvgl_linux PRIVATE -Werror)
endif()
Expand All @@ -393,4 +393,4 @@ install(TARGETS lvgl_linux
ARCHIVE DESTINATION lib
)

add_custom_target(run COMMAND ${EXECUTABLE_OUTPUT_PATH}/lvglsim DEPENDS lvglsim)
add_custom_target(run COMMAND ${EXECUTABLE_OUTPUT_PATH}/dmm DEPENDS dmm)
1 change: 1 addition & 0 deletions software/dmm/configs/wayland.defaults
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ LV_COLOR_DEPTH 16
# drivers
LV_USE_WAYLAND 1
LV_WAYLAND_WINDOW_DECORATIONS 0 // Set to 1 on weston or gnome
LV_USE_EVDEV 1

# Examples
LV_BUILD_EXAMPLES 1
Expand Down
10 changes: 6 additions & 4 deletions software/dmm/user_cross_compile_setup.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,13 @@
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm)

set(tools /home/ubuntu/Your_SDK/prebuilt/rootfsbuilt/arm/toolchain-glibc-gcc/toolchain)
set(CMAKE_C_COMPILER ${tools}/bin/arm-openwrt-linux-gnueabi-gcc)
set(CMAKE_CXX_COMPILER ${tools}/bin/arm-openwrt-linux-gnueabi-g++)
set(CMAKE_C_COMPILER /usr/bin/arm-linux-gnueabihf-gcc)
set(CMAKE_CXX_COMPILER /usr/bin/arm-linux-gnueabihf-g++)

set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) # Don't search for executables in sysroot
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) # Only search for libraries in sysroot
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) # Only search for includes in sysroot

# If necessary, set STAGING_DIR
# if not work, please try(in shell command): export STAGING_DIR=/home/ubuntu/Your_SDK/out/xxx/openwrt/staging_dir/target
#set(ENV{STAGING_DIR} "/home/ubuntu/Your_SDK/out/xxx/openwrt/staging_dir/target")