wtorek, 21 maja 2019

[Szkic] Kubuntu na A1260 (MacBook Pro)

1. Instalacja

Kubuntu w wersji 18.10 nie chce się zainstalować tak po prostu (z USB).
Na początek, warto przypomnieć, że trzeba przytrzymać ALT (⌥) [źródło], podczas uruchamiania systemu, aby móc wybrać pendrive. Po uruchomieniu Kubuntu, niestety system się wiesza gdzieś tam podczas ładowania. Aby temu zapobiec, należy ustawić dodatkowy parametr kernela nomodeset [źródło]. Aby to zrobić, podczas menu wyboru systemu (czarne ekran, białe napisy w ramce), należy wybrać pierwszą opcję i wcisnąć 'e'. Tam, w zastąpić quiet splash na nomodeset i wcisnąć F10 [źródło].

2. Sterowniki.
Laptop ten posiada kartę WiFi Broadcom'a oraz grafikę nVidia. Pierwsza, żeby w ogóle działała, musi mieć doinstalowane (zamknięte) sterowniki. Aby je zainstalować, trzba mieć, niestety, połączenie z siecią (albo ściągnąć i przenieść odpowiednie paczki i zainstalować ręcznie). Można się oczywiście połączyć kablem sieciowym, ale wygodniejszym rozwiązaniem jest podłączenie się telefonem z androidem do laptopa i udostępnienie internetu po USB.

3. Po instalacji
W laptopie tym znanym problemem jest k. graficzna (błąd produkcyjny nVidia), polega on na rozklejaniu się układu graficznego. Aby ten problem opóźnić, warto zainstalować program mbpfan, i odpowiednio skonfigurować aby chłodził „na zapas”.

środa, 8 maja 2019

czwartek, 25 kwietnia 2019

Chromium [nadal] powoduje problemy z grafiką

Intelowskie sterowniki są w jakiś dziwny sposób wrażliwe na działanie chromiuma. Objawia się to tym, że po pewnym czasie, po uruchomieniu ruchy graficzne (głównie przewijanie strony) powodują wyskakiwanie czarnych kształtów geometrycznych.

Rozwiązaniem na to są pewne zmiany w ustawieniach systemowych (sudo nano /usr/share/X11/xorg.conf.d/20-intel.conf):
Section "Device"
   Identifier  "Intel Graphics"
   Driver      "intel"
   Option      "AccelMethod"  "sna"
   Option      "TearFree"    "true"
   Option      "DRI"    "3"
EndSection
Oraz zmiana ustawień flag w chromie:
chrome://flags/#enable-zero-copy - na enable
chrome://flags/#enable-gpu-rasterization - force enable for all layers
chrome://flags/#smooth-scrolling - enable
chrome://flags/#ignore-gpu-blacklist - enable

[źródło]

środa, 24 kwietnia 2019

Autodeskowy Eagle w Ubuntu

Eagle od jakiegoś czasu nie ma instalacyjnej wersji dla Ubuntu. Można go sobie rozpakować i uruchomić, ale kogo by to satysfakcjonowało?
Żeby go sobie semi-zainstalować, proponuję zrobić tak:

Tworzymy w katalogu domowym folder eagle (który chyba i tak powstanie jako domyślny). Do niego rozpakowujemy program. Obok rozpakowanego katalogu (np. eagle-9.3.2) tworzymy dowiązanie symboliczne o nazwie eagle-app (ln -s eagle-9.3.2 eagle-app) a następnie tworzymy plik nano .local/share/applications/Eagle.desktop o zawartości [źródło]:
[Desktop Entry]
Comment[pl_PL]=Edytor Eagle
Comment=Edytor Eagle
Exec=~/eagle/eagle-app/eagle run
GenericName[pl_PL]=
GenericName=
GenericName[pl_PL.UTF-8]=Edytor PCB Eagle
Icon=~/eagle/eagle-app/bin/eagle-logo.png
MimeType=
Name[pl_PL]=Eagle
Name=Eagle
Path=
StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application
Version=1.0
X-DBUS-ServiceName=
X-DBUS-StartupType=
X-KDE-SubstituteUID=false
X-KDE-Username=

niedziela, 14 kwietnia 2019

Steam Play w oknie

Aby przestawić aplikację Proton (Wine) aby się uruchamiała w oknie, wystarczy [źródło]:

1. Przejść do katalogu aplikacji ~/SteamLibrary/steamapps/compatdata/321040/pfx.
2. Otworzyć terminal tu i wykonać komendę:
3. env WINEPREFIX=$PWD winecfg

niedziela, 7 kwietnia 2019

Dirt3 via Steam Play [SZKIC]

