2017년 12월 30일 토요일

openssl 또는 curl 로 인증서 체크 (만료기간 체크)

curl 로 인증서등 여러가지 체크를 할때 간단히 아래 명령어로 가능합니다.
$ curl --insecure -v https://www.google.com

openssl 명령어로 간단히 인증서 상태 체크 및 만료 체크를 할수 있습니다.

openssl s_client 옵션에는 많은 기능이 있습니다. -connect 단순 기능만으로 인증서 상태들을 덤프해주죠

$ openssl s_client -connect localhost:443 

아래와 같이 응용을 하여  google.com 의 인증서 체크를 해볼까요?

$ echo | openssl s_client -connect www.google.com:443 2>/dev/null | openssl x509 -noout -dates
notBefore=Nov 29 09:47:51 2017 GMT
notAfter=Feb 21 09:37:00 2018 GMT 

$ echo | openssl s_client -connect www.google.com:443 2>/dev/null | openssl x509 -noout -enddate
notAfter=Feb 21 09:37:00 2018 GMT


아래 명령어로 간단히 인증서 상태를 알수 있습니다. 
openssl x509 -in ./your.crt  -noout -text  |more
openssl x509 -in ./your.crt  -noout -dates

s_client 옵션과 응용을 한다면 아래와 같이 인증서를 덤프뜨거나 추출 확인 할수 있겠습니다.

$ openssl s_client -connect www.google.com:443   > cert 
depth=2 C = US, O = GeoTrust Inc., CN = GeoTrust Global CA
verify error:num=20:unable to get local issuer certificate
verify return:0

위의 상태에서 quit 입력 하면 cert 파일에 저장됨 
아래명령어로 인증서를 PEM 형태로 저장

$ openssl x509 -inform PEM -in cert -text -out cert.crt 

저장된 PEM 형태 인증서는 아래와 같이 확인 가능합니다.
$ openssl x509 -in cert.crt  -noout -text

2017년 12월 15일 금요일

노트북 소음 해결

오래된 노트북이면 팬 소음이 발생하기 마련인데요

이 팬소음을 줄이기 위해서 제어판 > 전원 옵션 > 고급 전원 관리 옵션 설정에서 성능을 낮춰 팬 속도를 줄이는 분들도 계시지만 팬이 느리게 돌아도 팬 자체가 닿는 소리로  고통을 느낄때가 있습니다.

노트북을 다 뜯어서 팬주위에 먼지 청소를 해도 효과가 없었습니다.

해결방법은 그리스 (구리스) 를 팬 회전축에 바르는 방법뿐이 없습니다.

동네 철물점 가면 아래와 같은 튜브형 생활 구리스를 사면되는데 그냥 자동차 공업사 같은데 말 잘해서 한주걱만 달라고 해서  한주걱만 있어도 충분할것 같네요. 

저는 아래 제품 생활 범용 그리스를 구매했습니다. 이거 구매해서 현관문도 삐걱거리는데 바르고 자전거 체인도 바르고 잘쓰고 있습니다.





저는 아래 제품 생활 범용 그리스를 구매했습니다. 이거 구매해서 현관문도 삐걱거리는데 바르고 자전거 체인도 바르고 잘쓰고 있습니다.

노트북을 다 뜯어서 팬을 분리후 아래와 같이 회전축에 살짝 그리스를 발라주면 소음이 완전 해결됩니다.


회전축에 발라주기



2017년 12월 14일 목요일

Ubuntu (Windows Bash Linux) 에서 JDK apt 로 손쉽게 설치하기


Ubuntu 기본적인 JRE/JDK 설치

기본적으로 Ubuntu 에 포함되어있는 OpenJDK 는 아래와 같이 간단히 설치합니다.

JRE만 설치시
sudo apt-get install default-jre

JDK (Java Development Kit) 가 필요한 경우
sudo apt-get install default-jdk

Oracle JDK 설치
경험상 OpenJDK 에선 불안정하거나 알수없는 문제들이 있어서 Oracle JDK를 프로덕트 환경에서 선호하는 편입니다.

Ubuntu 기본 레포지토리엔 제공하지 않으므로 아래와 같이 Oracle's PPA 레포지토리를 추가하고 레포지토리 업데이트를 해줍니다.
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update

Oracle JDK 8 를 설치하는 경우 :
sudo apt-get install oracle-java8-installer

Oracle JDK 9 를 설치하는 경우 :
sudo apt-get install oracle-java9-installer

Oracle JDK 를 설치시에는 라이센스등을 동의해줘야 합니다.

Java 환경변수등 관리하기

JDK가 여러가지 버전이 설치되어있는 경우 아래와 같은 명령으로 디폴트 JDK를 선택 할수 있습니다.

sudo update-alternatives --config java
대체 항목 java에 대해 (/usr/bin/java 제공) 1개 선택이 있습니다.

  선택       경로                                   우선순 상태
------------------------------------------------------------
  0            /usr/lib/jvm/java-8-oracle/jre/bin/java   1081      자동 모드
* 1            /usr/lib/jvm/java-8-oracle/jre/bin/java   1081      수동 모드


JAVA_HOME 환경변수 세팅하기

/etc/environment 파일에 추가합니다.
ex) Oracle JDK인 경우
JAVA_HOME="/usr/lib/jvm/java-8-oracle"

재로그온 하시거나 아래와 같이 환경변수를 먹인후 확인해봅니다.
source /etc/environment
echo $JAVA_HOME


2017년 12월 12일 화요일

노트북 힌지 수리, 너트 지지부분 부셔졌을때 수리

노트북의 힌지 부분은 뚜껑을 열고 닫을때 힘을 많이 받는 부분입니다.

저가형 노트북을 쓰다보면 이 부분이 파손이 심하고 결국 덜렁덜렁 되더군요
특히 힌지 부분을 버티는 밑에 너트 지지 부분이 부셔저 버리는 경우가 많습니다.

하우징 케이스를 알리에서 구매하거나 하는데 가격도 만만치 않고 노트북 하우징 교체가 완전히 다 뜯어내야 되서 전문가 아니면 쉬운일은 아닙니다.

대부분 힌지 부분에 아래와 같이 너트 부분 지지하는 부분이 부셔져서 경우가 많은데 간단히 수리가 가능합니다.



준비물 : 순간 접착제, 휴지

순간접착제를 그냥쓰면 순간적으로 접착이 잘되나 탄성부분이 좋지 않아 금방 접착부위가 부스러지고 떨어져나가는 경우가 있습니다.

이 기법은 프라모델 만드시는 분들이 많이 쓰는 방법입니다. 금속도 강력히 붙습니다.
제가 학창시절 모형항공기 제작때 날개 리브 부분 접착이 잘 안될때도 썼던 방법으로 매우 강력합니다.

제대로만 사용하면 원래 원 본품 보다 더 단단히 굳습니다.



저같은 경우엔 지지하는 프라스틱 테두리 마져 가루처럼 부스러졌는데 아래와 같이 휴지를 한번 둘러 순간접착제를 발라 테두리를 복원 하였습니다.

이때 살짝 살짝 순간접착제를 일자 드라이버로 살살 발라야지 잘못해서 많이 발라서 너트 안에 접착성분이 스며들어가면 너트 나사선이 좁아져서 볼트가 들어가지 않습니다. 주의해야 합니다.

아래와 같이 너트 부분 부셔진 부분에 휴지를 덧대고 위와 같이 접착성분을 살짝 살짝 발라줍니다.

너트를 살짝 올리고 옆에 지지할수 있는부분에 휴지를 살짝 살짝 덧 대서 순간 접착체를 살짝 살짝 발라줘서 충분히 지지하도록 합니다.
많이 바른다고 접착력이 좋아지는 것은 아닙니다.

한 10분정도 되면 완전 단단히 굳어 있음을 알수 있습니다.




다른쪽 너트도 떨어져나가서 같은 방법으로 지지 보강했습니다. 이쪽은 주변에 지지할께 많아서 더 단단히 굳었습니다.




조립을 마치고 나사를 강력히 조여도 떨어져 나가지 않습니다.


2017년 12월 10일 일요일

MiPAD2 twrp recovery 쉽게 진입하기

MiPAD2 에서 twrp 리커버리로 들어가려면 단축키가 잘 안먹어서 항상 애먹는다
반대로 DNX 모드는 쉽게 들어가진다.

볼륨상+볼륨하+전원키 모두 3개를 동시에 누르고 있으면 쉽게 DNX모드로 들어간다
이상태에서



fastboot boot loader.efi
fastboot oem reboot recovery

fastboot 및 MiPAD2의 loader.efi 파일은 아래에서 구할수 있다.
https://xiaomi.eu/community/threads/universal-tool-for-managing-mipad-2.36891/

Windows 10 Linux Bash 에서 XWindow manager 쓰기 (xfce4 manager 활용)

앞서 한글입력 부분에 대한것은 저의 블로그를 참조하시면 됩니다.
https://comhack.blogspot.kr/2017/12/windows-10-linux-bash-x-window.html

1. 한글 환경 만들기 
한글 환경을 한글 관련 언어팩 및 로케일 설정합니다.

sudo apt install language-pack-ko
sudo dpkg-reconfigure locales

ko_KR.UTF-8 UTF-8 선택후 로케일 생성후 기본 랭귀지로 선택


Generating locales (this might take a while)...
  ko_KR.UTF-8... done
Generation complete.

2. 윈도우매니저 선택 
gnome-session 등을 시도해봤지만 잘되지 않아 제대로 되는건 xfce4 였습니다.
xfce4 를 설치합니다.

sudo apt install xfce4

Xming 및 Xcxsrv 를 이용하여 미리 xorg 서버를 실행한후
(한글이 필요하면 입력기 미리 실행) xfce4-session 을 실행합니다.
앞서 아래와 같은 환경변수가 필요합니다.

export DISPLAY=:0
xfce4-session

저는 xcsrv xorg 서버를 "Multi windows mode" 를 이용했는데요 아래와 같습니다.


fcitx를 이용한 한글입력기 필요시엔 아래와 같인 설정후 실행합니다.
https://comhack.blogspot.kr/2017/12/windows-10-linux-bash-x-window.html 참조

export DISPLAY=:0
export XMODIFIERS=@im=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx

fcitx 실행
xfce4-session 실행

실행하고 firefox등에 자율롭게 한글을 입력할수 있습니다.


Windows 10 Linux Bash 에서 X-Window 한글입력하기

Windows 10 에서 Linux Bash 가 지원된다는것은 잘알고 계시죠?
1703 빌드부터는 Microsoft Store 에서 앱 형태로 다운받을 수 있습니다.

다만 X-Window 를 사용하는 방법에 대한 블로그나 글은 많은데 X-Window 에서 한글입력기를 완벽히 사용하는 방법에 대해서 블로그를 찾지 못해서 직접 작성하게 되었습니다.

아래 블로그를 찾았지만 잘 안되더군요.

https://medium.com/@rkttu/windows-10%EC%97%90%EC%84%9C-%EB%A6%AC%EB%88%85%EC%8A%A4%EC%9A%A9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8-%EC%84%A4%EC%B9%98%ED%95%98%EA%B3%A0-%EC%8B%A4%ED%96%89%ED%95%98%EA%B8%B0-2cb0d7892d12

직접 테스트한 결과는 아래와 같습니다.

1. xorg 서버 설치하기
우선 X-Window 를 위해서 xorg 서버 어플리케이션이 필요한데 아래 두가지를 선택할수 있습니다.

Xming https://sourceforge.net/projects/xming/
Vcxsrv https://sourceforge.net/projects/vcxsrv/


저는 Vcxsrv 를 선호합니다. 특별한 이유는 없습니다.

2. 한글 폰트 설치하기 
우선 한글을 잘나오게 위해서 한글 폰트를 설치합니다.
sudo apt install fonts-baekmuk fonts-nanum

3. 한글 입력기 설치하기

한글입력기는 여러가지 입력기를 시도해보았지만 fcitx 만 제대로 동작되었습니다.
sudo apt install fcitx-hangul

dbus-x11 에 의존적 이므로 아래를 설치해야합니다.
sudo apt install dbus-x11

4. 환경설정 
Windows에서 Xming 또는 VcXsrv를 먼저 시작하고 아래 환경변수를 줍니다.

export DISPLAY=:0
export XMODIFIERS=@im=fcitx

위에 XMODIFIERS 환경변수 세팅도 필요합니다.

.bashrc 에 미리 넣어두어도 좋을것 같네요

5. 테스트 

5.1 dbus 의존성 해결
fcitx 를 실행전 fcitx 는 dbus 메시지버스 시스템에 의존하므로 dbus 실행을 위한 machine-id 를 설정합니다.

sudo systemd-machine-id-setup
sudo dbus-uuidgen --ensure

fcitx 를 실행해봅니다. 아래와 같은 메시지후 뜨지 않습니다.
(WARN-5164 /build/fcitx-PSoVA1/fcitx-4.2.9.1/src/module/dbus/dbusstuff.c:195) Connection Error (/usr/bin/dbus-launch terminated abnormally without any error message)

그래서 아래의 링크를 참조하여 해결했습니다.
https://superuser.com/questions/1208984/sed-cant-read-etc-dbus-1-session-conf-input-output-error/1208999

아래 파일을 /etc/dbus-1/session.conf 에 복사한후 수정합니다.
https://www.apt-browse.org/browse/ubuntu/trusty/main/i386/dbus/1.6.18-0ubuntu4/file/etc/dbus-1/session.conf


아래와 명령으로 바로 수정하기
sudo sed -i 's/.*<\/listen>/tcp:host=localhost,port=0<\/listen>/' /etc/dbus-1/session.conf

fcitx 로 띄울시 아래에러에 시달린다면 저는 아래와 같이 해결했습니다.

[WARN] /tmp/SBo/fcitx-4.1.2/src/module/dbus/dbusstuff.c:83-Connection Error (/usr/bin/dbus-launch terminated abnormally without any error message)

sudo apt install dbus-x11


5.2 fcitx 실행 및 설정

아래 명령어로 fcitx를 실행합니다.
fcitx

fcitx-configtool 에서 "+" 로서 Hangul 선택합니다 한글입력방식은 여러가지가 있는데 꼭 "Hangul" 이어야 합니다.

아래 명령어로 실행
fcitx-configtool


영문입력도 하나 선택해줍니다. 아래와 같이 2개 입력이 되면 됩니다.



테스트로 한글 입력이 잘되는지 확인을 위해서 firefox 를 설치해봅니다.

5.3 firefox 로 한글입력 테스트 

firefox 를 설치합니다.

sudo apt-get install firefox

이제 한글 입력이 가능하며 언어 전환키는 기본값으로 CTRL+SPACE 입니다.
fcitx-configtool 에서 언제든기 변환 가능합니다.


2017년 12월 9일 토요일

How to make Linux dmesg seconds.nanoseconds to human readable


dmesg 를 통해서 Linux 에 많은 HW 에러등을 찾을때 도움이 되곤합니다.
그러나 라즈베리파이나 우분투 Linux 등지에서 dmesg 를 보면
부팅후 [seconds.nanoseconds] 형식이여서 언제 어떤 이벤트가 있었는지 알기 어렵습니다.

