-->

sobota, 21 lipca 2012

Kompilacja jądra - metoda Debiana

Kompilacja kernela może wydawać się trudna ale tylko z pozoru ;) opiszę tutaj procedurę związaną z tzw. metodą debiana. A więc praktycznie systemy bazujące na Debianie (np. Ubuntu, Mint itp.) mają identyczną ścieżkę postępowania. System na którym kompilowałem kernel to Debian Squeeze (stable), stare jądro to 2.6.32, nowe do kompilacji to 3.1.6 ściągnięte prosto z kernel.org. Sprzęt to Asus A3HF.

Przed samą kompilacją warto wiedzieć jaki sprzęt posiadamy, służą do tego następujące polecenia:


Powyższe informacje mogą pomóc w konfiguracji kernela pod nasz sprzęt. Krok 1 to instalacja kilku paczek potrzebnych do przeprowadzenia całego procesu.
Otwieramy konsolę i zapodajemy:

żeby mieć pewność że mamy świeży system, jeśli ktoś używa apt-get to może bez problemu go użyć, ważne jest to aby nie mieszać aptitude z apt-get'em. Przy wszystkich poleceniach będę używał sudo, ponieważ mam taki zwyczaj jak najmniej pracować na użytkowniku root :D, jeśli chcecie to pominąć wystarczy zalogować się na roota poleceniem su. Następnie:

powyższe pakiety są potrzebne do kompilacji, libncurses5-dev jest potrzebne jeżeli chcemy pracować w konsoli. Możemy go nie instalować jeśli będziemy konfigurować wszystko przez GUI (musimy mieć wtedy GTK dla Gnome lub QT dla KDE – biblioteki dla interfejsów graficznych).
Po zainstalowaniu musimy ściągnąć nasz kernel do kompilacji, wchodzimy na kernel.org i klikamy najlepiej na ostatnią stabilną wersję ;> lub używamy wget'a, w moim przypadku:

po ściągnięciu przenosimy nasz kernel do /usr/src i tam też przechodzimy:

rozpakowujemy archiwum z jądrem:

a następnie tworzymy symlink do naszego katalogu z kernelem i przechodzimy do niego:

teraz najwygodniej będzie skopiować plik konfiguracyjny ze starego jądra po to by mieć gwarancję że nowe jądro będzie dobrze działać niż męczyć się z ustawianiem wszystkiego w przypadku braku tego pliku.

poleceniem ls -a upewniamy się że skopiowaliśmy plik konfiguracyjny.
Teraz zaczynamy konfigurację:

Ja użyłem menuconfig i dalszy opis jest dla konfiguracji w terminalu. Powinno pojawić się menu konfiguracji podobne do tego poniżej:


wybieramy Load an Alternate Configuration File i ładujemy plik .config

Po menu poruszamy się strzałkami ;] jeśli jest możliwość zaznaczenia czy moduł ma się znajdować, być wkompilowanym w jądro lub ma go nie być to operujemy spacją lub klawiszami Y (wkompilowany), N(nie chcemy w ogóle), M(będzie figurował jako moduł). Po trzech dolnych opcjach (Select/Exit/Help) poruszamy się klawiszem TAB. Jeżeli wchodzimy głębiej w opcje to wyjść musimy poprzez Exit (o jeden poziom w górę).

Po wejściu w General setup ważne jest opcja Initial RAM filesystem.... podświetlona na screenie. Jeśli nie chcemy bawić się po instalacji z ram dyskiem należy tą opcję pozostawić jako wbudowaną w jądro. Inaczej musieli byśmy ręcznie wygenerować plik inicjalizujący system plików.


Kolejną opcją wartą do przejrzenia jest sekcja Processor type and features, zaznaczamy tam przede wszystkim rodzinę procesora (dla mnie Pentium M), ponieważ Celeron M jest blisko związany z tą rodziną a opcji Celerona M nie ma. Odznaczyłem też Support for big SMP... ta opcja dotyczy maszyn wieloprocesorowych. Jako że kompilacja przygotowuje kernel dla laptopa to odznaczam także wcześniej zaznaczone Toshiba/Dell laptop support bo do mojego Asusa nie są one potrzebne. Wszystko widać na poniższym screenie ;]:


Jasne jest to iż nie zmieniamy opcji których nie jesteśmy pewni albo nie wiemy co robią ale jeśli np. wiemy że mamy kartę od Nvidi to śmiało możemy odznaczyć sekcję ze sterownikami do Radeona, zintegrowanych kart Intela itp. Tak jak poniżej ja odznaczam AMD/Via C7/Cyrix i nForce2.


Ostatnim podstawowym działem jest File system, zaznaczone są tam moduły dotyczące obsługi różnych systemów plików. Zostawiłem wszystko tak jak było standardowo, nigdy nie wiadomo co zamontujemy w naszym systemie ;>


Po tej krótkiej konfiguracji cofamy się do głównego menu i dajemy Save an Alternate Configuration File lub zaznaczamy Exit, potwierdzamy i kiedy wyskoczy opcja zapisu pliku konfiguracyjnego zatwierdzamy Yes :]
teraz jedna ważna rzecz, podczas pierwszej kompilacji pojawił mi się błąd

I wiem że jest to w tym momencie powszechny problem, aby go rozwiązać należy otworzyć nasz plik konfiguracyjnym dowolnym narzędziem do edycji tekstu (jesteśmy cały czas w /usr/src/linux) np.

