通过Fona和需要APN身份验证的Sim将Beaglebone黑色连接到Internet

时间:2015-11-07 22:22:55

标签: raspberry-pi beagleboneblack gprs iot apn

我有一个BBB,一个来自Adafruit的Fona和一个LycaMobile 3G Sim卡,我想用这个3G SIM卡将BBB连接到互联网。我跟着:this tutorial from adafruit这样做了。

但要连接到我的APN,我需要设置用户名和密码。所以我这样做了:

在我的 / etc / ppp / peers / fona 中:
而不是 noauth
我说:
auth user lmfr name lycamobile

并在我的 / etc / ppp / chap-secrets 以及我的 etc / ppp / pap-secrets 中我放了:

"lmfr"    *    "plus"

但是当我这样做时出现以下错误:

sudo pon fona

/usr/sbin/pppd: The remote system is required to authenticate itself
/usr/sbin/pppd: but I couldn't find any suitable secret (password) for it to use to do so
/usr/sbin/pppd: (None of the available passwords would let it use an IP address)

有谁知道如何通过APN身份验证来解决这种或其他方式连接到Fona?

2 个答案:

答案 0 :(得分:1)

即使在严格遵循Adafruit FONA setup instructions的情况下,在Raspberry Pi 2和3上使用FONA进行身份验证时,以下步骤帮助我让它在两个Pi上运行 - 基于新安装的raspbian / debian stretch OS。对你的BBB采取以下措施:

  • 更新操作系统:

    sudo apt-get update
    sudo apt-get dist-upgrade
    
  • 安装必要的软件包:

    sudo apt-get install ppp screen 
    
  • 按照Adafruit FONA设置说明
  • 中的说明将FONA板连接到Pi / BBB
  • 确保您禁用内核使用的硬件串行连接!

    Pi2: follow Adafruit description
    Pi3: "sudo raspi-config" > "Interfacing Options" > "Serial"
    > "...login shell... over serial?" NO
    > "...serial port hardware enabled?" YES
    
  • 退出/完成raspi配置和
  • 检查

    sudo nano /boot/config.txt
    
  • 如果包含 enable_uart = 1 行。如果没有,请将其添加为新行并保存

    [Ctrl]+[x], [y], [Enter] > reboot!
    
  • 为您的Pi / BBB找到正确的串口。此命令可能有所帮助 - 它显示所有可用端口:

    ls /dev
    
  • 示例:

    Pi2: "/dev/ttyAMA0"
    Pi3: "/dev/serial0"
    BBB: "/dev/tty04" (as stated at Adafruit)
    
  • 确保FONA正在相应的串口上进行应答 - 在本例中,在Pi3上:

    screen /dev/serial0 115200
    
  • 应出现黑屏(终端窗口)。写

    AT [Enter]
    
  • 您应该确定作为回复。如果你没有得到" OK",只需断开电池,然后再重新连接,再试一次!您可以随时通过

    退出终端窗口
    [Ctrl]+[A]
    :quit [Enter]
    

只要FONA板通过串行连接进行应答,蜂窝连接(尤其是身份验证)就是目标。 将noauth改为authh" fona"没有帮助我,也没有编辑" chap-secrets"和/或" pap-secrets"。将3个APN值包含在" fona"文件:

    sudo -i
    cd /etc/ppp/peers
    nano fona
  • 在" connect"中输入正确的APN名称。就像Adafruit提到的那样:

    connect "/usr/sbin/chat ... -T T-Mobile"
    
  • 并替换" T-Mobile"用您的APN名称。确保在下一个块中只取消注释一行,在成功测试串行连接时(在此示例中再次使用Pi3端口)具有与上述完全相同的串行端口

    /dev/serial0
    
  • 现在在文件末尾添加以下部分以进行fona-file身份验证:

    #Authentication
    user abcd@efgh.dom << here goes the providers APN user name
    password 1a2b3d4e << here goes the providers APN password 
    
  • 保存并退出文件并退出超级用户模式

    [Ctrl]+[x], [Y], [Enter]
    exit [Enter]
    
  • 至少尝试一下,如Adafruit所述

    sudo pon fona
    
  • 如果红色LED每秒开始闪烁两次,你就完成了!如果没有,请关注Adafruit故障排除部分,该部分应解决缺失的部分。

基本部分是正确的串行连接,并且 - 只要它有效 - 认证在&#34; fona&#34;文件

一旦串行连接建立,特别是蜂窝连接和认证应该可以用于BBB。

答案 1 :(得分:0)

这是我做的:

  1. 我确保在将/dev/ttyO4添加到 uEnv.txt
  2. 之后我可以看到capemgr.enable_partno=BB-UART4
  3. 我安装了 ppp,screen,elinks,jdk1.8-linux-arm和librxtx-java
  4. 我使用了fona library from angryelectron。所以我在我的电脑上下载了这个库并通过&#34; ant jar&#34;它生成了一些jar文件。
  5. 我创建了一个Main.java文件,我把它放在:

    public class Main { //Make sure You can see /dev/ttyO4 on your Beagle Bone Black or /dev/ttyAMA0 on raspberryPi private static final String PORT = "/dev/ttyO4"; private static final Integer BAUD = 115200;

    //Credentials for Lycamobile Wireless required for testing GPRS.
    private static final String APN = "data.lycamobile.fr";
    private static final String USER = "lmfr";
    private static final String PWD = "plus";
    private static final String SMTP = "smtp.lycamobile.fr";
    

    public static void main(String[] args) { try { fona.open(PORT, BAUD); testGprsHttpGet(); fona.close(); } catch(Exception e) { System.out.println("exception " + e); } } public static void testGprsHttpGet() throws FonaException { System.out.println("gprsHttpGet"); fona.gprsEnable(APN, USER, PWD);

        String response = fona.gprsHttpGet("http://httpbin.org/user-agent");
            if (!response.contains("SIMCOM_MODULE")) {
               System.out.println("Fails");
            }
            else{
               System.out.println(response);
            }
          }
        }
    

  6. Also created a simple exec.sh file :

    JAVA_OPT="-Djava.library.path=/usr/lib/jni -Dgnu.io.rxtx.SerialPorts=/dev/ttyO4" javac -cp .:fona-0.92.jar:fona.jar:RXTXcomm-2.2pre2.jar:fona-0.92-sources.jar Main.java java $JAVA_OPT -cp .:fona-0.92.jar:fona.jar:RXTXcomm-2.2pre2.jar:fona-0.92-sources.jar Main

    我将所有这些文件放在一个文件夹中:   fona-0.92.jar fona.jar RXTXcomm-2.2pre2.jar fona-0.92-sources.jar < em> Main.java 并复制BBB上的文件夹

    1. 启动了我的脚本exec.sh就是这样。在输出中我可以看到:
      { &#34;用户代理&#34;:&#34; Mozilla / 5.0(Macintosh; Intel Mac OS X 10_11_1)AppleWebKit / 537.36(KHTML,如Gecko)Chrome / 45.0.2454.101 Safari / 537.36&#34; }
    2. NET指挥眨眼两次。

      希望这有助于其他人。