현재 오류가 발생하여 추후 업데이트 진행 예정입니다.
2025년 02월 26일 기준으로 작성된 메뉴얼입니다.
설치 시 오류가 발생할 경우, 별도로 제공되는 IMG 이미지 파일 활용해 주시기 바랍니다.
AP 관련 설치 및 설정
Raspberry Pi에서 설정되는 부분입니다.
아래의 명렁어를 통해 패키지를 업데이트 해줍니다.
아래의 명렁어를 통해 AP, DNS 관련 패키지를 설치합니다.
sudo apt-get install hostapd dnsmasq
설정을 변경하기 전에 hostapd, dnsmasq 서비스를 중지하여 충돌을 방지합니다.
sudo systemctl stop hostapd
sudo systemctl stop dnsmasq
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
country=KR
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="idearobot"
psk="idearobot123"
key_mgmt=WPA-PSK
}
ssid, psk를 사용 wifi에 따라 변경 하시면 됩니다.
아래의 명렁어를 통해 AP 모드에서 사용할 인터페이스와 IP를 설정해줍니다.
sudo nano /etc/dhcpcd.conf
interface ap0
static ip_address=192.168.10.1/24
nohook wpa_supplicant
아래의 명렁어를 통해 AP 모드에서 사용할 DHCP IP 주소 범위를 지정해줍니다.
sudo nano /etc/dnsmasq.conf
interface=ap0
dhcp-range=192.168.10.2,192.168.10.20,255.255.255.0,24h
아래의 명령어를 통해 AP SSID 설정 및 실행 파일 생성해줍니다.
import subprocess
interface = "ap0"
password = "1234567890"
def get_mac_address(interface):
result = subprocess.check_output(["cat", f"/sys/class/net/{interface}/address"]).decode("utf-8")
mac_address = result.strip().replace(":", "")
return mac_address
raspberry_pi_mac = get_mac_address(interface)
ssid = f"STELLA{raspberry_pi_mac}"
print("SSID:", ssid)
hostapd_config = f"""interface={interface}
ssid={ssid}
hw_mode=g
channel=7
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase={password}
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
"""
with open("/etc/hostapd/hostapd.conf", "w") as f:
f.write(hostapd_config)
subprocess.run(["sudo", "systemctl", "restart", "hostapd"])
chmod +x /home/pi/ap.py
아래의 명령어를 통해 Hostapd 설정합니다.
sudo nano /etc/default/hostapd
DAEMON_CONF="/etc/hostapd/hostapd.conf"
아래의 명령어를 통해 IP 포워딩 활성화를 합니다.
sudo nano /etc/sysctl.conf
net.ipv4.ip_forward=1
아래의 명령어를 통해 NAT 설정하여 AP로 인터넷 공유가 가능하도록 합니다.
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
아래의 명령어를 통해 NAT 룰을 저장하여 재부팅 시 유지되게 합니다.
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
아래의 명령어를 통해 NAT 설정 유지 및 AP Python 파일 자동으로 활성화하도록 합니다.
sudo nano /etc/rc.local
iptables-restore < /etc/iptables.ipv4.nat
sleep 5
python3 /home/pi/ap.py
아래의 명령어를 통해 네트워크 인터페이스를 설정해줍니다.
sudo nano /etc/network/interfaces
source /etc/network/interfaces.d/*
auto ap0
iface ap0 inet static
address 192.168.10.1
netmask 255.255.255.0
network 192.168.10.0
broadcast 192.168.10.255
아래의 명령어를 통해 AP 인터페이스 스크립트를 생성해줍니다.
sudo nano /usr/local/bin/create_ap0.sh
#!/bin/bash
# Create ap0 interface
iw dev wlan0 interface add ap0 type __ap
# Bring up ap0 interface
ifconfig ap0 up
아래의 명령어를 통해 스크립트 실행 권한 부여해줍니다.
sudo chmod +x /usr/local/bin/create_ap0.sh
아래의 명령어를 통해 부팅 시 AP 인터페이스 생성을 자동화 해줍니다.
sudo nano /etc/systemd/system/create_ap0.service
[Unit]
Description=Create ap0 interface at boot
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/create_ap0.sh
RemainAfterExit=true
[Install]
WantedBy=multi-user.target
아래의 명령어를 통해 부팅시 자동 실행되도록 설정해줍니다.
sudo systemctl enable create_ap0.service
아래의 명령어를 이용해서 네트워크 서비스를 재시작합니다.
sudo systemctl start create_ap0.service
sudo systemctl restart networking
sudo systemctl restart hostapd
sudo systemctl restart dnsmasq
아래의 명렁어를 이용해서 Pi를 재시작 합니다.