Vinn nätagg från Seasonic

Virtualhere server på RaspberryPi Zero starta vid bood

Permalänk

Virtualhere server på RaspberryPi Zero starta vid bood

Hej
Jag har installerat Virtualhere på en RaspberryPi Zero med hjälp av scripten här: https://github.com/virtualhere/script

Då har det skapats en systemd service men efter boot får jag följande felmeddelande av systemctl --failed

UNIT LOAD ACTIVE SUB DESCRIPTION ● virtualhere.service loaded failed failed VirtualHere Server LOAD = Reflects whether the unit definition was properly loaded. ACTIVE = The high-level unit activation state, i.e. generalization of SUB. SUB = The low-level unit activation state, values depend on unit type. 1 loaded units listed. Pass --all to see loaded but inactive units, too. To show all installed unit files use 'systemctl list-unit-files'.

Så här ser virtualhere.service ut:

[Unit] Description=VirtualHere Server #After=network.target [Service] Type=forking ExecStart=/usr/local/sbin/vhusbdarmpi -b -c /usr/local/etc/virtualhere/config.ini [Install] WantedBy=multi-user.target

Hur gör jag för att felsöka varför den servicen inte startar?

Visa signatur

ASRock Z68 Extreme 3 | 2500K @ 3.3GHz | ASUS Radeon 7950 DCII Top | Corsair Vengeance 8Gb 1600MHz |Intel 330 180GB| Crucial m4 64GB | WD Blue 750GB | Thermaltake Thoughpower 750 W

Permalänk
Hedersmedlem

Börja med att köra

/usr/local/sbin/vhusbdarmpi -b -c /usr/local/etc/virtualhere/config.ini

I en terminal som root och se vad som händer.

Visa signatur

I am a prototype for a much larger s󠅄󠅘󠅕󠄐󠅞󠅕󠅕󠅔󠄐󠅤󠅟󠄐󠅒󠅕󠄐󠅟󠅒󠅣󠅕󠅢󠅦󠅕󠅔󠄐󠅑󠅞󠅔󠄐󠅥󠅞󠅔󠅕󠅢󠅣󠅤󠅟󠅟󠅔󠄐󠅧󠅑󠅣󠄐󠅟󠅞󠅓󠅕󠄐󠅣󠅑󠅤󠅙󠅣󠅖󠅙󠅕󠅔󠄐󠅒󠅩󠄐󠄷󠅟󠅔󠄞󠄐󠄾󠅟󠅧󠄐󠅧󠅕󠄐󠅓󠅑󠅞󠄐󠅙󠅝󠅠󠅜󠅕󠅝󠅕󠅞󠅤󠄐󠅤󠅘󠅕󠄐󠅣󠅑󠅝󠅕󠄐󠅖󠅥󠅞󠅓󠅤󠅙󠅟󠅞󠅑󠅜󠅙󠅤󠅩󠄐󠅧󠅙󠅤󠅘󠄐󠅔󠅑󠅤󠅑󠄝󠅝󠅙󠅞󠅙󠅞󠅗󠄐󠅑󠅜󠅗󠅟󠅢󠅙󠅤󠅘󠅝󠅣󠄞ystem

Permalänk
Skrivet av Aphex:

Börja med att köra

/usr/local/sbin/vhusbdarmpi -b -c /usr/local/etc/virtualhere/config.ini

I en terminal som root och se vad som händer.

Den startar upp men den startar fortfarande inte vid reboot

Visa signatur

ASRock Z68 Extreme 3 | 2500K @ 3.3GHz | ASUS Radeon 7950 DCII Top | Corsair Vengeance 8Gb 1600MHz |Intel 330 180GB| Crucial m4 64GB | WD Blue 750GB | Thermaltake Thoughpower 750 W

Permalänk
Medlem

Är det verkligen så att binären forkar? När du kör den i terminalen, returnerar terminalen direkt och "programmet" fortsätter i bakgrunden eller "kör programmet i terminalen" tills du typ CTRL-C'ar? Om det är det sistnämnda så bör Type=simple eller liknande användas istället för forking. Forking förväntar sig att programmet forkar av en ny process och att huvudprocessen returnerar.

