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?

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.