Dapatkah saya menghapus perangkat lunak tidak bebas dengan aman di Raspberry Pi 2 yang menjalankan Raspbian?

8

Saya adalah pemilik beruntung Raspberry Pi 2 tempat saya menginstal 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

Dalam upaya untuk membuat RMS saya sendiri bahagia, saya ingin menghapus paket tidak-bebas yang disertakan dengannya secara default (saya sudah mengurus sonic-piyang tampaknya tidak-bebas ...)

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

Saya bertanya-tanya:

  1. Mengenai semua firmware-*paket ini , mengetahui bahwa saya berada di jaringan kabel (melalui port Ethernet on-board) tanpa dongle Wi-Fi (dan Pi ini tidak akan pernah mendapatkannya), apakah saya aman untuk menghapusnya? Bahkan firmware-realteksatu? Saya tidak berpikir on-board Ethernet oleh Realtek tapi saya lebih memilih untuk mengecek kalau tidak saya akan kehilangan satu-satunya akses SSH saya ...

    Untuk apa nilainya, inilah satu-satunya hasil dari $ 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. Apa yang akan saya hilangkan dengan menghapus pistoreselain dari aplikasi dan game yang sangat spesifik yang tidak akan saya gunakan ? (FYI Pi ini tidak akan pernah memiliki GUI, ini adalah server dan akan menjalani seluruh hidupnya seperti itu)
  3. Apakah ada hal penting yang dikirim pada Raspbian standar yang bergantung oracle-java8-jdk? Atau di wolfram-engine?

Saya cukup yakin saya dapat dengan aman menghapus semuanya tetapi saya ingin memastikan saya tidak melakukan sesuatu yang saya akan sesali sebelumnya (terutama (1.) !).


EDIT : Saya tidak memiliki akses fisik ke mesin (well, saya bisa, tetapi sangat jarang dan tidak selama beberapa bulan) juga tidak berencana untuk mengubah distribusi atau memformat ulang apa pun. Server berjalan dan fungsinya yang halus lebih penting daripada peningkatan kecil lainnya :-)

astorije
sumber

Jawaban:

7

Anda dapat menghapus semua itu untuk memuaskan vrms, jika hanya itu yang dikeluhkannya. Namun, RMS yang sebenarnya akan, saya yakin, memberi tahu Anda bahwa tidak ada cara untuk membuat pi benar-benar gratis, karena memerlukan beberapa firmware eksklusif untuk boot. Saya menyebutkan ini karena selalu mungkin bahwa di masa depan virtual akan menjadi lebih nyata, dalam hal ini Anda akan menghadapi beberapa kendala yang tidak dapat diatasi. Saat ini vrmsmungkin tidak memeriksa hal-hal seperti itu (mereka mungkin dapat dengan mudah disembunyikan karena mereka dimuat sebelum kernel).

  1. Mengenai semua paket firmware- * ini

Mereka yang tidak ada hubungannya dengan firmware yang disebutkan dalam paragraf terakhir. Itu adalah hal-hal goblok biner yang dapat disertakan dengan kernel linux karena perbedaan antara sikap Linux Torvald dan Richard Stallman terhadap lisensi sumber terbuka, tetapi saya percaya mereka tidak ada dalam pohon vanilla karena mereka bukan open source. Mereka tidak digunakan oleh perangkat keras pi sendiri. Jika Anda memiliki periferal yang membutuhkannya, Anda akan tahu, atau dengan mudah mengenali bahwa Anda melakukannya setelah melepasnya. Anda dapat mengembalikan semua barang ini semudah menghapusnya.

Chip ethernet tidak dibuat oleh Realtek, atau Broadcom, melainkan oleh SMSC (baru-baru ini diserap oleh Teknologi Microchip). Tidak semua firmware adalah sumber tertutup; juga, mungkin dipasang oleh pabrikan. Saya tidak tahu yang mana masalahnya di sini, tetapi jika saya harus menebak itu yang terakhir. Yaitu, firmware itu bukan dari kernel, dan itu bukan dari paket Raspbian.

Anda dapat melihat file apa yang diinstal oleh paket dpkg -L. Itu semua terisi /lib/firmware, di mana kernel membangun tempat-tempat yang ada di pohon. Oleh karena itu ada banyak hal lebih banyak daripada dari paket-paket yang tidak bebas, karena kernel Raspbian default menyertakannya. Tapi tidak ada firmware SMSC di sana.

Saya sudah benar-benar menghapus /lib/firmwareB menjalankan Raspbian jessie, dan boot dan terhubung ke ethernet. Sekali lagi, tidak ada yang /lib/firmwareberhubungan dengan perangkat keras pi itu sendiri.

  1. Apa yang akan saya kehilangan tepat dengan menghapus pistore

Saya tidak pernah menggunakan pi store, tetapi bukan karena saya menentangnya; Saya menggunakan google play di Android, dll. Ada beberapa referensi yang mengejutkan di sini. Sekali lagi, tentu tidak ada yang krusial.

  1. Apakah ada hal penting yang dikirim pada Raspbian standar yang bergantung pada oracle-java8-jdk? Atau di mesin wolfram?

Debian Reguler tidak menyertakan java apa pun, tetapi jika Anda ingin versi FOSS, tersedia satu ("es teh", alias. Openjdk); Saya tidak yakin apakah itu terserah versi 8. Sistem toh tidak menggunakan java untuk apa pun.

Mesin Wolfram ditambahkan secara default ke Raspbian (bukan Debian normal) karena alasan misterius Pi Foundation sendiri. Jika Anda tidak membutuhkannya, Anda dapat menghapusnya.

goldilocks
sumber
Terima kasih atas jawaban terinci ini, yang paling dekat dengan apa yang saya cari. Mengenai pertanyaan (1.) , Anda berkata: "Anda dapat mengembalikan semua barang ini semudah Anda menghapusnya." Sayangnya ini tidak benar karena saya tidak memiliki akses fisik ke mesin. Bisakah Anda mengonfirmasi bahwa saya dapat menghapus dengan aman firmware-realtektanpa kehilangan koneksi Ethernet dan, karenanya, akses SSH? Dugaan saya setelah membaca jawaban Anda adalah ya, tetapi saya ingin memastikan bahwa saya tidak salah memahami pernyataan Anda.
astorije
Saya dapat mengkonfirmasi bahwa itu aman untuk dihapus; Saya telah mengedit dalam beberapa paragraf di bawah (1.) yang menjelaskan bagaimana saya menguji ini.
goldilocks
Bagus terima kasih banyak! Saya telah menghapus semuanya dan dunia tidak berubah sejak saat itu!
astorije
Apakah saya memerlukan yang firmware-*disebutkan di atas untuk dongle Edimax WiFi?
KeyWeeUsr
4

Debian tampaknya tidak berpikir: " Raspberry Pi melakukan booting dari GPU dan hanya perangkat lunak tidak bebas saat ini tersedia untuk GPU, bahkan memulai mesin memerlukan gumpalan besar (2MB) dari perangkat lunak yang tidak bebas, tidak didukung "

Anda pasti bisa membuang java dan wolfram. Saya menyingkirkan mereka segera. Mengenai driver, mungkin paling mudah hanya dengan menggandakan kartu Anda dan mencoba mengeluarkannya pada salinan tes sebelum Anda buntu.

Jika Anda hanya ingin membuat vrmstidak mengeluh, Anda mungkin dapat menghapus beberapa / sebagian besar paket yang ditandai, tetapi membawanya ke standar RMS "nyata" - sebenarnya tidak menggunakan perangkat lunak tidak bebas, tidak hanya menghilangkan vrmsdebian yang ditandai paket - dengan raspbian mungkin tidak mungkin.

bobstro
sumber
Terima kasih atas tautan Debian, ini akan sangat membantu orang lain. Mengenai java dan wolfram, saya punya sedikit keraguan tetapi lebih suka memeriksa ulang. Seperti yang dikatakan dalam pertanyaan awal, saya hanya memiliki akses SSH ke mesin, bukan akses fisik, jadi saya tidak akan mencoba apa pun yang dapat mengunci diri :-)
astorije
Oh dan ya, saya pikir saya hanya akan bisa vrmsbahagia karena Raspberry Pi menjalankan perangkat keras yang tidak bebas. Di sisi lain, meskipun RMS yang sangat nyata menghabiskan hari-harinya secara harfiah beberapa langkah menjauh dari mesin saya, saya tidak berpikir dia akan pernah memperhatikannya :-)
astorije
2

Anda dapat menghapus semua paket yang Anda sebutkan dengan pengecualian yang dimungkinkan dari firmware kabel dan nirkabel Realtek.

Secara pribadi saya hanya akan menghapus firmware Realtek dan mengambil hit yang tidak mungkin Anda harus mengembalikannya.

Paket-paket lain tidak diperlukan dan beberapa seperti Wolfram dan Java mengambil banyak ruang kartu SD.

pistore adalah percobaan yang gagal. Saya tidak mengerti mengapa masih dikirim sebagai bagian dari gambar.

joan
sumber
Terima kasih atas jawabannya, saya akan melakukannya. Kecuali mengambil risiko terkunci karena saya tidak memiliki akses fisik ke mesin, hanya akses SSH. Saya akan terus menyelidiki untuk itu ...
astorije
1

Saya terus berpikir bahwa menggunakan Minibian mungkin menjadi jawaban untuk ini. Namun, saya tidak jelas apakah mereka termasuk salah satu paket yang tidak bebas atau tidak. Saya juga agak sibuk sekarang untuk memeriksa.

Bagaimanapun, bahkan jika mereka memasukkannya, Anda mungkin akan memiliki lebih sedikit hal untuk dihapus jika Anda mulai dengan Minibian.

Anggur Diseduh
sumber
Seperti yang baru saja saya sebutkan dalam edit pertanyaan saya, saya tidak berencana untuk memformat kartu SD saya atau mengubah distribusi jadi ini bukan solusi yang cocok. Terima kasih atas bantuan Anda, tetapi saya ingin menemukan jawaban langsung untuk pertanyaan saya daripada mengatasinya :-)
astorije
Yang bisa saya katakan adalah ¯ \ _ (ツ) _ / ¯ Saya akan ekstra hati-hati menghapus paket, jika Anda tidak memiliki akses fisik (atau jika tidak dalam jarak dekat). Semua bisnis penghapusan paket ini harus sudah dilakukan sebelum Anda menginstal Pi di mana pun itu, jujur ​​saja. Semoga berhasil!
WineSoaked
Saya harus tidak setuju, semakin jarang memiliki akses fisik ke server, bahkan ketika memungkinkan. Dan tidak semua instance virtual mudah untuk membuat duplikat! Ekstra hati-hati, ya, tapi kita berbicara tentang pengeditan perangkat lunak di sini, sebenarnya tidak ada perangkat keras. Pokoknya, masalah saya terpecahkan sehingga tidak perlu khawatir :)
astorije
Senang Anda berhasil! Yang saya ingatkan adalah ketika menginstal perangkat yang disematkan (yaitu Raspberry Pi) di lokasi yang jauh, Anda harus sudah menginstal perangkat lunak / firmware Anda sebelum instalasi itu.
WineSoaked
1

Untuk memperjelas sesuatu dalam jawaban goldilocks , tidak semua kode di bawah /lib/firmwareini "[dimuat ke] kernel Linux"; beberapa di antaranya dimuat langsung ke perangkat yang terpasang melalui USB atau cara lain. Misalnya, pada Raspberry Pi Zero W Anda akan melihat pesan berikut di log Anda:

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

Ini adalah bcm43xxdriver yang mengunggah firmware ke perangkat . (Faktanya, ini mengunggah tambalan ke firmware ke RAM perangkat; inilah mengapa ini perlu dimuat ulang pada setiap reboot. Saya tidak tahu seberapa baik Bluetooth pada Pi Zero W akan berfungsi tanpa tambalan ini.)

Apakah Anda menganggap kode "tidak bebas" yang dimuat ke dalam perangkat menjadi ok benar-benar tergantung pada sudut pandang Anda. Dalam situasi seperti di atas, kode nonfree harus tetap di disk Anda, tetapi CPU tidak pernah menjalankannya. Dalam situasi lain Anda mungkin dapat memuat kode ke dalam perangkat satu kali dan kemudian menghapus kode dari disk Anda, dengan kode yang tidak bebas tersisa dalam memori flash atau serupa pada perangkat. Tampaknya cukup mirip dengan membeli perangkat dengan kode nonfree yang dimuat dalam memori flash atau ROM, seperti GPU (dan mungkin bagian lain) dari Pi. Orang bahkan mungkin menganggap kabel transistor pada chip tidak bebas jika mereka tidak tersedia untuk Anda salin dan modifikasi.

sudo journalctl | grep -i firmware akan membantu Anda menentukan firmware apa yang benar-benar Anda butuhkan di sistem Anda.

cjs
sumber