2012년 6월 30일 토요일

[LiNuX] 라즈베리 파이 D.I.Y 케이스




1. 준비물
    - OHP 필름(문구점에서 구매 가능)
    - 라즈베리 파이 D.I.Y 케이스 도안 [ 클릭 ]
    - 순간 접착제 와 스카치 테이프
    - 자르기 위한 커터 칼 및 자 등...

2. 과정 설명
    딱히 설명할 것은 없다. 도안 출력 해서 OHP 필름 아래 두고, 테이프로 고정 시키고
    커터칼을 이용하여 오려 내면 된다.
 
3. 작업 과정 사진
















    ↑ 출력한 도면을 OHP 필름과 겹쳐 두고 떨어지지 않도록 4방면을 테이프로 고정 시킨다.


















    ↑ 종이와 OHP 필름을 위의 사진과 같이 커터칼을 이용하여 겹쳐 오려 내야 한다.


















    ↑ 1차 적으로 외곽 부분 오려 내기가 완료 되었다.

















    ↑ 진행을 하다 보니, 원형은 어떻게 오려 내야 할까 고민 했다.
        최대한 원형에 가깝게 오려 내야 하는 방법 밖에는 없었다.



























    ↑ 오려 내는 작업이 끝나고 OHP 필름을 접고, 순간 접착제를 이용 하여 접착 작업.
       주의 사항 : 접착제는 한방울 정도의 소량 정도만 해도 충분 하다.



















    
    ↑ 완성 되었다. 뚜껑 부분도 접착을 할까 했지만, 가끔 열어야 해야 하기 때문에
        반투명 테이프로 붙여 두기만 했다.





















    
    ↑ 조금더 가까이서 찍은 사진.



















    ↑ 라즈베리 파이를 구동 시켜 보았다. 















    





    ↑ 조금더 가까이서 찍은 사진.



















    
    ↑  오늘의 작업 장소는 처갓집 의 처남 방에서...




[LiNuX] 라즈베리 파이 SSH 연결




1. 우선 사항
    1-1. 라즈베리 파이 에 데비안(Debian) 올리기
    1-2. 라즈베리 파이 최초 부팅



2. ssh 데몬을 시작 시키기 위해 root 권한을 획득 한다.

    모든 데몬의 시작/정지/재시작은  root 권한으로 실행 가능 하다.

    pi@raspberrypi:~$ sudo su

    root@raspberrypi:/home/pi# whoami
    root


3. ssh 데몬 시작

    ssh 데몬이 시작 되어 있지 않기 때문에 수동으로 시작 시켜 주어야 한다.

     root@raspberrypi:/home/pi# /etc/init.d/ssh start
     Starting OpenBSD Secure Shell server : sshd.
     root@raspberrypi:/home/pi#


4. 라즈베리 파이의 IP 주소 확인

     ifconfig 명령을 이용 하여 유선랜의 IP 주소를 알아 낸다.

     root@raspberrypi:/home/pi# ifconfig eth0
     eth0           Link encap:Ethernet  HWaddr b8:27:eb:04:6f:5d
                      inet addr:192.168.0.8  Bcast:192.168.0.255  Mask:255.255.255.0
                      UP BROADCAST RUNNING MULTICAST  MTU:1488  Metric:1
                      RX packets:3730 errors:0 dropped:0 overruns:0 frame:0
                      TX packets:873 errors:0 dropped:0 overruns:0 carrier:0
                      collisions:0 txqueuelen:1000
                      RX bytes:208246 (203.3 KiB)  TX bytes:88344 (86.2 KiB)

     root@raspberrypi:/home/pi#


5. 외부에서 SSH 연결 확인
   
    본인의 경우 내부 네트워크의 다른 컴퓨터에서 putty 나 Xshell 등의 ssh 클라이언트
    를 이용하여 라즈베리 파이의 IP 주소로 접속을 하였다.

     참고 : 최초 부팅후 별다른 설정을 하지 않았다면, iptables 가 올라가 있지 않은 상태.


