Forum: Mikrocontroller und Digitale Elektronik Buildroot + Raspberry Pi Zero W: Hotspot (hostapd/dnsmasq) startet nicht


von Ratet R. (newbieelektronik)


Lesenswert?

Hallo,

ich versuche verzweifelt, meinen Raspberry Pi Zero W mit Hotspot und 
Buildroot zu kompilieren und zum Laufen zu bringen.

Hier ist meine defconfig:
1
# -----------------------
2
# Architecture
3
BR2_arm=y
4
BR2_arm1176jzf_s=y
5
BR2_ARM_EABIHF=y
6
7
# -----------------------
8
# Toolchain (Optimiert: Headers fixieren)
9
BR2_KERNEL_HEADERS_6_1=y
10
BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
11
BR2_TOOLCHAIN_BUILDROOT_WCHAR=y
12
BR2_TOOLCHAIN_BUILDROOT_CXX=y
13
14
# -----------------------
15
# System / Init
16
BR2_TARGET_GENERIC_HOSTNAME="yio-remote"
17
BR2_TARGET_GENERIC_ISSUE="YIO Remote (Minimal)"
18
BR2_INIT_SYSTEMD=y
19
# Wir nutzen systemd-networkd für minimalen Overhead
20
BR2_PACKAGE_SYSTEMD_NETWORKD=y
21
BR2_PACKAGE_SYSTEMD_RESOLVED=y
22
# ttyS0 ist korrekt für den Pi Zero (Mini-UART)
23
BR2_TARGET_GENERIC_GETTY_PORT="ttyS0"
24
BR2_TARGET_GENERIC_BAUDRATE_115200=y
25
26
# -----------------------
27
# Kernel (Nutzt dein Fragment)
28
BR2_LINUX_KERNEL=y
29
BR2_LINUX_KERNEL_CUSTOM_GIT=y
30
BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/raspberrypi/linux.git"
31
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rpi-6.1.y"
32
BR2_LINUX_KERNEL_DEFCONFIG="bcmrpi"
33
BR2_LINUX_KERNEL_DTS_SUPPORT=y
34
BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2708-rpi-zero-w"
35
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="../board/remote/configs/remote_kernel.config"
36
37
# -----------------------
38
# Raspberry Pi Infrastructure
39
BR2_TARGET_RPI_FIRMWARE=y
40
BR2_TARGET_RPI_FIRMWARE_VARIANT_PI_ZERO_W=y
41
# DTS Overlays werden für dein sharp.dtbo benötigt
42
BR2_TARGET_RPI_FIRMWARE_INSTALL_DTB_OVERLAYS=y
43
44
# -----------------------
45
# WLAN & Networking
46
BR2_PACKAGE_LINUX_FIRMWARE=y
47
# Nur das absolut Nötige für den Pi Zero W Chip (Cypress/Broadcom 43430)
48
BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XXX=y
49
BR2_PACKAGE_WPA_SUPPLICANT=y
50
BR2_PACKAGE_WPA_SUPPLICANT_NL80211=y
51
BR2_PACKAGE_WPA_SUPPLICANT_DBUS=y
52
53
# -----------------------
54
# SSH & Utilities (Lightweight)
55
BR2_PACKAGE_DROPBEAR=y
56
BR2_PACKAGE_DROPBEAR_SMALL=y
57
# Hilft gegen "Entropy Starvation" beim Booten auf langsamen CPUs
58
BR2_PACKAGE_HAVEGED=y
59
# I2C Tools für deinen Check
60
BR2_PACKAGE_I2C_TOOLS=y
61
62
# -----------------------
63
# Filesystem & Image
64
BR2_ROOTFS_OVERLAY="../board/remote/root-overlays"
65
BR2_ROOTFS_POST_BUILD_SCRIPT="../board/remote/post-build.sh"
66
BR2_ROOTFS_POST_IMAGE_SCRIPT="../board/remote/post-image.sh"
67
68
# Nur ext4 aktivieren (ext2 Definitionen entfernt für Konsistenz)
69
BR2_TARGET_ROOTFS_EXT4=y
70
BR2_TARGET_ROOTFS_EXT4_SIZE="256M"
71
BR2_TARGET_ROOTFS_EXT4_DISABLE_JOURNALING=y
72
73
# Tools für Genimage
74
BR2_PACKAGE_HOST_DOSFSTOOLS=y
75
BR2_PACKAGE_HOST_MTOOLS=y
76
BR2_PACKAGE_HOST_GENIMAGE=y
77
BR2_TARGET_IMAGES_USE_CUSTOM_GENIMAGE=y
78
BR2_TARGET_GENIMAGE_CONFIG="../board/remote/genimage.cfg"
79
80
81
BR2_PACKAGE_HOSTAPD=y
82
BR2_PACKAGE_HOSTAPD_DRIVER_NL80211=y
83
BR2_PACKAGE_HOSTAPD_HAS_WIFI_DRIVERS=y
84
# You also need a DHCP server to give IPs to connecting devices
85
BR2_PACKAGE_DNSMASQ=y
86
BR2_PACKAGE_SYSTEMD_RFKILL=y
87
BR2_PACKAGE_UTIL_LINUX_RFKILL=y
88
BR2_PACKAGE_HAS_UDEV=y
89
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y

