SlideShare a Scribd company logo
1 of 12
Download to read offline
(주)오뉴이노베이션
2016. 03.
TA 팀
심재옥 팀장
010-9022-6200
Relationship between firmware and module
2 / 12
Agenda
➔ Hardware, Firmware, Software
➔ Firmware, Module(Driver)
- 3 -
- 5 -
3 / 12
Hardware, Firmware, SoftwareHardware, Firmware, Software
4 / 12
Hardware, Firmware, Software의 정의
Hardware Firmware Software
전용 드라이버나 납땜을 통해 변
경 가능한 전자 부품의 물리적인
배열
하드웨어에 저장되는 소프트웨
어
컴퓨터 하드웨어를 작동을 가이
드하는 디지털 명령의 배열
5 / 12
Firmware, Module(Driver)Firmware, Module(Driver)
6 / 12
Firmware와 Module의 역할
➔ Firmware
● 하드웨어(디바이스)의 기능을 담당
– # ethtool -S ethX, # ethtool -p ethX
➔ Module
● 하드웨어(디바이스)의 작동을 담당
– # lsmod, # modinfo e1000e
$ ethtool -i em1
driver: e1000e
version: 2.0.0-k
firmware-version: 0.13-3
bus-info: 0000:00:19.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
# ethtool -i enp2s0
driver: r8169
version: 2.3LK-NAPI
firmware-version: rtl8168h-
2_0.0.2 02/26/15
expansion-rom-version:
bus-info: 0000:02:00.0
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: yes
supports-priv-flags: no
7 / 12
Firmware와 Module의 관계
➔ Module을 통해서 하드웨어를 사용 할 준비가 되
어 있다면 Firmware를 통해서 하드웨어가 가지고
있는 기능의 활성 및 기능의 변경을 할 수 있다.
Device Firmware Kernel Module
하드웨어의 작동
기능 적용 및 변경
OS, Linux
8 / 12
Firmware, Module packages
➔ Firmware 패키지
● /lib/firmware/ath10k/QCA6174/hw3.0/firmware-
4.bin
– # rpm -qf firmware-4.bin
linux-firmware-20160204-
61.git91d5dd13.fc23.noarch
➔ Module 패키지
● /lib/modules/4.4.3-
300.fc23.x86_64/kernel/drivers/net/wireless/ath/
ath10k
– # rpm -qf ath10k_pci.ko.xz
kernel-modules-4.4.3-300.fc23.x86_64
9 / 12
Module과 Firmware은 어디에 있나?
➔ Module
➔ Firmware
# ls /lib/modules/$(uname -r)/kernel/drivers
acpi dca hwmon memstick parport spi vhost
ata devfreq i2c message pci ssb video
atm dma idle mfd pcmcia staging virtio
auxdisplay edac iio misc pinctrl target w1
base firewire infiniband mmc platform thermal watchdog
bcma firmware input mtd power thunderbolt xen
block fmc iommu net powercap tty
bluetooth gpio isdn nfc pps uio
char gpu leds ntb ptp usb
cpufreq hid md nvdimm rtc uwb
crypto hv media nvme scsi vfio
# ls /lib/modules/$(uname -r)
build modules.builtin modules.modesetting source
config modules.builtin.bin modules.networking System.map
kernel modules.dep modules.order updates
modules.alias modules.dep.bin modules.softdep vdso
modules.alias.bin modules.devname modules.symbols vmlinuz
modules.block modules.drm modules.symbols.bin
# ls /lib/firmware
3com iwlwifi-6050-4.ucode
acenic iwlwifi-6050-5.ucode
adaptec iwlwifi-7260-10.ucode
advansys iwlwifi-7260-12.ucode
agere_ap_fw.bin iwlwifi-7260-13.ucode
agere_sta_fw.bin iwlwifi-7260-16.ucode
amdgpu iwlwifi-7260-7.ucode
10 / 12
Module은 있으나 Firmware버전이 낮은 경우
➔ 장치 확인
●
ath10k_pci 모듈이 작동했기 때문에 무선랜 디바이스가 정확하게 보임
➔ Firmware 확인
●
Firmware 버전이 낮아 무선랜이 작동하지 않음
11 / 12
Firmware와 Module의 업데이트
➔ 디바이스를 사용 할 수 없을 경우
●
Module의 설치 혹은 업데이트
➔ 디바이스의 기능을 사용 할 수 없는 경우
●
Firmware의 업데이트
●
Firmware가 있고 Firmware에 쓸 수 있는 디바이스에 한해.
# rpm -qa | grep firmware
iwl6000-firmware-9.221.4.1-61.fc23.noarch
ipw2200-firmware-3.1-11.fc23.noarch
iwl6050-firmware-41.28.5.1-61.fc23.noarch
iwl2030-firmware-18.168.6.1-61.fc23.noarch
iwl4965-firmware-228.61.2.24-61.fc23.noarch
iwl7260-firmware-25.30.13.0-61.fc23.noarch
iwl3945-firmware-15.32.2.9-61.fc23.noarch
atmel-firmware-1.3-14.fc23.noarch
iwl5150-firmware-8.24.2.2-61.fc23.noarch
iwl105-firmware-18.168.6.1-61.fc23.noarch
zd1211-firmware-1.4-11.fc23.noarch
libertas-usb8388-firmware-20160204-61.git91d5dd13.fc23.noarch
iwl5000-firmware-8.83.5.1_1-61.fc23.noarch
iwl1000-firmware-39.31.5.1-61.fc23.noarch
iwl6000g2a-firmware-18.168.6.1-61.fc23.noarch
iwl2000-firmware-18.168.6.1-61.fc23.noarch
iwl135-firmware-18.168.6.1-61.fc23.noarch
iwl3160-firmware-25.30.13.0-61.fc23.noarch
ipw2100-firmware-1.3-18.fc23.noarch
iwl6000g2b-firmware-18.168.6.1-61.fc23.noarch
iwl100-firmware-39.31.5.1-61.fc23.noarch
linux-firmware-20160204-61.git91d5dd13.fc23.noarch
# rpm -qa | grep kernel
kernel-core-4.4.2-301.fc23.x86_64
kernel-modules-4.3.5-300.fc23.x86_64
kernel-4.4.3-300.fc23.x86_64
kernel-core-4.4.3-300.fc23.x86_64
kernel-4.4.2-301.fc23.x86_64
libreport-plugin-kerneloops-2.6.4-1.fc23.x86_64
kernel-headers-4.4.3-300.fc23.x86_64
kernel-core-4.3.5-300.fc23.x86_64
abrt-addon-kerneloops-2.8.0-3.fc23.x86_64
kernel-modules-4.4.2-301.fc23.x86_64
kernel-4.3.5-300.fc23.x86_64
kernel-modules-4.4.3-300.fc23.x86_64
12 / 12
감사합니다.
기쁨을 나누면 질투가 되고,
슬픔을 나누면 약점이 된다.

