Raspbian for Pi4

      在〈Raspbian for Pi4〉中尚無留言

映像檔下載

請到官網下載 Raspbin, 選擇 Raspbian Buster Lite, 將下載的zip檔解壓縮

製作sdcard

下載 balena, 選取sdcard位置及映像檔後, 即可開始flash

balena

安裝注意事項

更改密碼 : 密碼更改後, 還是可以自動登入
The screen show a black border around the desktop 打勾, 下次開機就可以全螢幕了

畫面大小

偏好設定->screen configuration, 再更改為 192*1080
偏好設定->外觀設定->預設, 再選取For large screens : Set Defaults
偏好設定->外觀設定->選單列, 位置選底部

更改Partition

1. 先使用Linux的gparted更改後面的ext4 partition大小及位置
2. 再使用Windows的 EaseUS Partition Master 13.5 更改boo區的fat32 partition

桌面版禁止螢幕保護

sudo vim /etc/lightdm/lightdm.conf, 找到下面的設面

#xserver-command=X

修改為

xserver-command=X -s 0 -dpms

然後重新開機

更改帳密

Raspbian預設帳號密碼 : pi/raspberry

sudo useradd -m -s /bin/bash thomas
sudo passwd thomas
sudo adduser thomas sudo
logout後, 使用新帳號登入
sudo userdel -r pi

sudo visudo
#加入
thomas ALL=(ALL) NOPASSWD: ALL
然後Ctrl+O, Ctrl+x

自動登入帳號

更改如下檔案

sudo vim /etc/lightdm/lightdm.conf
[Seat:*] 
autologin-guest=false
autologin-user=thomas
autologin-user-timeout=0

Raspbian 系統很奇怪, 就算使用其它帳號登入, 但還是會有幾支行程使用pi帳號執行. 使用kill -9 刪除後, 還是會自動生出來, 所以請不要把 pi 帳號砍掉。(想砍也砍不掉)

安裝vim

sudo apt-get install vim

設定IP

首先使用 sudo raspi-config , 設定SSID及密碼

再設定IP : sudo vim /etc/dhcpcd.conf

# 如果要設定的是無線網路的固定IP,則把下列 eth0 改成 wlan0
interface eth0
static ip_address=x.x.x.x/24
static routers=x.x.x.x
static domain_name_servers=x.x.x.x

範例如下:
# 無線網路介面: wlan0
# IP: 192.168.8.8, Submask: 255.255.255.0, Gateway: 192.168.8.1
# DNS: 1.1.1.1 1.0.0.1
interface wlan0
static ip_address=192.168.1.10/24
static routers=192.168.1.1
static domain_name_servers=168.95.1.1 168.95.192.1

上述設定完成後,重開機就會套用設定了。

備註:
上述方法的前提是 dhcpcd 和 networking 要開機時就預設啟動,指令如下:
systemctl enable dhcpcd
systemctl enable networking

Failed to start dhcpcd on all interfaces.

sudo systemctl disable dhcpcd.service

啟動ssh

sudo update-rc.d ssh enable

設定時區

Raspbian 已自動啟動網路時間校正(ntp), 但時區需手動更改, 請輸入如下指令

sudo raspi-config

然後選取Localisation Options/Change Timezone/Asia/Taipei

完成後, 下達 date 指令即可看到目前時間

Git Server

只要安裝 git git-core即可

sudo apt-get install git git-core

git repository 一定要放在 ext4內. 如果放在ntfs裏, 則會因為權限無法上傳.
假設儲存庫為 /GitRepos, 則權限設定如下

sudo groupadd git
sudo usermod -a -G git 帳號
sudo chgrp -R git /GitRepos
sudo chmod g+rwx -R /GitRepos

更新系統

sudo apt-get update
sudo apt-get upgrade

安裝ftp

安裝套件 : sudo  apt-get install vsftpd

設定 : sudo vim /etc/vsftpd.conf, 並於最後加入如下

write_enable=YES # 啟用可以修改文件的 FTP 命令
local_umask=022 # 本地用戶創建文件的 umask 值
xferlog_std_format=YES # 保持標準日誌文件格式
chroot_local_user=YES #變更ftp目錄為根目錄, 防止跳脫ftp之外
allow_writeable_chroot=YES
utf8_filesystem=YES #防止中文亂碼

重新啟動 : sudo systemctl restart vsftpd

ftp 掛載其他目錄

sudo vim /etc/init.d/mountftp

#!/bin/sh
mkdir -p /home/thomas/server
mount --bind /server /home/thomas/server

sudo chmod 755 /etc/init.d/mountftp
cd /etc/rc3.d
sudo ln -s ../init.d/mountftp S99mountftp
sudo reboot

安裝MariDB

MariaDB是MySQL關聯式資料庫管理系統的一個復刻,由社群開發,有商業支援,旨在繼續保持在GNU GPL下開源。MariaDB的開發是由MySQL的一些原始開發者領導的,他們擔心甲骨文公司收購MySQL後會有一些隱患。

MariaDB打算保持與MySQL的高度相容性,確保具有庫二進位奇偶校驗的直接替換功能,以及與MySQL API和命令的精確匹配. MariaDB內建了一個新的儲存引擎Aria,它可以替代MyISAM,成為預設的事務和非事務引擎. 它最初使用XtraDB作為預設儲存引擎, 並從10.2版本切換回InnoDB。

它的首席開發人員是米卡埃爾·維德紐斯,他是MySQL AB的創始人之一,也是Monty Program AB的創始人。2008年1月16日,MySQL AB 宣布它已經同意被昇陽電腦集團以大約10億美元的價格收購。該項收購已於2008年2月26日完成。MariaDB是以Monty的小女兒Maria命名的,就像MySQL是以他另一個女兒My命名的一樣。

sudo apt install mariadb-server
sudo mysql -u root #登入MySQL

設定權限
use mysql;
create user 'account'@'%' identified by 'password';
grant all privileges on *.* to 'account'@'%';

mariadb預設只能本地端登入, 若要能遠端登入, 需修改如下設定

sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf

#bind-address = 127.0.0.1
bind-address = 192.168.1.10

重啟mariadb
sudo systemctl restart mariadb

Safe Updae Mode

在Safe Update Mode開啟的狀態下,在沒有 WHERE 或 LIMIT 條件的 UPDATE 或 DELETE 動作會拒絕執行,而即使是有 WHERE 和 LIMIT 條件,但沒有 KEY column 的 WHERE 條件也會拒絕執行。

要關閉Safe Update Mode 可執行SET SQL_SAFE_UPDATES=0 指令

MySQL資料匯出匯入

匯出 : mysqldump -u account -p –routines wordpress > wordpress_20191101.sql
匯入 : mysql -u account -p wordpress < wordpress_20191101.sql

請注意, 由mysql 匯出的.sql 再匯入mariadb時, 時若發生 Unknown collation: ‘utf8mb4_0900_ai_ci’, 則需將 .sql的檔案使用notepad++打開, 將 ‘utf8mb4_0900_ai_ci’ 改為 ‘utf8mb4_general_ci’

MySQL自動輸入密碼

每次在本機登入, 備份, 還原, 都要輸入密碼, 實在太麻煩了, 以下方法, 可以不用輸入密碼. 不過這只適用Linux系統.

注意喔, 只有在本機不用輸入密碼喔. 如果在遠端不用輸入密碼, 那還得了.

vim ~/.my.cnf

[client]
password=YOUR_MYSQL_PASSWORD

然後就不用輸入密碼了

mysql -u 帳號
mysqldump -u 帳號 --routines wordpress > wordpress.sql
mysql -u 帳號 wordpress< wordpress.sql

安裝Apache2

安裝

sudo apt-get install apache2

設定

sudo vim /etc/apache2/apache2.conf

請注意, 需把Indexes刪除, 否則會看到目錄下的所有列表, 會有安全性的問題

<Directory /server/wordpress/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

sudo vim /etc/apache2/sites-available/000-default.conf 

DocumentRoot /server/wordpress

網頁權限

網頁根目錄需設定使用者及群組使用者為 www-data

sudo mkdir /server
sudo mv ~/wordpress /server
sudo chown -R www-data:www-data /server/wordpress

重啟

sudo systemctl restart apache2

安裝php

安裝

sudo apt-get -y install php7.3 libapache2-mod-php7.3
sudo apt-get -y install php7.3-mysql php7.3-curl php7.3-gd php7.3-intl  php-imagick php7.3-imap php7.3-mbstring php-gettext php-zip

設定 : sudo vim /etc/php/7.3/apache2/php.ini

upload_max_filesize = 200M #單檔最大容量
post_max_size = 20M

SDCard備份

備份 : 在Windows下, 使用 winDisklmanger 進行備份即可

縮小 : winDisklmanger備份後, SDCard有多大, 檔案就有多大. 此時可以使用Linux下的 pishrink將 img縮小, 比如64G的SDCard映像檔, 可以縮成 6G左右

wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh 
chmod +x ./pishrink.sh
sudo ./pishrink.sh ./raspbian.img

請注意, 新映像檔會取代原檔案

桌面版開機畫面

預設的 splash.png 置於 /usr/share/plymouth/themes/pix內, 但開機時並不會用到

1. 請準備一張 png檔, 大小為螢幕解析度, 檔名改為splash.png, 然後copy到 /opt目錄

2. sudo apt-get install fbi

3. 新增 /etc/systemd/system/splashscreen.service

[Unit]
Description=Splash
screenDefaultDependencies=no
After=local-fs.target

[Service]
ExecStart=/usr/bin/fbi -d /dev/fb0 --noverbose -a /opt/splash.png
StandardInput=tty
StandardOutput=tty

[Install]
WantedBy=sysinit.target

4. sudo systemctl enable splashscreen

5. sudo systemctl start splashscreen

6. 禁用顏色測試 sudo vim /boot/config.txt, 最後加入

disable_splash=1

7. 禁用角落 Pi 標誌, 請在 /boot/cmdline.txt 加入

logo.nologo consoleblank=0 loglevel=1

檔案總管閃退

sudo apt-get dist-upgrade

上述指令會把衝突的套件移除, 檔案總管就不會閃退了

omxplayer

https://github.com/popcornmix/omxplayer

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *