By the end of this tutorial you will be able to access your Raspberry Pi 3 as Wi-Fi Hotpot. Before getting started please make sure that your module is PPP Internet connected. If not please follow the steps from PPP installer tutorial.

Here we go;

1. Install required packages:

sudo apt-get install dnsmasq hostapd

2. You need to configure wlan0 with a static IP.

3. If your Raspberry Pi 3 is connected via Wi-Fi, connect it via Ethernet first.

4. Ignore wlan0. For this type
sudo nano /etc/dhcpcd.conf
which opens up dhcpcd configuration file, then add
denyinterfaces wlan0
at the end of it.

5. This step includes configuration of Static IP. Type
sudo nano /etc/network/interfaces
and add/edit wlan0 section to following configuration

Restart dhcpcd with
sudo service dhcpcd restart
then reload the configuration for wlano with
sudo ifdown wlan0
sudo ifup wlan0

Next, we need to configure hostapd.

 6. Create a new configuration file with
sudo nano /etc/hostapd/hostapd.conf
and add the following contents:

**NOTE: You may check if it’s working at this stage by running sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf . So far if it’s all done right you should be able to see SIXFAB in your network list. Stop it using Ctrl+C and proceed to next step.

7. Now open up the default configuration file typing
sudo nano /etc/default/hostapd
find the line #DAEMON_CONF=""

replace the line with DAEMON_CONF="/etc/hostapd/hostapd.conf" .

8. Present dnsmasq config file contains a bunch of information about how to use it, but it’s majority is useless for us here. It is advised to not delete rather create a new configuration file.
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig

sudo nano /etc/dnsmasq.conf

Paste the following lines into the new file you have just created:

9. Now you will enable packet forwarding. Type

sudo nano /etc/sysctl.conf

to open sysctl.conf. Here find the line

net.ipv4.ip_forward=1  and remove # sign from the beginning of the line.

10. Now reboot your Raspberry Pi

sudo reboot

11. Now we will share our Raspberry Pi’s Internet Connection to the devices connected over the wifi by configuring NAT between wlan0 interface and our ppp0 interface. We can do this using following commands

sudo iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
sudo iptables -A FORWARD -i ppp0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o ppp0 -j ACCEPT

12. This step needs to be repeated every time you reboot the Raspberry Pi. To avoid it, run

sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"

which saves the rules to a file /etc/iptables.ipv4.nat

As you will need to run this after each reboot, open the rc.local file typing
sudo nano /etc/rc.local

and just above the line exit 0, add the following line:
iptables-restore < /etc/iptables.ipv4.nat

13. Start the services:
sudo service hostapd start
sudo service dnsmasq start

Now you will be able to connect to the Internet via Wi-Fi

I would like to thank Phil Martin for his tutorial using your new Raspberry Pi 3 as a WIFI access point with hostapd.

