Category Archives: Computer

Fix freezing Solaris kernel on boot

During an attempt to install Solaris on a real machine, I found a strange bug that caused Solaris kernel to freeze on the first boot.

This affected all post-skylake systems regardless of drive type so I originally suspected it to be related to the xHCI handoff bug with hackintosh setups, but it was actually something different.

With -v option, the last debug message shown was

root on /ramdisk:a fstype ufs

No other mentions of such bug were found on any solaris forums, but hopefully I found a similar issue on SmartOS, a solaris baed bare-metal OS: https://github.com/joyent/smartos-live/issues/727

For me, disabling both C7 states and Intel SpeedStep in BIOS setup fixed the issue, and Solaris kernel could boot up again like normal.

 

Preventing Windows guests from creating network profiles in Proxmox

Many of my servers run under the Proxmox virtual environment. For servers that doesn’t have a dedicated IP available for its guests I use iptables based NAT network to forward packets as described in my previous article: https://manatails.net/blog/2018/04/running-proxmox-with-nat/

But I came across a problem where Windows guests detect the network as ‘Unknown’ and try to create a new network profile every reboot.

2018-10-08 19_13_51-pve - Proxmox Virtual Environment

Not only it looked bad to have random names ‘Network 18’, but also the network type defaults to public network so any rules in private network get ignored until I manually set the network type to private.

I looked a bit in depth and found that the feature is called ‘Network Location Awareness’ per the original article https://msdn.microsoft.com/en-us/library/aa480195.aspx

From the page:

Digital Subscriber Line (DSL) and cable modems typically act as network address translators (NATs). As a result, their MAC addresses can be used to uniquely qualify the user’s network. NLA uses the MAC address of the user’s DSL or cable modem as the link ID.

Practically, Windows was using the MAC address of the default gateway to diffrentiate the network.

So I had to give the NAT interface a unique MAC address in order to be recognized.

2018-10-08 19_03_50-192.168.27.61 - PuTTY

Add ‘hwaddress ether’ to the interface config and give a random mac address, then windows will consistently identify the network.

2018-10-08 19_16_12-monica.mananet.net_444 - Remote Desktop Connection

Finally open regedit and go to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList then delete all entries in Profiles and Signatures to get rid of previously detected networks and reset the counter.

 

Adding a new disk to Proxmox VE

root@elizabeth:/etc/lvm# fdisk /dev/sdb

Welcome to fdisk (util-linux 2.29.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): g

Created a new GPT disklabel (GUID: DBD738EC-7ED5-4FC0-9474-1018CF3E4F12).

Command (m for help): n
Partition number (1-128, default 1):
First sector (34-500118158, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-500118158, default 500118158):

Created a new partition 1 of type 'Linux filesystem' and of size 238.5 GiB.

Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 8e
Type of partition 1 is unchanged: Linux filesystem.

Command (m for help): p
Disk /dev/sdb: 238.5 GiB, 256060514304 bytes, 500118192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: DBD738EC-7ED5-4FC0-9474-1018CF3E4F12

Device Start End Sectors Size Type
/dev/sdb1 2048 500118158 500116111 238.5G Linux filesystem

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

root@elizabeth:/etc/lvm# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
root@elizabeth:/etc/lvm# vgcreate ssd2 /dev/sdb1
Volume group "ssd2" successfully created
root@elizabeth:/etc/lvm# lvcreate --type thin-pool -L 100G -n data ssd2
Logical volume "data" created.
root@elizabeth:/etc/lvm# lvextend -l +100%FREE ssd2/data
Size of logical volume ssd2/data changed from 100.00 GiB (25600 extents) to 238.47 GiB (61049 extents).
Logical volume ssd2/data successfully resized.

Then it is possible to add the newly created LVM-Thin volume from the Web interface.

Building userdebug android images for Pixel

