Help us understand the problem. What is going on with this article?

「SIMカード+4GPi」でラズパイをモバイルWiFiルーターにする

モバイルWiFiルーターとは?

小型で軽量な通信端末のことであり、一例を挙げるとポケットWiFiです。

本記事は「4GPi+SIMカード+ラズベリーパイ」でモバイルWiFiルーターとして
データ通信する手順を紹介します。

4GPiとは?

4GPi(フォージーパイ)は、ラズベリーパイ専用に開発された4G(LTE)通信モジュールです。

以下サイトで4GPiの使用例を紹介しております。
・ メカトラックス様公式サイト(受託開発・製造)
・ Stretch 版 4GPi のイメージから Buster へのアップグレード~4GPiを使うメリット~

必要な物

◎ ラズベリーパイ用4G(LTE)通信モジュール「4GPi」
◎ ACアダプタ(12V 2A) 
◎ 標準SIM(私の場合は"NanoSIM" + "標準SIMへの変換アダプタ"で対応)
◎ ラズパイ
◎ パソコン
◎ MicroSDカード

取り付け手順・機器の画像・補足事項はStretch 版 4GPi のイメージから Buster へのアップグレード~必要な物~で紹介しておりますのでそちらを参照ください!

「SIMカード+4GPi」でラズパイをモバイルWiFiルーターにする

下準備

OSのダウンロード

4GPiインストール済のbuster版イメージをダウンロードします。

OSイメージをMicroSDカードへ書き込み

今回は有名な書き込みソフト「Etcher」を使用しました。
書き込み手順はこちらのサイトを参照

パソコンからssh接続

ブラウザの表示をコピペしたいので、パソコンからssh接続します。
もちろんラズパイ直接入力でも問題ありません。

ssh pi@IPアドレス

のちの手順でwlan0をアクセスポイントとして使用するためラズパイは有線LANでつなぐことをお勧めします。
有線LANの場合、IPアドレスはifconfigコマンドで表示されるeth0のinetを入力してください。

ラズパイのパッケージを更新

sudo apt-get update
sudo apt-get upgrade

SIMカード情報を登録

項目 Y!Moblieの場合
APN plus.acs.jp
ユーザー ym
パスワード ym

Y!Moblieの場合は

sudo nmcli con add type gsm ifname "*" con-name ymobile apn plus.acs.jp user ym password ym

接続できているかifconfigコマンドで確認します。

ifconfig wwan0

inetにIPアドレスが表示されていればokです。

wlan0を静的IPにする

アクセスポイントにするにはワイヤレスポートに割り当てられた静的IPアドレスが必要となります。

まずは設定ファイルを変更します。

sudo vi /etc/dhcpcd.conf

dhcpcd.conf内でwlan0に静的IP(192.168.4.1)を設定します。
また、wpa_supplicantの設定ファイルを読み込まないようにします。

ファイルの最終行に以下の3行を追加してください。

interface wlan0
    static ip_address=192.168.4.1/24
    nohook wpa_supplicant

そして、変更した設定ファイルにて再起動します。

sudo service dhcpcd restart

DHCPサーバーの設定(IPアドレスの自動割り当て)

DHCP(Dynamic Host Configuration Protocol)を設定します。
DHCPとは「コンピュータがネットワークに接続する際に必要な設定情報を自動的に割り当てる仕組み」です。

まずはdnsmasqをインストールします。

sudo apt install dnsmasq

既存のファイルは使用しませんので、リネームして別ファイルとして保存しておきましょう。

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig

新しくファイルを新規作成します。

sudo vi /etc/dnsmasq.conf

中身に以下を2行を記載します。

interface=wlan0      
dhcp-range=192.168.4.2,192.168.4.20,255.255.255.0,24h

24時間のリース時間で、192.168.4.2から192.168.4.20のIPアドレスを提供します。

dnsmasqの更新された設定ファイルにて再起動します。

sudo service dnsmasq restart

起動状態をチェックします。

sudo systemctl status dnsmasq

以下のように「Active:」の後にactive(runnnig)と記載されていればokです。

Active: active (running) since Mon 2019-09-16 16:27:48 JST; 2min 8s ago

ラズパイをアクセスポイントにする

アクセスポイントを設定するパッケージ「hostapd」をインストールします。

sudo apt-get install hostapd

設定ファイルを新規作成します。

sudo vi /etc/hostapd/hostapd.conf

次に、以下内容を記載します。
「ssid」と「wpa_passphrase」は好きな値を設定してください。

interface=wlan0
driver=nl80211
ssid=RPiHotSpot
hw_mode=g
channel=6
wmm_enabled=0
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=1234567890
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

「ssid」がWiFi接続の際に表示される名称でパスワードが「wpa_passphrase」です。

次にこの構成ファイルの場所をシステムに伝える必要があります。

sudo vi /etc/default/hostapd
DAEMON_CONF="/etc/hostapd/hostapd.conf"

起動するファイル名は、先ほどの設定ファイル「hostapd.conf」のフルパスを入力します。

hostapdを以下手順で起動します。

sudo systemctl unmask hostapd
sudo systemctl enable hostapd
sudo systemctl start hostapd

起動状態をチェックします。

sudo systemctl status hostapd

以下のように「Active:」の後にactive(runnnig)と記載されていればokです。

Active: active (running) since Mon 2019-09-16 16:27:48 JST; 2min 8s ago

wlan0にアクセスした端末をSIMカードと通信する設定

sysctl.confを編集します。

sudo vi /etc/sysctl.conf

以下のコメントアウトを外します。

net.ipv4.ip_forward=1

wwan0のマスカレードを追加します。

sudo iptables -t nat -A  POSTROUTING -o wwan0 -j MASQUERADE

iptablesのルールを保存します。

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

ブート時にこれらのルールをインストールします。

sudo vi /etc/rc.local

exit 0の上の行に次のコマンドを追加します。

iptables-restore < /etc/iptables.ipv4.nat

ラズパイを再起動します。

sudo reboot

ここで有線LANを抜きましょう。
私の場合、有線LANが接続されたままだと「RPiHotSpot」に接続できますが、
Webサイトを読み込むことができませんでした。(干渉?)

スマホでWiFiとして設定できるか確認しましょう。

wifi.jpg

以上で設定完了です。

おまけ(スピードチェック)

スマートフォン内にSIMカードを挿入してデータ通信した場合は19.0Mbps、
4GPiからスマートフォンにWiFiとしてデータ通信した場合は12.0Mbpsでした。

スマートフォンから直接SIMを読み込むほうが少し早かったです。
4GPiの速度はパラボラアンテナを作ると少しは上がるかもしれません。

参考サイト

https://www.raspberrypi.org/documentation/configuration/wireless/access-point.md

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away