Portál AbcLinuxu, 2. května 2025 05:38
Dnes si řekneme, jak spustit MyLittleInvestigations na platformě AMD64 díky chrootu. Jedná se o volné navázání na předchozí zápisek Jak si chrochtat v chrootu - http://www.abclinuxu.cz/blog/Tinker/2013/1/jak-si-chrochtat-v-chrootu
Před pár dny jsem na internetu narazil na zajímavou hru nazvanou MyLittleInvestigations (díky Youtube!) a protože mi seriál My Little Pony není cizí a hra vypadala zajímavě, hned jsem se pustil do hledání informací. Brzy jsem narazil na oficiální stránku hry s příhodným názvem - http://www.equestriandreamers.com/. Pročetl jsem FAQ, kde jsem se dozvěděl, že hra je FREE a napsaná v Javě. Přidal jsem Magnet link do torrent klienta (Flush) a čekal (nebojte, seeduji pořád). Jedná se o DEB balíček, který by podle FAQ měl bez problému fungovat v distribuci Ubuntu a Linux Mint.
Bohužel po stažení jsem si uvědomil, že hra je jen pro architekturu i386. Balíček jsem tedy vnutil systému přes dpkg s parametrem --force-all a doufal, že se bude něco dít. Během instalace mi dpkg zahlásil několik "chybějících" balíčků, ovšem podle Synapticu byly v systému přítomné. Začal jsem tušit, že tu něco nehraje. Pokusil jsem se spustit hru, ale dozvěděl jsem se jen to, že ji chybí knihovna a to taková, která s Javou nemá nic společného. Znovu jsem otevřel Synaptic, našel správný balíček, adresář kde je knihovna nainstalovaná a překopíroval ji jinam. Hra knihovnu našla, ale nechtěla s ní spolupracovat. Dobře, co teď? Začal jsem psát email. Dear princess Celestia.....
Zeptal jsem se na 64-bit verzi hry, popsal svoje problémy, pochválil hru kterou jsem ještě neměl šanci hrát a zeptal se, zda by nešla hra uvolnit například v ZIP archivu - pokud je napsaná v Javě, tak by to mohlo být užitečnější, než balíčky pro jednotlivé systémy. Odpověď přišla během 15 minut (bohužel jsem jí zaznamenal až v posteli přes usnutím) a dozvěděl jsem se mnoho zajímavých informací:
- Hra byla původně vyvíjena v Javě, ale kvůli problémům s výkonem a kompatibilitou s HW (to jsem si opravdu nevymyslel!) byla hra přeportována na SDL a kompletně přepsána do C++. Jako výhodu SDL autor zmiňuje možnost běhu na snad jakémkoli HW a já s ním musím souhlasit (taky už jste hráli OpenTTD na smartphone/tabletu?).
- Problém 64-bitové hry je ve scénářích. Jedná se o soubor zahrnující všechny podmínky a obecně celý příběh (zřejmě i velmi povedené hlášky a obrázky). Na 64-bitových systémech mohou být opravdu veliké, ale na 32-bitových je problém s 4GB bariérou. Mohlo by se tak jednoduše stát, že nějaký fanoušek vytvoří 5GB scénář, který půjde spustit na 64-bitové architektuře, ale ne na 32-bitové, protože bude moc velký. Proto je momentálně k dispozici jen 32-bitová verze hry a 64-bitová ne - není problém ji vytvořit, ale v případě moc velkých scénářů hrozí, že budou hráči na 32-bitových architekturách ochuzeni. Podal jsem vlastní návrh na řešení a momentálně čekám na odpověď.
- Pokud chci hrát na 64-bitové architektuře, mohu si nainstalovat Wine a spustit v něm verzi pro Windows. Kombinace je odzkoušená a údajně funguje bez větších problémů.
Zároveň byla rychle opravena chybná informace a nyní už web hovoří o hře napsané v C++ s použitím SDL.
Instalace Wine se mi trochu příčila - už zase se mi budou textové soubory místo v Geditu otevírat v notepad.exe? Raději jsem šel spát a přenechal problémy Luně, ta má větší hlavu
Ráno jsem měl hned po otevření očí jasno - chroot! Tedy teď už chrocht, krátce po zprovoznění Eagle jsem si totiž udělal v souboru .bashrc alias (připsal řádek):
alias chrocht="xhost +local: && sudo schroot -c sid -p"
Mimochodem, co říkáte na alias cat='more'?
Jak tedy na to? Předpokládám, že máte vytvořený chroot, obsahuje aktuální repozitáře a má informace o dostupných balíčcích. Pokud ne, postupujte podle http://www.abclinuxu.cz/blog/Tinker/2013/1/jak-si-chrochtat-v-chrootu až k příkazu apt-get update, dále už ani krok. Poté potřebujete samozřejmě hru, lze ji nalézt logicky v sekci Downloads http://www.equestriandreamers.com/downloads/ a můžete stahovat buď přes magnet link (torrent), nebo přes HTTP (přímo). Pokud podle vás nemá cenu takovou hru sdílet, použijte v chrootu jednoduše wget následovaný přímou adresou k souboru, jinak nechte chrochtat svůj torrent klient podporující magnet linky (nezapomeňte po stažení soubor ověřit) a výsledný soubor následně překopírujte do chrootovaního /home (v mém případě jsem musel být root).
Nyní trochu odbočím, budeme totiž upravovat jeden soubor v hostitelském systému. Proč? Protože bez této úpravy by ve hře nefungoval zvuk a jak jistě všichni víte, bez zvuku to není ono. Jako root si tedy otevřeme soubor /etc/fstab a přidáme řádek:
/dev /srv/chroot/sid/dev none bind 0 0
Tím jsme zajistili "sdílení" adresáře /dev do /srv/chroot/sid/dev, takže chrootovaný systém může přistupovat ke všem zařízením v /dev jako k vlastním. Aby to ovšem fungovalo, tak musíme systému říct (opět jako root), že má znovu načíst obsah souboru /etc/fstab:
mount -a
Hotovo, nyní můžeme zapnout chroot. Pokud jste si již nastavili alias a restartovali terminál (aby si znovu načetl soubor .bashrc), můžete napsat jednoduše chrocht, jinak dlouze:
xhost +local: && sudo schroot -c sid -p
Vítejte v chrootu. Jako první si nainstalujeme ALSA aby nám fungoval zvuk:
apt-get install alsa-base alsa-utils
Pokud si trochu ztišíte aparaturu (je to opravdu hlasité) a připravíte končetinu na klávesovou zkratu CTRL+C (ukončení), můžete na vlastní nebezpečí spustit příkaz:
aplay /dev/urandom
Pokud jste právě neprohodili notebook nebo část vaší sestavy oknem, můžeme přistoupit k dalšímu kroku. Tím je instalace balíčku, typicky přes dpkg:
dpkg -i MyLittleInvestigationsDemo2.deb
Balíčkovač by měl zahromovat (jako když Ditzy Doo vyklopí piáno), naštěstí náprava je jako ve většině případů až podezřele snadná:
apt-get -f install
Balíčkovač by měl stáhnout chybějící balíčky, nainstalovat vaši hru a vše by mělo proběhnout bez chyb. Pokud se tak stalo, můžete zkusit spustit hru příkazem (opravdu tam jsou velká písmena):
MyLittleInvestigations
Pokud se vše zdrařilo (a já na nic nezapomněl), mělo by se otevřít okno s hrou jako na přiloženém screenshotu
To je pro dnešek vše, ale nebojte se, brzy bude jistě následovat další zápisek a tentokrát snad již o jiném tématu. Protože RaspberryPi neplnilo svoji úlohu na 100% jak bylo původně zamýšleno (nefungoval scanner + podezřele často se rozbíjel balíčkovač), bude nahrazeno opět x86 serverem. Mohu ale s klidem na duši prohlásit, že s výkonem problémy opravdu nebyly a v některém z budoucích zápisků mám v plánu zprovoznit RaspberryPi jako pracovní stanici. Bude to výzva a jakási zkouška dospělosti. Dalším nápadem byla instalace JACK a realtime úprava zvuku, ale zde by asi malina byla s výkonem na hranici, navíc by se musela použít USB zvuková karta. Mimochodem, na brony IRC se včera objevil odkaz na FM vysílač s RaspberryPi (stačí připojit delší drát na GPIO pin), myslím že napsaný v Pythonu
Tiskni
Sdílej:
alias na cat ... je blbost.
spousta scriptu te za to bude mit rado a kdyztak "less is MORE"!
Skriptům se to určitě líbit nebude, to je pravda Změnim to na cats a uvidíme jak si na to zvyknu
Mimochodem, co říkáte na alias cat='more'?alias raven='echo Nevermore'
Problém 64-bitové hry je ve scénářích. Jedná se o soubor zahrnující všechny podmínky a obecně celý příběh (zřejmě i velmi povedené hlášky a obrázky). Na 64-bitových systémech mohou být opravdu veliké, ale na 32-bitových je problém s 4GB bariérou. Mohlo by se tak jednoduše stát, že nějaký fanoušek vytvoří 5GB scénář, který půjde spustit na 64-bitové architektuře, ale ne na 32-bitové, protože bude moc velký. Proto je momentálně k dispozici jen 32-bitová verze hry a 64-bitová ne - není problém ji vytvořit, ale v případě moc velkých scénářů hrozí, že budou hráči na 32-bitových architekturách ochuzeni. Podal jsem vlastní návrh na řešení a momentálně čekám na odpověď.Eh, jako by byl problém tam do kódu přidat jeden if().
Mimochodem, co říkáte na alias cat='more'?
Rikam toto:
$ more > soubor << EOF tady dady dady dadydady EOF
lib32něco
), které jsou běžně v dispozici depozitáři a instalují se do /lib32
.
Tak to koukám, že jsem o pár let pozadu a taková novinka se k mým očím zatím nedostala Někdy se na to podívám, děkuji za tip
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.