Puis-je supprimer en toute sécurité des logiciels non libres sur un Raspberry Pi 2 exécutant Raspbian?

8

Je suis l'heureux propriétaire d'un Raspberry Pi 2 sur lequel j'ai installé 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

Dans une tentative de faire plaisir à mon propre RMS , je veux supprimer les paquets non gratuits qui sont livrés avec lui par défaut (j'ai déjà pris soin de sonic-pice qui semble être non libre ...)

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

Je me demande:

  1. En ce qui concerne tous ces firmware-*packages, sachant que je suis sur le réseau filaire (via le port Ethernet intégré) sans dongle Wi-Fi (et ce Pi n'en obtiendra jamais ), suis-je sûr de les supprimer? Même l' firmware-realtekun? Je ne pense pas que l'Ethernet embarqué soit de Realtek mais je préfère revérifier sinon je perdrai mon seul et unique accès SSH ...

    Pour ce que ça vaut, voici le seul résultat 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'est - ce que je perds exactement avec la suppression en pistoredehors des applications très spécifiques et des jeux que je ne vais pas utiliser ? (Pour info ce Pi n'aura jamais d'interface graphique, c'est un serveur et vivra toute sa vie comme tel)
  3. Y a-t-il quelque chose de vital qui est livré sur le Raspbian standard qui en dépend oracle-java8-jdk? Ou sur wolfram-engine?

Je suis sûr que je peux tous les retirer en toute sécurité, mais je voudrais m'assurer que je ne fais pas quelque chose que je regretterai à l'avance (en particulier (1.) !).


EDIT : Je n'ai pas d'accès physique à la machine (enfin, je peux, mais très rarement et pas avant quelques mois) et je n'ai pas l'intention de changer la distribution ou de reformater quoi que ce soit. Le serveur fonctionne et son bon fonctionnement est plus important que d'autres améliorations mineures :-)

astorije
la source

Réponses:

7

Vous pouvez supprimer tout cela pour vous satisfaire vrms, si c'est tout ce dont il se plaint. Cependant, le vrai RMS vous informerait, j'en suis certain, qu'il n'y a aucun moyen de rendre le pi vraiment gratuit, car il nécessite un firmware propriétaire pour démarrer. Je le mentionne car il est toujours possible qu'à l'avenir le virtuel devienne plus réel, auquel cas vous rencontrerez des obstacles insurmontables. À l'heure actuelle, vrmson ne peut probablement pas vérifier de telles choses (elles pourraient probablement être facilement cachées de toute façon car elles sont chargées avant le noyau).

  1. Concernant tous ces packages de firmware- *

Ceux qui n'ont rien à voir avec le firmware mentionné dans le dernier paragraphe. Ce sont des choses binaires blobby qui peuvent être incluses avec le noyau linux en raison de la différence entre les attitudes de Linux Torvald et de Richard Stallman envers les licences open source, mais je crois qu'elles ne sont pas dans le vanilla tree car elles ne sont pas open source. Ils ne sont utilisés par aucun matériel du pi. Si vous avez des périphériques qui en ont besoin, vous le saurez ou vous reconnaîtrez facilement que vous l'avez fait une fois que vous les avez retirés. Vous pouvez remettre toutes ces informations aussi facilement que vous les avez supprimées.

La puce Ethernet n'est pas fabriquée par Realtek ou Broadcom, mais par SMSC (récemment absorbée par Microchip Technology). Tous les micrologiciels ne sont pas à source fermée; il peut également être installé par le fabricant. Je ne sais pas quel est le cas ici, mais si je devais deviner que c'est le dernier. C'est-à-dire que ce micrologiciel ne provient pas du noyau et qu'il ne provient pas d'un package Raspbian.

Vous pouvez voir quels fichiers ont été installés par un package avec dpkg -L. Ceux-ci sont tous remplis /lib/firmware, c'est là que la construction du noyau place des éléments dans l'arborescence. Par conséquent, il y a beaucoup plus de choses que ces paquets non libres, car le noyau Raspbian par défaut l'inclut. Mais il n'y a pas de firmware SMSC là-bas.

J'ai complètement supprimé /lib/firmwareun B exécutant Raspbian Jessie, et il démarre et se connecte à Ethernet. Encore une fois, rien de /lib/firmwaretout cela n'a à voir avec le propre matériel du pi.

  1. Que perdrais-je exactement en retirant le pistore

Je n'ai jamais utilisé pi store, mais pas parce que j'ai quelque chose contre; J'utilise Google Play sur Android, etc. Il y a étonnamment peu de références ici. Encore une fois, certainement rien de crucial.

  1. Y a-t-il quelque chose de vital qui est livré sur le Raspbian standard qui dépend de l'oracle-java8-jdk? Ou sur wolfram-engine?

Debian standard n'inclut aucun java, mais si vous voulez une version FOSS, une est disponible ("thé glacé", alias. Openjdk); Je ne suis pas sûr que ce soit jusqu'à la version 8. Le système n'utilise de toute façon pas java.

Wolfram-engine a été ajouté par défaut à Raspbian (ce n'est pas dans Debian normal) pour les raisons mystérieuses de la Pi Foundation. Si vous n'en avez pas besoin, vous pouvez le supprimer.

Boucles d'or
la source
Merci pour cette réponse détaillée, la plus proche de ce que je cherchais. En ce qui concerne la question (1.) , vous avez dit: "Vous pouvez remettre tous ces trucs aussi facilement que vous les avez supprimés de toute façon." Ce n'est malheureusement pas vrai car je n'ai pas d'accès physique à la machine. Pouvez-vous confirmer que je peux supprimer en toute sécurité firmware-realteksans perdre la connexion Ethernet et, par conséquent, l'accès SSH? Ma conjecture après avoir lu votre réponse est oui, mais je veux m'assurer que je n'ai pas mal compris votre déclaration.
astorije
Je peux confirmer que son retrait est sûr; J'ai édité dans quelques paragraphes sous (1.) expliquant comment j'ai testé cela.
goldilocks
Merci beaucoup! Je les ai tous supprimés et le monde n'a pas changé depuis!
astorije
Ai-je besoin de l'un des éléments firmware-*mentionnés ci-dessus pour un dongle WiFi Edimax?
KeyWeeUsr du
4

Debian semble ne pas penser: « Le Raspberry Pi démarre à partir de son GPU et seul le logiciel non libre est actuellement disponible pour le GPU, même le démarrage de la machine nécessite une grande (2 Mo) blob de logiciels non libres et non compatibles »

Vous pouvez certainement vider Java et Wolfram. Je m'en débarrasse tout de suite. En ce qui concerne les pilotes, il peut être plus simple de dupliquer votre carte et d'essayer de les supprimer sur une copie de test avant de vous retrouver coincé.

Si vous voulez simplement vrmsne pas vous plaindre, vous pourriez être en mesure de supprimer certains / la plupart des paquets marqués, mais en les mettant aux "vraies" normes RMS - en fait, vous n'utilisez aucun logiciel non libre, vous ne vous débarrassez pas simplement de vrmsDebian signalée packages - avec raspbian pourrait être impossible.

bobstro
la source
Merci pour le lien Debian, il sera utile aux autres. Concernant java et wolfram, je ne doutais pas mais préférais vérifier. Comme indiqué dans la question d'origine, je n'ai qu'un accès SSH à la machine, pas un accès physique, donc je n'essaierai rien qui puisse me bloquer :-)
astorije
Oh et oui, je me suis dit que je ne pourrai faire vrmsplaisir que lorsque le Raspberry Pi fonctionnera avec du matériel non libre. D'un autre côté, bien que le très réel RMS passe ses journées à quelques pas de ma machine, je ne pense pas qu'il y prêtera attention :-)
astorije
2

Vous pouvez supprimer tous les packages que vous avez mentionnés à l'exception possible du micrologiciel câblé et sans fil Realtek.

Personnellement, je supprimerais simplement le firmware Realtek et prendrais le coup improbable que vous avez pour le remettre.

Les autres packages ne sont pas nécessaires et certains comme Wolfram et Java prennent une quantité importante d'espace sur la carte SD.

pistore est une expérience ratée. Je ne comprends pas pourquoi il est toujours expédié dans le cadre de l'image.

joan
la source
Merci pour la réponse, je vais le faire. Sauf à prendre le risque d'être bloqué car je n'ai pas d'accès physique à la machine, juste un accès SSH. Je vais continuer à enquêter pour ça ...
astorije
1

Je continue de penser que l'utilisation de Minibian pourrait être la réponse à cela. Cependant, je ne sais pas s'ils incluent ou non ces packages non gratuits. Je suis également un peu occupé en ce moment à vérifier.

Quoi qu'il en soit, même s'ils les incluaient, vous auriez probablement moins de choses à supprimer si vous débutiez avec Minibian.

WineSoaked
la source
Comme je viens de le mentionner dans l'édition de ma question, je ne prévois pas de formater ma carte SD ou de changer la distribution, ce n'est donc pas une solution appropriée. Merci pour votre aide, mais j'aimerais trouver une réponse directe à ma question plutôt que de la contourner :-)
astorije
Tout ce que je peux dire est ¯ \ _ (ツ) _ / ¯ Je serais supplémentaire supplémentaire prudent sur les paquets suppression, si vous n'avez pas accès physique (ou si ce n'est pas à proximité). Pour être honnête, toutes ces opérations de suppression de packages auraient dû être effectuées avant d'installer le Pi où qu'il se trouve. Bonne chance!
WineSoaked
Je dois être en désaccord, il devient de plus en plus rare d'avoir un accès physique à un serveur, quand même possible. Et toutes les instances virtuelles ne sont pas faciles à faire tourner en double! Très prudent, oui, mais nous parlons ici de modifications logicielles, rien de matériel vraiment. Quoi qu'il en soit, mon problème a été résolu donc pas de soucis :)
astorije
Heureux que vous ayez réussi! Tout ce que je mettais en garde, c'est que lorsque vous installez un périphérique intégré (c'est-à-dire Raspberry Pi) à distance, vous devriez déjà avoir trié votre logiciel / micrologiciel avant cette installation.
WineSoaked
1

