t2sde

Monille eri arkkitehtuureille! (alpha, arc, arm, arm64, avr32, hppa, ia64, m68k, mipsel, mips64, nios2, ppc, ppc64-32, ppc64le, riscv, riscv64, s390x, sparc, sparc64, superh x86, x86-64 and x32..) Hyvin syvä DIY henkinen pitkän linjan Linux käyttäjille mutta helppo aloitteleville. Tätä on pidetty yllä suurin osin René Rebe:n toimesta ja vuosien aikana myös useiden tukijoiden avustuksesta vuodesta 2004 mutta juuret tulee ROCK Linuxin puolelta vieläkin aikaisempaa. Suosittelen lukemaan dokumentit, Build Intro ja Fresh Install 101. Ohjelmien eli pakettien asennusta tehdään kääntämällä lähdekoodista T2 SDE:n kautta eli ./t2 install firefox esimerkiksi tai jos haluaa tuen ajaa *.appimage tiedostoja tulee asentaa sen tarvittavat kirjasto libappimage ja sen riippuvuudet kuten fuse3 (pitäisi tulla riippuvuutena nykyään valmiina).. eli ./t2 install libappimage.

Uusi Asennus Reloaded

Tämä on pieni hotfix ehdotus mitkä asentaa ensin kun asentanut järjestelmän (tulee päivittymään). ./t2 install lua ./t2 install -f binutils libtool curl apr apr-util ./t2 install -f perl perl-xml-parser python pip setuptools meson ninja libtool libxml ./t2 install -f glib ./t2 install -f gobject-introspection gdk-pixbuf pango harfbuzz at-spi2-core graphene gtk Vaihtoehtoisesti kopioitavana yhtenä rivinä kerralla terminaaliin jossa myös lisää kuten python: ./t2 install lua; ./t2 inst -f binutils libtool curl apr apr-util; ./t2 inst -f -optional-deps=yes python pip packaging ply pyyaml python-pathspec python-pluggy python-trove-classifiers; ./t2 inst -f meson; ./t2 inst -f pyproject-metadata; ./t2 inst -f meson-python; ./t2 inst perl perl-xml-parser libxml; ./t2 inst -f gobject-introspection perl-gettext shaderc; ./t2 inst -f glu; ./t2 inst -f graphite2; ./t2 inst -f glib; ./t2 inst -f gdk-pixbuf pango harfbuzz at-spi2-core graphene xmlto docbook-xml libxslt; ./t2 inst -f asciidoc docbook2x tcl tk cbindgen; ./t2 inst -f cargo-c; ./t2 inst -f -optional-deps=no gettext epoxy expat libpng freetype findutils grep sed gawk pixman libxcb libx11 libxext libjpeg shared-mime-info cairo libxml libgsf libcroco libxrender wayland-protocols gstreamer tcp_wrappers; ./t2 inst -f gtk xclip xprop

Wifi!

Wpa_supplicant on juuri sinulle! Tässä on esimerkki PlayStation 3 Wifi yhteydelle. Eka askel on luoda /etc/wpa_supplicant.conf tiedosto jossa on ssid ja salasana konfiguroitu. Eräs Wifi hotspot skannaus/monitori ohjelma mistä itse pidän (joka toimii suoraan terminaalissa!) on wavemon. Terminaalissa luodaan tarvittavat tiedot Wifi modeemille (ssid on päätelaitteen näkyvä nimi): wpa_passphrase ssid password >> /etc/wpa_supplicant.conf Käynnistetään prosessi jos se oli käynnissä tappamalla se ensin näin yhtenä keinona (jos se oli käynnissä). killall wpa_supplicant Ja käynnistämällä se oikealla Wifi ajurilla kuten tässä wext (lisää -B parametri jos haluat hiljaisen tausta ajon) wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant.conf Viimeiseksi hankitaan IP wlan0 laitteelle. dhclient wlan0 Nyt seuraavaksi voit halutessasi tehdä skriptin sysvinit tyyliin tai chrontab -e ajamaan komennot jokaisessa bootissa että se yhdistyy automaattisesti. Mutta se on ihan sinusta kiinni miten haluat kuten vaikka itse ajettavan yhden komennon bash scriptin työpöydälle.