More Related Content

Similar to Relationship between firmware and module(drvier)

안드로이드 플랫폼 설명
안드로이드 플랫폼 설명안드로이드 플랫폼 설명
안드로이드 플랫폼 설명Peter YoungSik Yun
 
망고100 보드로 놀아보자 13
망고100 보드로 놀아보자  13망고100 보드로 놀아보자  13
망고100 보드로 놀아보자 13종인 전
 
Linux Kernel Boot Process , SOSCON 2015, By Mario Cho
Linux Kernel Boot Process , SOSCON 2015, By Mario ChoLinux Kernel Boot Process , SOSCON 2015, By Mario Cho
Linux Kernel Boot Process , SOSCON 2015, By Mario ChoMario Cho
 
caanoo Device driver
caanoo Device drivercaanoo Device driver
caanoo Device driverjumiss
 
(망고210& Gingerbread) u-boot 컴파일 및 다운로드
(망고210& Gingerbread) u-boot 컴파일 및 다운로드(망고210& Gingerbread) u-boot 컴파일 및 다운로드
(망고210& Gingerbread) u-boot 컴파일 및 다운로드종인 전
 
JVM_트러블슈팅.pdf
JVM_트러블슈팅.pdfJVM_트러블슈팅.pdf
JVM_트러블슈팅.pdfkwbak
 
Exynos4210 beginnerrev10
Exynos4210 beginnerrev10Exynos4210 beginnerrev10
Exynos4210 beginnerrev10mimul
 
[2018] Java를 위한, Java에 의한 도구들
[2018] Java를 위한, Java에 의한 도구들[2018] Java를 위한, Java에 의한 도구들
[2018] Java를 위한, Java에 의한 도구들NHN FORWARD
 
CoreOS를 이용한 Docker 관리툴 소개
CoreOS를 이용한 Docker 관리툴 소개CoreOS를 이용한 Docker 관리툴 소개
CoreOS를 이용한 Docker 관리툴 소개충섭 김
 
컵드론 멀티콥터 펌웨어 분석 2015. 3.28.
컵드론 멀티콥터 펌웨어 분석 2015. 3.28.컵드론 멀티콥터 펌웨어 분석 2015. 3.28.
컵드론 멀티콥터 펌웨어 분석 2015. 3.28.chcbaram
 
NodeJs로 디바이스 통신하기
NodeJs로 디바이스 통신하기NodeJs로 디바이스 통신하기
NodeJs로 디바이스 통신하기TaeYoung Kim
 
Spark performance tuning
Spark performance tuningSpark performance tuning
Spark performance tuninghaiteam
 
이호민 - 우분투 환경에서의 임베디드 개발환경 구축 및 어플리케이션 개발 (2010Y06M24D)
이호민 - 우분투 환경에서의 임베디드 개발환경 구축 및 어플리케이션 개발 (2010Y06M24D)이호민 - 우분투 환경에서의 임베디드 개발환경 구축 및 어플리케이션 개발 (2010Y06M24D)
이호민 - 우분투 환경에서의 임베디드 개발환경 구축 및 어플리케이션 개발 (2010Y06M24D)Ubuntu Korea Community
 
Linux Performan tuning Part I
Linux Performan tuning Part ILinux Performan tuning Part I
Linux Performan tuning Part Isprdd
 
JBoss Web Server ( JBoss 웹서버 ) 설치 가이드
JBoss Web Server ( JBoss 웹서버 ) 설치 가이드JBoss Web Server ( JBoss 웹서버 ) 설치 가이드
JBoss Web Server ( JBoss 웹서버 ) 설치 가이드Opennaru, inc.
 
[조진현]Kgc2012 c++amp
[조진현]Kgc2012 c++amp[조진현]Kgc2012 c++amp
[조진현]Kgc2012 c++amp진현 조
 
kics2013-winter-biomp-slide-20130127-1340
kics2013-winter-biomp-slide-20130127-1340kics2013-winter-biomp-slide-20130127-1340
kics2013-winter-biomp-slide-20130127-1340Samsung Electronics
 
리눅스 드라이버 실습 #1
리눅스 드라이버 실습 #1리눅스 드라이버 실습 #1
리눅스 드라이버 실습 #1Sangho Park
 
Apache httpd ( 아파치 웹서버 ) 설치 가이드
Apache httpd ( 아파치 웹서버 ) 설치 가이드Apache httpd ( 아파치 웹서버 ) 설치 가이드
Apache httpd ( 아파치 웹서버 ) 설치 가이드Opennaru, inc.
 
Remote-debugging-based-on-notrace32-20130619-1900
Remote-debugging-based-on-notrace32-20130619-1900Remote-debugging-based-on-notrace32-20130619-1900
Remote-debugging-based-on-notrace32-20130619-1900Samsung Electronics
 

