리눅스 루트권한 얻기와 한글 입력 키보드 설정
리눅스 루트권한 얻기와 한글 입력 키보드 설정 리눅스를 가상머신에서 사용하다보니 자꾸 실수로 지워버리는 불상사가 발생한다.ㅠ.ㅠ 그래서 다시 설치하는 경우가 많고 그때마다 각종 설정을 다시 해야 하는데.. 이놈의 머리가 녹이 슬어서 자꾸 까먹게 되는 바람에 그냥 블로그에 메모를 해 놓으려고 한다. 1. 루투권한 얻기 우선 일반 사용자로 접속해서 루트권한 얻는 과정부터 정리해보자. 이렇게 간단한 과정을 왜 자꾸 잊어먹는 걸까?ㅎ 우선 일반 사용자로 터미널을 열어서 [sodo passwd root]를 입력하면 [Enter new UNIX password :] 라는 메시지가 나타나는데 이 상태에서 root 계저에서 사용할 암호를 입력하 엔터를 누른다. 그리고 [Retype new UNIX password:] ..
전기회로 및 PLC 공압실린더 기초 정리
전기회로 및 PLC 공압실린더 기초 정리 자동화 장치의 제어에 관심을 갖고 PLC를 공부해보려고 하는데 전공 분야가 아니기에 기본적인 전기회로와 시퀀스 정도는 정리를 하고 시작해야 할 것 같다. 1. 전기 스위치의 종류 분류방식에 따라 그 종류가 천차만별이겠지만 물리적인 힘으로 작동하는 스위치와 전기에 의해서 작동하는 스위치에 대해서 정리를 한다. - 물리적인 스위치는 우리가 일상생활에서 흔히 접하는 사람의 손에 의해서 작동하는 스위치이다. 이 스위치 종류로는 푸시버튼, 토글버튼, 셀럭터 스위치 등이 있다. - 전기 스위치는 다시 전류의 자기작용에 의해 작동하는 '전기 릴레이'와 전류와 전자의 흐름에 의해서 작동하는 '트랜지스터'로 구분이 된다. plc에서는 수동으로 작동하는 스위치에 의해서 전기 신호를..
임베디드 시스템 개요 및 하드웨어
임베디드 시스템 개요 및 하드웨어 (노트정리) 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) 이 과정은 우..
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 파일에 아래 그림과 같이 컴파일러의 경로..
리눅스 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 서버를 구성하기 위해서..
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 파일 구하는것 또한 어렵..
손목시계 건전지 교체 스스로 해도 쉽게 할 수 있네요.
손목시계 건전지 교체 할 때면 그동안은 가까운 시계 관련 가게를 찾곤 했었는데요. 얼마 전부터 차고 있던 손목시계의 시간이 조금씩 느려지더니 이번 명절 연휴에는 시간이 꽤 오차가 생기더라고요. 그래서 가까운 시계 가계를 찾 아서 교체하려고 했지만 연휴라서 그런지 집 근처에는 영업하는 곳이 없어서 이번에는 스스로 해결해보자는 생각으로 손목시계 건진지 교체에 도전을 해봤습니다. 솔직히 '망가뜨리면 어쩌지?;;' 라는 걱정을 살짝 하기는 했지만 '이런 것도 못하면 뭘 하겠냐'는 생각으로 한 번 해보기로 했습니다. 손목시계 건전지 교체 도전 그런데 시계의 밑면(?) 그러니까 덮게를 여는 방식이 조금씩 차이가 있는 거 같더군요. 어떤 건 볼트로 잠겨 있어서 그것만 열면 되기도 하고 또 어떤 건 커터 칼을 사이에 ..
컴퓨터 시간 오류 맞추기 윈도우10
컴퓨터 시간 오류 맞추기 윈도우10 몇 시간 전에 컴퓨터에 윈도우를 다시 설치하고 사용하던 프로그램들을 다시 설치하다가 문뜩 몇 시지? 시간을 봤는데....잉? 컴퓨터의 시간이 이상하더라고요. ▲ 현재 시간과 오차가 약 9시간이 보이네요. 그래서 컴퓨터의 시간을 현재 시간과 맞추려고 하는데... 혹시 이렇게 컴퓨터 시간이 안 맞을 때 당황하시는 저 같은 초보님들도 계실지 몰라 컴퓨터 시간 오류 일 때 맞추는 방법을 간단하게 정리해보려고 합니다. 방법은 크게 두 가지가 있는데요. 일단 컴퓨터가 인터넷과 연결이 되어 있는 상태라면 개인적으로 인터넷 시간과 동기화를 시켜버리는 게 편하더라고요. 혹시 그렇지 않다면 수동으로 설정을 해줄 수도 있으니 그 방법 두 가지를 후다닥 알아보겠습니다. 일단 컴퓨터 시간과 ..
홀로서기 시작한 직장인의 새 보금자리에서 첫날밤
고향은 아니지만 초등학교 때 '광주광역시'로 가족이 이사를 와서 학교를 졸업하고 직장생활을 한지가 꽤 오래됐다. 나름대로 오랜 시간을 이 지역에서 살면서 한 번도 혼자 살아본 적이 없는 거 같다. 그동안 가족이나 친구 또는 지인들과 함께 지내곤 했었는데 작년부터 지내던 집이 직장과 멀어도 너무 멀어서...ㅠ.ㅠ 얼마나 멀었냐고? (집 = 광주 남구 진월동 : 직장 = 첨단 : 거리 = 약 19km : 순환도로 통행료 왕복 4800원) 물론 수도권에서 더 먼 거리를 힘들게 출퇴근 하시는분들 많은 거 안다. 하지만 나 같이 우물 안 개구리에게는 멀어도 너무 멀게 느껴지더라. 그래서 결국은 1년 만에 이사를 결심하고 회사에서 걸어서 1분 거리인 곳으로 집을 옮기고 홀로서기를 시작하려고 한다. 오늘이 이사한 집..
Shell Script 기초 프로그래밍과 실행
Shell Script 기초 프로그래밍과 실행어제는 셸 스크립트의 '기본 개념'과 '환경 변수'들을 살펴봤었는데요. 오늘은 간단한 shell script 프로그램을 작성해보고 실행하는 과정을 정리해보려고 합니다. 셸(SHELL) 환경변수 리눅스의 셸 스크립트는 C언어와 많이 비슷해서 C를 해보신 분들은 쉽게 익힐 수 있다고 하네요. 저도 기본서 하나 보기는 했는데 기억이 잘...ㅎㅎ 그래도 다른 일반적인 언어들 처럼 변수, 반복문, 제어문 등을 사용한다니까 다시 시작하는 마음으로 공부를 해봅니다. ■ Shell Script 작성 먼저 다음과 같이 간단한 셸 스크립트를 작성해봅니다. 별거 없죠? 1. 일단 첫 번째 줄의 #!는 주석인데요. bash를 사용하겠다는 의미이고요. 반드시 넣어줘야 하는 녀석입니다..