우분투에서 시뮬레이터를 이용, ARM 크로스 컴파일러를 공부해야 하는 경우.

보안과 비용을 고려하는 비슷한 상황(인트라넷only)의 학교에서 도움이 될랑가?


1. VisualSVN Server를 설치하고 TortoiseSVN Client를 각 컴퓨터에 설치하여, 자료를 주고받는다. GIT의 개념을 가르치기에도 좋고, NetBeui(NetBios, 공유폴더) 방식보다 낫다.


이후 sudo -s로 진행 

2. 우분투 설치 패키지 준비

apt-get install dpkg-repack 

 vim 의 경우 

dpkg-repack vim 

으로 deb package를 만들 수 있다. 다른 컴퓨터에서는

dpkg -i vim_8.0.1453-1ubuntu1_amd64.deb

로 설치


deb 패키지 설치는 다음과 같이 진행된다.

설치 시작 -> unpack(dpkg --unpack) -> configuration(dpkg --configure) -> 설치 완료

해당 패키지가 제대로 설치되었는지는 dpkg -s <pkg name> 으로 확인 가능

Status: install ok installed 문구가 있으면 완료


현재폴더에 .deb의 압축을 풀려면

dpkg -x <pkg name> ./

으로 푼다. 

설정까지 보고 싶다면,

dpkg-deb -R <pkg name> 블라블라폴더

pkg로 리빌드 하려면

dpkg-deb -b 블라블라폴더 <pkg name>


추가로

dpkg -I <deb file name> : deb file(패키지)의 정보,  패키지 네임 인자를 더 주면(한 칸 띄워서 찾을 패키지 적으면) grep을 걸지 않고 바로 패키지 이름을 써서 필터링이 가능


dpkg -L <pkg name> 혹은 dpkg -c <deb file name> : 관련 폴더, 파일

dpkg -C : 설치 中 중단된 패키지 목록

dpkg -r 혹은 dpkg --purge : 패키지 삭제

dpkg -S <search file name> : 설치된 패키지에서 해당 파일 이름이 들어간 폴더/파일 검색


3. ARM 빌드 준비

apt-get install emdebian-archive-keyring libc6-armel-cross libc6-dev-armel-cross binutils-arm-linux-gnueabi gcc-arm-linux-gnueabi gcc-arm-linux-gnueabi g++-arm-linux-gnueabi u-boot-tools libncurses5-dev ddd qemu


빌드 & 실행

arm-linux-gnueabi-gcc -static a.c

qemu-arm ./a.out


4. REPACK!


dpkg-repack emdebian-archive-keyring libc6-armel-cross libc6-dev-armel-cross binutils-arm-linux-gnueabi gcc-arm-linux-gnueabi gcc-arm-linux-gnueabi g++-arm-linux-gnueabi u-boot-tools libncurses5-dev ddd qemu


root@ubuntu:~/dpkg# ls

binutils-arm-linux-gnueabi_2.30-20ubuntu2~18.04_amd64.deb

ddd_3.3.12-5.1build2_amd64.deb

emdebian-archive-keyring_2.2_all.deb

g++-arm-linux-gnueabi_7.3.0-3ubuntu2_amd64.deb

gcc-arm-linux-gnueabi_7.3.0-3ubuntu2_amd64.deb

libc6-armel-cross_2.27-3ubuntu1cross1_all.deb

libc6-dev-armel-cross_2.27-3ubuntu1cross1_all.deb

libncurses5-dev_6.1-1ubuntu1.18.04_amd64.deb

qemu_2.11+dfsg-1ubuntu7.4_amd64.deb

u-boot-tools_2016.03+dfsg1-6ubuntu2_amd64.deb


결론, (완벽히)안된다. 

repack 되어도 뭔가 꼬이나 봄. vim 같이 작은 유틸은 잘된다. 결국, 인터넷 테더링으로 잠깐 해결했다.

이후 문제는 강사컴만 인터넷이 되기에 LAN CARD의 MAC Address 복제가 되는 DLink의 DIR-825 무선공유기를 이용하여 보안 Skip. 무선 동글은 각자 알아서~ 단, SVN 서버는 학생 컴터에 재구축.


'Objective-C, SQLite3' 카테고리의 다른 글

github에 gpg 적용 완료  (0) 2019.02.05
github issue format  (0) 2019.02.05
필카와 디카 차이  (0) 2019.02.04
C & JAVA 공통점  (0) 2019.02.04
홈페이지 개편  (0) 2019.02.04

+ Recent posts