Visa signatur

Citera mig för svar.
Arch Linux

Permalänk
Skrivet av Dimman:

Är det verkligen så att binären forkar? När du kör den i terminalen, returnerar terminalen direkt och "programmet" fortsätter i bakgrunden eller "kör programmet i terminalen" tills du typ CTRL-C'ar? Om det är det sistnämnda så bör Type=simple eller liknande användas istället för forking. Forking förväntar sig att programmet forkar av en ny process och att huvudprocessen returnerar.

Om jag bara startar programmet i terminalen med

sudo vhusbdarm

så går programmet i terminalen till jag CTRL-C
Men kör jag:

sudo /usr/local/sbin/vhusbdarmpi -b -c /usr/local/etc/virtualhere/config.ini

så startar programmet och returnerar till terminalen

Visa signatur

ASRock Z68 Extreme 3 | 2500K @ 3.3GHz | ASUS Radeon 7950 DCII Top | Corsair Vengeance 8Gb 1600MHz |Intel 330 180GB| Crucial m4 64GB | WD Blue 750GB | Thermaltake Thoughpower 750 W

Permalänk

systemctl status virtualhere

ger följande:
Om det nu kan vara någon hjälp?

systemctl status virtualhere ● virtualhere.service - VirtualHere Server Loaded: loaded (/etc/systemd/system/virtualhere.service; enabled; vendor preset: enabled) Active: inactive (dead) since Tue 2021-04-27 12:25:49 CEST; 2min 1s ago Process: 270 ExecStart=/usr/local/sbin/vhusbdarm -b -c /usr/local/etc/virtualhere/config.ini (code=exited, status=0/SUCCESS) Main PID: 270 (code=exited, status=0/SUCCESS) apr 27 12:24:52 readout1 systemd[1]: Started VirtualHere Server. apr 27 12:24:54 readout1 vhusbdarm[270]: >>> Starting VirtualHere USB Server v4.3.0 (Built: Apr 27 2021, 08:41:27)<<< apr 27 12:24:55 readout1 vhusbdarm[270]: Using configuration /usr/local/etc/virtualhere/config.ini apr 27 12:24:59 readout1 vhusbdarm[300]: Server licensed to=unlicensed max_devices=1 apr 27 12:24:59 readout1 vhusbdarm[300]: Using large URB's apr 27 12:24:59 readout1 vhusbdarm[300]: Listening on all network interfaces at TCP port 7575 apr 27 12:24:59 readout1 vhusbdarm[300]: Found High speed device [12d1:1506] "HUAWEI Technology, HUAWEI Mobile" at address 113 apr 27 12:24:59 readout1 vhusbdarm[300]: Found Full speed device [10c4:800a] "Silicon Labs, SPORTident USB to UART Bridge Controller" at address 114 apr 27 12:25:49 readout1 vhusbdarm[300]: VirtualHere 4.3.0 caught signal 11 (Segmentation fault) and must exit. Sorry for the inconvenience, please contact mail apr 27 12:25:49 readout1 systemd[1]: virtualhere.service: Succeeded.

Visa signatur

ASRock Z68 Extreme 3 | 2500K @ 3.3GHz | ASUS Radeon 7950 DCII Top | Corsair Vengeance 8Gb 1600MHz |Intel 330 180GB| Crucial m4 64GB | WD Blue 750GB | Thermaltake Thoughpower 750 W

Permalänk
Medlem
Skrivet av Erixon_81:

systemctl status virtualhere

ger följande:
Om det nu kan vara någon hjälp?

