Spis Treści:

1. Wstęp

Wpis miał być instrukcją krok po kroku. Wyszło tak, że jest to rodzaj drobnej wskazówki dla początkujących Użytkowników i forma przypomnienia dla mnie.


Wszystkie polecenia należy wykonywać z root'a. Chyba, że napisano inaczej.
W skład wpisu wejdą:
- przykładowe, proste 'wskazówki'
- odnośniki do wpisów innych Użytkowników (tutaj i na innych portalach), którzy opisali temat szerzej
Co jakiś czas będą pojawiały się drobne aktualizacje i poprawki.
Pytania i sugestie tutaj (forum), lub przez XMPP/Jabber - pavlo950@linux.pl

2. Sprzęt

Toshiba L855-15j:

Intel Core i3;
Radeon HD 7670M;
6GB RAM;
WiFi: Atheros

lspci:

00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09)
00:14.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB xHCI Host Controller (rev 04)
00:16.0 Communication controller: Intel Corporation 7 Series/C210 Series Chipset Family MEI Controller #1 (rev 04)
00:1a.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (rev 04)
00:1b.0 Audio device: Intel Corporation 7 Series/C210 Series Chipset Family High Definition Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 1 (rev c4)
00:1c.1 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 2 (rev c4)
00:1d.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation HM76 Express Chipset LPC Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation 7 Series Chipset Family 6-port SATA Controller [AHCI mode] (rev 04)
00:1f.3 SMBus: Intel Corporation 7 Series/C210 Series Chipset Family SMBus Controller (rev 04)
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Thames [Radeon HD 7500M/7600M Series]
01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Turks/Whistler HDMI Audio [Radeon HD 6000 Series]
07:00.0 Ethernet controller: Qualcomm Atheros AR8161 Gigabit Ethernet (rev 10)
08:00.0 Network controller: Qualcomm Atheros AR9485 Wireless Network Adapter (rev 01)

lsusb:

Bus 004 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 005: ID 10f1:1a43 Importek 
Bus 003 Device 006: ID 0930:0219 Toshiba Corp. 
Bus 003 Device 003: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 003 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 09da:000a A4 Tech Co., Ltd Optical Mouse Opto 510D
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


Touchpad, UEFI (a więc i Secure Boot) są wyłączone.
Pierwsze ze względów praktycznych.
Drugie, bo kiedyś nie wiedziałem, czy Debian poprawnie obsłuży mi tę technologię. I tak zostało aż do dziś.

3. Instalacja systemu:

Tutaj [16] jest instrukcja instalacji (krok po kroku) w oparciu o nośnik netinstall.

4. Repozytoria i zarządzanie oprogramowaniem:

Tutaj [17] jest trochę informacji na ten temat. W skrócie:

Repozytorium to zbiór oprogramowania. Udostępniony jest zazwyczaj jako serwer (w naszym, tutejszym rozumowaniu) w sieci (publicznej). Może być także udostępniony lokalnie, to znaczy w lokalnej sieci jakiejś firmy, domowej, czy nawet na jednym komputerze (np na drugiej partycji jako kopia zapasowa paczek).

W Windowsie wszystkie programy musimy ściągać oddzielnie i je kolejno instalować. Jest to czasochłonne i problematyczne, dodatkowo aktualizowanie każdego programu pogarsza sytuację. Wyjątkiem jest tutaj Windows 8, który jakiś tam sklepik z programami posiada.

W Debianie mamy APT. Dociąga on paczki z repozytorium, rozwiązuje zależności i kolejkuje poszczególne zadania do dpkg. Do zarządzania oprogramowaniem możemy wykorzystać apt-get, lub aptitude [18]. Osobiście wolę ten drugi. Z dwóch powodów:
- ma przejrzysty, konsolowy interfejs
- potrafi ułatwić zadanie proponując odpowiednie rozwiązanie w chwili, gdy pojawi się problem

Podobno mieszanie aptitude z apt-get stwarza jakieś problemy. Nie jest tak. Jak jeden z Użytkowników mi zasugerował, jedno z drugim w niektórych sytuacjach potrafią się uzupełniać.
Aptitude powinien być domyślnie zainstalowany.

5. Drobna konfiguracja APT'a, instalacji konkretnego softu i krótki opis:

Mój /etc/apt/sources.list z użyciem repozytoriów gałęzi niestabilnej (która tak na prawdę jest bardziej stabilna, aniżeli stabilne wydania Ubuntu):

#--sid   
deb http://ftp.pl.debian.org/debian unstable main contrib non-free
#--aptosid
deb http://aptosid.office-vienna.at/aptosid/debian/ sid main fix.main
#--sid-multimedia
deb http://www.deb-multimedia.org/ unstable main non-free
#--experimental
deb http://ftp.pl.debian.org/debian/ experimental main contrib non-free
#--google-chrome
deb http://dl.google.com/linux/chrome/deb/ stable main
#--opera
deb http://deb.opera.com/opera/ stable non-free
#--kilka-dodatkowych-paczek-http://notesalexp.net/
deb http://notesalexp.net/debian/wheezy/ wheezy main

deb to parametr, dzięki któremu dociągamy gotowe paczki. Dzięki deb-src dociągnąć możemy pliki źródłowe i sami sobie skompilować daną paczkę. Wówczas należałoby zdublować daną linijkę i deb zamienić na deb-src. /etc/apt/apt.conf:

APT::Get::AllowUnauthenticated "true";
APT::Install-Recommends "false";    

Wyżej ustawione jest, by:
- system nie wyrzucał komunikatu (przy podaniu aptitude install ) o tym, że coś jest z nieoficjalnego źródła (można rozwiązać to za pomocą kluczy gpg)
- pakiety rekomendowane nie instalowały się automatycznie.
Pakiety rekomendowane to takie, które rozszerzają funkcjonalność jakiegoś programu, ale nie są konieczne do jego prawidłowego działania (w przeciwieństwie do tzw zależności). Zależności to lista paczek, które są wymagane, by dany program po prostu działał. Jeśli powyższe ustawiliśmy, wówczas:

aptitude update

Ja instalowałem system za pomocą programu debootstrap 1, 2 [19], więc wrzucam sobie trochę dodatkowych pierdołów:

aptitude install linux-image-amd64 linux-headers-amd64 firmware-linux intel-microcode firmware-atheros xserver-xorg-video-ati uvcdynctrl usbutils pciutils cpufrequtils grub2 acpi acpid acpi-support acpitool os-prober lm-sensors hdparm sudo