Those are the steps I took to build userdebug images for google Pixel on Ubtuntu 16.04. As the original google documentation is so unorganized and difficult to understand I’ve summed up the important parts to get a quick build for any device. I’m quite unsure about the package dependencies and there might be some more packages you need. Let me know if you needed more packages on clean install of Ubuntu.

1. First start with installing necessary packages

sudo apt-get update
sudo apt-get install bc bison build-essential curl flex g++-multilib gcc-multilib git gnupg gperf imagemagick lib32ncurses5-dev lib32readline-dev lib32z1-dev libesd0-dev liblz4-tool libncurses5-dev libsdl1.2-dev libssl-dev libwxgtk3.0-dev libxml2 libxml2-utils lzop pngcrush rsync schedtool squashfs-tools xsltproc zip zlib1g-dev openjdk-8-jdk

2. Building android somehow requires some x86 libraries so install them as well

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386

3. Download repo client and install it somewhere

mkdir ~/bin
PATH=~/bin:$PATH

curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

4. Make source directory and add git information for checkout

mkdir android_dev
cd android_dev

git config --global user.name "Your Name"
git config --global user.email "someaddress@someprovider.com"

5. Download actual source and build environment
Branch names can be found at https://source.android.com/setup/start/build-numbers

repo init -u https://android.googlesource.com/platform/manifest -b android-8.1.0_r28

repo sync

make clobber

6. (OPTIONAL) Download nonfree drivers, if you skip this step vendor.img will not be built.
Matching drivers can be found at https://developers.google.com/android/drivers

wget https://dl.google.com/dl/android/aosp/google_devices-sailfish-opm4.171019.016.b1-839e6b26.tgz
wget https://dl.google.com/dl/android/aosp/qcom-sailfish-opm4.171019.016.b1-3c7f92b3.tgz

tar xvf google_devices-sailfish-opm4.171019.016.b1-839e6b26.tgz
tar xvf qcom-sailfish-opm4.171019.016.b1-3c7f92b3.tgz

./extract-google_devices-sailfish.sh
./extract-qcom-sailfish.sh

7. Prepare build options and make
Available build configurations can be found at https://source.android.com/setup/build/running

source build/envsetup.sh

lunch aosp_sailfish-userdebug

make -j8

Resulting image files can be found at out/target/product/<device_name>

 

Troubleshooting #1. If build fails with “out of heap space” error, execute the commands below and continue make

export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4g"
jack-admin kill-server && jack-admin start-server

Running Proxmox with NAT

The default proxmox installation only supports basic NAT function with limited capabilities.

In order to create a working internal network you need to define a new network manually

Add the following entry to /etc/network/interfaces

vmbr0 is the WAN interface, if you use a different interface change it accordingly.


auto vmbr1
iface vmbr1 inet static
address  10.0.0.1
netmask  255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0


post-up echo 1 > /proc/sys/net/ipv4/ip_forward


post-up iptables -t nat -A POSTROUTING -s '10.0.0.0/24' -o vmbr0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.0.0.0/24' -o vmbr0 -j MASQUERADE

 

And add port forwarding rules like this:

post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 222 -j DNAT --to 10.0.0.100:22
post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 222 -j DNAT --to 10.0.0.100:22

 

Apply the settings with:
/etc/init.d/networking restart

KT 무선 공유기 커스텀 펌웨어 개발기

이번에 아는 사람에게서 남는 KT 공유기를 받았습니다.

 

딱히 쓸데는 없고 해서 분해해 보았는데, 생각보다 사양이 좋습니다.

이 기기가 그냥 통신사 공유기로 남는것은 아깝다고 생각하여 한번 해킹을 시도해 보았습니다.

 

 

모델명은 DW02-412H 으로 기가인터넷 가입 시 같이 주는 공유기인것 같네요.

IMG_20180106_010051

외형은 별 볼일 없는 평범한 공유기입니다.

 

2018-01-06 01_40_22-GIGA HomeHub

공유기의 주소로 로그인을 해 보면 재미없는 kt 인터페이스가 우리를 반깁니다.

 

2018-01-06 01_42_01-GIGA HomeHub

할 수 있는것도 거의 없습니다.

이제 이 공유기에게 새로운 힘을 줘 봅시다.

IMG_20180106_010738

우선 뒷면을 봅시다.

딱 봐도 고무 밑에 나사가 있게 생겼군요

 

IMG_20180106_010752

고무패킹을 떼고 나사를 풀어줍니다.

 

IMG_20180106_010819

뚜껑을 여니 기판이 보이네요.

 

QCA9557 칩셋과 ESMT사의 1기가비트(128메가바이트) 메모리 모듈이 눈에 띕니다.

해당 칩셋은 720Mhz의 MIPS기반 CPU를 사용합니다.

 

720Mhz CPU에 128MB 램, 128MB 낸드면 공유기로 살기에는 좀 아깝죠.

저가형 iptime 공유기들은 32메가 램에 8메가 낸드 장착 이런것도 흔합니다.

 

가장자리에 수상한 핀들이 보이네요.

보통 이런 핀들이 직렬 연결을 위해 쓰입니다.

전압을 측정하여 각각의 핀이 무슨 핀인지 알아봅니다.

 

어려운거 할필요 없이 전압계 하나면 충분합니다…

IMG_20180106_011946

가장 아래 핀은 3.3v 나오네요. VCC입니다.

 

IMG_20180106_012021

바로 위에 핀은 전압이 계속 바뀌는걸 보니 TX인듯 합니다.

 

맨끝에 핀은 0볼트 나오니 GND이고 중간에 끼인것이 RX이겠죠

 

 

IMG_20180106_012330

정리되었으니 USB 직렬 컨트롤러를 이용하여 컴퓨터와 연결합니다.

 

2018-01-06 01_27_42-COM4 - PuTTY

PuTTY를 쓰니 연결이 되긴 된것 같은데.. baudrate가 틀린지 글자가 깨집니다.

주로쓰는 baudrate인 57600, 115200 등을 적용해서 확인합니다.

 

2018-01-06 01_29_44-COM4 - PuTTY

115200이였네요

이제 부트로더와 콘솔에 접근할 수 있습니다.

uboot를 사용하고 Atheros 사의 ap135 SoC 기반인 것을 알 수 있습니다.

 

 

2018-01-06 01_58_03-COM4 - PuTTY

 

부팅이 완료되니 콘솔로 로그인이 가능하네요. 하지만 알려진 비밀번호를 다 대입해봐도 로그인이 되지는 않습니다.

 

우선 다른 작업에 들어가기 전에 펌웨어를 덤프합니다.

 

2018-01-06 17_47_46-COM4 - PuTTY

일단 bootinfo 명령어가 있으니 시스템 이미지의 정보는 알 수 있습니다.

낸드에 저장된 주소, 사이즈까지 다 알려주니 작업하기 좋네요

 

 

그런데 nand의 정보를 컴퓨터로 마땅히 가져올 방법이 없네요. 부트로더가 tftp 업로드를 지원하지 않습니다.

어쩔수없이 nand의 정보를 터미널에 출력한 다음 수동으로 헥사 파일로 변환해야겠습니다.

 

리눅스를 사용할 때가 왔군요.

 

Screenshot-manatails@W230SS: ~-1

다행히 md 명령어가 있어 시리얼 콘솔로 낸드의 내용을 출력할 수가 있습니다.

 

이를 저장한다음 파이썬 스크립트를 사용하여 바이너리로 바꾸어 줍니다.

Screenshot-manatails@W230SS: ~-Desktop

 

Screenshot-wxHexEditor 0.23 Beta for Linux

이렇게 펌웨어 덤프가 완료되었습니다. 이제 공유기가 벽돌되기라도 하면 이 덤프 파일을 사용해서 원 상태로 복구하는것이 가능합니다.

Screenshot-manatails@W230SS: ~-Desktop-1

binwalk 로 lzma 압축된 시스템 파일을 확인합니다.

0x44 까지는 헤더부분인것 같네요

 

 

Screenshot-manatails@W230SS: ~-Desktop-2

헤더부분을 제거하고 LZMA 압축을 푼 후에 다시 바이너리를 확인합니다.

커널과 루트 파일시스템이 보이기 시작하네요

 

 

Screenshot-manatails@W230SS: ~-Desktop-_ollehfirmware.extracted-1

Unsquashfs를 사용하여 파일시스템을 봅니다…만 파일을 읽을수가 없다네요?

아마 비표준 squashfs를 사용하는 듯 합니다.

그래도 다행히 이런 임베디드 제조사들이 쓰는 비표준 squashfs 규격을 모아놓은 sasquatch가 있습니다.

 

Screenshot-manatails@W230SS: ~-Desktop-_ollehfirmware.extracted

이제 파일시스템의 내용도 다 볼 수 있습니다.

하지만 여기에 시스템의 암호는 없네요. 메모리 어딘가에 감추어져 있는 모양입니다.

 

 

공유기를 싱글유저 모드로 부팅해봅시다.

 

먼저 부팅 이미지를 메모리에 로드 한 뒤 setenv로 커널 파라미터를 수정하고 부팅하면 됩니다.

 

2018-01-09 21_10_47-COM3 - PuTTY

rc를 진행하여 시스템을 마저 준비시키면 passwd 파일을 열 수 있습니다.

섀도 형식으로 되어있네요

 

섀도 파일의 형식은 $Hashid $Salt $Hash value 로 되어있는데

위 파일의 해쉬 형식은 다음 표와 같군요

passwd-5

MD5-crypt 를 사용하여 솔트 없이 암호화되었으므로 어렵지 않게 비밀번호를 알아낼 수 있습니다.

 

2018-01-09-21_23_51-C__Windows_system32_cmd.exe_

올레 공유기의 관리자 비밀번호는 ********였습니다. (KT측 요청으로 마스킹 처리 합니다.)

 

올레 개발자가 이 글을 보고 있다면 화들짝 놀라면서 보안 업데이트를 준비하겠죠

 

2018-01-09 21_32_05-COM3 - PuTTY

관리자 로그인 성공!

 

슬슬 여기에 설치할 새로운 펌웨어를 준비해 볼 시간입니다.

 

Screenshot-manatails@home-linux: ~

OpenWRT는 공유기 등에 설치를 위한 리눅스 배포판의 일종입니다.

 

Screenshot-manatails@home-linux: ~-openwrt-1

필요한 모듈들도 다 준비하고

 

Screenshot-manatails@home-linux: ~-openwrt-3

배포판에서 기본 설정을 가져옵니다.

 

Screenshot-manatails@home-linux: ~-openwrt-4

보드 설정을 들어갑니다.

이 공유기의 기반이 되는 AP135 레퍼런스 보드를 위한 프리셋이 있긴 하네요

선택해줍니다.

이후에 알아낸 일이긴 하지만 AP136-010에 내장 스위치 관련 커널 설정이 들어가있어서 그걸 사용하는게 더 지름길입니다…

 

Screenshot-manatails@home-linux: ~-openwrt-5

이것저것 컴파일을 거쳐

 

Screenshot-manatails@home-linux: ~-openwrt-6

드디어 완료되었군요

 

부트로더의 tftpboot을 이용해서 새로운 펌웨어를 올려 봅시다.

 

2018-01-08 18_53_34-Tftpd64 by Ph. Jounin

 

부트로더에서 tftp 접속 주소를 알 수 있으 니 부트로더의 환경변수를 보고 그에 맞게 서버를 열면 됩니다.

 

2018-01-08 19_42_44-COM3 - PuTTY

 

그리고 tftp로 펌웨어를 메모리에 올리고 부팅을 시도했는데 체크섬 문제로 실패했네요

 

그러고보니 올레 펌웨어의 데이터 부분이 0x44부터 시작했었죠.

원래 uboot의 헤더 크기는 0x40일텐데…?

 

uboot의 소스코드를 확인해 보았습니다.

2018-01-08 20_37_12-u-boot_image.h at master · EmcraftSystems_u-boot · GitHub

펌웨어 파일의 형식도 확인합니다.

 

2018-01-08 20_49_11-HxD - [C__Users_sub2_Downloads_tftpd_0600A8C0.img]

그림으로 대충 이렇게 나타낼 수 있겠네요

 

 

그리고 올레 펌웨어의 헤더부분을 봅시다.

2018-01-08 20_48_28-HxD - [C__Users_sub2_Downloads_tftpd_ollehfirmware.bin]

중간에 00 02 04 00 이란 이상한 값이 헤더에 포함되어있네요. 중요한 값 같지는 않고 매직넘버의 연장같네요.

 

그래서 원래 헤더를 추출하여 해당 값을 더한 후 다시 다시 CRC를 계산하여 새로운 헤더를 만들어주는 스크립트를 만들어 보았습니다.

Screenshot-manatails@linux16: ~-1

대충 쉘스크립트를 짜고

 

Screenshot-manatails@linux16: ~-2

파일에 헤더를 새로쓰는 처리를 하고

 

2018-01-19 22_36_47-COM3 - PuTTY

커널로 부팅하는데 성공했습니다.

 

2018-01-19 22_38_05-COM3 - PuTTY

하지만 이내 불만을 토로하는군요.

SPI로 작동하는 NOR 플래쉬 메모리를 인식하지 못합니다.

 

기판을 들여다봅시다.

IMG_20180119_224034

ESMT 사의 F25L16PA라는 메모리를 사용중이네요

 

2018-01-19 23_03_50-Microsoft Word - F25L32PA.doc - F25L32P.pdf

데이터시트를 참조하여

 

2018-01-19 23_04_57-manatails@home-linux_ ~_openwrt

커널 NOR 플래쉬 드라이버에 해당 칩셋이 인식될수 있게 칩ID, 섹터크기와 정보를 입력해줍니다.

 

무선 관련 설정 등이 저장되는 ART영역이 NOR플래쉬에 탑재되어있기 때문에 해당 작업이 필요합니다.

 

 

2018-01-08 21_42_38-COM3 - PuTTY

우선 부팅에 성공했습니다. 지금은 initramfs 이미지를 사용하였기 때문에 NAND 플래쉬는 사용하지 않습니다.

NAND도 일단 ECC오류를 발생하는 것을 보아 커널 수정이 필요해 보입니다.

 

Screenshot-manatails@home-linux: ~-openwrt-7

우선 이미지에서 기본 무선 설정을 활성화시킵니다.

 

 

일단 무선 연결로 설정창은 잘 뜨나 유선 연결이 되지 않네요.

아마 스위치 설정이 잘못된것 같습니다.

 

IMG_20180119_234522

스위치 칩셋은 QCA8337(AR8337)칩셋을 사용중이며 위 사진과 같이 포트가 구성되어 있습니다.

 

저는 VLAN tagging을 사용하여 LAN과 WAN 포트를 분리했습니다.

switch

그림으로 나타내면 이쯤 되겠네요.

스위치에서 tagging을 이용하여 WAN 과 LAN 포트를 CPU 포트에 연결합니다.

WAN은 eth0.2 LAN은 eth0.1으로 사용하게 됩니다.

 

2018-01-19 23_22_56-manatails@home-linux_ ~_openwrt

위에서 구상한대로 새로 스위치 설정 스크립트를 맞춰줍니다.

 

fae925c2e64fcd010a5f9963d767f6f3

유선 인터넷 연결도 성공하였습니다.

 

이제 다 된건가 생각했었는데… 생각해보니 와이파이가 2.4G만 잡히고 5G가 안잡히네요

 

2018-01-20 00_17_17-COM3 - PuTTY

커널 로그를 보니 5Ghz 칩셋 드라이버인 ath10k_pci가 오류를 내고 있었습니다.

캘리브레이션 정보를 불러오기 실패했네요.

시작에서 잠시 언급했었지만, NOR 플래쉬에 저장되는 정보 중 하나가 이 5Ghz 칩셋의 캘리브레이션 데이터입니다.

 

2018-01-20 00_19_36-manatails@home-linux_ ~_openwrt

NOR 플래쉬의 ART 영역에서 데이터를 추출해서 적용해주는 코드를 추가해줍니다.

 

 

이제 대충 모든 기능은 다 활성화되었고, 배포 가능한 펌웨어를 만들기 위해서 NAND를 활성화시켜 봅시다.

2018-01-20 01_01_34-COM3 - PuTTY

순정상태에서는 ECC오류때문에 NAND읽기가 불가능합니다.

 

사실 이부분이 시간을 가장 많이 썼던 부분이긴 한데,  실패한 시도를 다 생략하니 결국은 몇 줄의 글로 요약되는게 슬프군요.

 

관련 메일링 리스트 정독하고 다른 공유기 소스참조 등 별 시도를 다 했지만 소용이 없었고…

 

커널의 NAND 드라이버가 자동으로 ECC를 활성화 해 주지 않던게 문제였습니다.

 

Screenshot-manatails@home-linux: ~-openwrt-8

커널 수정으로 해결하였습니다.

 

 

자 이제 실제로 설치가 가능한 이미지를 만들기 위해 플래쉬 영역에 대한 구상을 해 봅시다.

기존의 플래쉬 사용은 다음과 같습니다.

 

nand

환경설정은 NOR 플래쉬의 200kb 남짓한 공간에 저장되고

128MB의 NAND 플래쉬는 펌웨어와 백업펌웨어가 차지하는 18MB를 제외한 공간이 전부 빈 공간이였습니다.

이럴거면 128메가짜리를 왜 단건지도 잘 모르겠네요.

nand2

이제 새로운 이미지에서는 뒤에 여분의 공간을 하드디스크처럼 활용하여 프로그램을 설치할 수 있도록 하였습니다.

데이터영역의 포맷은 보통 NAND에서 많이 쓰는 squashfs+jffs2로 할려했으나 그렇게 할 시 96MB에서는 오버레이 마운트 시간이 오래걸려 단일 jffs2만 사용하기로 하였습니다.

 

 

2018-01-20 01_06_00-COM3 - PuTTY

이제 깔끔하게 마운트가 되고 구성이 완료되었습니다.

 

설정이나 설치한 프로그램 등은 전부 NAND에 저장되게 됩니다.

 

 

2018-01-20 15_34_19-OpenWrt - Overview - LuCI

설정 인터페이스

 

2018-01-20 15_48_09-NVIDIA GeForce Overlay

토렌트 서버

 

2018-01-20 15_55_27-phpinfo()

PHP가 적용된 웹서버

 

 

이제 올레 공유기는 라즈베리 파이와 같은 사실상 작은 리눅스 컴퓨터라고 보시면 됩니다.

opkg를 이용해 원하는 프로그램을 설치할 수 있고 위의 사진과 같이 웹서버, FTP서버 혹은 토렌트 서버 등 활용성이 무궁무진합니다.

별볼일없던 공유기가 작은 서버가 된 것입니다.

 

iptime과 같은 국내 공유기들은 개발진들의 부재로 이런 커스텀 펌웨어가 거의 없는데, 앞으로 국내산 공유기에도 이런 개발들이 활발히 이루어지길 희망합니다.

장단점이 있긴 하지만 고사양 공유기들이 순정 펌웨어만으로 살아가는것은 자원의 낭비라고 생각합니다.

 

