USB / eSATA 하드를 내장 하드로 인식시킬 때 헥사 코드 알아내기

2cpu NAS 게시판에 올렸던 내용 복&붙…ㄷㄷㄷ (http://2cpu.co.kr/nas/13344)

 


 

이번에 MSI Cubi N 기기가 하나 남아서 SSD 128G 장착하여 헤놀로지 올리고 NAS로 잘 사용하고 있었습니다.

하지만 어쩔 수 없는 용량의 압박으로 곧 1TB USB 외장하드를 붙이게 되었고

웬만한 자료(다운로드, Photo Station, Video 등)들은 모두 이 외장하드에 저장하고 싶었습니다.

처음 도전한 mount –bind 방식은 리눅스의 ln -s 와 같이 간결하게 해결해 줄 수 있지만

약간 좀 꺼름칙한 느낌을 지울 수 없습니다. 게다가 중간에 연결이 끊기는 상황도 발생되더라구요. (ㄷㄷㄷㄷㄷㄷㄷ 아직까지 미스테리 입니다.)

안되겠다 싶어 USB 외장하드를 내장 볼륨으로 인식시키는 방법을 구글링하기 시작했습니다.

그러던 중 synoinfo.conf 파일을 약간 건드리면 인식된다는 글을 발견하고 수많은 삽질을 했습니다.
1. /etc/synoinfo.conf
2. /etc.defaults/synoinfo.conf
* 2가지 모두 수정

무한 삽질 끝에 성공하였고

혹시 저와 같이 외장하드를 내장으로 인식시키고 싶으신 분들이 계실지도 모른다는 생각에

좀 더 편리하게 삽질(..)을 하실 수 있도록 웹 페이지를 제작하였습니다.

http://zective.com/code/xpenology/

 

1) usbportcfg
2) esataportcfg
3) internalportcfg

synoinfo.conf 파일의 위 3가지 헥사 값을 편리하게 알아내어 수정할 수 있습니다.

 

[프롤로그]

이미 많은 분들이 아시겠지만

USB / eSATA / 내장장치의 인식이라고 해야하려나요..

이걸 헥사값으로 처리하고 있습니다.

저의 경우엔 다음과 같았습니다.

usbportcfg=”0x300000″

esataportcfg=”0xff000″

internalportcfg=”0xfff”

왜인지는 모르겠지만 MSI Cubi N 스펙에 eSATA 포트가 8개까지 사용할 수 있도록 설정되어 있었고

내장은 12개의 포트가 사용할 수 있었습니다. (아마도 기본이려나요..?)

USB 관련은 당시 제가 꽂아놨던 외장 2개가 바르게 인식되어 0x300000 값으로 되어있었습니다.

여기서 0x300000 헥사(16진법)값은 이진법(바이너리)으로 ’11 0000 0000 0000 0000 0000′(총 22자리) 으로 나타낼 수 있습니다.

일단 0은 모두 무시하시고 ‘1’이 2개인데 현재 구동중인 헤놀로지에서 인식/구동중인 USB 포트라고 생각되어집니다. ㄷㄷㄷㄷㄷ

일반적인 글은 왼쪽에서 오른쪽으로 읽혀지지만

헤놀로지의 이 설정(이진법) 값은 오른쪽에서 왼쪽으로 우선순위가 결정된다고 보여집니다.

1 1 0000 0000
2번째 1번째
USB USB

예를 들어 1번째 USB 외장하드를 내장으로 인식시키고 싶다면

먼저 USB로 인식되지 않도록 해당 포트의 값을 꺼야(0으로 수정)합니다.

그러므로 위 이진법 값을 다음과 같이 수정하시면 됩니다.

’10 0000 0000 0000 0000 0000′ = 11 -> 10 으로 수정

그 후 내장으로 인식될 수 있도록 해당 위치의 값을 1로 변경해 주셔야 합니다.

앞서 말씀드린대로 제 경우의 internalportcfg 값은 ‘0xfff’ 였습니다.

이 헥사값은 이진법으로 나타내면 ‘1111 1111 1111′ 인데.. 위 USB 헥사값은 총 22자리 였는데 이번엔 12자리입니다.

일단 눈으로 보기 편하도록 usbportcfg 이진법 기준으로 모두 22자리를 맞춰줍니다. (빈자리는 0으로 채우면 됩니다.)

따라서 최종적으로 internalportcfg 값은 다음과 같습니다.

’00 0000 0000 1111 1111 1111’

수정한 usbportcfg 이진법 값에서 좌측 2번째 값을 1에서 0으로 변경했었습니다.

이제 이것에 맞춰 internalportcfg 이진법 값의 좌측 2번 값을 0에서 1로 변경하시면 됩니다.

이제 마지막 단계입니다.

synoinfo.conf 파일(2개 – /etc/ && /etc.defaults/)의 각종 *portcfg 값은 헥사값이었습니다.

변경된 이진법 값을 헥사로 변경하시고 저장 후 재시동 하시면 됩니다.

제 경우, 다음과 같이 수정되었습니다. (esataportcfg 값은 변경사항 X)

1. usbportcfg
기존) 0x300000
수정) 0x200000

2. internalportcfg
기존) 0xfff
수정) 0x100fff

업무중에 눈치봐가며 작성한터라 내용이 뒤죽박죽 산으로 가는 거 같네요 ㄷㄷㄷㄷ

부디 편리하게 사용해주시길 바랍니다..ㄷㄷㄷ