It is helpful to find many HW errors in Linux through dmesg.
But if you look at dmesg in Raspberry or Ubuntu Linux After booting, it is in the format of [seconds.nanoseconds], which makes it difficult to know when an event occurred.


[    7.537158] sd 0:0:0:0: [sda] Read Capacity(10) failed: Result: hostbyte=0x01 driverbyte=0x00
[    7.537177] sd 0:0:0:0: [sda] Sense not available.
[    7.537331] sd 0:0:0:0: [sda] Write Protect is off
[    7.537350] sd 0:0:0:0: [sda] Mode Sense: d4 80 75 b3
[    7.537461] sd 0:0:0:0: [sda] No Caching mode page found
[    7.537475] sd 0:0:0:0: [sda] Assuming drive cache: write through
[    7.539243] sd 0:0:0:0: [sda] Read Capacity(10) failed: Result: hostbyte=0x01 driverbyte=0x00
[    7.539264] sd 0:0:0:0: [sda] Sense not available.
[    7.539445] sd 0:0:0:0: [sda] Attached SCSI disk
[    8.766528] usb 1-1.5: new high-speed USB device number 5 using dwc_otg
[    8.899103] usb 1-1.5: New USB device found, idVendor=13fd, idProduct=3940
[    8.899121] usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    8.899131] usb 1-1.5: Product: External
[    8.899141] usb 1-1.5: Manufacturer: ipTIME
[    8.899152] usb 1-1.5: SerialNumber: S25YJ9CC128314
[    8.900403] usb-storage 1-1.5:1.0: USB Mass Storage device detected
[    8.900966] scsi host0: usb-storage 1-1.5:1.0
[    9.927979] scsi 0:0:0:0: Direct-Access     ipTIME   External         0309 PQ: 0 ANSI: 6
[    9.930214] sd 0:0:0:0: Attached scsi generic sg0 type 0
[    9.931797] sd 0:0:0:0: [sda] Spinning up disk...
[   12.806512] .
[   12.806823] ready
[   12.807177] sd 0:0:0:0: [sda] 1250263727 512-byte logical blocks: (640 GB/596 GiB)
[   12.807868] sd 0:0:0:0: [sda] Write Protect is off
[   12.807888] sd 0:0:0:0: [sda] Mode Sense: 1f 00 10 08
[   12.808565] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, supports DPO and FUA
[   12.836220]  sda: sda1
[   12.840260] sd 0:0:0:0: [sda] Attached SCSI disk
[   13.264948] EXT4-fs (sda1): recovery complete
[   13.264983] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)
[   14.684784] smsc95xx 1-1.1:1.0 eth0: hardware isn't capable of remote wakeup
[   14.974647] tun: Universal TUN/TAP device driver, 1.6
[   14.974674] tun: (C) 1999-2004 Max Krasnyansky 
[   15.340674] Adding 102396k swap on /var/swap.  Priority:-1 extents:1 across:102396k SSFS
[   18.788724] smsc95xx 1-1.1:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0xC5E1
[   20.743454] random: crng init done

아래 perl 스크립트로 손쉽게 사람이 알아볼수 있는 시간으로 바꿀수 있습니다.
The following perl script makes it easy to change the time you can recognize.

dmesg.pl


#!/usr/bin/perl
use strict;
use warnings;

my @dmesg_new = ();
my $dmesg = "/bin/dmesg";
my @dmesg_old = `$dmesg`;
my $now = time();
my $uptime = `cat /proc/uptime | cut -d"." -f1`;
my $t_now = $now - $uptime;

sub format_time {
my @time = localtime $_[0];
$time[4]+=1;    # Adjust Month
$time[5]+=1900;    # Adjust Year
return sprintf '%4i-%02i-%02i %02i:%02i:%02i', @time[reverse 0..5];
}

foreach my $line ( @dmesg_old )
{
chomp( $line );
if( $line =~ m/\[\s*(\d+)\.(\d+)\](.*)/i )
{
# now - uptime + sekunden
my $t_time = format_time( $t_now + $1 );
push( @dmesg_new , "[$t_time] $3" );
}
}

print join( "\n", @dmesg_new );
print "\n";

./dmesg.pl 의결과 Below is result of dmesg.pl


[2017-12-04 16:02:56]  sd 0:0:0:0: [sda] Read Capacity(10) failed: Result: hostbyte=0x01 driverbyte=0x00
[2017-12-04 16:02:56]  sd 0:0:0:0: [sda] Sense not available.
[2017-12-04 16:02:56]  sd 0:0:0:0: [sda] Write Protect is off
[2017-12-04 16:02:56]  sd 0:0:0:0: [sda] Mode Sense: d4 80 75 b3
[2017-12-04 16:02:56]  sd 0:0:0:0: [sda] No Caching mode page found
[2017-12-04 16:02:56]  sd 0:0:0:0: [sda] Assuming drive cache: write through
[2017-12-04 16:02:56]  sd 0:0:0:0: [sda] Read Capacity(10) failed: Result: hostbyte=0x01 driverbyte=0x00
[2017-12-04 16:02:56]  sd 0:0:0:0: [sda] Sense not available.
[2017-12-04 16:02:56]  sd 0:0:0:0: [sda] Attached SCSI disk
[2017-12-04 16:02:57]  usb 1-1.5: new high-speed USB device number 5 using dwc_otg
[2017-12-04 16:02:57]  usb 1-1.5: New USB device found, idVendor=13fd, idProduct=3940
[2017-12-04 16:02:57]  usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[2017-12-04 16:02:57]  usb 1-1.5: Product: External
[2017-12-04 16:02:57]  usb 1-1.5: Manufacturer: ipTIME
[2017-12-04 16:02:57]  usb 1-1.5: SerialNumber: S25YJ9CC128314
[2017-12-04 16:02:57]  usb-storage 1-1.5:1.0: USB Mass Storage device detected
[2017-12-04 16:02:57]  scsi host0: usb-storage 1-1.5:1.0
[2017-12-04 16:02:58]  scsi 0:0:0:0: Direct-Access     ipTIME   External         0309 PQ: 0 ANSI: 6
[2017-12-04 16:02:58]  sd 0:0:0:0: Attached scsi generic sg0 type 0
[2017-12-04 16:02:58]  sd 0:0:0:0: [sda] Spinning up disk...
[2017-12-04 16:03:01]  .
[2017-12-04 16:03:01]  ready
[2017-12-04 16:03:01]  sd 0:0:0:0: [sda] 1250263727 512-byte logical blocks: (640 GB/596 GiB)
[2017-12-04 16:03:01]  sd 0:0:0:0: [sda] Write Protect is off
[2017-12-04 16:03:01]  sd 0:0:0:0: [sda] Mode Sense: 1f 00 10 08
[2017-12-04 16:03:01]  sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, supports DPO and FUA
[2017-12-04 16:03:01]   sda: sda1
[2017-12-04 16:03:01]  sd 0:0:0:0: [sda] Attached SCSI disk
[2017-12-04 16:03:02]  EXT4-fs (sda1): recovery complete
[2017-12-04 16:03:02]  EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)
[2017-12-04 16:03:03]  smsc95xx 1-1.1:1.0 eth0: hardware isn't capable of remote wakeup
[2017-12-04 16:03:03]  tun: Universal TUN/TAP device driver, 1.6
[2017-12-04 16:03:03]  tun: (C) 1999-2004 Max Krasnyansky 
[2017-12-04 16:03:04]  Adding 102396k swap on /var/swap.  Priority:-1 extents:1 across:102396k SSFS
[2017-12-04 16:03:07]  smsc95xx 1-1.1:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0xC5E1
[2017-12-04 16:03:09]  random: crng init done

공유기를 이용해서 youtube, naver 동영상 사이트 차단 방법

요즘 아이를 키우는 입장에서 youtube 등의 중독이 심해서 고심중에 youtube 차단하는 방법을 연구하게 되었습니다.
특히 youtube 의 경우에 부적절한 컨텐츠가 제대로 필터되지 않는 경우가 많습니다.
간혹 저같은 고민을 하고 계시는 부모의 입장으로 도움이될까 정리해봅니다.

처음엔 단순히 웹 대표 도메인만 막았는데 어느날 보니 아이가 스마트폰으로 계속 보고 있더라구요 ㅠㅠ

yotube와 네이버TV는 앱에서 쓰는주소와 웹에서 쓰는 주소가 틀리기 때문에 완벽히 차단을 하려면 아래와 같은 주소를 차단해야 합니다.

IPTIME 공유기에서는 인터넷/WiFi 사용제한 기능으로 손쉽게 차단가능합니다.

1. youtube 웹차단 주소
youtube.com
ytimg.com
ytimg.l.google.com

2. youtube 앱차단 주소
youtube.l.google.com
googlevideo.com

3. 네이버tv
tv.naver.com
m.tv.naver.com
tvcast.naver.net
tvcast.video.p.rmcnmv.naver.com
rmcnmv.naver.com
video.nmv.naver.com

4. 아래 사진은 저의 IPTIME 공유기 설정 예제입니다.

Lenovo ideapad S300 msata SSD 달아주기

중고나라에서 저렴한 노트북을 구매하게 되었습니다. Lenovo ideapad S300 인데 i5-3세대로서 CPU성능은 쓸만합니다.
스펙참조 : http://www.lapspecs.com/detail/lenovo+ideapad+s300 

단지 disk가 SATA 500G 라 느리더군요. 다행이 이 모델은 msata ssd 가 내장으로 장착가능한 모델입니다.

자신의 노트북이 msata 를 지원하는 여부가 궁금하면 제조사 사이트를 참조하시거나 아니면 아래 사이트를 통해서 확인 가능합니다.
https://www.mydigitaldiscount.com/msata-ssd-compatability-list.html


제가 구매한 msata 는 삼성 850evo msata SSD 입니다.
스펙참조 : http://www.samsung.com/sec/memory-storage/850-evo-msata-sata-3-ssd/MZ-M5E250BW/

850evo msata SSD 개봉기는 아래와 같습니다.

단, 이제품은 고정나사가 들어있지 않아서 딱맞는 나사 1개를 찾는데 애먹었습니다.

Lenovo ideapad S300 에 RAM및 SSD를 업데이트 하기

