niedziela, 28 grudnia 2014

Przenoszenie systemu na inną partycję (inny system plików)

Jakiś czas temu na phoronix.com pojawiło się porównanie wydajności systemów plików na dyskach SSD. Samsung utworzył system przeznaczony właśnie na dyski flash (pendrive, karty SD, dyski SSD). Zachęcony tym, postanowiłem przenieść system plików na partycję F2FS (flash friendly file system). [phoronix.com]

Aby to zrobić, trzeba zrobić odpowiednio dużo miejsca na dysku, by móc skopiować dane z jednej partycji, na drugą, by móc sformatować 'pierwotną' jako f2fs i przenieść tam dane z powrotem.

Po każdym przeniesieniu konieczne jest zaktualizowanie grub'a, by móc uruchomić stary system.
Dodatkowo, grub nie obsługuje f2fs, więc koniecznym jest posiadanie partycji boot w 'starym' systemie plików (ext2, 3 lub 4).kocham godzie.

Aby to zrobić warto skorzystać z przewodnika Ubuntu:

  1. Tworzymy partycję boot (200 mb powinno wystarczyć, 500 jest dużo ponad rzeczywiste zapotrzebowanie). Wygodnym narzędziem będzie gparted (dostępny w centrum oprogramowania). Partycja najlepiej by była ext4 lub coś podobnego.
  2. Montujemy tak przygotowaną partycję o odpowiednim numerze zamiast X (X to numer utworzonej partycji pod boot) i kopiujemy na nią dotychczasową zawartość katalogu boot:

    sudo mkdir /mnt/boot
    sudo mount /dev/sdaX /mnt/boot
    sudo cp -a /mnt/main/boot/* /mnt/boot/
    sudo umount /mnt/boot
  3. Aktualizujemy grub:

    sudo mount /dev/sdaX /boot
    grub-install --root-directory=/ /dev/sda
  4. Aktualizujemy fstab:
    W tym celu należy sprawdzić jaki ID posiada nasza nowa partycja poleceniami mountsudo blkid. Przykładowe wyjście:

    mount:
    (...)
    /dev/sda8 on /boot type ext4 (rw)
    (...)


    blkid:
    (...)
    /dev/sda8: LABEL="boot" UUID="3429a664-5f36-4878-baa6-35e8f63c63cc" TYPE="ext4" PARTUUID="000186d0-08"


    Jak widać nasza partycja (tutaj ósma) posiada UUID 3429a664-5f36-4878-baa6-35e8f63c63cc.
    Kopiujemy tę wartość i umieszczamy na końcu pliku /etc/fstab w takiej postaci:

    UUID=3429a664-5f36-4878-baa6-35e8f63c63cc     /boot     ext4        defaults    0       0

    Zapisujemy i wychodzimy.
  5. Restartujemy komputer mając nadzieję, że wszystko poszło jak należy i ew. czyścimy stary katalog boot:

    sudo umount /boot
    sudo rm -r /boot
Pierwszy etap już za nami (etap wstępny, choć długi), teraz faktyczna praca nad zmianą systemu plików. [źródło]

By przenieść się na nowy system plików (f2fs) potrzebny nam blkid go obsługujący. Będzie nim wersja od 2.25 (blkid -v). Jeśli takiej nie mamy:
sudo add-apt-repository ppa:xeron-oskom/util-linux
sudo apt-get update
sudo apt-get install util-linux --reinstall
Instalujemy co potrzebne:
sudo apt-get install f2fs-tools gparted
Dodajemy moduł f2fs do initramfs (niezbędne, by system był w stanie odczytać nową partycję!). W tym celu edytujemy /etc/initramfs-tools/modules i dodajemy na końcu linijkę f2fs, oraz uruchamiamy komendę sudo update-initramfs -u. Mamy już system, który jest w stanie zbootować się z partycji f2fs, teraz trzeba go na nią przenieść. Tworzymy zatem nową partycję o formacie f2fs (za pomocą gparted), montujemy ją* i kopijemy zawartość / (generalnie niepolecane jest kopiowanie plików z działającego systemu, ale raczej nie powinno być z tym problemów):
sudo mkdir /media/f2fs
sudo mount /dev/sdx /media/f2fs
sudo cp -ax /* /media/f2fs
 Ponownie edytujemy fstab (tym razem na nowej partycji), tj. plik /media/f2fs/etc/fstab, usuwając starą linijkę / nową, np taką:
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx / f2fs rw,relatime,background_gc=on,user_xattr,acl,active_logs=6 0 0
zastępując x'y UUID nowej partycji (podobnie jak w przypadku /boot).

Na koniec (ponowna) aktualizacja grub'a:
sudo mount /dev/sdx /media/f2fs/boot
sudo mount --bind /dev /media/f2fs/dev
sudo mount --bind /proc /media/f2fs/proc
sudo mount --bind /sys /media/f2fs/sys
sudo chroot /media/f2fs
Wykonujemy (w chrootowanym systemie) komendę sudo update-grub.

Po restarcie powinniśmy się już cieszyć linuksem chodzącym z nowej partycji.

Zapraszam, do dopisania się do życzenia o dodanie opcji instalacji ubuntu na systemie F2FS: link.

Gdyby gparted niepoprawnie utworzył system plików, wystarczy uruchomić komendę mkfs.f2fs -t f2fs na odpowiedniej partycji.

Inne źródła: 1 2

poniedziałek, 3 listopada 2014

Czarny ekran po uśpieniu na AMD A4

Posiadam laptopa Samsung NP535U3C z APU AMD na pokładzie (nie polecam):

lspci
(...)
00:01.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Trinity [Radeon HD 7400G]
(...)
 Na otwartych sterownikach (o czym już pisałem) układ ten działa albo lepiej, albo równie dobrze, więc wolałbym uniknąć używania sterowników 'producenta'. Niestety, otwarte sterowniki mają jedną poważną wadę: po uśpieniu komputera i jego obudzeniu ekran laptopa pozostaje wyłączony (czasem laptop w ogóle się nie budzi poprawnie, ale to zdarza się również na sterownikach zamkniętych). Szczęśliwie, i na ten problem znalazło się rozwiązanie.

Na różnych stronach można znaleźć różne rozwiązania, ale we wszystkich pojawia się hasło s3_bios. Problem spotykany jest również na sprzęcie Intela.


Aby rozwiązać problem należy do parametrów jądra dodać acpi_sleep=s3_bios lub acpi_sleep=s3_bios,s3_mode.

Aby to zrobić, wystarczy do parametrów jądra w /etc/default/grub, w linii GRUB_CMDLINE_LINUX_DEFAULT dodać wcześniej wspomnianą opcję, by wyglądało to np. tak:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nmi_watchdog=0 acpi_sleep=s3_bios,s3_mode"

Gdzie indziej spotkałem się z informacją, że to nie zadziała póki do pm-suspend nie doda się (też!) tej opcji. Aby to zrobić: sudo nano /etc/pm/config.d/radeon:
ADD_PARAMETERS="--quirk-s3-bios --quirk-s3-mode"
QUIRK_S3_BIOS="true"
QUIRK_S3_MODE="true"
I to wystarczy.

piątek, 17 października 2014

Nieoficjalny ROM na Xperia U

Przyzwyczajony jestem, że aby zainstalować nieoficjalny ROM na telefonie z Androidem (doświadczenia z X10 i HTC jakiśtam) muszę przesiadać się na Windowsa. Z Windowsem bywa różnie - zabawa ze sterownikami, antywirusami, firewallami, komunikatorami i jasnością ekranu - bezsensowna robota.

Jak się jednak okazuje sytuacja się od ostatniego czasu zmieniła, a aktualizacja sprowadza się do kilku banalnych kroków.

Na początek wybieramy ROM i kernel, np. te:
ROM: http://forum.xda-developers.com/xperia-u/u-development/rom-stock-jellybean-4-1-2-v6-t2284394
Kernel: http://forum.xda-developers.com/xperia-u/u-development/kernel-experimental-v12-t2326515 (wspomniany w poprzednim linku)

Rozpakowujemy paczkę kernel, aby wydostać z niego boot.img.

Odblokowujemy bootloader na stronie (wg. instrukcji): http://unlockbootloader.sonymobile.com/instructions

I już jesteśmy gotowi do wgrywania (zrzekam się odpowiedzialności za ew. szkody/utratę gwarancji).

Na początek wrzucamy paczkę z ROM'em (spakowaną tak jak została ściągnięta) na pamięć wewnętrzną telefonu. Skuteczny jest w tym przypadku program gmtp.

Następnie, udajemy się do katalogu z obrazem boot, wyłączamy telefon i podłączamy go trzymając przycisk zwiększania głośności.

Telefon powinien świecić na niebiesko (dioda pod przyciskami).

Teraz:
sudo fastboot flash boot boot.img
[sudo] password for quiteinsaneblablador:
sending 'boot' (7732 KB)...
(bootloader) USB download speed was 19407kB/s
OKAY [  0.423s]
writing 'boot'...
(bootloader) Flash of partition 'boot' requested
(bootloader) S1 partID 0x00000003, block 0x0000d000-0x00014fff
(bootloader) Erase operation complete, 0 bad blocks encountered
(bootloader) Flashing...
(bootloader) Flash operation complete
OKAY [  0.678s]
finished. total time: 1.101s

Jeśli wszystko poszło jak należy, odłączamy telefon od komputera i włączamy go trzymając przycisk Volume Up. Po chwili powinien pojawić się panel CWM, a w nim wybieramy po kolei wipe: cache, data, dalvik-cache. Następnie install zip i wybieramy odpowiedni ROM do instalacji. Gdy program zakończy wgrywanie ROMu wyłączamy i włączamy telefon.

That's all folks!

pozostałe źródła:
http://forum.android.com.pl/f670/instalacja-kerneli-przez-flashtool-fastboot-236690/
http://forum.xda-developers.com/showthread.php?t=1752270
http://forum.android.com.pl/f669/cwm-co-to-na-co-jak-zainstalowaae-229632/
http://www.androidlegend.com/ported-official-android-4-1-2-jelly-bean-firmware-for-xperia-u-st25i-6-2-a-1-100/#kernel

poniedziałek, 18 sierpnia 2014

HTML Validator w Firefoxie

Jakiś czas temu przez chwilę pracowałem na Windowsie. Wpadłem wtedy na pomysł, by przy pisaniu strony kontrolować 'poprawność' html'a i css'a. Szybki ogląd na sprawę sprowadził mnie do wtyczki HTML Validator. Niestety, po powrocie na Linuksa okazało się, że wersja w 'sklepie' FF jest niekompatybilna z moim systemem. Na szczęście starsze wersje, dostępne TU, są kompatybilne.

sobota, 16 sierpnia 2014

wicd + wvdial, czyli alternatywa dla NetworkManager

NetworkManager mnie po prostu drażni... Ostatnio wpisałem nawet w google "NetworkMenager sucks" i znalazłem dużo wyników.

Jak go zastąpić? Otóż bardzo wdzięczną i użyteczną alternatywą jest wicd. Jest to menadżer sieci WIFI oraz LAN. Niestety nie wspomniałem i nie mogę tutaj wspomnieć o sieciach GSM, gdyż ich obsługę przewidziano na daleką przyszłość (wicd 2.0).

Używam modemu Nokia CS-11, który nie jest specjalnie udanym modelem, ale działa. Korzystam również z sieci Play, bo tak.

Aby skonfigurować połączenie bez NM, można skorzystać z aplikacji gnome-ppp, która mi nie przyniosła wiele szczęścia. gnome-ppp jest niczym innym jak interfejsem dla wvdial, aplikacji służącej niczemu innemu jak właśnie wdzwanianiu się. Aby go używać, należy go skonfigurować:

sudo nano /etc/wvdial.conf:
[Dialer P4]
Modem = /dev/ttyACM0
;Baud = 921600
Baud = 460800
Init1 = ATH
Init2 = ATE1
Init3 = AT+CGDCONT=1,"IP","internet"
Dial Command = ATD
Phone = *99#
Stupid mode = yes
Username =;
Password =;
Auto DNS = yes
Gdzie:
internet - nazwa APN,
username i password - w ten sposób zostają zachowane jako puste,
Baud - prędkość komunikacji z modemem. Gdzieś kiedyś wyczytałem, że ustawienie zbyt wysokiej częstotliwości przepływu danych, przy współczesnych urządzeniach niczemu nie zaszkodzi, gdyż urządzenia się skomunikują.
Modem - pseudoplik przedstawiający nasze urządzenie. Częściej jest to /dev/ttyUSBx (x - 0 do 2), ale w moim przypadku wyszło tak.

Początkowo miałem problem polegający na tym, że modem się łączył wvdial nie miał o nic pretensji a ping nie szedł. Okazało się, że należy dopisać drogę, gdyż wvdial sam tego nie robi [źródło]:
sudo route add default gw 10.0.0.1
Gdzie 10.0.0.1 to IP jakie zwraca wvdial pod nazwą remote IP address (które wydaje się być stałe dla danego operatora).

czwartek, 24 lipca 2014

Zarządca procesora: conservative

Uwaga! Informacje w poniższym poście mogą być przydatne (w szczególności kwestia podrasowywania zarządcy, ale narzędziem do sterowania zarządcami/prędkościami lepszym jest cpufreqd.

Sugeruję conservative governor [źródło]. W skrócie, jest to tryb podobny do ondemand, z tym, że, gdy ondemand wykryje przekroczenie obciążenia procesora (o tym później), ustawia go na maksymalną częstotliwość. Conservative robi to spokojniej. Po przekroczeniu ustawia procesor na częstotliwość 'o krok wyżej'. Aby ustanowić conservative jako domyślne ustawienie trzeba zainteresować się plikiem /etc/init.d/ondemand. Skrypt ten po około minucie od uruchomienia systemu zmienia zarządcę na ondemand [źródło]. Aby go całkowicie wyłączyć wystarczy:
sudo update-rc.d -f ondemand remove
Przyda nam się on jeszcze do jednej rzeczy - aby utworzyć skrypt conservative. Ja sam skopiowałem skrypt ondemand do conservative:
sudo cp /etc/init.d/ondemand /etc/init.d/conservative
Oraz zamieniłem odpowiednie wpisy ondemand na conservative, w wyniku czego otrzymałem taki skrypt:

#! /bin/sh
### BEGIN INIT INFO
# Provides:          ondemand
# Required-Start:    $remote_fs $all
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:
# Short-Description: Set the CPU Frequency Scaling governor to "conservative"
### END INIT INFO

# Don't run if we're going to start an Android LXC container:
[ ! -f /etc/init/lxc-android-config.conf ] || exit 0

PATH=/sbin:/usr/sbin:/bin:/usr/bin

. /lib/init/vars.sh
. /lib/lsb/init-functions

AVAILABLE="/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors"

case "$1" in
    start)
        start-stop-daemon --start --background --exec /etc/init.d/conservative -- background
        ;;
    background)
        sleep 60 # probably enough time for desktop login

        [ -f $AVAILABLE ] || exit 0
        read governors < $AVAILABLE
        case $governors in
                *interactive*)
                        GOVERNOR="interactive"
                        break
                        ;;
                *conservative*)
                        GOVERNOR="conservative"
                        break
                        ;;
                *)
                        exit 0
                        ;;
        esac

        for CPUFREQ in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
        do
                [ -f $CPUFREQ ] || continue
                echo -n $GOVERNOR > $CPUFREQ
        done
        ;;
    restart|reload|force-reload)
        echo "Error: argument '$1' not supported" >&2
        exit 3
        ;;
    stop)
        ;;
    *)
        echo "Usage: $0 start|stop" >&2
        exit 3
        ;;
esac
Aby zmusić skrypt do działania zamiast ondemand, należy jeszcze wykonać poniższe komendy [źródło]:
sudo chmod +x /etc/init.d/conservative
sudo update-rc.d conservative start 99 2 3 4 5 .
Idąc dalej, można 'dopieścić' skrypt aby ustawiał wymarzone przez nas progi i parametry trybu conservative. W tym celu warto przyjrzeć się plikom znajdującym się w /sys/devices/system/cpu/cpufreq/conservative/ [źródło]:

down_threshold - obciążenie procesora poniżej którego zmniejszana jest częstotliwość (domyślnie: 20%)
freq_step - krok zwiększania/zmniejszania częstotliwości (domyślnie: 5%)
ignore_nice_load - wliczanie lub niewliczanie procesów 'nice', tj. "nie ważne jak długo robisz" do udziału w obciążeniu (domyślnie: 0)
sampling_down_factor - wpływa na wydajność podczas pełnego obciążenia. Zapobiega zmianom częstotliwości (góra/dół) przy pełnym obciążeniu (domyślnie: 1)
sampling_rate - co jaki czas system ma sprawdzać obciążenie procesora

W pliku przytoczonym jako źródło zaleca się:
echo $(($(cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_transition_latency)*750/1000))
W moim wypadku komenda zwraca 3000 co jest mniej niż minimum (domyślnie: 80000).

sampling_rate_min:
echo $(($(cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_transition_latency)*100))
Tutaj 400000 (domyślnie: 8000).

up_threshold - obciążenie po przekroczeniu którego częstotliwość jest zwiększana (domyślnie: 80%)

aby trochę podrasować powyższe parametry wystarczy zapisać do danych plików konkretne parametry (jako root):
        echo -n 30 > /sys/devices/system/cpu/cpufreq/conservative/down_threshold
        echo -n 1 > /sys/devices/system/cpu/cpufreq/conservative/ignore_nice_load
        echo -n 70 > /sys/devices/system/cpu/cpufreq/conservative/up_threshold
A to można wrzucić do pliku /etc/init.d/conservative, za pętlą CPUFREQ.

środa, 23 lipca 2014

AMD Turion (A4-4355M) undervolting i testowanie stabilnośći

Tradycyjnie, przypadkowo trafiłem na stronę. W sympatyczny sposób mr-fabio90 opisał jak zmusić moje APU do korzystania z prędkości 900MHz, która (domyślnie lub bezmyślnie? =/) jest wyłączona:

1. Pobieramy i instalujemy TaurionPowerControl
(początkowo skopiowałem po prostu binarkę i utworzyłem dowiązanie symboliczne o nazwie tpc, ale chyba instalator (make && install) też to robi).
Aby dalsze komendy działały musimy załadować odpowiednie moduły:
modprobe cpuid
modprobe msr

2. Sprawdzamy jak wygląda nasza konfiguracja poprzez sudo tpc -l.
U mnie teraz to wygląda tak:
TurionPowerControl 0.44-rc2 (export)
Turion Power States Optimization and Control - by blackshard

Main processor is Family 15h (Bulldozer/Interlagos/Valencia) Processor
        Family: 0xf             Model: 0x0              Stepping: 0x1
        Extended Family: 0x15   Extended Model: 0x10
        Package Type: 0x0       BrandId: 0x0
Machine has 1 nodes
Processor has 1 cores
Processor has 7 p-states
Processor has 2 boost states

Power States table:
-- Node: 0 Core 0
core 0 pstate 0 (pb0) - En:1 VID:108 FID:5 DID:0.00 Freq:2100 VCore:0.2000
core 0 pstate 1 (pb1) - En:1 VID:108 FID:5 DID:0.00 Freq:2100 VCore:0.2000
core 0 pstate 2 (p0) - En:1 VID:117 FID:3 DID:0.00 Freq:1900 VCore:0.0875
core 0 pstate 3 (p1) - En:1 VID:118 FID:18 DID:1.00 Freq:1700 VCore:0.0750
core 0 pstate 4 (p2) - En:1 VID:120 FID:14 DID:1.00 Freq:1500 VCore:0.0500
core 0 pstate 5 (p3) - En:1 VID:120 FID:10 DID:1.00 Freq:1300 VCore:0.0500
core 0 pstate 6 (p4) - En:1 VID:121 FID:2 DID:1.00 Freq:900 VCore:0.0375

 --- Node 0:
Processor Maximum PState: 6
Processor Startup PState: 4
Processor Maximum Operating Frequency: 2400 MHz

Minimum allowed VID: 123 (0.0125V) - Maximum allowed VID 0 (1.5500V)
Processor AltVID: 54 (0.8750V)

Done.

Wcześniej VCore 900MHz -> 0.1500 - czyli więcej niż teraz 1900MHz!
A obecnie wytłuszczone En:1 było En:0,  co oznaczało, że tryb ten był nieaktywny.

3. Aby zmienić nieaktywny p-state na aktywny, należy wykonać komendę sudo tpc -en 6, gdzie 6 jest numerem p-state.

4. Aby zmienić napięcie sudo tpc -set pstate 6 vcore 0.0375.
Gdzie 6 to numer p-state, a 0.0375 to nowe napięcie. Należy jednak pamiętać, że za duże napięcie może uszkodzić procesor a zbyt niskie spowodować jego niestabilność.

Aby przetestować czy ustawione napięcie jest stabilne, należy ograniczyć procesor do pracy na danej częstotliwości:
echo 900000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo 900000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq
I zmusić go do ciężkiej pracy. Do tego wygodny jest program mprime [źródło]. Aby go zdobyć wystarczy użyć tego linka pobrać mprime (np. mprime259.tar.gz), rozpakować, (skopiować mprime do /usr/bin i nadać mu uprawnienia chmod +x) i uruchomić z argumentem -t. Co pozwoli na przetestowanie procesora. Jeśli wyskakują błędy lub komputer się restartuje, trzeba podwyższyć vcore.

5. Aby umożliwić tzw. prędkości boost, wystarczy wydać komendę sudo tpc -boostenabe.

6. Sprawdzone komendy można dodać do /etc/rc.local, aby wykonywały się podczas uruchamiania systemu.

U mnie wygląda to tak:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

#Testing:
#echo N>/sys/module/drm_kms_helper/parameters/poll

#Radeon Dynamic Power Manager applet
chmod a+w /sys/class/drm/card0/device/power_dpm_force_performance_level
chmod a+w /sys/class/drm/card0/device/power_dpm_state

#Turion Power Control
modprobe cpuid
modprobe msr

#It seems that `tpc -boostenable` does NOT work
#Boost is only actually ever used during favorable temperature conditions, and controlled explicitly by the CPU
# https://bbs.archlinux.org/viewtopic.php?id=160616
echo 1 > /sys/devices/system/cpu/cpufreq/boost

#TPC boost
tpc -boostenable
tpc -set pstate 0 vcore 0.2000
tpc -set pstate 1 vcore 0.2000

#TPC for CPU powersave
tpc -en 6

tpc -set pstate 2 vcore 0.0875 #0.0500 - failure #0.0750 #0.1125 #0.1625 #0.2125
tpc -set pstate 3 vcore 0.0750 #0.0750 #0.1125 #0.1625
tpc -set pstate 4 vcore 0.0500 #0.0375 - unstable? #0.0500 #0.0750 #0.1125
tpc -set pstate 5 vcore 0.0500 #0.0750
tpc -set pstate 6 vcore 0.0375 #0.0250 - unstable #0.0500 #0.0500

#tpc -set pstate 2 vcore 0.0500 #kernel machine check failed
#tpc -set pstate 6 vcore 0.0125 #unstable
#tpc -set pstate 6 vcore 0.0250 #unstable

#tpc -rampuptime 8
#tpc -rampdowntime 12

#Max CPU speed (ac and bat!)
echo 1900000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo 1900000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq

exit 0

Uwagi końcowe:
- wygląda na to, że nie trzeba restartować komputera, aby zmiany zostały uznane przez system. Część programów (np. cpufreq-apref, mówi, że nie trzeba), ale cała reszta systemu mówi, że trzeba.
- z boostem, to jest tak, że nie da się go włączyć ręcznie. To wykonywane jest sprzętowo i w określonych warunkach, więc vcore 0.2000 jest ustawione 'na oko'.

poniedziałek, 21 lipca 2014

Atheros AR9462 i inne (ath9k) a oszczędzanie energii

Zabawa powertop zazwyczaj przynosi ciekawe efekty, w zakładce Tunables można znaleźć użyteczne rady takie jak:
Wireless Power Saving for interface wlan0
Aby ten problem rozwiązać wystarczy w pliku /etc/modprobe.d/ath9kps.conf, na końcu linijki ath9k dostawić 'ps_enable=1', w efekcie otrzymujemy coś takiego [źródło]:
options ath9k nohwcrypt=1 ps_enable=1
Takie działanie pozwala zmniejszyć zużycie prądu przez moduł wifi nawet dziesięciokrotnie [źródło]. W większości ath9k oszczędzanie jest uruchomione domyślnie, niestety, dotyczy to głównie modeli 'single chip', co najwyraźniej oznacza, że moduły wifi+bt mają domyślnie wyłączoną tę funkcjonalność [źródło].

niedziela, 20 lipca 2014

Apache, brak praw dostępu do katalogu

Dla każdej domeny/poddomeny na moim serwerze tworzę oddzielny plik [/etc/apache2/conf.d/poddomena.conf]:
<VirtualHost *:80>
        DocumentRoot /home/www/qib      
        ServerName domena.pl
        ServerAlias *.domena.pl
</VirtualHost>
Tak wygląda deklaracja na jaki katalog mają wskazywaćdana domena oraz jej subdomeny (co nie koliduje z kolejnymi deklaracjami poddomen).

Taka konfiguracja, to nie dość i daje w efekcie:
403 Forbidden You don't have permission to access / on this server
 Aby temu zapobiec, należy poinformować Apache o tym, że może zezwalać na dostęp do danych znajdujących się w danym miejscu:
<Directory /home/www/qib>
        #Options FollowSymLinks
        DirectoryIndex index.php index.html index.htm
        AllowOverride All
        Order deny,allow
        Allow from all
</Directory>
Ja umieszczam to wszystko w jednym pliku .conf, najczęściej jednak kopiuję plik główny i tylko poprawiam odpowiednie wpisy. [źródło]

czwartek, 10 lipca 2014

Wine, Hitman: Kontrakty i niska wydajność

Ponieważ zaczęły się wakacje, postanowiłem spełnić moją od dawna skrywaną zachciankę 'pograłbym w coś'. Tak się złożyło, że dużo wcześniej zainstalowałem sobie Hitmana: Contracts. Ponieważ już nie tylko o samą rozrywkę chodzi, postanowiłem zobaczyć co da się zrobić z 'wydajnością'. Gra nie ma wielkich wymagań, więc współczesne komputery raczej nie będą miały problemu z łyknięciem takiego 'starocia'. Otóż wydajność troszeczkę pozostawiała do życzenia.
Szukając i szukając, natrafiłem na kilka stron, a gdy wreszcie zacząłem czytać, okazało się, że problemy z wydajnością często spowodowane są wyborem D3D (emulacja) zamiast OpenGL [źródło]. Należy zatem, w pliku HitmanContracts.ini zamienić pierwszą linijkę na drugą:

DrawDll RenderD3D.dll na
DrawDll RenderOpenGL.dll
Zamiana taka, poza ogromnym wzrostem wydajności poskutkowała, niestety, znacznym pogorszeniem doznań wizualnych:

Ciężko tak grać, nie?
Pomogło, co dziwne, zmiana jeszcze jednej linijki [źródło]:
DefaultScene=AllLevels\Logos.gms na

DefaultScene=MainMenu.gms
Przy okazji pozbywamy się filmów intro.

Na koniec: gra nie obsługuje szerokich ekranów, ale jest na to 'sztuczka' [źródło]. Dodajemy:
DisableHWTnL 0
Window 1
EnableP5 0
Gra będzie teraz działała w trybie okienkowym, ale za to w dowolnej rozdzielczości (przykład: Resolution 1300x700).

Ostatecznie:

środa, 2 lipca 2014

PHP i zła godzina

Ponieważ instrukcje na php.net są lekko niepomocne, trzeba poszukać informacji gdzie indziej.
Czas na serwerze jest ustawiony dobrze, ale przez php wyświetlany źle (u mnie przesunięcie o 2h względem GMT.

Winnym tego jest wpis w php.ini, zatem:
sudo nano /etc/php5/apache2/php.ini
Odszukujemy:
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = GMT
I zmieniamy ostatnią linijkę na:
date.timezone = "Europe/Warsaw"
I restartujemy apache:
sudo service apache2 restart

poniedziałek, 30 czerwca 2014

MPD, alsa i dwie karty dźwiękowe

Aby ustawić dwie karty dźwiękowe, którymi można sterować wspólnie, należy w pliku /etc/mpd.conf zainteresować się sekcją output:

audio_output {
        type            "alsa"
        name            "ALC662"
        device          "hw:0,0"        # optional
#       format          "44100:16:2"    # optional
        mixer_device    "hw:0"  # optional
        mixer_control   "PCM"           # optional
#       mixer_index     "0"             # optional
}

audio_output {
        type            "alsa"
        name            "SB"
        device          "hw:1,0"        # optional
#       format          "44100:16:2"    # optional
        mixer_device    "hw:1"          # optional
        mixer_control   "Digital"       # optional
#       mixer_index     "1"             # optional
}
Powyższy przykład to konfiguracja dla wyjść dwóch kart dźwiękowych: wbudowanej snd-hda-intel (ALC662) oraz Sound Blaster na PCI.  Na uwagę zasługują mixer_control. Najwygodniej wybrać odpowiednią kontrolkę bawiąc się alsamixer.

Aby mieć pewność, że dana karta będzie miała numerek 0, 1 itd.:
options snd_ctxfi      index=1
options snd_hda_intel  index=0
w /etc/modprobe.d/alsa-base.conf.

poniedziałek, 23 czerwca 2014

Dodawanie czarnego paska do wyświetlanego ekranu

Po upadku laptopa (Asus eeePC 900) część ekranu przestała odpowiadać (kolorowe 3-4cm paska po prawej stronie ekranu. Laptop może być jeszcze (jakoś) użyteczny, ale mało wygodne jest przesuwanie ciągle okien. Rozwiązaniem problemu może być xrandr:
xrandr --fb 824x600 --output LVDS1 --mode 1024x600
Po takiej komendzie program wyświetla komunikat o jakichś błędach oraz informację, że wirtualny pulpit (824x600) jest za mały by zapełnić ekran (1024x600), ale wyświetla jak należy.

Rozwiązanie zainspirowane tym postem.

poniedziałek, 16 czerwca 2014

Konwertowanie dokumentów do pdf i pdf do jpg/png

Gdy potrzeba skonwertować dokument czy prezentację do pdf, wystarczy:
unoconv -f pdf presentation.odt
 Źródło.

Aby przerobić pdf na serię obrazów, najlepiej jest skorzystać z starego, dobrego convert
 convert -density 300 file.pdf file.png
Przy okazji przydatnym może być obracanie dokumentów pdf:
pdftk nonrotated.pdf cat 1-endW output rotated.pdf 
Źródło.

środa, 11 czerwca 2014

Wydajność i zużycie energii APU AMD (sterowniki OpenSource)

Walczę sobie (więc post będzie zmieniany) z efektywnością karty AMD na sterownikach OpenSource.

Godne zauważenia nim zaczniemy działać:

Wg. wiki Gentoo:
echo "low" > /sys/class/drm/card0/device/power_profile
i inne ustawienia nie mają praktycznego (korzystnego) wpływu na działanie APU (sic!). Lepiej korzystać z:
sudo su
echo "performance" > /sys/class/drm/card0/device/power_dpm_state
Gdzie performance może być zastąpione przez battery lub balanced. Wygodniej jest, oczywiście, użyć jakiegoś apletu. W wypadku KDE: Radeon Dynamic Power Management, który pozwala na sterowanie i jednym i drugim (choć użytkowników APU interesuje głównie Radeon DPM State.

Należy pamiętać o nadaniu odpowiednich praw, odpowiednim plikom! Do pliku /etc/rc.local dodajemy: 
chmod a+w /sys/class/drm/card0/device/power_dpm_force_performance_level
chmod a+w /sys/class/drm/card0/device/power_dpm_state


[miejsce na xorg'a]




Dotychczasowe efekty pracy nad tym wszystkim - wydajności.
wszystkie testy phoronix-test-suite run-test pts/gputest, test pierwszy, natywna rozdzielczość. Wiem, że jeden test to bardzo mało, ale zawsze coś, nie?

Póki co, wynik prezentuje się tak:
AMD 214 : OpenSource 213

Sterowniki do AMD wreszcie na poziomie... ale te OpenSource

Szczęśliwie, szukając czegoś tam, trafiłem na tę stronę: link.

Przeczytać na niej można o poważnej poprawie w wydajności otwartych sterowników do kart ATI/AMD.

Na początek porównanie wydajności:
[Obraz ze strony wspomnianej na początku]

Jak widać, w zależności od karty może być gorzej, trochę gorzej ale nawet i lepiej.

Potencjał jest, a już teraz można się zacząć poważnie zastanawiać nad przejściem na otwarte sterowniki. Co też zrobiłem. 
 
Jak to zrobić?

Na początek należy zadbać o to by jądro naszego systemu było stosunkowo młode, tj. minimum 3.13 (u mnie 3.14.4). W jego poszukiwaniu trafiamy tu. Wybieramy wersję, zapisujemy odpowiednie paczki i instalujemy sudo dpkg -i *.
Następnie aktualizacja paczek Xorg i sterowników. W naszych repo paczki są dość 'stare' trzeba zatem znaleźć takie, które są 'aktualniejsze'.
sudo add-apt-repository ppa:oibaf/graphics-drivers
sudo add-apt-repository ppa:ubuntu-x-swat/x-updates
Autor oryginalnego artykułu sugeruje instalację Xorg-edgers, ale to zostawmy dla tych, którzy są ryzykantami (ja musiałem obniżyć wersję, z powodu niskiej wydajności).

Następnie, wg. producenta sterowników:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install libg3dvl-mesa
sudo apt-get install mesa-vdpau-drivers

(zalecam przejrzenie synaptca w poszukiwaniu interesujących nas dodatków)

Reboot i trzymamy kciuki, żeby działało.

Wady:
Poza oczywistą (niekoniecznie!) niższą wydajnością (w moim wypadku porównywalną, ale na podstawie niewielkiej ilości testów) należy tu wspomnieć poważniejsze grzanie się grafiki (w wypadku laptopów sprawa jest dość namacalna) oraz większe zużycie energii.
Są to rzeczy raczej do przełknięcia.

W moim przypadku jest jednak coś więcej znacznie mi doskwierającego: po wybudzeniu komputera (suspend to ram), ekran (i tylko ekran!) się nie włącza - wciąż szukam rozwiązania. No, ale to i tak lepsze niż sytuacja (jak ze sterownikami od AMD), gdy komputer generalnie się nie wybudzał lub nie usypiał, gdzie pozostawał twardy reset.

niedziela, 8 czerwca 2014

Mulący Firefox

Od dłuższego czasu borykam się z mulącymi przeglądarkami.

Wyświetlanie, a przede wszystkim przewijanie w FF potrafi być przerażająco wolne (fb, allegro), okazuje się, że problemem (znowu) okazuje się AMD. Wg. tematu na supporcie mozilli, należy w takim przypadku wyłączyć akcelerację sprzętową w FF:

Preferencje> Zaawansowane > Ogólne > Korzystaj z akceleracji sprzętowej, jeśli jest dostępna

Okazuje się, że wszystko wraca do normy BEZ akceleracji sprzętowej AMD.

poniedziałek, 2 czerwca 2014

Profilowy .cache do RAM'u

Nie wiem czy mam źle skonfigurowany dysk SSD czy Firefox jest po prostu strasznym zamulaczem dysków, wiem na pewno że są takie momenty gdy zamulanie jest ciężkoznośne. Pomyślałem więc: rzućmy cache na ram (kiedyś jak miałem Asusa z WOLNYM dyskiem SSD, gdzieś była zapodana taka koncepcja).

Po chwili zastanowienia: rzućmy cały folder .cache na ram! Wiadomo [źródło], że folder cache FF znajduje się tam właśnie, więc można przenieść go lub go z całym cache.

Niezależnie od opcji robimy to tak [źródło] - w pliku /etc/fstab dopisujemy linijkę
tmpfs /home/someuser/.cache tmpfs defaults,size=512M 0 0
gdzie /home/someuser/.cache to folder, który chcemy przenieść na ram (raczej dowolny) a size=512 to pojemność wirtualnego dysku.

Mniej elegancko można to zrobić tak:
rm ~/.cache -r 
ln -s ~/.cache /dev/shm
Na koniec dodam, że można to zrobić też w samym FF:

W FF wpisujemy w pasku adresu about:config i ustawiamy:
browser.cache.disk.enable na "false" (dwuklik)
browser.cache.memory.enable na "true" (domyślne)
tworzymy wpis browser.cache.memory.capacity i ustawiamy wedle uznania lub na -1 - automatycznie.

czwartek, 29 maja 2014

Firefox korzystający z dolphina

Od jakiegoś czasu Firefox korzystał u mnie z 'dziwnej' przeglądarki plików, która okazała się być nautiliusem. Po jej usunięciu Firefox zaczął korzystać z baobabu - programem do liczenia co najwięcej zajmuje na dysku.

Aby powstrzymać go przed tym zachowaniem, jak podaje s8dragon - w pliku /usr/share/applications/mimeinfo.cache poprawić/utworzyć linijkę
“inode/directory”, taką jak ta:
inode/directory=kde4-dolphin.desktop;kde4-gwenview.desktop;kde4-kfmclient_dir.desktop;
Wygląda jednak na to, że edycja pliku ~/.local/share/applications/mimeapps.list jest równie skuteczna.

środa, 28 maja 2014

Arduino i "Error opening serial port '/dev/ttyUSBx'"

Gdy za dużo kombinuje się z Arduino IDE, w pewnym momencie może się on zbuntować krzycząc Error opening serial port '/dev/ttyUSBx'. Poza oczywistym błędem nowicjusza (nie nadanie praw odczytu i zapisu dla użytkownika do pliku /dev/ttyUSBx), przytrafia się inny problem. Otóż zmienianie prędkości komunikacji z portem seryjnym może spowodować błąd komunikacji Arduino IDE z samym Arduino. Rozwiązanie znalazł mellis:
Try editing your Arduino preferences file (~/.arduino/preferences.txt I think) and setting the serial.debug_rate to, say, 9600.  (serial.download_rate should be 19200).
 Po edycji tychże ustawień problem już się nie pojawił.

niedziela, 25 maja 2014

Teenagent (cdp.pl) i DosBox + BDGL

Będąc ostatnio w tzw. antykwariacie na dworcu Śródmieście w Warszawie znalazłem i pozwoliłem sobie kupić starą płytę z CD-Action. Skusił mnie do tego pewien napis 'Teenagent'. Jedna z pierwszych gier, które przeszedłem, cóż, sentyment. W każdym razie postanowiłem toto uruchomić na linuksie.

Istnieje taka paczka, która nazywa się PlayOnLinux - program, który, w skrócie pozwala na utworzenie nowej 'instalacji' Wine specjalnie przystosowanej do pojedynczego programu. POL ma wbudowaną obsługę Teenagent w wersji GOG (za darmo po rejestracji). Niestety, ani ta wersja, ani ta z CDA, ani ta z CD-Project (za darmo po rejestracji, wersja PL) u mnie nie ruszyła od tak.

Okazuje się jednak, że wszystkie te wersje to oryginalna gra + DosBox - program podobny do Wine, tylko odpowiednik dla DOS.

Jak zainstalować Teenagent? W skróce:

1. Instalujemy na Wine lub PlayOnLinux urzuchamiając Setup'a z cdp.pl
2. Pobieramy stąd paczkę DBGL, frontendu do DosBox'a. Rozpakowujemy i uruchamiamy.
3. W programie wybieramy 'Add Game Wizard' i postępujemy wedle instrukcji (gra Teenagent, wersja zainstalowana).
4. Teraz ten 'tricky' moment. Po uruchomieniu gry, program momentalnie się zamknie. Gdybyśmy mieli możliwość podejrzenia 'błędu' dowiedzielibyśmy się, że program wymaga aby zamontować pewien obraz płyty w systemie DosBox. W katalogu z grą, znajduje się katalog z DosBoxem dla Windowsa, a obok plik teenagnt.conf, a w nim:

[autoexec]
@ECHO OFF
mount c "C:\Program Files\cdp.pl\Teenagent\"
c:
imgmount b "/teenagnt.cue" -t iso -fs iso
teenagnt.exe
exit

i już prawie jesteśmy w domu. Jedyne co trzeba zrobić, to tę pogrubioną linijkę dodać do konfiguracji DBGL. W tym celu:
a. Wybieramy 'Edit Profile', w zakładce 'Mounting' w 'Mounting Overview' 'Add'.
b. 'Dive Letter' -> B
c. 'Mount Images' 'Browse' -> Odnajdujemy katalog z grą a w nim plik teenagnt.cue. Otwieramy go i poniżej wybieramy 'As' 'Iso'.
5. Zapisujemy, zamykamy i uruchamiamy wybierając 'Run Profile'.

Podobnie będzie prawdopodobnie z większością gier z GOG i CDP.

niedziela, 11 maja 2014

UUID partycji

liquidat podpowiada:

$ ls -l /dev/disk/by-uuid
lrwxrwxrwx 1 root root 10 11. Okt 18:02 53cdad3b-4b01-4a6c-a099-be1cdf1acf6d -> ../../sda2
Opisuje skróty, które wykorzystuje system i przedstawia partycje.

niedziela, 16 marca 2014

Serwer pocztowy. Postfix + dovecot

To nie będzie tutek, tylko kilka małych rad. Tutek (po angielsku), znajduje się tutaj.

Aby zmienić host, należy wyedytować pliki /etc/hosts i /etc/hostname*:
cat /etc/hosts127.0.0.1       domena.pl serwer localhost
cat /etc/hostname domena.pl
*tego pewny nie jestem

Jeśli service dovecot restart wraca:
stop: Unknown instance: dovecot start/running, process 4914
Można uruchomić dovecot z komendy dovecot:
doveconf: Warning: NOTE: You can get a new clean config file with: doveconf -n > dovecot-new.conf
doveconf: Warning: Obsolete setting in /etc/dovecot/dovecot.conf:21: 'imaps' protocol is no longer necessary, remove it
doveconf: Warning: Obsolete setting in /etc/dovecot/dovecot.conf:21: 'pop3s' protocol is no longer necessary, remove it
doveconf: Fatal: Error in configuration file /etc/dovecot/conf.d/10-ssl.conf line 12: ssl_cert: Can't open file /etc/ssl/certs/dovecot.pem: No such file or directory
Certyfikaty SSL są oczywiście płatne, ale jest darmowa alternatywa sprowadzająca się do dwóch komend [źródło]:
openssl req -new -x509 -days 3650 -nodes -out /etc/ssl/certs/dovecot.pem -keyout /etc/ssl/private/dovecot.pem 
chmod o= /etc/ssl/private/dovecot.pem
By sprawdzić, czy coś już działa:
$ cat /var/log/mail.log | tail
Mar 16 23:27:27 xn--zabaaganionemiejsce-8fd postfix/master[6310]: warning: process /usr/lib/postfix/smtpd pid 6315 exit status 1
Mar 16 23:27:27 xn--zabaaganionemiejsce-8fd postfix/master[6310]: warning: /usr/lib/postfix/smtpd: bad command startup -- throttling
Mar 16 23:29:08 xn--zabaaganionemiejsce-8fd postfix/anvil[6318]: statistics: max connection rate 1/60s for (smtp:209.85.220.181) at Mar 16 23:27:26
Mar 16 23:29:08 xn--zabaaganionemiejsce-8fd postfix/anvil[6318]: statistics: max connection count 1 for (smtp:209.85.220.181) at Mar 16 23:27:26
Mar 16 23:29:08 xn--zabaaganionemiejsce-8fd postfix/anvil[6318]: statistics: max cache size 1 at Mar 16 23:27:26
Mar 16 23:29:37 xn--zabaaganionemiejsce-8fd postfix/submission/smtpd[6906]: connect from mail-ve0-f175.google.com[209.85.128.175]
Mar 16 23:29:37 xn--zabaaganionemiejsce-8fd postfix/submission/smtpd[6906]: warning: SASL: Connect to private/auth failed: No such file or directory
Mar 16 23:29:37 xn--zabaaganionemiejsce-8fd postfix/submission/smtpd[6906]: fatal: no SASL authentication mechanisms
Mar 16 23:29:38 xn--zabaaganionemiejsce-8fd postfix/master[6310]: warning: process /usr/lib/postfix/smtpd pid 6906 exit status 1
Mar 16 23:29:38 xn--zabaaganionemiejsce-8fd postfix/master[6310]: warning: /usr/lib/postfix/smtpd: bad command startup -- throttling
a rozwiązaniem problemu z SASL może być to i to lub usunięcie wpisów filtrujących maile, m.in.:
#-o smtpd_client_restrictions=permit_sasl_authenticated,reject
w /etc/postfix/master.cf [źródło].

Kompletnie nie rozsądnym jest blokowanie imap - w ów czas squirrelmail nie może połączyć się z dovecotem: "błąd połączenia z portem 111". Więc w pliku /etc/dovecot/conf.d/10-master.conf NIE zmieniamy:
service imap-login {  inet_listener imap {    #port = 0  }
...portu na 0. Tutaj dobry sposób, by sprawdzić czy wszystko działa.

Edycja i konwersja wideo. GUI!

Najczęściej wycinam filmy z nagrań kamerą i konwertuję do mp4/mkv. Najlepszą, moim zdaniem, kombinacją do tego typu zadań jest avidemux (cięcie) + handbrake (konwersja).

Odmontowywanie NFS przed uśpieniem

Posiadam w sieci lokalnej serwer, który udostępnia pliki po NFS. Po uśpieniu laptopa klient NFS ma problemy z połączeniem się ponownie z serwerem (czy to ze względu na podłączenie do innej sieci, czy też ze względu na to, że laptop został uśpiony na kilka godzin), co powoduje przywieszenie dolphina, a z doświadczenia wiem, też innych menadżerów plików.

Aby temu zapobiec, można demontować NFS przed każdym uśpieniem laptopa. W tym celu edytujemy dowolny plik w katalogu /etc/pm/sleep.d, np. /etc/pm/sleep.d/10_nfs-umount, a w nim [źródło] [źródło]:

#!/bin/sh

case $1 in
  hibernate| suspend)
          sudo /bin/umount -t nfs -a
        ;;
 *) exit
        ;;
esac

Gdzie /home/san/Publiczny, to miejsce gdzie montuję NFS.

Pidgin KDE i powiadomienia

sudo apt-get install pidgin-libnotify
W pidginie Wtyczki (ctrl+U) Powiadomienia libnotify.

wtorek, 11 marca 2014

Instalacja drukarki Canon iP1900

Najwyraźniej sterowniki do iP1900 (iP1800 Series) to te, które są łatwo dostępne, ale nie ma ich w Ubuntu.

Aby je zainstalować, należy wykonać poniższe komendy [źródło]:
sudo add-apt-repository ppa:michael-gruz/canon-trunk 
sudo apt-get update  
sudo apt-get install cnijfilter-ip1900series-32 -y
i, w przypadku KDE, w ustawieniach drukarki, ręcznie wybrać sterownik /usr/share/ppd/canonip1900.ppd [źródło].

Oczywiście, bardzo prawdopodobne, że w ten sposób zadziała również wiele innych drukarek.

niedziela, 2 marca 2014

Tworzenie skrótów na pulpicie do aplikacji wine

KDE nie lubi (z jakiejś przyczyny) pokazywać ikony pliku exe ani w dolphinie anie na pulpicie. Z jakiejś przyczyny jednak, gdy zainstaluje się przez wine program, skrót z ikoną na pulpicie się pojawia.

Zbyt często usuwam/zmieniam konfigurację wine albo i cały system, by te wszystkie skróty się tam utrzymały.

Z pomocą przychodzi mały, dobrze zorganizowany i skuteczny program w pythonie: wine-launcher-creator. Instaluje się samo (paczki deb) i odpala z terminala wlcreator.py.

sobota, 15 lutego 2014

NP535U3C kernel [v20140215]

Ze względu na dysk SSD: 

│ Prompt: Default I/O scheduler                                                         │ 
  │   Location:                                                                           │ 
  │     -> Enable the block layer (BLOCK [=y])                                            │ 
  │       -> IO Schedulers
--> No-op

 Prompt: Default ASPM policy                                                           │ 
  │   Location:                                                                           │ 
  │     -> Bus options (PCI etc.)                                                         │ 
  │       -> PCI support (PCI [=y])                                                       │ 
  │         -> PCI Express support (PCIEPORTBUS [=y])                                     │ 
  │           -> PCI Express ASPM control (PCIEASPM [=y])
--> Powersafe
wyłączone:

  │ Prompt: SFI (Simple Firmware Interface) Support                                       │
  │   Location:                                                                           │
  │     -> Power management and ACPI options

różne hotplugi (pcie, cpu, memor, pci

PCMCIA:
  │ Prompt: PCCard (PCMCIA/CardBus) support                                               │ 
  │   Location:                                                                           │ 
  │     -> Bus options (PCI etc.)

RapidIO:
  │ Prompt: RapidIO support                                                               │ 
  │   Location:                                                                           │ 
  │     -> Bus options (PCI etc.)

IRDA:
  │ Prompt: IrDA (infrared) subsystem support                                             │ 
  │   Location:                                                                           │ 
  │     -> Networking support (NET [=y])

RxRPC:
  │ Prompt: RxRPC session sockets                                                         │ 
  │   Location:                                                                           │ 
  │     -> Networking support (NET [=y])

CAIF:
  │ Prompt: CAIF support                                                                  │ 
  │   Location:                                                                           │ 
  │     -> Networking support (NET [=y])  

NFC:
  │ Prompt: NFC subsystem support                                                         │ 
  │   Location:                                                                           │ 
  │     -> Networking support (NET [=y])

HAM:
  │ Prompt: Amateur Radio support                                                         │ 
  │   Location:                                                                           │ 
  │     -> Networking support (NET [=y])

MTD:
  │ Prompt: Memory Technology Device (MTD) support                                        │ 
  │   Location:                                                                           │ 
  │     -> Device Drivers

Większość sterowników stąd:
│ Prompt: Block devices                                                                 │ 
  │   Location:                                                                           │ 
  │     -> Device Drivers  

ATA SFF:
  │ Prompt: ATA SFF support (for legacy IDE and PATA)                                     │ 
  │   Location:                                                                           │ 
  │     -> Device Drivers                                                                 │ 
  │       -> Serial ATA and Parallel ATA drivers (ATA [=y])

Mac:
  │ Prompt: Macintosh device drivers                                                      │ 
  │   Location:                                                                           │ 
  │     -> Device Drivers 

Watchdog:
  │ Prompt: Watchdog Timer Support                                                        │ 
  │   Location:                                                                           │ 
  │     -> Device Drivers

Broadcom:
  │ Prompt: BCMA support                                                                  │ 
  │   Location:                                                                           │ 
  │     -> Device Drivers                                                                 │ 
  │       -> Broadcom specific AMBA

  │ Prompt: Media PCI Adapters                                                            │ 
  │   Location:                                                                           │ 
  │     -> Device Drivers                                                                 │ 
  │       -> Multimedia support (MEDIA_SUPPORT [=m])

  │ Prompt: Radio Adapters                                                                │ 
  │   Location:                                                                           │ 
  │     -> Device Drivers                                                                 │ 
  │       -> Multimedia support (MEDIA_SUPPORT [=m])

Przełączanie grafiki:
  │ Prompt: Laptop Hybrid Graphics - GPU switching support                                │ 
  │   Location:                                                                           │ 
  │     -> Device Drivers                                                                 │ 
  │       -> Graphics support

nVidia:
  │ Prompt: Nouveau (nVidia) cards                                                        │ 
  │   Location:                                                                           │ 
  │     -> Device Drivers                                                                 │ 
  │       -> Graphics support
i kilka innych sterowników od k. graf, agp

  │ Prompt: Accessibility support                                                         │ 
  │   Location:                                                                           │ 
  │     -> Device Drivers

InfiniBand:
  │ Prompt: InfiniBand support                                                            │ 
  │   Location:                                                                           │ 
  │     -> Device Drivers

PWM:
  │ Prompt: Pulse-Width Modulation (PWM) Support                                          │ 
  │   Location:                                                                           │ 
  │     -> Device Drivers

W dziale HM, zostaje tylko:
  │ Prompt: AMD Family 10h+ temperature sensor                                            │ 
  │   Location:                                                                           │ 
  │     -> Device Drivers                                                                 │ 
  │       -> Hardware Monitoring support (HWMON [=y])

Większość ALSA - poza hda_intel i realtek
Większość z Serial ATA and Parallel ATA drivers.
Wszystko w Multifunction device drivers.
Oraz większość z SCSI device support.

włączone:
 Prompt: Enable workqueue power-efficient mode by default                              │ 
  │   Location:                                                                           │ 
  │     -> Power management and ACPI options

  │ Prompt: Default time-out for HD-audio power-save mode                                 │ 
  │   Location:                                                                           │ 
  │     -> Device Drivers                                                                 │ 
  │       -> Sound card support (SOUND [=y])                                              │ 
  │         -> Advanced Linux Sound Architecture (SND [=y])                               │ 
  │           -> PCI sound devices (SND_PCI [=y])                                         │ 
  │             -> Intel HD Audio (SND_HDA_INTEL [=y])
i ustawione na 3s.