리눅스 루트권한 얻기와 한글 입력 키보드 설정
리눅스 루트권한 얻기와 한글 입력 키보드 설정 리눅스를 가상머신에서 사용하다보니 자꾸 실수로 지워버리는 불상사가 발생한다.ㅠ.ㅠ 그래서 다시 설치하는 경우가 많고 그때마다 각종 설정을 다시 해야 하는데.. 이놈의 머리가 녹이 슬어서 자꾸 까먹게 되는 바람에 그냥 블로그에 메모를 해 놓으려고 한다. 1. 루투권한 얻기 우선 일반 사용자로 접속해서 루트권한 얻는 과정부터 정리해보자. 이렇게 간단한 과정을 왜 자꾸 잊어먹는 걸까?ㅎ 우선 일반 사용자로 터미널을 열어서 [sodo passwd root]를 입력하면 [Enter new UNIX password :] 라는 메시지가 나타나는데 이 상태에서 root 계저에서 사용할 암호를 입력하 엔터를 누른다. 그리고 [Retype new UNIX password:] ..
임베디드 시스템 개요 및 하드웨어
임베디드 시스템 개요 및 하드웨어 (노트정리) 1. 개요 임베디드 시스템은 어떤 기기 속에 내장되어 정해진 일을 수행하도록 만들어진 디지털 시스템이다.우리 주변에서 흔히 볼 수 있는 전자제품 안에는 무조건 임베디드 시스템이 들어 있다고 생각하면 될 것이다. 이 시스템은 그 자체로 제품이 되기 보다는 다른 제품 속에서 그 역할을 하게 된다.단순한 기능만 수행하는 제품의 경우 적당한 속도의 프로세서와 적은 양의 메모리를 사용해서 구현이 가능하겠지만 리눅스 같은 OS가 올라가서 복잡한 기능을 구현하는 녀석들은 좀 더 큰 용량의 메모리와 32비트 이상의 프로세서를 사용해야 할 것이다. 2. 하드웨어 임베디드 시스템의 하드웨어는 프로그램 명령어를 처리하는 CPU, 데이터 및 프로그램 등을 저장하고 있는 메모리, ..
리눅스 커널 구조와 빌딩 시스템
리눅스 커널 구조와 빌딩 시스템 리눅스는 다양한 서브 시스템이 모여 동작하는 모노리딕 커널이다. 1. 리눅스 커널 구조 리눅스 커널은 유저 프로그램과 하드웨어 장치 사이에서 작동하며 서브 시스템으로는 아키텍처 의존적인 코드, 디바이스 드라이버, 프로세스 관리, 메모리 관리, 가상 파일 시스템, 네트워크 서브 시스템, 시스템 콜 인터페이스로 구성되어 있는데 그 역할은 다음과 같다. ■ 아키텍처 의존적인 코드 리눅스는 아키텍처의 종류에 관계없이 동일한 기능을 제공하지만 아키텍처 마다 그 밑에서 제어가 필요한 부분이 존재하며 CPU, MMU 드라이버가 그 역할을 한다. 이것들의 코드는 arch 디렉토리에 존재한다. ■ 디바이스 드라이버 리눅스는 모니터, 블루투스, 와이파이 등과 다양한 방식으로 통신을 하는데 ..
리눅스 컴퓨터에서 임베디드 보드의 NAND Flash로 파일 굽기
리눅스 컴퓨터에서 임베디드 보드의 NAND Flash로 파일 굽기 지난 글에서 리눅스 컴퓨터에 있는 uboot, kernel, rootfs을 보드로 옮기기 위한 tftp 네트워크 IP 설정 등 연결 준비를 해봤었는데...tftp 설정이제 uboot, kernel, rootfs 등을 보드의 NAND Flash로 구워보자.작업에 앞서 현재 가지고 놀고 있는 보드에 이 녀석들이 들어가는 NAND 주소의 위치가 각각 다르기 때문에 정리를 하고 넘어갈 필요가 있을 거 같다.Uboot (0x00000000~0x0003FFFF) / kernel(0x00040000~0x003FFFFF) / cramfs(0x00400000~0x007FFFFF) / ubifs(0x00800000~0x3FFFFFFF)이 과정은 우선 PC에..
uboot, kernel, rootfs는 nandflash로 구워져야 한다.
uboot, kernel, rootfs nandflash로 굽는 과정 노트정리 1. SD카드에 uboot 굽기 최초 아무 프로그램이 없는 보드는 SD에 부팅 프로그램을 넣은 후 SD카드 모드로 부팅을 해야 한다.윈도우에서 IROM_Fusing_Tool 프로그램을 실행해서 u-boot_mmc.bin 파일을 굽는다.그리고 qtopia.tar.gz 파일을 복사해서 SD 카드로 옮긴다.이렇게 두 개의 파일을 준비 한 후 SD카드를 보드에 넣은 후.... 컴퓨터와 보드의 시리얼 통신을 위한 케이블을 연결한 후 보드의 전원을 켜고 PC의 리눅스에서 minicom을 실행한다. 그리고 PC에 저장되어 있는 uboot, kernel. rootfs 등을 보드로 넣기 위해서는 보드와 컴퓨터 사이에 USB를 따로 연결해줘야 ..
크로스 컴파일러 및 minicom 설치와 테스트
크로스 컴파일러 설치 PC의 리눅스에서 임베디드 리눅스에 심을 X86 프로세서 코드를 컴파일 하기 위해서 크로스 컴파일러를 설치해보려고 한다.이번에 설치할 녀석은 arm-none-linux-gnueabi-4.3.2 이며 보드와 함께 굴러다니던 CD에 포함되어 있던 녀석이니 내가 갖고 있는 보드에서 심을 코드는 모두 컴파일 할 수 있을 것이다.우선 압축파일을 복사해서 리눅스 /usr/local에 arm 폴더를 하나 만들고 옮기자.다음은 옮겨진 파일의 압축을 풀고 (tar xvf arm-2008q3.tar.bz2) 다시 한 번 arm 폴더의 내용을 확인한다.그리고 압축 파일 자체는 필요가 없으니 제거를 하자. PATH 추가 다음은 /etc/bash.bashrc 파일에 아래 그림과 같이 컴파일러의 경로를 PA..
리눅스 NFS Server 구축하기
리눅스 NFS Server 구축하기 NFS(Network File System)는 네트워크 상에 있는 파일 시스템을 연결해서 사용할 수 있도록 해주는 녀석이다. 메모리가 작은 임베디드 시스템에 파일 시스템을 바로 저장하지 않고 호스트 컴퓨터에서 만들어지고 저장되어 있는 파일 시스템에 연결하여 동작시켜 볼 수 있다. 물론 실제 제품에서는 임베디드의 NAND 플래시 메모리에 파일 시스템을 설치해서 동작하도록 해야 하지만 개발 과정에서는 일일이 NAND 메모리에 올리지 않고 개발할 수 있으니 개발 및 디버깅 속도를 향상시켜 줄 것이다. 1. 폴더 생성 우선 우분투 리눅스 루트 디렉토리에 nfsboot 폴더를 생성하고 권한을 수정한다. 그리고 VMware Fusion의 네트워크 상태를 아래와 같이 Bridged..
임베디드 시스템 구축을 위한 tftp 서버 구축
임베디드 시스템 구축을 위한 tftp 서버 구축 혹시 이 글을 보고 계신분들이 있다면 이건 저만의 노트정리이기 때문에 잘 정리가 되어 있지 않고 저만 알아볼 수 있는 글임을 참고하세요.그래도 혹시 저처럼 공부하는 분들께 도움 될 내용이 있을지 모르니 나름대로 최대한 정리를 해보겠습니다. tftp 서버 설치 tftp는 Trivial File Transfer Protocol의 약자로 사용자 인증이 불필요하며 디렉토리를 보여주지 않아도 되는 곳에 사용되는 네트워크 애플리케이션이다.임베디드 시스템의 부트로더에서 호스트 컴퓨터에 있는 u-boot, kernel, root filesystem 이미지 등을 이더넷을 통해서 보드로 가져올 때 사용되며 다음과 같이 설치를 한다.다음은 tftp 서버를 구성하기 위해서 /e..
VMware Fusion 우분투 리눅스 설치하기
VMware Fusion 우분투 리눅스 설치하기 예전에 윈도우를 사용할 때 VMware Player에 다른 OS를 설치해서 사용해봤던 기억이 있는데 이번에는 맥북에서 사용하는 가상머신인 VMware Fusion에 리눅스 설치하는 과정을 정리해놓으려고 한다. 다 설치해놓고 보니 크게 다른점은 없는거 같은데... VMware Fusion이 좀 더 심플하게 설치되는 느낌이랄까? 여튼 여러가지로 맥북이 마음에 든다. 이미 윈도우7을 설치해놓은 녀석이 하나 있는데 임베디드 보드에 리눅스를 올리기 위해서는 컴퓨터에도 리눅스가 있어야 하기에 이렇게 가상머신에 또 하나의 OS를 설치를 해본다. 나는 우분투 리눅스를 설치할 것이고 ISO 파일은 쉽게 받을 수 있기 때문에 그 과정은 생략하고 바로 진행을 해본다. [Fil..
VMware Fusion Tools 설치 및 맥북과 리눅스 폴더 공유
VMware Fusion Tools 설치 및 맥북과 리눅스 폴더 공유 맥북에서 VMware Fusion 가상머신에 리눅스를 설치했다. 그리고 맥북과 가상머신이 폴더를 공유하기 위해서 VMware Tools를 설치 했는데 이게 제대로 된건지는 모르겠지만 일단 폴더가 공유는 됐기 때문에 그 과정을 기록해 놓고자 한다. 이런 의구심을 갖게 된 이유는 윈도우와는 폴더 공유 방법이 차이가 나기 때문인데... 윈도우의 경우 가상머신에 OS를 설치할 때 맥북의 폴더를 공유할 것인지 처음부터 물어본다. 그리고 공유 설정을 하면.... 위 캡처 화면처럼 VMware Fusion의 윈도우와 맥북의 선택한 폴더가 완벽하게 실시간으로 공유가 된다. 물론 리눅스도 된다. 그런데 그 과정이 조금 복잡해서 나중에 이 미련한 머리가..
임베디드 리눅스 개발환경 구축
임베디드 리눅스 개발환경 구축 임베디드 리눅스 공부하면서 노트정리를 해놓으려고 하는데 오늘은 개발환경 구축 관련된 내용을 정리 하려고 한다. 1. 컴퓨터 = 맥북 2. 가상머신 VMware Fusion (리눅스 / 윈도우7 32비트 설치(윈도우64비트 드라이버 설치에 한계가 있음.)) 3. 임베디드 리눅스 개발보드 및 시리얼 케이블과 USB 케이블 현재 사용중인 컴퓨터는 맥북이고 임베디드 리눅스 개발을 위해서는 당연히 리눅스 OS가 있어야 하기 때문에 가상머신을 이용해서 우분투 리눅스를 설치했으며 보드에 프로그램을 심을 때 사용하는 녀석은 윈도우에서 구동이 되는 거라서 불가피하게 윈도우 또한 가상머신으로 설치를 했다. 이것들은 ISO 파일만 있으면 간단하게 설치가 가능하며 iso 파일 구하는것 또한 어렵..