Posso rimuovere in modo sicuro software non libero su un Raspberry Pi 2 con Raspbian?


8

Sono il fortunato proprietario di un Raspberry Pi 2 su cui ho installato 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

Nel tentativo di rendere felice il mio RMS , desidero rimuovere i pacchetti non gratuiti forniti con esso per impostazione predefinita (mi sono già preso cura di quelli sonic-piche sembrano non liberi ...)

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

Mi chiedo:

  1. Per quanto riguarda tutti questi firmware-*pacchetti, sapendo che sono sulla rete cablata (attraverso la porta Ethernet di bordo) senza dongle Wi-Fi (e questo Pi non ne avrà mai uno), sono sicuro di rimuoverli? Anche firmware-realtekquello? Non penso che la Ethernet di bordo sia di Realtek, ma preferisco ricontrollare altrimenti perderò il mio unico accesso SSH ...

    Per quello che vale, ecco l'unico risultato di $ 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. Cosa perderei esattamente con la rimozione a pistoreparte app e giochi molto specifici che non userò ? (Cordiali saluti, questo Pi non avrà mai una GUI, è un server e vivrà tutta la sua vita in quanto tale)
  3. C'è qualcosa di vitale che viene spedito sullo standard Raspbian da cui dipende oracle-java8-jdk? O su wolfram-engine?

Sono abbastanza sicuro di poterli rimuovere tutti in sicurezza, ma vorrei assicurarmi di non fare qualcosa di cui mi pentirò in anticipo (specialmente (1.) !).


EDIT : Non ho un accesso fisico alla macchina (beh, posso, ma molto raramente e non per altri mesi) né ho intenzione di cambiare la distribuzione o riformattare nulla. Il server è in esecuzione e il suo corretto funzionamento è più importante di altri miglioramenti minori :-)

Risposte:


7

Puoi rimuovere tutto ciò per soddisfare vrms, se è tutto ciò di cui si lamenta. Tuttavia, il vero RMS sarebbe, ne sono certo, informato che non c'è modo di rendere il pi veramente gratuito, poiché richiede l'avvio di un firmware proprietario. Ne parlo perché è sempre possibile che in futuro il virtuale diventi più reale, nel qual caso incontrerai alcuni ostacoli insormontabili. In questo momento vrmspresumibilmente non controlla tali cose (probabilmente potrebbero essere facilmente nascoste comunque poiché sono caricate prima del kernel).

  1. Per quanto riguarda tutti questi pacchetti firmware *

Coloro che non hanno nulla a che fare con il firmware menzionato nell'ultimo paragrafo. Sono cose blobby binarie che possono essere incluse nel kernel di Linux a causa della differenza tra l'atteggiamento di Linux Torvald e Richard Stallman nei confronti delle licenze open source, ma credo che non siano nell'albero della vaniglia perché non sono open source. Non vengono utilizzati da alcun hardware del PI. Se hai delle periferiche che ne hanno bisogno, lo sapresti o riconoscerai facilmente che hai fatto una volta rimosse. Puoi rimettere tutte queste cose con la stessa facilità con cui le hai rimosse comunque.

Il chip Ethernet non è realizzato da Realtek, o Broadcom, ma da SMSC (recentemente assorbito dalla tecnologia Microchip). Non tutto il firmware è chiuso; inoltre, può essere installato dal produttore. Non so quale sia il caso qui, ma se dovessi indovinare è quest'ultimo. Cioè, quel firmware non proviene dal kernel e non proviene da un pacchetto Raspbian.

Puoi vedere quali file sono stati installati da un pacchetto con dpkg -L. Tutti popolano /lib/firmware, ed è qui che una build del kernel posiziona cose che sono nella struttura. Quindi ci sono molte più cose che da quei pacchetti non liberi, poiché il kernel Raspbian predefinito lo include. Ma non c'è firmware SMSC lì.

Ho rimosso completamente /lib/firmwaresu una B che esegue Raspbian jessie, e si avvia e si collega a Ethernet. Ancora una volta, nessuna delle /lib/firmwarecose ha a che fare con l'hardware del pi.

  1. Cosa perderei esattamente con la rimozione del pistore

Non ho mai usato pi store, ma non perché ho qualcosa contro di esso; Uso Google Play su Android, ecc. Ci sono sorprendentemente pochi riferimenti ad esso qui. Ancora una volta, sicuramente niente di cruciale.

  1. C'è qualcosa di vitale che viene spedito sullo standard Raspbian che dipende da oracle-java8-jdk? O su wolfram-engine?

Debian regolare non include java, ma se si desidera una versione FOSS ne è disponibile una ("tè freddo", noto anche come openjdk); Non sono sicuro che sia fino alla versione 8. Il sistema non utilizza java per nulla comunque.

Il motore Wolfram è stato aggiunto di default a Raspbian (non è in Debian normale) per le misteriose ragioni della Pi Foundation. Se non ti serve, puoi rimuoverlo.


Grazie per questa risposta dettagliata, la più vicina a ciò che stavo cercando. Per quanto riguarda la domanda (1.) , hai detto: "Puoi rimettere tutte queste cose con la stessa facilità con cui le hai rimosse comunque." Questo purtroppo non è vero in quanto non ho accesso fisico alla macchina. Potete confermare che posso rimuovere in sicurezza firmware-realteksenza perdere la connessione Ethernet e, quindi, l'accesso SSH? La mia ipotesi dopo aver letto la tua risposta è sì, ma voglio assicurarmi di non aver frainteso la tua affermazione.
astorije,

Posso confermare che è sicuro da rimuovere; Ho modificato in alcuni paragrafi in (1.) spiegando come ho provato questo.
Riccioli d'oro

