Raspberry Pi를 Bluetooth 오디오 서버로 설정하기 위한 가장 빠른 설정 단계
13200 단어 Raspberry PiBluetoothpulseaudiotech
개시하다
우리집에서는 맥과 아이폰 등을 랩버리피에 연결해 여러 기기의 소리를 섞어 소리를 정리하고 블루투스 이어폰으로 동시에 듣는다.
구체적인 구축 방법은 앞서 공개됐다.
그런데 며칠 전에 SD카드가 고장나서 새 SD카드를 사서 다시 설치했어요.
저는 개인적으로 상술한 보도는 진지하게 정리한 것이라고 생각하지만 어쩔 수 없이 절차가 너무 길고 설명이 너무 길어서 저도 잊어버리고 매번 필요한 부분을 발췌할 때마다 읽기 어려워요.
이에 따라 개인의 비망록도 일찌감치 업무에 필요한 최소한의 절차만 정리한 기사를 다시 쓰기로 했다.
이 절차를 처음 진행하는 사람은 기본적으로 위의 글을 먼저 참고하고 싶지만 필자처럼 몇 번 시도해 본 사람은 이 글이 유용하길 바란다.
또 이후 제목에 "(임의로)"라고 쓰여 있으면 하지 않아도 된다.필자는 스스로 다 할 줄 알기 때문에 참고만 쓴다.
Ubuntu 설치
다음 내용을 참조하여 Raspberry Pi에 Ubuntu를 설치합니다.
시간대 변경(옵션)
처음에는 UTC였지만 로그의 시간을 JST로 설정하려고 시간대를 변경했습니다.
Shell
sudo timedatectl set-timezone Asia/Tokyo
cron을 다시 시작하는 것을 잊지 마십시오.Shell
sudo systemctl restart cron
IP 주소 고정 (임의)
처음 시작할 때 DHCP는 자동으로 개인 IP 주소를 부여하지만 이 주소는 지금까지 래스퍼리피에 부여된 것과 다르면 일일이 다시 작성
~/.ssh/config
해야 하기 때문에 번거롭기 때문에 아래의 글을 참고하여 개인 IP 주소를 고정합니다.SSH 설정(모두)
SSH 때는 비밀번호를 입력할 때마다 번거로워 최소한의 안전성을 확보하기 위해 SSH 설정을 한다.
아래 창고에는 필자가 사용한 SSH 설정 파일이 놓여 있으니 스스로 설정하기 어려운 분들은 적절히 이용하시기 바랍니다.
Shell
git clone https://github.com/noraworld/ssh-conf.git
cd ssh-conf
sudo rm /etc/ssh/sshd_config
sudo ln -s $PWD/ssh/sshd_config /etc/ssh
sudo rm -r /etc/ssh/sshd_config.d
sudo ln -s $PWD/ssh/sshd_config.d /etc/ssh
이어 이런 파일을 제작ssh/sshd_config.d/port.conf
해 SSH용 포트 번호를 추가한다.로컬
~/.ssh/config
에는 이미 랩베리 Pi용 설정이 있고, 포트 번호도 변경이 번거로운 경우 아래 명령으로 이 포트 번호를 추가합니다.Shell
echo "Port <YOUR_PORT>" | tee -a $PWD/ssh/sshd_config.d/port.conf
이번에 포트 번호를 새로 설정한 경우 다음 명령으로 무작위 수를 생성하여 쓸 수 있습니다.단, 다음 명령은 단시간 내에 여러 번 집행할 수 없다.Shell
echo "Port $(od -An -tu2 -N2 /dev/random | tr -d ' ')" | tee -a $PWD/ssh/sshd_config.d/port.conf
포트 번호가 무작위로 설정되어 있으면 파일을 기록하는 동시에 터미널에도 표시된 포트 번호를 잊지 마십시오.만약 아래의 설정이 아직 완성되지 않았다면 각자 설정하세요.
~/.ssh/config
에 추가 설정~/.ssh/authorized_keys
로 업로드Shell
sudo ufw enable
sudo ufw default deny
sudo ufw deny ssh
sudo ufw allow <YOUR_PORT>/tcp
SSH 및 방화벽 설정을 반영합니다.Shell
sudo systemctl restart ssh
sudo ufw reload
현재 SSH 연결을 그대로 유지하고 터미널의 다른 탭이나 창을 열어 SSH가 가능한지 확인합니다.백업 파일 목록(옵션)
Raspberry Pi에서 사용한 이전 데이터 백업이 있으면 다시 시작할 수 있습니다.
다음은 개인 노트.사전에 백업을 해 두면 이번처럼 다시 설정할 때 파일이 수월해진다.
.marlin_aliases
.env.preferences
.ssh/
dotfiles 설정 (임의)
일반 조개껍질이면 불편하기 때문에 자신의dotfiles가 있으면 설치합니다.
다음은 필자의dotfiles입니다. 적당히 바꿔 주세요.
Shell
git clone https://github.com/noraworld/dotfiles.git
cd dotfiles
./setup
Ubuntu 재부팅 시 자동 로그인
재부팅 후 SSH를 한 번도 진행하지 않은 상태에서 보통 시스템 부팅 후 일반 사용자의 로그인을 한 번도 하지 않는다.
그러나 이렇게 되면 일반 사용자가 이동하는 데몬 (이번에 사용한 PulseAudio와dummy-sound 등) 은 다시 시작한 후에 시작되지 않습니다.
따라서 아래 글을 참고하여 시스템이 다시 시작된 후 일반 사용자로 자동 로그인하도록 설정합니다.
필요한 패키지 설치
Shell
sudo apt -y install pulseaudio pulseaudio-utils alsa-base alsa-utils bluetooth bluez pulseaudio-module-bluetooth ofono
시스템 가져오기
보통 수동으로 설정하지만 필자는 귀찮아서 GiitHub 창고로 관리한 다음에 전체적으로 설정을 가져옵니다.
각 서비스 파일 내의
WorkingDirectory
는 적절하게 변경해야 하지만 사용자 이름은ubuntu
(기본값)이고 메인 디렉터리 아래에 workspace
라는 디렉터리를 만들고 그 중에서clone의 경우 WorkingDirectory
변경이 필요 없다.Shell
whoami # ubuntu
cd
mkdir workspace
cd workspace
git clone https://github.com/noraworld/systemd-units.git
각 서비스 파일을 데몬에 링크합니다.Shell
cd systemd-units
sudo systemctl link $PWD/lib/systemd/system/*
systemctl --user link $PWD/lib/systemd/user/*
sudo systemctl daemon-reload
systemctl --user daemon-reload
dummy-sound의 자동 시작을 설정합니다.Shell
systemctl --user enable dummy-sound
Bluetooth -conf 가져오기
이것은 보통 수동으로 설정되지만 창고 관리이기 때문에 전체적으로 설정을 가져옵니다.
Shell
git clone https://github.com/noraworld/bluetooth-conf.git
cd bluetooth-conf
sudo rm -r /etc/bluetooth
sudo ln -s $PWD/bluetooth /etc/bluetooth
sudo systemctl enable bluetooth
pulse-conf 가져오기
이것도 마찬가지로 창고에서 전체 설정을 가져옵니다.
Shell
git clone https://github.com/noraworld/pulse-conf.git
cd pulse-conf
sudo rm -r /etc/pulse
sudo ln -s $PWD/pulse /etc/pulse
systemctl --user enable pulseaudio
sudo gpasswd -a $(whoami) pulse
sudo gpasswd -a $(whoami) pulse-access
pulse/default.pa
내의 음성 출력 목적지set-default-sink
와 음성 입력원set-default-source
은 아래 명령을 통해 조사하고 현지에 맞게 변경한다.Shell
pactl list sinks short | awk '{ print $2 }'
재부팅
Shell
sudo reboot
Bluetooth 인터페이스 가져오기
블루투스 조작에 편리한 도구를 가져옵니다.
Shell
git clone https://github.com/noraworld/bluetoothctl-autoconnector.git
cd bluetoothctl-autoconnector
./setup.sh
각자 다음과 같은 내용을 설정한다.bin
경로 통과이런 파일을 제작
~/.marlin_aliases
한 후 이 파일에 BD 주소와 식별명(좋아하는 문자열)을 기재한 쌍XX:XX:XX:XX:XX:XX MacBook Pro 15
XX:XX:XX:XX:XX:XX iPhone 7
XX:XX:XX:XX:XX:XX iPad Air 2
XX:XX:XX:XX:XX:XX Oculus Quest
XX:XX:XX:XX:XX:XX KJ-43X8500F
장치를 쌍으로 만들기 위해 다음 명령을 실행합니다.Shell
marlin register MacBook\ Pro\ 15
위~/.marlin_aliases
는'MacBook Pro15'로 명명된 MacBook Pro15-inch(원래 이름)를 Raspberry Pi와 짝짓는다.도구에 대한 자세한 설명은 다음 URL을 참조하십시오.
SD 카드의 내구성에 대해(잡담)
그나저나 고장난 SD카드는 아래의 부속품에 부착되어 사용 후 약 8개월 만에 고장이 났다.
원인에 대해서는 잘 모르겠지만 이미 쓰기 횟수의 한계에 도달했을 것으로 추정된다.
예전에 1분마다 블루투스가 자동으로 연결되는 기록을 얻었는데 그게 SD카드에 부하가 됐잖아요.
그래서 이번에는 그 기록(아무 역할을 하지 않아서)이 얻지 못하도록 내구성이 높은 SLC(Single Level Cell)의SD카드를 사기로 했다.
방금 산 것이라 내구성은 말할 수 없지만 조개 껍질 등록과 조작에 대한 반응이 압도적으로 빨라졌다.
지금까지는 조개 껍질 조작이 복잡하긴 했지만 래스퍼리피의 성능이 아닌 SD카드의 성능이었다.
SD카드(Raspberry Pi)를 아직 구매하지 않은 경우에는 SLC의 SD카드를 추천한다.
Reference
이 문제에 관하여(Raspberry Pi를 Bluetooth 오디오 서버로 설정하기 위한 가장 빠른 설정 단계), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/noraworld/articles/pulseaudio-bluetooth-quick-setup텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)