start.sh 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  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. LOGDIR="$DIR/logs/$(date +%s)"
  10. mkdir -p $LOGDIR
  11. fi
  12. if groups | tr ' ' "\n" | grep -q ^admin$; then
  13. GROUP=admin
  14. else
  15. GROUP=adm
  16. fi
  17. if [ "$1" = "concurrent" ]; then
  18. CONCURRENT=y
  19. CONCURRENT_ARGS="-N -Dnl80211 -ista%d -c $DIR/sta-dummy.conf"
  20. shift
  21. else
  22. unset CONCURRENT
  23. CONCURRENT_ARGS=
  24. fi
  25. if [ "$1" = "valgrind" ]; then
  26. VALGRIND=y
  27. VALGRIND_WPAS="valgrind --log-file=$LOGDIR/valgrind-wlan%d"
  28. VALGRIND_HAPD="valgrind --log-file=$LOGDIR/valgrind-hostapd"
  29. chmod -f a+rx $WPAS
  30. chmod -f a+rx $HAPD
  31. shift
  32. else
  33. unset VALGRIND
  34. VALGRIND_WPAS=
  35. VALGRIND_HAPD=
  36. fi
  37. if [ "$1" = "trace" ]; then
  38. TRACE="T"
  39. shift
  40. else
  41. TRACE=""
  42. fi
  43. $DIR/stop-wifi.sh
  44. sudo modprobe mac80211_hwsim radios=5
  45. if [ "$CONCURRENT" = "y" ]; then
  46. sudo iw wlan0 interface add sta0 type station
  47. sudo iw wlan1 interface add sta1 type station
  48. sudo iw wlan2 interface add sta2 type station
  49. fi
  50. mkdir -p $LOGDIR
  51. sudo ifconfig hwsim0 up
  52. sudo $WLANTEST -i hwsim0 -c -d > $LOGDIR/hwsim0 &
  53. sudo tcpdump -ni hwsim0 -s 2500 -w $LOGDIR/hwsim0.dump > $LOGDIR/tcpdump 2>&1 &
  54. for i in 0 1 2; do
  55. sudo $(printf -- "$VALGRIND_WPAS" $i) $WPAS -g /tmp/wpas-wlan$i -G$GROUP -Dnl80211 -iwlan$i -c $DIR/p2p$i.conf \
  56. $(printf -- "$CONCURRENT_ARGS" $i) -ddKt$TRACE > $LOGDIR/log$i &
  57. done
  58. sudo $VALGRIND_HAPD $HAPD -ddKt$TRACE -g /var/run/hostapd-global -G $GROUP -ddKt > $LOGDIR/hostapd &
  59. sleep 1
  60. sudo chown $USER $LOGDIR/hwsim0.dump
  61. if [ "x$VALGRIND" = "xy" ]; then
  62. sudo chown $USER $LOGDIR/*valgrind*
  63. fi
  64. if [ -x $HLR_AUC_GW ]; then
  65. $HLR_AUC_GW -m $DIR/auth_serv/hlr_auc_gw.milenage_db > $LOGDIR/hlr_auc_gw &
  66. fi
  67. $HAPD -ddKt $DIR/auth_serv/as.conf > $LOGDIR/auth_serv &
  68. # wait for programs to be fully initialized
  69. for i in 0 1 2; do
  70. for j in `seq 1 10`; do
  71. if $WPACLI -g /tmp/wpas-wlan$i ping | grep -q PONG; then
  72. break
  73. fi
  74. if [ $j = "10" ]; then
  75. echo "Could not connect to /tmp/wpas-wlan$i"
  76. exit 1
  77. fi
  78. sleep 1
  79. done
  80. done
  81. for j in `seq 1 10`; do
  82. if $WPACLI -g /var/run/hostapd-global ping | grep -q PONG; then
  83. break
  84. fi
  85. if [ $j = "10" ]; then
  86. echo "Could not connect to /var/run/hostapd-global"
  87. exit 1
  88. fi
  89. sleep 1
  90. done
  91. exit 0