konto usunięte

Temat: Programowanie sterowników urządzeń pod jądro Linuxa

Witam.

Chciałbym aby ów temat dotyczyl szeroko rozumianego pisania sterowników urządzeń (modułów itd. ) pod kernel Linuxa. Wymienialibyśmy się w tym temacie: wiedzą, materiałami, opiniami różnych narzędzi pracy itd.

Ja ze swojej strony zacznę z trzema pytaniami:
-> jak najszybciej i łagodniej rozpocząć swą przygodę z tym tematem?
-> co nalezy juz umiec?
-> czy rynek pracy potrzebuje tego typu specjalistow (nie ukrywam, ze jest to niszowa działka IT)?

PS: zachęcam do dzielenia sie linkami, tytulami ksiazek itd. ;)Mateusz Maciaszek edytował(a) ten post dnia 23.06.12 o godzinie 12:43
Roger Zacharczyk

Roger Zacharczyk Programista (gry,
webserwisy,
aplikacje użytkowe),
fotograf

Temat: Programowanie sterowników urządzeń pod jądro Linuxa

Mateusz Maciaszek:
Ja ze swojej strony zaczę z dwoma pytaniami:
-> jak najszybciej i łagodniej rozpocząć swą przygodę z tym tematem?
Od HelloWorld ;)
-> co nalezy juz umiec?
C
-> czy rynek pracy potrzebuje tego typu specjalistow (nie ukrywam, ze jest to niszowa działka IT)?
Specjalistów - na pewno
PS: zachęcam co dzielenia sie linkami, tytulami ksiazek itd. ;)
http://kernel.org/
Przemek M.

Przemek M. Software Engineer,
TomTom

Temat: Programowanie sterowników urządzeń pod jądro Linuxa

I niestety reverse engineering :(

konto usunięte

Temat: Programowanie sterowników urządzeń pod jądro Linuxa

Czy uwazacie, że gra jest warta swieczki zapisujac sie - przykladowo - na kurs firmy alx (innych o podobnej tematyce w Polsce nie potrafie znalezc...)
http://www.alx.pl/szkolenia/programowanie-linux-kernel... ?

Zalozmy, ze pod uwage wchodzi czas w jaki nalezy przyswoic temat w przyzwoity sposob, tak aby moc pracowac jako Linux developer (firma tieto swego czasu poszukiwala osobe na takie stanowisko).
Michał Ł.

Michał Ł. Doświadczenie jest
czymś, co zdobywasz
wtedy, gdy
przesta...

Temat: Programowanie sterowników urządzeń pod jądro Linuxa

http://tldp.org/LDP/lkmpg/2.6/html/lkmpg.html

http://free-electrons.com/docs/

etc...

IMHO ucz się sam - kurs może Ci pomoże może nie a ucząc się sam nauczysz się znacznie więcej.

MichałMichał Ł. edytował(a) ten post dnia 22.06.12 o godzinie 06:48

konto usunięte

Temat: Programowanie sterowników urządzeń pod jądro Linuxa

Michał Ł.:
IMHO ucz się sam - kurs może Ci pomoże może nie a ucząc się sam nauczysz się znacznie więcej.

Czyli uważasz, że tego typu kursy nie są warte zainteresowania? Mam teraz 3 miesiące wakacji - jest to całkiem sporo czasu aby móc przyswoić trochę wiedzy. Czy w takim przypadku poleciłbyś mi zdecydować się na kurs wiedząc, że od października chciałbym szukać pracy/praktyk w tej branży?Mateusz Maciaszek edytował(a) ten post dnia 23.06.12 o godzinie 12:43

Temat: Programowanie sterowników urządzeń pod jądro Linuxa

Osobiście uczyłem się z tej książki: http://shop.oreilly.com/product/9780596005900.do
Jest ona dość wiekowa ale w podstawach od tamtej pory jajko nie wiele się zmieniło. IMHO dobry start a potem google i man.

Jeżeli chodzi o zatrudnienie to jest nawet w Polsce ale dla bardzo wąskiej grupy ludzi. Na przestrzeni ostatnich dwóch lat widziałem ogłoszenia tylko od Samsunga.Piotr Rusoł edytował(a) ten post dnia 23.06.12 o godzinie 15:36

konto usunięte

Temat: Programowanie sterowników urządzeń pod jądro Linuxa

Po pierwsze, warto przyłączyć się do linuxfundation.
Twórcy linuxa - wiedzą w czym i jak pisać moduły ;]

The Linux Driver Model: A Better Way to Support Devices
http://www.linuxfoundation.org/collaborate/workgroups/...

LWN
http://lwn.net/Kernel/

Linux Kernel Newbies
http://kernelnewbies.org/Adam Ł. edytował(a) ten post dnia 23.06.12 o godzinie 17:13

konto usunięte

Temat: Programowanie sterowników urządzeń pod jądro Linuxa

http://www.youtube.com/watch?v=uvvralhAkpM
Michał Ł.

Michał Ł. Doświadczenie jest
czymś, co zdobywasz
wtedy, gdy
przesta...

Temat: Programowanie sterowników urządzeń pod jądro Linuxa

Mateusz Maciaszek:
Michał Ł.:
IMHO ucz się sam - kurs może Ci pomoże może nie a ucząc się sam nauczysz się znacznie więcej.

Czyli uważasz, że tego typu kursy nie są warte zainteresowania? Mam teraz 3 miesiące wakacji - jest to całkiem sporo czasu aby móc przyswoić trochę wiedzy. Czy w takim przypadku poleciłbyś mi zdecydować się na kurs wiedząc, że od października chciałbym szukać pracy/praktyk w tej branży?

Może jestem zbyt ostrożny ale naprawdę mało jest dobrych szkoleń bo mało jest dobrych prowadzących.
Dopóki społeczność czegoś nie poleca to byłbym ostrożny. Poza tym - niewiele skorzystasz na kursie bez wiedzy w danej dziedzinie.

Michał

konto usunięte

Temat: Programowanie sterowników urządzeń pod jądro Linuxa

Tak jak powiedział Michał.

Z tym, że wiedza:
«ogół wiadomości zdobytych dzięki uczeniu się; zasób wiadomości z jakiejś dziedziny, gałąź nauki»
Rozległa, rzetelna, gruntowna, powierzchowna wiedza.
Wiedza fachowa, zawodowa, życiowa.
Wiedza encyklopedyczna.
Wiedza techniczna.

Pogłębiać wiedzę z jakiejś dziedziny.
Mieć prawdziwą, głęboką wiedzę.
Czerpać wiedzę z dzieł naukowych.
«znajomość czegoś; uświadomienie sobie czegoś»

source ;] - słownik PWN.

A wiedzy zdobywał się różnymi metodami;] np wyszukując nie zrozumiałe terminy wklejając je do okna wyszukiwarki google.pl, netsprint.pl etc,etc. po czym po środkujesz skrajne opinie za pomocą sprawdzenia teo. w praktyce. [case - nie sprawdzalności elementów hipo. ewolu.
jak przykład choćby brak jednej pozytywnej mutacji]Adam Ł. edytował(a) ten post dnia 24.06.12 o godzinie 19:02

konto usunięte

Temat: Programowanie sterowników urządzeń pod jądro Linuxa

To ja teraz ze swojej strony polecę tę stronę (mnostwo materialow, często "przeterminowanych", lecz wciąż warto zobaczyć):
-- http://jungla.dit.upm.es/~jmseyas/linux/kernel/hackers...

konto usunięte

Temat: Programowanie sterowników urządzeń pod jądro Linuxa

Witam,
Mam pytanie czy wprowadzenie EFI zmieni coś w kwestii pisania sterowników?

konto usunięte

Temat: Programowanie sterowników urządzeń pod jądro Linuxa

I tak i nie - logika rozmyta.
http://voices.canonical.com/user/50/tag/uefi/

konto usunięte

Temat: Programowanie sterowników urządzeń pod jądro Linuxa

Witam,

O pracę w tej dziedzinie nie jest łatwo (w Polsce). Jest parę firm u nas - lecz są one raczej rozsiane więc jak ktoś lubi zmiany pracodawcy to musi być mobilny. Z tego co się orientuję to prym na tym rynku prowadzą Indie (i oczywiście tzw potocznie chińczycy).

Co do nauki to najlepiej na początek LDD3 (książka dostępna za darmo w sieci). To jest klasyka, oczywiście jeżeli interesują Cię tylko i wyłącznie sterowniki. Ale jest to niezbędne minimum bo zmiany w kernelu są tak dynamiczne, że książka jest już lekko przestarzała (nie licz, że wszystkie przykłady zadziałają) . Poza samymi sterownikami warto zainteresować się budową i architekturą samego kernela, portowaniem na inne architektury (bo ilość różnych SoC i embedded linuxów rośnie). Poza LDD3 to oczywiście przeglądanie i analiza dostępnych sterowników - to jest ogromna składnica wiedzy.

Od strony praktycznej: warto orientować się chociaż odrobinę w elektronice, radzić sobie z analizatorami i oscyloskopami (to się też przydaje).

konto usunięte

Temat: Programowanie sterowników urządzeń pod jądro Linuxa

Grzegorz Z.:
Witam,

O pracę w tej dziedzinie nie jest łatwo (w Polsce). Jest parę firm u nas - lecz są one raczej rozsiane więc jak ktoś lubi zmiany pracodawcy to musi być mobilny.
Moglbys podac przykladowe nazwy tych firm? Z checia przejrzalbym sobie ich profil.
Czy nie byloby dla Ciebie problemem napisac jak wyglada charakter pracy osoby zajmujacej sie tego typu rzeczami jak: low-level C, Linux embedded, Kernel modules?

To jest klasyka, oczywiście jeżeli interesują Cię tylko i wyłącznie sterowniki.
To, obok nauki Linux embedded, traktuje aktualnie jako moje hobby.
Od strony praktycznej: warto orientować się chociaż odrobinę w elektronice, radzić sobie z analizatorami i oscyloskopami (to się też przydaje).
Od przyszlego semestru zamierzam uczeszczac na kolo naukowe systemow wbudowanych (moja uczelnia lecz inny wydzial), tak wiec mam nadzieje lepiej zaznajomic sie z tego typu urzadzeniami.Mateusz Maciaszek edytował(a) ten post dnia 04.07.12 o godzinie 20:20

konto usunięte

Temat: Programowanie sterowników urządzeń pod jądro Linuxa

Mateusz Maciaszek:
Czy nie byloby dla Ciebie problemem napisac jak wyglada charakter pracy osoby zajmujacej sie tego typu rzeczami jak: low-level C, Linux embedded, Kernel modules?

Z pracą jest różnie :) Jeżeli ma być to sterownik do urządzenia to oczywiście dostajesz urządzenie i (tu się zawsze zaczyna najlepsze) albo dokumentację albo kawałek sterownika np. pod windows który wykonali hardwarowcy do testów no i na tej podstawie piszesz. W zależności od tego czy firma jest nastawiona na kod otwarty czy też nie musisz uważać na funkcje które są exportowane tylko dla modułów GPLowych. Czasami dochodzi do tego, że sterownik piszesz w user space (np. dla USB). Czasami poza wyprodukowaniem sterownika dla Kernela produkuje się coś jeszcze do Xorg-a (ale to już inna działka)
Trochę inaczej wygląda sprawa z board-ami którymi trzeba zaopiekować się od samego początku. Bo tu najpierw trzeba je ożywić, załadować bootloadery, przygotować środowisko do budowanie etc. Jak już doprowadzisz do takiego stanu, że działa Ci Linux to wtedy bierzesz się za sterowniki. Systemy wbudowane są o tyle lepsze, że z reguły robisz coś pod konkretny typ i zastosowanie więc odchodzi masa problemów z "różnymi przypadkami użycia" jakie są na klasycznych PCtach no i błędy z testów łatwiej zreprodukować
Co do samej pracy z kernelem to w jakiejś książce ktoś to fajnie ujął, że poza znajomością środowiska potrzeba odrobiny magii. Na początku system wysypie Ci się parę razy tak, że nie będziesz wiedział co się dzieje, zacznie Ci brakować jakiegoś gdb (co prawda jest kgdb, albo UML) ale z czasem stwierdzisz, że jest ono w zupełności niepotrzebne bo samymi oopsami sobie poradzisz. Inna sprawa to trzeba odejść trochę od stylu programowania jakiego się dzisiaj uczy a zacząć to robić jak ludzie z demosceny sprzed 20 lat (ale do tego też się dochodzi z czasem) no i przestać się obrażać na instrukcje goto :)
Co do firm to ciężko podać mi nazwy (poza wspomnianym Samsungiem (Warszawa) czy DisplayLink-iem w Katowicach [nie wiem czy robią tu akuratnie sterowniki] ). Kojarzę je od HRowców nagabywaczy którzy to czasami do mnie piszą ale nazw podać nie chcą. Oferty bywały głównie pomorza, dolnego śląska, stolicy

konto usunięte

Temat: Programowanie sterowników urządzeń pod jądro Linuxa

W Polsce sterowniki ( moduły ) dla linux-a - ( chętnie piszą tez na specjalne życzenie) tworzy -
Instytut Fotonowy Sp z.o.o .

http://www.fotonowy.pl/

Na temat instytutu:
http://www.linux.pl/?id=article&show=558
http://www.linux.pl/?id=article&show=516
http://www.tinyurl.pl/?nJRwZwxT

konto usunięte

Temat: Programowanie sterowników urządzeń pod jądro Linuxa

A teraz w temacie.

Komunikaty jądra Linux podglądamy przy pomocy dmesg.

programista@workstation:~$ dmesg


Parametry (zmienne) sterujące pracą poszczególnych podzespołów za pomocą modułów (sterowników)
znajdują się w katalogu /proc oraz /sys .

Przykład w video:
http://www.youtube.com/watch?v=wAq4ihIhivg

Oraz artykuł na start z PCWORLD:
"Zrób własny moduł jądra Linuksa"
http://www.pcworld.pl/artykuly/57347/Zrob.wlasny.modul...

Pisanie modułów(sterowników):
http://www.xml.com/ldd/chapter/book/

Pisanie modułów (sterowników) [Aktualna wersja - 3 edycja]
http://lwn.net/Kernel/LDD3/Adam Ł. edytował(a) ten post dnia 31.10.12 o godzinie 21:15
Michał Hanusek

Michał Hanusek Specjalista ds.
systemów

Następna dyskusja:

Programowanie w Qt 4.6 pod ...




Wyślij zaproszenie do