diff --git a/app.py b/app.py index 80bf4af..0cd9257 100644 --- a/app.py +++ b/app.py @@ -17,7 +17,14 @@ def index(): @app.route('/settings') def settings(): config = config_mgr.load_config() - return render_template('settings.html', config=config, active_page='settings') + + # Load mode + mode = 'sha256' + if os.path.exists('mining_mode.conf'): + with open('mining_mode.conf', 'r') as f: + mode = f.read().strip() + + return render_template('settings.html', config=config, active_page='settings', mode=mode) @app.route('/api/data') def api_data(): @@ -56,6 +63,14 @@ def save_settings(): new_config = config_mgr.load_config() # Start with existing + # Save mode + mode = request.form.get('mining_mode', 'sha256') + try: + with open('mining_mode.conf', 'w') as f: + f.write(mode) + except Exception as e: + print(f"Error saving mode: {e}") + # Update simple fields new_config['gridseed-options'] = f"freq={request.form.get('freq', '850')}" diff --git a/install.sh b/install.sh index 19fc9c3..498a353 100755 --- a/install.sh +++ b/install.sh @@ -122,8 +122,8 @@ After=network.target necrohash-gui.service [Service] User=$USER WorkingDirectory=$TARGET_DIR -# Log stdout/stderr to file for the GUI to read -ExecStart=/bin/sh -c 'exec /usr/local/bin/cgminer --gridseed-options freq=850 -c $TARGET_DIR/cgminer.conf >> $TARGET_DIR/cgminer.log 2>&1' +# Use wrapper script to handle mode switching (scrypt/sha256) +ExecStart=$TARGET_DIR/miner_wrapper.sh Restart=always RestartSec=10 diff --git a/miner_wrapper.sh b/miner_wrapper.sh new file mode 100755 index 0000000..9fe7b18 --- /dev/null +++ b/miner_wrapper.sh @@ -0,0 +1,36 @@ +#!/bin/bash +# Wrapper script to start cgminer with correct flags based on selected mode + +MODE_FILE="mining_mode.conf" +CONF_FILE="cgminer.conf" +LOG_FILE="cgminer.log" + +# Default mode +MODE="sha256" + +if [ -f "$MODE_FILE" ]; then + MODE=$(cat "$MODE_FILE" | tr -d '[:space:]') +fi + +FLAGS="" + +if [ "$MODE" == "scrypt" ]; then + FLAGS="--scrypt" +elif [ "$MODE" == "dual" ]; then + # Dual mode usually implies scrypt flag + gridseed options, but purely depends on cgminer version behavior. + # Often dual mode is default if scrypt is enabled? + # Actually for gridseed: + # SHA256 only: no --scrypt + # Scrypt only: --scrypt --gridseed-options=scrypt + # Dual: --scrypt --gridseed-options=... (default) + # Let's assume: + # SHA256: (no scrypt flag) + # Scrypt: --scrypt + FLAGS="--scrypt" +fi + +echo "Starting miner in mode: $MODE with flags: $FLAGS" > "$LOG_FILE" + +# Execute cgminer +# Note: we use exec to replace the shell process +exec /usr/local/bin/cgminer $FLAGS --gridseed-options freq=850 -c "$CONF_FILE" >> "$LOG_FILE" 2>&1 diff --git a/templates/settings.html b/templates/settings.html index 4b207e1..db5d5f3 100644 --- a/templates/settings.html +++ b/templates/settings.html @@ -17,6 +17,18 @@
Konfiguration
+
Allgemein
+ +
+ + +
Ändert das Startverhalten des Miners.
+
+ +
Pool Einstellungen