어이 없게도... Hyper-V 에서 윈도우즈를 하나 더 돌리고 있는경우 이런 문제가 발생하였다.

다행히 uninstall이 아니라, 그냥 모든 가상머신을 종료하니 문제는 해결 되었다.


일단 Hyper-V가 precision timer에 영향을 미치는게 아닌가 싶은데, 혹시 관련된 패치가 없나 찾아봐야겠다.

:

(불친절한) 삽질 내용을 적어 봅니다. 친절한 버젼은 나중에 시간이 나면 업데이트 하겠습니다.

메모식으로 적어서 반말이 섞여있으니 양해 부탁드립니다

VM과 리눅스에 대한 기본적 세팅방법을 하시면 한번 해 보시면 어떨까 싶네요.


<목적>

완벽한(?) 'IP 네트워크로 보이는 PDF 프린터 VM'을 만들기 위해서 해봤다.

SMB 공유된 프린터로는 막히는 사이트들이 많기 때문에, IP 공유된 프린터를 만들어야 한다.

그냥 cups-pdf에서 만들어진 pdf를 일반적으로 많이 쓰는 http://ip:631/priters/XXX 를 가져다가 공유를 해봤자, samba와 다름없게 \\~~식으로 공유가 되기 때문에, 그런(?) 철저한 사이트들에서는 block이 됩니다.


다른 경우들을 보면, Windows에서 rawprintserver 라는 프로그램을 활용하는 방법이 있는데, 동일 PC에서는 IP문제로 안되고, Windows10_64bit에서는 동작을 하지 않음.(Win7에서만 방화벽 끄고 성공하며, PrimoPDF 등 몇개만 프린트가 가능하고, 다른 Adobe PDF등으로는 프린트가 안됨.)


<삽질 내용>

1) Ubuntu 16.04 LTS (distro xenial) 에서는 세팅하기가 복잡하다. (아래 대충 적은거 읽고 이해되면 따라하시고, 아니면 이후 버젼을 쓰자.)

   - 기본적으로 16.04에서는 apt-get으로 설치가 가능한 CUPS가 cups-lpd 모듈에 한글 처리에 심각한 버그가 있는 2.1.3 이다.

     (이것 때문에 cups를 로그를 파보는 삽질을 해봤다. 한글이 job-name이나 document-name등의 meta data에 들어가 있으면 아예 cupsd로 넘기지도 않는다. ㅠㅠ)

   - distro별 cups 버젼 참고: https://launchpad.net/ubuntu/+source/cups

   - 이것은 2.1.4부터 해결이 된 버그이기 때문에, Yakky나 Zesty를 깔아야 하는데, 16버젼에다가 이걸 깔려면 꽤나 삽질이 필요하다.

   - 내 경우 sources.list에다가 zesty를 추가하고, cups 모듈들은 zesty에서 가져오게 pinning 하여 설치하였다. 버전 conflict를 피하게 pinning이 필요하다.

File: /etc/apt/sources.list 에 하기 내용을 맨 아랫줄에 추가

deb http://kr.archive.ubuntu.com/ubuntu/ zesty universe multiverse restricted main


File: /etc/apt/preferences.d/cups 을 생성해서 하기 pinning 내용 추가
Package: cups* cups-pdf
Pin: release a=zesty
Pin-Priority: 1001

Package: printer-driver-cups-pdf
Pin: release a=xenial
Pin-Priority: 1001


설치 하기 위해서 다음의 cmd 수행:

sudo apt-get update

sudo apt-get install cups-pdf


   -  cups를 맞는 버젼으로 설치후에 다시 꼭 원상복구 해서 추후 실수로 apt-get upgrade 시에 패키지(및 커널)을 상위 버젼대(17.x)로 업그래이드 하면서 꼬이는걸 방지해야한다!


2) cups-lpd 사용 자체가 legacy한 방법이라고 권장하지 않기 때문에, service/socket 설정이 기본적으로 빠져있다.

   - systemd 설정법 참고: https://askubuntu.com/questions/916559/enable-cups-lpd-on-server-16-04-lts

   - 여기서 sudo systemctl enable cups-lpd.socket 가 빠져있다. (이거 해야 리붓하고 자동으로 켜짐)


