際際滷

際際滷Share a Scribd company logo
Device Driver
Linux Device Driver  Contents
1. Linux Kernel
    1)   蟲譟
    2)   蠍磯

2. Device Driver 螳脚
    1)   Character Device Driver
    2)   Block Device Driver
    3)   Network Device Driver

3. Linux Device Model
    1)   udev
    2)   sysfs, kobject, device class
    3)   Hotplug


4. CAANOO Character Device Driver Example
    1)   Vibration Motor
    2)   Analog Joystick




                                            GPH
1. Linux Kernel
Linux Device Driver  1. Linux Kernel
1) 蟲譟




                                        GPH
Linux Device Driver  1. Linux Kernel




                                        GPH
Linux Device Driver  1. Linux Kernel
2) 蠍磯
    襦語 蟯襴
     - 襦語  覦 覃
     - 襦語り 旧
     - etc.

    覃覈襴 蟯襴
     - 螳 覃覈襴 蟯襴蠍磯 螻
     - ろ レ逢 覃覈襴(Hardware) 蟯襴

     ろ 蟯襴
     - 螳  ろ(VFS)  れ 譬襯  ろ(ext3, ext4, FAT ) 讌
     - (蠏 , レ , 危), 襴 蟯襴

    覦伎 蟯襴
     - 豢 豌 豌襴 覦  れ譽企
     - 誤磯渚 豌襴
     - 譯朱 レ 覃覈襴 一危 

    ろ語 蟯襴
     - ろ語 殊壱 覦 譯殊




                                                                 GPH
2. Device Driver 螳脚
Linux Device Driver  2. Device Driver 螳脚
 Linux Device Driver?
 - ろ 讌 企ゼ 襦蠏碁   襦 Kernel 螻牛 殊企襴(or
   Interface).

 - 朱朱 覓語, 觚襦, ろ語 覦伎 殊企襦 覿襯 覃 /dev .
   example:


                          譯 覯    覿 覯



   覓語 殊企




  觚襦 殊企




                                                               GPH
Linux Device Driver  2. Device Driver 螳脚
 - 螳  豌 蠍螳 覦伎れ (c 覓語 殊企, b 觚襦殊企) 碁.

 - れ 覯讌 伎  譯 覯,  覯讌  覿 覯碁ゼ 覩.
   ( 覓語 觚襦 殊企 襦 るジ  谿讌覩襦 狩 譯 覯碁ゼ 觚襦 殊企
    訖襷  覓語 殊企    .)

 - 譯 覯碁 覦 殊企 轟 讌, 覿 殊企螳 觜ろ  覦伎 
  讌 讌(mtdblock0, mtdblock1 谿瑚).




                                                       GPH
Linux Device Driver  2. Device Driver 螳脚
1) Character Device Driver
 Char Device Driver  覦 轟
 - 覓語 覦伎る  殊    蟆(覯, G-Sensor, Analog Joystic, RTC ) 襷螻 覓語
    覦伎 殊企 企  蠏殊  open, close, read, write煙 ろ 語 蟲.

- 覦伎れ 襭 谿(sequentially)朱 蠏 螳ロ 貉る 貊

-  蠍語企ゼ 螳 覓語伎 る 覦伎 殊企襦  襦蠏碁 讌朱 語 覯 
    覦伎 殊企.

- 襦蠏碁 open(), close(), read(), write() 螳  豌襴 襯 伎 覦伎 殊 朱 
   殊 る 企ゼ 危  .

- 蟲譟郁 襷れ 螳.




                                                                          GPH
Linux Device Driver  2. Device Driver 螳脚
 Character Device Driver 蠍磯.
- 覦伎るゼ 豐蠍壱覃 焔襯  貉る  殊企襯 觜 (焔) 蠍磯レ 豈讌
   豐蠍壱(init()) 襭.

- 蟯 /dev 碁襯   危襴貅伎 語 豢 ろ 語螻 讌  open(),
   close(), read(), write() 螳 讌 讌.

- interrupt handling, bottom half, timer handling 煙 豌襴.




                                                                 GPH
Linux Device Driver  2. Device Driver 螳脚
 Character Device Driver 譯殊 襭蟲譟.
- 覦伎る 蟲譟一牡: 殊企   覲 レ襦 

- struct cdev: 覓語 殊企 貉る 豢 , 朱朱 覦伎る 蟲譟一牡 .

- struct file_operations:  危襴貅伎螻  open, close, read, write 蟲.

- struct file: 企 /dev 碁  覲.

- struct platform_device, struct platform_driver: platform_bus朱 螳  覯  襦 覦伎るゼ
    焔.




                                                                                     GPH
Linux Device Driver  2. Device Driver 螳脚
 Character Device Driver example.
- 讌 殊企: 貉危一 讌 碁ゼ 蟯襴 覓語 殊企. (drivers/serial)

-  殊企: る慨, 襷一, 譟一伎ろ 螳 覦伎るゼ る 豈. (drivers/input)

-  覯: 觜 覃覈襴  蠏 螻. (drivers/video)

- 伎 襷  Character Device Driverれ 譟伎. (grep r register_chrdev drivers/襦 )




                                                                                     GPH
Linux Device Driver  2. Device Driver 螳脚
2) Block Device Driver
- 觚襦 覦伎る  蠏 ルレ 螳豢 レ 襷れ牡.

- 覓語 覦伎れ 襴 觚襦覦伎る  ろ 襭襯 伎  (ろ 螳  襷れ牡襯 
   襭).

- 覿覿  覦伎り 觚襦(512, 1024,  4096 Byte) 豢レ 蠍磯朱 螻 .

- 豢 れ譽企螳 .




                                                                 GPH
Linux Device Driver  2. Device Driver 螳脚

                     PC ろ レ 襷れ牡




                                            GPH
Linux Device Driver  2. Device Driver 螳脚

                     Linux 觚襦 豢




                                            GPH
Linux Device Driver  2. Device Driver 螳脚
 豢 れ譽企

   豢 れ譽企                         る                           Kernel Source
   Deadline        - 譴 elevator 螻襴讀朱 豌 豌 麹 覯碁ゼ 蠍一朱     block/deadline-iosched.c
                     覲 .
                   - 豢 豌 伎 蟲苦朱(starvation) 覦讌蠍 
                                                              (2.6 kernel)
                   deadline れ.

   Anticipatory    - 蠍磯蓋 螻襴讀 Deadline螻 螳讌襷, 所鍵 豌   覩   Block/as-iosched.c
                   襴 企 螳襷 豢螳 豌 覃 蠍.
                                                              (2.6 kernel)


   Complete Fair   - 豌 襦語る 豌襯  讌朱 襦語          Block/cfq-iosched.c
                   襷 豢レ 螻牛 蠍壱襯 至 .
   Queuing (CFQ)   - 轟 襦語る覓語 るジ 襦語り 蟲苦 譯暑  覦讌.
                                                              (2.6 kernel)


   Noop            - 豕 曙 讌 谿剰鍵  豌襯   螳        Block/noop-iosched.c
                   觜讌 .
                   -  讌 螳 譟伎讌  SSD螳 襷れ牡 伎.
                                                              (2.6 kernel)




                                                                                         GPH
