Scratchbox 를 사용 하여 내장 형 Linux 를 개발 합 니 다.
10207 단어 linux
scratchbox 소개
Scratchbox is a configuration and compilation environment for building Linux software and entire Linux distributions. The basic idea of Scratchbox is to offer developers an environment that works and looks like the target environment before the target environment is available.
설치, scratchbox 설정
원본 코드 를 사용 하여 scratchbox 를 설치 합 니 다. Ubuntu / Debian 을 사용 하 는 사용 자 는 직접 apt 를 사용 하여 설치 할 수 있 습 니 다. 구체 적 으로 Cross-Compiling tutorial with Scratchbox 와 Installing Scratchbox ScratchBox 구성 요 소 를 참고 하 십시오. 필수: scratchbox - core: scratchbox 환경, 상용 도구 및 로 컬 컴 파일 러. scratchbox-libs : scratchbox - core, devkits, toolchains 에 필요 한 라 이브 러 리 입 니 다. 선택 가능: scratchbox - devkit - debian : 데 비 안 패키지 개발 에 사용 할 환경 과 도구 입 니 다. scratchbox - devkit - doctools : 문서 생 성 도구 scratchbox - devkit - perl : 추가 perl 모듈. 도구 체인 (선택 가능) scratchbox - toolchain - arm - gcc 3.3 - glibc 2.3 scratchbox - toolchain - i686 - gcc 3.3 - glibc 2.3 scratchbox - toolchain - arm - gcc 3.2 - uclibc 20040229 scratchbox - toolchain - i386 - gcc 3.2 - uclibc 20040229 부터 Scratchbox download page 아래 구성 요소 들 을 다운로드 하 십시오. scratchbox-core-1.0.5-i386.tar.gz scratchbox-libs-1.0.5-i386.tar.gz scratchbox-toolchain-arm-gcc3.4-glibc2.3-1.0.2-i386.tar.gz 이 가방 들 을 압축 해제 $tar xvzf < packagename> -C ~/project/sb
ScratchBox 는 기본적으로 / scratchbox 디 렉 터 리 에 설치 합 니 다. 그러나 루트 디 렉 터 리 공간 이 부족 하면 이렇게 할 수 있 습 니 다. (내 ~ / procject / sb 디 렉 터 리 에 설치 합 니 다) $ sudo ln -s ~/project/sb/scratchbox /scratchbox
앞 에 있 는 가방 의 압축 을 풀 면 scratchbox 디 렉 터 리 에 있 습 니 다. scratchbox 디 렉 터 리 를 만 들 필요 가 없습니다. 모든 압축 해제 작업 이 끝 난 후에 기호 연결 을 만 들 수 있 습 니 다. scratchbox 1 을 설정 하고 $를 실행 할 수 있 습 니 다. sudo /scratchbox/run_me_first. sh 가 질문 을 해 드릴 게 요. Do you want to use sudo mode? [yes / no] (no): no 를 yes 로 선택 하면 권한 문제 가 있 습 니 다. Give the name of the scratchbox group (sbox): sboxsbox 는 기본 그룹 입 니 다. 2. 이 두 가 지 를 선택 한 후 scratch 를 다시 시작 하고 사용 자 를 추가 하 는 것 을 알려 줍 니 다. Now you should add one or more users with / home / zp / procject / sb / scratchbox / sbin / sboxadduser$ sudo /scratchbox/sbin/sbox_adduser zp 주의, 추 가 된 사용 자 는 로 컬 호스트 에 있 는 사용자 만 있 을 수 있 습 니 다 (여 기 는 zp)!
3, $ groups , sbox , scratchbox .
, , .
위의 절 차 를 마 친 후 $df - h 를 실행 합 니 다. scratchbox 에 관 한 파일 시스템 이 많 지 않 습 니까?scratchbox 마 운 트 해제
scratchbox 가 이 시스템 의 일부 디 렉 터 리 를 마 운 트 하기 때문에 (mount 명령 을 실행 하여 마 운 트 정 보 를 보십시오) 디 렉 터 리 삭 제 를 통 해 scratchbox 를 마 운 트 해제 할 수 없습니다. 아래 방법 을 눌 러 야 합 니 다: 1, scratchbox 를 중지 하 십시오: $ sudo /scratchbox/sbin/sbox_ctl stop
2, mount scratchbox :
$ rm -r /scratchbox
모든 디 렉 터 리 를 삭제 하기 전에 scratchbox 의 usrs 디 렉 터 리 에 있 는 유용 한 자 료 를 다른 곳 으로 복사 하여 백업 하 는 것 이 좋 습 니 다.
使用scratchbox
使用scratchbox有两类方法: (1)不登录到scratchbox中, 直接使用它提供的交叉编译工具. 这是我们常见的交叉编译开发手段. (2)登录到scratchbox, 如果登录到任何一台linux主机, 在scratchbox中进行开发. scratchbox就是一个完备的开发环境. |
scratchbox
outside scratchbox
scratchbox , /scratchbox/compilers/ :
arm-linux-gcc3.4.cs-glibc2.3
gcc-3.4 + glibc2.3 .
bin .
scratchbox hello,world:
$ /scratchbox/compilers/arm-linux-gcc3.4.cs-glibc2.3/bin/arm-linux-gcc \
> -Wall -o hello hello.c
$ file hello
, hello .
, hello .
Cross-Compiling tutorial with Scratchbox 2.2 .
전체 명령 을 입력 하 는 것 이 번 거 로 우 면 환경 변수 PATH 를 변경 하고 해당 디 렉 터 리 를 PATH 의 시작 부분 에 놓 을 수 있 습 니 다.
inside scratchbox
Scratchbox chrooted . , .
( , scratchbox )
1, scratchbox
$ /scratchbox/login scratchbox, : [sbox-: ~] >
sb 에 처음 로그 인 하려 면 target 을 설정 해 야 합 니 다. 다음 절 을 먼저 보 세 요!
이 프롬프트 뒤에 자주 사용 하 는 셸 명령 을 입력 할 수 있 습 니 다. eg. ls / 를 실행 하면 우 리 는 익숙 한 디 렉 터 리 를 볼 수 있 습 니 다. 이것 이 바로 당신 의 원래 Linux 시스템 의 디 렉 터 리 라 고 생각 하지 마 세 요. 실제로 이 디 렉 터 리 중 일 부 는 근본적으로 비어 있 습 니 다. scratchbox 는 완 비 된 환경 입 니 다. 원래 의 Liux 와 큰 관계 가 없습니다!
scratchbox 는 로 컬 호스트 의 일부 디 렉 터 리 를 scratchbox 에 마 운 트 합 니 다. $실행 mount 는 어떤 디 렉 터 리 가 마 운 트 되 었 는 지 볼 수 있 습 니 다. 그러나 scratchbox 에 서 는 로 컬 호스트 의 홈 디 렉 터 리 를 볼 수 없습니다. 어떻게 해결 합 니까?로 컬 호스트 의 디 렉 터 리 를 공유 하기 위해 scratchbox 에 기호 연결 을 만 들 수 있 습 니 다. 예 를 들 어 ~ / procject / sb 에서 $ ln -s /scratchbox/users/zp/home/zp/app/ app-sb 이렇게 ~ / procject / sbscratchbox - / app - sb / 디 렉 터 리 에 추 가 된 내용 은 scratchbox 사용자 zp 의 홈 디 렉 터 리 에 있 는 app 디 렉 터 리 에서 볼 수 있 습 니 다.
scratchbox 에서 개발 하기 전에 우 리 는 준비 작업 을 해 야 합 니 다: target 설정. 2, 대상 설정
글 의 첫 번 째 scratchbox 구성 요소 목록 에서 보 듯 이 debian 의 개발 환경 과 선택 할 수 있 는 glibc, uClibc 의 개발 체인 을 제공 합 니 다. 이전에 우 리 는 3 개의 소스 패키지 만 사 용 했 습 니 다. 현재 유용 하 다 고 생각 하 는 패 키 지 를 다운로드 하여 같은 디 렉 터 리 로 압축 을 풀 수 있 습 니 다. 이렇게 target 을 설정 하 는 과정 에서 이 패 키 지 를 기반 으로 서로 다른 target: scratchbox 는 서로 다른 목표 target 을 설정 하여 개발 할 수 있 습 니 다.
scratchbox 에 서 는 sb - menu 그래 픽 설정 도 구 를 통 해 target 을 설정 할 수 있 고 명령 행 sb - conf, sbrsh - conf 를 사용 하여 설정 할 수 있 습 니 다. sb - menu 를 사용 하 는 것 이 편리 합 니 다. (sb - menu 명령 은 다른 target 을 선택 하 는 데 도 사용 할 수 있 습 니 다)
저 는 지금 수중 에 있 는 ARM 9 개발 판 을 대상 으로 target. arm9glibc 를 설정 합 니 다. glibc 라 이브 러 리 를 사용 합 니 다.arm9uClibc: uClibc 라 이브 러 리 를 사용 합 니 다.
실행 > sb - menu 설정 메뉴 에 들 어 갑 니 다. target 구축 에 대한 자세 한 설정 절 차 는 Installing Scratchbox 의 2.4 절 을 참고 하 십시오. 여기 서 주의해 야 할 것 은: Selected devkits 에서 cputransp 설정 시 뮬 레이 터 를 선택 하 십시오. qemu - arm 으로 선택 하 십시오.
QEMU ARM 명령 집합 시 뮬 레이 터 입 니 다. scratchbox 에 qemu 와 sbrsh 두 가지 시 뮬 레이 션 수단 을 제공 합 니 다. qemu 시 뮬 레이 션 을 사용 하려 면 devkit - cputransp 패 키 지 를 설치 해 야 합 니 다!
간단 한 예 를 들 어 scratchbox 에서 교차 컴 파일 하 는 방법 을 보 여 줍 니 다. (1) terminal 을 열 고 ~ / procject / sb / app - sb 디 렉 터 리 에 들 어 갑 니 다. 이것 이 바로 제 가 앞에서 만 든 기호 연결 입 니 다. zp 사용자 가 scratchbox 에 있 는 / home / zp / app 디 렉 터 리 를 가리 키 고 있 습 니 다. 저 는 안에 hello, World 프로그램 을 쓰 고 있 습 니 다. (2) 다른 terminal 을 열 고 scratchbox 에 로그 인 합 니 다. / home / zp / app 디 렉 터 리 에서 hello, World 의 소스 코드 를 볼 수 있 습 니 다. 현재 컴 파일: $ gcc - wal - o hello hello. c 여기 gcc 는 scratchbox 에서 target 이 선택 해 야 할 tool - chain 을 호출 합 니 다. target 을 설정 할 때 선택 한 것 을 기억 하 십 니까? $ file hellohello: ELF 32-bit LSB executable, ARM, version 1 (ARM), for GNU/Linux 2.0.0, dynamically linked (uses shared libs), not stripped$ ./hellohello, world!위 에 표 시 된 결 과 는 실제로 qemu 시 뮬 레이 터 에 표 시 된 결과 입 니 다. 어 떻 습 니까?scratchbox 에서 교차 개발 을 하 는 것 은 로 컬 호스트 에서 개발 하 는 것 처럼 편리 하지 않 습 니까?sbrsh 로 개발
sbrsh 를 사용 하면 이전 절 에 있 는 "inside scratchbox" 의 내용 을 계산 해 야 합 니 다. 여기 서 꺼 내 서 따로 소개 합 니 다.
Sbrsh is an alternative to QEMU for implementing the CPU-transparency feature of Scratchbox. It runs the configure scripts' test programs on a remote device with the CPU architecture used by the cross-compilation toolchain-typically the device that you are developing software for. Some build systems also benefit from it when they attempt to execute a target binary which is used to generate data files. Running programs on an actual target device is more reliable than emulating a specific device because emulators might not support all required features or there might not be an appropriate emulator available at all.
NFS 설정
sbrsh 를 사용 하려 면 사용자 의 홈 디 렉 터 리 와 target 디 렉 터 리 를 대상 시스템 에 볼 수 있 고 NFS 마 운 트 를 통 해 이 루어 져 야 합 니 다.
내 가 사용 하 는 Ubuntu 는 이전에 NFS 서비스 가 설치 되 어 있 었 습 니 다. NFS 설정 에 대해 서 는 본 블 로그 이 문장 를 참고 하여 home, target 디 렉 터 리 를 대상 시스템 에 마 운 트 하려 면 / etc / exports 설정 파일 을 수정 해 야 합 니 다. home 과 target 에 대응 하 는 디 렉 터 리 를 추가 하 십시오. / scratchbox / users / < USER > / targets / < TARGET > < IP > (rw, allsquash,anonuid=
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
용감한 바로 가기 및 우분투 응용 프로그램안녕하세요 여러분, 이 기사에서는 모든 사이트에서 pwa를 생성하고 실행기 응용 프로그램으로 추가하는 방법을 설명하고 싶습니다. 일부 웹사이트는 PWA로 설치를 허용하지 않지만 유사한 애플리케이션을 원합니다. 1. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.