【摘要】 本发明提供一种实现Linux系统下擦写DMI数据的方法。该方法首先在Linux操作系统下构建虚拟8086模式运行的内存环境,然后使CPU及内存运行环境等跳入该虚拟8086模式,执行PnP调用例程以进行DMI数据的擦写,执行完PnP调用例程后返回Linux操作系统。本发明还提供一种实现Linux系统下擦写DMI数据的装置。本发明不需要安装DOS系统,在Linux操作系统下就可以直接执行PnP调用例程以实现DMI MIFD中数据的擦写,因而,节省了时间与操作,并且利用本发明所提供的方法不会使计算机当机,因而更安全。 【专利类型】发明申请 【申请人】鸿富锦精密工业(深圳)有限公司; 鸿海精密工业股份有限公司 【申请人类型】企业 【申请人地址】518109 广东省深圳市宝安区龙华镇油松第十工业区东环二路2号 【申请人地区】中国 【申请人城市】深圳市 【申请人区县】宝安区 【申请号】CN200810306619.X 【申请日】2008-12-29 【申请年份】2008 【公开公告号】CN101770396A 【公开公告日】2010-07-07 【公开公告年份】2010 【授权公告号】CN101770396B 【授权公告日】2012-12-19 【授权公告年份】2012.0 【IPC分类号】G06F9/46 【发明人】童默颖 【主权项内容】一种实现Linux系统下擦写DMI数据的方法,其特征在于,该方法包括:创建一个新进程;映射BIOS的中断向量表及BIOS数据到该进程底部的一段空间;在上述空间内选择一段小于该空间的子空间,作为虚拟8086模式的系统堆栈空间,并将该系统堆栈空间的地址赋给该进程的上下文;从BIOS的物理地址中通过字符串比对的方法寻找一个PnP标签,以在紧挨着该PnP标签的一个数据结构中找到PnP调用例程的入口点;设置I/O操作的允许权限,以使PnP调用例程能够进行输入/输出操作;接收16位参数,将该16位参数转换为32位,并将该参数存储到上述的系统堆栈空间;设置虚拟8086的运行环境,并将该运行环境赋给该进程的上下文;设置信号阻塞,以防止其他进程的信号打断该进程向虚拟8086模式跳转的操作;及利用Linux系统内核所提供的虚拟8086系统调用函数使该进程进入到虚拟8086模式,并执行PnP调用例程以从上述系统堆栈空间中读出所述参数,并根据该参数对DMI数据进行擦写操作。 【当前权利人】鸿富锦精密工业(深圳)有限公司; 鸿海精密工业股份有限公司 【当前专利权人地址】广东省深圳市宝安区龙华镇油松第十工业区东环二路2号; 中国台湾新北市土城区中山路66号 【专利权人类型】有限责任公司(外国法人独资) 【统一社会信用代码】914403007084307436 【被引证次数】4 【被他引次数】4.0 【家族引证次数】4.0 【家族被引证次数】6