Kerlinkとは
- フランスのIoT機器メーカー
- LoRaにかなり強くて様々な機器をリリースしている
- 詳細は言える範囲でどこかでまた書けたらいいが、ゲートウェイのRF特性がなかなか良くて、長距離になってくると他社よりも安定的な通信が可能だったりする
- 彼らが提供しているLoRaWANゲートウェイの初期セットアップについて本ページで言及する
前提
- 箱の中にマニュアルが同梱されているが、ほぼ役に立たないのであまり読まなくていい
- KerlinkのWikiがあるのでそれベースに設定などしていく
- 有線LAN環境があるとよし
- KerlinkのLoRaWANゲートウェイの中身はLinuxなので、Linuxの基礎的な知識が必要
- この場においても細かいLinuxの話は一切しない, 既に知ってるものとする
- AWS IoTに登録してLoRaWANノードの通信を中継できるように構築したい
- ただしAWS IoT側の設定などについてはこの場では言及しない
- またそのうち別ページで解説するかもしれない
対象機器
以下2つの種別のゲートウェイで同じように構築できることを確認済み。
- Wirnet™ iStation Gateway
- Wirnet™ iFemtoCell-evolution Gateway
まずは接続確認
- DHCPがある有線LAN環境で徐にぶっさす
- 同サブネットに自端末もつなぐ
- リースされたIPアドレスをhttpで見てみると普通にWeb管理画面が見えるはず
- デフォルトのユーザー名やパスワードはマニュアルに書いてある
- ここまでこれたら一旦OK
- ログインしてもいいのだが、ぶっちゃけ役に立つ情報がない
- LoRaWAN関連の設定は一切できず、後述の通りSSHしてから諸々作る必要がある
- Ethernet設定とかNTP設定とかのような超基本的な設定しかできない
- ただし、後述のFWアップデートで使うので、この画面はこのままにしておいて良い
全体工程
まぁぶっちゃけWikiに書いてある内容をなぞるだけっちゃそうなのだが、いまいち分かりづらいと思うので、ばばっと書いておく。
メインとしては以下のページたちが参考になる。
- https://wikikerlink.fr/wirnet-productline/doku.php?id=wiki:quickstart:quickstart_ifevo
- https://wikikerlink.fr/wirnet-productline/doku.php?id=wiki:quickstart:quickstart_istation
- https://wikikerlink.fr/wirnet-productline/doku.php?id=wiki:lora:aws
↑から必要な情報だけを抜き出して、本ページでまとめておきたい。
ここからの工程としては大体以下のような感じで進める。
- FWアップデート
- Basic Stationのインストール
- 証明書などの設定
FWアップデート
大前提に KerOS IPK v5へのアップデートが必要になる。
デフォだと v4系だと思うのだが、もし工場出荷時でv5系ならここはスキップでよし。
v4系のままだと後述のLoRaWANソフトウェアスタックのインストールができない。そのためv5系に引き上げる必要がある。
FWファイルはこのページの下部に存在するのでこれをダウンロードする。
落とすべきは、 Liveburnerっていうほう。Liveburnerじゃないほうはv5系になったあとにそのあとアップデートするためのものであり、v4系からはLiveburnerのファイルを使わないといけない。
ファイルを落とせたら、先述のWeb管理画面からアップデートかける。
Administration > Update でファイルをぶん投げるだけ。楽ちん。
再起動込みで数分以内には完了する。そんなに悩むこともない。
Basic Stationのインストール
v5系になれたら、LoRaWAN ゲートウェイになるための Basic StationおよびPacket Forwarderをインストールしていく。
もう少し具体のことはまた別のページで解説しようかと思うのだが、とりあえずよくあるLinuxベースのLoRaWANゲートウェイにおいては、これらのソフトウェアを絶対使うってざっくり覚えておいてよい。Kerlinkにおいても同様で、これらをインストールする必要がある。
まずSSH接続する。自端末が同セグにいる状態だと思うので、そこから普通にゲートウェイのIPアドレスに対してSSHはる。
ユーザー名は rootでよいのだが、パスワードは要注意。マニュアルに書いてあることを信用しちゃいけない。
まず、実機の裏側を確認し、シリアルNoを確認する。その下6桁を控える。そして、パスワードとして pdmk-{シリアルNo下6桁}を与える。
これでログインできるはず。
あとはもう楽勝。このコマンド一発でインストール完了する。
$ curl --compressed -s https://upgrade.wanesy.com/BasicStation_Cockpit | sh
一応、自分で試したときのログを置いておく。こんな感じで最終的に成功すればOK.
root@klk-fevo-FFFFFF:~ # curl --compressed -s https://upgrade.wanesy.com/BasicStation_Cockpit | sh
###### ###### ### ######
#....# #%%%%# #%#%# #%%%%#
#....# #%%%%# ### #%%%%#
#....# #%%%%# #%%%%#
#....# ####### ######## ### ##### #%%%########## ####### #%%%# #######
#....# #.....# #........# #..###.....# #%%%##%%%%#%%%#%%%%%%%# #%%%# #%%%%%#
#....# #.....# #...####...##...........##%%%# #%%%#%%%%%%%%%%%%# #%%%# #%%%%%#
#....# #.....# #...# #...##....###....#%%%# #%%%##%%%%%%%%%%%%##%%%# #%%%%%#
#.....#.....# #....####....##...# #...#%%%# #%%%# #%%%%###%%%%##%%%%#%%%%%#
#..........# #...........# #...# #####%%%# #%%%# #%%%# #%%%##%%%%%%%%%#
#..........# #...######## #...# #%%%# #%%%# #%%%# #%%%##%%%%%%%%%#
#.....#.....# #....# #...# #%%%# #%%%# #%%%# #%%%##%%%%#%%%%%#
#....# #.....# #.....# #...# #%%%%%#%%%%%##%%%# #%%%#%%%%# #%%%%%#
#....# #.....# ##.....##### #...# #%%%%%#%%%%%##%%%# #%%%#%%%%# #%%%%%#
#....# #.....# #........# #...# #%%%%%#%%%%%##%%%# #%%%#%%%%# #%%%%%#
###### ####### ######### ##### ################## ########## #######
c o m m u n i c a t i o n i s e v e r y t h i n g
+----------------------------------------------------------------------------------+
| |
| Welcome to Wanesy Operational Assistant |
| Magic Link auto-configuration |
| |
+----------------------------------------------------------------------------------+
v4.12.0
Wed Nov 5 03:28:29 UTC 2025 ml[]: Executing Magic Link: BasicStation_Cockpit
Wed Nov 5 03:28:29 UTC 2025 ml[1273]: curl is already on the system
Wed Nov 5 03:28:29 UTC 2025 ml[1273]: Detecting current gateway state...
Wed Nov 5 03:28:29 UTC 2025 ml[1273]: You have a Wirnet iFemtoCell Evolution
Wed Nov 5 03:28:29 UTC 2025 ml[1273]: OS version: 5.11.0_20240220160321 (Branch 5)
Wed Nov 5 03:28:29 UTC 2025 ml[1273]: Autodetect gateway region...
Wed Nov 5 03:28:29 UTC 2025 ml[1273]: EUI: FFFFFFFFFFFFFFFF
Wed Nov 5 03:28:30 UTC 2025 ml[1273]: Gateway DTO: {"installedPackages":{"keros":"5.11.0-0-g38de666d","keros":"5.11.0-0-g38de666d"},"scriptVersion":"1.0","boardType":"IFEVO","boardRegion":"FFFFFFFFFFFFFFFF","srkFuses":[0,0,0,0,0,0,0,0],"securityPackage":false,"wmcHostName":"default","init":"/sbin/init.sysvinit","channels":8,"sbLock":1}
Wed Nov 5 03:28:30 UTC 2025 ml[1273]: Requesting magic script...
Wed Nov 5 03:28:31 UTC 2025 ml[1273]: Executing magic script...
Wed Nov 5 03:28:31 UTC 2025 ml[1273]: Executing Magic Link: BasicStation_Cockpit
Wed Nov 5 03:28:31 UTC 2025 ml[1273]: curl is already on the system
Wed Nov 5 03:28:31 UTC 2025 ml[1273]: Gateway EUI: FFFFFFFFFFFFFFFF, current directory: /home/root
Wed Nov 5 03:28:31 UTC 2025 ml[1273]: Installed packages:
Wed Nov 5 03:28:32 UTC 2025 ml[1273]: > keros - 5.11.0-0-g38de666d
Wed Nov 5 03:28:32 UTC 2025 ml[1273]: Removing previously downloaded scripts in /var/lib/magic-link/magic_link_oneshot:
Wed Nov 5 03:28:32 UTC 2025 ml[1273]: Removing previously downloaded packages in /user/.updates:
Wed Nov 5 03:28:32 UTC 2025 ml[1273]: Downloading packages...
Basic Station Installation for Keros 5
warning: commands will be executed using /bin/sh
job 1 at Wed Nov 5 03:28:00 2025
Wed Nov 5 03:28:32 UTC 2025 ml[1273]: Remotely marking operation 'Custom Script' as successful
Wed Nov 5 03:28:32 UTC 2025 ml[1273]: Downloading Custom Script from https://upgrade.wanesy.com/BasicStation_Cockpit/FFFFFFFFFFFFFFFF/40405/magic-mark-success
Wed Nov 5 03:28:33 UTC 2025 ml[1273]: No local action to perform on this operation, removing temp file: removed 'magic-mark-success'
Wed Nov 5 03:28:33 UTC 2025 ml[1273]: Warning: unable to check downloaded file 'magic-mark-success'!
{
{ } Congratulations !
}_{ __{
.-{ } }-. Everything went as expected. Your device
( } { ) should be ready in a few
|`-.._____..-'| minutes.
| ;--.
| (__ \
| | ) )
| |/ /
| / /
| ( / Time for a coffee!
\ y'
`-.._____..-'
Wed Nov 5 03:28:39 UTC 2025 ml[1273]: Installing packages...
Wed Nov 5 03:28:39 UTC 2025 ml[1273]: Save magiclink.ini
Wed Nov 5 03:28:39 UTC 2025 ml[1273]: Done.
Wed Nov 5 03:28:39 UTC 2025 ml[1273]: Magic Link finished (EXIT): removed '/run/ml.lock'
インストールできたらば以下のように klk_bs_configコマンドが通るはず。このコマンドを使ってLoRaWANゲートウェイとしての機能を有効化していく。
root@klk-fevo-FFFFFF:~ # which klk_bs_config
/user/basic_station/bin/klk_bs_config
root@klk-fevo-FFFFFF:~ # klk_bs_config -h
klk_bs_config <ACTION> [options]
ACTION:
-h, --help show help
-e, --enable enable basic station forwarder (and lorad if needed)
-d, --disable disable basic station forwarder (lorad stays active)
options:
-l, --lns-uri <URI> LNS URI to use (default: "wss://gateway.wdp4.wanesy.com")
-c, --cups-uri <URI> CUPS URI to use
-w, --use-wmc-cred Use WMC credentials to connect to TC server
-i, --ignore-reconf Ignore lorad reconfiguration from LNS
-r, --loradconf <CONF> lorad configuration file name/path
<CONF> Can be:
- a complete file path
- an example file name (ex:EU868-FR.json)
By default: EU868-FR is used for "868" gateways,
US915-US is used for "915" gateways,
AS923-1 is used for "923" gateways
-p, --ping-interval <VAL> Websockets ping interval ('None' to disable)
-f, --filter <CIDR> DevAddr filtering range (CIDR)
<CIDR> Can be:
- a positive filter, like "24abcdef/7" :
forward only uplinks from DevAddr between 24000000 and 25ffffff
- a negative filter, like "!abcd1234/12" :
reject only uplinks from DevAddr between abc00000 and abcfffff
several filters can be configured simultaneously
Important : these filters will be applied only when no NetID filters
are provided by the LNS router_config message
-j, --join-eui <CIDR> JoinEUI filtering range (CIDR)
<CIDR> Can be:
- a positive filter, like "24abcdef/7" :
forward only jreq from JoinEUI between 24000000 and 25ffffff
- a negative filter, like "!abcd1234/12" :
reject only jreq from JoinEUI between abc00000 and abcfffff
several filters can be configured simultaneously
Important : these filters will be applied only when no JoinEUI filters
are provided by the LNS router_config message
証明書などの設定
事前にAWS IoT CoreなどでLoRaWANゲートウェイを登録して証明書と紐づく秘密鍵を発行しておくこと。そのへんの話もそのうち書くかもしれないが、まずはもうそのへんはわかってるものとして進める。
既に持っている証明書と秘密鍵を以下のパスに配置する。
- /user/basic_station/etc/cups.crt
- /user/basic_station/etc/cups.key
あとはもう以下のコマンドで一発で終わる。 --cups-uriとして、LoRaWANゲートウェイを作成したときに表示されるURIを指定すること。
$ klk_bs_config --enable --cups-uri "https://HOGEHOGE.cups.lorawan.ap-northeast-1.amazonaws.com:443"
あとはもう2-3分待っていれば接続状態として見えてくるはず。
一応、ちょっとしたログは /var/log/lora.logに吐かれるのでなんかあったら一応見てみるとよいかも?
ここまでくると、あとはLNS側に登録したノードをJOINさせれば、もうこのGWを経由してるはず。
コンフィグ設定
ゲートウェイとしての設定は以下のファイルをイジればOK.
- /user/basic_station/etc/station.conf
だいたいコンフィグ内部のコメントを読めばわかるので詳細は割愛する。普通に使うだけなら対してイジることはないと思う。詳しくなってきたらイジりたくなってくると思うが、逆に言えば詳しい人はたぶんコメント読むだけで何をどうイジればいいかわかるはず。
イジる可能性のあるパラメーターは WikiのAdvanced configuration にも書かれているので、それを参考にするのも良いとおもう。



