This project aims to study and solve Linux kernel oopsing related to SMARTBoard usage.
SMARTBoard connected to a machine via USB while SMARTBoardService-binary is running causes sporadic kernel oopses. Others have reported same kind of issues too .
Altough oopsing is quite sporadic in normal conditions, it can be made
almost certain by scanning USB bus simultaneously with several
processes in parallel. The exact test setup and reproduction steps are
described in Test setup.
Full console logs are available under
data/ accompanied with machine
- Develop a reliable method for reproducing the issue with specific hardware, i.e. SMARTBoard connected to our test equipment.
- Develop a reliable method for reproducing the issue with generic USB hardware, e.g. memory stick or webcam.
- Identify the root cause and pinpoint the exact code section.
- Develop a patch which fixes the issue and send it upstream.
So far, we have tested SMARTBoard in LTSP-environment, connected to fat clients. We have tested it in two different machines which differ only in hardware. The client image in both machines is basically the same and is based on Ubuntu 10.04 (Lucid Lynx).
Details of hardware configuration of each machine can be found under
Hosts were configured to output their console log to serial console with following kernel command line [*]:
Steps to reproduce
Login as unprivileged user, SMARTBoard connected via USB.
Make sure that all the necessary SMARTBoard-related processes up and running. In our machines, following processes were found to be running:
vieras 3263 0.0 0.0 1828 540 ? S 17:00 0:00 /bin/sh /opt/SMART Technologies/SMART Product Drivers/bin/SMARTBoardService vieras 3265 0.0 0.0 1828 540 ? S 17:00 0:00 /bin/sh /opt/SMART Technologies/SMART Product Drivers/bin/SMART Board Tools vieras 3271 1.4 0.9 209180 19748 ? Sl 17:00 0:10 /opt/SMART Technologies/SMART Product Drivers/bin/.SMARTBoardService_elf vieras 3272 0.0 0.9 78380 18968 ? Sl 17:00 0:00 /opt/SMART Technologies/SMART Product Drivers/bin/.SMART Board Tools_elf vieras 3352 0.0 0.0 1828 540 ? S 17:00 0:00 /bin/sh /opt/SMART Technologies/SMART Product Drivers/bin/Marker vieras 3357 0.1 0.9 104012 20156 ? Sl 17:00 0:00 /opt/SMART Technologies/SMART Product Drivers/bin/.Marker_elf vieras 3360 0.0 0.0 1828 536 ? S 17:00 0:00 /bin/sh /opt/SMART Technologies/SMART Product Drivers/bin/FloatingTools vieras 3365 0.0 0.9 103000 19624 ? Sl 17:00 0:00 /opt/SMART Technologies/SMART Product Drivers/bin/.FloatingTools_elf
This is a very simple script which runs 15 loops of
lsusbprocesses in parallel. The end result is that there are always about 15
lsusbprocesses running for a very long time.
Wait until the kernel oopses, couple of minutes approximately.