My new Librem-14 laptop LCD and HDMI screens froze.
Had to hold long-⏻ power key for hard shutdown.
Diagnostic (and other) advice appreciated!
Peace
--Devon
P.S. MacOS saves crash data and presents it after reboot, including stack traces, active processes, etc. - does PureOS do this, and if so how can I see the latest crash data?
P.P.S. Hang coincided with Web/epiphany new-tab [+] click. Forgot to check CapsLock LED response, oops! Want the EC to watchdog the OS and blink Morse on the alarm LED when wedged.
P.P.P.S. Way too much detail follows:
# uname -a
Linux ******** 5.10.0-23-amd64 #1 SMP Debian 5.10.179-1 (2023-05-12) x86_64 GNU/Linux
# gnome-shell --version
GNOME Shell 3.38.6
# cat /etc/debian_version
buster/sid
# ~devon/bin/purism_ectool info
board: purism/librem_14
version: 1.13-devon_2023-03-22
# diff -Bbdur ~devon/{dist,hack}/Purism
Only in /home/devon/hack/Purism/librem-ec: build
Binary files /home/devon/dist/Purism/librem-ec/.git/index and /home/devon/hack/Purism/librem-ec/.git/index differ
diff -Bbdur /home/devon/dist/Purism/librem-ec/Makefile /home/devon/hack/Purism/librem-ec/Makefile
— /home/devon/dist/Purism/librem-ec/Makefile 2023-05-25 10:03:14.443239499 -0400
+++ /home/devon/hack/Purism/librem-ec/Makefile 2023-06-24 12:35:40.100333874 -0400
@@ -32,6 +32,9 @@
CFLAGS=-I$(COMMON_DIR)/include -D__FIRMWARE_VERSION__=$(VERSION)
include $(COMMON_DIR)/common.mk
+# Just a minute here - let the builder speak!
+CFLAGS+=$(EXTRA_CFLAGS)
+
# Include the board's source
BOARD_DIR=src/board/$(BOARD)
SRC+=$(wildcard $(BOARD_DIR)/*.c)
diff -Bbdur /home/devon/dist/Purism/librem-ec/src/board/purism/librem_14/include/board/keymap.h /home/devon/hack/Purism/librem-ec/src/board/purism/librem_14/include/board/keymap.h
--- /home/devon/dist/Purism/librem-ec/src/board/purism/librem_14/include/board/keymap.h 2023-05-25 10:03:14.451239475 -0400
+++ /home/devon/hack/Purism/librem-ec/src/board/purism/librem_14/include/board/keymap.h 2023-06-24 11:38:15.884116195 -0400
@@ -53,7 +53,12 @@
#define MATRIX_ESC_OUTPUT 10
// Position of physical Fn key in the matrix
+#ifdef DEVON
+#define MATRIX_FN_INPUT 1
+#define MATRIX_FN_OUTPUT 3
+#else // DEVON
#define MATRIX_FN_INPUT 2
#define MATRIX_FN_OUTPUT 13
+#endif // DEVON
#endif // _BOARD_KEYMAP_H
Only in /home/devon/hack/Purism/librem-ec/src/board/purism/librem_14/keymap: devon.c
# diff -Bbdur ~devon/hack/Purism/librem-ec/src/board/purism/librem_14/keymap/{default,devon}.c
--- /home/devon/hack/Purism/librem-ec/src/board/purism/librem_14/keymap/default.c 2023-05-25 10:03:14.000000000 -0400
+++ /home/devon/hack/Purism/librem-ec/src/board/purism/librem_14/keymap/devon.c 2023-06-24 19:06:38.915829593 -0400
@@ -1,26 +1,52 @@
// SPDX-License-Identifier: GPL-3.0-only
+// librem-ec/src/board/purism/librem_14/keymap/devon.c
-// Default layout
+// Devonian layout
+// Swap CapsLock & BackSpace here, not in kmonad --
+// kmonad-mapped CapsLock autorepeat fails in Mozilla.
+// Kmonad best customizes the key left of (tiny) RightShift --
+// with tap/hold dual functions on the same key.
+// Swap LeftControl & Fn -- like on ThinkPads and MacBooks
+// where the Fn key is in the lower left corner.
+// TO DO
+// Dynamic keymapping should support all such customizations --
+// without breaking the Fn+Esc reset function.
+// Fn+F1 & Fn+F2 should do something useful.
+// Should Fn+Space duplicate Fn+F4 cycle keyboard backlight glow?
+// Solve FireFox & Thunderbird physical CapsLock autorepeat failure.
#include <board/keymap.h>
+#ifdef DEVON
+ #define BKSP_CAPS K_CAPS
+ #define CAPS_BKSP K_BKSP
+ #define LCTRL_FN KT_FN
+ #define FN_LCTRL K_LEFT_CTRL
+#else // DEVON
+ #define BKSP_CAPS K_BKSP
+ #define CAPS_BKSP K_CAPS
+ #define LCTRL_FN K_LEFT_CTRL
+ #define FN_LCTRL KT_FN
+#endif // DEVON
uint16_t __code KEYMAP[KM_LAY][KM_OUT][KM_IN] = {
// regular key layout
LAYOUT(
K_ESC, K_F1, K_F2, K_F3, K_F4, K_F5, K_F6, K_F7, K_F8, K_F9, K_F10, K_F11, K_F12, K_PRINT_SCREEN, K_DEL,
- K_TICK, K_1, K_2, K_3, K_4, K_5, K_6, K_7, K_8, K_9, K_0, K_MINUS, K_EQUALS, K_BKSP,
+ K_TICK, K_1, K_2, K_3, K_4, K_5, K_6, K_7, K_8, K_9, K_0, K_MINUS, K_EQUALS, BKSP_CAPS,
K_TAB, K_Q, K_W, K_E, K_R, K_T, K_Y, K_U, K_I, K_O, K_P, K_BRACE_OPEN, K_BRACE_CLOSE, K_BACKSLASH,
- K_CAPS, K_A, K_S, K_D, K_F, K_G, K_H, K_J, K_K, K_L, K_SEMICOLON, K_QUOTE, K_ENTER,
+ CAPS_BKSP, K_A, K_S, K_D, K_F, K_G, K_H, K_J, K_K, K_L, K_SEMICOLON, K_QUOTE, K_ENTER,
K_LEFT_SHIFT, K_Z, K_X, K_C, K_V, K_B, K_N, K_M, K_COMMA, K_PERIOD, K_SLASH, K_UP, K_RIGHT_SHIFT,
- K_LEFT_CTRL, KT_FN, K_LEFT_SUPER, K_LEFT_ALT, K_SPACE, K_RIGHT_ALT, K_RIGHT_CTRL, K_LEFT, K_DOWN, K_RIGHT
+ LCTRL_FN, FN_LCTRL, K_LEFT_SUPER, K_LEFT_ALT, K_SPACE, K_RIGHT_ALT, K_RIGHT_CTRL, K_LEFT, K_DOWN, K_RIGHT
),
// FN+key layout
LAYOUT(
K_SUSPEND, K_F1, K_F2, K_DISPLAY_MODE, K_KBD_BKL, K_BRIGHTNESS_DOWN, K_BRIGHTNESS_UP, K_MEDIA_PREV, K_PLAY_PAUSE, K_MEDIA_NEXT, K_MUTE, K_VOLUME_DOWN, K_VOLUME_UP, K_PRINT_SCREEN, K_INSERT,
- K_TICK, K_1, K_2, K_3, K_4, K_5, K_6, K_7, K_8, K_9, K_0, K_MINUS, K_EQUALS, K_BKSP,
+ K_TICK, K_1, K_2, K_3, K_4, K_5, K_6, K_7, K_8, K_9, K_0, K_MINUS, K_EQUALS, BKSP_CAPS,
K_TAB, K_Q, K_W, K_E, K_R, K_T, K_Y, K_U, K_I, K_O, K_P, K_BRACE_OPEN, K_BRACE_CLOSE, K_BACKSLASH,
- K_CAPS, K_A, K_S, K_D, K_F, K_G, K_H, K_J, K_K, K_L, K_SEMICOLON, K_QUOTE, K_ENTER,
+ CAPS_BKSP, K_A, K_S, K_D, K_F, K_G, K_H, K_J, K_K, K_L, K_SEMICOLON, K_QUOTE, K_ENTER,
K_LEFT_SHIFT, K_Z, K_X, K_C, K_V, K_B, K_N, K_M, K_COMMA, K_PERIOD, K_SLASH, K_PGUP, K_RIGHT_SHIFT,
- K_LEFT_CTRL, KT_FN, K_LEFT_SUPER, K_LEFT_ALT, K_KBD_BKL, K_RIGHT_ALT, K_RIGHT_CTRL, K_HOME, K_PGDN, K_END
+ LCTRL_FN, FN_LCTRL, K_LEFT_SUPER, K_LEFT_ALT, K_KBD_BKL, K_RIGHT_ALT, K_RIGHT_CTRL, K_HOME, K_PGDN, K_END
)
};
+
+// end librem-ec/src/board/purism/librem_14/keymap/devon.c
\ No newline at end of file