==== *1

초기 설치를 위한 SD 카드 이미지 "cm_ovation_11.0_02APR2014_HD_SDC_NOEMMC_IMG.7z"를 원제작자님 블로그에서 다운로드하지 못하시는 분들운 아래 링크에서 내려받으세요.

https://drive.google.com/uc?id=0BzLI1YeI_BXzTVJnYUIxamIzaWM&export=download


아래에서 요렇게 언급했었는데요.

"(다만, 강좌에서 cm_ovation_11.0_02APR2014_HD_SDC_NOEMMC.zip 파일을 한번 더 플래싱하는데, 그럴 필요는 없을 것 같습니다. 원글의 설명을 읽어보면 해당 파일은 SD 카드를 만들때는 필요없다네요.)"

설치할 필요가 없는 게 아니라, 애초에 설치가 안 되는 것이었네요...

꼭 설치하셔야 한다면, zip 파일 안의 "META-INF/com/google/android/updater-script" 파일에서 시스템 파티션을 지정한 부분을 적절히 고쳐주세요.


덜 고친 부분이 있었네요. 죄송합니다 (--)(__)

flashable_expand_bootable_sdcard_noemmc_ovation.zip (데이터 파티션 용량 확장 스크립트) 도 수정한 파일을 추가하여 새로 업로드했습니다.

(역시 mmcblk0 -> mmcblk1 로 수정하였습니다.)

다운: https://db.tt/mN1H58eq

  • 해당 스크립트를 플래싱하면 데이터 파티션이 포맷되니, 그 전에 중요한 자료를 꼭 백업해주세요.

더는 실수가 없었으면 좋겠네요...


켈켈켈로그님의 설치 방법대로 해봐도, 기기를 켜면 Loading BOOT에서 안 넘어가시는 분들!

아래와 같이 해보세요~

혹시 내장메모리가 아직 살아는 있다면, 기기 정보(WiFi 맥주소 등)가 담긴 파티션을 백업해둔 후… (글 아래쪽을 참조해주세요. 안 하셔도 돼요.)

다음 링크의 파일을 받고 ( https://db.tt/zWFb76YQ 위의 링크를 이용해주세요. )

켈켈켈로그님의 설치 방법을 따르되

http://www.ppomppu.co.kr/zboard/view.php?id=androidtab&no=60564

Win32DiskImager로 SD카드에 이미지를 기록하신 후에

    1\. 탐색기에서 SD카드 드라이브(공간이 170MB 가량인 드라이브)로 들어가면

    2\. devconf 폴더, kernel, MLO, ramdisk 파일 등이 들어있는 것이 보입니다.

    3\. ramdisk와 ramdisk.cwm 파일을 백업(이름바꾸기 등)하신 후

    4\. 첨부한 파일의 압축을 풀어 넣어주세요. (ramdisk, ramdisk.cwm을 바꿔치기합니다.)

    5\. 기기 정보를 백업해두셨다면, devconf 폴더의 각 파일을 편집해주세요. 원글에도 써 있는 것처럼 지우시면 안 돼요!

나머지는 강좌의 방법을 그대로 따라주세요.

(다만, 강좌에서 cm_ovation_11.0_02APR2014_HD_SDC_NOEMMC.zip 파일을 한번 더 플래싱하는데, 그럴 필요는 없을 것 같습니다. 원글의 설명을 읽어보면 해당 파일은 SD 카드를 만들때는 필요없다네요.)


안녕하세요.

나무거울님의 벽돌누크 CM11버전 소개와

http://www.ppomppu.co.kr/zboard/view.php?id=androidtab&no=60432

켈켈켈로그님의 성공기 겸 설치 방법을 보고 저도 설레는 마음으로 설치를 시도해보았습니다.

http://www.ppomppu.co.kr/zboard/view.php?id=androidtab&no=60564

그러나 제 기기에서는 SD카드에 이미지를 잘 씌우고 부팅시키더라도, Loading BOOT만 표시되고 감감무소식이더군요. 리커버리로 부팅하게 해 보아도 부팅하는 데 한나절이 걸릴 뿐더러 SD카드의 파티션들이 마운트되질 않았습니다.

그런데 가만보니, 그동안 써왔던 verygreen님의 벽돌롬과는 달리 SD카드 파티션이 아래와 같이 잡히더군요.

Verygreen롬: /dev/block/mmcblk0p*

이번에 설치한 롬: /dev/block/mmcblk1p*

하지만 리커버리는 내장 메모리를 가리키는 mmcblk0p* 주소를 쓰도록 되어있더군요. (/ovation.fstab 참조) 즉, 제 기기에서는 여전히 내장 메모리를 쓰려고 했던 거였죠. 그래서 부질없는 메모리 인식 시도를 하느라 리커버리 진입이 매우 오래 걸렸던 것이었습니다.

켈켈켈로그님의 경우는 아마 SD카드 인식이 빨리 되어서 잘 되었던 게 아닌가 싶네요. 잘 모르겠습니다.

SD카드 파티션이 0번으로 잡히게 만드는 게 가장 좋겠지만 그건 못했고, 그 대신 mmcblk0p 대신 mmcblk1p를 쓰도록 램디스크를 수정해 보았고, 일단은 성공했습니다. 이거 제대로 한 건지는 모르겠네요.

리눅스에서 아래 두 글을 참조하여 램디스크를 풀고 mmcblk0 이라고 씌인 부분을 필요에 따라 mmcblk1로 고치거나 주석처리한 후 다시 묶어 만들었습니다.

http://www.isysop.com/unpacking-and-repacking-u-boot-uimage-files/

http://www.thegeekstuff.com/2009/07/how-to-view-modify-and-recreate-initrd-img/

같은 방식으로 SD 카드용으로 만들어진 다른 롬도 올릴 수 있을 것도 같지만, 기기 시리얼이랑 와이파이 맥주소 씌우는 법을 모르니 안되겠네요 ㅎㅎ

또, 희한하게도 킷캣 롬을 올리고 나니 내장 메모리가 완전히 죽어버렸는지 이젠 파티션 목록도 안 보이네요 ㅠㅠㅠ 아마 우연이겠지만요. 그러니 새 롬을 올리기 전에 가능하다면 기기 정보를 백업해보시는 게 좋겠습니다.

안 되더라도 제가 책임지지는 않겠지만…, 잘 되신다면 댓글 남겨주세요~

감사합니다.


*참고 - 내장메모리의 기기 정보 (기기 일련번호 및 와이파이 맥주소) 파티션 백업 시도하기

(verygreen님 벽돌롬 기준입니다!)

    1\. 기기에서 '터미널 에뮬레이터' 앱을 실행해주세요. 또는, 컴퓨터에 연결하고 adb shell을 실행하여 터미널 창을 띄워주세요.

    2\. 앱에서 실행하신다면 글씨가 너무 작으니 환경설정에서 글씨 크기를 좀 키워주시고 (16pt 추천드립니다)

    3\. _ls /dev/block/_ 을 입력하여 내장 메모리 파티션이 보이는지 확인해주세요.

                a. mmcblk?boot0과 같은 항목이 있는지 찾아보고, 물음표로 표시한 숫자가 무엇인지 보세요. 아마 1일 겁니다.

                b. 또는, mmcblk로 시작하는 항목 중에 mmcblk0이 많은지 mmcblk1이 많은지 둘러보세요. 아마 mmcblk1로 시작하는 항목이 많을테고, 그 쪽이 내장 메모리입니다.

                c. 이제 mmcblk1이 내장메모리라고 가정하겠습니다.

                d. mmcblk1p5가 보이는지 확인해주세요. 해당 이름의 파티션에 기기 정보가 담겨있습니다.

    4\. _su_ 해서 루트 권한을 얻으세요. 이제부터는 관리자가 되셨으니 조심히 입력해주세요. 한방에 훅 갈 수 있어요.

    5\. _dd if=/dev/block/mmcblk1p5 of=/data/media/0/dev.img_ 라고 입력하여 해당 파티션을 내부 저장소에 백업하세요. 파티션 이미지 이름은 편하신 대로 입력하시면 됩니다.

    6\. 잘 되었다면, 복사 용량, 걸린 시간이 표시되고 프롬프트가 다시 표시됩니다.

    7\. 파티션 용량이 작기 떄문에(50MB) 1분을 기다려도 아무 응답이 없다면 이미 글러먹은 겁니다. 아쉽지만 포기하세요 ㅠㅠ

    8\. 이제 컴퓨터에 연결하여, 저장소 최상단에 있는 백업 파일을 컴퓨터로 꺼내세요.

    9\. 7-zip([http://7-zip.org/)을](http://s.ppomppu.co.kr/?idno=androidtab_60744&target=http://7-zip.org/)%EC%9D%84) 이용하면 백업한 이미지를 열어볼 수 있습니다. 다른 프로그램도 있겠지만 잘 모르겠네요.

    10\. 이미지를 열면 보이는 devconf 폴더 안에 DeviceID, WifiMAC 같은 파일이 보일겁니다. 이 파일을 좀 있다가 새로 만든 SD카드에 넣어주시면 됩니다.

    • 위처럼 파티션을 백업하지 않고, 저 같은 경우에는 읽기 전용으로 파티션을 마운트할 수도 있었습니다. 그렇게 열어서 와이파이 맥주소만 빼와도 되겠네요.

=== *2

안녕하세요.

지난번에 아래 글로 내장메모리가 손상된 누크 HD+를 위한 CM11 롬이 부팅될 수 있도록 한 수정 파일을 올려드렸었는데요,

( http://www.ppomppu.co.kr/zboard/view.php?id=androidtab&no=60744 )

얼마 전에 7월 2일자 새 버전이 원 저작자님 블로그에 게시되어, 이 버전도 수정하여 올려드립니다.

( http://iamafanof.wordpress.com/2014/04/02/cm11-0-kitkat-android-4-4-2-for-bricked-no-emmc-nook-hd-02apr2014/ )

  • 처음에 소개해주신 분들

나무거울님의 벽돌누크 CM11버전 소개 - http://www.ppomppu.co.kr/zboard/view.php?id=androidtab&no=60432

켈켈켈로그님의 성공기 겸 설치 방법 - http://www.ppomppu.co.kr/zboard/view.php?id=androidtab&no=60564

애봇님의 정리글 - http://www.ppomppu.co.kr/zboard/view.php?id=androidtab&no=62866

  • 주의사항

1. 이 롬은 13년 8월 15일자 cm10.1 나이틀리를 올렸다가, TRIM 문제 때문에 내장메모리가 벽돌된 기기를 가지고 계신 분들을 위한 것입니다.

CM10.1에서 CM11로 올리다 부팅이 안 되시는 분, 배터리 충전 문제로 벽돌이 되신 분 등의 경우를 위한 것이 아닙니다!

2. 켈켈켈로그님처럼 부팅 파티션의 ramdisk 파일을 수정하지 않아도 부팅이 잘 되는 경우, 원저작자님 블로그에서 cm_ovation_11.0_02JUL2014_HD_SDC_NOEMMC.zip 을 바로 받으세요. 받으신 파일을 바로 플래싱하시면 됩니다.

  • 준비물 - 다음 파일을 다운로드해 두세요.

7월 2일자 CM11 롬 (ramdisk 수정) ( https://docs.google.com/uc?id=0BzLI1YeI_BXzVXZ3SUlRcFhROE0&export=download )

작성일 현재 최신(8/4) gapps ( https://docs.google.com/uc?id=0BzLI1YeI_BXzS2JoaFp4QmRYelU&export=download )

** gapps는 다음 링크의 페이지에서 PA 롬 용 마이크로 (최소 용량) 버전을 다운로드해 첨부했습니다.

( [http://forum.xda-developers.com/showthread.php?t=2397942](http://s.ppomppu.co.kr/?idno=androidtab_69338&target=http://forum.xda-developers.com/showthread.php?t=2397942) )

여기서 직접 최신 버전을 받으시거나, 다른 곳에서 받아다 쓰셔도 될 것 같습니다.
  • 설치법

1. SD 카드에 롬을 처음 설치하시는 경우, 애봇님의 글 대로 설치해주세요.

( http://www.ppomppu.co.kr/zboard/view.php?id=androidtab&no=62866 )

2. 태블릿을 컴퓨터와 연결한 후, 받은 파일을 넣으세요.

3. 혹시 모르니, 중요한 데이터를 백업하세요.

4. 태블릿을 재시작한 후, 리커버리 모드로 부팅하세요. (cyanoboot 로고 떴을 때 홈 버튼을 길게 눌러 부트 메뉴 띄운 후, 리커버리로 부팅)

5. 롬과 gapps를 차례대로 플래싱하세요.

6. 태블릿을 재시작하고, 부팅이 잘 되나 보세요.

7. 데이터 백업을 잘 해두셨다면, 리커버리로 다시 부팅하신 후 Wipe 메뉴에서 사용자 파일 빼고 초기화를 해도 좋겠습니다.

  • 테스트

빈 SD 카드에서 지난 버전 이미지 설치 -> 새 버전 플래싱 차례대로 수행해보았는데, 잘 되네요. 별 문제 없이 잘 동작하는 것 같아 게시해봅니다.

이번엔 ART 모드로도 잘 동작하는 것 같네요.


초기 설치를 위한 SD 카드 이미지 "cm_ovation_11.0_02APR2014_HD_SDC_NOEMMC_IMG.7z"를 원제작자님 블로그에서 다운로드하지 못하시는 분들운 아래 링크에서 내려받으세요.

https://drive.google.com/uc?id=0BzLI1YeI_BXzTVJnYUIxamIzaWM&export=download

== *3

사실 다른 태블릿으로 갈아타고 누크는 집에 방치해둔 터라 새 롬에 관심이 없었는데, 감사하게도 마이팟님께서 새 롬 소식을 알려주셨네요~

이번에도 원제작자님 롬에서의 수정 사항은 별로 없는데요, 문제는 업그레이드가 매끄럽지 않습니다...

저는 초기화 없이 zip 파일 플래싱만 했는데, CyanoBoot 로고에서 넘어가는 것도 오래 걸리고(실패한 줄 알고 리셋 여러 번 했었어요), 부팅 애니메이션도 한참 반복된 후에야(이 때도 리셋 한 번 정도 했었어요) "안드로이드 업그레이드 중" (ART 런타임으로 쓰고 있어서 앱 실행 준비가 필요해요) 화면으로 넘어갔습니다. 컴퓨터 문제로 태블릿과 ADB 연결이 안되는 바람에 왜 그랬는지는 모르겠네요.

아무튼 이렇게 고생한 이후에는 그럭저럭 잘 작동하네요. 다만 지난번에 글 썼었던, 제 기준으로 ART 모드에서 호핀 앱 실행시 리셋되는 문제는 여전하고요. 그 외 확인되지 않은 문제가 있을 수 있습니다.

따라서 1. 테스트를 제대로 하지 않았고, 2. 업그레이드가 잘 안 되는 것 같으니 만에 하나 데이터가 싹 날아갈 위험이 있을 겁니다. 그러니 데이터 백업을 제대로 했고 저를 위해(?) 삽질하실 생각이 있으신 분이 아니시면 아직은 설치하지 않으시는 것이 좋겠고요, 저를 위해 쓰실 시간이 있으신 분들... 제발 테스트해주세요!! ㅠ.ㅜ

그런데... 대체 뭐가 개선되었는지 모르겠네요 ㅎㅎ

( zip 플래싱할 때, 스크립트가 시스템 파티션만 건드리니 만약의 경우에도 데이터는 안전할 것으로 생각됩니다... 아마도요 )

  • 이전 글 및 감사한 분들

원저작자님 - http://iamafanof.wordpress.com/2014/11/04/cm11-0-kitkat-android-4-4-4-for-bricked-no-emmc-nook-hd-04nov2014/

나무거울님의 벽돌누크 CM11버전 소개 - http://www.ppomppu.co.kr/zboard/view.php?id=androidtab&no=60432

켈켈켈로그님의 성공기 겸 설치 방법 - http://www.ppomppu.co.kr/zboard/view.php?id=androidtab&no=60564

애봇님의 정리글 - http://www.ppomppu.co.kr/zboard/view.php?id=androidtab&no=62866

마이팟님의 정리글 및 새 버전 소개 - http://www.ppomppu.co.kr/zboard/view.php?id=androidtab&no=77019

*0. 참고사항

  • 작년 8월 15일자 CM 나이틀리를 올려서 트림 기능이 작동했거나, 또는 비슷한 이유로 내장메모리 읽기/쓰기가 안되는 내장메모리 벽돌 증상을 겪는 분들을 위한 롬입니다. 리커버리 버전이 낮아서 벽돌된 경우 등 내장메모리 벽돌이 아닌 경우에는 다른 복구 방법을 이용하세요.

  • 혹시 모를 사태를 대비해, 중요한 데이터를 꼭 백업해두세요.

  • 기존 버전이 설치된 상태에서 업그레이드하는 경우만 고려했습니다. 처음부터 새로 설치하시는 경우는 테스트해보지는 않았지만, 아래에 써둘 방법을 참고해주세요.

*1. 다운로드할 파일

CM11 141104 롬 + 램디스크/설치 스크립트 수정본 (cm_ovation_11.0_04NOV2014_HD_SDC_NOEMMC_fix.zip)

( https://drive.google.com/file/d/0BzLI1YeI_BXzZWFYaExFdTZqdDA/view?usp=sharing )

ParanoidAndroid 개발자들의 Gapps 141121일자 Nano 버전 (pa_gapps-modular-nano-4.4.4-20141121-signed.zip)

( https://drive.google.com/file/d/0BzLI1YeI_BXzdnBtWk1rbXA2WU0/view?usp=sharing )

  • 플레이스토어, 구글 검색, 동기화 관련 모듈만 들어있는 버전입니다. 런처 같은 건 필요없으니까요!

  • 올려드린 것보다 최신 버전, 또는 구글 앱들이 더 많이 포함된 다른 버전을 원하신다면 아래 페이지에서 직접 받으시면 됩니다.

( http://forum.xda-developers.com/showthread.php?t=2397942 )

*2. 설치 가이드 (기존 업그레이드 방법과 같습니다)

a. 중요한 데이터를 백업해두세요.

b. 태블릿을 컴퓨터와 연결한 후, 위에서 다운로드한 파일을 태블릿으로 옮기세요.

c. 리커버리 모드로 재시작하세요. (1. 재시작시킨 후, 2. CyanoBoot 로고가 뜰 때 홈 버튼을 길게 누르고 있으면 "2. SDC Recovery"가 선택되어 있는 메뉴 화면이 뜹니다. 3. 홈 버튼을 한번 더 눌러 리커버리 모드로 진입합니다.)

d. "Install"을 선택하고 아까 받은 파일인 CM11과 Gapps를 차례대로 설치합니다.

e. (선택) 필요하다면 "Wipe" 기능으로 초기화해보세요.

f. 재시작해봅니다. 좀 시간이 걸리겠지만, 잘 부팅되겠죠?

*. (테스트하지 않음) 처음 설치시

  • 기존에 했던 데이터 파티션 크기 조정 작업이 리커버리에 내장된 것 같네요. 정확히는 리커버리가 시작될 때, 데이터 파티션이 존재하지 않는 경우 파티션을 잡아주는 것 같습니다.

a. 원제작자님 홈페이지에서 이미지 파일을 내려받고, Win32DiskImager 같은 툴로 SD 카드에 이미지를 씌우세요.

( http://www.mediafire.com/download/7g75lcctb6w3pbw/cm_ovation_11.0_04NOV2014_HD_SDC_NOEMMC_IMG.7z )

( 원저작자님 블로그에서 따왔습니다: http://iamafanof.wordpress.com/2014/11/04/cm11-0-kitkat-android-4-4-4-for-bricked-no-emmc-nook-hd-04nov2014/ )

b. 탐색기에서 보면, 적은 용량의 드라이브 하나가 생겨 있을 겁니다. 드라이브 최상위에 "kernel, ramdisk, ..." 같은 파일이 들어있을 것이고요.

c. 먼저 수정된 램디스크가 들어있는 다음 압축 파일을 내려받으세요.

( https://drive.google.com/file/d/0BzLI1YeI_BXzZm5BbUt4ZVRDcjg/view?usp=sharing )

d. 압축 파일 안의 파일을 앞서 언급한 드라이브에 풀어넣으세요. 덮어써주시기 바랍니다.

e. 필요하시다면 블로그 페이지의 가이드대로, devconf 폴더 안의 "DeviceID" 파일에 여러분 기기의 시리얼 번호를 써넣으시기 바랍니다. 번호는 1. SD 카드 뚜껑의 스티커 또는 2. 누크 상자에 붙어 있는 라벨 에서 확인하실 수 있습니다.

f. 태블릿에 넣고 전원을 켜는데... 부팅 전에 리커버리 모드로 진입해주세요. 리커버리 모드에 진입될 때, 알아서 데이터 파티션을 잡아주는 것 같습니다.

g. 앞에서 이미지를 기록할 때, 필요한 시스템 파일들이 이미 기록되어 있을 것입니다. 그냥 재시작하면 될 것입니다.

h. 잘 부팅되었나요?

질문 또는 문제가 있다면 댓글 남겨주세요.

감사합니다!

반응형

Mp3tag에서 벅스로 앨범에 태그 자동으로 입력하기 v0.2.1

업데이트되었습니다. 클릭해주세요.

원전

클리앙에서 "고추장불고기"님의 아래 글을 보고, 내가 좋아라 하는 벅스용으로 만들면 좋겠다 싶었다.

클리앙 > 팁과강좌 > mp3tag를 이용해서 멜론의 정보를 mp3에 입력하기

특징

  • 모바일 페이지를 통해 앨범명 검색
  • 앨범 페이지에 보이는 정보를 끌어옴
    • 장르, 스타일, 기획사, 유통사, 앨범 설명
  • 벅스에서 지원하는 앨범 커버 이미지 크기 중 골라 쓸 수 있다.
    • 200, 500, 1000, 원본

안 되는 것

  • 페이지 구성이 조금만 달라지면 해석이 안 된다. (빈 창이 뜸.)
  • 검색 결과 페이지 중 첫 번째 페이지만 불러올 수 있다.
  • 가사를 가져오지 못 한다.
  • v0.2.1
    • 판매 금지 곡이 있는 경우 파싱 실패
    • 아티스트가 여럿인 경우 파싱 실패
    • 여러 장 CD인 경우 한 장만 해석됨

설치법

  • 첨부된 스크립트를 다운로드한다.
  • Windows 탐색기에서 다음 경로로 이동하고, 다운로드한 파일을 넣는다.
    • "%appdata%\Mp3tag\data\sources\"
  • 다운로드한 파일을 열어서 (v0.2 기준)
    • 134번째 줄: 앨범 커버 이미지 URL 수정하는 부분에서
      • " RegexpReplace "(album/images/)(\d+)" "$1@1000" "
      • 35번째 줄의 키워드를 참고하여 앨범 커버 해상도 "1000"을 원하는 크기로 바꾼다. (200, 500, 1000, original 중 하나)
    • 176번째 줄: 만약 앨범 발매 년도만 필요하다면
      • 이 줄의 '#'을 지워서 발매일의 첫 4글자(=연도)만 사용하도록 한다.

사용법

  • Mp3tag를 열고, 태그를 편집할 음악 파일을 불러온다.
  • 같은 앨범에 속한 음악 파일을 선택한 후,
    • 앨범 단위로 검색이 이루어진다.
  • 메뉴의 [태그 소스 > Bugs > Bugs (앨범 검색)]을 선택한다.
    • 스크립트 파일 이름을 고쳤다면, 메뉴명 또한 바뀐다.
  • 검색어를 묻는 창이 뜬다. 앨범명을 입력하고 [다음] 클릭.
  • 여러 검색 결과 중 하나를 고르는 창이 뜬다. 앨범을 고르고 [확인] 클릭.
    • 검색 결과가 하나 뿐이면 바로 다음 페이지로 넘어간다.
  • 앨범 정보 창
    • 태그 내용을 입맛에 맞게 수정하고, 트랙 순서를 바로잡는다.
    • 다 되면 [확인] 클릭.
  • 만약 곡 태그에 기존 앨범 커버가 있다면, 기존 커버를 그대로 둘 지 묻는다.
    • [아니오] 클릭해서 기존 커버 삭제.
반응형

'도구' 카테고리의 다른 글

LG 휴대폰 통신사 문구 숨김 테마  (0) 2019.04.28
Mp3tag 웹 태그 소스 - 벅스 v0.4.15  (56) 2018.08.31
Mp3tag 웹 태그 소스 - 벅스 v0.3  (0) 2018.08.16
Mp3tag 웹 태그 소스 - 벅스  (2) 2017.03.12

설치 환경

  • Intel i7-7700K, DDR4 32G, ASUS Prime Z270-A, Nvidia GTX1080Ti, 960Evo, 4TB HDD

배포판, 데스크톱 환경, 에디션 결정

Arch / Manjaro -- 자유도 극강, 무조건 최신 버전! / 꼬이면 답 없음
Ubuntu / Debian -- 편리, 문제해결도 편리 / 공식 저장소 패키지는 좀 된 버전

GNOME2 MATE -- 가볍다 / 옛날 거다
LXDE, XFCE -- 가볍다 / 기본 상태는 안 예쁘다
Ubuntu Unity -- 버려졌다

Server edition -- 가볍다 / X11, DE 직접 설치해야 한다 -- 망하기 딱 좋다
Desktop edition -- 뭐가 이것저것 많다, Ubuntu는 쓸데없는 Avahi 네트워크 공유 도구가 기본 활성화인 등

이 중, Ubuntu MATE 16.04.3 64-bit Desktop edition을 골랐다. 이유는 데스크탑 환경이 가벼워서.

OS 설치

Debian / Ubuntu, 심지어 Manjaro도 설치는 어렵지 않다. 설치 이미지를 Rufus 같은 툴로 USB에 굽고 (멀티부팅하려면 YUMI가 좋았었다)
UEFI 설정 잡은 후 부팅해서 하라는 대로 마우스 클릭하면 끝.

파티션 결정하기

  • UEFI 기준으로 EFI (FAT32), boot (EXT4), root(/) (EXT4, btrfs), swap 파티션이 필요하다.
  • 홈은 (/home) 따로 떼어내면 좋고

근본 없는 적정 크기

  • EFI <256M; grub 또는 Windows 부트로더 정도, 사실 Clover 같은 것 깔지 않으면 100M도 사치이다
  • boot >512M; 재시작, 청소 없이 커널 업데이트가 여러 번 이어지면 부트 파티션이 가득찬다...
  • swap (마음대로) 요새는 없어도 된다 하지만, SSD 낭비이지만 물리 RAM과 같은 크기로 잡아줬다. RAM 용량이 그리 많지는 않아서...

btrfs vs. EXT4

  • HDD에서 btrfs는 재앙인 것 같다. 특히 스냅샷을 적극 활용한다면.
  • 그렇지만 SSD에서는 이제는 안정된 최신 파일 시스템인 btrfs를 써야 하지 않나.
  • 하지만 나만 쓰는 환경이 아니니 EXT4로...

백업 문제

  • btrfs + snapper를 통한 스냅샷 이용 백업본 관리는 저번에 HDD에 했을 때 끔찍하게 실패했었다. 뭘 잘못했을까?

TODO Ubuntu 16.04.3 LTS Skylake / Kabylake 호환성 문제 회피

  • Ubuntu Live USB조차 부팅이 안 되는 상황
  • grub에서 부팅 명령 편집 화면으로 들어가서 ''nomodeset pci=nomsi pcie_aspm=off'' 옵션을 주어서 부팅시켰다
  • 추후 ''/etc/default/grub'' 옵션 설정하여 플래그 고정해 둠. 혹시 커널 업데이트하면 옵션 없어도 괜찮은 것 아닐까

첫 부팅

  • 우선 ''sudo apt update; sudo apt upgrade'' 한 번 더.

드라이버 설치

Nvidia 공식 드라이버 설치를 위해 저장소를 추가해서 nvidia-387 (설치 당시 최신) 패키지를 설치했다. ''intel-microcode''도 설치했다.

GRUB 설정

''/etc/default/grub'' 파일을 열어서 ''OPTION''에다 ''nomodeset pci=nomsi pcie_aspm=off acpi_enforce_resources=lax panic=60'' 문구를 추가했다.

  • ''nomodeset'': 부팅 시 메시지 보기 위해 quiet splash 대체
  • ''pci=nomsi pcie_aspm=off acpi_enforce_resources=lax'': 카비레이크 호환성 문제 회피, 마지막 항목은 온도 센서 인식 위해
  • ''panic=60'': 프로그램의 리소스 과다 소모, CPU 과열 등으로 인해 커널 패닉 발생 시, 60초 후 재시작 이후 ''sudo update-grub'' 해서 새로운 설정 적용.

swappiness 설정 조정

여유 메모리 용량 비율이 어느 값 이하일 때 스왑 메모리 공간을 사용할 지 지정하는 값이다. 기본 swappiness가 10이면 좋겠지만, 가끔 또는 예전 OS에서는 60으로 잡혀있다. 이 대신 10, 아니 1로 잡아본다.

  • ''/etc/sysctl.conf'' 파일을 열고, 마지막 줄에 ''vm.swappiness = 1''이라고 적어 준다.

SSH 접속 포트 추가하기

원래는 iptables 통해 해야 하지만, 정 귀찮으면 보안을 포기하고 ''/etc/ssh/sshd_config''에 추가 포트를 지정해줄 수 있다.
이후 ''sudo systemctl reload sshd'' 해 준다.

고정 IP 설정

데스크탑 환경을 설치했으니 GUI 상에서 설정해도 되지만, ''/etc/network/interfaces'' 파일에 직접 설정해 본다. 예전엔 이더넷 장치 이름이 항상 eth0이었는데, 요새는 ''enp3s0''이니 무슨 이상한 이름으로 잡힌다. 유의할 것.

보안 업데이트 자동화

모든 업데이트를 자동화하면 툴끼리 버전이 안 맞아서 손이 많이 갈 수 있다. 보안 업데이트 정도만 자동화하는 걸로.

  • ''sudo update-alternatives --config unattended-upgrade''한 뒤 ''/etc/apt/apt.conf.d/'' 경로의 파일을 입맛에 맞게 조정해 줄 수 있다.

계정 기본 환경 파일

  • ''/etc/profile.d/'' ''profile'' 이름이 익숙한데, 로그인 시 전역 레벨에서 호출되는 스크립트 모음이다.
  • ''/etc/skel/'' ''adduser'' 명령으로 계정을 만들면서 홈 디렉토리도 만들게 하면, 이 경로의 파일로 내용을 채워준다.

로그인 메시지 변경

''/etc/update-motd.d/'' 디렉토리에 가면, 로그인 시 보이는 메시지를 만들어주는 스크립트가 있다. 지겨운 우분투 홈페이지 URL 주소나 새 소식 홍보를 여기서 삭제할 수 있다.

Postfix ''Satellite'' 모드로 설정하기

같은 서브넷 상에 메일 서버가 있는 경우, 해당 메일로 관리 메시지를 전송하려면 복잡한 메일 서버 설정 없이 ''satellite'' 모드로 설정해 주면 보내려는 메일을 곧장 릴레이해 준다. 스팸 메일 차단을 위해 릴레이는 외부 전송이 안 되니 유의.

Avahi 데몬 죽이기

괜히 데스크톱 버전으로 설치해서 로컬 네트워크 주위의 컴퓨터의 공유 자원을 검색하는 Avahi 서비스가 작동한다.

sudo service avahi stop
sudo systemctl disable avahi-daemon.service
sudo systemctl disable avahi-daemon.socket
꺼지는 것 맞겠지?

툴 설치

EDA 툴

Synopsys 툴

  • 함께 제공되는 설치 프로그램을 어디다가 잘 풀어둔 다음에
  • 설치하려는 툴의 패키지가 들어있는 경로를 ''installer'' 실행 후 입력, 또는 ''batch_installer''에 매개 변수로 주어 실행
  • 레드햇 리눅스 환경에 맞춰져 있어서, 그냥 실행하면 오류가 발생한다.

    • ''libxss1 libsm6 libice6 libxft2 libjpeg62 libtiff5 libmng2 libpng12-0 csh'' 패키지를 설치한 후 아래 명령을 수행해준다.

      sudo ln -s /usr/lib/x86_64-linux-gnu/libtiff.so.5 /usr/lib/x86_64-linux-gnu/libtiff.so.3
      sudo ln -s /usr/lib/x86_64-linux-gnu/libmng.so.2 /usr/lib/x86_64-linux-gnu/libmng.so.1
      sudo update-alternatives –install /bin/sh sh /bin/bash 20

    • 세 번째 줄을 실행해 주면 실행 스크립트 돌릴 때 셸 문법 호환성 오류가 발생하지 않는다

Cadence 툴

  • 설치를 수행하기 위해, ''libxtst6:i386 libxext6:i386 libxi6:i386 ksh'' 패키지가 필요하다.
  • 또한, 루트 계정으로 실행하는 경우 루트 계정에 ''export XAUTHRITY=~/.Xauthority'' 명령을 주어서 설치 프로그램 GUI가 잘 뜨게 한다.

개발 도구: Bazel

  • Google TensorFlow를 사용중인 CPU에 맞게 빌드하려고..
  • Java JDK 설치 후 (''openjdk-9-jdk''), Bazel 저장소 추가하고 설치해 준다.

Nvidia CUDA: 각종 딥러닝 패키지에서 이용

  • Nvidia 주가 상승의 일등공신이라 할 수 있다.
  • cuDNN은 Nvidia 계정을 파서 직접 다운받아야 한다.
    • cuDNN 버전, CUDA 버전, 운영체제 버전, 설치 방식(데비안 패키지, 직접 설치)에 따라 구별되어 있다.
  • 전체 다운로드 대신 저장소 추가를 단행한 뒤, 다음이 중요하다.
  • 그냥 ''cuda''를 설치하면, 의존 패키지에 GPU 드라이버가 있어서 설치한 드라이버는 삭제되고 이전 버전이 설치되는 경우가 있다.
    • 대신 ''cuda-toolkit-8''과 같이 버전 지정해서 설치해 주면 OK.

Intel MKL

인텔 CPU도 있고 하니 빠른 수학 연산을 위해 설치해 본다. 나중에 TensorFlow 빌드할 때 쓴다

  • 데비안 저장소가 있는지는 모르겠고, 인텔 홈페이지에서 계정 만든 후 다운로드 가능하다.

Anaconda3

Ubuntu에 준비되는 기본 환경 대신 사용하려는 툴에 따른 (TensorFlow, PyCaffe, PyTorch 등등) 환경을 만들기 위해 ''virtualenv''를 쓸 수도 있지만, 보다 편리한 Anaconda를 사용해 본다. 이 동네 사람들은 뱀을 참 좋아한다.

  • Anaconda 홈페이지에서 다운로드하여 설치해 준다.
    • 공용 경로에 설치했기 때문에, source해야 할 경로를 ''/etc/profile.d/''에 설정해 주어 모든 사용자에게 적용되도록 한다.

Jupyter + JupyterHub

요새 인터넷에 보면 통계, 빅데이터, 그리고 머신러닝 코드를 보여주는데 Jupyter (또는 IPython, ...) 노트북을 사용하는 것을 자주 볼 수 있다.

  • Anaconda root 환경을 활성화한 후 ''conda install jupyter'' 해 주면 Jupyter Notebook은 잘 설치된다.

Jupyter만 설치하면 각 사용자가 직접 Jupyter Notebook 서버를 띄우고, 포트를 안 겹치게 잡아주고, HTTPS 연결을 이용하려면 또 이것저것 해 주고 해야 하는 문제가 있다. JupyterHub(+SudoSpawner)는 사용자별로 Jupyter Notebook 서버를 띄워주고 관리해 주는 역할을 한다.

  • 설치 자체는 역시나 Anaconda root 환경에서 ''conda install jupyterhub'' 하면 된다.
  • 문제는 기본 설정, 사용자 환경을 만들어주는 방법 결정 (SudoSpawner로 시스템 계정을 그대로 이용, ...), 웹 서버와 연동, HTTPS 설정이다. 요건 생략.

X2Go

Nvidia 드라이버와의 문제로 GPU 가속이 안 되는 점, X11을 대신할 Wayland(가 뭐지?)를 지원하지 않는 점 등등 아쉬운 점이 많으나, VNC, RDP 아니면 제일 나은 가상 데스크탑 접속 환경인 것 같다.

  • 공식 저장소를 추가한 뒤, ''x2goserver'', ''x2goserver-xsession'' 패키지를 설치해 준다.
  • 내 PC에서 클라이언트 프로그램을 설치해 접속하면 된다.
    • 소리 기능은 끄는 게 반응 속도 면에서 좋은 것 같다. 내가 설정을 잘못했던가.

TensorFlow (소스 빌드)

의미는 크게 없지만 더 빠른 성능을 위해 직접 빌드해 본다.

  • 공식 Git 저장소에서 ''clone'', ''checkout v1.3.1'' (당시 최신) 하고나서
  • Anaconda 환경을 하나 파 준다.
    • 파이썬 패키지 ''numpy scipy matplotlib pandas pillow wheel six protobuf markdown html5lib bleach werkzeug'' 중 취향에 따라 뺄 건 빼고 설치해 준다.
  • v1.3.1과 Bazel>=0.6.0은 호환되지 않는다. Bazel 0.5.4를 받아와서 컴파일할 계정에만 설치해 둔다. PATH 설정이 필요하니 유의.
  • ''./configure'' 해서 아까 설치한 Intel MKL 사용하고, CUDA 사용하고.
    • cuDNN을 여러 버전 설치한 경우, ''sudo update-alternatives --config libcudnn'' 명령으로 현재 TF 버전에 맞는 cuDNN을 선택한다.
    • CUDA 설정 끝에 CUDA compute 버전을 물어보는데, 내가 사용하는 GPU에 맞는 것으로 고르면 컴파일 시간이 줄고 연산 성능도 좋다.
  • ''bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package''하면 한 30분 간 열심히 빌드해 준다.
  • ''bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg'' -> ''pip install /tmp/tensorflow_pkg/<패키지 파일 이름>''
  • ''tensorflow'' 디렉토리에서 나가서, 한 번 잘 되나 테스트해 보라.

커널 패닉 기록, 반응성 향상을 위해

  • ''memlockd'' 패키지는 SSH 동작에 필요한 중요 파일을 메모리에 상주시켜준다고 한다. CPU 또는 디스크에 높은 부하를 주어 시스템이 크게 느려졌을 때 SSH 로그인 성공 가능성을 높여준다.
  • ''linux-crashdump'' 커널 패닉 또는 프로그램 크래시 발생 시, 로그를 ''/var/crash''에 남겨 준다. 디스크에 못 쓰고 죽는 극한 상황에서는 무용지물. Debian에서는 이름이 다른 것 같다.

Let's Encrypt SSL 인증서 & Certbot

비록 3개월마다 (자동) 갱신해야 하지만, 사고 시 보상금 하나 없지만, 믿-음직한 무료 SSL 인증서이다. Certbot 도구를 통해 발급·갱신이 가능하다.

  • 웹서버 무관 공용 Webroot 방식 또는 웹서버별 플러그인 방식 (Apache, Nginx 등 지원) 선택이 가능하다.
  • Nginx 플러그인은 현재 사이트 설정 파일이 한 개인 경우에만 올바로 동작하는 것 같다. 언제 개선될런지.

설치했지만 언급 않은 패키지

  • 기본 유틸리티
    intel-microcode ssh byobu csh ksh zsh fish curl vim-nox emacs unar rdiff-backup python-software-properties postfix figlet lftp chromium-browser jekyll doxygen evince zathura feh markdown fonts-nanum x2goserver x2goserver-xsession
  • 시스템 상태 감시
    iotop htop iftop dstat smartmontools lm-sensors linux-crashdump munin munin-node stress memlockd
  • 개발 도구
    build-essential git subversion bazel cmake gdb cscope ccache colorgcc colormake colordiff
  • 컴파일러
    libgfortran-4.9-dev openjdk-8-jdk
  • 라이브러리
    libboost-all-dev libatlas-dev libatlas-base-dev libopenblas-dev liblapack-dev protobuf-compiler libprotobuf-dev
  • 딥러닝 툴 드라이버/라이브러리
    nvidia-387 cuda-toolkit-8 cuda-toolkit-9 libcupti-dev libgflags-dev libgoogle-glog-dev libleveldb-dev liblmdb-dev libsnappy-dev
  • 웹 서버/메일 릴레이
    postfix nginx-full nodejs-dev npm w3m-el python-certbot-nginx
  • LaTeX 패키지 + 그래프/차트
    texlive-xetex texlive-lang-cjk ko.tex-base ko.tex-extra texlive-publishers texlive-fonts-extra libcgraph6 graphviz graphviz-dev
  • 그리고, 한글 폰트
반응형

+ Recent posts