我可以在运行Raspbian的Raspberry Pi 2上安全删除非自由软件吗?


8

我是安装了Raspbian的Raspberry Pi 2的幸运所有者:

$ cat /proc/version
Linux version 3.18.11-v7+ (dc4@dc4-XPS13-9333) (gcc version 4.8.3 20140303 (prerelease) (crosstool-NG linaro-1.13.1+bzr2650 - Linaro GCC 2014.03) ) #781 SMP PREEMPT Tue Apr 21 18:07:59 BST 2015

为了使我自己的RMS满意,我想删除默认情况下附带的非免费软件包(我已经照顾好了sonic-pi它似乎是非免费的……)

$ vrms
        Non-free packages installed on oufmalade....

firmware-atheros                    Binary firmware for Atheros wireless cards
firmware-brcm80211                  Binary firmware for Broadcom 802.11 wireless cards
firmware-libertas                   Binary firmware for Marvell Libertas 8xxx wireless car
firmware-ralink                     Binary firmware for Ralink wireless cards
firmware-realtek                    Binary firmware for Realtek wired and wireless network
oracle-java8-jdk                    Java™ Platform, Standard Edition 8 Development Kit
pistore                             Pi Store is the official store for Rasp. Pi apps and g
wolfram-engine                      Mathematica® and the Wolfram Language

  8 non-free packages, 0.9% of 886 installed packages.

我想知道:

  1. 关于所有这些firmware-*软件包,知道我在有线网络上(通过板载以太网端口),而没有Wi-Fi加密狗(并且该Pi 永远无法获得),我可以安全地删除它们吗?连firmware-realtek一个?我不认为板载以太网是Realtek提供的,但我想仔细检查一下,否则我将失去唯一的SSH访问权限...

    对于它的价值,这是的唯一结果$ sudo lshw | grep firmware

       configuration: autonegotiation=on broadcast=yes driver=smsc95xx driverversion=22-Aug-2005 duplex=full firmware=smsc95xx USB 2.0 Ethernet ip=... link=yes multicast=yes port=MII speed=100Mbit/s
    
  2. pistore从不使用的非常特定的应用程序和游戏中删除,我将遭受什么损失?(仅供参考,此Pi永远不会有GUI,它是一台服务器,将终其一生)
  3. 标准Raspbian所依赖的工具中是否有任何重要的东西oracle-java8-jdk?还是上wolfram-engine

我很确定我可以安全地删除所有它们,但是我想确保自己没有做我会后悔的事情(特别是(1.)!)。


编辑:我没有对机器的物理访问(嗯,我可以,但是很少,而且几个月也没有),我也不打算更改发行版或重新格式化任何内容。服务器正在运行,其平稳运行比其他次要改进更重要:-)

Answers:


7

您可以删除所有要满足的内容vrms,如果这只是它抱怨的内容。但是,我敢肯定,真正的RMS会通知您,没有办法使pi真正免费,因为它需要一些专有的固件才能启动。我之所以这样说,是因为将来虚拟总是有可能变得更加真实,在这种情况下,您将遇到一些无法克服的障碍。现在vrms大概不会检查这些事情(因为它们是在内核之前加载的,所以无论如何它们都可能很容易被隐藏)。

  1. 关于所有这些固件*软件包

那些与上一段提到的固件无关。由于Linux Torvald和Richard Stallman对开放源代码许可的态度有所不同,因此它们是可以包含在linux内核中的二进制陈旧的东西,但我相信它们不在开源树中,因为它们不是开源的。pi自己的任何硬件都不使用它们。如果您有需要它们的外围设备,则在卸下它们后便会知道或容易识别出您所做的。无论如何,您都可以轻松地将所有这些东西放回去。

以太网芯片不是由Realtek或Broadcom制造的,而是由SMSC制造的(最近由Microchip Technology吸收)。并非所有固件都是封闭源。此外,它可能由制造商安装。我不知道这是什么情况,但是如果我不得不猜测是后者的话。即,该固件不是来自内核,也不是来自Raspbian软件包。

您可以使用来查看软件包安装了哪些文件dpkg -L。这些全部填充/lib/firmware,这是内核构建将树中内容放置的地方。因此,有更多的东西比那些非免费软件包要多,因为默认的Raspbian内核包括了它。但是那里没有SMSC固件。

我已经完全删除/lib/firmware了运行Raspbian jessie的B,它会启动并连接到以太网。同样,这些/lib/firmware东西都与pi自己的硬件无关。

  1. 删除pistore会给我带来什么损失

我从来没有使用过pi store,但不是因为我有反对它的东西。我在Android等设备上使用Google Play。令人惊讶的是这里很少提及它。再一次,当然没有什么至关重要的。

  1. 在依赖oracle-java8-jdk的标准Raspbian上提供了哪些重要工具?还是使用Wolfram引擎?

常规的Debian不包含任何Java,但是如果您想使用FOSS版本,则可以使用它(“ iced tea”,又名openjdk)。我不确定它的版本是否为8。系统无论如何都不会使用Java。

由于Pi基金会自身的神秘原因,默认将Wolfram引擎添加到Raspbian(在普通的Debian中不是)。如果不需要,可以将其删除。


