Aktualizacja microcode procesora w Debianie Wheezy – HOWTO.

Jakiś czas temu pisałem o 3 rzeczach, których zapewne nie aktualizujesz w Debianie (piszę w Debianie, ale zapewne prawdziwe jest dla większości dystrybucji opartych na nim). Jeśli chodzi o mikrokod, było prosto, łatwo, i przyjemnie. I minęło, wraz z nadejściem Wheezy’ego.

Magiczne polecenie update-intel-microcode, o którym wówczas pisałem, niestety nie jest już obecne w Debianie poczynając od wersji Wheezy. Zamiast tego, trzeba zrobić wszystko ręcznie. Nie wnikałem, ale zapewne chodziło o kwestie licencyjno-copyrightowe – przy pobieraniu pliku z mikrokodem ze strony Intela jest pytanie o zaakceptowanie licencji. W każdym razie nie ma już narzędzia i trzeba zadbać ręcznie o aktualizację mikrokodu.

Jest za to inne narzędzie, które – wraz z bazowymi mikrokodami – znajduje się w pakiecie intel-microcode.

Po pierwsze wchodzimy na stronę Intela, skąd możemy pobrać mikrokod. Wielkiego wyboru nie widzę, ale może się zmienić – wybieramy najnowszą wersję. Akceptujemy licencję, pobieramy plik. Na dysku ląduje plik o nazwie zbliżonej do microcode-20120606-v2.tgz. Należy go rozpakować, a naszym oczom ukaże się microcode.dat. To są mikrokody, których szukacie! 😉

Po drugie, przy pomocy narzędzia iucode_tool produkujemy z niego pliki w formie strawnej dla pozostałych narzędzi. Ja zdecydowałem się na rozpakowanie ich „na boczek”, żeby ręcznie porównać:

mkdir /tmp/ucode && iucode_tool -K/tmp/ucode/ /tmp/microcode.dat

Po tym zabiegu w katalogu /tmp/ucode mamy w tym momencie całkiem sporą ilość plików, które są gotowymi do użycia mikrokodami. Aby były używane, należy je skopiować do /lib/firmware/intel-ucode. Oczywiście jest możliwość rozpakowywania bezpośrednio w domyślną systemową lokalizację, wystarczy użyć przełącznika –overwrite i nie podawać katalogu docelowego.

