Drażniący dzwięk podczas pracy na baterii w Ubuntu

intel-core2-duoLinux Ubuntu jest na tą chwilę chyba najlepszą Linuxową dystrybucją na desktopa. Jest ona jednak nadal świeża i zdarza się, że czasami ma pewne problemy z nowszym sprzętem.

Jednym z takich problemów z którym się zetknąłem jest drażniący pisk czyli dźwięk o wysokiej częstotliwości (ang. high-pitch noise) podczas pracy notebooka na zasilaniu bateryjnym. Przyczyną tego dzwięku jest wyższy tryb ACPI odpowiedzialny z zarządzaniem zasilaniem i temperaturą. Więcej szczegółów technicznych można znaleźć na stronach Intela opisujących C-State Architecture.

Mój notebook ma procesor Intel Centrino (Core2) Duo T5600 i niestety ten problem go dotyczy.

Stare rozwiązanie stosowane w Ubuntu 8.04

W jądrze systemu ustawiona jest możliwość zmiany tego parametru podczas pracy systemu (parametr CONFIG_ACPI_PROCESSOR=y).

Aby dźwięk ustał należy uruchomić komendę:

echo 2 >/sys/module/processor/parameters/max_cstate

Można pokusić się o dodanie takiego skryptu do /etc/acpi.d który ten problem rozwiąże, ale lepiej zastosować następne rozwiązanie.

Szczegółowe informacje można znaleźć tutaj.

Nowe rozwiązanie dla Ubuntu 8.04, 8.10 i 9.04 oraz prawdopodobnie pozostałych

W konfiguracji grub’a, do parametrów kernela należy dodać processor.max_cstate=2, przykładowy wpis:

title           Ubuntu 9.04, kernel 2.6.28-15-generic
root            (hd0,1)
kernel          /vmlinuz-2.6.28-15-generic root=/dev/mapper/sys-root ro quiet splash processor.max_cstate=2
initrd          /initrd.img-2.6.28-15-generic
quiet

Rozwiązanie to ma tą wadę – trzeba o nim pamiętać i uzupełniać w konfiguracji gruba nowe kernele o ten parametr. Jeśli to rozwiązanie jest dla Ciebie przydatne to zachęcam do oznaczenia go sobie w Google Readerze jako ulubione, bo kto wie, być może będzie potrzeba aby do niego wrócić :)

Instalacja Mercurial z GUI TortoiseHG pod Ubuntu 9.04

mercurial-3Mercurial jest jednym z najpopularniejszych ostatnio systemów kontroli wersji. Został on napisany w języku Python i coraz więcej projektów jest do niego migrowanych. Google Code umożliwia wybór jednego z dwóch systemów kontroli wersji – jednym z nich jest SVN, drugim właśnie Mercurial.

Różnice między scentralizowanym a rozproszonym systemem kontroli wersji

Zasada działania Mercuriala jest zbliżona do Git‘a – oba są tzw. rozproszonymi systemami kontroli wersji. SVN z drugiej strony jest systemem zcentralizowanym. Praca na systemie rozproszonym jest o tyle wygodna, że każda lokalna kopia repozytorium może być traktowana jako pełnoprawna i całkowicie niezależna. Rozwijając kod który jest obsługiwany w takim systemie kontroli wersji, commitowanie, czyli zatwierdzanie mniejszych porcji zmian jest znacznie wygodniejsze i nie wymaga zaprzątania głowy głównego repozytorium… którego tak naprawdę wcale nie musi być.

Jak to robi Linus Torvalds?

Większe projekty, takie jak jądro Linuxa coraz częściej przechodzą na rozproszone systemy kontroli wersji. Linus Torvalds bardzo zachęca wszystkich do migrowania do Gita z SVN’a. Git został napisany właśnie z myślą o developerach jądra systemu Linux. Głównymi zaletami według niego są dwie kwestie – pierwsza: znacznie wygodniejsze merge’owanie (łączenie zmian wprowadzonych przez różnych developerów) oraz druga – rozproszone repozytoria pozwalają na hierarchiczne scalanie kodu (z punktu widzenia pracy grupowej). Dzięki tej drugiej, Linus może powierzyć np. opiekę nad modułami jądra dotyczącymi sieci komuś, kto zna się na tym konkretnym temacie lepiej, potrafi weryfikować zmiany i poprawki. Zebrane do repozytorium przez opiekuna drzewa sieci poprawki, Linus może włączyć do jego repozytorium, które traktowane jest jako główne mając pewność, że wszystkie zmiany zostały odpowiednio zweryfikowane.

Kontrola wersji z linii komend

Mercuriala można zainstalować ze standardowego pakietu w Ubuntu. Na pakiet składa się jedna aplikacja – hg. Za jej pomocą można wykonać wszystkie operacje na repozytorium z poziomu linii komend.

$ hg
Mercurial Distributed SCM

basic commands:

 add        add the specified files on the next commit
 annotate   show changeset information by line for each file
 clone      make a copy of an existing repository
 commit     commit the specified files or all outstanding changes
 diff       diff repository (or selected files)
 export     dump the header and diffs for one or more changesets
 forget     forget the specified files on the next commit
 init       create a new repository in the given directory
 log        show revision history of entire repository or files
 merge      merge working directory with another revision
 parents    show the parents of the working directory or revision
 pull       pull changes from the specified source
 push       push changes to the specified destination
 remove     remove the specified files on the next commit
 serve      export the repository via HTTP
 status     show changed files in the working directory
 update     update working directory
 view       start interactive history viewer

use "hg help" for the full list of commands or "hg -v" for details

Kontrola wersji z poziomu interfejsu graficznego

Istnieje jednak możliwość pracy graficznej. Windowsowi użytkownicy jako graficzny interfejs zwykle wykorzystują TortoiseHG, który wywodzi się z TortoiseSVN. Pod Linuxem możemy również wykorzystać TortoiseHG.

Instalacja Mercuriala i TortoiseHG pod Ubuntu 9.04

Uruchomienie komend zamieszczonych poniżej sprawi, że nasz Mercurial zostanie „podniesiony” do najnowszej stabilnej wersji, pojawi się nam TortoiseHG również w wersji stabilnej, a następnie TortoiseHG zostanie włączone do domyślnego menadżera plików w Gnome – Nautilusa. Zainstalowana zostanie również aplikacja Meld, która czyni merge’owanie całkiem przyjemną czynnością w interfejsie graficznym :)

# Najpierw przechodzimy na roota, tego którego w Ubuntu nie ma ;)  

sudo -i

# Dodajemy drzewo stable repozytorium Mercuriala z Ubuntu Launchpad PPA

cat >/etc/apt/sources.list.d/mercurial.list << EOF
deb http://ppa.launchpad.net/mercurial-ppa/stable-snapshots/ubuntu jaunty main
deb-src http://ppa.launchpad.net/mercurial-ppa/stable-snapshots/ubuntu jaunty main
EOF
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key 323293EE

# Dodajemy drzewo stable repozytorium TortoiseHG z Ubuntu Launchpad PPA
cat >/etc/apt/sources.list.d/tortoisehg.list << EOF
deb http://ppa.launchpad.net/tortoisehg-ppa/stable-snapshots/ubuntu jaunty main
deb-src http://ppa.launchpad.net/tortoisehg-ppa/stable-snapshots/ubuntu jaunty main
EOF
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key D5056DDE

# odświeżamy listę repozytoriów i pobieramy pakiety oraz dodajemy obsługę bindingsów Pythona w Nautilusie

aptitude update
aptitude install -y python-nautilus mercurial tortoisehg tortoisehg-nautilus meld

# doinstalowujemy pakiet iniparse
wget http://iniparse.googlecode.com/files/python-iniparse_0.3.1-1_all.deb
dpkg -i python-iniparse_0.3.1-1_all.deb
rm python-iniparse_0.3.1-1_all.deb

Po wykonaniu tych komend najlepiej się przelogować ponownie, aby Nautilus zdał sobię sprawę z wprowadzonych zmian. Można też (już na swoim użytkowniku) uruchomić komendę:

nautilus -q

Która spowoduje przeładowanie Nautilusa (może nam zniknąć do następnego zalogowania zawartość pulpitu). Jeśli wszystko pójdzie pomyślnie, w efekcie możemy zarządzać repozytorium w następujący sposób:

mercurial-1

Instalacja Chromium w Ubuntu Jaunty

chromium-cornerPrzeglądarka WWW giganta z Mountain View o nazwie Google Chrome jest dostępna póki co jedynie dla Windows. Była ona tworzona w pośpiechu i tajemnicy. Kiedy została wydana, Google jednocześnie otworzyło otwartoźródłowy projekt o nazwie Chromium. Składają się na niego między innymi własny fork silnika do renderingu stron – WebKit czy stworzony przez Google – bardzo wydajny silnik Javascriptu o nazwie V8. Dzięki otwarciu kodu, umożliwiony został szybszy rozwój oraz poprawę tego, co było zrobione na szybko oraz tego, czego najbardziej brakuje. Do projektu Chromium dołączyło wielu developerów spoza Google, którzy bardzo aktywnie zaczęli podrzucać łaty, mające na celu umożliwienie uruchamianie Chrome pod Linuxem. Prace się jeszcze nie skończyły, ale już teraz możemy uruchomić wersję developerską – Chromium, na własnym Linuksie. W tym tekscie pokażę, jak tego dokonać pod Ubuntu 9.04.

Dlaczego chcę o tym pisać, kiedy lada dzień ma wyjść Ubuntu 9.10? Z przyczyn archiwalnych, ponieważ w Ubuntu 9.10 będzie się to robiło już inaczej, znacznie prościej. Nie oznacza to, że jeśli zainstalujemy teraz Chromium, będziemy musieli wykonywać nowe kroki po aktualizacji do 9.10 – Chromium będzie działał jak dawniej.

# Najpierw przechodzimy na roota, tego którego w Ubuntu nie ma ;) 

sudo -i

# Dodajemy repozytorium Chromium z Ubuntu Launchpad PPA

cat >/etc/apt/sources.list.d/chromium.list << EOF
deb http://ppa.launchpad.net/chromium-daily/ppa/ubuntu jaunty main
deb-src http://ppa.launchpad.net/chromium-daily/ppa/ubuntu jaunty main
EOF

# Dodajemy klucz do pakietów z repozytorium Chromium

gpg --keyserver hkp://wwwkeys.eu.pgp.net --recv-keys 5A9BF3BB4E5E17B5
gpg --export --armor 5A9BF3BB4E5E17B5 | sudo apt-key add -

# Aktualizujemy repozytoria i instalujemy Chromium wraz z wersją Polską :) 

aptitude update
aptitude install -y chromium browser chromium-browser-l10n

Po pierwszym uruchomieniu, Chromium pyta o ustawienie go jako domyślnej przeglądarki oraz import z Firefoxa - ustawienia jako domyślnej przeglądarki póki co nie polecam, a import u mnie to jeszcze nie działa.

Żeby było bardziej pod kolor, warto nacisnąć Ustawienia, Opcje, zakładka Prywatne rzeczy, Motywy: Ustaw motyw na GTK+.

Obsługa Flasha i innych wtyczek jest narazie eksperymentalna, ale mnie przynajmniej nic się nie jeszcze zawiesiło - YouTube można oglądać. Aby działał Flash, skrót do Chromium należy uruchamiać z parametrem --enable-plugins:

chromium-browser --enable-plugins

Przeglądarka działa lekko i przyjemnie - w moim odczuciu - o wiele lżej niż Firefox, którego ostatnio coraz bardziej nie mogę znieść - nie ważne czy to pobranego bezpośrednio ze stron Mozilli, czy tego z repozytoriów Ubuntu. Chromium jest też w moim odczuciu stabilniejszy niż Midori, którego do tej pory używałem do testowania moich aplikacji webowych pod kątem WebKit'a pod Linuxem. Spróbujcie, warto.

dostępna

Instalacja Linux Ubuntu 9.04 na pendrive USB

supertalent-pico-c-pendriveTemat ten był już poruszany na blogach i serwisach traktujących o Linux Ubuntu nie raz, nie jest to żadna nowość, ale ten wpis będzie mi potrzebny, aby się do niego odwołać niebawem.

Mamy już technologię ;) umożliwiającą nam pracę na systemie operacyjnym zainstalowanym na własnym nośniku USB. Można go zabrać wszędzie i wystarczy w miarę współczesny komputer z możliwością ładowania systemu po USB. I co najważniejszeto co zrobimy w systemie, wystartowanym z takiego nośnika USB – w przeciwieństwie do wersji Live startowanych z płyt CD / DVD – pozostanie obecne nawet po restarcie.

Ta właściwość nazywa się persistent storage – czyli trwały dysk. Jeśli zainstalujemy sobie program, umieścimy skrót, zapiszemy dokument – po restarcie, nie ważne czy na tym samym komputerze czy innym – ów zmiana dalej będzie widoczna. To właśnie dzięki temu – warto mieć taki nośnik.

Co więcej – na nośniku możemy mieć też zapisane inne dane, o ile tylko mamy na nim jeszcze jakieś wolne miejsce :)

Wymagania

Do instalacji systemu Linux Ubuntu na pendrive, wystarczy nam nawet 2 GB nośnik USB sformatowany w systemie FAT (rekomendowane FAT32, jeśli chcemy zapisać na nim plik trwałego dysku większy niż 4 GB).

Będzie nam potrzebny również komputer z systemem Microsoft Windows – albo zainstalowanym klasycznie, albo jako maszyna wirtualna (która musi obsługiwać USB).

Przygotowanie i instalacja

Jeśli powyższe wymagania udało się nam spełnić – zabieramy się do roboty – na dysku twardym (to ważne, bo jeśli wrzucimy to od razu na pendrive’a, to skrypt instalacyjny sobie nie poradzi) swojego komputera tworzymy sobie katalog, do którego ściągamy następujące pliki:

U904p.exe

Ubuntu 9.04 ISO

Jeśli chcemy mieć większy trwały dysk niż domyślny – 1 GB – pobieramy jeden z tych: 2 GB, 3 GB, 4 GB lub tworzymy swój własny.

Kiedy już mamy wszystko – uruchamiamy U904p.exe. Jest to archiwum samorozpakowujące się. Po jego rozpakowaniu, wrzucamy plik iso Ubuntu oraz ewentualnie – pobrany i rozpakowany trwały dysk.

Teraz wystarczy tylko sprawdzić literkę dysku, pod którą znajduje się nasz pendrive, bo zostaniemy o to za chwilkę zapytani i uruchomić U904p.bat z katalogu U904p.

To w zasadzie wszystko – po restarcie z włożonym dyskiem USB do komputera, kiedy na ekranie zaczną pojawiać się pierwsze komunikaty, wciskamy kilkukrotnie klawisz F12 – powinno pojawić się menu z pytaniem z którego napędu chcesz wystartować system. Wybieramy nasz dysk USB.

Źródło: http://www.pendrivelinux.com/usb-ubuntu-904-persistent-install-windows/

Pendrive na obrazku powyżej to Super Talent Pico C. Dostępne są metalowe, niklowane oraz złocone o pojemnościach 2GB – 32GB. Przy pierwszym użyciu już widać, że wkładanie go do portu USB sprawia, że pojawiają się na nim rysy i dość topornie się go wkłada/wyciąga. Kończę go recenzować bo mi to nie wychodzi ;) Generalnie – nie żałuję zakupu.