Und hier meine Kernel-Config:
1
# =====================================
2
# SYSTEMD CORE REQUIREMENTS (Wasserdicht)
3
# =====================================
4
CONFIG_CGROUPS=y
5
CONFIG_CGROUP_FREEZER=y
6
CONFIG_CGROUP_DEVICE=y
7
CONFIG_CGROUP_CPUACCT=y
8
CONFIG_CGROUP_PIDS=y
9
CONFIG_CGROUP_BPF=y
10
CONFIG_NAMESPACES=y
11
CONFIG_USER_NS=y
12
CONFIG_PID_NS=y
13
CONFIG_NET_NS=y
14
CONFIG_DEVTMPFS=y
15
CONFIG_DEVTMPFS_MOUNT=y
16
CONFIG_FHANDLE=y
17
CONFIG_AUTOFS4_FS=y
18
CONFIG_SIGNALFD=y
19
CONFIG_TIMERFD=y
20
CONFIG_EPOLL=y
21
CONFIG_INOTIFY_USER=y
22
CONFIG_SYSFS=y
23
CONFIG_PROC_FS=y
24
CONFIG_DMIID=y
25
CONFIG_UNIX=y
26
CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
27
28
# --- HARDWARE CORE (UART, I2C, SPI) ---
29
CONFIG_SERIAL_AMBA_PL011=y
30
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
31
CONFIG_I2C=y
32
CONFIG_I2C_CHARDEV=y
33
CONFIG_I2C_BCM2835=y
34
CONFIG_SPI=y
35
CONFIG_SPI_MASTER=y
36
CONFIG_SPI_BCM2835=y
37
CONFIG_RASPBERRYPI_FIRMWARE=y
38
CONFIG_MMC=y
39
CONFIG_MMC_BCM2835=y
40
CONFIG_GPIOLIB=y
41
CONFIG_GPIO_SYSFS=y
42
CONFIG_LEDS_GPIO=y
43
44
# --- NETWORKING & WLAN ---
45
CONFIG_NET=y
46
CONFIG_INET=y
47
CONFIG_WIRELESS=y
48
CONFIG_CFG80211=y
49
CONFIG_BRCMFMAC=y
50
CONFIG_BRCMFMAC_SDIO=y
51
CONFIG_IP_MULTICAST=y          
52
53
# --- FILESYSTEMS ---
54
CONFIG_EXT4_FS=y
55
CONFIG_VFAT_FS=y
56
CONFIG_TMPFS=y
57
CONFIG_TMPFS_POSIX_ACL=y
58
59
# --- OPTIMIZATION ---
60
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
61
CONFIG_KERNEL_XZ=y
62
CONFIG_RFKILL=y
63
CONFIG_RFKILL_INPUT=y
64
65
# --- WICHTIG FÜR WLAN-HOTSPOT ---
66
CONFIG_MAC80211=y                 # WLAN-Framework (wichtig für hostapd)
67
CONFIG_CFG80211_WEXT=y             # Kompatibilität mit WLAN-Tools
68
CONFIG_PACKET=y                    # Für raw sockets (hostapd benötigt das)
69
70
# --- NETZWERK GRUNDLAGEN ---
71
CONFIG_NETFILTER=y                 # Für Firewall (optional)
72
CONFIG_NETFILTER_ADVANCED=y
73
CONFIG_NF_CONNTRACK=y              # Connection tracking
74
CONFIG_NF_NAT=y                    # Network Address Translation
75
76
# --- FÜR BESSERES DEBUGGING ---
77
CONFIG_DEBUG_FS=y                  # Für Debug-Informationen
78
CONFIG_DYNAMIC_DEBUG=y              # Detaillierte Kernel-Logs
79
CONFIG_MAGIC_SYSRQ=y                # SysRq für Notfälle