Pora na użycie. I tu przyznaję zaczynają się schody. O ile wcześniej bez problemu można było załadować mikrokod online, to teraz iucode_tool -vk /tmp/ucode/* niby się wykonuje (wczytując wszystkie, czyli dla różnych procesorów mikrokody – zupełnie tego nie rozumiem), ale chyba nie działa. W każdym razie śladu w dmesg żadnego… Wygląda, że mikrokod jest dodawany do initramfs. Aby dodać mikrokody znajdujące się w domyślnej systemowej lokalizacji do wszystkich zainstalowanych kerneli, popełniamy:

update-initramfs -k all -uv

Po reboocie powinniśmy działać na nowym mikrokodzie. Uwaga: domyślnie do initramfs trafiają tylko mikrokody dla procesora, na którym jest wydawane polecenie. Można to zmienić w /etc/default/intel-microcode.

Dla procesorów AMD istnieje analogiczny pakiet, ale nie mam takiego pod ręką, by przetestować.

Przy pisaniu wpisu posiłkowałem się opisem Mikrokodu na wiki Arch. Co prawda niewiele się zgadza, ale może komuś się przyda. Warto też zajrzeć na ogłoszenie dotyczące mikrokodu, które znalazłem już po napisaniu wpisu.

 

Wyciszanie grzejnika.

Pod koniec zeszłego roku komputer robiący za grzejnik przestał działać. Padł dysk. Software RAID na dwóch partycjach niewiele pomógł. Tzn. pomógł na tyle, że były sygnały, że wkrótce się skończy. Gdybym miał jakieś ważniejsze dane, to zapewne zdążyłbym zgrać. Inna sprawa, że wg statystyk zrobionych przez Google, IIRC 30% dysków nie ma żadnych, ale to naprawdę żadnych objawów w S.M.A.R.T, zanim padną. Jakby komuś bardzo zależało i nie mógł znaleźć – dajcie znać w komentarzach, to poszukam tych statystyk Dzięki GDR! za podesłanie linka!

Wracając do tematu. Wymieniłem komputer w domu u rodziców, przełożyłem ze starego dysk do nowego. Zapomniałem o tym, włączyłem go i… praktycznie totalna cisza. Mimo w sumie trzech wentylatorów (zasilacz, radiator na procesorze i wentylator jak od zasilacza puszczony na 5V chłodzący kartę graficzną). Okazało się, że głównym hałasującym był dysk (Seagate 60 GB).

To podsunęło mi pomysł, żeby spróbować tego samego z grzejnikiem. W końcu komputer uruchamiający się z pendrive był ćwiczony wielokrotnie. Może nie w tak hardcore’owej wersji, bo jednak zawsze na podorędziu był dysk wpięty po USB, ale to przecież drobiazg. Przy okazji nauczyłem się patentu: jeśli komputer nie ma bootowania z USB w BIOSie, albo ma takie, że nie potrafi zabootować się z pendrive’a, to można zabootować z CD-ROM i kazać bootować z USB. Wymaga co prawda sprawnego napędu CD-ROM, ale działa. 🙂

Dzisiaj przywiozłem grzejnik. System zainstalowany na pendrive, póki co bez tuningu pod kątem trwałości tego ostatniego. Znaczy jest ext2, nie ma swap, ale reszty opcji nie miałem kiedy włączyć. Oczywiście tym razem nie będzie dysku tylko do odczytu, bo mprime musi gdzieś zapisywać wyniki (BTW przechodzę wyłącznie na wstępną faktoryzację – w jeden sezon grzewczy i tak nie jestem w stanie „konkursowej” liczby przeliczyć), ale to nie powód, by katować flasha ponad potrzebę.

Pamiętałem, że wentylatory w tej maszynie dość szumią, więc przypomniał mi się zacny wpis z Majsterkowo.pl o naprawie głośnych wentylatorów. Co prawda wyciąganie zawleczki i wyciąganie ośki uważam za overkill, ale rozebrałem i wentylator od procesora, i ten w zasilaczu i przesmarowałem sprawdzonym sposobem (kropelka oleju maszynowego). Jest o niebo lepiej, choć nadal troszkę go słychać. Winny jest badziewny radiator i wentylator zamontowany na nim, który jakby ma lekkie bicie. I w ogóle trochę mały jest ten radiator, i mniejszy niż w zasilaczu ma wentylator. Trochę żałuję, że nie przełożyłem z mojego starego domowego komputera procesora (Athlon 2200+) – obecnie jest Sempron 2300+, czyli słabszy. No i oczywiście radiatora (tego z niesłyszalnym praktycznie wentylatorem). Przy okazji mogłem też wymienić wentylator w zasilaczu, choćby na ten, który dmuchał na grafikę w starym komputerze. No ale nie było czasu… ;-/

Przy okazji otwierania zasilacza w celu przesmarowania i wyczyszczenia wentylatora znalazłem spore pokłady kurzu. Niestety, okazuje się, że samo odkurzenie zasilacza przez szczeliny nie pomaga, a sprężonego powietrza nie miałem nigdy pod ręką. Dodatkowo wyszło na jaw, że jeden z kondensatorów trochę wyciekł. Mam już lutownicę, ale nie miałem kondensatora na wymianę. Póki co działa, więc nie ruszam. Mam nadzieję, że nie odparuje razem z płytą…

UPDATE: Note for myself: w tym roku dniem uruchomienia grzejnika jest 02.12.2012. I nie jest to początek sezonu grzewczego.

UPDATE2: Może i było lepiej przez chwilę, ale dość szybko się pogorszyło. Tym razem pamiętałem i wyjąłem wentylator z nieużywanego komputera. Okazuje się, że nie był na 5V, a i tak był praktycznie niesłyszalny. Jakiś Arctic, które kupiłem za grosze w większej ilości wieki temu. Co prawda z mocowaniem był cyrk, bo żeby wkręcić cztery wkręty brakuje jakichś 5 mm na długości radiatora, ale dało się zamocować na dwóch (skombinowanych z kołków, bo wentylator różni się głównie wysokością, więc oryginalne nie pasowały). 1700 RPM w tej chwili i cisza – ten z zasilacza jest głośniejszy.

Statystyki bloga, zmiana licencji.

Pora na przegląd parametrów bloga, który okresowo robię, żeby móc porównać zmiany w czasie. Na początek tradycyjnie systemy operacyjne: Windows XP 34,2%, Windows 7 – 30,4%, Vista – 8,6% czyli łącznie 73%. Linux spadek do 22%, Mac OS X bez zmian 2,2%. Tradycyjnie efekt większego udziału wejść z wyszukiwarki. Znaczne umocnienie się Windows 7, lekki spadek XP.

Przeglądarki praktycznie bez zmian: Firefox 50%, Chrome 23,4%, Opera trzyma ma wiernych fanów we względnie stałej ilości 10,7%. IE w różnych wersjach 10%, przy czym 5,6% to IE 8.

W przypadku rozdzielczości nadal dominują 1280×800 lub 1280×1024 z 30% (nadal spadek), przy czym na drugiej pozycji pojawia się 1366×768 z 13,7% udziału. Mocne jest też nadal 1024×768 – 12,2%.

Znowu zmiany w pagerank – tym razem spadek tego bloga na 4, stary blog i blog muzyczny mają od dłuższego czasu 3.

Reklamy od Google mają się dobrze – bez wysiłku (w zasadzie: totalnie bezobsługowo) i bez rewelacji, minimalnie tylko gorzej od AdTaily, które wymagało jednak więcej zaangażowania, więc sobie chwalę.

Zmianie ulega licencja bloga, a dokładniej treści wpisów na nim. Taki efekt P.I.W.O. 2012, a dokładnie prezentacji i rozmowy z ryśkiem (thx!). Wspominałem, że było inspirująco? 😉 Stanęło na  CC BY-SA, która jest IMO najbliższym odpowiednikiem GPL, z małymi dodatkowymi wymaganiami co do informacji o pochodzeniu treści. Nie jest prosto, ładnie i składnie napisać wymagania, a pech chciał, że jak widziałem u kogoś coś podobnego ładnie zrobionego, to nie mogłem znaleźć, jak było potrzebne. Oczywiście znalazłem wkrótce po tym, jak skończyłem. ;-/ Ale i tak się przydało… Gdyby ktoś miał uwagi i propozycje poprawy – chętnie usłyszę. Wkrótce dodam wersję angielską wymagań.

Myślałem jeszcze o CC BY-ND oraz o czym z NC, ale przekonało mnie, że skoro ktoś będzie potrafił zrobić z tego pieniądze, jak ja nie umiem, to chwała mu za to (info o autorze i tak będzie). No i żyjemy w świecie pełnym reklam, do których CC ma dziwne podejście. Z kolei ND jest IMO nieporozumieniem w świecie wolnego oprogramowania. Cały dowcip w tym, żeby ktoś mógł tłumaczyć, poprawiać i czerpać. Teraz mogę z czystym sumieniem męczyć RMS o źdźbło w jego oku. 😉

Nie, nie mam złudzeń co do jakości tekstów. Pewnie zwykle nikt ich nie wykorzysta. Tym bardziej nie widzę powodu, żeby się nie dzielić.

Jak sprawdzić w której sieci GSM jest numer?

Sprawdzenie numeru historycznie.

Kiedyś sprawdzenie, do operatora której sieci komórkowej należy numer było bardzo proste – wystarczyło spojrzeć na pierwsze trzy cyfry numeru i sprawa była jasna. Potem liczba możliwych kombinacji wzrosła, a do określenia operatora potrzebne zaczęło być więcej cyfr. Od niedawna, w związku z ułatwieniami w zmianach operatora można przyjąć, że metoda ta jest nic nie warta.

Po co w ogóle sprawdzać numer telefonu?

Widzę tak naprawdę tylko jeden powód: koszt rozmowy. Istotne szczególnie, jeśli szykuje się dłuższa pogawędka, a mamy dziwny pakiet na którymś telefonie np. bardzo tanio/za darmo do tej samej sieci, ale dość drogo do pozostałych. Zwłaszcza, że – patrząc po znajomych – ostatnio sporo osób przeniosło się do Play, do którego rozmowy nadal bywają znacząco droższe. Ponieważ mój „stacjonarny” numer jest właśnie w Play, a do Plusa mam de facto za darmo, sprawdzanie numeru miewa sens.

Jak sprawdzić numer?

Znalazłem w sieci trzy serwisy do sprawdzania numeru. Szybki test wykonałem przy pomocy numeru o którym wiem, że jest w Orange, numeru z Plusa i mojego „stacjonarnego” numeru Plusa przeniesionego do Play. Wyniki (od najlepszego):

  1. wjakiejsieci.pl – serwis najbardziej przypadł mi do gustu, mimo wad. Po prostu podaje potoczną nazwę operatora, np Play lub Orange. Rozpoznał poprawnie wszystkie numery. Wady to dziwne okienko wpisywania i dość długi czas oczekiwania (kilka sekund).
  2. sprawdznumer.pl – podaje kod sieci i nazwę operatora, np Orange, P4. P4 to Play, ale to już nie każdy wie. Serwis byłby wygrał, ale NoScript ostrzega przed interakcją z częściowo ukrytym elementem na stronie, a takich zagrywek nie lubię. Wszyscy operatorzy rozpoznani poprawnie. Działa szybko.
  3. gsmcenter.pl – nie działa. Nie wiem czy to tymczasowy błąd, ale w obu przypadkach pokazało brak danych. Usuwam, domena przejęta.
  4. http://download.t-mobile.pl/updir/ – tak naprawdę to wykorzystuje strona z punktu drugiego. Prosty i rozpoznawał poprawnie.

Jeśli ktoś zna inne serwisy, szczególnie takie udostępniające API, to chętnie poznam. TIA

UPDATE: Dodany punkt 4, usunięty punkt 3.

Git for dummies, czyli kolejna ściągawka z gita.

Logo Git

Źródło: http://git-scm.com/downloads/logos

System kontroli wersji git nie jest taki trudny, jak się może wydawać, ale faktem jest, że trochę bardziej skomplikowany niż cvs czy svn. Ponieważ z gita korzystam na tyle rzadko, że zawsze było wymyślanie koła od nowa i szukanie ściągawek, to dla mej pamięci własna szybka ściągawka z gita.

git clone – tworzy lokalną kopię zdalnego repozytorium

git pull – aktualizuje zmiany ze zdalnego repozytorium

git branch rozie – tworzy gałąź o nazwie rozie

git checkout rozie – przechodzi do gałęzi rozie

git add plik – dodaje plik do systemu kontroli wersji w aktualnej gałęzi

git commit plik – zatwierdza (wprowadza do systemu kontroli wersji) zmiany w pliku

git merge rozie – łączy gałąź rozie z bieżącą gałęzią

git status – podaje jaki jest status, czyli co się zmieniło w danej gałęzi

git push – wysyła zatwierdzone lokalnie zmiany do zdalnego repozytorium

git branch -d – usuwa gałąź lokalnie

git branch – wyświetla wszystkie gałęzie

I w zasadzie powyższe polecenia wystarczają, by w podstawowym zakresie korzystać z git. W sumie średnio się to na wpis nadaje (nawet kategorii nie mogę znaleźć) i może kiedyś przeniosę w sensowniejsze miejsce…

Stare projekty.

Mam parę skryptów (oczywiście Perl), albo nawet raczej szkieletów skryptów, których nigdy nigdzie nie publikowałem, bo były w fazie „takie tam niedokończone”. Powodów niedokończenia jest sporo – poczynając od kłód rzucanych pod nogi (tak, patrzę na Blox), poprzez jakieś takie rozmycie mojego zapotrzebowania wewnętrznego, brak czasu[1], po zwykłą zmianę warunków zewnętrznych.

Czasem jest taki miły moment, że okazuje się, że to ma sens i w ogóle się przyda. Przynajmniej potencjalnie. To nic, że pewnie rok czy dwa później. Ogólnie miałem do tego skrypt! jest miłym momentem. Nawet jeśli ów skrypt wymaga lekkiego – albo nie tak lekkiego – tuningu.

Tak czy inaczej jest motywacja do ciągu dalszego zabaw ze słowami. Niestety, skrypt w tego typu wypadkach to tylko wisienka na tort, jest też spora praca do wykonania przez człowieka. Przypomina mi się liceum i konkurs w radio, polegający na tym, by z podanego czteroliterowego słowa utworzyć jak najdłuższy ciąg kolejnych słów w taki sposób, by słowa się nie powtarzały i różniły tylko jedną literą. I jeszcze chyba ograniczenie do rzeczowników było. Czyli lupa -> zupa -> kupa -> kopa… No ale wtedy nie było(?) tyle dobra w sieci. 😉

[1] Doba ma tylko 24h, a tydzień tylko 7 dni. Jakby to było 26 i 8, byłoby znacznie lepiej.