Pour clarifier quelque chose dans la réponse de goldilocks , tout le code sous /lib/firmwaren'est pas "[chargé dans] le noyau Linux"; une partie est chargée directement dans des appareils connectés via USB ou d'autres moyens. Par exemple, sur un Raspberry Pi Zero W, vous verrez le message suivant dans vos journaux:

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

Il s'agit du bcm43xxpilote téléchargeant le firmware sur l'appareil . (En fait, il télécharge un correctif vers le micrologiciel dans la RAM de l'appareil; c'est pourquoi il doit être rechargé à chaque redémarrage. Je ne sais pas dans quelle mesure le Bluetooth du Pi Zero W fonctionnerait sans ce correctif.)

Que vous considériez que le code "non libre" chargé dans les appareils est correct dépend vraiment de votre point de vue. Dans des situations comme ci-dessus, le code non libre doit rester sur votre disque, mais le CPU ne l'exécute jamais. Dans d'autres situations, vous pourrez peut-être charger le code dans l'appareil une fois, puis supprimer le code de votre disque, le code non libre restant dans la mémoire flash ou similaire sur l'appareil. Cela semble assez similaire à avoir acheté un appareil avec du code non libre préchargé dans sa mémoire flash ou en ROM, comme le GPU (et peut-être d'autres parties) du Pi. On pourrait même considérer que le câblage des transistors sur les puces n'est pas libre s'ils ne sont pas disponibles pour être copiés et modifiés.

sudo journalctl | grep -i firmware vous aidera à déterminer de quel micrologiciel vous avez vraiment besoin sur votre système.

cjs
la source