所以我最近一直在与我的 debian 安装作斗争,它没有 eth0 或 wan0 网卡的固件。但是,我有一个firmware.zip
需要提取到的文件/lib/firmware
。问题是,由于我没有与计算机连接,所以我无法直接获取我想要的东西。
这是我的问题,我对 Linux(特别是 Debian)的自然依赖关系了解不多,所以我需要知道一种在没有互联网的情况下安装它们的方法。我什至无法解压缩这个固件文件,我必须上网,因为据我所知,没有默认的解压缩程序。如果我下载该软件包并将其传输到我的 USB 驱动器上,那么它就无法运行,因为它需要libbz2-1.0
、libc0.1
、libc6
、libc6.1
和libgcc1
。它还建议了一个名为 的程序zip
。libc6
要求libc-bin
、推荐libc6-i686
、建议debconf.libc0.1
。
无法解压任何东西,谁知道我是否能够安装这些东西。你们知道是否有一个非常基本的软件包可以为我安装所有这些标准软件包吗?
我将把我现在遇到的一些错误写出来,尽管我思考我安装了驱动程序。
ping google.com
ping: unknown host google.com
ping 192.168.10.101
connect: Network is unreachable
dmesg | grep wlan0
[ 5.348890] udev [432] : renamed network interface wlan0 to wlan1
dmesg | grep Broadcom
[ 1.028800] eth0: Broadcom 44xx/47xx 10/100BaseT Ethernet 00:15:c5:b8:79:75
[ 5.127449] b43-phy0: Broadcome 4311 WLAN found (core revision 10)
[ 5.309856] Broadcom 43xx driver loaded [ Features: PMLS, Firmware-ID:FW13 ]
ifup wlan1
Ignoring unknown interface wlan1=wlan1.
ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:15:c5:b8:79:75
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:17
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
wlan1 Link encap:Ethernet HWaddr 00:18:f3:85:99:07
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
这就是我真正感到困惑的地方:
ifconfig wlan1 192.168.10.111
b43-phy0 ERROR: Firmware file "B43/ucode5.fw" not found
b43-phy0 ERROR: Firmware file "B43-open/ucode5.fw" not found
b43-phy0 ERROR: You must go to blah blah blah and get the firmware
SIOCSIFFLAGSS: No such file or directory
因此,尽管我dmesg
说43xx
驱动程序已加载,ifconfig
但又说没有加载。此时我该怎么办?我将在一分钟内发布更多数据。
所以我想我没有跑firmware-b43-installer_4.150.10.5-4_all.deb
。我只是通过输入以下内容来做到这一点:
dpkg -i firmware-b43-installer_4.150.10.5-4_all.deb
(Reading database ... 14006 files and directories currently installed.)
Preparing to replace firmware-b43-installer 4.150.10.5-4 (using firmware-b43-installer_4.150.10.5-4_all.deb) ...
Unpacking replacement firmware-b43-installer ...
Setting up firmware-b43-installer (4.150.10.5-4) ...
...
然而此时它尝试访问镜像(http://mirror2.openwrt.org/sources/broadcom-wl-4.150.10.5.tar.bz2)。天哪,有什么方法可以获取不需要互联网连接的文件吗?
答案1
我的建议是使用优质的老式 CD/DVD。如果您下载每个软件包及其依赖项(以及他们的,以及他们的......),dpkg
则可以手动安装所有软件包,但确实不令人愉快。.deb
我会:
- 如果您没有,请下载并刻录您正在使用的 Debian 发行版的 CD/DVD(检查 /etc/debian_version)
- 将 DVD 放入并运行
sudo apt-cdrom add
并按照说明将 DVD 添加到 apt 的源中 - 跑
apt-get install firmware-whatever
还是什么
如果您的固件不是官方 debian 发行版的一部分,那么至少您可以安装它dpkg -i <firmware.deb>
并使用它apt
来安装其依赖项。
答案2
您已经拥有其中一些库。例如libc6
和libgcc1
是必需的 - 没有它们您的系统将无法运行。该unzip
程序不是默认安装的一部分(Linux 的“本机”存档格式是tar.gz
和tar.bz2
;zip 很常见,但并不普遍)。
不幸的是,您的硬件似乎需要专有固件。有很多固件仅以二进制形式提供,并且不允许第三方重新分发。这就是为什么 Debian 提供的只是一个下载固件的安装程序。
获取apt-zip包裹。apt-zip是一个以 shell 脚本的形式生成要下载的包列表的程序,您可以在大多数运行 UNIX 系统(包括 Cygwin)的机器上运行该脚本来下载包及其依赖项。
查看固件安装程序的描述,了解它从哪里下载固件(如果没有指示,请查看内部,通常很容易在下载脚本中找到 URL)。手动下载固件并将其带到无网络的机器上;运行安装程序时,您将可以选择使用手动下载的固件文件。