VirtualBox - Ubuntu에서 Windows와 공유 폴더 설정

윈도우에서 우분투와 공유할 폴더를 생성

 

VirtualBox 메뉴 [장치]-[공유 폴더]-[공유 폴더 설정...] 항목 선택

 

오른쪽 공유 폴더 추가 버튼 클릭

 

폴더 경로 항목에서 기타를 누르고 윈도우에서 생성한 폴더 지정

 

공유 폴더 지정 후 [자동 마운트]와 [항상 사용하기] 두 항목을 선택

 

기본 설정이 끝나고 우분투 터미널 창 실행

/media directory 내부를 확인하면 공유 폴더로 sf_VM_Share가 생성되어 있는것을 확인 할 수 있음.

공유 폴더는 윈도우에서 지정한 이름 앞에 sf_가 항상 붙는 것 같고 공백문자는 _로 대체됨.

groups 명령으로 확인해보면 vboxsf group에 대한 권한 문제로 sf_VM_Share directory 접근 금지 상태임.

/media 하위에 sf_VM_Share directory 확인됨

sudo adduser [userid] vboxsf 명령 또는

sudo usermod -G vboxsf -a [userid] 명령으로

현재 사용 중인 user id에 vboxsf 그룹을 추가함

User ID에 vboxsf 그룹 추가

그룹 추가 명령을 실행하고 바로 groups를 실행하면 변경 사항이 없음.

우분투 재부팅 후 groups 명령을 실행하면 User ID에 vboxsf 그룹이 추가된 것을 확인할 수 있음.

우분투 재부팅 후 그룹 추가 확인됨

 

이후 sf_VM_Share directory에 접근 가능해지고, 윈도우와 공유 가능.

Terminal 환경에서 공유 폴더 확인
GUI 환경에서 공유 폴더 확인

STM32 개발하면서 IAR workbench for ARM compiler를 사용하면서 code size가 커지다 보면

Output image의 address 값이 깨지는 경우가 생긴다.

 

예를 들자면!

STM32의 Bootloader 영역으로 0x08000000~ 0x08004000 번지를 설정하고

Application 영역으로 0x08005000 ~ 0x0800FFFF까지 설정하였다고 가정하여 보자.

 

Bootloader를 compile하여 download하고 다음으로 Application image 역시 compile하여

download를 해보게 된다.

이 때 stm32xxxxxx.h file 내에 define된 FLASH_BASE 값을 application start address로 설정해 주고

IAR도 option - Linker에서 application의 start address를 설정하여 compile 진행하면 된다.

Header File에서 Application image start address 지정
IAR Compiler Option 설정
사용하는 MCU가 맞는지 확인
Linker Option에서 Start address 설정하기
Vector Table TAB에서 .intvec start를 header와 동일값으로 설정

여기까지 진행하고 Application을 compile하고 다운로드 하면 처음에는 별 문제가 없을 수 있다.

그러나 Application image가 커질수록 문제가 생기는 경우가 있는데 compile 완료된 hex file을 편집기로 열어보면

아래와 같이 5000번지 부터 시작해야하는 image 주소가 0000부터 시작하는 경우가 생긴다.

정상 compile된 image
Compile 오류가 발생한 image

 

이는 Linker Option에서 Memory Regions 설정에 따른 오류로 보인다.

Memory Regions라서 Flash 전체 주소로 생각하고 Start값은 0x08000000, End값은 0x0800FFFF로 기본값을 사용했는데,

IAR의 의도는 전체 Flash 주소값이 아닌 현재 compile할 image가 사용하게될 주소 범위를 요구하는 듯 하다.

 

아래와 같이 Start를 0x08005000으로, End는 0x0800FFFF로 설정 후 다시 compile해보면 출력물인 hex file의 start 주소가 정상적으로 5000번지부터 시작되는것을 확인할 수 있다.

 

 

 

전에 타던 알루미늄 로드 (Giant TCR1 2012년식, 구형 105)를 외삼촌께 드리고 비앙키 올트레 XR1으로 기변.

 

- 4년간 4,600km 정도 달리고 주인이 바뀐 Giant TCR1

 

 

비앙키 체레스터 그린에 눈이 돌아가서 근 세달을 고민하다가 도싸에 중고매물로 올라온 녀석을 구매함.

 

프레임 : 비앙키 올트레 XR1 2015년식

구동계 : 울테그라 DI2

 

휠셋은 캄파뇰로 샤말 밀레 였으나 회사 직원분께 방출하고 그 전에 도싸에서 미사용 중고품으로 구매해뒀던

3T Accelero 40 Team으로 교체함.

타이어는 비토리아 코르사 클린쳐 25C

 

- 풀샷

 

- 징징이 앞드레일러

 

- 역시나 징징이 뒷드레일러... (앞드레일러와 다르게 변속 중 징징 소리 안 들림 ^^)

 

 

- 징징이 변속 레버

 

 

- 3T Accelero 40 Team Wheelset + Vittoria Corsa 25C

 

 

- 3T Accelero 40 Team Wheelset + Vittoria Corsa 25C

 

 

- Specialized Power Comp 안장

 

 

- 불상사 대비용 차대번호 인증 : WBK947493K

 

마지막으로 판매자 분이 울테그라 6800에서 울테그라 DI2 6870으로 업글하신 거라 FD-6800이 물려있었던 흔적이

남아있음... 도장 손상으로... 쩝

리눅스에서 "ls -al" 명령어를 통해 file 및 directory를 확인하는 경우 아래와 같이 출력됩니다.

합계 24 밑줄을 보면 drwxrwxr-x 로 시작하는데요.

맨 앞에 d는 directory를 의미하고 -인 경우 file임을 의미하죠.

 

다음에 rwxrwxr-x 부분이 file 및 directory 권한에 관한 표기 입니다.

9개 문자에서 3개씩 나누면 rwx가 반복 되는군요.

 

 

그 의미에 대해 알아봅시다. 

 

앞서 말한대로 맨 앞 d또는 -는 directory인지 file인지 표기하는 문자이고요. 다음 rwx는 읽기, 쓰기, 실행을 의미 합니다.

3번 반복되는 것은 현재 login되어 있는 user, user가 속한 group, 그리고 user나 group이 아닌 기타 사용자의 권한을 순서대로 표기한 것입니다.

 

file명이 녹색으로 나타나는 hello file의 경우를 보면 -rwxrwxr-x 이렇게 표기가 되어 있는데요. 이 의미는 이것은 파일이고, user는 읽기/쓰기/실행 모두 가능, group역시 읽기/쓰기/실행 모두 가능, 마지막으로 other는 읽기와 실행은 가능하지만 쓰기는 불가하다는 의미이지요.

 

그럼 file이나 directory의 권한을 어떻게 바꿀까요?

 

chmod 명령어를 사용합니다. chmod 명령어 뒤에 권한 설정 명령을 덧붙이고 그 뒤에 file또는 directory명을 덧 붙여서 사용하지요. 

도와달랬는데 참 복잡하네요. ^^

 

chmod [user][권한] [file]

이렇게 이해하시면 될 것 같습니다. 물론 중간에 option이 있는데 ubuntu 기준으로 권한 설정 변경이 기본인지 굳이 -c를 붙이지 않아도 변경 설정이 잘 되는군요.

 

[user]는 권한을 설정하려는 user입니다. Login하고 있는 user 즉 나의 권한을 변경할 때는 u, 그룹은 g, others 즉 기타 사용자는 o이고 셋 모두의 권한을 한번에 변경하려면 a 입니다.

[권한]은 읽기/쓰기/실행 권한 입니다. 읽기 가능으로 변경하려면 +r, 불가는 -r, 쓰기 가능은 +w, 불가면 -w 이런 식입니다.

[file]은 권한을 변경하려는 file이나 directory의 이름이고요.

 

녹색 실행 파일인 hello를 login user가 실행 못하게 막겠다면 chmod u-x hello 라고 입력하면 됩니다.

그럼 아래와 같이 -rwxrwxr-x에서 -rw-rwxr-x로 변경이 됩니다. 이 file을 실행하려고 하면 권한이 없다고 나올 거에요. 

 Login user 권한이 rwx에서 rw-로 바뀐 것 보이시죠?

 

이 상태에서 실행을 해보면 허가 거부라고 뜨는 것도 보이네요.

 

다시 chmod u+x hello 로 login user에게 실행 권한을 줬습니다. -rw-rwxr-x에서 -rwxrwxr-x로 변경 되었네요.

 

실행도 잘 되어서 Hello world~ 문구가 출력되었고요.

 

u+r, u-r, g-x, o+w등 다양하게 설정하려는 권한에 맞춰 조정해주면 됩니다.

이렇게 문자와 기호를 이용하여 권한 설정을 해봤는데요. 숫자를 통해서도 가능합니다. u+r 이런 [user][권한] 자리에 숫자를 넣는거죠. Login user, Group, Others 한번에 권한 설정 할 경우 편합니다.

2진수와 16진수를 아실런지요..? 2진수는 각 비트(칸)에 0또는 1 숫자만 들어가는거고 16진수는 2진수를 4칸씩 묶어서 읽는다고 이해하시면 됩니다.

 

 

위에서 본 표가 조금 복잡해졌죠? 0~7까지 숫자를 연속 3개 사용하는데요. 0은 불가, 1은 가능을 의미합니다.

표에서 보면 Login user의 file 권한을 읽기가능/쓰기불가/실행가능으로 설정한다면 1/0/1이 되어 숫자 5가 됩니다.

 

chmod 555 hello로 하면 Login user, Group, Others 모두 hello file에 대해 읽기나 실행은 가능하지만 쓰기, 즉 수정은 불가능 해지겠죠. chmod 777 hello로 하면 모두 읽기/쓰기/실행이 가능해지고요. chmod 750 hello로 하면 Login user는 모두 가능, Group은 쓰기만 불가, Others는 모두 불가가 됩니다. 

 

보시는 것 처럼 권한이 계속 바뀌고 있죠? 그럼 오늘은 이만~

 

사회 생활 시작할 때 전자 회사의 F/W 개발자로 입사하였으나 어쩌다 보니 H/W 개발자로 바뀌어서 몇 년을 보냈습니다.

이직을 준비하고 있는데 면접 본 회사에서 F/W로 다시 바꾸었으면 좋겠다고 해서 이것 저것 준비를 시작하네요.

 

근데 몇 년만이라 그런지 C언어 거의 생각이 나질 않다보니...

요즘 소프트웨어 공학 연구소라는 사이트 찾아 다시 처음부터 공부하고 있네요.

 

Compiler는 IDE(Integrated Development Environment, 통합개발환경)까지 포함되어 있는 Dev-C++로 선택했습니다.

 

일단 Dev-C++ download는 여기서 -> http://www.bloodshed.net/devcpp.html

찾아 들어가셔도 되고요. Source Forge 직링크는 -> http://sourceforge.net/projects/dev-cpp/

 

Ubuntu에 기본으로 깔려있는 GCC도 있고, 학생 때 쓰던 VC도 있고 마찬가지로 무료인 Borland C도 있는데 VC는 비싸고, GCC는 Ubuntu booting해야하고 Borland C는 compile 단축키 잘 모르겠고 ^^

그래서 그나마 편한 Dev-C++로 결정했죠. 편하고 좋은데 익숙하지 않음에 대한 문제가 있고요.

IDE에 사소하면서 큰 버그가 하나 있네요.

Coding을 막 하다보면 화면 아래까지 line이 내려가는 경우 자동 스크롤이 되질 않아요.

 

보시면 현재 커서 위치는 Line 43 입니다. 괄호가 있어 matching에 대해 붉은 색으로 표시해주고 있네요.

근데 화면 스크롤은 안됩니다. 물론 마우스 휠 돌리거나 커서키 이용해서 더 내려가면 스크롤은 되죠.

근데 coding하는 중에 <Enter>키 눌러 다음 줄 내려가는 경우는 화면이 스크롤 되지 않고 커서만 내려가서 타이핑 내용이 보이지 않아요. 한 두줄 더 내려가면 스크롤이 될까 싶어 <Enter>키 몇 번 더 눌러봐도 커서만 내려가지 화면은 그대로 입니다.

 

이 부분 수정된다면 공부하는 선에서는 굳이 VC 같은 상용 compiler 필요 없겠네요.


