7주차-LINUX2(5)
임베디드 구성도
임베디드 리눅스 4요소
임베디드 리눅스의 4 요소
임베디드 리눅스의 모든 프로젝트는 이 4가지의 요소로 구성되어 있고, 배포하면서 시작한다.
임베디드 리눅스 시스템에서 가장 기본적이며, 가장 중요한 요소이다.
- 툴체인(toolchain) : 타깃 장치를 위한 만드는 데 필요한 컴파일러와 기타 도구로 구성된다. 나머지는 모두 툴체인에 의존한다.
- 부트로더(bootloader) : 보드를 초기화하고 리눅스 커널을 로드하는 프로그램이다.
- 커널(kernel) : 시스템의 심장부로, 시스템 자원을 관리하고 하드웨어와의 접점이다.
- 루트 파일시스템(root filesystem) : 커널이 초기화를 끝낸 뒤, 실행되는 라이브러리와 프로그램을 담고 있다.
kmalloc
- 커널에서 주로 작은 사이즈의 연속된 물리 주소 공간을 할당받을 때 kmalloc을 사용
- kmalloc 함수는 두개의 인자를 갖는다. 첫번째는 요청하는 사이즈를 의미하고 두번째는 플래그를 의미
char *buff;
buff = kmalloc(1024, GFP_KERNEL);
vmalloc
- 커널에서 주로 큰 사이즈의 연속된 가상 주소 공간을 할당 받아 사용, 물리적으로 연속되지 않는 공간이므로 dma 버퍼로는 사용할 수 없다.
char *buff;
buff = vmalloc(33* PAGE_SIZE);
인터럽트
- 디바이스는 프로세서보다 훨씬 느린 속도로 수행, 프로세서가 무작정 외부 이벤트를 기다리는 것(폴링)은 x, 프로세서에게 인터럽트로 알려주기
필기
-
리눅스 3가지 파일
uboot.bin (부트로더)
zImage (커널)
ramdisk.gz (루트파일시스템) -
일반적으로 분할되는 영역
커널1G 유저3G (4G 기준) -
크로스 컴파일러는 호스트에서 실행 불가
-
wait queue 는 이벤트 발생하길 기다림
-
기본적인 바이너리들 위치 /bin
-
마운트 폴더 /mnt
-
특수 기능 디렉토리로 초기 생성시 비어잇는거 /tmp /proc /sys
-
busybox, bin 폴더에 들어있는 리눅스/유닉스 명령어 바로가기들 모두 묶어서 제공, 루트파일시스템 구성 시 많이 사용
-
4 무제한 x
-
TASK_RUNNING, 프로세스가 실행중 or 언제든지 실행할 준비됌을 나타내는 리눅스 process state
qt 사용법
-
vmbox에서 qt들어있는 이미지로 가상머신 생성
qt, linux, ubuntu 64bit
시스템- 칩셋 ICH9
디스플레이- VBoxVGA
저장소- ICH6
네트워크- 어댑터에 브리지, ASIX..
공유폴더- vboxxx, 자동마운트 -
우분투 시스템 세팅에 네트워크 설정
시스템세팅 - 네트워크 - 옵션 - IPv4
Address- 192.168.0.90
Netmask- 255.255.255.0
Gateway- 192.168.0.1 -
보드 네트워크설정 맞추기
gedit /etc/exports 들가서 /work/rootfs 확인
테라텀에서,
setenv bootargs 'root=/dev/nfs rw nfsroot=192.168.0.90:/work/rootfs ip=192.168.0.3:192.168.0.90:192.168.0.1:255.255.255.0::eth0:off:netmask=255.255.255.0 console=ttySAC1 115200n81'
saveenv -
QT 빌드된 실행파일 root파일로 옮기기
qt에서 build해서 파일 생성 (외부 파일 복사)
cd (home 생성으로 설정되있을거임)
cd build-untitled-001-Desktop_Qt_5_3_GCC_64bit-Debug/
sudo cp untitled001 /work/rootfs/root/
sudo 비밀번호 edu -
보드에서 실행
테라텀에서 ID,PW root
./untitled001 실행
다시 교재 실습할 때,
테라텀 설정
타켓 보드에서 설정(u-boot)
setenv bootargs 'root=/dev/nfs rw nfsroot=192.168.0.2:/nfsroot ip=192.168.0.3:192.168.0.2:192.168.0.1:255.255.255.0::eth0:off:netmask=255.255.255.0 console=ttySAC1 115200n81'
saveenv
Author And Source
이 문제에 관하여(7주차-LINUX2(5)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sunshine0070/7주차-LINUX25저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)