systemctl status virtualhere ● virtualhere.service - VirtualHere Server Loaded: loaded (/etc/systemd/system/virtualhere.service; enabled; vendor preset: enabled) Active: inactive (dead) since Tue 2021-04-27 12:25:49 CEST; 2min 1s ago Process: 270 ExecStart=/usr/local/sbin/vhusbdarm -b -c /usr/local/etc/virtualhere/config.ini (code=exited, status=0/SUCCESS) Main PID: 270 (code=exited, status=0/SUCCESS) apr 27 12:24:52 readout1 systemd[1]: Started VirtualHere Server. apr 27 12:24:54 readout1 vhusbdarm[270]: >>> Starting VirtualHere USB Server v4.3.0 (Built: Apr 27 2021, 08:41:27)<<< apr 27 12:24:55 readout1 vhusbdarm[270]: Using configuration /usr/local/etc/virtualhere/config.ini apr 27 12:24:59 readout1 vhusbdarm[300]: Server licensed to=unlicensed max_devices=1 apr 27 12:24:59 readout1 vhusbdarm[300]: Using large URB's apr 27 12:24:59 readout1 vhusbdarm[300]: Listening on all network interfaces at TCP port 7575 apr 27 12:24:59 readout1 vhusbdarm[300]: Found High speed device [12d1:1506] "HUAWEI Technology, HUAWEI Mobile" at address 113 apr 27 12:24:59 readout1 vhusbdarm[300]: Found Full speed device [10c4:800a] "Silicon Labs, SPORTident USB to UART Bridge Controller" at address 114 apr 27 12:25:49 readout1 vhusbdarm[300]: VirtualHere 4.3.0 caught signal 11 (Segmentation fault) and must exit. Sorry for the inconvenience, please contact mail apr 27 12:25:49 readout1 systemd[1]: virtualhere.service: Succeeded.

Det ser ut som att det är någon bugg i mjukvaran (som orsakar SEGFAULT). Sen varför den triggas vid uppstart och inte när du startar manuellt vet jag inte på rak arm. Det går inte starta den via systemd ens efter att systemet bootat?

Visa signatur

Citera mig för svar.
Arch Linux

Permalänk
Skrivet av Dimman:

Det ser ut som att det är någon bugg i mjukvaran (som orsakar SEGFAULT). Sen varför den triggas vid uppstart och inte när du startar manuellt vet jag inte på rak arm. Det går inte starta den via systemd ens efter att systemet bootat?

hur startar jag via systemd efter att jag bootat?

Visa signatur

ASRock Z68 Extreme 3 | 2500K @ 3.3GHz | ASUS Radeon 7950 DCII Top | Corsair Vengeance 8Gb 1600MHz |Intel 330 180GB| Crucial m4 64GB | WD Blue 750GB | Thermaltake Thoughpower 750 W

Permalänk
Medlem
Skrivet av Erixon_81:

hur startar jag via systemd efter att jag bootat?

systemctl start virtualhere

systemctl stop virtualhere

systemctl restart virtualhere

(Jag vet inte varför du plockat bort After=network.target dock, om den är beroende av att nätverket är uppsatt så kanske det är därför den failar vid startup? Om du gör ändringar i .service-filen så glöm inte göra en systemctl daemon-reload för att systemd ska ladda om innehållet innan du gör några start/restart/stop-försök.)

Visa signatur

Citera mig för svar.
Arch Linux

Permalänk
Skrivet av Dimman:

systemctl start virtualhere

systemctl stop virtualhere

systemctl restart virtualhere

(Jag vet inte varför du plockat bort After=network.target dock, om den är beroende av att nätverket är uppsatt så kanske det är därför den failar vid startup? Om du gör ändringar i .service-filen så glöm inte göra en systemctl daemon-reload för att systemd ska ladda om innehållet innan du gör några start/restart/stop-försök.)

Hej igen, jag blev lite borta ett par dygn, tydligen behöver man jobba ibland också.

Jag testade med kommandona ovan, det funkar finfint att starta och stoppa virtualhere med dem.

after=network.target är inte bortplockat längre nu ser det ut så här:

[Unit] Description=VirtualHere Server After=network-online.target Wants=network-online.target [Service] Type=fork ExecStart=/usr/local/sbin/vhusbdarm -b -c /usr/local/etc/virtualhere/config.ini [Install] WantedBy=multi-user.target

Men det gör tyvärr ingen skillnad.
En intressant sak jag märkt är att ibland (typ i snitt kanske var 5e Reboot) så fungerar det redan vid Boot.