感谢您提供的详细答案,这是我所寻找的最接近的答案。但是,对于问题(1.),您说:“您可以将所有这些东西放回去,就像您将其删除一样容易。” 不幸的是,这不是正确的,因为我没有物理访问计算机的权限。您能否确认我可以安全删除firmware-realtek而不丢失以太网连接,因此也可以进行SSH访问?阅读您的答案后,我的猜测是肯定的,但我想确保我没有误解您的说法。
astorije 2015年

我可以确认可以安全移除;我在(1.)下编辑了几段内容,说明了如何进行测试。
goldilocks

太好了,非常感谢!从那时起,我将它们全部删除了,世界没有改变!
astorije

firmware-*Edimax WiFi加密狗是否需要上述任何内容?
KeyWeeUsr

4

Debian似乎不认为:“ Raspberry Pi从其GPU引导,并且目前只有非免费软件可用于GPU,即使启动计算机也需要一大片(2MB)的非免费,不支持的软件

您绝对可以转储Java和Wolfram。我马上摆脱掉那些。对于驱动程序,最简单的方法就是复制卡并尝试在卡住之前将其从测试副本中删除。

如果您只希望vrms不抱怨,则可以删除一些/大部分已标记的软件包,但使其达到“真实的” RMS标准-实际上不使用任何非自由软件,而不仅仅是摆脱vrms标记的debian包-使用raspbian可能是不可能的。


感谢您的Debian链接,它将对其他人有所帮助。关于Java和Wolfram,我毫不怀疑,但更喜欢仔细检查。如原始问题中所述,我仅具有对计算机的SSH访问权限,而没有物理访问权限,因此我不会尝试任何可能将自己拒之门外的方法:-)
astorije 2015年

哦,是的,我认为vrms当Raspberry Pi运行非免费硬件时,我只会感到高兴。另一方面,尽管非常真实的RMS花费的时间实际上离我的机器只有几步之遥,但我认为他永远不会关注它:-)
astorije 2015年

2

您可以删除提到的所有软件包,但Realtek有线和无线固件可能会出现上述例外。

就我个人而言,我只是删除Realtek固件,并采取不必要的措施将其放回原处。

不需要其他软件包,例如Wolfram和Java之类的软件包会占用大量SD卡空间。

pistore是失败的实验。我不明白为什么它仍然作为图像的一部分发货。


感谢您的回答,我会做的。除了冒着被我锁定的风险,因为我对计算机没有物理访问权限,而只有SSH访问权限。我会为此继续调查...
astorije

1

我一直认为使用Minibian可能会解决这个问题。但是,我不清楚它们是否包含任何这些非免费软件包。我现在也有点忙检查。

无论哪种方式,即使它们确实包括了它们,但如果您从Minibian开始,您可能要删除的东西都会更少。


就像我在问题编辑中提到的那样,我不打算格式化我的SD卡或更改发行版,因此这不是一个合适的解决方案。不过,感谢您的帮助,但我想直接回答我的问题,而不是绕开它:-)
astorije 2015年

我只能说是\\(())_ / 。如果您没有物理访问权限(或者如果访问不近),我将在删除软件包时格外小心。老实说,无论您身在何处,都必须在安装Pi之前完成所有删除软件包的工作。祝好运!
WineSoaked

我必须不同意,即使有可能,对服务器的物理访问也变得越来越罕见。并不是所有的虚拟实例都容易复制副本!是的,要格外小心,但是我们在这里谈论的是软件编辑,实际上没有硬件。无论如何,我的问题得到了解决,所以没有后顾之忧:)
astorije

很高兴您能解决!我要提醒的是,在远程位置安装嵌入式设备(例如Raspberry Pi)时,应该在安装之前先整理好软件/固件。
WineSoaked

1

为了阐明goldilocks答案中的某些内容,并不是下面的所有代码/lib/firmware都是“ [已加载到] Linux内核中”;其中一些直接加载到通过USB或其他方式连接的设备中。例如,在Raspberry Pi Zero W上,您将在日志中看到以下消息:

btuart[416]: Flash firmware /lib/firmware/BCM43430A1.hcd

这是bcm43xx驱动程序将固件上传到设备。(实际上,它正在将固件的补丁程序上载到设备的RAM;这就是为什么每次重新启动时都需要重新加载它的原因。我不知道Pi Zero W上的蓝牙在没有此补丁程序的情况下的运行情况如何。)

您是否认为可以将“非自由”代码加载到设备中正常取决于您的观点。在上述情况下,非自由代码必须保留在磁盘上,但CPU永远不会运行它。在其他情况下,您可能能够一次将代码加载到设备中,然后从磁盘上删除代码,而非空闲代码则保留在闪存或设备上的类似设备中。这似乎非常类似于购买带有闪存或ROM中预加载的非自由代码的设备,例如Pi的GPU(可能还有其他部分)。如果您无法复制和修改晶体管,则甚至可能认为芯片上的晶体管接线不自由。

sudo journalctl | grep -i firmware 将帮助您确定系统上真正需要的固件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.