Differences

This shows you the differences between two versions of the page.

Link to this comparison view

so2:laboratoare:lab04:exercitii [2018/03/14 07:52]
ionel.ghita [[0.5p] Intro]
so2:laboratoare:lab04:exercitii [2019/03/12 21:54] (current)
constantin.ghioc [1. [2p] Înregistrarea unui dispozitiv de tip caracter]
Line 83: Line 83:
 </​code>​ </​code>​
 </​note>​ </​note>​
 +
 +===== Exerciții =====
  
 <note warning> <note warning>
Line 91: Line 93:
   * Citiți cu atenție toate precizările unui exercițiu înainte de a începe rezolvarea acestuia.   * Citiți cu atenție toate precizările unui exercițiu înainte de a începe rezolvarea acestuia.
 </​note>​ </​note>​
- 
- 
-=== Exerciții === 
  
 <note important>​ <note important>​
-Înainte de începerea rezolvării laboratorului,​ rulați comanda ''​git pull --rebase''​ in directorul ''​~/​so2/​linux'',​ pentru a obține ultima versiune a scheletului de laborator.+Înainte de începerea rezolvării laboratorului,​ rulați comanda ''​%%git pull --rebase%%''​ in directorul ''​~/​so2/​linux'',​ pentru a obține ultima versiune a scheletului de laborator.
 </​note>​ </​note>​
  
Line 109: 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 116: 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 133: 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 255: 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''​.
so2/laboratoare/lab04/exercitii.1521006733.txt.gz · Last modified: 2018/03/14 07:52 by ionel.ghita
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0