Swiche (opcje uruchamiania) [źródło]:
PROTON_LOG=1 PROTON_NO_ESYNC=1 PROTON_NO_DXD11=1  %command%
Idąc dalej tym wątkiem, pojawia się pytanie o Vulkan, żeby sprawdzić czy działa:
vulkan-smoketest
U mnie nie działał:
INTEL-MESA: warning: Haswell Vulkan support is incomplete
vulkan: No DRI3 support detected - required for presentation
Note: you can probably enable DRI3 in your Xorg config
terminate called after throwing an instance of 'std::runtime_error'
what(): failed to find any capable Vulkan physical device
Może dla tego Dirt3 się nie chciał włączyć?
Aby uruchomić DRI3, w pliku /etc/X11/xorg.conf.d/20-intel.conf trzeba dodać linijkę o DRI [źródło]:
Section "Device"
  Identifier "Intel Graphics"
  Driver "intel"
  Option "AccelMethod" "sna"
  Option "DRI" "3"
EndSection
I zrestartować komputer.
Po tym zabiegu, vlukan-smoketest powinien działać [źródło]:
INTEL-MESA: warning: Haswell Vulkan support is incomplete
462 presents in 5.0045 seconds (FPS: 92.3168)
468 presents in 5.00597 seconds (FPS: 93.4884)
473 presents in 5.00229 seconds (FPS: 94.5566)
476 presents in 5.00105 seconds (FPS: 95.1801)
frames:2069, elapsedms:22115
Niestety, nie pomogło to w kwestii "no_dxd11", ale już "no_esync" nie jest potrzebne.

Jak się okazuje, kwestia rozbija się o wersję mesa'y. W Mincie 18.3 jest to obecnie 18.0.5, a sensu nabiera tutaj dopiero 19...

poniedziałek, 11 marca 2019

Divinity: Original Sin (GOG) nie działa

W pewnych konfiguracjach gra D:OS nie chce się uruchomić. Związane to jest z błędem w interpretacji informacji, które zwracają funkcje z bibliotek. Nie wdając się w szczegóły, rozwiązanie polega na zastąpieniu tych funkcji takimi, które zwracają wartości przewidywane przez grę.

Aby to zrobić, trzeba skompilować plik, z nowymi funkcjami [źródło].

Zapisujemy poniższy kod [źródło] do pliku divos-hack.c w katalogu z plikiem runner.sh:
/* * LD_PRELOAD shim which applies two patches necesary to get the game * Divinity: Original Sin Enhanded Edition for Linux to work with Mesa (12+) * * Build with: gcc -s -O2 -shared -fPIC -o divos-hack.{so,c} -ldl */ /* for RTLD_NEXT */#ifndef _GNU_SOURCE#define _GNU_SOURCE#endif#include <dlfcn.h>#include <GL/gl.h>#include <string.h> #define _GLX_PUBLIC /* * https://github.com/karolherbst/mesa/commit/aad2543bf6cfbd7df795d836e5ff4ec8686e4fdf * - allow env override of vendor string. I actually just hard-coded * ATI Technologies, Inc., since that appears to be what's needed */const GLubyte *GLAPIENTRY glGetString( GLenum name ){ static void *next = NULL; static const char *vendor = "ATI Technologies, Inc."; if(name == GL_VENDOR) return (const GLubyte *)vendor; if(!next) next = dlsym(RTLD_NEXT, "glGetString"); return ((const GLubyte *GLAPIENTRY (*)(GLenum))next)(name);} /* * https://gist.github.com/karolherbst/b279233f8b13c9db1f3e1e57c6ecfbd2 */_GLX_PUBLIC void (*glXGetProcAddressARB(const GLubyte * procName)) (void){ static void *next = NULL; if (strcmp((const char *) procName, "glNamedStringARB") == 0 || strcmp((const char *) procName, "glDeleteNamedStringARB") == 0 || strcmp((const char *) procName, "glCompileShaderIncludeARB") == 0 || strcmp((const char *) procName, "glIsNamedStringARB") == 0 || strcmp((const char *) procName, "glGetNamedStringARB") == 0 || strcmp((const char *) procName, "glGetNamedStringivARB") == 0) return NULL; if(!next) next = dlsym(RTLD_NEXT, "glXGetProcAddressARB"); return ((_GLX_PUBLIC void (*(*)(const GLubyte *))(void))next)(procName);}
Następnie plik ten należy skompilować, dobrze jest wcześniej zainstalować paczkę build-essencial.
sudo apt install build-essential
gcc -s -O2 -shared -fPIC -o divos-hack.so -ldl divos-hack.c
Następnie, plik runners.sh, należy przerobić na:
#!/bin/sh
export MESA_GL_VERSION_OVERRIDE=4.2 MESA_GLSL_VERSION_OVERRIDE=420
allow_glsl_extension_directive_midshader=true LD_PRELOAD=./divos-hack.so LD_LIBRARY_PATH="." ./EoCApp