watchdog 启用与测试 & WebRTC

1.  得到系统中soft dog的信息

# modinfo softdog    
filename: /lib/modules/3.2.0-4-686-pae/kernel/drivers/watchdog/softdog.ko

2. 加载模块

# insmod /lib/modules/3.2.0-4-686-pae/kernel/drivers/watchdog/softdog.ko

3. 此刻可见/dev/watchdog, 或创建

# mknod /dev/watchdog c 10 130

4. 查看dev并赋予权限

# ls -l /dev/watchdog
crw------- 1 root root 10, 130 Mar 21 16:27 /dev/watchdog

# chmod o+rw /dev/watchdog

5. 测试使用watch dog

简单可写为:

# echo 0 > /dev/watchdog         ///从此刻起计时,启用watchdog

# echo -n V > /dev/watchdog    ///停用watchdog

6. 硬件与软件watchdog的区别 
硬件watchdog必须有硬件电路支持, 设备节点/dev/watchdog对应着真实的物理设备, 不同类型的硬件watchdog设备由相应的硬件驱动管理。软件watchdog由一内核模块softdog.ko 通过定时器机制实现,/dev/watchdog并不对应着真实的物理设备,只是为应用提供了一个与操作硬件watchdog相同的接口。

硬件watchdog比软件watchdog有更好的可靠性。 软件watchdog基于内核的定时器实现,当内核或中断出现异常时,软件watchdog将会失效。而硬件watchdog由自身的硬件电路控制, 独立于内核。无论当前系统状态如何,硬件watchdog在设定的时间间隔内没有被执行写操作,仍会重新启动系统

看门狗是混杂设备,所以主设备号是10,/include/linux/miscdevice.h 中定义他的次设备号为130

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <unistd.h>
 4
 5 #include <sys/types.h>
 6 #include <sys/stat.h>
 7 #include <fcntl.h>
 8 #include <termios.h>
 9 #include <errno.h>
10 #include <signal.h>
11 #include <time.h>
12 #include <pthread.h>
13 #include <sys/time.h>
14 #include <linux/watchdog.h>
15 #include <sys/ioctl.h>
16
17 time_t  backTime;
18 struct tm *pBackTime;
19 int wt_fd;
20
21 static void sigAlarm(int sig)
22 {
23     char flag = ‘0‘;
24     (void)time(&backTime);
25     pBackTime= localtime(&backTime);
26     printf("day: %d; hour: %d; min: %d; sec: %d\n", pBackTime->tm_mday, pBackTime->tm_hour, pBackTime->tm_min, pBackTime->tm_sec);
27
28     write(wt_fd, &flag, 1); //Reset Watchdog  喂狗
29     alarm(2);
30     return;
31 }
32
33
34 int main()
35 {
36        char flag = ‘V‘;
37        int ret;
38        int timeout = 42;
39
40        if(SIG_ERR == signal(SIGALRM, sigAlarm))
41        {
42            perror("signal (SIGALARM) error");
43        }
44
45        wt_fd = open("/dev/watchdog", O_RDWR);
46        if(wt_fd <= 0)
47        {
48            printf("Fail to open watchdog  device!\n");
49        }
50        else
51        {
52            write(wt_fd,NULL,0);
53            printf("Turn on Watch Dog\n");
54            ret = ioctl(wt_fd, WDIOC_SETTIMEOUT, &timeout);
55            if(EINVAL == ret)
56            {
57                 printf("EINVAL Returned\n");
58            }
59            else if(EFAULT == ret)
60            {
61                 printf("EFAULT Returned\n");
62            }
63            else if(0 == ret)
64            {
65                 printf("Set timeout %d secs success\n", timeout);
66            }
67            else
68            {
69                 printf("Ret %d\n", ret);
70            }
71        }
72
73        alarm(3);
74
75        while(1);
76
77        write(wt_fd, &flag, 1);
78        printf("Turned off Watch Dog\n");
79        close(wt_fd);
80        return 0;
81 }


webRTC & libjingle

http://blog.sina.com.cn/s/blog_69a04cf401016gz4.html

时间: 2024-11-08 02:15:26

watchdog 启用与测试 & WebRTC的相关文章

启用WCF测试客户端的相关技巧

在Visual Studio之外打开WCF测试客户端有两种方法:第一种方法是到其所在路径(Visual Studio安装路径\Common7\IDE\WcfTestClient.exe)双击打开.第二种方法是在“Visual Studio命令提示(Visual Studio Command Prompt)”中输入“WcfTestClient”命令,如图1所示: 图1 Visual Studio不同的项目模板,提供了不同的WCF测试客户端启动方法.下面这张表格是Visual Studio 2010

使用WCF测试客户端 z

http://blog.csdn.net/u013036274/article/details/50570989 [是什么] WCF测试客户端(WCF Test Client)是一个用来测试WCF服务程序的调试工具,能够使开发WCF服务更加方便. [打开方法] 有四种打开方式 1.找到Vs的安装路径,找到Common7\IDE\WcfTestClient.exe,双击打开.如图 2.在Visual Studio命令提示中输入“WcfTestClient”回车即可. 3.打开VS,项目--属性-调

Android IOS WebRTC 音视频开发总结(七八)-- 为什么WebRTC端到端监控很关键?

本文主要介绍WebRTC端到端监控(我们翻译和整理的,译者:weizhenwei,校验:blacker),最早发表在[编风网] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:blackerteam 或 webrtcorgcn). callstats是一家做实时通讯性能测量的公司,他们博客里面提到了实时通讯过程中性能的重要性,下面是博客内容: 性能监控是系统和服务开发的一个重要方面,它可以帮助我们检测和诊断性能问题,并有助于维护系统的高可用性.现如今工程团队都基于数据

OpenGL ES 中的模板测试

模板测试的主要功能是丢弃一部分片元,相对于深度检测来说,模板测试提出的片元数量相对较少.模板测试发生在剪裁测试之后,深度测试之前. 使用模板测试时很重要的代码提示: 1 1.glClear( GL_STENCIL_BUFFER_BIT); 2 //启用模板测试 3 2.glEnable(GL_STENCIL_TEST); 大多数情况你的模板遮罩(stencil mask)写为0x00或0xFF就行. 1 // 0xFF == 0b11111111,此时,模板值与它进行按位与运算结果是模板值,模板

OpenGL ES 2.0 剪裁测试

剪裁测试:可以在渲染时用来限制绘制区域,通过此技术可以在屏幕(帧缓冲)上指定一个矩形区域. //启用剪裁测试 GLES20.glEnable(GL10.GL_SCISSOR_TEST); //设置区域 GLES20.glScissor(0,480,230,200); //禁用剪裁测试 GLES20.glDisable(GL10.GL_SCISSOR_TEST); Alpha测试:当绘制一个片元时,首先检测其Alpha值,若Alpha值满足要求,则通过测试,绘制此片元,负责丢弃此片元,不进行绘制.

社会,移动和时代的下一次浪潮——企业群体测试

? Saisubramanian Sivasailem在软件质量保证方面有超过九年的经验,并已成功测试并交付了几项战略合约.他的专业技术涵盖了自动化测试咨询,终端到终端的测试评估,产品工程和移动QA解决方案.目前他在Cognizant Technology Solutions担任产品经理,负责管理端到端的QA产品生命周期,从战略规划,产品演变,直到进入到市场. Dilipkarthik Jayamohan是伊利诺理工大学马德拉斯分校的一名工程师,拥有FMS, Delhi的工商管理硕士学位.Dil

OpenGL-----深度测试,剪裁测试、Alpha测试和模板测试

片断测试其实就是测试每一个像素,只有通过测试的像素才会被绘制,没有通过测试的像素则不进行绘制.OpenGL提供了多种测试操作,利用这些操作可以实现一些特殊的效果.我们在前面的课程中,曾经提到了“深度测试”的概念,它在绘制三维场景的时候特别有用.在不使用深度测试的时候,如果我们先绘制一个距离较近的物体,再绘制距离较远的物体,则距离远的物体因为后绘制,会把距离近的物体覆盖掉,这样的效果并不是我们所希望的.如果使用了深度测试,则情况就会有所不同:每当一个像素被绘制,OpenGL就记录这个像素的“深度”

Lync 项目经验-29-批量-启用用户-启用企业语音-设置分机号(项目中)

1.启用用户 #测试用户 Enable-CsUser -Identity SFBDemo01 -RegistrarPool SFBFEPool01.i-x-Cloud.com -SipAddress "sip:[email protected]" Enable-CsUser -Identity SFBDemo02 -RegistrarPool SFBFEPool01.i-x-Cloud.com -SipAddress "sip:[email protected]"

SSL/TLS深度解析--测试TLS/SSL加密

项目地址 https://github.com/drwetter/testssl.sh testssl.sh 是一个免费且开源的功能丰富的命令行工具,用于在 Linux/BSD 服务器上检查支持加密,协议和一些加密缺陷的支持 TLS/SSL 加密的服务. testssl git clone --depth 1 --branch 2.9.5 https://github.com/drwetter/testssl.sh.git 错误 Fatal error: Neither "dig",