start.sh 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. #!/bin/sh
  2. DIR="$( cd "$( dirname "$0" )" && pwd )"
  3. WPAS=$DIR/../../wpa_supplicant/wpa_supplicant
  4. WPACLI=$DIR/../../wpa_supplicant/wpa_cli
  5. HAPD=$DIR/../../hostapd/hostapd
  6. WLANTEST=$DIR/../../wlantest/wlantest
  7. HLR_AUC_GW=$DIR/../../hostapd/hlr_auc_gw
  8. if [ -z "$LOGDIR" ] ; then
  9. DATE="$(date +%s)"
  10. LOGDIR="$DIR/logs/$DATE"
  11. mkdir -p $LOGDIR
  12. rm -rf $DIR/logs/current
  13. ln -sf $DATE $DIR/logs/current
  14. fi
  15. if groups | tr ' ' "\n" | grep -q ^admin$; then
  16. GROUP=admin
  17. else
  18. GROUP=adm
  19. fi
  20. for i in 0 1 2; do
  21. sed "s/ GROUP=.*$/ GROUP=$GROUP/" "$DIR/p2p$i.conf" > "$LOGDIR/p2p$i.conf"
  22. done
  23. if [ "$1" = "valgrind" ]; then
  24. VALGRIND=y
  25. VALGRIND_WPAS="valgrind --log-file=$LOGDIR/valgrind-wlan%d"
  26. VALGRIND_HAPD="valgrind --log-file=$LOGDIR/valgrind-hostapd"
  27. chmod -f a+rx $WPAS
  28. chmod -f a+rx $HAPD
  29. shift
  30. else
  31. unset VALGRIND
  32. VALGRIND_WPAS=
  33. VALGRIND_HAPD=
  34. fi
  35. if [ "$1" = "trace" ]; then
  36. TRACE="T"
  37. shift
  38. else
  39. TRACE=""
  40. fi
  41. $DIR/stop.sh
  42. test -f /proc/modules && sudo modprobe mac80211_hwsim radios=5
  43. sudo ifconfig hwsim0 up
  44. sudo $WLANTEST -i hwsim0 -n $LOGDIR/hwsim0.pcapng -c -dt -L $LOGDIR/hwsim0 &
  45. for i in 0 1 2; do
  46. sudo $(printf -- "$VALGRIND_WPAS" $i) $WPAS -g /tmp/wpas-wlan$i -G$GROUP -Dnl80211 -iwlan$i -c $LOGDIR/p2p$i.conf \
  47. -ddKt$TRACE -f $LOGDIR/log$i &
  48. done
  49. sudo $VALGRIND_HAPD $HAPD -ddKt$TRACE -g /var/run/hostapd-global -G $GROUP -ddKt -f $LOGDIR/hostapd &
  50. sleep 1
  51. sudo chown -f $USER $LOGDIR/hwsim0.pcapng $LOGDIR/hwsim0 $LOGDIR/log* $LOGDIR/hostapd
  52. if [ "x$VALGRIND" = "xy" ]; then
  53. sudo chown -f $USER $LOGDIR/*valgrind*
  54. fi
  55. if [ -x $HLR_AUC_GW ]; then
  56. $HLR_AUC_GW -m $DIR/auth_serv/hlr_auc_gw.milenage_db > $LOGDIR/hlr_auc_gw &
  57. fi
  58. $HAPD -ddKt $DIR/auth_serv/as.conf > $LOGDIR/auth_serv &
  59. # wait for programs to be fully initialized
  60. for i in 0 1 2; do
  61. for j in `seq 1 10`; do
  62. if $WPACLI -g /tmp/wpas-wlan$i ping | grep -q PONG; then
  63. break
  64. fi
  65. if [ $j = "10" ]; then
  66. echo "Could not connect to /tmp/wpas-wlan$i"
  67. exit 1
  68. fi
  69. sleep 1
  70. done
  71. done
  72. for j in `seq 1 10`; do
  73. if $WPACLI -g /var/run/hostapd-global ping | grep -q PONG; then
  74. break
  75. fi
  76. if [ $j = "10" ]; then
  77. echo "Could not connect to /var/run/hostapd-global"
  78. exit 1
  79. fi
  80. sleep 1
  81. done
  82. exit 0