6. SSH 데몬 자동 시작을 위한 chkconfig 패키지 설치

    데비안 리눅스의 경우 기본적으로 패키지 관리자를 apt-get 을 사용 한다.


    root@raspberrypi:/home/pi# apt-cache search chkconfig
    chkconfig - system tool to enable or disable system services

    root@raspberrypi:/home/pi# apt-get install chkconfig
    Reading package lists... Done
    Building dependency tree    
    Reading state information... Done
    The following NEW packages will be installed:
      chkconfig
    0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
    Need to get 9,182 B of archives.
    After this operation, 69.6 kB of additional disk space will be used.
    Get:1 http://ftp.uk.debian.org/debian/ squeeze/main chkconfig all 11.0-79.1-2 [9,182 B]
    Fetched 9,182 B in 1s (5,276 B/s)
    Selecting previously deselected package chkconfig.
    (Reading database ... 46441 files and directories currently installed.)
    Unpacking chkconfig (from .../chkconfig_11.0-79.1-2_all.deb) ...
    Processing triggers for man-db ...
    Setting up chkconfig (11.0-79.1-2) ...
    root@raspberrypi:/home/pi#


7. ssh 데몬 부팅시 활성화 

    현재 ssh의 동작 런레벨 확인

    root@raspberrypi:/home/pi# chkconfig --list | grep -i "ssh"
    ssh                       0:off  1:off  2:off  3:off  4:off  5:off  6:off
    root@raspberrypi:/home/pi#

    ssh 데몬이 모든 런레벨에서 off 상태다. 본인의 경우 ssh 데몬은 telnet 보다 안전
    하여 선호 하는 편이라 런레벨 2, 3, 5 에서 사용 할 수 있도록 설정을 한다.


    root@raspberrypi:/home/pi# chkconfig ssh -level 235 on


    root@raspberrypi:/home/pi# chkconfig --list | grep -i ssh
    ssh                       0:off  1:off  2:on   3:on   4:on   5:on   6:off 

    * 이상하게 런레벨4 에서도 on 으로 설정이 된다. 명령어 옵션을 찾아 봐야 할 듯.


    재부팅 하여, 자동으로 ssh 데몬이 시작 되는지 와 원격에서 ssh 로 연결이 되는지
    확인 하도록 한다.




[LiNuX] 라즈베리 파이 최초 부팅

1. 주변 장치 의 연결

   유선 랜선, USB키보드, HDMI 케이블(또는 TV 연결 케이블),
   위의 장치 까지 연결을 하고, 반드시 라즈베리와 연결된 모니터나 TV의 전원을 켜고,
   라즈베리의 Micro USB 전원 을 입력 해야 한다.

















 

2. 라즈베리 파이 부팅 시작

    부팅이 완료 되었다. 로그인 계정과 비밀번호는 다음과 같다.

    로그인 계정 : pi 
    로그인 비밀번호 : raspberry


[LiNuX] 라즈베리 파이 에 데비안(Debian) 올리기



1. 운영체제 다운로드
    다운로드  : http://www.raspberrypi.org/downloads

    데비안(Debian Linux)
    아치(Arch Linux)
    큐톤파이(QtonPi)

    위와 같이 3개의 운영체제를 제공 하고 있다.

    어느 운영체제든 Win32diskImager 라는 프로그램이 SD카드에  운영체제를 올려 주니, 
    자신이 편하게 사용할 수 있는 것을 내려 받는다.


    내려 받은 zip 파일을 적당한 디렉터리에 압축 해제 한다.




2. Win32diskImager 다운로드

    다운로드 : https://launchpad.net/win32-image-writer/0.6/0.6/+download/win32diskimager-binary.zip

    Win32diskImager 라는 프로그램은 img 확장자의 디스크 이미지 파일을 USB 메모리나,
    Micro SD Card 등의 미디어에 기록을 하는 용도로 사용 된다.


    다운로드 받은 Win32diskImager.zip 파일을 적당한 디렉터리에 압축 해제 한다.




3. SD 카드에 운영체제 올리기

    Win32diskImager.exe 파일을 실행 하여 위 그림과 같이 ① 아이콘을 클릭 합니다.



    파일 열기 대화 상자가 나타나면, 다운로드 받아 압축 해제 하였던 데비안의 img 파일이
    있는 경로로 이동 하여 파일을 선택 하고, ② 의 "저장(S)" 버튼을 클릭 합니다.



    "Write" 버튼을 클릭 합니다.



    선택된 장치에 이미지를 덮어 쓰겠다는 일종의 경고 메세지.
    이미지가 기록될 장치를 다시 확인 하고 "Yes" 버튼을 클릭 한다.



    이미지가 미디어에 써지는 동안 기다린다.



    이미지가 모두다 기록 되었다. "OK" 버튼을 클릭 하여 마무리 한다.


    라즈베리 파이에 메모리를 넣고 부팅 하면 된다.




