The user framework module complies with s3ip sysfs specification (#12894)
Why I did it The user framework module complies with s3ip sysfs specification How I did it 1、 create a s3ip_sysfs service 2、 the s3ip_sysfs service call the “s3ip_sysfs_tool.sh” to install kernel module and run s3ip_load.py 3、 s3ip_load.py will parse the s3ip_sysfs_conf.json configuration file and create /sys_switch/ directory How to verify it A demo driver base on this framework will display the sysfs node wich conform to the s3ip sysfs specification
This commit is contained in:
parent
8fe4fab89f
commit
f7d80e63db
15
platform/s3ip-sysfs/scripts/s3ip-sysfs.service
Normal file
15
platform/s3ip-sysfs/scripts/s3ip-sysfs.service
Normal file
@ -0,0 +1,15 @@
|
||||
[Unit]
|
||||
Description=s3ip sysfs service
|
||||
Wants=network-online.target
|
||||
After=network-online.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
User=root
|
||||
ExecStart=/usr/bin/s3ip_sysfs_tool.sh start
|
||||
ExecStop=/usr/bin/s3ip_sysfs_tool.sh stop
|
||||
RemainAfterExit=yes
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
||||
|
32
platform/s3ip-sysfs/scripts/s3ip_load.py
Executable file
32
platform/s3ip-sysfs/scripts/s3ip_load.py
Executable file
@ -0,0 +1,32 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: UTF-8 -*-
|
||||
import json
|
||||
import os
|
||||
|
||||
if __name__ == '__main__':
|
||||
os.system("sudo rm -rf /sys_switch;sudo mkdir -p -m 777 /sys_switch")
|
||||
|
||||
with open('/etc/s3ip/s3ip_sysfs_conf.json', 'r') as jsonfile:
|
||||
json_string = json.load(jsonfile)
|
||||
for s3ip_sysfs_path in json_string['s3ip_syfs_paths']:
|
||||
#print('path:' + s3ip_sysfs_path['path'])
|
||||
#print('type:' + s3ip_sysfs_path['type'])
|
||||
#print('value:' + s3ip_sysfs_path['value'])
|
||||
|
||||
if s3ip_sysfs_path['type'] == "string" :
|
||||
(path, file) = os.path.split(s3ip_sysfs_path['path'])
|
||||
#创建文件
|
||||
command = "sudo mkdir -p -m 777 " + path
|
||||
#print(command)
|
||||
os.system(command)
|
||||
command = "sudo echo " + "\"" + s3ip_sysfs_path['value'] + "\"" + " > " + s3ip_sysfs_path['path']
|
||||
#print(command)
|
||||
os.system(command)
|
||||
elif s3ip_sysfs_path['type'] == "path" :
|
||||
command = "sudo ln -s " + s3ip_sysfs_path['value'] + " " + s3ip_sysfs_path['path']
|
||||
#print(command)
|
||||
os.system(command)
|
||||
else:
|
||||
print('error type:' + s3ip_sysfs_path['type'])
|
||||
os.system("tree -l /sys_switch")
|
||||
|
76
platform/s3ip-sysfs/scripts/s3ip_sysfs_conf.json
Normal file
76
platform/s3ip-sysfs/scripts/s3ip_sysfs_conf.json
Normal file
@ -0,0 +1,76 @@
|
||||
{
|
||||
"s3ip_syfs_paths": [
|
||||
{
|
||||
"path": "/sys_switch/temp_sensor",
|
||||
"type" : "path",
|
||||
"value" : "/sys/s3ip/temp_sensor",
|
||||
"description": "temperature information"
|
||||
},
|
||||
{
|
||||
"path": "/sys_switch/vol_sensor",
|
||||
"type" : "path",
|
||||
"value" : "/sys/s3ip/vol_sensor",
|
||||
"description": "voltage sensor information"
|
||||
},
|
||||
{
|
||||
"path": "/sys_switch/syseeprom",
|
||||
"type" : "path",
|
||||
"value" : "/sys/s3ip/syseeprom",
|
||||
"description": "ONIE EEPROM"
|
||||
},
|
||||
{
|
||||
"path": "/sys_switch/fan",
|
||||
"type" : "path",
|
||||
"value" : "/sys/s3ip/fan",
|
||||
"description": "fan information"
|
||||
},
|
||||
{
|
||||
"path": "/sys_switch/psu",
|
||||
"type" : "path",
|
||||
"value" : "/sys/s3ip/psu",
|
||||
"description": "PSU information"
|
||||
},
|
||||
{
|
||||
"path": "/sys_switch/transceiver",
|
||||
"type" : "path",
|
||||
"value" : "/sys/s3ip/transceiver",
|
||||
"description": "transceiver information"
|
||||
},
|
||||
{
|
||||
"path": "/sys_switch/sysled",
|
||||
"type" : "path",
|
||||
"value" : "/sys/s3ip/sysled",
|
||||
"description": "SYS LED information"
|
||||
},
|
||||
{
|
||||
"path": "/sys_switch/fpga",
|
||||
"type" : "path",
|
||||
"value" : "/sys/s3ip/fpga",
|
||||
"description": "FPGA information"
|
||||
},
|
||||
{
|
||||
"path": "/sys_switch/cpld",
|
||||
"type" : "path",
|
||||
"value" : "/sys/s3ip/cpld",
|
||||
"description": "CPLD information"
|
||||
},
|
||||
{
|
||||
"path": "/sys_switch/watchdog",
|
||||
"type" : "path",
|
||||
"value" : "/sys/s3ip/watchdog",
|
||||
"description": "watchdog information"
|
||||
},
|
||||
{
|
||||
"path": "/sys_switch/curr_sensor",
|
||||
"type" : "path",
|
||||
"value" : "/sys/s3ip/curr_sensor",
|
||||
"description": "current sensor information"
|
||||
},
|
||||
{
|
||||
"path": "/sys_switch/slot",
|
||||
"type" : "path",
|
||||
"value" : "/sys/s3ip/slot",
|
||||
"description": "slot information"
|
||||
}
|
||||
]
|
||||
}
|
59
platform/s3ip-sysfs/scripts/s3ip_sysfs_tool.sh
Executable file
59
platform/s3ip-sysfs/scripts/s3ip_sysfs_tool.sh
Executable file
@ -0,0 +1,59 @@
|
||||
#! /bin/bash
|
||||
|
||||
s3ip_start(){
|
||||
sudo insmod /lib/modules/s3ip/s3ip_sysfs.ko
|
||||
sudo insmod /lib/modules/s3ip/syseeprom_device_driver.ko
|
||||
sudo insmod /lib/modules/s3ip/fan_device_driver.ko
|
||||
sudo insmod /lib/modules/s3ip/cpld_device_driver.ko
|
||||
sudo insmod /lib/modules/s3ip/sysled_device_driver.ko
|
||||
sudo insmod /lib/modules/s3ip/psu_device_driver.ko
|
||||
sudo insmod /lib/modules/s3ip/transceiver_device_driver.ko
|
||||
sudo insmod /lib/modules/s3ip/temp_sensor_device_driver.ko
|
||||
sudo insmod /lib/modules/s3ip/vol_sensor_device_driver.ko
|
||||
sudo insmod /lib/modules/s3ip/fpga_device_driver.ko
|
||||
sudo insmod /lib/modules/s3ip/watchdog_device_driver.ko
|
||||
sudo insmod /lib/modules/s3ip/curr_sensor_device_driver.ko
|
||||
sudo insmod /lib/modules/s3ip/slot_device_driver.ko
|
||||
sudo rm -rf /sys_switch
|
||||
sudo /usr/bin/s3ip_load.py
|
||||
echo "s3ip service start"
|
||||
}
|
||||
s3ip_stop(){
|
||||
sudo rmmod slot_device_driver
|
||||
sudo rmmod curr_sensor_device_driver
|
||||
sudo rmmod watchdog_device_driver
|
||||
sudo rmmod fpga_device_driver
|
||||
sudo rmmod vol_sensor_device_driver
|
||||
sudo rmmod temp_sensor_device_driver
|
||||
sudo rmmod transceiver_device_driver
|
||||
sudo rmmod psu_device_driver
|
||||
sudo rmmod sysled_device_driver
|
||||
sudo rmmod cpld_device_driver
|
||||
sudo rmmod fan_device_driver
|
||||
sudo rmmod syseeprom_device_driver
|
||||
sudo rmmod s3ip_sysfs
|
||||
sudo rm -rf /sys_switch
|
||||
echo "s3ip service stop"
|
||||
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
s3ip_start
|
||||
;;
|
||||
stop)
|
||||
s3ip_stop
|
||||
;;
|
||||
status)
|
||||
sudo tree -l /sys_switch
|
||||
;;
|
||||
restart)
|
||||
s3ip_stop
|
||||
s3ip_start
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|status|restart}"
|
||||
exit 1
|
||||
esac
|
||||
exit
|
||||
|
Loading…
Reference in New Issue
Block a user