14.4 Configuring a RPi raspbian micro SD card.
A complete working micro SD card image is available for download.
The following pages describe how the card is set up.
We use terminal on the RPi.
nano is a text editor. sudo nano gives the necessary root access
Initial - with monitor, mouse and keyboard
Download the latest Raspberry Pi operating system with desktop and software from:
https://www.raspberrypi.org/downloads/raspberry-pi-os/
(I do not use Noobs. It has unwanted operating systems in the image and more importantly,
the image cannot be resized with parted.)
Download and install Raspberry Pi Imager from:
https://www.raspberrypi.org/downloads/
Probably unnecessary... but:
Use windows - control panel - administrative tools -- computer management
- storage - disk management to delete all partitions from the card
(care! to not delete the wrong card /disk! ... I have done it!!)
Install raspbian OS on the card using Raspberry Pi Imager.
Insert the card in the RPi and power up
If your mouse is riduculously slow in response, the in RPi terminal do:
sudo nano /boot/cmdline.txt
Carefully add at the end (after a space) usbhid.mousepoll=0
Then save (Ctrl-X Y Enter)
Use start (bottom left) Preferences - Raspberry Pi configuration - interfaces tab
Enable SSH, VNC, Serial port, remote GPIO
Configure keyboard and locale setting for you country.
Real VNC - will allow us PC control by Real VNC Viewer (free download for personal use)
The following may be needed to display the desktop a PC with Real VNC Viewer after you have
disconnected the monitor from the RPi
(You may have already selected a display resolution - but you need to do it here!)
sudo raspi-config
Select the advanced option and then the screen resolution option.
If control by VNC is rejected then you will need the following change:
sudo nano /boot/config.txt
uncomment the line: hdmi_force_hotplug=1
(This will make the RPi generate HDMI output for VNC access
even if started with no HDMI monitor connected.)
Now check /etc/hosts
sudo nano /etc/hosts
make sure this line has changed to your host name
127.0.1.1 piWebCAT or whatever you chose
//////////////////////////////////////////
Now change to fixed ip address: I will use 192.168.1.117
Make sure dhcpcd is running:
sudo service dhcpcd start
sudo systemctl enable dhcpcd
sudo nano /etc/dhcpcd.conf
.... nano editor opens
.. assuming your router is 192.168.1.1
... 8.8.8.8 is a Google DNS .. for good measure !
Uncomment and modify this bit for wired networking.
interface eth0
static ip_address=192.168.1.117/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1 8.8.8.8
Add the following for WIFI - you can use the same IP address
The RPi will use wireless if eth0 is not connected
interface wlan0
static ip_address=192.168.1.117/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1 8.8.8.8
NB: you may choose to use a different IP address for wifi access.
/////////////////
You may wish to continue with keyboard, mouse and monitor.
I disconnect them.
I install Real VNC viewer on the PC. (Free for private use but not for commercial use)
I display the RPi desktop on the PC
-- search 192.168.1.117 user pi password feline (save it)
Apache web server, php
sudo apt-get update
sudo apt-get install apache2 -y
sudo apt-get install php libapache2-mod-php -y
Check with web browser 192.168.1.117
Should show default apache2 demo index file
//////////////////////////////////////////
Pure-FTPd used by Expression4 web developer and by FileZilla FTP client
The following is mainly from Raspberry pi.org
Their example sets a home directory of / home/pi/FTP
We need a home directory of /var/www/html ... the apache webserver root
sudo apt-get install pure-ftpd
sudo groupadd ftpgroup
sudo useradd ftpuser -g ftpgroup -s /sbin/nologin -d /dev/null
sudo chown -R ftpuser:ftpgroup /var/www/html
user name is upload (or your choice)
sudo pure-pw useradd upload -u ftpuser -g ftpgroup -d /var/www/html -m
Enter and confirm the password. I use: feline
sudo pure-pw mkdb
sudo ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/60puredb
sudo service pure-ftpd restart
Now use FileZilla to check access:
using: host = 192.168.1.117 user = upload password = feline port = 21
.. this should access /var/www/html - the website root which at this
point contains index.html (from the apache2 web server install)
Finally add another user to access the /home/pi folder
user name is piuser (or your choice)
sudo pure-pw useradd piuser -u ftpuser -g ftpgroup -d /home/pi -m
Enter and confirm the password. I use: feline
sudo service pure-ftpd restart
You now have two users,
- upload accesses /var/www/html - the website root
- piuser accesses /home/pi - Downloads folder for Hamlib build etc
Finally - the upload process needs permission to access /home/pi and subfolders and files
sudo chmod 777 -R /home/pi
MariaDB (MYSQL) database
sudo apt-get install mariadb-server php-mysql -y
sudo apt-get install phpmyadmin
- choose apache2 when asked which webserver reply NO to database question
sudo mysql -u root -p
- password will be requested feline
Your are now in MYSQL with a MYSQL prompt thus;
MariaDB [(none)]> you will now enter SQL statements ... all have terminating semicolon.
CREATE DATABASE radios;
USE radios;
CREATE USER ‘piwebcat’@’localhost’ IDENTIFIED BY 'feline’;
GRANT ALL PRIVILEGES ON radios.* TO 'piwebcat'@'localhost' IDENTIFIED BY 'feline’;
CREATE USER ‘piwebcat’@’%’ IDENTIFIED BY 'feline’;
GRANT ALL PRIVILEGES ON radios.* TO 'piwebcat'@'%' IDENTIFIED BY 'feline’;
FLUSH PRIVILEGES;
quit MYSQL
Edit /etc/mysql/my.cnf
sudo nano /etc/mysql/my.cnf
make sure bind-address=127.0.0.1 is commented out
add: bind-address=0,0,0,0
(To allow external access by MySQL Front etc)
finally:
sudo service mysql restart
///////////////////////////////////////////////////////
Edit /boot/cmdline.txt
sudo nano /boot/cmdline.txt
File content something like
console=serial0,115200 console=tty1 root=PARTUUID=75582189-02
rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash
plymouh.ignore-serial-consoles
remove the section: console=serial0,115200 and save
Edit boot/config.txt
sudo nano /boot/config.txt
comment out:
#dtparami2c_arm=on
#dtparam=spi=on
add under [all]
core_freq=250
enable_uart=1
dtoverlay=pi3-miniuart-bt
For reasons not understood, the serial ports looses access permissions
This is fixed by resetting them at start up
Edit .bashrc
sudo nano /home/pi/.bashrc
Then go to end of this script and add:
echo Running at end of script
sudo chmod 666 /dev/ttyAMA0
sudo chmod 666 /dev/ttyUSB0
sudo chmod 666 /dev/ttyUSB1
The same can be achieved by creating file:
/lib/udev/rules.d/local.rules
Containing:
ACTION=="add", KERNEL=="dialout", MODE="0666"
ACTION=="add", KERNEL=="ttyAMA0", MODE="0666"
ACTION=="add", KERNEL=="ttyUSB0", MODE="0666"
ACTION=="add", KERNEL=="ttyUSB1", Mode="0666"
I do both !
sudo reboot
///////////////////////////////////////////////////////////////
phpmyadmin
We have already installed phpmyadmin
To activate it and link to website root: /var/www/html
sudo ln -s /usr/share/phpmyadmin /var/www/html
sudo reboot
This installs a phpmyadmin file in the web site root
We can then access phpmyadmin from a browser by: 192.168.1.117/phpmyadmin
user name is piwebcat password is feline
I have used MySQL Front for most of the development as it is PC based and perhaps
quicker and easier to use that phpmyadmin. (PC only)
Recently I have used HeidiSQl which is an excellent alternative ( PC based)
Download and install MYSQL Front
http://mysql-front.freedownloadscenter.com/windows/free/
Test connection using: host = 192.168.1.117 port = 3306 user piwebcat = pw = feline
- you should see the radios database
R mouse on it click - import - select my supplied radios.sql - Run
- whole database should quickly import
Use FileZilla to upload the website to /var/www/html
(The FTP server, pure-ftpd is already configured with /var/www/html as upload root.
host = 192.168.1.117 port = 21 user = upload password = feline