Linux Device Driver  2. Device Driver 螳脚
 覲伎^ 蠍一 レ 覦伎 
 - 觚襦 覦伎 殊企 譯 覯碁 觚襦 覦伎るゼ 蟲覲螻, 覿 覯碁 覓朱Μ 覲伎^ 蠍一
   レ襯 蟲覲蟇磯 覿 一 蟲覲.
 - 襴れ 觚襦 覦伎 レ
   brw-rw----   1 root disk   8,    0 2010-11-03 18:23 sda
   brw-rw----   1 root disk   8,    1 2010-11-03 18:23 sda1
                                                              一 2螳(FAT-sdb1, Ext3-
   brw-rw----   1 root disk   8,    2 2010-11-03 18:23 sda2
   brw-rw----   1 root disk   8,    5 2010-11-03 18:23 sda5   sdb2) 企 ろ(sdb)
   brw-rw----   1 root disk   8,   16 2010-11-15 13:56 sdb         觚襦覦伎 
   brw-rw----   1 root disk   8,   17 2010-11-15 13:56 sdb1
   brw-rw----   1 root disk   8,   18 2010-11-15 13:56 sdb2

 - 觚襦 覦伎れ 襷危 覲
   殊ろ                蠍  螳 % 襷危 
   /dev/sda1           284G 109G 161G 41% /
   none              1.7G 284K 1.7G 1% /dev
   none              1.7G 252K 1.7G 1% /dev/shm
   none              1.7G 1.2M 1.7G 1% /var/run
   none              1.7G 4.0K 1.7G 1% /var/lock              2螳 一(FAT-sdb1, Ext3-
   none              1.7G 0 1.7G 0% /lib/init/rw              sdb2) mount  覲
   /dev/sdb1            70M 2.6M 67M 4% /media/BOOT
   /dev/sdb2           3.6G 1.6G 1.9G 46% /media/ROOTFS




                                                                                        GPH
Linux Device Driver  2. Device Driver 螳脚
3) Network Device Driver
- ろ語 覦伎 殊企 るジ 殊企 るゴ蟆  螻 旧蠍  /dev /sys 譟危讌
   .

- 危襴貅伎 蠍磯 襦貊 ろ 豢 ろ語 誤壱伎(ex eth0)襯 蟇一 殊企 語
   .




                                                             GPH
Linux Device Driver  2. Device Driver 螳脚

                   ろ語 ろ る 誤磯 覈




   朱朱 企 襭襯 危危 覩碁 layer.
   (HTTP覯 企殊伎誤語 蟯螻  伎 豌
               螻 旧 )

           point-to-point 旧 企.
   (語ろ 企 譬 伎 殊企 旧 蟯襴)


            血 覈讌襦 .
       (語ろ 伎 殊企 旧 蟯襴)


   覓朱Μ豸旧 蠏狩 覦伎 殊企襯 谿語^. (讌 
        蟆 轟 企 覦伎り 襷れ牡)




                                            GPH
Linux Device Driver  2. Device Driver 螳脚

                    襴 ろ語 ろ 蟲譟



                                 襦蠏碁 貉る ろ語  
                                       蠏狩 API襯 螻


                              襦貊 譴襴 螻豸(貅): れ 襦貊  螻牛
                                     讌 螻牛 Interface.


                              TCP, UDP  螳ロ 轟 ろ語 襦貊 
                                               .



                              れ 蠍磯レ  覦伎 殊企襯 襦貊
                                   襦 郁屋 譴襴 誤壱伎 螻豸.


                              覓朱Μ ろ語 覦伎るゼ 蟯襴 覦伎 
                                           企.




                                                                 GPH
Linux Device Driver  2. Device Driver 螳脚
 Network Device Driver 襭 蟲譟.
- 貅 覯(struct sk_buff): ろ語 襦貊 ろ 蟲 襯 燕 蟲譟一牡企 貉る TCP/IP ろ
   伎 旧 蟲譟一牡. (include/linux/sk_buff.h)

- struct net_device: Network driver 襦貊 ろ 伎 誤壱伎るゼ  蟲譟一牡.
    (include/linux/netdevice.h)

- I/O 覯れ 蟯 蟲譟一牡: PCI  CPU Address/Data bus




                                                                    GPH
3. Linux Device Model
Linux Device Driver  3. Linux Device Model
 Linux Device Model(LDM) 螳脚.
- Power management and system shutdown: 襯 れ USB host adaptor host 郁屋 device
   れ 覈 朱 power off(or shut down)  power off伎  LDM 企 覦
   襯 谿 企  襦 .

- Communications with user space: 螳  ろ sysfs LDM螻 襷れ 覦蟆 郁 
   朱 蟲譟壱 LDM 襭蟲譟磯ゼ user space .

- Hotpluggable devices: USB 企 ろ 螳 レ ろ  譴  語 曙
   (plugging)/蟇(unplugging)   . 貉る 伎 螳 蟇(event)れ LDM 伎 る
   螻(handling)  螻 (communicate).

- Device Classes: 襦 ろ 企 譬襯 覦伎り 郁屋 讌 狩 煙
   . LDM 郁屋 覦伎るゼ 蠏瑚 蟆    企る 覿襯 覃貉る讀
    螳讌螻 朱, 覦伎り  (user space) 覦蟆  襦 .




                                                                           GPH
Linux Device Driver  3. Linux Device Model
1) udev
 - 豐谿所鍵覿 2.4覯 貉る (豌 螳 企ゴ)  覦伎 碁襯 /dev 朱 襷
    伎朱 .

 - 2.4覯 企ゴ 朱 覦伎 碁襯 燕 devfs襯 讌襷, 碁 覈 
     覦伎 殊企 譟.

 - 覦伎 蟯襴襯  朱 蠍郁鍵  udev螳 煙.




                                                       GPH
Linux Device Driver  3. Linux Device Model
 udev  伎 譟危 .
- Kernel Sysfs 讌: sysfs 襴 覦伎 覈語 譴 豺襯 谿讌覃, sysfs 覃覈襴 
   覿  ろ朱   /sys mount .  る udevd udevinfo sysfs
   襯 谿瑚 蟆 .

- udevd udevinfo 螳   demon螻 utility.

- /etc/udev/rules.d/ 磯Μ   讌 蠏豺.




                                                                GPH
Linux Device Driver  3. Linux Device Model
 udevd 磯  Example (CAANOO)




                                              GPH
Linux Device Driver  3. Linux Device Model
  讌 蠏豺 Example(CAANOO SD/MMC)


                                  SD/MMC
                                 蠏豺 




                                              SD/MMC
                                               Insert




                                              SD/MMC
                                              Remove




                                                        GPH
Linux Device Driver  3. Linux Device Model
 覯 ろ udev
-  螳 伎襦 誤 轟 覯 ろ udev襯 蠍 覲企 朱 燕 覦伎 碁
   襯 誤蠍磯 .

      udev 語 れ 螻殊  覯襷 襷れ伎  碁 襴  襷 /dev碁襯
       燕. /dev 磯Μ螳  レ襯  蟆曙 襷る  螻殊 讌郁鍵/郁鍵 螻殊 蟇
       豺覩襦,  覈 譴企.

      udev襯 覃 ろ  螳  る 蟇碁Π.

      /dev碁襯 朱 燕覃 覈 朱  udev蠍磯レ 轟 覈朱  覯
        覦伎れ 狩螻 苦 觜蟆一煙 磯朱る. 麹 蠏 螳ロ 覯るゼ 蟇一 碁 語
       螻 語 讌  蟆曙一 覓語螳 . 企 蟯 磯ゴ覃  碁 炎骸   覈
        覃覈襴 襴 覦 ろ  旧襯 螳覃, ろ碁ゼ 危蟆 .




                                                              GPH
