Hallo,
ich möchte folgendes Linux-Programm unter Windows laufen lassen:
https://github.com/merbanan/rtl_433
Dafür habe ich mir den DVB-T USB-Stick gekauft. Nur wie kann ich nun das
Projekt hier unter Windows 10 installieren?
sunshineh schrieb:> Nur wie kann ich nun das> Projekt hier unter Windows 10 installieren?
Gar nicht, denn es ist ja für Linux. Das sind nun mal zwei völlig
verschiedene Betriebssysteme.
Du kannst eine virtuelle Linux Maschine installieren und innerhalb
dieser das Programm kompilieren und laufen lassen - oder du installierst
Linux auf der Kiste, z.B. auf eine 2. Festplatte.
Wenn du dich richtig auskennst, kannst du z.B. auch auf Windows
portieren und z.B. mit VC Express bauen. Oder du bastelst dir was mit
Cygwin zusammen.
Aber am einfachsten wird die Installation von Linux sein.
Andreas B. schrieb:> Matthias S. schrieb:>> Du kannst eine virtuelle Linux Maschine installieren>> Vergiss es. Die SW geht mit Sicherheit direkt auf die Hardware.
Der Stick wird über USB angeschlossen. In der Regel kann man mit einer
virtuellen Maschine auf USB zugreifen. Die Chancen stehen also nicht
schlecht, daß es mit einer VM funktioniert.
Karina schrieb:> Die Chancen stehen also nicht schlecht, daß es mit einer VM> funktioniert.
Zumindest mit VMware, bei denen funktioniert das Durchreichen des
USBs praktisch in allen Lebenslagen. (Kostenlose Variante: VMware
Player.)
VirtualBox ist da nicht so prickelnd, deren USB-Implementierung
bereitet deutlich mehr Probleme. Kommt hinzu, dass alles ab USB 2.0
dort closed source ist, sodass sich auch niemand drum kümmern kann,
die Bugs zu reparieren. (Oracle kümmert sich schon seit Jahren nicht
drum.)
Andreas B. schrieb:> Die SW geht mit Sicherheit direkt auf die Hardware.
Sowas sollte (bzw. sogar darf) es heute nicht mehr geben. I/O Space und
Userspace dürfen m.W. heute nur noch über /dev, /sys und /proc
kommunizieren mit Hilfe von Treibern. Wenns also richtig gemacht ist,
kommt auch die VM damit klar.
Matthias S. schrieb:> Wenns also richtig gemacht ist,> kommt auch die VM damit klar.
Nicht unbedingt, kommt darauf an ob die Virtualisierung der HW-Schicht
unterstützt wird.
USB geht bei VMware ganz gut, andere Busse (PCI etc) eher nicht.
Hanuta schrieb:> Ich dachte bei Windows 10 wäre mittlerweile Linux (Ubuntu) integriert???
Nee, anders: Falls Windows 10 installiert ist, auf Ubuntu umsteigen.
Raspberry schrieb:> Um mal die VM Diskussion zu begraben: das geht mit VirtualBox und rtl> sdr. Ob man das will ist eine andere Frage, weil hackelig.
Wenn es dort hakelig ist, wäre VMware Player zumindest einen Versuch
wert. Ich benutze VMware allerdings nur in die andere Richtung
(Linux Host, u.a. Windows als Guest), da hakelt nichts.
Hanuta schrieb:> Siehe hier:> https://www.heise.de/newsticker/meldung/Hands-on-D...
Das würde ich auch ich vorschlagen. Im Windows-App-Store findet man dazu
ein Ubuntu. Obs damit funktioniert, keine Ahnung. Einen Versuch ist es
wert.
Allerdings ist der Stick vermutlich auch damit, wie bei allen anderen
hier vorgeschlagenen Lösungen, nur für andere Linux-Programme, die in
der Umgebung laufen, nutzbar.
Für Windowsprogramme wird das nichts.
Oliver
Hanuta schrieb:> Ich dachte bei Windows 10 wäre mittlerweile Linux (Ubuntu) integriert???
Naja, das WSL ist eine Abstraktionsschicht für Linux Syscalls zu Windows
Syscalls, das noch ELF Dateien einlesen kann und die fundmentalsten
Devicefiles besitzt. Unter Linux wäre das equivalent dazu Wine, das
Windows Syscalls zu Linux Syscalls übersetzt. Für Software, die keinen
Hardwarezugriff braucht, wie einen Webserver, ein Game oder
Konsolenanwendungen durchaus ausreichend, aber sobald Hardwarezugriff
nötig wird kann man es vergessen.
Scheinbar verwendet die Software libusb, davon gibt es auch Windows
ports. Es sollte also durchaus mit Cygwin machbar sein.
Ich habe mich nun entschieden, des auf meinem Raspberry zum Laufen zu
bringen.
Die Ordnerstruktur des heruntergeladenen Codes sieht wie im Anhang zu
sehen, aus.
Ich sehe zwar in fast jedem Ordner ein Makefile.am", aber wenn ich den
Befehl "make install" eingebe, erhalte ich nur
make: *** no tartegs specified an no makefile found. Stop.
oder
make: *** no rule to make target 'install'. Stop.
Wie kann ich nun den Code compilieren?
Als erstes sollte eine Toolchain passend für den System installiert
sein. Danach gibst du ein './configure' (ohne die Häkchen) ein, damit
das Projekt seine Umgebung einstellen kann und das passende Makefile
erzeugt. Etwaige Fehler müssen korrigiert werden, bevor du dann endlich
'make' eingeben kannst.
Alternativ kannst du dir mal das Shellscript 'Do_build.sh' anschauen -
evtl. haben die Jungs da schon was automatisiert.
Zuallerst aber immer das Readme angucken.
sunshineh schrieb:> Wie kann ich nun den Code compilieren?
versuch die "do_build.sh".
Die wird ja nicht ohne Grund mit im Paket sein.
Ansonsten
autoconf&automake&configure&make...
sunshineh schrieb:> Ich sehe zwar in fast jedem Ordner ein Makefile.am", aber wenn ich den> Befehl "make install" eingebe, erhalte ich nur> make: *** no tartegs specified an no makefile found. Stop.
Makefile.am, configure.ac, etc. gehören zu Automake. CMakeLists.txt
gehört zu cmake. make sucht nach Dateien die Makefile oder makefile
heissen. Es sollte keine Rolle spielen, ob du CMake oder Automake
verwendest, die Build-Befehle stehen ja schön im Readme des verlinkten
Github repos. Also einfach ein Buildtool installieren "apt-get install
cmake" oder "apt-get install automake", danach die im Readme genannten
dependencies installieren, "apt-get install libtool libusb-1.0.0-dev
librtlsdr-dev rtl-sdr", und dann die paar Befehle für dein gewähltes
Buildsystem eintippen, die im Readme stehen.