From 8dcf8dda2a7da4f22e29769f7958f42827504e56 Mon Sep 17 00:00:00 2001 From: Qubot <1445788683@qq.com> Date: Thu, 6 Nov 2025 08:07:59 +0800 Subject: [PATCH] Initial commit for bpi-r4pro branch --- .vscode/settings.json | 3 + 26pin-script/26pin-script.sh | 186 ++++++++++++++++ 26pin-script/mt_gpio.sh | 67 ++++++ R4Pro产测增加功能.docx | Bin 0 -> 16091 bytes app_ft-script.sh | 270 +++++++++++++++++++++++ eeprom-script/eeprom-script.sh | 23 ++ emmc-script/emmc-script.sh | 30 +++ ethernet-script/ethernet-script.sh | 128 +++++++++++ fan-script/fan-script.sh | 54 +++++ key-script/key-script.sh | 77 +++++++ key-script/mt_gpio.sh | 67 ++++++ led-script/led-script.sh | 58 +++++ led-script/mt_gpio.sh | 67 ++++++ m2keybusb2-script/m2keybusb2-script.sh | 29 +++ m2keybusb2-script/mt_gpio.sh | 67 ++++++ m2keybusb3-script/m2keybusb3-script.sh | 29 +++ m2keybusb3-script/mt_gpio.sh | 67 ++++++ memory-script/led-offall.sh | 4 + memory-script/led-onall.sh | 4 + memory-script/memory-ageing-script.sh | 25 +++ memory-script/memory-script.sh | 39 ++++ memory-script/memsuck | Bin 0 -> 18104 bytes memory-script/mt_gpio.sh | 67 ++++++ minipcieusb-script/minipcieusb-script.sh | 29 +++ minipcieusb-script/mt_gpio.sh | 67 ++++++ minipciex2-script/minipciex2-script.sh | 48 ++++ minipciex2-script/mt_gpio.sh | 67 ++++++ nand-script/nand-script.sh | 29 +++ nvme-script/mt_gpio.sh | 67 ++++++ nvme-script/nvme-script.sh | 37 ++++ rtc-script/rtc-script.sh | 36 +++ usb20-script/mt_gpio.sh | 67 ++++++ usb20-script/usb20-script.sh | 72 ++++++ usb30-script/mt_gpio.sh | 67 ++++++ usb30-script/usb30-script.sh | 70 ++++++ usim-script/mt_gpio.sh | 67 ++++++ usim-script/usim-script.sh | 92 ++++++++ wifi-script/wifi-script.sh | 62 ++++++ 38 files changed, 2238 insertions(+) create mode 100644 .vscode/settings.json create mode 100644 26pin-script/26pin-script.sh create mode 100644 26pin-script/mt_gpio.sh create mode 100644 R4Pro产测增加功能.docx create mode 100644 app_ft-script.sh create mode 100644 eeprom-script/eeprom-script.sh create mode 100644 emmc-script/emmc-script.sh create mode 100644 ethernet-script/ethernet-script.sh create mode 100644 fan-script/fan-script.sh create mode 100644 key-script/key-script.sh create mode 100644 key-script/mt_gpio.sh create mode 100644 led-script/led-script.sh create mode 100644 led-script/mt_gpio.sh create mode 100644 m2keybusb2-script/m2keybusb2-script.sh create mode 100644 m2keybusb2-script/mt_gpio.sh create mode 100644 m2keybusb3-script/m2keybusb3-script.sh create mode 100644 m2keybusb3-script/mt_gpio.sh create mode 100644 memory-script/led-offall.sh create mode 100644 memory-script/led-onall.sh create mode 100644 memory-script/memory-ageing-script.sh create mode 100644 memory-script/memory-script.sh create mode 100644 memory-script/memsuck create mode 100644 memory-script/mt_gpio.sh create mode 100644 minipcieusb-script/minipcieusb-script.sh create mode 100644 minipcieusb-script/mt_gpio.sh create mode 100644 minipciex2-script/minipciex2-script.sh create mode 100644 minipciex2-script/mt_gpio.sh create mode 100644 nand-script/nand-script.sh create mode 100644 nvme-script/mt_gpio.sh create mode 100644 nvme-script/nvme-script.sh create mode 100644 rtc-script/rtc-script.sh create mode 100644 usb20-script/mt_gpio.sh create mode 100644 usb20-script/usb20-script.sh create mode 100644 usb30-script/mt_gpio.sh create mode 100644 usb30-script/usb30-script.sh create mode 100644 usim-script/mt_gpio.sh create mode 100644 usim-script/usim-script.sh create mode 100644 wifi-script/wifi-script.sh diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..ad04ddc --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "idf.pythonInstallPath": "C:\\Users\\Qubot\\.espressif\\tools\\idf-python\\3.11.2\\python.exe" +} \ No newline at end of file diff --git a/26pin-script/26pin-script.sh b/26pin-script/26pin-script.sh new file mode 100644 index 0000000..3c68359 --- /dev/null +++ b/26pin-script/26pin-script.sh @@ -0,0 +1,186 @@ +#/bin/bash + +PIN26_PIN03=18 +PIN26_PIN05=17 +PIN26_PIN07=62 +PIN26_PIN11=81 +PIN26_PIN13=80 +PIN26_PIN15=50 +PIN26_PIN19=30 +PIN26_PIN21=29 +PIN26_PIN23=31 + +PIN26_PIN08=59 ## invalid ## +PIN26_PIN10=58 ## invalid ## +PIN26_PIN12=51 +PIN26_PIN16=61 ## invalid ## +PIN26_PIN18=60 ## invalid ## +PIN26_PIN22=53 +PIN26_PIN24=28 +PIN26_PIN26=52 + +RET=0 +sleep 2 + +echo " " +echo " " +echo " " +echo "#########################################################################" +echo "########################## 26PIN Testing Start ##########################" + +source `pwd`/mt_gpio.sh + +############################################################################# +if [ ! -f /sys/class/gpio/gpio530/direction ]; then + mt_gpio_export ${PIN26_PIN03} #Enable PIN26_PIN03 512 + 18 = 530 +fi + +if [ ! -f /sys/class/gpio/gpio529/direction ]; then + mt_gpio_export ${PIN26_PIN05} #Enable PIN26_PIN05 512 + 17 = 529 +fi + +if [ ! -f /sys/class/gpio/gpio574/direction ]; then + mt_gpio_export ${PIN26_PIN07} #Enable PIN26_PIN07 512 + 62 = 574 +fi + +if [ ! -f /sys/class/gpio/gpio593/direction ]; then + mt_gpio_export ${PIN26_PIN11} #Enable PIN26_PIN11 512 + 81 = 593 +fi + +if [ ! -f /sys/class/gpio/gpio592/direction ]; then + mt_gpio_export ${PIN26_PIN13} #Enable PIN26_PIN13 512 + 80 = 592 +fi + +if [ ! -f /sys/class/gpio/gpio562/direction ]; then + mt_gpio_export ${PIN26_PIN15} #Enable PIN26_PIN15 512 + 50 = 562 +fi + +if [ ! -f /sys/class/gpio/gpio542/direction ]; then + mt_gpio_export ${PIN26_PIN19} #Enable PIN26_PIN19 512 + 30 = 542 +fi + +if [ ! -f /sys/class/gpio/gpio541/direction ]; then + mt_gpio_export ${PIN26_PIN21} #Enable PIN26_PIN21 512 + 29 = 541 +fi + +if [ ! -f /sys/class/gpio/gpio543/direction ]; then + mt_gpio_export ${PIN26_PIN23} #Enable PIN26_PIN23 512 + 31 = 543 +fi + +################################################################################ +if [ ! -f /sys/class/gpio/gpio563/direction ]; then + mt_gpio_export ${PIN26_PIN12} #Enable PIN26_PIN12 512 + 51 = 563 +fi + +if [ ! -f /sys/class/gpio/gpio565/direction ]; then + mt_gpio_export ${PIN26_PIN22} #Enable PIN26_PIN22 512 + 53 = 565 +fi + +if [ ! -f /sys/class/gpio/gpio540/direction ]; then + mt_gpio_export ${PIN26_PIN24} #Enable PIN26_PIN24 512 + 28 = 540 +fi + +if [ ! -f /sys/class/gpio/gpio564/direction ]; then + mt_gpio_export ${PIN26_PIN26} #Enable PIN26_PIN26 512 + 52 = 564 +fi + +################################################################################ +mt_gpio_dir ${PIN26_PIN03} out +mt_gpio_dir ${PIN26_PIN05} out +mt_gpio_dir ${PIN26_PIN07} out +mt_gpio_dir ${PIN26_PIN11} out +mt_gpio_dir ${PIN26_PIN13} out +mt_gpio_dir ${PIN26_PIN15} out +mt_gpio_dir ${PIN26_PIN19} out +mt_gpio_dir ${PIN26_PIN21} out +mt_gpio_dir ${PIN26_PIN23} out + +mt_gpio_dir ${PIN26_PIN12} out +mt_gpio_dir ${PIN26_PIN22} out +mt_gpio_dir ${PIN26_PIN24} out +mt_gpio_dir ${PIN26_PIN26} out + +sleep 1 + +echo "### All 26PIN LED turn on about 10s ###" +mt_gpio_out ${PIN26_PIN03} 1 +mt_gpio_out ${PIN26_PIN05} 1 +mt_gpio_out ${PIN26_PIN07} 1 +mt_gpio_out ${PIN26_PIN11} 1 +mt_gpio_out ${PIN26_PIN13} 1 +mt_gpio_out ${PIN26_PIN15} 1 +mt_gpio_out ${PIN26_PIN19} 1 +mt_gpio_out ${PIN26_PIN21} 1 +mt_gpio_out ${PIN26_PIN23} 1 + +mt_gpio_out ${PIN26_PIN12} 1 +mt_gpio_out ${PIN26_PIN22} 1 +mt_gpio_out ${PIN26_PIN24} 1 +mt_gpio_out ${PIN26_PIN26} 1 +sleep 10 + +echo "### All 26PIN LED turn off about 5s ###" +mt_gpio_out ${PIN26_PIN03} 0 +mt_gpio_out ${PIN26_PIN05} 0 +mt_gpio_out ${PIN26_PIN07} 0 +mt_gpio_out ${PIN26_PIN11} 0 +mt_gpio_out ${PIN26_PIN13} 0 +mt_gpio_out ${PIN26_PIN15} 0 +mt_gpio_out ${PIN26_PIN19} 0 +mt_gpio_out ${PIN26_PIN21} 0 +mt_gpio_out ${PIN26_PIN23} 0 + +mt_gpio_out ${PIN26_PIN12} 0 +mt_gpio_out ${PIN26_PIN22} 0 +mt_gpio_out ${PIN26_PIN24} 0 +mt_gpio_out ${PIN26_PIN26} 0 +sleep 5 + +echo "### All 26PIN lED turn on ###" +mt_gpio_out ${PIN26_PIN03} 1 +mt_gpio_out ${PIN26_PIN05} 1 +mt_gpio_out ${PIN26_PIN07} 1 +mt_gpio_out ${PIN26_PIN11} 1 +mt_gpio_out ${PIN26_PIN13} 1 +mt_gpio_out ${PIN26_PIN15} 1 +mt_gpio_out ${PIN26_PIN19} 1 +mt_gpio_out ${PIN26_PIN21} 1 +mt_gpio_out ${PIN26_PIN23} 1 + +mt_gpio_out ${PIN26_PIN12} 1 +mt_gpio_out ${PIN26_PIN22} 1 +mt_gpio_out ${PIN26_PIN24} 1 +mt_gpio_out ${PIN26_PIN26} 1 + +while true +do + read -t20 -s -n1 -p "### Please confirm if All 26PIN LED can work fine, enter y or n. "y" is good, "n" is for bad. ###" keypress + if [ $? -eq 0 ]; then + if [ ${keypress} == 'y' ]; then + echo " " + echo " " + echo "### All 26PIN LED can work fine, All 26PIN LED feature is good ### " + break + fi + + if [ ${keypress} == 'n' ]; then + RET=1 + echo " " + echo " " + echo "Error Notice: All 26PIN LED can not work fine, All 26PIN LED feature is bad" + break + fi + fi + + echo " " +done + +echo "######################################################################################" +echo " " +echo " " +echo " " + +sleep 2 + +return ${RET} + diff --git a/26pin-script/mt_gpio.sh b/26pin-script/mt_gpio.sh new file mode 100644 index 0000000..7ddf73e --- /dev/null +++ b/26pin-script/mt_gpio.sh @@ -0,0 +1,67 @@ + +SYS_FILE=/sys/class/gpio + +mt_gpio_export() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + + if [ ! -f ${SYS_FILE}/export ]; then + echo "${SYS_FILE}/export file is not present" + exit 1 + fi + + echo "${pin}" > ${SYS_FILE}/export + + return 0 +} + +mt_gpio_dir() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + dir=$2 + + if [ ! -f ${SYS_FILE}/gpio${pin}/direction ]; then + echo "${SYS_FILE}/gpio${pin}/direction is not present" + exit 1 + fi + + echo "${dir}" > ${SYS_FILE}/gpio${pin}/direction + + return 0 +} + +mt_gpio_out() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + out=$2 + + if [ ! -f ${SYS_FILE}/gpio${pin}/value ]; then + echo "${SYS_FILE}/gpio${pin}/value is not present" + exit 1 + fi + + echo "${out}" > ${SYS_FILE}/gpio${pin}/value + + return 0 +} + +mt_gpio_in() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + + if [ ! -f ${SYS_FILE}/gpio${pin}/value ]; then + echo "${SYS_FILE}/gpio${pin}/value is not present" + exit 1 + fi + + result=`cat ${SYS_FILE}/gpio${pin}/value` + if [ ${result} == "0" ] ; then + return 0 + else + return 1 + fi +} diff --git a/R4Pro产测增加功能.docx b/R4Pro产测增加功能.docx new file mode 100644 index 0000000000000000000000000000000000000000..e6862b5fd24335b426cb35d7ca8dddad4401fcab GIT binary patch literal 16091 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 YB3MBh;+?$!0QmPG$UBGj^8Qx)fAcRUng9R* literal 0 HcmV?d00001 diff --git a/app_ft-script.sh b/app_ft-script.sh new file mode 100644 index 0000000..eca673f --- /dev/null +++ b/app_ft-script.sh @@ -0,0 +1,270 @@ +#/bin/bash + +### This tool is for BPI-R4PRO 8X function test in manufacturer ### +RET=0 +PREFIX=`pwd`/ +DEUBGFILE=/var/run/r4pro-8x-ft-script.log + +AUTOMATIC_CASE_NUM=0 +MANUAL_CASE_NUM=0 +CASE_NUM=0 +QUIT=0 + +echo " " +echo " " +echo " " +echo "######################################################################################" + +echo "####################### BPI-R4PRO-8X Function Testing Start ########################" +### Sets QUIT variable so script will finish. ### +quit() +{ + QUIT=$1 +} + +### Sets ALL variable so script will run all test cases. ### +run_all_cases() +{ + ALL="1" +} + +### Run Function Test Case Script ### +run_script() +{ + eval script_name=$1 + eval script_file="${script_name}.sh" + eval args=$2 + + if [ ${script_name} == "run_all_cases" ]; then + ${script_name} ${args} + return 0 + fi + + if [ ${script_name} == "quit" ]; then + ${script_name} ${args} + return 0; + fi + + cd ${script_name} > /dev/null + if [ -x ${script_file} ]; then + if [ "$ALL" == 1 ]; then + #./${script_file} >> ${DEUBGFILE} 2>&1 + set -o pipefail + ./${script_file} | tee -a ${DEUBGFILE} + SRET=$? + else + ./${script_file} + SRET=$? + fi + + if [ ${SRET} == 0 ] ; then + cd - > /dev/null + return 0 + else + cd - > /dev/null + return 1 + fi + else + cd - > /dev/null + echo "${script_file} is not available, please install ${script_file} scripts" + exit 1 + fi + + cd - > /dev/null + return 1 +} + +### Options for automaic test cases ### +step_automatic_func() +{ + TITLE="Automatic Test Cases" + AUTOMATIC_CASE_NUM=10 + CASE_NUM=10 + + TEXT_1="Memory_Test_Case" + FUNC_1="memory-script" + + TEXT_2="WIFI_Test_Case" + FUNC_2="wifi-script" + + TEXT_3="miniPCIeX2_Test_Case" + FUNC_3="minipciex2-script" + + TEXT_4="miniPCIeUSB_Test_Case" + FUNC_4="minipcieusb-script" + + TEXT_5="NAND_Test_Case" + FUNC_5="nand-script" + + TEXT_6="NVME_Test_Case" + FUNC_6="nvme-script" + + TEXT_7="EMMC_Test_sase" + FUNC_7="emmc-script" + + TEXT_8="RTC_Test_sase" + FUNC_8="rtc-script" + + TEXT_9="EEPROM_Test_sase" + FUNC_9="eeprom-script" + + TEXT_10="USIM_Test_sase" + FUNC_10="usim-script" +} + +### Options for manual test cases ### +step_manual_func() +{ + TITLE="Manual Test Cases" + MANUAL_CASE_NUM=9 + CASE_NUM=9 + + TEXT_1="FAN_Test_Case" + FUNC_1="fan-script" + + TEXT_2="LED_Test_Case" + FUNC_2="led-script" + + TEXT_3="KEY_Test_Case" + FUNC_3="key-script" + + TEXT_4="USB20_Test_Case" + FUNC_4="usb20-script" + + TEXT_5="USB30_Test_Case" + FUNC_5="usb30-script" + + TEXT_6="Ethernet_Test_Case" + FUNC_6="ethernet-script" + + TEXT_7="M2KeyB_USB2_Test_Case" + FUNC_7="m2keybusb2-script" + + TEXT_8="M2KeyB_USB3_Test_Case" + FUNC_8="m2keybusb3-script" + + TEXT_9="26PIN_Test_Case" + FUNC_9="26pin-script" +} + +STEPS_1="step_automatic_func" +STEPS_2="step_manual_func" + +rm -rf ${DEUBGFILE} +touch ${DEUBGFILE} +echo 0 > /proc/sys/kernel/printk + + +while [ "$QUIT" == "0" ]; do + OPTION_NUM=1 + ALL="0" + + echo "[$OPTION_NUM] run all cases" + eval OPTIONS_${OPTION_NUM}="run_all_cases" + eval OPTIONS_TXT_${OPTION_NUM}="All_Test_Cases" + let OPTION_NUM+=1 + + for s in `seq 2` + do + STEPS_VAR="STEPS_${s}" + eval STEPS_VAR=\$${STEPS_VAR} + ${STEPS_VAR} + + for i in `seq ${CASE_NUM}` + do + TEXT_VAR="TEXT_${i}" + FUNC_VAR="FUNC_${i}" + eval TEXT_VAR=\$${TEXT_VAR} + eval FUNC_VAR=\$${FUNC_VAR} + echo "[$OPTION_NUM] ${TEXT_VAR}" + eval OPTIONS_${OPTION_NUM}=${FUNC_VAR} + eval OPTIONS_TXT_${OPTION_NUM}=${TEXT_VAR} + let OPTION_NUM+=1 + done + + #echo "" + done + + echo "[$OPTION_NUM] Exit Script" + eval OPTIONS_${OPTION_NUM}="quit" + eval OPTIONS_TXT_${OPTION_NUM}="Quit" + + echo "" + echo -n "Option: " + read our_entry + echo "" + + if [ ${our_entry} -lt 1 ]; then + echo "Wrong Selecttion Number" + continue + else + if [ ${our_entry} -gt ${OPTION_NUM} ]; then + echo "Wrong Selecttion Number" + continue + fi + fi + + OPTIONS_VAR="OPTIONS_${our_entry}" + eval OPTIONS_VAR=\$${OPTIONS_VAR} + run_script ${OPTIONS_VAR} ${our_entry} + + index=1 + if [ "$ALL" == "1" ] ; then + for case_n in `seq ${OPTION_NUM}` + do + echo "---------------------------------------" + OPTIONS_VAR="OPTIONS_${case_n}" + OPTIONS_TXT_VAR="OPTIONS_TXT_${case_n}" + eval OPTIONS_VAR=\$${OPTIONS_VAR} + eval OPTIONS_TXT_VAR=\$${OPTIONS_TXT_VAR} + + if [ ${OPTIONS_VAR} == "quit" ]; then + quit + break + fi + + if [ ${OPTIONS_VAR} == "run_all_cases" ]; then + continue + fi + + eval TEST_ITEM_${index}=${OPTIONS_TXT_VAR} + run_script ${OPTIONS_VAR} ${case_n} + eval TEST_RESULT_${index}=$? + let index+=1 + done + + let index-=1 + echo "============================================" + echo "Test Result" + echo "--------------------------------------------" + echo " Item Result " + echo "--------------------------------------------" + for i in `seq ${index}` + do + TEST_ITEM_VAR="TEST_ITEM_${i}" + TEST_RESULT_VAR="TEST_RESULT_${i}" + eval TEST_ITEM_VAR=\$${TEST_ITEM_VAR} + eval TEST_RESULT_VAR=\$${TEST_RESULT_VAR} + + echo -n "${TEST_ITEM_VAR} " | awk -F ',' '{printf("%-36s", $1)}' + if [ ${TEST_RESULT_VAR} == 0 ]; then + echo "Pass" + else + echo "Fail" + fi + done + fi + + if [ "$QUIT" == "0" ] ; then + echo + fi + +done + +echo "######################################################################################" +echo " " +echo " " +echo " " + +return ${RET} + diff --git a/eeprom-script/eeprom-script.sh b/eeprom-script/eeprom-script.sh new file mode 100644 index 0000000..7eff399 --- /dev/null +++ b/eeprom-script/eeprom-script.sh @@ -0,0 +1,23 @@ +#/bin/bash + +SYS_FILE=/sys/bus/i2c/devices +RET=0 + +echo " " +echo " " +echo " " +echo "######################################################################################" +echo "################### BPI-R4PRO EEPROM 0x57 Testing Start ###########################" + +if [ ! -f ${SYS_FILE}/i2c-3/3-0057/eeprom ]; then + echo "### BPI-R4PRO eeprom 0x57 can't work fine ###" + RET=1 +else + echo "### BPI-R4PROe eeprom 0x57 can work fine ###" +fi + +echo "######################################################################################" +sleep 1 + +return ${RET} + diff --git a/emmc-script/emmc-script.sh b/emmc-script/emmc-script.sh new file mode 100644 index 0000000..9e3eb77 --- /dev/null +++ b/emmc-script/emmc-script.sh @@ -0,0 +1,30 @@ +#/bin/bash + +RET=0 + +sleep 2 + +echo " " +echo " " +echo " " +echo "######################################################################################" + +echo "########################## EMMC Deivce Testing Start #################################" + +dd if=/dev/mmcblk0boot0 of=/tmp/.emmc_test.img bs=1M count=1 +if [ $? == 0 ]; then + echo "### Access the EMMC Device Successfully ###" +else + RET=1 + echo "Error Notice: Access the EMMC Device failure ###" +fi + +echo "######################################################################################" +echo " " +echo " " +echo " " + +sleep 2 + +return ${RET} + diff --git a/ethernet-script/ethernet-script.sh b/ethernet-script/ethernet-script.sh new file mode 100644 index 0000000..523c6a9 --- /dev/null +++ b/ethernet-script/ethernet-script.sh @@ -0,0 +1,128 @@ +#/bin/bash + +RET=0 + +sleep 2 + +echo " " +echo " " +echo " " +echo "######################################################################################" + +ifconfig eth0 up +ifconfig eth1 up +ifconfig eth2 up +ifconfig br-lan down +ifconfig br-wan down +brctl delbr br-lan +brctl delbr br-wan +sleep 2 + +echo "########################## Network ethernet Testing Start ##########################" + +echo "----------------------------------------------------------------------------------------" +while true +do + read -t20 -s -n1 -p "### Please confirm if all 1G, 2.5G 10G RJ45 cable insert one right position, then enter any key to continue. ###" keypress + if [ $? -eq 0 ]; then + echo " " + break + fi + echo " " +done + +echo "----------------------------------------------------------------------------------------" +sleep 3 +echo "### Ethernet 10G WAN Testing ####" +udhcpc -t 5 -n -i eth1 +if [ $? == 0 ]; then + echo "### Ethernet 10G WAN DHCP got ip address successfully ###" +else + RET=1 + echo "Error Notice: Ethernet 10G WAN DHCP can not got ip address failure" +fi + +echo "----------------------------------------------------------------------------------------" +sleep 3 +echo "### Ethernet 10G LAN ETH6 Testing ####" +udhcpc -t 5 -n -i mxl_lan5 +if [ $? == 0 ]; then + echo "### Ethernet 10G LAN ETH6 DHCP got ip address successfully ###" +else + RET=1 + echo "Error Notice: Ethernet 10G LAN ETH6 DHCP can not got ip address failure" +fi + +echo "----------------------------------------------------------------------------------------" +sleep 3 +echo "### Ethernet 2.5G RJ45 LAN ETH1 Testing ####" +udhcpc -t 5 -n -i mxl_lan0 +if [ $? == 0 ]; then + echo "### Ethernet 2.5G RJ45 LAN ETH1 DHCP got ip address successfully ###" +else + RET=1 + echo "Error Notice: Ethernet 2.5G RJ45 LAN ETH1 DHCP can not got ip address failure" +fi + +echo "----------------------------------------------------------------------------------------" +sleep 3 +echo "### Ethernet 2.5G RJ45 LAN ETH2 Testing ####" +udhcpc -t 5 -n -i mxl_lan1 +if [ $? == 0 ]; then + echo "### Ethernet 2.%G RJ45 LAN ETH2 DHCP got ip address successfully ###" +else + RET=1 + echo "Error Notice: Ethernet 2.5G RJ45 LAN ETH2 DHCP can not got ip address failure" +fi + +echo "----------------------------------------------------------------------------------------" +sleep 3 +echo "### Ethernet 2.5G RJ45 LAN ETH3 Testing ####" +udhcpc -t 5 -n -i mxl_lan2 +if [ $? == 0 ]; then + echo "### Ethernet 2.5G RJ45 LAN ETH3 DHCP got ip address successfully ###" +else + RET=1 + echo "Error Notice: Ethernet 2.5G RJ45 LAN ETH3 DHCP can not got ip address failure" +fi + +echo "----------------------------------------------------------------------------------------" +sleep 3 +echo "### Ethernet 2.5G RJ45 LAN ETH4 Testing ####" +udhcpc -t 5 -n -i mxl_lan3 +if [ $? == 0 ]; then + echo "### Ethernet 2.5G RJ45 LAN ETH4 DHCP got ip address successfully ###" +else + RET=1 + echo "Error Notice: Ethernet 2.5G RJ45 LAN ETH4 DHCP can not got ip address failure" +fi +echo "----------------------------------------------------------------------------------------" +sleep 3 +echo "### Ethernet 1G RJ45 LAN0 ETH5 Testing ####" +udhcpc -t 5 -n -i lan0 +if [ $? == 0 ]; then + echo "### Ethernet 1G RJ45 LAN ETH5 DHCP got ip address successfully ###" +else + RET=1 + echo "Error Notice: Ethernet 1G RJ45 LAN ETH5 DHCP can not got ip address failure" +fi +echo "----------------------------------------------------------------------------------------" +sleep 3 +echo "### Ethernet 1G FPC LAN3 Testing ####" +udhcpc -t 5 -n -i lan3 +if [ $? == 0 ]; then + echo "### Ethernet 1G FPC LAN3 DHCP got ip address successfully ###" +else + RET=1 + echo "Error Notice: Ethernet 1G FPC LAN3 DHCP can not got ip address failure" +fi + +echo "######################################################################################" +echo " " +echo " " +echo " " + +sleep 2 + +return ${RET} + diff --git a/fan-script/fan-script.sh b/fan-script/fan-script.sh new file mode 100644 index 0000000..b509be8 --- /dev/null +++ b/fan-script/fan-script.sh @@ -0,0 +1,54 @@ +#/bin/bash + +RET=0 +sleep 2 + +echo " " +echo " " +echo " " +echo "######################################################################################" +echo "######################## BPI-R4PRO FAN PWM Testing Start ########################" + +echo "### Speed down the FAN slow about 5s by PWM0 ###" +echo 0 > /sys/devices/platform/pwm-fan/hwmon/hwmon4/pwm1 2> /dev/null +sleep 5 + +echo "### Speed up the FAN fast about 10s by PWM0 ###" +echo 255 > /sys/devices/platform/pwm-fan/hwmon/hwmon4/pwm1 2> /dev/null +sleep 10 + +echo "### Speed down the FAN slow by PWM0 completely ###" +echo 0 > /sys/devices/platform/pwm-fan/hwmon/hwmon4/pwm1 2> /dev/null + +while true +do + read -t20 -s -n1 -p "### Please confirm if the FAN can work fine, enter y or n. "y" is good, "n" is for bad. ###" keypress + if [ $? -eq 0 ]; then + if [ ${keypress} == 'y' ]; then + echo " " + echo " " + echo "### FAN can work fine, FAN feature is good ### " + break + fi + + if [ ${keypress} == 'n' ]; then + RET=1 + echo " " + echo " " + echo "Error Notice: FAN can not work fine, FAN feature is bad" + break + fi + fi + + echo " " +done + +echo "######################################################################################" +echo " " +echo " " +echo " " + +sleep 2 + +exit ${RET} + diff --git a/key-script/key-script.sh b/key-script/key-script.sh new file mode 100644 index 0000000..a6ee2f4 --- /dev/null +++ b/key-script/key-script.sh @@ -0,0 +1,77 @@ +#/bin/bash + +RET=0 +KEY_GPIO_WPS=14 +KEY_GPIO_RST=13 + +sleep 2 + +echo " " +echo " " +echo " " +echo "######################################################################################" + +source `pwd`/mt_gpio.sh + +echo "########################## KEY Testing Start ##########################" + +if [ ! -f /sys/class/gpio/gpio526/direction ]; then + mt_gpio_export ${KEY_GPIO_WPS} #Enable WPS 512 + 14 = 526 +fi + +if [ ! -f /sys/class/gpio/gpio525/direction ]; then + mt_gpio_export ${KEY_GPIO_RST} #Enable RESET 512 + 13 = 525 +fi + +mt_gpio_dir ${KEY_GPIO_WPS} in +mt_gpio_dir ${KEY_GPIO_RST} in + +echo -n "Please Press one Key about WPS Key of GPIO_WPS GPIO0 about 20s ......" +i=0 +while true; do + mt_gpio_in ${KEY_GPIO_WPS} + if [ $? == 0 ]; then + echo "### GPIO_WPS GPIO14 Key is in low level, Key is available ###" + break + else + echo "waiting 1 second......" + sleep 1 + fi + + let i=i+1 + if [ $i -ge 20 ]; then + echo " ### 20s Wait time is over, it can not detect the key ###" + RET=1 + break + fi +done + +echo -n "Please Press one Key about RESET Key of GPIO_RST GPIO13 about 20s ......" +i=0 +while true; do + mt_gpio_in ${KEY_GPIO_RST} + if [ $? == 0 ]; then + echo "### GPIO_RST GPIO13 Key is in low level, Key is available ###" + break + else + echo "waiting 1 second......" + sleep 1 + fi + + let i=i+1 + if [ $i -ge 20 ]; then + echo " ### 20s Wait time is over, it can not detect the key ###" + RET=1 + break + fi +done + +echo "######################################################################################" +echo " " +echo " " +echo " " + +sleep 2 + +return ${RET} + diff --git a/key-script/mt_gpio.sh b/key-script/mt_gpio.sh new file mode 100644 index 0000000..7ddf73e --- /dev/null +++ b/key-script/mt_gpio.sh @@ -0,0 +1,67 @@ + +SYS_FILE=/sys/class/gpio + +mt_gpio_export() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + + if [ ! -f ${SYS_FILE}/export ]; then + echo "${SYS_FILE}/export file is not present" + exit 1 + fi + + echo "${pin}" > ${SYS_FILE}/export + + return 0 +} + +mt_gpio_dir() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + dir=$2 + + if [ ! -f ${SYS_FILE}/gpio${pin}/direction ]; then + echo "${SYS_FILE}/gpio${pin}/direction is not present" + exit 1 + fi + + echo "${dir}" > ${SYS_FILE}/gpio${pin}/direction + + return 0 +} + +mt_gpio_out() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + out=$2 + + if [ ! -f ${SYS_FILE}/gpio${pin}/value ]; then + echo "${SYS_FILE}/gpio${pin}/value is not present" + exit 1 + fi + + echo "${out}" > ${SYS_FILE}/gpio${pin}/value + + return 0 +} + +mt_gpio_in() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + + if [ ! -f ${SYS_FILE}/gpio${pin}/value ]; then + echo "${SYS_FILE}/gpio${pin}/value is not present" + exit 1 + fi + + result=`cat ${SYS_FILE}/gpio${pin}/value` + if [ ${result} == "0" ] ; then + return 0 + else + return 1 + fi +} diff --git a/led-script/led-script.sh b/led-script/led-script.sh new file mode 100644 index 0000000..1e672bb --- /dev/null +++ b/led-script/led-script.sh @@ -0,0 +1,58 @@ +#/bin/bash + +RET=0 + +sleep 2 + +echo " " +echo " " +echo " " +echo "#######################################################################" +echo "######################## LED Testing Start ##########################" + +echo "### RED,BLUE LED turn on about 10s ###" +echo 1 > /sys/class/leds/red:/brightness +echo 1 > /sys/class/leds/blue:/brightness +sleep 10 + +echo "### RED,BLUE LED turn off about 5s ###" +echo 0 > /sys/class/leds/red:/brightness +echo 0 > /sys/class/leds/blue:/brightness +sleep 5 + +echo "### RED,BLUE LED turn on ###" +echo 1 > /sys/class/leds/red:/brightness +echo 1 > /sys/class/leds/blue:/brightness + +while true +do + read -t20 -s -n1 -p "### Please confirm if the LED can work fine, enter y or n. "y" is good, "n" is for bad. ###" keypress + if [ $? -eq 0 ]; then + if [ ${keypress} == 'y' ]; then + echo " " + echo " " + echo "### LED can work fine, LED feature is good ### " + break + fi + + if [ ${keypress} == 'n' ]; then + RET=1 + echo " " + echo " " + echo "Error Notice: LED can not work fine, LED feature is bad" + break + fi + fi + + echo " " +done + +echo "######################################################################################" +echo " " +echo " " +echo " " + +sleep 2 + +return ${RET} + diff --git a/led-script/mt_gpio.sh b/led-script/mt_gpio.sh new file mode 100644 index 0000000..7ddf73e --- /dev/null +++ b/led-script/mt_gpio.sh @@ -0,0 +1,67 @@ + +SYS_FILE=/sys/class/gpio + +mt_gpio_export() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + + if [ ! -f ${SYS_FILE}/export ]; then + echo "${SYS_FILE}/export file is not present" + exit 1 + fi + + echo "${pin}" > ${SYS_FILE}/export + + return 0 +} + +mt_gpio_dir() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + dir=$2 + + if [ ! -f ${SYS_FILE}/gpio${pin}/direction ]; then + echo "${SYS_FILE}/gpio${pin}/direction is not present" + exit 1 + fi + + echo "${dir}" > ${SYS_FILE}/gpio${pin}/direction + + return 0 +} + +mt_gpio_out() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + out=$2 + + if [ ! -f ${SYS_FILE}/gpio${pin}/value ]; then + echo "${SYS_FILE}/gpio${pin}/value is not present" + exit 1 + fi + + echo "${out}" > ${SYS_FILE}/gpio${pin}/value + + return 0 +} + +mt_gpio_in() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + + if [ ! -f ${SYS_FILE}/gpio${pin}/value ]; then + echo "${SYS_FILE}/gpio${pin}/value is not present" + exit 1 + fi + + result=`cat ${SYS_FILE}/gpio${pin}/value` + if [ ${result} == "0" ] ; then + return 0 + else + return 1 + fi +} diff --git a/m2keybusb2-script/m2keybusb2-script.sh b/m2keybusb2-script/m2keybusb2-script.sh new file mode 100644 index 0000000..833caa3 --- /dev/null +++ b/m2keybusb2-script/m2keybusb2-script.sh @@ -0,0 +1,29 @@ +#/bin/bash + +RET=0 + +sleep 2 + +echo " " +echo " " +echo " " +echo "######################################################################################" +echo "########################### M.2 KeyB USB2.0 Testing Start ##########################" + +result=`lsusb | grep "2c7c:0125" | wc -l` +if [ ${result} -eq 3 ]; then + echo "### Find three EM05 4G Modules from three M.2 KeyB slots ###" +else + echo "Error Notice: Can not Find three EM05 4G Modules from three M.2 KeyB slots" + RET=1 +fi + +echo "######################################################################################" +echo " " +echo " " +echo " " + +sleep 2 + +return ${RET} + diff --git a/m2keybusb2-script/mt_gpio.sh b/m2keybusb2-script/mt_gpio.sh new file mode 100644 index 0000000..7ddf73e --- /dev/null +++ b/m2keybusb2-script/mt_gpio.sh @@ -0,0 +1,67 @@ + +SYS_FILE=/sys/class/gpio + +mt_gpio_export() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + + if [ ! -f ${SYS_FILE}/export ]; then + echo "${SYS_FILE}/export file is not present" + exit 1 + fi + + echo "${pin}" > ${SYS_FILE}/export + + return 0 +} + +mt_gpio_dir() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + dir=$2 + + if [ ! -f ${SYS_FILE}/gpio${pin}/direction ]; then + echo "${SYS_FILE}/gpio${pin}/direction is not present" + exit 1 + fi + + echo "${dir}" > ${SYS_FILE}/gpio${pin}/direction + + return 0 +} + +mt_gpio_out() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + out=$2 + + if [ ! -f ${SYS_FILE}/gpio${pin}/value ]; then + echo "${SYS_FILE}/gpio${pin}/value is not present" + exit 1 + fi + + echo "${out}" > ${SYS_FILE}/gpio${pin}/value + + return 0 +} + +mt_gpio_in() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + + if [ ! -f ${SYS_FILE}/gpio${pin}/value ]; then + echo "${SYS_FILE}/gpio${pin}/value is not present" + exit 1 + fi + + result=`cat ${SYS_FILE}/gpio${pin}/value` + if [ ${result} == "0" ] ; then + return 0 + else + return 1 + fi +} diff --git a/m2keybusb3-script/m2keybusb3-script.sh b/m2keybusb3-script/m2keybusb3-script.sh new file mode 100644 index 0000000..bdff046 --- /dev/null +++ b/m2keybusb3-script/m2keybusb3-script.sh @@ -0,0 +1,29 @@ +#/bin/bash + +RET=0 + +sleep 2 + +echo " " +echo " " +echo " " +echo "######################################################################################" +echo "###################### Three M.2 KeyB USB3.0 Slots Testing Start #####################" + +result=`lsusb | grep "2c7c:0900" | wc -l` +if [ ${result} -eq 3 ]; then + echo "### Find three RM500U-CN 5G Modules from three M.2 KeyB slots ###" +else + echo "Error Notice: Can not Find three RM500U-CN 5G Modules from three M.2 KeyB slots" + RET=1 +fi + +echo "######################################################################################" +echo " " +echo " " +echo " " + +sleep 2 + +return ${RET} + diff --git a/m2keybusb3-script/mt_gpio.sh b/m2keybusb3-script/mt_gpio.sh new file mode 100644 index 0000000..7ddf73e --- /dev/null +++ b/m2keybusb3-script/mt_gpio.sh @@ -0,0 +1,67 @@ + +SYS_FILE=/sys/class/gpio + +mt_gpio_export() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + + if [ ! -f ${SYS_FILE}/export ]; then + echo "${SYS_FILE}/export file is not present" + exit 1 + fi + + echo "${pin}" > ${SYS_FILE}/export + + return 0 +} + +mt_gpio_dir() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + dir=$2 + + if [ ! -f ${SYS_FILE}/gpio${pin}/direction ]; then + echo "${SYS_FILE}/gpio${pin}/direction is not present" + exit 1 + fi + + echo "${dir}" > ${SYS_FILE}/gpio${pin}/direction + + return 0 +} + +mt_gpio_out() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + out=$2 + + if [ ! -f ${SYS_FILE}/gpio${pin}/value ]; then + echo "${SYS_FILE}/gpio${pin}/value is not present" + exit 1 + fi + + echo "${out}" > ${SYS_FILE}/gpio${pin}/value + + return 0 +} + +mt_gpio_in() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + + if [ ! -f ${SYS_FILE}/gpio${pin}/value ]; then + echo "${SYS_FILE}/gpio${pin}/value is not present" + exit 1 + fi + + result=`cat ${SYS_FILE}/gpio${pin}/value` + if [ ${result} == "0" ] ; then + return 0 + else + return 1 + fi +} diff --git a/memory-script/led-offall.sh b/memory-script/led-offall.sh new file mode 100644 index 0000000..0557c61 --- /dev/null +++ b/memory-script/led-offall.sh @@ -0,0 +1,4 @@ +#/bin/bash + +echo 0 > /sys/class/leds/red:/brightness +echo 0 > /sys/class/leds/blue:/brightness diff --git a/memory-script/led-onall.sh b/memory-script/led-onall.sh new file mode 100644 index 0000000..caf5707 --- /dev/null +++ b/memory-script/led-onall.sh @@ -0,0 +1,4 @@ +#/bin/bash + +echo 1 > /sys/class/leds/red:/brightness +echo 1 > /sys/class/leds/blue:/brightness diff --git a/memory-script/memory-ageing-script.sh b/memory-script/memory-ageing-script.sh new file mode 100644 index 0000000..ce0da02 --- /dev/null +++ b/memory-script/memory-ageing-script.sh @@ -0,0 +1,25 @@ +#/bin/bash + +echo " " +echo " " +echo " " +echo "#################################################################################################" +echo "############################ DDR Memory Manufactory Ageing Start #############################" +count=0 +while true +do + ./led-onall.sh + result=`./memsuck -arzo -p 1 50 | grep "Result: PASS (1 passes)" | wc -l` + ./led-offall.sh + if [ ${result} -gt 0 ]; then + echo "### DDR Memory test passed in loop $count ###" + sleep 2 + else + echo "Error Notice: DDR Memory stress failure in loop $count" + break + fi + + let count=count+1 +done + + diff --git a/memory-script/memory-script.sh b/memory-script/memory-script.sh new file mode 100644 index 0000000..fdab6dd --- /dev/null +++ b/memory-script/memory-script.sh @@ -0,0 +1,39 @@ +#/bin/bash + +RET=0 +LOOP=3 ### memory stress loop count ### + +sleep 2 + +echo " " +echo " " +echo " " +echo "######################################################################################" + +echo "############################ DDR Memory Testing Start #############################" +count=0 +while true +do + result=`./memsuck -arzo -p 5 50 | grep "Result: PASS (5 passes)" | wc -l` + if [ ${result} -gt 0 ]; then + echo "### DDR Memory test passed in loop $count ###" + else + echo "Error Notice: DDR Memory stress failure in loop $count" + RET=1 + fi + + let count=count+1 + if [ $count -ge ${LOOP} ]; then + break + fi +done + +echo "######################################################################################" +echo " " +echo " " +echo " " + +sleep 2 + +return ${RET} + diff --git a/memory-script/memsuck b/memory-script/memsuck new file mode 100644 index 0000000000000000000000000000000000000000..3227fa949923a032a912b921b51af537843ef85e GIT binary patch literal 18104 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 literal 0 HcmV?d00001 diff --git a/memory-script/mt_gpio.sh b/memory-script/mt_gpio.sh new file mode 100644 index 0000000..7ddf73e --- /dev/null +++ b/memory-script/mt_gpio.sh @@ -0,0 +1,67 @@ + +SYS_FILE=/sys/class/gpio + +mt_gpio_export() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + + if [ ! -f ${SYS_FILE}/export ]; then + echo "${SYS_FILE}/export file is not present" + exit 1 + fi + + echo "${pin}" > ${SYS_FILE}/export + + return 0 +} + +mt_gpio_dir() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + dir=$2 + + if [ ! -f ${SYS_FILE}/gpio${pin}/direction ]; then + echo "${SYS_FILE}/gpio${pin}/direction is not present" + exit 1 + fi + + echo "${dir}" > ${SYS_FILE}/gpio${pin}/direction + + return 0 +} + +mt_gpio_out() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + out=$2 + + if [ ! -f ${SYS_FILE}/gpio${pin}/value ]; then + echo "${SYS_FILE}/gpio${pin}/value is not present" + exit 1 + fi + + echo "${out}" > ${SYS_FILE}/gpio${pin}/value + + return 0 +} + +mt_gpio_in() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + + if [ ! -f ${SYS_FILE}/gpio${pin}/value ]; then + echo "${SYS_FILE}/gpio${pin}/value is not present" + exit 1 + fi + + result=`cat ${SYS_FILE}/gpio${pin}/value` + if [ ${result} == "0" ] ; then + return 0 + else + return 1 + fi +} diff --git a/minipcieusb-script/minipcieusb-script.sh b/minipcieusb-script/minipcieusb-script.sh new file mode 100644 index 0000000..6139339 --- /dev/null +++ b/minipcieusb-script/minipcieusb-script.sh @@ -0,0 +1,29 @@ +#/bin/bash + +RET=0 + +sleep 2 + +echo " " +echo " " +echo " " +echo "######################################################################################" +echo "####################### Two minipcie 4G Modules Testing Start #######################" + +result=`lsusb | grep "2c7c:0125" | wc -l` +if [ ${result} -eq 2 ]; then + echo "### Find two EC25 4G Modules from two minipcie slots ###" +else + echo "Error Notice: Can not Find two EC25 4G Modules from two minipcie slots" + RET=1 +fi + +echo "######################################################################################" +echo " " +echo " " +echo " " + +sleep 2 + +return ${RET} + diff --git a/minipcieusb-script/mt_gpio.sh b/minipcieusb-script/mt_gpio.sh new file mode 100644 index 0000000..7ddf73e --- /dev/null +++ b/minipcieusb-script/mt_gpio.sh @@ -0,0 +1,67 @@ + +SYS_FILE=/sys/class/gpio + +mt_gpio_export() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + + if [ ! -f ${SYS_FILE}/export ]; then + echo "${SYS_FILE}/export file is not present" + exit 1 + fi + + echo "${pin}" > ${SYS_FILE}/export + + return 0 +} + +mt_gpio_dir() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + dir=$2 + + if [ ! -f ${SYS_FILE}/gpio${pin}/direction ]; then + echo "${SYS_FILE}/gpio${pin}/direction is not present" + exit 1 + fi + + echo "${dir}" > ${SYS_FILE}/gpio${pin}/direction + + return 0 +} + +mt_gpio_out() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + out=$2 + + if [ ! -f ${SYS_FILE}/gpio${pin}/value ]; then + echo "${SYS_FILE}/gpio${pin}/value is not present" + exit 1 + fi + + echo "${out}" > ${SYS_FILE}/gpio${pin}/value + + return 0 +} + +mt_gpio_in() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + + if [ ! -f ${SYS_FILE}/gpio${pin}/value ]; then + echo "${SYS_FILE}/gpio${pin}/value is not present" + exit 1 + fi + + result=`cat ${SYS_FILE}/gpio${pin}/value` + if [ ${result} == "0" ] ; then + return 0 + else + return 1 + fi +} diff --git a/minipciex2-script/minipciex2-script.sh b/minipciex2-script/minipciex2-script.sh new file mode 100644 index 0000000..dbaab4f --- /dev/null +++ b/minipciex2-script/minipciex2-script.sh @@ -0,0 +1,48 @@ +#/bin/bash + +SYS_FILE=/sys/devices/platform/soc/11005000.i2c/i2c-2 +RET=0 + +sleep 2 + +echo " " +echo " " +echo " " +echo "######################################################################################" +echo "######################## minipcie wifi7 be14 card Module Testing Start ##################" +echo " " + +result=`lspci | grep "Device 7990" | wc -l` +if [ ${result} -eq 1 ]; then + echo "### Find one MEDIATEK Corp MT7990 Module from minipcie slots ###" +else + echo "Error Notice: Can not Find one EDIATEK Corp MT7990 Module from minipcie slot" + RET=1 +fi + +result=`lspci | grep "Device 7991" | wc -l` +if [ ${result} -eq 1 ]; then + echo "### Find one MEDIATEK Corp MT7991 Module from minipcie slots ###" +else + echo "Error Notice: Can not Find one EDIATEK Corp MT7991 Module from minipcie slot" + RET=1 +fi + + +if [ ! -f ${SYS_FILE}/i2c-6/6-0051/eeprom ]; then + echo "### BPI-R4PRO 8X wifi7 BE14 eeprom 0x51 can't work fine ###" + RET=1 +else + echo "### BPI-R4PRO 8X wifi7 BE14 eeprom 0x51 can work fine ###" +fi + +echo " " +echo "######################################################################################" +echo " " +echo " " +echo " " + +sleep 2 + +return ${RET} + diff --git a/minipciex2-script/mt_gpio.sh b/minipciex2-script/mt_gpio.sh new file mode 100644 index 0000000..7ddf73e --- /dev/null +++ b/minipciex2-script/mt_gpio.sh @@ -0,0 +1,67 @@ + +SYS_FILE=/sys/class/gpio + +mt_gpio_export() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + + if [ ! -f ${SYS_FILE}/export ]; then + echo "${SYS_FILE}/export file is not present" + exit 1 + fi + + echo "${pin}" > ${SYS_FILE}/export + + return 0 +} + +mt_gpio_dir() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + dir=$2 + + if [ ! -f ${SYS_FILE}/gpio${pin}/direction ]; then + echo "${SYS_FILE}/gpio${pin}/direction is not present" + exit 1 + fi + + echo "${dir}" > ${SYS_FILE}/gpio${pin}/direction + + return 0 +} + +mt_gpio_out() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + out=$2 + + if [ ! -f ${SYS_FILE}/gpio${pin}/value ]; then + echo "${SYS_FILE}/gpio${pin}/value is not present" + exit 1 + fi + + echo "${out}" > ${SYS_FILE}/gpio${pin}/value + + return 0 +} + +mt_gpio_in() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + + if [ ! -f ${SYS_FILE}/gpio${pin}/value ]; then + echo "${SYS_FILE}/gpio${pin}/value is not present" + exit 1 + fi + + result=`cat ${SYS_FILE}/gpio${pin}/value` + if [ ${result} == "0" ] ; then + return 0 + else + return 1 + fi +} diff --git a/nand-script/nand-script.sh b/nand-script/nand-script.sh new file mode 100644 index 0000000..f10cf08 --- /dev/null +++ b/nand-script/nand-script.sh @@ -0,0 +1,29 @@ +#/bin/bash + +RET=0 + +sleep 2 + +echo " " +echo " " +echo " " +echo "######################################################################################" +echo "########################## SPIM NAND Deivce Testing Start ##########################" + +dd if=/dev/mtdblock1 of=/tmp/.nand_test.img +if [ $? == 0 ]; then + echo "### Access the SPIM NAND Device Successfully ###" +else + RET=1 + echo "Error Notice: Access the SPIM NAND Device failure ###" +fi + +echo "######################################################################################" +echo " " +echo " " +echo " " + +sleep 2 + +return ${RET} + diff --git a/nvme-script/mt_gpio.sh b/nvme-script/mt_gpio.sh new file mode 100644 index 0000000..7ddf73e --- /dev/null +++ b/nvme-script/mt_gpio.sh @@ -0,0 +1,67 @@ + +SYS_FILE=/sys/class/gpio + +mt_gpio_export() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + + if [ ! -f ${SYS_FILE}/export ]; then + echo "${SYS_FILE}/export file is not present" + exit 1 + fi + + echo "${pin}" > ${SYS_FILE}/export + + return 0 +} + +mt_gpio_dir() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + dir=$2 + + if [ ! -f ${SYS_FILE}/gpio${pin}/direction ]; then + echo "${SYS_FILE}/gpio${pin}/direction is not present" + exit 1 + fi + + echo "${dir}" > ${SYS_FILE}/gpio${pin}/direction + + return 0 +} + +mt_gpio_out() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + out=$2 + + if [ ! -f ${SYS_FILE}/gpio${pin}/value ]; then + echo "${SYS_FILE}/gpio${pin}/value is not present" + exit 1 + fi + + echo "${out}" > ${SYS_FILE}/gpio${pin}/value + + return 0 +} + +mt_gpio_in() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + + if [ ! -f ${SYS_FILE}/gpio${pin}/value ]; then + echo "${SYS_FILE}/gpio${pin}/value is not present" + exit 1 + fi + + result=`cat ${SYS_FILE}/gpio${pin}/value` + if [ ${result} == "0" ] ; then + return 0 + else + return 1 + fi +} diff --git a/nvme-script/nvme-script.sh b/nvme-script/nvme-script.sh new file mode 100644 index 0000000..37ab437 --- /dev/null +++ b/nvme-script/nvme-script.sh @@ -0,0 +1,37 @@ +#/bin/bash + +RET=0 + +sleep 2 + +echo " " +echo " " +echo " " +echo "######################################################################################" +echo "####################### Two NVMe SSD M.2 KeyM Testing Start ##########################" + +result=`fdisk -l /dev/nvme0n1 | grep "bytes" | grep "sectors" | wc -l` +if [ ${result} -gt 0 ]; then + echo "### NVMe SSD M.2 KeyM-A can be detected successfully. ###" +else + RET=1 + echo "Error Notice: NVMe SSD M.2 KeyM-A can not be detected, failure." +fi + +result=`fdisk -l /dev/nvme1n1 | grep "bytes" | grep "sectors" | wc -l` +if [ ${result} -gt 0 ]; then + echo "### NVMe SSD M.2 KeyM-B can be detected successfully. ###" +else + RET=1 + echo "Error Notice: NVMe SSD M.2 KeyM-B can not be detected, failure." +fi + +echo "######################################################################################" +echo " " +echo " " +echo " " + +sleep 2 + +return ${RET} + diff --git a/rtc-script/rtc-script.sh b/rtc-script/rtc-script.sh new file mode 100644 index 0000000..9d26ab5 --- /dev/null +++ b/rtc-script/rtc-script.sh @@ -0,0 +1,36 @@ +#/bin/bash + +RET=0 + +sleep 2 + +echo " " +echo " " +echo " " +echo "######################################################################################" +echo "########################## BPI-R4-PRO 8X RTC Testing Start ###########################" + +date -s 2028-08-08 +hwclock -w +date -s 2021-01-01 +line=`hwclock -r | grep "2028" | grep "Aug 8" | wc -l` +if [ $line -eq 1 ]; then + echo " " + echo "### BPI-R4-PRO 8X RTC can work fine ### " + echo " " +else + echo " " + echo "Error Notice: BPI-R4-PRO 8X RTC can not work fine." + echo " " + RET=1 +fi + +echo "######################################################################################" +echo " " +echo " " +echo " " + +sleep 2 + +return ${RET} + diff --git a/usb20-script/mt_gpio.sh b/usb20-script/mt_gpio.sh new file mode 100644 index 0000000..7ddf73e --- /dev/null +++ b/usb20-script/mt_gpio.sh @@ -0,0 +1,67 @@ + +SYS_FILE=/sys/class/gpio + +mt_gpio_export() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + + if [ ! -f ${SYS_FILE}/export ]; then + echo "${SYS_FILE}/export file is not present" + exit 1 + fi + + echo "${pin}" > ${SYS_FILE}/export + + return 0 +} + +mt_gpio_dir() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + dir=$2 + + if [ ! -f ${SYS_FILE}/gpio${pin}/direction ]; then + echo "${SYS_FILE}/gpio${pin}/direction is not present" + exit 1 + fi + + echo "${dir}" > ${SYS_FILE}/gpio${pin}/direction + + return 0 +} + +mt_gpio_out() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + out=$2 + + if [ ! -f ${SYS_FILE}/gpio${pin}/value ]; then + echo "${SYS_FILE}/gpio${pin}/value is not present" + exit 1 + fi + + echo "${out}" > ${SYS_FILE}/gpio${pin}/value + + return 0 +} + +mt_gpio_in() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + + if [ ! -f ${SYS_FILE}/gpio${pin}/value ]; then + echo "${SYS_FILE}/gpio${pin}/value is not present" + exit 1 + fi + + result=`cat ${SYS_FILE}/gpio${pin}/value` + if [ ${result} == "0" ] ; then + return 0 + else + return 1 + fi +} diff --git a/usb20-script/usb20-script.sh b/usb20-script/usb20-script.sh new file mode 100644 index 0000000..b4f297c --- /dev/null +++ b/usb20-script/usb20-script.sh @@ -0,0 +1,72 @@ +#/bin/bash + +### This script is to check if Expand USB2.0 ports are working fine ### + +RET=0 + +sleep 2 + +echo " " +echo " " +echo " " +echo "######################################################################################" + +echo "########################## Expand USB2.0 Deivce Testing Start ##########################" +dmesg -c > /dev/null + +while true +do + read -t20 -s -n1 -p "### Please Insert one USB2.0 Device U-DISK into Expand USB2.0 Port right now , then enter any key to continue. ###" keypress + if [ $? -eq 0 ]; then + echo " " + break + fi + echo " " +done +sleep 3 + + +result=`dmesg | grep "new high-speed USB device" | wc -l` +if [ ${result} -eq 0 ]; then + RET=1 + echo "Error Notice: USB2.0 Device U-DISK can not detect at first time from Expand USB2.0 Port." +else + result=`dmesg | grep "Attached SCSI removable disk" | wc -l` + if [ ${result} -eq 0 ]; then + RET=1 + echo "Error Notice: USB2.0 Device U-DISK can not detect at second time from Expand USB2.0 Port." + else + echo "### USB2.0 Device U-DISK can detect successfully from Expand USB2.0 Port ###" + + result=`fdisk -l /dev/sda | grep "bytes" | grep "sectors" | wc -l` + if [ ${result} -gt 0 ]; then + echo "### USB2.0 Device U-DISK partition info is good from Expand USB2.0 Port ###" + else + RET=1 + echo "Error Notice: USB2.0 Device U-DISK partition info is bad from Expand USB2.0 Port" + fi + fi +fi + +sleep 1 +while true +do + read -t20 -s -n1 -p "### Please Remove one USB2.0 Device U-DISK from Expand USB2.0 Port right now , then enter any key to continue. ###" keypress + if [ $? -eq 0 ]; then + echo " " + break + fi + echo " " +done + +dmesg -c > /dev/null + +echo "######################################################################################" +echo " " +echo " " +echo " " + +sleep 2 + +return ${RET} + diff --git a/usb30-script/mt_gpio.sh b/usb30-script/mt_gpio.sh new file mode 100644 index 0000000..7ddf73e --- /dev/null +++ b/usb30-script/mt_gpio.sh @@ -0,0 +1,67 @@ + +SYS_FILE=/sys/class/gpio + +mt_gpio_export() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + + if [ ! -f ${SYS_FILE}/export ]; then + echo "${SYS_FILE}/export file is not present" + exit 1 + fi + + echo "${pin}" > ${SYS_FILE}/export + + return 0 +} + +mt_gpio_dir() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + dir=$2 + + if [ ! -f ${SYS_FILE}/gpio${pin}/direction ]; then + echo "${SYS_FILE}/gpio${pin}/direction is not present" + exit 1 + fi + + echo "${dir}" > ${SYS_FILE}/gpio${pin}/direction + + return 0 +} + +mt_gpio_out() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + out=$2 + + if [ ! -f ${SYS_FILE}/gpio${pin}/value ]; then + echo "${SYS_FILE}/gpio${pin}/value is not present" + exit 1 + fi + + echo "${out}" > ${SYS_FILE}/gpio${pin}/value + + return 0 +} + +mt_gpio_in() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + + if [ ! -f ${SYS_FILE}/gpio${pin}/value ]; then + echo "${SYS_FILE}/gpio${pin}/value is not present" + exit 1 + fi + + result=`cat ${SYS_FILE}/gpio${pin}/value` + if [ ${result} == "0" ] ; then + return 0 + else + return 1 + fi +} diff --git a/usb30-script/usb30-script.sh b/usb30-script/usb30-script.sh new file mode 100644 index 0000000..e641d58 --- /dev/null +++ b/usb30-script/usb30-script.sh @@ -0,0 +1,70 @@ +#/bin/bash + +### This script is to check if USB3.0 USB2.0 ports are working fine ### + +RET=0 + +sleep 2 + +echo " " +echo " " +echo " " +echo "######################################################################################" +echo "########################## USB3.0 Deivce Testing Start ##########################" +dmesg -c > /dev/null + +while true +do + read -t20 -s -n1 -p "### Please Insert one USB3.0 Device U-DISK right now , then enter any key to continue. ###" keypress + if [ $? -eq 0 ]; then + echo " " + break + fi + echo " " +done +sleep 3 + +result=`dmesg | grep "new SuperSpeed" | wc -l` +if [ ${result} -eq 0 ]; then + RET=1 + echo "Error Notice: USB3.0 Device U-DISK can not detect at first time." +else + result=`dmesg | grep "Attached SCSI removable disk" | wc -l` + if [ ${result} -eq 0 ]; then + RET=1 + echo "Error Notice: USB3.0 Device U-DISK can not detect at second time." + else + echo "### USB3.0 Device U-DISK can detect successfully ###" + + result=`fdisk -l /dev/sda | grep "bytes" | grep "sectors" | wc -l` + if [ ${result} -gt 0 ]; then + echo "### USB3.0 Device U-DISK partition info is good ###" + else + RET=1 + echo "Error Notice: USB3.0 Device U-DISK partition info is bad" + fi + fi +fi + +sleep 1 +while true +do + read -t20 -s -n1 -p "### Please Remove one USB3.0 Device U-DISK right now , then enter any key to continue. ###" keypress + if [ $? -eq 0 ]; then + echo " " + break + fi + echo " " +done +sleep 3 + +dmesg -c > /dev/null +echo "######################################################################################" +echo " " +echo " " +echo " " + +sleep 2 + +return ${RET} + diff --git a/usim-script/mt_gpio.sh b/usim-script/mt_gpio.sh new file mode 100644 index 0000000..7ddf73e --- /dev/null +++ b/usim-script/mt_gpio.sh @@ -0,0 +1,67 @@ + +SYS_FILE=/sys/class/gpio + +mt_gpio_export() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + + if [ ! -f ${SYS_FILE}/export ]; then + echo "${SYS_FILE}/export file is not present" + exit 1 + fi + + echo "${pin}" > ${SYS_FILE}/export + + return 0 +} + +mt_gpio_dir() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + dir=$2 + + if [ ! -f ${SYS_FILE}/gpio${pin}/direction ]; then + echo "${SYS_FILE}/gpio${pin}/direction is not present" + exit 1 + fi + + echo "${dir}" > ${SYS_FILE}/gpio${pin}/direction + + return 0 +} + +mt_gpio_out() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + out=$2 + + if [ ! -f ${SYS_FILE}/gpio${pin}/value ]; then + echo "${SYS_FILE}/gpio${pin}/value is not present" + exit 1 + fi + + echo "${out}" > ${SYS_FILE}/gpio${pin}/value + + return 0 +} + +mt_gpio_in() +{ + pin=$1 + let pin=pin+512 ### gpio base 512 ### + + if [ ! -f ${SYS_FILE}/gpio${pin}/value ]; then + echo "${SYS_FILE}/gpio${pin}/value is not present" + exit 1 + fi + + result=`cat ${SYS_FILE}/gpio${pin}/value` + if [ ${result} == "0" ] ; then + return 0 + else + return 1 + fi +} diff --git a/usim-script/usim-script.sh b/usim-script/usim-script.sh new file mode 100644 index 0000000..2f93194 --- /dev/null +++ b/usim-script/usim-script.sh @@ -0,0 +1,92 @@ +#/bin/bash + +RET=0 + +SLOT1_TTYUSB2_FILE=/dev/ttyUSB2 +SLOT2_TTYUSB7_FILE=/dev/ttyUSB7 +SLOT3_TTYUSB12_FILE=/dev/ttyUSB12 +sleep 2 + +echo " " +echo " " +echo " " +echo "######################################################################################" +echo "###################### Three RM500U-CN USIM Slots Testing Start #####################" +set +m > /dev/null +rm -rf /tmp/ft_data +echo " " + +if [ -c ${SLOT1_TTYUSB2_FILE} ]; then + echo "### Find RM500U-CN 5G Modules ttyUSB2 AT Moden Serial ###" + rm -rf /tmp/ft_data + cat ${SLOT1_TTYUSB2_FILE} > /tmp/ft_data 2& + echo -e "AT+CPIN?\r" > ${SLOT1_TTYUSB2_FILE} + sleep 2 + killall cat > /dev/null + result=`cat /tmp/ft_data | grep "+CPIN: READY" | wc -l` + if [ ${result} -ne 1 ]; then + echo "### Error Notice: RM500U-CN 5G Modules ttyUSB2 USIM is not present ###" + RET=1 + else + echo "### RM500U-CN 5G Modules ttyUSB2 USIM is present ###" + fi +else + echo "### Error Notice: Can not Find RM500U-CN 5G Modules ttyUSB2 AT Moden Serial ###" + RET=1 +fi + +echo " " + +if [ -c ${SLOT2_TTYUSB7_FILE} ]; then + echo "### Find RM500U-CN 5G Modules ttyUSB7 AT Moden Serial ###" + rm -rf /tmp/ft_data + cat ${SLOT2_TTYUSB7_FILE} > /tmp/ft_data 2& + echo -e "AT+CPIN?\r" > ${SLOT2_TTYUSB7_FILE} + sleep 2 + killall cat > /dev/null + result=`cat /tmp/ft_data | grep "+CPIN: READY" | wc -l` + if [ ${result} -ne 1 ]; then + echo "### Error Notice: RM500U-CN 5G Modules ttyUSB7 USIM is not present ###" + RET=1 + else + echo "### RM500U-CN 5G Modules ttyUSB7 USIM is present ###" + fi +else + echo "### Error Notice: Can not Find RM500U-CN 5G Modules ttyUSB7 AT Moden Serial ###" + RET=1 +fi + +echo " " + +if [ -c ${SLOT3_TTYUSB12_FILE} ]; then + echo "### Find RM500U-CN 5G Modules ttyUSB12 AT Moden Serial ###" + rm -rf /tmp/ft_data + cat ${SLOT3_TTYUSB12_FILE} > /tmp/ft_data 2& + echo -e "AT+CPIN?\r" > ${SLOT3_TTYUSB12_FILE} + sleep 2 + killall cat > /dev/null + result=`cat /tmp/ft_data | grep "+CPIN: READY" | wc -l` + if [ ${result} -ne 1 ]; then + echo "### Error Notice: RM500U-CN 5G Modules ttyUSB12 USIM is not present ###" + RET=1 + else + echo "### RM500U-CN 5G Modules ttyUSB12 USIM is present ###" + fi +else + echo "### Error Notice: Can not Find RM500U-CN 5G Modules ttyUSB12 AT Moden Serial ###" + RET=1 +fi + +echo " " +set -m 2> /dev/null +rm -rf /tmp/ft_data + +echo "######################################################################################" +echo " " +echo " " +echo " " + +sleep 2 + +return ${RET} + diff --git a/wifi-script/wifi-script.sh b/wifi-script/wifi-script.sh new file mode 100644 index 0000000..13a063f --- /dev/null +++ b/wifi-script/wifi-script.sh @@ -0,0 +1,62 @@ +#/bin/bash + +RET=0 + +echo " " +echo " " +echo " " +echo "###############################################################################################" +echo "#################### BPI-R4PRO 8X BE14 Chip 2.4G, 5G, 6G AP Testing Start #####################" + +ifconfig phy0.0-ap0 up > /dev/null +ifconfig phy0.1-ap0 up > /dev/null +ifconfig phy0.2-ap0 up > /dev/null + +sleep 5 + +result=`ifconfig -a | grep phy0.0-ap0 | wc -l` +if [ ${result} -ne 1 ]; then + echo "### mt_wifi driver 2.4G AP can't run up ###" + RET=1 +else + result=`iwinfo phy0.0-ap0 info | grep 2.412 | wc -l` + if [ ${result} -ne 1 ]; then + echo "### mt_wifi driver 2.4G AP can't work fine ###" + RET=1 + else + echo "### mt_wifi driver 2.4G AP can work fine ###" + fi +fi + +result=`ifconfig -a | grep phy0.1-ap0 | wc -l` +if [ ${result} -ne 1 ]; then + echo "### mt_wifi driver 5G AP can't run up ###" + RET=1 +else + result=`iwinfo phy0.1-ap0 info | grep 5.180 | wc -l` + if [ ${result} -ne 1 ]; then + echo "### mt_wifi driver 5G AP can't work fine ###" + RET=1 + else + echo "### mt_wifi driver 5G AP can work fine ###" + fi +fi + +result=`ifconfig -a | grep phy0.2-ap0 | wc -l` +if [ ${result} -ne 1 ]; then + echo "### mt_wifi driver 6G AP can't run up ###" + RET=1 +else + result=`iwinfo phy0.2-ap0 info | grep 6.135 | wc -l` + if [ ${result} -ne 1 ]; then + echo "### mt_wifi driver 6G AP can't work fine ###" + RET=1 + else + echo "### mt_wifi driver 6G AP can work fine ###" + fi +fi + +echo "######################################################################################" + +return ${RET} +