grundlegende einrichtung und problembeseitigung bei wsl2

Begonnen von the ratman, 03 Juli 2024, 20:11:59

Vorheriges Thema - Nächstes Thema

the ratman

als ob ichs nicht schon mal erfolgreich gemacht hätte.

ich kriege nach der anleitung von otto123 https://heinz-otto.blogspot.com/2020/11/wsl-windows-linux-wie-macht-man-das.html auf einmal in einer neuen wsl2 folgende fehlermeldung:

ratman@Luke8:/opt/fhem$ perl fhem.pl fhem.cfg
Can't open ./log/fhem-2024-07.log: Permission denied at fhem.pl line 2945.

ich hab das logfile mal händisch angelegt/rechte vergeben und fhem startet an, aber es geht dann gleich mit einem update-versuch in fhem weiter:
Can't open ./FHEM/controls.txt: Permission denied
→do↑p!dnʇs↓shit←

Otto123

Hast du Ubuntu oder Debian?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

the ratman

#2
ha! da is er ja, der otto - sehr erfreut, meinen wiederholten lebensretter zu sehen!

debian - alles nach deiner anleitung und weiter mit
Dieser Befehlsblock funktioniert erst ab debian buster (erfordert erhöhte Rechte sudo su)

# Bei manchen debian Distributionen fehlt das Paket gpg -> nachinstallieren
apt update
apt install gpg
# von debian.fhem.de installieren - siehe aktuelle Anleitung dort https://debian.fhem.de/
wget -O- https://debian.fhem.de/archive.key | gpg --dearmor > /usr/share/keyrings/debianfhemde-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/debianfhemde-archive-keyring.gpg] https://debian.fhem.de/nightly/ /" >> /etc/apt/sources.list
apt update
apt install fhem
dann wieder weiter bei dir ...

wenn du sagst, ich soll ubuntu nehmen - auch kein problem, wenns hilft *g*
→do↑p!dnʇs↓shit←

mumpitzstuff

In der Anleitung steht das bei Debian systemd nicht gehen würde, wenn ich das beim überfliegen richtig gesehen habe. Das ist glaube ich veraltet. Für Ubuntu ist systemd inzwischen immer aktiviert. Für alle anderen Distributionen muss man das manuell machen und dann geht es auch dort.

https://learn.microsoft.com/de-de/windows/wsl/systemd

Vielleicht hast du weniger Probleme, wenn du das aktivierst (danach am besten Neustart machen) und dann erst fhem installierst?

the ratman

zwischenbericht zu wsl - ja, wenn mans weiß, is es einfach *g*

fhem startet automatisch --> rennt ohne fehlermeldungen --> lässt sich updaten.
fehlt mir also nur mehr dieses unselige problem, mit der immer neu verteilten ip.
und ja: natürlich eure einschätzung, ob die idee wirklich so gut ist, wsl zu verwenden ...
→do↑p!dnʇs↓shit←

mumpitzstuff

#5
Ich habe sowas noch nie versucht und verstehe deshalb nicht genau wo dein Problem ist. Was genau geht denn nicht?

Ich habe mal allgemein gesucht und das gefunden:
https://superuser.com/questions/1586386/how-to-find-wsl2-machines-ip-address-from-windows

Wichtig scheint vor allem die Frage zu sein: Brauchst du die Info in Windows oder in der VM?

Hier steht auch noch was zu dem Thema:
https://gist.github.com/wllmsash/1636b86eed45e4024fb9b7ecd25378ce

the ratman

#6
derzeit geht alles. ich stehe allerdings bei ottos anleitung an - genauer: die scripte für das rausfinden der aktuellen ip adresse. kapier ich einfach ned wirklich, wie wo was.
ohne diesen scripten kann ich wohl nicht "aus der ferne" auf fhem zugreifen, nur lokalhost.
→do↑p!dnʇs↓shit←

mumpitzstuff

Wenn ich das richtig verstehe, musst du nur den FHEM Port durch schleifen.

https://learn.microsoft.com/de-de/windows/wsl/networking

the ratman

#8
das wäre dann ja, wenn ichs richtig verstehe bei mir:

netsh interface portproxy add v4tov4 listenport=8083 listenaddress=0.0.0.0 connectport=8083 connectaddress=(wsl hostname -I)
is das alles, was ich brauche?

geht ohne fehlermeldung durch, aber drauf kommen von einem anderen rechner im lan tu ich nicht.
bei "wsl hostname -I" würde ich auch eine ip kriegen, die wohl stimmt: "172.31.171.25".
btw - die ip ist auch noch nach einem neustart die selbe, dachte, die wechselt immer?
→do↑p!dnʇs↓shit←

mumpitzstuff

Ehrlich gesagt würde ich davon abraten den Zugriff auf FHEM aus dem Internet zu ermöglichen. Das eröffnet eine zu große Angriffsfläche. Für sowas richtet man ein VPN ein und kann dann darüber auf das interne Netzwerk zugreifen.

the ratman

#10
derzeit komm' ich ja nicht mal aus dem lokalen netz auf fhem. einzig, localhost funzt.
vpn ... genau so mach ichs normal von "draussen", aber ich würd schon gerne von meinen anderen rechnern hier lokal aufs webinterface von fhem zugreifen können. andere programme mit webinterface, die nicht in der wsl rennen, gehen übrigens wie gewollt.

hab nun auch mal die beiden ports in und out freigegeben in der fw - immer noch keine regung auf anderen computern ...
→do↑p!dnʇs↓shit←

Wernieman

Erlaubt den die Windows Firewall den Zugriff? Kenne mich jetzt aber auch mit WSL nicht sooooo aus ....
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

the ratman

ich hab mich da an ottos zettelchen gehalten und händisch das gemacht, was per script bei ihm rennt.
eigentlich also nur tcp ports 8083 und 1883 rein und raus frei geschaltet. aja, 10000 auch noch, weil ich als klicki bunti natürlich "webmin" im wsl gleich mit reingeworfen hab (was auch nur lokal am rechenr erreichbar ist). jaja steinigt mich, aber immerhin schon besser als 'ne gui für debian *lach*.

was mich halt immer noch verwundert ist, das die wsl immer noch dieselbe ip hat wie vor 2 tagen und ca. 10 restarts - prüf' ich jedes mal per "wsl hostname -I" nach. lt. otto macht er das ganze scriptgedöns ja hauptsächlich, weil die ip sich immer ändert.
ich bin total verwirrt und hab nebenher noch 10 mal weniger ahnung von dem kram *g*.
→do↑p!dnʇs↓shit←

Otto123

Sorry bin derzeit weit weg von Zuhause und komme nur ab und zu zum lesen. Testen kann ich derzeit auch nur sehr schwierig.
Aber ich schaue es mir nochmal an.
Grüße Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

the ratman

#14
danke dir! hoffe, weit weg von zu hause heißt: urlaub, oder viel knete kassieren *bg*

ist ja auch ned dringend, also bloß keinen stress machen - bin schon dankbar, wenn ihr mich generell mal an die hand nehmts.
extra hab ich mir was zum spielen gekauft - damit ich endlich mal stressless was neues machen kann. sonst gabs ja neue hw nur, wenn die alte hinüber war. solange die alte nas also rennt, is alles kein problem und ich kann mich auch noch wunderbar dumm spielen. nicht mal wsl neu installieren würde mich nerven.

wahrscheinlich liegts problem auch wieder mal eher bei mir - großartig hab ich ja wsl2 schon 2 mal erfolgreich für fhem probiert, aber auf die glorreiche idee, mal von einem 2. rechner weg draufzukommen, bin ich depperle halt auch nie gekommen *g*.
ich muss aber jetzt schon mal sagen: wsl2 wäre mir um ecken lieber als meine alte oracle-vm version. das rennt alles so gemütlich von alleine *g*.
→do↑p!dnʇs↓shit←

the ratman

#15
neuer ERFOLGREICHER versuch nach: https://learn.microsoft.com/de-de/windows/wsl/networking#mirrored-mode-networking

also:
1) portproxy geleert, fw-rules entfernt
2) .wslconfig neu angelget mit
[wsl2]
networkingMode=mirrored
3) dann noch als admin "Set-NetFirewallHyperVVMSetting -Name '{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}' -DefaultInboundAction Allow"

