라즈베리파이의 HDMI 사운드 드라이버 설정

라즈베리파이의 HDMI 사운드 드라이버 설정


라즈베리파이에 라즈베리안을 설치하지 않고, 바로 레트로아크만 설치 했을때, HDMI 단자로 TV와 연결했음에도 사운드가 나오지 않는 경우가 있습니다. 저도 이것 때문에 고생을 좀 했는데요. 사운드 드라이버를 잡아주야 합니다.


ALSA, asound 모듈을 이용해서 출력이 되기 때문에, HDMI를 이용하도록 잡아줘야 합니다.

LibreELEC:~ # aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
sysdefault:CARD=ALSA
    bcm2835 ALSA, bcm2835 ALSA
    Default Audio Device
소문자L로 옵션을 바꿔서 출력합니다.
LibreELEC:~ # aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
  Subdevices: 7/7
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
HDMI 출력은 card 0, device 1 입니다.
LibreELEC:~ # vi /storage/.config/asound.conf

내용 변경

# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2018-present 5schatten (https://github.com/5schatten)

pcm.!default {
    type hw
    card 0
    device 1
}
ctl.!default {
  type hw
  card 0
  device 1
}

asound.conf를 위처럼 수정 해주고 재구동하면 소리가 나올겁니다.

라즈베리파이 레트로아크를 위한 네트워크 드라이브 smb 마운트

라즈베리파이 레트로아크를 위한 네트워크 드라이브 smb 마운트


라즈베리파이로 레트로아크를 구성하신분들을 위한 네트워크 드라이브 설정 값입니다. MicroSD 카드의 용량은 한계가 있는데 거기다 많은 용량의 Rom 파일들을 모두 복사할 수 없으니, Nas의 samba를 이용해 네트우크 드라이브를 구성하는 겁니다.

일반적으로 리눅스의 네트워크 드라이브 마운트와 비슷합니다.

저는 Libreelec 9.0 RR 버전에 얹어져 있는 레트로아크를 사용하기 때문에 레트로아크만 구성하신 분이라면, 경로가 다를 수 있으니, find 명령으로 경로를 잘 찾아보시기 바랍니다.

# cd /storage/.config/system.d
파일 생성
# vi storage-emulators-retroarch-roms.mount
what 에는 자신의 NAS나 PC의 samba 경로를 넣어주면 됩니다.
[Unit]
Description=Emulator ROMs SAMBA mount drive
Wants=network-online.service
After=network-online.target
Before=kodi.service

[Mount]
What=//192.168.xxx.xxx/PDS/Games/Emul
Where=/storage/emulators/retroarch/roms
Type=cifs
Options=username=retro,pass=kodi1234,rw,vers=2.0


[Install]
WantedBy=multi-user.target
실행 권한 부여
# chmod a-x storage-emulators-retroarch-roms.mount
서비스에 등록
# systemctl enable storage-emulators-retroarch-roms.mount
서비스 실행
# systemctl start storage-emulators-retroarch-roms.mount 
서비스 Status 확인
# systemctl status storage-emulators-retroarch-roms.mount

마운트 확인

# df -h

//192.168.xxx.xxx/PDS/Games/Emul
                          3.5T    552.2G      2.9T  15% /storage/emulators/retroarch/roms

Docker를 활용한 AirComix 서버 설치


Synology NAS - Docker를 활용한 AirComix 서버 설치


나스시장의 최강자! 시놀로지!

그동안 저는 DS-215j 모델을 사용해오고 있어서 몰랐는데 새로나온 고사양급 모델들은 요즘 IT인프라에서 가장 핫한 아이템인 Docker를 사용 할 수 있도록 업데이트가 되었더군요! 이번에 신형 NAS로 교체한 기념으로 포스팅 해봅니다.

그 Docker로 무얼 할 수 있는가? 고민하다가 예전 버전에서는 어렵게 아파치 서버를 띄워서 구성했던.. 근데 DSM이 버전업 해버리면서 아파치의 경로가 바뀌어서 서버가 깨져서 내부에서 꼬여버려 사용하지 못했던 슬픈 역사가 있던.. AirComix 서버 설치를 해보려고 합니다. AirComix 서버를 설치하면 막대한 용량의 압축 파일들을 앱에 넣지 않고, 통신망을 사용하여 어디에서든 스트리밍으로 구독이 가능합니다. 그래서 이번엔 아파치가 아닌 Nginx를 가지고 AirComix 서버를 구성해보고자 합니다.


