Suse 10.0 + wine + live for speed S2 dedicated server

Discussion in 'Linux -keskustelu' started by TIN_KAJa, Apr 9, 2006.

  1. TIN_KAJa

    TIN_KAJa Member

    Joined:
    Apr 9, 2006
    Messages:
    10
    Likes Received:
    0
    Trophy Points:
    11
    Onkohan joku työstänyt otsikon mukaisen kokoonpanon pystyyn?

    Taustaa (vaikka tämän moni varmasti tietääkin):
    - Live For Speed (myöh -> lfs) on realismiin pyrkivä ajosimulaattori joka tukee verkkopelaamista.
    - Live For Speed dedicated server toimii puhtaasti alustana verkkopelaamiselle eikä sillä itsellään voi pelata
    - Windows-ohjelma

    Wine:ä en ole aikaisemmin tarvinnut joten asia on siltä osin minulle uusi. Googlaamalla saatuja tuloksia analysoimalla näitä linux-wine-lfs-server kombinaatioita on maailmalla saatu toimimaan, tosin eri distroilla.

    Ongelmaksi olen aistivinani wine:n konffauksen tai pikemminkin kun en löydä siitä mitään miten sen konffaisin. Vanhoille wine:ille tarkoitettuja WineConfig viittauksia löytyy, mutta jostain olin lukevinani että näissä uudemmissa kaikki tehdä wine:n regedit:in kautta (?!).

    Yritin saada lfs-serveriä toimimaan http://forum.racesimcentral.com/showthread.php?t=129246 viestiketjussa esitettyjen ohjeiden mukaisesti mutta turhaan.

    Ed. linkissä mainittu skripti (sivulla 2 jossa mainitaan sen toimivan jopa SuSe:lla) joka mahdollistaa lfs-server:in käynnistyksen ja pysäyttämisen ym ei ainakaan itselläni toimi toivotulla tavalla.

    Skripti näyttäisi käynnistyvän, mutta #lfs-server 1 stop tai start jne ei tee mitään (herjaa tuntemattomasta komennosta vaikka skripti näkyy pyörivän palveluissa).

    Kysymykset kuuluvat:
    1) Pitäisikö wine:ä konffata jotenkin?
    2) Miten näen wine:ssä pyörivät softat joissa ei ole GUI:ta?
    3) Mitä kannattaisi tsekata ed. skriptiin liittyen SuSE:ssa (10.0)?

    Palomuuri on puhkottu, lfs_setup1(-4).cfg:t on tehty linkin ohjeiden mukaisesti, viittaukset LFS.exe:n sijainteihin muutettu vastaamaan niiden sijaintipaikkoja jne...

    Vinkkejä siis tarvitaan.
     
  2. lauritx

    lauritx Regular member

    Joined:
    Mar 4, 2004
    Messages:
    488
    Likes Received:
    0
    Trophy Points:
    26
    Winessä on winecfg jolla pystyy jotain conffaamaan. Mutta kyllä se yleensä on niin että joko toimii tai ei yleensä ei.
     
  3. TIN_KAJa

    TIN_KAJa Member

    Joined:
    Apr 9, 2006
    Messages:
    10
    Likes Received:
    0
    Trophy Points:
    11
    Joo, tota winecfg:tä katselin mutta oli aika vähäistä mitä sieltä pystyi tekemään.
    Esim. seuraavaan konffiin en löytänyt mitään paikkaa missä tuon voi tehdä uudemmassa wine:ssä.
    *****
    In the [wine] section of your wine config
    change
    "GraphicsDriver" = "x11drv"
    to
    "GraphicsDriver" = "ttydrv"
    and it will run lfs completely without X
    *****
    http://www.wiki.linux.fi/index.php/Winen_asetukset -->

    Vanhemmissa Wine -versioissa (Wine 20050524 ja vanhemmat) asetukset tallennettiin asetustiedostoon ~/.wine/config. Uudemmissa Wine-versioissa asetukset tallennetaan rekisteriin.
    *****
     
  4. Ysf

    Ysf Active member

    Joined:
    Oct 2, 2005
    Messages:
    1,954
    Likes Received:
    1
    Trophy Points:
    68
    Uusimmissa wineissä (0.9.10:ssä ainakin) on mukana "wineconsole" joka periaatteessa ajaa ohjelman tuolla "tty drv":llä. Eli wineconsole /ajetta/va/ohjelma/.wine/drive_c/joku/kissa.exe" ajaisi kissa.exe nimisen sovelluksen ilman ikkunan piirtämistä (X-Windowia) mikäli ohjelma on ns. "konsolisovellus"

    2) Winen prosesseita on käynnissä yleensä kaksi. "Wineserver" on aina yksi niistä. Toinen vaihtuu sitten sen mukaan onko käytössä X, jolloin prosessi on "wine-preloader" tai sitten ajetaanko ohjelmaa wineconsolella, jolloin prosessi on "winconsole". Eli topilla tai vastaavalla vaan katselet noita ym. prosesseja.

    ja vilkaisin tuota scriptinpätkää tuolla linkin päässä ja huomasin että se on wanhalle winelle tehty, eli yritetään tappaa prosesseja mitä ei edes ole olemassa killproc wine-kthread pitäisi vaihtaa killproc wine-preloader[/i].. kun en tiedä sammuuko wineserver itse, niin siihen samaa syssyyn pitäisi lisätä sitten vielä killproc wineserver. Sitten tuossa scriptinpätkässä kun muutat sen WINE=/usr/bin/wine siten että käynnistetään wineconsole (/usr/bin/wineconsole) niin siinäpä se..


     
    Last edited: Apr 10, 2006
  5. TIN_KAJa

    TIN_KAJa Member

    Joined:
    Apr 9, 2006
    Messages:
    10
    Likes Received:
    0
    Trophy Points:
    11
    Ok, eli skripti kannattaisi näinollen uudemmassa wine:ssä muuttaa muotoon:
    ****
    start() {
    LFS_SETUP=lfs_setup$SERVER.cfg

    echo -n $"Starting $LFS_EXE with $LFS_SETUP: "
    cd $LFS_DIR
    $wineconsole $LFS_APP /cfg=$LFS_SETUP &
    touch /var/lock/subsys/lfs$SERVER
    echo
    }
    *****

    jolloin tuota "GraphicsDriver" = "ttydrv" konffia ei tarvitsisi erikseen määrittää missään.
    Did U got it right ?
     
  6. Ysf

    Ysf Active member

    Joined:
    Oct 2, 2005
    Messages:
    1,954
    Likes Received:
    1
    Trophy Points:
    68
    ei, vaan

    --- sakset sakset --

    LFS_DIR=/usr/local/games/lfs-server
    LFS_APP=$LFS_DIR/LFS.exe
    LFS_SETUP=setup.cfg

    WINE=/usr/bin/wineconsole

    --- sakset sakset --

    pistetään koko scriptin pätkä uusiksi sitten tähän.. huomaa että en ole testannut tuota scriptiä.. eli saattaa toimia ja saattaa olla myös toimimatta :)

    #!/bin/sh
    #
    # lfs-server This shell script takes care of starting and stopping
    # the Live For Speed dedicated server
    # Pedro Ferreira - Jan2004
    #
    # chkconfig: - 99 01
    # description: Start and stop LFS dedicated server
    #
    # TODO: change the way the service is stopped, for now it stops all
    # wine applications!
    #
    # revised edition Ysf, 2006
    # ADDED: WINEDEBUG to surpress fixme-messages

    # Source function library.
    . /etc/rc.d/init.d/functions

    prog="LFS.exe"

    LFS_DIR=/usr/local/games/lfs-server
    LFS_APP=$LFS_DIR/LFS.exe
    LFS_SETUP=setup.cfg

    # to surpress ALL Wine debugging messages, uncomment
    # WINEDEBUG -ine below

    # WINEDEBUG="-all"

    # use Wineconsole, since its used to run console
    # applications nowdays

    WINE=/usr/bin/wineconsole

    HOME=/root;export HOME

    start() {
    echo -n $"Starting $prog: "
    cd $LFS_DIR
    $WINEDEBUG $WINE $LFS_APP /cfg=$LFS_SETUP &
    touch /var/lock/subsys/lfs
    echo
    }

    stop() {
    # Stop service.
    echo -n $"Shutting down $prog: "
    # NOTE! This will stop all wine applications on this machine!
    # TODO: change this to a better way!

    # we kill newer wine-proccesses, not old wine-kthread

    killproc wine-preloader
    killproc wineserver

    rm -f /var/lock/subsys/lfs
    echo
    }

    # See how we were called.
    case "$1" in
    start)
    start
    ;;
    stop)
    stop
    ;;
    restart|reload)
    stop
    start
    ;;
    condrestart)
    [ -e /var/lock/subsys/lfs ] && (stop; start)
    ;;
    *)
    echo $"Usage: $0 {start|stop|restart|reload|condrestart}"
    exit 1
    esac

    exit 0

     
    Last edited: Apr 10, 2006
  7. TIN_KAJa

    TIN_KAJa Member

    Joined:
    Apr 9, 2006
    Messages:
    10
    Likes Received:
    0
    Trophy Points:
    11
    Vielä lisäystä wine-epätietoisuuteeni viitaten tähän:
    "wineconsole /ajetta/va/ohjelma/.wine/drive_c/joku/kissa.exe"

    Pitääkö wine:ssä ajettavat windows ohjelmat olla /.wine/drive_c/:llä ? Suorittaminen ilmeisesti sujuu myös linux-hakemistoista, mutta entä windows ohjelmat jotka lukevat ja kirjoittavat levylle suorituksen aikana tietoa, onnistuuko se linux-hakemistoon (jossa oikeudet ok) vai vaatiiko se suortitettavien ohjelmien sijoittamisen esim. tuonne /.wine/drive_c/joku/ -hakemistoon. ?
     
  8. Ysf

    Ysf Active member

    Joined:
    Oct 2, 2005
    Messages:
    1,954
    Likes Received:
    1
    Trophy Points:
    68
    saa ne ohjelmat olla missä tahansa kunhan oikeudet on kunnossa. jos ei toimi, niin sitten kokeile laittaa sinne .wine/drive_c -paikkaan.

    mutta tässä jos pitäisi alkaa kantaa ottamaan, niin piru vie mitähän tämä kaveri joka alunperin tämän scriptin on tehnyt, miettii.. vit, herra ajelee wineä ROOTIN oikeuksilla joka minusta on ihan sekopään hommaa.

    itse muuttaisin homman siten että tekisin käyttäjän nimeltä lfs. Kirjautuisin tuona uutena käyttäjänä, ajelisin sillä kerran winecfg:n (jotta .wine/ kansion sisältö rakentuisi), kopioisin nuo palvelimen tiedostot ./wine/drive_c/lfs haekemistoon ja käynnistäsin tuon lsf.exen tuona tiettynä käyttäjänä enkä rootin oikeuksilla..
     
    Last edited: Apr 10, 2006
  9. TIN_KAJa

    TIN_KAJa Member

    Joined:
    Apr 9, 2006
    Messages:
    10
    Likes Received:
    0
    Trophy Points:
    11
    Kiitos Ysf skriptin modaamisesta ja vinkeistä.
    Kyseinen koodinpätkä oli tosiaan vanhalle wine:lle joten tuo muokkaus uudemmalle varmasti edesauttaa sen toimivuutta.
    Pitää testata.
     
  10. TIN_KAJa

    TIN_KAJa Member

    Joined:
    Apr 9, 2006
    Messages:
    10
    Likes Received:
    0
    Trophy Points:
    11
    Ysf:
    Skriptissäsi oli tämä rivi
    # Source function library.
    . /etc/rc.d/init.d/functions

    Mikä tämän tarkoitus on ?

    System services antaa tällaista tietoa lfs-server palvelulle:
    ---clip---
    /etc/init.d/lfs-server status palautti 1 (ohjelma on kuollut ja /var/run pid-tiedosto on olemassa):
    /etc/init.d/lfs-server: line 17: /etc/rc.d/init.d/functions: Tiedostoa tai hakemistoa
    ---clip---
     
  11. TIN_KAJa

    TIN_KAJa Member

    Joined:
    Apr 9, 2006
    Messages:
    10
    Likes Received:
    0
    Trophy Points:
    11
    Kommentoin edellisessä kysymyksessäni olleen rivin, jolloin System services antoi seuraavan infon käynnistyksen yhteydessä:
    ---clip---
    /etc/init.d/lfs-server start palautti 0 (onnistui):
    Starting LFS.exe:
    Error opening terminal: raw.
    ---clip---

    Ainakin palvelu näytti nyt käynnistyneen!
     
  12. Ysf

    Ysf Active member

    Joined:
    Oct 2, 2005
    Messages:
    1,954
    Likes Received:
    1
    Trophy Points:
    68
    enpä tiedä :D

    en ole sitä jostain syystä pois ottanutkaan, se on varmaan aika turha jos tuo on joku distrokohtainen juttu..
     
  13. TIN_KAJa

    TIN_KAJa Member

    Joined:
    Apr 9, 2006
    Messages:
    10
    Likes Received:
    0
    Trophy Points:
    11
    palvelu käynnistyi ja kuolee samantien... pitää jatkaa kokeiluja.
     
  14. Ysf

    Ysf Active member

    Joined:
    Oct 2, 2005
    Messages:
    1,954
    Likes Received:
    1
    Trophy Points:
    68
    kokeile ensiksi käynnistää se peli ihan käsin. sitten vasta säädät tuon scriptin toimimaan.

    komentona voi käyttää vaikka WINDEBUG="-all" /usr/bin/wineconsole /polku/sinne/exetiedostoon/lfs.exe
     
  15. TIN_KAJa

    TIN_KAJa Member

    Joined:
    Apr 9, 2006
    Messages:
    10
    Likes Received:
    0
    Trophy Points:
    11
    Kiitti vinkistä. Täytyy tosiaan kokoeilla tuota käsin käynnistämistä myös.
    Sen verran homma nytkähti eteenpäin eilisillan aikana että:
    1) tein uuden käyttäjän (lfs) tosin ilman kotihakemistoa, määrittelin UID:ksi 2001 ja group:iksi vain tty
    2) kirjauduin sillä sisään ja käynnistin wineconsolen /usr/local/games/lfs -hakemistossa (joudun modailemaan noita hakemistoja vähän uudelleen), jolloin wine loi toimintaympäristöään sinne.
    3) loin lfs kansion /usr/local/games/lfs/wine/drive_c/ hakemistoon
    4) kopioin lfs_dedi_S2.zip:in tuonne ~/drive_c/lfs hakemiustoon
    5) purin zipin tuolla
    6) modasin scriptiä siten että WINE=/usr/bin/wineconsole -rivi tuli muotoon WINE=/usr/bin/wine (vaikkakin wine käynnistyykin näin ikkunaan). Tämän päätelmän kokeiluun ryhdyin koska System Services:ssä Yast2:ssa tulleiden lfs-server palvelun kännistyksessä tuli aina Error opening terminal: raw virheilmo ja palvelu kuoli samantien
    7) HOME=/root;export HOME -rivin muutin muotoon HOME=/usr/local/games/lfs;export HOME (muuten system services herjasi palvelua käynnistäessä ettei wine/drive_c/lfs hakemistoa löydy)
    8) modasin myös muut hakemistoviittaukset vastaamaan muuttuneita hakemistopolkuja
    9) näiden muutosten jälkeen käynnistin lfs-server -palvelun system services kohdasta YAST2:lla (root:ina)
    --> wine -ikkuna avautui ja LFS alkoi toimia pienessä sievässä ikkunassa. Tosin "starting lfs-server" info-ikkuna jäi näkyviin, eikä YSAT2/system services ikkunaa saanut suljettua.
    Testasin toisella koneella varsinaisella pelillä näkyykö dedikoitu LFS-palvelimeni julkisessa palvelinlistassa ja siellähän se oli.
    Yritin myös kirjautua siihen kakkoskoneellani mutta se ei onnistunut (luultavasti palomuuriongelma sillä en muistanut konffata palomuuriin reikiä tämän kakkoskoneen osalta ennen testiä)

    Palvelimessa tarkistus monitorointisoftalla näytti lfs_setup1.cfg:hen määrittelemäni portin olevan avoimena aivan kuten lfs-server:in pyöriessä pitääkin.

    JES, homma toimii.

    /usr/local/games/lfs/wine/drive_c/lfs -kansioon ilmestyi ajonaikaisia tiedostoja pari kappaletta (root) ja mietin että käyttäjänhän piti olla lfs eikä root... sammutin lfs-server:in wine ikkunan ja sammutin palvelun YAST2:n system services:tä (tämä onnistui vasta kun wine-ikkuna oli suljettu kylmästi ruksista).
    Yritin käynnistää lfs-server start komennolla palvelua konsolin kautta (root:ina) mutta se päättyy aina "unknown command lfs-server" (kuten tähänkin asti).

    Kokeilin lfs_setup1.cfg:hen määritellä sisäverkon ip:n jotta kakkoskoneella voisi olla palvelimeen yhteydessä ilman kiertoa julkisen verkon kautta.

    Takaisin YAST2:n ja kännistämään palvelua sitä kautta. Palvelu käynnistyi ja lfs-serverin wine ikkuna avautui taas ihan jees, mutta sinne wine-ikkunaan ilmaantui lfs-palvelinsoftan virheilmoitus (jota en nyt tässä muista, mutta OFF LINE:ssa se pysyi..)

    Muutin lfs_setup1.cfg:n takaisin sellaiseksi kuin millä se aikaisemmin toimi, mutta...
    Mikään ei enää auttanut, en saanut palvelua enää verkkoon mitenkään.
    Kikkailin kaikenlaista mutta ei edistystä.
    Wine ikkunaan avautuva lfs-serverin suorituksen aikainen virheilmo herjasi jotain ja se pysyi off line:ssa.

    Taas heräsi sarja kysymyksiä:
    1) Miksiköhän lfs-server käynnistyy vain YAST2:n system services kautta käynnistettäessä, ei konsolissa (root:inakaan).
    2) Miksiköhän tuo wineconsole antaa Error opening terminal: raw virheilmon ja tappaa palvelun kun taas pelkkä wine avaa ohjelman ihan niinkuin pitää (okei, kun aloitusrutiineissa palvelun pitäisi käynnistyä automaattisesti ei se onnistu koska wine ei tällöin pysty näköjään tuota wine-ikkunaa avaamaan).
    3) Jotain on jäänyt minulta ymmärtämättä kun palvelu pyörii nyt (ilmeisesti) root:ina (tai ainakin lfs-server:in ajonaikaisten tiedostojen omistajana on root). Eli miten tuon nyt saisi tarkoitukseen luodun käyttäjän (lfs -> UID:2001) pyörittämäksi (voi olla kyse syvemmän linux-ymmärryksen puutteesta omalta osaltani)

    Joktap, hyvä homma on se, että proggis nytkähti ainakin joiltain osin eteenpäin.
     
  16. Ysf

    Ysf Active member

    Joined:
    Oct 2, 2005
    Messages:
    1,954
    Likes Received:
    1
    Trophy Points:
    68
    >1) Miksiköhän lfs-server käynnistyy vain YAST2:n system services
    >kautta käynnistettäessä, ei konsolissa (root:inakaan).

    olisiko tässä kyse kansion oikeuksista. katsoppas jos tuonne /usr/local/games/lfs/wine/drive_c/ ei ole sillä yhdellä käyttäjällä oikeuksia, niin ei se todennäköisesti lähde tulille rajoitetulla käyttäjänä.. chown ja chmod taitaa tuoda ratkaisua..

    Itse sain HLDS:n rullaamaan ilman mitään ongelmia kun tein käyttäjän "hlds" ja laitoin nuo tiedostot sinne /home/hlds/.wine/drive_c -paikkaan
     
  17. TIN_KAJa

    TIN_KAJa Member

    Joined:
    Apr 9, 2006
    Messages:
    10
    Likes Received:
    0
    Trophy Points:
    11
    Doddii.. lähtihän se.
    Kokeilun kautta onneen, eli kaikkien määritysten, porttien, .cfg -tiedostojen ym läpikäynti ja komentoriviltä käsin käyntiin yritysten jälkeen lfs-serveri alkoi sykkiä (siis .exe, ei skripti).

    Aikaisemmin mainitsemani lfs-palvelinsoftan virheilmoitus johtui siitä, että suljin sitä väkivalloin suoraan wine:n ikkunan sulkemalla, jolloin lfs-server jätti hakemistoonsa ajonaikaisia tiedostoja kesken jääneestä sessiosta. Virheilmo poistui näiden tiedostojen poiston jälkeen.

    Eli, LFS.exe käynnistyi käsin konsolista komennolla
    wine /usr/local/games/lfs/wine/drive_c/lfs/LFS.exe /cfg=lfs-setup1.cfg

    Jostain syystä tuo WINDEBUG= "-all" /usr... ei suostunut tekemään mitään (antoi vaan bad command:ia tjsp, en muista tarkkaan).

    Toinen joka oli jonkun verran päänvaivaa aiheuttava seikka ennen kuin sitä huomasin, oli se, että konsolissa piti ensin siirtyä /usr/local/games/lfs/wine/ hakemistoon ja siellä ajaa tuo wine /usr... Muuten LFS.exe ei pelittänyt.

    Eli serverin saa näin rokkaamaan, mutta vielä pitäisi puukottaa skripti tai tehdä joku muu kikka jolla tuo käynnistyisi KDE:n käynnistyttyä oikein ja automaattisesti (palvelimeni toimii myös kakkostyöasemana).

    Toisella (XP) koneella kokeiltuna lfs-serveri toimi ihan suht ok, tosin molemmilla testauskerroilla ADSL-modeemini kyykähti ja nettiyhteys meni nurin... pitää ohjata sisäverkon liikenne lfs-serveriin sisäverkon kautta eikä ulkokautta miten se nyt menee (sisäverkon ip:n voi määritellä lfs_setup1.cfg:ssä).
    Ulkoa tulevia muita yhteyksiä en myöhäisestä kellonajasta johtuen pystynyt vielä testaamaan.

     
    Last edited: Apr 12, 2006

Share This Page