start.sh 3.0 KB

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