在标准Raspberry Pi OS (Trixie)上使用ED-IPC和ED-HMI
1 概述
介绍在标准的Raspberry Pi OS (Trixie)上使用ED-IPC和ED-HMI的背景和适用范围。
1.1 背景
我司部分ED-IPC与ED-HMI系列产品出厂时预装的操作系统为Raspberry Pi OS(Bookworm)。为满足部分用户基于Raspberry Pi OS(Trixie)进行应用开发的需求,我司已针对此情况完成相关适配优化。
目前,ED-IPC与ED-HMI系列产品已全面兼容标准版Raspberry Pi OS(Trixie)的原生驱动。针对2026年9月15日及之后发布的Raspberry Pi OS(Trixie)版本,用户仅需先通过修改config.txt配置文件启用各端口,再安装对应扩展功能的软件包,即可使产品正常运行。此次升级有效拓展了产品的应用范围,能够更灵活地响应不同用户的多样化需求。
1.2 适用范围
本应用适用于EDATEC的ED-IPC3630和ED-HMI3630系列产品,兼容的OS版本和对应的产品型号如下:
| 软件范围 | 产品型号 |
|---|---|
| 标准的Raspberry Pi OS(Trixie,2026年9月15日及之后发布的版本) | ED-HMI3630-101C ED-HMI3630-116C ED-HMI3630-133C ED-HMI3630-156C ED-IPC3630 |
2 配置指南
本章介绍在标准版Raspberry Pi OS(Trixie,2026年9月15日及之后发布的版本)上使用 ED-IPC3630 与 ED-HMI3630 系列产品的具体配置方法。不同产品型号的配置步骤略有差异,请根据实际使用的型号进行对应操作。
2.1 适用于ED-HMI3630-101C系列
配置操作包括以下两个步骤,请依次执行:
修改
config.txt配置文件:根据产品型号对配置文件进行相应修改,以启用所需端口。安装软件包:完成配置修改后,安装对应的扩展功能软件包,确保产品正常运行。
2.1.1 修改config.txt配置文件
前提条件:
- 设备已完成最新的标准Raspberry Pi OS (Trixie,2026年9月15日及之后发布的版本)的烧录。
- 设备已正常启动,且已外接一台显示器。
操作步骤:
- 在设备的命令窗格,执行如下命令,打开
/boot/firmware/config.txt文件。
sudo nano /boot/firmware/config.txt
- 在
/boot/firmware/config.txt文件末尾[all]处添加如下信息。
dtoverlay=vc4-kms-dsi-edatec-panel-101c,i2c4,interrupt=7
dtoverlay=ed-ipc,ipc3600
dtoverlay=uart1
dtoverlay=uart2
dtoverlay=uart3
dtoverlay=uart4
dtoverlay=spi1-2cs,cs0_spidev=off,cs1_spidev=off
dtoverlay=mcp2515,spi1-0,oscillator=16000000,interrupt=15
dtoverlay=mcp2515,spi1-1,oscillator=16000000,interrupt=14
dtoverlay=sdio-pi5
dtparam=rtc=off
dtoverlay=i2c-rtc,pcf8563,i2c_csi_dsi0
force_eeprom_read=0
disable_poe_fan=1
dtparam=i2c_arm=on
enable_uart=1
添加信息后的结果如下图所示:

输入
ctrl+o保存文件,再按Enter,最后输入ctrl+x退出文件编辑模式。执行如下命令添加COM口的udev规则。
sudo tee /etc/udev/rules.d/98-com.rules >/dev/null <<'EOF'
KERNEL=="ttyAMA2", PROGRAM="/bin/sh -c 'echo 1'", SYMLINK+="com%c"
KERNEL=="ttyAMA4", PROGRAM="/bin/sh -c 'echo 2'", SYMLINK+="com%c"
KERNEL=="ttyAMA1", PROGRAM="/bin/sh -c 'echo 3'", SYMLINK+="com%c"
KERNEL=="ttyAMA3", PROGRAM="/bin/sh -c 'echo 4'", SYMLINK+="com%c"
EOF

