IT(98)
-
CPU hotplug & dm-verity
# CPU hotplug CPU hotplug란, 사용하지 않는 CPU의 전원을 아예 꺼버리는 방법입니다. 이 기능이 있는 이유는, 기본적으로 배터리로 전원을 공급하는 장치에서는 power를 효율적으로 써야하기때문이다. 크게 2가지로 나뉘어짐. 1. Static power (Leakage power) 제품이 비활성화 상태일때, 사용자가 스위치 입력 등으로 저전력 시스템 상태로 전환한 경우. 또는 사용하지 않고 있는 부분의 전원만 사용할 수 도 있다. 2. Dynamic power ( Switching power ) 제품이 사용중일때 전원 관리. 이러한 전원 관리에는 CPU 주파수 & 전압 조정이나 주변장치의 클럭 및 전원 제어 등이 포함된다. Refer : https://by1994.github.io/l..
2024.01.04 -
ftrace
Ftrace는 , 다른 debugging tool 과는 다르게, run time 일때 실시간 반영이 가능하다. (Compile 할떄는 option만 활성화 해주면되고, 그 뒤에 run 상태에서 바로바로 config 반영이 된다!) Ftrace 의 특징은 다음과 같다. 1. Interrupt, scheduling, kernel timer 등의 커널 동작을 상세히 추적한다. 2. 함수 필터를 지정하면 해당 함수를 호출한 함수와, 전체 call stack 까지 출력한다. 코드 수정 불필요. 3. 함수를 어느 process가 실행하는지 알 수 있다. 4. 함수가 실행된 시각 정보를 알 수 있다. 5. Ftrace log 를 활성화 해도, system 동작에 부하를 거의 주지 않는다. /sys/kernel/deb..
2023.12.26 -
Kernel Timer
리눅스 커널에서 지원하는 타이머는, 1. 1/HZ 단위로 동작하는 저해상도(Low Resolution) 타이머 2. nano sec 단위인 고해상도(High Resolution) 타이머 로 분류한다. 일반적으로 DD(Device Driver)에서 사용하는 타이머는 저해상도 타이머이고, 이를 커널 타이머라고 부른다. LR == Kernel Timer ( jiffies (1/HZ) 단위) 커널 타이머 관리 를 이루는 주요 개념은 아래와 같다. HZ & Jiffies Soft IRQ service Kernel Timer를 이루는 자료 구조 동적 타이머 1. HZ HZ는 진동수 라고 부르며, 1 sec에 jiffies가 업데이트 되는 횟수 라고 할수있다. 예를들어, HZ가 100이면, 1초에 jiffies가 1..
2023.08.19 -
안드로이드 하드웨어 서비스 - 01
안드로이드는 모바일 디바이스용 S/W 플랫폼으로, 다양한 HW를 지원하며 HW제어를 위한 상위 수준의 API를 제공한다. 1장은 기본적인 안드로이드 HW 구조를 살펴보고, 안드로이드가 제공하는 서비스 종류, 제어방법을 설명한다. 또한, IPC, ITC 방법에 대해서 설명한다. ** [ 새로 알게된 부분만 요약하는 요약본] ** # Discrete AP(Thin Modem) vs Integrated AP(Fat Modem) AP의 설계방식은 모뎀 중심으로 AP를 통합한 구조인 Integrated AP와, 모뎀을 따로 구분하고 AP위주인 Discrete AP 구조로 구분한다. Thin modem구조는 AP가 분리되어있어 모뎀은 통신 기능만 담당하고 그 이외 대부분의 작업은 AP에서 담당한다. discrete..
2023.05.07 -
현업에서 쓰는 Git, Gerrit ( svn 에서 처음 git 을 사용하는 유저.. )
SVN 만 쓰던 나......... GIT 은 혼자 깔짝댄게 다였는데... Git...뿌시고싶다................넘 번거롭다......... svn up... svn commit ... svn co -r xxx... 얼마나 쉽ㄴㅑ고... 그래서 정리해보는 현업에서 사용하고있는 Git 절차.. 새로 Gerrit 만들 때1) repo start // local branch 생성. 2) 수정된 파일 업로드 후( modified or add ), git add . 3) git commit -s 4) Edit commit message. 5) repo upload . ( do not use option -wip ) 이걸 마무리 하면, 새로운 gerrit link 가 생긴걸 확인할수있다. 6) 여기서 정..
2023.04.10 -
About pthread ( timeout function )
pthread를 사용해 timeout function 을 만들어 보았다. 근데 이게 main과 동작 function을 분리하니 timer가 제대로 돌아가지 않는것이다. ㅠㅠ 이해를 못하니 뭘 더 어떻게 빼야 동작하는지를 몰랐는데 , 수정본을 받아보니 이해가 된다. 먼저 소스 구성은 다음과 같다. 1. main 함수에서 init과 destroy만 해주고, 2. 실행 함수 (다른 c file) 안에서 mutex_lock & timedwait & mutex_unlock을 해준다.(timeout실행) 그래서 ... 난 처음에 이렇게 2개만 main 함수 밖에서 선언해줬는데, pthread_mutex_t event_queue_mutex = PTHREAD_MUTEX_INITIALIZER; pthread_cond_t..
2023.04.02 -
Ubuntu에서 삼성 안드로이드 폰 인식하기.
1. 먼저 USB로 연결되어있는 장비를 확인해본다. root@shcho-VirtualBox:~# lsusb Bus 002 Device 007: ID 04e8:6860 Samsung Electronics Co., Ltd Galaxy series, misc. (MTP mode) Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub 우리는 저 04e8:6860 샘숭 갤럭시 폰을 연결할것이다. 2. sudo root 계정으로 들어가서, /etc/..
2022.08.16 -
Ubuntu에서 logcat 파일로 저장 하기.
** 이걸 확인하기 전에 해야할 작업 1. 안드로이드 폰 연결 되어있는지 확인 2. 해당 앱을 폰에서 켜야, ps (pid number) 찾을 수(확인 할 수) 있음. * adb 실행시 아래와 같은 문제가 생겼었다. 그럼 아래 글을 참고하자. https://guks-blog.tistory.com/entry/Unity-adb-server-version-doesnt-match-this-client-%ED%95%B4%EA%B2%B0%EB%B0%A9%EB%B2%95 [Unity] adb server version doesn't match this client 해결방법 안드로이드로 빌드할 때 가끔 발생하는 오류 코드인데 우선 cmd 창에서 sdk의 platform-tools로 이동한다 1. cmd를 연다 2. c..
2022.08.16 -
pyyaml version upgrade 시 Command !
pyyaml 버전이 낮아서 설치가 제대로 안되서 Error 가 났다. 요때는 어째야하나!? https://stackoverflow.com/questions/49911550/how-to-upgrade-disutils-package-pyyaml How to upgrade disutils package PyYAML? I was trying to install chatterbot which has a dependency on PyYAML=3.12. In my Ubuntu machine installed PyYAML version is 3.11. So I used the following command to upgrade PyYAML: sudo -H pip3 ins... stackoverflow.com --ign..
2022.07.26 -
Ubuntu update 시 에러 날 경우!
update 를 하려니 바로 이런 에러가 뜨면서 update 가 안되더라. ( 먼저는 net-tools를 깔려고 했는데 안되서 update 를 한것.) 요렇게 404 Not Found 가 뜨고, Err 가 발생한다. 이 문제는 , 현재 사용하고 있는 우분투 버전의 업뎃 지원이 끝나, 해당 버전의 패키지 저장소가 이전 버전 아카이브 페이지인 old-release.ubuntu.com으로 이동되어 받아올 수 없는 경우라고 한다 ! sudo sed -i -re 's/([a-z]{2}\.)?archive.ubuntu.com|security.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list sudo apt-get update && sudo apt-get di..
2022.07.26