Linux Device Driver  3. Linux Device Model
2) sysfs, kobject, device class
 - sysfs, kobject, device class 覦伎 覈語 蠍一 蟲煙伎襷, 覿覿 蟆曙 覦朱 讌 
     . (讀 讌朱 殊企 煙 襦蠏碁襾瑚 る蟇磯 蟯 source襯  殊 蟇一 .)

 - sysfs 貉る 蟲譟壱 覦伎 覈語  朱 企. sysfs 貉る 襭 蟲譟一  覲
     襯  覃覈襴 蠍磯  ろ企朱  procfs 讌襷, procfs螳 貉る 企襦 牛 朱
      interface襯 螻牛 覦覃, sysfs 覦伎 覈語 麹 interface襦 udev リ鍵 覿覿
     sysfs 譟危.

 - kobject 谿語^ 豺伎危 螳 螻牛 螳豌 煙 豢燕襯 讌. 朱朱 kobject   蟲譟一牡(e.g.
    struct device) 伎ル. kobject 蟲譟一牡 譯殊 field 伎 れ螻 螳.
         谿語^ 豺伎危 蟯襴襯 蠍  kref
         kobject螳  螳豌 讌 kset  誤
         Kobject襯 蠍一 螳豌  kobj_type

 - kobject sysfs 覦 蟯 . 貉る 企 語ろ伎る 襷れ伎 覈 kobject螳 sysfs 
    .

 - 覦伎 企 螳 覦伎 覈語  るジ 轟企, 殊企 蠍磯ゼ  interface企.
    企 誤壱伎る 覦伎る   覦伎 企( 覯譯) る 螳 豢. (e.g.
    usb 襷一, ps/2 る慨, 譟一伎ろ煙  企れ 覃 /sys/class/input企朱  覈 
    蟆 .)




                                                                         GPH
Linux Device Driver  3. Linux Device Model

              USB Mouse螳 曙 覦伎 企




                                              GPH
Linux Device Driver  3. Linux Device Model

                                USB Mouse sysfs 螻豸

      [/sys]
           +[block]
           -[bus][usb][devices][usb2][2-2][2-2:1.0]-[usbendpoint:usbdev2.2-ep81]
           -[class]-[input][mouse2][device][bus][usbendpoint:usbdev2.2-ep81]
                 -[usb_device][usbdev2.2][device][bus]
                 -[usb_endpoint][usbdev2.2-ep00][device]
                              [usbdev2.2-ep81][device]
           -[devices][pci0000:00][0000:00:1d:1][usb2][2-2][2-2:1.0]
           +[firmware]
           +[fs]
           +[kernel]
           +[module]
           +[power]




                                                                                        GPH
Linux Device Driver  3. Linux Device Model

             RTC 殊企 覈 貉る 語  豌襴 蟆暑




                                              GPH
Linux Device Driver  3. Linux Device Model
2) Hotplug
- 譴 ろ 朱 郁屋 蟆 Hotplug手 .

- 豕 襴 貉る hotplug襯 螳讌覃 netlink貅 蟇一  朱 uevent襯 覲企碁.

- netlink 貅 貅 API襯 伎 貉る螻   伎 旧 螳ロ蟆 襷  襷れ擦讀
   企.

-    覦伎 碁 炎骸 襯 蟯襴 udevd 磯 uevent襯 覦 蠏碁ゼ 蟯襴.




                                                                  GPH
4. CAANOO Example
Linux Device Driver  4. CAANOO Example
1) Vibration Motor
- Hardware 蟲:
       2EA AC-type Vibration Motor
       2EA Vibration Motor Controller chip (ISA1200)

- Hardware 郁屋:
        螳 ISA1200 i2c襦 郁屋 螻, 企ゼ 牛 MCU(POLLUX) 襦覿 螳譬 command
        (enable/disable, AC/DC motor type ) 覦.
        螳 ISA1200 MCU襦覿  PWM殊語 螻旧覃 MCU PWM duty觜襯 伎
        覈一 瑚鍵(螳/)襯 譟一.

- source file location: <Kernel Top Dir>/drivers/haptic/simple_isa1200.c




                                                                           GPH
Linux Device Driver  4. CAANOO Example

                  Vibration Motor Block Diagram




                        ISA1200
                       Command




                                  RAM

                                                  Vibration
                                                  Strength
                                                   control




                                                              GPH
Linux Device Driver  4. CAANOO Example
                   PWM 語 讌 瑚鍵




                                          GPH
Linux Device Driver  4. CAANOO Example
 source code  覦伎 殊企  讌(init)螻 譬襭 讌(exit)




                                                      覦伎 殊企 
                                                       讌:
                                                      -  覦伎 蟲譟
                                                      豌企ゼ 朱 麹螻
                                                      覦伎れ 殊企襯
                                                      焔




                                                      覦伎 殊企 譬
                                                      襭 讌:
                                                      - 焔  覦
                                                      れ 殊企 蟇



                                                      殊企 /譬襭讌
                                                      覈


                                                                 GPH
Linux Device Driver  4. CAANOO Example
 source code  platform_device, platform_driver
   - platform_device 轟  誤 


   - platform_driver 




                                                   GPH
Linux Device Driver  4. CAANOO Example
 source code  platform_device, platform_driver
                                                     i2c Driver register
   - probe() method.




                                                   cdev  file_operations 焔
   - remove() method.




                                                                               GPH
Linux Device Driver  4. CAANOO Example
 source code  struct file_operations

     Application Code Source

    fd = open(const char *pathname, int flags);




              Device driver Code Source
               int xxx_open(struct inode * inode, struct file *filp)
               {
                    /*   */
                    return ret;
               }




                                                                       GPH
Linux Device Driver  4. CAANOO Example
 source code  struct file_operations




 source code  /sys /dev Vibration Motor




 File operations Example  Haptic_test




                                               GPH
Linux Device Driver  4. CAANOO Example
2) Analog Joystick
- Hardware 蟲:
       X, Y 2螳 豢朱 蟲焔 Analog Joystick

- Hardware 郁屋:
       X, Y 螳螳 豢 MCU ADC(Analog to Digital Converter) Pin 2EA 郁屋

- source file location: <kernel top dir>/drivers/i2c/chips/ad7993.c




                                                                        GPH
Linux Device Driver  4. CAANOO Example
 source code  覦伎る 蟲譟一牡




                                          GPH
Linux Device Driver  4. CAANOO Example
 source code  platform_device probe() 襭伎 Input Device 豐蠍壱




                                                                 CAANOO Analog
                                                                 Joystick螻 Button
                                                                 Linux Input Device
                                                                 Interface 襦   
                                                                 蠍  豌襴




                                                                               GPH
Linux Device Driver  4. CAANOO Example
 source code  Device   Sysfs 襷り鍵.




躯  蟆郁骸 




                                           GPH
Linux Device Driver  4. CAANOO Example
Sysfs Examples
                                                      calibration 殊 伎(Text)襯 豢


 root@wiz:/usr/gp2x# cat /sys/devices/platform/pollux-analog.0/calibration
 861 161 511 861 161 511 1 0root@wiz:/usr/gp2x#
 root@wiz:/usr/gp2x# echo "0 0 0 0 0 0 0 0" > /sys/devices/platform/pollux-
 analog.0/calibration

                                                     calibration 殊 轟 伎(Text) !
                                                     蟆郁骸?




                                                                                        GPH

More Related Content

What's hot (18)