Weiterhin habe ich folgenden Device-Tree für das rootfs_overlay 
erstellt:
1
├── etc
2
│   ├── dnsmasq.conf
3
│   ├── hostapd.conf
4
│   ├── modules-load.d
5
│   │   └── modules.conf
6
│   ├── network
7
│   └── systemd
8
│       ├── network
9
│       │   └── 20-wlan0.network
10
│       └── system
11
│           ├── dnsmasq.service
12
│           ├── hostapd.service
13
│           └── multi-user.target.wants
14
├── root
15
│   └── splash.png
16
└── usr
17
    └── bin

hier meine hostapd.service datei
1
[Unit]
2
Description=Hostapd IEEE 802.11 AP, Cloud and Data Server
3
After=sys-subsystem-net-devices-wlan0.device
4
Before=network.target
5
Wants=network.target
6
7
[Service]
8
Type=simple
9
ExecStartPre=-/usr/sbin/rfkill unblock wifi
10
# Set a static IP for the Pi so clients know where the gateway is
11
ExecStart=/usr/sbin/hostapd /etc/hostapd.conf
12
13
[Install]
14
WantedBy=multi-user.target

und meine dnsmasq.service datei
1
[Unit]
2
Description=DNSmasq DHCP and DNS Server
3
# Wait for the WiFi interface to be initialized
4
After=hostapd.service
5
Wants=hostapd.service
6
Before=multi-user.target
7
8
[Service]
9
Type=simple
10
# Ensure we don't start until hostapd has likely initialized the interface
11
ExecStartPre=/usr/bin/sleep 2
12
# -k keeps it in the foreground for systemd
13
# -C points to your config file
14
ExecStart=/usr/sbin/dnsmasq -k -C /etc/dnsmasq.conf
15
Restart=on-failure
16
RestartSec=5
17
18
[Install]
19
WantedBy=multi-user.target



Was ist daran falsch?

: Bearbeitet durch User
von Stefan S. (seife)


Lesenswert?

Ratet R. schrieb:
> Was ist daran falsch?

Du hast vergessen zu beschreiben, was dein Problem ist.

von Harald K. (kirnbichler)


Lesenswert?

Stefan S. schrieb:
> Du hast vergessen zu beschreiben, was dein Problem ist.

Hat er schon, in der Überschrift: "startet nicht".

Liebst Du auch so ausführliche Fehlerbeschreibungen?

von Ratet R. (newbieelektronik)


Lesenswert?

das wifi ist nicht ersichtlich.....

ich habe leider keine uart debug zugang mein TTL adapter kommt erst die 
Tage daher kann ich leider nicht mehr sagen. Mir waere schon geholfen 
wenn die config prinzipiell stimmt

von Peter (pittyj)


Lesenswert?

Sowas habe ich mit einem Standard-Image gemacht, und noch ein paar 
Sachen dazu mit apt installiert.
Dann ist evtl ein bisserl überflüssiger Krams drauf, der nicht gebraucht 
wird. Stört ja nicht, der Speicher ist groß genug.

von Ratet R. (newbieelektronik)


Lesenswert?

Peter schrieb:
> Sowas habe ich mit einem Standard-Image gemacht, und noch ein paar
> Sachen dazu mit apt installiert.
> Dann ist evtl ein bisserl überflüssiger Krams drauf, der nicht gebraucht
> wird. Stört ja nicht, der Speicher ist groß genug.

Danke fuer den Hinweis....ich wuerde gerne buidlroot verwenden :)

von Stefan S. (seife)


Lesenswert?

Ich frage mich ja, wie ohne irgendeine Form von Konsolenzugang 
festgestellt wurde, daß hostapd und dnsmasq nicht starten...

von Mario M. (thelonging)