Ottimo, grazie mille! Li ho rimossi tutti e da allora il mondo non è cambiato!
astorije,

Ho bisogno di uno dei firmware-*suddetti per un dongle WiFi Edimax?
KeyWeeUsr

4

Debian sembra non pensare: " Il Raspberry Pi si avvia dalla sua GPU e solo il software non libero è attualmente disponibile per la GPU, anche l'avvio della macchina richiede un grande blocco (2 MB) di software non libero e non supportabile "

Puoi sicuramente scaricare java e wolfram. Mi sbarazzo di quelli subito. Per quanto riguarda i driver, potrebbe essere più semplice duplicare la scheda e provare a rimuoverla su una copia di prova prima di rimanere bloccato.

Se vuoi solo fare in modo di vrmsnon lamentarti, potresti essere in grado di rimuovere alcuni / la maggior parte dei pacchetti contrassegnati, ma portandolo a "reali" standard RMS - in realtà non utilizzando alcun software non libero, non semplicemente eliminando vrmsdebian segnalato pacchetti - con raspbian potrebbe essere impossibile.


Grazie per il collegamento Debian, sarà utile per gli altri. Per quanto riguarda java e wolfram, avevo pochi dubbi ma ho preferito ricontrollare. Come detto nella domanda originale, ho solo un accesso SSH alla macchina, non un accesso fisico, quindi non proverò nulla che mi possa bloccare :-)
astorije

Oh, sì, ho pensato che sarei stato in grado di rendere vrmsfelice solo quando Raspberry Pi esegue hardware non libero. D'altra parte, sebbene il vero RMS passi le sue giornate letteralmente a un passo dalla mia macchina, non credo che ci presterà mai attenzione :-)
astorije,

2

È possibile eliminare tutti i pacchetti citati con la possibile eccezione nota del firmware cablato e wireless Realtek.

Personalmente eliminerei semplicemente il firmware Realtek e subirei il colpo improbabile che devi rimetterlo.

Gli altri pacchetti non sono necessari e alcuni come Wolfram e Java occupano una notevole quantità di spazio sulla scheda SD.

pistore è un esperimento fallito. Non capisco perché sia ​​ancora spedito come parte dell'immagine.


Grazie per la risposta, lo farò. Tranne il rischio di essere bloccato perché non ho accesso fisico alla macchina, ma solo accesso SSH. Continuerò a indagare per questo ...
astorije,

1

Continuo a pensare che l'uso di Minibian potrebbe essere la risposta a questo. Tuttavia, non sono chiaro se includano uno di quei pacchetti non gratuiti o meno. Sono anche un po 'occupato in questo momento per controllare.

Ad ogni modo, anche se li includessero, probabilmente avresti meno cose da rimuovere se avessi iniziato con Minibian.


Come ho appena accennato nella modifica della mia domanda, non ho intenzione di formattare la mia scheda SD o modificare la distribuzione, quindi questa non è una soluzione adatta. Grazie per il tuo aiuto, però, ma vorrei trovare una risposta diretta alla mia domanda piuttosto che
aggirarla

Tutto quello che posso dire è ¯ \ _ (ツ) _ / ¯ sarei più in più attenti a pacchetti di eliminazione, se non si dispone di accesso fisico (o se non è nelle immediate vicinanze). Tutto questo rimozione di pacchetti dovrebbe essere stato fatto prima di installare Pi ovunque si trovasse, per essere onesti. In bocca al lupo!
WineSoaked

Non sono d'accordo, sta diventando sempre più raro avere un accesso fisico a un server, quando possibile. E non tutte le istanze virtuali sono facili da creare un duplicato! Molto attento, sì, ma stiamo parlando di modifiche al software qui, niente hardware davvero. Comunque, il mio problema è stato risolto, quindi non preoccuparti :)
astorije,

Sono contento che tu l'abbia risolto! Tutto quello che stavo avvertendo è che, quando si installa un dispositivo incorporato (ad esempio Raspberry Pi) in una posizione remota, è necessario che il proprio software / firmware sia già stato risolto prima di tale installazione.
WineSoaked

1

Per chiarire qualcosa nella risposta di goldilocks , non tutto il codice sotto /lib/firmwareè "[caricato nel] kernel Linux"; alcuni di questi vengono caricati direttamente in dispositivi collegati tramite USB o altri mezzi. Ad esempio, su un Raspberry Pi Zero W vedrai il seguente messaggio nei tuoi registri:

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

Questo è il bcm43xxdriver che carica il firmware sul dispositivo . (In effetti, sta caricando una patch sul firmware nella RAM del dispositivo; è per questo che deve essere ricaricato ad ogni riavvio. Non so quanto funzionerebbe il Bluetooth su Pi Zero W senza questa patch.)

Se consideri il codice "non libero" caricato nei dispositivi come ok dipende davvero dal tuo punto di vista. In situazioni come sopra, il codice non libero deve rimanere sul disco, ma la CPU non lo esegue mai. In altre situazioni potresti essere in grado di caricare il codice nel dispositivo una volta e quindi rimuovere il codice dal tuo disco, con il codice non libero rimasto nella memoria flash o simile sul dispositivo. Sembra abbastanza simile ad aver acquistato un dispositivo con codice non libero precaricato nella sua memoria flash o nella ROM, come la GPU (e forse altre parti) del Pi. Si potrebbe anche considerare il cablaggio dei transistor sui chip non liberi se non sono disponibili per la copia e la modifica.

sudo journalctl | grep -i firmware ti aiuterà a determinare quale firmware hai davvero bisogno sul tuo sistema.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.