免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7875 | 回复: 7
打印 上一主题 下一主题

[C] 如何读取BIOS的版本日期 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-13 10:22 |只看该作者 |倒序浏览
在DOS的Turbo C中,下面这一行程序即可读取BIOS日期。
for(i=0;i<8;i++) BIOS_Ver(i)=peekb(0xffff,5+i);


但Linux并没有peekb(),请问前辈们,
要读取BIOS日期该如何解决?

感激不尽。

[ 本帖最后由 peterlin82 于 2008-10-14 09:38 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-10-13 10:35 |只看该作者
也可以直接对io端口操作,需要root权限,并用ioperm设置要读写的端口范围。

论坛徽章:
0
3 [报告]
发表于 2008-10-13 13:29 |只看该作者
貌似有一个biostime函数

论坛徽章:
0
4 [报告]
发表于 2008-10-14 08:30 |只看该作者
原帖由 熏红猴 于 2008-10-13 10:35 发表
也可以直接对io端口操作,需要root权限,并用ioperm设置要读写的端口范围。



谢谢您的解说,
但小弟程度不太好,我把程序改为:

for(i=0;i<8;i++) ioperm(0xffff,5+i,BIOS_Ver(i));

但得到的是一堆的乱码。
可否麻烦前辈再指点一下迷津。
谢谢。


PS.小弟查Linux并没有biostime函数

[ 本帖最后由 peterlin82 于 2008-10-14 08:52 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2008-10-14 09:13 |只看该作者
http://topic.csdn.net/t/20050921/13/4284252.html
这里有个例子。
其实可以不用汇编,Linux下面也有outb,inb函数。

论坛徽章:
0
6 [报告]
发表于 2008-10-14 09:44 |只看该作者
原帖由 hohoxu_hao115 于 2008-10-14 09:13 发表
http://topic.csdn.net/t/20050921/13/4284252.html
这里有个例子。
其实可以不用汇编,Linux下面也有outb,inb函数。



谢谢您的解说,
不过前辈误会我的意思了。
小弟是要取得BIOS的版本日期,而非BIOS的系统日期。

论坛徽章:
0
7 [报告]
发表于 2008-10-14 09:49 |只看该作者
惭愧。
发布时间吗?
linux下面有个dmidecode可以得到这个信息。
它是通过读取/dev/mem获取的。
楼主可以参考下dmidecode的源代码。

论坛徽章:
0
8 [报告]
发表于 2008-10-14 11:07 |只看该作者
原帖由 hohoxu_hao115 于 2008-10-14 09:49 发表
惭愧。
发布时间吗?
linux下面有个dmidecode可以得到这个信息。
它是通过读取/dev/mem获取的。
楼主可以参考下dmidecode的源代码。




再次感谢前辈的回覆。
小弟下载dmidecode source。
他可以读取BIOS的Release日期。
但该日期与我在DOS下用
for(i=0;i<8;i++) BIOS_Ver(i)=peekb(0xffff,5+i);
所读到的日期,在电脑A相同,但在电脑B却不相同。

以下是我在电脑A中执行结果:
DOS:10/06/08
Linux(dmidecode):10/06/2008

但在电脑B结果却不相同:
DOS:06/21/04
Linux(dmidecode):04/02/01

请问前辈知道原因吗?

thanks a lot.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP