본문 바로가기

분류 전체보기

linux kernel - boot args 중 boot_cpus 두개의 cpu 만 입력하면, 두개로만 부팅함. bootargs: boot_cpus=0,1 console=ram initcall_debug=0 loglevel=9 root=/dev/sda1 firmware_class.path=/lib/firmware rootwait rootfstype=ext4 init=/sbin/init reserve-sam=0xffffff81fa080000 reserve-gdc=0xffffff81fa460000 Baremetal solution DT Address (0x8a000000) with Exception Level (2) Samsung Embedded Linux for Exyno Auto 2.6.1 euto-v9 ttySAC0 euto-v9 login: root root@eut.. 더보기
arm asm - ubfs, lsl, orr, cbz, cbnz, stxr, ldxr ubfs x0, x1, #0, #8 해석 : x1 에서 0 부터 8개의 bit 를 취해서 x0 에 복사 즉, 0~7 까지의 bit 가 x0 에 복사됨 lsl w0, w1, w2 -> w0 = w1 w1=w2|w0 CBZ Rn, label CBNZ Rn, label Rn 이 0이면, label 로 jump CMP Rn, #0 BEQ label Rn 이 0이 아니면, label 로 jump CMP Rn, #0 BNE label LDXR reg, [addr] -> load from memory and exclusive monitor set E flag. STXR w0, reg, [addr] -> If excluseve monito.. 더보기
cache - clean, Invalidate, Flush Clean : Cache의 dirty data를 memory에 write. (Cache line은 dirty에서 clean으로 변경 & data는 Cache line에 존재) Invalidate : Cache line의 valid flag를 0으로 change. (Cache line을 버림) Flush : Clean + Invalidate. [출처] Clean, Invalidate, Flush of Cache|작성자 고고빨간양말 더보기
google play music service is disappeared on google home(구글 플레이 뮤직 서비스가 구글홈 설정에서 보이지 않을때) google home 에 어렵게 google play music 을 등록하여 쓰고 있는데, 간혹, google home menu 에서 google play music 버튼이 사라져서 당혹스러울 때가 있다. 이때는 VPN 등을 핸드폰에 설치하고, USA VPN 을 활성화 시킨다. 이후 google home 을 완전히 종료하였다가 다시 실행시키면, 버튼이 다시 활성화 되어 있는것을 볼 수 있다. spotify service 도 동일한 방법으로 설정이 가능하다. 더보기
trace32 - set conditional breakpoint using arm register value UI 창에서는 입력이 어려우나 아래와 같이 command 로 입력하면 된다. Break.Set function_name /Program /CONDition Register(X0)==699 더보기
Git 유용한 명령어들 commit 한 내용을 roll back 하기 local repository 에 마지막 commit 을 날릴 수 있다. git reset --hard HEAD^ git reset HEAD^^^ "^" 의 갯수만큼 back 으로 돌아가나.. 파일자체는 원본으로 남아있어서 해당 파일이 modified 상태가 된다. 위 상태에서 아래와 같이 --head 옵션을 주면, 서버의 상태로 파일이 원복된다. git reset --hard HEAD 위 두 명령어를 합치면 아래와 같다. git reset --hard HEAD^^^ git status 에서 modified file 이 붉은 색으로 표시된다면 아직, add 가 안되어 workspace 에서 stage 로 가지 못한 것이다. 아래 문구도 유심히 보면 된다. n.. 더보기
arm interrupt mask / unmask 의 의미 mask -> disable 하겠다. unmask -> enable 하겠다. 더보기
linux shell 의 sysfs에서 device-tree 뽑아내는 방법 dtc 라는 tool 을 사용하면 된다. dtc -I fs -O dts -o output.dts /proc/device-tree 더보기
arm sysmmu 와 mmu 의 차이 core ---(mmu stage 1)--> (mmu stage 2)--> DRAM peripheral --(sys mmu stage 1) --> (sysmmu stage 2) --> DRAM 더보기
find and grep on linux shell Sometimes, we want to perform 'grep' command among results of 'find' command.I'll introduce how can we do this easier. The way is very simple - magic keyword is "--include=" Example, below command find "PAGE" word among the files what has ".dts" string in file name. grep -snra --include="*.dts*" "PAGE" 더보기
linux devicetree - interrupt 원본 : liunx Documentation/devicetree/bindings/arm/gic.txt linux document 의 설명이 애매해서 좀 더 풀어서 남긴다. ex)interrupt-controller@2c001000 {compatible = "arm,cortex-a15-gic";#interrupt-cells = ;interrupt-controller;reg = , , , ;interrupts = ;}; #이 있다고 주석이 아니다. 3 이라는 숫자는 interrupts = 에 3개의 값이 들어감을 의미한다. The 1st cell is the interrupt type; 0 for SPI interrupt.. 더보기
outlook 에서 마우스 drag 로 텍스트 선택이 안되는 버그 outlook 을 2016으로 업그레이드 한 이후, 갑자기 메일 본문을 drag 해서 선택할 수 없는 버그가 발생했다.본문을 copy 할 수 없어 매우 불편했는데 아래와 같이 해결했다. 1) win+r 키를 눌러서 실행창 open2) 다음 명령어 입력outlook.exe /restartfolders Close your Outlook.Launch the Run command (e.g. by pressing the Windows logo key + R).Type the following command: outlook.exe /resetfolders (Fig. 2.), and click OK to execute it. This should repair the default Outlook folder.. 더보기
irq 와 fiq 의 차이점 원문 : http://blog.naver.com/PostView.nhn?blogId=nhi1999&logNo=100036266880&parentCategoryNo=&categoryNo=&viewDate=&isShowPopularPosts=false&from=postView 원문요약 IRQ : Interrupt ReQuestFIQ : Fast Interrupt reQuest arm 에서 FIQ 가 IRQ 보다 빠른 이유 1) 전용 register 가 많아서 mode 전환시 stack 으로 store 하는 시간 절약 ----------------------------------------------------- User FIQ Super Abort IRQ Undefined -------------------.. 더보기
shell terminal 이 종료되어도 계속해서 작업 수행되도록 하기 원문 : http://dreamlog.tistory.com/470build 같이 시간이 걸리는 작업을 걸어놓으면, windows pc 를 off 할 수 없어서 곤란한 상황이 생길때가 있다. 혹은 실수로 터미널을 종료할 때도 있다. 아래와 같이 screen 을 사용하면 그런 우려를 덜 수 있다. 자세한 설명은 위 원문에 잘 설명되어 있고, 사용법만을 보관을 위해 적어 둔다. . screen 사용법screen 만들기.$ screen -S build1 screen 목록 보기.$ screen -listThere is a screen on: 3703.build1(2015년 11월 11일 01시 43분 38초)(Attached) 1 Socket in /var/run/screen/S-hyunmu. 사용 예)$ scr.. 더보기
patch 적용하기, diff, sdiff 원문 : https://blog.naver.com/zeta0807/220943464598 1. diff --brief간략한 폴더비교를 할 일이 자주 있다. 아래와 같이 사용하면 된다.diff --brief -r folder1/ folder2/아래 site를 참조하였으며 엄청난 option들이 있다. http://stackoverflow.com/questions/4997693/given-two-directory-trees-how-can-i-find-out-which-files-differ You said Linux, so you luck out (at least it should be available, not sure when it was added): diff --brief -r dir1/ dir2/ .. 더보기
Linux storage stack diagram https://www.thomas-krenn.com/de/wikiDE/images/2/2d/Linux-storage-stack-diagram_v4.0.pdf 더보기
MBR 혹은 partition table dump 명령어, device node 로 부터 ufs, emmc dump dd if=/dev/block/vold/disk:8,0 of=/data/local/tmp/mbr-dump bs=512 count=1 dd if=/dev/block/vold/disk:179,64 of=/data/local/tmp/mbr-dump bs=512 count=1 dd if=/dev/block/vold/disk:179,0 of=/data/local/tmp/dump bs=512 count=1 - usb storage low image 위치 /dev/block/vold/disk:8,0 혹은 /dev/block/sda => dump 뜨면 MBR 부터 떠짐 /dev/block/sda1 => dump 뜨면 partition 부터 떠짐 /data/local/tmp/mbr-dump dd if=/dev/block.. 더보기
programming english - A hit the assertion that IRQs are disable. programming english A hit the assertion that IRQs are disabled.의 의미.. A 라는 system 이 ASSERT() 코드를 가지고 있음.내용은 IRQ 가 disable 되었는지 check 하고 맞으면 ok, 틀리면 assert 를 발생시키는...헌데 이 ASSERT() 에 hit 되어 assert 가 발생했다는 의미임 더보기
loop device and losetup 원문 : https://cafe.naver.com/taskers/10933 loop는 이미지파일을 블록 디바이스로 인식되게 해주는 디바이스 드라이버입니다.즉, 이미지 파일을 마운트 시켜줍니다. 쉽게 말해서 윈도우즈의 데몬툴이나 시디스페이스 같은 것이라 보면 됩니다.그러나 그 기능과 성능은 훨씬 강력합니다. 아래는 loop를 이용하여 100MB짜리 vfat 이미지를 마운트하는 예제입니다. 진행하려면 비지박스와 루팅은 필수입니다.터미널이나 ADB Shell에서 진행하세요. 1. 일단 dd를 이용해서 100메가짜리 공파일을 뜹니다. dd if=/dev/zero of=/mnt/sdcard/vdrive.img bs=1000000 count=100 dd : 덤프를 뜹니다. if=[덤프대상] of=[덤프결과]/dev.. 더보기
linux partitions (sda, sda1, sda2...) # cat partitions major minor #blocks name 1 0 8192 ram0 8 0 247087104 sda -> 디스크.. 보통 여기에 파티션을 만들지는 않는다. 8 1 204800 sda1 -> 실제 파티션 8 2 1048576 sda2 8 3 1048576 sda3 8 4 1048576 sda4 8 5 30720 sda5 8 6 102400 sda6 8 7 20480 sda7 8 8 30720 sda8 8 9 614400 sda9 8 10 17039360 sda10 8 11 225898444 sda11 8 16 4096 sdb 8 32 4096 sdc = 아래는 byte 단위 일듯 # cat size 494174208 # cat /sys/block/sda/sda1/start .. 더보기
전국 맛집 리스트 정용진이 스타필드 기획할 때 전국 이마트 직원들 수소문해서 맛집 리스트 끌어 모음 -> 엑셀로 정리함 -> 직원 중 누가 커뮤에 뿌림 -> 누가 지도로 정리함 루트로 확산 중이라는 전국 맛집 리스트 서울 http://naver.me/xUDJvQk9 경기1편 http://naver.me/F10RdYT3 경기2편 http://naver.me/5c5Z0MdD 인천 http://naver.me/GSpkmqRX 강원 http://naver.me/5SgUqicj 제주 http://naver.me/xogwk903 충북 http://naver.me/5acI1TeT 충남 http://naver.me/FfG4LoLG 전북 http://naver.me/xsAvLbgm 전남 http://naver.me/5eMO2QFN 울산 .. 더보기
std::string c++ 활용 예제 #include #include using namespace std; int main(){string str = "my name is"; // 확장str.append(" onegun");cout 더보기
std c++ vector 와 sort 사용법 예제 #include #include "iostream" #include #include using namespace std; typedef struct point{int a;char b;} t_pos; bool cmp(t_pos &A, t_pos &B) {return A.b < B.b;} int main(){cout 더보기
ubuntu network restart 일반적으로 아래 방법을 안내하지만, 설정이 변경되지 않는 경우가 종종있어서 결국은 ubuntu 를 restart 하곤 한다. sudo service networking restart 아래 방법으로 사용하면 ubuntu 재시작 없이 Ethernet driver 를 reset 하여 설정 변경이 가능합니다. sudo ifdown eth0 && sudo ifup eth0 더보기
anki - AwesomeTTS add-on 추가하기 안녕하세요. 오늘은 anki app 의 유용한 add-on 중 하나인 AwesomeTTS 설치하는 법을 소개하고자 합니다.초창기 Anki 의 TTS 기능은 매우 빈약했었는데,TTS 서비스가 발전하면서 꽤 쓸만한 수준이 되었습니다. 우선 AwesomeTTS add-on page 입니다.https://ankiweb.net/shared/info/301952613 위의 숫자 301952613 을 복사하여, anki app 에서 설치를 해줍니다.여기까지 진행했다면 add-on 이 설치됩니다.이후 아래와 같이 카드유형 수정창을 open 합니다. 저의 카드유형에는 이미 AwesomeTTS가 설치 되어 있는 상태입니다.add-on 이 정상적으로 설치되었다면 위의 카드 유형 창에서 아래쪽에 "Add TTS" 버튼이 추가.. 더보기
Microwave body motion sensor test 기 - 1부 얼마전 알리익스프레스에서 저렴한 가격의 모션센서를 보고 질러습니다.부엌을 왔다갔다 할때마다 전등을 켜고 끄기가 번거로웠는데, 부엌 특성상 손에 쟁반이나 음식 그릇을 들고 있는 경우가 많아서, 자동으로 사람이 있을때만 불이켜졌으면 좋겠다고 생각했었습니다. - 구매 좌표https://www.aliexpress.com/item/New-Arrival-AC220-240V-7A-5-8GHz-360-Degree-Time-Setting-Microwave-Sensor-Radar-Body-Sensor/32784029252.html?spm=a2g0s.9042311.0.0.61fc4c4d1myZBM - 연결 설계도최종적으로 중성선(neutral)선 없이 아래와 같이 연결하였습니다. 아래 그림들에 보면 중성선 기준으로 설명이 .. 더보기
dtb(device tree blob) file parser(command) on linux fdtdump dtb_file.dtb > /tmp/test.txt 더보기
balloon driver balloon driver : Hypervisor 의 메모리 관리 기법중 하나 https://theithollow.com/2012/12/26/vmware-ballooning-explained/ 이 기법은 host 가 낮은 physical memory 상에서 동작할때만 유효한 기능이다. 만약 host 가 60 GB 의 physical memory 를 가지고 있고, VM 이 30GB만 alloc 한다면 이 기법은 생각할 필요가 없다. VM 에 할당한 메모리들은 active 하게 사용되지 않는다. VMware ballooning 은 기본적으로 host 에게 메모리를 돌려달라는 요구로 구성되어 있다. host 는 기본적으로 guest OS 들이 하는일을 모르고, guest OS 는 자신이 virtual 하다는 .. 더보기
PMU - Performance Monitoring Unit 원문 : http://cares.snu.ac.kr:8000/courses/emb/2013_1/assignment/2/Assignment2.pdfPMU - Performance Monitoring Unit PMU란 Performance Monitoring Unit으로 시스템 내부에서 발생하는 하드웨어 관련 이벤트 발생을 측정하는 카운터 레지스터를 통해 성능 분석을 지원하는 컴포넌트 더보기
rootfs rootfs 란? linux kernel 을 build 할때 가장 최 상의에 위치할 filesystem 의 폴더 경로를 ramdisk로 만들고 미리 package 화 한 binary /bin/dev/etc/lib/proc/root... 더보기