geht, geht, geht *bg*
es sind auch keine portfreigaben in der normalen fw nötig. == otto, ich denke unser leben wurde erleichtert *g*
das könnte dich auch interessieren --> https://learn.microsoft.com/en-us/windows/wsl/wsl-config#example-wslconf-file
aja, als quasi "gegentest" frag ich jetzt auch schon erfolgreich und fehlerfrei meine fritzbox mit tr64 ab. wuppt auch meistens *g* 2 mal fritte abfragen von 2 fhem's scheint wohl nicht ganz so oft gut zu gehen (blocks und timeouts, aber nur wenn altes und neues fhem gleichzeitig abfragen)...

bleiben 3 fragen offen:
1) warum mag winconnect jetzt wieder nicht (die lokale version, direkt am localhost) - kriegt zwar einen connect zur gui, aber keine daten ( https://forum.fhem.de/index.php?topic=59251.msg1316586#msg1316586 ).
2) warum musst ich den rechner 2 mal restarten? beim ersten mal hat er 'ne fehlermeldung geworfen beim starten der wsl <-- jammern auf hoher nivea-creme *g*
3) wenn ich mir ottos erfolgreiche gehirnleistung für die tts durch wsl2 anschaue, frag ich mich grade, ob man damit nicht simpel programme von fhem aus in windoof steuern könnte. also starten und beenden, eventuell mit parametern. bspl.: "shutdown /r /t 20"


FLEISSAUFGABE
aja otto: wtts rennt auch schon problemlos. müsste man nur mehr deine anleitung wohin kopieren, wo es die leute auch finden *g*. ich war mal so frei das ein bissi zu kompakten:
für alle, die das nicht verfolgt haben: folgendes ergibt die möglichkeit, aus fhem raus die windows eigene tts anzusteuern: lokal, cloudlos, und dafür aber mit verständlicher sprachausgabe. ICH LIEBE DAS!!!

Zitatsudo -su fhem
nano ~/tts.ps1 (eigentlich war das im user-dir in win gedacht, aber da die aufrufe nach fhem gingen, ...)
param(
      [string]$text="Ottos feinestes Apfelmus"
)
Add-Type -AssemblyName System.speech
$tts=New-Object System.Speech.Synthesis.SpeechSynthesizer
$tts.Speak($text)
nano ~/wtts.sh
/mnt/c/Program\ Files/PowerShell/7/pwsh.exe -ExecutionPolicy Bypass \\\\wsl$\\Debian\\opt\\fhem\\tts.ps1 "$1" in der admin powershell konsole:
Set-ExecutionPolicy RemoteSignedtesten in der fhem kommandozeile:
"bash wtts.sh 'Mag Hedda den Otto?' "wenn man was hört, alias in fhem anlegen
define c_wtts cmdalias wtts .* AS {system("bash wtts.sh '$EVENT' &");;return'' } testen in der fhem kommandozeile
wtts Hedda mag den Otto auch
→do↑p!dnʇs↓shit←

Otto123

Danke für die Suche und Beschreibung, ich versuche das mal nachzuvollziehen - sobald ich wieder eine Testumgebung in Reichweite habe ;)
Viele Grüße
Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

the ratman

#17
keine angst, ich bereite schon mal zukünftige nervereien für dich vor *sfg*

hab oben ja schon geschrieben, dass ich probleme hab, mit winconnect von fhem aufs win zu kommen.
das scheint wohl ein generelles problem zu sein. weil fhem erreicht auch nicht die db am win unterbau. egal, ob ich localhost, oder die ip nehme, er findet sie nicht. die db ist aber von allen meinen anderen rechnern erreichbar, die user stimmen, die rechte stimmen ... bin grad wieder mal ratlos.


so, bin mal von der maria umgestiegen auf oracle mysql.
rennt auf anhieb mit 127.0.0.1, alles gut mit der db - ich frag lieber nicht, warum *g*

noch zu erledigen:
1) rauskriegen, warum winconnect nicht mag. probier aber morgen nochmal 127.0.0.1, hatte ich zwar schon, aber ... erfolg. auch hier "komisch", weil schon probiert hatte, aber jetzt mag auch winconnect.
2) hmlan und andere hw einbinden
3) hoffen, dass der fehler von philips hue nicht auch am neuen rechner kommt ... oder kennt sich da zufällig wer von euch aus? https://forum.fhem.de/index.php?topic=137777.0


