############################################ ### README DRACUT MODUL FOR WLAN SUPPORT ### ############################################ SHORT LIST OF FILES ============= /hooks /hooks/parse-wlan-kernel-command-line-parameter.sh /hooks/start_wlan.sh /hooks/prepare-newroot.sh /services /services/dhcp.service /services/wpa_supplicant.service /udev /udev/80-net-wlan.rules /binaries /binaries/systemd-preserve-process-marker /binaries/dhcpcd /scripts /scripts/dhcpcd-hooks /scripts/dhcpcd-hooks/20-resolv.conf /scripts/dhcpcd-hooks/10-wpa_supplicant /scripts/dhcpcd-run-hooks /certs /certs/Deutsche_Telekom_Root_CA_2.pem /debug /debug/services /debug/services/debug-shell.service /debug/binaries /debug/binaries/busybox.tar /debug/hooks /debug/hooks/install_busybox.sh /debug/scripts /debug/scripts/restart_wpa.sh /module-setup.sh /chroot WIFI DRIVER AND CHIP ==================== this module was built with the iwlwifi Linux kernel driver and tested with Intel Corporation Centrino Wireless-N 100 BUILDING THE INITRAMFS ====================== ./build-initramfs.sh -s -d -p initramfs-wlan - --add "wlan crypt" KERNEL COMMAND LINE EXAMPLE FOR EDUROAM ======================================= ../vmlinuz-centos-old slxsrv=132.230.8.90 slxbase=slx/cos7/ rd.shell rd.break=switch-root ssid=eduroam user=testoslx@hs-offenburg.de pw=password123 SEQUENCE ======== ----------------------- cmdline / | / | parse the command line | v ----------------------- udev / | / | set the interface name | v pre-mount ------------------------ | \ | \ | ------- start wlan ------- v / \ ---------------------- pre-pivot / \ / set link up start dhcpcd.service ------ / \ prepare newroot \ start wpa_supplicant.service HOOKS ===== cmdline ------- /hooks/parse-wlan-kernel-command-line-parameter.sh search the command line for 'ssid=' and 'pw=' and generates the wpa_supplicant configuration file /etc/wpa_supplicant.conf If you connect to eduroam you also need 'user='. It is important for dhcpcd that the config file includes the path to the ctrl_interface. pre-mount --------- /hooks/start_wlan.sh this script sets up the wlan interface and starts the dhcp.service. The dhcp.service runs the dhcp client dhcpcd which starts the wpa_supplicant.service if no wpa_supplicant already running. The script is waiting until its possible to ping the slxsrv from the command line. pre-pivot --------- /hooks/prepare-newroot.sh copy files to the new system and disable NetworkManager SERVICES ======== /services/dhcp.service this service manages the dhcp client dhcpcd. It will be invoked by the start_wlan.sh script while pre-mount. /services/wpa_supplicant.service this service manages the wpa_supplicant. It will be invoked by dhcpcd. DHCP ==== dhcpcd ------ the dhcp client we use is dhcpcd. dhcpcd runs /libexec/dhcpcd-run-hooks if an event occurs like no carrier is available. We want to use this hook event to restart wpa_supplicant every time we lost the connection. But in fact it doesnt work after the switch root, cause of any reason dhcpcd doesnt run the script. dhcpcd-run-hooks ---------------- dhcpcd-run-hooks is used by dhcpcd to run any system and user defined hook scripts. It executes all scripts in /libexec/dhcpcd-hooks/. /debug/scripts/restart_wpa.sh ----------------------------- this script restarts the wpa_supplicant DEBUG ===== rescue shell ------------ after the new system booted you have a busybox available on tty9. You can use this if you lost the connection after the switch root. CHROOT ====== here you find an environment which provides dhcpcd and wpa_supplicant. It isnt included automaticly, because its not really tested. For more Information you find some manual steps at chroot/README.