¿Puedo eliminar de forma segura el software no libre en un Raspberry Pi 2 con Raspbian?

8

Soy el afortunado propietario de un Raspberry Pi 2 en el que instalé Raspbian:

$ 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

En un intento de hacer feliz a mi propio RMS , quiero eliminar los paquetes no gratuitos que se envían con él de forma predeterminada (ya me ocupé de sonic-pique parece no ser gratuito ...)

$ 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.

Me pregunto:

  1. Con respecto a todos estos firmware-*paquetes, sabiendo que estoy en la red cableada (a través del puerto Ethernet incorporado) sin llave de Wi-Fi (y este Pi nunca tendrá uno), ¿estoy seguro de eliminarlos? ¿Incluso el firmware-realtekuno? No creo que el Ethernet a bordo sea de Realtek, pero prefiero verificar dos veces; de lo contrario, perderé mi único acceso SSH ...

    Por lo que vale, aquí está el único resultado de $ 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. ¿Qué perdería exactamente al eliminar pistoreaparte de aplicaciones y juegos muy específicos que no usaré ? (Para su información, este Pi nunca tendrá una GUI, es un servidor y vivirá toda su vida como tal)
  3. ¿Hay algo vital que se envíe en el Raspbian estándar del que dependa oracle-java8-jdk? O en wolfram-engine?

Estoy bastante seguro de que puedo eliminarlos de forma segura, pero me gustaría asegurarme de que no estoy haciendo algo de lo que me arrepienta de antemano (¡especialmente (1.) !).


EDITAR : no tengo acceso físico a la máquina (bueno, puedo, pero muy raramente y no por otros meses) ni planeo cambiar la distribución o volver a formatear nada. El servidor se está ejecutando y su buen funcionamiento es más importante que otras mejoras menores :-)

astorije
fuente

Respuestas:

7

Puede eliminar todo eso para satisfacer vrms, si eso es todo de lo que se queja. Sin embargo, el RMS real le informaría, estoy seguro, que no hay forma de hacer que el pi sea realmente libre, ya que requiere un firmware patentado para arrancar. Menciono esto porque siempre es posible que en el futuro lo virtual se vuelva más real, en cuyo caso encontrarás algunos obstáculos insuperables. En este momento, vrmspresumiblemente, no verifica tales cosas (probablemente podrían ocultarse fácilmente de todos modos ya que se cargan antes del núcleo).

  1. Con respecto a todos estos paquetes de firmware- *

Aquellos que no tienen nada que ver con el firmware mencionado en el último párrafo. Son cosas binarias que se pueden incluir en el kernel de Linux debido a la diferencia entre las actitudes de Linux Torvald y Richard Stallman hacia las licencias de código abierto, pero creo que no están en el árbol de la vainilla porque no son de código abierto. No son utilizados por ninguno de los hardware del propio pi. Si tiene periféricos que los necesitan, lo sabría o reconocería fácilmente que lo hizo una vez que los quitó. De todos modos, puede volver a poner todo esto tan fácilmente como lo quitó.

El chip ethernet no está hecho por Realtek o Broadcom, sino por SMSC (recientemente absorbido por Microchip Technology). No todo el firmware es de código cerrado; Además, puede ser instalado por el fabricante. No sé cuál es el caso aquí, pero si tuviera que adivinar es el último. Es decir, ese firmware no es del núcleo, y no es de un paquete Raspbian.

Puede ver qué archivos instaló un paquete con dpkg -L. Esos son todos poblados /lib/firmware, que es donde una construcción de kernel coloca cosas que están en el árbol. Por lo tanto, hay muchas más cosas que de esos paquetes no libres, ya que el núcleo predeterminado de Raspbian lo incluye. Pero no hay firmware de SMSC allí.

He eliminado /lib/firmwarepor completo en un B que ejecuta Raspbian jessie, y se inicia y se conecta a ethernet. Una vez más, ninguna de las /lib/firmwarecosas tiene que ver con el hardware propio del pi.

  1. ¿Qué perdería exactamente con la eliminación de pistore?

Nunca he usado pi store, pero no porque tenga nada en contra; Uso Google Play en Android, etc. Hay sorprendentemente pocas referencias aquí. Una vez más, ciertamente nada crucial.

  1. ¿Hay algo vital que se envíe en el Raspbian estándar que dependa de oracle-java8-jdk? ¿O en el motor wolfram?

Debian regular no incluye ningún java, pero si desea una versión FOSS, hay una disponible ("té helado", también conocido como openjdk); No estoy seguro de que sea hasta la versión 8. El sistema no usa Java para nada de todos modos.

Wolfram-engine se agregó por defecto a Raspbian (no está en Debian normal) por las misteriosas razones de la Fundación Pi. Si no lo necesita, puede eliminarlo.

Ricitos de oro
fuente
Gracias por esta respuesta detallada, la más cercana a lo que estaba buscando. Sin embargo, con respecto a la pregunta (1.) , usted dijo: "Puede volver a colocar todo esto tan fácilmente como lo eliminó de todos modos". Desafortunadamente, esto no es cierto ya que no tengo acceso físico a la máquina. ¿Puede confirmar que puedo eliminarlo firmware-realteksin perder la conexión Ethernet y, por lo tanto, el acceso SSH? Supongo que después de leer su respuesta es sí, pero quiero asegurarme de no haber entendido mal su declaración.
astorije
Puedo confirmar que es seguro eliminarlo; He editado en algunos párrafos debajo de (1.) explicando cómo probé esto.
Ricitos de oro
Genial, muchas gracias! ¡Los he eliminado todos y el mundo no ha cambiado desde entonces!
astorije
¿Necesito alguno de los firmware-*mencionados anteriormente para un dongle WiFi Edimax?
KeyWeeUsr
4

