Files
Blueberry/SF/ArmDebian/New/ArmDebian.sh
T
2026-04-13 17:04:21 +08:00

188 lines
7.0 KiB
Bash

# 克隆构建工具
git clone https://github.com/armbian/build.git build-blueberry
# 安装 docker binfmt 支持
sudo docker run --rm --privileged tonistiigi/binfmt --install all
# 添加自己的开发板
cd build-blueberry
mkdir -p userpatches/config/boards
# 智能判断内核版本
KERNEL_TARGET=$(grep KERNEL_TARGET ~/blueberry.conf | cut -d'=' -f2 | tr -d '"')
IFS=',' read -r -a KERNEL_ARRAY <<< "$KERNEL_TARGET"
for k in "${KERNEL_ARRAY[@]}"; do
echo "$k"
done
echo "${KERNEL_ARRAY[0]}"
FAMILY="sunxi64"
TARGET="${KERNEL_ARRAY[0]}"
FILE=$(find config/sources/families/include -name "${FAMILY}_common.inc" | head -n1)
KERNEL_VERSION=$(awk -F'"' -v t="$TARGET" '
$0 ~ t ")" {f=1; next}
f && /KERNEL_MAJOR_MINOR/ {print $2; exit}
' "$FILE")
echo "$KERNEL_VERSION"
ls patch/kernel/archive/sunxi-"$KERNEL_VERSION"
FILE="patch/kernel/archive/sunxi-${KERNEL_VERSION}/series.conf"
LINE=$'\tpatches.armbian/ARM64-dts-sun50i-h616-Blueberry.patch'
grep -qxF "$LINE" "$FILE" || printf "%s\n" "$LINE" >> "$FILE"
# 复制本地补丁文件
cp ~/blueberry.conf userpatches/config/boards
mkdir -p userpatches/u-boot/u-boot-sunxi
cp ~/0001-add-blueberry-board.patch userpatches/u-boot/u-boot-sunxi
cp ~/ARM64-dts-sun50i-h616-Blueberry.patch patch/kernel/archive/sunxi-"$KERNEL_VERSION"/patches.armbian
#git apply ~/series.conf.patch
# 复用 bigtreetech-cb1 补丁
cp -rf patch/u-boot/u-boot-sunxi/board_bigtreetech-cb1 patch/u-boot/u-boot-sunxi/board_blueberry
# 构建
./compile.sh build BOARD=blueberry BRANCH=current BUILD_DESKTOP=no BUILD_MINIMAL=no KERNEL_CONFIGURE=yes RELEASE=trixie
exit 0
# Ubuntu 版本
root@aixiao:/home/aixiao# hostnamectl
Static hostname: aixiao
Icon name: computer-vm
Chassis: vm
Machine ID: 30f4af3f441a47f4ad8df049a9162b05
Boot ID: 9952ae442b4340dfb8a86d92c4f468e0
Virtualization: vmware
Operating System: Ubuntu 22.04.5 LTS
Kernel: Linux 5.15.0-174-generic
Architecture: x86-64
Hardware Vendor: VMware, Inc.
Hardware Model: VMware Virtual Platform
root@aixiao:/home/aixiao#
# 安装 Docker
# Add Docker's official GPG key:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl status docker
sudo systemctl start docker
sudo docker run hello-world
sudo usermod -aG docker aixiao
newgrp docker
# 固定 IP
echo "network: {config: disabled}" | sudo tee /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
vim /etc/netplan/01-netcfg.yaml
network:
version: 2
ethernets:
ens33: # <--- 請確認這裡是否為您的網卡名稱
dhcp4: no
addresses:
- 192.168.99.128/24 # 您的 IP,後面的 /24 代表遮罩 255.255.255.0
routes:
- to: default
via: 192.168.99.2 # 您的網關 (Gateway)
nameservers:
addresses:
- 192.168.99.2 # 通常網關也具備 DNS 功能 (特別是 VMware 環境)
- 8.8.8.8 # 備用 DNS (Google)
sudo netplan apply
exit 0
# 连接 WIFI
root@blueberry:~# nmcli dev wifi list
IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY
54:48:E6:AE:3F:42 root Infra 1 130 Mbit/s 47 ** WPA2 WPA3
34:FC:A1:9F:EF:83 CMCC-EFJG Infra 1 130 Mbit/s 25 * WPA1 WPA2
8C:02:CD:C2:DD:E6 CMCC-5rer Infra 3 130 Mbit/s 10 * WPA1 WPA2
IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY
54:48:E6:AE:3F:42 root Infra 1 130 Mbit/s 44 ** WPA2 WPA3
34:FC:A1:9F:EF:83 CMCC-EFJG Infra 1 130 Mbit/s 19 * WPA1 WPA2
8C:02:CD:C2:DD:E6 CMCC-5rer Infra 3 130 Mbit/s 19 * WPA1 WPA2
C0:2D:33:5C:87:4E -- Infra 11 130 Mbit/s 9 * WPA2
C0:2D:2E:5C:87:4A CMCC-u54f Infra 11 130 Mbit/s 9 * WPA2 WPA3
root@blueberry:~# sudo nmcli dev wifi connect "root" password "@aixiao.19960623"
Device 'wlan0' successfully activated with 'b0cba970-12ce-42a8-96c6-b05a5914892f'.
root@blueberry:~# ip a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: end0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether e2:75:ba:34:42:cf brd ff:ff:ff:ff:ff:ff
altname enxe275ba3442cf
inet 192.168.9.170/24 brd 192.168.9.255 scope global dynamic noprefixroute end0
valid_lft 42791sec preferred_lft 42791sec
inet6 fd1e:8b41:92d2::d6a/128 scope global dynamic noprefixroute
valid_lft 42791sec preferred_lft 42791sec
inet6 2409:8a48:213:f974::d6a/128 scope global dynamic noprefixroute
valid_lft 4991sec preferred_lft 2291sec
inet6 2409:8a48:213:f974:2e6:e340:8b33:151c/64 scope global dynamic noprefixroute
valid_lft 5080sec preferred_lft 2380sec
inet6 fd1e:8b41:92d2:0:a1a6:9cdd:dc5a:9355/64 scope global dynamic noprefixroute
valid_lft 5080sec preferred_lft 2380sec
inet6 fe80::a97c:e673:f279:c00d/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 30:95:87:45:da:0e brd ff:ff:ff:ff:ff:ff
altname wlx30958745da0e
inet 192.168.9.177/24 brd 192.168.9.255 scope global dynamic noprefixroute wlan0
valid_lft 43198sec preferred_lft 43198sec
inet6 fd1e:8b41:92d2::885/128 scope global tentative dynamic noprefixroute
valid_lft 43199sec preferred_lft 43199sec
inet6 2409:8a48:213:f974::885/128 scope global dynamic noprefixroute
valid_lft 5399sec preferred_lft 2699sec
inet6 2409:8a48:213:f974:32af:255f:b12d:4516/64 scope global dynamic noprefixroute
valid_lft 5399sec preferred_lft 2699sec
inet6 fd1e:8b41:92d2:0:3499:15e3:6813:e6c7/64 scope global tentative dynamic noprefixroute
valid_lft 5399sec preferred_lft 2699sec
inet6 fe80::7a70:452a:c0a0:1610/64 scope link noprefixroute
valid_lft forever preferred_lft forever
4: wlan1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 32:95:87:45:d8:0e brd ff:ff:ff:ff:ff:ff
altname wlx32958745d80e
root@blueberry:~#