Orange Pi 2G-IOT:雷区地图



不久前,有人提议我可以使用单板PC Orange Pi 2G-IOT(内置2G,价格看起来很吸引人)。 在阅读了有关《 橙色天堂》的文章之后,我认为我会毫无困难地重复这条路,尤其是因为使用Linux时,我是“ you”(或者,我想了大概三周前),并且已经有过Raspberry Pi 2 B +的使用经验。 实际上,这条路径要更长。 有一种感觉,我们的中国朋友有意制造困难(有时会产生特殊的犬儒主义)。 如果您想保存和购买此板,请先阅读此帖子,然后再三思。

如果可能的话,我会尽量抑制情绪或至少将其转化为幽默。
因此,在这里,我得到了一个板卡和一个十年级的SD卡。 走吧

下面写的所有内容均涉及Orange Pi 2G-IOT模型,但在Telegram聊天中(不仅是“ Orange Pi”),他们还说2G,3G和4G模型的行为相同(同样不好)。 书面规定不适用于例如Orange Pi PC和Orange Pi One,据评论,它们的性能稳定。

Mina No.1(培训):下载操作系统映像


似乎会更容易? 我们转到制造商的网站并下载。 但是,所有链接都指向mega.nz,该文件直接在浏览器中收集。 我的廉价笔记本电脑具有4 GB的RAM并没有执行此任务,因此卡舌掉了下来。 可以使用一种专有程序从Mega进行下载,但它并没有激发我的信心(更重要的是,由于某些人在Internet上写道该程序被防病毒软件识别为恶意软件)。 解决方案选项:从非官方站点下载(例如, 在此处 ),部署虚拟机,并在其中放入要从Mega进行下载的客户端,请拥有更现代PC的人下载映像。

有关Orange操作系统的更多信息
对于许多Orange型号,用户都推荐Armbian,但他对2G-IOT的印象并不深刻:它看起来像是简约的Raspbian。 顺便说一下,Armbian网站上没有2G-IOT的图像,只有Orange Pi网站上没有。 我也尝试过Ubuntu Server,但它完全没有任何生命迹象。 Android内置的NAND似乎可以使用,但我根本没有研究它,很可能没有触摸屏就没什么用了。 顺便说一句,我提醒您,引导设备由跳线在板子一角的位置确定,默认情况下是从内置NAND存储器引导的。

第2号Mina:通过调制解调器上网


在互联网上逐字配置wvdial和pppd之后,我突然发现ping请求可以顺利通过,但是常规TCP数据包却完全没有通过:

orangepi@OrangePi:~$ curl --interface ppp0 195.201.201.32 curl: (7) Failed to connect to 195.201.201.32 port 80: Connection timed out orangepi@OrangePi:~$ curl --interface ppp0 195.201.201.32 curl: (7) Failed to connect to 195.201.201.32 port 80: Connection timed out orangepi@OrangePi:~$ curl --interface ppp0 195.201.201.32 curl: (7) Failed to connect to 195.201.201.32 port 80: Connection timed out orangepi@OrangePi:~$ curl --interface wlan0 195.201.201.32 46.0.208.54 orangepi@OrangePi:~$ ping 195.201.201.32 -I ppp0 PING 195.201.201.32 (195.201.201.32) from 10.33.64.21 ppp0: 56(84) bytes of data. 64 bytes from 195.201.201.32: icmp_seq=1 ttl=52 time=664 ms 64 bytes from 195.201.201.32: icmp_seq=2 ttl=52 time=240 ms 64 bytes from 195.201.201.32: icmp_seq=3 ttl=52 time=234 ms 64 bytes from 195.201.201.32: icmp_seq=4 ttl=52 time=246 ms 64 bytes from 195.201.201.32: icmp_seq=5 ttl=52 time=241 ms 64 bytes from 195.201.201.32: icmp_seq=6 ttl=52 time=237 ms ^C --- 195.201.201.32 ping statistics --- 7 packets transmitted, 6 received, 14% packet loss, time 6032ms rtt min/avg/max/mdev = 234.634/310.971/664.998/158.370 ms orangepi@OrangePi:~$ 

该解决方案提示了edtunhttps : //www.linux.org.ru/forum/admin/12135523 ,尽管我承认它可能更简单。

立即提醒IMEI调制解调器装有零。 幸运的是,红白电信运营商对此并不关注。 (顺便说一句,内置的WiFi同样没有MAC地址:它会随着电源的每次抽动而随机生成。)

3号Mina:USB端口


