os 추가

This commit is contained in:
김민서 2026-06-02 11:35:51 +09:00
parent cd8d9bfaba
commit 56a12701bb
5 changed files with 154 additions and 1 deletions

21
.gitignore vendored Normal file
View File

@ -0,0 +1,21 @@
# OS images are intentionally kept out of git.
os/*.7z
os/*.img
os/*.img.*
os/*.xz
os/*.zip
# Local audio/debug captures.
*.wav
*.aiff
*.flac
# C/C++ build outputs.
build/
cmake-build-*/
*.o
*.obj
*.exe
*.dll
*.dylib
*.so

View File

@ -1,3 +1,23 @@
# mic
wifi를 사용하는 임베디드 마이크 제작 프로젝트
Orange Pi Zero 2W 기반 Wi-Fi 라발리에 마이크 송신기와 Mac 수신/믹서 프로젝트입니다.
```text
USB lavalier -> Orange Pi Zero 2W -> 2.4/5 GHz Wi-Fi router -> Mac mixer
```
## Structure
- `client/`: Orange Pi에서 실행하는 마이크 송신기
- `server/`: Mac에서 실행하는 UDP 수신/믹서
- `os/`: Orange Pi OS 이미지 보관 위치
- `docs/`: 보드 세팅과 스트리밍 실행 가이드
## Current Direction
- OS: official Orange Pi Debian 12 Bookworm Server, Linux 6.1
- Language: C++
## Docs
- `docs/01-orange-pi-os.md`

67
docs/01-orange-pi-os.md Normal file
View File

@ -0,0 +1,67 @@
# Orange Pi Zero 2W OS setup
## Recommended image
Use the official Debian 12 Bookworm server image for Orange Pi Zero 2W:
```text
orangepizero2w_1.0.0_debian_bookworm_server_linux6.1.31.7z
```
Orange Pi's Zero 2W wiki lists Debian 12 Bookworm with Linux 6.1 as supported, and its Linux 6.1 driver table marks Wi-Fi, Type-C USB2.0, TF card boot, and related board features as OK.
Official references:
- https://www.orangepi.org/orangepiwiki/index.php/Orange_Pi_Zero_2W
- https://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-Zero-2W.html
## Flashing
1. Download the image into `os/`.
2. Extract the `.7z` file to get the `.img`.
3. Flash the `.img` to the microSD with Balena Etcher, Raspberry Pi Imager, or another verified imaging tool.
4. Mount the flashed boot/root partition and configure first-run Wi-Fi before inserting it into the Orange Pi.
## Headless Wi-Fi first boot
On the flashed SD card, find:
```text
/boot/orangepi_first_run.txt.template
```
Copy it to:
```text
/boot/orangepi_first_run.txt
```
Then set the Wi-Fi fields. `os/orangepi_first_run.example.txt` contains a local example for Korea region code `KR`.
The important values are:
```text
FR_net_change_defaults=1
FR_net_ethernet_enabled=0
FR_net_wifi_enabled=1
FR_net_wifi_ssid='YOUR_WIFI_SSID'
FR_net_wifi_key='YOUR_WIFI_PASSWORD'
FR_net_wifi_countrycode='KR'
```
## First login
For official Debian/Ubuntu Orange Pi images, the usual default accounts are:
```text
orangepi / orangepi
root / orangepi
```
Change the password on first login.
```bash
passwd
sudo passwd root
```

26
os/README.md Normal file
View File

@ -0,0 +1,26 @@
# OS image storage
Put the Orange Pi Zero 2W OS image files here, but do not commit them.
Recommended first image:
```text
orangepizero2w_1.0.0_debian_bookworm_server_linux6.1.31.7z
```
Why this one:
- Debian 12 Bookworm server image keeps the transmitter small and headless.
- Linux 6.1 is listed by Orange Pi as supporting Wi-Fi, Type-C USB2.0, TF card boot, and the usual board peripherals on Zero 2W.
- A server image gives us a small, headless baseline for the future C++ transmitter.
Official pages:
- https://www.orangepi.org/orangepiwiki/index.php/Orange_Pi_Zero_2W
- https://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-Zero-2W.html
Notes:
- Use the Zero 2W-specific image only. A generic ARM64 Debian or Ubuntu image will usually miss the board kernel/DTB/Wi-Fi pieces.
- The official download page may redirect to external storage such as Google Drive.
- Keep `.7z`, `.img`, `.xz`, and similar files in this folder locally; `.gitignore` excludes them.

View File

@ -0,0 +1,19 @@
# Copy /boot/orangepi_first_run.txt.template to /boot/orangepi_first_run.txt,
# then use values like these before the first boot.
FR_general_delete_this_file_after_completion=1
FR_net_change_defaults=1
FR_net_ethernet_enabled=0
FR_net_wifi_enabled=1
FR_net_wifi_ssid='YOUR_WIFI_SSID'
FR_net_wifi_key='YOUR_WIFI_PASSWORD'
FR_net_wifi_countrycode='KR'
FR_net_use_static=0
FR_net_static_ip='192.168.0.50'
FR_net_static_mask='255.255.255.0'
FR_net_static_gateway='192.168.0.1'
FR_net_static_dns='8.8.8.8 1.1.1.1'