Főzés

Egy vékony kliens összeszerelése, amely bizonyos ügyfelekhez igazodik, az alábbi lépésekhez kapcsolódik:

  • Töltse le a teljes ThinStation tárat
  • Összegyűjtünk egy "kövér" (teljes) képet
  • Vékony ügyfelet töltünk be vastagon
  • Megkaptuk a kernel modulok és csomagok listáját, amelyek ehhez az ügyfélhez szükségesek
  • A szerelvény konfigurációit rögzítjük, így csak a leginkább szükségesek (beleértve az előző lépésben kapottat is)
  • Összegyűjtjük a "vékony" (enyhített) képet

A konyha előkészítése

Egyszerre azt mondom, hogy van egy másik módja az összeállításnak - az elkészített .iso kép letöltése. De úgy tűnik nekem nem olyan kényelmes, ezért leírom a "helyes" opciót.

A tárhely letöltése

Általánosságban elmondható, hogy a ThinStation-szel való együttmûködéshez alapvetõ ismeretekkel kell rendelkeznie a Git-szel folytatott munka során. Egyszerűen azért, mert a változtatásokat valahol el kell menteni, és a fájlok hierarchiájában elveszett, amikor a konyhát már kicsomagolták (a Git ismerete nélkül) nagyon egyszerű. A letöltés egyetlen parancs végrehajtására korlátozódik.

Azt is meg kell jegyeznünk, hogy a projekt fenntartói javasolják, hogy a gyökér nevében klónozzák az adattárat - ez azt jelentette nekem, amikor megpróbáltam javaslatokat tenni egyes szkriptek tulajdonosának javítására. Mennyibe kerül ez a helyes - nem feltételezem, hogy megítélem, de ha problémákat észlel a fájlokhoz való joggal kapcsolatban, valószínűleg érdemes ezt a tanácsot követni.

Chroot előkészítése

A letöltött repository gyökérkönyvtára a bash-script setup-chroot. aki mindent megtesz az Ön számára. Erről csak tudnia kell, hogy a gyökérből kell futtatnia (mert például új fájlba illeszti a fájlrendszert), másodsorban kulcsfontosságú kulcsokat tartalmaz, amelyek közül a legfontosabb az első szakaszban a kulcs - a - ne kérdezzen, hanem töltsön le mindent, amire szükséged van.

By the way, minden más történik már ebben a gallyon belül. Az előkészítési művelet először akár egy órát is igénybe vehet (lassú lemezen), de a bemenetet szinte azonnal végezzük, amíg a következő teljes tisztítás meg nem történik.

Vastag kép

A vastag kép készítése előkészítő lépés, és először szükséged lesz a hardver betöltésére, és megtudhatja, hogy mely csomagok és modulok szükségesek. Ennek következtében, ha van egy vas állatkert, vagy egy új vásárlást vársz, csak tartsd kéznél ezt a képet. Újratöltés csak súlyos változásokkal járhat, például - a rendszermag új verziójával.

Természetesen fennáll annak a lehetősége, hogy valaki ezt már elvégezte a vas számára. A ts / build / machine könyvtárba léphet, és keresse meg a platform nevét. Ha megtalálja, nyugodtan hagyja ezt a lépést.

A Build testreszabása

A többi nem fontos - később finomhangolást fogunk végezni.

Fogok habozni, miért kell a tömörítő rendszert a squashfs-ről gzipre váltani? A script hwlister.sh. melyet az alábbiakban ismertetünk, egy nagyon érdekes módszert használ a letöltött firmware keresésére - egyszerűen megvizsgálja a / lib / firmware fájlokhoz való hozzáférés idejét, és ennek alapján következtetéseket von le, mely fájlokat töltötték le. De a squashfs a relatime paraméterrel van felszerelve. ami arra a tényre vezet, hogy a fájlokhoz való hozzáférési idő nem változik, és a firmware listája (pokol, nem tudom, hogyan kell lefordítani ezt a szót anélkül, hogy elveszítené a jelentését) mindig üres. A tömörítési mód megváltoztatása a gzip-be a legegyszerűbb és leggyorsabb módja annak, hogy a forgatókönyv újra életre kelhessen, anélkül, hogy beleérne a bélbe. Erről írtam a fejlesztőknek, de eddig nem volt válasz.

Építsen bármilyen képet a chrootban - tehát ne felejtsd el bemenni. A vastag kép készítéséhez speciális paraméter is létezik - allmodules. amely magában foglalja az összes elérhető kernelmodult a képen, ami szintén hasznos egy ismeretlen hardveren.

A folyamat befejezése után a boot-images könyvtárban megtalálhatóak a kép változatai - iso, pxe és syslinux. Bármelyiket használhatja, és bármilyen kényelmesen letöltheti az ügyfelet.

Információgyűjtés

Amikor a tesztvas sikeresen fel van töltve, minden kényelmesen be kell mennie a konzolba, és írnia kell:

Ez egy normál bash script, amely után több fájlt talál:

  • /firmware.list - a szükséges firmware-lista
  • /module.list - a szükséges kernelmodulok listája
  • /package.list - a szükséges csomagok listája, figyelembe véve az architektúrát, csak xorg7- * csomagokat tartalmaz
  • /vbe_modes.list - ha az uvesafb-t használják. Ez a fájl tartalmazza a támogatott módok listáját

Egyes fájlok hiányozhatnak, ha nem talál megfelelőt

Ugyanez a parancsfájl megpróbálja letölteni a fájlokat a konfigurációban megadott tftp-kiszolgálóra, de remélem, hogy tfp-re van írva, mint én, tilos. Ezért a vizsgált rendszert bármilyen módon megvizsgáljuk, és a könyvtárba ts / build / machine / MACHINENAME könyvtárba helyezünk. ahol a MACHINENAME az a kód neve, amelyet megadsz a hardverednek.

Vékony kép

A vékony kép kialakítása mindig kiegyensúlyozódik a funkcionalitás és a hangerő határán. Kevesebb hangerő - gyorsabb rendszerindítás lemez nélküli munkaállomások a hálózaton, gyorsabb rendszerindítás, kevesebb RAM igénybevétele az ügyfeleknél. Személy szerint én volt a feladata, hogy a minimális kötet képét egyetlen feladatért - egy terminál RDP-ügyfélnek - készítsem. Erről szólok.

Build konfiguráció - build.conf

Amint fent írtam, az build konfiguráció első lépése az build.conf fájl szerkesztése. Meghatározza, hogy mely csomagok szerepeljenek a képen és a kollektor más paraméterei között.

Ami az Alkalmazások szakaszban található csomagokat illeti, a választás teljesen Öntől függ. A fentiek mindegyike alkalmazható vékony ügyfelekre, ahol a felhasználó nem látja az asztalát (RDP, VNC stb.) És például helyi böngésző használatát - a fentiek közül sokat kell hagyni.

Továbbra is emlékezni kell arra, hogy a param initrdcmd "squashfs" -et visszaadja, és a végén csak 3 sort távolít el: package alltimezone. param allres true és param allfirmware true - ez nem hasznos egy vékony képen.

Futásidejű konfiguráció - thinstation.conf.buildtime

A thinstation.conf.buildtime fájl alapvetően egy bash parancsfájl, amely minden indítási parancsfájl környezeti változóit biztosítja. A szerkesztés megkezdése előtt meg kell nézni a ts / build / conf (github) könyvtárat - itt minden csomaghoz konfigurációkat találsz, amelyek tartalmazzák a magyarázatokat és az összes rendelkezésre álló változót.

Némi univerzális tanácsadás nehéz. A beállítás a környezettől és a használt csomagoktól függ. Íme egy példa egy RDP-munkamenetre.

Vékony kép készítése

Most, hogy a konfiguráció készen van, csak egy könnyű kép összeállítása marad. Ugyanazok a parancsok, mint a teljes kép, kivéve egy paramétert:

És ez minden. Attól függően, hogy mit állított be a build.conf fájlban. képeket készít a PXE-re, CD-ROM-ról, merevlemezről vagy flash meghajtóról történő betöltésre. Ezzel a konfigurációval elérheti a képméretet

90 MB-ot, és a PXE-t (az áramellátásról az asztalra) körülbelül 1 percig. Helyi lemezről és gyorsabban.

Egyéb jellemzők

Hasznos megjegyzések

A konyha tisztítása

Időnként, különösen akkor, ha aktívan kísérletezik a csomagverziókkal, készítsenek, újjáépítik, újrafordítják a binárisokat stb. előbb vagy utóbb el kell kezdeni a munkakönyvtár tisztítását az összegyűjtött szemetetől.

  1. Ne felejtsd el elhagyni a chrootot
  2. Győződjön meg róla, hogy mentse a változásokat a Git-ban
  3. Az összes rendszerfájl leválasztása a konyhában: umount -R telepítés / *
  4. Futtassa le a szkriptet: sudo ./setup-chroot -a
  5. Törölje a maradékot: git clean -dx - ez törli az összes mentetlen fájlt

Saját csomagok hozzáadása

Ha valamit akarsz hozni a projektedhez, akkor tudnod kell, hogy a ThinStation terminológiájában, vagy inkább a CRUX Linux terminológiájában, amelyre a TS épül, két alapvető fogalom létezik:

  • csomag (a továbbiakban: csomag) egy absztrakció, amely jelzi, hogy mi kell telepíteni a jövő képére. Egy csomag tartalmazhat egy fájlrendszeri fájlt, egyéni fájlokat, vagy akár csak egy konfigurációs fájlt, amely meghatározza például a függőségeket.
  • port (a "port") hasonlít a * .deb vagy * .rpm csomaghoz, egy fontos különbséggel: az összeállított fájlokkal rendelkező archívum nem tartalmazza a telepítési szabályokat, hanem egyszerűen egy fájlrendszer fa darabja. Bármely szabály (összeállítás script, telepítés utáni parancsfájlok stb.) Az archívum mellett található, és könnyen szerkeszthető.

Ha a saját képével kiegészíteni szeretné a képet, az első dolog, amire gondolnia kell, de pontosan mire van szüksége? Ha néhány szöveget szeretne hozzáadni a képhez - csak hozza létre saját csomagját, írja be azt build.conf -, és ez több lesz, mint elég. Ha bináris fájlokat kell összegyűjtened - akkor létre kell hoznod a portodat.

Saját port létrehozása

Az első dolog, amit ajánlok, egy önálló könyvtár létrehozása az Ön kézművesei számára. Ehhez ts / etc / prt-get.conf fájlhoz adja hozzá a következő sort:

A külön könyvtárban való tárolás sokkal könnyebb és biztonságosabb. A fájl szerkesztése után ne felejtse el újraindítani a chrootot. Meg kell jegyeznünk, hogy ebben a fájlban már vannak könyvtárak, amelyekben a portok a gyűjteményeken keresztül vannak terjesztve. A gyűjtő név szerint keresni fogja a portot az összes könyvtárban, így ha fél a név ütközésekétől - helyezze a könyvtárat a többiek fölé.

Most létre kell hoznia egy egyetlen bash parancsfájlt, amely felelős lesz a portösszetételért: / ts / ports / yourproject / portname / Pkgfile. A minta megtekinthető itt. és bármelyik porton megnézheted. Az alap verzió így néz ki:

Lássuk, mit csinál (sőt, nem ő, csak meghatározza a gyülekezési színpadot):

Ellenőrizzük feltételezéseinket. Az első felépítés végrehajtásához a következőket kell tennie:

A végső portnév fájl # 0.5.2.3-1.pkg.tar.xz (a fájlnév a forgatókönyv elején megadott változók figyelembevételével kerül kialakításra) egy készen telepíthető port és tartalmazza a fájlrendszer fáját. A képen továbbra is szerepelnie kell - hogyan kell csinálni, lásd alább.

Azt is meg kell jegyezni, hogy ha a .footprint vagy .md5sum fájlok vannak a porton található könyvtárban, akkor a telepítés sikertelen lehet, mert a fájlfa vagy az md5 összegek nem egyeznek. Ezeket a fájlokat összeszerelés előtt törölheti, és automatikusan létrehozásra kerül, és a következő műveleteket hajtja végre:

A port összeszerelve - itt az ideje telepíteni a rendszerbe. Ebben a szakaszban ez egy működő rendszer, amelyik a ThinStationet gyűjti.

Most az archívum kicsomagolásra kerül, és az összes fájl rendelkezésre áll. Azonban ezek a fájlok nem jelennek meg az összeállított képen - ehhez a porton kívül egy csomagra lesz szükség.

Csomag létrehozása

A minimális csomag így néz ki:

Ha a függőségi fájlban elegendő egy soros bázis meghatározása. Jó ötlet, hogy minden csomag legalább az alapcsomagtól függ. de további szabályokat is hozzáadhat. Ez már elég ahhoz, hogy amikor a csomagodat a build.conf csomagba illesszük be - az egyes fájlokba helyezett file-in-etc van a kész kép könyvtárában / etc.

Mit tehetünk, ha azt szeretnénk, hogy a csomagunk a szokásos fájlokon kívül magában foglalja portunkat a gyülekezésbe? Ehhez csak két szkript szükséges. Telepítési szkript ts / build / packages / mypackage / build / install:

És az eltávolító szkript ts / build / packages / mypackage / build / remove:

Most, amikor a ./build varázslatot elindítjuk, portunkat hozzáadjuk a képfájlokhoz, és megjelenik az összeszerelésben. Természetesen, ha emlékezel a csomagot build.conf -ra.

frissítése

Meg kell jegyezni, hogy a fent leírt összes manipuláció a CRUX portrendszer mágiája révén lehetséges. A port telepítése és eltávolítása a rendszerről a .footprint adatai alapján történik, és fontos annak biztosítása, hogy ez a fájl mindig naprakész legyen. Vannak más buktatók is - a megszakadt telepítési folyamat, a telepítés során fellépő hiba és sok más előre nem látható művelet könnyen vezethet annak a ténynek, hogy a rendszer (és ennek következtében a kép) olyan fájlokat fog tartalmazni, amelyeket egyáltalán nem lát. Rendszeresen végeznek egy teljes konyhai tisztítást, hogy megbizonyosodjanak arról, hogy a rendszer elvárhatóan viselkedik. Azonban néha nincs elég idő erre. Ezért, ha egyes csomagok és / vagy portok nem konzisztensek, akkor magam is a következő parancssorozatot kaptam, amely az esetek 99% -ában törli az összes felesleges fájlt, és még mindig rendezi a fát:

Mi még olvasni

Itt van néhány érdekes cikk, amely egyszer sokat segített:

Nos, és csak abban az esetben, ha a ThinStation a GitHubon van, ahol lehetséges további profilok és változtatások megtalálása, hasznos lehet:

Kapcsolódó cikkek