diff options
author | 2019-12-29 18:36:48 -0500 | |
---|---|---|
committer | 2019-12-29 18:46:56 -0500 | |
commit | 0be8a1ddb505354f6ab028f2af359674211c0273 (patch) | |
tree | 087d9b1df1377c361a35ce2d0e1319ebe376a272 /recipes-kernel | |
parent | 1007e85d17d9b86aa82ed41872d207da1eba69e1 (diff) |
Add virtual sllin support and LIN bridging to CAN for demos
To enable seeing the steering wheel LIN messages on the cluster board
for the planned CES demo, a systemd unit that wraps the use of candump
in bridging mode is added when the agl-cluster-support feature is
enabled. To make sure that the sllin0 interface is always available
for testing without the specific demo LIN hardware, a vcan interface
is set up as sllin0 when the ttyUSB0 device representing the serial
adapter for the LIN transceiver is not present. Since this virtual
sllin0 interface is very useful for general testing of the steering
wheel event support up through the low-can and signal-composer stack,
it has not been hidden behind agl-cluster-demo-support.
Bug-AGL: SPEC-3049
Change-Id: I527763176ce0f8b4d50cc472ec2343a6596286e2
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Diffstat (limited to 'recipes-kernel')
-rw-r--r-- | recipes-kernel/sllin/files/sllin-demo-virtual.service | 12 | ||||
-rwxr-xr-x[-rw-r--r--] | recipes-kernel/sllin/files/start_lin_demo.sh | 12 | ||||
-rw-r--r-- | recipes-kernel/sllin/sllin.bb | 7 |
3 files changed, 27 insertions, 4 deletions
diff --git a/recipes-kernel/sllin/files/sllin-demo-virtual.service b/recipes-kernel/sllin/files/sllin-demo-virtual.service new file mode 100644 index 00000000..78824219 --- /dev/null +++ b/recipes-kernel/sllin/files/sllin-demo-virtual.service @@ -0,0 +1,12 @@ +[Unit] +Description=LIN demo configuration (virtual) +ConditionPathExists=!/dev/ttyUSB0 +After=afm-system-daemon.service + +[Service] +Type=oneshot +ExecStart=/usr/bin/start_lin_demo.sh +RemainAfterExit=yes + +[Install] +WantedBy=multi-user.target diff --git a/recipes-kernel/sllin/files/start_lin_demo.sh b/recipes-kernel/sllin/files/start_lin_demo.sh index 4fcfcc6d..26f64c0a 100644..100755 --- a/recipes-kernel/sllin/files/start_lin_demo.sh +++ b/recipes-kernel/sllin/files/start_lin_demo.sh @@ -1,10 +1,14 @@ #!/bin/sh # Attach serial LIN->CAN bridge and set up LIN polling -sleep 1 -/usr/bin/lin_config -c /etc/lin_config.conf -a sllin:/dev/ttyUSB0 -pidof lin_config > /var/run/lin_config.pid -sleep 1 +if [ -c /dev/ttyUSB0 ]; then + sleep 1 + /usr/bin/lin_config -c /etc/lin_config.conf -a sllin:/dev/ttyUSB0 + pidof lin_config > /var/run/lin_config.pid + sleep 1 +else + ip link add dev sllin0 type vcan +fi ip link set sllin0 up # Initialize HVAC controller diff --git a/recipes-kernel/sllin/sllin.bb b/recipes-kernel/sllin/sllin.bb index 0478b21a..7c4313f1 100644 --- a/recipes-kernel/sllin/sllin.bb +++ b/recipes-kernel/sllin/sllin.bb @@ -18,6 +18,7 @@ SRC_URI_append = " \ file://0003-Allow-recent-kernels-newer-4.11.x-to-build.patch;pnum=2 \ file://0001-Disable-sllin-driver-debug-log.patch;pnum=2 \ file://sllin-demo.service \ + file://sllin-demo-virtual.service \ file://start_lin_demo.sh \ file://lin_config.conf \ " @@ -29,16 +30,22 @@ SLLINBAUDRATE ??= "9600" module_conf_sllin = "options sllin baudrate=${SLLINBAUDRATE}" SYSTEMD_SERVICE_${PN} = "sllin-demo.service" +SYSTEMD_SERVICE_${PN}-virtual = "sllin-demo-virtual.service" do_install_append () { install -d 644 ${D}/${bindir} install -m 755 ${WORKDIR}/start_lin_demo.sh ${D}/${bindir}/start_lin_demo.sh install -d ${D}${systemd_system_unitdir} install -m 0644 ${WORKDIR}/sllin-demo.service ${D}${systemd_system_unitdir}/ + install -m 0644 ${WORKDIR}/sllin-demo-virtual.service ${D}${systemd_system_unitdir}/ install -d ${D}${sysconfdir} install -m 0644 ${WORKDIR}/lin_config.conf ${D}${sysconfdir}/ } +PACKAGES =+ "${PN}-virtual" + FILES_${PN} += "${bindir}/start_lin_demo.sh ${sysconfdir}/lin_config.conf" +FILES_${PN}-virtual = "${systemd_system_unitdir}/sllin-demo-virtual.service" + RDEPENDS_${PN} += "lin-config" |