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.
Kerään tähän pieniä neuvoja.
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.
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
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 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.
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.
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
./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!
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 ja ei.. ei tarvitse viritellä 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.
wintricks dxvk1103
Kysyit varmaan miksi gst-ffmpeg?
Kyseinen paketti on tarvittu esim Fallout 4 jossa muuten ei ole menu:ssa ääniä ja ei dialog ääniä. Ja kyllä 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!
Ää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 tulolähde näkyykin eli korjataan seuraavat numeroilla 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ä vähän päivitetympi vaihtoehto (card,device = hw:1,3) kun esimerkiksi 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
}
Tämä uudehko tallennusalustojen formaatti on hyvin monipuolinen ja tehokas formaatti jos sitä osaa käyttää. Itsellä oli aloitus vaikeuksia useiden vähän 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ö jotka tavallaan ovat kansioita muttet käytössä näe niitä suoraan kun niitä voi käyttää snapshot eli "pikakuvauksen" (miten nyt Suomennat ikinä) käyttöön kun jos haluat ottaa backup/ varmuuskopion vaikka koko järjestelmästä niin tämä kopio ei täytä sinun kiintolevyäsi uudella kopiolla vaan ainoastaan jos tiedostot muuttuu siitä lähtien.
Eli voi tehdä samalla levyllä monia varmuuskopioita mihin palata jos jotain tapahtui. Huom jos boot on samalla levyllä sen joutuu tekemään eri tavalla kun btrfs käskytystä nyt näytän vain mikä on käynnistyksessä Grubin jälkeen.
Asennettuna sinulla ei ole vielä kuin pääosio jonka tunniste ID on 5.
Voit nyt luoda kansion mihin tehdä snapshotteja järjestelmästä jonka tunniste osoite on /
mkdir /snapshots
btrfs subvol snapshot / /snapshots/BACK00
Voit nyt tarkistaa tämän uuden kopion ja sen tunniste ID:n
btrfs subvol list /
Siellä näkyy esim. nyt: ID 256 gen 149084 top level 5 path snapshots/BACK00
Voit teoreettisesti vaihtaa taustakuvaa tai tehdä pieni testi muutos nykyisessä järjestelmässä.
Vaihdetaan nyt seuraavassa bootissa tähän varmuuskopioon jonka ID on 256.
btrfs subvol get-default / Tällä näet tämän hetkisen eli alkuperäisen eli järjestelmän joka on 5
btrfs subvol set-default 256 /
Käynnistä nyt uudelleen ja sinulla on taas entinen taustakuva näkyvissä ja voit käyttää järjestelmää ihan normaalisti ja palata vastaavasti alkuperäiseen järjestelmään samalla tavalla eli btrfs subvol set-default 5 / ja käynnistää uudelleen.