전생했더니 슬라임이었던 건에 대하여 4권에 나오는 지도
분류 전체보기
- 전생했더니 슬라임이었던 건에 대하여 지도 2017.03.23
- 페이지원HD 되는 크레마 PC 3.0.0.0 버전 2017.03.02 3
- M1200AC(WF-2881) Open Wrt 올리기 3 - Open Wrt 설치 2017.02.03 4
- M1200AC(WF-2881) Open Wrt 올리기 2 - 핀헤더 연결 2017.02.03
- M1200AC(WF-2881) Open Wrt 올리기 1 - 부품 주문 2017.02.02 1
- M1200AC WF-2881 공유기 환기구멍 뚫기 2017.01.22
- Open Wrt ssh 외부 접속 허용 2017.01.22
- Open Wrt DDNS freedns.afraid.org 설정 2017.01.22
- Sun type 7 키보드 텐키리스 개조 2016.12.25 6
- QEMU를 이용한 라즈베리파이2 커널 디버깅 2016.07.24
전생했더니 슬라임이었던 건에 대하여 지도
페이지원HD 되는 크레마 PC 3.0.0.0 버전
페이지원 HD를 아직도 사용중이다.
그런데 최근 크레마 PC버전을 설치하고 사용하려니 페이지원HD 인식을 못하였다.
그래서 어렵사리 예전 버전을 구해서 사용하니 인식을 하였다.
혹시 몰라 여기에 업로드 해 놓는다.
M1200AC(WF-2881) Open Wrt 올리기 3 - Open Wrt 설치
주의 여기에 나오 것을 하면 100% AS 안됨을 알려 드립니다.
한마디로 AS를 포기해야 합니다.
http://fehead.tistory.com/218 M1200AC(WF-2881) 분해
http://fehead.tistory.com/219 Open Wrt 올리기 1 - 부품 주문
http://fehead.tistory.com/221 Open Wrt 올리기 2 - 핀 헤더 연결
0. 참고 자료
- http://cafe.naver.com/062samo/10722 공유기 사용자 모임 초보설계자님 글
- https://wiki.openwrt.org/toh/netis/wf-2881 Open Wrt 위키
- https://sourceforge.net/projects/tftp-server/?source=typ_redirect Tftp Server
- http://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html Putty
1. 사전 작업
- putty 다운로드
http://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html 로 들어 가서 putty.exe 를 다운받는다.
https://the.earth.li/~sgtatham/putty/latest/x86/putty.exe
- tftp 서버 설치
https://sourceforge.net/projects/tftp-server/?source=typ_redirect 를 다운로드 받아 설치한다.(설치 디렉토리를 잘 기억해 두자 - 나는 D:\Utils\OpenTFTPServer 에 설치했다.)
- open wrt 다운로드
https://wiki.openwrt.org/toh/netis/wf-2881 참고 하여 아래의 파일을 다운로드 한다.
를 다운로드 받아 D:\Utils\OpenTFTPServer\fw.bin 파일명으로 변경 한다.
- 공유기와 PC 연결
아래와 같이 꾸민다.
(IP는 나중에 볼것이므로 상관하지 말자 - 단 192.168.1.x 로 시작되는 IP는 피한다.)
2. USB to TTL 연결
- 아래 그림을 참고하여 USB TO TTL를 연결한다.
3. IP 확인 및 설정 준비
- cmd ipconfig를 확인하여 자기 IP를 확인하고 쓰지 않는 IP를 알아 낸다.
아래 사진에서는 192.168.0.139 가 자기 IP
ping 으로 192.168.0.222 를 쳐서 쓰지 않는 IP인것을 확인
C:\Users\fehead>ping 192.168.0.222 |
4. TFTP 서버 실행
- tftp 서버를 실행 시켜 놓는다.
tftp server를 설치해 놓은 디렉토리로 가서 D:\Utils\OpenTFTPServer\RunStandAloneMT.bat 를 더블클릭하여 실행시킨다.
5. USB TO TTL 연결 확인
- USB TO TTL를 USB에 연결하고 장치 관리자로 가서 COM port를 확인한다.
아래 화면에서는 COM11 이다. 잘 기억하자.
6. putty 실행
- 다운로드 받은 putty.exe 파일을 실행시키고
- Connection Type: 에서 Serial를 선택
- 아래 내용대로 COM11 , 57600 를 선택하고
- Open
7. Open Wrt 설치
- 아래와 같이 환경이 꾸며 졌으면 이제 M1200AC(WF-2881) 공유기 전원을 켠다.
- putty 에 글자가 나오면 재대로 된것이며 글이 깨져보이거나
글자가 안나온다면 UART TX, RX 연결을 바꿔 보고 공유기 전원을 껐다 다시 켜라.
그래도 안나온다면 납땜이나 USB TO TTL이 불량일 확률이 높다.
- 아래의 그림과 같은 화면이 나올텐데
"You Choosed" 글자가 나오면 2(엔터 치지마라) 를 누르고
"Y"
"192.168.0.222" : M1200AC(WF-2881) 공유기에 설정될 IP
"192.168.0.139" : PC IP (TFTP 서버)
"fw.bin" : OpenWrt 펌웨어 를 치고 엔터를 쳐라.
- 드디어 패치가 되고 있다. checksum bad는 신경 쓰지 말자
8. OpenWrt 기본 설정
- 이제 설치가 완료 되었다. 몇가지 설정을 하자
- 설치가 되었다면 바로 리셋버튼을 눌러 리셋을 하자(리셋버튼 10초 이상)
- 리셋후 재부팅을 하자
- M1200AC(WF-2881) LAN에 꽃혀 있는 인터넷 선을 WAN에 꽃아 놓자.
- root(admin) 암호 설정
putty 화면에서 좀 기다리면 더이상 글자가 안나온다면 엔터를 몇번 치면 아래와 비슷한 화면이 나올것이다.
BusyBox v1.24.2 () built-in shell (ash) |
passwd 와 엔터를 쳐서 암호를 변경하자
root@OpenWrt:/# passwd |
- LUCI 웹 환경 설치
"opkg update" 명령과 "opkg install luci"를 실행 시켜 웹 환경을 설정한다.
root@OpenWrt:/# opkg update root@OpenWrt:/# opkg install luci ... |
9. 설치 완료 후 웹 접속
- 공유기 LAN1에 PC를 연결하여 http://192.168.1.1/ 로 접속한다.
- 조금전에 설정한 root 암호로 접속하면 된다.
주의 여기에 나오 것을 하면 100% AS 안됨을 알려 드립니다.
한마디로 AS를 포기해야 합니다.
M1200AC(WF-2881) Open Wrt 올리기 2 - 핀헤더 연결
주의 여기에 나오 것을 하면 100% AS 안됨을 알려 드립니다.
한마디로 AS를 포기해야 합니다.
1. M1200AC(WF-2881) 공유기를 분해
http://fehead.tistory.com/218 M1200AC(WF-2881) 분해
http://fehead.tistory.com/219 Open Wrt 올리기 1 - 부품 주문
2. 막힌 핀헤더 구멍 뚫기
납땜기로 열심히 녹여 봤습니다만 안되더군요.
그래서 칼로 납을 깍고 살짝 구멍을 내고, 작은 십자, 일자 드라이버로 구멍을 뚫었습니다.
3. USB to TTL 연결
아래 CPU를 기준으로 3개를 USB TO TTL에 연결합니다.
주의 여기에 나오 것을 하면 100% AS 안됨을 알려 드립니다.
한마디로 AS를 포기해야 합니다.
M1200AC(WF-2881) Open Wrt 올리기 1 - 부품 주문
한마디로 AS를 포기해야 합니다.
천천히 하나씩 하나씩 올려 부겠습니다.
1. 부품 주문하기
몇가지 주문 할것이 있습니다.
. 40핀 헤더 (검색어 - 40핀 헤더)
. USB to TTL (검색어 - USB to TTL)
주의할 것이 있습니다. 싼 중국제가 특정 시리얼 속도만 되는 경우가 있습니다.
칩셋이 FTDI 인 제품을 추천합니다...
. 점퍼 와이어 (검색어 - 점퍼 와이어, 점퍼선)
http://www.ic114.com/WebSite/site/sc/00V0.aspx?id_p=P0082603
2. 40핀 헤더 4핀 분리
핀 헤더를 주문할때 40핀 짜리를 주문하세요.
4핀 헤더를 주문하지 마시고 40핀 헤더를 주문하여
4핀씩 부려 트려 4핀 헤더 10개로 만들면 됩니다.
3. 이제 핀헤더 납땜 하기.
4. USB to TTL에 연결해보기.
**주의** 여기에 나오 것을 하면 100% AS 안됨을 알려 드립니다.
한마디로 AS를 포기해야 합니다.
문제는 USB to TTL 제품 편차가 심합니다.
처음부터 불량이거나 시리얼 특정 속도에만 반응하나거나 하는 제품이 있습니다.
테스트 완료하신 제품이 있으면 제품명 정도 공유 부탁드립니다.
M1200AC WF-2881 공유기 환기구멍 뚫기
OpenWrt를 적용해 볼려고 네티스 M1200AC 공유기를 중고로 사봤다.
네트스 WF-2881과 똑같고 모델명만 다르다.
가격은 싼데 가격에 비해 사양은 고사양이다. 듀얼코어에 5G, 2.4G 지원에 USB 3.0까지 지원한다.
게다가 Open Wrt를 쓸수 있는 한국 최초의 제품이다(아마도..)
Open Wrt는 설 지나고 나서야 설치할 수 있을 듯 하다.
다 좋은데 환기 구멍이 바닥 밖에 없는데..
환기 구멍도 작고 내부 구조 상 의미 없는 수준이다.
그래서 구멍을 뚫어 버렸다.
분해 중인 사진
참고로 사진상 파란 것은 스마트폰 디스플레이 분해 할때 쓰는 도구다.
분해 완료
분해 사진
공유기 바닥에 있는 구멍에 드릴를 살짝 올려놓고 드릴을 1, 2초정도만 돌려도 잘 뚫린다.
바닥에 놓고 뚫지 마시길..
바닥에 놓고 뚫을려다가 순식간에 뚫려 장판 뚫릴뻔 했다.
순식간에 뚫린다. 1, 2초반에 바로 ..
옆쪽은 작은 드릴로 실구멍을 뚫어 놓은다음 큰 드릴로 뚫는다.
바로 큰 드릴로 뚫으면 반듯하게 뚫리지 않는다.
위부분도 마찬가지로 작은 드릴로 먼저 뚫고 큰 드릴로 뚫었다.
완성된 공유기
좀 보기 흉하다.. 그냥 옆부분만 뚫고
윗부분은 놔둘걸 하는 생각을 했다.
바닥부분.. 가장 마음에 든다.
아래 사진과 같이 옆으로 세워 사용하고 있다.
쿨러를 달려고 생각했지만 쿨러 달면 소음이 생기기 때문에 그냥 구멍을 많이 뚫는것으로 참았다.
Open Wrt ssh 외부 접속 허용
1. firewall 설정
# vi /etc/config/firewall
제일 하단에 아래 추가.
config redirect |
2. firewall 재시작
# /etc/init.d/firewall restart
Open Wrt DDNS freedns.afraid.org 설정
1. 여기서 http://freedns.afraid.org/ FREE 동적 DNS를 먼저 구한다.
동적DNS를 무료로 사용해보자 - FreeDNS - 여기를 참고 하라.
2. freedns 에서 키값을 얻는다.
http://freedns.afraid.org/dynamic/ 에 들어가서 중앙 하단 부분에 자기가 등록한 도메인이 있을 것이고 그 아래쪽에 Direct URL 를 클릭하면 새창이 뜬다.
여기서 나온 URL부분에
빨간 상자 부분이 키 값이다.
3. ddns-scripts 를 설치 및 설정 한다.
# opkg install ddns-scripts
# vi /etc/config/ddns
# 아래 내용을 추가 한다. config service 'mydns' |
4. ddns 재시작 및 로그 확인
# /etc/init.d/ddns enable
# /etc/init.d/ddns restart
# 로그 확인
# cat /var/log/ddns/mydns.log
...
...
Sun type 7 키보드 텐키리스 개조
밤에 집에 가는길에 키보드를 주었다.
usb 선이 어디론가 없어져 있었는데..
뭔가 꽤 좋아 보이는 멤브레인 키보드였고 Sun마크가 붙어 였었다.
게다가 Num Lock, Caps Lock, Sroll Lock LED가 중앙 상단에 위치에 있었다.
보통은 우측 상단에 있는데 이놈은 중안에 상태 LED가 불어 있었다.
왠지 텐키리스 개조가 쉽게 되지 않을까 생각했고 조금 고민후 주워왔다.
회사에서는 기계식 키보드 갈축을 쓰는데 다른 사람들은 키보드 타건 소리 가지고 뭐라고 하지 않지만
다른 사람에게 미안하여 싼 멤브레인 키보드를 알아 보고 있었지만 마음에 드는건 없고
무정전 키보드는 너무 비싸고 생각보다 소음이 있었다.
그래서 난 이 키보드의 텐키부분을 잘라네어 개조가 가능할것 같아 주워 왔고 개조를 실시하였다.
키보드 모델명은 Sun keyboard Type 7 중고나라에서 무려 4~5만원에 거래되고 있었다..
무지 비싼 키보드였던것이다.
이걸 버린 사람에게 감사를 하고 분해해서 텐키부분을 잘라 버렸다.
그리고 USB선은 고장난 마이크로 소프트 마우스 선으로 대용했고
한번에 성공했다.
사진을 거의 안찍고 마지막 테스트후 조립할때 찍었다 ㅎㅎ
QEMU를 이용한 라즈베리파이2 커널 디버깅
원본 : https://github.com/iamroot12CD/linux/wiki/raspberrypi2_kernel_debug
QEMU를 이용한 라즈베리파이2 커널 디버깅
QEMU 컴파일
QEMU 다운로드
$ mkdir -p ~/git/pi2
$ cd ~/git/pi2
$ git clone https://github.com/0xabu/qemu.git -b raspi
$ cd qemu
$ git submodule update --init dtc
- QEMU 커널 BASE 주소 수정
- Qemu 소스 hw/arm/boot.c 파일 수정.
#define KERNEL_LOAD_ADDR 0x00010000
이것을 아래처럼 수정.
#define KERNEL_LOAD_ADDR 0x00008000
- compile 및 설치
$ cd ~/git/pi2/qemu
$ ./configure --target-list=arm-softmmu
$ make -j$(nproc)
$ sudo make install
라즈베리파이2용 커널 컴파일
- 참고 URL Raspberry Pi Kernel Building
- 라즈베리파이2 이미지 다운로드 Raspberry PI 2 Image download
압축을 푼뒤 raspbian-jessie.img 파일명으로 변경한다
라즈베리파이2 컴파일러 및 툴체인 설치
$ mkdir ~/git/pi2
$ cd ~/git/pi2
$ git clone https://github.com/raspberrypi/tools
- 컴파일 환경 설정 파일 만들기
$ vi env.sh
#!/bin/sh
export PATH=~/git/pi2/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin:$PATH
export KERNEL=kernel7
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
- 환경 설정 적용.
$ source env.sh
- 커널 컴파일시 추가 셋팅
$ cd ~/git/pi2/
$ git clone --depth=1 https://github.com/raspberrypi/linux
$ cd linux
$ make bcm2709_defconfig
$ make menuconfig
Kernel hacking --> Compile-time checks and compiler option --> Compile the kernel with debug info --> Enable
- 최적화 옵션 변경
$ vim Makefile
ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
KBUILD_CFLAGS += -Os $(call cc-disable-warning,maybe-uninitialized,)
else
KBUILD_CFLAGS += -O2 # --> 이것을 -O1 으로 변경..
endif
- 최적화 옵션을 설정 하지 않을려면 -O0으로 해야 하나 -O0으로 컴파일 하면 에러가 발생한다..(혹시 수정 방법을 아시는 분은 메일로 좀 알려주시길..)
- 커널 빌드
$ make -j$(nproc) zImage modules dtbs
커널 디버깅
- 컴파일 된 커널과 DTB파일 추출
$ scripts/mkknlimg arch/arm/boot/zImage ~/git/pi2/kernel7.img
$ cp arch/arm/boot/dts/bcm2709-rpi-2-b.dtb ~/git/pi2
- QEMNU 실행 스크립트 작성.
$ vi ~/git/pi2/run_qemu.sh
#!/bin/sh
AA=$(echo $PATH|grep linux-gnueabihf |wc -l)
if [ ${AA} -eq 0 ] ; then
export PATH=~/git/pi2/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin:$PATH
export KERNEL=kernel7
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
fi
BOOT_CMDLINE="rw earlyprintk loglevel=8 console=ttyAMA0,115200 console=tty1 dwc_otg.lpm_enable=0 root=/dev/mmcblk0p2"
DTB_FILE="bcm2709-rpi-2-b.dtb"
KERNEL_IMG="kernel7.img"
SD_IMG="raspbian-jessie.img"
echo "target remote localhost:1234"
qemu-system-arm -s -S -M raspi2 -kernel ${KERNEL_IMG} \
-sd ${SD_IMG} \
-append "${BOOT_CMDLINE}" \
-dtb ${DTB_FILE} -serial stdio &
QEMU_PID=$!
sleep 1
arm-linux-gnueabihf-gdb -ex "target remote localhost:1234" ~/git/pi2/linux/vmlinux
kill -9 ${QEMU_PID}
- QEMU 실행 및 디버깅
$ chmod a+x run_qemu.sh
$ ./run_qemu.sh
target remote localhost:1234
VNC server running on '::1;5900'
Reading symbols from ./vmlinux...done.
Remote debugging using localhost:1234
__vectors_start () at arch/arm/kernel/entry-armv.S:1219
1219 W(b) vector_rst
# start_kernel에 브레이크 포인트 설정
(gdb) b start_kernel
Breakpoint 1 at 0x8079d9c0: file init/main.c, line 546.
# 디버깅 시작 continue
(gdb) c
Continuing.
Uncompressing Linux... done, booting the kernel.
Breakpoint 1, start_kernel () at init/main.c:546
546 {
# 소스보기.
(gdb) list
541 vmalloc_init();
542 ioremap_huge_init();
543 }
544
545 asmlinkage __visible void __init start_kernel(void)
546 {
547 char *command_line;
548 char *after_dashes;
549
550 /*
(gdb)