Template:FriendlyCoreAllwinnerH2/zh

From FriendlyELEC WiKi
Revision as of 10:38, 22 August 2019 by Tzs (Talk | contribs) (updated by API)

Jump to: navigation, search

1 读取CHIP ID

对于全志H2+/H3/H5/芯片,CPU里内置了16 Byte的CHIP ID,在Linux-4.14下可以使用下列命令读取:

$ apt-get install bsdmainutils
$ hexdump /sys/bus/nvmem/devices/sunxi-sid0/nvmem 
0000000 8082 0447 0064 04c3 3650 ce0a 1e28 2202
0000010 0002 0000 0000 0000 0000 0000 0000 0000
0000020 0000 0000 0000 0000 0000 0000 0000 0000
0000030 0000 0008 0508 0000 0000 0000 0000 0000
0000040 0000 0000 0000 0000 0000 0000 0000 0000

"8082 0447 0064 04c3 3650 ce0a 1e28 2202"即为16 Byte的CHIP ID。

CHIP ID相关驱动代码位于: ./drivers/nvmem/sunxi_sid.c

2 从SSD运行系统

NanoPi-Duo可以将系统运行在Mini Shield for NanoPi Duo的固态硬盘上,除了获得更大的存储空间外,还有如下优点:
1) 读写速度更快;
2) 使用寿命比TF卡更长;
3) 更可靠;

安装系统到固态硬盘上的方法比较简单,无需事先对SSD做准备工作,使用 npi-config 工具即可,输入以下命令启动npi-config:

sudo npi-config

然后进入 Boot Options 菜单, 选择 Boot device,然后可以看到有两个选项可供选择:
1) D1 Hard drive
2) D2 TF card
选择 D1 Hard drive,然后按提示进行操作即可。
以后要恢复回 TF 卡启动,可在上述菜单中选择 D2 TF card。

如果你在 npi-config 中没有找到 Boot device 菜单,可能是因为你的 npi-config 版本太旧,利用菜单上的 Update 功能更新一下即可。

3 安装和测试 Docker

3.1 安装 Docker

执行下列命令:

sudo apt-get update
sudo apt-get install docker.io

3.2 测试 Docker

执行下列命令运行一个简单的docker image:

git clone https://github.com/friendlyarm/debian-jessie-arm-docker
cd debian-jessie-arm-docker
./rebuild-image.sh
./run.sh

4 FriendlyCore下使用4G模块EC20

4.1 第0步:将SIM卡插入到EC20中

4.2 第1步:在开发板上编译quectel-CM命令行拨号程序

输入以下命令,编译并安装quectel-CM到 /usr/bin/ 目录:

git clone https://github.com/friendlyarm/quectel-cm.git
cd quectel-cm/
make
cp quectel-CM /usr/bin/

4.3 第2步:创建udhcpc script

quectel-CM程序会将运营商返回的IP、DNS等作为参数调用udhcpc script,这个脚本是不存在的,我们需要自已创建一个,请用你熟悉的编辑器创建一个新文件,文件名为:/usr/share/udhcpc/default.script,内容如下:

#!/bin/sh
 
# udhcpc script edited by Tim Riker <Tim@Rikers.org>
 
[ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1
 
RESOLV_CONF="/etc/resolv.conf"
[ -n "$broadcast" ] && BROADCAST="broadcast $broadcast"
[ -n "$subnet" ] && NETMASK="netmask $subnet"
 
case "$1" in
  deconfig)
    /sbin/ifconfig $interface 0.0.0.0
    ;;
 
  renew|bound)
    /sbin/ifconfig $interface $ip $BROADCAST $NETMASK
 
    if [ -n "$router" ] ; then
      echo "deleting routers"
      while route del default gw 0.0.0.0 dev $interface ; do
        :
      done
 
      for i in $router ; do
        route add default gw $i dev $interface
      done
    fi
 
    echo -n > $RESOLV_CONF
    [ -n "$domain" ] && echo search $domain >> $RESOLV_CONF
    for i in $dns ; do
      echo adding dns $i
      echo nameserver $i >> $RESOLV_CONF
    done
    ;;
esac
 
exit 0

保存后,再用以下命令赋于可执行权限:

chmod 755 /usr/share/udhcpc/default.script

