Errata‎ > ‎RaspberryPi‎ > ‎

SuitiePi

Wireless AP extender/guest network & entertainment

Last update: 05/09/2020

// This project is IN PROCESS.  FINALLY got AP to work on original Pi Model B!  Works pretty well ... BUT ... Kodi was a chronic problem.  Now attempting to smarten up the TV using RPiPlay ... Antics below.  This page will probably STILL be a mess for a while //

Background

SuitiePi was initially thrown together to fill-in a WiFi deadspot in our basement.  It plugged into an existing Ethernet cabled to our guest network and basically serves as a WiFi extender for overnight visitors.  Based on it's proximity to Stereo and TV, it is also morphing into a multi-purpose subterranean server offering a number of guest services.  

Software 
Hardware

As usual, the SuitiePi world was pieced together using stuff laying around, original Raspberry Pi (1 Model B), an existing network connection and our original home theater - TV and surround sound Amp.  It will be interesting to see how it all holds up.  Specifically:
  • Raspberry Pi 2 Model B (not B+).  Arm7 w/ Ethernet + two USB ports
  • EDIMAX USB WiFi adapter
  • Older RPI Power Supply (2 amp)
  • Really Old 8g Micro USB card

Step by Step (rough notes to self, I'll cleanup later)
  • Download Raspbian Lite (quickstart)
  • Etcher sd card
  • <Boot>
  • Post boot cleanup via raspi-config
    • Change pi password
    • Network Options -> Set Hostname
    • Localisation Options (season to taste)
      • Locale = en_US.UTF-8, UTF-8
      • Set Timezone 
      • Keyboard = US
      • WiFi Countrycode
    • Interfacing Options
      • Enable SSH
    • Advanced Options
      • Expand Filesystem
      • Force Audio thru HDMI
      • Screen Blanking
    • Update Raspi-config tool
    • <ReBoot>
  • RPiPlay
    • Build executable using README.md Via SSH (remember to sudo!)  
      sudo apt-get update
      sudo apt-get dist-upgrade
      Install editor - no like nano.
      sudo apt-get install joe
      <reboot>
      sudo apt-get install git
      git clone https://github.com/FD-/RPiPlay.git
      cd RPiPlay
      sudo apt-get install cmake
      sudo apt-get install libavahi-compat-libdnssd-dev
      sudo apt-get install libssl-dev
      mkdir build
      cd build
      cmake ..
      make
    • Run/Test
      • Test using fully qualified executable
        /home/pi/RPiPlay/build/rpiplay -n AppleTV -a hdmi 
      • Connect with iphone using Screen Sharing on pull-up control/gadget screen *not* airplay share icon!
      • Works pretty well!
      • Argh!  AppleTV wont play movies!  Message box:
        Cannot Play Movie
        The Connected display is 
        not authorized to play
        protected movies  
    • <pick up here ... is this worth it?>

  • RaspAP



Trials, Tribulations and Previous Struggles:

May 2020 - Gave up on dietpi, hostapd and kodi! ... remnants below

Software
  • Dietpi.com - My Favorite!  Download latest RPI version (Donate!)
  • Etcher.io - Much easier way to flash OS images to SD 
  • Hostapd (Wifi Access Point) provided in DietPi Optimized Software
  • TV/Entertainment services via Kodi option in DietPi Optimized Software
Step-by Step
  • Download latest DietPi and Etcher.  Follow DietPi Quickstart Guide
    // used DietPi_RPi-ARMv6-Buster.7z (~110MB Download) //
  • Config DietPi using keyboard and monitor
  • Install editor - no like nano.  apt-get install joe
  • Quick Kludge/Fix - Dietpi added network check that is a real pain ... attempts to ping 1.1.1.1, which appears to be blocked by our ISP (tds), stops updates and dietpi config/software in its tracks
    • Edit /boot/dietpi.txt - Code block looks like this:
# General connection and DNS testing
# - IP to ping when checking network connectivity. Default: 1.1.1.1 (Cloudflare DNS, should be very fast world-wide)
# TPed Mod - TDS blocks 1.1.1.1, I have to use similar - quad9.net
CONFIG_CHECK_CONNECTION_IP=9.9.9.9
# - Domain to ping when checking DNS resolver. Default: one.one.one.one (Cloudflare DNS domain, see above)
CONFIG_CHECK_DNS_DOMAIN=quad9.net

  • via Dietpi-Software 
    • install following - all under Software Optimized
      • Media Systems - Kodi
      • Wifi Hotspot (hostapd)
      • System Stats/Management - RPi-Monitor (web interface system status 
    • Install: Go >> Start installation for selected software
    • Dietpi-config 
      • Hostapd via Network Adapters 
        • SSID+password
        • Country
        • Channel (scan for best using Mac Wireless Diagnostics)
        • DON'T FORGET to APPLY (save changes and restart networking)
      • Normal dietpi tweaks
        • Audio -> onboard HDMI (rpi-bcm2835-auto)
        • Language/Regional -> US Local, Timezone & keyboard for me
        • Security Options -> change passwords & set hostname
        • Auto Start -> Kodi
  • Shutdown and move to final Subnet/Resting place 
    • Switch to SSH access for rest of setup at this point
  • Manual Tweaks
    • Connected PanelPi (Rpi0) to Hostapd,  
      • Edit /etc/dhcp/dhcpd.conf to pre-assign IP so I can find that little Pi ...
        # TPed Add - Reserve IP for our PanelPi 
        host panelpi {
        hardware Polish up ethernet xx:xx:xx:xx:xx:x;
        fixed-address 192.168.xx.xx;
        }
      • Added static route to upstream router and can now access Rpi0 via SuitiePi AP subnet
    • Had to edit /etc/hostapd/hostapd.conf to get hostapd_cli working CLI for hostapd status and such)
      • Added ctrl_interface and group - can't recall where I found this.  ctrl_Interface is path to hostapd.pid, not sure what group is ... but it works!
        # TPed Add - enable hostapd_cli client 
        ctrl_interface=/run/hostapd
        ctrl_interface_group=0
    • Season RPi-Monitor display to taste - edit /etc/rpimonitor/data.conf
      • Uncomment wlan.conf line - we want to see wlan activity
      • Comment dhtll.conf line - some sort of temp sensor.  Adds "Living Room" page - drove me nuts!
    • Good Time to Boot and check work so far
      • RPi-Monitor should work to both SuitePi and PanelPi
      • journalctl -u hostapd should also show PanelPi mac address authenticated & associated
      • hostapd_cli list_sta will also show active mac addresses
  • RPiPlay:  Sing-a-Long @ https://github.com/FD-/RPiPlay
    • Looks like cc compile opportunity, install some development stuff via dietpi-software (software-additional)
      • Build-Essentials, Git-Client and UnRar
      • <reboot, of course!>
    • Building (as root)
      git clone https://github.com/FD-/RPiPlay.git
      apt-get install cmake
      apt-get install libavahi-compat-libdnssd-dev
      cd RPiPlay
      mkdir build
      cd build
      cmake ..

    • CRAP!  No ilclient in dietpi? This is nuts!  Switching back to Raspbian for a while.  Dietpi seems to be more trouble than its worth!



March 2020 - back at it.  SuitiePi has been working quite well, some periodic failings (unable to connect), but overall pretty good.  Adding a static host (rpi0) to help me reach some hardwired sensors our home
  • Switched to RPi model 2, Kodi takes more power & SuitiePi is now integral part of Smart home (good or bad?!).  
  • no more shairport-sync for now, we'll see what Kodi can do 
  • Rpi-Monitor added 
  • Connected PanelPi (Rpi0) to Hostapd,  
    • Edit /etc/dhcp/dhcpd.conf to pre-assign IP so I can find that little Pi ...
      host panelpi {
      hardware ethernet xx:xx:xx:xx:xx:x;
      fixed-address 192.168.xx.xx;
      }
    • Added static route to upstream router and can now access Rpi0 via SuitiePi AP subnet
Now to figure out Kodi

Lots of struggles w/ EDIMAX adapter on Model B Pi ... switching to PI 2 for shortrun
WHOOPS - PI2 is missing - used for MoviePI for my parents (play fam movies from google drive with VCR-Like Remote!)
Switched to Pi 3 

Ghadzooks!  Complicated!  Combination of arm6 vs arm7 and EDIMAX adapter may be too much for dietpi.  Makes me grumpy, I had this working on Pi 2 w/EDIMAX adapter - wasn't that hard!!  Didn't take image of sd card - ARG!!  

Notes (so I can retrace my steps)
  • Attempting to install over dietpi REALLY want to use a Pi Model B here if I can
  • Configures and comes up fine 
  • Kernel Panic when first client connects - fully connects, pass auth completes
  • Switching to Raspian Lite (buster) - to eliminate diet pi 
  • Must be Arm6 - Raspian Lite's Kernel Panic's and dies too!
  • Back to DietPi on a RPI 3
  • <I'm sooo confused!  this one is a pain!>

Step by Step
// Attempting on Mod B w/ edimax & 8g SD //
- Download DietPi (of course)
- DietPi install (.5 - 45mins)
- Change a couple of passwords
- upgrades itself
// Approx 15 mins //
Dietpi Software/Dietpi Config
- Config cleanup 
--- Performance/Overclocking/Safe 900MHz (2over)
--- Advanced/Update firmware
--- Language/Locale/Timezone/Keyboard
--- Security/Hostname
--- Network - turned off IPV6 (for heck of it)
<reboot>
Dietpi Software
-- WiFi Hotspot (Hostapd)
-- Rpi-Monitor
-- Remember to Start Installation


Links 


Odd things to figure out - Dietpi v6.19.7

Raspberry Pi Model B hostapd dies - Kernel Panic

# journalctl -u hostapd
-- Logs begin at Thu 2016-11-03 12:16:43 CDT, end at Sat 2018-12-15 08:03:09 CST
. --
Dec 15 08:01:30 SuitiePi systemd[1]: Starting LSB: Advanced IEEE 802.11 management daemon...
Dec 15 08:01:31 SuitiePi hostapd[965]: Starting advanced IEEE 802.11 management:hostapdIllegal instruction
Dec 15 08:01:31 SuitiePi hostapd[965]: failed!
Dec 15 08:01:31 SuitiePi systemd[1]: Started LSB: Advanced IEEE 802.11 management daemon.

------------------------------------

Uninstalled hostapd and FINALLY got regular wifi working (adapter was chronically DISABLED) ... interesting wlan0 state ... both networks showing - hostap was ..42.1/24 and normal net 192.168.11. :
root@SuitiePi:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether b8:27:eb:63:0d:47 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 74:da:38:8b:2e:0b brd ff:ff:ff:ff:ff:ff
    inet 192.168.42.1/24 brd 192.168.42.255 scope global wlan0
       valid_lft forever preferred_lft forever
    inet 192.168.11.64/24 brd 192.168.11.255 scope global wlan0
       valid_lft forever preferred_lft forever
    inet6 fe80::76da:38ff:fe8b:2e0b/64 scope link 
       valid_lft forever preferred_lft forever