Visa signatur

ASRock Z68 Extreme 3 | 2500K @ 3.3GHz | ASUS Radeon 7950 DCII Top | Corsair Vengeance 8Gb 1600MHz |Intel 330 180GB| Crucial m4 64GB | WD Blue 750GB | Thermaltake Thoughpower 750 W

Permalänk
Medlem

Notera att Type=fork är felaktigt och ska vara forking.

I övrigt ser det vettigt ut. Då är det nog så att virtualhere beror på fler saker i systemet. Antagligen att USB-devices är konfigurerade eller liknande.

Jag har som sagt ingen erfarenhet av ditt program och vad den har för beroenden, så jag kan bara tipsa om att först ta reda på dessa och sedan försöka hitta en lösning som gör att din service kör efter beroendena är startade.

(Det skulle kunna vara att leta efter en specifik device (representerad som en fil) i /dev, eller göra en custom target som startar efter multi-user.target som din service beror på (och då göra default target till din nya custom-target). Tyvärr kan jag nog inte hjälpa dig mer än så men förhoppningsvis är det tillräckligt för att du ska kunna reda ut det.)

Visa signatur

Citera mig för svar.
Arch Linux

Permalänk

Det är lugnt jag tackar för all hjälp hitintills, om inte annat så bidrar ju allt till en något bättre förståelse för RaspberryPi och Linux vilket säkert kommer väl till pass!

Visa signatur

ASRock Z68 Extreme 3 | 2500K @ 3.3GHz | ASUS Radeon 7950 DCII Top | Corsair Vengeance 8Gb 1600MHz |Intel 330 180GB| Crucial m4 64GB | WD Blue 750GB | Thermaltake Thoughpower 750 W

Permalänk

Jag har fått svar på Virtualheres forum nu.
Eftersom jag kör en Pi Zero, med ett 4g USB Modem och en USB Ethernet dongel så är det troligt att jag inte har något nätverks interface förutom local när Virtualhere försöker starta. Jag misstänker att jag kanske får problem med Wireguard ibland också när jag försöker köra bara på 4g modemet.

Så jag har en fråga. Någon som kan tipsa om var jag skall börja leta eller vad jag skall googla på för att lösa så Pi Zeron startar, ser till att 4g LTE blir uppkopplat, sedan kopplar upp Wireguard och slutligen startar Virtualhere?

Visa signatur

ASRock Z68 Extreme 3 | 2500K @ 3.3GHz | ASUS Radeon 7950 DCII Top | Corsair Vengeance 8Gb 1600MHz |Intel 330 180GB| Crucial m4 64GB | WD Blue 750GB | Thermaltake Thoughpower 750 W

Permalänk

Du kan ju alltid sätta "Restart=always" under [Service], det kommer göra att systemd försöker starta tjänsten om och om igen tills det fungerar.

Kombinera detta med "RestartSec=60" så inte den bara matar på

Den korrekta lösningen är väl egentligen att hitta vilken service som måste vara OK innan Virtualhere/Wireguard startas och använda "After=" taggen, men ovanstående med restart borde fungera bra för dig.

https://www.digitalocean.com/community/tutorials/understandin...
Under "[Unit] Section Directives" förklaras det bra.

DO länk
Visa signatur

Citera så hittar jag tillbaka!

Permalänk
Skrivet av Tejprullen:

Du kan ju alltid sätta "Restart=always" under [Service], det kommer göra att systemd försöker starta tjänsten om och om igen tills det fungerar.

Kombinera detta med "RestartSec=60" så inte den bara matar på

Den korrekta lösningen är väl egentligen att hitta vilken service som måste vara OK innan Virtualhere/Wireguard startas och använda "After=" taggen, men ovanstående med restart borde fungera bra för dig.

https://www.digitalocean.com/community/tutorials/understandin...
Under "[Unit] Section Directives" förklaras det bra.

Verkar fungera bra, förutom att den startar om hela tiden. Virtualhere fungerar och kommer upp i clienten på min dator men någonting gör att den startar om på Pi zero.

