Shuttle Music Player (Android)のライブラリの更新(ファイル削除時)Part 1
最初に
ここに記載の内容についてはPart2があります。根本的な解決策はPart2の方に記載してあります。
スマホで、Shuttle Music Playerを使い始めました。
とりあえず、問題もなく使っていたのですが、聞かない曲をファイラーで(SDカードから)削除したところ、アプリのライブラリには、削除したはずの曲が残っています。
アプリのライブラリから、存在しない曲を削除しようとしても出来ません。
ライブラリの再スキャンとか、更新といった項目を、アプリのメニューや設定を探しても見当たりません。
色々と調べ回った結果、たどり着いた結論は、
「SDカードを一旦アンマウントし、再度マウントし、強制的にメディアライブラリを再構築させる」
でした。
他にも、「設定」の「アプリ」内にある「メディアストレージ」の「データを消去」したら、OSを再起動して、再構築って方法もあるみたいです。
この方法の場合、再起動直後に、アプリを起動すると、「曲が無いから、何か追加してみろ」と言われました。少し時間をおいてからアプリを起動すると正しく表示されましたが、要は、ライブラリが再構築されるまでは、正しい表示がされないようです。その辺りも分かっていないと、「これでもだめなの?」って悩んでしまいます。
もう少し、分かりやすくして欲しいと思うのは私だけ?
2017/11/19追記
上記の手順でライブラリは更新されるのですが、プレイリストがクリアされてしまうようです。
他にいい方法は無いのか、また探すなり調べるなりしないといけないのか?
2017/11/29追記 (最終解決策:Part 2)
ライブラリを更新するアプリを使用することで、対応できるようです。
こちら(Part 2)にまとめましたので、興味のある方はご覧ください。
sambaを設定して、PCとスマホ間のデータの受け渡しをしてみた
PCとスマホ間でデータの受け渡しを行うことがあります。 数MBとか、数十MB程度であれば、Googleドライブや、USBメモリ経由でも気にならないのですが 数百MBとか、GB単位のファイルとなると、手間も時間もかかります。(「なぜ、そんなデカイものを」という突っ込みは置いといて・・・)
そこで、sambaによるファイル共有を利用してみることにしました。
よく見かけるのは、smb.confに、共有ディレクトリのセクションを追記していく方法ですが、最近(?)では、それとは別に、root 以外のユーザーが共有の追加、修正、削除を行なうことを可能とする機能「ユーザー定義共有」という、コマンドで共有ディレクトリを設定する方法があるようなので、その方法で設定してみました。
環境
PC:Antergos Linux Release 17.6 (デスクトップ:Cinnamon)
Manjaro Linux(Cinnamon)やRaspberry piでも同じ手順で出来るようです。
スマホ:Android 7.0
手順
詳細
1.sambaのインストール
Antergos Linux(Cinnamon)では、デフォルトでsambaがインストールされていました。
しかし、設定ファイルであるsmb.confがありません。どうやら、自分でデフォルトの設定ファイルをダウンロードする必要があるようです。 ArchWikiによると、以下のコマンドでダウンロードできるようです。
2.ユーザー定義共有の作成
共有設定を格納するディレクトリ、および共有するユーザーグループ
$ sudo mkdir -p /var/lib/samba/usershare
システムアカウントとして、sambashareを作成
$ sudo groupadd -r sambashare
作成したディレクトリの所有グループを変更
$ sudo chown root:sambashare /var/lib/samba/usershare
アクセス権を変更(スティッキービット有り)
$ sudo chmod 1770 /var/lib/samba/usershare
sambashare グループにユーザー(自分:Z1000)を追加
ここで追加するユーザーは、Antergosに登録されているユーザーでなければいけない。
ここで追加したユーザーが、下記の共有ディレクトリ登録等のコマンド(net usershare)を実行できるらしい。
3.sambaの設定
/etc/samba/smb.confの設定
以下の設定は、自分だけがPCとスマホでデータを受け渡す事しか考えていないので、Homeディレクトリや、プリンタの共有は行っていません。
globalセクション
usershare path = /var/lib/samba/usershare
;作成を許可するユーザー定義共有の最大数(デフォルトは0らしいので、明示的に指定しないと、共有を作れないらしい)
usershare max shares = 3
;ゲストアクセスを許可しない
usershare allow guests = no
;ユーザーが所有しているディレクトリのみが共有可能とする
usershare owner only = yes
;rootによるサービスへのログインは許可しない
invalid users = root
;パスワードデータベース形式はTDBファイル
passdb backend = tdbsam
;クライアントに、正しいユーザー名とパスワードでログオンを行なわせる
security = user
;プリンタを共有しない
load printers = no
printcap name = /dev/null
disable spoolss = yes
disable spoolss です。spools(sが足りない)とすると、testparmでメッセージが出るので注意。
homesセクション
すべてコメント
; browseable = no
; writable = yes
printersセクション
すべてコメント
; path = /usr/spool/samba
; browseable = no
# Set public = yes to allow user 'guest account' to print
; guest ok = no
; writable = no
; printable = yes
$ testparm
4.サービスの再起動
$ sudo systemctl restart smbd.service
$ sudo systemctl restart nmbd.service
自動起動の設定
$ sudo systemctl enable smbd.service
$ sudo systemctl enable nmbd.service
5.sambaユーザーの作成
$ sudo pdbedit -a -u z1000
6.共有ディレクトリの作成と登録
共有名"Share"で、/home/z1000/Shareを共有する。
$ net usershare add Share /home/z1000/Share MyPrivateShare z1000:F
項目値備考
共有名 | Share | 指定必須 |
共有するディレクトリ | /home/z1000/Share | 指定必須 |
コメント | MyPrivateShare | 指定は任意 |
アクセス権 | z1000:F | ユーザーZ1000に対し、フルアクセスを許可する。 デフォルト(指定しない場合)は、読み取り専用らしいので書き込み権限を追加しないとスマホ側からアップロードできない。 アクセス権の指定は、"ユーザー:"の後ろに R:読み取り専用 D:拒否 F:フルコントロール のいずれかを指定する。 すべてのユーザーを対象とする場合には、ユーザー名をeveryoneとする。 複数のユーザーを指定する場合、","で区切る |
作成した共有ディレクトリの確認や削除は以下の通り
$ net usershare list
共有ディレクトリの情報
$ net usershare info
$ net usershare info Share
共有ディレクトリの削除
$ net usershare delete Share
7.スマホの設定
スマホでは、Flashlight + Clockのファイルマネージャーを使用しました。
こちらの設定の詳細は、省略しますが、5.sambaユーザーの作成で作成したユーザーを指定し、無事データの受け渡しが出来るようになりました。
Googleドライブ経由に比べ、クラウドにアップロードする手間もいらない上、転送速度が格段に速く、快適です。
参考にしたサイト
Samba - ArcWiki
ThinkIT 第4回:Samba 3.0.20以降の新機能を追え(3)
Sambaサーバ構築、5つのべからず:2008年版
smb.conf
Linuxでチェックサムの計算や確認をするコマンド(sha256sum)
Linuxのイメージファイル(ISO)等、ダウンロードしたファイルの検証を行う手段として、提供されているチェックサムと照合する方法があります。
その一例として、SHA256の計算、照合を行うコマンドsha256sumの使い方です。
MD5やSHA1もsha256sumコマンドの代わりに、下記のコマンドを使用すれば、同様にできます。
MD5:md5sum
SHA1:sha1sum
指定したファイルのチェックサム(SHA256)を計算する
$sha256sum ファイルパス
ディレクトリ内のファイルのSHA256チェックサムをファイルに出力する
$find ディレクトリ -type f -exec sha256sum {} \; > 出力ファイル
- sha256sumと{の間にスペースが必要
- }と\の間にもスペースが必要
チェックサムを計算するファイルのディレクトリと、結果を出力するファイルのディレクトリは同じディレクトリとしないほうがいいと思う。
出力ファイル自身のチェックサムも、出力ファイルに出力されるので・・・
チェックサム(SHA256)が記載されたファイルと照合する
$sha256sum -c チェックサムが記載されたファイルのパス
実際に試してみた例
上記の例で作成されたCHECKSUMファイルの中身は、こんな感じ
9dba268ac9597c115e90ab438e45132c0699e98a0f711a730808e3aea3bbf6fd ./sub/005_02.jpg
e6e524fa3d4e7a6a16af33456d9dcf0fef415ff7e765b04f54d2183df3433fa2 ./sub/005_01.jpg
cc5136276792875ba841957977d7c7ee6daee89ca5c6b02c2d630b83a26fd9a6 ./001.jpg
89a5ae82135fa79755937c47b96b76a32a793810ea0bf5266a06ee44fb31fc64 ./002.jpg
be2a55b2081aa84d6e86884f983a8a65f590ee953e3a1924297faaba6c78aa2b ./003.jpg
1bcb4fef317c14f12db7169a4a667622d95d52b59f18ffe69c2adcd015c8a364 ./004.jpg
Manjaro Linux をインストールして最初にすること
- ミラーの設定
- パッケージリストの更新
- パッケージのアップグレード
- HOMEのディレクトリを英語表記に変更
- vimのインストール
- 言語パッケージのインストール
- ネットワーク設定
- フォントのインストール、設定
- アンチウィルスソフトのインストール
- 日本語入力環境の構築
- エイリアスの設定
- ntpの設定
- sshの設定
- conkyの設定
- プリンタ(cups-pdf)の設定
- その他のアプリケーションのインストール、設定
- お気に入りのアプリケーションの変更
- アプレットの設定
ミラーの設定
パッケージリストの更新、パッケージのアップグレードをする前に最速のミラーを設定する。
$sudo pacman-mirrors -f 0
2017/11/16 修正 "$sudo pacman-mirrors -g"は、推奨されなくなりました。
代わりに、"-f 0"を使用します。
こちらも参照
この後、パッケージリストの更新は必須。
パッケージリストの更新
$sudo pacman -Syy
パッケージのアップグレード
$sudo pacman -Syu
HOMEのディレクトリを英語表記に変更
$LANG=C xdg-user-dirs-gtk-update
vimのインストール
言語パッケージのインストール
ネットワーク設定
フォントのインストール、設定
日本語入力環境の構築
~/.xprofileの編集(末尾に以下を追加)
export LANG="ja_JP.UTF-8"
export XMODIFIERS="@im=fcitx"
export XMODIFIER="@im=fcitx"
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export DefaultIMModule=fcitx
~/.xinitrcの編集(末尾に以下を追加)
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
メニューのFcitx 設定を開き、入力メソッドタブを選択後、Mozcをダブルクリックし、キーボードレイアウトを日本語を選択し、OKをクリック。
以下は、個人的な使い勝手に合わせるための個人的な設定。
全体の設定タブを開き、Show Advanced Optionsをチェックし、「入力メソッドをオンに」「入力メソッドをオフに」の両方に、「変換」(Henkanmode)を割当
あとは、キー設定の選択をATOKに変更
ntpの設定
sshの設定
設定の確認はこのあたり
PermitRootLogin no
PasswordAuthentication no
PermitEmptyPasswords no
キー作成
$ssh-keygen -t ecdsa -b 521
512ではなく、521なので注意。
後処理
$cat ~/.ssh/id_ecdsa.pub >> ~/.ssh/authorized_keys
$chmod 600 ~/.ssh/authorized_keys
ここまでいったら、あとはid_ecdsaをクライアントPCにコピーする
あとは、sshd デーモンを起動して、
$sudo systemctl start sshd.service
sshd デーモンを起動時に有効にする
$sudo systemctl enable sshd.service
conkyの設定
デスクトップにCinnamonを使用している場合、自動起動するアプリケーションに、カスタムコマンドとして
/bin/conky
を追加すればログイン時に自動で起動してくれる。その際に、起動遅延時間を指定できるので、15〜30秒程度を指定すればOK
プリンタ(cups-pdf)の設定
その他のアプリケーションのインストール、設定
お気に入りのアプリケーションの変更
アプレットの設定
USBメモリをフォーマットするコマンド(ext4、exFAT、FAT32)
コマンド
ext4
ラベルなし | sudo mkfs.ext4 /dev/sdXn |
ラベルあり | sudo mkfs.ext4 /dev/sdXn -L ラベル |
exFAT
ラベルなし | sudo mkfs.exfat /dev/sdXn |
ラベルあり | sudo mkfs.exfat -n ラベル /dev/sdXn |
FAT32
ラベルなし | sudo mkfs.vfat -v -F 32 /dev/sdXn |
ラベルあり | sudo mkfs.vfat -v -F 32 -n ラベル /dev/sdXn |
fdiskによるパーティション作成時に指定するパーティションタイプ
ext4
0x83 | Linux |
exFAT
0x07 | HPFS/NTFS/exFAT |
FAT32
0x0B | W95 FAT32 | パーティションの終了シリンダが1023、ディスクの先頭から8GBまでの領域にパーティションが収まる場合に利用してもよい。 |
0x0C | W95 FAT32(LBA) | LBA対応版。パーティションが終了シリンダが1023を超える場合にこちらを利用する。 |
ラベルの変更
ext4
e2label /dv/sdXn ラベル
exFAT
sudo exfatlabel /dev/sdXn ラベル
FAT32
sudo mlabel -i /dev/sdXn ::ラベル
参考としたサイト