[LiNuX] Raspberry Pi 에 방열판 장착




<Before>


 

<After>




<Detail>





[LiNuX] 라즈베리 파이(Raspberry Pi) 구동을 위한 준비물






Micro USB 5Pin : 전원 공급




HDMI Cable : 모니터에 화면 출력





HDMI To DVI Cable : DVI 모니터에 화면 출력(옵션)





Micro SD Card : 운영체제 설치(최소 2기가 이상)




가로 세로 8mm 방열판(옵션)





2012년 6월 28일 목요일

[LiNuX] /etc/profile 과 ~/.bash_profile



/etc/profile 은 시스템 전역에 대한 설정을 기록 하는 파일이다.

~/.bash_profile 은 개인 사용자에 대한 설정을 기록 하는 파일이다.


로그인을 하게 되면, /etc/profile 을 읽어 들이며, 그 뒤에 ~/.bash_profile 을 읽어 들인다.

간혹 ~/.bash_profile 에 export 되지 환경 변수들은 새로이 갱신이 되어 버리는 경우도 있

다. 이러한 경우 아래와 같이 export 로 환경 변수를 설정 하여 기존 설정을 마지막 부분에 


이어 붙여 준다.


예) export PATH = .:$JAVA_HOME/bin:$PATH

[LiNuX] WINE : WINdows Emulator





데비안 3.0 을 쓰던때에 wine  을 이용 하여 동작 시켜본 windows 용 어플리케이션



[EtC] 커서 스타일 : Cursor Style


이미지 출처 : 신의키스 홈페이지


<img src="test.jpg" style="cursor:hand">

[FuN] 명령이다 업계로 돌아오라


소프트웨어 개발자들은 귀환하라.

개발자들은 귀환하라.
업계는 애타게 기다린다.
밤샘 노가다도, 갑의 파견요구도
당신들의 귀환을 막을 수 없다.
업계 떠난 개발자들은 즉시 귀환하라.

치킨집 하고 있는 백과장, 즉시 돌아오라.
찜질방에서 빙수파는 오선임, 즉시 돌아오라.
해장국 팔고 있는 김차장, 즉시 돌아오라.
공방에서 공예가구 만들고 있는 김부장, 즉시 돌아오라.

호명된 개발자들은 즉시 돌아오라.
가게의 운영은 이제 그 분야 전문가들에게 맡기고
오로지 업계로 귀환하라.
이것이 그대들에게 IT업계가 부여한 마지막 명령이다.
모바일, SNS의 혁명에 그대의 피가 필요하다.

대한민국 IT를 보우하시는 신이시여,
구원하소서.
대한민국 SW를 구원하소서.

업계 떠난 우리 수천의 고급 개발자들을
치킨집 기름 곁에 외롭게 두지 마시고
온 업계가 기다리는 따뜻한 곳으로 돌아오게 하소서.
부디 그렇게 해 주소서.

[LiNuX] 리눅스 실제 사용중인 메모리













top 명령으로 확인해 보니, 전체 2GByte 의 메모리중에서 약 1.6GByte 를 사용 중이고, 약 380MByte
의 메모리가 사용 가능한 메모리로 
남아 있었다. 그렇지만, top 명령을 계속 보고 있었지만, 특별
히 메모리를 많이 사용 하는 프로세스는 없었다. 이것은 Linux 에서 사용할 수 있는 메모리를

OS Cache 로 잡아 두고 언제든 필요한 경우 사용 할 수 있도록 준비 해두기 때문 이라고  한다.










위 그림과 같이 free 명령으로 확인해 보면, 위 그림에서 붉은 영역과 같이 약 334MByte 의 사용중인
메모리와, 약 1.6GByte 사용 가능한 메모리를 
확인 할 수 있다. 사용중인 메모리를 확인 하고 싶다면,
free 명령을 사용 하면 된다. 



2012년 6월 25일 월요일

[LiNuX] 콘솔(Console : Run lavel 3) 의 해상도 설정



런레벨 3이라면 콘솔환경이라는 말씀이신데 콘솔에서 해상도 변경하는것은 프레임버퍼를 사용해주셔야합니다.


이 프레임버퍼가 커널에서 지원을 해야하는건데 대부분의 배포판이 커널컴파일시에 지원해놓으니 grub.conf에서 커널항목 맨 뒷부분에 해상도에 관련된 vga=0x317 같은 해상도를 넣어주면 됩니다.


[LiNuX] 리눅스 로그인 비밀번호 제거


# whoami
root

root 의 권한으로 /etc/passwd 파일을 수정 한다.

# vi /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
freecatz:x:500:500:myhome:/home/freecatz:/bin/bash

원래 /etc/passwd 의 파일에는 더 많은 사용자가 들어 있으나, 위에서는 예를 들기 위해 짧게 줄였다.

비밀번호를 제거 하고자 하는 계정을 찾아 붉은색으로 되어 있는 부분의 x 문자만 제거 하고 저장 한다.


예) freecatz 라는 사용자의 패스워드 제거
freecatz:x:500:500:freecatz:/home/freecatz:/bin/bash

위의 계정 freecatz 의 비밀번호를 제거 하고자 할 경우 아래와 같이 수정

freecatz::500:500:freecatz:/home/freecatz:/bin/bash

저장 후 종료. freecatz 유저는 비밀번호 없이 login 프롬프트에서 freecatz 만 넣고 엔터를 치면 시스템에 바로 로그인이 가능 하다.


아래는 구조...
freecatz  :             x                          :  500 : 500 :    freecatz   :   /home/freecatz   :/bin/bash
사용자ID : shdow passwd 사용 :  GID : UID : 사용자 이름 : 사용자 홈디렉토리 : 기본셸

[LiNuX] script 명령으로 원격 콘솔 제어


우선 시스템에 누가 접속해 있는지 확인.

# w
 14:23:55 up 6 days, 20:50,  3 users,  load average: 0.00, 0.00, 0.00
USER        TTY         FROM                LOGIN@      IDLE      JCPU     PCPU     WHAT
root          pts/1      192.168.0.10          Tue09        0.00s     0.19s    0.00s          w
root          pts/2      1**.***.***.***        Tue09        1:25m    0.06s    0.00s     man open
freecatz    pts/3     1**.***.***.***        12:09         40:22     0.00s    0.00s      -bash

제어를 하고자 하는 사용자의 TTY 를 알아 내도록 한다.

# script /dev/pts/3
Script started, file is /dev/pts/3


상대방의 콘솔 화면에는 아래와 같은 메세지가 뿌려진다.

[freecatz@localhost ~]$
Script started on 2009년 02월 12일 (목) 오후 02시 31분 22초


이제 부터 내가 타이핑 명령과 결과가 양쪽 화면에 전달이 된다.


제어를 마치고 싶다면, exit 명령으로 종료 하도록 한다.


내 화면에는 아래와 같은 메세지가 뿌려지며 script 명령이 종료 되었음을 알리고,
exit
Script done, file is /dev/pts/3


상대방의 화면에는 아래와 같은 메세지로 script 명령의 종료를 알린다.
exit
Script done on 2009년 02월 12일 (목) 오후 02시 38분 30초

[LiNuX] 콘솔의 비프(beep) 음을 끄자



1. 모든 상황에서 비프음 끄기

    만약 리눅스 콘솔화면이라면 아래와 같은 방법으로 비프음을 끌 수 있다.

    $ setterm -blength 0


    소리를 끄지는 않고 아주 작은 소리로  하고 싶다면,

    $ setterm -bfreq 10



2. X Window에서 끄기

    X 환경에서 끄고 싶다면 다음과 같은 방법을 사용해야 합니다.

    $ xset b off



3. 현재 쉘에서만 비프음 끄기

    현재 사용하고 있는 쉘에서만 비프음을 끄기 위해서는 다음과 같은 방법을 사용한다.
    Bash를 사용하는 경우 /etc/inputrc에 다음을 추가 한다.
 
    set bell-style none

    Tcsh을 사용하는 경우 .tcshrc에 다음을 추가 한다.

    set nobeep = 1




[LiNuX] vi 에디터 스왑(swap) 파일로 원본 파일 복구




$ vi -r .test.txt.swp


swp 파일이 남아 있는 경우 -r 옵션을 이용 하여 파일 내용 복구 가능 하다.


[LiNuX] bash shell 기초


#/bin/bash

# 아래는 로그나 파일이름 등에 사용할 현재 시간 구하기.
today="$(date '+%Y.%m.%d')"
echo $today;

nowTime="$(date '+%H:%M:%S')"
echo $nowTime;


# 아래는 내용이 있는 파일을 만드는 경우. 변수 이용 가능.
cat > ./test.txt << "EOF"
This is Test Message...
EOF


# 아래는 특정  파일이 있는지 확인 하는 조건문.
if [ ! -f test ]; then
 echo "test file not fount";
fi


# 아래는 temp 디렉터리가 있는지 확인 하고 없는 경우 해당 내용 실행 하는 조건문.
if [ ! -d temp ]; then
 echo " temp Directory not fountd!";
 mkdir temp
fi

[LiNuX] SSH 의 포트 변경 및 root 접속 금지


실제로 root 유저로 sshd 에 접속을 하기 위한 시도가 빈번히 일어 나고 있어, 이에 sshd 의 접속 포트 변경과 root 접속을 막기로 하였다.

[root@localhost ~]# cat /var/log/secure | grep -i "Failed" | grep -i "root"

[root@localhost ~]# vi /etc/ssh/sshd_config


#sshd 의 접속 포트 변경
#Port 22

위의 부분에 주석을 해제 하고, 아래와 같이

Port 8025

원하는 포트 번호로 변경 한다.

※ 단, iptables 에서 해당 포트를 사용 할 수 있도록 설정 해야 한다.


#sshd 의 root 접속 불가능
#PermitRootLogin yes

위의 부분에 주석을 해제 하고, 아래 처럼

PermitRootLogin no

로 변경 하도록 한다.

위의 모든 변경 사항을 적용 하기 위해서는 sshd 를 재시작 하여야 한다.

[root@localhost ~]# /etc/init.d/sshd restart

[LiNuX] vi 에서 ^M 제거








위 그림 처럼 DOS 나 Windows 에서 작성된 텍스트 파일에 개행 문자가 나타나는 경우가 있다. 
눈에 거슬리기도 하고 편집시 문제가 있을수 있기 때문에 제거 해야 겠다.




































^M 을 그대로 입력 하면 vi 편집기 에서 바꿀 패턴을 찾을 수 없다고 한다.
vi 에디터의 명령 모드 상태에서 아래의 명령을 입력 하자.

%s/ L_Control + V, L_Control + M $//g 








^M 문자가 일괄적으로 교체 되었다. 이제 문서 편집...


[LiNuX] 삼성 Q1에 올라간 리눅스



예전에, 회사일로 삼성 Q1 제품에 리눅스를 올렸던 적이 있다. Q1 발열이 심했던 기억이...

[LiNuX] xwd 명령을 이용 하여 스크린 캡처


xorg-x11-apps 에 포함된 xwd 명령으로 화면을 캡처 할 수 있다.

$ xwd -root -out screen.xwd

디지털 시대에 맞게 xwd 파일을 수작업으로 GIMP 등을 이용하여 포멧을 변경 해도 되고, netpbm-progs 에 포함된 xwdtopnm 명령과 nmtopng 명령을 이용하여 아래의 명령으로 한번에 png 포멧으로 변경 할 수 있다.

$ xwd -root | xwdtopnm | pnmtopng > screen.png

콘솔에서만이 아닌, X-Window 상에서도 동일 하게 스크린샷을 찍을 수 있다.



<데비안 3.0 에서 xwd 를 이용하여 화면 캡처>

[LiNuX] 라즈베리 파이(Raspberry Pi) 도착





4월에 구매 했는데, 벌써 도착 했다. 이제 HDMI 와 Micro USB 전원 케이블을 구매 하면 끝.








제품의 스펙은 위의 그림과 같다.






D.I.Y 케이스도 있다고 한다. [ PDF 보기 ]