3) cups-pdf가 파일명에 multibyte/unicode character가 들어오면 파일을 못만든다. (혹은 Linux에서만 보이고, smb에서 안보임)

   --> 파일명은 job-name이나, PS에 포함된 title을 참조하게 되므로, 다음 두가지 해결법 중 하나(또는 적당히 섞어서)를 택하면 된다.

   - 해결법1: cups-lpd에서 강제로 job-name을 설정하고, cups-pdf에서 title 대신 이것을 사용하도록 강제함(None이 파일명이 된다.)

File: /lib/systemd/system/cups-lpd@.service

[Unit]

Description=CUPS LPD server

Documentation=man:cups-lpd(8)


[Service]

ExecStart=/usr/lib/cups/daemon/cups-lpd -o document-format=application/octet-stream -o job-name=None

StandardInput=socket


[Install]

WantedBy=multi-user.target


File: /etc/cups/cups-pdf.conf 에서 하기 내용 반영

### Key: TitlePref

##  where to look first for a title when creating the output filename

##  (title in PS file or title on commandline):

##  0: prefer title from %Title statement in the PS file

##  1: prefer title passed via commandline

### Default: 0


TitlePref 1

--> 1: commandline 을 사용하게 하면 위에서 설정한 job-name을 사용하게 된다.


   - 해결법2: cups-pdf에서 title이 hex일경우 decode 하지 말라고 설정

File: /etc/cups/cups-pdf.conf 에서 하기 내용 반영

### Key: DecodeHexStrings

##  this option will try to decode hex strings in the title to allow

##  internationalized titles

##  (have a look at contrib/pstitleconv for a suitable filter for data

##   from Windows clients)

##  0: disable, 1: enable

### Default: 0


#DecodeHexStrings 1

DecodeHexStrings 0

--> 이걸 세팅하면 굳이 multibyte/unicode 인지 구분도 안되는 HEX title을 파일명으로 컨버팅하면서, 파일을 못만들어서 프린트를 못하거나 파일명이 이상한 경우가 방지된다. 그냥 HEX 그대로 파일명으로 사용하게 된다.


4) Windows에서 프린터 추가 방법

다른 드라이버 깔필요도 없고, 기본 HP 드라이버중에 뒤에 PS가 붙은것을 추가한다.

(예: Color LaserJet 4800 PS, LaserJet 2300 PS 등. )

편의상 일단 LPT로 추가하고, 다음 설정으로 TCP/IP Port를 추가 하여 포트로 세팅한다:

  - Port IP는 UBUNTU 가상머신의 주소

  - Protocol은 LPR

  - LPR Queue 이름 PDF (cups에서 알려주는 이름)

  - LPR Byte 체크박스 설정


5) 기타 참고사항

   - cups-pdf 에서 PDF 프린터가 기본적으로 share가 안되어있으므로, CUPS Admin에서 설정해 줘야 한다. (web 인터페이스에서 modify 선택하여 설정 하면 편함)

   - cups-pdf의 파일 저장경로를 전혀 딴데로 하려면 apparmor 에서 경로를 풀어줘야 한다. (selinux 스펙 때문에 별게 다 들어가서 골썩인다.)

File: /etc/apparmor.d/usr.sbin.cupsd 에서 아래같은 식으로 추가

# separate profile since this needs to write into /home

