170 lines
5.3 KiB
Markdown
170 lines
5.3 KiB
Markdown
# Raspberry Pi/Debian Automated Setup Scripts
|
|
|
|
## Overview
|
|
This project provides a collection of scripts to automate the configuration of Raspberry Pi or Debian-based systems. The main script (`setup_raspberry.sh`) allows you to easily configure network settings, disable the graphical interface to save RAM, and customize system behavior.
|
|
|
|
## Features
|
|
- Set static MAC address for Ethernet interface (eth0)
|
|
- Automatically disable Wi-Fi (wlan0) if Ethernet is active and has an IP
|
|
- Configure static IP address with custom gateway
|
|
- Disable graphical environment to save system resources
|
|
- Custom welcome message with system information
|
|
- Automated setup with a single command
|
|
|
|
## Prerequisites
|
|
- Raspberry Pi or Debian-based Linux system
|
|
- Internet connection
|
|
- sudo privileges
|
|
|
|
## Installation & Usage
|
|
|
|
### Quick Setup via curl
|
|
You can execute the setup script directly from GitLab using curl:
|
|
|
|
#### Basic interactive setup (prompts for each option):
|
|
```bash
|
|
curl -s https://gitlab.spiralragetech.com/tiago.aica/scripts/-/raw/main/debian/setup_raspberry.sh | sudo bash
|
|
```
|
|
|
|
#### Configure MAC address only:
|
|
```bash
|
|
curl -s https://gitlab.spiralragetech.com/tiago.aica/scripts/-/raw/main/debian/setup_raspberry.sh | sudo bash -s "94:29:48:23:6A:B8"
|
|
```
|
|
|
|
#### Configure MAC address and disable GUI:
|
|
```bash
|
|
curl -s https://gitlab.spiralragetech.com/tiago.aica/scripts/-/raw/main/debian/setup_raspberry.sh | sudo bash -s "94:29:48:23:6A:B8" disable_gui
|
|
```
|
|
|
|
#### Configure MAC, disable GUI, and set static IP with gateway:
|
|
```bash
|
|
curl -s https://gitlab.spiralragetech.com/tiago.aica/scripts/-/raw/main/debian/setup_raspberry.sh | sudo bash -s "94:29:48:23:6A:B8" disable_gui "192.168.1.100/24" "192.168.1.1"
|
|
```
|
|
|
|
### Manual Installation
|
|
Alternatively, download and run the script locally:
|
|
|
|
1. Download the setup script:
|
|
```bash
|
|
wget https://gitlab.spiralragetech.com/tiago.aica/scripts/-/raw/main/debian/setup_raspberry.sh
|
|
```
|
|
|
|
2. Make it executable:
|
|
```bash
|
|
chmod +x setup_raspberry.sh
|
|
```
|
|
|
|
3. Run the script:
|
|
```bash
|
|
sudo ./setup_raspberry.sh
|
|
```
|
|
|
|
## Script Parameters
|
|
The setup_raspberry.sh script accepts these parameters in order:
|
|
1. MAC_ADDRESS (e.g., "94:29:48:23:6A:B8")
|
|
2. GUI_ACTION (use "disable_gui" to disable graphical environment)
|
|
3. IP_ADDRESS (e.g., "192.168.1.100/24")
|
|
4. GATEWAY (e.g., "192.168.1.1")
|
|
|
|
## Components
|
|
|
|
### 1. set_mac_wifi.sh
|
|
- Sets static MAC address for eth0
|
|
- Disables wlan0 if eth0 gets an IP address after 60 seconds
|
|
- Logs all actions to /var/log/set_mac.log
|
|
|
|
### 2. gui_manager.sh
|
|
- Manages graphical environment (enable/disable)
|
|
- Helps save RAM by disabling GUI when not needed
|
|
- Usage:
|
|
- Disable GUI: `sudo GUI_ACTION=disable /usr/local/bin/gui_manager.sh`
|
|
- Enable GUI: `sudo GUI_ACTION=enable /usr/local/bin/gui_manager.sh`
|
|
|
|
### 3. set_static_ip.sh
|
|
- Configures static IP for active interface (eth0 or wlan0)
|
|
- Supports custom gateway configuration
|
|
- Automatically detects network management system (dhcpcd, netplan, NetworkManager)
|
|
- Usage:
|
|
- With parameters: `sudo IP_ADDRESS=192.168.1.100/24 GATEWAY=192.168.1.1 /usr/local/bin/set_static_ip.sh`
|
|
- Interactive: `sudo /usr/local/bin/set_static_ip.sh`
|
|
|
|
### 4. welcome.sh
|
|
- Displays custom welcome message on login
|
|
- Shows system information (uptime, IP, memory usage, etc.)
|
|
- Automatically added to /etc/profile
|
|
|
|
## Configuration Examples
|
|
|
|
### Example 1: Minimal Configuration (MAC only)
|
|
```bash
|
|
curl -s https://gitlab.spiralragetech.com/tiago.aica/scripts/-/raw/main/debian/setup_raspberry.sh | sudo bash -s "00:1A:2B:3C:4D:5E"
|
|
```
|
|
|
|
### Example 2: Network Configuration
|
|
```bash
|
|
curl -s https://gitlab.spiralragetech.com/tiago.aica/scripts/-/raw/main/debian/setup_raspberry.sh | sudo bash -s "" "" "192.168.1.100/24" "192.168.1.1"
|
|
```
|
|
|
|
### Example 3: Full Configuration
|
|
```bash
|
|
curl -s https://gitlab.spiralragetech.com/tiago.aica/scripts/-/raw/main/debian/setup_raspberry.sh | sudo bash -s "00:1A:2B:3C:4D:5E" disable_gui "192.168.1.100/24" "192.168.1.1"
|
|
```
|
|
|
|
## Post-Installation
|
|
|
|
### Checking Configurations
|
|
- View MAC configuration: `cat /usr/local/bin/set_mac_wifi.sh | grep ETH0_MAC | head -n 1`
|
|
- View static IP configuration: `ip addr show`
|
|
- View crontab entries: `crontab -l`
|
|
|
|
### Manual Configuration
|
|
After installation, you can manually run any component:
|
|
```bash
|
|
# Change MAC address
|
|
sudo /usr/local/bin/set_mac_wifi.sh
|
|
|
|
# Change static IP
|
|
sudo IP_ADDRESS=192.168.1.200/24 GATEWAY=192.168.1.1 /usr/local/bin/set_static_ip.sh
|
|
|
|
# Toggle GUI
|
|
sudo GUI_ACTION=enable /usr/local/bin/gui_manager.sh
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
1. **Check log files** for errors:
|
|
```bash
|
|
cat /var/log/raspberry_setup.log
|
|
cat /var/log/set_mac.log
|
|
cat /var/log/set_static_ip.log
|
|
cat /var/log/gui_manager.log
|
|
```
|
|
|
|
2. **Verify network configuration**:
|
|
```bash
|
|
ip addr show
|
|
ip route show
|
|
cat /etc/resolv.conf
|
|
```
|
|
|
|
3. **Check service status**:
|
|
```bash
|
|
systemctl status dhcpcd
|
|
systemctl status networking
|
|
```
|
|
|
|
## Notes
|
|
|
|
1. The scripts will create backups of configuration files before making changes.
|
|
2. A reboot is recommended after configuration to ensure all changes take effect.
|
|
3. For security, the scripts set proper permissions on configuration files.
|
|
4. The setup script will prompt before making any changes to your system.
|
|
|
|
## Support
|
|
|
|
For issues or questions:
|
|
1. Check the log files in /var/log/
|
|
2. Verify your network configuration
|
|
3. Ensure you have sudo privileges
|
|
4. Check the project repository for updates
|