Welcher SBC ist Open Source?

Gast #4493851
Lesenswert?
• ▲
▼
Hi guten Tag,

welcher Single Board Computer ist wirklich Open Source?
Also Arduino ist denke ich Open Source-> andere Hersteller bauen sehr 
ähnlichen.
Wie viel Open Source ist Raspberry, es gibt anscheinend nicht so viele 
genaue Imitate.
Ist Banana Pi auch Open Source?

Vielen Dank schönen Tag noch :D
Gast #4493854
Lesenswert?
• ▲
▼
wo ist bei dir die Grenze für OpenSource?

Beim Raspi ist der Grafiktreiber nicht OpenSource. (auch wenn aktuell an 
einen opensource treiber gearbeitet wird)
Auch die CPU selber ist nicht OpenSource.
Gast #4493868
Lesenswert?
• ▲
▼
Danke.
*Als was könnte man einen Arduino denn bezeichnen?

*Und Beim Raspberry liegt also alles offen , damit andere Leute daran 
weiterprogrammieren können und sozusagen auch andere Hersteller alles 
1:1 kopieren können?

*Und Beim Banana?

Danke!
Gast #4494773
Lesenswert?
• ▲
▼
Aber die Software ist bei allen OpenSource. Was bedeutet das?
Kann man da nur die I/O selber programmieren oder noch etwas tiefer 
gehen?
Also irgendwie den Prozessor programmieren oder so?
(Firma: RUB) #4494790
Lesenswert?
• ▲
▼
Das ist eine schwierige Frage, denn: Was genau braucht es denn damit 
der SBC "Open Source" ist?

Natürlich, RPi, BBB, und Co., da läuft überall ein Linux drauf, und im 
zweifel lassen sich die Boards auch Bare-Metal programmieren. Die 
eigentliche Software ist also Open-Source. Und die Schaltpläne der 
Boards können auch eingesehen werden. Aber: Reicht das um das ganze als 
"Open-Source" zu bezeichnen?

Ich sag mal was für Mich Open-Source wäre:
Open-Source wäre für mich, wo alles einsehbar bar! Also nicht nur Code 
vom OS oder Schaltpläne vom Board, sondern auch, was In der CPU/GPU 
passiert (und damit meine ich keinen Verkackten "Block-Schaltbilder"). 
Und genau hier scheitert es. ARM ist noch mehr zugenagelt als x86. Was 
in der CPU für Microcode und Backdoars ausgeführt werden? Keine Ahnung. 
Weiß nur der Hersteller...

Bei ARM ist das Problem, das Nur der Core lizensiert wird, was dann aber 
an Peripherie noch dazu kommt, das kann der Hersteller frei entscheiden.

Bei x86 gibt es (soweit ich weiß!) an der Stelle kein Spielraum. der 
Core ist der Core, fertig. Was das Mainboard nachher an Schnittstellen 
hat, liegt beim Mainboard-Hersteller, hat in dem Sinne aber nichts mit 
der CPU zu tun.
Und bei x86 ist ganz klar das Problem, der Microcode, die Intel MMU und 
die Intel Innovation Engine. Das sind nämlich 3 Teile die sich jeder 
Kontrolle entziehen, sowohl der Kontrolle durch das OS, als auch der 
Kontroller des Nutzers, als auch der Kontrolle der Kernel-Hacker. Intel 
weiß, was darin passiert. Der Rest der Welt darf raten...
BIOS/UEFI/SecureBoot sind ebenfalls so Sachen, die von den 
Boardherstellern nicht offengelegt wird.

Was wäre eine Open-Source alternative? FPGA!
Moment, stop, nein, nicht wirklich. Hier ist wieder das Problem: Selbst 
wenn man den Code hätte, der Ausgeführt wird, weiß man was da sonst noch 
so im inneren passiert? Vielleicht auch ein kleiner Teil des FPGA-Cores 
der eine versteckte Firmware vom Hersteller hat?

Also, die Frage ist: Was genau ist für Dich Open-Source?
Reicht es dir, die Board-Schaltpläne und das OS einsehen zu können?
Dann ist Arduino Open-Source, fällt aber nicht unter SBC.
Dann sind RPi, BBB und Co. SBC die auch Open-Source sind.