/usr/lib/cups/backend/cups-pdf {

  #include <abstractions/base>

  #include <abstractions/fonts>

  #include <abstractions/nameservice>

  #include <abstractions/user-tmp>


  capability chown,

  capability fowner,

  capability fsetid,

  capability setgid,

  capability setuid,


  # unfortunate, but required for when $HOME is 700

  capability dac_override,

  capability dac_read_search,


  # allow communicating with cupsd via Unix sockets

  unix peer=(label=/usr/sbin/cupsd),


  @{PROC}/*/auxv r,


  /{usr/,}bin/dash ixr,

  /{usr/,}bin/bash ixr,

  /{usr/,}bin/cp ixr,

  /etc/papersize r,

  /etc/cups/cups-pdf.conf r,

  /etc/cups/ppd/*.ppd r,

  @{HOME}/PDF/ rw,

  @{HOME}/PDF/* rw,

  /share/PDF-PRINTER/ rw,

  /share/PDF-PRINTER/* rw,

  /usr/bin/gs ixr,

  /usr/lib/cups/backend/cups-pdf mr,

  /usr/lib/ghostscript/** mr,

  /usr/share/** r,

  /var/log/cups/cups-pdf*_log w,

  /var/spool/cups/** r,

  /var/spool/cups-pdf/** rw,

}


   - cups-pdf가 파일명이 중복된 요청이 들어오면 그냥 덮어쓴다. job#을 파일명에 꼭 붙여서 방지해주도록 하자.

File: /etc/cups/cups-pdf.conf 에서 하기 내용 반영

### Key: Label

##  label all jobs with a unique job-id in order to avoid overwriting old

##  files in case new ones with identical names are created; always true for

##  untitled documents

##  0: label untitled documents only

##  1: label all documents with a preceeding "job_#-"

##  2: label all documents with a tailing "-job_#"

### Default: 0


Label 1


   - pdf 파일이 저장된 폴더를 samba 공유를 열어서 windows로 쉽게 꺼내게 하는건 다른 강좌들이 많으니 참고하자. 아래는 내설정

File: /etc/samba/smb.conf 맨 아래에 추가

[PDF-PRINTER]

   comment = PDF printer output

   path = /share/PDF-PRINTER

   browseable = yes

   read only = no

   guest ok = yes

   create mask = 0000

   directory mask = 0000


:

탐색기에서 Android 폰에 MTP로 파일 전송시에 

동영상이나 음악 파일 복사하면 변환하냐고 물어서 귀찮을 것이다.

어짜피 그냥 넣어도 돌아가는데...


이걸 없애는 방법이 있는데 다음과 같다.


[방법]

1. http://www.nirsoft.net/utils/shexview.html 여기서 다운로드(아래쪽에 다운로드 링크 있음)

2. 받아서 압축풀고 실행

3. 목록에서 Portable Devices Menu를 찾아서 우클릭

4. Disable Selected Items를 클릭

5. 컴퓨터 리부팅


이렇게 하면 안 뜬다고 한다.


추가: 이래도 그때는 안뜨더니 또 뜨고 있다 ㅡㅠ;

:

웹을 뒤지다 보니까, archlinux 구버젼으로 설명이 되어 있어서 init.d를 사용하는 기준으로 되어 있더라.

최근 버젼에서 쓰는 systemd 기준으로 한번 작성해 본다.

즉, 최근 버젼은 /etc/rc.conf가 존재하지 않는다.

(용어는 대충 봐 주시길... 일단 기능 이용이 주 목적이었다.)


* 목표기능:

1) Torrent: Transmission

2) FTP: vsftpd

3) SAMBA: smbd

4) 기타: HD-Idle, NTP sync, UTF-8, root 로긴 막기, swap 파티션 설정


[기본 설정]

...Pogoplug Activation, ssh 활성화

my.pogoplug.com 가서 가입하고 activation 후에

setting 쪽 뒤져서 ssh 활성화를 하자.

더불어서, 공유기 설정에가서 pogoplug의 mac address로 dhcp ip를 고정시켜놓으면 편해진다.


...Putty 다운로드, 포고에 접속

IP는 알아서 알아낸 다음에 putty로 ssh 접속한다.

root / [my.pogoplug.com에서 설정한 암호(로그인 암호 말고 ssh 설정시에 적은거)] 로 접속한다.


...Pogoplug 모델 확인: 스티커/색상을 무작정 믿을수 없다!

[명령]

cat /proc/cpuinfo

cat /proc/meminfo


[내결과 - 마벨1.2G + 256메가램]

Hardware        : Feroceon-KW

MemTotal:       256008 kB


...Archlinux 설치: 그냥 사이트 따라하자

(내 결과에 맞는 설치 방법이다.)

http://archlinuxarm.org/platforms/armv5/pogoplug-v2-pinkgray   -   installation



...다 깔고 재접속: putty로 다시 접속 한다. root/root로 되어있다.

[암호 변경]

passwd


[드라이브 자동 마운트 시키는 명령]

pacman -Sy udev-automount 


[로그인 옆에 뜨는 이름변경(사실상 hostname임)]

hostnamectl set-hostname myhostname


...연결할 드라이브 ext로 재포맷: 속도를 위함. ext3? ext4? 입맛대로 disk label을 설정해서 mount시에 생길 이름을 잘 정해주자 안그러면 안습한 이름이 기본값이 된다.

나는 ext3로 3T 외장하드를 물렸다. archlinux용 USB는 2G를 물렸고.


[개인 설정]

...ssamba 설치: 집안에서 아무 PC에서나 되게 하자.

https://wiki.archlinux.org/index.php/Samba

메모리 아끼자고 netbios 지우라고 하는데, 이게 없으면 ip로밖에 접속이 안되고,

네트워크 목록에 나오지 않는다.

리소스 그닥 안먹는거 같으니 그냥 쓰자(nmbd 이던가 하는쪽이다.)

참고로 samba user는 linux의 유저와 일치한다.

systemctl enable smbd


...ftp 설치: 접속을 위해서 공유기에서 port fwd도 설정하자.

pacman -Sy vsftpd

유저 설정이 복잡한데, virtual user를 활용하자.

https://wiki.archlinux.org/index.php/Very_Secure_FTP_Daemon


...transmission 설치: 토렌트 사용

헷갈리는게 transmission의 user를 누구로 할지이다 기본값으로는 root가 아니라 tranmission으로 돌아가니 참고

따라서 설정 편집시에 /var/lib/tranmission/.config/~~~ 를 고쳐야 함

그에 맞춰 mask도 바꾸어줘서 권한문제로 관리 안되는 경우도 막자. 위험하겠지만 그냥 0 줬다;;

아울러, 다운받은 데이터는 hdd에 저장이 되는데, .torrent 시딩관련 파일은 os쪽에 저장되는 문제를 해결 해야 할듯?


...hosts 변경: 일부 폐쇄 토렌트들을 위해서 hosts를 변경해서 접속 가능하게 하자

/etc/hosts


...Timezone, ntp 설정: Timezone을 Seoul으로 맞추고, ntp 서버를 설정해서 시간을 sync 하도록 함

timedatectl list-timezones

timedatectl set-timezone <Zone>/<SubZone>

예제: timedatectl set-timezone Canada/Eastern

https://wiki.archlinux.org/index.php/Time


ntpd와 openntpd가 있는데 나는 후자를 깔았다.

https://wiki.archlinux.org/index.php/Network_Time_Protocol

https://wiki.archlinux.org/index.php/OpenNTPD


...mirrior script 설치: 특정 폴더의 파일은 다른 드라이브에 clone 하여 저장 안정성을 높이기 위함


...root 막기: 보안을 위하여 /etc/sshd.conf 를 수정하여 root 로그인은 막아두자.


...UTF8: 2012년 12월 기준으로 archlinux 기본값이 이거더라 그냥 두자.


...HD-idle: HDD idle으로 돌려주는 데몬. pacman 깔아놓고 보면 구버젼 기준으로 작성되 있을것이다;; systemd에 센스있게 file을 하나 만들어서 자동 시작하게 하자.

http://itselfstory.tistory.com/64

이부분을 참고해서 설치.

단, rc.conf는 없으니까, /usr/lib/systemd/system/hd-idle.service 라는 파일을 만들어서 센스있게 채워 넣자.

내경우는 아래처럼:

[Unit]

Description=hdd idle


[Service]

ExecStart=/usr/sbin/hd-idle -d

ExecReload=/bin/kill -HUP $MAINPID


[Install]

WantedBy=multi-user.target

이래놓고 systemctl로 enable, start 해줬다.


...udev-automount: usb 꼽히면 /media/에 생기게 하자.


...swap partition 설정: 원할한 동작을 위해서 swap을 설정하자.

http://pogoplug.tistory.com/5


[참고]

systemctl enable/disable xxx.service : daemon 자동 시작 on/off

systemctl start/restart/stop xxx.service : daemon 시작/재시작/정지


:

설명
안드로원에서 넥서스원으로 기변을 한김에 만들어 봤습니다.

다운로드
30초 타이머 버젼만 올려봅니다 :)
위젯 버젼은 올리지 않습니다.(위젯은 사용중이 아닐 때에도 메모리에 상주하기 때문에, 만들지 않았습니다.)


사용방법
- 켜는법: 실행하면 켜집니다.
- 끄는법: a.다시 실행하면 꺼집니다. b.상단바를 내려서 안내를 눌러주셔도 꺼집니다. c.30초 타이머 후에 자동으로 꺼집니다.
- 꺼진 상태에서는 메모리에서 자동 unload 됩니다.(메모리 먹지 않아요 :) 위젯을 쓰지 않는 이유이죠 ^^ㅋ)

스샷
UI는 같으니 넥원에서 캡쳐한 스샷은 굳이 올리지 않습니다.^^;;;

넥원 해상도는 이렇지 않죠ㅠ; 여튼 저런 스타일/디자인으로 위에 뜹니다.



참고소스
http://n1torch.googlecode.com/svn/trunk/

기타
- 위젯은 많이 나와 있길래 올리지 않습니다.(제께 오히려 디자인면에서 후져요 ㅡㅡ^)
- D-Day랑 마켓에 올려볼까 싶습니다. (등록비의 압박 + 영문 멀티 Locale 지원 해야 함 ㅠ)
- 혼잣말:
소스고치다가 KH5200용 버그 발견 했네요 ㅠ
역시 드는 생각은, 스트링은 한곳에서 관리해야 하겠다는거 ㅠ;
(안드로이드는 내부 message 나리는게 스트링인지라..)
자바는 #define 없나 이러고 있네요 ㅋ;
(분명히 방법은 있는데, 코드가 작으니 걍 쓴다고 위안을..)
:

커널 or 하드웨어 버그가 맞는듯 하네요 ㅡㅡ;
몇번을 테스트 해 보아도, 커널쪽에서 데이터가 안넘어 오는군요 -ㅇ-;
프레임웍이나 다른 어플 문제는 아닌듯 합니다...

 

확인방법:
shell에서 다음 명령을 치시면...
cat /dev/input/event1 ==>키보드 동작시 input.h에 정의된 structure가 올라옵니다.
cat /dev/input/event4 ==> 터치패드 동작시 역시 올라옵니다.
깨진 글자지만(실제로는 구조체여서 hex dump 해서 내용을 볼 수 있지요) 키 하나 누를때 마다 뭔가 보이실 껍니다.
저 구조체는 커널이 올려 보내는거고, 더 나아가서는 프레임워크가 어플리케이션까지 올려주는 구조라고 합니다.

근데 키보드 먹통 상태에서는(이거 심지어 부팅 하자마자도 이러더군요..)
애초에 커널단에서 데이타가 올라오지 않는군요... -ㅇ-;;

에휴;; 어떻게 만든건지 거참 너무한다 싶네요;;
쿼티폰이 쿼티 먹통이면 결함도 상결함이죠?;;;

LG의 조속한 해결을 기대 할 뿐입니다 ㅠ;
(V10U 에서 해결 될려나;; 기대도 그닥 안되네요;; 해도 너무하는지라..)

:

<허접한 이유 설명>
초기에 커플용(?)으로 만들기시작 했습니다만,
Public 버젼으로도 내놓아 봅니다.
(커플용일때는 제작에 1시간 남짓 걸렸는데, public으로 하니 오래 걸리네요)

코드를 워낙 더티하게 짜놔서;;
나중에 마켓에 올려봐도 되는 수준인가 모르겠네요.^^;

<다운로드>



<프로그램 설명>
- 1.5 버젼 부터 호환 됩니다.^^;
- 사귄날짜~현재까지 일자 또는 남은 날자를 세어줍니다.(시작한 날은 D-Zero 로 카운팅 합니다.)
- 옵션으로 100일/1년 단위로 했을 때의 다음 기념일을 표시해 줍니다.
- 옵션으로 만난 일자 부터의 날자도 클릭시 표시하게 할 수 있습니다.
- 위젯 추가시에 날자 설정이 가능합니다. 변경시에는 삭제&재추가 부탁드립니다.
- 여러개를 동시에 추가가 가능합니다.(사귄지/시험까지/등등 각각 1칸씩 해서)
- 자동으로 1시간 단위로 업데이트 or 클릭시 업데이트 합니다.
(즉, 자정 넘는 순간 업데이트가 되지는 않습니다. 그경우 클릭해 주세요.^^; - 상주를 피해서 메모리를 아끼기 위함입니다.)

<스크린샷>

서치 위젯 아래의 1x1 위젯입니다. 클릭하면 아랫부분의 알림이 표시됩니다.

2줄정도의 제목이 설정 가능하며, 세세한 설정이 있습니다.



문제점은 리플로 부탁드립니다.^^
:

<주의 사항>
- 어떠한 문제가 발생하여도 사용자 책임입니다. ㅠ;
- 초기 버젼이므로 버그가 있을 수 있습니다.(저는 잘 되긴 합니다.)

<설명>
위젯과 어플을 둘다 만들어 봤습니다.
둘 중에 하나를 편한거 설치하셔서 쓰시면 됩니다.
1.6 버젼 기준으로 맹들어 놨습니다.
한글만 지원합니다.(어짜피 영어 쓰는 유저 거의 없을테니 하드코딩 ㅡㅡ;)



1. 앱(App) 버젼
실행해 보시면 압니다 ^^;

[신버젼 - v2]
- v3 버젼으로 업했습니다: 내부메시지 관련한 버그 수정 했습니다.( 기존에 어떻게 정상적으로 동작한건지 그저 신기할 따름이네요 -ㅇ-;;; ㄷㄷㄷ)
- 창이 뜨지 않도록 바뀌었습니다. (스크린샷을 참고해 주세요.)
- 실행시 켜짐/꺼짐을 반복합니다.
- 동장이 바로가기 아이콘이나 위젯이나 비슷해서, 더이상 위젯이 필요가 없을듯 하네요 ^^;
- 덮어설치시에 초기 몇번은 오작동 할 수 있습니다.
- 꺼졌을 때에는 Memory에서 Unload 됩니다 :)
- 안전을 위한 그리고 실수를 대비한(주머니속에서 눌리거나 해서;;) 30초 타이머가 적용된 버젼도 있습니다.^^;

[구버젼 - v1]
- Back을 누르면 꺼지면서 종료
- Home을 누르시면 그냥 켜놓은채로 종료
- 다른 어플에서 카메라를 사용중에는 사용이 안됩니다.
- 거꾸로 On 중에는 다른 어플 실행이 안됩니다.
- 꺼졌을 때에는 Memory에서 Unload 됩니다 :)

2. 위젯 버젼
- 위젯만 있습니다.
- 추가하시고 클릭에 의해서 On/Off 됩니다.
- 켜져 있는 상태에서만 `끄기` 라는 글씨가 표시 됩니다.
- 다른 어플에서 카메라를 사용중에는 사용이 안됩니다.
- 거꾸로 On 중에는 다른 카메라 사용 어플 실행이 안됩니다.
- 위젯이다보니 항상 메모리에 상주합니다.

▶ 실험해 보았는데, 앱버젼과 위젯버젼의 서로 충돌은 더이상 없는듯 합니다.^^;

<다운로드>

파일명대로 위의 것이 App 버젼,
아래 것이 Widget 버젼 입니다.

구버젼(왕창 뜯어 고친게 걍 아쉬워서 남겨 놓은 ㅋ --- 무려 윈도우가 있는 앱버젼 입니다.)


<스크린샷>
 

App-신버전(v2)의 스크린샷 입니다. 실행하면 화면에 창이 뜨지 않고, 그냥 위에 안내 메시지가 나오면서켜집니다.

 

그리고 끄려면 재실행을 하시거나, 상단 바를 눌러서 클릭해주시면 꺼집니다.

   

타이머 버젼은 이렇게 다릅니다.

 

왼쪽 위의 아이콘이 위젯 버젼(v1)의 위젯입니다.

 





<왜 두개로 만들었는가?>
1. 실력이 딸림
2. 두 어플이 충돌 가능성이 좀 있습니다. ㅠ;
3. 위젯 버전이 쪼금 더 불안정 할 수 있습니다.(메모리를 항상 차지하므로..)

문제점은 리플 부탁드립니다 !!


ps:
관련 자료를 알려 주신 샤방샤방(psyduck86) 님 감사합니다. ^ㅡ^

ps2:
자매품 한칸짜리 D-Day 도 사용해 보세요 ^^;
http://blog.portablex.com/142

ps3:
참고로 저는 여차하면 안드로원은 버릴(환불) 생각입니다 ;;
kernel/framework 단의 버그가 정말이지 심각하게 많네요 ㅡㅡ^(쩔어요 1.6주제에...)
:

보통 아웃룩이 뜨거나 할 텐데,
다음 사이트의 툴을 설치하면 G-Mail(WEB)으로 연동된다.

http://www.rabidsquirrel.net/G-Mailto/


:

안드로원 현재의 V10T 버젼에서는
표준 API의 구현 문제로 구글 음성검색이 안되고 있습니다.
이부분을 임시적으로 해결해 보았습니다.

`루팅`이 필요하니 루팅에 대해 아시는 유저분만 진행해 주십시오.

★★ 음성입력 16000Hz 강제 활성화로 음성 검색이 가능해지는 대신 다른 8000Hz 요구 어플이 문제가 생길 수도 있습니다. 참고해 주세요.★★
★★기존에 올린 16000_libaudio.so 파일에는 8000 요구 프로그램이 안돌아가는 문제가 있어서, 수정하여 재업로드 합니다. ★★
이제 shazam 이나 녹음 동영상 촬영도 됩니다.
 
1. 루팅을 합니다.(adb shell 에서 # 프롬프트를 볼 수 있어야 합니다.)
==> 루팅에 관한것은 다른 분들의 자세한 글을 참고 부탁드립니다.
대략 적자면.. Android SDK 설치해 놓으시고, ADB 드라이버(KH5200에 맞는걸로) 까시고는...
다이얼러 - 3845#*5200 - module test - stability test - enable root - [ eve&adam&&620love! ] 입력
세팅 - 응용프로그램 - 디버그 활성화(이미 활성화 되어 있었다면, 해제 했다가 다시 활성화)

2. 첨부파일을 받아서 적용

>adb pull /system/lib/libaudio.so libaudio.so
이렇게 백업합니다...
>adb push always_libaudio.so /system/lib/libaudio.so
이렇게 해서 폰에 전송해 주세요...
(혹시 read only 에러 뜨면 adb remount 를 한번 해주면 write 가능해집니다.)

3. 폰 리붓

4. 음성 검색 됩니다.

ps: 궁금증 해결...
패치된 파일은 어떻게 만들었는가? 가 궁금하실꺼 같네요.
안드로이드 donut 소스를 보면...
앵간하면 제조사가 implement 하라고 하고는 임시 코드로
if (samplingrate != 8000) 식으로 대충 때워놓은 부분이 있습니다.
어짜피 제조사에서 편집해서 여러가지 sampling rate를 지원할테니 대충 그렇게 해놨겠지요..
그 부분을 LG에서는 안 바꾸고 내놓은거지요 ;;;
참고로 LG 사이트에서 받은 코드에는 근데 그 부분이 없더군요 -ㅇ-;; 미공개 부분인가 봅니다.
(비슷한 부분이 있지만 소스가 다릅니다. libaudiofringe.so 파일입니다.)
여튼 그 so 파일을 디버거로 위치 찾고 hex로 찾아서 16000으로 바꿔 놨습니다 ㅡㅡ;

ps2: 문제점 해결...
16000 고정 했다가...
THUMB 코드 조금 공부해서
http://recipes.egloos.com/5028421 (이 사이트 참고)
걍 8000 이상으로 바꿔놨습니다 ;;;

: