GFSU采用TI-A8 CPU, 128MB内存,256MB NAND, Linux 3 内核
GFSU目前遇到2个硬件版本:
ls -l /dev/ttyS*
[root@GFSU /]# ls -l /dev/ttyS*
crw--w---- 1 root root 251, 0 Aug 24 12:55 /dev/ttyS0
crwxr-xr-x 1 root root 251, 1 Jan 1 1970 /dev/ttyS1
crwxr-xr-x 1 root root 251, 2 Jan 1 1970 /dev/ttyS2
crwxr-xr-x 1 root root 251, 3 Jan 1 1970 /dev/ttyS3
crwxr-xr-x 1 root root 251, 4 Jan 1 1970 /dev/ttyS4
crwxr-xr-x 1 root root 233, 0 Jan 1 1970 /dev/ttyS5
crwxr-xr-x 1 root root 233, 1 Jan 1 1970 /dev/ttyS6
crwxr-xr-x 1 root root 233, 2 Jan 1 1970 /dev/ttyS7
crwxr-xr-x 1 root root 233, 3 Jan 1 1970 /dev/ttyS8
我们注意看251,233,这个是驱动的主设备号,默认的主设备号是251
[root@GFSU vertiv]# ls -l /dev/ttyUSB*
crwxr-xr-x 1 root root 188, 0 Jan 1 1970 /dev/ttyUSB0
crwxr-xr-x 1 root root 188, 1 Jan 1 1970 /dev/ttyUSB1
lrwxrwxrwx 1 root root 7 Sep 23 10:44 /dev/ttyUSB16 -> ttyUSB4
lrwxrwxrwx 1 root root 7 Sep 23 10:44 /dev/ttyUSB17 -> ttyUSB5
lrwxrwxrwx 1 root root 7 Sep 23 10:44 /dev/ttyUSB18 -> ttyUSB6
lrwxrwxrwx 1 root root 7 Sep 23 10:44 /dev/ttyUSB19 -> ttyUSB7
crwxr-xr-x 1 root root 188, 2 Jan 1 1970 /dev/ttyUSB2
lrwxrwxrwx 1 root root 7 Sep 23 10:44 /dev/ttyUSB20 -> ttyUSB0
lrwxrwxrwx 1 root root 7 Sep 23 10:44 /dev/ttyUSB21 -> ttyUSB1
lrwxrwxrwx 1 root root 7 Sep 23 10:44 /dev/ttyUSB22 -> ttyUSB2
lrwxrwxrwx 1 root root 7 Sep 23 10:44 /dev/ttyUSB23 -> ttyUSB3
crwxr-xr-x 1 root root 188, 3 Jan 1 1970 /dev/ttyUSB3
crwxr-xr-x 1 root root 188, 4 Sep 23 10:50 /dev/ttyUSB4
crwxr-xr-x 1 root root 188, 5 Sep 23 10:50 /dev/ttyUSB5
crwxr-xr-x 1 root root 188, 6 Jan 1 1970 /dev/ttyUSB6
crwxr-xr-x 1 root root 188, 7 Sep 23 10:50 /dev/ttyUSB7
扩展板的情况,有时候,我们发现它并没有把ttyUSB?映射为ttySP?,此时,我们可以直接修改gfsu_config.json自己做映射。
ttySUB16 对应的是 ttyS9, 即第9个串口。
支持DI1-DI4
AI序号 | 板子接口 | 值 |
---|---|---|
1-8 | 1-8路AI | 0-5v |
9 | 电池组1电压 | 52.3v |
10 | 电池组1中位电压 | 26.7v |
11 | 电池组2电压 | 52.3v |
12 | 电池组2中位电压 | 26.7v |
维谛可以从网站FSU的配置,映射串口:
COM1-8 -> SP1-8
COM46 -> SP9
COM47 -> SP10
COM48 -> SP11
COM49 -> SP12
COM50 -> SP13
COM51 -> SP14
COM52 -> SP15
ubidetach -m 11
然后格式化掉
flash_erase /devmtd11 0 0
然后
ubiattach /dev/ubi_ctrl -m 11 -O 2048
ubimkvol /dev/ubi2 -N data3 -m
mount -t ubifs -o sync ubi2:data3 /data3
感觉至少2分钟
遇到过烟感,水浸,现场变了,读取值不变。 电池电压读取偏低。
表现:由于FsuOS程序内部默认是异步模式,串口操作是同步写,异步读,使用的boost::asio::async_read_some,boost开发库的品质比stl都好,品质有保证,如果boost不正常,一般都是操作系统内的设备驱动做的不对。
GFSU2遇到2个问题:
GFSU的文件分区,data3和data4都是ubifs文件系统,ubifs是嵌入式linux常用文件系统,速度比较快,但是会崩溃。 使用ubifs的文件系统都存在崩溃问题,不是GFSU一家的问题。 如果遇到,将分区重新格式化再挂载上就可以继续使用。
这个问题其他地方也会加到,但是GFSU相对多一些。这个问题只影响ssh交互终端。
PTY allocation request failed
如果遇到,可以先尝试退出几个ssh连接,看能不能连接上,如果还不行,就直接执行reboot命令
ssh root@192.168.3.50 reboot
目标FSU就会重启,一般就会恢复。
表现为不消耗CPU时间,重启程序即恢复。有2-3块设备发生,很是困扰。暂时通过脚本检测CPU时间不消耗,即重启SMDDevice。 run_time.sh
#!/bin/sh
TTIME=0
CheckProcess(){
PID=$(ps|grep -v "run.sh"| grep "\./SMDDevice" | grep -v "grep"|awk '{print $1}')
echo "PID:"$PID
if [ ! -z $PID ];
then
UTIME=`awk '{ print $14+$15}' < /proc/$PID/stat`
echo "TTIME:"$TTIME "UTIME:"$UTIME
DIFF=$(expr $UTIME - $TTIME)
if [ $TTIME -eq 0 ];
then
TTIME=$UTIME
elif [ $DIFF -lt 10 ];
then
kill $PID
echo "process hangs"
TTIME=0
else
TTIME=$UTIME
fi
fi
}
while true
do
CheckProcess
sleep 60
done
2024年前的GFSU,默认没有ssh/dropbear,需要自己部署。 2024年后的GFSU,自带ssh/dropbear.
GFSU的ssh/dropbear一直有个不能同时登录的问题,会提示unable to alloc 什么,不知道怎么回事,只在这个设备上见到过。
GFSU的DO可以通过脚本直接设置模式,比较方便.
如果DO模式设置错误,再接门禁这种DO控制的设备时候,会遇到,门无法关闭(因为DO信号一直给高),门在无操作情况下会突然开启(DO模式不对,系统重启的时候可能会恢复默认状态,造成DO信号误触发)
#!/bin/sh
/test/relay_test $(($1-9)) $2