Lenovo ideapad S300 은 업그레이드를 위해서 뒷판을 모두 따야 합니다.
아래 뒷판의 검은나사 9개와, 배터리 부분의 하얀나사 3개를 풀어줘야 하며


고무받침대를 일자드라이버로 들어내면 아래와같이 나사가 숨어있습니다.
- 배터리 부분은 바깥쪽 방향에서 들어올리기
- 아랫부분은 안쪽 방향에서 들어올리기


헤라킷으로 기스가 나지 않도록 살짝 들어서 쭉 밀어주면 쉽게 분해가 됩니다.
msata 컨넥터는 아래에 숨어 있으니

작업이 편하게 케이블을 뽑을때 일자나 손톱으로 들어올려서 케이블에 무리가 하지 않도록 들어올려줍니다.

msata 를 장착하고 케이블을 연결하여 원복시켜 줍니다.



재조립한후 삼성 마이그레이션 도구로 마이그레이션을 완료합니다.
삼성마이그레이션 도구는 아래의 사이트에서 DATA MIGRATION 항목에서 다운로드 합니다.
http://www.samsung.com/semiconductor/minisite/ssd/download/tools.html

 마이그레이션을 시작합니다.


재부팅후 FN+F2 키로 BIOS에 진입하여 부팅순서를 ssd가 우선이 되게 변경합니다.
Boot => Boot Device Priority 에서 조정 F10 키로 save 하고 빠져나오기






2017년 12월 7일 목요일

Windows 10 에서 최근 사용된 파일 표시 없애기

Windows 10 에서 최신 사용된 파일이나 폴더가 계속 있으면 편리하나 가끔 보안상 좋지 않는 경우가 발생한다. 아래와 같은 항목을 체크 해제 해주면 된다.


파일탐색기에서 마우스 우클릭 하여 옵션 클릭 그림1 참조
[그림1]


아래 그림2 에 항목제거
빠른 실행에 최근에 사용된 파일 표시 체크해제
빠른 실행에 최근에 사용된 폴더 표시 체크해제

[그림2]



또한 최근 사용된 어플리케이션에 나오는 최근 열어본 항목들은 (최근 문서)
설정 => 개인설정 => 시작 으로 들어가서
그림 3과 같이 그면 된다.

[그림3]








2017년 12월 6일 수요일

YI CCTV 17CN시리얼 직구판 한국에서 사용하는 방법

중국 상해 출장길에 샤오미 매장을 잠시 들렸습니다. 미밴드2 를 사러 갔지만 품절이 되어서 비슷한 가격대 살만한게 YI CCTV 149 위안으로 한국돈 3만원이 좀 안되는 가격이라 하나 구매 하게 되었어요.

그러나 이게 웬일입니까 한국에 와서 열심히 세팅 도중 중국에서만 쓸수 있다고 동작되지 않는것입니다. 저는 한국 정식 수입업체가 있는지도 몰랐고 구매를 할때 샤오미 매장직원이 중국에서만 쓸수 있다 경고나 안내도 없었기 때문에 한국에 돌아와서는 굉장히 열받은 상태였습니다.

그간 17CN 시리얼 CCTV 중국만 되는 문제를 샤오미 카페 및 타오투코리아 카페도 누군가 해결하겠지 시간을 기다리며 있었지만 그간 여러 회원분들의 삽질들이 계속 있으셨고... 결국 17CN 시리얼 제품들을 구매한 분들의 분노들을 느낄수 있었어요.

그냥 버린 다는 생각에 중학교 기술 시간에 배워온 라디오 만들기 납땜 및 각종 IT관련 저의 있는 모든 지식을 동원해 펌웨어 수정에 들어갔습니다.

제가 참조한 곳은 http://diy.2pmc.net/solved-xiaomi-xiao-yi-ant-home-camera-can-used-china/ 입니다.

그간 많은 글로벌 용자들이 성공 했네요. 유투브까지 올려준 용자들 링크를 공유합니다.
https://www.youtube.com/watch?v=uHColCH7SdA
https://www.youtube.com/watch?v=3e8jXuxiRzY
https://www.youtube.com/watch?v=Ui3htovxltE

----------------------------------- 설명 ------------------------------------------
1. 17CN시리얼의 펌웨어 버전 확인하기
- 17CN시리얼인지는 다 아시겠죠? 기기 뒷면에 QRCode 밑에 새겨져있죠
- 펌웨어 버전이 Q인지 C인지는 Mi 홈 앱을 깔아서 세팅후 확인할수 밖에 없네요
- 기기추가 => Yi 스마트 웹캠 => 화면에 ... 를 누르면 메뉴 마지막 한자 设置(설정) 에서 알수 있습니다. 사진1 참조

[사진1 펌웨어 버전 확인]


2. 1.8.6.1C 인경우
http://diy.2pmc.net/solved-xiaomi-xiao-yi-ant-home-camera-can-used-china/ 읽다보면 JonesChi 란분이 패치한 스크립트를 다운 받습니다.
https://mega.nz/#!bEwzXJ7J!iyiUTEW8ojOrOqBh4zLNKQpktlaqbPwuDZdL-7jBcus 를 hack_yi.tar.gz 다운받아서

압축을 풀고 SD카드 넣으면 알아서 됩니다.
tar.gz 를 윈도우에서 풀기 위해선 7Zip 등이 필요하고 아래 파일들이 SD 카드 최상위 폴더로 되게 하면 됩니다.

SD 카드는 FAT32 으로 포맷되어 있어야 합니다.
test 폴터
cloudAPI
hack_yi.sh

성공하신분들은 약 30초 소요 된다고 하네요

3. 1.8.6.1Q 인경우 준비물
Yi CCTV 를 분해해 UART 시리얼 통신을 통해 콘솔을 획득해야 합니다. 콘솔을 획득후 sd 카드 삽입후 /tmp/sd/hack_yi.sh 를 직접 실행해줘야 합니다.

시리얼 통신에 대해서 자세히 알고 싶으면 아래 링크로 대체 합니다. 과거에 모뎀 같은 통신이 시리얼 통신 방식입니다.
http://www.hardcopyworld.com/gnuboard5/bbs/board.php?bo_table=lecture_pract&wr_id=93

자세히 알필요는 없으나 궁금하신 분들은 위에 링크를 읽어보시면 되고
단지 여기선 쉽게 Yi CCTV 를 직접 접속 할수 있는 화면을 얻기 위해서 시리얼 통신 통해 연결 할수 있다고 생각하시면 됩니다.

Yi CCTV 시리얼 콘솔 접속을 위한 준비물
1) Yi CCTV 뚜겅 딸 얇은 십자 드라이버
2) 인두기 및 약간의 납 (납 플럭시가 있음 더 좋음)
3) 얇은 리드선 (RX/TX/GND) 접점에 납땜해 선을 이을 용도고 색이 구분되면 좋겠죠
4) PC
5) USB to Serial 콘솔 TTL 3.3V 용 (알리에서 1$ 미만으로 구매가능)
6) Serial 콘솔을 연결해줄 PC에 설치 할 putty 같은 터미널 프로그램 (http://www.putty.org/ 에서 다운받으며 오픈소스 라이센스로 무료입니다.)
7) SD 카드 (FAT32 포맷)

4. 뚜껑따기 및 인두질

Yi CCTV 뚜껑따는건 쉽습니다. 십자 드라이버로 4개 나사면 풀어주면 쉽게 풀리죠 ^^ 사진2 참조

[사진2 뒷 뚜껑따기]



아래 사진3 를 보면 3개의 작은 접속 접점가 있는데 이게 시리얼 포트와 연결되는 접속 접점입니다.

[사진3 Yi CCTV 의 UART 시리얼 접점 빨간색 테두리 참조]


이 작은 접점의 리드선과 인두질이 만만치 않습니다. 가장 어려운부분이라 생각됩니다.
(그래도 Q 버전 펌웨어 분들은 안될빠엔 그냥 버린단 셈치고 도전 ^^)

납땜이 익숙하지 않으신분들은 GND 부분은 저의 사진4 의 까만색 리드선 처럼 USB 전원 연결 테두리에 납땜 하시면 수월합니다

[사진4 까만색 리드선을 USB 전원 테두리에 연결해서 좀 납땜을 쉽게^^]


Yi CCTV 시리얼 신호는 USB 전원 부분 순서부터 GND / RX / TX 순입니다.
혹시 납땜이 싫으신분들은 접점 아래부분에 하얀색 암 컨넥터가 있는데 요것이 제가 볼땐 시리얼 컨넥터 같아요.

TX/RX/GND/VCC 마킹되어있고 요것 딱 맞는 컨넥터 구해서 꼽으면 될것 같은 느낌이 듭니다. (여기 맞는 컨넥터 구하기가 어려워서 전 납땜으로)

5. USB to Serial 콘솔 TTL 3.3V 용 과 연결

USB to Serial 콘솔 TTL 3.3V 종류가 많은데 대부분 보면 RX / TX / GND 표시가 되어있습니다. 표시가 안되어있는 제품은 없을껍니다.

TTL 3.3V / 5V 겸용제품도 있는데 점퍼 같은것으로 조절가능하니 TTL 볼테이지를 3.3V 에 맞추시면 됩니다.

신호를 주고 받기 위해서 USB to Serial RX와 TX를 Yi CCTV 리드선 TX와 RX 를 서로 반대로 크로스로 연결하면 됩니다. (이것은 시리얼 통신의 기본입니다. 나중에 아무런 메시지가 안나오면 RX/TX 가 뒤바뀌어 있는 경우입니다)

- GND 는 Yi CCTV GND 리드선과 연결
- RX 는 Yi CCTV TX 리드선과 연결
- TX 는 Yi CCTV RX 리드선과 연결

아래 러시아의 유투브 동영상 참조로 대체합니다. (2분에서 2분 34초 사이 참고 )
https://www.youtube.com/watch?v=S5XEjRl8UzQ

6. USB to Serial 콘솔 윈도우와 연결

PC 의 USB to Serial를 꼽으면 요즘 제품들은 자동으로 드라이버가 깔립니다.
드라이버 설치후 Serial 포트가 어떤 포트번호로로 잡혔는지 윈도우 장치 관리자에서 확인합니다.

제품마다 시리얼 포트 번호는 다르게 잡힐수 있는데 대게 COM4 ... COM9 이런식 사이에 잡히게 됩니다.

