【メモ】debian 11 にリアルタイムカーネル導入

mpd で音楽再生していると,やはり debian だとリアルタイムカーネル, ubuntu だと linux-lowlatency カーネル入れた方が音が良くなるんすよね.

debian 11 の場合

$ sudo apt update
$ sudo apt install linux-image-rt-amd64

ちなみに ubuntu 20.04 LTS の場合

$ sudo apt update
$ sudo apt install linux-lowlatency

【メモ】debian 11 に Dropbox を CUI インストール

本当にメモ程度.

まずインストール.https://www.dropbox.com/ja/install-linux のコマンドラインを使った Dropbox のヘッドレス インストール を参照.

$ cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -

新規作成した.dropbox-distフォルダから Dropbox デーモンを実行.

$ ~/.dropbox-dist/dropboxd

以下引用.

サーバーで初めて Dropbox を実行する場合、使用中のブラウザでリンクをコピーして貼り付けて新規アカウントを作成するか、既存のアカウントとサーバーを連携させるように指示が表示されます。その後、Dropbox フォルダがホーム ディレクトリに作成されます。コマンド ラインから Dropbox を管理するには Python スクリプト をダウンロードしてください。アクセスしやすくするには、PATH のどこかでスクリプトに symlink します。

Dropbox をインストールしてアカウントを最大限に活用

https://www.dropbox.com/ja/install-linux

Python スクリプトをダウンロードする.Dropbox を Linux (CUI環境)で利用する を参照.

$ mkdir ~/bin
$ cd ~/bin
$ wget -O dropbox.py "http://www.dropbox.com/download?dl=packages/dropbox.py"
$ chmod a+x dropbox.py

適時動作確認.スクリプトコマンドは以下.

$ dropbox.py
Dropbox command-line interface

commands:

Note: use dropbox help <command> to view usage for a specific command.

 autostart    automatically start Dropbox at login
 exclude      ignores/excludes a directory from syncing
 filestatus   get current sync status of one or more files
 help         provide help
 lansync      enables or disables LAN sync
 ls           list directory contents with current sync status
 proxy        set proxy settings for Dropbox
 puburl       get public url of a file in your Dropbox's public folder
 running      return whether Dropbox is running
 sharelink    get a shared link for a file in your Dropbox
 start        start dropboxd
 status       get current status of the dropboxd
 stop         stop dropboxd
 throttle     set bandwidth limits for Dropbox
 update       download latest version of Dropbox
 version      print version information for Dropbox

同期が終わっていたら,下記のコマンドで「最新の状態」と表示される.

$ dropbox.py status
最新の状態

このままだと OS を再起動した場合,Dropbox は起動しない.デスクトップでログインすると,自動起動するようにデフォルトではなっている.それでも構わないが,Debian をサーバとして使う際は,OS 起動時に Dropbox も起動して欲しい.Dropbox を ubuntu にインストールして自動で同期する設定 及び [CentOS 7] systemctl で動かしている Dropbox が気がつけば落ちてしまう現象を解消した方法 を参照.

$ sudo vi /lib/systemd/system/dropbox.service

[Unit]
Description=Dropbox Client Service

[Service]
User=USER
Type=simple
ExecStart=python3 /home/USER/.dropbox-dist/dropboxd
Restart=always

[Install]
WantedBy=multi-user.target

USER はユーザー名に置き換えて下さい.記述が終わったら読み込み.

$ sudo systemctl daemon-reload
$ sudo systemctl enable dropbox
$ sudo systemctl start dropbox

色々書きようはあるのでしょうけど,とりあえずこれで動いている.

【メモ】debian 11 に samba インストール

ユーザー追加が色々あって,メモ.

まず,samba 自体をインストール.

$ sudo apt install samba

samba へのユーザー追加.debian のユーザー名を hoge とする.

$ sudo pdbedit -a hoge
new password:
retype new password:

あとは /etc/samba/smb.conf を適当に編集して(ヲイ ,samba を再起動.

$ sudo systemctl restart smbd

【メモ】Music Player Daemon (MPD) にてデバイス名を指定する

Linux の起動時のオーディオデバイスの検出順によってはカード番号が mpd.conf に記載したカード番号とずれて,音声が出力されないことがある.その対策.

例えば,aplay -l を実行したとする.

$ aplay -l
**** ハードウェアデバイス PLAYBACK のリスト ****
カード 0: PCH [HDA Intel PCH], デバイス 0: ALCS1200A Analog [ALCS1200A Analog]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0
カード 0: PCH [HDA Intel PCH], デバイス 1: ALCS1200A Digital [ALCS1200A Digital]
  サブデバイス: 0/1
  サブデバイス #0: subdevice #0
カード 2: HDMI [HDA ATI HDMI], デバイス 3: HDMI 0 [HDMI 0]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0
カード 2: HDMI [HDA ATI HDMI], デバイス 7: HDMI 1 [HDMI 1]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0
カード 3: V3 [Pebble V3], デバイス 0: USB Audio [USB Audio]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0

マザーボードの光 SPDIF 出力ポートが カード 0 , デバイス 1 となっている.ここから出力したい.mpd.conf の audio_output には

audio_output {
     type        "alsa"
     name        "My ALSA Device"
     device      "hw:0,1"    # optional
     (中略)
}

と記載するところ,カード名称がこの場合 “PCH” であることから,

audio_output {
     type        "alsa"
     name        "My ALSA Device"
     device      "hw:PCH,1"    # optional
     (中略)
}

と記載する.

これで,カードの番号が変わったとしても影響を受けない.

【メモ】Debian 11 に NVIDIA のプロプライエタリドライバをインストールする

Debian 11 PC で使っている Intel Pentium G4600 の内蔵グラフィックが遅いので,余っている NVIDIA GeForce GT 1030 を使う.こちらの記事を参考にしました.なお,Music Player Daemon (MPD) を使うためにリアルタイムカーネルをインストールすると,ブート時にこの NVIDIA のドライバー絡みでエラーを吐くようになるので注意.

参考にしたのは以下の記事.

https://linuxhint.com/install-nvidia-drivers-debian-11/

まずは apt-line に contrib と non-free を追加

$ sudo apt-add-repository contrib
$ sudo apt-add-repository non-free
$ sudo apt update

これから debian PC をシャットダウンして,NVIDIA GeForce GT 1030 を挿した.

さて,起動するが,画面が映らない.他の PC から ssh で debian PC (foober) にログインする.

$ ssh hoge@foober

確認.

$ lspci | egrep 'VGA|NVIDIA'
01:00.0 VGA compatible controller: NVIDIA Corporation GP108 [GeForce GT 1030] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GP108 High Definition Audio Controller (rev a1)

NVIDIA のドライバをインストールする.

$ sudo apt install nvidia-driver

途中,nouveau とコンフリクトするから再起動しろとダイアログボックスが表示されるので,OKする.インストール終わったら,再起動.

$ sudo reboot

確認.

$ lsmod | grep nvidia
nvidia_drm             61440  3
drm_kms_helper        278528  1 nvidia_drm
nvidia_modeset       1232896  6 nvidia_drm
nvidia              34205696  198 nvidia_modeset
drm                   618496  6 drm_kms_helper,nvidia_drm

【メモ】Debian 11 (bullseye) で ibus の使い勝手が悪いので、fcitx5 に換える

多分英語配列キーボードを使っているからかもしれない.しかも HHKB ユーザーだし.https://wiki.debian.org/ja/I18n/Fcitx5 参照.

まず ibus を削除.

# apt remove ibus

fcitx5 と fcitx5-mozc と gnome-shell-extension-kimpanel をインストールし,uim をアンインストール.

# apt install fcitx5 fcitx5-mozc gnome-shell-extension-kimpanel
# apt remove uim uim-mozc

im-config を実行.Fcitx5 を選択.

$ im-config

一旦再起動.

「アクティビティ」から「検索ワードを入力」で fcitx5-configtool を実行.あるいは「アクティビティ」「アプリケーションを表示」から「Fcitx5 設定」を実行.

「アクティビティ」「アプリケーションを表示」から「拡張機能」を実行.”Input Method Panel” を ON にする.

【メモ】debian 11 で一般ユーザーを sudo グループに所属させる

ユーザー名を hoge とします.

まずこのエントリーを参考に設定しています.

$ su -
パスワード:

# adduser hoge sudo
ユーザ `hoge' をグループ `sudo' に追加しています...
ユーザ hoge をグループ sudo に追加
完了。

試してみる.

$ sudo whoami
hoge は sudoers ファイル内にありません。この事象は記録・報告されます。

あれ?

ではこちらの記事を参考に.

# visudo

# 最終行に以下を追記
hoge    ALL=(ALL:ALL) ALL

これで OK .

usermodコマンドを使ったほうが良かったのだろうか?

# usermod -G sudo hoge
# cat /etc/group | grep hoge

【メモ】Ubuntu 20.04 に HDD を増設する

Ubuntu 20.04 PC にて動画を保存している 3TB の HDD が既に 75% 使用されていることから,余っている 3TB の HDD を増設することにする.GUI 上で行う方法も見つけた (HDDをフォーマットする – Ubuntu 20.04編) が,後で Debian PC にも HDD を増設することから,コマンドラインで作業する.

こちらの LinuxにHDDを増設・マウントする という記事より,既にハード的に増設された HDD がどのように認識されているかを確認します.

$ sudo lshw -C 
*-namespace               
       詳細: NVMe namespace
       物理ID: 1
       論理名: /dev/nvme0n1
       サイズ: 931GiB (1TB)
       性能: gpt-1.00 partitioned partitioned:gpt
       設定: guid=cb12aa7e-d925-4745-b134-d4cea00c8527 logicalsectorsize=512 sectorsize=512
  *-disk
       詳細: ATA Disk
       製品: WDC WD30EFRX-68E
       ベンダー: Western Digital
       物理ID: 0.0.0
       バス情報: scsi@2:0.0.0
       論理名: /dev/sda
       バージョン: 0A80
       シリアル: WD-WMC4N2519488
       サイズ: 2794GiB (3TB)
       性能: gpt-1.00 partitioned partitioned:gpt
       設定: ansiversion=5 guid=9c1c077e-2921-4972-869d-6ab753277752 logicalsectorsize=512 sectorsize=4096
  *-disk
       詳細: ATA Disk
       製品: WDC WD30EZRZ-00Z
       ベンダー: Western Digital
       物理ID: 0.0.0
       バス情報: scsi@4:0.0.0
       論理名: /dev/sdb
       バージョン: 0A80
       シリアル: WD-WCC4N7XXPN25
       サイズ: 2794GiB (3TB)
       性能: gpt-1.00 partitioned partitioned:gpt
       設定: ansiversion=5 guid=53238609-af2a-204a-82f3-c49370923797 logicalsectorsize=512 sectorsize=4096

論理名: /dev/sdb ですね.

fdisk だと出力が長いので,該当分だけ書きます.

$ sudo fdisk -l
~省略~
ディスク /dev/sdb: 2.75 TiB, 3000592982016 バイト, 5860533168 セクタ
Disk model: WDC WD30EZRZ-00Z
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O サイズ (最小 / 推奨): 4096 バイト / 4096 バイト
ディスクラベルのタイプ: gpt
ディスク識別子: 53238609-AF2A-204A-82F3-C49370923797

デバイス   開始位置   最後から     セクタ サイズ タイプ
/dev/sdb1      2048 5860533134 5860531087   2.7T Linux ファイルシステム
~省略~

lsblk だとどうでしょうか.これも長いので,該当分だけ書きます.

$ lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
~省略~
sdb           8:16   0   2.7T  0 disk 
└─sdb1        8:17   0   2.7T  0 part /media/(username)/e2c28fef-fb32-487d-959b-02cdb3963221
~省略~

では, root になって fdisk コマンドでパーティション削除,作成をします.

$ sudo su
# fdisk /dev/sdb

fdisk (util-linux 2.34) へようこそ。
ここで設定した内容は、書き込みコマンドを実行するまでメモリのみに保持されます。
書き込みコマンドを使用する際は、注意して実行してください。


コマンド (m でヘルプ): d
パーティション 1 を選択
パーティション 1 を削除しました。

コマンド (m でヘルプ): p
ディスク /dev/sdb: 2.75 TiB, 3000592982016 バイト, 5860533168 セクタ
Disk model: WDC WD30EZRZ-00Z
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O サイズ (最小 / 推奨): 4096 バイト / 4096 バイト
ディスクラベルのタイプ: gpt
ディスク識別子: 53238609-AF2A-204A-82F3-C49370923797

コマンド (m でヘルプ): i
パーティションは何も設定されていません!

コマンド (m でヘルプ): n
パーティション番号 (1-128, 既定値 1): 1
最初のセクタ (2048-5860533134, 既定値 2048): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-5860533134, 既定値 5860533134): 

新しいパーティション 1 をタイプ Linux filesystem、サイズ 2.7 TiB で作成しました。
パーティション #1 には ext4 署名が書き込まれています。

署名を削除しますか? [Y]es/[N]o: y

署名は write (書き込み)コマンドを実行すると消えてしまいます。

コマンド (m でヘルプ): w
パーティション情報が変更されました。
ディスクを同期しています。

パーティションを確認します.

# fdisk -l /dev/sdb
ディスク /dev/sdb: 2.75 TiB, 3000592982016 バイト, 5860533168 セクタ
Disk model: WDC WD30EZRZ-00Z
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O サイズ (最小 / 推奨): 4096 バイト / 4096 バイト
ディスクラベルのタイプ: gpt
ディスク識別子: 53238609-AF2A-204A-82F3-C49370923797

デバイス   開始位置   最後から     セクタ サイズ タイプ
/dev/sdb1      2048 5860533134 5860531087   2.7T Linux ファイルシステム

ファイルシステム作成

# mkfs.ext4 /dev/sdb1
mke2fs 1.45.5 (07-Jan-2020)
/dev/sdb1 contains a ext4 file system
	last mounted on /srv on Sun Apr  3 22:39:33 2022
Proceed anyway? (y,N) y
/dev/sdb1 is mounted; will not make a filesystem here!

あれw 実は以前に ext4 でフォーマットした HDD だったので,こうなったww

HDD をマウントしてみます.

# mkdir /mnt/hdd
# mount /dev/sdb1 /mnt/hdd

さて,この HDD を起動時に自動マウントするよう, /etc/fstab に書いておきます.HDD の UUID を確認します.

# blkid /dev/sdb1
/dev/sdb1: UUID="e2c28fef-fb32-487d-959b-02cdb3963221" TYPE="ext4" PARTUUID="7317d376-9a0b-f247-b5ce-f164b6ed67d1"

私は vi / Vim ユーザーなので, vi で /etc/fstab を編集します.

# vi /etc/fstab
# /mnt/hdd was on /dev/sdb1
UUID=e2c28fef-fb32-487d-959b-02cdb3963221 /mnt/hdd            ext4    defaults        0       2

面倒なので,再起動します.無事にマウントされていることを確認しましょう.