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
分享到:
相关推荐
- **FreeRunner**:一个具体的案例,用于说明如何将Android操作系统移植到特定的硬件平台——FreeRunner手机上。通过对FreeRunner的移植过程进行分析,可以帮助理解移植的具体步骤和技术细节。 #### 五、Android...
17.2.1 Neo FreeRunner 介绍 335 17.2.2 烧录androidfs.jffs2 336 17.3 Android移植技术概论 337 17.3.1 Android底层技术的重要性 337 17.3.2 Android移植项目介绍 338 17.3.3 Android的技术优点......
- 成功启动后,可以看到一个类似手机的操作系统界面。通过按空格键或在终端中输入`boot`命令,可以启动操作系统内核。 3. **扩展资源** - 可以从[OpenMoko官方网站]...
3. **Android Linux内核**:介绍Android操作系统中使用的Linux内核版本,讨论了针对ARMv4平台(如Neo FreeRunner)所做的移植工作,以及对电源管理、RAM控制台、Android Gadget支持等方面的改进。 4. **Android ...
Kotti 是一个基于 Pyramid 框架的 Python 内容管理系统(CMS),适合用来搭建中小型网站、文档库、企业展示平台、知识库等需要灵活内容结构和权限模型的项目。它本身更像一个可以二次开发的 CMS 框架,比 WordPress、Drupal 这类“一装就用”的系统更倾向于开发者定制和扩展。 这是支持pyramid2.x版本的kotti! tar -xzvf kotti1.0.tar.gz 解压缩 进入目录执行 pip install -e . 来安装, 然后执行pserve app.ini 启动。 用浏览器浏览127.0.0.1:5000 即可浏览。 用户名admin ,口令qwerty
cmd-bat-批处理-脚本-hello world.zip
知识付费系统自动采集V3.0 跳转不卡顿+搭建教程,不和外面的一样跳转卡顿,这个跳转不卡顿,支持三级分销。
在Matlab环境下,对图像进行特征提取时,主要涵盖形状、纹理以及颜色这三大关键特征。其中,对于纹理特征的提取,采用灰度梯度共生矩阵这一方法来实现。通过灰度梯度共生矩阵,可以有效地捕捉图像中像素灰度值之间在不同方向和距离上的相互关系,进而量化地反映出图像的纹理特性,为后续的图像分析、分类等任务提供重要的纹理信息依据。
该数据集为2010-2023年中国A股上市公司管理层情感语调的年度面板数据,覆盖45,320条样本,数据源自年报及半年报的"管理层讨论与分析"部分。通过构建中文金融情感词典(融合《知网情感分析用词典》与L&M金融词汇表),采用文本分析方法计算情感语调指标,包括:正面/负面词汇数量、文本相似度、情感语调1((积极词-消极词)/总词数)和情感语调2((积极词-消极词)/(积极词+消极词))。同时包含盈利预测偏差、审计意见类型等衍生指标,可用于研究信息披露质量、市场反应及代理问题。该数据复刻了《管理世界》《财经研究》等期刊的变量构建方法,被应用于分析语调操纵对债券市场的影响,学术常用度与稀缺度较高。
cmd-bat-批处理-脚本-FTIME.zip
1747829038637.png
2025年自动化X光检查机项目大数据研究报告.docx
在计算机组成原理课程设计中,我全程跟随老师的指导,独立完成了以下两项任务:一是利用Logisim软件进行原码一位乘法器的仿真设计,通过逐步搭建电路、配置逻辑单元,实现了原码乘法运算的完整流程,深入理解了原码乘法的原理和实现机制;二是完成了补码一位乘法器的Logisim仿真,同样按照老师讲解的步骤,精心设计电路,确保补码乘法运算的正确性,进一步掌握了补码乘法的运算规则和电路实现方法。通过这两个项目,我不仅巩固了理论知识,还提升了动手实践能力和逻辑思维能力。
cmd-bat-批处理-脚本-msvc2017.zip
cmd-bat-批处理-脚本-virtualcam-install.zip
二十四节气之立秋介绍.pptx
cmd-bat-批处理-脚本-shift.zip
二十四节气之小雪介绍.pptx
java、SpringBoot面试专题,6页面试题
cmd-bat-批处理-脚本-GenerateUnionWinMD.zip