第三章 基础配置

以下基于wifi版

3.1 连接网络

  • 方式一、通过wifi指定直接连接网络

  • 方式二、在win上,通过usb实现网络共享

ip addr flush dev usb0
ip addr add 192.168.137.100/24 dev usb0
ip link set usb0 up

ip route del default
ip route add default via 192.168.137.1

echo "nameserver 8.8.8.8" > /etc/resolv.conf

3.2 运行程序

python3 car_control_server.py

后台启动

nohup python3 car_control_server.py > app.log 2>&1 &

3.3 mDNS配置(暂没实现)

sg2002 内置支持了avahi,用

ps | grep avahi

可以发现

470 avahi avahi-daemon: running [licheervnano-366e.local]

为 <主机名>-<冲突后缀>.local

修改 /etc/hosts和 /etc/hostname

修改/etc/avahi/下的 avahi-daemon.conf

之后kill avahi的pid 之后 avahi-daemon -D

3.4 https服务需要生成证书

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 3650 -nodes
  • 无交互生成自签名证书,有效期10年(3650天)
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 3650 -nodes -subj "/C=CN/ST=Beijing/L=Beijing/O=MyOrg/OU=MyDept/CN=localhost"

3.5 开机自启动

在/etc/init.d 文件中 添加 一个appinit文件,输入

#!/bin/sh
# 程序路径
APP_PATH="/root/AKA-00"
# 程序运行用户(一般嵌入式用 root)
RUN_USER="root"

# 启动函数
start() {
    sleep 5
	chmod +x /root/AKA-00/init.sh
	/root/AKA-00/init.sh
}

# 停止函数(可选,便于手动管理)
stop() {}

# 重启函数(可选)
restart() {
    stop
    sleep 1
    start
}

# 脚本参数处理
case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        restart
        ;;
    *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
        ;;
esac

exit 0

之后在 /etc/inittab 中加入一行,就可以开机自启动,代码要放在AKA-00下

app::sysinit:/etc/init.d/appinit start

3.6 网络配置

修改 /etc/wpa_supplicant.conf 文件

ctrl_interface=/var/run/wpa_supplicant
ap_scan=1

network={
  ssid="wifi名"
  psk="wifi密码"
  priority=8
}

network={
  ssid="BoBoPhone"
  psk="********"
  priority=5
}

network={
  key_mgmt=NONE
  priority=1
}