Raspberry Pi + CentOS = Wi-Fi ํ•ซ์ŠคํŒŸ(๋˜๋Š” ๋นจ๊ฐ„ ๋ชจ์ž๊ฐ€ ๋‹ฌ๋ฆฐ ๋ผ์ฆˆ๋ฒ ๋ฆฌ ๋ผ์šฐํ„ฐ)

Raspberry ๋‹จ์ผ ๋ณด๋“œ PC๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ Wi-Fi ์•ก์„ธ์Šค ํฌ์ธํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์—„์ฒญ๋‚œ ์–‘์˜ ์ •๋ณด๊ฐ€ ์ธํ„ฐ๋„ท์— ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๋Š” Raspberry ๊ณ ์œ ์˜ Raspbian ์šด์˜ ์ฒด์ œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

RPM ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์„ ๊ณ ์ˆ˜ํ•˜๋Š” ์ €๋Š” ์ด ์ž‘์€ ๊ธฐ์ ์„ ์ง€๋‚˜์น  ์ˆ˜ ์—†์—ˆ๊ณ  ์ œ๊ฐ€ ์‚ฌ๋ž‘ํ•˜๋Š” CentOS๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์ง€ ์•Š์„ ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์„œ์—์„œ๋Š” CentOS ์šด์˜ ์ฒด์ œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” Raspberry Pi 5 Model B+์—์„œ 3GHz/AC Wi-Fi ๋ผ์šฐํ„ฐ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ง€์นจ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ช‡ ๊ฐ€์ง€ ํ‘œ์ค€์ด์ง€๋งŒ ๊ฑฐ์˜ ์•Œ๋ ค์ง€์ง€ ์•Š์€ ํŠธ๋ฆญ์ด ์žˆ์œผ๋ฉฐ, ๋ณด๋„ˆ์Šค๋กœ ์ถ”๊ฐ€ Wi-Fi ์žฅ๋น„๋ฅผ Raspberry์— ์—ฐ๊ฒฐํ•˜์—ฌ ์—ฌ๋Ÿฌ ๋ชจ๋“œ(2,4+5GHz)์—์„œ ๋™์‹œ์— ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ทธ๋ฆผ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Raspberry Pi + CentOS = Wi-Fi ํ•ซ์ŠคํŒŸ(๋˜๋Š” ๋นจ๊ฐ„ ๋ชจ์ž๊ฐ€ ๋‹ฌ๋ฆฐ ๋ผ์ฆˆ๋ฒ ๋ฆฌ ๋ผ์šฐํ„ฐ)
(๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ด๋ฏธ์ง€ ํ˜ผํ•ฉ)

์ผ๋ถ€ ์šฐ์ฃผ ์†๋„๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ์„ ์ฆ‰์‹œ ์•Œ์•„๋‘๊ฒ ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ๋ฌด์„ ์œผ๋กœ Raspberry์—์„œ ์ตœ๋Œ€ 100Mbps๋ฅผ ์งœ๋ƒˆ๋Š”๋ฐ, ์ด๋Š” ์ธํ„ฐ๋„ท ์ œ๊ณต์—…์ฒด์˜ ์†๋„๋ฅผ ์ปค๋ฒ„ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ก ์ ์œผ๋กœ N์—์„œ๋„ XNUMX๊ธฐ๊ฐ€๋น„ํŠธ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ทธ๋ ‡๊ฒŒ ๋Š๋ฆฐ AC๊ฐ€ ํ•„์š”ํ•œ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ด ์งˆ๋ฌธ์„ ์Šค์Šค๋กœ์—๊ฒŒ ๋ฌผ์–ด๋ดค๋‹ค๋ฉด ๋งค์žฅ์— ๊ฐ€์„œ XNUMX๊ฐœ์˜ ์™ธ๋ถ€ ์•ˆํ…Œ๋‚˜๊ฐ€ ์žˆ๋Š” ์‹ค์ œ ๋ผ์šฐํ„ฐ๋ฅผ ๊ตฌ์ž…ํ•˜์‹ญ์‹œ์˜ค.

0. ๋‹น์‹ ์—๊ฒŒ ํ•„์š”ํ•œ ๊ฒƒ

  • ์‹ค์ œ๋กœ "๋ผ์ฆˆ๋ฒ ๋ฆฌ ์ œํ’ˆ" ์ž์ฒด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ›Œ๋ฅญํ•ฉ๋‹ˆ๋‹ค. Pi 3 Model B+(ํƒ๋‚˜๋Š” 5GHz ์†๋„ ๋ฐ ์ฑ„๋„ ๋‹ฌ์„ฑ);
  • ์ข‹์€ microSD >= 4GB;
  • Linux ๋ฐ microSD ๋ฆฌ๋”/๋ผ์ดํ„ฐ๋ฅผ ๊ฐ–์ถ˜ ์›Œํฌ์Šคํ…Œ์ด์…˜;
  • Linux์—์„œ ์ถฉ๋ถ„ํ•œ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์— ๋Œ€ํ•œ ๊ธฐ์‚ฌ๋Š” ์ˆ™๋ จ๋œ ๊ดด์งœ๋ฅผ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • Raspberry์™€ Linux ๊ฐ„์˜ ์œ ์„  ๋„คํŠธ์›Œํฌ(eth0) ์—ฐ๊ฒฐ, ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ์—์„œ DHCP ์„œ๋ฒ„ ์‹คํ–‰ ๋ฐ ๋‘ ์žฅ์น˜ ๋ชจ๋‘์—์„œ ์ธํ„ฐ๋„ท ์•ก์„ธ์Šค.

๋งˆ์ง€๋ง‰ ์š”์ ์— ๋Œ€ํ•œ ์ž‘์€ ์˜๊ฒฌ. "๊ณ„๋ž€์ด ๋จผ์ €๋ƒ, ์•„๋‹ˆ๋ฉด..." ์ธํ„ฐ๋„ท ์ ‘์† ์žฅ๋น„ ์—†์ด Wi-Fi ๋ผ์šฐํ„ฐ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ด ์žฌ๋ฏธ์žˆ๋Š” ์—ฐ์Šต์€ ๊ธฐ์‚ฌ์˜ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜์„œ ๋‹จ์ˆœํžˆ Raspberry๊ฐ€ ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ์— ์œ ์„ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๊ณ  ์ธํ„ฐ๋„ท์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ "๋ผ์ฆˆ๋ฒ ๋ฆฌ"๋ฅผ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€ TV์™€ ์กฐ์ž‘๊ธฐ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

1. CentOS ์„ค์น˜

ํ”„๋กœ์ ํŠธ ํ™ˆํŽ˜์ด์ง€

์ด ๊ธฐ์‚ฌ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์‹œ์ ์—์„œ ์žฅ์น˜์—์„œ ์‹คํ–‰๋˜๋Š” CentOS ๋ฒ„์ „์€ 32๋น„ํŠธ์ž…๋‹ˆ๋‹ค. World Wide Web ์–ด๋”˜๊ฐ€์—์„œ ๋‚˜๋Š” 64๋น„ํŠธ ARM ์•„ํ‚คํ…์ฒ˜์—์„œ ์ด๋Ÿฌํ•œ OS์˜ ์„ฑ๋Šฅ์ด ์ตœ๋Œ€ 20%๊นŒ์ง€ ๊ฐ์†Œํ•œ๋‹ค๋Š” ์˜๊ฒฌ์„ ์ ‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ์ˆœ๊ฐ„์€ ์ฝ”๋ฉ˜ํŠธ ์—†์ด ๋‚จ๊ธฐ๊ฒ ์Šต๋‹ˆ๋‹ค.