Po kolei:
- linux-image-amd64 - kernel
- linux-headers-amd64 - nagłówki kernela
- firmware-linux - metapakiet dociągający wolnościowe (-free) i niewolnościowe (-nonfree) pliki firmware (sterowniki)
- intel-microcode - tak na prawdę nie wiem do czego to jest, ale system się płakał, że tego nie ma zainstalowanego
- firmware-atheros - sterownik od karty sieciowej (WiFi, bo kablowa działa tak po prostu) i bluetooth
- xserver-xorg-video-ati - metapakiet dociągający odpowiedni sterownik grafiki, jeśli nawet X'y nie będą potrzebne, to i tak się przyda ze względu na temperatury i baterię
- uvcdynctrl - jeden pierdół zwany kamerkowo konsolowym narzędziem (za man'em)
- usbutils - lsusb, czyli informacji o urządzeniach podłączonych przez USB
- pciutils - lspci, pcimodules, setpci, update-pciids - urządzenia podłączone pod magistralę PCI
- cpufrequtils - tzw skalowanie procesora
- grub2 - bootloader, program, który załaduje nam system podczas startu komputera
- acpi (i spółka) - kilka programów dotyczących urządzeń ACPI (znaczy się: sprawdzi nam stan akumulatora, wykona jakąś akcję po zamknięciu pokrywy i poda kilka przydatnych informacji)
- os-prober - jeśli mamy inny system (na przykład Windows'a), to podczas aktualizacji grub'a wykryje on nam ten inny system
- lm-sensors - sprawdza nam temperatury
- hdparm - ustawia / zmienia parametry dysku twardego
- sudo - umożliwia odpalenie czegokolwiek jako inny użytkownik

Możemy zostawić sobie język angielski, lub ustawić język polski. Dla opcji drugiej instalujemy task-polish z rekomendowanymi i locales:

aptitude install --with-recommends task-polish locales


Po pierwsze, kilka paczek to metapakiety. Metapakiety, poza dostarczaniem innych pakietów, nic nie robią.
Po drugie, sterownik radeon wymaga dodatkowej opcji podczas ładowania systemu ze względu na oszczędność energii.
Po trzecie, konfigurację cpufrequtils względnie możemy pominąć. Trzeba tylko wywalić sterownik intel_pstate i załadować acpi-cpufeq. O tym za chwilę.

6. Instalacja i drobna konfiguracja grub'a:

Mały FAQ [20]. Wykonujemy:

nano /etc/default/grub

Zamieniamy:

GRUB_CMDLINE_LINUX_DEFAULT=""   

Na:

GRUB_CMDLINE_LINUX_DEFAULT="quiet acpi_osi=Linux radeon.dpm=1 intel_pstate=disable"

- radeon.dpm=1 - włącza jakiś mechanizm odpowiedzialny za zarządzanie energią w naszym Radeonie
- intel_pstate=disable - wywala nam sterownik intel_pstate i ładuje acpi-cpufreq (wykorzystywany przez cpufrequtils, patrz punkt następny) I zapisujemy (lewy ctrl + o). Potem:

update-grub2

System powinien zaalarmować nas o aktualizacji.

7. Skalowanie procesora:

Jest to obniżanie taktowania procesora, gdy komputer nie jest obciążony. Sprawdzamy, co mamy w ustawieniach cpufrequtils:

nano /etc/init.d/cpufrequtils

Szukamy linijki (bez kratki na początku linii, tzn po lewej stronie):

GOVERNON="xyz"

Jeśli xyz to ondemand, to zostawiamy to w spokoju. Jeśli coś innego, to na to miejsce wpisujemy ondemand i zapisujemy plik.

/etc/init.d/cpufrequtils restart

Ondemand to taki "zarządca", który:
- przy małym obciążeniu ustawi nam najmniejsze taktowanie procesora (oszczędność prądu)
- przy większym obciążeniu ustawi nam większe taktowanie procesora (szybsze wykonanie zadania)

W punkcie 6 wspomniałem o intel_pstate oraz acpi-cpufreq.

intel_pstate steruje mocą procesora i ma tylko dwóch zarządców:
- powersave (wolniej, ale oszczędniej)
- performance (szybciej, bez względu na oszczędność energii)

acpi-cpufreq wykorzystuje "starą" metodę ACPI [21] i odnosi się nie do mocy procesora, a jego taktowania; ma (u mnie) pięciu zarządców:
- powersave - cały czas minimalne taktowanie
- performance - cały czas maksymalne taktowanie
- ondemand - dynamiczne przełączanie się między częstotliwościami
- conservative - podobne zachowanie do ondemand
- userspace - program uruchomiony z root'a / usługa systemowa działa z odpowiednio ustanowionymi częstotliwości

8. Parkowanie głowicy (tylko HDD):

Zerkamy TU (1) i TU (2) [22].

W skrócie. Dyski mechaniczne (HDD), jakich obecnie używamy, mają talerze (płaskie, magnetyczne krążki) oraz elektromagnetyczne głowice. Talerze obracają się (od 5400 obrotów na minutę w laptopach do kilkunastu tysięcy w dyskach serwerowych), a głowice odpowiednio magnesując talerze zapisują informacje.

Producenci wymyślili mechanizm, który odpowiada za zatrzymywanie głowicy w tzw obszarze bezpiecznym.
Z punktu widzenia niektórych osób podyktowane jest to dwoma czynnikami:
- teoretyczne bezpieczeństwo danych
- oszczędność energii

Według mnie sprawa wygląda to tak:
- szybsze zużycie się (delikatnego) mechanizmu => szybsza wymiana dysku twardego => większy zarobek
Dlatego wykorzystałem metodę z linku pierwszego (hdparm). Na drodze napotkałem jeden problem, a mianowicie bezpośrednia konfiguracja hdparma (/etc/hdparm.conf) po prostu nie działała. Dlatego też:
Do /etc/inittab dopisałem:

pd::sysinit:/sbin/hdparm -B 254 /dev/sda

Co też całkowicie zatrzymało mi parkowanie głowicy. Licząc od maja, mój dysk w tym komputerze ma około 12400 parkowań (trochę potrwało, zanim zrozumiałem, o co biega). Czyli powinien (mam nadzieję) jeszcze trochę pochodzić.
NIE NA WSZYSTKICH DYSKACH TO ZADZIAŁA. Przykładowo niektóre WD i Seagate'y są oporne. Ja mam dysk produkcji Toshiby, który z niewyjaśnionych przyczyn czasami ignoruje hdparm'a.
Z Waszej strony może pojawić się pytanie dotyczące temperatury. O tym jest w linku 2 (krok po kroku).

9. sudo

Krótki FAQ [23]. Jest to zamiennik dla su -c i su-to-root. Ma trochę szerszy zakres funkcjonalności. Główny plik konfiguracyjny to /etc/sudoers. Otwieramy go za pomocą nano:

nano /etc/sudoers

Szukamy takiej linijki:

Defaults        env_reset

Dopisujemy pod nią:

Defaults    mail_badpass
Defaults    secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Defaults    rootpw
Defaults    timestamp_timeout=0

Żeby korzystać z sudo, trzeba dodać swojego użytkownika do grupy sudo:

gpasswd -a <user> sudo 

10. Sterowniki grafiki i X'y (Radeon HD7670M)

Sterowników graficznych są dwa rodzaje:
- własnościowe (te, które dostarcza producent)
- otwarte (wolnościowe czyli te, które dostarcza społeczność)

Instalacja sterowników własnościowych opisana jest TUTAJ [24].

Sterowniki otwarte zainstalowaliśmy w punkcie 5. Operacja sprowadza się do:

    aptitude install xserver-xorg-video-ati

Jest jeden szkopuł. Trzeba uaktywnić mechanizm odpowiedzialny za zarządzanie energią. Wystarczy załadować odpowiednią opcję, które podana jest w akapicie numer sześć.

W przypadku sterowników otwartych należałoby zainstalować też:

    aptitude install x11-xserver-utils xserver-common xserver-xorg xserver-xorg-core xserver-xorg-input-evdev xserver-xorg-input-kbd xserver-xorg-input-mouse xserver-xorg-input-synaptics xserver-xorg-video-ati xserver-xorg-video-fbdev xserver-xorg-video-modesetting xserver-xorg-video-vesa libxinerama1 arandr


- libxinerama1 - rozszerzenie X'ów umożliwiające rozszerzenie pulpitu, dublowanie ekranu i pochodne.
- arandr - graficzna nakładka na xrandr

Na sterowniku otwartym temperatury osiągają od 40 do 50 stopni Celsjusza.

11. Usypianie i hibernacja:

Zamiast standardowego wyłączenia systemu, możemy go uśpić (suspend to memory), lub zahibernować (suspend to disk).
Możemy wykorzystać do tego pm-utils [25] oraz UPower [26]. To drugie wykorzystywane jest np przez LightDM [27].
Problemem jednak był fakt, że komputer po wyjściu z uśpienia / hibernacji ponownie wchodził w ten stan. Dopiero kolejne wywołanie go sprawiało, że zaczął normalnie działać.
Tutaj [28] Użytkownik ma podobną sytuację, która u niego generalnie polega na zawieszaniu się systemu. Specyfikacja sprzętu jest bardzo zbliżona.

W temacie [29] o bateriach drugi z Użytkowników zarzucił wynikiem: acpitool -B Zainteresował mnie ten program. W manualu napisane jest:

-s, --suspend to memory
Put the machine into sleep state S3, if possible. Requires write access to /proc/acpi/sleep (kernel 2.4.x) or /sys/power/state (kernel 2.6.x)

-S, --suspend to disk ?
Put the machine into sleep state S4, if possible. Requires write access to /proc/acpi/sleep (kernel 2.4.x) or /sys/power/state (kernel 2.6.x)

Więc po wydaniu:

    acpitool -s

lub:

    acpitool -S

System wstaje normalnie i nie zasypia z powrotem. Testuję to od kilku dni i na obecną chwilę nie sprawia problemu ponownego zasypiania, czy też zawieszania się.

12. Najprostsza konfiguracja sieci (eth0 - ethernet - kabel)

Jeśli instalowaliście system korzystając z poradnika w punkcie 3, to ręczną edycję pliku /etc/network/interfaces możecie pominąć.
W przeciwnym razie, do pliku tego należy dodać (lub jeśli on nie istnieje - utworzyć go z zawartością):

# Siec po kablu
allow-hotplug eth0
iface eth0 inet dhcp


Po dodaniu (lub utworzeniu) wykonać:

/etc/init.d/networking stop; ifdown eth0; ifup eth0


Jeśli:

root@notebook:~# ifup eth0 
Internet Systems Consortium DHCP Client 4.2.4
Copyright 2004-2012 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0/00:8c:fa:26:3f:26
Sending on   LPF/eth0/00:8c:fa:26:3f:26
Sending on   Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 4
DHCPREQUEST on eth0 to 255.255.255.255 port 67
DHCPOFFER from 192.168.0.1
DHCPACK from 192.168.0.1
bound to 192.168.0.4 -- renewal in 1410 seconds.


To sieć mamy skonfigurowaną.
Na co dzień korzystam z WICD [30]a. Nie stwarza mi żadnych problemów.

13. TOR

TOR - The Onion Router - w wolnym tłumaczeniu: ruter - cebula. Najprościej mówiąc, to taki internet w internecie, sieć w sieci. Cały ruch ma być anonimowy i bezpieczny dla Użytkownika. Użytkownik teoretycznie ma nie być wykryty. Najprostszy przykład konfiguracji znajduje się TUTAJ [31].

14. Kompilacja kernela

Wprawdzie tego akapitu miało nie być....
Po co kompilować kernel? By mieć nowszą wersję, która zazwyczaj wprowadza kilka poprawek względem poprzedniej.
Nie oznacza to, że poprzednia wersja jest zła. Oznacza to, że następna wersja jest jeszcze lepsza.
Opis jest TU i TU [32].

15. Wyłączenie systemu za pomocą dbus-send

Sposób na wyłączenie systemu za pomocą dbus-send [33]



Przypisy:

  1. #1
  2. #2
  3. #3
  4. #4
  5. #5
  6. #6
  7. #7
  8. #8
  9. #9
  10. #10
  11. #11
  12. #12
  13. #13
  14. #14
  15. #15
  16. http://www.dobreprogramy.pl/tomeeek64/Jak-zaczac-z-Linuksem-czyli-instalacja-Debiana,45809.html
  17. http://www.dug.net.pl/sources.list
  18. http://dug.net.pl/tekst/85/
  19. http://dug.net.pl/tekst/193
  20. http://www.debian.pl/threads/628-GRUB-instalacja-konfiguracja-naprawa-it
  21. http://pl.wikipedia.org/wiki/ACPI
  22. http://devinf.pl/?p=806
  23. http://dug.net.pl/tekst/63
  24. http://dug.net.pl/tekst/256/
  25. http://packages.debian.org/search?keywords=pm-utils&searchon=names&suite=all§ion=all
  26. http://packages.debian.org/search?suite=a ll§ion=all&arch=any&searchon=names&keywords=upower
  27. http://packages.debian.org/search?suite=all§ion=all&arch=any&searchon=names&ke ywords=lightdm
  28. http://forum.dug.net.pl/viewtopic.php?id=23615&p=1
  29. http://forum.dug.net.pl/viewtopic.php?id=24712
  30. http://packages.debian.org/sid/wicd
  31. http://dug.net.pl/tekst/187
  32. http://dug.net.pl/tekst/67
  33. http://dug.net.pl/tekst/283