2017/09 8

OpenWrt, 새로운 패키지(iptraf package) 추가하기

예전에 openwrt 확인했을 때는 iptraf (traffic 분석툴)이 포함되어 있었던 것 같은데 막상 최근 openwrt 바이너리를 다운로드 받아 보이 해당 명령어가 존재하지 않았다. 인터넷을 검색해 보니 iptraf는 더 이상 포함하지 않는다는 글이 보인다. 좀 더 검색을 해보니 iptraf 와 같이 이전 openwrt의 old package를 사용할 수 있도록 해 놓은 곳이 있다. https://github.com/mhei/openwrt-oldpackages 좀 더 정확히 이야기하면 실행 binary 자체를 올려 놓은 것은 아니고, openwrt build system 내에서 빌드하여 바이너리에 포함될 수 있도록 Makefile을 제공하고 있다. 해당 git 에서 Makefile 바이너리를 다운..

OS/OpenWRT, LEDE 2017.09.26

롬 (ROM, Read Only Memory)

Read-only memory (ROM) 는 비휘발성(non-volatile) memory 이다. (비휘발성이란 전원을 차단해도 내용이 삭제 되지 않음을 의미) 전통적으로 ROM은 제조사에 의해서만 programming 이 가능한 mask-programmed ROM이다. 많은 제약이 있지만 어느정도 수정이 가능한 ROM도 존재한다. ROM 의 종류 - semiconductor(반도체) 기반 PROM (Programmable read-only memory) or OTP (one-time programmable ROM) :PROM programmer 라는 장비를 통해서만 쓰기가 가능하다. 한번만 쓰기가 가능하다. EPROM (Erasable programmable read-only memory) :자외선을 ..

OpenWrt, TP-LINK Archer C7 build 하기 (ATH10k)

TP-LINK Archer C7 용으로 openwrt code를 수정하여 build 할 일이 있었다. 아래 Full binary 생성 순서와 같이 진행하였다. http://technote.kr/167 하지만 막상 만들고 보니 5GHz 가 동작하지 않았다. Target System 도 ar71xx로 설정하고 Target Profile도 TP-LINK Archer C5/C7 으로 제대로 설정하였는데 대체 무엇이 문제일까.. Target Profile 을 모델에 맞게 TP-LINK Archer C5/C7로 설정하면 해당 모델에 맞는 관련 설정들이 자동으로 모두 이루어 질 것 이라고 생각했었는데, 누락된 것이 있어서 그렇다는 것을 알게 되었다. 가장 중요한 것 중 하나인 5GHz관련 wireless interf..

OS/OpenWRT, LEDE 2017.09.26

Interrupt (인터럽트), 그리고 Exception (예외)

CA (Computer architecture) 를 공부하면서 interrupt 부분을 공부하다보니 책마다 다소 상이한 부분이 있었다. interrupt 분류(종류) 부분이었는데 어떤 책에서는 외부 인터럽트의 한 종류로 I/O 인터럽트를 분류해 놓은 반면 어떤 책에서는 외부 인터럽트는 외부 인터럽트대로 있고, I/O 인터럽트는 또 다른 종류로 분류해 놓은 경우도 있었다. 인터럽트와 유사한 개념인 예외(Exception)와 혼용하는 경우도 있었고, 구분하여 분류한 곳도 있었다. 이래저래 찾다 보니 어느 정도 정리된 내용을 찾아 정리하고자 한다. Interrupt (인터럽트) : 제어 흐름에서 예상치 못한, 외부에서 전달되는 사건.Exception (예외) : 프로세서 내부에서 발생하는 예상치 못한 사건. ..

OpenWrt, 특정 revision(commit)의 source code sync(동기화) 하기

TP-LINK Archer C7 을 Openwrt 에서 일부 기능을 구현하여 확인할 일이 생겼다. https://wiki.openwrt.org/toh/tp-link/archer-c7-1750 위 official로 build 된 Archer C7 용 binary를 다운로드 받아 보니 2.4GHz, 5GHz 모두 잘 동작했다. 그래서 해당 모델의 openwrt latest source code를 다운로드 받아 아래 과정에 따라 full binary 로 빌드하였다. OpenWrt, 전체 기본 Image 만들기 하지만 막상 최신으로 빌드해서 확인해 보니 5GHz 가 동작하지 않는다. 분명 official 과 같은 branch 의 source code를 다운받아서 빌드했는데, 왜 동작하지 않았을까 생각해 보았다...

OS/OpenWRT, LEDE 2017.09.25

WI-FI packet sniffing (Wi-Fi packet 분석)

일반 사용자가 Wi-Fi frame을 볼 일은 거의 없다. 아마도 이 글을 Wi-Fi 관련 연구자나 개발자가 보면 도움이 될 것이다. Windows 상에서 Wi-Fi frame을 제대로 잡기 위해서는 상당한 금액의 omnipeek이나 별도의 Wi-Fi USB dongle을 구매해야 하는 wireshark를 사용할 것이다. 이외에도 몇가지 방법은 있지만 잘 안되는 경우가 많은 것 같다. 하지만 Linux 에서는 kernel 에서 monitor mode라고 해서 Wi-Fi sniffing을 지원하고 있다. (해당 기능은 mac80211에서 지원 하는 것으로 너무 오래된 구형 Wi-Fi driver에서는 동작하지 않는다.) Built-in Wi-Fi이건 USB Wi-Fi dongle이건 배포판에 상관없이 Li..

Network/Wi-Fi 2017.09.19

Memory Interleaving (메모리 인터리빙)

Memory interleaving, wikipedia 영문판에는 Interleaved memory 라고 되어 있고, 한글판에는 memory interleaving 이라고 되어 있다. 다소 용어에는 차이가 있지만 결론적으로 memory 를 interleaving 기법을 사용하여 성능을 향상시키는 방법을 의미한다. 일반적으로 메모리상에 존재하는 데이터에 접근할 때 메모리를 순차적으로 참조한다. 보통은 데이터가 메모리상에 올라갈 때는 순차적으로 올라가기 때문이다. 하지만 CPU가 한 워드(word)를 메모리상에서 읽어와서 조작하는 동안 해당 메모리는 접근할 수 없는 문제가 발생한다. [No interleaving] 위와 같이 No interleaving 상태에서는 1을 읽고 처리하는 동안 2에 접근할 수 없..

Addressing mode (주소 지정 방식)

컴퓨터 구조 관련 공부를 하다보니 주소 지정 방식에 여러 가지가 있는 것을 보게 되었다. 한글로 된 주소 지정 방식 관련 글들을 보다 보면 "직접(Direct) 주소 지정 방식", "간접(Indirect) 주소 지정 방식", "레지스터(Register) 주소 지정 방식" 등 널리 알려진, 우리가 흔히 접하는 방식 대로 언급되어 있었다. 그런데 wikipedia에서 addressing mode를 찾아 보면 방식들이 이렇게 단순하지가 않다. 해외에서 사용되는 기계들과 국내에서 사용되는 기계들이 다르지 않을 텐데 무엇때문일까. 제조사별로 같은 주소 지정 방식이더라도 다른 용어를 사용 (혹은 다른 지정 방식이더라도 같은 용어 사용) Architecture 별로 서로 다른 주소 지정 방식(addressing mo..