블로그 이미지
훅크선장

카테고리

분류 전체보기 (362)
사진이야기 (23)
펭귄컴퓨팅 (121)
컴퓨터보안 (84)
절름발이 프로그래머 (59)
하드웨어개조 (23)
멀알려줄까 (35)
홈베이킹&홈쿠킹 (2)
잡다한것들 (15)
Total
Today
Yesterday

달력

« » 2024.5
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

공지사항

태그목록

최근에 올라온 글

최근 RF 해킹에 관심을 가지게 되어서, HackRF One 장비를 구입했습니다.

외국 문헌에 사용방법이 많이 나와있는데, 저는 가능하면 칼리 리눅스 Kali Linux 2.0을 선호해서, 여기서 사용할 수 있는 방법을 정리해봤습니다.


이미 칼리 리눅스 Kali Linux 2.0 에는 HackRF와 관련된 모든 설치와 

셋팅이 되어 있습니다. 그냥 사용하시면 됩니다.

GNU Radio를 바로 쓰면 됩니다.


다만, 매번 장비를 꽂고나서 반드시

# rmmod hackrf

명령어를 실행시켜야만 합니다. 그래야 정상적으로 장비가 커널에서 인식이 됩니다.


HackRF one에 관련된 정보는 https://greatscottgadgets.com/hackrf/ 를 참고하시면 됩니다.



쉽게 풀어 말하면, 소프트웨어로 조종할 수 있는 전파장비 Radio 입니다. SDR 즉, Software Defined Radio.


GNU Radio라는 훌륭한 프로젝트가 있기 때문에, 우리는 이것을 이용하면 됩니다. 다만, 우리의 칼리 리눅스 2.0에서는 다음과 같이 몇 가지 설치가 필요합니다.

먼저 칼리 리눅스 2.0 한글판으로 부팅합니다. LXDE, Gnome 버전이나 XFCE 윈도우 매니저 버전에서도 동일하게 잘 동작합니다. XFCE, LXDE 윈도우 매니저 버전에서는 아주 잘 동작하는 것을 직접 확인하였습니다.


참고 : Pentoo Linux를 LiveCD로 그냥 사용하는 방법도 있습니다만, Pentoo 리눅스의 작업환경이 일반적인 Debian 이나 Ubuntu 환경과 조금? 다른 Gentoo 리눅스 기반이라서, 명령어나 설치등에 차이로 불편이 많습니다. Pentoo 리눅스를 쓰는 것도 나쁘지는 않습니다. 익숙해지기 전까지 조금 불편할 뿐이죠!


1. 설치를 위해서 컴파일 도구 및 라이브러리의 사전 설치

# apt-get update

# apt-get install git build-essential cmake libusb-1.0-0-dev liblog4cpp5-dev libboost-dev libboost-system-dev libboost-thread-dev libboost-program-options-dev swig gnuradio-dev libvolk-dev
# apt-get install gnuradio gnuradio-dev gr-iqbal

# sync


패키지 설치를 위한 소스 컴파일용 디렉토리를 생성
# cd ~
# mkdir sdr
# cd sdr


hackrf 기존 패키지 제거

# dpkg -r --ignore-depends=gqrx,kali-linux-full,kali-linux-sdr  hackrf

# dpkg -r --ignore-depends=gqrx,kali-linux-full,kali-linux-sdr,gr-osmosdr,libgnuradio-osmosdr0.1.3  libhackrf0


2. hackrf  패키지를 소스로 컴파일 후,  설치
# git clone https://github.com/mossmann/hackrf.git
# cd hackrf/host/
# mkdir build && cd build
# cmake ../ -DINSTALL_UDEV_RULES=ON
# make
# make install

# ldconfig


root@kali:~/sdr/hackrf/host/build# make install
[ 11%] Built target hackrf
[ 22%] Built target hackrf-static
[ 33%] Built target hackrf_cpldjtag
[ 44%] Built target hackrf_info
[ 55%] Built target hackrf_max2837
[ 66%] Built target hackrf_rffc5071
[ 77%] Built target hackrf_si5351c
[ 88%] Built target hackrf_spiflash
[100%] Built target hackrf_transfer
Install the project...
-- Install configuration: ""
-- Up-to-date: /usr/local/lib/pkgconfig/libhackrf.pc
-- Up-to-date: /etc/udev/rules.d/53-hackrf.rules
-- Up-to-date: /usr/local/lib/libhackrf.so.0.4.0
-- Up-to-date: /usr/local/lib/libhackrf.so.0
-- Up-to-date: /usr/local/lib/libhackrf.so
-- Up-to-date: /usr/local/lib/libhackrf.a
-- Up-to-date: /usr/local/include/libhackrf/hackrf.h
-- Up-to-date: /usr/local/bin/hackrf_max2837
-- Up-to-date: /usr/local/bin/hackrf_si5351c
-- Up-to-date: /usr/local/bin/hackrf_transfer
-- Up-to-date: /usr/local/bin/hackrf_rffc5071
-- Up-to-date: /usr/local/bin/hackrf_spiflash
-- Up-to-date: /usr/local/bin/hackrf_cpldjtag
-- Up-to-date: /usr/local/bin/hackrf_info

3. GNU Radio 관련 패키지 설치


기존 gr-osmosdr 패키지 제거


# dpkg -r --ignore-depends=gqrx,kali-linux-sdr gr-osmosdr libgnuradio-osmosdr0.1.3


4. osmocom 패키지를 소스로 컴파일 후,  설치
# cd ~/sdr

git clone git://git.osmocom.org/gr-osmosdr
# cd gr-osmosdr/
# mkdir build && cd build
# cmake ../
# make
# make install
# ldconfig


root@kali:~/sdr/gr-osmosdr/build# make install
[ 41%] Built target gnuradio-osmosdr
[ 41%] Built target osmosdr_swig_swig_doc
[ 44%] Built target _osmosdr_swig_swig_tag
[ 51%] Built target osmosdr_swig_swig_2d0df
[ 55%] Built target _osmosdr_swig
[ 62%] Built target pygen_swig_6ab6b
[ 68%] Built target pygen_python_0fe8f
[ 79%] Built target osmosdr_grc_xml_blocks
[ 86%] Built target pygen_apps_05ff6
[100%] Built target pygen_apps_5ca0e
Install the project...
-- Install configuration: "Release"
-- Up-to-date: /usr/local/lib/pkgconfig/gnuradio-osmosdr.pc
-- Up-to-date: /usr/local/include/osmosdr/api.h
-- Up-to-date: /usr/local/include/osmosdr/pimpl.h
-- Up-to-date: /usr/local/include/osmosdr/ranges.h
-- Up-to-date: /usr/local/include/osmosdr/time_spec.h
-- Up-to-date: /usr/local/include/osmosdr/device.h
-- Up-to-date: /usr/local/include/osmosdr/source.h
-- Up-to-date: /usr/local/include/osmosdr/sink.h
-- Up-to-date: /usr/local/lib/libgnuradio-osmosdr.so.0.1.5git
-- Up-to-date: /usr/local/lib/libgnuradio-osmosdr.so
-- Up-to-date: /usr/local/lib/python2.7/dist-packages/osmosdr/_osmosdr_swig.so
-- Up-to-date: /usr/local/lib/python2.7/dist-packages/osmosdr/osmosdr_swig.py
-- Up-to-date: /usr/local/lib/python2.7/dist-packages/osmosdr/osmosdr_swig.pyc
-- Up-to-date: /usr/local/lib/python2.7/dist-packages/osmosdr/osmosdr_swig.pyo
-- Up-to-date: /usr/local/include/osmosdr/swig/osmosdr_swig.i
-- Up-to-date: /usr/local/include/osmosdr/swig/osmosdr_swig_doc.i
-- Up-to-date: /usr/local/lib/python2.7/dist-packages/osmosdr/__init__.py
-- Up-to-date: /usr/local/lib/python2.7/dist-packages/osmosdr/__init__.pyc
-- Up-to-date: /usr/local/lib/python2.7/dist-packages/osmosdr/__init__.pyo
-- Up-to-date: /usr/local/share/gnuradio/grc/blocks/rtlsdr_source.xml
-- Up-to-date: /usr/local/share/gnuradio/grc/blocks/osmosdr_source.xml
-- Up-to-date: /usr/local/share/gnuradio/grc/blocks/osmosdr_sink.xml
-- Up-to-date: /usr/local/lib/python2.7/dist-packages/osmosdr/osmocom_siggen_base.py
-- Up-to-date: /usr/local/lib/python2.7/dist-packages/osmosdr/osmocom_siggen_base.pyc
-- Up-to-date: /usr/local/lib/python2.7/dist-packages/osmosdr/osmocom_siggen_base.pyo
-- Up-to-date: /usr/local/bin/osmocom_fft
-- Up-to-date: /usr/local/bin/osmocom_siggen
-- Up-to-date: /usr/local/bin/osmocom_siggen_nogui
-- Up-to-date: /usr/local/bin/osmocom_spectrum_sense


