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
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.
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!
> *Und Beim Raspberry liegt also alles offen , damit andere Leute daran
Also alles außer dem Grafiktreiber
arduino ist ein mikrocontroller. beim rpi liegt nicht alles offen, cpu und gpu.
Gut dass heißt die CPU und GPU sind nicht offen, sondern von ARM und Broadcom oder? Der Rest ist aber frei zugänglich. Beim Arduino ist der ATmega bzw auch ein ARM nicht OpenSource oder? Danke!
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?
Dann sollte man erstmal klären: - Was ist ein SBC --> Arduino schonmal nicht! - Was meint OpneSource --> Software? --> SoftCore? Oder meinst du auch OpenHardware?
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
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
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.
Scelumbro schrieb: > Lass mich raten - du kompilierst deinen Linuxkernel selbst Lass mich raten - du bist zu doof um eine Suchmaschine deiner Wahl zu benutzen? Scelumbro schrieb: > Für den RPI gibt es keine Schaltpläne Ach, und was ist das hier? https://www.raspberrypi.org/wp-content/uploads/2012/04/Raspberry-Pi-Schematics-R1.0.pdf
Kaj G. schrieb: > Scelumbro schrieb: >> Für den RPI gibt es keine Schaltpläne > Ach, und was ist das hier? > https://www.raspberrypi.org/wp-content/uploads/2012/04/Raspberry-Pi-Schematics-R1.0.pdf Und was ist mit den Nachfolgern? Da ists dann vorbei mit der Herrlichkeit.
Rene S. schrieb: > Dann sollte man erstmal klären: > - Was ist ein SBC > --> Arduino schonmal nicht! Wieso nicht? Natürlich ist das ein SBC, wenn man unter SBC "single board computer" versteht. Ein Microcontroller ist der AVR (oder ARM), der auf die Arduinoplatine gelötet ist.
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.
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
Tim M. schrieb: > Also wo kann ich wirklich nachvollziehen was die CPU macht? Auf welchem Level hättest Du das gerne? Auf Bit- und Registerebene, oder möchstest Du den internen Logikgattern zusehen können, oder gar den einzelnen Transistoren?
Mir ist schon klar, dass du dich über mich lustig machst, dennoch gebe ich eine Antwort und sage auf Registerebene
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.
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
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/
Tim M. schrieb: > Mir ist schon klar, dass du dich über mich lustig machst, dennoch gebe > ich eine Antwort und sage auf Registerebene Dann ist doch ein Blockbild + Instruction set genug offenlegung?! Es gibt jedenfalls AVR-FPGA Implementierungen die auf Basis der Datenblätter erstellt wurden. http://opencores.org/project,avr_core
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.