#!/bin/bash # This script load/unload centec kernel modules ### BEGIN INIT INFO # Provides: platform-modules-v682-48y8c-d # Required-Start: # Required-Stop: # Should-Start: # Should-Stop: # Default-Start: S # Default-Stop: 0 6 # Short-Description: Load Centec kernel modules ### END INIT INFO function install_python_api_package() { device="/usr/share/sonic/device" platform=$(/usr/local/bin/sonic-cfggen -H -v DEVICE_METADATA.localhost.platform) rv=$(pip3 show sonic-platform > /dev/null 2>/dev/null) if [ $? -ne 0 ]; then rv=$(pip3 install $device/$platform/sonic_platform-1.0-py3-none-any.whl) fi } function load_system_eeprom_file() { device="/usr/share/sonic/device" platform=$(/usr/local/bin/sonic-cfggen -H -v DEVICE_METADATA.localhost.platform) mkdir -p /mnt/onie-boot mount -t ext4 -L ONIE-BOOT /mnt/onie-boot dd if=/mnt/onie-boot/eeprom_file of=$device/$platform/eeprom_file bs=1 skip=1046528 dd if=/mnt/onie-boot/eeprom_file of=$device/$platform/eeprom_cipher bs=1 count=32 MACADDR=`decode-syseeprom | grep "Base MAC Address" | awk '{print $6}'` ifconfig eth0 hw ether $MACADDR umount /mnt/onie-boot rmdir /mnt/onie-boot } function load_kernel_modules() { depmod -a modprobe i2c-dev modprobe centec_v682_48y8c_d_platform modprobe dal modprobe tun modprobe tap } function remove_kernel_modules() { modprobe -r tap modprobe -r tun modprobe -r dal modprobe -r centec_v682_48y8c_d_platform modprobe -r i2c-dev } function release_board() { systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target chmod a+x /usr/local/lib/python3.9/dist-packages/libSUSI-4.00.so.1 chmod a+x /usr/local/lib/python3.9/dist-packages/_Susi4.so chmod a+x /usr/local/lib/python3.9/dist-packages/release.py /usr/local/lib/python3.9/dist-packages/release.py } case "$1" in start) echo -n "Load Centec kernel modules... " release_board load_kernel_modules install_python_api_package load_system_eeprom_file echo "done." ;; stop) echo -n "Unload Centec kernel modules... " remove_kernel_modules echo "done." ;; force-reload|restart) echo "Not supported" ;; *) echo "Usage: /etc/init.d/platform-modules-v682-48y8c-d {start|stop}" exit 1 ;; esac exit 0