summaryrefslogblamecommitdiffstats
path: root/builder/modules.d/wlan-boot/README
blob: 71bc5ff5a47029fb633365a6a1a0564de1584386 (plain) (tree)























































































































































                                                                                                                                                                                                                                                                                                                        
############################################
### 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.