前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hwclock_k8s 源码分析

Hwclock_k8s 源码分析

作者头像
全栈程序员站长
发布2022-11-01 16:34:09
3190
发布2022-11-01 16:34:09
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

hwclock解析

hwclock用于操纵rtc中的时间


1/判断命名所属包

代码语言:javascript
复制
linux@ubuntu:~/project/tmp/300/drv/test_trc$ dpkg -S hwclock
util-linux: /etc/init.d/hwclock-save
util-linux: /usr/share/man/man8/hwclock.8.gz
util-linux: /etc/init/hwclock.conf
util-linux: /usr/share/doc/util-linux/README.Debian.hwclock
util-linux: /etc/init.d/hwclock
util-linux: /sbin/hwclock
util-linux: /etc/init/hwclock-save.conf

2/下载源码包

代码语言:javascript
复制
mkdir src;cd src
sudo apt-get source util-linux
//会下载四个文件
linux@ubuntu:~/project/tmp/src$ ll
total 6148
drwxrwxr-x  3 linux linux    4096  4月 25 21:00 ./
drwxrwxr-x 24 linux linux    4096  4月 25 20:55 ../
drwxr-xr-x 31 root  root     4096  4月 25 21:00 util-linux-2.20.1/
-rw-r--r--  1 root  root   101161  3月 30  2012 util-linux_2.20.1-1ubuntu3.diff.gz
-rw-r--r--  1 root  root     2972  3月 30  2012 util-linux_2.20.1-1ubuntu3.dsc
-rw-r--r--  1 root  root  6174190 12月 17  2011 util-linux_2.20.1.orig.tar.gz

3/打印运行make

代码语言:javascript
复制
./configure
make -n > log
//通过分析文件log,可以看到他切进了hwclock目录,并make all

4/分析子目录的makefile

代码语言:javascript
复制
cd hwclock;make all -n > log
//分析log可以看出,编译了目录下的所有.c文件成.o,也编译了lib/strutils.c文件成.o,然后用libtool 链接了所有的.o文件成hwclock

5/分析主文件

代码语言:javascript
复制
//一般情况下,主文件的名字很有特点,就是和程序很类似.或者是main.c之类的
所以我们分析hwclock.c
里面一开始就用了
1. 用getopt_long对参数解析,并设置状态位
2.根据不同的状态位执行不同的函数
2.1determine_clock_access_method函数确定了操作时钟的方法套件,可以用 probe_for_rtc_clock 或者 probe_for_cmos_clock
2.2systohw对应rtc这块用了probe_for_rtc_clock的套件,先获取时钟,然后再用ioctl
2.2systohw对应coms这块用了probe_for_cmos_clock 的套件,先获取时钟,然后在用coms_write
2.3注意一点,不管是coms还是etc,写入hw的时间都是BCD码.

##另:

  • 分析源码其实也可以从busybox分析.busybox好像主打rtc.而apt-get源上的兼容cmos和rtc
  • busybox的源码和从apt-get源下的源码是差不多的.只不过在打开etc设备的时候,busybox这块会一直检查是否EBUSY
  • 而在实际运行过程中,arm板上 hwclock -w 执行过程会长达十秒钟,因为卡在了打开设备失败.
  • 但是pc机上,运行hwclock却没有这种问题,大概是用的cmos,直接写了.

##参考文档

TCP/IP 某些最常见的错误原因码 (errno)列表

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月24日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • hwclock解析
  • 1/判断命名所属包
  • 2/下载源码包
  • 3/打印运行make
  • 4/分析子目录的makefile
  • 5/分析主文件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档