'ndsl'에 해당되는 글 2건

  1. 2007.12.05 DSLinux 텔넷 FTP 사용기. by miro
  2. 2007.12.03 NDSL에 DSLinux 설치기. by miro (5)
확실한 장난감이 하나 늘었다. 바로 NDS(DSLinux)이다. 지난번에 DSLinux라는 NDS용 리눅스를 설치했는데 이번에는 NDS의 무선랜을 활성화 시켜 가장 기본적인 텔넷과 FTP가 가능한지 확인해봤다. 사실 대부분의 정보는 DSLinux 프로젝트 페이지에서 고스란히 제공하고 있고 단지 나는 그쪽의 가이드 라인대로 몇가지 실행해보는 것 뿐이다.
일단, DSLInux에서 무선랜을 활성화 시키기 위해서는 rc.conf 파일을 만들어야 된다. 다행히 기본적인 템플릿이 존재(rc.defaults)하므로 그 파일을 갖고 수정해서 복사하면 된다. 일단 파일의 위치는  미니 SD카드(flash 카드)의 최상단 디렉토리에 있는 linux/etc/rc.defaults 라는 파일이 존재한다. 그 파일을 동일한 경로에 rc.conf로 복사해 주고 다음과 같은 내용을 수정하도록 한다.
enable_network_on_boot="NO"
=>enable_network_on_boot="YES"

essid=""
=>essid="자신의무선공유기의SSID"

wepkey=""
=>wepkey="만일비밀키를 사용하고 있다면 비밀키입력"

start_inetd="NO"
=>start_inetd="YES"

일단, 위와 같이 수정하고 같은 디렉토리에 inetd.conf.example (linux/etc/inetd.conf.example) 이라는 파일이 있다. 그 파일을 inetd.conf로 복사하고 다음과 같이 변경한다.
#telnet .........
#ssh .........
#ftp .........
=>
telnet .........
#ssh .........
ftp .........

일반적인 유닉스 시스템에서 #은 주석을 의미한다. 즉 위의 내용은 주석처리된 내용을 활성화시키는 것이다. 그 중에서 telnet과 ftp를 활성화 시킨다는 것이다. 일단 저렇게 작업하고 NDS를 부팅하면 부팅 메시지가 길어지면서 아래와 같은 화면을 볼 수 있다.
사용자 삽입 이미지
위 사진에서 보면 짐작할 수 있듯이 무선랜을 통해 접속하였고 192.168.0.10 이라는 아이피를 할당 받은 것이다. 그리고 DNS (도메인 네임서버)가 2개가 등록이 되었다. 무척 감격적인 순간이었다. 그래서 바로 텔넷으로 한번 접속을 시도해봤다.
사용자 삽입 이미지사용자 삽입 이미지
일단 워낙 작은 키보드 화면때문에 자동로그인을 사용하고 있는데 즉 패스워드를 묻지 않기 때문에 그냥 관리자(root)로 접속해버린다. 그리고 ftp 도 되는지 확인해보았다. 그런데 ftp는 비밀번호 없이 접속은 안되고 root 사용자로 초기 비밀번호(uClinux)로 접속하면 접속이 잘 된다.
사용자 삽입 이미지사용자 삽입 이미지
개인적으로는 MPU와 같은 시스템을 조금 다뤄보았기 때문에 리눅스를 설치하는 것 자체는 그리 크게 놀랄만한 일은 아니었다. (물론 이런 상용제품에 마치 PC에 윈도우나 리눅스 설치하듯 설치해보는 경험은 처음이지만 ^^) 하지만, 이렇게 RS-242 케이블을 통한 통신이 아니라 네트워크 통신으로 접속해서 작업해 보는 것은 참 진귀한 경험이 아닐 수 없다. 이정도로 사용기를 마무리 하고 다른 NDSL 유저들이 손쉽게 사용할 수 있도록 파일을 좀 준비해봐야 겠다.

신고
Posted by miro

NDSL에 DSLinux 설치기.

Geek 2007.12.03 21:58
최근에 해킹 관련 세미나에서 NDSL라는 휴대용 게임기를 통해 해킹을 하는 방법(?)에 대한 이야기를 들었다. 물론 휴대용 게임기인 만큼 일반 PC보다는 제약이 많았지만, 다양한 시도가 가능하는 것에 매우 흥미를 느끼게 되었다. 무엇보다 그런 시도를 가능하게 할 수 있는 리눅스를 설치할 수 있다는 점이 내겐 더 큰 매력이었다.

NDSL에 설치할 수 있는 리눅스를 개발하고 있는 사이트는 http://www.dslinux.org/index.html 이다. 이 사이트는 기존의 리눅스 커널 + uClibc 를 이용하여 ARM 칩에 적용 가능한 리눅스 커널을 개발하고 있다. 물론 기존의 프로젝트에 있는 대부분의 소스를 활용하고 있지만, NDSL에 맞게끔 관련 라이브러리나 인터페이스를 수정하는 엄청난 수고(?)를 하고 있는 고마운 사이트이다.
처음에는 http://kineox.free.fr/DS/ 사이트에서 미리 빌드해 놓은 것을 사용해볼까 하다가 역시 리눅스를 컴파일해야 제맛(?)이 나므로 http://dslinux.org/cgi-bin/moin.cgi/CompilingDSLinux 여기에서 설명해준 순서에 따라 컴파일을 진행해보았다.

참고로 아래에서 진행하는 모든 컴파일 과정은 리눅스에서 진행한 과정이다. 일단 2개의 파일을 다운로드 받아야 한다. 하나는 리눅스 커널 + 잡다한 라이브러리 및 프로그램들이 포함된 소스를 받아야 하고 다른 하나는 ARM칩용 크로스컴파일러를 다운받아야 한다. 다운로드는 위쪽 사이트를 참조해도 되고 다음과 같이 다운로드를 진행할 수 있다.
wget http://stsp.spline.de/dslinux/dslinux-snapshot.tar.gz
wget http://stsp.spline.de/dslinux/toolchain/dslinux-toolchain-2007-11-03-i686.tbz

참고로 소스는 svn을 통해 다운받을 수도 있지만, 권장하고 싶지 않다. 저 위쪽 소스가 압축해서 약 275Mbyte이다. 그걸 svn으로 다운 받으려면 대략 몇시간 정도는 잡아먹을 것이다. 솔직히 아무 생각없이 시도했다가 40분이 지나도록 다운받고 있길래 그냥 포기했었다.

나는 위 파일을 HOME 디렉토리에서 NDSL이라는 디렉토리를 생성하고 그 하위 폴더에 생성하였다.
cd ~
mkdir NDSL
mv {다운로드폴더}/dslinux-snapshot.tar.gz NDSL
mv {다운로드폴더}/dslinux-toolchain-2007-11-03-i686.tbz NDSL
cd NDSL
tar xvzf dslinux-snapshot.tar.gz
tar xvjf dslinux-toolchain-2007-11-03-i686.tbz

일단 위와 같이 하고 나면 NDSL 폴더 밑에 dslinux라는 폴더와 dslinux-toolchain-2007-11-03-i686 라는 폴더가 생성되어 있을 것이다. 이 중에서 dslinux-toolchain-2007-11-03-i686는 컴파일을 위한 실행파일들이 존재하므로 하위 디렉토리의 bin 디렉토리를 PATH에 넣어줘야 한다.
export PATH=$PATH:$HOME/NDSL/dslinux-toolchain-2007-11-03-i686/bin

그런 후에 dslinux 디렉토리로 이동하여 폰트설정과 터미널설정을 해준 뒤 컴파일을 하면 된다. 일단 폰트설정하는 방법은,
cd $HOME/NDSL/dslinux
make menuconfig

그런 후에 다음과 같이 선택해야 한다.
Kernel/Library/Defaults Selection ---> [*] Customize Kernel Settings
사용자 삽입 이미지사용자 삽입 이미지

위 과정을 모두 마치고 Exit하면 이후 설정을 계속 진행할 수 있는데 그 설정은 다음과 같다.
  Device Drivers  --->
    Graphics support  --->
       Console display driver support  ---> [*]   Mini 6x6 font
사용자 삽입 이미지사용자 삽입 이미지
사용자 삽입 이미지사용자 삽입 이미지

위와 같이 폰트 설정을 마무리 하면 터미널을 2개 이상 사용할 수 있는 설정을 해주어야 하는데 그것은 현재 dslinux 디렉토리에서 vendors/Nintendo/DLDI/inittab 파일을 수정(R4의 경우)해줘야 한다.
수정 내용은 다음과 같은 라인을 추가하면 된다.
tty2::linux:/usr/bin/agetty 38400 tty2

그런 후에 dslinux에서 "make" 를 하고 나면 빌드가 시작되고 빌드가 모두 마무리 되고 나면 dslinux 밑에 image라는 폴더가 생겨나고 거기에 몇가지 파일들이 생겨난다. image 폴더안의 파일중 dslinux.nds 파일과 dslinuxm.nds 파일을 닥터에 맞도록 변환해주어야 하는데 http://kineox.free.fr/DS/dslinux-dldi.tgz 파일을 다운로드 받고 위 두 파일을 자신에 맞는 닥터용으로 변환해주면 된다. 압축을 풀어보면 실행파일과 변환 정보 파일이 있는데 적당히 두들겨(RTFM?)보면 손쉽게 변환할 수 있을 것이다. 그리고 http://dslinux.org/cgi-bin/moin.cgi/RunningDSLinux 사이트를 보면 쉽게 알 수 있듯이 플래쉬 메모리 최상위 디렉토리에 아래와 같은 식으로 생성된 파일을 넣어두면 된다.
 CF/SD card
   |--dslinux.nds
   |--dslinuxm.nds
   |
   |--linux/
      |
      |--etc/
      |  |--... <a few files>
      |
      |--home/
      |
      |--lib/
      |  |--... <a few files>
      |
      |...
      .
      .
      .

마치 내가 새롭게 메뉴얼이라도 작성한 듯 싶은데 사실 위에 있는 링크들에 다 있는 내용이고 그대로 진행해본 것 뿐이다. 더군다나 그 과정이 별로 어렵지도 않은데 쓸데없는 짓을 한 것 같기도 하다. -_-;;
일단, 위처럼 진행해서 리눅스를 이미지를 설치했으니 기념샷을 마지막으로 마무리 해야겠다.
사용자 삽입 이미지사용자 삽입 이미지
일단 DSLinux가 설치되었으므로 앞으로는 DSLinux에 있는 FTP나 텔넷을 이용하여 어떻게 활용될 수 있는지 찾아보고 이에 대한 사용기를 올려보도록 할 예정이다.
신고
Posted by miro
TAG DSLinux, ndsl


티스토리 툴바