Grüße
#4494798
Lesenswert?
• ▲
▼
Moin,

Schnurrbart Ente schrieb:
> Aber die Software ist bei allen OpenSource. Was bedeutet das?

Nicht alle Software ist OpenSource. Bei dickeren Chips, wie sie in den 
diversen $OBST-pi Rechnern verbaut sind, gibts oft mehr oder weniger 
kleine (aber deshalb nicht unwichtige) Teile, die's nur als Binaerblob 
gibt. Gerne davon betroffen ist:

Der erste Bootloader, also das erste Stueck Software, das der Prozessor 
aus einem vom user programmierbaren Flash laed und ausfuehrt. Das kann 
ein kleines binary sein, das "nur" u-boot laed, aber signiert sein muss, 
damit der Prozessor es ausfuehrt.
Saemtliche Software, die um Hardwarebeschleunigung herum arbeitet. 
Manche Funktionen z.b. Graphik, Audio/Video-Codecs, 
Ver/Entschluesselungen lassen sich durch spezielle Hardware ausserhalb 
des Prozessors deutlich schneller abarbeiten. Zu dieser Hardware gibts 
oft vom Hersteller keine Unterlagen fuer normale Sterbliche. Mit Glueck 
evtl. ein paar Binaries, die diese Hardware ansprechen und deren 
Interface zum Prozessor hin mehr oder weniger duerftig dokumentiert ist.

Das sind die ueblichen Verdaechtigen.

> Kann man da nur die I/O selber programmieren oder noch etwas tiefer
> gehen?

Kommt halt drauf an, was "tiefer" heisst. An ein paar Pins wackeln wird 
eher funktionieren, als z.B. schnelle DCT-Funktionen per 
Videobeschleunigung zu programmieren.


> Also irgendwie den Prozessor programmieren oder so?
"Prozessor programmieren" sollte keine Probleme machen, da der 
Prozessortyp meist gut dokumentiert ist und man zumindest fuer die 
gaengigen Prozessoren (ARM) an jeder Ecke mit Crosscompilern 
zugeschuettet wird.

Gruss
WK
Gast #4494803
Lesenswert?
• ▲
▼
Kaj G. schrieb:
> Ich sag mal was für Mich Open-Source wäre:

Lass mich raten - du kompilierst deinen Linuxkernel selbst - aber nur 
nach dem du höchstselbst ein Codereview jeder einzelnen Zeile 
durchgeführt hast? Könnte ja jemand irgendwas reingeschmuggelt haben!
Auch bei den CPUs. Selbst wenn detaillierte Pläne bekannt wären, 
wüsstest du immer noch nicht ob das Stück Silizium vor dir wirklich den 
Plänen entspricht. Also Chips selber ätzen ...

Zur eigentlichen Frage:
Für den RPI gibt es keine Schaltpläne und der Bootloader ist imho 
vollkommen vernagelt. Vollständige Datenblätter habe ich auch noch keine 
gesehen. Deswegen: Keineswegs Opensource (auch wenn das ein bisschen vom 
Selbstbild der RPI-Foundation abweicht).
Beaglebone: Für den SoC gibt es ausführliche Datenblätter frei verfügbar 
sowie imho auch Schaltpläne für das Beaglebone Black.
Olimex veröffentlicht für seine SBCs auch regelmäßig Schaltpläne und 
Datenblätter, die ALlwinner SoCs laufen soweit ich weiß aber auch nur 
mit irgendwelchen Blobs.
Gast #4494905
Lesenswert?
• ▲
▼
Schnurrbart Ente schrieb:
> *Und Beim Banana?

Vielleicht lässt sich die Frage durch Ausschluss einfacher beantworten:

Der Banana-Pi (bzw. alle Clone mit Allwinner-CPU) sind sozusagen 
Opensource-Antimaterie.

http://linux-sunxi.org/GPL_Violations

