目次- 一、システムの書き込み
- 1.1 イメージの書き込み
- 1.2 ファイルシステムの更新
- 1.3 LEDの無効化
- 1.4 SDCardの残り容量の拡張
- 二、ネットワーク設定
- 三、システムの更新
- 四、その他の設定
- 4.1 SSH設定
- 4.2 時刻設定
- 4.3 中国語文字化け対策
- 五、低スペックNASの構築
- 5.1 SSDのマウント
- 5.2 Sambaのインストール
- 5.3 接続方法
- 5.3.1 Windowsからの接続
- 5.3.2 Androidスマートフォンからの接続
- 付録1:nginxのインストール
一、システムの書き込み
1.1 イメージの書き込み
1)Cubieboard公式が提供する3つのシステムイメージは以下の通りです:
サーバー版とデスクトップ版があり、リソースを節約するためにサーバー版のdatacard版(2番目のイメージ)を選択します。 2)Raspberry Pi公式の書き込みツールを使用して、システムイメージをSDCardに書き込みます:
3)通常、この状態でSDCardをCubieboardに挿入すれば、すぐに使用できます。
1.2 ファイルシステムの更新
1)Cubieboard2は2012年頃にリリースされたため、公式イメージはdebian 7(wheezy)ベースです。ここでdebianのバージョンを最新の安定版debian 11(bullseye)にアップグレードします。 最新の安定版はdebian 12ですが、SSHでログインできず、一晩試しても失敗しました。 debianのバージョン情報:https://www.debian.org/releases/ 2)Debian 11をビルド:
# (1)環境準備
mkdir -p ~/cubieboard2/chroot-armhf # ディレクトリ作成
WORK_DIR=~/cubieboard2 # 作業ディレクトリ
ROOTFS_DIR=${WORK_DIR}/chroot-armhf # ターゲットシステムのrootfsディレクトリ
# (2)Debian 11(bullseye)ベースシステムのダウンロード
cd $ROOTFS_DIR
##/ man debootstrap :
# --no-check-gpg :取得したReleaseファイルのgpg署名チェックを無効化します。
# manの例 "debootstrap stretch ./stretch-chroot http://deb.debian.org/debian" から:
# ここではカスタムダウンロードソースを許可しており、公式アドレスはwheezyバージョンをサポートしていないため、
# ここでは阿里源を指定してdebianバージョンを最新のbullseyeに指定します
#/
debootstrap --foreign --no-check-gpg --arch armhf bullseye . http://mirrors.aliyun.com/debian/
# 書き込み前のファイルシステムをバックアップ
cd $ROOTFS_DIR && sudo cp /usr/bin/qemu-arm-static usr/bin/
LC_ALL=C LANGUAGE=C LANG=C chroot . /debootstrap/debootstrap --second-stage
# これでDebianベースシステムが設定完了。$ROOTFS_DIRを圧縮ファイルとして保存し、後日使用できるようにします。
cd ../ && sudo tar -czvf chroot-armhf_cb2_`date +%Y%m%d_%H%M%S`.tar.gz chroot-armhf/
# (3)ROOTFSの設定
cd $WORK_DIR/chroot-armhf
chroot . passwd # パスワード変更
echo "Cubieboard" > etc/hostname
echo "127.0.0.1 Cubieboard" >> etc/hosts
echo T0:2345:respawn:/sbin/getty -L ttyS0 115200 vt100 >> etc/inittab
vi etc/apt/sources.list # 清華源に置き換え、下記参照
chroot . apt-get update # 更新。ここで証明書検証エラーが発生する場合は、一時的にhttpsをhttpに変更
chroot . apt-get upgrade # アップグレード
chroot . apt-get install -y openssh-server
chroot . apt-get install -y locales
echo "en_US.UTF-8 UTF-8" > etc/locale.gen
echo "zh_CN.UTF-8 UTF-8" >> etc/locale.gen
chroot . locale-gen
chroot . apt-get install -y wireless-tools wpasupplicant firmware-ralink vim lrzsz net-tools
chroot . apt-get install -y ssh # rootアカウントでのログインを許可。/etc/ssh/sshd_configファイルのPermitRootLoginをyesに変更
# (4)バックアップ
cd ../ && sudo tar -czvf chroot-armhf_cb2_`date +%Y%m%d_%H%M%S`.tar.gz chroot-armhf/
(1)清華源:https://mirror.tuna.tsinghua.edu.cn/help/debian/
(2)updateまたはupgrade時に証明書検証の問題が発生した場合:
まず一時的にsources.listファイルのhttpsをhttpに置き換え、更新完了後に
chroot . apt-get install --reinstall ca-certificatesコマンドで証明書を更新します
その後、sources.listファイルのhttpをhttpsに戻します。 参考:https://www.yii666.com/blog/662479.html 3)イメージのファイルシステムを置き換え:
#(1)まずrufusでdebian-server-cb2-datacard-v1.2.imgをSDCardに書き込み
#(2)SDCardをカードリーダーでLinuxに接続
ll /dev/sd* # 一般的にsdaはLinuxシステムディスク、残りのsdb、sdcがSDカード
(3)書き込み
mount /dev/sdc2 /mnt # ファイルシステムをLinuxにマウント
rm -rf /mnt/* # 元のファイルシステムを削除
cp $WORK_DIR/chroot-armhf.tar.gz /mnt/
tar -zxvf chroot-armhf.tar.gz
sync && umount /mnt # 注意:アンマウント時のカレントディレクトリが/mntでないこと
1.3 LEDの無効化
1)Cubieboardをサーバーとして使用するため、2つのLED(緑、青)が夜に点灯し続けるため、無効化が必要です。 2)sunxi-toolsディレクトリには2つのツールがあります: bin2fex:binファイルをfexファイルに変換 fex2bin:fexファイルをbinファイルに変換 3)スクリプトファイルの取得:
# SDCardのパーティションsdc1を/mntディレクトリにマウント
mount /dev/sdc1 /mnt
# script.binをホームディレクトリにコピー
cp /mnt/script.bin ~
# binファイルを編集可能なfexファイルに変換
bin2fex script.bin script.fex
4)LEDを制御するパラメータ:
[leds_para]
leds_used = 1
leds_num = 2
leds_pin_1 = port:PH20<1><default><default><0>
leds_name_1 = "green:ph20:led1"
leds_default_1 = 1
leds_pin_2 = port:PH21<1><default><default><0>
leds_name_2 = "blue:ph21:led2"
leds_default_2 = 0
leds_trigger_2 = "heartbeat"
leds_default_1の値が1なら常時点灯、0なら消灯します。
参考: https://www.cnblogs.com/zwb800/p/3819798.html http://cubie.cc/forum.php?mod=viewthread&tid=4175
1.4 SDCardの残り容量の拡張
1)使用済み容量の確認:
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 990M 559M 381M 60% /
devtmpfs 398M 0 398M 0% /dev
tmpfs 494M 0 494M 0% /dev/shm
tmpfs 198M 504K 197M 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 4.0M 0 4.0M 0% /sys/fs/cgroup
16GBのうち3GB未満しか使用されていないことがわかります
2)第二パーティションの開始アドレスの取得:
cat /sys/block/mmcblk0/mmcblk0p2/start
26624
3)容量拡張
fdisk /dev/mmcblk0 # fdiskでディスクを操作
Welcome to fdisk (util-linux 2.36.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): d # パーティション削除
Partition number (1,2, default 2): 2 # 2番目のパーティションを削除
Partition 2 has been deleted.
Command (m for help): n # 新しいパーティション作成
Partition type
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
Select (default p): p # 主パーティションを選択
Partition number (2-4, default 2): 2
First sector (26624-31116287, default 26624): 26624 # パーティションの開始アドレスを入力
Last sector, +/-sectors or +/-size{K,M,G,T,P} (26624-31116287, default 31116287):
Created a new partition 2 of type 'Linux' and of size 14.8 GiB.
Partition #2 contains a ext4 signature.
Do you want to remove the signature? [Y]es/[N]o: Y # 署名を削除
The signature will be removed by a write command.
Command (m for help): w # 保存
The partition table has been altered.
Failed to update system information about partition 2: Invalid argument
The kernel still uses the old partitions. The new table will be used at the next reboot.
Syncing disks.
4)rebootコマンドで再起動。再起動後、容量は変化しないため、以下のコマンドが必要です:
resize2fs /dev/mmcblk0p2
df -h # 再度df -hで容量を確認
Filesystem Size Used Avail Use% Mounted on
/dev/root 15G 561M 14G 4% /
devtmpfs 398M 0 398M 0% /dev
tmpfs 494M 0 494M 0% /dev/shm
tmpfs 198M 504K 197M 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 4.0M 0 4.0M 0% /sys/fs/cgroup
参考:http://www.manongjc.com/detail/51-pqjxmgfbzdgiglp.html
二、ネットワーク設定
1)静的IPアドレスを設定。/etc/network/interfacesを編集(バックアップを忘れずに)
auto eth0
iface eth0 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.1
IPアドレスを自動取得する場合は、2行目のstaticをdhcpに変更します
2)DNSを設定。/etc/resolv.confファイルを編集
nameserver 8.8.8.8
nameserver 114.114.114.114
参考:https://cloud.tencent.com/developer/techpedia/1965/14177
三、システムの更新
3.1 debian 1)/etc/apt/sources.listファイルを編集(バックアップを忘れずに)
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
証明書の問題が表示される場合は、httpsをhttpに置き換えます。
2)更新とアップグレード
apt-get update
apt-get upgrade
参考:https://developer.aliyun.com/mirror/debian
四、その他の設定
4.1 SSH設定
1)sshをインストール:sudo apt-get install -y ssh 2)ログイン時に「Permission Denied」と表示される場合:
# バックアップ
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.`date +%Y%m%d_%H%M%S`
# /etc/ssh/sshd_configファイルでPermitRootLoginをyesに変更
PermitRootLogin yes
4.2 時刻設定
1)tzselectコマンドを実行し、プロンプトに従ってAsia、Chinaを選択 2)TZ='Asia/Shanghai'; export TZを実行し、~/.profileに追加します。 3)時刻を更新: ntpサーバーから時刻を同期:ntpdate ntp.aliyun.com システム時刻をハードウェア時刻に更新:hwclock --systohc
参考:https://www.cnblogs.com/xiaojianblogs/p/8949932.html
4.3 中国語文字化け対策
# (1)localesをインストール
apt-get install locales
# (2)/etc/default/localeファイルを開き、以下の内容を追加:
# File generated by update-locale
LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:en_US:en"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
# (3)~/.bashrcファイルを開き、以下を追加:
export LC_ALL="zh_CN.UTF-8"
# (4)以下の内容を追加:
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
echo "zh_CN.UTF-8 UTF-8" >> /etc/locale.gen
# (5)以下のコマンドを実行
locale-gen
五、低スペックNASの構築
1)Cubieboard2にはSATAインターフェースと5V電源インターフェースが備わっています。手持ちの空き容量の小さいSSDをいくつか利用して、低スペックなNASを構築します。
5.1 SSDのマウント
1)ディスク情報の確認
# (1)ディスク情報の確認
fdisk -l
Disk /dev/mmcblk0: 14.84 GiB, 15931539456 bytes, 31116288 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xed71a818
Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 2048 26623 24576 12M 83 Linux
/dev/mmcblk0p2 26624 31116287 31089664 14.8G 83 Linux
Disk /dev/sda: 238.47 GiB, 256060514304 bytes, 500118192 sectors
Disk model: INTEL SSDSC2KW25
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 1964757C-3B45-224B-AC5A-75842C918543
Device Start End Sectors Size Type
/dev/sda1 2048 500117503 500115456 238.5G Linux filesystem
このステップでマウント対象のディスクが表示されない場合は、電源ケーブルとSATAケーブル、およびディスクの状態を確認してください。
2)fdiskを使用してexFAT、ext4形式でパーティションを作成しようとしましたが、一晩かけても成功しませんでした。次にpartedツールを使用してパーティションを作成しようと試みました:
# (1)ディスク情報の確認
parted -l
Model: ATA INTEL SSDSC2KW25 (scsi)
Disk /dev/sda: 256GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 256GB 256GB ext2 primary
Model: SD SL16G (sd/mmc)
Disk /dev/mmcblk0: 15.9GB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags:
Number Start End Size File system Flags
1 0.00B 15.9GB 15.9GB fat32
# (2)parted対話式コマンドラインで操作
parted /dev/sda
h # ヘルプ表示
p # ディスクのパーティション情報表示
rm パーティション番号 # 既存のパーティション削除
mkpart primary ext2 0.0GB 100% # ext2形式のパーティション、残り容量すべてを使用
3)フォーマットとマウント:
# (1)sda1パーティションをext2形式でフォーマット
mkfs.ext2 /dev/sda1
# (2)新しいディレクトリ作成(ディスクマウント用)
mkdir /data
# (3)sda1パーティションを/dataディレクトリにマウント(複数のパーティションを作成し、別々のディレクトリにマウント可能)
mount /dev/sda1 /data
# (4)起動時の自動マウント設定
echo /dev/sda1 /data ext2 defaults 0 0 >> /etc/fstab
# (5)マウント情報の確認
df -h /data
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 235G 7.2G 216G 4% /data
参考:https://try8.cn/article/10113
5.2 Sambaのインストール
1)インストール手順:
# (1)システム更新の習慣
apt update && apt upgrade && apt autoremove
# (2)sambaをインストール
apt install samba # Debian 11でのSambaのデフォルトサービス名はnmbd
# デフォルト設定ファイル:/etc/samba/smb.conf
# 再起動コマンド:systemctl restart nmbd
# (3)ユーザー追加
useradd -s /bin/bash -m samba # Linuxユーザー作成(SambaはLinuxユーザーシステムを使用するが、独立した認証メカニズムを持つ)
# -sでユーザーログイン後のshell指定
# -m/-M /homeディレクトリにユーザーディレクトリ作成の有無
smbpasswd -a samba # sambaユーザー作成とパスワード設定
2)/etc/samba/smb.confファイルの設定
[shared]
# 共有ディレクトリの説明
comment = Shared Dirs
# 共有ディレクトリ(ここではSSDマウント先の/dataディレクトリ)
path = /mnt/sdb1
# ゲストアカウントでのアクセス許可設定
public = no
# 共有の管理者設定。security=shareの場合、この項目は無効。複数ユーザーの場合はカンマ区切り。例:admin users = samba,user1,user2
admin users = samba
# 共有のブラウズ設定。noの場合は非表示で、IP+共有名でのアクセスが必要
browseable = yes
# 共有の書き込み権限設定
writeable = yes
# 作成されたファイルのパーミッションを666に設定
create mask = 0666
# 作成されたディレクトリのパーミッションを666に設定
directory mask = 0666
# 共有の読み取り専用権限設定
# read only = yes/no
# 共有アクセスを許可するユーザー設定。例:valid users = user1,user2,@group1,@group2(複数ユーザーまたはグループはカンマ区切り、@groupはgroupユーザーグループ)
# valid users = username
# 共有アクセスを許可しないユーザー設定
# invalid users = username
# 書き込み権限を持つユーザー設定。例:write list = user1,user2,@group1,@group2(複数ユーザーまたはグループはカンマ区切り、@groupはgroupユーザーグループ)
# write list = username
3)sambaサービスの再起動:
systemctl restart nmbd
参考:https://www.cnblogs.com/HGNET/p/17127149.html
5.3 接続方法
5.3.1 Windowsからの接続
1)Win + Rを押し、入力:\IPアドレス 2)「この共有フォルダにアクセスできません。組織のセキュリティポリシーのため…」というメッセージが表示される場合は、以下の方法で対応: (1)Win + Rを押し、入力:gpedit.msc (2)「コンピューターの構成」→「管理テンプレート」→「ネットワーク」→「Lanmanワークステーション」 (3)「セキュリティで保護されていないゲストログオンを有効にする」をダブルクリックし、「有効」を選択: 3)Windowsで、PowerShellでSamba共有ディレクトリを開く:
New-SmbMapping -RemotePath "\\192.168.1.50\share" -LocalPath Z:
cd z:
Get-SmbMapping # Sambaマッピングの取得
Remove-SmbMapping # Sambaマッピングの削除
5.3.2 Androidスマートフォンからの接続
Android(ファーウェイスマートフォン):ファイル管理→ネットワークワーク→デバイス追加: ホスト名またはIPアドレス:192.168.0.x ユーザー名:samba パスワード:パスワード
付録1:nginxのインストール
1)ダウンロード:https://nginx.org/en/download.html
2)インストール
# 前準備ソフトウェア
sudo apt-get install openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev make
# CentOS7.xの場合:
yum install -y openssl-devel pcre pcre-devel zlib make
# check
./configure --with-http_gzip_static_module --http-client-body-temp-path=/usr/local/nginx/temp/client --http-proxy-temp-path=/usr/local/nginx/temp/proxy --http-fastcgi-temp-path=/usr/local/nginx/temp/fastcgi --http-uwsgi-temp-path=/usr/local/nginx/temp/uwsgi --http-scgi-temp-path=/usr/local/nginx/temp/scgi --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module --with-stream
# インストール
sudo make && sudo make install
参考 https://blog.csdn.net/MicroMehhh/article/details/142290422