空腹おやじのログと備忘録

VBA(主にExcel)でいろいろな実験的な事とか、Linuxのコマンドとか設定とかについて忘れないように、あれこれと・・・

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のインストール
  2. ユーザー定義共有の作成
  3. sambaの設定
  4. サービスの再起動
  5. sambaユーザーの作成
  6. 共有ディレクトリの作成と登録
  7. スマホの設定

詳細

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)を追加

$ sudo gpasswd sambashare -a 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セクション

すべてコメント

; comment = Home Directories
; browseable = no
; writable = yes

 

printersセクション

すべてコメント

; comment = All 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ユーザーの作成

sambaアクセス用ユーザー(Z1000)の作成
$ 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でネットワークインターフェイスをUp、Downするコマンド

まずは、インターフェイスの識別

ip addr | grep 192.168
    inet 192.168.1.11/24 brd 192.168.1.255 scope global dynamic enp3s0

enp3s0とわかったところで、

sudo ip link set enp3s0 down

sudo ip link set enp3s0 up


ifdown、ifup→、ifconfig→ipと変わるたびに覚え直さないと・・・

Linuxでチェックサムの計算や確認をするコマンド(sha256sum)

Linuxのイメージファイル(ISO)等、ダウンロードしたファイルの検証を行う手段として、提供されているチェックサムと照合する方法があります。
その一例として、SHA256の計算、照合を行うコマンドsha256sumの使い方です。

MD5SHA1sha256sumコマンドの代わりに、下記のコマンドを使用すれば、同様にできます。
MD5md5sum
SHA1sha1sum

 

指定したファイルのチェックサム(SHA256)を計算する

$sha256sum  ファイルパス

 

ディレクトリ内のファイルのSHA256チェックサムをファイルに出力する

$find ディレクトリ -type f -exec sha256sum {} \; > 出力ファイル

  • sha256sumと{の間にスペースが必要
  • }と\の間にもスペースが必要

チェックサムを計算するファイルのディレクトリと、結果を出力するファイルのディレクトリは同じディレクトリとしないほうがいいと思う。
出力ファイル自身のチェックサムも、出力ファイルに出力されるので・・・

 

チェックサム(SHA256)が記載されたファイルと照合する

$sha256sum -c チェックサムが記載されたファイルのパス

 

実際に試してみた例

f:id:Z1000S:20170604101330p:plain

上記の例で作成された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 をインストールして最初にすること

  1. ミラーの設定
  2. パッケージリストの更新
  3. パッケージのアップグレード
  4. HOMEのディレクトリを英語表記に変更
  5. vimのインストール
  6. 言語パッケージのインストール
  7. ネットワーク設定
  8. フォントのインストール、設定
  9. アンチウィルスソフトのインストール
  10. 日本語入力環境の構築
  11. エイリアスの設定
  12. ntpの設定
  13. sshの設定
  14. conkyの設定
  15. プリンタ(cups-pdf)の設定
  16. その他のアプリケーションのインストール、設定
  17. お気に入りのアプリケーションの変更
  18. アプレットの設定

 


ミラーの設定

パッケージリストの更新、パッケージのアップグレードをする前に最速のミラーを設定する。

$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のインストール

$sudo pacman -S vim

言語パッケージのインストール
 
ネットワーク設定
 
フォントのインストール、設定

IPAフォントと源ノ角ゴシックのインストール

$sudo pacman -S otf-ipafont adobe-source-han-sans-jp-fonts

Ricty Diminishedのダウンロードとインストール

ここからTTFファイル群をダウンロード

/usr/share/fonts/TTFに、RictyDiminishedディレクトリを作って、

$sudo mkdir /usr/share/fonts/TTF/RictyDiminished

ダウンロードしたTTFファイル群を移動

$sudo mv ~/Downloads/*.ttf /usr/share/fonts/TTF/RictyDiminished/

フォントのキャッシュを更新

$sudo fc-cache -fv

日本語入力環境の構築
$sudo pacman -S fcitx-im fcitx-mozc fcitx-configtool

~/.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の設定
$sudo vi /etc/ssh/sshd_config

設定の確認はこのあたり
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の設定
Conky - ArchWikiを参照
デスクトップに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 ::ラベル

 

参考としたサイト

かえでのWebログ