ITs 2譯殊姶_蠍磯蓋覈轟(覦)
ITs 2譯殊姶_蠍磯蓋覈轟(覦)ITs 2譯殊姶_蠍磯蓋覈轟(覦)
ITs 2譯殊姶_蠍磯蓋覈轟(覦)
Chulgyu Shin
DPDK (Data Plane Development Kit)
DPDK (Data Plane Development Kit) DPDK (Data Plane Development Kit)
DPDK (Data Plane Development Kit)
ymtech
仰レレ
仰レレ仰レレ
仰レレ
覦 蟆暑
DPDK
DPDKDPDK
DPDK
ymtech
1譯殊姶 襴れ 危 覦 れ, 一螻 ろ, 覿襷る
1譯殊姶   襴れ 危 覦 れ, 一螻  ろ, 覿襷る1譯殊姶   襴れ 危 覦 れ, 一螻  ろ, 覿襷る
1譯殊姶 襴れ 危 覦 れ, 一螻 ろ, 覿襷る
Chulgyu Shin
覦煙 USB伎豌伎 襭碁碁
覦煙  USB伎豌伎 襭碁碁覦煙  USB伎豌伎 襭碁碁
覦煙 USB伎豌伎 襭碁碁
Daniel Shin
3D豺危磯伎擦 襭碁碁(覲糾規)
3D豺危磯伎擦 襭碁碁(覲糾規)3D豺危磯伎擦 襭碁碁(覲糾規)
3D豺危磯伎擦 襭碁碁(覲糾規)
Daniel Shin
誤 - 襴 貉る 螳脚 覦 伎 伎 (2010Y01M30D)
誤 - 襴 貉る 螳脚 覦 伎 伎 (2010Y01M30D)誤 - 襴 貉る 螳脚 覦 伎 伎 (2010Y01M30D)
誤 - 襴 貉る 螳脚 覦 伎 伎 (2010Y01M30D)
Ubuntu Korea Community
襴れ
襴れ 襴れ
襴れ
ETRIBE_STG
(111217) #fitalk rootkit tools and debugger
(111217) #fitalk   rootkit tools and debugger(111217) #fitalk   rootkit tools and debugger
(111217) #fitalk rootkit tools and debugger
INSIGHT FORENSIC
願 襴る - 蟾譬
願 襴る - 蟾譬願 襴る - 蟾譬
願 襴る - 蟾譬
Jong Wook Kim
襷螻100 覲企襦 覲伎 14
襷螻100 覲企襦 覲伎 14襷螻100 覲企襦 覲伎 14
襷螻100 覲企襦 覲伎 14
貉危 蟲譟
貉危  蟲譟貉危  蟲譟
貉危 蟲譟
dddddanbi
伎豌伎 Chapter 8
伎豌伎 Chapter 8伎豌伎 Chapter 8
伎豌伎 Chapter 8
YoungGun Na
求 メメ 求 ≡梶梶
求 メメ 求 ≡梶梶求 メメ 求 ≡梶梶
求 メメ 求 ≡梶梶
Seungyong Lee
[D2 COMMUNITY] Open Container Seoul Meetup - Docker security
[D2 COMMUNITY] Open Container Seoul Meetup - Docker security[D2 COMMUNITY] Open Container Seoul Meetup - Docker security
[D2 COMMUNITY] Open Container Seoul Meetup - Docker security
NAVER D2
(111217) #fitalk windows system structure
(111217) #fitalk   windows system structure(111217) #fitalk   windows system structure
(111217) #fitalk windows system structure
INSIGHT FORENSIC
ITs 2譯殊姶_蠍磯蓋覈轟(覦)
ITs 2譯殊姶_蠍磯蓋覈轟(覦)ITs 2譯殊姶_蠍磯蓋覈轟(覦)
ITs 2譯殊姶_蠍磯蓋覈轟(覦)
Chulgyu Shin
DPDK (Data Plane Development Kit)
DPDK (Data Plane Development Kit) DPDK (Data Plane Development Kit)
DPDK (Data Plane Development Kit)
ymtech
DPDK
DPDKDPDK
DPDK
ymtech
1譯殊姶 襴れ 危 覦 れ, 一螻 ろ, 覿襷る
1譯殊姶   襴れ 危 覦 れ, 一螻  ろ, 覿襷る1譯殊姶   襴れ 危 覦 れ, 一螻  ろ, 覿襷る
1譯殊姶 襴れ 危 覦 れ, 一螻 ろ, 覿襷る
Chulgyu Shin
覦煙 USB伎豌伎 襭碁碁
覦煙  USB伎豌伎 襭碁碁覦煙  USB伎豌伎 襭碁碁
覦煙 USB伎豌伎 襭碁碁
Daniel Shin
3D豺危磯伎擦 襭碁碁(覲糾規)
3D豺危磯伎擦 襭碁碁(覲糾規)3D豺危磯伎擦 襭碁碁(覲糾規)
3D豺危磯伎擦 襭碁碁(覲糾規)
Daniel Shin
誤 - 襴 貉る 螳脚 覦 伎 伎 (2010Y01M30D)
誤 - 襴 貉る 螳脚 覦 伎 伎 (2010Y01M30D)誤 - 襴 貉る 螳脚 覦 伎 伎 (2010Y01M30D)
誤 - 襴 貉る 螳脚 覦 伎 伎 (2010Y01M30D)
Ubuntu Korea Community
(111217) #fitalk rootkit tools and debugger
(111217) #fitalk   rootkit tools and debugger(111217) #fitalk   rootkit tools and debugger
(111217) #fitalk rootkit tools and debugger
INSIGHT FORENSIC
願 襴る - 蟾譬
願 襴る - 蟾譬願 襴る - 蟾譬
願 襴る - 蟾譬
Jong Wook Kim
襷螻100 覲企襦 覲伎 14
襷螻100 覲企襦 覲伎 14襷螻100 覲企襦 覲伎 14
襷螻100 覲企襦 覲伎 14
貉危 蟲譟
貉危  蟲譟貉危  蟲譟
貉危 蟲譟
dddddanbi
伎豌伎 Chapter 8
伎豌伎 Chapter 8伎豌伎 Chapter 8
伎豌伎 Chapter 8
YoungGun Na
求 メメ 求 ≡梶梶
求 メメ 求 ≡梶梶求 メメ 求 ≡梶梶
求 メメ 求 ≡梶梶
Seungyong Lee
[D2 COMMUNITY] Open Container Seoul Meetup - Docker security
[D2 COMMUNITY] Open Container Seoul Meetup - Docker security[D2 COMMUNITY] Open Container Seoul Meetup - Docker security
[D2 COMMUNITY] Open Container Seoul Meetup - Docker security
NAVER D2
(111217) #fitalk windows system structure
(111217) #fitalk   windows system structure(111217) #fitalk   windows system structure
(111217) #fitalk windows system structure
INSIGHT FORENSIC

Similar to caanoo Device driver (20)

貉る 旧ろ襦
 貉る 旧ろ襦 貉る 旧ろ襦