내용 추가 하나 더!

 - 전에 사용하던 compiler들은 선언만 해놓고 한 번도 사용하지 않은 변수가 있으면 Warning을 띄웠던 것 같은데

    Dev-C++ compiler는 warning이 안 뜨네요. 학교 다닐 때 상관없다고 신경 안쓰다 회사에서 혼 났던 게 warning

    안 잡는다는 거였는데 ㅎㅎㅎ. 짧은 코드야 발견하기도 쉽고 크게 문제 안되겠지만 역시 상용으로 사용은 힘들 듯!

대법원에서 쌍용자동차 정리해고 조치가 정당하다고 판결했다 한다. 결국 또 이렇군.

 

몇이나 되는 사람이 세상을 등졌고 또 얼마나 되는 사람이 파업에 따른 배상금과 해고에 따른

생활고로 하루 하루를 고통속에 보내고 있는가...

 

쌍용차는 경영상의 문제로 회사가 어려워 진 것 아닌가? 정리해고 통보를 받은 노동자들은

어떤 큰 잘못을 저질렀기에 그렇게 된거지?

그들은 경영의 단계에 참여라도 해 볼 수는 있었을까?

절대 아니었을텐데... 하루 하루 할당되는 분량 채우고 지시받은대로 움직였겠지.

방향은 경영자들이 결정하고 책임은 근로자가 지고.

 

답답한 건 이게 쌍용차만의 문제는 아니라는 거.

많은 회사를 다닌 건 아니지만 지금까지 경영 실패를 본인 부터 책임지는 경영자는 아직 본 적이

없다. 물론 그 상황에 가기까지 많은 고민은 하겠고 스스로 최선은 다하겠지.

근데 직원이 많은 고민을 하고 최선을 다했는데 결과가 나쁘면 그 직원의 노력을 높이 사서

진급시켜주고 급여 올려주고 인센티브 주는 경영자가 있던가? 해고 하지 않으면 다행이지.

 

좋은 제품 잘 만들어 잘 팔려 이익이 많아지면 경영을 잘했으니 경영자가 제일 많이 가져가고,

좋은 제품을 잘 만들었는데 못 팔아서 손해가 발생하면 회사가 어려우니 근로자가 책임지고,

필요 없는 제품 열심히 만들래서 만들었더니 안 팔리면 또 회사가 어려우니 근로자가 책임지란다.

이 쯤이면 근로자라고 쓰지만 노예라고 읽어야 할 듯.

 

솔직히 지금 다니고 있는 회사도 그런 상황이지.

개발 단계에서 개발자는 시장의 요구에 맞는 제품이 아닌 것 같다. 시장 조사 해보고 시작하자고

얘기했음에도 경영자와 영업은 본인들의 방식이 맞다고 그 방향만 고집해 왔다.

결과는 좀 비참해. 이젠 회사가 어려우니 어떤 직원은 10%, 어떤 직원은 25% 임금 삭감 통보하더라.

 

그 와중에 본인들이 생각하기에 꼭 필요하다 싶은 사람은 무슨 짓을 해도 그대로 두더라고.

그리고 본인들은 어지간한 근로자가 1년 내내 쥐어짜야 모을 수 있을 만한 금액의 물건을 살까 말까

고민하더라고. 뭐 개인돈으로 뭘 사던 그건 본인 자유지만 최소한 임금 삭감 통보한 직원 앞에서

할 소린 아니지 않는가?

 

회사가 어려워 직원 월급 주기 힘들다면서 가족들 해외에 내보내 월 몇백 끊임 없이 보내주는

사장님도 봤고, 월급 줄 돈은 없다면서 골프 치러 다니거나 본인 취미 생활에는 아낌없이 투자하는

사장님도 심심치 않게 본다.

 

참 잘 돌아가는 세상이다.

Embedded 공부를 위해 Linux 맛부터 봐야겠다는 생각이 들었습니다.

Linux는 Ubuntu로 결정하였고 Version은 14.04 LTS 입니다.

현재 최신 버전은 14.10이지만 LTS(Long Term Support)는 14.04까지 나와있어 14.04로 갑니다.

 

단순히 Linux 맛을 보는 것이나 Embedded 개발을 위해서 보통 Vmware같은 가상머신에 linux를 설치해

사용하지만 좀 더 공부해서 NAS server로도 활용할 계획인지라 저가형 PC까지 맞추기로 했습니다.

 

그래도 블로그에는 Vmware를 통해 설치해본 내용을 올리겠네요. OS가 완전 load되기 전에 설치화면이나

Booting 화면을 capture하는 재주가 없어서 ^^

 

Vmware나 각종 가상 머신 프로그램 설치나 다루는 방법은 걍 쿨하게 넘어가죠.

대신 이번 편에선 Vmware 10을 이용해 ubuntu 설치하기 위한 기본 단계까지만 다룹니다.

 

 

먼저 Ubuntu를 설치하기 위해서 설치CD나 image가 필요하겠죠.

http://www.ubuntu.com 에 들어가보시면 down 받을 수 있지만 해외 server라 그런지 많이 느리네요.

http://ftp.kaist.ac.kr/ubuntu-cd/14.04.1 에 들어가 봅시다.

 

뭐가 좀 복잡하죠? 자세히 보시면 Ubuntu 14.04와 Ubuntu 14.04.1 두 가지 버전에서 Desktop/Server,

64bit/32bit 이렇게 각각 나뉘어 있네요.

14.04와 14.04.1의 차이는 LTS(Long Term Support)이냐 아니냐 차이입니다.

14.04.1이 LTS이고 말 그대로 보안패치등을 오랫동안 지원해준다는 얘기이겠죠 뭐.

전 Ram 4GB 쓸 거니까 64bit 버전에 desktop버전을 골랐어요.

ubuntu-14.04.1-desktop-amd64.iso 글자를 클릭하면 이미지 파일 다운로드~

 

 

이제부터 Vmware 설정 부분입니다. Vmware는 그냥 기본값으로 Next> 만 눌러 설치한 걸로 기억하니

별게 없네요. 다시 지웠다가 설치하는 것도 좀 그렇고...

 

 

1. 설정이라긴 그렇지만 놋북 화면 크기가 1600*900이라 좁네요. View에서 Toolbar와 Tabs 옵션을

   껏습니다. 이러면 Ubuntu 다 깔고 해상도 1366*768 했을 때 화면에 거의 딱 맞게 차더군요.

 

 

2. File - New Virtual Machine 또는 키보드에서 Ctrl+N 눌러줍시다.

 

 

3. 그냥 막 Custom으로 ㅋ

 

원래는 Typical로 해도 상관 없을 것 같긴한데 Custom으로 해봤네요. 별 차이 없을 듯.

그냥 아래 화면 하나 더 나오는 듯 합니다.

 

 

4. 아무것도 안 건드리고 Next>

 

 

5. Ubuntu 설치 단계를 다 밟기 위해 맨 마지막 옵션을 골랐는데요.

   두 번째 Installer disc image file을 고르고 다운 받았던 iso 파일 선택해주면 다음 단계에서

   이름과 계정 생성 정보 입력 하는 것만으로 알아서 설치 완료해 줍니다.

 

 

6. 전 단계에서 수동을 골랐으니 고생 좀 해보죠 뭐.

    Linux를 골라 놓고 Version은 Ubuntu 64-bit로 맞춰서 Next>

 

 

7. 가상 머신 이름과 저장 위치 설정입니다. 뭐 대강 넘어가죠.

 

 

8. 사용 중인 놋북 CPU가 i5이니까 Processor는 1개에 Core수는 4개로 맞췄습니다.

 

 

8-1. 내가 사용하는 CPU의 core수를 모르겠다! 하시면 어짜피 멀티 프로세서는 아니실거고요.

      Core수를 알기 위해서 키보드에 왼쪽 Ctrl+Shift+ESC 3개 키를 동시에 눌러봅시다.

      Windows 작업 관리자가 뜨고 성능 탭에 가면 CPU 사용 현황이 4개 칸으로 된 거 보이시죠.

      이 칸 수가 core의 수 입니다. 2개면 2칸으로 나오겠죠.

 

 

9. 사용할 Ram은 4GB로. 2GB도 충분하겠지만 Ram은 좀 남아 도는 편인지라 ^^

 

 

10. 아래는 Network Type 설정 옵션입니다.

 

 Use bridged networking 가상 머신에서 도는 Ubuntu가 공유기에 직접 붙는 경우입니다.
공유기를 통해 여러 PC가 붙는 경우 가상 머신도 공유기에서
직접 IP를 받아오게 되어 단독 PC처럼 동작 하는 건데요.
쉽게 말하자면 network에 있는 단말기들 모두가 접속
가능해지는 거죠.
 Use network address translation (NAT) IP address를 가상 머신이 돌고 있는 PC에서 받아오는 것이라
하네요. 특별히 setting하지 않으면 가상 머신이 돌고 있는 PC
외에 같은공유기에 물린 다른 단말기들은 접속 할 수 없다.
정도로 이해..
 Use host-only networking 단독 netwrok구성에 외부와 접속 하지 않는 것이라네요.
사실 잘 모르겠어요.
 Do not use a network connection 인터넷 사용하지 않는 것이랍니다.

 ※ 내용 추가 : Use bridged networking을 선택시 공유기에서 IP address를 받아오지만 외부 인터넷

                     망까지 연결되지 않음을 확인하였네요. 설정을 만지면 될 지 모르겠지만 그냥 두 번째 옵션

                     인 Use network address translation (NAT)을 선택해서 인터넷 접속되는 것을 확인

                     하였습니다. 이 옵션으로 바꾸고 끝. 인터넷 접속이 안되면 update도 각종 pakage 설치도

                     불가하고 알아보는 것도 좀 그래서 ㅋ. 어짜피 local PC외에는 접속할 일이 없으니까요.

 

 

11. Recommended가 붙은 걸로 Next>

 

 

12. 이것도 마찬가지로 Recommended 보고 Next>

 

 

13. 새로 만들거니까 Create a new virtual disk에서 Next>

 

 

14. HDD size 정하는 건데요. 기본값은 20GB인데 50GB 잡았고요. 이건 뭐 원하시는대로.

     아래 네모칸 Allocate all disk space now.에 체크하시면 50GB가 바로 잡힙니다.

     Ubuntu에서 실제 그 용량을 쓰지 않고 있어도 50GB.

     체크 안 하시면 최대 50GB로 해서 필요한만큼 파일 용량이 커짐요.

     Store virtual disk as a single file을 선택하면 이미지 파일을 하나로 관리한다는 건데

     실제로는 관련 파일 몇개 더 추가되기는 합니다. 어쨌든 간단하니까 한개인걸로.

 

 

15. 이미지 파일 이름 정하는 건데 그냥 기본값대로 Next>

 

 

16. H/W 세부 설정 하는 거고요. 이것도 그냥 Finish

 

 

17. 자 이제 기본적인 가상 머신 환경은 갖추어졌네요. 이미지 파일을 올리고 실행시켜서 설치 들어가면

    되겠습니다. 이 상태에서 CD/DVD(SATA) Auto detect를 누르시면 다음 단계에서 설치할 OS 이미지를

    고를 수 있습니다.

 

 

18. Use ISO image file을 고르고 Browse를 눌러 다운 받은 Ubuntu iso 파일을 골라주고 OK버튼 눌러주세요.

 

 

19. 그럼 이렇게 다시 화면으로 돌아오는데 여기서 왼쪽 위에 Power on this virtual machine을 누르면

     컴퓨터 켠 것과 마찬가지가 됩니다. CD롬에 설치CD 넣고 컴퓨터를 켰으니까 설치가 시작되겠죠.

 

 

설치하기는 다음편에~

어느 고마운 분께 초대장을 받아 개설하려 하였으나 초대장 메일이 오지 않더군요.

계속 기다려봐도 오지 않고 티스토리 홈페이지에서 초대장 다시 보내기 하면 보냈다는

메시지는 뜨는데 초대장 메일은 계속 안오고.

 

다음 고객센터에 문의글도 남겼는데 묵묵부답!

 

기다리다 안되겠어서 초대장 나눔하시는 다른분께 사정 설명드리고 다른 메일 계정으로

초대장 부탁 드렸습니다. 크게 기대 하지 않았었는데 흔쾌히 보내주셔서 이렇게 블로그

개설에 성공했네요.

 

처음 신청했던 계정은 paran.com 계정이었는데요.

서비스 종료 되었다지만 다음에 인수 되었고 메일 받는 것도 문제가 된 적이 없어서

신청했더니 초대장을 못 받네요. 결국 daum.net계정으로 다시 받았습니다.

 

초대장 나눔해 주셨던 두 분 모두 깊이 감사드립니다.

열심히 채워 나가보겠습니다.

+ Recent posts