설치과정에 있어서 pagein.net의 글을 많이 참고 했습니다.

설치하면서 제가 답답했던 부분이나 추가적인 부분을 더 포스팅 하려고 합니다.


Nginix PHP 설치


레지스트리를 선택한다음, 검색창에 nginx php 라고 검색을 한 후 나오는 목록에서 richarvey/nginx-php-fpm를 선택합니다.

더블 클릭하면 설치할 버전을 물어봅니다.

이미지에 richarvey/nginx-php-fpm:lastest 라고 생성 되는데, 다운이 완료 되면 304MB 용량 표시가 뜨고, 실행 버튼이 활성화 됩니다.

실행을 누르면 컨테이너 생성을 할 수 있습니다.

컨테이너 이름에 저는 aircomix-server 라고 넣었습니다. 원하는 이름으로 서버를 생성하시면 됩니다.

고급 설정을 누르면

자동 재시작 활성화에 체크 해주시고

볼륨 탭에서 폴더 추가를 해줍니다.

파일/폴더 있는 곳은 실제 NAS에 만화책들의 압축파일이 있는 경로를 지정해주시고, 마운트 경로는 Docker에 올라간 컨테이너 내에서 실제 책이 있는 경로가 마운트 되어 표현되어지는 경로입니다.

이게 무슨 소리냐? 하실 수도 있는데, 쉽게 말하자면,

만약에 실제 NAS의 /volume2/coimx 경로에 책 파일 있습니다. 하지만 docker로 컨테이너가 구성 되면 나스 안에 새로운 OS가 생성된것 같이 보이는데, 그안에는 실제 경로인 /volume2/coimx는 보이지 않고, 그 볼륨 구성안에서 /volume1/books 라는 경로로 실제 NAS의 경로가 연결된다는 뜻입니다. (실제 /volume2/comix => 컨테이너 /volume1/books) 윈도우의 바로가기나 리눅스의 ln 링크처럼 말이죠. 저는 만화책 뿐만 아니라 다른 책들도 같이 넣을것이기 때문에 books라고 지정 했습니다. 마운트에 volume1은 바꾸지 마세요.

포트 설정입니다. 다른 포트 다 지우셔도 상관 없습니다.

자동으로 되어 있는 로컬 포트도 31257로 고정하고, 컨테이너 포트도 31257로 설정해 줍니다. TCP, UDP 다 설정 해줍니다.

그러면 비디오 형식에 다음과 같이 컨테이너가 실행되고 있음을 확인 할 수 있습니다.

세부사항을 누르고, 터미널 탭으로 가서 생성을 누르면 bash 쉘이 뜹니다.

pwd를 치면 컨테이너 안에서 현재 경로가 보이는데, /var/www/html 이 곳이 nginx의 웹을 구동하기 위해 파일을 넣어두는 디렉토리입니다. 이 곳에서 github에 있는 AirComix 파일을 내려받습니다.

bash-4.4# wget https://github.com/song31/comix-server/archive/master.tar.gz

그리고 다운로드가 완료 되면 압축을 풉니다.

bash-4.4# tar -zxvf master.tar.gz

압축을 풀면 /var/www/html/ 아래에 comix-server-master 라는 디렉토리가 생성됩니다.

bash-4.4# cd comix-server-master

comix-server-master 디렉토리에 가서 몇가지 설정파일을 편집 해줍니다.

우선 index.php를 수정해줍니다.

기본 값은 manga 라고 되어 있는데, 아까 위에서 /volume1/books로 지정했던 부분의 books를 넣어줍니다. 만약 /volume1/comics 로 지정 했다면 comics를 넣으면 됩니다.

그 다음에 /etc/nginx/sites-enabled 로 이동을 합니다.

bash-4.4# cd /etc/nginx/sites-enabled

이 곳에다 aircomix-server.conf 파일을 만들어 줄것인데, 아래 명령으로 설정 파일을 받아 압축을 풀어도 되고,

bash-4.4# wget https://pagein.net/wp-content/uploads/2018/01/aircomix-server.tar.gz

아니면 vi 로 직접 생성해줘도 됩니다.

bash-4.4# vi aircomix-server.conf

아래와 같이 설정 해줍니다.

server {
    listen 31257;
    server_name 192.168.xxx.xxx;
    charset UTF-8;
    root /var/www/html/comix-server-master;
    location / {
        autoindex on;
        index index.php;
        #auth_basic "Restricted Access";
        #auth_basic_user_file /var/www/html/comix-server-master/.htpasswd;
    }
    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
    location ~ ^/manga(.*)$ {
        include fastcgi_params;
        fastcgi_pass unix:/var/run/php-fpm.sock;
        fastcgi_param SCRIPT_FILENAME /var/www/html/comix-server-master/handler.php;
    }
}

NAS-IP에는 실제 시놀로지 NAS가 공유기에서 받은 IP를 넣어주는 겁니다.

편집이 끝났으면 저장. (vi 편집기 사용에 관한 부분은 다른 사이트를 참고하셔서 알아두시는 편이 좋습니다.)

그리고 비디오 형식에 작업 버튼에 다시 시작을 누르거나 오른버튼을 클릭해서 다시 시작을 하거나 오른쪽 버튼을 클릭해서 껐다 키거나 해서 컨테이너를 재시작 해주면 실행이 됩니다.


웹 브라우저를 열고 http://NAS IP:31257 쳐서 books 라고 나오면 성공한겁니다.

제어판에 외부엑세스에서 DDNS 서비스를 이용하고 계시다면 http://해당 도메인:31257 으로 외부에서도 접속이 가능한데, 이건 공유기에서 DMZ 설정이나 포트포워딩 설정이 NAS로 연결되어 있어야지만 가능한 겁니다. 구글에서 포트포워딩 혹은 공유기 DMZ설정을 찾아보세요. 공유기 제조사 마다 설정 방법이 모두 다릅니다.


AirComix 암호설정하기


코믹스 서버 디렉토리로 이동합니다.

bash-4.4# cd /var/www/html/comix-server-master

여기에서 .htpasswd 파일을 생성합니다.

bash-4.4# printf "AirComix:$(openssl passwd -crypt 패스워드)\n" >> .htpasswd
bash-4.4# chown nginx:nginx .htpasswd
bash-4.4# chmod 640 .htpasswd

그리고 다시 aircomix-server.conf 파일을 수정합니다.

bash-4.4# vi /etc/nginx/sites-enabled/aircomix-server.conf

