Писање и превођење модула

Слични документи
Модел уређаја – I2C уређај

Domaći zadatak - GUI (rok za sve grupe je ) Napraviti repozitorijum na GitHub-u koji se zove MenjacnicaGUI i postaviti Eclipse projekat menj

Biz web hosting

R u z v e l t o v a 5 5, B e o g r a d, t e l : ( ) , m a i l : c o n t a c p s i t. r s, w w w. p s i t. r s

УПУТСТВО ЗА КОРИСНИКА Приступ локацији часописа Српски архив за целокупно лекарство добија се преко internet adrese: Након

Microsoft PowerPoint - 1. Zend_1 - Instalacija frameworka

MultiBoot Korisnički priručnik

Припејд картица Корисничко упутство

RAD SA PROGRAMOM

KREIRANJE TORRENTA Ako zelite da kreirate torrent fajl od nekog fajla ili foldera u vasem racunaru a kasnije podeliti sa drugim korisnicima i uploadov

UPUTSTVO ZA PODEŠAVANJE MOBILNIH UREĐAJA ZA MMS

Microsoft Word - Uputstvo za koristenje aplikacije GIPKO

Korisničko uputstvo za uslugu ClickPay u Internet bankarstvu KJKP Toplane Sarajevo 1. OPIS USLUGE Usluga ClickPay omogućava prijem unaprijed popunjeno

Упутство за коришћење АМРЕС FileSender услуге

P9.1 Dodela resursa, Bojenje grafa

УПУТСТВО ЗА КОРИСНИКА Приступ локацији часописа Српски архив за целокупно лекарство добија се преко internet adrese: Након

KORISNIČKE UPUTE APLIKACIJA ZA POTPIS DATOTEKA

Računarske mreže Čas 2 Ivana Tanasijević Matematički fakultet, Beograd 1

CARNET Helpdesk - Podrška obrazovnom sustavu e-dnevnik upute za nadzor razrednih knjiga tel: fax: mail:

Slide 1

Računarski praktikum I - Vježbe 01 - Uvod

Često postavljana pitanja u programu OBRT 1. Kako napraviti uplatu u knjizi tražbina i obveza? 2. Kako odabrati mapu/disk za pohranu podataka? 3. Kako

AKD KID Middleware Upute za Macintosh instalaciju V1.0

Startovanje Androida u Windowsu Jednostavno ako zelite mozete instalirati operativni sistem Android u okviru samog Windowsa (to se takodje moze uradit

Upute za instaliranje WordPressa 1.KORAK Da biste instalirali Wordpress, najprije morate preuzeti najnoviju verziju programa s web stranice WordPressa

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]

Kontrola korisnickih racuna (UAC) pomaze tako sto sprecava potencijalno stetne programe da izvrse promene u vasem racunaru i obavestava vas pre izvrse

Korisničke upute za podnošenje zahtjeva za rješavanje spora (žalbe)

** Osnovni meni

Korisničko uputstvo za uslugu ClickPay u Mobilnom bankarstvu BIHAMK 1. OPIS USLUGE Usluga ClickPay omogućava prijem unaprijed popunjenog naloga za pla

Primenjeno programiranje - Vežbe

Apache Maven Bojan Tomić

R u z v e l t o v a 5 5, B e o g r a d, t e l : , e - m a i l : p r o d a j p s i t. r s, w w w. p s i t. r s

Microsoft Word - CCERT-PUBDOC doc

KORISNIČKO UPUTSTVO

Microsoft Word - KORISNIČKA UPUTA za pripremu računala za rad s Fina potpisnim modulom_RSV_ doc

USRIC-816-SRB-QG.pdf

O Nanokinetik NeeS TOC Builder-u NeeS TOC Builder je aplikacija koja se koristi za kreiranje Tabele sadržaja (TOC) za elektronske podneske u NeeS form

UPUTSTVO ZA KRETANJE KROZ EON KORISNIČKI INTERFEJS 1

eOI Middleware Upute za instalaciju

Microsoft PowerPoint - 01 Uvod u operativne sisteme.ppt

Pages from 5527 lite guick guide from PDF - prevod_IO_FC - Serbian.doc

Upute - JOPPD kreiranje obrasca

Microsoft PowerPoint - 13 PIK (Mentor Graphic ASIC).ppt

Primenjeno programiranje - vezbe GUI i baze podataka

SDI Dopis 2014 v2.docx

INTEGRIRANI KNJIŽNIČNI SUSTAV Sustav za podršku Upute za instalaciju: Aleph v22 ZAG

[youtube]t2mptqulvr8[/youtube] [quote]pre svega potrebno je na kompjuteru imati instaliran winrar, koji cemo koristiti za deljenje arhiva i stavljanje

UPUTA za uvođenje JOPPD - prva faza

Microsoft Word - Tehnicka uputstva lica doc

NAZIV PREDMETA UPRAVLJANJE POSLUŽITELJSKIM RAČUNALIMA Kod SIT135 Godina studija 3 Nositelj/i Dipl.ing Valentini Kožica, Bodovna vrijednost 6 predmeta

Корисничко упутство апликације езапослени верзија Рачунски центар Електротехничког факултета, Универзитет у Београду

NACIONALNI REGISTAR IZVORA ZAGAĐIVANJA UPUTSTVO ZA KORIŠĆENJE INFORMACIONOG SISTEMA NACIONALNOG REGISTRA IZVORA ZAGAĐIVANJA Beograd, 2014.

Stiforp uputstvo za isplatu - Kako Zaraditi Novac

NAPOMENA: Studenti na ispit donose kod urađenog zadatka

FAMILY SAFETY - PORODIČNA BEZBJEDNOST Program Family safety veoma je koristan za ograničavanje sadržaja i aplikacija koje učenici mogu koristiti na šk

CARNet Helpdesk - Podrška obrazovnom sustavu e-dnevnik upute za administratore tel: fax: mail: url:

Упутствo за РАДНУ ГРУПУ за израду ПЛАНА ИНТЕГРИТЕТА на wеb апликацији Нацрти плана интегритета налазе се на линку integritet.acas.rs или на сајту Аген

Универзитет у Београду Економски факултет Катедра за економску политику и развој Јавне финансије 2018/19 УПУТСТВО ЗА ПРИЈАВЉИВАЊЕ НА Е-КУРС ИЗ ПРЕДМЕТ

m-intesa ZA KRETANJE BEZ GRANICA... INTESA SANPAOLO BANKA ZA UREĐAJE SVIJET MOGUĆEG.

Slide 1

VALIDNOST CERTIFIKATA ZA PRISTUP INTERNET APLIKACIJAMA POREZNE UPRAVE FEDERACIJE BOSNE I HERCEGOVINE (npis I ejs)

CPHP_19

Zlatna Mastercard kartica Saznaj više na

Microsoft Word - Uputa_WEB_pristup_predmetima_ ver1.doc

ednostavno i veoma kvalitetno mozete film koji ste downloadovali sa interneta u avi formatu pretvoriti u dvd format i kreirati pocetni meni sa sekvenc

Корисничко упутство апликације езапослени верзија Рачунски центар Електротехничког факултета, Универзитет у Београду

UPUTSTVO ZA PODEŠAVANJE EON MENIJA 1

CARNet Helpdesk - Podrška obrazovnom sustavu e-dnevnik upute za administratore tel: fax: mail: url:

Microsoft PowerPoint - PRI2014 KORIGOVANO [Compatibility Mode]

Korisničko uputstvo mobilne aplikacije Digitalni Kiosk 1

Ako koriste Dual boot (imate u racunaru instaliran Linux i Windows Operativni sistem) a za logovanje u zeljeni operativni sistem koristite Linuxov Gru

Korisnicki nalog je skup informacija i postavki koje koristite za interakciju sa racunarom i prilagodite Windows da radi onako kako vi zelite. Sa kori

Sistem za merenje glukoze u krvi Copyright Ascensia Diabetes Care Holdings AG. Sva prava zadržana.

GetDeb je odlican server za Ubuntu softvere i moze vam pruziti instalaciju raznih paketa i aplikacija za vas Linux Ubuntu. Pomocu njega mozemo dobiti

Упутство за пријављивање испита путем интернета Да би студент могао да пријави испит путем интернета мора прво да се пријави. Пријављивање се врши у п

ELEKTRONSKO BANKARSTVO BBI Instalacija USB ključa - Windows XP operativni sistem - Windows Vista i Windows 7 operativni sistem

Microsoft Word - MySQL_3.doc

Microsoft PowerPoint - 6. CMS [Compatibility Mode]

Uputstvo za podešavanje za pristup eduroam servisu za Mac OS X Snow Leopard Copyright AMRES

eППК

ELEKTROTEHNIČKI FAKULTET, UNIVERZITET U BEOGRADU KATEDRA ZA ELEKTRONIKU UVOD U ELEKTRONIKU - 13E041UE LABORATORIJSKA VEŽBA Primena mikrokontrolera

Microsoft PowerPoint - Lab_step_nc2017.ppt [Compatibility Mode]

СТАРТ - СТОП ПАРКИНГ СИСТЕМ КОРИСНИЧКО УПУТСТВО страна 1 од 12

WINDOWS 8 Pre nego sto zapocnete instalaciju operativnog sistema potrebno je u vassem BIOS-u da podesite opciju bootanja sa CD/DVD rooma a zatim ubaci

Trimble Access Software Upute za korištenje V2.0 Geomatika-Smolčak d.o.o.

KATALOG ZNANJA IZ INFORMATIKE

PuTTY CERT.hr-PUBDOC

Upute-podesavanj -accounta

KORISNIČKO UPUTSTVO Online ekspozitura - krediti 05/19 C-EBKWU-02

Univerzitet u Beogradu Mašinski fakultet Konstrukcija i tehnologija proizvodnje letelica PODEŠAVANJE PROGRAMSKOG PAKETA CATIA V5 Miloš D. Petrašinović

Microsoft Word - IQ.doc

Installation manuals

Generated by Foxit PDF Creator Foxit Software For evaluation only. Operativni sistem U računarstvu, operativni sistem (OS

Podešavanje za eduroam – Windows Vista operativni sistem

Modem i lokalna mreža Vodič za korisnika

Транскрипт:

Писање и превођење модула ЦИЉ Научити како се пишу и преводе модули. ИСХОД Након ове вежбе ћете моћи да: Напишете кернел модул са неколико могућности, укључујући параметре Приступите кернелу из вашег модула Поставите окружење за превођење модула Додате код вашег модула у кернел стабла и да изградите кернел закрпу из вашег новог изворног кода Креирате једноставан знаковни руковалац Добијете од кернела слободан major број и направите одговарајућу датотеку уређаја Коришћењем kmalloc и kfree функција управљате меморијом. ПОСТАВКА Позиционирајте се у директоријум ~/linux-kernel-labs/src/linux који садржи кернел за RPI са github репозиторијума https://github.com/raspberrypi/linux и затим од полазне гране rpi-4.4.y направите нову грану dan07 и позиционирајте се у исту: git checkout rpi-4.4.y git checkout -b dan07

Позиционирајте се у директоријум ~/linux-kernel-labs/modules који садржи коренски систем датотека за RPI и затим од чисте полазне гране master направите нову грану dan07 и позиционирајте се у исту: git checkout master sudo git clean -fxd git checkout -b dan07 Распакујте архиву са коренским системом датотека са наставних материјала у тренутни директоријум: sudo tar xvjf rootfs.tar.bz2 -C nfsroot/ Поставите на следећи начин власнике појединих датотека: sudo chown -R rtrk.rtrk nfsroot/root КОНФИГУРАЦИЈА И ПОКРЕТАЊЕ ЛИНУКС КЕРНЕЛA За конфигурацију је потребно искористити подразумевану конфигурацију за bcm2709 (bcm2709_defconfig). Пре постављања конфигурације и покретања превођења кернела је потребно подесити одговарајуће окружење за унакрсно превођење (ARCH и CROSS_COMPILE). Након примене подразумеване конфигурације додатно подесити сопствени суфикс за верзију кернела. Преведен кернел покренути из U-boot-а. За rfs користити директоријум nfsroot преко мреже. ПИСАЊЕ И ПРЕВОЂЕЊЕ МОДУЛА Позиционирати се у nfsroot/root/hello директоријум. Попунити hello_version.c датотеку са одговарајућим кодом тако да се при учитавању модула прикаже порука: Hello Master. You are currently using Linux <version>. Такође, потребно је приказати и поздравну поруку приликом уклањања модула.

У истом директоријуму се налази и Makefile датотека која омогућава превођење модула ван структуре кернел стабла. Упознајте се са садржајем ове датотеке, по потреби прилагодите путање и преведите модул. Напомена: Обавезно је поставити окружење за унакрсно превођење и приликом превођења модула. ТЕСТИРАЊЕ МОДУЛА САВЕТИ Учитати нови модул. Проверити да ли ради као што је очекивано. Док не проради, уклонити га, модификовати код, превести и поново покренути колико год је пута потребно. Покренути команду за проверу учитаних модула. Након тога, покушати доћи до исте информације само коришћењем cat команде. ДОДАВАЊЕ ПАРАМЕТАРА У МОДУЛ Додати who параметар у модул. Модул би требало да испише Hello <who> уместо Hello Master. Превести и тестирати модул проверавајући да ли прихвата who параметар при учитавању. ДОДАВАЊЕ ИНФОРМАЦИЈЕ O ВРЕМЕНУ Изменити поздравну поруку модула тако да прикаже и колико је секунди протекло од учитавања модула. За добављање тренутног времена се може користити функција do_gettimeofday().

ЈЕДНОСТАВАН ЗНАКОВНИ РУКОВАЛАЦ Претворити модул у једноставан знаковни руковалац. Препустити кернелу доделу Major броја, а за Minor број користити 0. Попунити read, write и ioctl операције модула на следећи начин: read Попунити бафер из корисничког простора садржајем бафера динамички заузетог приликом иницијализације модула. write Потребно је прослеђени стринг из корисничког простора сместити у унапред динамички заузет бафер. ioctl У зависности од прослеђене команде урадити следеће: 0 пребацити у мала слова цео садржај бафера динамички заузетог приликом иницијализације модула 1 - пребацити у велика слова цео садржај бафера динамички заузетог приликом иницијализације модула Омогућити приступ модулу из корисничког простора креирањем одговарајуће датотеке уређаја уколико је потребно тестирати и додате функције. За тестирање write операције користити команду echo, за read операцију користити команду cat, а за ioctl операцију превести ioctl.c са истим преводиоцем и обавезно статичким увезивањем (опција -static) и користити добијени програм као тестни. ЛИНУКС СТАНДАРД КОДОВАЊА Приликом кодовања би требало да се придржавате стриктних сатандарда кодовања, уколико желите да једног дана и тај код буде укључен у изворни код Линукса. Један од главних разлога за то је читљивост кода. Ако би свако користио

свој стил, узимајући у обзир велики број контрибутора, читање кода кернела би било веома непријатно. Срећом, Линукс кернел заједница нуди алат за проверу доследности у придржавању стандарду кодовања. Покрените scripts/checkpatch.pl -h команду у изворном коду кернела да бисте проверили доступне опције. Након тога покрените: ~/linux-kernel-labs/src/linux/scripts/checkpatch.pl --no-tree hello_version.c --file Проверите колико недоследности је пријављено за ваш код и уносите исправке док год има недоследности. Уколико је пријављено много грешака, проверите да ли вам је на коректан начин конфигурисан едитор, према правилима стила кодовања кернела из Documentation/CodingStyle. ДОДАВАЊЕ HELLO_VERSION КОДА У КЕРНЕЛ КОД Додати изворни код модула у drivers/misc/ директоријум у кернел коду. Модификовати одговарајуће конфигурационе датотеке и Makefile како би модул постао видљив у конфигурационим алатима (xconfig, menuconfig ) и како би могао да се преведе заједно са кернелом. Када модул постане видљив у конфигурационим алатима изабрати да се преводи као модул. Покренути превођење кернела. По завршетку превођења кернела, модуле инсталирати у nfsroot командама: sudo chown -R rtrk.rtrk <putanja do nfsroot direktorijuma>/lib/ make modules_install INSTALL_MOD_PATH=<putanja do nfsroot direktorijuma> sudo chown -R root.root <putanja do nfsroot direktorijuma>/lib/

КРЕИРАЊЕ ЗАКРПЕ Креирати закрпу која ће додавати изворни код новог модула у чист кернел код, али и извршити потребне промене у конфигурационим датотекама и Makefileовима. Тестирати закрпу применом на чист кернел код. САЧУВАЈТЕ СВЕ ИЗМЕНЕ Да бисте потврдили и сачували све измене, најбоље је да их додате, а потом и локално комитујете на GIT, док сте позиционирани у неки од директоријума репозиторијума који је мењан, нпр. ~/linux-kernel-labs и исто за ~/linux-kernel-labs/src/linux: git add -A git commit -as -m "dan07 zavrsen" Да би измене постале видљиве и у репозиторијуму на серверу, потребно би још било урадити нпр. git push, али то у овом случају није неопходно нити имамо неопходна права за то.