Add INSTALL.md with dependency installation instructions for Fedora and Debian
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
bd34a6c249
commit
7fc038afcf
|
|
@ -0,0 +1,187 @@
|
|||
# Installation Guide
|
||||
|
||||
This guide covers installing dependencies and building `fiwi_monitor` on different Linux distributions.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
The `fiwi_monitor` tool requires:
|
||||
- **Build tools**: GCC compiler, autotools (autoconf, automake, libtool)
|
||||
- **Development libraries**: libpcap, libnl3 (for WiFi monitor mode)
|
||||
- **Package configuration**: pkg-config
|
||||
|
||||
## Fedora / RHEL / CentOS
|
||||
|
||||
### Install Dependencies
|
||||
|
||||
```bash
|
||||
sudo dnf install -y \
|
||||
gcc \
|
||||
autoconf \
|
||||
automake \
|
||||
libtool \
|
||||
libpcap-devel \
|
||||
libnl3-devel \
|
||||
pkg-config
|
||||
```
|
||||
|
||||
### Build
|
||||
|
||||
```bash
|
||||
# Generate configure script
|
||||
./autogen.sh
|
||||
|
||||
# Configure build
|
||||
./configure
|
||||
|
||||
# Build
|
||||
make
|
||||
|
||||
# Install (optional, system-wide)
|
||||
sudo make install
|
||||
```
|
||||
|
||||
## Debian / Ubuntu / Raspberry Pi OS
|
||||
|
||||
### Install Dependencies
|
||||
|
||||
```bash
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y \
|
||||
build-essential \
|
||||
autoconf \
|
||||
automake \
|
||||
libtool \
|
||||
libpcap-dev \
|
||||
libnl-genl-3-dev \
|
||||
libnl-3-dev \
|
||||
pkg-config
|
||||
```
|
||||
|
||||
### Build
|
||||
|
||||
```bash
|
||||
# Generate configure script
|
||||
./autogen.sh
|
||||
|
||||
# Configure build
|
||||
./configure
|
||||
|
||||
# Build
|
||||
make
|
||||
|
||||
# Install (optional, system-wide)
|
||||
sudo make install
|
||||
```
|
||||
|
||||
## Verification
|
||||
|
||||
After installation, verify the libraries are available:
|
||||
|
||||
```bash
|
||||
# Check libpcap
|
||||
pkg-config --exists libpcap && echo "libpcap: OK" || echo "libpcap: MISSING"
|
||||
|
||||
# Check libnl-genl-3.0
|
||||
pkg-config --exists libnl-genl-3.0 && echo "libnl-genl-3.0: OK" || echo "libnl-genl-3.0: MISSING"
|
||||
|
||||
# Check libnl-3.0
|
||||
pkg-config --exists libnl-3.0 && echo "libnl-3.0: OK" || echo "libnl-3.0: MISSING"
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Package Not Found (Fedora)
|
||||
|
||||
If `libnl3-devel` is not found, try:
|
||||
```bash
|
||||
# Search for available packages
|
||||
dnf search libnl
|
||||
|
||||
# May need to enable additional repositories
|
||||
sudo dnf install epel-release
|
||||
```
|
||||
|
||||
### Package Not Found (Debian/Ubuntu)
|
||||
|
||||
If packages are not found:
|
||||
```bash
|
||||
# Update package lists
|
||||
sudo apt-get update
|
||||
|
||||
# Search for packages
|
||||
apt-cache search libnl
|
||||
apt-cache search libpcap
|
||||
```
|
||||
|
||||
### Configure Fails
|
||||
|
||||
If `./configure` fails with "Package requirements not met":
|
||||
|
||||
1. **Verify packages are installed:**
|
||||
```bash
|
||||
# Fedora
|
||||
rpm -qa | grep libnl
|
||||
rpm -qa | grep libpcap
|
||||
|
||||
# Debian/Ubuntu
|
||||
dpkg -l | grep libnl
|
||||
dpkg -l | grep libpcap
|
||||
```
|
||||
|
||||
2. **Check pkg-config can find them:**
|
||||
```bash
|
||||
pkg-config --modversion libpcap
|
||||
pkg-config --modversion libnl-genl-3.0
|
||||
pkg-config --modversion libnl-3.0
|
||||
```
|
||||
|
||||
3. **If pkg-config can't find them, check PKG_CONFIG_PATH:**
|
||||
```bash
|
||||
# Common locations
|
||||
export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/lib64/pkgconfig
|
||||
./configure
|
||||
```
|
||||
|
||||
### Build Errors
|
||||
|
||||
If you get compilation errors:
|
||||
|
||||
1. **Missing headers:**
|
||||
```bash
|
||||
# Fedora - install kernel headers if needed
|
||||
sudo dnf install kernel-devel
|
||||
|
||||
# Debian/Ubuntu
|
||||
sudo apt-get install linux-headers-$(uname -r)
|
||||
```
|
||||
|
||||
2. **Linker errors:**
|
||||
- Ensure development packages (with `-devel` or `-dev` suffix) are installed
|
||||
- Not just runtime libraries
|
||||
|
||||
## Quick Start
|
||||
|
||||
Once built, run the monitor tool:
|
||||
|
||||
```bash
|
||||
# Run as root (required for monitor mode)
|
||||
sudo ./src/wireless_monitor wlan0 11
|
||||
|
||||
# Or after installation
|
||||
sudo wireless_monitor wlan0 11
|
||||
```
|
||||
|
||||
## Package Names Reference
|
||||
|
||||
| Component | Fedora/RHEL | Debian/Ubuntu |
|
||||
|-----------|-------------|---------------|
|
||||
| C Compiler | `gcc` | `build-essential` |
|
||||
| Autoconf | `autoconf` | `autoconf` |
|
||||
| Automake | `automake` | `automake` |
|
||||
| Libtool | `libtool` | `libtool` |
|
||||
| libpcap | `libpcap-devel` | `libpcap-dev` |
|
||||
| libnl-genl-3 | `libnl3-devel` | `libnl-genl-3-dev` |
|
||||
| libnl-3 | `libnl3-devel` | `libnl-3-dev` |
|
||||
| pkg-config | `pkg-config` | `pkg-config` |
|
||||
|
||||
Note: On Fedora, `libnl3-devel` provides both `libnl-3.0` and `libnl-genl-3.0` pkg-config files.
|
||||
Loading…
Reference in New Issue