Linux์—์„œ๋Š” ์ปค๋„์ด ํฌํ•จ๋œ ์ตœ์†Œ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.-๋ผ์ฆˆ๋ฒ ๋ฆฌ ํŒŒ์ด-"๊ทธ๋ฆฌ๊ณ  microSD์— ์”๋‹ˆ๋‹ค.

# xzcat CentOS-Userland-7-armv7hl-RaspberryPI-Minimal-1810-sda.raw.xz | 
  dd of=/dev/mmcblk0 bs=4M
# sync

์ด๋ฏธ์ง€ ์‚ฌ์šฉ์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— SWAP ํŒŒํ‹ฐ์…˜์„ ์ œ๊ฑฐํ•˜๊ณ  ๋ฃจํŠธ๋ฅผ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ „์ฒด ๋ณผ๋ฅจ์œผ๋กœ ํ™•์žฅํ•œ ๋‹ค์Œ SELinux๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. Linux์—์„œ ๋ฃจํŠธ ๋ณต์‚ฌ๋ณธ์„ ๋งŒ๋“ค๊ณ , microSD์—์„œ ์ฒซ ๋ฒˆ์งธ(/boot) ํŒŒํ‹ฐ์…˜์„ ์ œ์™ธํ•œ ๋ชจ๋“  ํŒŒํ‹ฐ์…˜์„ ์‚ญ์ œํ•˜๊ณ , ์ƒˆ ๋ฃจํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋ณต์‚ฌ๋ณธ์—์„œ ํ•ด๋‹น ๋‚ด์šฉ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

ํ•„์ˆ˜ ์กฐ์น˜์˜ ์˜ˆ(์‹ฌ๊ฐํ•œ ์ฝ˜์†” ์ถœ๋ ฅ)

# mount /dev/mmcblk0p3 /mnt
# cd /mnt
# tar cfz ~/pi.tgz . --no-selinux
# cd
# umount /mnt

# parted /dev/mmcblk0

(parted) unit s
(parted) print free
Model: SD SC16G (sd/mmc)
Disk /dev/mmcblk0: 31116288s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start     End        Size       Type     File system     Flags
        63s       2047s      1985s               Free Space
 1      2048s     1370111s   1368064s   primary  fat32           boot, lba
 2      1370112s  2369535s   999424s    primary  linux-swap(v1)
 3      2369536s  5298175s   2928640s   primary  ext4
        5298176s  31116287s  25818112s           Free Space

(parted) rm 3
(parted) rm 2

(parted) print free
Model: SD SC16G (sd/mmc)
Disk /dev/mmcblk0: 31116288s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start     End        Size       Type     File system  Flags
        63s       2047s      1985s               Free Space
 1      2048s     1370111s   1368064s   primary  fat32        boot, lba
        1370112s  31116287s  29746176s           Free Space

(parted) mkpart
Partition type?  primary/extended? primary
File system type?  [ext2]? ext4
Start? 1370112s
End? 31116287s

(parted) set
Partition number? 2
Flag to Invert? lba
New state?  on/[off]? off

(parted) print free
Model: SD SC16G (sd/mmc)
Disk /dev/mmcblk0: 31116288s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start     End        Size       Type     File system  Flags
        63s       2047s      1985s               Free Space
 1      2048s     1370111s   1368064s   primary  fat32        boot, lba
 2      1370112s  31116287s  29746176s  primary  ext4

(parted) quit

# mkfs.ext4 /dev/mmcblk0p2 
mke2fs 1.44.6 (5-Mar-2019)
/dev/mmcblk0p2 contains a swap file system labelled '_swap'
Proceed anyway? (y,N) y
Discarding device blocks: done                            
Creating filesystem with 3718272 4k blocks and 930240 inodes
Filesystem UUID: 6a1a0694-8196-4724-a58d-edde1f189b31
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done   

# mount /dev/mmcblk0p2 /mnt
# tar xfz ~/pi.tgz -C /mnt --no-selinux

๋ฃจํŠธ ํŒŒํ‹ฐ์…˜์˜ ๋‚ด์šฉ์„ ํ’€๊ณ  ๋‚˜๋ฉด ์ด์ œ ์ผ๋ถ€ ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•  ์ฐจ๋ก€์ž…๋‹ˆ๋‹ค.

SELinux ๋น„ํ™œ์„ฑํ™” /mnt/etc/selinux/config:

SELINUX=disabled

ํŽธ์ง‘ /mnt/etc/fstab, ํŒŒํ‹ฐ์…˜์— ๋Œ€ํ•ด boot(/boot, ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์—†์Œ) ๋ฐ root(Linux์—์„œ blkid ๋ช…๋ น์˜ ์ถœ๋ ฅ์„ ์—ฐ๊ตฌํ•˜์—ฌ ์•Œ ์ˆ˜ ์žˆ๋Š” UUID ๊ฐ’์„ ๋ณ€๊ฒฝํ•จ)๋ผ๋Š” ๋‘ ๊ฐœ์˜ ํ•ญ๋ชฉ๋งŒ ๋‚จ๊ฒจ ๋‘ก๋‹ˆ๋‹ค.

UUID=6a1a0694-8196-4724-a58d-edde1f189b31  /     ext4    defaults,noatime 0 0
UUID=6938-F4F2                             /boot vfat    defaults,noatime 0 0

๋งˆ์ง€๋ง‰์œผ๋กœ ์ปค๋„ ๋ถ€ํŒ… ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ๋ฃจํŠธ ํŒŒํ‹ฐ์…˜์˜ ์ƒˆ ์œ„์น˜๋ฅผ ์ง€์ •ํ•˜๊ณ , ๋””๋ฒ„๊น… ์ •๋ณด ์ถœ๋ ฅ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ , (์„ ํƒ์ ์œผ๋กœ) ์ปค๋„์ด ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค์— IPv6 ์ฃผ์†Œ๋ฅผ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์„ ๊ธˆ์ง€ํ•ฉ๋‹ˆ๋‹ค.

# cd
# umount /mnt
# mount /dev/mmcblk0p1 /mnt

๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค /mnt/cmdline.txt ๋‹ค์Œ ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค(ํ•˜์ดํ”ˆ ์—†์ด ํ•œ ์ค„):

root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait quiet ipv6.disable_ipv6=1

์™„๋ฃŒ :

# cd
# umount /mnt
# sync

microSD๋ฅผ "raspberry"๋กœ ์žฌ๋ฐฐ์น˜ํ•˜๊ณ  ์‹คํ–‰ํ•œ ํ›„ ssh(root/centos)๋ฅผ ํ†ตํ•ด ๋„คํŠธ์›Œํฌ ์•ก์„ธ์Šค๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค.

2. CentOS ์„ค์ •

์ฒ˜์Œ ์„ธ ๊ฐ€์ง€ ํ”๋“ค๋ฆฌ์ง€ ์•Š๋Š” ์›€์ง์ž„: passwd, yum -y ์—…๋ฐ์ดํŠธ, ์žฌ๋ถ€ํŒ….

์šฐ๋ฆฌ๋Š” ๋„คํŠธ์›Œํฌ ๊ด€๋ฆฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค ๋„คํŠธ์›Œํฌ๋กœ ์—ฐ๊ฒฐ๋จ:

# yum install systemd-networkd
# systemctl enable systemd-networkd
# systemctl disable NetworkManager
# chkconfig network off

ํŒŒ์ผ ์ƒ์„ฑ(๋””๋ ‰ํ† ๋ฆฌ์™€ ํ•จ๊ป˜) /etc/systemd/network/eth0.network:

[Match]
Name=eth0

[Network]
DHCP=ipv4

"raspberry"๋ฅผ ์žฌ๋ถ€ํŒ…ํ•˜๊ณ  ssh๋ฅผ ํ†ตํ•ด ๋‹ค์‹œ ๋„คํŠธ์›Œํฌ ์•ก์„ธ์Šค๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค(IP ์ฃผ์†Œ๋Š” ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Œ). ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์—์ฃผ์˜ํ•˜์‹ญ์‹œ์˜ค / ๊ธฐํƒ€ / resolv.conf์—, ์ด์ „์— Network Manager์—์„œ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ•ด๊ฒฐ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ๋‚ด์šฉ์„ ํŽธ์ง‘ํ•˜์‹ญ์‹œ์˜ค. ์‚ฌ์šฉ ์‹œ์Šคํ…œ ํ•ด๊ฒฐ ์šฐ๋ฆฌ๋Š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

"๋ถˆํ•„์š”ํ•œ" ํ•ญ๋ชฉ์„ ์ œ๊ฑฐํ•˜๊ณ  ์ˆ˜๋ฆฌํ•˜๋ฉฐ OS ๋กœ๋”ฉ ์†๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค.

# systemctl set-default multi-user.target
# yum remove GeoIP Network* aic* alsa* cloud-utils-growpart 
  cronie* dhc* firewal* initscripts iwl* kexec* logrotate 
  postfix rsyslog selinux-pol* teamd wpa_supplicant

ํ•„์š”ํ•œ ์‚ฌ๋žŒ ํฌ๋ก  ๋‚ด์žฅ๋œ ๊ฒƒ์„ ์†Œํ™”ํ•˜์ง€ ๋ชปํ•˜๋Š” ์‚ฌ๋žŒ ์‹œ์Šคํ…œ ํƒ€์ด๋จธ, ๋ˆ„๋ฝ๋œ ๋‚ด์šฉ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. / var / log-๊ทธ๋ฆฌ๊ณ  ์‚ดํŽด๋ด ์ €๋„. ๋กœ๊ทธ ๊ธฐ๋ก์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ(๊ธฐ๋ณธ์ ์œผ๋กœ ์ •๋ณด๋Š” ์‹œ์Šคํ…œ์ด ์‹œ์ž‘๋˜๋Š” ์ˆœ๊ฐ„๋ถ€ํ„ฐ๋งŒ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค):

# mkdir /var/log/journal
# systemd-tmpfiles --create --prefix /var/log/journal
# systemctl restart systemd-journald
# vi /etc/systemd/journald.conf

๊ธฐ๋ณธ ์„œ๋น„์Šค์—์„œ IPv6 ์‚ฌ์šฉ ๋น„ํ™œ์„ฑํ™”(ํ•„์š”ํ•œ ๊ฒฝ์šฐ)/ etc / ssh / sshd_config:

AddressFamily inet

/etc/sysconfig/chronyd:

OPTIONS="-4"

"๋ผ์ฆˆ๋ฒ ๋ฆฌ"์— ๋Œ€ํ•œ ์‹œ๊ฐ„์˜ ๊ด€๋ จ์„ฑ์€ ์ค‘์š”ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์žฌ๋ถ€ํŒ… ์‹œ ์‹œ๊ณ„์˜ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๋Š” ํ•˜๋“œ์›จ์–ด ๊ธฐ๋Šฅ์ด ์—†์œผ๋ฏ€๋กœ ๋™๊ธฐํ™”๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•œ ๋งค์šฐ ํ›Œ๋ฅญํ•˜๊ณ  ๋น ๋ฅธ ๋ฐ๋ชฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํฌ๋กœ ๋‹ˆ - ์ด๋ฏธ ์„ค์น˜๋˜์–ด ์žˆ์œผ๋ฉฐ ์ž๋™์œผ๋กœ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. NTP ์„œ๋ฒ„๋ฅผ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์„œ๋ฒ„๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

/etc/chrony.conf:

server 0.ru.pool.ntp.org iburst
server 1.ru.pool.ntp.org iburst
server 2.ru.pool.ntp.org iburst
server 3.ru.pool.ntp.org iburst

์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•  ์‹œ๊ฐ„๋Œ€๋ฅผ ์„ค์ •ํ•˜๋ ค๋ฉด ์žฅ๋‚œ. ์šฐ๋ฆฌ์˜ ๋ชฉํ‘œ๋Š” 5GHz ์ฃผํŒŒ์ˆ˜์—์„œ ์ž‘๋™ํ•˜๋Š” Wi-Fi ๋ผ์šฐํ„ฐ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ๋ฏธ๋ฆฌ ๋†€๋ผ์›€์„ ์ค€๋น„ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์กฐ์ ˆ๊ธฐ:

# ๋ƒ  ์ •๋ณด crda
์š”์•ฝ: 802.11 ๋ฌด์„  ๋„คํŠธ์›Œํ‚น์— ๋Œ€ํ•œ ๊ทœ์ • ์ค€์ˆ˜ ๋ฐ๋ชฌ

์—ญ์‹œ ์‹œ๊ฐ„๋Œ€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์ด ์‚ฌ์•…ํ•œ ์„ค๊ณ„๋Š” (๋Ÿฌ์‹œ์•„์—์„œ) 5GHz ์ฃผํŒŒ์ˆ˜์™€ "๋†’์€" ์ˆซ์ž์˜ ์ฑ„๋„ ์‚ฌ์šฉ์„ "๊ธˆ์ง€"ํ•ฉ๋‹ˆ๋‹ค. ์š”๋ น์€ ๋Œ€๋ฅ™/๋„์‹œ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์‹œ๊ฐ„๋Œ€๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

# timedatectl set-timezone Europe/Moscow

์šฐ๋ฆฌ๋Š” ๋‹ค์Œ์„ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค:

# timedatectl set-timezone Etc/GMT-3

๊ทธ๋ฆฌ๊ณ  ์‹œ์Šคํ…œ์˜ ํ—ค์–ด์Šคํƒ€์ผ์— ๋Œ€ํ•œ ๋งˆ์ง€๋ง‰ ์†๊ธธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

# hostnamectl set-hostname router

/root/.bash_profile:

. . .

# User specific environment and startup programs

export PROMPT_COMMAND="vcgencmd measure_temp"
export LANG=en_US.UTF-8
export PATH=$PATH:$HOME/bin

3. CentOS ์• ๋“œ์˜จ

์œ„์—์„œ ๋งํ•œ ๋ชจ๋“  ๋‚ด์šฉ์€ Raspberry Pi์— "๋ฐ”๋‹๋ผ" CentOS๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•œ ์™„์ „ํ•œ ์ง€์นจ์œผ๋กœ ๊ฐ„์ฃผ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 10์ดˆ ์ด๋‚ด์— (์žฌ)๋ถ€ํŒ…๋˜๊ณ  15MB ๋ฏธ๋งŒ์˜ RAM๊ณผ 1.5GB์˜ microSD๋ฅผ ์‚ฌ์šฉํ•˜๋Š” PC๊ฐ€ ์™„์„ฑ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์‹ค์ œ๋กœ๋Š” ๋ถˆ์™„์ „ํ•œ /boot๋กœ ์ธํ•ด 1GB ๋ฏธ๋งŒ์ด์ง€๋งŒ ์†”์งํžˆ ๋งํ•ด์„œ).

์ด ์‹œ์Šคํ…œ์— Wi-Fi ์•ก์„ธ์Šค ํฌ์ธํŠธ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์„ค์น˜ํ•˜๋ ค๋ฉด ํ‘œ์ค€ CentOS ๋ฐฐํฌํŒ์˜ ๊ธฐ๋Šฅ์„ ์•ฝ๊ฐ„ ํ™•์žฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ์„  ๋‚ด์žฅ Wi-Fi ์–ด๋Œ‘ํ„ฐ์˜ ๋“œ๋ผ์ด๋ฒ„(ํŽŒ์›จ์–ด)๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ํ™ˆ ํŽ˜์ด์ง€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งํ•ฉ๋‹ˆ๋‹ค.

