rootfs_enc1v2_hi3520d_20230731
This commit is contained in:
		
							parent
							
								
									abf7fe89b0
								
							
						
					
					
						commit
						79baf85443
					
				| 
						 | 
				
			
			@ -1,5 +1,11 @@
 | 
			
		|||
#!/bin/sh
 | 
			
		||||
/bin/umount /root/usb
 | 
			
		||||
/bin/mount -t vfat -o codepage=936,utf8 /dev/sda1 /root/usb
 | 
			
		||||
/bin/mount -t ext4 /dev/sda1 /root/usb
 | 
			
		||||
/usr/bin/ntfs-3g /dev/sda1 /root/usb
 | 
			
		||||
. /link/shell/util/func.sh
 | 
			
		||||
jopen /link/config/misc/disk.json
 | 
			
		||||
enable=`jget enable`
 | 
			
		||||
 | 
			
		||||
if [ $enable == "true" ];then
 | 
			
		||||
    used=`jget used`
 | 
			
		||||
    if [ $used == "local" ];then
 | 
			
		||||
        /link/shell/mount.sh
 | 
			
		||||
    fi
 | 
			
		||||
fi
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,2 +1,11 @@
 | 
			
		|||
#!/bin/sh
 | 
			
		||||
umount -l /root/usb
 | 
			
		||||
. /link/shell/util/func.sh
 | 
			
		||||
jopen /link/config/misc/disk.json
 | 
			
		||||
enable=`jget enable`
 | 
			
		||||
 | 
			
		||||
if [ $enable == "true" ];then
 | 
			
		||||
    used=`jget used`
 | 
			
		||||
    if [ $used == "local" ];then
 | 
			
		||||
        umount -l -f /root/usb
 | 
			
		||||
    fi
 | 
			
		||||
