평소 윈도우에서만 개발을 하다가 리눅스에서 c코딩을 할 일이 있어서 vim도 물론 좋지만 개인적으로 아직 많이 부족하여 좀 더 편한 tool을 찾던 중 geany라는 tool을 발견하였다. 


기본적으로 ubuntu에는 geany가 설치 되어 있다.   

아니었음(스냅샷으로 이전으로 돌아갔을 때 설치가 안되어 있었음. 언제 설치 되었는지는 모르겠지만 anyway)

개인적으로 이미 설치되어 있는 경우 이전 버전 충돌이나 뭐 그런 것 때문에 좋아하지 않는다.


지니(wiki에는 기니라고 되어 있는데 모르겠음)를 설치하는 방법은 우분투의 소프트웨어 센터를 이용하는 방법이 있고 터미널에서 명령어를 입력하는 방법이 있다.
소프트웨어 센터에서는 geany를 치면 되고 난 터미널에서 다운을 받고자 한다.

$sudo apt-get remove geany    //설치되어 있는 geany 제거

$sudo add-apt-repository ppa:geany-dev/ppa    //저장소에 없으면 추가하는 부분

$sudo apt-get update

$sudo apt-get install geany geany-plugins    //geany와 플러그인 둘 다 설치




그렇게 이쁘진 않다..공대 스타일.. UI관련하여 (https://github.com/codebrainz/geany-themes) 사이트에 가면 많이 있다고는 하는데 굳이..(http://blog.nooree.com/post.cfm/ubuntu-c 참고)



프로젝트를 생성하고 역시나 hello.c를 만들어보자


F5키는 Execute, F8은 compile, F9는 Build이다. 따로 gcc를 안해줘도 되어서 정말 편하다.

ctrl+space는 자동완성(사실 이게 제일 좋음)


빌드를 하고 F5를 눌렀더니...



............역시 한번에 되는건 없나보다


모르겠다 방법을..............................................

geany에서 제공하는 것 중 터미널 모드가 있는데 여기에서는 잘된다..



내일 다시 살펴보는 것으로...



방법을 찾았다. 역시 구글은 짱인듯(https://plus.google.com/u/0/+NikTh/posts/gZERckaqEtg 감사합니다 ㅠ)

ubuntu-mate에서 가끔 사람들이 발생하는 이유인듯 싶다.


아무튼 설정문제로 인해 되지 않았던것!

geany에서 edit탭의 preferences를 눌러준다.


Tools부분에서 Terminal부분에서

x-terminal-emulator -e "/bin/sh %c"  -> /usr/bin/mate-terminal -e "/bin/sh %c" 로 바꿔준다

(mate가 아닐 경우 이름은 다르다)

만약 위에 언급한 geany  자체적인 terminal을 바꾸고 싶으면 Terminal에서 path 변경해주면됨

(Tools 탭의 Terminal이 아닌 Terminal 탭을 지칭)





실제적으로 /usr/bin에서 터미널을 확인해봄





빌드 후 F5키를 눌러주니 잘 되는 것을 확인해 볼 수 있었다.




'프로그래밍 > Linux' 카테고리의 다른 글

npm(Node Packaged Modules)  (0) 2015.09.09
ubuntu node.js 설치  (0) 2015.09.09
ubuntu(우분투) rapidsvn 설치  (0) 2015.09.08
우분투 svn 설치  (0) 2015.09.03
vmware take ownership 문제  (0) 2015.08.20

.  라즈베리 확장

임베디드 개발 환경 구축


§module built-in
http://poplinux.tistory.com/106 참고 (Makefile 내용)
http://sonseungha.tistory.com/112 참고(모듈 빌트인 방법)
http://chlrbgh0.tistory.com/110 참고(모듈 빌트인 방법)
저번 시간에는 커널 모듈을 insmod로 적재하는 것을 해보았고 이번에는 모듈을 커널 이미지에 built-in을 해보고자 한다. (http://kkn1220.tistory.com/14)

- Makefile을 살펴보면 
obj-y := audio_device.o
obj-m := audio_device.o
obj-$(CONFIG_TEST) := audio_device.o 를 살펴볼 수 있다.
위의 -y 옵션은 built-in을 할 때의 옵션이고 -m은 모듈 형식으로의 옵션이다. 
마지막의 경우 리눅스 커널 configure 할 때 사용되는 옵션은
- (*) : built-in
- (M) : Module
- ( ) : not built
이 있는데 해당 옵션을 체크했을 때 make menuconfig 결과에 따라 모듈이나 빌트인으로 알아서 컴파일 된다. 

- 예제
      - hello.c code


- Makefile


- hello 파일 내부(cd linux/driver/hello)  linux폴더-driver폴더 내 hello 폴더 생성


- Makefile 수정

- vi linux/driver/Makefile        //리눅스 폴더 내 드라이버의 Makefile을 수정하는 것이다.


마지막에 obj-y += hello/ 를 적어준당


리눅스 폴더에 가서(cd ../../) 

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig 실행

(*여기에서 arm-linux-gnueabihf-bcm2709_defconfig의 위치는 각자 설정해주어야 된다)

(본인의 경우 make ARCH=arm CROSS_COMPILE=/home/kkn/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- bcm2709_defconfig가 경로이다)



make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs

(make ARCH=arm CROSS_COMPILE=/home/kkn/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- zImage modules dtbs)

(사실 dtbs는 필요한지 아닌지는 모르겠당.. 어차피 make clean하지 않아서 금방 진행되므로 무시하고 컴파일 했음)




새로 생성한 hello폴더 내 hello가 built-in되는 것을 확인할 수 있다.



진행이 끝나면 위의 메시지를 확인할 수 있다.(한 10초 걸린듯)


sd카드에 설치 (lsblk 명령어로 sd카드가 올라와있는지 확인해야함)

-mount

$ mkdir mnt/fat32

$ mkdir mnt/ext4

$ sudo mount /dev/sdb1 mnt/fat32

$ sudo mount /dev/sdb2 mnt/ext4

-모듈 설치
  $ sudo make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=mnt/ext4 modules_install

*arm-linux-gnueabihf는 앞 장의 컴파일러 path, INSTALL_MOD_PATH는 설치할 path 경로

- kernel image(mkknlimg 스크립트로 변환 필요), dtb(device tree blob) 복사

$ sudo cp mnt/fat32/$KERNEL.img mnt/fat32/$KERNEL-backup.img    //필수 항목은 아님(백업용)

$ sudo scripts/mkknlimg arch/arm/boot/zImage mnt/fat32/$KERNEL.img        

(scripts는 linux폴더 에서 실행해야함, $KERNEL.img 는 kernel7.img를 지칭(kernel.img 조심하자))

$ sudo cp arch/arm/boot/dts/*.dtb mnt/fat32/   

(dtb는 사실 안바뀌었을 거 같지만 난 초보기 때문에 그냥 복사...)

$ sudo cp arch/arm/boot/dts/overlays/*.dtb* mnt/fat32/overlays/

$ sudo cp arch/arm/boot/dts/overlays/README mnt/fat32/overlays/

$ sudo umount mnt/fat32

$ sudo umount mnt/ext4


라즈베리파이에 sd카드를 넣고 booting


uname -a로 확인


dmesg로 확인



lsmod는 로딩된 모듈만 확인하는 것이고 built-in 된 것은 출력되지 않는다고 한다..
왜 안나오나 잘못되었나 싶었음..


시스템콜 후킹한 것을 테스트해보았을 때에는 부팅 될 때 메시지가 출력되면서 멈춤..

너무 많은 메시지를 호출해서 멈춘걸까 아니면 init에서 필수 드라이버가 로딩되기 전에 진행이 되어서 그런걸까 좀 더 공부해야할듯..




* module을 insmod할 때에는 linux폴더 내 System.map에는 모듈 심볼이 없지만 built-in을 할 때에는 있는 것을 확인할 수 있다.


(이런식으로..)







라즈베리 확장

임베디드 개발 환경 구축


§시스템 콜 후킹
후킹이란 사전적 단어 그래도 가로채다의 뜻. 즉 시스템 콜 후킹이란 정상적인 시스템을 가로채서 원하는 것을 실행시키는 것을 의미
시스템 콜을 후킹하기 위해서는 시스템 콜 테이블의 시작 주소를 담은 커널 내 포인트 변수인 sys_call_table 주소를 알아야 됨

- $cat linux/System.map | grep sys_call_table

후킹 할 시스템 콜 검색
$vi linux/arch/arm/include/uapi/asm/unistd.h

예제에서는 NR_open 후킹

Makefile 생성


Test c코드 작성


make


- ls로 생성된 파일 확인


- Target에 전달

- $scp hook1.ko pi@192.168.0.9:/home/pi/test


라즈베리에서 확인



위의 화면을 보면 sys_open을 후킹하여 내가 원하는 것을 확인할 수 있다.
또한 rmmod를 통해 모듈을 내렸을 때 Module exit 메시지를 확인할 수 있다.

다음번에는 모듈을 insmod, rmmod하는 것이 아닌 직접 박아서 test할 계획.


라즈베리 확장

임베디드 개발 환경 구축

§시스템 콜(System call)
운영체제에 의하여 보호되는 자원인 커널 메모리, 커널 데이터 등을 사용자 프로세스가 이용하려면 컨널과
사용자 프로세스가 공유할 수  있는 인터페이스가 필요
권한 레벨을 설정하여 사용자 공간과 커널 공간 구분
서로 다른 공간에 대한 접근은 시스템 호출로만 가능하도록 제한

시스템 호출을 실행하면 사용자 모드에서 시스템 모드로 전환되며, 커널에서 시스템 호출을 종료하면 사용자
모드로 다시 복귀


§리눅스에서 지원하는 시스템 호출
프로세스 관리: fork(), execve(), getpid(), signal()
파일시스템: open(), read(), write(), close()
메모리 관리: brk() emd
네트워크 관리: socket(), bind(), connect()

기타 시스템 정보나 제어 time()


§사용자 프로그램의 번역 과정

§시스템 콜 원리
Linux 에서의 system call 처리
Interrupt 처리 매커니즘 사용
-Interrupt
주변 장치와 커널이 통신하는 방식 중 하나로

주변 장치가 자신에게 발생한 비동기적 사건을

kernel에게 알리는 매커니즘




§시스템 호출 동작 과정(fork 시스템 호출 과정)



§시스템 호출 동작 과정(fork 시스템 호출 과정)

소프트 웨어 인터럽트를 통하여 사용자 모드에서 커널 모드로 전환되어 커널 자원에 접근
Swi 900002;
시스템 호출 번호 900002

시스템 호출 번호를 포함하는 테이블의 시작점이 900000이기 때문에 fork() 시스템 호출 번호는 2

(등록된 시스템 호출 함수 중 세 번째 위치)

호출 번호 2에 해당하는 커널 함수 sys_fork() 호출 


§시스템 호출 구현
hello() 시스템 호출 구현 예
-시스템 호출 후 /var/log/messgaes에 출력 (“hello, I am system call example”)
-$ vi linux/kernel/hello.c  //해당 리눅스 커널 폴더에 파일 생성해야 됨


#include <linux/kernel.h>

Asmlinkage void sys_myhello()

{

    printk(“hello, I am system call example”);

}


시스템 호출 번호 테이블에 등록

$ vi linux/arch/arm/include/uapi/asm/unistd.h  //버전마다 다를 수 있음
-시스템 호출 함수 등록

-$ vi linux/arch/arm/kernel calls.S  //버전마다 다를 수 있음

-Makefile 파일 수정

-$ vi linux/kernel/Makefile

-수정된 커널을 다시 빌드 후 이미지 생성
-$ make ARCH=arm CROSS_COMPILE=/home/kkn/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- zImage   
-Kernel imagetarget에 복사


라즈베리 확장

임베디드 개발 환경 구축


https://www.raspberrypi.org/documentation/linux/kernel/building.md 참고

http://cs.sch.ac.kr/lecture/Embedd/2012/12-EmbedSW-11-Module.pdf 참고

§크로스 컴파일
대부분의 사용자들은 PC라는 동일한 환경에서 프로그램을 작성 및 컴파일하고 동일한 환경에서 실행한다. 이 때 컴파일을 네이티브  컴파일이라 하고 PC 환경에서 라즈베리용 모듈을 컴파일하여 라즈베리 환경에서 실행. 즉 컴파일은 PC에서 하였고 실행은 라즈베리 파이 환경에서 하는데 이렇게 동작하는 환경과 시스템이 다를 때 이 컴파일을 크로스 컴파일이라고 함

1. 라즈베리 파이 커널 소스 다운로드

$ git clone --depth=1 https://github.com/raspberrypi/linux  //depth의 경우 히스토리는 복제하지 않기 때문에 빠름

2. 툴체인 설치

$ git clone https://github.com/raspberrypi/tools

-컴파일러 위치를 아는 것이 중요한데

          32bit: /tool/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin

          64bit: /tool/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin  이다.

3. 소스 빌드  

$ cd linux

$ KERNEL=kernel7 

$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig

-2번째 줄의 경우 라즈베리파이2kernel7이다. 라즈베리파이2boot partition에는 kernel도 있고 kernel7도 있으니 혼동 주의

   $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs
-Note: To speed up compilation on multiprocessor systems, and get some improvement on single processor ones, use -j n where n is number of processors * 1.5. Alternatively, feel free to experiment and see what works


4. SD card에 직접 설치

-리눅스 머신에서 $lsblk을 입력할 경우(SD card input) sdb1,2가 나오는 것을 확인할 수 있다.(NOOBS의 경우 최소 5) 이 때, 1FAT partion, 2ext4 partion이다.
-mount

$ mkdir mnt/fat32

$ mkdir mnt/ext4

$ sudo mount /dev/sdb1 mnt/fat32

$ sudo mount /dev/sdb2 mnt/ext4

-모듈 설치
  $ sudo make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=mnt/ext4 modules_install

*arm-linux-gnueabihf는 앞 장의 컴파일러 path, INSTALL_MOD_PATH는 설치할 path 경로

- kernel image(mkknlimg 스크립트로 변환 필요), dtb(device tree blob) 복사

$ sudo cp mnt/fat32/$KERNEL.img mnt/fat32/$KERNEL-backup.img    //필수 항목은 아님(백업용)

$ sudo scripts/mkknlimg arch/arm/boot/zImage mnt/fat32/$KERNEL.img

$ sudo cp arch/arm/boot/dts/*.dtb mnt/fat32/

$ sudo cp arch/arm/boot/dts/overlays/*.dtb* mnt/fat32/overlays/

$ sudo cp arch/arm/boot/dts/overlays/README mnt/fat32/overlays/

$ sudo umount mnt/fat32

$ sudo umount mnt/ext4


5. 모듈 임베디드 장치에서 실행

-샘플코드 hello.c 


- 샘플코드 Makefile


기존의 폴더에서


- Make를 했을 때 아래와 같이 실행이 된다.


다음과 같이 파일이 생성된 것을 확인할 수 있다.

modinfo hello모듈을 확인한 결과 armv7으로 컴파일 된 것을 확인할 수 있다.

scp를 통한 라즈베리로 모듈 전달
lsmod 현재 모듈 확인  
- insmod 후 모듈 확인

-dmesg로 메시지 확인  
- rmmod dmesg로 메시지 확인

















라즈베리 확장

SD card 분석


§SD card 파티션 분석
-Noobs 설치할 경우 적어도 5개 이상으로 SD card 파티션을 분할한다. 이는 Raspbian 이미지같이 전통적인 Standalone image로 설치하는 것과 차이가 있다.(raspbian으로 설치할 경우 파티션은 2개로 분할됨)
Img 파일을 SD카드에 기록하는 방식은 설치속도와 부팅속도가 빠르지만 이미지 기록 프로그램을 사용하여야 하는 단점이 있고,  NOOBS를 이용하는 방식은 다양한 OS를 설치할 수 잇고 부팅 시 바로 운영체제 설치를 선택할 수 있지만 설치속도와 부팅속도 느림
§Standalone partitioning
- A standalone .img file is a complete byte-for-byte image of an entire SD card. It includes the MBR (which stores the partition table) as well as all the raw partitions. This is the lowest-level possible way of writing an SD card, but it's the only way to access multiple partitions on an SD card using Windows (via the Win32DiskImager software).
-Raspbian 이미지를 설치하면 2개의 파티션 boot(fat)file system(ext4)로 나뉘게 됨
-Boot(fat, sdb1) – boot partion으로 라즈베리파이 펌웨어와 컴파일드리눅스 커널과 몇 개의 config 파일을 가짐
-File system(ext4, sdb2)- root partition으로 applicationhome directory리눅스에서 사용되는 파일들을 포함
-SD카드에 직접 이미지를 복사하게 때문에 큰 용량의 SD카드의 경우 지정된 용량의 공간을 할당하게 된다. 그렇기 때문에 앞서 설명했듯이, raspi-config에서 1. Expand_FileSystem 으로 최적화 시켜야 됨
§Standalone booting
-라즈베리파이는 bootstrap code를 사용하지 않음
1.Boot partition에 있는 bootcode.binload
2.Run start.elf(and fixup.dat)
3.Config.txt 파일을 읽고 GPU configurationset up
4.Cmdline.txt(ext4 읽으라는 내용 포함 되어 있음)파일을 읽고 kernel.img 파일을 실행
5.mmcblk0p2(file system partition) mount

6.Continues booting the rest of the system from 6


§NOOBS partitioning

-NOOBS를 처음 FAT-format SD card에 카피하면 하나의 파티션만 SD card에 할당 된다.


 Primary partition

Logical partition 

Type 

Label 

Contents 

 

FAT 

New Volume 

Noobs bootfiles & initramfs, 

OS recovery images


§NOOBS bootup(low-level)
1.FAT-format /dev/mmcblk0p1으로부터 bootcode.bin을 로드하고 실행
2.start.elf 가 없기 때문에 recovery.elf 파일을 로드하고 실행
3.Running recovery.elf then switches the firmware into "NOOBS mode" it usesrecovery.img instead of kernel.img, 

    recovery.cmdline instead of cmdline.txt, and it sets the root filesystem to recovery.rfs.

4.recovery.elfrecovery.cmdline을 읽고 recovery.img를 실행 recovery.cmdline으로부터 읽은 커맨드라인을 파싱하여 recovery.rfsload


§NOOBS bootup(setup mode)
1.NOOBS가 부트 되면 자동적으로 setup mode로 진입하게 되고 자동적으로 하나뿐인 파티션인 /dev/mmcblk0p1을 축소
2.RECOVERY라고 이름 붙여진 파티션을 만드는데 NOOBS의 경우 XGB, NOOBS lite의 경우 XMB로 생성됨
3.만들어진 파티션 /dev/mmcblk0p2은 확장파티션으로 대부분을 차지할 것임
4.Ext4-format partitiondev/mmcblk0p3 (32MB) 생성됨(SETTINGS으로 명명됨). 이것은 언어, 키보드, NOOBS가 필요한 것 들 등에 대한

     기본적인 OS가 로드되어야 되는 것들에 대해 저장하는 파티션

5.   다시 트리거 될 수 있는 프로세스를 방지하기 위해 recovery.cmdlineruninstaller를 삭제


 Primary partition

Logical partition 

Type 

Label 

Contents 

 

FAT 

RECOVERY 

NOOBS bootfiles & initramfs, 

OS recovery images 

 

extended 

 

Any logical partitons 

 

ext4 

SETTINGS 

NOOBS settings 


§NOOBS OS installation
-OS를 설치하면 해당 OS에 맞게 파티션을 할당하여 boot 파티션과

 file system 파티션을 가지게 됨

- 자세한 내용은 https://github.com/raspberrypi/noobs/wiki/NOOBS-partitioning-explained 참고

*NOOBS의 경우 기본적으로 Raspbian 외에 

Arch, OpenELEC등 설치 가능




만약 Arch를 추가 설치할 경우 파티션이 할당되고 부팅 시 선택 가능

(표 삽입에 암걸릴거 같아서 사진으로 대체..)




'프로그래밍 > Raspberry' 카테고리의 다른 글

Raspberry pi2 (시스템 콜)  (0) 2015.08.13
Raspberry pi2 (크로스컴파일)  (0) 2015.08.13
Raspberry pi2 (config.txt 분석)  (0) 2015.08.13
Raspberry pi2 (라즈베리 기본 설정)  (0) 2015.08.13
Raspberry pi2 (Raspbian 설치)  (0) 2015.08.13

라즈베리 확장

Config.txt 분석


§config.txt 정의

- 라즈베리파이는 전통적인 PC에서처럼 BIOS를 가지고 있지 않음

- various configuration parameters들은 config.txt라 불리는 텍스트 파일에 저장됨

- config.txt 파일은 ARM CPU가 설정되기 전에 GPU에 의해 읽혀짐. 그렇기 때문에 config.txtbootcode.bin

start.elf와 같이 sdcardboot partition에 위치함

- config.txt는 일반적으로 /boot/config.txt로 접근할 수 있음


§File format
-config.txt 파일이 초기 boot read될 때 간단한 파일 포맷을 가짐
-포맷은 property=value 형식으로 되어 있으며 추가하거나 #주석처리로 막을 수 있음


-Memory, Camera, Audio, HDMI 설정 등 자세한 사항은

https://www.raspberrypi.org/documentation/configuration/config-txt.md 참고

Ⅰ.  라즈베리 기본

라즈베리 기본 설정


§기본 설정

- $ sudo raspi-config      //초기 설치 시 볼 수 있는 화면이지만 이 후에는 해당 명령어를 입력 후 실행 가능



1.Expand_FileSystem(필수)- 처음 부팅하면 SD카드 용량이 2GB기준으로 줄어 있기 때문에 최적화
2.Change User Password- 기본으로 설정된 계정인 pi계정 패스워드 수정(기본 패스워드 raspberry)
3.Enable Boot to Desktop- 부팅하자마자 x-window화면으로 진입 설정
4.Internationalisation Options- 언어설정 및 지역 설정
5.Enable Camera- 라즈베리 카메라 설정
6.Add to Rastack- Rastrack에 라즈베리 등록
7.Overclock- 오버클럭 설정
8.Advanced Options
1)Overscan- 구셩 디스플레이 설정으로 일반적으로 사용하지 않음
2)Hostname- 라즈베리파이의 컴퓨터 호스트이름 설정
3)Memory Split- GPU에 할당할 메모리 용량 설정
4)SSH- SSH 사용 설정, puttyfilezilla 사용 시 필요
5)Update-라즈베리파이 업데이트

9.About raspi-config- 설정 툴에 관한 정보

§기본 명령어
-$ startx  //GUI모드 (x-window) 실행
-$ sudo apt-get update  //프로그램 패키지 목록 업데이트
-$ sudo apt-get upgrade  //설치된 프로그램 중 버전 업 된 프로그램 업데이트
-$ sudo reboot  or $ sudo shutdown –r now  //프로그램 재 부팅
-$ sudo shutdown –h now  //프로그램 종료
-$ sudo passwd pi   //기본 계정인 pi 패스워드 변경(default pw: raspberry)
-$ sudo passwd root  //관리자 권한 root 패스워드 변경  

§설치 문제
-HDMI가 안나오는 경우
-SD card의 /boot/config.txt를 수정

-> #hdmi_force_hotplug=1 부분 주석 삭제

-오디오가 안나오는 경우

-> #hdmi_drive=2 부분 주석 삭제

-키보드 문제
-기본적으로 라즈비안 설치 후 키보드 설정이 gb로 되어 있다.
-sudo vi /etc/default.keyboard

-> XKBLAYOUT=“gb“ 에서 gb를 us로 변경 후 재 부팅





Ⅰ.  라즈베리 기본

라즈베리 OS 설치


§Rasbian(Raspberry PI + Debian Linux)
-패키지 지원 및 관련 라이브러리들이 풍부
-Raspberry PI OS 중 가장 많이 활용

-https://www.raspberrypi.org/downloads/ 에서 다운로드 가능 


§설치 방식은 세 가지로 나뉨 (페이지 편집이 어려워 작성한 ppt에서 사진으로 첨부한 점 죄송합니다..)



- NOOBS 설치

- SD card에 전체 폴더가 아닌 Noobs 폴더 안에 있는 하위 폴더 및 파일 이동



- Raspian 이미지로 설치

- Win32DiskImager 사용(윈도우에 해당)

http://sourceforge.net/projects/win32diskimager/에서 다운로드 가능












Ⅰ.  라즈베리 기본

라즈베리 파이 모델 2 분석


전체 OS
Arch Linux ARM
데비안 6.0 (Squeeze)
Gentoo Linux[
Puppy Linux
Raspberry Pi Fedora Remix
Raspbian (Wheezy port with faster FP support)
RiscOS
Slackware ARM (formally ARMedslack)
FreeBSD 10 ARM (RPI-B)
QtonPi (임베디드 리눅스)
Redsleeve (ARMRedHat 기반)
Ubuntu (라즈베리 파이 2)
윈도 10(라즈베리 파이2)
가벼운 다목적 배포판
Squeezed Arm Puppy for ARMv6 (sap6)
특정 목적의 가벼운 배포판
IPFire
OpenELEC
Raspbmc

XBMC



+ Recent posts