Similar to Relationship between firmware and module(drvier) (20)

안드로이드 플랫폼 설명
안드로이드 플랫폼 설명안드로이드 플랫폼 설명
안드로이드 플랫폼 설명
 
망고100 보드로 놀아보자 13
망고100 보드로 놀아보자  13망고100 보드로 놀아보자  13
망고100 보드로 놀아보자 13
 
Linux Kernel Boot Process , SOSCON 2015, By Mario Cho
Linux Kernel Boot Process , SOSCON 2015, By Mario ChoLinux Kernel Boot Process , SOSCON 2015, By Mario Cho
Linux Kernel Boot Process , SOSCON 2015, By Mario Cho
 
caanoo Device driver
caanoo Device drivercaanoo Device driver
caanoo Device driver
 
(망고210& Gingerbread) u-boot 컴파일 및 다운로드
(망고210& Gingerbread) u-boot 컴파일 및 다운로드(망고210& Gingerbread) u-boot 컴파일 및 다운로드
(망고210& Gingerbread) u-boot 컴파일 및 다운로드
 
JVM_트러블슈팅.pdf
JVM_트러블슈팅.pdfJVM_트러블슈팅.pdf
JVM_트러블슈팅.pdf
 
Exynos4210 beginnerrev10
Exynos4210 beginnerrev10Exynos4210 beginnerrev10
Exynos4210 beginnerrev10
 
[2018] Java를 위한, Java에 의한 도구들
[2018] Java를 위한, Java에 의한 도구들[2018] Java를 위한, Java에 의한 도구들
[2018] Java를 위한, Java에 의한 도구들
 
CoreOS를 이용한 Docker 관리툴 소개
CoreOS를 이용한 Docker 관리툴 소개CoreOS를 이용한 Docker 관리툴 소개
CoreOS를 이용한 Docker 관리툴 소개
 
컵드론 멀티콥터 펌웨어 분석 2015. 3.28.
컵드론 멀티콥터 펌웨어 분석 2015. 3.28.컵드론 멀티콥터 펌웨어 분석 2015. 3.28.
컵드론 멀티콥터 펌웨어 분석 2015. 3.28.
 
NodeJs로 디바이스 통신하기
NodeJs로 디바이스 통신하기NodeJs로 디바이스 통신하기
NodeJs로 디바이스 통신하기
 
Spark performance tuning
Spark performance tuningSpark performance tuning
Spark performance tuning
 
이호민 - 우분투 환경에서의 임베디드 개발환경 구축 및 어플리케이션 개발 (2010Y06M24D)
이호민 - 우분투 환경에서의 임베디드 개발환경 구축 및 어플리케이션 개발 (2010Y06M24D)이호민 - 우분투 환경에서의 임베디드 개발환경 구축 및 어플리케이션 개발 (2010Y06M24D)
이호민 - 우분투 환경에서의 임베디드 개발환경 구축 및 어플리케이션 개발 (2010Y06M24D)
 
Linux Performan tuning Part I
Linux Performan tuning Part ILinux Performan tuning Part I
Linux Performan tuning Part I
 
JBoss Web Server ( JBoss 웹서버 ) 설치 가이드
JBoss Web Server ( JBoss 웹서버 ) 설치 가이드JBoss Web Server ( JBoss 웹서버 ) 설치 가이드
JBoss Web Server ( JBoss 웹서버 ) 설치 가이드
 
[조진현]Kgc2012 c++amp
[조진현]Kgc2012 c++amp[조진현]Kgc2012 c++amp
[조진현]Kgc2012 c++amp
 
kics2013-winter-biomp-slide-20130127-1340
kics2013-winter-biomp-slide-20130127-1340kics2013-winter-biomp-slide-20130127-1340
kics2013-winter-biomp-slide-20130127-1340
 
