Merge pull request #14 from rootzoll/dev

Dev
This commit is contained in:
bluecell296 2019-02-09 20:18:47 +00:00 committed by GitHub
commit 320eea5402
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 144 additions and 118 deletions

24
FAQ.md
View file

@ -71,6 +71,26 @@ Once you finished all the transferes the Raspiblitz will make a quick-check on t
Its a lot of data and torrent seeds can not be garantuued. Normally it should be done within 24 hours. If it takes longer then 2 days consider to abort the torrent download by pressing 'x' and choose FTP download as fallback ... will also take some time, but should be more stable. If even that is not working - choose SYNC option, which will take over a week, but is the classic way to get the blockchain thru the bitcoin peer2peer network.
## How do I clone the Blockchain from a 2nd HDD?
During setup, when you start with an empty HDD you need to get a copy of the blockchain. One option available is to connect a 2nd HDD to the RaspiBlitz that contains already the blockchain data and start to copy/clone.
If you choose this option, the console requests you to connect the second HDD and will autmatically detect it:
![SSH6b](pictures/ssh6b-copy.png)
You can simply use the HDD of another RaspiBlitz or you prepare a HDD yourself by:
* format second HDD with exFAT (availbale on Windows and Mac)
* copy an indexed Blockchain into the root folder "bitcoin"
* when your HDD is ready the content of your folder bitcoin should look like this:
![BitcoinFolderData](pictures/seedhdd.png)
To connect the 2nd HDD to the RaspiBlitz, the use of a Y cable to provide extra power is recommended (see optional shopping list). Because the RaspiBlitz cannot run 2 HDDs without extra power. For extra power you can use a battery pack, like in this picture:
![ExtraPower](pictures/extrapower.png)
## Why is my "final sync" taking so long?
First of all if you see a final sync over 90% and you can see from time to time small increase - you should be OK ... this can take some looong time to catch up with the network. Only in the case that you activly choose the `SYNC` option in the `Getting the Blockchain` a final sync under 90% is OK. If you did a torrent, a FTP or a copy from another computer and seeing under 90% somthing went wrong and the setup process is ignoring your prepared Blockchain and doing a full sync - which can almost take forever on a raspberryPi.
@ -231,7 +251,7 @@ To build a sd card image from another branch than master you follow the [Build t
For example if you want to make a build from the 'dev' branch you execute the following command:
`wget https://raw.githubusercontent.com/rootzoll/raspiblitz/dev/build.sdcard/raspbianStretchDesktop.sh && sudo bash raspbianStretchDesktop.sh 'dev'`
`wget https://raw.githubusercontent.com/rootzoll/raspiblitz/dev/build_sdcard.sh && sudo bash build_sdcard.sh 'dev'`
## How can I build an SD card from my forked GitHub Repo?
@ -241,7 +261,7 @@ If you fork the RaspiBlitz repo (much welcome) and you want to run that code on
* The long way: If you like to install/remove/change services and system configurations you need to build a SD card from your own code. Prepare like in [Build the SD Card Image](README.md#build-the-sd-card-image) from the README but in the end run the command:
`wget https://raw.githubusercontent.com/[GITHUB-USERNAME]/raspiblitz/[BRANCH]/build.sdcard/raspbianStretchDesktop.sh && sudo bash raspbianStretchDesktop.sh [BRANCH] [GITHUB-USERNAME]
`wget https://raw.githubusercontent.com/[GITHUB-USERNAME]/raspiblitz/[BRANCH]/build_sdcard.sh && sudo bash build_sdcard.sh [BRANCH] [GITHUB-USERNAME]
If you are then working in your forked repo and want to update the scripts on your RaspiBlitz with your latest repo changes, run `/home/admin/XXsyncScripts.sh` - thats OK as long as you dont make changes to the sd card build script - then you would need to build a fresh sd card again from your repo.

View file

@ -93,95 +93,87 @@ Fore more details on the setup process see the documentation below. If you run i
3. Go to the GitHub issues of the RaspiBlitz: https://github.com/rootzoll/raspiblitz/issues Do a search there. Also check closed issues by removing 'is:open' from the filter/search-box.
4. If you havent found an answere yet, open a new issue on the RaspiBlitz GitHub. You may have to register an account with GitHub for this. If its a big with the RaspiBlitz, please add (copy+paste) a Debug Report to your issue (see [FAQ](FAQ.md) how to generate) and/or add some screenshots/photios so the community gets more insight into your problem.
4. If you havent found an answere yet, open a new issue on the RaspiBlitz GitHub. You may have to register an account with GitHub for this. If its a bug with the RaspiBlitz, please add (copy+paste) a Debug Report to your issue (see [FAQ](FAQ.md) how to generate) and/or add some screenshots/photios so the community gets more insight into your problem.
## Documentation
### Setup Process
*The goal is, that all information needed is provided from the interaction with the RaspiBlitz itself during the setup. Documentation in this chapter is for background, comments for educators and point special edge cases.*
*The goal is, that all information needed is provided from the interaction with the RaspiBlitz itself during the setup. Documentation in this chapter is for background, comments for educators and to mention edge cases.*
#### Init
Automatically after login per SSH as admin to the RaspiBlitz, the user can choose if the RaspiBlitz should combine Bitcoin or Litecoin with Lightning:
Automatically after login per SSH as admin to the RaspiBlitz, the user can choose if the RaspiBlitz should run Bitcoin or Litecoin with Lightning:
![SSH0](pictures/ssh0-welcome2.png)
Setting Up the Raspi is the only option at this point, so we go with OK.
*Background: This menu is displayed by the script `00mainMenu.sh` and started automatically on every login of the admin user by admins `.bashrc`. If you want to get to the normal terminal prompt after login, just use CTRL-c. If you press OK in the dialog the script `10setupBlitz.sh` gets started*
*This menu is displayed by the script `00mainMenu.sh` and started automatically on every login of the admin user by admins `.bashrc`. If you want to get to the normal terminal prompt after login, just use CTRL-c or CANCEL. To return to the main menu from the terminal you can use the command `raspiblitz`.*
First thing to setup is giving your RaspiBlitz an name:
First thing to setup is giving your RaspiBlitz a name:
![SSH2](pictures/ssh2-passwords.png)
This name is given to the RaspiBlitz as hostname in the local network and later on also for the alias of the lightning node.
*Background: This and the following setup dialogues are part of the script `20setupDialog.sh`. The idea is to request much as needed setup information from the user at the start in this dialogs, so after that the setup can just run without many breaks.*
Then the user gets requested to write down 4 passwords:
Then the user gets requested to think of and write down 4 passwords:
![SSH1](pictures/ssh1-name.png)
*Background: The password A,B,C & D idea is directly based in the [RaspiBolt Guide Preperations](https://github.com/Stadicus/guides/blob/master/raspibolt/raspibolt_20_pi.md#write-down-your-passwords)*
*The password A,B,C & D idea is directly based in the [RaspiBolt Guide Preperations](https://github.com/Stadicus/guides/blob/master/raspibolt/raspibolt_20_pi.md#write-down-your-passwords) - check out for more background.*
Then the user is asked to enter the Password A:
![SSH3a](pictures/ssh3a-password.png)
On the next SSH login to the RaspiBlitz as admin, this new password has to be used. Its also set for the user existing user: root, bitcoin & pi. But only admin can be used to login per SSH.
This is the new password has to be used for every SSH login after this screen. Its also set for the user existing user: root, bitcoin & pi.
*Background: The bitcoin and lightning processes will run in the background (as daemon) and use the separate user “bitcoin” for security reasons. This user does not have admin rights and cannot change the system configuration.*
*The bitcoin and lightning services will later run in the background (as daemon) and use the separate user “bitcoin” for security reasons. This user does not have admin rights and cannot change the system configuration.*
Then the user is asked to enter the Password B:
![SSH3b](pictures/ssh3b-password.png)
*Background: The other passwords C & D get entered by the lightning wallet setup. This can just happen later ... so they will not get requested at this point.*
*The other passwords C & D will be needed later on. They will be used during the lightning wallet setup.*
After this the setup process needs some time and the user will see a lot of console outputs:
After this the setup process will need some time and the user will see a lot of console outputs:
![SSH4](pictures/ssh4-scripts.png)
*Background: After the user interaction the following scripts are started to automatically setup the RaspiBlitz:*
* 30initHDD.sh - it checks if the HDD needs to be formatted with Ext4
* 40addHDD.sh - adds the HDD for permanent mounting on /mnt/hdd
* 10setupBlitz.sh - now takes care that the HDD contains the blockchain
#### Getting the Blockchain
The following screen is just shown, if the HDD was not prepared with a copy of the Bitcoin blockchain (as part of a ready-2-go set). The following options are offered to get a copy:
The following screen is just shown if the HDD was not prepared with a copy of the Bitcoin blockchain (as part of a ready-2-go set).
To get a copy of the blockchain, the RaspiBlitz offers the following options:
![SSH5](pictures/ssh5-blockchain2.png)
The option "SYNC" should just be use as a fallback. So normally you have the following two options:
The options - and when to choose - will be explained here shortly:
#### Download the Blockchain
##### Torrent
This is the recommended way for users that are making the setup at home without any further assistance but can take quite some time. You can choose to download over TORRENT or FTP-DOWNLOAD. Choose the FTP if the torrent is not working for you.
TODO
For more details: [Background on Download Blockchain](background_downloadBlockchain.md)
##### FTP-Download
#### Copy the Blockchain
TODO
To copy the blockchain from another HDD can be faster - if available. If you choose this option, the console requests you to connect the second HDD and will autmatically detect it:
##### Copying from another Computer
![SSH6b](pictures/ssh6b-copy.png)
TODO
You can simply use the HDD of another RaspiBlitz or you prepare a HDD yourself by:
##### Cloning from a 2nd HDD
* format second HDD with exFAT (availbale on Windows and Mac)
* copy an indexed Blockchain into the root folder "bitcoin"
* when your HDD is ready the content of your folder bitcoin should look like this:
TODO
![BitcoinFolderData](pictures/seedhdd.png)
##### Sync from Bitcoin-Network
To connect the 2nd HDD to the RaspiBlitz, the use of a Y cable to provide extra power is recommended (see optional shopping list). Because the RaspiBlitz cannot run 2 HDDs without extra power. For extra power you can use a battery pack, like in this picture:
TODO
![ExtraPower](pictures/extrapower.png)
**Background: If the blockchain was already on the HDD or was acquired successfully, the script `60finishHDD.sh` will be called. It will further prepare the HDD and start the bitcoin service.*
#### Lightning
#### Setup Lightning
Before the lighting service can be started, the Bitcoin service needs to make sure that the blockchain is up to date. The downloaded blockchain data could be several weeks old - this could take some minutes. Then the Lightning Service gets started and a wallet can be created:
@ -298,9 +290,9 @@ A ready to use SD card image of the RaspiBlitz for your RaspberryPi is provided
Now you are ready to start the SD card build script - copy the following command into your terminal and execute:
`wget https://raw.githubusercontent.com/rootzoll/raspiblitz/master/build.sdcard/raspbianStretchDesktop.sh && sudo bash raspbianStretchDesktop.sh`
`wget https://raw.githubusercontent.com/rootzoll/raspiblitz/master/build_sdcard.sh && sudo bash build_sdcard.sh`
As you can see from the URL you find the build script in this Git repo under `build.sdcard/raspbianStretchDesktop.sh`- there you can check what gets installed and configured in detail. Feel free to post improvements as pull requests.
As you can see from the URL you find the build script in this Git repo under `build_sdcard.sh` - there you can check what gets installed and configured in detail. Feel free to post improvements as pull requests.
The whole build process takes a while. At the end the LCD drivers get installed and a reboot is needed. A user `admin` is created during the process. Remember the default password is now `raspiblitz`. You can login per SSH again - this time use admin: `ssh admin@[IP-OF-YOUR-RASPI]`. An installer of the SD card image should automatically launch. If you do not want to continue with the installation at this moment and use this sd card as a template for setting up multiple RaspiBlitze, click `Cancel` and run `/home/admin/XXprepareRelease.sh`. Once you see the LCD going white and the activity LED of the pi starts going dark, you can unplug power and remove the SD card. You have now built your own RaspiBlitz SD card image.

View file

@ -1,3 +1,4 @@
#!/bin/bash
#########################################################################
# Build your SD card image based on:
@ -12,7 +13,7 @@
echo ""
echo "*****************************************"
echo "* RASPIBLITZ SD CARD IMAGE SETUP v0.99 *"
echo "* RASPIBLITZ SD CARD IMAGE SETUP v1.00 *"
echo "*****************************************"
echo ""
@ -504,13 +505,14 @@ sudo chmod +x /home/admin/_bootstrap.sh
sudo cp ./assets/bootstrap.service /etc/systemd/system/bootstrap.service
sudo systemctl enable bootstrap
# *** BOOTSTRAP ***
# see background README for details
# *** TOR Prepare ***
echo "*** Prepare TOR source+keys ***"
sudo /home/admin/config.scripts/internet.tor.sh prepare
echo ""
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo "If you see fails above .. please run again later on:"
echo "sudo /home/admin/config.scripts/internet.tor.sh prepare"
echo ""
echo "*** RASPI BACKGROUND SERVICE ***"
sudo chmod +x /home/admin/_background.sh
sudo cp ./assets/background.service /etc/systemd/system/background.service
sudo systemctl enable background
# *** RASPIBLITZ IMAGE READY ***
echo ""
@ -542,10 +544,12 @@ if [ "${baseImage}" = "raspbian" ]; then
dialog --title "Display" --yesno "Are you using the default display available from Amazon?\nSelect 'No' if you are using the Swiss version from play-zone.ch!" 6 80
defaultDisplay=$?
if [[ $defaultDisplay -eq 0 ]]
then
if [ "${defaultDisplay}" = "0" ]; then
# *** RASPIBLITZ / LCD (at last - because makes a reboot) ***
# based on https://www.elegoo.com/tutorial/Elegoo%203.5%20inch%20Touch%20Screen%20User%20Manual%20V1.00.2017.10.09.zip
echo "--> LCD DEFAULT"
cd /home/admin/
sudo apt-mark hold raspberrypi-bootloader
git clone https://github.com/goodtft/LCD-show.git
@ -553,10 +557,13 @@ if [ "${baseImage}" = "raspbian" ]; then
sudo chown -R admin:admin LCD-show
cd LCD-show/
sudo ./LCD35-show
else
# Download and install the driver
# based on http://www.raspberrypiwiki.com/index.php/3.5_inch_TFT_800x480@60fps
echo "--> LCD ALTERNATIVE"
cd /boot
sudo wget http://www.raspberrypiwiki.com/download/RPI-HD-35-INCH-TFT/dt-blob-For-3B-plus.bin
sudo mv dt-blob-For-3B-plus.bin dt-blob.bin
@ -591,3 +598,4 @@ if [ "${baseImage}" = "raspbian" ]; then
EOF
init 6
fi
fi

View file

@ -88,7 +88,7 @@ Should end up here on version v6.20.6 or higher:
![](pictures/bash_prompt.png)
run the SDcard build script in this format:
`wget https://raw.githubusercontent.com/[GITHUB-USERNAME]/raspiblitz/[BRANCH]/build.sdcard/raspbianStretchDesktop.sh && sudo bash raspbianStretchDesktop.sh [BRANCH] [GITHUB-USERNAME]`
`wget https://raw.githubusercontent.com/[GITHUB-USERNAME]/raspiblitz/[BRANCH]/build_sdcard/raspbianStretchDesktop.sh && sudo bash raspbianStretchDesktop.sh [BRANCH] [GITHUB-USERNAME]`
Be aware of that the fork needs to be called `raspiblitz` for the git download to work.
if you intend to use @openoms`s forked version:

View file

@ -200,12 +200,6 @@ if [ ${setupStep} -eq 0 ]; then
elif [ ${setupStep} -lt 100 ]; then
# see function above
if [ ${setupStep} -lt 80 ]; then
./70initLND.sh
exit 0
fi
# see function above
if [ ${setupStep} -gt 59 ]; then
waitUntilChainNetworkIsReady

View file

@ -101,7 +101,11 @@ fi #end - when lighting is running
bitcoinRunning=$(systemctl status ${network}d.service 2>/dev/null | grep -c running)
if [ ${bitcoinRunning} -eq 0 ]; then
# double check
dialog --pause " Double checking for ${network}d - please wait .." 8 58 120
seconds=120
if [ ${setupStep} -lt 60 ]; then
seconds=10
fi
dialog --pause " Double checking for ${network}d - please wait .." 8 58 ${seconds}
bitcoinRunning=$(${network}-cli getblockchaininfo | grep "initialblockdownload" -c)
else
echo "${network} is running"
@ -139,21 +143,29 @@ if [ ${mountOK} -eq 1 ]; then
fi
fi
# check if there is a download to continue
# check if there is torrent data to continue
torrentProgressExists=$(sudo ls /mnt/hdd/ 2>/dev/null | grep "torrent" -c)
if [ ${torrentProgressExists} -eq 1 ]; then
# check if there is a running screen session to return to
noScreenSession=$(screen -ls | grep -c "No Sockets found")
if [ ${noScreenSession} -eq 0 ]; then
echo "found torrent data .. resuming"
./50torrentHDD.sh
exit 1
fi
fi
# check if there is a download to continue
# check if there is ftp data to continue
downloadProgressExists=$(sudo ls /mnt/hdd/ 2>/dev/null | grep "download" -c)
if [ ${downloadProgressExists} -eq 1 ]; then
# check if there is a running screen session to return to
noScreenSession=$(screen -ls | grep -c "No Sockets found")
if [ ${noScreenSession} -eq 0 ]; then
echo "found download in data .. resuming"
./50downloadHDD.sh
exit 1
fi
fi
# HDD is empty - get Blockchain
@ -165,7 +177,7 @@ if [ ${mountOK} -eq 1 ]; then
T "TORRENT --> MAINNET + TESTNET thru Torrent (DEFAULT)" \
D "DOWNLOAD --> MAINNET + TESTNET per FTP (FALLBACK)" \
C "COPY --> BLOCKCHAINDATA from another node with SCP" \
A "ADAPTER --> BLOCKCHAINDATA from 2nd HDD via powered adapter cable"\
N "CLONE --> BLOCKCHAINDATA from 2nd HDD (extra cable)"\
S "SYNC --> MAINNET thru Bitcoin Network (ULTRA SLOW)" 2>&1 >/dev/tty)
# Litecoin
@ -194,8 +206,8 @@ if [ ${mountOK} -eq 1 ]; then
C)
./50copyHDD.sh
;;
A)
./50adapterHDD.sh
N)
./50cloneHDD.sh
;;
S)
./50syncHDD.sh
@ -232,6 +244,6 @@ if [ ${formatExt4OK} -eq 1 ]; then
fi
# the HDD had no init yet
echo "HDD needs init"
echo "init HDD ..."
./30initHDD.sh
exit 1

View file

@ -17,6 +17,8 @@ while [ ${#result} -eq 0 ]
dialog --backtitle "RaspiBlitz - Setup (${network}/${chain})" --inputbox "$l1$l2" 11 52 2>$_temp
result=$( cat $_temp | tr -dc '[:alnum:]-.' | tr -d ' ' )
shred $_temp
echo "processing ..."
sleep 3
done
# set lightning alias

View file

@ -34,7 +34,7 @@ while [ ${ready} -eq 0 ]
done
echo ""
echo "*** Copy Blockchain form a second HDD ***"
echo "*** Clone Blockchain form a second HDD ***"
echo ""
echo "WARNING: The RaspiBlitz cannot run 2 HDDs without extra Power!"
echo ""

View file

@ -111,7 +111,7 @@ if [ ${isRunning} -eq 1 ]; then
echo "killing screen session PID(${sessionPID})"
# kill all child processes of screen sceesion
pkill -P ${sessionPID}
echo "proccesses klilled"
echo "proccesses killed"
sleep 3
# tell the screen session to quit and wait a bit
screen -S ${name} -X quit 1>/dev/null
@ -141,7 +141,7 @@ if [ ${finalSize} -lt ${targetSize} ]; then
dialog --title " WARNING (${finalSize}) " --yesno "The download failed or is not complete. Maybe try again (later). Do you want keep already downloaded data for next try?" 8 57
response=$?
case $response in
1) sudo rm -rf ${targetDir} ;;
1) sudo rm -rf /mnt/hdd/download ;;
esac
./00mainMenu.sh
exit 1;

View file

@ -8,10 +8,39 @@
# command info
if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
echo "small config script to switch TOR on or off"
echo "internet.tor.sh [on|off]"
echo "internet.tor.sh [on|off|prepare]"
exit 1
fi
# function: install keys & sources
prepareTorSources()
{
# Prepare for TOR service
echo "*** INSTALL TOR REPO ***"
echo ""
echo "*** Install dirmngr ***"
sudo apt install dirmngr -y
echo ""
echo "*** Adding KEYS deb.torproject.org ***"
curl https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | sudo gpg --import
sudo gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -
echo ""
echo "*** Adding Tor Sources to sources.list ***"
echo "deb https://deb.torproject.org/torproject.org stretch main" | sudo tee -a /etc/apt/sources.list
echo "deb-src https://deb.torproject.org/torproject.org stretch main" | sudo tee -a /etc/apt/sources.list
echo "OK"
echo ""
}
# if started with prepare
if [ "$1" = "prepare" ] || [ "$1" = "-prepare" ]; then
prepareTorSources
exit 0
fi
# check and load raspiblitz config
# to know which network is running
source /home/admin/raspiblitz.info
@ -62,43 +91,13 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
packageInstalled=$(dpkg -s tor-arm | grep -c 'Status: install ok')
if [ ${packageInstalled} -eq 0 ]; then
# Prepare for TOR service
echo "*** Install TOR repo keys ***"
recvKeyResult=$(sudo gpg --keyserver keys.gnupg.net --recv 886DDD89 2>&1)
echo "${recvKeyResult}"
recvKeyFailed=$(echo "${recvKeyResult}" | grep -c 'Total number processed: 0')
if [ ${recvKeyFailed} -eq 1 ]; then
echo "FAILED: sudo gpg --keyserver keys.gnupg.net --recv 886DDD89"
exit 1
fi
sudo gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -
echo ""
recvKeyResult=$(sudo gpg --keyserver pgpkeys.mit.edu --recv-key 74A941BA219EC810 2>&1)
echo "${recvKeyResult}"
recvKeyFailed=$(echo "${recvKeyResult}" | grep -c 'Total number processed: 0')
if [ ${recvKeyFailed} -eq 1 ]; then
echo "FAILED: sudo gpg --keyserver pgpkeys.mit.edu --recv-key 74A941BA219EC810"
exit 1
fi
sudo gpg -a --export 74A941BA219EC810 | sudo apt-key add -
echo ""
echo "*** Adding Tor Sources to sources.list ***"
echo "deb https://deb.torproject.org/torproject.org stretch main" | sudo tee -a /etc/apt/sources.list
echo "deb-src https://deb.torproject.org/torproject.org stretch main" | sudo tee -a /etc/apt/sources.list
echo "OK"
echo ""
# calling function from above
prepareTorSources
echo "*** Updating System ***"
sudo apt-get update
echo ""
echo "*** Installing dirmngr ***"
sudo apt install dirmngr -y
echo ""
echo "*** Install Tor ***"
sudo apt install tor tor-arm -y
@ -201,12 +200,11 @@ EOF
echo "TOR package/service is installed and was prepared earlier .. just activating again"
echo "*** Enable TOR service ***"
sudo systemctl ensable tor@default
sudo systemctl enable tor@default
echo ""
fi
# ACTIVATE LND OVER TOR
echo "*** Putting LND behind TOR ***"
echo "Make sutre LND is disabled"
@ -253,17 +251,17 @@ if [ "$1" = "0" ] || [ "$1" = "off" ]; then
echo "OK"
echo ""
echo "*** Remove Tor ***"
sudo apt remove tor tor-arm -y
echo ""
#echo "*** Remove Tor ***"
#sudo apt remove tor tor-arm -y
#echo ""
echo "*** Remove NYX ***"
sudo pip uninstall nyx -y
echo ""
#echo "*** Remove NYX ***"
#sudo pip uninstall nyx -y
#echo ""
echo "*** Remove TOR Files/Config ***"
sudo rm -r -f /mnt/hdd/tor
echo ""
#echo "*** Remove TOR Files/Config ***"
#sudo rm -r -f /mnt/hdd/tor
#echo ""
echo "needs reboot to activate new setting"
exit 0

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB