diff --git a/hints.md b/hints.md index 1bcb4f17f7e12ac845d0a2fb73e95b8569e02cd1..77de5cd1250ed79c4f32d833c06af23d1bb45e34 100644 --- a/hints.md +++ b/hints.md @@ -6,6 +6,50 @@ for developers to do various task inside the installed SECO North Yocto. This is a growing document and not ment to reach any state of completeness like a manual, or similar. +[[_TOC_]] + +## Audio + +### Play sound +``` +aplay /usr/share/sounds/alsa/* +``` + +### Play click sequence +``` +wget -P /tmp/ http://support.garz-fricke.com/projects/TestFiles/Audio/short_click_4_times.wav +aplay /tmp/short_click_4_times.wav +``` + +### Qt QML audio playback +``` +#Preparation +systemctl stop seco-show-demo + +cat > /tmp/audio-playback.qml << 'EOF' +import QtMultimedia 5.15 +import QtQuick 2.15 + +Text { + text: "Click Me!"; + font.pointSize: 24; + width: 150; height: 50; + + Audio { + id: playMusic + source: "/usr/share/sounds/alsa/Front_Center.wav" + } + MouseArea { + id: playArea + anchors.fill: parent + onPressed: { playMusic.play() } + } +} +EOF + +qmlscene /tmp/audio-playback.qml +``` + ## Bluetooth Bluetooth is currently only basically supported. @@ -16,22 +60,389 @@ Commands used for a basic hardware test: *Note*: There are devices which do not have R11 populated on the BT Uart's CTS line. These do not support bluetooth. ``` -# Verbinden des BT-Chips +# Connect the BT-Chip rtk_hciattach ttymxc3 rtk_h5 hciconfig hci0 up # Scan for other BT-devices hcitool scan ``` - This currently does not work with yocto kirkstone. +## CAN +### CAN test +``` +# Counter part is running TestCAN_W32_2.0.2.0.exe -s -v1 -x4 +/opt/ltp/testcases/bin/can +``` + +## Display +### Backlight Brightness +The scripts sets the backlight brightness level to 0%, 50% and 100%. If required modify BL\_PATH for your system. +``` +cat > /tmp/backlight-test.sh << 'EOF' +#!/bin/sh +BL_PATH=/sys/class/backlight/backlight/ +MAX_BRIGHTNESS=$(cat $BL_PATH/max_brightness) +ACTUAL_BRIGHTNESS=$(cat $BL_PATH/actual_brightness) +echo "max brightness value: $MAX_BRIGHTNESS" +echo "actual brightness value: $ACTUAL_BRIGHTNESS" +echo 0 > $BL_PATH/brightness +sleep 2 +echo $(($MAX_BRIGHTNESS/2)) > $BL_PATH/brightness +sleep 2 +echo $MAX_BRIGHTNESS > $BL_PATH/brightness +sleep 2 +echo $ACTUAL_BRIGHTNESS > $BL_PATH/brightness +echo "done" +EOF + +sh /tmp/backlight-test.sh +``` + +### FB blank +``` +echo 4 > /sys/class/graphics/fb0/blank +sleep 2 +echo 0 > /sys/class/graphics/fb0/blank +``` + +### Weston rotation +Set different output rotation values. It is assumed that only one output is present in weston.ini. +``` +# Preperation +systemctl stop seco-show-demo + +# 90 deg +sed -i 's/transform=.*$/transform=rotate-90/g' /etc/xdg/weston/weston.ini +systemctl restart weston +weston-image /usr/share/seco-show-demo/images/icon-hw-info.png + +# 270 deg +sed -i 's/transform=.*$/transform=rotate-270/g' /etc/xdg/weston/weston.ini +systemctl restart weston +weston-image /usr/share/seco-show-demo/images/icon-hw-info.png + +# 180 deg +sed -i 's/transform=.*$/transform=rotate-180/g' /etc/xdg/weston/weston.ini +systemctl restart weston +weston-image /usr/share/seco-show-demo/images/icon-hw-info.png + +# 0 degree +sed -i 's/transform=.*$/transform=normal/g' /etc/xdg/weston/weston.ini +systemctl restart weston +weston-image /usr/share/seco-show-demo/images/icon-hw-info.png +``` + +## EEPROM (SANTARO, SANTOKA, SANTINO, SANTINO-LT) +### EEPROM read +``` +gfeeprom --show +``` +### EEPROM write +Before you run the write command verify the content of `eeprom-orig.txt`. **Otherwise the original eeprom values may get lost.** +``` +# Perperation +output=$(gfeeprom --show | grep "0-0050/eeprom ->") +eval e=($(echo $output | sed -e 's/[>|()]//g' )) +echo "[BEGIN] +Controller Index = 1 +Device = ${e[1]} +EEPROM Address = 0x${e[1]##*eeprom} +Major Version = ${e[12]} +Minor Version = ${e[14]} +Article Number = ${e[7]} +Serial Number = ${e[10]} +Component = ${e[4]} +Comment = ${e[16]} +Verify = 0x1 +Force write = 0x1 +[END]" > /tmp/eeprom-orig.txt +comment="Write test $(date)" +sed "s/Comment =.*/Comment = ${comment}/" /tmp/eeprom-orig.txt > /tmp/eeprom-test.txt + +cat /tmp/eeprom-orig.txt + +# Write to eeprom and read back +gfeeprom --program -sf /tmp/eeprom-test.txt +gfeeprom --show + +# Restore original values +gfeeprom --program -sf /tmp/eeprom-orig.txt +``` + +## Ethernet +### DNS lookup test +``` +nslookup north.seco.com +``` +### iperf3 +Start the iperf3 echo server on a linux machine in the same network. +``` +iperf3 -s -p 5201 +``` +Connect only the interface that is to be tested to the network. +``` +iperf3 -c <hostname/ip of echo server machine> -p 5201 +``` + +## HDMI +### HDMI DRM device +Check if a HDMI DRM device was created. +``` +ls /sys/class/drm/ | grep HDMI +``` +### HDMI modetest +Use `modetest -c` and `modetest -p` to find out which connector and crtc values (\<connector\>@\<crtc\>) are appropriate for your system. +``` +# Preperation +systemctl stop weston + +modetest -M imx-drm -s 66@47:1280x800 +``` + +## NFS +### NFS client +Change the variables `NFSSERVER` and `SERVERDIR` to match your configuration. +``` +NFSSERVER=<hostname> +SERVERDIR=/home/ +mkdir -p /tmp/mnt/nfs +mount -t nfs $NFSSERVER:$SERVERDIR /tmp/mnt/nfs +ls /tmp/mnt/nfs +umount /tmp/mnt/nfs +``` + +## Power management +### Standby mode wakeup from CPU internal RTC +``` +echo +5 > /sys/class/rtc/rtc1/wakealarm && echo standby > /sys/power/state +# The device should wake up after 5 seconds +``` +### Standby mode wakeup from from serial interface +``` +echo enabled > /sys/class/tty/ttymxc0/power/wakeup && echo standby > /sys/power/state +# Device has to wake up after keypress on the serial console +``` +### Deep sleep mode wakeup from CPU internal RTC +``` +echo +5 > /sys/class/rtc/rtc1/wakealarm && echo mem > /sys/power/state +# The device should wake up after 5 seconds +``` +### Deep sleep mode wakeup from from serial interface +``` +echo enabled > /sys/class/tty/ttymxc0/power/wakeup && echo mem > /sys/power/state +# Device has to wake up after keypress on the serial console +``` + +## Python3 +### Python3 web certificates +This test ensures that certificates are installed on the system and openssl and python have access them. +``` +echo -e "import urllib.request\nprint(urllib.request.urlopen('https://www.google.com'))\n" | python3 +# Expectet output something like <http.client.HTTPResponse object at 0xb6095e38> +``` +### pip3 functionality +This test ensures that python 2 and python 3 on the system are complete enough to allow installation of additional packages via pip. +``` +pip3 install virtualenv +# Expected output something like: Successfully installed distlib-0.3.6 filelock-3.8.0 platformdirs-2.5.4 virtualenv-20.17.0 +``` + +## Qt5 +### OpenGl ES +``` +# Preperation +systemctl stop seco-show-demo + +qt5-opengles2-test +# When you touch the display, a rectancle should show up under the finger +``` +### Qt Kiosk Browser & Qt Virtual Keyboard +``` +# Preperation +systemctl stop seco-show-demo + +sed -i 's/"URL":.*$/"URL": "https:\/\/north.seco.com\/suchen?",/' /etc/qt-kiosk-browser.conf +qt-kiosk-browser /etc/qt-kiosk-browser.conf --no-sandbox +# You can verfiy the virtual keyboard functionality by clicking the search field and entering text +``` + +## RS232 +### RS232 #2 +Start a console on the second RS232 interface if present. +``` +setsid getty -L 115200 ttymxc1 vt100 +``` + +## RS485 +### RS485 Full Duplex +Connect two SECO-NE devices using an RS485 full duplex cable. +``` +# Start echo Server on device #1 +/opt/ltp/testcases/bin/rs485echo -n -e -s 115200 -b 64 +# Send messages from device #2 +/opt/ltp/testcases/bin/rs485echo -n -s 115200 -b 64 +``` +### RS485 Half Duplex +Connect two SECO-NE devices using an RS485 half duplex cable. +``` +# Start echo Server on device #1 +/opt/ltp/testcases/bin/rs485echo -e -s 115200 -b 64 +# Send messages from device #2 +/opt/ltp/testcases/bin/rs485echo -s 115200 -b 64 +``` + +## RTC +### RTC write +Disconnect all network interfaces. +``` +# Set date (02.01.2000) as system time and write it to RTC +date 0102000000 +hwclock --systohc + +# Read system time +date +# Read RTC +hwclock +# The result should look like: Sat Jan 2 00:00:00 2000 0.000000 seconds +``` + +## sconfig +### sconfig read +``` +sconfig +``` +### sconfig set value +At the moment sconfig values can not be modified. + +## SD-Card +### SD-Card read and write +Plug in a SD-Card with at least one partition in fat32 format. +``` +mount /dev/mmcblk1p1 /mnt/ +# Verify mount +mount | grep mmcblk1p1 +# Write +echo "Test data" > /mnt/testfile +# Read +cat /mnt/testfile +``` + +## SFTP +The SFTP server is running by default. +### SFTP connection +Connect to the device's SFTP server using the `sftp` command. +``` +sftp root@<device-ip> +``` + +## SSH +The SSH server is running by default. +### SSH connection +Connect to the device's SSH server using the `ssh` command. +``` +ssh root@<device-ip> +``` + +## Temperature Sensors +### Temperature read +For on-board sensors like LM75: +``` +cat /sys/class/hwmon/hwmon0/temp1_input +``` +SOC temperature/s: +``` +cat /sys/class/thermal/thermal_zone*/temp +``` + +## Touch +### fingerpaint +``` +# Preperation +systemctl stop seco-show-demo + +fingerpaint +``` +### fingerpaint rotated by 90 deg +``` +# Preperation +systemctl stop seco-show-demo + +sed -i 's/transform=.*$/transform=rotate-90/g' /etc/xdg/weston/weston.ini +systemctl restart weston +fingerpaint +``` + +## USB +### USB Host read and write +Plug in a USB-Stick with at least one partition in fat32 format. +``` +mount /dev/sda1 /mnt/ +# Verify mount +mount | grep sda1 +# Write +echo "Test data" > /mnt/testfile +# Read +cat /mnt/testfile +``` +### Serial console on USB OTG port (SANTARO, SANTOKA, SANTINO, SANTINO-LT) +Start a console on the USB OTG port. +``` +modprobe g_serial +setsid getty -L 115200 ttyGS0 vt100 +``` + ## Video playback +### MPEG2 playback +``` +# Preperation +systemctl stop seco-show-demo + +curl http://support.garz-fricke.com/projects/TestFiles/Videos/cc-BigBuckBunny-Trailer-800x448-mpeg2-stereo.mpg > /tmp/video +gst-play-1.0 /tmp/video +``` + +### MPEG4 ASP playback +``` +# Preperation +systemctl stop seco-show-demo + +curl http://support.garz-fricke.com/projects/TestFiles/Videos/cc-BigBuckBunny-Trailer-800x448-mpeg4-stereo.mp4 > /tmp/video +gst-play-1.0 /tmp/video +``` + +### MPEG4 AVC playback +``` +# Preperation +systemctl stop seco-show-demo + +curl http://support.garz-fricke.com/projects/TestFiles/Videos/cc-BigBuckBunny-Trailer-800x448-h264-stereo.mp4 > /tmp/video +gst-play-1.0 /tmp/video +``` + ### VP9 playback from qml ``` +# Preperation +systemctl stop seco-show-demo + qmlscene /opt/ltp/scripts/video_playback.qml ``` +## Watchdog +### Watchdog test +``` +/opt/ltp/testcases/bin/watchdog-test +``` +## WiFi +### Scan wireless networks (nmcli) +``` +nmcli dev wifi list +``` +### Connect to wireles network (nmcli) +``` +nmcli dev wifi connect <ssid> password "<password>" +```