bios

Query Hardware-Specific Information on Windows With C++

和自甴很熟 提交于 2019-12-06 06:27:37
问题 Specifically, I want to query a system's GPU for the following: The name of the GPU, the series (e.g. ATI Radion 5800, NVIDIA GeForce 4 MX, etc.), the BIOS version, the driver version, the GPU clock speed, the GPU memory speed, the memory type, the memory size, the bus width, the bandwidth, the type of bus being used, the vendor. Any ideas? The application I'm developing just has to display this information to the user. 回答1: I suggest querying WMI, using the following WMI objects: Win32

Proper way to access registers in a PCI configuration space

时间秒杀一切 提交于 2019-12-06 06:22:37
问题 When you need to access registers in the PCI configuration space, do you simply need to used built-in BIOS functions to read/write DWORDs into the configuration space? For example, if I am trying to use an IDE controller that is on B0:D31:F1 do I proceed to read/write the configuration register using that BDF as the parameters to the BIOS functions? So if I wanted to get the vendor id I would read the first DWORD in a given BDF? Or am I just way off base? EDIT: In the PCI BIOS specification,

Ubuntu 16.04将硬件时间UTC改为CST

风流意气都作罢 提交于 2019-12-06 06:04:24
在安装 Ubuntu 双系统的情况下,Ubuntu的时间总会和Windows的时间相差8小时,原因在于widows认为BIOS时间是本地时间,Ubuntu认为BIOS时间是UTC时间,这样从Ubuntu重启到ubuntu会发现时间相差8小时,Ubuntu会经常与NTP服务器时间进行同步,但Windows不会。 所以我们需要将Ubuntu的时间改成本地时间 以前的方法是 编辑/etc/default/rcS 将UTC=yes改成UTC=no Ubuntu 16.04使用systemd启动之后,时间也改成了由timedatectl来管理 更改方法是执行 timedatectl set-local-rtc 1 --adjust-system-clock 最后重启 来源: oschina 链接: https://my.oschina.net/u/1757911/blog/1820378

How does UEFI work?

谁说我不能喝 提交于 2019-12-05 20:20:09
问题 I was studying about bootloaders when exactly came upon the term UEFI. I can understand some things about UEFI. But still, In what mode(Real,Protected,Long) does a system with UEFI start? If normal boot loaders cant work with UEFI, Then what is the alternate of boot loader while dealing with UEFI? And do I need any other programming to create one, than assembly? 回答1: UEFI firmware runs in 64 bit long mode for 64 bit platforms and flat mode for 32 bit platforms; Unlike BIOS, UEFI features its

二、常用固件升级

浪子不回头ぞ 提交于 2019-12-05 12:14:35
1.什么是固件? 固件(Firmware)就是写入EPROM(电可擦写只读存储器)或EEPROM(电可擦可编程只读存储器)中的程序。这种设备内部保存的设备“驱动程序”,通过这种驱动程序,操作系统才能标准的实现机器的特定运行。同样,固件也是担任着一个系统最基础最底层工作的软件,这是硬件设备的灵魂,有一些设备除了固件,在没有任何的软件,因此,可以说固件也是决定硬件的性能和功能的。 早期固件芯片采用了ROM设计,Firmware代码是在生产过程中固化的,用任何手段都无法修改。随着技术的不断发展,修改固件以适应不断更新的硬件环境成了用户们的迫切要求,所以,可重复写入的可编程可擦除只读存储器EPROM(Erasable Programmable ROM),EEPROM和flash出现了。这些芯片是可以重复刷写的,让固件得以修改和升级。 2.固件微码的区别 固件一般指运行在Host内非主CPU上的其他部件中的可执行机器码,其可以是裸程序,也可以是操作系统+程序。 “非主CPU的其他部件”,典型比如IO HBA卡比如SCSI、SAS、FC卡,以及以太网卡、显卡、光驱、硬盘。这些设备内,都会有一个或者多个嵌入式CPU核心在运行固件从而发挥作用。这些设备所处理的指令逻辑还是比较复杂的,比如解析SCSI指令,用CPU+固件来完成就具有最高的灵活性,虽然也可以将解析工作固化成纯数字电路译码器

【转】多系统引导背后的知识:磁盘、分区、文件系统、GPT、UEFI(仅用于学习,不用做商业用途)

一笑奈何 提交于 2019-12-05 06:18:26
【Windows 7 + Windows 8 (PE) + Windows 10 + deepin-Linux + MacOS X】 <电脑修的好,备胎当到老> 前言:随着软硬件技术的发展UEFI引导逐渐取代传统BIOS引导,最新的操作系统都适用于EFI引导,这让各他们可以共存于一台机器。 工具:两个8GB U盘(一个安装PE,一个刻录系统)、Disk Genius磁盘工具、微PE、EasyUEFI、EasyBCD、TransMac v12。 笔记本型号:戴尔灵越5557 配置:i5-6200U + 8G RAM + SAMSUNG 860 EVO SSD(512GB)+ BCM94352Z(802.11ac 支持黑苹果千兆网卡) 引导过程: 磁盘结构: Clover Bootloader引导界面: 以下是我对这些系统的使用方式: Windows 7:兼容老旧的开发工具、驱动程序,用于各种EDA和嵌入式开发。 Windows 10:微软最新的操作系统,安装VS2017学习UWP开发。 Deepin-Linux:用于学习Linux、Python等。 MacOS X:安装Xcode学习Swift,IOS开发等。 Windows 8 PE:Win8内核版微PE,集成大量引导修复、磁盘工具,备份和修复其他系统。 1. 磁盘和文件系统 作为数据存储的介质,现在市面上硬盘有机械硬盘

IOMMU initialization without BIOS support

元气小坏坏 提交于 2019-12-05 02:04:05
NOTE : if you have an AMD A55 chipset on a motherboard that support IOMMU, please send me a copy of your /sys/firmware/acpi/tables/DMAR (or whatever the name is that describes IOMMU). There is no risk of any sort for you. Thanks! Most motherboard manufacturers don't bother releasing IOMMU enabled BIOS (no option in the BIOS). My undesranding of this document from AMD is that the BIOS initializes the IOMMU by adding ACPI tables. So if I can get a dump of the ACPI tables (acpidump/acpiextract) from a system with a different motherboard but the same chipset that supports IOMMU, would it be

use grub2 make dual boot cd(support bios and UEFI)

不问归期 提交于 2019-12-04 21:14:10
使用grub2 制作支持BIOS&UEFI 双启动的ISO镜像 首先就是准备grub2了。最新的Release版本可以从这里获取: ftp://ftp.gnu.org/gnu/grub . 其他信息参考 http://www.gnu.org/software/grub/ Compiler: a. Download the newest released grub2 package b. Decompress the package to path $grub2 c. mkdir ~/grub2-bios ~/grub2-uefi, cd $grub2 mkdir build build-uefi d. cd build, ../configure --prefix=${HOME}/grub2-bios, make , make install #compiler bios version e: cd ../build-uefi ../configure --with-platform=efi --target=x86_64 --prefix=${HOME}/grub2-uefi, make, make install Note: 正确的编译grub2, 你需要安装一些工具与lib,请参考grub INSTALL document。 Make bin: Bios: cd ~

win10下安装Ubuntu18.04双系统

非 Y 不嫁゛ 提交于 2019-12-04 16:56:21
win10下安装ubuntu18.04双系统 本人小萌新,大佬不喜勿喷,欢迎指出不足。 1安装空间 。 安装软件需要空间,安装系统也一样,而不一样之处在于,安装系统的空间需要自己指定,所以,选择一个盘,将数据备份,再格式化这个盘。额,没有多余的盘可以格式化怎么办? 那么,就需要自己进行储存了分区, 具体过程如下 【我的电脑右击】-->【管理】 压缩卷大小一般就是你选择安装新系统所处的大小,一般Ubuntu,60g够了,具体多少当然看自己的使用情况而定了 。 压缩完后我们可以看到有个空余空间,这时我们不要给他分配盘符 2制作系统启动盘 首先然后我们去Ubuntu的官网下载Ubuntu18.04的ISO镜像文件。下载网址: https://www.ubuntu.com/download/desktop 下载rufus:下载网址: https://rufus.akeo.ie/?locale=zh_CN 所有文件如下列表 打开rufus软件界面如下 插入U盘后会自动检查,如下: 选择同文件夹下的ubuntu镜像,配置如下: 格式化选项下面的用默认就好,记得保存U盘文件。 然后点击开始:弹出窗口,默认,ok 格式化文件: 确认后看到如下界面 : 刻入完成即可 : 刻入完成后的U盘内部 : 3,安装系统 进入BIOS设置U盘启动: 这个时候插入U盘,我们点击关机关闭win10,然后开机

how does linux kernel prevents the BIOS system calls?

假如想象 提交于 2019-12-04 16:18:53
BIOS calls are not available in linux OS. I wonder how does a kernel prevents execution of such instructions that contains call to the BIOS subroutines? The BIOS is mostly available in 16 bits mode, not in the 32 or 64 bits mode of x86 on which Linux runs. A Linux process is running in user mode , using virtual memory , it has its own virtual address space . Some machine instructions (notably INT which is used to go to BIOS) are privileged so cannot be run in user mode. If you try running them in user mode, the processor makes a machine exception, and the kernel handles it by sending some