start.sh 3.0 KB

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