FreeRunner手机的基本操作

AI助手已提取文章相关产品:

FreeRunner手机的基本操作

本文记录一些FreeRunner手机的基本操作。本文把FreeRunner手机简称为fr。

1、ssh登录

1.1、主机用VMWare+Ubuntu

将VMWare窗口选为当前窗口,然后用USB线连接PC和FreeRunner手机。这时如果在VMWare窗口的状态栏看到USB图标,就说明已经检测到设备。

我用的虚拟机有时会出现插上USB线但VMWare没有反应的情况。这时可以检查一下VMWare/Ubuntu的本次启动是否正常。如果启动正常,可以先在USB上插一个容易识别的U盘或移动硬盘。识别后就umount掉,然后用同一个USB口连接fr,通常可以连接成功。

在连接好fr后,敲ifconfig可以看到usb0连接。配置这个连接的IP:

sudo ifconfig usb0 192.168.0.200

fr的IP地址默认是192.168.0.202。这时应该可以ping通fr。用ssh登录:

ssh root@192.168.0.202

fr默认没有密码。提示输入密码时直接回车。你就登录了FR。如果在ssh时出现这样的提示:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

只要:

rm ~/.ssh/known_hosts

再用ssh登录就可以了。

1.2、主机用Windows

安装驱动后,设备管理器的网络适配器类别中会增加一个“Neo1973 USB Ethernet/RNDIS”。在网络连接中会增加一个本地连接。将这个本地连接的ip设为192.168.0.200后,你就可以用自己习惯的ssh工具(例如putty)登录fr了。

2、文件传输

在主机和fr之间传输文件既可以用scp,也可以用tftp。

2.1、scp

在主机上用scp复制文件到fr:

$ scp scim_1.4.7-r0_armv4t.ipk root@192.168.0.202:
root@192.168.0.202's password:
scim_1.4.7-r0_armv4t.ipk                      100% 1007KB 251.7KB/s   00:04

在fr上用scp复制文件到主机:

# scp 1.png lvjie@192.168.0.200:
lvjie@192.168.0.200's password:
1.png                                         100%   68KB  67.9KB/s   00:00

下面的例子是在虚拟机中用scp将fr上的文件复制到虚拟机与windows的共享目录。

$ scp root@192.168.0.202:3.png /mnt/hgfs/share/
root@192.168.0.202's password:
3.png                                         100%  205KB 204.6KB/s   00:00

2.2、tftp

如果主机上安装了tftp服务器,在fr上可以用tftp工具put或get主机上的文件。

2.2.1、安装tftp服务器

可以这样安装tftp服务器:

sudo apt-get install tftpd-hpa tftp-hpa

编辑/etc/default/tftpd-hpa:

$ cat /etc/default/tftpd-hpa
#Defaults for tftpd-hpa
RUN_DAEMON="yes"
OPTIONS="-l -c -s /tftpboot"

"-l"表示独立启动,不依赖inetd。"-c"允许创建文件。"-s /tftpboot"在启动时将/tftpboot设置为根目录。创建/tftpboot,chmod到777。重启后就可以使用tftp服务了。

2.2.2、在fr上使用tftp

fr上的tftp通常是busybox中的简化版本,用法如下:

Usage: tftp [OPTION]... HOST [PORT]
Transfers a file from/to a tftp server using "octet" mode.

Options:
        -l FILE Local FILE.
        -r FILE Remote FILE.
        -g Get file.
        -p Put file.

使用示例如下:

# tftp -p -r 2.raw 192.168.0.200
# tftp -g -r scim-pinyin_0.5.91-r0_armv4t.ipk 192.168.0.200

"-p"是put 文件。"-g"是get 文件。

3、屏幕截图

最简单的方法是使用fbgrab。将这个安装包传输到fr后,用opkg或ipkg安装。例如:

opkg install fbgrab_1.0-r1_armv4t.ipk

安装了fbgrab后,截图就很简单了:

# fbgrab 1.png

不用fbgrab,也可以直接复制framebuffer中的数据,例如:

# cat /dev/fb0 > 2.raw

将原始数据文件传输到主机后,可以用fb2png转换到png,例如:

# fb2png 2.raw 2.png 0 480 640 16

fb2png用法如下:

fb2png 0.1 (2001-09-19)
fb2png [dev] [filename] [sec] (x) (y) (depth)
Usage: fb2png /dev/fb0 filename.png 5 800 600 24

参数[sec]是截图的延时时间,即截取sec秒后的图像。

4、通过usb线上网

在测试时可以让fr通过主机连接外网。在主机上执行:

sudo iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24
sudo sysctl -w net.ipv4.ip_forward=1

iptables命令在nat表中添加一条规则,"-s 192.168.0.0/24"指定源数据包地址,其中"24"表示掩码255.255.255.0。 sysctl命令设置内核参数net.ipv4.ip_forward,允许主机转发ip包。

用ssh登录fr后执行:

# echo nameserver 208.67.222.222 > /etc/resolv.conf
# echo nameserver 208.67.220.220 >> /etc/resolv.conf

这两个ip是OpenDNS的DNS服务器地址,OpenDNS是一个提供免费DNS服务的网站。通过上述设置,我们就可以在fr上访问外网了,例如:

5、更新fr软件

5.1、简介

更新fr软件的通俗说法就是“刷机”了,我习惯说软件升级。软件升级有两种方式,通过jtag接口或者通过通过USB线。

  • 通过jtag接口升级程序是通过CPU的jtag接口直接操作存储器,不需要手机程序配合。使用jtag方式需要调试板和相应的软件。
  • 通过USB线升级程序需要手机里有个升级程序与PC程序通信,升级程序接收数据并更新存储器里的程序。软件升级功能是由手机里的boot程序实现的。通常升级程序不能更新自身。