Lesenswert?

Was steht denn in /etc/dnsmasq.conf, /etc/hostapd.conf und 
/etc/systemd/network/20-wlan0.network?

von Ratet R. (newbieelektronik)


Lesenswert?

Mario M. schrieb:
> Was steht denn in /etc/dnsmasq.conf, /etc/hostapd.conf und
> /etc/systemd/network/20-wlan0.network?


1
cat ../board/remote/root-overlays/etc/dnsmasq.conf 
2
# Basic Networking
3
interface=wlan0
4
bind-interfaces
5
6
# DHCP IP Range (Start, End, Mask, Lease Time)
7
dhcp-range=192.168.10.10,192.168.10.50,255.255.255.0,12h
8
9
# Gateway and DNS (Pointing to the Pi)
10
dhcp-option=3,192.168.10.1
11
dhcp-option=6,192.168.10.1
12
13
# Logging (Vital for debugging without UART)
14
log-dhcp
15
log-facility=/var/log/dnsmasq.log
1
cat ../board/remote/root-overlays/etc/hostapd.conf 
2
interface=wlan0
3
driver=nl80211
4
ssid=PiZero_Hotspot
5
hw_mode=g
6
channel=6
7
macaddr_acl=0
8
auth_algs=1
9
ignore_broadcast_ssid=0
10
wpa=2
11
wpa_passphrase=YourSecretPassword
12
wpa_key_mgmt=WPA-PSK
13
wpa_pairwise=TKIP
14
rsn_pairwise=CCMP
1
cat ../board/remote/root-overlays/etc/systemd/network/20-wlan0.network 
2
[Match]
3
Name=wlan0
4
5
[Network]
6
# Kein DHCP, da wir eine statische IP für den Access Point brauchen
7
DHCP=no
8
# Statische IP-Adresse für den Hotspot (wie in Ihrer hostapd.service)
9
Address=192.168.10.1/24
10
# Stellt sicher, dass systemd-networkd das Interface nicht herunterfährt,
11
# wenn es nicht gebraucht wird (wichtig für Hotspot-Betrieb)
12
LinkLocalAddressing=no
13
# Deaktiviert automatische IPv6-Konfiguration
14
IPv6AcceptRA=no
15
# Optional: DNS-Server für Clients (wird von dnsmasq übernommen, daher hier nicht nötig)
16
# DNS=... 
17
18
# Wichtig: systemd-networkd soll KEINE Standardroute hinzufügen, da dies ein AP ist
19
# und der Pi evtl. selbst noch eine andere Netzwerkverbindung (eth0) hat.
20
# Lassen Sie [Route] Abschnitte daher komplett weg.

von Michael W. (miks)


Angehängte Dateien:

Lesenswert?

Ratet R. schrieb:
> Hallo,
>
> ich versuche verzweifelt, meinen Raspberry Pi Zero W mit Hotspot und
> Buildroot zu kompilieren und zum Laufen zu bringen.
>
> Hier ist meine defconfig:...
>
> Was ist daran falsch?

Siehe obiges Bild...

von Ratet R. (newbieelektronik)


Lesenswert?

Michael W. schrieb:
> Ratet R. schrieb:
>> Hallo,
>>
>> ich versuche verzweifelt, meinen Raspberry Pi Zero W mit Hotspot und
>> Buildroot zu kompilieren und zum Laufen zu bringen.
>>
>> Hier ist meine defconfig:...
>>
>> Was ist daran falsch?
>
> Siehe obiges Bild...

Danke fuer den Hinweis ich werde es einhalten....

von Mario M. (thelonging)


Lesenswert?

Die Konfiguration ist plausibel. Wahrscheinlich bleibt nichts anderes 
übrig, als auf den USB-Seriell-Wandler zu warten. Für den Anschluss von 
Tastatur und Monitor werden wohl keine passenden Adapter dabei sein.

von Ratet R. (newbieelektronik)


Lesenswert?

Mario M. schrieb:
> Die Konfiguration ist plausibel. Wahrscheinlich bleibt nichts anderes
> übrig, als auf den USB-Seriell-Wandler zu warten. Für den Anschluss von
> Tastatur und Monitor werden wohl keine passenden Adapter dabei sein.

Auch meine defconfig vom buildroot?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.