diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e886185 --- /dev/null +++ b/.gitignore @@ -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 diff --git a/README.md b/README.md index fc89b92..3f28f19 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,23 @@ # mic -wifi를 사용하는 임베디드 마이크 제작 프로젝트 \ No newline at end of file +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` diff --git a/docs/01-orange-pi-os.md b/docs/01-orange-pi-os.md new file mode 100644 index 0000000..27b5805 --- /dev/null +++ b/docs/01-orange-pi-os.md @@ -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 +``` + diff --git a/os/README.md b/os/README.md new file mode 100644 index 0000000..ad3fd25 --- /dev/null +++ b/os/README.md @@ -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. diff --git a/os/orangepi_first_run.example.txt b/os/orangepi_first_run.example.txt new file mode 100644 index 0000000..fa3efb0 --- /dev/null +++ b/os/orangepi_first_run.example.txt @@ -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' +