mirror of
https://github.com/pikvm/pikvm.git
synced 2026-03-02 18:16:56 -05:00
fresh os build fails to create /dev/kvmd-video on startup causing kvmd-tc358743 to fail #1103
Labels
No labels
component:documentation
help wanted
resolution:delayed
resolution:duplicate
resolution:fixed
resolution:invalid
resolution:rejected
resolution:wontfix
success story
type:bug
type:bug
type:feature
type:question
type:question
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/pikvm-pikvm#1103
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @magore on GitHub (Jan 23, 2026).
Originally assigned to: @mdevaev on GitHub.
Describe the bug
For raspberry Pi 2W and hdmi tc358743 target the device /dev/kvmd-video is not created automatically on startup when KVM OS image is made following documented https://docs.pikvm.org/building_os/.
Simple fix: manually symlinking /dev/video0 to /dev/kvmd-video and restarting the kvmd-tc358743 services fixes the problem and video capture works - but fails again after the next reboot
To Reproduce
Steps to reproduce the behavior, like:
Expected behavior
/dev/kvmd-video should get created automattically
Desktop (please complete the following information):
build system
PiKVM info:
Raspberry Pi board version: RPi 2W
PiKVM platform: v2-hdmi
Video capture type: CSI bridge
KVMD version: pacman -Q | grep kvmd
kvmd 4.140-1
kvmd-fan 0.32-1
kvmd-platform-v2-hdmi-rpi4 4.140-1
kvmd-webterm 0.50-1
uStreamer version:
pacman -Q | grep ustreamerustreamer 6.45-1
Linux kernel:
uname -aLinux pikvm 6.12.56-5-rpi #1 SMP Sun Jan 18 09:17:56 UTC 2026 armv7l GNU/Linux
Additional context
dmesg clips showing the device detection
[ 0.031319] /soc/csi@7e801000: Fixed dependency cycle(s) with /soc/i2c0mux/i2c@1/tc358743@f
[ 0.031417] /soc/i2c0mux/i2c@1/tc358743@f: Fixed dependency cycle(s) with /soc/csi@7e801000
[ 0.032944] /soc/csi@7e801000: Fixed dependency cycle(s) with /soc/i2c0mux/i2c@1/tc358743@f
[ 0.033972] /soc/i2c0mux/i2c@1/tc358743@f: Fixed dependency cycle(s) with /soc/csi@7e801000
Here is a log file showing the error status of kvmd-tc358743 before and after the fix
diagnostic-and-repair.txt
@magore commented on GitHub (Jan 23, 2026):
Hacking the udev rule /usr/lib/udev/rules.d/99-kvmd.rules and adding rule below as the first rule "fixes" the problem and the system works - however it needs someone actually familiar with the overall project to fix it correctly:
KERNEL=="video[0-9]*", SUBSYSTEM=="video4linux", ATTR{name}=="unicam-image", GROUP="kvmd", SYMLINK+="kvmd-video", TAG+="systemd"
@mdevaev commented on GitHub (Jan 23, 2026):
Hello. What about the stock image? Could you install it, update OS and check?
@magore commented on GitHub (Jan 24, 2026):
I will give the stock image a try - it might take a few days to get to it. I will report the results. Thanks!
@mdevaev commented on GitHub (Jan 24, 2026):
I'll be waiting!
@magore commented on GitHub (Feb 1, 2026):
I tested with a downloaded a stock image v2-hdmi-zero2w-arm-latest.img.xz and It works. So the difference I was seeing was only due to the build process somehow dropping a udev rule to create symlink to /dev/kvmd-video. Sorry for the delay in testing this!
@mdevaev commented on GitHub (Feb 2, 2026):
Please post the content of
/usr/lib/udev/rules.d/99-kvmd.rulesand/etc/ude/rules.d/99-kvmd.rulesfrom your own image that you built.@magore commented on GitHub (Feb 2, 2026):
There is no file call /etc/udev/rules.d/99-kvmd.rules in
For the file /usr/lib/udev/rules.d/99-kvmd.rules you can see my addition and notes as the original line does not match for my CSI HDMI device - my rule matches any
video[0-9]so is a kludgeI also am including kernel messages concerning my device detection from dmesg
[root@pikvm /]# dmesg | grep -i tc358743
@mdevaev commented on GitHub (Feb 3, 2026):
Please run this command and post the entire log:
udevadm info -a -p $(udevadm info -q path -n /dev/kvmd-video)@magore commented on GitHub (Feb 4, 2026):
udevadm-info.txt
@mdevaev commented on GitHub (Feb 4, 2026):
It seems the build configuration is wrong. Specifically, you have an incorrect
BOARD=orPLATFORM=values inconfig.mk. Please show the build config.@magore commented on GitHub (Feb 4, 2026):
The script attached is my build script with comments. After that is the build log.
doit.sh
log.txt
I just noticed while reviewing the attacted log file that it had reported the error I made! The export line for the board was:
export BOARD = zero2wwhich is has spaces in it. When I created the script I was doing a cut/paste from Section 4 under building os which has spaces in the assignment lines. I had removed those while making the script - all except I missed that one. Section 3 of the building os did not have the spaces.Anyway: Major face palm mistake on my part. Interestingly the only change that typo caused was the udev rule as once fixed the whole project worked fine.
I am sorry for the time this waisted
@magore commented on GitHub (Feb 4, 2026):
FYI - I should have mentioned at the start that I really like this project because of the docker build process - I just sent a paypal donation. I had originally tried an image early in the project developement and just recently got around to trying it again. Very polished and professionally done.
@mdevaev commented on GitHub (Feb 4, 2026):
I'm glad that problem is solved and thank you for the donation! Hope that everything will work fine.