odszukujemy

i zmieniamy na:

i to załatwia sprawę (niestety czasem takie bugi się zdarzają.... powyższy wynika z umieszczenia lguest w ./Documentation/virtual, w starszych wersjach plik był w ./Documentation i dlatego teraz sypie się wszystko) no i ostatnie polecenie:

gdzie
--append-to-version =– nasza nazwa kernela
--revision = numer naszej autorskiej wersji

i teraz dość długa przerwa, jądro się kompiluje. Zabiera to chwilę czasu (w moim przypadku około 2 godz.). Do powyższego polecenia można dodać opcję -jX gdzie X to liczba rdzeni procesora.

Po skompilowaniu w katalogu nadrzędnym (/usr/src) stworzyły się dwie paczki, jedna z kernelem a druga z plikami nagłówkowymi. Obie instalujemy

po instalacji uruchamiamy ponownie sprzęt i wybieramy w menu Gruba nowe jądro :D

Czytaj dalej/Read more!

wtorek, 17 lipca 2012

Real Compass - Android

Real Compass to nie tylko zwykły kompas. Został zbudowany w oparciu o silnik grafiki 2D. Dlatego też jest bardzo płynny w stosunku do innych kompasów znajdujących się w Google Play, ale jest też bardzo interaktywny. Można go rozbić, naprawić. Polecam!

Real Compass Lite

Real Compass


Czytaj dalej/Read more!

poniedziałek, 2 lipca 2012

Microstrip Calc & Ansoft Designer

If you don't know how to use Microstrip Calc for your circuits, you should read it! :) I will be using Microstrip Calc to calculate impedances, wavelength and microstrips for one stage Wilkinson divider (working at 3Ghz, Z0 = 50 Ohm) and Ansoft Designer (PC) to plot transmission and insulation between ports. On start we have to know what PCB we will use. It determines permeability (Er), trace/dielectric thickness. Listed parameters impact on impedances and wavelengths.

Normal FR4 PCB has:
- Er around 4.7
- trace thickness : 34 um (1.34 mil)
- dielectric thickness : 1.55 mm (62 mil)

I chose special PCB (RT Duroid 5870), it has Er - 2.33, dielectric thickness - 0.787 and trace thickness equal to 17 um (0.017 mm) as you can see below (from datasheet).





 Now we are ready to use Microstrip Calc. First selsect Wilkinson divider and write in parameters:


Now we have to remember our impedances (Z1, Z0) and λ. In the next step we can calculate our microstrips from given impedances.



Fill in Er, B, T and Z0, click Synthesize and we will get W (width of microstrip). Do it again with Z0 = 71 Ohm. This is the moment to run Ansoft Designer (Getting Started). Ansoft will open new project. Do fallowing steps:

1. Add Cicruit Design: Click Project > Insert Circuit Design, in new window (Choose Layout) click none.

2. Add microstrip: Click Circuit > TRL > Microstrip > Single, at first time we have to add our PCB. It should look like in the picture:


In next window write in sizes of microstrip and click Analyze then Add. Now we have one microstrip. Copy it four times (3 ports - Z0: 50 Ohm, and 2 impedances Z1: 71 Ohm for Wilkinson). 

3. Add Resistor: Click Search tab in left panel. Search for RES, then insert it. 

4. Add Ports: Click Draw > Interface Port. Now we have to change port to microwave port. Right click on port, select Properties > Edit (Edit Port) and select Microwave.

Our circuit should look like in the picture below:



5. Add and run Analyze: Click Circuit > Add Solution Setup, in window click next. In right window click F (frequency), go to Edit and choose start/stop frequency and step (smaller step cause that plot will be more accurate). After go to Circuit > Analyze. Right click on Results and create two reports, first with S11, S22, S33 and second with S21, S31, S32. I got fallowing characteristics:



As you can see our 3Ghz frequency has offset around 300Mhz. We can correct it by extending length of our microstrips (smaller frequency = more physical length). After it I got:




Now we have great characteristics related with insulation (S11, S22, S33) and transmission (S21, S31). You can do it with other couplers/dividers from Microstrip Calc :)

Czytaj dalej/Read more!

niedziela, 1 lipca 2012

Microstrip Calc - Android

I would like to introduce my new application called Microstrip Calc. It is easy to use calculator for microwaves circuits. With Microstrip Calc you can calculate impedances for microstrip, striplines and couplers/dividers. Best for students and microwave amateurs :). This toolbox improve fast prototyping without using complex equations.

In full version:
>Microstrips:
  -Microstrip
  -Embedded Microstrip
  -Edge Coupled Microstrip
  -Wire Microstrip
>Dividers:
  -Wilkinson Divider
  -Unequal Wilkinson
  -Two Section Wilkinson
  -Unequal Two Section Wilkinson
  -Rat Race Coupler/Divider
  -Branchline Coupler/Divider
>Striplines:
  -Symmetric Stripline
  -Symmetric Wire Stripline
>Attenuators:
  -Tee Attenuator
  -Pi Attenuator
  -Bridged Tee Attenuator
  -Reflection Attenuator
  -Balanced Attenuator
>Others:
  -Electrical Length
  -Strap Inductance
and more to come!

Google Play: Microstrip Calc Lite and Microstrip Calc



Czytaj dalej/Read more!