This shows you the differences between two versions of the page.
so2:laboratoare:lab04:exercitii [2018/03/14 07:53] ionel.ghita [Exerciții] |
so2:laboratoare:lab04:exercitii [2019/03/12 21:54] (current) constantin.ghioc [1. [2p] Înregistrarea unui dispozitiv de tip caracter] |
||
---|---|---|---|
Line 108: | Line 108: | ||
<note tip> | <note tip> | ||
- | La căutarea simbolurilor în [[https://elixir.bootlin.com/linux/v4.15/source|LXR]], asiguraţi-vă că selectaţi aceeaşi versiune de kernel ca cea din laborator(4.15). | + | La căutarea simbolurilor în [[https://elixir.bootlin.com/linux/v4.15/source|LXR]], asiguraţi-vă că selectaţi aceeaşi versiune de kernel ca cea din laborator (4.19). |
Pentru cscope, folosiți comanda '':cs f g //nume//'' pentru căutarea definiţiilor şi comanda '':cs f s //nume//'' pentru căutarea simbolurilor. Pentru mai multe informaţii despre comenzile disponibile folosiţi comanda '':help cscope''. | Pentru cscope, folosiți comanda '':cs f g //nume//'' pentru căutarea definiţiilor şi comanda '':cs f s //nume//'' pentru căutarea simbolurilor. Pentru mai multe informaţii despre comenzile disponibile folosiţi comanda '':help cscope''. | ||
Line 115: | Line 115: | ||
===== [10.5p] Character Device Driver ===== | ===== [10.5p] Character Device Driver ===== | ||
- | ==== 1. [1p] Înregistrarea unui dispozitiv de tip caracter ==== | + | ==== 1. [2p] Înregistrarea unui dispozitiv de tip caracter ==== |
Driver-ul va controla un singur dispozitiv cu majorul ''MY_MAJOR'' și minorul ''MY_MINOR ''(macro-urile definite în fișierul ''kernel/so2_cdev.c'') Ca prim pas, va trebui să creați fișierul de tip caracter ''/dev/so2_cdev'' folosind utilitarul ''mknod''. | Driver-ul va controla un singur dispozitiv cu majorul ''MY_MAJOR'' și minorul ''MY_MINOR ''(macro-urile definite în fișierul ''kernel/so2_cdev.c'') Ca prim pas, va trebui să creați fișierul de tip caracter ''/dev/so2_cdev'' folosind utilitarul ''mknod''. | ||
Line 132: | Line 132: | ||
</note> | </note> | ||
- | Afișati, folosind macro-ul ''LOG_LEVEL'', un mesaj după operațiile de înregistrare, respectiv deînregistrare, care să confirme realizarea cu succes a acestora. | + | Afișati, folosind ''pr_info'', un mesaj după operațiile de înregistrare, respectiv deînregistrare, care să confirme realizarea cu succes a acestora. |
Încărcați apoi modulul în kernel<code> | Încărcați apoi modulul în kernel<code> | ||
Line 254: | Line 254: | ||
</note> | </note> | ||
- | ==== 7. [2p] Operație de tip ''ioctl''. ==== | + | ==== 7. [1p] Operație de tip ''ioctl''. ==== |
Pentru acest exercițiu dorim să adăugăm operația ioctl ''MY_IOCTL_PRINT'' care să afișeze mesajul dat de macro-ul ''IOCTL_MESSAGE'' din driver. Urmăriți comentariile marcate cu ''TODO 6''. | Pentru acest exercițiu dorim să adăugăm operația ioctl ''MY_IOCTL_PRINT'' care să afișeze mesajul dat de macro-ul ''IOCTL_MESSAGE'' din driver. Urmăriți comentariile marcate cu ''TODO 6''. |