4. gqrx  패키지를 소스로 컴파일 후,  설치
# cd ~/sdr

git clone https://github.com/csete/gqrx.git
# cd gqrx/
# mkdir build && cd build

주의: 여기서는 cmake가 아니라, qmake 를 사용
# qmake ../
# make
# make install
# ldconfig


5. rtl-sdr 패키지를 소스로 컴파일 후,  설치
# cd ~/sdr
# git clone git://git.osmocom.org/rtl-sdr.git
# cd rtl-sdr/
# mkdir build && cd build
# cmake ../ -DINSTALL_UDEV_RULES=ON
# make
# make install
# ldconfig


6. gr-osmosdr 에서 만들어진 gnuradio용 블럭정의 파일을 사용하기 위해서, 정해진 위치로 복사
# cd
# cd /usr/local/share/gnuradio/grc/blocks/
# cp *.xml /usr/share/gnuradio/grc/blocks/
# cd /usr/share/gnuradio/grc/blocks/



7. GNU Raido Companion 프로그램을 실행해서, 사용
# cd
# gnuradio-companion &






Posted by 훅크선장
, |

OpenWRT를 사용하다보면, USB 디스크 또는 메모리를 usb 포트에 꽂아서 마운트해서 사용하는데,

매번 시스템이 재시작될 때마다, 마운트를 다시 해주어야 하는 불편함이 있다.

왜냐하면, 기존에는 USB 디스크나 메모리의 파티션이 자동으로 디바이스로 인식되어서, 디바이스 명이 /dev/sda1 형태로 되어야만,

# mount /dev/sda1 /mnt

와 같이 명령어로 써야된다.


근데, 디바이스명은 가끔 부팅될때마다 달라질 수 있기 때문에 한계가 있었다.


최근에 OpenWRT 기능을 둘러보면서, 자동 마운트 방법을 알게 되었다.


root@HomeRouter:/etc/config# block info

/dev/mtdblock2: UUID="7f2dadbc-6ae00ebb-ea880768-13b88c63" VERSION="4.0" TYPE="squashfs"

/dev/mtdblock3: TYPE="jffs2"

/dev/sda1: UUID="db459e28-c32b-4f16-8dc1-2edee96031c2" NAME="EXT_JOURNAL" VERSION="1.0" TYPE="ext4"

root@HomeRouter:/etc/config# 


먼저 위와 같이, block info 라는 명령어로 USB  디스크의 UUID를 알아낸다.


그리고,

/etc/config/fstab 에 가서 다음과 같이 추가한다.

# vi /etc/config/fstab

...

중략

...

config mount

              option uuid 'db459e28-c32b-4f16-8dc1-2edee96031c2'

              option enabled '1'

              option target '/mnt'


그러면, UUID를 'db459e28-c32b-4f16-8dc1-2edee96031c2'로 가진 디바이스가 항상 /mnt 디렉토리로 자동 마운트가 된다.



그냥 아주 쉽게, LUCI 웹 인터페이스에서 메뉴 System -> Mount Points 에 들어가면, 설정할 수도 있다.




Posted by 훅크선장
, |

칼리 리눅스를 한글화된 버전으로 만드는 방법을 공개합니다.

백트랙 리눅스에서 칼리 리눅스로 발전하면서, DVD 커스터마이징은 Live-Build 라는 도구를 이용하여 만들 수 있습니다.


다음은 언제든 업데이트된 상태로 자신만의 칼리리눅스 또는 데비안 리눅스의 Live 버전을 만들어내는 방법이라고도 할 수 있습니다.

많이들 이용하셔서, 자신만의 칼리 리눅스 한글화 버전을 만드시기 바랍니다.


--------------------------------------------------------------------------------------------------------------------------


1. 사전준비 


1) 먼저 칼리 리눅스 2.0 영어 원본을 구합니다.

https://www.kali.org/downloads/

에서 다운로드 받을 수 있습니다.


2) 칼리 리눅스를 설치합니다. (실제 컴퓨터면 더 좋겠습니다만, VMware 같은 가상 PC 환경도 상관없습니다.)

다만, 우리는 새로운 DVD ISO 파일을 생성해야 하기때문에, 칼리리눅스 운영체제를 제외하고, 하드디스크 공간이 적어도  10GB 가 필요할 것입니다. 

(굳이 설치를 하지 않고, Live 부팅 상태에서도 가능합니다만, 이 경우에는 리눅스 ext4 파일시스템을 만들고, 포맷해서 mount 하는 과정을 할 수 있어야 합니다. 리눅스를 사용한 경험이 필요합니다.  리눅스 전문가는 설치가 굳이 필요없을 것입니다. 여러분이 리눅스 초보자라면, 설치를 권장합니다.)

설치에 관련된 내용은 아래 링크들에서 찾을 수 있습니다. 인터넷 검색으로 “칼리 리눅스 설치”를 찾으시면 될 것입니다.

http://bigsecurity.tistory.com/3

http://cherub.sungkyul.edu/~web/jinboard/files/122_Kali-Linux%20%20insatll.pdf


한글 환경후에 설치했는데, 한글이 안보일때는, 아래 링크를 보고 해결하시면 됩니다.

http://lureout.tistory.com/573


상용 VMware 가 아닌, 무료 VirtualBox 버추얼박스 가상머신에서 칼리 리눅스를 설치하는 법도 있습니다. 참고하시기 바랍니다.

http://blog.naver.com/agboy/220545961824


3) 반드시, 인터넷에 연결되어 있어야 합니다. 가능하면 빠른 인터넷 속도가 좋습니다. (여러분 집에서 쓰는 ADSL 정도 수준이면 충분합니다.)

Live-Build는 인터넷상에서 모든 패키지 파일들을 다운받아오기 때문에, 인터넷 속도가 중요합니다. 

제 경험상 한번 빌드가 시작되면, 2시간 정도 걸립니다. 빌드 명령이 내려지고 나면, 인터넷 속도와 시스템 속도에 따라 2~3시간이 걸릴 것으로 예상됩니다. 그래서, 한번의 실수는 2~3시간의 낭비가 발생합니다만, 어쪌 수 없습니다. 

(저는 항상 칼리리눅스 한글화를 i7 CPU를 장착한 윈도우즈 컴퓨터에서 VMware  가상 환경으로 생성합니다. 가상 환경에서 램은 4GB, 하드디스크는 40GB 정도를 잡고 있습니다. 참고하시기 바랍니다.)


2. Live-Build 패키지 설치하기

설치된 칼리 리눅스 또는 Live 상태의 칼리 리눅스로 부팅한 다음, 터미널 창을 하나 열고 시작합니다.

(인터넷 브라우저를 하나 열고, 여기 제 블로그에 접속해서, 명령어들을 하나씩 Copy & Paste 로 참조하는 것이 좋은 팁입니다.  명령어를 직접 타이핑하는 것보다는 실수가 줄어들 수 있습니다.)


1) 설치 패키지 목록을 최신으로 업데이트합니다.

root@kali:~#  apt-get update


2) 커스텀 빌드에 필요한 패키지 설치

root@kali:~#  apt-get install live-build apt-cacher-ng


3. 칼리 리눅스를 커스텀 빌드하기 위한 설정


1) 커스텀 빌드를 위한 디렉토리 이동후, 칼리리눅스의 기본 템플릿 가져오기 

(여기서는 /mnt 디렉토리를 빌드용으로 사용합니다. 다른 디렉토리를 선택해도 무방합니다.)

root@kali:~#  cd /mnt

root@kali:/mnt# git clone git://git.kali.org/live-build-config.git


2) 한글 로케일과 키보드 레이아웃을 설정하기

root@kali:/mnt# cd /mnt/live-build-config/auto

root@kali:/mnt/live-build-config/auto# vi config

...

                --bootappend-live "boot=live username=root hostname=kali" \

...


이 부분을 다음과 같이 수정하고 저장합니다.

...

                --bootappend-live "boot=live noconfig=sudo username=root hostname=kali ignore_uuid locales=ko_KR.UTF-8 keyboard-layouts=kr keyboard-variants=alt-intl" \

...


config 파일을 수정할 때는 정말 진짜로 너무나도 주의를 기울여야 합니다. 원래 칼리 개발팀은 이 파일을 절대로 손대지 말라고 경고하고 있습니다. 그러나, 이 파일을 수정해야만 한글판을 만들 수 있습니다. 최대한 실수를 하지 않도록, 확인하고 또 확인해서 수정하시기 바랍니다.


3) 한글화를 위한 폰트와 입력기, 그리고 추가 패키지 설정하기

한글화를 위해 반드시 필요한 패키지들과 추가적인 패키지들의 목록을 만들어 줍니다. 그 목록이 들어가는 파일명은 mypackages.chroot.list 입니다.

root@kali:/mnt/live-build-config/auto# cd /mnt/live-build-config/kali-config/common/package-lists

root@kali:/mnt/live-build-config/kali-config/common/package-lists# vi mypackages.chroot.list

nabi

libhangul-data

libhangul1

fonts-unfonts-core

fonts-unfonts-extra

im-config

iceweasel

iceweasel-l10n-ko

icedove

icedove-l10n-ko

wicd-gtk

lynx

mc

armitage

etherape

gdebi

gtk-recordmydesktop

recordmydesktop

remmina

htop

nethogs

filezilla

filezilla-common

tor

unace

rar

unrar

p7zip

zip

unzip

p7zip-full

p7zip-rar

file-roller

flashplugin-nonfree

open-vm-tools

open-vm-tools-dbg

open-vm-tools-desktop

open-vm-tools-dev

open-vm-tools-dkms


칼리 1.1.0 버전 이전까지는 mypackages.chroot.list  파일의 위치가 /mnt/live-build-config/config/package-lists/ 였습니다. 이 위치를 그냥 사용해도 됩니다만, 가능하면 새롭게 바뀐 /mnt/live-build-config/kali-config/common/package-lists/ 에 생성하시기 바랍니다.


저는 한글입력기로 nabi 를 선호하고, 한글 폰트는 은폰트를 선호하기 때문에, mypackages.chroot.list  파일에 그 패키지들의 이름을 넣었습니다. 만약 다른 입력기나 다른 한글 폰트를 좋아하시면 바꾸시면 됩니다. 

위 mypackages.chroot.list  파일의 내용을 천천히 보시면, 제가 추가한 패키지들의 성격을 알 수 있습니다. 저는 가상 환경은 선호하기 때문에, 가상환경에 필요한 open-vm-tools 패키지들을 추가하고 있습니다.


4) 한글 입력기의 설정을 위한 자동 스크립트 작성하기

앞에서 한글 입력기 nabi를 위한 패키지를 추가했습니다만, 패키지가 설치되었다고 바로 입력기를 쓸 수 있는 것이 아닙니다. 입력기가 디폴트로 설정될 수 있도록 하는 명령어를 실행해야 합니다. 이 과정은 Live-Build 에서 hook 이라고 하는 과정을 이용해서 완성합니다. hook 이라는 쉘 스크립트를 작성해서 추가하면, Live-Build가 수행되는 과정중에 ISO 만들어지기 전에 스크립트를 실행시켜줍니다. 

이 hook 기능을 사용하기 위해서, 한글입력기 설정을 위한 쉘 스크립트를 작성합니다.

root@kali:/mnt/live-build-config/kali-config/common/package-lists# cd /mnt/live-build-config/kali-config/common/hooks

root@kali:/mnt/live-build-config/kali-config/common/hooksvi 0500-enable-hangul-xim.hook.chroot 

#!/bin/bash

# Enable hangul-xim setting to use nabi

im-config -n hangul


위와 같이, 쉘스크립트 내용을 작성해서 저장한 다음, 쉘스크립트가 실행될 수 있도록 실행권한을 줍니다.

root@kali:/mnt/live-build-config/kali-config/common/hooks# chmod 755 0500-enable-hangul-xim.hook.chroot 


5) 기타 설정파일을 추가하기 또는 임의의 파일을 Live 파일시스템에 추가하기(이 과정은 필수적이지는 않습니다, 필요할 때 사용하면 됩니다. 필요없다면, 건너뛰어도 상관없습니다.)

칼리 리눅스가 Live 상태로 부팅되었을 때, 그 파일시스템에 특정한 설정파일 또는 임의의 파일이 필요한 경우가 있습니다. 저에게는 대표적으로  기존에 존재하는 /root/.bashrc 파일이 원하는 대로 수정된 상태로 필요하며, 세벌식 자판을 nabi 입력기에서 디폴트 설정이 되도록 하기 위해서 필요할 수도 있습니다. 이런 임의의 파일이 Live 부팅된 파일시스템에 존재하도록 하기 위해서는 /mnt/live-build-config/kali-config/common/includes.chroot/ 디렉토리 하위에 리눅스 파일시스템과 동일한 디렉토리 구조를 만들고, 파일을 생성·추가해주면 됩니다. 그러면, DVD ISO가 부팅되자마자, 해당 파일들이 파일시스템쪽으로 복사되게 됩니다.

저는 예로 /root/.bashrc 파일내에 alias ll='ls -la' 내용을 수정하고, /root/.nabi/config 파일을 추가합니다.

root@kali:/mnt/live-build-config/kali-config/common/hooks# cd /mnt/live-build-config/kali-config/common/includes.chroot

root@kali:/mnt/live-build-config/kali-config/common/includes.chroot# cd root

root@kali:/mnt/live-build-config/kali-config/common/includes.chroot/root# cp /root/.bashrc .

root@kali:/mnt/live-build-config/kali-config/common/includes.chroot/root# vi .bashrc

...

#alias ll='ls -l'

...

위 내용을 아래와 같이 수정합니다.

...

alias ll='ls -la'

...


그러면, bash 환경에서 ll 이라는 단축 명령어를 사용할 수 있게 됩니다.

root@kali:/mnt/live-build-config/kali-config/common/includes.chroot/root# mkdir .nabi

root@kali:/mnt/live-build-config/kali-config/common/includes.chroot/root# cd .nabi

root@kali:/mnt/live-build-config/kali-config/common/includes.chroot/root/.nabi# vi config

xim_name=nabi

x=0

y=0

show_palette=false

palette_height=24

use_tray_icon=true

theme=Jini

hangul_keyboard=2

latin_keyboard=none

keyboard_layouts=keyboard_layouts

triggerkeys=Hangul,Shift+space

offkeys=Escape

candidatekeys=Hangul_Hanja,F9

output_mode=syllable

default_input_mode=direct

input_mode_scope=per_toplevel

preedit_font=Sans 9

preedit_foreground=#000000

preedit_background=#FFFFFF

candidate_font=Sans 14

candidate_format=hanja

dynamic_event_flow=true

commit_by_word=false

auto_reorder=true

use_simplified_chinese=false

hanja_mode=false

ignore_app_fontset=false

use_system_keymap=false


기본 nabi의 config 설정파일을 직접 만들어줍니다. 

세벌식 최종을 디폴트로 설정해서 사용하고 싶다면, 위 config 파일 내용에서 hangul_keyboard=2 부분의 숫자 2를 3f로 수정합니다. 세벌식 390 자판 사용자는 390 이라고 설정하면 됩니다. (hangul_keyboard=3f  또는 hangul_keyboard=390 으로 수정합니다.)


4. 칼리리눅스 빌드하기

설정이 완료되었으면, 이제 칼리리눅스를 최신판으로 빌드합니다.

먼저 빌드할 수 있는 디렉토리로 이동합니다.

root@kali:/mnt/live-build-config/kali-config/common/includes.chroot/root/.nabi# cd /mnt/live-build-config

빌드를 기본 스크립트를 다음과 같이 그냥 실행하면,

root@kali:/mnt/live-build-config# ./build.sh

현재 시스템 구조(i386 또는 amd64 CPU 환경)와 동일하고, 디폴트 X-Window 매니저인 gnome으로 커스텀 DVD ISO가 /mnt/live-build-config/images 디렉토리에 생성됩니다. (빌드되는 동안의 로그도 .log 텍스트 파일로 동일한 디렉토리에 생성됩니다. 화면에는 아무것도 표시되지 않습니다.)

그러나, 원하는 커스텀 DVD ISO를 빌드하는 옵션을 다음과 같이 줘서, build.sh 스크립트를 실행하는 것이 좋습니다.

root@kali:/mnt/live-build-config# ./build.sh --arch [CPU 타입] --distribution [배포판 이름] --variant [X-Window 매니저 종류] --verbose


마지막의 --verbose 옵션은 화면에 빌드되는 로그가 표시되도록 합니다. 물론 로그파일은 생성됩니다.

CPU 타입은 i386 또는 amd64 로 지정할 수 있습니다. 32bit 버전인가  64bit 버전인가를 선택합니다.

배포판 이름은 sana 를 쓰면 됩니다. 칼리리눅스 2.0의 배포판 이름이 sana 입니다.

X-Windows 매니저 종류는 정확하게는 칼리 리눅스의 종류를 지정하는 것입니다만, 종류가 X-Window 매니저를 기준으로 가장 잘 구분되기 때문에 이렇게 표현하였습니다. X-Windows 매니저 종류는 디폴트 설정인 gnome 부터, 1.1.0버전까지 디폴트 매니저였던 xfce, 그리고 kde, moto, e17, i3wm, light, lxde, mate 같은 종류가 다양하게 있습니다.

제 경험으로 한글화가 되는 것은 gnome, xfce, lxde 세 종류뿐입니다. 


예로, 64bit용 xfce 버전을 만들고 싶으면, 명령어는 다음과 같습니다.

root@kali:/mnt/live-build-config# ./build.sh --arch amd64 --distribution sana --variant xfce --verbose

만약 32bit용 lxde 버전을 만들고 싶으면, 명령어는 다음과 같습니다.

root@kali:/mnt/live-build-config# ./build.sh --arch i386 --distribution sana --variant lxde --verbose


이상입니다.

앞에서 알려드렸듯이, 이 과정으로 얼마든지 자기만의 칼리 리눅스를 만들어낼 수 있습니다. 많이 응용해서 사용하시기 바랍니다.






Posted by 훅크선장
, |

최근 2주일 동안, 마음을 다잡고 열심히 노력해서, 드디어 한글화에 성공하였습니다.

현재 X윈도우 매니저를 여러 종류(XFCE, GNOME, LXDE)로 해서 64bit와 32bit로 각각 Build하는 중입니다. 빌드되는 대로, 계속 업데이트할 예정입니다.

※ KDE 버전은 한글화가 안되는 문제점이 발생되어, 너무 어려워서 한글화하지 않을 예정입니다. 대신 XFCE, LXDE를 써보시기를 권장드립니다. XFCE는 이전 Kali 1.1.0까지 디폴트 X윈도우 매니저이었습니다. LXDE는 저도 이번에 봤는데, 매우 깔끔한 인터페이스입니다.

※ 32bit 는 계속 빌드중입니다.  XFCE나 LXDE가 X윈도우 매니저중에서는 가볍고 좋습니다. GNOME는 좀 무겁습니다.


이전의 1.0.9a와 마찬가지로, 필요한 몇 개의 패키지만을 추가하였습니다. 


예전까지 Kali는 배포판을 버전으로만 부르다가, 2.0버전부터는 배포판에 별명을 붙이기 시작했습니다. 마치 데비안 배포판이 하는 방식인데, Kali 2.0은 sana라고 불립니다.

그래서 저도 이번에는 특별히 한글화된 2.0 버전에 별명을 붙였습니다. 제가 사랑하는 가족중의 한명인 제 할머니의 법위와 법명(선타원 황정도화)을 참고하여 별명을 붙여서 배포합니다. 2015년 2월 1일에 열반에 드신 제 할머니의 법명이신 정도화(jungdowha)를 이번 한글화된 칼리 리눅스 2.0의 별명으로 사용합니다.(앞으로 계속 별명을 사용할 지는 고민해보렵니다.)



배포방식은 이전과 동일하게, FTP 하나 입니다. FTP 패스워드만 퀴즈로 풀면 됩니다.


※ 11월 1일에 처음 올렸던 ISO 파일들에서 일부 설정을 추가하였습니다. 64bit gnome과 xfce를 11월 3일에 다시 올렸습니다. 혹시 11월 3일 이전에 64bit gnome과 xfce버전의 ISO 파일을 받으신 분들께서는 해쉬값을 검사해서, 다시 받으시기 바랍니다. (큰 설정 변화는 없습니다. 세벌식 자판 사용을 위한 설정파일과 alias ll='ls -la' 설정만 바뀌었습니다. 이전 ISO와 기본 기능상의 차이는 없습니다.


64비트 파일명(UTF-8, GNOME)은 kali-linux-2.0-jungdowha-amd64-ko-utf8-gnome.iso 입니다.

SHA-160     : 62c9c90ff58f73318fd9b3bfc781747e3a6caa17

MD5         :  9ecccf7ae63cf89b8ed2222363a0d7f4

GNOME버전에서 나비 입력기의 패널아이콘이 보이지 않는 문제가 있습니다만, 나비입력기는 잘 동작하므로, Shift+Space 키로 한글과 영문을 전환하시면 됩니다. 이 문제는 해결하도록 노력해 보겠습니다. 


혹시, 한글 3벌식을 쓰시는 분 계시면, 다음과 같이 nabi를 재시작하시면 됩니다.


터미널에서

# ps aux | grep nabi

해서 나오는, nabi의 프로세스 번호를 확인하신 후,

# kill -9  [nabi 프로세스 번호]

 해서, nabi를 일단 종료한 다음,


nabi의 config 설정파일을 수정합니다.

# vi /root/.nabi/config


hangul_keyboard=2

부분을

hangul_keyboard=3f

로 바꿉니다.  3f는 세벌식 최종을 의미합니다. 390자판을 쓰신다면, 3f를 390으로 바꿉니다.


설정이 완료되었으면, 

 # nabi & 

로 재시작하면 됩니다. 그러면, 한글이 세벌식 자판으로 입력됩니다.


64비트 파일명(UTF-8, XFCE)은 kali-linux-2.0-jungdowha-amd64-ko-utf8-xfce.iso 입니다.

SHA-160     : 3525d1374b6b910432702b9944dcd4fa62ad1d46

MD5         :  772eddd09c51d2a96dd8a04ed8234e81


64비트 파일명(UTF-8, LXDE)은 kali-linux-2.0-jungdowha-amd64-ko-utf8-lxde.iso 입니다.

SHA-160     : 60E5F648857776A9D9A861203C37F65D0F792541

MD5         :  5e860976994185b9f7131c9e0f4e24c0


32비트 파일명(UTF-8, GNOME)은 kali-linux-2.0-jungdowha-i386-ko-utf8-gnome.iso 입니다.

SHA-160     : 07b8cdfb66749bcc3f315a2c8f58dcc3902933a7

MD5         :  ded7590b7768766c18b29df5a9a64297


32비트 파일명(UTF-8, XFCE)은 kali-linux-2.0-jungdowha-i386-ko-utf8-xfce.iso 입니다.

SHA-160     : 7cbc42f7da85144c2a87004174fe445ad74db4b8

MD5         :  750da9b1ca63bd07660cb8c7422c173c


32비트 파일명(UTF-8, LXDE)은 kali-linux-2.0-jungdowha-i386-ko-utf8-lxde.iso 입니다.

SHA-160     : 0a722db414a2fe300a13726ebccce592399ca62c

MD5         :  ce0d419e7118ff7c60029a97eca7e670


다른 버전들도 있으니, 한꺼번에 받지 마시고, 필요한 것만 받아가시기 바랍니다.


FTP 서버: hook7346.ignorelist.com

FTP 포트: 21번

FTP 계정: kali109ako

FTP 패스워드는 퀴즈입니다. => 영문자판상태에서 한글로 치시면 됩니다.

1) 패스워드는 한글 4글자와 특수문자 1개로 구성되어 있습니다.

2) 패스워드의 첫 두 글자는 우리나라 문자 이름입니다. 이미 1) 문장에서 나온 단어입니다.

3) 패스워드의 세번째와 네번째 두 글자는 3.1절에 외치던 문장에 있는 두 글자입니다.

“대한 독립 OO”에서 OO에 들어가는 단어입니다.

4) 마지막에 들어가는 특수문자는 3)의 단어뒤에 자주 붙는 특수문자입니다. 느낌이 오시나요? (이거 자주 헷갈리시는데, 쩜은 아닙니다. 느낌입니다.)


다시한번 말씀드리지만, 영문자판상태에서 한글로 치시면 됩니다.

한글 4글자와 특수문자 1개로 구성되어 있습니다.(영문자로는 총 12글자입니다.)


퀴즈가 안풀리시는 분은 이전과 동일하게, 밑에 답글로 이메일주소 적어주시면, 이메일로 접속 정보와 패스워드 알려드립니다.


--------------------------------------------------------------------------------------------------------------


# GNOME 데스크탑 화면


# XFCE 데스크탑 화면


# LXDE 데스크탑 화면




Posted by 훅크선장
, |

새로운 한글화 버전을 배포중입니다. 이 블로그의 새글을 참조하시기 바랍니다.

http://hook.tistory.com/entry/Kali-Linux-20-DVD-%ED%95%9C%EA%B8%80%ED%99%94-%EB%B2%84%EC%A0%8464%EB%B9%84%ED%8A%B8-XFCE-%EB%B0%B0%ED%8F%AC


오랫만이지만, 좋은 소식은 아닙니다.


Kali Linux 2.0 DVD 한글화 베타버전(64비트)을 배포합니다.

베타버전인 이유는 한글화가 다 된 것이 아니라, 그냥 한글 입력을 위한 패키지만 추가했기 때문입니다.

한글화하기 위한 노력은 지금도?? 계속하고 있습니다만... 언제 완성될지는 잘 모르겠습니다. 죄송~!


아래의 베타버전은 한글 입력 패키지가 포함된 것이라서, 한글 입력은 가능합니다.

그러나, 화면의 메뉴등은 다 아직 영문입니다. 단지, nabi 입력기로 한글을 입력할 수 있습니다.


아래의 DVD iso 파일을 받아서, DVD 부팅하신 후에, 터미널을 하나 열고,

# im-config -s nabi

# im-config -c

한 다음,


입력기 설정화면에서 OK 한번, YES 한번을 바로 Enter 키로 선택하고,

select 화면에서 <*> hangul 을 선택하고, Enter 키로 마무리하면 됩니다.  (화면항목 이동은 화살표 키로 하고, 선택 ” 은 space 키로 합니다.)


그리고, 로그아웃(시스템 재시작이 아니고, root 로그아웃)을 한 다음에 다시 root로 로그인하면 됩니다.(패스워드는 toor 입니다.)


다시 로그인하면, shift+space 키로 한글을 입력할 수 있습니다.


--------------------------------------------------------------------------------------

혹시, 한글 3벌식을 쓰시는 분 계시면, 다음과 같이 nabi를 재시작하시면 됩니다.


터미널에서

# vi /root/.nabi/config


hangul_keyboard=2

부분을

hangul_keyboard=3f

로 바꾼다. 3f는 세벌식 최종을 의미합니다.


 # ps aux | grep nabi

해서 나오는, nabi의 프로세스 번호를 확인하신 후,

# kill -9  [nabi 프로세스 번호]

 해서, nabi를 종료한 다음,

 # nabi & 

로 재시작하면 됩니다. 그러면, 한글이 3벌식으로 입력됩니다.


64비트 파일명은 kali-linux-2.0-amd64-ko-beta.iso 입니다.



다른 버전들도 있으니, 한꺼번에 받지 마시고, 필요한 것만 받아가시기 바랍니다.

FTP 서버: hook7346.ignorelist.com
FTP 포트: 21번
FTP 계정: kali109ako

FTP 패스워드는 퀴즈입니다. => 영문자판상태에서 한글로 치시면 됩니다.
1) 패스워드는 한글 4글자와 특수문자 1개로 구성되어 있습니다.
2) 패스워드의 첫 두 글자는 우리나라 문자 이름입니다. 이미 1) 문장에서 나온 단어입니다.
3) 패스워드의 세번째와 네번째 두 글자는 3.1절에 외치던 문장에 있는 두 글자입니다.
“대한 독립 OO”에서 OO에 들어가는 단어입니다.
4) 마지막에 들어가는 특수문자는 3)의 단어뒤에 자주 붙는 특수문자입니다. 느낌이 오시나요? (이거 자주 헷갈리시는데, 쩜은 아닙니다. 느낌입니다.)

다시한번 말씀드리지만, 영문자판상태에서 한글로 치시면 됩니다.
한글 4글자와 특수문자 1개로 구성되어 있습니다.(영문자로는 총 12글자입니다.)

퀴즈가 안풀리시는 분은 이전과 동일하게, 밑에 답글로 이메일주소 적어주시면, 이메일로 접속 정보와 패스워드 알려드립니다.

Posted by 훅크선장
, |

OpenWRT에서도 Web Proxy를 운용할 수 있다는 것을 최근에 알게되어서...


다음의 링크들을 보고 설정하였음.


http://wiki.openwrt.org/doc/howto/proxy.tinyproxy

https://forum.openwrt.org/viewtopic.php?id=40631



1. 설치하기

# opkg update

# opkg install tinyproxy luci-app-tinyproxy


2. tinyproxy 설정하기

서비스 활성화 먼저 하고, 

# /etc/init.d/tinyproxy enable


설정파일을 다음과 같이,

# vi /etc/config/tinyproxy


config tinyproxy

    option User 'nobody'

    option Group 'nogroup'

    option Port '8888'

    option Timeout '600'

    option DefaultErrorFile '/usr/share/tinyproxy/default.html'

    option StatFile '/usr/share/tinyproxy/stats.html'

    option MaxClients '100'

    option MinSpareServers '5'

    option MaxSpareServers '20'

    option StartServers '10'

    option MaxRequestsPerChild '0'

    option ViaProxyName 'tinyproxy'

    list ConnectPort '443'

    list ConnectPort '563'

    option enabled '1'

    option FilterExtended '1'

    option Filter '/lib/uci/upload/cbid.tinyproxy.cfg02822b.Filter'

    option FilterURLs '1'

    option LogLevel 'Connect'

    option Syslog '1'

    option enable '1'

    option Allow '192.168.1.0/24'


위에서 자신에 맞게 수정할 것은 딱 두개뿐

option Port '8888'    이것이 바로 프록시 접속 포트번호,  보통 프록시 포트는 3128을 많이 쓰지만, 자신이 원하는 포트로 변경해서 사용하기를 권장.

그리고, option Allow '192.168.1.0/24' 가 바로 접속을 허용할 IP 주소 영역을 지정하므로, 자신이 사용하는 IP 대역만을 지정하는 것이 필요.

(그냥 '0.0.0.0/24' 라고 모든 접속을 허용해 놓더라도, iptables 같은 방화벽에서도 충분히 필터링 할 수 있음. 어차피 방화벽을 열어야하기 때문에 많이 고민하지 않아도 됨.)


서비스 실행

# /etc/init.d/tinyproxy start    또는 restart


# lsof -i 명령어로 포트가 열리고, ps elf 로 서비스가 실행되었는지를 확인하기 바람.


3. 방화벽에 리다이렉트 룰과  IP 필터링 룰 설정하기

# vi /etc/config/firewall


위 방화벽 설정 파일에 다음 내용을 추가한다.


config redirect

    option _name 'proxy'

    option src 'lan'

    option proto 'tcp'

    option src_dport '80'

    option dest_port '8888'

    option src_dip '!192.168.1.1'

    option dest_ip '192.168.1.1'


여기서 가장 중요한 설정은 바로 192.168.1.1  IP 주소로, 반드시 현재 OpenWRT에서 사용하는 로컬LAN의 라우터  IP 주소를 써주어야 함!!

8888  포트 번호는 반드시 앞에서 tinyproxy 설정 포트번호와 동일해야 함.


# vi /etc/firewall.user


파일에 접속 허용을 추가한다.


iptables -I INPUT 1 -p tcp -s 220.25.11.1/24 --dport 8888 -j ACCEPT


위와 같이, 특정 IP 대역에서만 포트번호 8888로 접속할 수 있도록 설정한다.

만약 모든 곳에서 들어올 수 있도록 하려면, 그냥

iptables -I INPUT 1 -p tcp --dport 8888 -j ACCEPT

라고, 설정한다.

앞에서 tinyproxy의 option Allow ''를 이용해서, 접속 제한을 할 수 있다. 알아서 잘 선택하면 된다.


추가.

OpenWRT 같은 홈라우터에서 혼자서 사용한다면, 홈라우터 자원을 너무 많이 사용하면서 대기하지 않도록,

/etc/config/tinyproxy 설정 파일에서

Option MaxClients 와  Option StartServers 설정을 조금 낮춰주는 것이 좋다.




Posted by 훅크선장
, |

작년 2014년까지 배포하던 1.0.9a 버전의 한글화 이후로,

새로운 패키지를 몇 개 더 넣고, 64비트와 32비트로 분리해서 한글화해보았습니다.

특히, 64비트는 처음으로 한글코드를 EUC-KR과 UTF-8로 각각 다르게 만들어보았습니다.(이전까지는 항상 EUC-KR로만 만들었었습니다.)

일단 한글코드에 따른, 특별한 차이는 보이지 않고 있습니다만,

혹시 어떤 차이나 문제점이 있다면, 저한테 알려주시기 바랍니다.


배포방식은 이전과 동일하게, FTP 하나 입니다. FTP 패스워드만 퀴즈로 풀면 됩니다.


64비트 파일명(EUC-KR)은 kali-linux-1.0.9a-amd64-ko-euckr.iso 입니다.

SHA-160     : 0372B1BB8017262CA1177C1113E43C83FFA85ACE
MD5         : 
E1F4E8B838903766D894A39E045D660C

64비트 파일명(UTF-8)은 kali-linux-1.0.9a-amd64-ko-utf8.iso 입니다.

SHA-160     : 
427D7E73E252372ED01D9330D2E120649144702A
MD5         : 1A892964ADB2351CFC8A85A173382122

32비트 파일명(EUC-KR)은 kali-linux-1.0.9a-i386-ko-euckr.iso 입니다.

SHA-160     : 
B222CB754CF58B8616E62EA29516CDFF912AC339
MD5         : 6ABC3904EFBD6D6A9353CE9D3A11FA06

다른 버전들도 있으니, 한꺼번에 받지 마시고, 필요한 것만 받아가시기 바랍니다.

FTP 서버: hook7346.ignorelist.com
FTP 포트: 21번
FTP 계정: kali109ako

FTP 패스워드는 퀴즈입니다. => 영문자판상태에서 한글로 치시면 됩니다.
1) 패스워드는 한글 4글자와 특수문자 1개로 구성되어 있습니다.
2) 패스워드의 첫 두 글자는 우리나라 문자 이름입니다. 이미 1) 문장에서 나온 단어입니다.
3) 패스워드의 세번째와 네번째 두 글자는 3.1절에 외치던 문장에 있는 두 글자입니다.
“대한 독립 OO”에서 OO에 들어가는 단어입니다.
4) 마지막에 들어가는 특수문자는 3)의 단어뒤에 자주 붙는 특수문자입니다. 느낌이 오시나요? (이거 자주 헷갈리시는데, 쩜은 아닙니다. 느낌입니다.)

다시한번 말씀드리지만, 영문자판상태에서 한글로 치시면 됩니다.
한글 4글자와 특수문자 1개로 구성되어 있습니다.(영문자로는 총 12글자입니다.)

퀴즈가 안풀리시는 분은 이전과 동일하게, 밑에 답글로 이메일주소 적어주시면, 이메일로 접속 정보와 패스워드 알려드립니다.

Posted by 훅크선장
, |
갑자기 어떤 이유로 인하여,
인터넷에 연결되지 않은 폐쇄망에 대한 NTP 서버 운영에 대한 정보를 찾다가 시작하게 된,
GPS 기반의 NTP 서버 만들기의 과정을 정리하였습니다.

먼저, 전세계에 있는 stratum 시계에 대한 정보는 여기를 참고하시면 됩니다. 


필요한 준비물은 3가지 입니다. 물론, 컴퓨터는 별도로 한 대 더 있어야 합니다.

1) 라즈베리파이 B+ (B+가 아닌, 이전 버전도 충분히 가능)
http://www.eleparts.co.kr/EPXDFYBF (여기 모델이 투명케이스랑 방열판 포함임)

2) 국내에서 현재 구할 수 있는 라즈베리파이용 GPS 모듈은 안테나 포함으로 여기에~,

3) 4GB 이상의 MicroSD 카드 (운영체제 설치 및 데이터 저장용)


자, 이제 시작해봅시다.

1. 라즈베리파이에 OS설치
RASPBIAN Debian Wheezy 를 설치한다. 리눅스나 맥 OS X 에서는 dd 명령어를 사용
다음을 참조

2. 라즈베리안 OS를 업데이트
라즈베리안으로 부팅한 다음, 
반드시 키보드와 언어, 지역을 미국 qwerty 자판과 미국영어로 바꾸어준다.
라즈베리안은 기본으로 영국식 키보드가 되어있어서, # 문자 안 찍힌다. (영국애들의 자존심이란...)

$ sudo apt-get update
$ sudo apt-get dist-upgrade
 위 명령어를 통해서, 최신 라즈베리안으로 업데이트 한다. (시간이 좀 걸린다.)
 
3. GPS 모듈을 장착하기 위해서, Serial Console을 비활성화 한다.
이 과정을 안하고, GPS모듈을 꽂으면, 엄청난 양의 이상한 로그메시지를 콘솔 화면에서 보게 될 것이다.
(이런 것이 생기는 이유는 기본적으로 라즈베리파이가 Serial Console을 지원하는데, 그 연결핀이 GPS 모듈과 동일하게 사용하다보니, Serial Console을 활성화한 상태로 GPS  모듈을 꽂아서 라즈베리파이를 구동하며, 해당핀을 통해서 GPS 모듈의 데이터가 계속 유입되기 때문이다.)

/boot/cmdline.txt 에서 “console=ttyAMA0,115200 kgdboc=ttyAMA0,115200” 부분을 삭제한다.
그리고
/etc/inittab 파일의 제일 뒷 부분에 있는
T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
이 부분을 #를 맨 앞에 넣어서 주석처리하여 Disable 상태로 만든다.


여기에 있는 내용을 참고하였다.

3-1. 혹시, 라즈베리파이에 hdmi 모니터,키보드,마우스를 연결해서 작업하는 것이 너무 귀찮아면, ssh 원격접속으로 다 설정할 수 있다. ssh 원격접속을 위한 네트워크 설정 및 ssh 데몬 설정 내용은 다음 링크를 참고하면 된다.

4. GPIO 포트로 들어오는 PPS 신호를 처리하기 위한 설정을 한다.
/boot/cmdline.txt 의 마지막 부분에, 즉 한 라인의 제일 뒷 부분에, 
bcm2708.pps_gpio_pin=18
내용을 추가해준다.