Nvidia ajuri

Nvidia ajurit ovat suljetun lähdekoodin omaisuutta joten joutuu asentamaan manuaalisesti nämä ajurit. Lyhyesti joutuu kääntämään Linux Kerneli niin että samalla asentuu Linux Kernelin lähdekoodi mitä ajuri käyttää sitä luomaan nvidian ajurin kerneli moduuli (jolloin moduuli on yhteensopiva Kernelin kanssa).

Kernelin asetuksen voi SDE:stä vaihtaa päälle. Eli ./t2 config ja mene Linux Kernel Options-valikkoon.

t2sde

Nyt voit kääntää Linux Kernel komennolla ./t2 build linux. Siirry valmistuksen jälkeen (voit myös bootata uudestaan jos päivitit uudempaan) linux source kansioon cd /usr/src/linux* Nyt käännetään manuaalisesti tiedostot mitä Nvidia tarvitsee kuten Module.symvers tiedoston ajurin eli kerneli moduulin kääntämiseen. make prepare Tässä kohtaa Linux Kernel konfiguroija kysyy mahdollisesti onko Kernelissä STACKPROTECTOR konfigoroitu eli Kyllä/Ei eli Y/n kysymys. Itse vastaan n eli ei kun omassa eli /boot/kconfig-6.10.8-t2 ei sisällä kyseistä ollenkaan. Seuraava kysymys on INIT_STACK_NONE option valintoja joista valitse 1. Aja Kernelin lähteen kääntäminen loppuun seuraavasti: make modules_prepare make -j28 (-jx eli kuinka monta x ydintä haluat käyttää) make modules -j28 Nyt voit laittaa mustalle listalle entisen mesa:n näyttis ajurin nouveau:n seuraavassa bootissa jottei ajuri häiritse enään käyttöä. Lisää modprobe conf tiedostoon uusi rivi. vi /etc/modprobe/* blacklist nouveau Lataa Nvidia ajuri. Tässä esimerkissä käytetään NVIDIA-Linux-x86_64-470.256.02.run ajuria. Ensin ajuri puretaan kansioon jotta se voidaan korjata patch tiedostolla. NVIDIA-Linux-x86_64-470.256.02.run --extract-only Luo temp kansio jota käyttää ajurin asennuksessa. mkdir /root/Downloads/nvidia/tmp Lataa tämä nvidia.patch tiedosto ja siirrä se kansioon johon ajuri purki itsensä ja suorita korjaus kansiossa. patch -p0 nvidia.patch Nyt voit käynnistää ajurin asennuksen. ./nvidia-installer --tmpdir /root/Downloads/nvidia/tmp Jos ajuri kysyy asennetaanko 32bit kirjastoja ja konfiguroiko X11 serverin sano kyllä. Käynnistä nyt uudelleen ja kun käynnistät xfce4 eli startxfce4 on nvidia ajossa.

CUDA Toolkit

Jos haluat asentaa CUDA tuen (kuten alapuolen kuvassa Blender:in Cycle Render) ja tarvittavan SDK:n nin tarvitse ladata erikseen oikean CUDA toolkit koska Nvidia ei itse osaa kertoa oikeaa. Nvidia osoittaa ajurilla mutta he eivät minun tapauksessa K4200:n kanssa jossa on Compute Capability vain 3.0. Ajurin kautta tulee CUDA jossa on 3.5. Ainut millä voit selvittää on tämä Wikipedia artikkeli. Itselle nvidia-smi osoittaa 11.4 mutta minulle pitää olla CUDA Toolkit 10.2. Nvidia tarjoaa useampaa Distribution vaihtoehtoa joista T2 Linuxin kanssa toimii esim. Fedoran alle merkitty *.run tiedosto. Lataa kyseinen tiedosto ja aja se (luo tmp kansio ensin haluaamasi paikkaan) ./cuda_10.2.89_440.33.01_linux.run --tmpdir /root/Downloads/nvidia/tmp --override --silent --toolkit Tämä CUDA version NVIDIA CUDA Compiler Driver NVCC tarvitsee GCC 8x version kääntäjän avukseen koska käyttää vanhentuneita math kirjastoja mitä ei enään uudemmista GCC versioista löydy ja yleensä kun ekaa kertaa ajaa ohjelman CUDAa se kääntää ohjelman CUDA kääntäjän GCC:n avulla. GCC-8:n paketin asennettuaan joudut linkittämään sen CUDA:n /bin kansioon jotta CUDA löytää ja käyttää sitä. ln -s /usr/bin/gcc-8 /usr/local/cuda-10.2/bin/gcc ln -s /usr/bin/g++-8 /usr/local/cuda-10.2/bin/g++ ..Valmista!

Blender
Pelit! Wine + DXVK + vk3d ("Proton")

DirectX9,10,11 jne pelit toimii parhaiten Vulkan rajapinnalla OpenGL rajapinnan sijaan uudemmalla kääntäjällä Linuxilla. Ero on kuin yö päivällä. T2 Linuxilla tämä on hyvin helppoa ilman että viritelee vanhoja Wine versioita Lutris tai Proton ja Protonista eri versioista tehdyillä virityksillä. Jos katsot Protonin lähdekoodia Githubista mistä se koostuu niin ymmärrät mitä tarkoitan. Nvidia ajurin jälkeen voit asentaa vastaavan hyödyn suoraan Winetricks avulla Vulkan tuen (ja itse Wine:n). ./t2 install wine winetricks gst-ffmpeg Asennuksen jälkeen voit Winetricksillä asentaa dxvk joista itse tarvitsen vanhalla Kepler näyttiksellä vanhemman version koska Vulkan rajapinnan tuki itsellä on alle 1.3. winetricks dxvk1103 (Kepler GPU) winetricks dxvk (tai uudemmat) winetricks vk3d Kysyit varmaan miksi gst-ffmpeg? Kyseinen paketti on tarvittu esim Fallout 4 jossa muuten ei ole menu:ssa ääniä ja ei dialog ääniä. Tähän ei tarvita xact eli Xaudio2.7 dll virityksiä joten parempi ratkaisu. Itse käytän Wine:n kautta Steamiä joka vaatii winetricks corefonts asennettuna jotta näet tekstit. Miksen Valven Linux käännöstä? Se perustuu jostain syystä Ubuntu 12 tavaraan.. Vuodelta 2012! Steam vaatii seuraavan: wine '/root/.wine/drive_c/Program Files (x86)/Steam/steam.exe' -no-dwrite EPIC Games: wine '/root/.wine/drive_c/Program Files (x86)/Epic Games/Launcher/Engine/Binaries/Win32/EpicGamesLauncher.exe' -skipbuildpatchprereq -opengl -http=wininet Cyberpunk 2077 lähtee käyntiin muunmuassa: env VKD3D_CONFIG="dxr11; no_upload_hvv" VK_ICD_FILENAMES=/etc/vulkan/icd.d/nvidia_icd.json "WINEPREFIX=/root/.wine" wine 'Path/to/Cyberpunk 2077/bin/x64/Cyberpunk2077.exe'

DisplayPort ja Äänet

Äänet saa helposti alsamixerin kautta ulos luomalla/muokkaamalla tiedostoa /etc/asound.conf ja lisäämällä sinne seuraavat: defaults.pcm.card x defaults.pcm.device y defaults.ctl.card x Tiedot eli numerot näihin saat komennolla aplay-l josta itselle tulee esimerkiksi: card 1: NVidia [HDA NVidia], device 3: HDMI 0 [L32p-30] Missä haluttu ulostulolähde näkyykin eli x = 1 ja y = 3. Käynnistä ohjelma uudestaan mistä yritit toistaa ja sinulla pitäisi nyt olla ääni. Jos ei niin vilkaise alsamixer jos PCM ulostulo mykistettynä yhä.

Tässä päivitetympi vaihtoehto kun sdl2 voi valittaa bufferi varoituksia joten tässä käytetään dmixiä avuksi. pcm.!default { type plug slave.pcm "dmixer" } pcm.dmixer { type dmix ipc_key 1024 slave { pcm "hw:1,3" period_time 0 period_size 1024 buffer_size 4096 rate 48000 } } ctl.!default { type hw card 1 }

Päivitystä! Tässä on miten saada äänet välitettyä vrituaaliseen mikrofooniin työpöytä striimamiseen tai nauhoitukseen (kaikki mitkä sinä kuulet) snd_aloop kernel moduliin kanssa. Lataa moduuli esim. väliaikaisesti modprobe snd_aloop pcm_substreams=2 (ei kuulu muuten äänet). Firefox jotta löytää Mikrofoonin joutuu käynnistämään terminaalista env APULSE_CAPTURE_DEVICE=loopout_mixed apulse firefox (Tarvitset apulse ohjelman olevan asennettuna). Virtuaali web kameran voi myös luoda asennettavan v4l2loopback lisämoduulin ja ffmpeg:n avulla.
Esimerkki videomoduulin käynnistämiselle: modprobe v4l2loopback devices=1 video_nr=10 card_label="FFmpegCam" exclusive_caps=1 max_buffers=2
Esimerkki ffmpeg striimaus nauhoituksesta (4K 720p muunnoksella): ffmpeg -f x11grab -framerate 24 -video_size 3840x2160 -i :0.0+0,0 -vf scale=1280:720,format=yuv420p -c:v rawvideo -f v4l2 /dev/video10 pcm.multi { hint.description "The Damned Mixer" type route; slave.pcm { type multi; slaves.a.pcm "dmixer"; slaves.b.pcm "loop"; slaves.a.channels 2; slaves.b.channels 2; bindings.0.slave a; bindings.0.channel 0; bindings.1.slave a; bindings.1.channel 1; bindings.2.slave b; bindings.2.channel 0; bindings.3.slave b; bindings.3.channel 1; } ttable.0.0 1; ttable.1.1 1; ttable.0.2 1; ttable.1.3 1; } pcm.!default { type plug slave.pcm "multi" } pcm.dmixer { type dmix ipc_key 1024 slave { pcm "hw:1,3" period_time 0 period_size 1024 buffer_size 4096 rate 48000 } } ctl.!default { type hw card 1 } pcm.loopout { type plug slave.pcm "hw:2,0" } pcm.loop { type dmix ipc_key 1024 slave { pcm "hw:Loopback,1,1" period_time 0 period_size 1024 buffer_size 4096 rate 48000 } } pcm.loopout_mixed { type dsnoop ipc_key 2048 slave { pcm "hw:Loopback,0,1" format S16_LE rate 48000 channels 2 } } }

BTRFS formaatti

Tämä uudehko tallennusalustojen formaatti on hyvin monipuolinen ja tehokas formaatti. Itsellä oli aloitus vaikeuksia useiden monimutkaisten ohjeiden olemassaolosta mitkä ei käy yks yhteen kun konfiguroitu mahdollisesti jopa väärin joissain Linux jakeluissa. Ideana on subvolume eli aliosioiden käyttö joita voi käyttää snapshot eli "pikakuvauksen" (miten nyt Suomennat ikinä) järjestelmästä jolloin tämä kopio ei täytä sinun kiintolevyäsi ellei tiedostot muutu siitä lähtien. Eli voi tehdä samalle levyllä monia varmuuskopioita mihin palata jos jotain tapahtui. Huom jos boot kuten Grub on asennettu samalle osiolle sen kopion palauttaminen joutuu tekemään eri tavalla.

Voit luoda kansion mihin tehdä snapshotteja esim. järjestelmästä jonka tunniste on / mkdir /snapshots btrfs subvol snapshot / /snapshots/BACK00 Voit nyt tarkistaa kopion tunniste ID:n. btrfs subvol list / Siellä näkyy esim.: ID 256 gen 149084 top level 5 path snapshots/BACK00 Voit tarkistaa järjestelmän tämän hetkisen ID eli tunnisteen btrfs subvol get-default / joka on yleensä vakiona 5 . Testi mielessä voit nyt vaihtaa taustakuvan kun testataan palauttamista ja varmistetaan btrfs toiminta. Vaihdetaan aliosion aktiivinen ID joka oli 5 snapshot ID:hen joka oli 256. btrfs subvol set-default 256 / Käynnistä nyt uudelleen ja sinulla on taas edellinen taustakuva näkyvissä ja voit käyttää järjestelmää ihan normaalisti tai palata alkuperäiseen järjestelmään samalla tavalla eli btrfs subvol set-default 5 / ja käynnistää uudelleen ja poistaa tämä snapshot btrfs subvol delete /snapshots/BACK00.

Henkilökortti

Sen että pääset käyttämään vaikka Prisman Trust lukijaa henkilökortin kanssa joudut asentamaan ajurit ja ohjelman ./t2 inst pcsc-lite ccid *huom varmista että käytät viimeisintä korjausta alhaalta ccid:n osalta. Aktivoi pcsd käynnistymään koneen käynnistyessä stone konfiguraatiossa valitse Runlevel Configuration (services) ja varmista listalta pcscd on valittu kaikki 3:sta ylöspäin. Huom. Jos ongelmia jos polkit paketti asennettuna niin muuta käynnistys komentoa vi /etc/init.d/pcscd niin ettei käytä polkit ominaisuutta /usr/sbin/pcscd --disable-polkit. Voit käynnistää nyt pcscd ajamalla /etc/init.d/pcscd start. Tarvitaan väliohjelma vielä esim. firefoxiin ja kun kortti käyttää PIN koodia certificaation kanssa ja tällä hetkellä Atostek ID on Digi- ja Väestötietoviraston valinta. Voit ladata sen täältä (*.rpm on yhteensopiva) dvv.fi. Asennustiedoston voi purkaa File rollerin kautta tai rpm package managerin kautta jolloin jää usr kansio minkä voit kopioida järjestelmän juureen ( / ) milloin tiedostot siirtyy oikeille paikoille. Firefoxissa mene about:preferences#privacy josta löydät "Turvalaitteet" tai "Security Devices..." kohdan josta avautuu Device Manager mistä taas painat Lataa / Load ja painat Etsi/Browse... Tiedostonhallinnalla mene /usr/lib64 ja valitset sieltä "Atostek-ID-PKCS11.so" tiedoston ja kaikki valmista käyttöön! Huomaa että dvv.fi:n sivusto kortin testaukseen ei toimi joten älä tuhlaa aikaa sen kanssa testaukseen.

Epävirallisia paketteja ja korjauksia

T2 jakelu ulkopuolisesti ohjelmia tai eri versioita. Ja joitain pakettien korjaus patcheja mitä ei vielä kierrossa. Ladatussa svn trunk aja komento: patch -p0 -i file GCC-8.diff GCC-11.diff GCC-13.diff fftw3.diff [for Blender] llvm.diff [for Blender and else] qt5.diff [Last Qt5 pkgs version which works with nvidia drivers, remove similar packages from qt directory. Notice that Qt5 and Qt6 cannot be installed at same time] v4l2loopback.diff nv-codec-headers.diff [headers required to interface with Nvidias codec APIs] ffmpeg.diff [with cuda support] ccid.diff [Korjaa ccid paketin jossa on hylättyä koodia jolloin voi käyttää älykortin lukijaa esim. pcsc-lite kanssa] noto-cjk.diff [Japani ja Korea esim. näkyviin fontin asennuksella] thunderbird.diff [Thunderbird bugi milloin icu4c antama tieto locale tieto aiheuttaa domino efektin jos käyttää sähköpostia kuten Outlook missä on kalenteri voit lähettää yhden viestin jonka jälkeen ei viestit lataudu ja viestin lähetyksessä lähetetyn viestin siirto Lähetetyt kansioon epäonnistuu. Tämä korjaus varmistaa ettei virheellistä dataa pääse väärän paikkaan aiheuttamaan ongelmia. ]

---Vieraskirja---

Visit #1163