- 执行如下命令添加CAN口的udev规则。
sudo tee /etc/udev/rules.d/50-can.rules >/dev/null <<'EOF'
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", DEVPATH=="/devices/platform/axi/*.pcie/*.spi/spi_master/spi1/spi1.0/net/can*", NAME="canb0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", DEVPATH=="/devices/platform/axi/*.pcie/*.spi/spi_master/spi1/spi1.1/net/can*", NAME="canb1"
EOF

- 创建自动化脚本配置LCD屏幕属性。
a. 执行如下命令,创建配置脚本文件。
sudo nano ed-hmi-primary.sh
b. 将以下内容复制到脚本文件中。
#!/bin/bash
D_DSI="DSI-2"
D_I2C="10-0014"
I2C_ALIAS="i2c_csi_dsi0"
init_i2c()
{
local t_dsi
local t_i2c
t_dsi=$(
dtc -I fs /proc/device-tree 2>/dev/null |
sed -nE "s/.*${I2C_ALIAS} = (.*i2c.*);$/\1/p" |
sed 's/\//\\\//g'
)
t_i2c=$(
dtc -I fs /proc/device-tree 2>/dev/null |
sed -nE "s/.*\<i2c([0-9]*) = ${t_dsi};$/\1/p" |
head -n 1
)
if [ -n "${t_i2c}" ]; then
D_I2C="${t_i2c}-0014"
fi
}
update_wayfire()
{
local t_user=$1
mkdir -p "/home/${t_user}/.config"
cat > "/home/${t_user}/.config/wayfire.ini" << EOF
[command]
repeatable_binding_volume_up = KEY_VOLUMEUP
command_volume_up = wfpanelctl volumepulse volu
repeatable_binding_volume_down = KEY_VOLUMEDOWN
command_volume_down = wfpanelctl volumepulse vold
binding_mute = KEY_MUTE
command_mute = wfpanelctl volumepulse mute
binding_menu = <super>
command_menu = wfpanelctl smenu menu
binding_terminal = <ctrl> <alt> KEY_T
command_terminal = lxterminal
binding_bluetooth = <ctrl> <alt> KEY_B
command_bluetooth = wfpanelctl bluetooth menu
binding_netman = <ctrl> <alt> KEY_W
command_netman = wfpanelctl netman menu
binding_grim = KEY_SYSRQ
command_grim = grim
binding_orca = <ctrl> <alt> KEY_SPACE
command_orca = gui-pkinst orca reboot
binding_quit = <ctrl> <alt> KEY_DELETE
command_quit = lxde-pi-shutdown-helper
binding_power = KEY_POWER
command_power = pwrkey
[input-device:generic ft5x06 (79)]
output = ${D_DSI}
[input-device:generic ft5x06 (80)]
output = ${D_DSI}
[input-device:FT5406 memory based driver]
output = ${D_DSI}
[input]
xkb_model = pc105
xkb_layout = gb
xkb_variant =
[output:${D_DSI}]
mode = 800x1280@40000
position = 0,0
transform = 90
primary = true
[input-device:Goodix Capacitive TouchScreen]
output = ${D_DSI}
[input-device:${D_I2C} Goodix Capacitive TouchScreen]
output = ${D_DSI}
[window-rules]
rule-1 = on created if title is "LXTerminal" then maximize
EOF
}
update_kanshi()
{
local t_user=$1
mkdir -p "/home/${t_user}/.config/kanshi"
cat > "/home/${t_user}/.config/kanshi/config" << EOF
profile {
output ${D_DSI} mode 800x1280 position 0,0 transform 90
}
profile {
output ${D_DSI} mode 800x1280 position 0,0 transform 90
output HDMI-A-1 enable position 1280,0 transform normal
}
EOF
}
update_labwc()
{
local t_user=$1
mkdir -p "/home/${t_user}/.config/labwc"
cat > "/home/${t_user}/.config/labwc/rc.xml" << EOF
<?xml version="1.0" encoding="UTF-8"?>
<labwc_config>
<touch deviceName="Goodix Capacitive TouchScreen" mapToOutput="${D_DSI}" />
<touch deviceName="${D_I2C} Goodix Capacitive TouchScreen" mapToOutput="${D_DSI}" />
</labwc_config>
EOF
}
update_labwc_autostart()
{
local t_user=$1
mkdir -p "/home/${t_user}/.config/labwc"
cat > "/home/${t_user}/.config/labwc/autostart" << EOF
if [ -f /home/${t_user}/.config/wf-panel-pi.ini ]; then
grep -q "^monitor=" /home/${t_user}/.config/wf-panel-pi.ini
if [ \$? -ne 0 ]; then
sed -i "/^\[panel\]/a\monitor=${D_DSI}" \
/home/${t_user}/.config/wf-panel-pi.ini
fi
else
cat > /home/${t_user}/.config/wf-panel-pi.ini << EOL
[panel]
monitor=${D_DSI}
launcher_000001=lxde-x-www-browser.desktop
launcher_000002=pcmanfm.desktop
launcher_000003=lxterminal.desktop
EOL
fi
EOF
}
update_squeekboard()
{
local file="/etc/xdg/labwc/autostart"
if [ ! -f "${file}" ]; then
return
fi
if grep -q "^export SQUEEKBOARD_PREFERRED_OUTPUT=" "${file}"; then
sed -i \
"s|^export SQUEEKBOARD_PREFERRED_OUTPUT=.*|export SQUEEKBOARD_PREFERRED_OUTPUT=${D_DSI}|" \
"${file}"
else
sed -i \
"1i export SQUEEKBOARD_PREFERRED_OUTPUT=${D_DSI}" \
"${file}"
fi
}
update_wayland()
{
local home
local t_user
for home in /home/*; do
[ -d "${home}" ] || continue
t_user=$(basename "${home}")
echo "Configuring Wayland for user: ${t_user}"
update_wayfire "${t_user}"
update_kanshi "${t_user}"
update_labwc "${t_user}"
update_labwc_autostart "${t_user}"
chown -R "${t_user}:${t_user}" \
"/home/${t_user}/.config"
done
update_squeekboard
}
update_x11()
{
cat > /usr/share/dispsetup.sh << 'EOF'
#!/bin/sh
D_DSI=$(xrandr | awk '/^DSI.* connected/ {print $1; exit}')
D_HDMI=$(xrandr | awk '/^HDMI.* connected/ {print $1; exit}')
D_TOUCH=$(xinput | awk -F'id=' \
'/Goodix Capacitive TouchScreen/ && /pointer/ {
gsub(/^.*↳ /,"",$1)
sub(/[ \t]+$/,"",$1)
print $1
exit
}')
if [ -n "$D_DSI" ]; then
if [ -n "$D_HDMI" ] && \
xrandr \
--output "$D_HDMI" \
--auto \
--pos 1280x0 \
--output "$D_DSI" \
--primary \
--mode 800x1280 \
--pos 0x0 \
--rotate left \
--dryrun
then
xrandr \
--output "$D_HDMI" \
--auto \
--pos 1280x0 \
--output "$D_DSI" \
--primary \
--mode 800x1280 \
--pos 0x0 \
--rotate left
elif xrandr \
--output "$D_DSI" \
--primary \
--mode 800x1280 \
--pos 0x0 \
--rotate left \
--dryrun
then
xrandr \
--output "$D_DSI" \
--primary \
--mode 800x1280 \
--pos 0x0 \
--rotate left
fi
if [ -n "$D_TOUCH" ]; then
xinput --map-to-output "$D_TOUCH" "$D_DSI"
fi
fi
if [ -e /usr/share/ovscsetup.sh ]; then
/usr/share/ovscsetup.sh
fi
exit 0
EOF
chmod 755 /usr/share/dispsetup.sh
}
run()
{
if [ "$(id -u)" -ne 0 ]; then
echo "ERROR: this script must be run as root"
exit 1
fi
init_i2c
update_wayland
update_x11
echo "HMI36 101C display setup completed."
}
run
c. 执行如下命令,执行配置脚本。
sudo chmod +x ed-hmi-primary.sh && sudo ./ed-hmi-primary.sh

- LCD屏幕属性配置完成后,执行如下命令,重启设备使配置生效。
sudo reboot
- 设备重新启动后,屏幕可以正常显示且各接口均可正常工作。
2.1.2 安装软件包
前提条件:
设备已完成config.txt配置文件的修改。
操作步骤:
- 打开终端命令窗格,依次执行如下命令,下载密钥并创建
edatec.list文件。
curl -sS https://apt.edatec.cn/pubkey.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/edatec-archive-stable.gpg
echo "deb https://apt.edatec.cn/raspbian stable main" | sudo tee /etc/apt/sources.list.d/edatec.list
sudo apt update
- 执行如下命令,安装
ed-reboot软件包。
sudo apt install ed-reboot
- 执行如下命令,安装
ed-rtc软件包。
sudo apt install ed-rtc
- 执行如下命令,安装
ed-clte软件包。
sudo apt install ed-clte
- 执行如下命令,安装
ed-usb-tools软件包。
sudo apt install ed-usb-tools
- 执行如下命令,安装
ed-lvd软件包。
sudo apt install ed-lvd
2.2 适用于ED-IPC3630、ED-HMI3630-116C、ED-HMI3630-133C和ED-HMI3630-156C系列
配置操作包括以下两个步骤,请依次执行:
修改
config.txt配置文件:根据产品型号对配置文件进行相应修改,以启用所需端口。安装软件包:完成配置修改后,安装对应的扩展功能软件包,确保产品正常运行。
2.2.1 修改config.txt配置文件
前提条件:
- 设备已完成最新的标准Raspberry Pi OS (Trixie,2026年9月15日及之后发布的版本)的烧录。
- 设备已正常启动,且已外接一台显示器。
操作步骤:
- 在设备的命令窗格,执行如下命令,打开
/boot/firmware/config.txt文件。
sudo nano /boot/firmware/config.txt
- 在
/boot/firmware/config.txt文件末尾[all]处添加如下信息。
dtoverlay=ed-ipc,ipc3600
dtoverlay=uart1
dtoverlay=uart2
dtoverlay=uart3
dtoverlay=uart4
dtoverlay=spi1-2cs,cs0_spidev=off,cs1_spidev=off
dtoverlay=mcp2515,spi1-0,oscillator=16000000,interrupt=15
dtoverlay=mcp2515,spi1-1,oscillator=16000000,interrupt=14
dtoverlay=sdio-pi5
dtparam=rtc=off
dtoverlay=i2c-rtc,pcf8563,i2c_csi_dsi0
force_eeprom_read=0
disable_poe_fan=1
dtparam=i2c_arm=on
enable_uart=1
添加信息后的结果如下图所示:

- 输入
ctrl+o保存文件,再按Enter,最后输入ctrl+x退出文件编辑模式。 - 执行如下命令添加COM口的udev规则。
sudo tee /etc/udev/rules.d/98-com.rules >/dev/null <<'EOF'
KERNEL=="ttyAMA2", PROGRAM="/bin/sh -c 'echo 1'", SYMLINK+="com%c"
KERNEL=="ttyAMA4", PROGRAM="/bin/sh -c 'echo 2'", SYMLINK+="com%c"
KERNEL=="ttyAMA1", PROGRAM="/bin/sh -c 'echo 3'", SYMLINK+="com%c"
KERNEL=="ttyAMA3", PROGRAM="/bin/sh -c 'echo 4'", SYMLINK+="com%c"
EOF

- 执行如下命令添加CAN口的udev规则。
cat > "/etc/udev/rules.d/50-can.rules" <<'EOF'
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", DEVPATH=="/devices/platform/axi/*.pcie/*.spi/spi_master/spi1/spi1.0/net/can*", NAME="canb0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", DEVPATH=="/devices/platform/axi/*.pcie/*.spi/spi_master/spi1/spi1.1/net/can*", NAME="canb1"
EOF

- 执行如下命令,重启设备使配置生效。
sudo reboot
- 设备重新启动后,屏幕可以正常显示且各接口均可正常工作。
2.2.2 安装软件包
前提条件:
设备已完成config.txt配置文件的修改。
操作步骤:
- 打开终端命令窗格,依次执行如下命令,下载密钥并创建
edatec.list文件。
curl -sS https://apt.edatec.cn/pubkey.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/edatec-archive-stable.gpg
echo "deb https://apt.edatec.cn/raspbian stable main" | sudo tee /etc/apt/sources.list.d/edatec.list
sudo apt update
- 执行如下命令,安装
ed-reboot软件包。
sudo apt install ed-reboot
- 执行如下命令,安装
ed-rtc软件包。
sudo apt install ed-rtc
- (可选)执行如下命令,安装
ed-ddcci-mib-tool软件包。
sudo apt install ed-ddcci-mib-tool
提示
ED-HMI3630-116C、ED-HMI3630-133C和ED-HMI3630-156C均需要安装ed-ddcci-mib-tool软件包,ED-IPC3630无需安装此软件包。
- 执行如下命令,安装
ed-clte软件包。
sudo apt install ed-clte
- 执行如下命令,安装
ed-usb-tools软件包。
sudo apt install ed-usb-tools
- 执行如下命令,安装
ed-lvd软件包。
sudo apt install ed-lvd