Raspberry 3B ๋ฐ 3B+์˜ Wi-Fi

Raspberry PI 3B/3B+ ํŽŒ์›จ์–ด ํŒŒ์ผ์€ CentOS ํ”„๋กœ์ ํŠธ์—์„œ ๋ฐฐํฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๋ฌธ์„œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ์ดํ•ดํ•˜๊ณ  ํŽŒ์›จ์–ด๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  Wi-Fi๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

CentOS ํ”„๋กœ์ ํŠธ์—์„œ ๊ธˆ์ง€๋œ ๋‚ด์šฉ์€ ๊ฐœ์ธ์ ์ธ ์šฉ๋„๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๊ธˆ์ง€๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. CentOS์˜ ๋ฐฐํฌ Wi-Fi ํŽŒ์›จ์–ด๋ฅผ Broadcom ๊ฐœ๋ฐœ์ž์˜ ํ•ด๋‹น ํŽŒ์›จ์–ด(๋™์ผํ•˜๊ฒŒ ์‹ซ์–ดํ•˜๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ blob...)๋กœ ๊ต์ฒดํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ์ด๋ฅผ ํ†ตํ•ด ์•ก์„ธ์Šค ํฌ์ธํŠธ ๋ชจ๋“œ์—์„œ AC๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Wi-Fi ํŽŒ์›จ์–ด ์—…๊ทธ๋ ˆ์ด๋“œ์žฅ์น˜ ๋ชจ๋ธ๊ณผ ํ˜„์žฌ ํŽŒ์›จ์–ด ๋ฒ„์ „์„ ํ™•์ธํ•˜์„ธ์š”.

# journalctl | grep $(basename $(readlink /sys/class/net/wlan0/device/driver))
Jan 01 04:00:03 router kernel: brcmfmac: F1 signature read @0x18000000=0x15264345
Jan 01 04:00:03 router kernel: brcmfmac: brcmf_fw_map_chip_to_name: using brcm/brcmfmac43455-sdio.bin for chip 0x004345(17221) rev 0x000006
Jan 01 04:00:03 router kernel: usbcore: registered new interface driver brcmfmac
Jan 01 04:00:03 router kernel: brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Mar  1 2015 07:29:38 version 7.45.18 (r538002) FWID 01-6a2c8ad4
Jan 01 04:00:03 router kernel: brcmfmac: brcmf_c_preinit_dcmds: CLM version = API: 12.2 Data: 7.14.8 Compiler: 1.24.9 ClmImport: 1.24.9 Creation: 2014-09-02 03:05:33 Inc Data: 7.17.1 Inc Compiler: 1.26.11 Inc ClmImport: 1.26.11 Creation: 2015-03-01 07:22:34 

ํŽŒ์›จ์–ด ๋ฒ„์ „์€ 7.45.18๋…„ 01.03.2015์›” XNUMX์ผ์ž XNUMX์ด๋ฉฐ ๋‹ค์Œ ์ˆซ์ž ์ง‘ํ•ฉ์„ ๊ธฐ์–ตํ•ฉ๋‹ˆ๋‹ค. 43455 (brcmfmac43455-sdio.bin).

ํ˜„์žฌ Raspbian ์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ. ๊ฒŒ์œผ๋ฅธ ์‚ฌ๋žŒ๋“ค์€ ์ด๋ฏธ์ง€๋ฅผ microSD์— ์“ฐ๊ณ  ๊ฑฐ๊ธฐ์—์„œ ํŽŒ์›จ์–ด๊ฐ€ ํฌํ•จ๋œ ํŒŒ์ผ์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜๋Š” Linux์—์„œ ์ด๋ฏธ์ง€์˜ ๋ฃจํŠธ ํŒŒํ‹ฐ์…˜์„ ๋งˆ์šดํŠธํ•˜๊ณ  ๊ฑฐ๊ธฐ์—์„œ ํ•„์š”ํ•œ ๊ฒƒ์„ ๋ณต์‚ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

# wget https://downloads.raspberrypi.org/raspbian_lite_latest
# unzip -p raspbian_lite_latest > raspbian.img
# fdisk -l raspbian.img
Disk raspbian.img: 2 GiB, 2197815296 bytes, 4292608 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: 0x17869b7d

Device        Boot  Start     End Sectors  Size Id Type
raspbian.img1        8192  532480  524289  256M  c W95 FAT32 (LBA)
raspbian.img2      540672 4292607 3751936  1.8G 83 Linux

# mount -t ext4 -o loop,offset=$((540672 * 512)) raspbian.img /mnt
# cp -fv /mnt/lib/firmware/brcm/*43455* ...
'/mnt/lib/firmware/brcm/brcmfmac43455-sdio.bin' -> ...
'/mnt/lib/firmware/brcm/brcmfmac43455-sdio.clm_blob' -> ...
'/mnt/lib/firmware/brcm/brcmfmac43455-sdio.txt' -> ...
# umount /mnt

๊ฒฐ๊ณผ Wi-Fi ์–ด๋Œ‘ํ„ฐ ํŽŒ์›จ์–ด ํŒŒ์ผ์„ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋ณต์‚ฌํ•˜๊ณ  "raspberry"๋กœ ๋ฐ”๊ฟ”์•ผ ํ•ฉ๋‹ˆ๋‹ค. /usr/lib/ํŽŒ์›จ์–ด/brcm/

์šฐ๋ฆฌ๋Š” ๋ฏธ๋ž˜์˜ ๋ผ์šฐํ„ฐ๋ฅผ ์žฌ๋ถ€ํŒ…ํ•˜๊ณ  ๋งŒ์กฑ์Šค๋Ÿฝ๊ฒŒ ์›ƒ์Šต๋‹ˆ๋‹ค.

# journalctl | grep $(basename $(readlink /sys/class/net/wlan0/device/driver))
Jan 01 04:00:03 router kernel: brcmfmac: F1 signature read @0x18000000=0x15264345
Jan 01 04:00:03 router kernel: brcmfmac: brcmf_fw_map_chip_to_name: using brcm/brcmfmac43455-sdio.bin for chip 0x004345(17221) rev 0x000006
Jan 01 04:00:03 router kernel: usbcore: registered new interface driver brcmfmac
Jan 01 04:00:03 router kernel: brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Feb 27 2018 03:15:32 version 7.45.154 (r684107 CY) FWID 01-4fbe0b04
Jan 01 04:00:03 router kernel: brcmfmac: brcmf_c_preinit_dcmds: CLM version = API: 12.2 Data: 9.10.105 Compiler: 1.29.4 ClmImport: 1.36.3 Creation: 2018-03-09 18:56:28 

๋ฒ„์ „: 7.45.154๋…„ 27.02.2018์›” XNUMX์ผ์ž XNUMX.

๊ทธ๋ฆฌ๊ณ  ๋ฌผ๋ก  EPEL:

# cat > /etc/yum.repos.d/epel.repo << EOF
[epel]
name=Epel rebuild for armhfp
baseurl=https://armv7.dev.centos.org/repodir/epel-pass-1/
enabled=1
gpgcheck=0
EOF

# yum clean all
# rm -rfv /var/cache/yum
# yum update

4. ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ๊ณผ ์•ž์œผ๋กœ์˜ ๊ณผ์ œ

์œ„์—์„œ ๋™์˜ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ "๋ผ์ฆˆ๋ฒ ๋ฆฌ"๋Š” "์™€์ด์–ด"๋ฅผ ํ†ตํ•ด ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ๊ณต๊ธ‰์ž๊ฐ€ ์ •ํ™•ํžˆ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ์ธํ„ฐ๋„ท ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๊ณต์šฉ ๋„คํŠธ์›Œํฌ์˜ ์ฃผ์†Œ๋Š” DHCP ์„œ๋ฒ„์— ์˜ํ•ด ๋™์ ์œผ๋กœ ๋ฐœ๊ธ‰๋ฉ๋‹ˆ๋‹ค(์•„๋งˆ๋„ MAC ๋ฐ”์ธ๋”ฉ์„ ํ†ตํ•ด). ์ด ๊ฒฝ์šฐ, ๋ผ์ฆˆ๋ฒ ๋ฆฌ๋ฅผ ์ตœ์ข… ์„ค์ •ํ•œ ํ›„ ๊ณต๊ธ‰์ž์˜ ์ผ€์ด๋ธ”์„ ๋ผ์ฆˆ๋ฒ ๋ฆฌ์— "์—ฐ๊ฒฐ"ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ์ž‘์—…์ด ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์Šน์ธ ์‹œ์Šคํ…œ ๋„คํŠธ์›Œํฌ -๋ณ„๋„์˜ ๊ธฐ์‚ฌ ์ฃผ์ œ์ด๋ฉฐ ์—ฌ๊ธฐ์„œ๋Š” ๋…ผ์˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Raspberry์˜ Wi-Fi ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ์ด๊ณ  ๋‚ด์žฅ๋œ ์ด๋”๋„ท ์–ด๋Œ‘ํ„ฐ(eth0)๋Š” ์™ธ๋ถ€์ž…๋‹ˆ๋‹ค. ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ์— ์ •์ ์œผ๋กœ ๋ฒˆํ˜ธ๋ฅผ ๋งค๊ธฐ๊ฒ ์Šต๋‹ˆ๋‹ค(์˜ˆ: 192.168.0.0/24). ๋ผ์ฆˆ๋ฒ ๋ฆฌ ์ฃผ์†Œ: 192.168.0.1. DHCP ์„œ๋ฒ„๋Š” ์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ(์ธํ„ฐ๋„ท)์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋ช…๋ช… ์ผ๊ด€์„ฑ ๋ฌธ์ œ ะธ ์œ ๋ช…ํ•œ ๊ณผํ…Œ๋ง๋ผ ํ”„๋กœ๊ทธ๋ž˜๋จธ - ์‹œ์Šคํ…œ ๋ฐฐํฌ์—์„œ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค์™€ ์„œ๋น„์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์‚ฌ๋žŒ์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋‘ ๊ฐ€์ง€ ๋ฌธ์ œ.

ํ‰ํ–‰ ํ˜ผ๋ˆ (์„œ์ •์  ์—ฌ๋‹ด)Lennart Pottering์€ ์ž์ฒด ํ”„๋กœ๊ทธ๋žจ์„ ํŽธ์ง‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ ๋งค์šฐ ์ข‹์€. ์ด๊ฒƒ ์‹œ์Šคํ…œ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์„ ๋„ˆ๋ฌด ๋นจ๋ฆฌ ์‹œ์ž‘ํ•˜์—ฌ ์‹ฌํŒ์˜ ํœ˜ํŒŒ๋žŒ ์†Œ๋ฆฌ์—์„œ ํšŒ๋ณต ํ•  ์‹œ๊ฐ„์ด ์—†์–ด ์žฅ์• ๋ฌผ ์ฝ”์Šค๋ฅผ ์‹œ์ž‘ํ•˜์ง€๋„ ์•Š๊ณ  ์ฒ˜์Œ์— ๋„˜์–ด์ง€๊ณ  ๋„˜์–ด์ง‘๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ง„์ง€ํ•˜๊ฒŒ, ์‹œ์Šคํ…œ OS ์‹œ์ž‘ ์‹œ ์‹คํ–‰๋œ ํ”„๋กœ์„ธ์Šค์˜ ๊ณต๊ฒฉ์ ์ธ ๋ณ‘๋ ฌํ™”๋Š” ๋…ธ๋ จํ•œ ์ˆœ์ฐจ LSB ์ „๋ฌธ๊ฐ€์—๊ฒŒ๋Š” ์ผ์ข…์˜ "๋‹น๋‚˜๊ท€ ๋ธŒ๋ฆฌ์ง€"์ž…๋‹ˆ๋‹ค. ๋‹คํ–‰์Šค๋Ÿฝ๊ฒŒ๋„ ์ด "๋ณ‘๋ ฌ ํ˜ผ๋ˆ"์— ์งˆ์„œ๋ฅผ ๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ์€ ๋น„๋ก ํ•ญ์ƒ ๋ช…๋ฐฑํ•˜์ง€๋Š” ์•Š์ง€๋งŒ ๊ฐ„๋‹จํ•˜๋‹ค๋Š” ๊ฒƒ์ด ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค.

์ƒ์ˆ˜ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‘ ๊ฐœ์˜ ๊ฐ€์ƒ ๋ธŒ๋ฆฌ์ง€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋žœ ะธ ํ•๊ธฐ์—†๋Š”. Wi-Fi ์–ด๋Œ‘ํ„ฐ๋ฅผ ์ฒซ ๋ฒˆ์งธ ์–ด๋Œ‘ํ„ฐ์— "์—ฐ๊ฒฐ"ํ•˜๊ณ  eth0 "๋ผ์ฆˆ๋ฒ ๋ฆฌ"๋ฅผ ๋‘ ๋ฒˆ์งธ ์–ด๋Œ‘ํ„ฐ์— "์—ฐ๊ฒฐ"ํ•ฉ๋‹ˆ๋‹ค.

/etc/systemd/network/lan.netdev:

[NetDev]
Name=lan
Kind=bridge

/etc/systemd/network/lan.network:

[Match]
Name=lan

[Network]
Address=192.168.0.1/24
IPForward=yes

/etc/systemd/network/wan.netdev:

[NetDev]
Name=wan
Kind=bridge
#MACAddress=xx:xx:xx:xx:xx:xx

/etc/systemd/network/wan.network:

[Match]
Name=wan

[Network]
DHCP=ipv4
IPForward=yes

IPForward=์˜ˆ ๋ผ์šฐํŒ…์„ ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•ด sysctl์„ ํ†ตํ•ด ์ปค๋„์— ํžŒํŠธ๋ฅผ ์ค„ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
MAC์ฃผ์†Œ= ์ฃผ์„์„ ์ œ๊ฑฐํ•˜๊ณ  ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋ณ€๊ฒฝํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋จผ์ € eth0์„ "์—ฐ๊ฒฐ"ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” "๊ท ์ผ์„ฑ ๋ฌธ์ œ"๋ฅผ ๊ธฐ์–ตํ•˜๊ณ  ์ด ์ธํ„ฐํŽ˜์ด์Šค์˜ MAC ์ฃผ์†Œ๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

# cat /sys/class/net/eth0/address 

์ฐฝ์กฐํ•˜๋‹ค /etc/systemd/network/eth.network:

[Match]
MACAddress=b8:27:eb:xx:xx:xx

[Network]
Bridge=wan

์ด์ „ ๊ตฌ์„ฑ ํŒŒ์ผ eth0์„ ์‚ญ์ œํ•˜๊ณ  Raspberry๋ฅผ ์žฌ๋ถ€ํŒ…ํ•œ ํ›„ ์ด์— ๋Œ€ํ•œ ๋„คํŠธ์›Œํฌ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ์–ป์Šต๋‹ˆ๋‹ค(IP ์ฃผ์†Œ๋Š” ๋ณ€๊ฒฝ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค).

# rm -fv /etc/systemd/network/eth0.network
# reboot

5.DNSMASQ

Wi-Fi ์•ก์„ธ์Šค ํฌ์ธํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ์žˆ์–ด ๋ช‡ ๊ฐ€์ง€ ์ข‹์€ ๋ฐฉ๋ฒ•๋ณด๋‹ค ์ข‹์€ ๊ฒƒ์€ ์—†์Šต๋‹ˆ๋‹ค. DNS ๋งˆ์Šคํฌ + hostapd ์•„์ง ๊ทธ๊ฒƒ์„ ์•Œ์•„๋‚ด์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ์ƒ๊ฐ์—๋Š”.

ํ˜น์‹œ ์žŠ์–ด๋ฒ„๋ฆฐ ์‚ฌ๋žŒ์ด ์žˆ๋‹ค๋ฉด...hostapd - Wi-Fi ์–ด๋Œ‘ํ„ฐ๋ฅผ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹๊ฒƒ์ž…๋‹ˆ๋‹ค(ํŠนํžˆ Wi-Fi ์–ด๋Œ‘ํ„ฐ๋ฅผ ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐํ•˜๋Š” ์ž‘์—…์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค). ๋žœ "raspberries")๋Š” ๋ฌด์„  ํด๋ผ์ด์–ธํŠธ๋ฅผ ์ธ์ฆํ•˜๊ณ  ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.

DNS ๋งˆ์Šคํฌ โ€” ํด๋ผ์ด์–ธํŠธ์˜ ๋„คํŠธ์›Œํฌ ์Šคํƒ์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. IP ์ฃผ์†Œ, DNS ์„œ๋ฒ„, ๊ธฐ๋ณธ ๊ฒŒ์ดํŠธ์›จ์ด ๋ฐ ์ด์™€ ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ์„ ๋ฐœํ–‰ํ•ฉ๋‹ˆ๋‹ค.

dnsmasq๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

# yum install dnsmasq

ํŒจํ„ด / ๊ธฐํƒ€ / resolv.conf์—:

nameserver 1.1.1.1
nameserver 1.0.0.1
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 77.88.8.8
nameserver 77.88.8.1
domain router.local
search router.local

์›ํ•˜๋Š” ๋Œ€๋กœ ํŽธ์ง‘ํ•˜์„ธ์š”.

๋ฏธ๋‹ˆ๋ฉ€๋ฆฌ์ŠคํŠธ /etc/dnsmasq.conf:

domain-needed
bogus-priv
interface=lan
bind-dynamic
expand-hosts
domain=#
dhcp-range=192.168.0.100,192.168.0.199,255.255.255.0,24h
conf-dir=/etc/dnsmasq.d

์—ฌ๊ธฐ์„œ "๋งˆ๋ฒ•"์€ ๋งค๊ฐœ๋ณ€์ˆ˜์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”์ธ๋”ฉ ๋™์ , ์ด๋Š” dnsmasq ๋ฐ๋ชฌ์ด ์‹œ์Šคํ…œ์— ๋‚˜ํƒ€๋‚  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค=lan, ๊ทธ๋ฆฌ๊ณ  ์‹œ์ž‘ ํ›„ ์ž๋ž‘์Šค๋Ÿฌ์šด ์™ธ๋กœ์›€์— ๊ธฐ์ ˆํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

# systemctl enable dnsmasq
# systemctl start dnsmasq; journalctl -f

6. ํ˜ธ์Šคํƒ€PD

๋งˆ์ง€๋ง‰์œผ๋กœ ๋งˆ๋ฒ•์˜ Hostapd ๊ตฌ์„ฑ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋ฐ”๋กœ ์ด ์†Œ์ค‘ํ•œ ๊ตฌ์ ˆ์„ ์ฐพ๊ธฐ ์œ„ํ•ด ์ด ๊ธ€์„ ์ฝ๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์˜์‹ฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Hostapd๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ์ „์— "๊ท ์ผ์„ฑ ๋ฌธ์ œ"๋ฅผ ๊ทน๋ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด์žฅ๋œ Wi-Fi ์–ด๋Œ‘ํ„ฐ wlan0์€ ์ถ”๊ฐ€ USB Wi-Fi ์žฅ๋น„๋ฅผ ์—ฐ๊ฒฐํ•  ๋•Œ ์‰ฝ๊ฒŒ ์ด๋ฆ„์„ wlan1๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ธํ„ฐํŽ˜์ด์Šค ์ด๋ฆ„์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค. (๋ฌด์„ ) ์–ด๋Œ‘ํ„ฐ์˜ ๊ณ ์œ ํ•œ ์ด๋ฆ„์„ ์ฐพ์•„ ์ด๋ฅผ MAC ์ฃผ์†Œ์— ๋ฐ”์ธ๋”ฉํ•ฉ๋‹ˆ๋‹ค.

์—ฌ์ „ํžˆ wlan0์ธ ๋‚ด์žฅ Wi-Fi ์–ด๋Œ‘ํ„ฐ์˜ ๊ฒฝ์šฐ:

# cat /sys/class/net/wlan0/address 
b8:27:eb:xx:xx:xx

์ฐฝ์กฐํ•˜๋‹ค /etc/systemd/network/wl0.link:

[Match]
MACAddress=b8:27:eb:xx:xx:xx

[Link]
Name=wl0

์ด์ œ ์šฐ๋ฆฌ๋Š” ํ™•์‹ ํ•  ๊ฒƒ์ด๋‹ค wl0 - Wi-Fi๊ฐ€ ๋‚ด์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด Raspberry๋ฅผ ์žฌ๋ถ€ํŒ…ํ•ฉ๋‹ˆ๋‹ค.

์„ค์น˜ํ•˜๋‹ค:

# yum install hostapd wireless-tools

๊ตฌ์„ฑ ํŒŒ์ผ /etc/hostapd/hostapd.conf:

ssid=rpi
wpa_passphrase=1234567890

channel=36

country_code=US

interface=wl0
bridge=lan

driver=nl80211

auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP

macaddr_acl=0

hw_mode=a
wmm_enabled=1

# N
ieee80211n=1
require_ht=1
ht_capab=[MAX-AMSDU-3839][HT40+][SHORT-GI-20][SHORT-GI-40][DSSS_CCK-40]

# AC
ieee80211ac=1
require_vht=1
ieee80211d=0
ieee80211h=0
vht_capab=[MAX-AMSDU-3839][SHORT-GI-80]
vht_oper_chwidth=1
vht_oper_centr_freq_seg0_idx=42

ํ•œ์‹œ๋„ ์žŠ์ง€ ์•Š๊ณ  GKChP, ํ•„์š”ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  ๊ธฐ๋Šฅ์„ ์ˆ˜๋™์œผ๋กœ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

# hostapd /etc/hostapd/hostapd.conf

Hostapd๋Š” ๋Œ€ํ™”ํ˜• ๋ชจ๋“œ๋กœ ์‹œ์ž‘ํ•˜์—ฌ ์ƒํƒœ๋ฅผ ์ฝ˜์†”์— ๋ธŒ๋กœ๋“œ์บ์ŠคํŒ…ํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๊ฐ€ ์—†์œผ๋ฉด AC ๋ชจ๋“œ๋ฅผ ์ง€์›ํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์•ก์„ธ์Šค ํฌ์ธํŠธ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Hostapd๋ฅผ ์ค‘์ง€ํ•˜๋ ค๋ฉด - Ctrl-C.

๋‚จ์€ ๊ฒƒ์€ ์‹œ์Šคํ…œ ์‹œ์ž‘ ์‹œ Hostapd๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ๋ฟ์ž…๋‹ˆ๋‹ค. ํ‘œ์ค€ ์ž‘์—…(systemctl ํ™œ์„ฑํ™” hostapd)์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋‹ค์Œ ์žฌ๋ถ€ํŒ… ํ›„ "ํ”ผ์— ๊ตด๋Ÿฌ๋‹ค๋‹ˆ๋Š”" ์•…๋งˆ๊ฐ€ ์ง„๋‹จ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์ธํ„ฐํŽ˜์ด์Šค wl0์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค". "๋ณ‘๋ ฌ ํ˜ผ๋ˆ"์˜ ๊ฒฐ๊ณผ๋กœ, ํ˜ธ์ŠคํŠธ๋Š” ์ปค๋„์ด ๋ฌด์„  ์–ด๋Œ‘ํ„ฐ๋ฅผ ๋ฐœ๊ฒฌํ•œ ๊ฒƒ๋ณด๋‹ค ๋” ๋น ๋ฅด๊ฒŒ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ธํ„ฐ๋„ท์—๋Š” ๋ฐ๋ชฌ์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „ ๊ฐ•์ œ ์‹œ๊ฐ„ ์ดˆ๊ณผ(๋ช‡ ๋ถ„)๋ถ€ํ„ฐ ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋ชจ์–‘์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ํ˜ธ์ŠคํŠธ ํŒจ๋“œ๋ฅผ (๋‹ค์‹œ) ์‹œ์ž‘ํ•˜๋Š” ๋‹ค๋ฅธ ๋ฐ๋ชฌ์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ๋‹ค์–‘ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์†”๋ฃจ์…˜์€ ์ƒ๋‹นํžˆ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๋งค์šฐ ์ถ”์•…ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์œ„๋Œ€ํ•œ ๋ถ„์—๊ฒŒ ๋„์›€์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค ์‹œ์Šคํ…œ "๋ชฉํ‘œ", "๊ณผ์ œ", "์ข…์†์„ฑ"์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

๋ฐฐํฌ ์„œ๋น„์Šค ํŒŒ์ผ์„ ๋‹ค์Œ ์œ„์น˜์— ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค. /etc/systemd/system/hostapd.service:

# cp -fv /usr/lib/systemd/system/hostapd.service /etc/systemd/system

๋‚ด์šฉ์„ ๋‹ค์Œ ํ˜•์‹์œผ๋กœ ์ค„์ž…๋‹ˆ๋‹ค.

[Unit]
Description=Hostapd IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator
After=sys-subsystem-net-devices-wl0.device
BindsTo=sys-subsystem-net-devices-wl0.device

[Service]
Type=forking
PIDFile=/run/hostapd.pid
ExecStart=/usr/sbin/hostapd /etc/hostapd/hostapd.conf -P /run/hostapd.pid -B

[Install]
WantedBy=sys-subsystem-net-devices-wl0.device

์—…๋ฐ์ดํŠธ๋œ ์„œ๋น„์Šค ํŒŒ์ผ์˜ ๋งˆ๋ฒ•์€ ์ƒˆ๋กœ์šด ๋Œ€์ƒ์ธ wl0 ์ธํ„ฐํŽ˜์ด์Šค์— ๋Œ€ํ•œ Hostapd์˜ ๋™์  ๋ฐ”์ธ๋”ฉ์— ์žˆ์Šต๋‹ˆ๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๋‚˜ํƒ€๋‚˜๋ฉด ๋ฐ๋ชฌ์ด ์‹œ์ž‘๋˜๊ณ  ์‚ฌ๋ผ์ง€๋ฉด ์ค‘์ง€๋ฉ๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ์„ ์žฌ๋ถ€ํŒ…ํ•˜์ง€ ์•Š๊ณ ๋„ ์ด ๋ชจ๋“  ์ž‘์—…์ด ์˜จ๋ผ์ธ์œผ๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ์ด ๊ธฐ์ˆ ์€ USB Wi-Fi ์–ด๋Œ‘ํ„ฐ๋ฅผ ๋ผ์ฆˆ๋ฒ ๋ฆฌ์— ์—ฐ๊ฒฐํ•  ๋•Œ ํŠนํžˆ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

# systemctl enable hostapd
# reboot

7. IPํ…Œ์ด๋ธ”

โ€œ๋ญ???โ€ ยฉ ์‘, ์‘! ์—†์Œ ์‹œ์Šคํ…œ. ์ƒˆ๋กœ์šด ๊ฒฐํ•ฉ์ด ์—†์Šต๋‹ˆ๋‹ค (ํ˜•ํƒœ๋กœ ๋ฐฉํ™”๋ฒฝ) ๊ฒฐ๊ตญ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ข‹์€ ์˜ค๋ž˜๋œ ๊ฒƒ์„ ์‚ฌ์šฉํ•˜์ž iptables์—, ํ•ด๋‹น ์„œ๋น„์Šค๋Š” ์‹œ์ž‘๋œ ํ›„ ๋„คํŠธ์›Œํฌ ๊ทœ์น™์„ ์ปค๋„์— ๋กœ๋“œํ•˜๊ณ  ์ƒ์ฃผํ•˜์ง€ ์•Š๊ณ  ๋ฆฌ์†Œ์Šค๋ฅผ ์†Œ๋น„ํ•˜์ง€ ์•Š๊ณ  ์กฐ์šฉํžˆ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. systemd์—๋Š” ์šฐ์•„ํ•จ์ด ์žˆ์Šต๋‹ˆ๋‹ค IPMasquerade=ํ•˜์ง€๋งŒ NAT(์ฃผ์†Œ ๋ณ€ํ™˜)์™€ ๋ฐฉํ™”๋ฒฝ์€ iptables์— ๋งก๊ธธ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

์„ค์น˜ํ•˜๋‹ค:

# yum install iptables-services
# systemctl enable iptables ip6tables

๋‚˜๋Š” iptables ๊ตฌ์„ฑ์„ ์Šคํฌ๋ฆฝํŠธ๋กœ ์ €์žฅํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค(์˜ˆ):

#!/bin/bash

#
# Disable IPv6
#
ip6tables --flush
ip6tables --delete-chain

ip6tables --policy INPUT   DROP
ip6tables --policy FORWARD DROP
ip6tables --policy OUTPUT  DROP

ip6tables-save > /etc/sysconfig/ip6tables
systemctl restart ip6tables

#
# Cleaning
#
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

#
# Loopback, lan
#
iptables -A INPUT -i lo  -j ACCEPT
iptables -A INPUT -i lan -j ACCEPT

#
# Ping, Established
#
iptables -A INPUT -p icmp  --icmp-type echo-request    -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#
# NAT
#
iptables -t nat -A POSTROUTING -o wan -j MASQUERADE

#
# Saving
#
iptables-save > /etc/sysconfig/iptables
systemctl restart iptables

์œ„ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด Raspberry์™€ ์ƒˆ๋กœ์šด ์œ ์„  SSH ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ƒ์‹ค๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” "์ธํ„ฐ๋„ท์„ ํ†ตํ•œ" ์•ก์„ธ์Šค๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ธˆ์ง€๋˜์–ด ์žˆ๋Š” Wi-Fi ๋ผ์šฐํ„ฐ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ๋Š” "๋ฌด์„ "์œผ๋กœ๋งŒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณต๊ธ‰์ž์˜ ์ด๋”๋„ท ์ผ€์ด๋ธ”์„ ์—ฐ๊ฒฐํ•˜๊ณ  ์„œํ•‘์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค!

8. ๋ณด๋„ˆ์Šค: +2,4GHz

์œ„์—์„œ ์„ค๋ช…ํ•œ ๊ทธ๋ฆผ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฒซ ๋ฒˆ์งธ ๋ผ์ฆˆ๋ฒ ๋ฆฌ ๋ผ์šฐํ„ฐ๋ฅผ ์กฐ๋ฆฝํ–ˆ์„ ๋•Œ Wi-Fi ์„ค๊ณ„ ์ œํ•œ์œผ๋กœ ์ธํ•ด "๋ผ์ฆˆ๋ฒ ๋ฆฌ"๋ฅผ ์ „ํ˜€ ๋ณผ ์ˆ˜ ์—†๋Š” ์šฐ๋ฆฌ ์ง‘์˜ ์—ฌ๋Ÿฌ ์žฅ์น˜๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. 802.11b/g/n์—์„œ ์ž‘๋™ํ•˜๋„๋ก ๋ผ์šฐํ„ฐ๋ฅผ ์žฌ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์€ ๋น„์ •์ƒ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ "๋ฌด์„ "์˜ ์ตœ๋Œ€ ์†๋„๋Š” 40Mbit๋ฅผ ์ดˆ๊ณผํ•˜์ง€ ์•Š์•˜๊ณ  ์ œ๊ฐ€ ๊ฐ€์žฅ ์ข‹์•„ํ•˜๋Š” ์ธํ„ฐ๋„ท ์ œ๊ณต์—…์ฒด๋Š” ์ผ€์ด๋ธ”์„ ํ†ตํ•ด 100Mbit๋ฅผ ์ œ๊ณตํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์€ ์ด๋ฏธ ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, 2,4GHz ์ฃผํŒŒ์ˆ˜์—์„œ ์ž‘๋™ํ•˜๋Š” ๋‘ ๋ฒˆ์งธ Wi-Fi ์ธํ„ฐํŽ˜์ด์Šค์™€ ๋‘ ๋ฒˆ์งธ ์•ก์„ธ์Šค ํฌ์ธํŠธ์ž…๋‹ˆ๋‹ค. ๊ทผ์ฒ˜ ๋…ธ์ ์—์„œ ๋‚˜๋Š” ์ฒซ ๋ฒˆ์งธ USB Wi-Fi "ํœ˜ํŒŒ๋žŒ"์„ ๊ตฌ์ž…ํ•˜์ง€ ์•Š๊ณ  ๋‘ ๋ฒˆ์งธ๋กœ ๊ตฌ์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค. ํŒ๋งค์ž๋Š” ์นฉ์…‹, ARM Linux ์ปค๋„๊ณผ์˜ ํ˜ธํ™˜์„ฑ ๋ฐ AP ๋ชจ๋“œ์—์„œ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€๋Šฅ์„ฑ์— ๋Œ€ํ•œ ์งˆ๋ฌธ์œผ๋กœ ๊ดด๋กœ์›Œํ–ˆ์Šต๋‹ˆ๋‹ค(๊ทธ๊ฐ€ ์ฒ˜์Œ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค).

๋‚ด์žฅ๋œ Wi-Fi ์–ด๋Œ‘ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ "ํœ˜ํŒŒ๋žŒ"์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋จผ์ € ์ด๋ฆ„์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฐ”๊พธ๊ฒ ์Šต๋‹ˆ๋‹ค. wl1:

# cat /sys/class/net/wlan0/address 
b0:6e:bf:xx:xx:xx

/etc/systemd/network/wl1.link:

[Match]
MACAddress=b0:6e:bf:xx:xx:xx

[Link]
Name=wl1

์šฐ๋ฆฌ๋Š” ์ƒˆ๋กœ์šด Wi-Fi ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ด€๋ฆฌ๋ฅผ ๋ณ„๋„์˜ Hostapd ๋ฐ๋ชฌ์— ๋งก๊ธธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๋ฐ๋ชฌ์€ ์‹œ์Šคํ…œ์— ์—„๊ฒฉํ•˜๊ฒŒ ์ •์˜๋œ "ํœ˜ํŒŒ๋žŒ"์˜ ์กด์žฌ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ์‹œ์ž‘ ๋ฐ ์ค‘์ง€๋ฉ๋‹ˆ๋‹ค: wl1.

๊ตฌ์„ฑ ํŒŒ์ผ /etc/hostapd/hostapd2.conf:

ssid=rpi2
wpa_passphrase=1234567890

#channel=1
#channel=6
channel=11

interface=wl1
bridge=lan

driver=nl80211

auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP

macaddr_acl=0

hw_mode=g
wmm_enabled=1

# N
ieee80211n=1
require_ht=1
ht_capab=[HT40][SHORT-GI-20][SHORT-GI-40][DSSS_CCK-40]

์ด ํŒŒ์ผ์˜ ๋‚ด์šฉ์€ USB Wi-Fi ์–ด๋Œ‘ํ„ฐ ๋ชจ๋ธ์— ๋”ฐ๋ผ ์ง์ ‘์ ์œผ๋กœ ๋‹ฌ๋ผ์ง€๋ฏ€๋กœ ํ‰๋ฒ”ํ•œ ๋ณต์‚ฌ/๋ถ™์—ฌ๋„ฃ๊ธฐ๊ฐ€ ์‹คํŒจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐฐํฌ ์„œ๋น„์Šค ํŒŒ์ผ์„ ๋‹ค์Œ ์œ„์น˜์— ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค. /etc/systemd/system/hostapd2.service:

# cp -fv /usr/lib/systemd/system/hostapd.service /etc/systemd/system/hostapd2.service

๋‚ด์šฉ์„ ๋‹ค์Œ ํ˜•์‹์œผ๋กœ ์ค„์ž…๋‹ˆ๋‹ค.

[Unit]
Description=Hostapd IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator
After=sys-subsystem-net-devices-wl1.device
BindsTo=sys-subsystem-net-devices-wl1.device

[Service]
Type=forking
PIDFile=/run/hostapd2.pid
ExecStart=/usr/sbin/hostapd /etc/hostapd/hostapd2.conf -P /run/hostapd2.pid -B

[Install]
WantedBy=sys-subsystem-net-devices-wl1.device

์ด์ œ ๋‚จ์€ ๊ฒƒ์€ ์ƒˆ๋กœ์šด Hostapd ์ธ์Šคํ„ด์Šค๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค:

# systemctl enable hostapd2

๊ทธ๊ฒŒ ๋‹ค์•ผ! "ํœ˜ํŒŒ๋žŒ"๊ณผ "๋ผ์ฆˆ๋ฒ ๋ฆฌ" ์ž์ฒด๋ฅผ ๋‹น๊ฒจ์„œ ์ฃผ๋ณ€์˜ ๋ฌด์„  ๋„คํŠธ์›Œํฌ๋ฅผ ์‚ดํŽด๋ณด์‹ญ์‹œ์˜ค.

๋งˆ์ง€๋ง‰์œผ๋กœ Raspberry์˜ USB Wi-Fi ์–ด๋Œ‘ํ„ฐ์™€ ์ „์› ๊ณต๊ธ‰ ์žฅ์น˜์˜ ํ’ˆ์งˆ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ๋œ "๋œจ๊ฑฐ์šด ํœ˜ํŒŒ๋žŒ"์€ ๋•Œ๋•Œ๋กœ ๋‹จ๊ธฐ์ ์ธ ์ „๊ธฐ ๋ฌธ์ œ๋กœ ์ธํ•ด "๋ผ์ฆˆ๋ฒ ๋ฆฌ ๋™๊ฒฐ"์„ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€