Diverse OpenWRT-Taugliche Router/Boards sind sehr "Open Source". Keine 
VGA mit Binärblob, aber ggfs. ein WLan-Firmware-BLOB.
Nach neuen FCC-regeln aber bald illegal, schnell noch mit ein paar 
eindecken bevor die alle zwangs-Verdongelt werden müssen.

http://heise.de/-3109847

RasPi ist momentan so "halbwegs" Opensource, hat aber die höchsten 
Chancen "ganz frei" zu werden, wenn der neue VGA-Treiber fertig ist.
Gast #4817087
Lesenswert?
• ▲
▼
Halli Hallo,

der letzte Beitrag ist zwar schon etwas her, dennoch möchte ich hieran 
anknüpfen.

Welche Architektur kommt denn momentan am nächsten an den Begriff "Open 
Source" heran? ARM, X86, MIPS, Sparc?
Wo ist am meisten offengelegt? Also wo kann ich wirklich nachvollziehen 
was die CPU macht? Ähnlich wie in einem kleinen Microcontroller.

Danach würde ich mir ein geeignetes Board suchen, egal ob SBC oder 
komplettes Mainboard
Persönliche Seite #4817122
Lesenswert?
• ▲
▼
Tim M. schrieb:
> Mir ist schon klar, dass du dich über mich lustig machst,

Das ist ein Missverständnis. Es gibt halt unterschiedliche Sichtweisen, 
was man unter "nachvollziehen, was eine CPU macht" versteht.

Sehen, was ein Assemblerprogramm anstellt, sehen, was in den internen 
Registern abläuft, wenn ein einzelner Befehl abgearbeitet wird, oder 
auch sehen, was auf den verschiedenen Bussen des Controllers/Prozessors 
während der Abarbeitung von Befehlen geschieht.

Das ist ernstgemeint.

Für ersteres genügt irgendein Controller, bei dem die 
Assemblerprogrammierung ausreichend gut dokumentiert ist (d.h.: 
Praktisch jeder, wie sonst sollte man dafür Programme schreiben?), für 
die weiteren Einsichten bräuchte man z.B. VHDL-Modelle des CPU-Kerns und 
einen fetten Simulator.
#4817140
Lesenswert?
• ▲
▼
Moin,

Tim M. schrieb:
> Welche Architektur kommt denn momentan am nächsten an den Begriff "Open
> Source" heran? ARM, X86, MIPS, Sparc?

Das hat nichts miteinander zu tun. Du kannst auf allen Architekturen 
Open und Closed source schreiben und anbieten. Es ist das drumherum; 
alles was nicht-Prozessor ist, was Probleme macht: 
Graphikbeschleunigung, Videocodecs, Cryptounits,....
Und dann evtl. noch ein Signaturcheck im 1.Stage bootloader oder wie 
beim RaspPI - dass der 1.Stage bootloader garnicht von der eigentlichen 
CPU ausgefuehrt wird. Aber auch das ist voellig von der CPU-Architektur 
unabhaengig.

Gruss
WK
Gast #4817158
Lesenswert?
• ▲
▼
Ok, ich bleibe mal beim "drumherum".

Für den Raspberry Pi gibt es ein PDF: BCM2835 ARM Peripherals.
Dort ist das ausführlich beschrieben.

Aber für den Prozessor finde ich nur Blockschaltbilder. Hier würde ich 
meine Nase einfach tiefer reinstecken wollen


Ein interessanter Link: Dort läuft es darauf hinaus, dass es öffentlich 
gemachte Architekturen nur als Softcore auf einem FPGA gibt

https://whitequark.org/blog/2012/09/25/why-raspberry-pi-is-unsuitable-for-education/
Persönliche Seite #4817213
Lesenswert?
• ▲
▼
Tim M. schrieb:
> Aber für den Prozessor finde ich nur Blockschaltbilder. Hier würde ich
> meine Nase einfach tiefer reinstecken wollen

Für den entsprechenden ARM-Kern (ARM11) hast Du Dir die Dokumentation 
von ARM selbst schon 'reingezogen?

https://www.arm.com/products/processors/classic/arm11/arm1176.php
https://www.arm.com/products/processors/classic/arm11/index.php

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren