问题描述
我已经在vista笔记本电脑上安装了Ubuntu 11.10,但戴尔正在提供.exe格式的BIOS更新,目前我的BIOS版本是A09,但在驱动程序下载网站上,最新版本的BIOS是A011。
帮我更新BIOS。
笔记本电脑信息:
Libsmbios version: 2.2.28
Product Name: Studio 1537
Vendor: Dell Inc.
BIOS Version: A09
System ID: 0x029F
Service Tag: HBVV2BS
Express Service Code: 37723945096
运行sudo update_firmware
后,我收到以下错误:
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2919-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2919
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2930-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2930
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2929-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2929
E: Unable to locate package pci-firmware-ven-0x1180-dev-0x0832-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x1180-dev-0x0832
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x294a
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2448
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2946
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2940
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2942
E: Unable to locate package pci-firmware-ven-0x1002-dev-0xaa28-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x1002-dev-0xaa28
E: Unable to locate package pci-firmware-ven-0x1002-dev-0x95c4-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x1002-dev-0x95c4
E: Unable to locate package pci-firmware-ven-0x14e4-dev-0x1698-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x14e4-dev-0x1698
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2936-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2936
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2935-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2935
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2934-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2934
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x293a-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x293a
E: Unable to locate package pci-firmware-ven-0x1180-dev-0x0822-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x1180-dev-0x0822
E: Unable to locate package pci-firmware-ven-0x1180-dev-0x0592-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x1180-dev-0x0592
E: Unable to locate package pci-firmware-ven-0x1180-dev-0x0852-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x1180-dev-0x0852
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x4232-subven-0x8086-subdev-0x1321
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x4232
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x293e-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x293e
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2a40-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2a40
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2937-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2937
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2938-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2938
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2939-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2939
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x293c-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x293c
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2a41-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2a41
最佳解决思路
编辑2015年10月
在post-Win7时代,这个答案已经过时了。先看看其他答案。除非你有时间燃烧,否则不要再读。
发布到这个问题的其他答案可能适用于较旧的硬件,但是在我升级戴尔Inspiron 7520(2012年版)的BIOS体验之后,我发布了这个问题。检查非官方戴尔支持网站上的日期表明,这可能也适用于自2010年甚至更早的其他戴尔型号。
第一步是获取有关当前系统的信息。在Ubuntu中,您可以使用以下两个命令检查BIOS版本:
sudo dmidecode -s bios-version
sudo dmidecode -s bios-release-date
查询制造商的网站时,您需要有关计算机硬件的信息。对于戴尔,它通常以服务标签和快速服务代码的形式打印在底部的某处。如果这不容易阅读,可以通过以下方式获得信息:
1)安装libsmbios:
sudo apt-get update
sudo apt-get install libsmbios-bin
2)从系统中获取服务选项卡等:
sudo getSystemId
这将产生如下输出:
Libsmbios version: 2.2.28
Product Name: Inspiron 7520
Vendor: Dell Inc.
BIOS Version: ANN
System ID: 0xNNNN
Service Tag: NABCDEFN
Express Service Code: NNNNNNNNNN
Asset Tag:
Property Ownership Tag:
使用BIOS版本中的关键信息,系统ID,服务标签和快速服务代码。
有了上述信息,请转到Dell web site并下载适用于您的特定计算机的相应驱动程序。
到目前为止一切顺利,但您会注意到下载是Windows可执行文件。正如这不能在Ubuntu(或任何其他Linux)下运行,它也不会在Windows的旧版本下运行,特别是MS-DOS或MS-DOS的任何仿真。尽管在下载页面上可能会说有关于与早期版本的Windows兼容的任何内容;使用任何传统的DOS-type环境,.exe运行,但退出时不做任何事情,除了打印出恼人的消息。
所以,有趣的是:您需要一个Windows 7(或更高版本)环境才能运行BIOS升级。我们如何在single-boot Ubuntu机器(甚至是运行传统Windows的计算机,如XP)上做到这一点?
此时的关键因素是Windows 7修复盘。有几种方法可以获得一个,包括从互联网上购买一个,或与拥有Windows 7计算机的人交朋友。如果你很幸运,你的计算机制造商将你的盒子捆绑在一起。我选择在我的Ubuntu机器上制作一个,使用在VirtualBox中运行的Windows 7副本,调整从this web site制作救援盘的说明。
好消息是,从哪个版本的Windows 7获取修复盘似乎并不重要。由于这是BIOS升级,因此如果您的计算机是64位,则使用32位还是64位版本甚至无关紧要。
一旦你有一个Windows 7修复盘,其余的很容易。如果你愿意,你可以把它变成可启动的USB,但是如果你的盒子有CD驱动器,这是不必要的。以下是步骤:
-
将下载的BIOS升级.exe放在普通的USB闪存盘上。
-
从Windows 7修复盘重新启动计算机,出现提示时点击
Space
栏。 -
导航到命令提示符。 (
Use Recovery Tools->Command Prompt
)。 -
找到USB的正确驱动器号(在命令行
dir a:
然后b,c等,直到找到正确的驱动器号)。 -
在命令行上导航到它(键入带冒号的驱动器号)。
-
通过键入其名称运行该文件(注意选项卡auto-completion工作:))。
-
从那里,只需按照on-screen说明操作,并确保您的计算机在升级完成时保留powered-on。
请注意,在返回到Ubuntu启动屏幕之前,有两个自动重新启动。
次佳解决思路
您不需要Windows从其站点安装任何固件更新,只需按照here发布的说明进行操作即可。
来自戴尔网站:
-
从dell.com下载适用于您的硬件的WIndows /DOS BIOS安装程序
-
下载最新的SystemRescueCD并将其刻录到空白CD或将其安装到USB flash drive。
-
将Windows /DOS BIOS安装程序复制到FAT格式的USB memory 棒或安装了SystemRescueCD的USB memory 棒。
-
从CD或闪存驱动器启动。
-
选择在软盘映像菜单中从FreeDOS启动。
-
确保不加载HIMEM和EMM386内存管理器。
-
更换为USB memory 棒(通常为C:如果您的硬盘上没有任何FAT分区)。
-
运行安装程序
运行E7240机器的A14更新时的示例。
第三种解决思路
戴尔有一个非常好的实用程序,可以下载并将最新的BIOS应用到使用Linux的计算机上。它理论上应该没有任何问题运行,你可以在Ubuntu中运行它。
请访问他们的页面了解更多信息,有精确的说明:
以下是链接页面的说明
sudo wget -q -O - http://linux.dell.com/repo/firmware/bootstrap.cgi | bash
sudo apt-get install firmware-addon-dell
sudo apt-get install $(bootstrap_firmware -a)
sudo update_firmware
请注意:我自己没有对此进行过测试,您可能先向Dell支持部门发送电子邮件,询问他们是否弃用此方法,或者是否存在任何问题。
第四种思路
首先,除非存在需要更新BIOS更新的特定问题(例如激活虚拟化技术),否则我不会更新BIOS。
如果BIOS更新失败,您的计算机可以呈现纸张重量。
我个人使用FreeDOS,虽然还有其他选择。
我把它放在带有unetbootin的闪存驱动器上,然后将bios_update.exe添加到闪存驱动器中。
然后从USB启动并从DOS命令提示符运行bios_update.exe。
如果你可以启动USB,你可以刻录CD。
Arch wiki提供了很多信息,还有其他一些选项。
请参阅:https://wiki.archlinux.org/index.php/Flashing_BIOS_from_Linux
第五种思路
我想最近在戴尔Inspiron 1525上更新BIOS。
根据戴尔的说法,http://linux.dell.com/repo/firmware/已经死了,不应该使用 – “OBSOLETE!社区支持的戴尔固件存储库已淘汰!”
而是使用openmanage存储库http://linux.dell.com/wiki/index.php/Tech/libsmbios_dellBiosUpdate
它没有任何问题,对我有用。
第六种思路
我没有使用任何外部驱动器的7步幸福
我最近使用CLI在Linux Mint 17 KDE(= Ubuntu 14.04 LTS Trusty Tahr)下将戴尔Latitude E6500的BIOS从版本A27升级到A29,这对我来说非常有用:
-
下载所需的DELL软件
sudo apt-get install firmware-addon-dell smbios-utils wine
-
检查您的BIOS版本:
sudo dmidecode -s bios-version
我的输出:A27
-
从DELL Support Page下载适用于您的特定设备的BiosUpdateFile.exe(在我的案例中为E6500A29.exe)
-
切换到嵌套E6500A29.exe的目录,并使用以下命令从中提取* .hdr文件:
wine E6500A29.exe -writehdrfile
-
更新BIOS:
sudo dellBiosUpdate -u -f E6500A29.hdr
-
重新启动:
sudo reboot now
-
再次检查BIOS版本:
sudo dmidecode -s bios-version
我的输出:A29
第七种思路
适用于较旧的戴尔机器
我有一台旧的戴尔桌面(Dimension E520,大约在2006年),运行Ubuntu。要更新BIOS,我从Dell下载了所需的.exe。然后我尝试使用以下命令运行它:
-
使用带FreeDos的USB驱动器。机器无法启动进入FreeDos,它给出了设备未就绪错误。
-
SystemRescueCD – 与上面1)相同的问题。
-
使用Windows 7 64位安装光盘,启动到Windows命令提示符环境但返回错误“图像类型不存在”。
-
在另一个线程中,我发现使用32位Windows光盘可以克服3)中的错误。所以我再试了32位。这次exe运行,单击提示等没有错误消息,但BIOS没有更新。
最后,戴尔支持论坛上的I tried the method outlined here。
-
运行DDDP&按照提示操作
-
导航到提取创建的DIAGS文件夹
-
删除DIAGS文件夹中的所有文件,但以下内容除外:COMMAND.COM,DELLBIO.BIN,DELLRMK.BIN,AUTOEXEC.BAT,& CONFIG.SYS
-
将BIOS .exe添加到DIAGS文件夹
-
导航到C:\ Dell \ Drivers \ R174621 \并运行DDDP .exe。
-
选择Create a Bootable CD选项(还有一个安装到Flash Drive选项,但我没试过这个)。
-
将CD装入机器。重启,F12,从CD启动并运行BIOS .exe。
第八种思路
最近的戴尔BIOS有一个内置升级模块。
-
从Dell网站下载相应的.EXE升级程序。
-
将此文件写入USB驱动器。
-
插入所说的USB驱动器并重启。 (注意:如果您的计算机以UEFI模式启动,您可以将.EXE放在/boot /efi分区中:应该自动找到它)
-
出现Dell徽标时,按F12进入One-time启动菜单
-
在此菜单中,选择Bios Flash Update。如果未显示此条目,则您的BIOS没有内置升级模块。
-
在升级模块中,找到USB磁盘上的.EXE升级程序。
-
启动升级过程。