systemctl status virtualhere ● virtualhere.service - VirtualHere Server Loaded: loaded (/etc/systemd/system/virtualhere.service; enabled; vendor preset: enabled) Active: activating (start) since Fri 2021-04-30 12:31:27 CEST; 1min 29s ago Cntrl PID: 1652 (vhusbdarm) Tasks: 28 (limit: 877) CGroup: /system.slice/virtualhere.service └─1652 /usr/local/sbin/vhusbdarm -c /usr/local/etc/virtualhere/config.ini apr 30 12:31:27 readout1 vhusbdarm[1652]: Using configuration /usr/local/etc/virtualhere/config.ini apr 30 12:31:27 readout1 vhusbdarm[1652]: Server licensed to=unlicensed max_devices=1 apr 30 12:31:27 readout1 vhusbdarm[1652]: Using large URB's apr 30 12:31:27 readout1 vhusbdarm[1652]: Listening on all network interfaces at TCP port 7575 apr 30 12:31:27 readout1 vhusbdarm[1652]: Found High speed device [0b95:1790] "ASIX Elec., AX88179" at address 113 apr 30 12:31:27 readout1 vhusbdarm[1652]: Found High speed device [12d1:1506] "HUAWEI Technology, HUAWEI Mobile" at address 111 apr 30 12:31:27 readout1 vhusbdarm[1652]: Found Full speed device [10c4:800a] "Silicon Labs, SPORTident USB to UART Bridge Controller" at address 114 apr 30 12:31:27 readout1 vhusbdarm[1652]: VirtualHere USB Server is running...press CTRL-C to stop apr 30 12:31:34 readout1 vhusbdarm[1652]: 192.168.1.125 connected as connection 1 apr 30 12:31:34 readout1 vhusbdarm[1652]: 192.168.1.125 connected as connection 2 pi@readout1:~ $ systemctl status virtualhere ● virtualhere.service - VirtualHere Server Loaded: loaded (/etc/systemd/system/virtualhere.service; enabled; vendor preset: enabled) Active: deactivating (stop-sigterm) (Result: timeout) Cntrl PID: 1652 (vhusbdarm) Tasks: 26 (limit: 877) CGroup: /system.slice/virtualhere.service └─1652 /usr/local/sbin/vhusbdarm -c /usr/local/etc/virtualhere/config.ini apr 30 12:31:27 readout1 vhusbdarm[1652]: Using large URB's apr 30 12:31:27 readout1 vhusbdarm[1652]: Listening on all network interfaces at TCP port 7575 apr 30 12:31:27 readout1 vhusbdarm[1652]: Found High speed device [0b95:1790] "ASIX Elec., AX88179" at address 113 apr 30 12:31:27 readout1 vhusbdarm[1652]: Found High speed device [12d1:1506] "HUAWEI Technology, HUAWEI Mobile" at address 111 apr 30 12:31:27 readout1 vhusbdarm[1652]: Found Full speed device [10c4:800a] "Silicon Labs, SPORTident USB to UART Bridge Controller" at address 114 apr 30 12:31:27 readout1 vhusbdarm[1652]: VirtualHere USB Server is running...press CTRL-C to stop apr 30 12:31:34 readout1 vhusbdarm[1652]: 192.168.1.125 connected as connection 1 apr 30 12:31:34 readout1 vhusbdarm[1652]: 192.168.1.125 connected as connection 2 apr 30 12:32:57 readout1 systemd[1]: virtualhere.service: Start operation timed out. Terminating. apr 30 12:32:57 readout1 vhusbdarm[1652]: Stopping...

Visa signatur

ASRock Z68 Extreme 3 | 2500K @ 3.3GHz | ASUS Radeon 7950 DCII Top | Corsair Vengeance 8Gb 1600MHz |Intel 330 180GB| Crucial m4 64GB | WD Blue 750GB | Thermaltake Thoughpower 750 W

Permalänk

Troligtvis så det det för att systemd inte tycker att applikationen forkar rätt inom tid och dödar den. Testa ändra från forking till simple och ta bort -b i service-filen.

Visa signatur

Citera så hittar jag tillbaka!