我们将WiFi口哨插入USB连接器,然后……什么都没有发生。 lsusb显示一个空的USB端口。 稍加挖掘便发现该主板实际上只有一个 USB。 默认情况下,它已连接到microUSB端口。 要将其切换到常规USB HOST,需要切换板上的跳线(位于跳线旁边)以选择引导。 他们的描述在w3bsit3-dns.com上:
解决方案:将跳线切换到位置:向下1234,向上5678。

直到那时,我在Orange Pi手册中才发现这一细微差别。

米娜4号:驱动程序


现在,系统中已检测到设备,lsusb显示了制造商和产品代码,但系统中未检测到无线网络接口。 因为开发人员未提供橙色的WiFi适配器驱动程序。 一点都没有。 没有内置驱动程序,仅适用于内置WiFi。 如果没有硬件驱动程序,我们该怎么办? 没错,让我们从源代码中收集它们

5号矿山:准备建造


作为回应bad__day建议直接在Orange Pi上组装。 也许这是可能的,但我失败了。

对于Orange Pi,开发人员制作了一个特殊的Orange Pi Build System,从理论上讲,借助于它来构建内核或模块,只需按照屏幕上的说明进行操作就足够了。 从第61页开始的手册中提供了详细说明。 似乎只是跟随,一切都会好起来的,但是没有。

首先,为了不手动编辑计算机上的所有依赖项(我定期更新软件,这很好,但是这次不行),我在Ubuntu 16.04上部署了虚拟机,并在那里执行了所有操作。 其次,脚本中的某个地方出现了错误,并且构建系统没有为跨平台编译提供工具链。 这可以通过这样的拐杖解决

  1. 手动apt-get'om将工具链放在ARM下进行交叉编译。
  2. 建立符号链接:
     mkdir $HOME/OrangePiRDA/toolchain/bin ln -s $(which arm-linux-gnueabi-ld) $HOME/OrangePiRDA/toolchain/bin/arm-linux-gnueabi-ld ln -s $(which arm-linux-gnueabi-gcc-4.9) $HOME/OrangePiRDA/toolchain/bin/arm-linux-gnueabi-gcc ln -s $(which arm-linux-gnueabi-g++-4.9) $HOME/OrangePiRDA/toolchain/bin/arm-linux-gnueabi-g++ ln -s $(which arm-linux-gnueabi-ar) $HOME/OrangePiRDA/toolchain/bin/arm-linux-gnueabi-ar ln -s $(which arm-linux-gnueabi-nm) $HOME/OrangePiRDA/toolchain/bin/arm-linux-gnueabi-nm ln -s $(which arm-linux-gnueabi-objcopy) $HOME/OrangePiRDA/toolchain/bin/arm-linux-gnueabi-objcopy ln -s $(which arm-linux-gnueabi-size) $HOME/OrangePiRDA/toolchain/bin/arm-linux-gnueabi-size 
    请注意:编译器的版本为4.9,以上版本均不收集任何内容。
  3. 打开OrangePiRDA / scripts / Prepare_toolchain.sh,以防万一,在提及该工具链的行上进行注释。

实际上,所有这些脚本仅调用apt-get install -y ...并进行。 该脚本不向用户提供以任何方式更改配置的信息(或者我找不到吗?)。

但是毕竟,没有什么可以阻止我们自称

 make menuconfig 

并标记必要的驱动程序。 我们这样做并再次收集(现在仅模块可用)并...

6号矿井(带固定式IR运动传感器和备用雷管):驱动器组件


...然后脚本友好地开始询问有关如何配置内核的问题。 他调用了老式的内核配置器,但是为什么呢? 怎么了

事实证明,编写Makefile是为了检查TIME(!!!)配置更改!



该评论的字面意思是“有人在挖洞”。 (在屏幕截图中,已经修改过的Makefile,我注册了menuconfig。)我尝试调用make oldconfig,但没有发现这改变了某处。 好的,现在在汇编过程中调用menuconfig之后,这并不可怕。 我再次调用该程序集,该程序集注意到“有人正在深入配置”,调用menuconfig,我退出并等待完成。 现在,当我没有找到我选择的驱动程序时,我会感到惊讶。

阅读前免责声明
在这一点上,我离开了对正在发生的事情的理解,并且我最终也与罗斯128 b行星失去了对现实,常识和文明的联系。 我超越了我所有的朋友和TARDIS的知识范围。 我开始创建完整的废话,唯一的目标是不惜一切代价收集此[CENSORED]驱动程序。 如果在阅读上面的文本时,您抓过头两次以上,则不要阅读下面的文本。 对您我来说,这将更加平静。 如果您可以对正在发生的事情给出清晰的解释,并解释我的错误之处和解决方法,请告诉我。 拜托



好吧,我们努力了解。 事实证明,make创建了modules.order文件,该文件描述了将要编译的所有模块。 甚至在所有配置更改并保存之后,该文件仍填充相同的设置。 我没有比手动添加线更好的方法了(我的哨子组装在RTL8192CU芯片组上):

 kernel/driver/net/wireless/rtlwifi.ko kernel/driver/net/wireless/rtlwifi/rtl8192cu.ko 

Makefile中对该文件的所有引用均被modules.order.fake替换。 我开始组装。 这次,程序集去了,但由于rtlwifi源代码文件夹中没有类似文件,所以程序中断了。 我将这个文件夹和子文件夹中的modules.order.fake文件重命名为modules.order,这是我构建驱动程序的最后一次冒险。 之后,系统又向我显示了menuconfig两次,好像在问我“您是否真的想要这个吗?”,但是仍然收集了另外三个珍贵的.ko文件,这些文件按预期完成。

第7号Mina:外部WiFi和调制解调器的共同工作


在玩过airodump并确保设备至少可以在监视模式下捕获数据包之后,我决定再次检查调制解调器。 在做

 sudo wvdial 

并且外部WiFi适配器上的LED熄灭,SSH熄灭。 然后,我在日志中读到适配器已断开连接。 首先想到的是营养问题。 在那一刻之前,我用1.5安培的充电器充电,制造商建议最多使用3安培(充电多少?她什至不吃1安培 )。 手边有一个2安培的充电器,多年来一直定期为Raspberry Pi供电。

目前,我还没有找到解决此问题的任何稳定方法。 以下是一些解决方案的尝试:

  • 您有80%的概率可以使用以下方法禁用外部WiFi:

     chmod 777 /sys/bus/usb/drivers/usb/unbind echo 1-1 > /sys/bus/usb/drivers/usb/unbind 

    然后运行wvdial,它将尝试1-3次尝试建立连接,然后您就可以上网了。 在20%的各种故障中。
  • 一次偶然地,事实证明wvdial被杀死了,但是pppd仍然可以工作(怎么可能?),之后外部WiFi上升了(请参见上文,我们写的是bind而不是unbind),并且通过调制解调器建立了连接。 无法重现这种情况。
  • 事实证明,无需重建内核,您就可以使用以下实用程序通过以下命令关闭USB电源:

     ./hub-ctrl -h 0 -P 1 -p 0 

    然后打开电源
     ./hub-ctrl -h 0 -P 1 -p 1 
    在2G-IOT上,行为是无法预测的:断电可能持续一秒钟,也可能在重启之前。 在月球的某些阶段,尝试重新通电会导致电路板冻结。
  • 将跳线切换到OTG(上调1234,下调5678),为GPIO 2和GPIO 6的腿供电(振铃,它们直接连接到microUSB电源)

    引脚排列


    通过智能手机的USB-OTG适配器连接WiFi适配器。 系统根本看不到USB设备。 也许您需要更持久地使用跳投。

未经测试,但可能有效(计划尝试所有这些选项):

  • 另一个WiFi适配器。
  • 非常稳定的电源,最大电流为3 Amps。
  • USB脚的额外电源。
  • 汽油和火柴。

通常,任务看起来像是在四边形的橙色上拉三角毯。

现在就这些了。

致谢
我要感谢w3bsit3-dns.com上的bad__dayedtun ,A. Repin,论坛用户,Telegram聊天的老朋友和Kotu,他们一直耐心地听我的话,几乎没有逃脱。


UPD:今天,他们为我带来了具有5V 3A输出的电源。 有了它,就可以同时启动调制解调器和USB WiFi适配器。 调制解调器撒满错误,停止响应,但平均而言,它从第三次尝试开始连接。 之后,您可以使用USB WiFi。

总结一下。


单板Orange Pi 2G-IOT非常粗糙,制造商几乎不支持。 即使在简单的事情上,似乎没有什么预兆会带来麻烦,也可能会出问题。 如果您需要使用通过移动网络可以访问Internet的设备,并且不确定是否可以使用Orange Pi,那么最好多付一些钱,并购买一些更可靠的东西并进行调试。 节省时间和神经。

Source: https://habr.com/ru/post/zh-CN440960/


All Articles