Witamy na Planecie openSUSE

Jest to zbiór, który zawiera blogi wszystkich osób wspierających openSUSE.

Jeżeli chcesz, aby twój blog został dodany do zbioru, przeczytaj instrukcje.


Czwartek
21. listopad 2013


face

Pulpit plazmy korzysta z akonadi, które w domyślnej konfiguracji używa własnej instancji mysql/mariadb. Amarok przechowuje informacje o naszej bibliotece (notowania, teksty, oceny) również w bazie mysql. W tym celu korzysta również z własnej instancji. DigiKam domyślnie przechowuje informacji o kolekcji obrazów w bazie sqlite. Przy większych kolekcjach, może okazać się, że wydajność sqlite jest niewystarczająca. Nic nie stoi na przeszkodzie, aby wszystkie bazy przenieść do systemowej instancji mariadb. Dzięki temu unikniemy dublowania instancji baz dla akonadi i amaroka oraz przyspieszymy działanie digiKama.

I krótka legenda dla kodów użytych w tym wpisie.Kody zaczynające się od:

  • # – należy wykonać jako root
  • $ – należy wykonać jako zwykły użytkownik
  • > – należy wykonać w konsoli mysql/mariadb

Zanim zaczniemy migrować bazy, należy zainstalować serwer mysql/mariadb i uruchomić go:

# zypper in mariadb
# systemctl enable mysql
# systemctl start mysql

Akonadi

Upewniamy się, że akonadi działa:

$ akonadictl status

Tworzymy zrzut aktualnej bazy akonadi za pomocą:

$ mysqldump --socket=~/.local/share/akonadi/socket-$HOSTNAME/mysql.socket akonadi > ~/akonadi-backup.sql

Zatrzymujemy serwer akonadi:

$ akonadictl stop

Zmieniamy konfigurację bazy danych akonadi, tak aby korzystała z zewnętrznego serwera mysql. Możemy edytować plik ~/.config/akonadi/akonadiserverrc by jego zawartość wyglądała następująco:

[%General]
Driver=QMYSQL
SizeThreshold=4096
ExternalPayload=false

[QMYSQL]
Name=akonadi
Host=localhost
Options=
ServerPath=/usr/sbin/mysqld
StartServer=false
User=akonadi
Password=akonadi

[Debug]
Tracer=null

Lub możemy uruchomić:

$ kcmshell4 akonadi

Odznaczamy ‚Używaj wewnętrznego serwera MySQL’ i uzupełniamy dane jak na rysunku poniżej.

akonadi-system-mariadb

Następnie konieczne jest dodanie bazy danych i użytkownika.

> CREATE USER 'akonadi'@'localhost' IDENTIFIED BY 'akonadi';
> CREATE DATABASE `akonadi`;
> GRANT ALL PRIVILEGES ON akonadi.* to 'akonadi'@'localhost' IDENTIFIED BY 'akonadi';

Następnie należy przywrócić nasz zrzut bazy akonadi za pomocą:

$ mysql akonadi < akonadi-backup.sql

Teraz pozostało nam już tylko uruchomić serwer akonadi za pomocą:

$ akonadictl start

Jeśli spotkamy się z błędem:

Sql error: Table 'akonadi.SchemaVersionTable' doesn't exist QMYSQL: Unable to execute query

należy zmienić nazwy table naszej bazy na format CamelCase.

> RENAME TABLE schemaversiontable TO SchemaVersionTable;
> RENAME TABLE resourcetable TO ResourceTable;
> RENAME TABLE collectionattributetable TO CollectionAttributeTable;
> RENAME TABLE collectionmimetyperelation TO CollectionMimeTypeRelation;
> RENAME TABLE collectionpimitemrelation TO CollectionPimItemRelation;
> RENAME TABLE collectiontable TO CollectionTable;
> RENAME TABLE flagtable TO FlagTable;
> RENAME TABLE mimetypetable TO MimeTypeTable;
> RENAME TABLE parttable TO PartTable;
> RENAME TABLE pimitemflagrelation TO PimItemFlagRelation;
> RENAME TABLE pimitemtable TO PimItemTable;

Od teraz akonadi będzie korzystało z systemowej instancji mysql/mariadb.
Możliwe są dalsze optymalizacje bazy danych, adekwatne do konfiguracji używanej przez dedykowaną instancję bazy.

Amarok

Zatrzymujemy serwer mysql/mariadb:

# systemctl stop mysql

Uruchamiamy serwer tylko z bazą amaroka:

$ cd ~/.kde4/share/apps/amarok
$ /usr/sbin/mysqld --defaults-file=`pwd`/my.cnf --default-storage-engine=MyISAM --datadir=`pwd`/mysqle --socket=`pwd`/sock --skip-grant-tables

Teraz pozostaje utworzyć zrzut bazy amaroka:

$ mysqldump -S sock amarok > amarok.sql

Po wykonaniu zrzuty możemy już zatrzymać serwer z bazą amarok i uruchomi


Niedziela
03. marzec 2013


face

Ady korzystać z najnowszego flasha w openSUSE konieczne jest zainstalowanie pakietu chromium-pepper-flash. Dostępny jest on w repozytorium packmana. Instalacja ogranicza się tylko do wykonania:

zypper in chromium-pepper-flash

Jednak aby chromium współpracowało z nową wtyczką, konieczne jest dodanie odpowiednich flag do globalnego pliku konfiguracyjnego chromium. Jako root edytujemy plik /etc/default/chromium i dodajemy poniższe flagi. Jeśli już korzystamy z innych flag, wystarczy je dopisać na końcu.

CHROMIUM_FLAGS="--ppapi-flash-path=/usr/lib/chromium/PepperFlash/libpepflashplayer.so"

Jeśli korzystamy z openSUSE w wersji x86_64, ścieżka do wtyczki zawiera lib64 zamiast lib.

Po ponownym uruchomieniu przeglądarki chromium, odwiedzamy adres chrome://plugins. Szukamy wtyczek flasha i wyłączamy wersję NPAPI. Od teraz chromium będzie korzystało z nowego flasha, aktualnie w wersji 11.6. Dzięki temu, karta graficzna działająca na otwartym sterowniku radeon czy intel wykorzystywana jest do renderowania obrazu. Zapewne podobna sytuacja będzie mieć miejsce w przypadku korzystania z innego sprzętu i sterowników, choć sam na innych konfiguracjach tego nie testowałem.


Środa
25. kwiecień 2012


face

Często pracując na laptopie korzystam z zewnętrznej myszki na usb. Jednak po jej podłączeniu touchpad nadal działa a „magiczny” skrót do jego obsługi Fn + F3* zdaje się być bezużyteczny. Z pomocą przychodzi nam udev i wszechstronność jego reguł. Aby wyłączyć touchpad po podłączeniu myszy do portu usb i automatycznie go włączyć po jej odłączeniu wystarczy, że utworzymy 2 proste reguły. Tworzymy plik /etc/udev/rules.d/01-touchpad.rules z zawartością zamieszczoną poniżej. W miejsce $user wstawiamy nazwę użytkownika.

ACTION=="add", SUBSYSTEM=="input", KERNEL=="mouse[1-9]", ENV{DISPLAY}=":0.0", ENV{XAUTHORITY}="/home/$user/.Xauthority", ENV{ID_CLASS}="mouse", RUN+="/usr/bin/synclient TouchpadOff=1"
ACTION=="remove", SUBSYSTEM=="input", KERNEL=="mouse[1-9]", ENV{DISPLAY}=":0.0", ENV{XAUTHORITY}="/home/$user/.Xauthority", ENV{ID_CLASS}="mouse", RUN+="/usr/bin/synclient TouchpadOff=0"

* Dell Vostro 3450 + Linux 3.3.2-1-desktop

Pozwoliłem sobie na edycję posta z bardzo prostego powodu. Człowiek pisze reguły udev zamiast uruchomić `synaptiks` i zaznaczyć żądaną opcję. Zdecydowanie szybciej i wygodniej. Powyższy plik można spokojnie usunąć :wink:

Konfiguracja touchpada w KDE


Czwartek
26. styczeń 2012


face

Fontconfig jest biblioteką służącą do konfiguracji dostępu do fontów. Cała konfiguracja jest przechowywana w plikach xml, dzięki czemu są one czytelne i łatwe w modyfikacji. Wyczerpujące informacje można znaleźć w podręczniku man fonts-conf bądź bezpośrednio na stronie.

Domyślna konfiguracja jest wystarczająca dla przeciętnego użytkownika jednak ma pewien mankament. Otóż rodzina fontów MS ma większy priorytet niż fonty domyślne. Dla przykładu, mając ustawione fonty z rodziny DejaVu Sans jako domyślne instalujemy font Consolas (dostępny np. w PowerPointViewer – wypakować za pomocą cabextract). Okazuje się, że po instalacji staje się on domyślnym fontem monospace. Czy aby tego chcieliśmy?

Jeśli nie chcemy aby zainstalowane fonty MS stały się domyślnymi, wystarczy zmienić konfigurację fontconfig. Tworzymy kopię zapasową i edytujemy plik:

su
cp /etc/fonts/suse-post-user.conf /etc/fonts/suse-post-user.conf.backup
vim /etc/fonts/suse-post-user.conf

Odszukujemy odpowiednie fonty które wg. nas nie powinny panoszyć się w systemie (np. Consolas, Verdana, etc.) i przenosimy je o kilka linii w dół. Po zapisaniu pliku pozostaje nam odświeżenie pamięci podręcznej fontconfig:

su
rm /var/cache/fontconfig/*
fc-cache

Od teraz, fonty którym obniżyliśmy priorytet nie będą ‚ustawiać’ się jako domyślne choć nadal można będzie z nich korzystać.

Przykładowy plik konfiguracyjny z obniżonym priorytetem fontów MS: suse-post-user.conf


Wtorek
13. grudzień 2011


Mariusz Fik: Android i openSUSE 11.4

02:43 UTCmember

face

Po instalacji i konfiguracji openSUSE 11.4 okazało się, że po instalacji SDK Androida nie można połączyć się z zewnętrznym urządzeniem. Efekt jest taki:

$ adb devices
List of devices attached
????????????     no permissions

Rozwiązanie jest bardzo proste. Należy najpierw sprawdzić, jak identyfikuje się nasz sprzęt.

fisiu@pendrak:~> lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 0dda:2005 Integrated Circuit Solution, Inc. Datalux DLX-1611 16in1 Card Reader
Bus 001 Device 004: ID 04e8:681c Samsung Electronics Co., Ltd ← Moje urządzenie

Istotną informacją jest ID producenta, w moim wypadku 04e8.
Teraz pozostało stworzyć odpowiednią regułę udev. Bez zagłębiania się w szczegóły reguł udev, można to zrobić tak:

echo ‚SUBSYSTEM==”usb”, SYSFS{idVendor}==”04e8″, MODE=”0660″ GROUP=”users”‚ > /etc/udev/rules.d/51-android.rules

su
echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="681c", MODE="0660" GROUP="users"' > /etc/udev/rules.d/51-android.rules

Od teraz urządzenie powinno już prawidłowo działać z naszym systemem.

Starsze wpisy na blogach ->