与NEO1973不同,FreeRunner有一块NOR flash。如果通过NAND flash里的boot程序升级,我们可以更新kernel和rootfs,但不能更新NAND flash的u-boot。如果我们通过NOR flash里的boot程序升级,就可以更新kernel、rootfs和NAND flash的u-boot。

5.2、启动模式

除了正常启动外,我们还可以把fr启动到NOR boot或NAND boot模式。将fr左上方的按键称作aux键。先按下aux键并保持,再按下电源键,保持两键同时按下,过几秒钟就应该进入NOR boot模式。先按下电源键并保持,再按下aux键,保持两键同时按下,过几秒钟就会进入NAND boot模式。

我只用过NAND boot模式,因为我的fr不能进入NOR boot模式。我估计原因是这个fr的NOR flash是空的,没写入boot程序。我用grep在flash中查找boot程序版本:

root@om-gta02:~# grep Bootloader /dev/mtdblock1
Neo1973 Bootloader U-Boot 1.3.2-rc2-dirty-moko12
root@om-gta02:~# grep Bootloader /dev/mtdblock0
root@om-gta02:~#

在NAND flash中可以找到boot程序版本。在NOR flash里却找不到boot程序。

5.3、用dfu-util升级程序

升级用的PC程序是一个叫dfu-util的程序,既有linux版本,也有Windows版本。 Windows版本还要装一个叫作OpenMokoDFU的驱动。我在VMWare中升级不成功,就只能用Windows版本。首先安装好驱动。将fr启动到NAND boot模式后,用USB线连接fr和主机,设备管理器中会增加一个"libUSB-Win32 Devices"的设备类别,其中有个叫"Device Firmware Upgrade"的设备。执行:

D:\tools\dev>dfu-util -l
dfu-util - (C) 2007 by OpenMoko Inc.
This program is Free Software and has ABSOLUTELY NO WARRANTY

Found Runtime: [0x1d50:0x5119] devnum=1, cfg=0, intf=2, alt=0, name="USB Device Firmware Upgrade"

这就表示找到设备了。注意在boot模式,如果一段时间没有任何操作(例如没有开始升级),是会自动关机的。更新内核的命令是:

dfu-util -a kernel -R -D uImage-2.6.24+r10+gitr9706327002caebe6633c93e605882ea37172ec57-r10-om-gta02.bin

"-a" 指定要更新的程序别名。别名可以是一个词汇或一个数字。常用别名见下表:

内核kernel或3
文件系统rootfs或6
引导程序u-boot或1
开机画面splash或4
开机参数u-boot_env或2

"-R" 表示操作完成后复位。"-D 文件名"指定要下载的文件。同理,更新文件系统的命令可以是:

dfu-util -a rootfs -R -D poky-image-sato-om-gta02-20081127082421.rootfs.jffs2

您可能感兴趣的与本文相关内容

基于数据驱动的 Koopman 算子的递归神经网络模型线性化,用于纳米定位系统的预测控制研究(Matlab代码实现)内容概要:本文围绕“基于数据驱动的 Koopman 算子的递归神经网络模型线性化,用于纳米定位系统的预测控制研究”展开,提出了一种结合数据驱动方法与Koopman算子理论的递归神经网络(RNN)模型线性化方法,旨在提升纳米定位系统的预测控制精度与动态响应能力。研究通过构建数据驱动的线性化模型,克服了传统非线性系统建模复杂、计算开销大的问题,并在Matlab平台上实现了完整的算法仿真与验证,展示了该方法在高精度定位控制中的有效性与实用性。; 适合人群:具备一定自动化、控制理论或机器学习背景的科研人员与工程技术人员,尤其是从事精密定位、智能控制、非线性系统建模与预测控制相关领域的研究生与研究人员。; 使用场景及目标:①应用于纳米级精密定位系统(如原子力显微镜、半导体制造设备)中的高性能预测控制;②为复杂非线性系统的数据驱动建模与线性化提供新思路;③结合深度学习与经典控制理论,推动智能控制算法的实际落地。; 阅读建议:建议读者结合Matlab代码实现部分,深入理解Koopman算子与RNN结合的建模范式,重点关注数据预处理、模型训练与控制系统集成等关键环节,并可通过替换实际系统数据进行迁移验证,以掌握该方法的核心思想与工程应用技巧。
基于粒子群算法优化Kmeans聚类的居民用电行为分析研究(Matlb代码实现)内容概要:本文围绕基于粒子群算法(PSO)优化Kmeans聚类的居民用电行为分析展开研究,提出了一种结合智能优化算法与传统聚类方法的技术路径。通过使用粒子群算法优化Kmeans聚类的初始聚类中心,有效克服了传统Kmeans算法易陷入局部最优、对初始值敏感的问题,提升了聚类的稳定性和准确性。研究利用Matlab实现了该算法,并应用于居民用电数据的行为模式识别与分类,有助于精细化电力需求管理、用户画像构建及个性化用电服务设计。文档还提及相关应用场景如负荷预测、电力系统优化等,并提供了配套代码资源。; 适合人群:具备一定Matlab编程基础,从事电力系统、智能优化算法、数据分析等相关领域的研究人员或工程技术人员,尤其适合研究生及科研人员。; 使用场景及目标:①用于居民用电行为的高效聚类分析,挖掘典型用电模式;②提升Kmeans聚类算法的性能,避免局部最优问题;③为电力公司开展需求响应、负荷预测和用户分群管理提供技术支持;④作为智能优化算法与机器学习结合应用的教学与科研案例。; 阅读建议:建议读者结合提供的Matlab代码进行实践操作,深入理解PSO优化Kmeans的核心机制,关注参数设置对聚类效果的影响,并尝试将其应用于其他相似的数据聚类问题中,以加深理解和拓展应用能力。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值