Posso remover com segurança um software não livre em um Raspberry Pi 2 executando o Raspbian?

8

Sou o sortudo proprietário de um Raspberry Pi 2 no qual instalei o 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

Em uma tentativa de fazer feliz o meu próprio RMS , desejo remover os pacotes não gratuitos que acompanham o pacote por padrão (eu já cuidei do sonic-pique parece ser não livre ...)

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

Estou pensando:

  1. Em relação a todos esses firmware-*pacotes, sabendo que estou na rede com fio (através da porta Ethernet integrada) sem dongle Wi-Fi (e esse Pi nunca terá um), posso removê-los? Mesmo firmware-realtekesse? Não acho que a Ethernet on-board seja da Realtek, mas prefiro verificar duas vezes, caso contrário, perderei meu primeiro e único acesso SSH ...

    Pelo que vale, aqui está o ú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. O que eu perderia exatamente com a remoção pistorede aplicativos e jogos muito específicos que não usarei ? (Para sua informação, este Pi nunca terá uma GUI, é um servidor e viverá toda a sua vida como tal)
  3. Existe algo vital que é fornecido no Raspbian padrão do qual depende oracle-java8-jdk? Ou então wolfram-engine?

Tenho certeza de que posso remover todos eles com segurança, mas gostaria de ter certeza de que não estou fazendo algo de que me arrependo antes (especialmente (1.) !).


EDIT : Eu não tenho acesso físico à máquina (bem, eu posso, mas muito raramente e não por mais alguns meses), nem pretendo alterar a distribuição ou reformatar qualquer coisa. O servidor está em execução e seu bom funcionamento é mais importante que outras pequenas melhorias :-)

astorije
fonte

Respostas:

7

Você pode remover tudo isso para satisfazer vrms, se é tudo o que reclama. No entanto, o RMS real, tenho certeza, informaria que não há como tornar o pi verdadeiramente livre, pois ele requer algum firmware proprietário para inicializar. Menciono isso porque é sempre possível que, no futuro, o virtual se torne mais real; nesse caso, você encontrará alguns obstáculos intransponíveis. No momento, vrmspresumivelmente, não verifica essas coisas (elas provavelmente poderiam ser facilmente ocultadas de qualquer maneira, pois são carregadas antes do kernel).

  1. Em relação a todos esses pacotes de firmware- *

Aqueles que não têm nada a ver com o firmware mencionado no último parágrafo. São coisas binárias que podem ser incluídas no kernel do linux devido à diferença entre as atitudes de Linux Torvald e Richard Stallman em relação ao licenciamento de código aberto, mas acredito que não estão na árvore de baunilha porque não são de código aberto. Eles não são usados ​​por nenhum hardware do pi. Se você possui periféricos que precisam deles, você saberia ou reconheceria facilmente o que tinha depois de removê-los. Você pode colocar todas essas coisas de volta tão facilmente quanto as removeu de qualquer maneira.

O chip ethernet não é fabricado pela Realtek, ou Broadcom, é pela SMSC (recentemente absorvido pela Microchip Technology). Nem todo firmware é de código fechado; Além disso, ele pode ser instalado pelo fabricante. Não sei qual é o caso aqui, mas se eu tivesse que adivinhar é o último. Ou seja, esse firmware não é do kernel e não é de um pacote Raspbian.

Você pode ver com quais arquivos foram instalados por um pacote dpkg -L. Todos são preenchidos /lib/firmware, e é aí que um kernel compilado coloca coisas que estão na árvore. Portanto, há muito mais coisas do que os pacotes não-livres, já que o kernel Raspbian padrão o inclui. Mas não há firmware SMSC lá.

Eu removi completamente /lib/firmwareum jessie Raspbian em execução B, e ele inicializa e se conecta à Ethernet. Novamente, nada disso /lib/firmwaretem a ver com o hardware do pi.

  1. O que eu perderia exatamente com a remoção do pistore

Eu nunca usei pi store, mas não porque tenho algo contra; Eu uso o google play no Android, etc. Há surpreendentemente poucas referências a ele aqui. Mais uma vez, certamente nada crucial.

  1. Existe algo vital que é fornecido no Raspbian padrão que depende do oracle-java8-jdk? Ou no wolfram-engine?

O Debian regular não inclui java, mas se você quiser uma versão FOSS, uma está disponível ("chá gelado", também conhecido como openjdk); Não tenho certeza de que seja a versão 8. O sistema não usa java para nada.

O Wolfram-engine foi adicionado por padrão ao Raspbian (não está no Debian normal) pelas razões misteriosas da própria Fundação Pi. Se você não precisar, pode removê-lo.

Cachinhos Dourados
fonte
Obrigado por esta resposta detalhada, a mais próxima do que eu estava procurando. Em relação à pergunta (1.) , porém, você disse: "Você pode devolver todas essas coisas com a mesma facilidade com que as removeu". Infelizmente, isso não é verdade, pois não tenho acesso físico à máquina. Você pode confirmar que eu posso remover com segurança firmware-realteksem perder a conexão Ethernet e, portanto, o acesso SSH? Meu palpite depois de ler sua resposta é sim, mas quero ter certeza de que não entendi mal sua declaração.
precisa saber é o seguinte
Posso confirmar que é seguro remover; Eu editei em alguns parágrafos em (1.) explicando como eu testei isso.
goldilocks
Ótimo, muito obrigado! Eu os removi e o mundo não mudou desde então!
Astorije
Preciso de um dos firmware-*mencionados acima para um dongle Edimax WiFi?
KeyWeeUsr
4

O Debian parece pensar que não: " O Raspberry Pi é inicializado a partir de sua GPU e atualmente apenas o software não-livre está disponível para a GPU, mesmo o início da máquina requer um grande blob (2MB) de software não-livre e não-suportável "

Você pode definitivamente despejar java e wolfram. Eu me livrei deles imediatamente. Quanto aos drivers, pode ser mais fácil duplicar o cartão e tentar removê-los em uma cópia de teste antes de ficar preso.

Se você quiser apenas fazer vrmsuma reclamação, poderá remover alguns / a maioria dos pacotes sinalizados, mas obter padrões RMS "reais" - na verdade, sem usar nenhum software não-livre, não apenas se livrando do vrmsdebian sinalizado pacotes - com raspbian pode ser impossível.

bobstro
fonte
Obrigado pelo link Debian, será útil para outras pessoas. Em relação a java e wolfram, eu tinha poucas dúvidas, mas preferia checar novamente. Como disse na pergunta original, eu só tenho um acesso SSH para a máquina, não acesso físico, por isso não vou tentar qualquer coisa que pode bloquear-me para fora :-)
astorije
Ah, sim, achei que só poderei fazer vrmsfeliz se o Raspberry Pi executar hardware não livre. Por outro lado, embora as RMS muito real passa os dias literalmente a alguns passos da minha máquina, eu não acho que ele nunca vai prestar atenção a ela :-)
astorije
2

Você pode excluir todos os pacotes mencionados com a exceção possível observada do firmware com e sem fio da Realtek.

Pessoalmente, basta excluir o firmware da Realtek e receber o resultado improvável de que você precisa colocá-lo de volta.

Os outros pacotes não são necessários e alguns como Wolfram e Java ocupam uma quantidade significativa de espaço no cartão SD.

pistore é um experimento fracassado. Não entendo por que ele ainda é enviado como parte da imagem.

joan
fonte
Obrigado pela resposta, eu vou fazer isso. Exceto o risco de ficar bloqueado, pois não tenho acesso físico à máquina, apenas acesso SSH. Vou manter investigar por que ...
astorije
1

Eu continuo pensando que usar o Minibian pode ser a resposta para isso. No entanto, não estou claro se eles incluem algum desses pacotes não-livres ou não. Também estou um pouco ocupado agora para verificar.

De qualquer forma, mesmo que eles os incluíssem, você provavelmente teria menos coisas a remover se começar com o Minibian.

WineSoaked
fonte
Como acabei de mencionar na edição da minha pergunta, não pretendo formatar meu cartão SD ou alterar a distribuição, portanto, essa não é uma solução adequada. Obrigado pela vossa ajuda, porém, mas eu gostaria de encontrar uma resposta direta à minha pergunta ao invés de ir ao redor :-)
astorije
Tudo o que posso dizer é ¯ \ _ (ツ) _ / ¯ Eu teria um cuidado extra ao excluir pacotes, se você não tiver acesso físico (ou se ele não estiver próximo). Todo esse negócio de remoção de pacotes deveria ter sido realizado antes da instalação do Pi, onde quer que esteja, para ser sincero. Boa sorte!
WineSoaked
Devo discordar, está se tornando mais raro ter acesso físico a um servidor, quando possível. E nem todas as instâncias virtuais são fáceis de gerar uma duplicata! Cuidado extra, sim, mas estamos falando de edições de software aqui, nada de hardware realmente. De qualquer forma, o meu problema foi resolvido isso não se preocupe :)
astorije
Feliz que você tenha resolvido isso! Tudo o que eu estava avisando é que, ao instalar um dispositivo incorporado (por exemplo, Raspberry Pi) em um local remoto, você já deve ter o seu software / firmware resolvido antes dessa instalação.
WineSoaked
1

Para esclarecer algo na resposta dos goldilocks , nem todo o código abaixo /lib/firmwareé "[carregado no] kernel do Linux"; algumas delas são carregadas diretamente em dispositivos conectados via USB ou outros meios. Por exemplo, em um Raspberry Pi Zero W, você verá a seguinte mensagem em seus logs:

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

Este é o bcm43xxdriver que está carregando o firmware no dispositivo . (Na verdade, ele está carregando um patch para o firmware na RAM do dispositivo; é por isso que ele precisa ser recarregado a cada reinicialização. Não sei se o Bluetooth no Pi Zero W funcionaria sem esse patch.)

Se você considera que o código "não livre" carregado nos dispositivos está ok, depende realmente do seu ponto de vista. Em situações como a acima, o código não livre deve permanecer no seu disco, mas a CPU nunca o executa. Em outras situações, você poderá carregar o código no dispositivo uma vez e depois removê-lo do disco, com o código não livre permanecendo na memória flash ou semelhante no dispositivo. Isso parece muito semelhante a ter comprado um dispositivo com código não livre pré-carregado na memória flash ou na ROM, como a GPU (e talvez outras partes) do Pi. Pode-se até considerar que a fiação dos transistores nos chips não é livre se eles não estiverem disponíveis para você copiar e modificar.

sudo journalctl | grep -i firmware ajudará você a determinar qual firmware você realmente precisa no seu sistema.

cjs
fonte