毎度のようにraspiを吹っ飛ばすので備忘録として一括で書きます。
ssh pi@raspberrypi
初期パスワードはraspberry
nmcli c
でDEVICEからNAMEを見つける
sudo nano /etc/NetworkManager/system-connections/${NAME}.nmconnection
を編集
x.xxxはWifiとLANで違うようにすること y.yyyはルーター/ホームゲートウェイのIP
下記のように変える
[ipv4]
method=manual
address1=192.168.x.xxx/24,192.168.y.yyy
dns=192.168.y.yyy
以下このコマンドで更新(ssh connection等は切れる)
sudo nmcli connection reload
sudo nmcli connection up ${NAME}
以下のは古いやつ
sudo nano /etc/dhcpcd.conf
に
# 有線LAN
interface eth0
static ip_address=192.168.x.xxx/24
static routers=192.168.y.y
static domain_name_servers=192.168.y.yyy 8.8.8.8
# 無線LAN(Wi-Fi)
interface wlan0
static ip_address=192.168.x.xxx/24
static routers=192.168.y.y
static domain_name_servers=192.168.y.yyy 8.8.8.8
を追記
x.xxxはWifiとLANで違うようにすること y.yyyはルーター/ホームゲートウェイのIP
passwd
で pi ユーザーのパスワードを
sudo passwd
で root ユーザーのパスワードを (最高権限ユーザーだから取扱注意)
また pi ユーザー は攻撃対象にあることが多いから知識があれば他ユーザーに変えることをお勧めします
以下 設定項目の変更を推奨 OS ver で異なるので頑張って探して!
1. System Options
Hostname # sshなどにつかう
2. Display Options
Resolution # 画質設定
# 良いのがないは別ページ参照
3. Interface Options
SSH # Enableに
4. Performance Options
GPU Memory # 32ぐらいで十分
5. Localisation Options
Locale # ja-jp.UTF-8.UTF-8 に設定
Timezone # Asia Tokyo に設定
Wlan Country # JP Japan に設定
これで大体十分
データを更新
sudo apt update
sudo apt full-upgrade
以下のパッケージおすすめ
sudo apt install apache2 # Webサバ
sudo apt install samba # Windowsからエクスプローラーでファイルを触れるようになる
sudo apt install tmux # 仮想ターミナル
sudo apt install screen # 仮想ターミナル どっちでもいい
sudo apt install ufw # ファイアーウォール
sudo apt install xrdp # リモートデスクトップ CUI環境はいらない
sudo apt install git # githubを使ったりするのに必要
sudo apt install ffmpeg # 映像,画像処理のやつ
sudo apt install open-jtalk open-jtalk-mecab-naist-jdic hts-voice-nitech-jp-atr503-m00 # OpenjTalkの必要なセット
最初に使うポートを許可する
sudo ufw allow 22/tcp # SSH
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 137/udp # Samba
sudo ufw allow 138/udp # Samba
sudo ufw allow 139/udp # Samba
sudo ufw allow 445/tcp # Samba
sudo ufw allow 3389/tcp # Xrdp
で 必要ない(デフォルト)ポートを閉じる
sudo ufw default deny
そしたら ファイアーウォールを起動する
sudo ufw enable
以上で設定終わり!
nano ~/.bashrc
で alias l="ls -lah"
とかを追記しとくと l
だけでまとめて確認できたりする
sudo nano /etc/xrdp/xrdp.ini
で開き 書き換え終わったら service xrdp restart
でok
# 読み上げ文をechoで
echo "読み上げ文" | open_jtalk -x path/to/dic -m path/to/voice.htsvoice -ow path/to/output.wav
# 読み上げ文と.txtで
open_jtalk -x path/to/dic -m path/to/voice.htsvoice -ow path/to/output.wav reading.txt
# aptでフルセット入れた場合はこんな感じ
echo "こんにちは" | open_jtalk -x /var/lib/mecab/dic/open-jtalk/naist-jdic -m /usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice -ow ~/ojtalk.wav
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/(任意).conf # デフォルトをコピー
sudo nano /etc/apache2/sites-available/(任意).conf # 設定を変更
# "VirtualHost" と "DocumentRoot" を変更すること
sudo nano /etc/apache2/ports.conf # Listenを追加する
sudo a2ensite <任意>.conf # 設定ファイルを読み込み
sudo service apache2 restart # リロード&再起動
sudo nano /etc/samba/smb.conf # 設定を追記する 詳しくは下を参照
sudo service smbd restart # 適応
[Share]
comment = Raspberry Pi
# 共有するフォルダの path
path = /home/pi/Share
guest ok = yes
read only = no
browsable = yes
# 共有するフォルダにアクセスする際の User
force user = pi
# 内部名を取得する Disk /dev/sd?? で表示される ころころ変わるから注意
sudo fdisk -l
# マウントコマンド
sudo mount /dev/sd?? (マウント先フォルダ)
# アンマウントコマンド 実行しないとデータ破損? どっちでも問題なし
sudo unmount (ディスク名)
sudo unmount (マウント先フォルダ)
スワップ領域 削除
sudo swapoff --all # 停止
sudo apt purge --auto-remove dphys-swapfile # パッケージ削除
sudo rm -fr /var/swap # スワップの残骸削除
swap領域 リセット
swapoff -a && swapon -a
swap領域 有効化
sudo apt install dphys-swapfile
swap領域 拡張
sudo nano /etc/dphys-swapfile # 設定書き換え 詳しくは下を参照
sudo /etc/init.d/dphys-swapfile restart # 再起動
# Swapの大きさ(単位M)
CONF_SWAPSIZE= 100
# もし4GB以上なら こっちも変更(単位M) & 先頭の#を外す
CONF_MAXSWAP= 1000
swap領域 追加
sudo fallocate -l 1G /swapfile # swap用ファイル 任意サイズ,任意Path
sudo chmod 600 /swapfile # 権限設定
sudo mkswap /swapfile # Swap File 化
sudo swapon /swapfile # 登録
echo '/swapfile swap swap defaults 0 0' | sudo tee -a /etc/fstab # Reboot時の自動登録
sudo swapon --show #swap file確認 # Swap File をチェック
なんか便利なのでめもっときます なおX11環境(GUI)じゃないといけない
cd ~
sudo apt install x11vnc # install
git clone https://github.com/novnc/noVNC.git
# 下の二つは同時に
x11vnc -display :0 -passwd (password) -repeat -forever -shared -loop -rfbport 6081
~/noVNC/utils/novnc_proxy --vnc localhost:6081
# 止めるときは 両方Ctrl+C
nano ~/vnc.sh # 楽に管理できる奴 要screen
vnc.sh
if [ "$(screen -ls | grep "vnc")" = "" ]
then
screen -U -A -md -S vncServer
screen -r vncServer -X stuff "x11vnc -display :0 -passwd (password) -repeat -forever -shared -loop -rfbport 6081\n"
screen -U -A -md -S vncWeb
screen -r vncWeb -X stuff "~/noVNC/utils/novnc_proxy --vnc localhost:6081\n"
else
screen -r vncServer -X kill
screen -r vncWeb -X kill
fi
# 自動スリープ 無効化
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
# 自動スリープ 有効化
sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target
# ユーザー情報
id (user)
# uid: ユーザー名&ID,gid グループ名&ID,groups その他グループ名&ID
# ユーザー追加 -m が homedir 生成,無い場合は / に
useradd -m (user)
# グループ -f は 重複時は生成しない ops
groupadd -f (group)
# ユーザーのパスワード設定
sudo passwd (user)
# ユーザーの色々
usermod -g (group) (user) # メイングループ変更
usermod -G (group) (user) # サブグループを変更
usermod -G (group1),(group2),... (user) # サブグループを変更
usermod -aG (group) (user) # サブグループを追加
usermod -aG (group1),(group2),... (user) # サブグループを追加
usermod -L (user) # ユーザーをロックする
usermod -U (user) # ユーザーのロックを解除する
usermod -d (directory) (user) # ユーザーのホームディレクトリを設定
userdel -r (user) # ユーザーを削除 -r をつけるとホームディレクトリ削除
sudo useradd -m (user) # ユーザーの追加
sudo passwd (user) # パスワードを設定
groups pi # pi の所属グループを入手
# それを参考にユーザーにグループを設定 (group は :以降のを , で区切る)
sudo usermod -G (group) (user)
# もしくは これをなぐる (正常に動くかはわからんけど)
sudo usermod -G $(groups pi| sed -e "s|^.*: ||g" -e "s| |,|g") (user)
sudo cp -r /home/pi/* /home/(user) # pi のファイルを 新しいのに移動
sudo nano /etc/lightdm/lightdm.conf # ログインユーザーを変更
sudo nano /etc/systemd/system/autologin@.service # 自動ログインのほうも変更
sudo usermod -L pi # piユーザー をロック
lightdm.conf
#ログインユーザー変更
autologin-user=(user)
autologin@.service
--autologin (user)