Differences

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

Link to this comparison view

si:laboratoare:2025:11 [2026/01/11 20:30]
florin.stancu created
si:laboratoare:2025:11 [2026/01/11 20:37] (current)
florin.stancu
Line 162: Line 162:
 0. **Pregătirea** imaginii de kernel si a header-elor de kernel 0. **Pregătirea** imaginii de kernel si a header-elor de kernel
  
-În cadrul laboratorul de astăzi, vom lucra cu module de kernel Out-of-Tree,​ pe un Raspberry PI fizic. Compilarea modulelor se va face in afara RPi-ului. Va fi nevoie de kernel-ul compilat in [[https://​ocw.cs.pub.ro/​courses/​si/​laboratoare/​08|laboratorul ​8]], care trebuie sa fie instalat pe Raspberry PI.+În cadrul laboratorul de astăzi, vom lucra cu module de kernel Out-of-Tree,​ pe un Raspberry PI fizic. Compilarea modulelor se va face in afara RPi-ului. Va fi nevoie de kernel-ul compilat in [[https://​ocw.cs.pub.ro/​courses/​si/​laboratoare/​2025/09|laboratorul ​9]], care trebuie sa fie instalat pe Raspberry PI.
  
 Codul modulelor de kernel se afla [[https://​github.com/​cs-pub-ro/​embedded-systems/​tree/​master/​lab09|aici]]. Codul modulelor de kernel se afla [[https://​github.com/​cs-pub-ro/​embedded-systems/​tree/​master/​lab09|aici]].
Line 172: Line 172:
 <​code>​KDIR=<​locatia_kernel-ului_linux>​ CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64 make</​code>​ <​code>​KDIR=<​locatia_kernel-ului_linux>​ CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64 make</​code>​
  
-<​note>​Revizitați [[https://​ocw.cs.pub.ro/​courses/​si/​laboratoare/​05|laboratorul ​05]] pentru a va reaminti despre cross-compiling.</​note>​+<​note>​Revizitați [[https://​ocw.cs.pub.ro/​courses/​si/​laboratoare/​2025/06|laboratorul ​06]] pentru a va reaminti despre cross-compiling.</​note>​
  
 Copiați și incărcați modulul hello.ko pe RPi și verificați că mesajele sunt afișate. Copiați și incărcați modulul hello.ko pe RPi și verificați că mesajele sunt afișate.
Line 248: Line 248:
 ===== Character driver ===== ===== Character driver =====
  
-Implementarea unui character driver pentru Linux presupune scrierea unui modul care urmărește aceeași [[https://​ocw.cs.pub.ro/​courses/​si/​laboratoare/​09#​modulul_hello_world| structură]] folosită și în laboratorul 9. Pentru a putea folosi însă interfața de comunicare specifică unui character driver este necesar ca modulul să se înregistreze ca un character driver și să implementeze anumite operații.+Implementarea unui character driver pentru Linux presupune scrierea unui modul de kernel. Pentru a putea folosi însă interfața de comunicare specifică unui character driver este necesar ca modulul să se înregistreze ca un character driver și să implementeze anumite operații.
  
 ==== Înregistrare ==== ==== Înregistrare ====
Line 454: Line 454:
  * Header-ele de kernel (identice cu cele de la laboratorul 9) le găsiți [[https://​drive.google.com/​file/​d/​1SSSs4UAVU74yyW5j3t2m7OpS0un5Mby5/​view?​usp=sharing|aici]]  * Header-ele de kernel (identice cu cele de la laboratorul 9) le găsiți [[https://​drive.google.com/​file/​d/​1SSSs4UAVU74yyW5j3t2m7OpS0un5Mby5/​view?​usp=sharing|aici]]
   
-Porniți noul kernel cu vechea imagine (.img-ul) de RaspberryPi de la [[https://​ocw.cs.pub.ro/​courses/​si/​laboratoare/​03|laboratorul ​03]].+Porniți noul kernel cu vechea imagine (.img-ul) de RaspberryPi de la [[https://​ocw.cs.pub.ro/​courses/​si/​laboratoare/​2025/10|laboratorul ​10]].
  
 **Ex. 1** - Compilați modulul de kernel pentru **driver-ul de GPIO PL061** de {{:​si:​laboratoare:​pl061.tgz|aici}} **Ex. 1** - Compilați modulul de kernel pentru **driver-ul de GPIO PL061** de {{:​si:​laboratoare:​pl061.tgz|aici}}
si/laboratoare/2025/11.txt · Last modified: 2026/01/11 20:37 by florin.stancu
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