/etc/modules 파일의 마지막 부분에 새로운 라인으로
pps-gpio
를 추가한다.

라즈베리파이를 리부팅한다. sudo poweroff 했다가, GPS 모듈을 꽂고 다시 전원을 켜면 된다.

# dmesg | grep pps 명령으로 부팅과정에서 pps 디바이스를 인식하였는지를 알 수 있다.:

4-1. /etc/motd 파일에 쓰여있는 내용을 다 지운다.

# sudo rm -f /etc/motd
#sudo touch /etc/motd

매번 로그인할 때마다, 귀찮은 문구들이 뜨는 것을 없앨 수 있다.

5. PPS 를 지원하는 ntp 패키지 버전을 받아서, 컴파일 하고 설치한다.
위 링크에 있는 내용을 참고하였다.

다운로드하는 곳은 http://archive.ntp.org/ntp4/
현재 stable 버전은은 ntp-4.2.6p5.tar.gz

$ mkdir ntp                  # make a convenient working directory, if you don't already have one
$ cd ntp                     # enter that directory
$ sudo apt-get install libcap-dev # once-off, required to prevent later file not found error
# Get the desired tarball, current or development - use one of the following:
$ tar xvfz ntp-4.2.6p5.tar.gz
$ cd ntp-4.2.6p5
$ ./configure --enable-linuxcaps # takes 11-15 minutes
$ make # takes 18-25 minutes
$ sudo make install          # puts ntp* in /usr/local/bin/ntp*, takes 30-60 seconds

$ sudo /etc/init.d/ntp stop
$ sudo cp /usr/local/bin/ntp* /usr/bin/
ntp로 시작하는 파일뿐만 아니라, 새로 컴파일된 모든 파일을 복사해야 한다.

apt-get remove ntp를 해야된다고도 하는데, 이건 패키지의 설치파일들을 한번 비교해보면 될 듯~~!

$ sudo /etc/init.d/ntp start
$ ntpq -crv -pn # optional step to check for version and basic function


5. 2014년 12월 30일에 확인한 바로는,

# sudo apt-get dist-upgrade
명령어를 수행하면, ntp패키지가 4.2.6p5+dfsg-2+deb7u1 으로 업그레이드 되어, 별도의 atom pps 지원용의 패키지를 컴파일 하지 않아도 된다. 새로운 ntp 패키지는 atom pps를 지원하고 있다.


6. pps 도구와 gpsd 프로그램들을 받아서 설치하고 테스트해본다.

아래를 참조하였다.

제일 먼저 다음 명령어를 실행하여야 한다.
$ sudo apt-get install pps-tools

그리고, gpsd 관련 프로그램들을 설치한다.
pi@raspberrypi:~$ sudo apt-get install gpsd gpsd-clients python-gps


7. gpsd 데몬을 실행시킨다.
우리가 사용하는 gps 모듈은 디바이스 명칭이 ttyAMA0 이며, 반드시 모듈과의 연동속도를 지정해주어야 한다.
이 제품은 38400 baud rate가  기본 속도이다~!

gpsd가 동작하게 하려면, 반드시
# sudo stty -F /dev/ttyAMA0 38400
명령을 먼저 해줘야 한다.

# sudo gpsd -F /var/run/gpsd.sock /dev/ttyAMA0
 하고, gpsd 데몬을 띄우면


# sudo cgps -s
 명령으로 gps 상태가 잘 동작함을 알 수 있다.
다음과 같은 화면이 출력되어야만, 라즈베리파이와 gps 모듈이 잘 연동되고 있는 것이다.


┌───────────────────────────────────────────┐┌─────────────────────────────────┐
│    Time:       2012-06-18T15:05:10.0Z     ││PRN:   Elev:  Azim:  SNR:  Used: │
│    Latitude:    51.231848 N               ││  14    43    249    40      Y   │
│    Longitude:    0.514014 E               ││  25    75    283    37      Y   │
│    Altitude:   132.3 m                    ││   2    26    085    31      Y   │
│    Speed:      0.0 kph                    ││  12    56    070    18      Y   │
│    Heading:    0.0 deg (true)             ││   9    19    133    22      Y   │
│    Climb:      0.0 m/min                  ││  27    09    133    17      Y   │
│    Status:     3D FIX (1 secs)            ││   4    17    045    31      Y   │
│    GPS Type:                              ││  32    05    321    20      Y   │
│    Longitude Err:   +/- 8 m               ││  29    41    192    18      Y   │
│    Latitude Err:    +/- 9 m               ││  31    28    304    42      Y   │
│    Altitude Err:    +/- 27 m              ││                                 │
│    Course Err:      n/a                   ││                                 │
│    Speed Err:       +/- 68 kph            ││                                 │
│                                           ││                                 │
│                                           ││                                 │
│                                           ││                                 │
│                                           ││                                 │
│                                           ││                                 │
└───────────────────────────────────────────┘└─────────────────────────────────┘


8. 마지막으로 ntp 서버를 설정한다.
 
/etc/ntp.conf 파일을 다음과 같이 수정한다.


driftfile /var/lib/ntp/ntp.drift statistics loopstats peerstats clockstats filegen loopstats file loopstats type day enable filegen peerstats file peerstats type day enable filegen clockstats file clockstats type day enable # Server from shared memory provided by gpsd server 127.127.28.0 minpoll 4 maxpoll 4 fudge 127.127.28.0 time1 0.000 refid GPS # By default, exchange time with everybody, but don't allow configuration. #restrict -4 default kod notrap nomodify nopeer noquery #restrict -6 default kod notrap nomodify nopeer noquery # Local users may interrogate the ntp server more closely. restrict 127.0.0.1 restrict ::1

다음은 IP 접속제한을 풀어내는 disable 설정이다.

#restrict -4 default kod notrap nomodify nopeer noquery

아마도 다음과 같은 내용이 있었을 것인데, 우리는 폐쇄망에 있기 때문에 인터넷의 시간서버 설정을 모두 제거한다.

server 0.debian.pool.ntp.org iburst

server 1.debian.pool.ntp.org iburst server 2.debian.pool.ntp.org iburst server 3.debian.pool.ntp.org iburst

실제로 우리의  GPS 모듈에서 시간을 받아오는 설정은 다음과 같다.

# Server from shared memory provided by gpsd
server 127.127.28.0 minpoll 4 maxpoll 4
fudge  127.127.28.0 time1 0.000 refid GPS

/etc/ntp.conf 파일을 수정하였으면, ntp 데몬을 재시작시킨다.

sudo /etc/init.d/ntp restart


그리고, ntp 서버의 상태를 확인한다.

# sudo ntpq -p -n
위 명령을 수행하며, 다음과 비슷하게 표시되어야 한다.
특히, reach 값은 377 이어야 한다.  377이 되기까지는 어느정도 시간이 걸린다. GPS신호가 꽤 많이 잡히게 되어야 하기 때문이다.

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*127.127.28.0    .GPS.            0 l    7   16  377    0.000   -353.23 15.024

9. 다음의 링크를 참고해서, 열심히 공부하면 시간을 좀더 정확하게  offset 값에 따라서 보정하는 방법을 알 수 있다.


보정이란게, ntp.conf 파일에서 다음 내용의 0.000을 앞에서 offset 값을 써주기만 하면 된다. offset 값은 지리적 위치나 위성의 gps 신호에 따라서 매번 변하기 때문에, 적당한 평균값이나 최소값을 사용해야만 할 것이다.
fudge  127.127.28.0 time1 0.000 refid GPS
10. 미해결 상황
아직 해결하지 못한 문제가 있다.
혹시라도 라즈베리파이가 꺼졌다가 다시 켜거나, 재부팅된 상황이 생긴다면,
반드시 꼭 다음의 명령어를 한번 실행해줘야 한다.
# sudo stty -F /dev/ttyAMA0 38400

gps 모듈의 연동속도를 지정하는 것인데, gpsd 데몬이 실행되기 위한 필수요소이다.

rc.local 파일에 추가하여, 리눅스 부팅시마다 실행되도록 해 보았으나 효과가 없었다.
setserial 패키지를 설치해서 설정을 적용도 시켜봤으나 실패하였다.

아직 왜 그래야 하는지 잘 모르겠으나, 아무튼 위 명령어를 한번 반드시 수행해주지 않으면,
gpsd가 정상적으로 동작하지 않으며, ntpd 데몬이 시간 정보를 가져오지 못하는 결과를 초래한다.

혹시 누군가 해결방법을 안다면 알려주시기 바란다.


Posted by 훅크선장
, |

2015년 업데이트버전을 배포중에 있습니다. 최근 글을 참고하세요!


Kali Linux가 예전 BackTrack 때보다는 좀 더 자주 업데이트가 됩니다.

이번에는 64비트 버전으로 1.0.9a 버전을 한글화해보았습니다.


배포방식은 이전과 동일하게, FTP 하나 입니다. FTP 패스워드만 퀴즈로 풀면 됩니다.
64비트 파일명은 kali-linux-1.0.9a-amd64-ko.iso 입니다.

SHA-160     : c7e1a5ed058d1d892f400bcf9d200823e0c98f48
MD5         : 0488c2b9eb3e3eb92254f929bc20f390

다른 버전들도 있으니, 한꺼번에 받지 마시고, 필요한 것만 받아가시기 바랍니다.


FTP 서버: hook7346.ignorelist.com
FTP 포트: 21번
FTP 계정: 
kali109ako
FTP 패스워드는 퀴즈입니다. => 영문자판상태에서 한글로 치시면 됩니다.
1) 패스워드는 한글 4글자와 특수문자 1개로 구성되어 있습니다.
2) 패스워드의 첫 두 글자는 우리나라 문자 이름입니다. 이미 1) 문장에서 나온 단어입니다.
3) 패스워드의 세번째와 네번째 두 글자는 3.1절에 외치던 문장에 있는 두 글자입니다.
“대한 독립 OO”에서 OO에 들어가는 단어입니다.
4) 마지막에 들어가는 특수문자는 3)의 단어뒤에 자주 붙는 특수문자입니다. 느낌이 오시나요? (이거 자주 헷갈리시는데, 쩜은 아닙니다. 느낌입니다.)

다시한번 말씀드리지만, 영문자판상태에서 한글로 치시면 됩니다.
한글 4글자와 특수문자 1개로 구성되어 있습니다.(영문자로는 총 12글자입니다.)

퀴즈가 안풀리시는 분은 이전과 동일하게, 밑에 답글로 이메일주소 적어주시면, 이메일로 접속 정보와 패스워드 알려드립니다.

Posted by 훅크선장
, |

전자회로를 만들다보면, 항상 정격전압의 레귤레이터 회로가 필요한데,

5V 출력을 만드는 방법, 아니 IC 칩들에 대한 내용을 정리해본다. 가장 중요한 것이 입력전압의 범위와 출력전류의 크기이다. 

일반적인 전자회로라면 1번 방법 7805 칩으로 하면 되고, 3A 정도의 출력전류가 필요하다면, 2번 LM2576 밖에는 선택의 여지가 없다. 입력전압이 낮은데도 사용을 해야한다면, 3번 LM1117 이나 4번 LM2940을 써야하는데, LM2940은 가격이 비싼 축에 속하는 칩이다.


1. LM7805 를 이용, 그냥 7805 로 통칭되고 있다.

가장 많이 쓰이는 방법으로, 1A 전류를 처리할 수 있으며, 입력전압이 7.5~35V까지 범위가 넓다.

통상 LM78xx 시리즈로 광범위하게 사용된다. 뒤번호 05가 5V 출력을 의미한다.

레귤레이터 회로 전체 구성이 매우 간단하여, 7805 칩과 커패시터 2~3개만 있으면 된다.

(칩 가격은 250원에 커패시터는 10개에 각 100원 정도이다.)

http://obrazki.elektroda.pl/3228904300_1349300543.gif

http://www.rakeshmondal.info/Electronics/IC%207805%20Schematic%20and%20Circuit%20diagram.png

http://www.rakeshmondal.info/IC-7805-Voltage-Regulator

https://www.fairchildsemi.com/datasheets/LM/LM7805.pdf


2. LM2576 을 이용

3A 전류까지를 처리할 수 있으면, 입력 전압이 7~40V 까지이다. HV 버전 칩을 쓰면, 60V 까지 입력할 수도 있다.

원래 LM2576은 ADJ 버전으로 다양한 출력전압을 선정할 수 있다는 점이 많이 쓰인 것으로 알고 있다.

다만, 회로를 구성할때, 커패시터 뿐만 아니라, 링코일과 쇼트키 다이오드까지 넣어야 해서 약간 복잡하고, 납땜하기도 만만치 않다는 것이 걸림돌이 될 수도 있다.

(칩 가격은 1000~2000원 선이고, 커패시터는 10개당 100원 정도, 쇼트키 다이오드도 10개당 100원 정도, 링코일이 10개당 350원 정도이다.)

http://www.eleccircuit.com/wp-content/uploads/2007/07/lm2576-5_0.jpg

http://www.ti.com/lit/ds/symlink/lm2576.pdf


3. LM1117 5v 출력 버전을 이용, LM1117s-5.0v 등

1A 정도의 전류까지를 처리할 수 있으며, Low Drop Out, 작은 전압하강 출력,  LDO라고 부른다. 입력전압은 6.5~15V이다. ADJ 버전도 있어서, 여러 출력전압을 만들 수도 있다.

레귤레이터 회로 전체 구성이 매우 간단하여, LM1117과 10uF 탄탈커패시터 2개만 있으면 된다.

(칩 가격은 250원 정도, 탄탈커패시터는 10개에 200원쯤이다.)

http://nut-bolt.nl/assets/lm1117.png

http://www.htckorea.co.kr/Datasheet/LDO/LM1117.pdf


4. LM2940 을 이용, LM2940-5 등

1A 전류를 처리할 수 있으면, 특히 출력전압이 5V인데, 입력전압이 6V 정도로 낮을 때 사용할 수 있어서 유용하다.

그래서 Low Drop Out, 작은 전압하강 출력,  LDO라고 부른다. 입력전압은 6~26V이다.

레귤레이터 회로 전체 구성이 매우 간단하여, LM2940 칩과 커패시터 2~4개만 있으면 된다.

(칩 가격이 2500~3000원 정도,  커패시터들은 100원~500원 정도이면 10개 살 수 있다.) 

http://circuits.datasheetdir.com/40/UTC-LM2940-circuits.jpg

http://www.ermicro.com/blog/wp-content/uploads/2009/02/pwr_08.jpg

http://www.ti.com.cn/cn/lit/ds/symlink/lm2940-n.pdf


참고) 모든 부품 가격은 디바이스마트의 가격을 기준으로 산정했습니다.


----------내용 추가------------

5. LM2678 을 이용하면, 5A 출력전류까지도 가능합니다.

하지만, 이정도 되면 그냥 기성품을 사서 쓰는게 낫다고 생각합니다. 

칩가격도 개당 1만원이 넘는지라~! 다만 자작이 가능할 수 있다고는 알고만 있으면 될 듯합니다.


http://www.eleccircuit.com/wp-content/uploads/2007/10/lm2678-5_0_switchg_reg_5v_5a.jpg

http://www.eleccircuit.com/5v-5a-switching-regulator-for-digital-by-lm2678/


6. XL4012 를 이용하면, 최대 12A 출력전류도 가능합니다.

이것도 회로 구성이 간단하지는 않습니다. 게다가 전류가 높아서 기판을 만들때도 전류 크기에 따른 경로 크기를 고려해줘야합니다. 이미 기성품으로 팔고 있는 것들이 있으므로, 그냥 사서 쓰시는 것이 좋습니다.

중국 알리에서 20불이면 살 수 있습니다.

http://www.zahranvane.com/download/XL4012.pdf.d3a22f771d13e7ad5e2e54f94706bdf8

http://www.aliexpress.com/item/DC-DC-step-down-supply-module-buck-converter-30V-28V-25V-24V-22V-20V-18V/2016021208.html


Posted by 훅크선장
, |