25 thoughts on “Using Sixfab 3G or 4G Raspberry Pi shield as a Wi-Fi Hotspot”

  1. Step 11 states “This needs configuration of NAT between wlan0 and ppp0 interfaces,” but does not offer any steps explaining how to do this. Are there any references you can link to?

  2. This guide does not seem to work stretch. It also appears there may be some information missing for step 11. Are you able to update this post accordingly?

  3. I’m finding all information that I require for my project with the exception of the SIM cards! What provider do I use for these mobile networking hats? Thanks in advance.

  4. Hey Thomas, could you provide further info on this process? I’d lie to utilize the eth0 for internet instead of the wifi.

    Thanks

  5. Please correct me if I’m wrong, I’m assuming that the SIM card has to be active with data service. The reason I ask is because I’m wondering if I use the SIM card from my phone with this setup be better than using the hotspot on my phone provided by my cell carrier? Please advise what features would you suggest be on the SIM card for best results?

    1. Internet SIM cards are best to use. (Cost effective)
      You can use regular sim too. Technically there is no difference.

  6. Can someone help me. I’m new to this raspberry pi stuff and wanted to try to make this project but getting errors when I try to restart the dhcpcd service.

    when I tried to restart the dhcpcd service I am getting:
    Job for dhcpcd.service failed because the control process exited with error code.
    See “systemctl status dhcpcd.service” and “journalctl -xe” for details.
    when i check teh dhcpcd.service I found this:
    ● dhcpcd.service – dhcpcd on all interfaces
    Loaded: loaded (/lib/systemd/system/dhcpcd.service; enabled; vendor preset: e
    Active: failed (Result: exit-code) since Thu 2019-08-01 10:56:57 HST; 23s ago
    Process: 1545 ExecStop=/sbin/dhcpcd -x (code=exited, status=0/SUCCESS)
    Process: 1551 ExecStart=/usr/lib/dhcpcd5/dhcpcd -q -b (code=exited, status=6)
    Main PID: 419 (code=exited, status=0/SUCCESS)

    Aug 01 10:56:57 raspberrypi systemd[1]: Starting dhcpcd on all interfaces…
    Aug 01 10:56:57 raspberrypi dhcpcd[1551]: Not running dhcpcd because /etc/networ
    Aug 01 10:56:57 raspberrypi dhcpcd[1551]: defines some interfaces that will use
    Aug 01 10:56:57 raspberrypi dhcpcd[1551]: DHCP client or static address
    Aug 01 10:56:57 raspberrypi systemd[1]: dhcpcd.service: Control process exited,
    Aug 01 10:56:57 raspberrypi systemd[1]: Failed to start dhcpcd on all interfaces
    Aug 01 10:56:57 raspberrypi systemd[1]: dhcpcd.service: Unit entered failed stat
    Aug 01 10:56:57 raspberrypi systemd[1]: dhcpcd.service: Failed with result ‘exit
    the journalctl -xe shows this:
    Aug 01 10:58:36 raspberrypi chat[1668]: ^M
    Aug 01 10:58:36 raspberrypi chat[1668]: +COPS: 0^M
    Aug 01 10:58:36 raspberrypi chat[1668]: ^M
    Aug 01 10:58:36 raspberrypi chat[1668]: +CGREG: 0,0^M
    Aug 01 10:58:36 raspberrypi chat[1668]: ^M
    Aug 01 10:58:36 raspberrypi chat[1668]: OK
    Aug 01 10:58:36 raspberrypi chat[1668]: — got it
    Aug 01 10:58:36 raspberrypi chat[1668]: send (AT+CGDCONT=1,”IP”,”t-mobile”,,0,0^
    Aug 01 10:58:36 raspberrypi chat[1668]: expect (OK)
    Aug 01 10:58:36 raspberrypi sh[482]: expect (OK)
    Aug 01 10:58:36 raspberrypi sh[482]: ^M
    Aug 01 10:58:36 raspberrypi sh[482]: ERROR
    Aug 01 10:58:36 raspberrypi sh[482]: — failed
    Aug 01 10:58:36 raspberrypi sh[482]: Failed (ERROR)
    Aug 01 10:58:36 raspberrypi chat[1668]: ^M
    Aug 01 10:58:36 raspberrypi sh[482]: Script chat -s -v -f /etc/chatscripts/chat-
    Aug 01 10:58:36 raspberrypi sh[482]: Connect script failed
    Aug 01 10:58:36 raspberrypi chat[1668]: ^M
    Aug 01 10:58:36 raspberrypi chat[1668]: ERROR
    Aug 01 10:58:36 raspberrypi chat[1668]: — failed
    Aug 01 10:58:36 raspberrypi chat[1668]: Failed (ERROR)
    Aug 01 10:58:36 raspberrypi pppd[1666]: Script chat -s -v -f /etc/chatscripts/ch
    Aug 01 10:58:36 raspberrypi pppd[1666]: Connect script failed

  7. hi,
    i just bought this shield. i’ve tried to set this up.
    when i run the command “sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf”, i see the SIXFAB. but at the end i can’t connect through internet via the shield. and i don’t see the SIXFAB in the network list

  8. @Saeed,
    Can you make an update to this tutorial for using the QMI interface instead of the PPP interface? Using the sixfab hardware, I’ve gotten internet over LTE via QMI, but I can not get routing from wlan0 to wwan0 to work. Do I have to use PPP for routing to work?

    Thanks in advance.

  9. Geting error when i run the below command please help me to come out of these.
    sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf
    Configuration file: /etc/hostapd/hostapd.conf
    Line 1: unknown configuration item ‘nterface’
    Line 2: invalid/unknown driver ‘nl80211 # Use the nl80211 driver with the brcmfmac driver’
    Line 3: invalid SSID ‘SIXFAB # This is the name of the network’
    Line 4: unknown hw_mode ‘g # Use the 2.4GHz band’
    Line 13: invalid key_mgmt ‘#’
    Line 15: invalid cipher ‘CCMP # Use AES, instead of TKIP’.
    FT (IEEE 802.11r) requires nas_identifier to be configured as a 1..48 octet string
    7 errors found in configuration file ‘/etc/hostapd/hostapd.conf’
    Failed to set up interface with /etc/hostapd/hostapd.conf
    Failed to initialize interface

    1. Hey,
      make sure there is no typo.
      Line 1: unknown configuration item ‘nterface’

      Should be interface instead of nterface.

  10. Hi sir, when i run the below command am getting the following error. Actually now my raspberry pi 3b is using the internet from GSM modem and next i want my Pi to turn it to be act like access point so that other device can connect to hotspot and access internet from gsm. Sir please can you help me to overcome this problem.

    sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf
    Configuration file: /etc/hostapd/hostapd.conf
    Line 2: invalid/unknown driver ‘nl80211 # Use the nl80211 driver with the brcmfmac driver’
    Line 3: invalid SSID ‘SIXFAB # This is the name of the network’
    Line 4: unknown hw_mode ‘g # Use the 2.4GHz band’
    Line 13: invalid key_mgmt ‘#’
    Line 15: invalid cipher ‘CCMP # Use AES, instead of TKIP’.
    FT (IEEE 802.11r) requires nas_identifier to be configured as a 1..48 octet string
    6 errors found in configuration file ‘/etc/hostapd/hostapd.conf’
    Failed to set up interface with /etc/hostapd/hostapd.conf
    Failed to initialize interface

Leave a Reply

Your email address will not be published. Required fields are marked *