fi
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -0,0 +1,16 @@
 | 
			
		|||
{
 | 
			
		||||
  "enable": true,
 | 
			
		||||
  "used": "local",
 | 
			
		||||
  "shared": {
 | 
			
		||||
    "ip": "",
 | 
			
		||||
    "type": "cifs",
 | 
			
		||||
    "path": "",
 | 
			
		||||
    "auth": {
 | 
			
		||||
      "uname": "",
 | 
			
		||||
      "passwd": ""
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  "local": {
 | 
			
		||||
    "device": "/dev/sda1"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,4 +1,14 @@
 | 
			
		|||
[
 | 
			
		||||
  {
 | 
			
		||||
    "version": "2.4.0 build 20230731",
 | 
			
		||||
    "logs": [
 | 
			
		||||
      "修正挂载大容量存储设备时,磁盘空间显示不准确问题",
 | 
			
		||||
      "修正ENC5V2机型,恢复出厂设置小概率异常问题",
 | 
			
		||||
      "SDI输入支持Level B标准",
 | 
			
		||||
      "ENC1V3,ENC4SS,ENCSHV2机型新增遥控器支持",
 | 
			
		||||
      "扩展功能下新增存储挂载设置,支持nfs挂载,windows共享目录挂载,以及磁盘指定分区挂载"
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "version": "2.3.0 build 20230630",
 | 
			
		||||
    "logs": [
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
{
 | 
			
		||||
    "app": "2.0.0 build 20220512_869",
 | 
			
		||||
    "sdk": "2.0.0 build 20220518_20716",
 | 
			
		||||
    "sys": "2.3.0 build 20230630"
 | 
			
		||||
    "sys": "2.4.0 build 20230731"
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,8 +3,15 @@ do
 | 
			
		|||
if [ -f "/root/usb/Tester" ]; then
 | 
			
		||||
    chmod 777 /root/usb/Tester
 | 
			
		||||
    /root/usb/Tester
 | 
			
		||||
else
 | 
			
		||||
    if [ -f "/link/bin/Monitor" ];then
 | 
			
		||||
        pkill Monitor
 | 
			
		||||
    fi
 | 
			
		||||
    if [ -f "/root/usb/config.json" ];then
 | 
			
		||||
	/link/bin/Encoder -c /root/usb/config.json
 | 
			
		||||
    else
 | 
			
		||||
	/link/bin/Encoder
 | 
			
		||||
    fi
 | 
			
		||||
fi
 | 
			
		||||
sleep 2
 | 
			
		||||
done  
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,13 +5,14 @@
 | 
			
		|||
/link/shell/update.sh
 | 
			
		||||
ifconfig lo 127.0.0.1
 | 
			
		||||
/sbin/sysctl -p /etc/sysctl.conf
 | 
			
		||||
/link/shell/init/filesystem.sh
 | 
			
		||||
/link/shell/init/chip.sh
 | 
			
		||||
 | 
			
		||||
if nfsBoot ;then
 | 
			
		||||
/link/shell/init/filesystem.sh
 | 
			
		||||
/link/shell/init/service.sh
 | 
			
		||||
else
 | 
			
		||||
/link/shell/netManager.sh
 | 
			
		||||
/link/shell/init/filesystem.sh
 | 
			
		||||
/link/shell/init/service.sh
 | 
			
		||||
/link/shell/app.sh 
 | 
			
		||||
fi
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,7 +4,6 @@ mkdir /tmp/log
 | 
			
		|||
if [ ! -d /root/usb ]; then
 | 
			
		||||
mkdir /root/usb
 | 
			
		||||
fi
 | 
			
		||||
/link/shell/mountUsb.sh
 | 
			
		||||
 | 
			
		||||
if [ -b /dev/mmcblk0p5 ]; then
 | 
			
		||||
/bin/mount -o remount,rw,sync,barrier=0 /dev/mmcblk0p5 /
 | 
			
		||||
| 
						 | 
				
			
			@ -20,9 +19,6 @@ if [ -b /dev/mmcblk0p6 ]; then
 | 
			
		|||
	    echo -e "\ny" | mkfs.ext4 -T largefile /dev/mmcblk0p6
 | 
			
		||||
 	fi
 | 
			
		||||
    fi
 | 
			
		||||
    umount -f /root/usb/
 | 
			
		||||
    if [ ! -b /dev/sda1 ];then
 | 
			
		||||
	/bin/mount -o rw,sync,barrier=0 /dev/mmcblk0p6 /root/usb
 | 
			
		||||
    fi
 | 
			
		||||
    /link/shell/mount.sh
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,61 @@
 | 
			
		|||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
. /link/shell/util/func.sh
 | 
			
		||||
jopen /link/config/misc/disk.json
 | 
			
		||||
enable=`jget enable`
 | 
			
		||||
 | 
			
		||||
umount_disk(){
 | 
			
		||||
    mnt=`df -h | grep /root/usb | wc -l`
 | 
			
		||||
    count=0
 | 
			
		||||
    while [ $mnt -eq 1 -a $count -le 5 ]
 | 
			
		||||
    do
 | 
			
		||||
        umount -l -f /root/usb
 | 
			
		||||
        mnt=`df -h | grep /root/usb | wc -l`
 | 
			
		||||
        count=`expr $count + 1`
 | 
			
		||||
        sleep 1
 | 
			
		||||
        if [ $count -ge 5 ];then
 | 
			
		||||
            exit
 | 
			
		||||
        fi
 | 
			
		||||
    done
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
had_mounted() {
 | 
			
		||||
    if [ $enable == "true" ];then
 | 
			
		||||
        mnt=`df -h | grep /root/usb | wc -l`
 | 
			
		||||
        echo $mnt
 | 
			
		||||
        return
 | 
			
		||||
    fi
 | 
			
		||||
    echo 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
umount_disk
 | 
			
		||||
 | 
			
		||||
if [ $enable == "true" ];then
 | 
			
		||||
    used=`jget used`
 | 
			
		||||
    if [ $used == "shared" ];then
 | 
			
		||||
        ip=`jget shared.ip`
 | 
			
		||||
        type=`jget shared.type`
 | 
			
		||||
        uname=`jget shared.auth.uname`
 | 
			
		||||
        passwd=`jget shared.auth.passwd`
 | 
			
		||||
        path=`jget shared.path`
 | 
			
		||||
        if [ $type == "cifs" ];then
 | 
			
		||||
            target=//$ip$path
 | 
			
		||||
            if [ -z $uname ];then
 | 
			
		||||
                uname="x"
 | 
			
		||||
		passwd="x"
 | 
			
		||||
	    fi
 | 
			
		||||
	    mount -t $type -o nolock,username=$uname,password=$passwd $target /root/usb
 | 
			
		||||
	else
 | 
			
		||||
	    target=$ip:$path
 | 
			
		||||
	    mount -t $type -o nolock,tcp $target /root/usb
 | 
			
		||||
	fi
 | 
			
		||||
    fi
 | 
			
		||||
    if [ $used == "local" ];then
 | 
			
		||||
	device=`jget local.device`
 | 
			
		||||
	mount -t vfat -o rw,relatime,codepage=936,utf8 $device /root/usb
 | 
			
		||||
	mount -t ext4 $device /root/usb
 | 
			
		||||
	/usr/bin/ntfs-3g $device /root/usb
 | 
			
		||||
    fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
had_mounted
 | 
			
		||||
| 
						 | 
				
			
			@ -1,13 +1,11 @@
 | 
			
		|||
#!/bin/sh
 | 
			
		||||
if [ -e "/dev/sda" ]; then
 | 
			
		||||
umount /root/usb
 | 
			
		||||
if [ -e "/dev/sda1" ]; then
 | 
			
		||||
/bin/mount -t vfat -o rw,relatime,codepage=936,utf8 /dev/sda1 /root/usb
 | 
			
		||||
/bin/mount -t ext4 /dev/sda1 /root/usb
 | 
			
		||||
/usr/bin/ntfs-3g /dev/sda1 /root/usb
 | 
			
		||||
else
 | 
			
		||||
/bin/mount -t vfat -o rw,relatime,codepage=936,utf8 /dev/sda /root/usb
 | 
			
		||||
/bin/mount -t ext4 /dev/sda /root/usb
 | 
			
		||||
/usr/bin/ntfs-3g /dev/sda /root/usb
 | 
			
		||||
. /link/shell/util/func.sh
 | 
			
		||||
jopen /link/config/misc/disk.json
 | 
			
		||||
enable=`jget enable`
 | 
			
		||||
 | 
			
		||||
if [ $enable == "true" ];then
 | 
			
		||||
    used=`jget used`
 | 
			
		||||
    if [ $used == "local" ];then
 | 
			
		||||
        /link/shell/mount.sh
 | 
			
		||||
    fi
 | 
			
		||||
fi
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,263 @@
 | 
			
		|||
<?php
 | 
			
		||||
include( "head.php" );
 | 
			
		||||
?>
 | 
			
		||||
<div id="alert"></div>
 | 
			
		||||
<div class="row disk" style="display: none">
 | 
			
		||||
	<div class="col-md-6 col-md-offset-3">
 | 
			
		||||
		<div class="panel panel-default">
 | 
			
		||||
			<div class="title">
 | 
			
		||||
				<h3 class="panel-title">
 | 
			
		||||
					<cn>磁盘挂载</cn>
 | 
			
		||||
					<en>Mount Disk</en>
 | 
			
		||||
				</h3>
 | 
			
		||||
			</div>
 | 
			
		||||
			<div class="panel-body">
 | 
			
		||||
				<form class="form-horizontal" id="disk" role="form">
 | 
			
		||||
                    <div class="form-group">
 | 
			
		||||
                        <label class="col-md-3 col-sm-4 control-label"><cn>启用挂载</cn><en>Enable</en></label>
 | 
			
		||||
                        <div class="col-md-6 col-sm-8">
 | 
			
		||||
                            <input type="checkbox" zcfg="enable" class="switch form-control">
 | 
			
		||||
                        </div>
 | 
			
		||||
                    </div>
 | 
			
		||||
                    <div class="form-group">
 | 
			
		||||
                        <label class="col-md-3 col-sm-4 control-label"><cn>类型</cn><en>Type</en></label>
 | 
			
		||||
                        <div class="col-md-6 col-sm-8">
 | 
			
		||||
                            <select zcfg="used" class="form-control" id="mountDisk">
 | 
			
		||||
                                <option value="shared" cn="网络磁盘" en="net disk"></option>
 | 
			
		||||
                                <option value="local" cn="移动磁盘" en="usb disk"></option>
 | 
			
		||||
                            </select>
 | 
			
		||||
                        </div>
 | 
			
		||||
                    </div>
 | 
			
		||||
					<div class="form-group" data-attr-used="usb">
 | 
			
		||||
						<label class="col-md-3 col-sm-4 control-label"><cn>设备</cn><en>Device</en></label>
 | 
			
		||||
						<div class="col-md-6 col-sm-8">
 | 
			
		||||
							<select class="form-control" zcfg="local.device" id="diskDevices"></select>
 | 
			
		||||
						</div>
 | 
			
		||||
					</div>
 | 
			
		||||
                    <div class="form-group" data-attr-used="net">
 | 
			
		||||
                        <label class="col-md-3 col-sm-4 control-label"><cn>协议</cn><en>type</en></label>
 | 
			
		||||
                        <div class="col-md-6 col-sm-8">
 | 
			
		||||
                            <select zcfg="shared.type" class="form-control" id="mountType">
 | 
			
		||||
                                <option value="cifs" cn="cifs (windows共享目录)" en="cifs (windows shared directory)"></option>
 | 
			
		||||
                                <option value="nfs">nfs</option>
 | 
			
		||||
                            </select>
 | 
			
		||||
                        </div>
 | 
			
		||||
                    </div>
 | 
			
		||||
                    <div class="form-group" data-attr-used="net">
 | 
			
		||||
                        <label class="col-md-3 col-sm-4 control-label"><cn>IP地址</cn><en>IP Address</en></label>
 | 
			
		||||
                        <div class="col-md-6 col-sm-8">
 | 
			
		||||
                            <input type="text" class="form-control" zcfg="shared.ip">
 | 
			
		||||
                        </div>
 | 
			
		||||
                    </div>
 | 
			
		||||
                    <div class="form-group" data-attr-used="net" data-attr-type="cifs">
 | 
			
		||||
                        <label class="col-md-3 col-sm-4 control-label"><cn>用户名<small style="color: gray">(选填)</small></cn><en>Username</en></label>
 | 
			
		||||
                        <div class="col-md-6 col-sm-8">
 | 
			
		||||
                            <input type="text" class="form-control" zcfg="shared.auth.uname">
 | 
			
		||||
                        </div>
 | 
			
		||||
                    </div>
 | 
			
		||||
                    <div class="form-group" data-attr-used="net" data-attr-type="cifs">
 | 
			
		||||
                        <label class="col-md-3 col-sm-4 control-label"><cn>密码<small style="color: gray">(选填)</small></cn><en>Password</en></label>
 | 
			
		||||
                        <div class="col-md-6 col-sm-8">
 | 
			
		||||
                            <div class="input-group">
 | 
			
		||||
                                <input type="password" class="form-control" zcfg="shared.auth.passwd">
 | 
			
		||||
                                <span class="input-group-addon" id="eyeBtn" style="cursor: pointer"><i class="fa fa-eye-slash"></i></span>
 | 
			
		||||
                            </div>
 | 
			
		||||
                        </div>
 | 
			
		||||
                    </div>
 | 
			
		||||
                    <div class="form-group" data-attr-used="net">
 | 
			
		||||
                        <label class="col-md-3 col-sm-4 control-label"><cn>挂载路径</cn><en>Mount Path</en></label>
 | 
			
		||||
                        <div class="col-md-6 col-sm-8">
 | 
			
		||||
                            <input type="text" class="form-control" zcfg="shared.path">
 | 
			
		||||
                        </div>
 | 
			
		||||
                    </div>
 | 
			
		||||
                    <hr style="margin-top:10px; margin-bottom: 10px;"/>
 | 
			
		||||
                    <div class="form-group">
 | 
			
		||||
                        <label class="col-md-3 col-sm-4 control-label"><cn>挂载状态:</cn><en>Mount status:</en></label>
 | 
			
		||||
                        <div class="col-md-9 col-sm-8" style="padding: 0">
 | 
			
		||||
                            <label class="control-label" id="mountStatus" style="white-space:pre-wrap;color: gray">
 | 
			
		||||
                                <cn>未挂载</cn>
 | 
			
		||||
                                <en>not mounted</en>
 | 
			
		||||
                            </label>
 | 
			
		||||
                        </div>
 | 
			
		||||
                    </div>
 | 
			
		||||
                    <div class="form-group">
 | 
			
		||||
                        <label class="col-md-3 col-sm-4 control-label"><cn>存储空间:</cn><en>Disk space:</en></label>
 | 
			
		||||
                        <div class="col-md-9 col-sm-8" style="padding: 0">
 | 
			
		||||
                            <label class="control-label" id="diskSpace" style="color: gray">
 | 
			
		||||
                                <span>-- / --</span>
 | 
			
		||||
                            </label>
 | 
			
		||||
                        </div>
 | 
			
		||||
                    </div>
 | 
			
		||||
					<hr style="margin-top:10px; margin-bottom: 10px;"/>
 | 
			
		||||
					<div class="form-group">
 | 
			
		||||
						<div class="text-center">
 | 
			
		||||
							<button type="button" id="save" class="btn btn-warning" style="padding: 6px 20px">
 | 
			
		||||
								<cn>保存</cn>
 | 
			
		||||
								<en>Save</en>
 | 
			
		||||
							</button>
 | 
			
		||||
                            <button type="button" id="unmount" class="btn btn-warning" style="padding: 6px 20px">
 | 
			
		||||
                                <cn>卸载</cn>
 | 
			
		||||
                                <en>Unmount</en>
 | 
			
		||||
                            </button>
 | 
			
		||||
						</div>
 | 
			
		||||
					</div>
 | 
			
		||||
                    <div class="form-group" style="padding-top: 30px;padding-left: 30px;color: gray">
 | 
			
		||||
                        <label class="col-md-11 col-sm-12">
 | 
			
		||||
                            <cn>提示: 卸载存储设备或更换挂载设备时,请确保没有处于录制状态</cn>
 | 
			
		||||
                            <en>Tip: Make sure that you are not recording when you unmount the storage device or change the mounted device</en>
 | 
			
		||||
                        </label>
 | 
			
		||||
                    </div>
 | 
			
		||||
				</form>
 | 
			
		||||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
	</div>	
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<script src="js/zcfg.js"></script>
 | 
			
		||||
<script src="vendor/switch/bootstrap-switch.js"></script>
 | 
			
		||||
<script type="text/javascript" src="js/confirm/jquery-confirm.min.js"></script>
 | 
			
		||||
<script>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	$( function () {
 | 
			
		||||
		navIndex( 4 );
 | 
			
		||||
        $.fn.bootstrapSwitch.defaults.size = 'small';
 | 
			
		||||
        $.fn.bootstrapSwitch.defaults.onColor = 'warning';
 | 
			
		||||
 | 
			
		||||
        var config = {};
 | 
			
		||||
        init();
 | 
			
		||||
 | 
			
		||||
        function display(used,type) {
 | 
			
		||||
            if(used == "shared") {
 | 
			
		||||
                $("[data-attr-used=usb]").hide();
 | 
			
		||||
                $("[data-attr-used=net]").show();
 | 
			
		||||
                if(type == "cifs")
 | 
			
		||||
                    $("[data-attr-type=cifs]").show();
 | 
			
		||||
                else
 | 
			
		||||
                    $("[data-attr-type=cifs]").hide();
 | 
			
		||||
            } else {
 | 
			
		||||
                $("[data-attr-used=usb]").show();
 | 
			
		||||
                $("[data-attr-used=net]").hide();
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        function getMountedPath () {
 | 
			
		||||
            func("getMountedPath",[],function (ret) {
 | 
			
		||||
                var tag = "<cn>未挂载</cn><en>Not mounted</en>"
 | 
			
		||||
                $("#diskSpace").html('<span>-- / --</span>');
 | 
			
		||||
                if(ret.result != null) {
 | 
			
		||||
                    tag = "<cn>已挂载</cn><en>mounted</en>  "+ret.result;
 | 
			
		||||
                    func("getDiskSpace",[],function (res) {
 | 
			
		||||
                        $("#diskSpace").html('<cn>已使用</cn><en>Used</en><span> '+res.used +' / '+ res.total+'</span>')
 | 
			
		||||
                    });
 | 
			
		||||
                }
 | 
			
		||||
                $("#mountStatus").html(tag);
 | 
			
		||||
                $(".disk").show();
 | 
			
		||||
            })
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        function init() {
 | 
			
		||||
            func("getLocalDisk",[],function (data) {
 | 
			
		||||
                console.log(data);
 | 
			
		||||
                var lang = $.cookie("lang");
 | 
			
		||||
                for(var i=0;i<data.result.length;i++){
 | 
			
		||||
                    var item = data.result[i];
 | 
			
		||||
                    if(item.name == "/dev/mmcblk0p6") {
 | 
			
		||||
                        if(lang == "cn")
 | 
			
		||||
                            $("#diskDevices").append('<option value="'+item.name+'">设备存储  ( '+item.size+' )</option>')
 | 
			
		||||
                        else
 | 
			
		||||
                            $("#diskDevices").append('<option value="'+item.name+'">device storage  ( '+item.size+' )</option>')
 | 
			
		||||
                    } else {
 | 
			
		||||
                        $("#diskDevices").append('<option value="'+item.name+'">'+item.name+'  ( '+item.size+' )</option>')
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                $.getJSON( "config/misc/disk.json", function ( res ) {
 | 
			
		||||
                    config = res;
 | 
			
		||||
                    display(config.used,config.shared.type);
 | 
			
		||||
                    zcfg( "#disk", config );
 | 
			
		||||
                    getMountedPath();
 | 
			
		||||
                }).fail(function (error){
 | 
			
		||||
                    config = {
 | 
			
		||||
                        enable: false,
 | 
			
		||||
                        used: "shared",
 | 
			
		||||
                        shared: {
 | 
			
		||||
                            ip:"",
 | 
			
		||||
                            type: "cifs",
 | 
			
		||||
                            path: "",
 | 
			
		||||
                            auth : {
 | 
			
		||||
                                uname: "",
 | 
			
		||||
                                passwd: "",
 | 
			
		||||
                            }
 | 
			
		||||
                        },
 | 
			
		||||
                        local: {
 | 
			
		||||
                            device:""
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                    display(config.used,config.shared.type);
 | 
			
		||||
                    zcfg( "#disk", config );
 | 
			
		||||
                    getMountedPath();
 | 
			
		||||
                });
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $("#mountDisk").change(function () {
 | 
			
		||||
            display($(this).val(),config.shared.type);
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        $("#mountType").change(function () {
 | 
			
		||||
            display(config.used,$(this).val());
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        $("#eyeBtn").click(function () {
 | 
			
		||||
            if($(this).children().hasClass("fa-eye-slash")) {
 | 
			
		||||
                $(this).prev().attr("type","text");
 | 
			
		||||
                $(this).children().removeClass("fa-eye-slash").addClass("fa-eye");
 | 
			
		||||
            } else {
 | 
			
		||||
                $(this).prev().attr("type","password");
 | 
			
		||||
                $(this).children().removeClass("fa-eye").addClass("fa-eye-slash");
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        $( "#unmount" ).click( function (){
 | 
			
		||||
            $.confirm( {
 | 
			
		||||
                title: '<h4 style="font-weight: 600"><cn>卸载磁盘</cn><en>Unmount Disk</en></h4>',
 | 
			
		||||
                content: "<cn>是否卸载磁盘,请确保没有处于录制状态</cn><en>Whether to unmount the disk, please make sure it is not in the recording state</en>",
 | 
			
		||||
                buttons: {
 | 
			
		||||
                    ok: {
 | 
			
		||||
                        text: "<cn>卸载</cn><en>Unmount</en>",
 | 
			
		||||
                        btnClass: 'btn-warning',
 | 
			
		||||
                        keys: [ 'enter' ],
 | 
			
		||||
                        action: function () {
 | 
			
		||||
                            func("umountDisk",[],function (res) {
 | 
			
		||||
                                if(res.error != ""){
 | 
			
		||||
                                    htmlAlert("#alert", "danger", res.error, "", 3000);
 | 
			
		||||
                                    return;
 | 
			
		||||
                                }
 | 
			
		||||
                                getMountedPath();
 | 
			
		||||
                            })
 | 
			
		||||
                        }
 | 
			
		||||
                    },
 | 
			
		||||
                    cancel: {
 | 
			
		||||
                        text: "<cn>取消</cn><en>Cancel</en>"
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            } );
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        $( "#save" ).click( function (){
 | 
			
		||||
            func("saveConfigFile",{path: "config/misc/disk.json",data:JSON.stringify(config,null,2)},function (res) {
 | 
			
		||||
                if(res.result == "OK") {
 | 
			
		||||
                    htmlAlert( "#alert", "success", "<cn>保存成功</cn><en>Saved successfully!</en>", "", 3000 );
 | 
			
		||||
                    func("mountDisk",[],function (data){
 | 
			
		||||
                        getMountedPath();
 | 
			
		||||
                    })
 | 
			
		||||
                }
 | 
			
		||||
            });
 | 
			
		||||
        });
 | 
			
		||||
	} );
 | 
			
		||||
</script>
 | 
			
		||||
<?php
 | 
			
		||||
include( "foot.php" );
 | 
			
		||||
?>
 | 
			
		||||
| 
						 | 
				
			
			@ -358,8 +358,8 @@ include( "head.php" );
 | 
			
		|||
                })
 | 
			
		||||
            } );
 | 
			
		||||
 | 
			
		||||
            rpc( "rec.getState", null, function ( data ) {
 | 
			
		||||
                if($.isEmptyObject(data))
 | 
			
		||||
            func("getDiskSpace",[],function (data) {
 | 
			
		||||
                if(data.total == 0)
 | 
			
		||||
                    $('#space').text("--/--");
 | 
			
		||||
                else
 | 
			
		||||
                    $('#space').text(data.used + " / " + data.total);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -396,26 +396,80 @@ function formatDisk() {
 | 
			
		|||
	$result->result = "OK";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function getMountedPath() {
 | 
			
		||||
    global $result;
 | 
			
		||||
    exec("df -h /root/usb | awk 'NR==2 {print $1}' | grep -v '/dev/root\|ubi0:ubifs'",$output);
 | 
			
		||||
    $result->result = $output[0];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function getLocalDisk() {
 | 
			
		||||
    global $result;
 | 
			
		||||
    $output = shell_exec("ls /dev/sd*");
 | 
			
		||||
    $arys = explode("\n",$output);
 | 
			
		||||
 | 
			
		||||
    $hardware = json_decode(file_get_contents("/link/config/hardware.json"));
 | 
			
		||||
    $chip = $hardware->chip;
 | 
			
		||||
    if($chip == "SS524V100" || $chip == "SS528V100")
 | 
			
		||||
        $arys[] = "/dev/mmcblk0p6";
 | 
			
		||||
 | 
			
		||||
    $retList = array();
 | 
			
		||||
    for($i=0;$i<count($arys);$i++) {
 | 
			
		||||
        $item = $arys[$i];
 | 
			
		||||
        if(empty($item) || substr_count($output, $item) > 1)
 | 
			
		||||
            continue;
 | 
			
		||||
        $size = shell_exec("blockdev --getsize64 ".$item);
 | 
			
		||||
        $diskInfo = array(
 | 
			
		||||
            "name" => $item,
 | 
			
		||||
            "size" => formatBytes($size)
 | 
			
		||||
        );
 | 
			
		||||
        $retList[] = $diskInfo;
 | 
			
		||||
    }
 | 
			
		||||
    $result->result = $retList;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function mountDisk() {
 | 
			
		||||
	global $result;
 | 
			
		||||
	$output=array();
 | 
			
		||||
	exec( "ls /dev/sda",$output);
 | 
			
		||||
	if(count($output) == 0)
 | 
			
		||||
	{
 | 
			
		||||
		$result->error = "<cn>没有检测到外部存储设备</cn><en>No external storage device is detected</en>";
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
	unset($output);
 | 
			
		||||
	exec("mount -t vfat -o rw,relatime,codepage=936,utf8 /dev/sda1 /root/usb");
 | 
			
		||||
	exec("mount -t ext4 /dev/sda1 /root/usb");
 | 
			
		||||
	exec("ntfs-3g /dev/sda1 /root/usb");
 | 
			
		||||
	exec("df -h | grep /root/usb",$output);
 | 
			
		||||
	if(count($output) == 1)
 | 
			
		||||
		$result->result = "OK";
 | 
			
		||||
	else
 | 
			
		||||
    exec("/link/shell/mount.sh",$output);
 | 
			
		||||
    $result->result = $output[0];
 | 
			
		||||
	if($output[0] == "0")
 | 
			
		||||
        $result->error = "<cn>外部存储设备挂载失败</cn><en>The external storage device failed to be mounted</en>";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function formatBytes($total) {
 | 
			
		||||
    $config = [
 | 
			
		||||
        '4' => 'TB',
 | 
			
		||||
        '3' => 'GB',
 | 
			
		||||
        '2' => 'MB',
 | 
			
		||||
        '1' => 'KB'
 | 
			
		||||
    ];
 | 
			
		||||
    foreach ($config as $key => $value) {
 | 
			
		||||
        if ($total >= pow(1024, $key)) {
 | 
			
		||||
            return number_format($total / pow(1024, $key), 2) . $value;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    return '0KB';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function getDiskSpace() {
 | 
			
		||||
    global $result;
 | 
			
		||||
    $mountDir = '/root/usb';
 | 
			
		||||
    $output = shell_exec('df ' . $mountDir);
 | 
			
		||||
 | 
			
		||||
    if(strpos($output, $mountDir) != false) {
 | 
			
		||||
        $totalSpace = disk_total_space($mountDir);
 | 
			
		||||
        $freeSpace = disk_free_space($mountDir);
 | 
			
		||||
        $usedSpace = $totalSpace - $freeSpace;
 | 
			
		||||
 | 
			
		||||
        $result->total = formatBytes($totalSpace);
 | 
			
		||||
        $result->free =  formatBytes($freeSpace);
 | 
			
		||||
        $result->used =  formatBytes($usedSpace);
 | 
			
		||||
    } else {
 | 
			
		||||
        $result->total = 0;
 | 
			
		||||
        $result->free =  0;
 | 
			
		||||
        $result->used =  0;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function setTimeZone() {
 | 
			
		||||
	global $result;
 | 
			
		||||
	$area = $_POST["timeArea"];
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -120,6 +120,12 @@ include("headhead.php");
 | 
			
		|||
            <?php
 | 
			
		||||
            }
 | 
			
		||||
            ?>
 | 
			
		||||
              <li>
 | 
			
		||||
                  <a href="disk.php"><i class="fa fa-database"></i>
 | 
			
		||||
                      <cn>存储挂载</cn>
 | 
			
		||||
                      <en>Mount Disk</en>
 | 
			
		||||
                  </a>
 | 
			
		||||
              </li>
 | 
			
		||||
          </ul>
 | 
			
		||||
        </li>
 | 
			
		||||
        <li role="presentation" class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="true"> <i class="fa fa-gears menuIcon"></i>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -82,7 +82,7 @@ include( "head.php" );
 | 
			
		|||
                                    <span id="fileName"></span>
 | 
			
		||||
<!--                                    <strong id="time">[--:--]</strong>-->
 | 
			
		||||
                                </div>
 | 
			
		||||
                                <div class="col-sm-6 text-center">
 | 
			
		||||
                                <div class="col-sm-5 text-right" style="padding: 0">
 | 
			
		||||
                                    <button type="button" id="startRecord" class="btn btn-warning">
 | 
			
		||||
                                        <i class="fa fa-video-camera"></i>
 | 
			
		||||
                                        <cn>录制</cn>
 | 
			
		||||
| 
						 | 
				
			
			@ -94,7 +94,7 @@ include( "head.php" );
 | 
			
		|||
                                        <en>Stop All</en>
 | 
			
		||||
                                    </button>
 | 
			
		||||
                                </div>
 | 
			
		||||
                                <div class="col-sm-4 text-left" style="line-height: 34px;">
 | 
			
		||||
                                <div class="col-sm-5 text-right" style="line-height: 34px;padding: 0 10px">
 | 
			
		||||
                                    <cn>已用空间</cn>
 | 
			
		||||
                                    <en>Used Space</en>:
 | 
			
		||||
                                    <span id="space">-</span>
 | 
			
		||||
| 
						 | 
				
			
			@ -735,11 +735,14 @@ include( "head.php" );
 | 
			
		|||
        }
 | 
			
		||||
 | 
			
		||||
        function getState() {
 | 
			
		||||
            rpc( "rec.getState", null, function ( data ) {
 | 
			
		||||
                if($.isEmptyObject(data))
 | 
			
		||||
            func("getDiskSpace",[],function (data) {
 | 
			
		||||
                if(data.total == 0)
 | 
			
		||||
                {
 | 
			
		||||
                    $('#space').text("--/--");
 | 
			
		||||
                else
 | 
			
		||||
                    $('#space').css("margin-right","10px");
 | 
			
		||||
                } else {
 | 
			
		||||
                    $('#space').text(data.used + " / " + data.total);
 | 
			
		||||
                }
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
		Loading…
	
		Reference in New Issue