Debian parece no pensar: " La Raspberry Pi arranca desde su GPU y actualmente solo está disponible el software no libre para la GPU, incluso el arranque de la máquina requiere una gran cantidad (2 MB) de software no libre y no compatible "

Definitivamente puedes deshacerte de Java y Wolfram. Me deshago de esos de inmediato. En cuanto a los controladores, podría ser más fácil simplemente duplicar su tarjeta e intentar eliminarlos en una copia de prueba antes de quedarse atascado.

Si solo desea que vrmsno se queje, puede eliminar algunos / la mayoría de los paquetes marcados, pero lograr que cumplan con los estándares RMS "reales", en realidad no usar ningún software no libre, no solo deshacerse de vrmsDebian marcado paquetes - con raspbian puede ser imposible.

bobstro
fuente
Gracias por el enlace de Debian, será útil para otros. Con respecto a Java y Wolfram, tenía pocas dudas, pero preferí comprobarlo dos veces. Como se dijo en la pregunta original, solo tengo acceso SSH a la máquina, no acceso físico, así que no intentaré nada que pueda bloquearme :-)
astorije
Ah, sí, pensé que solo sería capaz de hacerme vrmsfeliz ya que Raspberry Pi ejecuta hardware no libre. Por otro lado, aunque el RMS muy real pasa sus días literalmente a pasos de mi máquina, no creo que le preste atención alguna vez :-)
astorije
2

Puede eliminar todos los paquetes que mencionó con la posible excepción del firmware realtek con cable e inalámbrico.

Personalmente, simplemente eliminaría el firmware Realtek y tomaría el golpe poco probable que tengas que volver a colocar.

Los otros paquetes no son necesarios y algunos como Wolfram y Java ocupan una cantidad significativa de espacio en la tarjeta SD.

Pistore es un experimento fallido. No entiendo por qué todavía se envía como parte de la imagen.

joan
fuente
Gracias por la respuesta, lo haré. Excepto correr el riesgo de quedar bloqueado ya que no tengo acceso físico a la máquina, solo acceso SSH.
Seguiré
1

Sigo pensando que usar Minibian podría ser la respuesta a esto. Sin embargo, no tengo claro si incluyen alguno de esos paquetes no gratuitos o no. También estoy un poco ocupado en este momento para verificar.

De cualquier manera, incluso si los incluyeran, probablemente tendría menos cosas que eliminar si comenzara con Minibian.

Vino empapado
fuente
Como acabo de mencionar en la edición de mi pregunta, no planeo formatear mi tarjeta SD o cambiar la distribución, por lo que esta no es una solución adecuada. Sin embargo, gracias por su ayuda, pero me gustaría encontrar una respuesta directa a mi pregunta en lugar de darle la vuelta :-)
astorije
Todo lo que puedo decir es ¯ \ _ (ツ) _ / ¯ Tendría mucho más cuidado al eliminar paquetes, si no tiene acceso físico (o si no está muy cerca). Para ser honesto, todo este negocio de eliminación de paquetes debería haberse realizado antes de instalar el Pi donde sea que esté. ¡Buena suerte!
WineSoaked
Debo estar en desacuerdo, es cada vez más raro tener acceso físico a un servidor, cuando es posible. ¡Y no todas las instancias virtuales son fáciles de crear duplicados! Muy cuidadoso, sí, pero estamos hablando de ediciones de software aquí, nada de hardware realmente. De todos modos, mi problema se resolvió, así que no te preocupes :)
astorije
¡Me alegra que lo hayas solucionado! Todo lo que advertía es que, al instalar un dispositivo integrado (es decir, Raspberry Pi) en una ubicación remota, ya debería tener su software / firmware resuelto antes de esa instalación.
WineSoaked
1

Para aclarar algo en la respuesta de Ricitos de Oro , no todo el código debajo /lib/firmwareestá "[cargado en] el kernel de Linux"; algunos de ellos se cargan directamente en dispositivos conectados a través de USB u otros medios. Por ejemplo, en una Raspberry Pi Zero W verá el siguiente mensaje en sus registros:

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

Este es el bcm43xxcontrolador que carga el firmware en el dispositivo . (De hecho, está cargando un parche en el firmware a la RAM del dispositivo; es por eso que debe recargarse en cada reinicio. No sé qué tan bien funcionaría el Bluetooth en el Pi Zero W sin este parche).

Si considera que el código "no libre" cargado en los dispositivos está bien, realmente depende de su punto de vista. En situaciones como las anteriores, el código no libre debe permanecer en su disco, pero la CPU nunca lo ejecuta. En otras situaciones, es posible que pueda cargar el código en el dispositivo una vez y luego eliminar el código de su disco, quedando el código no libre en la memoria flash o similar en el dispositivo. Eso parece bastante similar a haber comprado un dispositivo con código no libre precargado en su memoria flash o en la ROM, como la GPU (y quizás otras partes) del Pi. Incluso se podría considerar que el cableado de los transistores en los chips no está libre si no están disponibles para que usted los copie y modifique.

sudo journalctl | grep -i firmware le ayudará a determinar qué firmware realmente necesita en su sistema.

cjs
fuente