리눅스 드라이버 실습 #1
리눅스 드라이버 실습 #1리눅스 드라이버 실습 #1
리눅스 드라이버 실습 #1
 
Apache httpd ( 아파치 웹서버 ) 설치 가이드
Apache httpd ( 아파치 웹서버 ) 설치 가이드Apache httpd ( 아파치 웹서버 ) 설치 가이드
Apache httpd ( 아파치 웹서버 ) 설치 가이드
 
Remote-debugging-based-on-notrace32-20130619-1900
Remote-debugging-based-on-notrace32-20130619-1900Remote-debugging-based-on-notrace32-20130619-1900
Remote-debugging-based-on-notrace32-20130619-1900
 

Relationship between firmware and module(drvier)

  • 1. (주)오뉴이노베이션 2016. 03. TA 팀 심재옥 팀장 010-9022-6200 Relationship between firmware and module
  • 2. 2 / 12 Agenda ➔ Hardware, Firmware, Software ➔ Firmware, Module(Driver) - 3 - - 5 -
  • 3. 3 / 12 Hardware, Firmware, SoftwareHardware, Firmware, Software
  • 4. 4 / 12 Hardware, Firmware, Software의 정의 Hardware Firmware Software 전용 드라이버나 납땜을 통해 변 경 가능한 전자 부품의 물리적인 배열 하드웨어에 저장되는 소프트웨 어 컴퓨터 하드웨어를 작동을 가이 드하는 디지털 명령의 배열
  • 5. 5 / 12 Firmware, Module(Driver)Firmware, Module(Driver)
  • 6. 6 / 12 Firmware와 Module의 역할 ➔ Firmware ● 하드웨어(디바이스)의 기능을 담당 – # ethtool -S ethX, # ethtool -p ethX ➔ Module ● 하드웨어(디바이스)의 작동을 담당 – # lsmod, # modinfo e1000e $ ethtool -i em1 driver: e1000e version: 2.0.0-k firmware-version: 0.13-3 bus-info: 0000:00:19.0 supports-statistics: yes supports-test: yes supports-eeprom-access: yes supports-register-dump: yes # ethtool -i enp2s0 driver: r8169 version: 2.3LK-NAPI firmware-version: rtl8168h- 2_0.0.2 02/26/15 expansion-rom-version: bus-info: 0000:02:00.0 supports-statistics: yes supports-test: no supports-eeprom-access: no supports-register-dump: yes supports-priv-flags: no
  • 7. 7 / 12 Firmware와 Module의 관계 ➔ Module을 통해서 하드웨어를 사용 할 준비가 되 어 있다면 Firmware를 통해서 하드웨어가 가지고 있는 기능의 활성 및 기능의 변경을 할 수 있다. Device Firmware Kernel Module 하드웨어의 작동 기능 적용 및 변경 OS, Linux
  • 8. 8 / 12 Firmware, Module packages ➔ Firmware 패키지 ● /lib/firmware/ath10k/QCA6174/hw3.0/firmware- 4.bin – # rpm -qf firmware-4.bin linux-firmware-20160204- 61.git91d5dd13.fc23.noarch ➔ Module 패키지 ● /lib/modules/4.4.3- 300.fc23.x86_64/kernel/drivers/net/wireless/ath/ ath10k – # rpm -qf ath10k_pci.ko.xz kernel-modules-4.4.3-300.fc23.x86_64
  • 9. 9 / 12 Module과 Firmware은 어디에 있나? ➔ Module ➔ Firmware # ls /lib/modules/$(uname -r)/kernel/drivers acpi dca hwmon memstick parport spi vhost ata devfreq i2c message pci ssb video atm dma idle mfd pcmcia staging virtio auxdisplay edac iio misc pinctrl target w1 base firewire infiniband mmc platform thermal watchdog bcma firmware input mtd power thunderbolt xen block fmc iommu net powercap tty bluetooth gpio isdn nfc pps uio char gpu leds ntb ptp usb cpufreq hid md nvdimm rtc uwb crypto hv media nvme scsi vfio # ls /lib/modules/$(uname -r) build modules.builtin modules.modesetting source config modules.builtin.bin modules.networking System.map kernel modules.dep modules.order updates modules.alias modules.dep.bin modules.softdep vdso modules.alias.bin modules.devname modules.symbols vmlinuz modules.block modules.drm modules.symbols.bin # ls /lib/firmware 3com iwlwifi-6050-4.ucode acenic iwlwifi-6050-5.ucode adaptec iwlwifi-7260-10.ucode advansys iwlwifi-7260-12.ucode agere_ap_fw.bin iwlwifi-7260-13.ucode agere_sta_fw.bin iwlwifi-7260-16.ucode amdgpu iwlwifi-7260-7.ucode
  • 10. 10 / 12 Module은 있으나 Firmware버전이 낮은 경우 ➔ 장치 확인 ● ath10k_pci 모듈이 작동했기 때문에 무선랜 디바이스가 정확하게 보임 ➔ Firmware 확인 ● Firmware 버전이 낮아 무선랜이 작동하지 않음
  • 11. 11 / 12 Firmware와 Module의 업데이트 ➔ 디바이스를 사용 할 수 없을 경우 ● Module의 설치 혹은 업데이트 ➔ 디바이스의 기능을 사용 할 수 없는 경우 ● Firmware의 업데이트 ● Firmware가 있고 Firmware에 쓸 수 있는 디바이스에 한해. # rpm -qa | grep firmware iwl6000-firmware-9.221.4.1-61.fc23.noarch ipw2200-firmware-3.1-11.fc23.noarch iwl6050-firmware-41.28.5.1-61.fc23.noarch iwl2030-firmware-18.168.6.1-61.fc23.noarch iwl4965-firmware-228.61.2.24-61.fc23.noarch iwl7260-firmware-25.30.13.0-61.fc23.noarch iwl3945-firmware-15.32.2.9-61.fc23.noarch atmel-firmware-1.3-14.fc23.noarch iwl5150-firmware-8.24.2.2-61.fc23.noarch iwl105-firmware-18.168.6.1-61.fc23.noarch zd1211-firmware-1.4-11.fc23.noarch libertas-usb8388-firmware-20160204-61.git91d5dd13.fc23.noarch iwl5000-firmware-8.83.5.1_1-61.fc23.noarch iwl1000-firmware-39.31.5.1-61.fc23.noarch iwl6000g2a-firmware-18.168.6.1-61.fc23.noarch iwl2000-firmware-18.168.6.1-61.fc23.noarch iwl135-firmware-18.168.6.1-61.fc23.noarch iwl3160-firmware-25.30.13.0-61.fc23.noarch ipw2100-firmware-1.3-18.fc23.noarch iwl6000g2b-firmware-18.168.6.1-61.fc23.noarch iwl100-firmware-39.31.5.1-61.fc23.noarch linux-firmware-20160204-61.git91d5dd13.fc23.noarch # rpm -qa | grep kernel kernel-core-4.4.2-301.fc23.x86_64 kernel-modules-4.3.5-300.fc23.x86_64 kernel-4.4.3-300.fc23.x86_64 kernel-core-4.4.3-300.fc23.x86_64 kernel-4.4.2-301.fc23.x86_64 libreport-plugin-kerneloops-2.6.4-1.fc23.x86_64 kernel-headers-4.4.3-300.fc23.x86_64 kernel-core-4.3.5-300.fc23.x86_64 abrt-addon-kerneloops-2.8.0-3.fc23.x86_64 kernel-modules-4.4.2-301.fc23.x86_64 kernel-4.3.5-300.fc23.x86_64 kernel-modules-4.4.3-300.fc23.x86_64
  • 12. 12 / 12 감사합니다. 기쁨을 나누면 질투가 되고, 슬픔을 나누면 약점이 된다.