funfact:
ich hab das addon "binnenIis gone" installiert, weil mir das ganze gegendere zu umständlich zu lesen ist.
lese ich meine beiträge durch und stelle fest, dass da schrott steht "DefaultInboundAction" - ich sehe nämlich nur "DefaultboundAction".
keine ahnung, wie oft ich jetzt versucht hab den "fehler" auszubessern ...
→do↑p!dnʇs↓shit←

the ratman

weils mir grade einfällt ... meinst, wir kriegen auch noch eine dumme wav auf win von fhem aus gestartet?
bisher mach' ich das auch mit winconnect und starte da drüber dann den mediaplayer, der mir die wav abspielt und wenn fertig, per winconnect beendet wird. das geht doch sicher einfacher, was meinst?

und 'ne frage, weil ich was drüber gelesen hab, aber nicht so wirklich kapiere:
seh' ich das richtig, dass man von einer powershell auf compi a eine andere auf compi b ansprechen kann?
nur als theorie: man könnte, wenn das stimmt, also z.b. tts auch auf einer "entfernten" windose für die durchsagen verwenden?
wäre interessant, wenn man z.b. abends nur einzelne compis ansprechen könnte, anstelle der nas mit ihren großen lautsprechern. wäre in bestimmten situationen sicher weniger nervig.
→do↑p!dnʇs↓shit←

mumpitzstuff

Auf dem Rechner mit dem du dich verbinden willst eine Powershell als admin öffnen und das eingeben:
Enable-PSRemoting -Force
Dann kannst du entweder direkt Powershell Kommandos ausführen:
Invoke-Command -ComputerName COMPUTER -ScriptBlock { COMMAND } -credential USERNAME
Oder eine Powershell remote starten:
Enter-PSSession -ComputerName COMPUTER -Credential USER

the ratman

danke dir für die infos!

na, wenn ich das nur 1 mal enablen muss, wärs ja echt ein guter ansatz.
aber ich lehne mich als unwissender lieber nicht zu weit aus dem fenster. zu viel spielen, will ich mich ned, sonst kann ich - so einer von euch da was machen will - nicht mal mehr ernsthaft testen für euch, weil alles verstellt is *g*.
→do↑p!dnʇs↓shit←

Otto123

Ich will mich mal zurückmelden, bin wieder in der Nähe zu meinem Testequipment. ;D

Also mit powershell geht sowas:
(New-Object Media.SoundPlayer 'C:\Windows\Media\Alarm01.wav').Play()Aus FHEM heraus geht das aus irgendeinem Grund nicht analog zu unserem Test mit tts https://forum.fhem.de/index.php?topic=137793.msg1309703#msg1309703
Ich bin am suchen ...  ;)

Das ganze auf einem anderen Computer kann man mit powershell remoting machen (wie von mumpitzstuff vorgeschlagen): der Windows Weg.
Es gäbe auch den weg über ssh.
powershell remoting habe ich eine Weile nicht probiert, das Problem unter Windows allgemein ist immer der "Windows Account", Vertrauensstellung der PCs usw.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

the ratman

na willkommen zurück!

du, das sind eh nur so schnappsideen. aber irgendwie find' ich die vorstellung, wirklich alles per vorhandener windowsmittel zu lösen, irgendwie ... nett

Zitatdas Problem unter Windows allgemein ist immer der "Windows Account", Vertrauensstellung der PCs usw.
genial is sowas sowieso nur, wenn man sich genau 1 mal um alles kümmern muss und dann ab sofort alles automatisch rennt.
wie g'sagt: ich spinne jetzt nur so vor mich her, was ich mir damals gewüsncht hätte.[mimimi]
wie schön wärs gewesen, wenn ich als fhem anfänger damals gleich so loslegen hätte können. weißt: so ohne 1000 zusatzprogramme und alles zusammensuchen müssen und am ende eine halbgare lösung zu haben, weil man dann halt doch auch mal ein funzendes fhem haben will nach seinem zwangsumstieg von einem kaputten raspi.
[/mimimi]
→do↑p!dnʇs↓shit←