[사진5 예제는 COM4 로 잡힌 경우]


putty와 같은 터미널 프로그램을 설치합니다.
사진6을 참조하여 putty 를 실행시키고
Connection type: 는 Serial 로 바꾸시고 (기본 SSH로 되어있음)시리얼 포트 번호와 보드율을 정해서 Open 을 누릅니다.

[사진6 예제는 "Serial line" 번호는 COM4 고 "Speed "보드율은 기본 9600 => 115200 으로 지정 합니다. ]


Open을 눌렀을때 사진7 처럼 아무런 메시지가 안나오면 우선 정상입니다.

(COM 포트번호가 틀린경우나 제대로 USB to Serial 드라이버가 설치되지 않는 경우엔 Unable to open connection to 에러나 Unable to open serial port 에러를 발생시키도 실행되지 않습니다.)

[사진7 정상이면 우선 아래 화면처럼 까만색 상태]


7. hack_yi.sh 스크립트 실행
이후 Yi CCTV 에 전원을 인가합니다.
그럼 사진7 상태 까만회면에 쭈루룩 Yi CCTV 부팅과정을 볼수 있습니다. 아무런 메시지가 안나오면 엔터 한번 쳐줍니다.

제대로 되었으면 부팅후에 # 표시의 명령 프롬포트를 볼수 있습니다.

이후에 SD 카드를 삽입합니다 (사전에 C 펌웨어처럼 hack_yi.tar.gz 의 내용이 압축을 풀어 SD카드 최상위 에 설치되어있어야 하며 미리 전원 인가전에 삽입해 있어도 됩니다.

SD카드를 삽입하면 SD 카드가 /tmp/sd/ 에 마운트 되었다는 메시지가 나옵니다.
엔터 한번 쳐주시고 이상태에서 터미널에서 /tmp/sd/hack_yi.sh 를 쳐줍니다.
그럼 재부팅이되면서 성공입니다.

8. 마지막으로 ...
화면에 아무런 메시지가 안나오는 경우엔
- RX/TX 가 뒤집어 져있는경우 이럴땐 다시 바꿔봅니다.

화면에 잡음이 발생경우
- 볼테이지 겸용 제품의 USB to serial 제품은 3.3 v 와 5v 와 TTL 볼테이지가 안맞는 경우로 3.3v 로 조정
- putty 에서 speed (보드율) 이 안맞는 경우 115200 으로 되어있는지 확인

다음번 펌웨어가 실수로 업뎃하거나 그럴경우 또 막힐수 있으므로 어렵게 납땜한 리드선은 뒷 뚜껑 닫아도 안에 공간이 있으니 잘 둘둘말아서 또 써먹기 ^^

KODI HDMI-CEC 에서 LG Simple-link 사용

대부분 LGTV에서는 simple-link 기능으로 HDMI에 연결된 기기를 리모콘으로 제어할수 있다.

http://www.lg.com/us/lgeai/HDTV/resources/UserGuides/webOS1/contents/share/simplink_all/kora/w14__share__simplink_all__kora.html

라즈베리파이 KODI 도 간단히 simple-link 기능으로 "HDD레코더 감상" 기기로 연결하면 라즈베리파이 전용 리모콘이 없어도 제어가 가능하다.

그렇지만 LGTV 리모콘에서는 홈 버턴과 돌아가기 버턴이 없어서 불편하니 keymap 파일을 아래와 같이 매핑 해두었다.

돌아가기엔 리모콘 맨부분 << 로 되돌아간다.
홈으로 갈땐 네모 로 누르면 돌아간다.

동영상이 재생중일땐 동영상기능이 먼저 먹기 때문에 동영상등을 중지시키고 쓰면된다.

아래파일을 참고

/home/pi/.kodi/userdata/keymaps/remote.xml

<keymap> <global> <remote> <skipminus>XBMC.Action(PreviousMenu)</skipminus> <stop>XBMC.ActivateWindow(Home)</stop> <blue>ContextMenu</blue> </remote> </global> <home> <remote> <red>XBMC.ActivateWindow(VideoLibrary,TvShowTitles)</red> <green>XBMC.ActivateWindow(VideoLibrary,MovieTitles)</green> <yellow>XBMC.ActivateWindow(MyMusic)</yellow> </remote> </home> <fullscreenvideo> <remote> <play>Play</play> <pause>Pause</pause> <stop>stop</stop> <skipplus>FastForward</skipplus> <skipminus>Rewind</skipminus> <blue>Info</blue> <yellow>NextSubtitle</yellow> <green>subtitledelay</green> </remote> </fullscreenvideo> </keymap>
<keymap><fullscreenvideo><remote><green><br /></green></remote></fullscreenvideo></keymap> 원래는 아래와 같이 해야 한다.
https://goodgle.kr/4921 에서 참조함

– ‘정지’를 누른 후 ‘OK’ 키를 누르면 뒤로 가기
– ‘정지’를 누른 후 ‘일시정지’ 키를 누르면 최상위 메뉴로 이동
– ‘정지’를 누른 후 ‘재생’ 키를 누르면 부가기능 메뉴(마우스 오른클릭과 동일)가 뜬다.