주석(#)처리된 부분을 지워주고 저장.

이렇게 하면 앱에서 AirComix 서버로 접속하기 위해서는 반드시 패스워드가 필요합니다.

설정 완료!

'Operating System > Synology NAS' 카테고리의 다른 글

Docker를 활용한 AirComix 서버 설치  (2) 2019.01.29

Git Bash



윈도우용 Bash 쉘이 포함된 Git 입니다.


개발하거나 리눅스가 편리하시분들 윈도우에서도 Bash 명령을 이용해 작업을 할 수 있습니다.

putty 대용으로도 사용 할 수 있고, grep을 이용해 로그의 특정 부분을 긁어 모으거나 vi가 편하신분들에게 유용합니다.


원출처는 https://gitforwindows.org/



pwd를 치면 기본 홈은 /c/user/{$사용자} 입니다.


CMD창도 git 스타일로 이용할 수 있습니다.


Git-2.20.1-64-bit.zip

Git-2.20.1-64-bit.z01

Git-2.20.1-64-bit.z02

Git-2.20.1-64-bit.z03

Git-2.20.1-64-bit.z04



리눅스에서 2TB 이상 대용량 디스크 파티션 사용

리눅스에서는 일반 파티션의 사이즈는 2TB로 제한 되어 있습니다.

이 것을 GPT 타입으로 변경해야 2TB보다 큰 파티션을 사용할 수 있습니다.


일반적으로 파티셔닝을 하면 아래처럼 됩니다.


[root@backup-test ~]# fdisk -l /dev/sdc


Disk /dev/sdc: 5497.6 GB, 5497558138880 bytes, 10737418240 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

Disk label type: dos

Disk identifier: 0xbb438cb0


   Device Boot      Start         End      Blocks   Id  System

/dev/sdc1            2048    10487807     5242880   83  Linux

/dev/sdc2        10487808    52430847    20971520   83  Linux

/dev/sdc3        52430848  4294967294  2121268223+  83  Linux


sdc3을 보면 2TB로 제한 되어버립니다.



변경하려고 하는 디스크를 선택


# parted /dev/sdc

GNU Parted 3.1

Using /dev/sdc

Welcome to GNU Parted! Type 'help' to view a list of commands.

(parted) 


(parted) mklabel gpt                                                      

Warning: The existing disk label on /dev/sdc will be destroyed and all data on this disk will be lost. Do you want to continue?

Yes/No? yes


(parted) unit TB                            <----- 최소 용량을 설정하는 명령 (기본 MB) GB or TB


(parted) mkpart primary 0.00TB 5.50TB


(parted) print                                                            

Model: VMware Virtual disk (scsi)

Disk /dev/sdc: 5.50TB

Sector size (logical/physical): 512B/512B

Partition Table: gpt

Disk Flags: 


Number  Start   End     Size    File system  Name     Flags

 1      0.00TB  5.50TB  5.50TB               primary


(parted) quit

vi 편집기 단축키


출처 : https://kldp.org/node/102947


http://www.viemu.com 제공의 내용을 번역한 것

윈도우의 오래된 파일, 폴더 정리



윈도우에서 필요없는 로그나 사용하지 않는 오래된 파일을 정리 할때 사용하는 명령어 입니다.



몇일 이상 지난 파일을 지우기 위해 필요한 명령어


forfiles /p "D:\log" /s /d -30 /c "cmd /c @rmdir /s /q @path"



/d 옵션 뒤에 -30 은 30일 이상 지난 폴더와 내용을 삭제하라는 뜻입니다.



기본식


FORFILES [/P pathname] [/M searchmask] [/S] [/C command] [/D [+ | -] {yyyy-MM-dd | dd}]



옵션 목록


    /P    pathname    검색을 시작할 경로를 지정합니다.

                      현재 작업 디렉터리(.)가 기본 폴더입니다.


    /M    searchmask  검색 마스크에 따라 파일을 검색합니다.

                      '*'이 기본 검색 마스크입니다.


    /S                하위 폴더를 포함하도록 지정합니다. 예, "DIR /S"


    /C    command     각 파일에 실행할 명령을 지정합니다.

                      명령 문자열을 큰따옴표로 묶어야 합니다.


                      "cmd /c echo @file"이 기본 명령입니다.


      명령 문자열에 다음 변수를 사용할 수 있습니다.

                        @file    - 파일 이름을 반환합니다.

                        @fname   - 확장명 없이 파일 이름을 반환합니다.

                        @ext     - 파일의 확장명만 반환합니다.

                        @path    - 파일의 전체 경로를 반환합니다.

                        @relpath - 파일의 상대 경로를 반환합니다.

                        @isdir   - 파일 형식이 디렉터리인 경우 "TRUE"를 반환하고 파일인 경우                                             "FALSE"를 반환합니다.

                        @fsize   - 파일의 크기(바이트)를 반환합니다.

                        @fdate   - 파일을 마지막으로 수정한 날짜를 반환합니다.

                        @ftime   - 파일을 마지막으로 수정한 시간을 반환합니다.


                        명령줄에 특수 문자를 포함하려면 0xHH 형식의 16진수 코드(예, 탭은 0x09)를 

                        사용하십시오. 내부 CMD.exe 명령 앞에는 "cmd /c"를 사용해야 합니다.


    /D    date       지정한 날짜와 마지막 수정한 날짜가 늦거나 같은(+) 또는 빠르거나 같은(-) 파일을 

                     찾습니다.

                     날짜 포맷은 "yyyy-MM-dd"입니다.

                     또한 마지막 수정한 날짜가 현재 날짜에 "dd"일을 더한 날짜보다 늦거나 같은(+) 또는 

                     현재 날짜에서 "dd"일을 뺀 날짜보다 작거나 같은(-) 파일을 찾습니다.

                     유효한 "dd" 범위는 0에서 32768까지입니다.

                     부호를 지정하지 않으면 "+"가 기본값입니다.


    /?               이 도움말 메시지를 표시합니다.




윈도우에서 직접 알려주는 사용예시


  FORFILES /P C:\WINDOWS /S /M DNS*.*

  - C:\WINDOWS 하위 디렉토리 중 DNS를 포함하는 모든 파일 삭제


  FORFILES /S /M *.txt /C "cmd /c type @file | more"

  - 현재위치의 모든 텍스트 파일의 내용을 보여줍니다.


  FORFILES /P C:\ /S /M *.bat

  - C:\ 하위 디렉토리 포함 모든 bat 파일을 삭제합니다.


  FORFILES /D -30 /M *.exe /C "cmd /c echo @path 0x09 was changed 30 days ago"

  - 현재 디렉토리에 있는 모든 실행 파일들중 30일 이전의 파일들을 "경로\1.exe was changed 30 days ago" 형식으로 표시


  FORFILES /D 2001-01-01 /C "cmd /c echo @fname is new since Jan 1st 2001" 

  - 2001-01-01에 만들어진 파일을 확장자명 없이 출력


  FORFILES /D +2015-3-21 /C "cmd /c echo @fname is new today"

  - 2015-03-21 이후에 만들어진 파일을 @fname 뒤의 문장을 포함하여 출력


  FORFILES /M *.exe /D +1


  FORFILES /S /M *.doc /C "cmd /c echo @fsize"


  FORFILES /M *.txt /C "cmd /c if @isdir==FALSE notepad.exe @file"




자동으로 오래된 파일을 로그로 기록하고, 삭제하는 배치파일 만들기


CMD 창을 띄우고 빈 파일을 만들고, 메모장으로 열어 다음 내용을 추가 해줍니다.


D:\> type NUL > D:\script\Delete_old.bat


D:\> notepad D:\script\Delete_old.bat


type NUL > D:\log\Delete_%DATE%.log

forfiles /p "D:\downloads" /s /m * /d -7 /c "CMD /c echo @path" >> Delete_%DATE%.log

forfiles /p "D:\downloads" /s /m * /d -7 /c "CMD /c @rmdir /s /q @path" >> Delete_%DATE%.log


다운로드 폴더에 있는 7일 이상된 파일을 로그로 남기고 삭제합니다.


해당 배치 파일은 작업 스케쥴러에 등록하여, 파일을 실행 하지 않아도 자동으로 매일 혹은 매주, 매달 같이 

주기를 지정하여 자동으로 삭제 할 수 있습니다.


오래 쌓여서 보지 않는 LOG 파일을 정리하거나 오래된 파일을 지우고 정리하는데 유용하게 사용합니다.


데스크탑 PC에 Esxi 설치

우선 아래 사이트에 가서 스크립트를 내려받는다.


https://www.v-front.de/p/esxi-customizer-ps.html


ESXi-Customizer-PS-v2.5.1.ps1


이걸 실행 하려면 PowerCLI가 있어야 하니 다운 받아 설치 한다.


Powershell 에서 실행할수 있게 실행 권한을 변경한 다음 PowerCLI 실행


데스크탑에 설치 하려면 랜카드와 SATA 드라이버가 필요 하다.


인텔 기가 인더넷 카드라면 net-igb


PowerCLI D:\Esxi>. D:\ESXi-Customizer-PS-v2.5.1.ps1 -v55 -vft -load sata-xahci,net-igb



이미지를 만들어준다.


-v50 : Create the latest ESXi 5.0 ISO

-v51 : Create the latest ESXi 5.1 ISO

-v55 : Create the latest ESXi 5.5 ISO

-v60 : Create the latest ESXi 6.0 ISO

-v65 : Create the latest ESXi 6.0 ISO


옵션 별 버전


-vft는 https://www.v-front.de 에서 가져온다는 뜻.


자세한 옵션은 https://www.v-front.de/p/esxi-customizer-ps.html 참조.