205 lines
5.6 KiB
Bash
205 lines
5.6 KiB
Bash
#!/bin/sh
|
|
|
|
# 检查参数数量
|
|
if [ "$#" -ne 1 ]; then
|
|
echo "Usage: $0 <sequence_number>"
|
|
exit 1
|
|
fi
|
|
|
|
dir_path="/root/u"
|
|
|
|
# 检查U盘目录是否存在
|
|
if [ ! -d "$dir_path" ]; then
|
|
echo "U盘目录不存在,正在创建U盘目录..."
|
|
mkdir -p "$dir_path" # 创建目录
|
|
else
|
|
echo "U盘目录已经存在."
|
|
fi
|
|
|
|
|
|
# 获取命令行参数
|
|
sequence_number=$1
|
|
|
|
# 定义一个函数来执行复制操作并输出结果
|
|
copy_file() {
|
|
local source_file="$1"
|
|
local target_dir="$2"
|
|
if [ -f "$source_file" ]; then
|
|
cp "$source_file" "$target_dir"
|
|
if [ $? -eq 0 ]; then
|
|
echo "文件 $source_file 已成功复制到 $target_dir 目录。"
|
|
else
|
|
echo "复制文件 $source_file 时出错。"
|
|
exit 1
|
|
fi
|
|
else
|
|
echo "当前目录下未找到 $source_file 文件。"
|
|
fi
|
|
}
|
|
# 添加 启动脚本 到 /etc/init.d/
|
|
copy_file "S79hostapd" "/etc/init.d/"
|
|
copy_file "S90E-CAP" "/etc/init.d/"
|
|
#copy_file "S99Check_reboot" "/etc/init.d/"
|
|
|
|
# 移除 启动脚本
|
|
rename_file() {
|
|
local original_name="$1"
|
|
local new_name="$2"
|
|
|
|
if [ -f "$original_name" ]; then
|
|
mv "$original_name" "$new_name"
|
|
if [ $? -eq 0 ]; then
|
|
echo "已成功将 $original_name 重命名为 $new_name"
|
|
else
|
|
echo "重命名 $original_name 时出错。"
|
|
exit 1
|
|
fi
|
|
else
|
|
echo "$original_name 文件不存在"
|
|
fi
|
|
}
|
|
rename_file "/etc/init.d/S49weston" "/etc/init.d/_S49weston"
|
|
rename_file "/etc/init.d/S41dhcpcd" "/etc/init.d/_S41dhcpcd"
|
|
|
|
# 生成 /etc/hostapd.conf 文件
|
|
hostapd_config="# 无线网络接口名称,可通过 ifconfig 或 ip addr 命令查看
|
|
interface=wlan0
|
|
# 使用的驱动程序,通常为 nl80211
|
|
driver=nl80211
|
|
# 热点的 SSID
|
|
ssid=E-CAP_${sequence_number}
|
|
# 通道号,可根据需要调整
|
|
channel=6
|
|
# 认证和加密模式
|
|
hw_mode=g
|
|
ieee80211n=1
|
|
wmm_enabled=1
|
|
ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]
|
|
macaddr_acl=0
|
|
auth_algs=1
|
|
ignore_broadcast_ssid=0
|
|
wpa=2
|
|
wpa_key_mgmt=WPA-PSK
|
|
wpa_pairwise=TKIP
|
|
rsn_pairwise=CCMP
|
|
# 热点的密码
|
|
wpa_passphrase=12345678"
|
|
|
|
echo "$hostapd_config" > /etc/hostapd.conf
|
|
if [ $? -eq 0 ]; then
|
|
echo "文件 /etc/hostapd.conf 已成功生成。"
|
|
else
|
|
echo "生成 /etc/hostapd.conf 文件时出错。"
|
|
exit 1
|
|
fi
|
|
|
|
# 生成 /etc/dnsmasq.conf 文件
|
|
dnsmasq_config="# 监听的接口
|
|
interface=wlan0
|
|
# DHCP 服务的 IP 地址范围
|
|
dhcp-range=192.168.10.10,192.168.10.100,255.255.255.0,12h
|
|
# 网关地址
|
|
dhcp-option=3,192.168.10.1
|
|
# DNS 服务器地址
|
|
dhcp-option=6,8.8.8.8
|
|
# 本地 DNS 服务器地址
|
|
server=8.8.8.8
|
|
# 禁用 DNS 缓存
|
|
no-hosts
|
|
# 不读取 /etc/resolv.conf 文件
|
|
no-resolv"
|
|
|
|
echo "$dnsmasq_config" > /etc/dnsmasq.conf
|
|
if [ $? -eq 0 ]; then
|
|
echo "文件 /etc/dnsmasq.conf 已成功生成。"
|
|
else
|
|
echo "生成 /etc/dnsmasq.conf 文件时出错。"
|
|
exit 1
|
|
fi
|
|
|
|
# 生成 /etc/network/interfaces 文件
|
|
network_config="# interface file auto-generated by buildroot
|
|
|
|
auto lo
|
|
iface lo inet loopback
|
|
|
|
auto eth0
|
|
iface eth0 inet static
|
|
address 192.168.1.${sequence_number}
|
|
netmask 255.255.255.0
|
|
gateway 192.168.1.1
|
|
dns-nameservers 192.168.1.1 8.8.8.8
|
|
post-up /usr/sbin/ethtool -s eth0 speed 100 duplex full autoneg off
|
|
pre-down /usr/sbin/ethtool -s eth0 autoneg on
|
|
# post-up 网络接口被激活之后应该执行的命令。
|
|
# pre-down 在网络接口即将被关闭之前执行的命令。
|
|
# 添加这两行命令是为了限制网速为100M,解决phy网络排线过长导致网卡不稳定的问题。
|
|
|
|
auto wlan0
|
|
iface wlan0 inet static
|
|
address 192.168.10.${sequence_number}
|
|
netmask 255.255.255.0
|
|
gateway 192.168.10.1
|
|
dns-nameservers 192.168.10.1 8.8.8.8"
|
|
|
|
# 生成 /etc/network/interfaces 文件
|
|
echo "$network_config" > /etc/network/interfaces
|
|
if [ $? -eq 0 ]; then
|
|
echo "文件 /etc/network/interfaces 已成功生成。"
|
|
else
|
|
echo "生成 /etc/network/interfaces 文件时出错。"
|
|
exit 1
|
|
fi
|
|
|
|
|
|
if [ ! -d "/root/tiles" ]; then
|
|
if [ -f "tiles.zip" ]; then # 检查 tiles.zip 文件是否存在
|
|
unzip -q "tiles.zip" -d "/root/" # 解压 tiles.zip 到 /root/ 目录
|
|
if [ $? -eq 0 ]; then
|
|
echo "tiles.zip 已成功解压到 /root/ 目录。"
|
|
else
|
|
echo "解压 tiles.zip 到 /root/ 目录时出错。"
|
|
exit 1
|
|
fi
|
|
else
|
|
echo "当前目录下未找到 tiles.zip 文件。"
|
|
fi
|
|
else
|
|
echo "瓦片文件夹已存在。"
|
|
fi
|
|
|
|
|
|
|
|
# 检查当前目录下的 Radarcape_Local_Server_aarch64-buildroot-linux-gnu-gxx_Linux_Debug 文件是否存在
|
|
if [ -f "Radarcape_Local_Server_aarch64-buildroot-linux-gnu-gxx_Linux_Debug" ]; then
|
|
# 给文件添加执行权限
|
|
chmod +x "Radarcape_Local_Server_aarch64-buildroot-linux-gnu-gxx_Linux_Debug"
|
|
if [ $? -eq 0 ]; then
|
|
echo "已成功给当前目录下的 Radarcape_Local_Server_aarch64-buildroot-linux-gnu-gxx_Linux_Debug 文件添加执行权限。"
|
|
else
|
|
echo "给当前目录下的 Radarcape_Local_Server_aarch64-buildroot-linux-gnu-gxx_Linux_Debug 文件添加执行权限时出错。"
|
|
exit 1
|
|
fi
|
|
else
|
|
echo "当前目录下未找到 Radarcape_Local_Server_aarch64-buildroot-linux-gnu-gxx_Linux_Debug 文件。"
|
|
fi
|
|
|
|
# 定义要设置的 root 密码
|
|
ROOT_PASSWORD="123"
|
|
|
|
# 使用 expect 来非交互式地修改 root 密码
|
|
expect << EOF
|
|
spawn passwd root
|
|
expect "New password:"
|
|
send "$ROOT_PASSWORD\r"
|
|
expect "Retype new password:"
|
|
send "$ROOT_PASSWORD\r"
|
|
expect eof
|
|
EOF
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo "root 用户密码已成功设置。"
|
|
else
|
|
echo "设置 root 用户密码时出错。"
|
|
exit 1
|
|
fi |