Skip to main content
Topic: dinit: Service early-keyboard.target command failed with exit code 1 (Read 968 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Re: dinit: Service early-keyboard.target command failed with exit code 1

Reply #15
I'm back to dinit-rc 0.4.2-1, I guess I will wait for next update for now.

Re: dinit: Service early-keyboard.target command failed with exit code 1

Reply #16
I honestly don't know what triggered this.

What if you download dinit-rc-0.4.4 manually, extract it in /tmp/dinit-rc, and run sudo /bin/sh -x /tmp/dinit-rc/usr/lib/dinit/vconsole keyboard?

EDIT: Also, I'm pushing dinit-rc-0.4.5 (here's the commit) so that even if early-keyboard.target and early-console.target fails, the boot process isn't interrupted. Wait a bit since it's on the queue right now, otherwise just download the PKGBUILD, makepkg and test it. That way we can narrow down the cause.

Further edit: @toepie and @omnigenous, I'm merging your threads since it deals with the same problem.
now only the dinit guy in artix

Re: dinit: Service early-keyboard.target command failed with exit code 1

Reply #17
I honestly don't know what triggered this.

What if you download dinit-rc-0.4.4 manually, extract it in /tmp/dinit-rc, and run /bin/sh -x /usr/lib/dinit/vconsole keyboard?

EDIT: Also, I'm pushing dinit-rc-0.4.5 (here's the commit) so that even if early-keyboard.target and early-console.target fails, the boot process isn't interrupted. Wait a bit since it's on the queue right now, otherwise just download the PKGBUILD, makepkg and test it. That way we can narrow down the cause.

Further edit: @toepie and @omnigenous, I'm merging your threads since it deals with the same problem.

Here's the output of that command with 0.4.4:
Code: [Select]
/bin/sh -x /tmp/vconsole keyboard
+ '[' -r /etc/vconsole.conf ']'
+ . /etc/vconsole.conf
+ '[' -r /proc/cmdline ']'
++ cat /proc/cmdline
+ for x in $(cat /proc/cmdline)
+ case "$x" in
+ for x in $(cat /proc/cmdline)
+ case "$x" in
+ for x in $(cat /proc/cmdline)
+ case "$x" in
+ for x in $(cat /proc/cmdline)
+ case "$x" in
+ for x in $(cat /proc/cmdline)
+ case "$x" in
+ case "$1" in
+ '[' -n '' ']'

And here's with 0.4.2:
Code: [Select]
/bin/sh -x /tmp/vconsole keyboard
+ '[' -r /etc/vconsole.conf ']'
+ . /etc/vconsole.conf
+ '[' -r /proc/cmdline ']'
++ cat /proc/cmdline
+ for x in $(cat /proc/cmdline)
+ case "$x" in
+ for x in $(cat /proc/cmdline)
+ case "$x" in
+ for x in $(cat /proc/cmdline)
+ case "$x" in
+ for x in $(cat /proc/cmdline)
+ case "$x" in
+ for x in $(cat /proc/cmdline)
+ case "$x" in
+ case "$2" in

And here's the diff between 0.4.2 and 0.4.4
Code: [Select]
diff -u dinit-rc-0.4.2/scripts/vconsole  dinit-rc-0.4.4/scripts/vconsole
--- dinit-rc-0.4.2/scripts/vconsole 2024-06-10 17:11:45.000000000 +0300
+++ dinit-rc-0.4.4/scripts/vconsole 2024-06-11 16:49:11.000000000 +0300
@@ -5,15 +5,15 @@
 if [ -r /proc/cmdline ]; then
     for x in $(cat /proc/cmdline); do
         case "$x" in
-            vconsole.keymap=*)      KEYMAP="${KEYMAP}"           ;;
-            vconsole.font=*)        FONT="${FONT}"               ;;
-            vconsole.font_map=*)    FONT_MAP="${FONT_MAP}"       ;;
-            vconsole.font_unimap=*) FONT_UNIMAP="${FONT_UNIMAP}" ;;
+            vconsole.keymap=*)      KEYMAP="${x#*=}"      ;;
+            vconsole.font=*)        FONT="${x#*=}"        ;;
+            vconsole.font_map=*)    FONT_MAP="${x#*=}"    ;;
+            vconsole.font_unimap=*) FONT_UNIMAP="${x#*=}" ;;
         esac
     done
 fi
 
-case "$2" in
+case "$1" in
     "keyboard") [ -n "$KEYMAP" ] && loadkeys -q -u "${KEYMAP}" ;;
     "console")
         TTYS=${TTYS:-6}

It seems that it just skipped the case statement in 0.4.2 because $2 is always empty but in 0.4.3 it was changed to $1 like it should be but there's something going wrong in the case statement?

Re: dinit: Service early-keyboard.target command failed with exit code 1

Reply #18
I honestly don't know what triggered this.

What if you download dinit-rc-0.4.4 manually, extract it in /tmp/dinit-rc, and run /bin/sh -x /usr/lib/dinit/vconsole keyboard?

EDIT: Also, I'm pushing dinit-rc-0.4.5 (here's the commit) so that even if early-keyboard.target and early-console.target fails, the boot process isn't interrupted. Wait a bit since it's on the queue right now, otherwise just download the PKGBUILD, makepkg and test it. That way we can narrow down the cause.

Further edit: @toepie and @omnigenous, I'm merging your threads since it deals with the same problem.

Here's the output of that command with 0.4.4:
Code: [Select]
/bin/sh -x /tmp/vconsole keyboard
+ '[' -r /etc/vconsole.conf ']'
+ . /etc/vconsole.conf
+ '[' -r /proc/cmdline ']'
++ cat /proc/cmdline
+ for x in $(cat /proc/cmdline)
+ case "$x" in
+ for x in $(cat /proc/cmdline)
+ case "$x" in
+ for x in $(cat /proc/cmdline)
+ case "$x" in
+ for x in $(cat /proc/cmdline)
+ case "$x" in
+ for x in $(cat /proc/cmdline)
+ case "$x" in
+ case "$1" in
+ '[' -n '' ']'

It seems that it just skipped the case statement in 0.4.2 because $2 is always empty but in 0.4.3 it was changed to $1 like it should be but there's something going wrong in the case statement?

From your 0.4.4 quote, since your /etc/vconsole.conf KEYMAPS= is empty, it shouldn't even execute anything since in my case it'll look like this:

Code: [Select]
+ case "$1" in
+ '[' -n us ']'
+ loadkeys -q -u us

What about dinit-rc-0.4.5? I've changed the type of deps of both of the keyboard and console services to soft depend so even if it fails it keeps booting.

EDIT: Actually, disregard everything above. I'm an idiot. Will push a definite fix.

Further edit: Pushed a definite fix, it's really simple fix but can't believe I missed use cases. dinit-rc-0.4.6 should fix it all. Apologies for the inconvenience.
now only the dinit guy in artix

Re: dinit: Service early-keyboard.target command failed with exit code 1

Reply #19
@konimex Well that was quick! Anyway kinda hilarious that a bug in 0.4.2 was keeping that buggy line from being executed XD