Current filter: »raspbian« (Click tag to exclude it or click a conjunction to switch them.)
May 03, 2022
古いRaspberry PiをUSB無線LANアダプターとRaspberry Pi OS busterでLANに接続する
うちには無線機能がない古いRaspberry Piが幾つか、使わないままになっている。
以前のエントリーで、これらにUSB無線アダプターを付けて、piCoreで使えるようにしようという話を書いた。
Raspberry Pi + USB WiFiアダプターで piCore 起動時に自動的に無線LANに接続させる
http://blown-lei.net/endive/blosxom.cgi/pc/20211109a.htm
その後、考えた。
piCoreに拘らなくてもいいのではないか。
そういうわけで、今回はRaspberry Pi OSで、あらかじめIPアドレス固定だ。
ただ、ネット上の他のサイトを読んでいたら、今回うちでやった手法は古いやり方であるらしい。とりあえず動いてるからいいのかな、という感じだ。
今年の4月にRaspberry Pi OSは以前よりもセキュリティが厳しくなって、初期設定のpiユーザーがなくなった。
An update to Raspberry Pi OS Bullseye
https://www.raspberrypi.com/news/raspberry-pi-bullseye-update-april-2022/
いろいろやり方が変わって面倒なので、使っているのは最新のBullseyeではなくてBusterだ。
以下、忘れるので備忘録。処置を列記。
まずraspberrypi.comで、「Raspberry Pi OS Lite (Legacy)」と書いてある処からBuster Liteをダウンロードする。うちではモニターを使うのは想定していないのでLiteを使う。
https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-legacy
マイクロSDに焼く。
sshが使えるようにbootパーティションにsshファイルを作って、Raspberry Pi(B+と初期型の2)に刺す。
LANケーブル、USB無線アダプターも刺して、電源に繋いで起動。
IPを確認しsshでログイン(ユーザー:pi、パス:raspberry)。
sudo raspi-config で設定した項目は以下の通り。他は触らない。下手に触ると上手くいかなくなるようだ。うちだけか?、、。
1 System Options / Hostname 5 Localisation Options / L2 Timezone 6 Advanced Options / A1 Expand Filesystem
書き忘れていたが、どこかで sudo apt-get update、sudo apt-get upgrade している。
lsusb でUSB無線アダプターをラズパイがどう認識しているかを確認。
下記のように認識している内容が表示される。
pi@raspberrypi:~ $ lsusb Bus 001 Device 004: ID 0bda:8179 Realtek Semiconductor Corp. RTL8188EUS 802.11n Wireless Network Adapter Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
1番目の行に「Realtek Semiconductor Corp. RTL8188EUS 802.11n Wireless Network Adapter」と詳細が表示されている。どうやら使えそう。
次に、無線LANルーター認証の設定ファイルを記述する。
まずPSKの生成。下記コマンド使用。
SSID(ネットワーク名)とPassphrase(パス/暗号化キー)は、ローカルの無線LANネットワークで決まっている筈である。
wpa_passphrase SSID Passphrase network={ ssid="Your_SSID" #psk="Your_Passphrase" psk=bca18993a64219d23b7b4cf1214d999d812b5... *snip* }
こんな設定の文面が表示される。
pskとは事前共有鍵(Pre-Shared Key)というもので、暗号鍵を事前に設定しておくということらしい。
これを「wpa_supplicant.conf」に追記記載する。
sudo vi /etc/wpa_supplicant/wpa_supplicant.conf network={ ssid="Your_SSID" #psk="Your_Passphrase" psk=bca18993a64219d23b7b4cf1214d999d812b5... *snip* key_mgmt=WPA-PSK proto=RSN pairwise=CCMP group=CCMP }
更にkey_mgmt、proto、pairwise、groupも追加。これらは認証方式と暗号方式によって記載内容が変わる。
うちの無線LANルーターで設定を見たら「WPA2-PSKとAES(AES)」と書いてある。
これは、認証方式がWPA2-PSK、暗号方式がAES、という意味らしい。
記載をこれに合わせる。
次に下記ファイルに固定するIPアドレスなど設定を記載。
sudo vi /etc/network/interfaces auto wlan0 allow-hotplug wlan0 #iface wlan0 inet manual iface wlan0 inet static address 192.168.1.xxx netmask 255.255.255.0 gateway 192.168.1.1 # wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf iface default inet dhcp
sudo reboot で再起動、設定したIPアドレスで無線LANにつながるはず。
しかし有線LANのほうはつながらなくなる。
USB無線アダプターを外して有線LANをつないでも、つながらない。考えてみたら上記設定は無線しかしていない。
有線も使いたかったら、wpa-confの行をコメント化してwpa-roamで設定する方法もあるようだが、よく分かっていない。
Sep 26, 2018
raspberry piをncmpcppサーバーに仕立ててみた
最近はmpdクライアントが少なくなってきていて、いつだったかiPad用の定番ソフトがアップデートされないというので話題になった。現在もいくつかのソフトが残っているが、昔のようにいろんなソフトから好きなものを選べるという感じではなくなっている。
うちのデジタルオーディオ環境はCDをリッピングした flac + cue sheet が基本なので、mpd + cue sheetに対応したmpd client という手法を捨てられない。数千のアルバム単位のflacファイルを、曲ごとに切り分けるなんて作業は絶対に自分ではしたくない。
そういうわけで、cue sheet対応のncmpcppが使えるのは非常に有難い。開発終了にならないことを祈っている。
今回は、Linux用のクライアントソフトであるncmpcppを、ssh経由でwindowsやmacで使えないかという話だ。
うちでは家族の希望を聞いて、音楽を鳴らすことがある。だから、女房や子供が使うPCからオーディオを操作できたほうがいいんじゃないかという考えは、以前からあるのだ。
ncmpcppはターミナルソフト上でcuiで動くクライアントだ。
cuiと云いながら実際は、ターミナル「画面上」に表現された階層的な空間を、主にショートカットキーと補助的なマウス使用で、移動、選択、決定、指示を打ち込むことで操作するという、下手な文章で書いたらよく分からないけど、かなりgui的な性格を持っている。
個人的には、神憑り的に使いやすいと思っている。
不満といえばライブラリーブラウザが文字表示の一覧表(かなり使いやすいと思っている)で、itunesのようなアートワーク表示ができないことぐらいだ。アートワークを見て聴きたい曲を探すというのができたら、ほんとうに僕にとって完璧なクライアントなんだけど、、、cuiなんだから無理言うなって感じだ。
Fedoraでncmpcppを使っている画面をスクリーンショットしてみた。
これはプレイリスト画面。「1」キーで表示される。

この際なので、いくつかスクショを追記することにした。
以下の画像はFedoraのncmpcppではなく、Fedoraからssh経由で表示したraspbianのncmpcppのスクショだ。
下は、ブラウザ画面。「2」キーで表示。
mpdは、musicディレクトリがそのまま階層化されたライブラリになるんだけど、それがそのままブラウザ表示される。カーソルキーとショートカットキーでディレクトリを移動しスペースキーでプレイリストに追加する。慣れれば快適だ。

次は検索画面。「3」キーで表示。
タグやファイル名から検索する。日本語も検索できる。

最後はヘルプ画面。「f1」キーで表示。非常に細かい。
普段、音楽を聴くだけなら、そんなにたくさんのキーは使わないんだけど、ちょっと目がまわる感じだ。

ちょっと気になることがあって追記。
ヘルプ表示を下方にスクロールしていくと以下のような記載がある。
Keys - Browser Delete : Delete selected items from disk
ブラウザ表示の時に、何か音源等を選択して「delete」キーを押すと、ディスクから削除されるらしい。
じゃあ、実際やってみたら削除されるのかというとそういうことはなくて、代わりに下記のような一文が表示される。
Flag "allow_for_physical_item_deletion" needs to be enabled in configuration file
設定ファイルで設定しないと使えない機能ということだ。
逆に言えば、設定してしまえば、使えてしまう機能というわけで、さすがに[yes/no]は表示されるんじゃないかと思うんだけど、注意して使いましょうね、という感じ。
最初は、ncmpcppそのものをwindowsやmacにインストールできないかと考えていた。だけど、ncmpcppはlinuxのソフトなわけで、windowsやmacではインストールする環境を作ることから大変なのだ。
どうしようかと思っていたんだけど、先日ふと、macやwindowsからsshを使って、ncmpcppが動くlinuxにログインしたら、macやwindowsでncmpcppを使えるってことにならないか、と気が付いた。
うちではノートパソコン2台にlinux(Fedora)をインストールしていて、日常の使用とかncmpcppの運用に使っている。試しにこれらのlinux機2台で、sshによるncmpcpp共用を試みたところ、全く問題なく違和感なく使うことができた。
次にうちにあるwindows機、mac機から、sshでFedora機にログイン。ncmpcppを起動。表示に使われるフォントの違いによるものか、受ける印象は多少異なるものの、問題なく使用できた。
これでいいじゃん、と思ったんだけど考えてみると、うちだとこれでいいけど、一般的には簡単にncmpcppを動かせるlinux機が置いてある家庭は少ない。しかし、部屋のすみに転がって埃を被ってるraspberry piを使ったら簡単に出来るんじゃね?というのを思い付いた。
この際、うちでもやってみよう、ということだ。
下図のようなイメージ。

mpdとクライアントを同じサーバー機にインストールするというのはよくあるし、操作端末にクライアントをインストールして使うというのもあるけど、敢えてmpdと操作端末の間にクライアントを設置するというのは、あんまり見ない気がする。
使用したのは、Raspberry pi B+。本当に使わずに放置されていた機体だ。
まず、piCoreで出来ないか試したけど、これが意外にncmpcppのインストール自体が面倒で却下。
ncmpcppのサイトには「Most of the popular Linux/*BSD distributions have ncmpcpp in their repositories, 」と書いてあるんだけど、piCoreのtczには登録されていない。
raspbianでどうか。
これが簡単にncmpcppサーバーになってくれる。
リポジトリにncmpcppがあるので「apt-get install ncmpcpp」とコマンドを打つだけでインストールできて、あとはconfigファイル、bindingsファイルで設定したら使えるようになる。バージョンもncmpcpp 0.7.4なので比較的新しい。
ちなみにFedoraのリポジトリにあるのはncmpcpp 0.8.2で最新だ。Fedoraはラズパイでも動くらしんだけど、これはこれで大変そうなので今回はやめている。Cent OSだと0.5あたりだったか、、、かなり古いバージョンだったと記憶する。それで普段使いをFedoraにしたという経緯がある。
今回、ncmpcpp専用機をraspbianで仕立てたけど、mpdが動いているラズパイにncmpcppをインストールしてしまうという手もある。しかしうちでmpdが動いているのはpiCoreで、ncmpcppのインストールが手軽にとはいかない。それにmpdサーバー機に余計な負担は要らないだろうというので、別にした。
Raspbianでのncmpcppインストール、設定のしかたについて、簡単に記載しておく。
まず、raspbianを設定。
raspbian stretchをダウンロード。microSDに書き込んで、bootディレクトリにsshファイルを作る。
ラズパイに刺して起動。
ipアドレスを確認しsshでログイン。ユーザーは「pi」、パスワードは「raspberry」。
コマンド「sudo raspi-config」で初期設定。
いろいろ設定するけど、ここでは多くは説明しない。ラズパイの解説サイトを参考にして欲しい。
さて、設定ができたら、ncmpcppをインストールする。
「apt-get install ncmpcpp」とコマンドを打ったら、文字がぞろぞろ表示される。
程なくインストール終了。
次に「man ncmpcpp」と打つとncmpcppのマニュアルが表示され、設定をどうしたら良いか書いてある、、、
けど、けっこう読むのは面倒だ。
ユーザーのホームディレクトリ(今回の場合、piディレクトリ)に.ncmpcppディレクトリをつくり、そこにconfigファイルとbindingsファイル、2つの設定ファイルを置く。ファイルの原本がどこにあるかは「man ncmpcpp」と打ったときに表示されるマニュアルに記載されている。一般的には「/usr/share/doc/ncmpcpp」にあるので、これを持ってきて使えばいい。
追記。Github上にある設定ファイルはこちら。
https://github.com/arybczak/ncmpcpp/blob/master/doc/config
https://github.com/arybczak/ncmpcpp/blob/master/doc/bindings
経験的には、ncmpcppのバージョンによって設定項目が違うこともあるようで、合ってないようならエラー表示されて起動しないということがある。そういうときはエラー表示の内容に沿ってconfigファイルを直せば問題なく使える。と思う。
その設定内容なんだけど、何十項目もあって、ちょっと僕自身が把握しきれていない。画面のカスタマイズをする項目もあって、昔に多少いじったこともあるんだけど、すっかり忘れてしまった。
しかし、絶対に設定しなくてはいけない項目は意外に少ない。それ以外はデフォルトのままでも使えてしまう。
configファイルで設定しておくのは、
mpd_host = "192.168.1.xxx"
mpdサーバーのip アドレス。
これだけは必ず設定しておかないと、mpdとncmpcppがつながらない。
各自の環境に合わせてアドレスを設定する。
あとは、タグエディターを使用したかったら設定しておかないといけない項目とかあるんだけど省略。僕はタグの管理は他のソフトで行っているのでよく知らないのだ。
Bindingsファイルではキーボードショートカットを設定できる。デフォルトのままで気に入らない場合は、ここで設定変更してしまえばいい。
僕の場合、「back space」キーで曲再生がリプレイするのが気に入らなかったので「t」に変更してある。
# #def_key "backspace" # jump_to_parent_directory # #def_key "backspace" # replay_song #
デフォルトはこんな感じ。コメントアウトされているけど、ブラウザ画面で上位ディレクトリへの移動、プレイリスト画面でリプレイが設定されている。
この下に、下記の4行を書き加える。
def_key "backspace" jump_to_parent_directory def_key "t" replay_song
こんな感じ。これでリプレイを「t」キーに設定できる。
他には「f1」キーでヘルプ表示なんだけど、これがFedoraの端末ソフトのヘルプ表示と競合したので(これもf1キーでヘルプ表示の設定)、ターミナルのほうの設定を変えている。それができないようなら、ncmpcppのほうの設定を変えることになっていたかな。
これで「ncmpcpp」とコマンドを打てば起動する。
設定が正しければ、使いたいmpdの状態が反映された画面が表示されるはずだ。
windows7にsshソフトをインストールしてラズパイにログイン。「ncmpcpp」とコマンドを打った画面が以下。
ちょっとレガシー感あるけど、フォントの設定とか変えたらかっこよくできるんじゃないかな、どうだろう。
見てくれは兎も角、ちゃんと使える。
MacだともっとFedoraの画面に近くなるのだけど、スクショは省略。

9月30日、追記。Macについて。
使えるのは使えるけど、よく見たら「back space」キーがない。
Macの「delete」キーが、通常の「back space」として機能する。「delete」の機能は「fn + delete」で代替する。これはMacの約束事らしい。数十年、Macとwindowsを触ってきて、初めて気付いた。
これは紛らわしいので、他のキーに設定してしまうのもありかもしれない。
もうひとつ、「f1」キーでヘルプ表示が機能しない。
アップルは最新型でfキーを廃止したり、ノーマリゼーションというものを甘く見てるようだ。
これはbindingsファイルで使えるキーに設定しないと、慣れないうちは使いにくい。
幸い「h」キーが空いているので、下記を書き加えて設定した。これでMacでもヘルプ表示できるようになる。
def_key "h" show_help
mac、windowsで使えるのは確認したが、iPadのような端末でどうなのかは試していない。うちには今どきタブレット端末がないのだ。android携帯にsshソフト(JuiceSSH)をインストールして、使えるかどうか試してみた。
現在は使えているが、最初は下記のようなエラーが表示された。
pi@raspberrypi:~ $ ncmpcpp Reading configuration from /home/pi/.ncmpcpp/config... Terminal doesn't support window title, skipping 'enable_window_title'.
「enable_window_title」というのはncmpcppのconfigファイルに記載されている設定で、デフォルトは「yes」。端末ソフトのウィンドウのタイトルバーに「ncmpcpp 0.7.4」と表示するかどうかの設定だ。androidのsshソフトにウィンドウタイトルがないから、こういうことになったらしい。
設定を「no」にしたら動くかというと、エラー表示されないまま止まってしまう。
繰り返しログイン、ログアウトするうちにncmpcppの操作画面が表示された。
これで使えるかと思ったんだけど、表示されただけでキーボードからの指示を受け付けない。ソフトウェアキーボードだからかどうかは、はっきりしない。
実際のところ、ncmpcppの操作はほとんどキーボードで行う。キーのひとつひとつに役割が振られていて、例えば「p」は一時停止、「r」はリピート、「s」は停止、「y」は1曲のみ再生などなど。ライブラリの階層移動や曲の選択もキーボード操作で行うので、キーボードに反応しないのでは使えない。
あんまり無理はしないほうが良さそうだ。
とか思っていたら、数日後に試みたら使えるようになっていた。
何が良くて何が悪かったのか、分からないままだ。
Android操作画面のスクリーンショットをアップしておく。


問題なく動くのかといったら、ひょっと何かの拍子に画面表示が不安定になる。
他の画面に切り替わった後で、戻したら曲順が正確に表示されていないとか不具合が生じる様子。
上の2つ目の図がそのスクリーンショット。一旦「exit」して、再度「ncmpcpp」を打ったら正常に戻る。扱いには注意がいるようだ。
使えるけど画面が狭いので不便だ。もっと画面が大きいタブレットだったら違うかな、、、
あとソフトキーボードに「delete」キーがない。これはデフォルトではプレイリスト上で選択した曲を削除するキーなので、使えないのは痛い。bindingsファイルで、使えるキーに設定したらいいかな。「d」あたりがいいのかな。
こんなのできるようにしたよ、と女房に言ったら「誰が使うの?」と言われてしまった。
大丈夫、想定内だ。
Jun 04, 2016
Raspberry Pi でメモリ再生を試みる2(raspbianにmpdをインストールする)
タイトルに2とあるが、実はメモリ再生はpiCore7よりも前にraspbianで成功していた。
そもそも、デバイスの設定をconfig.txtに書き込むとalsaが認識してくれるというのは、raspbianで試みて気付いたことだった。piCore7だけいじっていたときにはこれに気付かず、諦め、まあ気を取り直してraspbianでやってみっか、、、で、気付いたのだ。
ネットで探してもpiCoreのalsaの設定の仕方はよく分からない。
僕は出来合いのi2sDACでhifiberryから設定をもらえたので簡単だったが、USB-DACとかつなぐ場合の設定は全く分からない
それはともあれ。
大したことはないけど、これも備忘録にしておく。
raspbianをmicroSDにインストール、i2sデバイスを設定
僕が使ったのはRaspbian Jessie Liteだ。 https://www.raspberrypi.org/downloads/raspbian/ 上記のサイトからダウンロードできる。
これをmicroSDに焼いて、config.txtにi2sデバイスの設定を書き込む。
下記サイトを参考。
https://www.hifiberry.com/guides/configuring-linux-3-18-x/
raspbianをRas Piで起動した後で、/boot/config.txtに書き込んで再起動でもかまわない。
ちなみにpiCore7だとブート後はconfig.txtが見えなくなる。
ファイルイメージの拡張
Ras Piに刺して起動し、sshでログインする。
ユーザーはpi、パスワードはraspberry。
そこで以下のコマンドでファイルイメージを拡張しておく。ついでにローカル設定とかもしておく。
pi@raspberrypi:~ $ sudo raspi-config
alsaインストール
下記のコマンドでインストール。
pi@raspberrypi:~ $ sudo apt-get install alsa-base
swapを止める
ほっとくと100MB程がswapに取られてしまうので設定しなおす。
コマンドなど経過は下記のとおり。
本当はpiCoreでも止めたいんだけど、こっちは方法が分からない。まあ、音楽ファイル用にswapが使われるので放置でもいいんだろうけど、止めるほうがすっきりしてるんじゃないかという気がする。
pi@raspberrypi:~ $ free total used free shared buffers cached Mem: 445124 191848 253276 4460 12388 150836 -/+ buffers/cache: 28624 416500 Swap: 102396 0 102396 pi@raspberrypi:~ $ swapon -s Filename Type Size Used Priority /var/swap file 102396 0 -1 pi@raspberrypi:~ $ sudo swapoff --all pi@raspberrypi:~ $ free total used free shared buffers cached Mem: 445124 191848 253276 4460 12396 150852 -/+ buffers/cache: 28600 416524 Swap: 0 0 0 pi@raspberrypi:~ $ pi@raspberrypi:~ $ sudo apt-get remove dphys-swapfile Reading package lists... Done Building dependency tree Reading state information... Done The following package was automatically installed and is no longer required: dc Use 'apt-get autoremove' to remove it. The following packages will be REMOVED: dphys-swapfile 0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. After this operation, 85.0 kB disk space will be freed. Do you want to continue? [Y/n] Y Can't set locale; make sure $LC_* and $LANG are correct! perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LC_TIME = "en_US.UTF-8", LC_MONETARY = "en_US.UTF-8", LC_MEASUREMENT = "en_US.UTF-8", LC_NUMERIC = "en_US.UTF-8", LC_PAPER = "en_US.UTF-8", LANG = "en_GB.UTF-8" are supported and installed on your system. perl: warning: Falling back to a fallback locale ("en_GB.UTF-8"). locale: Cannot set LC_ALL to default locale: No such file or directory (Reading database ... 31037 files and directories currently installed.) Removing dphys-swapfile (20100506-1) ... Processing triggers for man-db (2.7.0.2-5) ... pi@raspberrypi:~ $ pi@raspberrypi:~ $ sudo reboot pi@192.168.1.116's password: Last login: Mon May 23 23:41:23 2016 from 192.168.1.52 pi@raspberrypi:~ $ free total used free shared buffers cached Mem: 445124 62396 382728 4456 6096 31940 -/+ buffers/cache: 24360 420764 Swap: 0 0 0 pi@raspberrypi:~ $
freeのメモリが250MBから380MB以上に増えている。
音楽ファイルの置き場をram diskで設定
以下のとおり。意味があるのかどうか分からないが。
pi@raspberrypi:~ $ df -h Filesystem Size Used Avail Use% Mounted on /dev/root 3.6G 890M 2.5G 26% / devtmpfs 214M 0 214M 0% /dev tmpfs 218M 0 218M 0% /dev/shm tmpfs 218M 4.4M 213M 2% /run tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 218M 0 218M 0% /sys/fs/cgroup /dev/mmcblk0p1 63M 21M 43M 33% /boot pi@raspberrypi:~ $ sudo vi /etc/fstab proc /proc proc defaults 0 0 /dev/mmcblk0p1 /boot vfat defaults 0 2 /dev/mmcblk0p2 / ext4 defaults,noatime 0 1 # a swapfile is not a swap partition, no line here # use dphys-swapfile swap[on|off] for that ##### ramdisk tmpfs /home/pi/music tmpfs defaults,size=400m 0 0 pi@raspberrypi:~ $ sudo reboot pi@raspberrypi:~ $ df -h Filesystem Size Used Avail Use% Mounted on /dev/root 3.6G 890M 2.5G 26% / devtmpfs 214M 0 214M 0% /dev tmpfs 218M 0 218M 0% /dev/shm tmpfs 218M 4.4M 213M 3% /run tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 218M 0 218M 0% /sys/fs/cgroup tmpfs 100M 0 100M 0% /home/pi/music /dev/mmcblk0p1 63M 21M 43M 33% /boot
flacをインストール、mpdをインストール
以下のコマンドでインストールできる。
pi@raspberrypi:~ $ sudo apt-get install flac pi@raspberrypi:~ $ sudo apt-get install mpd
あとはmpd.confを編集してmpdを動かすだけで音が出るはず。