리눅스 루트권한 얻기와 한글 입력 키보드 설정
리눅스 루트권한 얻기와 한글 입력 키보드 설정 리눅스를 가상머신에서 사용하다보니 자꾸 실수로 지워버리는 불상사가 발생한다.ㅠ.ㅠ 그래서 다시 설치하는 경우가 많고 그때마다 각종 설정을 다시 해야 하는데.. 이놈의 머리가 녹이 슬어서 자꾸 까먹게 되는 바람에 그냥 블로그에 메모를 해 놓으려고 한다. 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 파일 구하는것 또한 어렵..
Shell Script 기초 프로그래밍과 실행
Shell Script 기초 프로그래밍과 실행어제는 셸 스크립트의 '기본 개념'과 '환경 변수'들을 살펴봤었는데요. 오늘은 간단한 shell script 프로그램을 작성해보고 실행하는 과정을 정리해보려고 합니다. 셸(SHELL) 환경변수 리눅스의 셸 스크립트는 C언어와 많이 비슷해서 C를 해보신 분들은 쉽게 익힐 수 있다고 하네요. 저도 기본서 하나 보기는 했는데 기억이 잘...ㅎㅎ 그래도 다른 일반적인 언어들 처럼 변수, 반복문, 제어문 등을 사용한다니까 다시 시작하는 마음으로 공부를 해봅니다. ■ Shell Script 작성 먼저 다음과 같이 간단한 셸 스크립트를 작성해봅니다. 별거 없죠? 1. 일단 첫 번째 줄의 #!는 주석인데요. bash를 사용하겠다는 의미이고요. 반드시 넣어줘야 하는 녀석입니다..
우분투 BASH 셸 기초 정리
우분투 BASH 셸 기초 정리 리눅스에서 셸은 '명령'과 '프로그램'을 실행할 때 사용하는 인터페이스인데요. 리눅스를 공부하다 보면 이 녀석의 기본 문법 정도는 알고 있어야 된다고 해서 당분간 셸의 개념과 문법에 대해서 공부하면서 정리를 해보려고 합니다. 셸이 하는 기본 역할은 우리가 입력한 명령을 커널에 전달하거나 반대로 커널에서 처리된 결과를 우리에게 보여주는 역할을 하는데요. 우분투에서는 기본적으로 BASH 셸을 사용하고요. BASH 셸의 특징은 다음과 같습니다. ■ BASH 셸의 특징1. Alias명령 단축 : 리눅스에서 사용하는 긴 명령어를 내가 원하는 짧은 명령어로 바꿔서 사용할 수 있게 해줍니다. 2. History이건 정말 빈번하게 사용되는 기능인데 이전에 입력했던 길고 긴 명령어를 다시 ..
서버 리눅스 LVM 개념 및 만들어보기
서버 리눅스 LVM 개념 및 만들어보기LVM은 Logical Volume Manager의 약자로... 단어의 의미에서도 알 수 있듯이 [논리 하드디스크 관리자]를 말하고요. 이 녀석의 역할은 여러 개의 하드디스크를 하나로 묶은 후에 그걸 상황에 따라서 다양하게 공간을 재분배하는 역할을 합니다. 예를 들어 2T와 4T의 하드디스크를 하나의 공간으로 묶은 후에 총 6T의 공간을 1T, 3T, 1T, 1T로 다시 나눠서 사용할 수 있게 해줍니다. LVM과 관련된 용어 몇 가지만 살펴보고 직접 만들어보겠습니다. LVM 용어 물리 볼륨 : /dev/sda1, /dev/sdb1, /dev/sdc1 등 파티션 자체를 의미합니다.볼륨 그룹 : 각각의 파티션(물리 볼륨)을 하나로 묶어서 하나의 공간으로 만든 걸 말하고요..
SERVER RAID1, 5 만들기
SERVER RAID1, 5 만들기 지난 글에서 레이드의 개념과 Linear RAID, RAID0을 만들어봤는데요. 오늘은 RAID1과 5의 장단점을 살펴보고 그것들을 만들어보려고 합니다. 만드는 과정은 앞에서 해봤던 것들과 똑같기 때문에 RAID 생성 과정만 자세히 살펴보고 초기화 과정 등 기본 작업은 기본적인 내용들만 정리하면서 넘어가도록 할게요. 혹시 이 글을 보는 분들이 있다면 아래 글들을 참고하시면 될 거예요. RAID 개념 RAID0 만들기 이번 글에서는 먼저 RAID 1과 5의 특징을 살펴보겠습니다. 1. RAID1의 특징 이 녀석의 핵심은 똑같은 데이터를 두 곳(두 개의 하드디스크)에 각각 나눠서 저장을 하는 방식입니다. 한쪽에 12345를 저장한다면 다른 한 쪽에도 똑같이 12345가 저..
SERVER 구축 RAID0
SERVER 구축 RAID0 대량의 데이터를 저장하기 위해서 server의 하드디스크는 여러 개를 사용하게 되는데요. 그것들을 하나의 공간으로 묶어서 사용할 수 있는 방법이 지난 글에서 정리했었던 RAID 방식입니다. RAID의 개념 지난 글에서는 여러 개의 RAID의 방식 중에서 하드디스크의 공간을 순서대로 사용하는 Linerar RAID를 만들어봤는데요. 오늘은 두 개의 하드디스크에 교차해서 데이터를 저장하는 방식인 RAID0을 만들어보려고 합니다. 교차해서 저장을 한다는 의미는 다음과 같습니다. 1. RAID 0 방식 예를 들어 1부터 10까지의 데이터를 저장한다고 가정했을 때... 그림과 같이 한쪽에 하나의 데이터를 저장한 후 다음 데이터는 두 번째 공간에 저장을 하는 방식으로 동시에 교차해서 데..