4.4 第3步:开始4G拨号

输入以下命令启动拨号:

quectel-CM &

拨号成功,屏幕会输出IP地址等信息,如下所示:

root@NanoPC-T4:~# quectel-CM &
[1] 5364
root@NanoPC-T4:~# [05-15_08:23:13:719] WCDMA&LTE_QConnectManager_Linux&Android_V1.1.34
[05-15_08:23:13:720] quectel-CM profile[1] = (null)/(null)/(null)/0, pincode = (null)
[05-15_08:23:13:721] Find /sys/bus/usb/devices/3-1 idVendor=2c7c idProduct=0125
[05-15_08:23:13:722] Find /sys/bus/usb/devices/3-1:1.4/net/wwan0
[05-15_08:23:13:722] Find usbnet_adapter = wwan0
[05-15_08:23:13:723] Find /sys/bus/usb/devices/3-1:1.4/usbmisc/cdc-wdm0
[05-15_08:23:13:723] Find qmichannel = /dev/cdc-wdm0
[05-15_08:23:13:739] cdc_wdm_fd = 7
[05-15_08:23:13:819] Get clientWDS = 18
[05-15_08:23:13:851] Get clientDMS = 2
[05-15_08:23:13:884] Get clientNAS = 2
[05-15_08:23:13:915] Get clientUIM = 1
[05-15_08:23:13:947] Get clientWDA = 1
[05-15_08:23:13:979] requestBaseBandVersion EC20CEFHLGR06A01M1G_OCPU_BETA1210
[05-15_08:23:14:043] requestSetEthMode QMUXResult = 0x1, QMUXError = 0x46
[05-15_08:23:14:075] requestGetSIMStatus SIMStatus: SIM_READY
[05-15_08:23:14:107] requestGetProfile[1] cmnet///0
[05-15_08:23:14:139] requestRegistrationState2 MCC: 460, MNC: 0, PS: Attached, DataCap: LTE
[05-15_08:23:14:171] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED
[05-15_08:23:14:235] requestRegistrationState2 MCC: 460, MNC: 0, PS: Attached, DataCap: LTE
[05-15_08:23:14:938] requestSetupDataCall WdsConnectionIPv4Handle: 0xe16e4540
[05-15_08:23:15:002] requestQueryDataCall IPv4ConnectionStatus: CONNECTED
[05-15_08:23:15:036] ifconfig wwan0 up
[05-15_08:23:15:052] busybox udhcpc -f -n -q -t 5 -i wwan0
[05-15_08:23:15:062] udhcpc (v1.23.2) started
[05-15_08:23:15:077] Sending discover...
[05-15_08:23:15:093] Sending select for 10.22.195.252...
[05-15_08:23:15:105] Lease of 10.22.195.252 obtained, lease time 7200
[05-15_08:23:15:118] deleting routers
SIOCDELRT: No such process
[05-15_08:23:15:132] adding dns 221.179.38.7
[05-15_08:23:15:132] adding dns 120.196.165.7

4.5 测试4G连接

ping一个域名,看看DNS解析是否已经在工作了:

root@NanoPC-T4:~# ping www.baidu.com
PING www.a.shifen.com (183.232.231.174) 56(84) bytes of data.
64 bytes from 183.232.231.174 (183.232.231.174): icmp_seq=1 ttl=56 time=74.3 ms
64 bytes from 183.232.231.174 (183.232.231.174): icmp_seq=2 ttl=56 time=25.1 ms
64 bytes from 183.232.231.174 (183.232.231.174): icmp_seq=3 ttl=56 time=30.8 ms
64 bytes from 183.232.231.174 (183.232.231.174): icmp_seq=4 ttl=56 time=29.1 ms
64 bytes from 183.232.231.174 (183.232.231.174): icmp_seq=5 ttl=56 time=29.2 ms

4.6 测试4G的网速

wget -O - https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python

得到的测试结果类拟如下这样:

Retrieving speedtest.net configuration...
Testing from China Mobile Guangdong (117.136.40.167)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by ChinaTelecom-GZ (Guangzhou) [2.51 km]: 62.726 ms
Testing download speed................................................................................
Download: 32.93 Mbit/s
Testing upload speed................................................................................................
Upload: 5.58 Mbit/s