혹시 동일 모델의 올레 공유기를 가지고 있으신 분들을 위해서, 블로그에 커펌 적용법을 올려 놓겠습니다.

 

IMG_20180120_161004

 

매너티는 최고 존엄입니다.

KT DW02-412H 커스텀 펌웨어 적용하기

주의사항: 이 작업은 공유기의 펌웨어를 덮어 쓰는 작업으로 잘못될 시 공유기가 벽돌상태가 될 수 있습니다.

또한 DW02-412H와 같은 모델이지만 내부 구조가 다른 모델이 있는지는 확인이 불가능합니다. 아래 이미지가 현재 쓰시는 공유기와 호환이 가능한지 확인이 불가능한점 양해바랍니다.

복구를 위한 kt펌웨어는 가지고 있으나 저작권 문제로 인해 올려드리기는 어려울것 같습니다.

그리고, OpenWRT는 숙련된 사람들을 위한 배포판이기 때문에 기본 설정이 많이 어려울 수 있습니다. 리눅스 관련 지식이 있는 분들이 하시는것을 추천합니다.

 

 

DW02-412H 모델에 openwrt 커스텀 펌웨어를 설치하는 과정입니다.

공유기 자체 펌웨어 업데이트 시스템의 문제로 인하여 두번에 걸쳐 업데이트를 해야 완전히 설치됩니다.

 

 

*공유기가 WAN포트로 인터넷에 연결할 수 있는 상황이여야 합니다.

1. 펌웨어 initramfs 파일을 받습니다. http://laura.mananet.net/dw02412h/openwrt_initramfs.img

2. 올레 환경설정에서 해당 파일로 펌웨어 업데이트를 시작합니다.

3. 재부팅 후 순정 펌웨어로 다시 돌아온다면 펌웨어 업데이트를 한번 더 해줍니다.

4. telnet을 이용하여 192.168.1.1에 접속합니다.

5.다음 명령어를 입력합니다.

cd /tmp

wget http://laura.mananet.net/dw02412h/openwrt.img

mtd erase current

mtd erase firmware

mtd write openwrt.img firmware

reboot

2018-01-20 11_51_17-COM3 - PuTTY

사진참조

6. 최초 부팅은 NAND포맷 과정으로 인해 시간이 좀 더 걸릴 수 있습니다.

7. 완료되었습니다.

SouthXchange에서 매너티코인 구매 방법

많은 분들이 개인적으로 연락주셔서 한번에 정리글을 올립니다.

 

SouthXchange 자체가 처음 코인을 접하는 유저에겐 좀 생소한 인터페이스이기도 하고 해서 한번 요약해드리는 겁니다만

 

우선 명심해야할 것이 있습니다.

코인을 구매하는데에는 현금이 들어갑니다. 실수를 하면 송금을 엉뚱한 곳으로 하거나, 잘못된 코인, 잘못된 가격으로 구매를 하면 금전적 손실이 발생할 수 있습니다.

일단 처음부터 끝까지 잘 정독하시고 글을 아무리 읽어도 이해가 되지 않는다 싶으면 안 하시는것이 좋다고 생각됩니다.

 

 

2017_12_26_00_51_16_Log_In

우선 거래소에 가입부터 해야겠죠

 

2017-12-26 00_51_52-Register

이메일과 비밀번호를 입력해 주고 인증메일을 확인해 줍니다.

 

 

2017_12_26_00_56_10_Markets

로그인을 하고 나면 우선 거래장을 찾아봅시다.

Markets 창을 열고 비트코인 (BTC)로 거래되는 거래장입니다.

 

2017_12_26_00_56_52_Markets

스크롤을 내리면서 매너티코인 (MTC) 를 비트코인 (BTC)과 거래하는 페이지를 찾습니다.

왼쪽에 하트모양을 눌러두시면 즐겨찾기 추가가 되어 나중에 돌아오기 편합니다.

 

 

2017_12_26_00_59_33_MTC_BTC_0.00000055

새로 가입하셨으면 가지고 있는 비트코인이 없을 테니 우선 계좌에 비트코인을 충전해 봅시다

오른쪽에 Wallets 탭에서 BTC를 찾습니다.

 

 

2017_12_26_01_01_07_Balance

이제 비트코인 계좌를 생성해 봅시다.

Get new address 를 눌러 계좌를 생성하면 주소가 위에 Last address 부분에 표시됩니다.

이 계좌로 비트코인을 전송하면 거래소에 비트코인이 충전됩니다.

 

 

2017_12_26_01_03_49_빗썸_대한민국_대표_암호화폐_거래소

국내 거래소에서 비트코인을 구매하신 후 위와 같이 비트코인 출금 주소에 아까전의 Last address 주소를 적고 출금하시면 됩니다.

빗썸의 경우 매 출금 시 관리자가 수동으로 확인하고 출금되는 식이라 처리시간이 좀 오래 걸릴수 있습니다.

 

그런데 지금 비트코인의 가치가 2000만원, 출금 수수료 0.002 BTC는 4만원입니다. 수수료가 엄청 떼이니 비트코인보다는 훨씬 저렴한 라이트코인 (LTC)로 출금해서 다시 BTC로 환전하는 것이 훨씬 낫습니다. 라이트코인은 수수료 1700원정도

하는 방법은 전부 라이트코인 (LTC) 으로 바꿔서 메뉴를 눌러주시면 나머지는 똑같습니다.

어지간하면 처음에는 한 만원만 송금해보시고 정상적으로 되는거 확인한 후 나머지 송금하시는것을 추천합니다. 안그러면 처리 지연될경우에 불안해짐

 

2017_12_26_01_06_55_MTC_BTC_0.00000055

비트코인이 정상적으로 충전되었으면 다시 MTC/BTC 마켓을 방문합시다.

Bid가 매수주문 Ask가 매도주문입니다.

Amount에 구매하고 싶은 코인의 갯수를 적고 옆에 MTC를 눌러줍시다 (BTC를 누르면 해당하는 BTC의 가치만큼 MTC를 구매함)

Price는 1 코인 당 가격입니다. 기본은 매도주문중 최저인 값으로 되어 있지만 적당히 생각해보시고 어떤 가격에 구매하는게 좋은지 생각해서 구매하세요. 주식하고 똑같습니다.

바로 살려고 하지 마시고 매수주문 올려놓고 기다리는것이 좋습니다.

 

판매하는것도 비슷합니다. 위 화면에서 BUY대신 SELL 탭에서 같은 것을 진행하시면 됩니다.

 

 

이상으로 필요한것은 다 설명했다고 생각합니다.

코인의 가격은 시장의 요구에 따라 결정되는 것으로 오를 수도 있고 내릴 수도 있습니다.

막연히 오를 거란 기대감은 경계하세요. 코인을 사는 것은 본인의 결정이고 코인은 원래 거래를 하라고 만든 것이지 그걸로 돈놀이 하라고 만든 것이 아닙니다.

 

매너티코인에 가장 큰 도움이 되는 것은 매너티코인을 거래에 사용할 때입니다.

 

그리고 암호화폐의 특성상 제작자라 하더라도 코인이 거래가 어떻게 이루어졌는지는 알 수 없습니다.

현재 GTX1080 160개에 맞먹는 속도로 매너티코인이 채굴되고 있으며 사용자 수는 풀에서 확인된 것만 350명 가량입니다. 풀을 이용하지 않는사람을 더하면 더 많습니다.

문제가 발생할 시 거래소에 문의해야 하고 저는 이 글에 관한 문의에 답하지 않겠으며 답할 수도 없습니다.

여튼 이점을 숙지하셨으면 매너티코인에 관심을 가져 주셔서 감사드리고 잘 사용하시길 바랍니다.