728x90
반응형

전체 글

C/C++, 임베디드 리눅스 시스템
728x90
반응형
Embedded system/Build

[Buildroot] Buildroot를 사용하여 시스템 이미지 생성

리눅스 커널을 디버깅할 수 있는 환경을 구축하여 디바이스 드라이버나 리눅스 커널을 분석할 수 있도록 만든다. 그 후, init 프로세스가 어떻게 생성이 되는지, 제일 처음 사용되는 시스템 콜이 무엇인지 분석할 것이다. Buildroot qemu JTAG 장비가 없으므로, qemu를 이용해 리눅스 커널을 디버깅할 것이다. qemu는 vmware와 같은 가상 머신이다. Buildroot 임베디드 시스템 오픈 소스 프로젝트로, 리눅스 커널과 파일시스템을 구축할 때 전체 시스템 빌드용으로 사용한다. 환경 구축 과정 패키지 설치 소스 코드 다운로드 및 패치 커널 및 rootfs 빌드 설정 커널 및 rootfs 빌드 (오래 걸림..) 패키지 설치 우선, 스케줄러 디버깅을 위해, buildroot를 빌드하기 위해 패..

Embedded system/etc

[VirtualBox] 우분투 BusyBox initramfs 해결

BusyBox (initramfs) 우분투가 먹통이 되어서 우분투를 강제 종료시키고 다시 부팅을 시켰는데, 부팅 과정에서 오류가 발생했다. 우분투가 제대로 종료되지 않아, 올바른 파티션을 찾지 못해 Busybox로 진입했다. Busybox는 파일 관리, 디렉토리 조작, 네트워크 관련작업 등을 실행할 수 있으며, 간단한 명령어로 오류를 고칠 수 있다. Block Device 정보 확인 (blkid) $ blkid blkid 명령어를 사용하면 파일 시스템 타입, UUID, 파일 시스템에 설정된 레이블 정보, 디바이스 경로 등을 확인할 수 있다. 시스템에 연결된 블록 장치의 정보를 확인할 수 있기 때문에, 파일 시스템 관리에 유용하다. 파일 시스템 복원 (fsck) 시스템이 갑작스럽게 종료되거나 비정상적으로 ..

프로그래밍/C & C++

[C++] 함수의 오버라이딩

오버라이딩 (overriding) 파생 클래스는 상속을 받을 때 명시한 접근 제어 권한에 맞는 기초 클래스의 모든 멤버를 상속받는다. 이렇게 상속받은 멤버 함수는 그대로 사용해도 되고, 재정의하여 사용할 수도 있다. 멤버 함수의 동작만을 재정의 하는 것이므로, 함수의 원형은 기존 멤버 함수의 원형과 같아야 한다. 오버로딩과 오버라이딩 오버로딩 : 새로운 메서드를 정의하는 것 오버라이딩 : 상속받은 기존의 메서드를 재정의 하는 것 오버라이딩 조건 파생 클래스에서 직접 오버라이딩 가상 함수를 이용해 오버라이딩 파생 클래스에서 오버라이딩 클래스의 상속 #include #include class Base { std::string s; public: Base() : s("기반") { std::cout

Embedded system/etc

[Network] nmap 명령어

nmap nmap은 네트워크 스캐너 및 원격 서비스 포트를 검사하는 툴이다. 네트워크를 스캔하고 보안상태를 평가하는 데 사용할 수 있지만, 악의적인 목적으로도 사용될 수도 있다. nmap 옵션 -sS : TCP 수행 -ST : TCP 연결 스캔 -sU : UDP 스캔 -O : Host의 운영체제 식별 -sV : Host에서 실행중인 서비스와 버전 식별 -Pn : ping을 수행하지 않고 Host 식별 -iL : 호스트 목록 파일 읽기 -p : 스캔할 포트 목록 지정 -o : 스캔 결과를 파일에 저장 $ nmap -sT -p22-30 10.0.2.15 위의 명령어를 실행하면 22번부터 30번 포트까지 검사를 한다. nmap은 어떤 포트가 어떤 상태인지 확인 할 수 있다. 윈도우에서 nmap 사용 공유기에 ..

Embedded system/etc

[VirtualBox] Cannot register the DVD image 에러

VirtualBox에 Ubuntu Sever를 설치했는데 해당 이미지를 다른 폴더로 옮겼더니 다음과 같은 에러가 났다. 에러 내용 Cannot register the DVD image 'C:\Program Files\Oracle\VirtualBox\VBoxGuestAdditions.iso' {8e7eed13-8e44-488b-94e8-3dff26d8d99d} because a CD/DVD image 'C:\Program Files\Oracle\VirtualBox\VBoxGuestAdditions.iso' with UUID {7834874b-c548-4f1a-8448-7cead9093c04} already exists. 해결방안 해당 가상 머신의 .vbox 내용을 수정해 주면 된다. .vbox를 메모장이나..

프로그래밍/C & C++

[C++] virtual 키워드

virtual virtual 키워드는 가상 함수를 선언할 때 사용하는 키워드이다. 가상함수는 상속받은 클래스에서 재정의할 수 있는 함수로 파생 클래스에서 재정의한 함수가 호출된다. 상속받은 클래스에서 기반 클래스의 함수를 다양하게 수정하거나 확장할 수 있다. 아래 코드를 살펴보자. #include class Base { public: Base() { std::cout

Embedded system/etc

[Linux] ps 명령어 및 프로세스 개념

프로세스 : 현재 시스템에서 실행중인 프로그램 프로세스의 부모-자식 관계 프로세스는 부모-자식 관계를 가지고 있다. 부팅할 때, 스케줄러가 실행한 프로세스인 systemd와 kthreadd 프로세스를 제외하면 모든 프로세스는 부모 프로세스를 갖고 있다. 자식 프로세스는 할 일이 끝나면 부모 프로세스에 결과를 돌려주고 종료한다. 프로세스 종류 데몬 프로세스 특정 서비스를 제공하기 위해 존재하며 리눅스 커널에 의해 실행한다. ex) 웹 서버 (아파치 등 ..) 고아 프로세스 자식 프로세스가 아직 실행 중인데 부모 프로세스가 먼저 종료된 자식 프로세스는 고아 프로세스이다. 1번 프로세스가 고아 프로세스의 새로운 부모 프로세스가 되어 고아 프로세스의 작업 종료 지원한다. 좀비 프로세스 자식 프로세스가 실행을 종..

Embedded system/etc

[VMware] 네트워크 bridged 연결 안 될 때 (네트워크 인터페이스 UP)

VMware 우분투에서 갑자기 인터넷 연결이 되지 않았다.. 너 왜 그러니? ㅋㅋㅋㅋㅋㅋㅋㅋㅋ 맘에 안 들어 정말. 나중에 혹시 또 이런 상황이 발생할 수 있으므로 정리를.. (이렇게 정리해 놓으면 가끔 유용하긴 하더라) ifconfig로 확인해 보니 .. 왜 루프백만 있는거니 ? ... 휴 일단 VMware 네트워크 설정을 확인해보니 잘 되어있었다. 일단 나는 브릿지 설정은 잘 되어있으니 결론만 작성. ip addr 명령어를 실행하면 결과가 아래와 같이 나온다. $ ip addr 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 ine..

728x90
반응형
라닝
404 Not Found