貉る 旧ろ襦
Seungyong Lee
襦企 る
襦企  る襦企  る
襦企 る
Peter YoungSik Yun
Foss open sorucesw_6902
Foss open sorucesw_6902Foss open sorucesw_6902
Foss open sorucesw_6902
轟 覦
Relationship between firmware and module(drvier)
Relationship between firmware and module(drvier)Relationship between firmware and module(drvier)
Relationship between firmware and module(drvier)
Jaeock Shim
Oracle linux8 solaris_new_features-suk kim
Oracle linux8 solaris_new_features-suk kimOracle linux8 solaris_new_features-suk kim
Oracle linux8 solaris_new_features-suk kim
suk kim
Linux Performan tuning Part I
Linux Performan tuning Part ILinux Performan tuning Part I
Linux Performan tuning Part I
sprdd
Exynos4210 beginnerrev10
Exynos4210 beginnerrev10Exynos4210 beginnerrev10
Exynos4210 beginnerrev10
mimul
Lkda facebook seminar_140419
Lkda facebook seminar_140419Lkda facebook seminar_140419
Lkda facebook seminar_140419
sprdd
(120128) #fitalk android forensics 101
(120128) #fitalk   android forensics 101(120128) #fitalk   android forensics 101
(120128) #fitalk android forensics 101
INSIGHT FORENSIC
Nginx basic configurations
Nginx basic configurationsNginx basic configurations
Nginx basic configurations
John Kim
2. windows system螻 file format
2. windows system螻 file format2. windows system螻 file format
2. windows system螻 file format
Youngjun Chang
IoT with Raspberry Pi + Node JS - Chapter 1
IoT with Raspberry Pi + Node JS - Chapter 1IoT with Raspberry Pi + Node JS - Chapter 1
IoT with Raspberry Pi + Node JS - Chapter 1
Park Jonggun
System Infra Recovery 蠏碁Μ螻 DevOps
System Infra Recovery 蠏碁Μ螻 DevOpsSystem Infra Recovery 蠏碁Μ螻 DevOps
System Infra Recovery 蠏碁Μ螻 DevOps
Juseok Kim
襷螻100 覲企襦 覲伎 5
襷螻100 覲企襦 覲伎 5襷螻100 覲企襦 覲伎 5
襷螻100 覲企襦 覲伎 5
UNIX ろ 2014-2018 蠍磯 蠍一覓語
UNIX ろ 2014-2018 蠍磯 蠍一覓語UNIX ろ 2014-2018 蠍磯 蠍一覓語
UNIX ろ 2014-2018 蠍磯 蠍一覓語
Lee Sang-Ho
Backend Master | 3.4.5 Deploy - Docker Principal
Backend Master | 3.4.5 Deploy - Docker PrincipalBackend Master | 3.4.5 Deploy - Docker Principal
Backend Master | 3.4.5 Deploy - Docker Principal
Kyunghun Jeon
悌δ悌悌ツ議=估=胡估梶悌悌梶估估
悌δ悌悌ツ議=估=胡估梶悌悌梶估估悌δ悌悌ツ議=估=胡估梶悌悌梶估估
悌δ悌悌ツ議=估=胡估梶悌悌梶估估
Mario Cho
ろろ: 蟲蟲 れ覲願鍵
ろろ: 蟲蟲 れ覲願鍵ろろ: 蟲蟲 れ覲願鍵
ろろ: 蟲蟲 れ覲願鍵
Jaehwa Park
伎豌伎 Sig2
伎豌伎 Sig2伎豌伎 Sig2
伎豌伎 Sig2
YoungGun Na
(Fios#02) 4. 覯 る伎 覿
(Fios#02) 4. 覯 る伎 覿(Fios#02) 4. 覯 る伎 覿
(Fios#02) 4. 覯 る伎 覿
INSIGHT FORENSIC
貉る 旧ろ襦
 貉る 旧ろ襦 貉る 旧ろ襦
貉る 旧ろ襦
Seungyong Lee
Foss open sorucesw_6902
Foss open sorucesw_6902Foss open sorucesw_6902
Foss open sorucesw_6902
轟 覦
Relationship between firmware and module(drvier)
Relationship between firmware and module(drvier)Relationship between firmware and module(drvier)
Relationship between firmware and module(drvier)
Jaeock Shim
Oracle linux8 solaris_new_features-suk kim
Oracle linux8 solaris_new_features-suk kimOracle linux8 solaris_new_features-suk kim
Oracle linux8 solaris_new_features-suk kim
suk kim
Linux Performan tuning Part I
Linux Performan tuning Part ILinux Performan tuning Part I
Linux Performan tuning Part I
sprdd
Exynos4210 beginnerrev10
Exynos4210 beginnerrev10Exynos4210 beginnerrev10
Exynos4210 beginnerrev10
mimul
Lkda facebook seminar_140419
Lkda facebook seminar_140419Lkda facebook seminar_140419
Lkda facebook seminar_140419
sprdd
(120128) #fitalk android forensics 101
(120128) #fitalk   android forensics 101(120128) #fitalk   android forensics 101
(120128) #fitalk android forensics 101
INSIGHT FORENSIC
Nginx basic configurations
Nginx basic configurationsNginx basic configurations
Nginx basic configurations
John Kim
2. windows system螻 file format
2. windows system螻 file format2. windows system螻 file format
2. windows system螻 file format
Youngjun Chang
IoT with Raspberry Pi + Node JS - Chapter 1
IoT with Raspberry Pi + Node JS - Chapter 1IoT with Raspberry Pi + Node JS - Chapter 1
IoT with Raspberry Pi + Node JS - Chapter 1
Park Jonggun
System Infra Recovery 蠏碁Μ螻 DevOps
System Infra Recovery 蠏碁Μ螻 DevOpsSystem Infra Recovery 蠏碁Μ螻 DevOps
System Infra Recovery 蠏碁Μ螻 DevOps
Juseok Kim
襷螻100 覲企襦 覲伎 5
襷螻100 覲企襦 覲伎 5襷螻100 覲企襦 覲伎 5
襷螻100 覲企襦 覲伎 5
UNIX ろ 2014-2018 蠍磯 蠍一覓語
UNIX ろ 2014-2018 蠍磯 蠍一覓語UNIX ろ 2014-2018 蠍磯 蠍一覓語
UNIX ろ 2014-2018 蠍磯 蠍一覓語
Lee Sang-Ho
Backend Master | 3.4.5 Deploy - Docker Principal
Backend Master | 3.4.5 Deploy - Docker PrincipalBackend Master | 3.4.5 Deploy - Docker Principal
Backend Master | 3.4.5 Deploy - Docker Principal
Kyunghun Jeon
悌δ悌悌ツ議=估=胡估梶悌悌梶估估
悌δ悌悌ツ議=估=胡估梶悌悌梶估估悌δ悌悌ツ議=估=胡估梶悌悌梶估估
悌δ悌悌ツ議=估=胡估梶悌悌梶估估
Mario Cho
ろろ: 蟲蟲 れ覲願鍵
ろろ: 蟲蟲 れ覲願鍵ろろ: 蟲蟲 れ覲願鍵
ろろ: 蟲蟲 れ覲願鍵
Jaehwa Park
伎豌伎 Sig2
伎豌伎 Sig2伎豌伎 Sig2
伎豌伎 Sig2
YoungGun Na
(Fios#02) 4. 覯 る伎 覿
(Fios#02) 4. 覯 る伎 覿(Fios#02) 4. 覯 る伎 覿
(Fios#02) 4. 覯 る伎 覿
INSIGHT FORENSIC

More from jumiss (20)

Zilog manual eng(1)
Zilog manual eng(1)Zilog manual eng(1)
Zilog manual eng(1)
jumiss
Zi log quickguide_eng
Zi log quickguide_engZi log quickguide_eng
Zi log quickguide_eng
jumiss
Pb 100 覓
Pb 100 覓Pb 100 覓
Pb 100 覓
jumiss
Brochure 32 page-english
Brochure 32 page-englishBrochure 32 page-english
Brochure 32 page-english
jumiss
Rex kara eng
Rex kara engRex kara eng
Rex kara eng
jumiss
Nfc manual
Nfc manualNfc manual
Nfc manual
jumiss
Rex kara eng
Rex kara engRex kara eng
Rex kara eng
jumiss
Proposal kropsson nfc
Proposal kropsson nfcProposal kropsson nfc
Proposal kropsson nfc
jumiss
rex-kara II Brochure 32 page-english
rex-kara II Brochure 32 page-englishrex-kara II Brochure 32 page-english
rex-kara II Brochure 32 page-english
jumiss
Wiz manual(chn)
Wiz manual(chn)Wiz manual(chn)
Wiz manual(chn)
jumiss
Wiz manual(kor)
Wiz manual(kor)Wiz manual(kor)
Wiz manual(kor)
jumiss
Wiz manual(usa)
Wiz manual(usa)Wiz manual(usa)
Wiz manual(usa)
jumiss
Hud mx2 en
Hud mx2 enHud mx2 en
Hud mx2 en
jumiss
2013 new kropsson waterproof splash
2013 new kropsson waterproof splash2013 new kropsson waterproof splash
2013 new kropsson waterproof splash
jumiss
Kropsson cd 850
Kropsson cd 850Kropsson cd 850
Kropsson cd 850
jumiss
Kropsson cd 750max
Kropsson cd 750maxKropsson cd 750max
Kropsson cd 750max
jumiss
Kropsson cd aero
Kropsson cd aeroKropsson cd aero
Kropsson cd aero
jumiss
Kropsson install guide2013
Kropsson install guide2013Kropsson install guide2013
Kropsson install guide2013
jumiss
Fv726 user manual (eng)
Fv726 user manual (eng)Fv726 user manual (eng)
Fv726 user manual (eng)
jumiss
Fv726 user manual (eng)
Fv726 user manual (eng)Fv726 user manual (eng)
Fv726 user manual (eng)
jumiss
Zilog manual eng(1)
Zilog manual eng(1)Zilog manual eng(1)
Zilog manual eng(1)
jumiss
Zi log quickguide_eng
Zi log quickguide_engZi log quickguide_eng
Zi log quickguide_eng
jumiss
Pb 100 覓
Pb 100 覓Pb 100 覓
Pb 100 覓
jumiss
Brochure 32 page-english
Brochure 32 page-englishBrochure 32 page-english
Brochure 32 page-english
jumiss
Rex kara eng
Rex kara engRex kara eng
Rex kara eng
jumiss
Nfc manual
Nfc manualNfc manual
Nfc manual
jumiss
Rex kara eng
Rex kara engRex kara eng
Rex kara eng
jumiss
Proposal kropsson nfc
Proposal kropsson nfcProposal kropsson nfc
Proposal kropsson nfc
jumiss
rex-kara II Brochure 32 page-english
rex-kara II Brochure 32 page-englishrex-kara II Brochure 32 page-english
rex-kara II Brochure 32 page-english
jumiss
Wiz manual(chn)
Wiz manual(chn)Wiz manual(chn)
Wiz manual(chn)
jumiss
Wiz manual(kor)
Wiz manual(kor)Wiz manual(kor)
Wiz manual(kor)
jumiss
Wiz manual(usa)
Wiz manual(usa)Wiz manual(usa)
Wiz manual(usa)
jumiss
Hud mx2 en
Hud mx2 enHud mx2 en
Hud mx2 en
jumiss
2013 new kropsson waterproof splash
2013 new kropsson waterproof splash2013 new kropsson waterproof splash
2013 new kropsson waterproof splash
jumiss
Kropsson cd 850
Kropsson cd 850Kropsson cd 850
Kropsson cd 850
jumiss
Kropsson cd 750max
Kropsson cd 750maxKropsson cd 750max
Kropsson cd 750max
jumiss
Kropsson cd aero
Kropsson cd aeroKropsson cd aero
Kropsson cd aero
jumiss
Kropsson install guide2013
Kropsson install guide2013Kropsson install guide2013
Kropsson install guide2013
jumiss
Fv726 user manual (eng)
Fv726 user manual (eng)Fv726 user manual (eng)
Fv726 user manual (eng)
jumiss
Fv726 user manual (eng)
Fv726 user manual (eng)Fv726 user manual (eng)
Fv726 user manual (eng)
jumiss

caanoo Device driver

  • 2. Linux Device Driver Contents 1. Linux Kernel 1) 蟲譟 2) 蠍磯 2. Device Driver 螳脚 1) Character Device Driver 2) Block Device Driver 3) Network Device Driver 3. Linux Device Model 1) udev 2) sysfs, kobject, device class 3) Hotplug 4. CAANOO Character Device Driver Example 1) Vibration Motor 2) Analog Joystick GPH
  • 4. Linux Device Driver 1. Linux Kernel 1) 蟲譟 GPH
  • 5. Linux Device Driver 1. Linux Kernel GPH
  • 6. Linux Device Driver 1. Linux Kernel 2) 蠍磯 襦語 蟯襴 - 襦語 覦 覃 - 襦語り 旧 - etc. 覃覈襴 蟯襴 - 螳 覃覈襴 蟯襴蠍磯 螻 - ろ レ逢 覃覈襴(Hardware) 蟯襴 ろ 蟯襴 - 螳 ろ(VFS) れ 譬襯 ろ(ext3, ext4, FAT ) 讌 - (蠏 , レ , 危), 襴 蟯襴 覦伎 蟯襴 - 豢 豌 豌襴 覦 れ譽企 - 誤磯渚 豌襴 - 譯朱 レ 覃覈襴 一危 ろ語 蟯襴 - ろ語 殊壱 覦 譯殊 GPH
  • 8. Linux Device Driver 2. Device Driver 螳脚 Linux Device Driver? - ろ 讌 企ゼ 襦蠏碁 襦 Kernel 螻牛 殊企襴(or Interface). - 朱朱 覓語, 觚襦, ろ語 覦伎 殊企襦 覿襯 覃 /dev . example: 譯 覯 覿 覯 覓語 殊企 觚襦 殊企 GPH
  • 9. Linux Device Driver 2. Device Driver 螳脚 - 螳 豌 蠍螳 覦伎れ (c 覓語 殊企, b 觚襦殊企) 碁. - れ 覯讌 伎 譯 覯, 覯讌 覿 覯碁ゼ 覩. ( 覓語 觚襦 殊企 襦 るジ 谿讌覩襦 狩 譯 覯碁ゼ 觚襦 殊企 訖襷 覓語 殊企 .) - 譯 覯碁 覦 殊企 轟 讌, 覿 殊企螳 觜ろ 覦伎 讌 讌(mtdblock0, mtdblock1 谿瑚). GPH
  • 10. Linux Device Driver 2. Device Driver 螳脚 1) Character Device Driver Char Device Driver 覦 轟 - 覓語 覦伎る 殊 蟆(覯, G-Sensor, Analog Joystic, RTC ) 襷螻 覓語 覦伎 殊企 企 蠏殊 open, close, read, write煙 ろ 語 蟲. - 覦伎れ 襭 谿(sequentially)朱 蠏 螳ロ 貉る 貊 - 蠍語企ゼ 螳 覓語伎 る 覦伎 殊企襦 襦蠏碁 讌朱 語 覯 覦伎 殊企. - 襦蠏碁 open(), close(), read(), write() 螳 豌襴 襯 伎 覦伎 殊 朱 殊 る 企ゼ 危 . - 蟲譟郁 襷れ 螳. GPH
  • 11. Linux Device Driver 2. Device Driver 螳脚 Character Device Driver 蠍磯. - 覦伎るゼ 豐蠍壱覃 焔襯 貉る 殊企襯 觜 (焔) 蠍磯レ 豈讌 豐蠍壱(init()) 襭. - 蟯 /dev 碁襯 危襴貅伎 語 豢 ろ 語螻 讌 open(), close(), read(), write() 螳 讌 讌. - interrupt handling, bottom half, timer handling 煙 豌襴. GPH
  • 12. Linux Device Driver 2. Device Driver 螳脚 Character Device Driver 譯殊 襭蟲譟. - 覦伎る 蟲譟一牡: 殊企 覲 レ襦 - struct cdev: 覓語 殊企 貉る 豢 , 朱朱 覦伎る 蟲譟一牡 . - struct file_operations: 危襴貅伎螻 open, close, read, write 蟲. - struct file: 企 /dev 碁 覲. - struct platform_device, struct platform_driver: platform_bus朱 螳 覯 襦 覦伎るゼ 焔. GPH
  • 13. Linux Device Driver 2. Device Driver 螳脚 Character Device Driver example. - 讌 殊企: 貉危一 讌 碁ゼ 蟯襴 覓語 殊企. (drivers/serial) - 殊企: る慨, 襷一, 譟一伎ろ 螳 覦伎るゼ る 豈. (drivers/input) - 覯: 觜 覃覈襴 蠏 螻. (drivers/video) - 伎 襷 Character Device Driverれ 譟伎. (grep r register_chrdev drivers/襦 ) GPH
  • 14. Linux Device Driver 2. Device Driver 螳脚 2) Block Device Driver - 觚襦 覦伎る 蠏 ルレ 螳豢 レ 襷れ牡. - 覓語 覦伎れ 襴 觚襦覦伎る ろ 襭襯 伎 (ろ 螳 襷れ牡襯 襭). - 覿覿 覦伎り 觚襦(512, 1024, 4096 Byte) 豢レ 蠍磯朱 螻 . - 豢 れ譽企螳 . GPH
  • 15. Linux Device Driver 2. Device Driver 螳脚 PC ろ レ 襷れ牡 GPH
  • 16. Linux Device Driver 2. Device Driver 螳脚 Linux 觚襦 豢 GPH
  • 17. Linux Device Driver 2. Device Driver 螳脚 豢 れ譽企 豢 れ譽企 る Kernel Source Deadline - 譴 elevator 螻襴讀朱 豌 豌 麹 覯碁ゼ 蠍一朱 block/deadline-iosched.c 覲 . - 豢 豌 伎 蟲苦朱(starvation) 覦讌蠍 (2.6 kernel) deadline れ. Anticipatory - 蠍磯蓋 螻襴讀 Deadline螻 螳讌襷, 所鍵 豌 覩 Block/as-iosched.c 襴 企 螳襷 豢螳 豌 覃 蠍. (2.6 kernel) Complete Fair - 豌 襦語る 豌襯 讌朱 襦語 Block/cfq-iosched.c 襷 豢レ 螻牛 蠍壱襯 至 . Queuing (CFQ) - 轟 襦語る覓語 るジ 襦語り 蟲苦 譯暑 覦讌. (2.6 kernel) Noop - 豕 曙 讌 谿剰鍵 豌襯 螳 Block/noop-iosched.c 觜讌 . - 讌 螳 譟伎讌 SSD螳 襷れ牡 伎. (2.6 kernel) GPH
  • 18. Linux Device Driver 2. Device Driver 螳脚 覲伎^ 蠍一 レ 覦伎 - 觚襦 覦伎 殊企 譯 覯碁 觚襦 覦伎るゼ 蟲覲螻, 覿 覯碁 覓朱Μ 覲伎^ 蠍一 レ襯 蟲覲蟇磯 覿 一 蟲覲. - 襴れ 觚襦 覦伎 レ brw-rw---- 1 root disk 8, 0 2010-11-03 18:23 sda brw-rw---- 1 root disk 8, 1 2010-11-03 18:23 sda1 一 2螳(FAT-sdb1, Ext3- brw-rw---- 1 root disk 8, 2 2010-11-03 18:23 sda2 brw-rw---- 1 root disk 8, 5 2010-11-03 18:23 sda5 sdb2) 企 ろ(sdb) brw-rw---- 1 root disk 8, 16 2010-11-15 13:56 sdb 觚襦覦伎 brw-rw---- 1 root disk 8, 17 2010-11-15 13:56 sdb1 brw-rw---- 1 root disk 8, 18 2010-11-15 13:56 sdb2 - 觚襦 覦伎れ 襷危 覲 殊ろ 蠍 螳 % 襷危 /dev/sda1 284G 109G 161G 41% / none 1.7G 284K 1.7G 1% /dev none 1.7G 252K 1.7G 1% /dev/shm none 1.7G 1.2M 1.7G 1% /var/run none 1.7G 4.0K 1.7G 1% /var/lock 2螳 一(FAT-sdb1, Ext3- none 1.7G 0 1.7G 0% /lib/init/rw sdb2) mount 覲 /dev/sdb1 70M 2.6M 67M 4% /media/BOOT /dev/sdb2 3.6G 1.6G 1.9G 46% /media/ROOTFS GPH
  • 19. Linux Device Driver 2. Device Driver 螳脚 3) Network Device Driver - ろ語 覦伎 殊企 るジ 殊企 るゴ蟆 螻 旧蠍 /dev /sys 譟危讌 . - 危襴貅伎 蠍磯 襦貊 ろ 豢 ろ語 誤壱伎(ex eth0)襯 蟇一 殊企 語 . GPH
  • 20. Linux Device Driver 2. Device Driver 螳脚 ろ語 ろ る 誤磯 覈 朱朱 企 襭襯 危危 覩碁 layer. (HTTP覯 企殊伎誤語 蟯螻 伎 豌 螻 旧 ) point-to-point 旧 企. (語ろ 企 譬 伎 殊企 旧 蟯襴) 血 覈讌襦 . (語ろ 伎 殊企 旧 蟯襴) 覓朱Μ豸旧 蠏狩 覦伎 殊企襯 谿語^. (讌 蟆 轟 企 覦伎り 襷れ牡) GPH
  • 21. Linux Device Driver 2. Device Driver 螳脚 襴 ろ語 ろ 蟲譟 襦蠏碁 貉る ろ語 蠏狩 API襯 螻 襦貊 譴襴 螻豸(貅): れ 襦貊 螻牛 讌 螻牛 Interface. TCP, UDP 螳ロ 轟 ろ語 襦貊 . れ 蠍磯レ 覦伎 殊企襯 襦貊 襦 郁屋 譴襴 誤壱伎 螻豸. 覓朱Μ ろ語 覦伎るゼ 蟯襴 覦伎 企. GPH
  • 22. Linux Device Driver 2. Device Driver 螳脚 Network Device Driver 襭 蟲譟. - 貅 覯(struct sk_buff): ろ語 襦貊 ろ 蟲 襯 燕 蟲譟一牡企 貉る TCP/IP ろ 伎 旧 蟲譟一牡. (include/linux/sk_buff.h) - struct net_device: Network driver 襦貊 ろ 伎 誤壱伎るゼ 蟲譟一牡. (include/linux/netdevice.h) - I/O 覯れ 蟯 蟲譟一牡: PCI CPU Address/Data bus GPH
  • 24. Linux Device Driver 3. Linux Device Model Linux Device Model(LDM) 螳脚. - Power management and system shutdown: 襯 れ USB host adaptor host 郁屋 device れ 覈 朱 power off(or shut down) power off伎 LDM 企 覦 襯 谿 企 襦 . - Communications with user space: 螳 ろ sysfs LDM螻 襷れ 覦蟆 郁 朱 蟲譟壱 LDM 襭蟲譟磯ゼ user space . - Hotpluggable devices: USB 企 ろ 螳 レ ろ 譴 語 曙 (plugging)/蟇(unplugging) . 貉る 伎 螳 蟇(event)れ LDM 伎 る 螻(handling) 螻 (communicate). - Device Classes: 襦 ろ 企 譬襯 覦伎り 郁屋 讌 狩 煙 . LDM 郁屋 覦伎るゼ 蠏瑚 蟆 企る 覿襯 覃貉る讀 螳讌螻 朱, 覦伎り (user space) 覦蟆 襦 . GPH
  • 25. Linux Device Driver 3. Linux Device Model 1) udev - 豐谿所鍵覿 2.4覯 貉る (豌 螳 企ゴ) 覦伎 碁襯 /dev 朱 襷 伎朱 . - 2.4覯 企ゴ 朱 覦伎 碁襯 燕 devfs襯 讌襷, 碁 覈 覦伎 殊企 譟. - 覦伎 蟯襴襯 朱 蠍郁鍵 udev螳 煙. GPH
  • 26. Linux Device Driver 3. Linux Device Model udev 伎 譟危 . - Kernel Sysfs 讌: sysfs 襴 覦伎 覈語 譴 豺襯 谿讌覃, sysfs 覃覈襴 覿 ろ朱 /sys mount . る udevd udevinfo sysfs 襯 谿瑚 蟆 . - udevd udevinfo 螳 demon螻 utility. - /etc/udev/rules.d/ 磯Μ 讌 蠏豺. GPH
  • 27. Linux Device Driver 3. Linux Device Model udevd 磯 Example (CAANOO) GPH
  • 28. Linux Device Driver 3. Linux Device Model 讌 蠏豺 Example(CAANOO SD/MMC) SD/MMC 蠏豺 SD/MMC Insert SD/MMC Remove GPH
  • 29. Linux Device Driver 3. Linux Device Model 覯 ろ udev - 螳 伎襦 誤 轟 覯 ろ udev襯 蠍 覲企 朱 燕 覦伎 碁 襯 誤蠍磯 . udev 語 れ 螻殊 覯襷 襷れ伎 碁 襴 襷 /dev碁襯 燕. /dev 磯Μ螳 レ襯 蟆曙 襷る 螻殊 讌郁鍵/郁鍵 螻殊 蟇 豺覩襦, 覈 譴企. udev襯 覃 ろ 螳 る 蟇碁Π. /dev碁襯 朱 燕覃 覈 朱 udev蠍磯レ 轟 覈朱 覯 覦伎れ 狩螻 苦 觜蟆一煙 磯朱る. 麹 蠏 螳ロ 覯るゼ 蟇一 碁 語 螻 語 讌 蟆曙一 覓語螳 . 企 蟯 磯ゴ覃 碁 炎骸 覈 覃覈襴 襴 覦 ろ 旧襯 螳覃, ろ碁ゼ 危蟆 . GPH
  • 30. Linux Device Driver 3. Linux Device Model 2) sysfs, kobject, device class - sysfs, kobject, device class 覦伎 覈語 蠍一 蟲煙伎襷, 覿覿 蟆曙 覦朱 讌 . (讀 讌朱 殊企 煙 襦蠏碁襾瑚 る蟇磯 蟯 source襯 殊 蟇一 .) - sysfs 貉る 蟲譟壱 覦伎 覈語 朱 企. sysfs 貉る 襭 蟲譟一 覲 襯 覃覈襴 蠍磯 ろ企朱 procfs 讌襷, procfs螳 貉る 企襦 牛 朱 interface襯 螻牛 覦覃, sysfs 覦伎 覈語 麹 interface襦 udev リ鍵 覿覿 sysfs 譟危. - kobject 谿語^ 豺伎危 螳 螻牛 螳豌 煙 豢燕襯 讌. 朱朱 kobject 蟲譟一牡(e.g. struct device) 伎ル. kobject 蟲譟一牡 譯殊 field 伎 れ螻 螳. 谿語^ 豺伎危 蟯襴襯 蠍 kref kobject螳 螳豌 讌 kset 誤 Kobject襯 蠍一 螳豌 kobj_type - kobject sysfs 覦 蟯 . 貉る 企 語ろ伎る 襷れ伎 覈 kobject螳 sysfs . - 覦伎 企 螳 覦伎 覈語 るジ 轟企, 殊企 蠍磯ゼ interface企. 企 誤壱伎る 覦伎る 覦伎 企( 覯譯) る 螳 豢. (e.g. usb 襷一, ps/2 る慨, 譟一伎ろ煙 企れ 覃 /sys/class/input企朱 覈 蟆 .) GPH
  • 31. Linux Device Driver 3. Linux Device Model USB Mouse螳 曙 覦伎 企 GPH
  • 32. Linux Device Driver 3. Linux Device Model USB Mouse sysfs 螻豸 [/sys] +[block] -[bus][usb][devices][usb2][2-2][2-2:1.0]-[usbendpoint:usbdev2.2-ep81] -[class]-[input][mouse2][device][bus][usbendpoint:usbdev2.2-ep81] -[usb_device][usbdev2.2][device][bus] -[usb_endpoint][usbdev2.2-ep00][device] [usbdev2.2-ep81][device] -[devices][pci0000:00][0000:00:1d:1][usb2][2-2][2-2:1.0] +[firmware] +[fs] +[kernel] +[module] +[power] GPH
  • 33. Linux Device Driver 3. Linux Device Model RTC 殊企 覈 貉る 語 豌襴 蟆暑 GPH
  • 34. Linux Device Driver 3. Linux Device Model 2) Hotplug - 譴 ろ 朱 郁屋 蟆 Hotplug手 . - 豕 襴 貉る hotplug襯 螳讌覃 netlink貅 蟇一 朱 uevent襯 覲企碁. - netlink 貅 貅 API襯 伎 貉る螻 伎 旧 螳ロ蟆 襷 襷れ擦讀 企. - 覦伎 碁 炎骸 襯 蟯襴 udevd 磯 uevent襯 覦 蠏碁ゼ 蟯襴. GPH
  • 36. Linux Device Driver 4. CAANOO Example 1) Vibration Motor - Hardware 蟲: 2EA AC-type Vibration Motor 2EA Vibration Motor Controller chip (ISA1200) - Hardware 郁屋: 螳 ISA1200 i2c襦 郁屋 螻, 企ゼ 牛 MCU(POLLUX) 襦覿 螳譬 command (enable/disable, AC/DC motor type ) 覦. 螳 ISA1200 MCU襦覿 PWM殊語 螻旧覃 MCU PWM duty觜襯 伎 覈一 瑚鍵(螳/)襯 譟一. - source file location: <Kernel Top Dir>/drivers/haptic/simple_isa1200.c GPH
  • 37. Linux Device Driver 4. CAANOO Example Vibration Motor Block Diagram ISA1200 Command RAM Vibration Strength control GPH
  • 38. Linux Device Driver 4. CAANOO Example PWM 語 讌 瑚鍵 GPH
  • 39. Linux Device Driver 4. CAANOO Example source code 覦伎 殊企 讌(init)螻 譬襭 讌(exit) 覦伎 殊企 讌: - 覦伎 蟲譟 豌企ゼ 朱 麹螻 覦伎れ 殊企襯 焔 覦伎 殊企 譬 襭 讌: - 焔 覦 れ 殊企 蟇 殊企 /譬襭讌 覈 GPH
  • 40. Linux Device Driver 4. CAANOO Example source code platform_device, platform_driver - platform_device 轟 誤 - platform_driver GPH
  • 41. Linux Device Driver 4. CAANOO Example source code platform_device, platform_driver i2c Driver register - probe() method. cdev file_operations 焔 - remove() method. GPH
  • 42. Linux Device Driver 4. CAANOO Example source code struct file_operations Application Code Source fd = open(const char *pathname, int flags); Device driver Code Source int xxx_open(struct inode * inode, struct file *filp) { /* */ return ret; } GPH
  • 43. Linux Device Driver 4. CAANOO Example source code struct file_operations source code /sys /dev Vibration Motor File operations Example Haptic_test GPH
  • 44. Linux Device Driver 4. CAANOO Example 2) Analog Joystick - Hardware 蟲: X, Y 2螳 豢朱 蟲焔 Analog Joystick - Hardware 郁屋: X, Y 螳螳 豢 MCU ADC(Analog to Digital Converter) Pin 2EA 郁屋 - source file location: <kernel top dir>/drivers/i2c/chips/ad7993.c GPH
  • 45. Linux Device Driver 4. CAANOO Example source code 覦伎る 蟲譟一牡 GPH
  • 46. Linux Device Driver 4. CAANOO Example source code platform_device probe() 襭伎 Input Device 豐蠍壱 CAANOO Analog Joystick螻 Button Linux Input Device Interface 襦 蠍 豌襴 GPH
  • 47. Linux Device Driver 4. CAANOO Example source code Device Sysfs 襷り鍵. 躯 蟆郁骸 GPH
  • 48. Linux Device Driver 4. CAANOO Example Sysfs Examples calibration 殊 伎(Text)襯 豢 root@wiz:/usr/gp2x# cat /sys/devices/platform/pollux-analog.0/calibration 861 161 511 861 161 511 1 0root@wiz:/usr/gp2x# root@wiz:/usr/gp2x# echo "0 0 0 0 0 0 0 0" > /sys/devices/platform/pollux- analog.0/calibration calibration 殊 轟 伎(Text) ! 蟆郁骸? GPH