`
saybody
  • 浏览: 923807 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

FreeRunner手机的基本操作

阅读更多

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
分享到:
评论

相关推荐

    Android on Freerunner - 公开讲座的PPT

    本次讲座主要围绕开源手机Freerunner、Google Android平台以及Android在Freerunner上的移植要点展开。 #### 开放手机时代 ##### FreeRunner概述 - **定义与特点**:Freerunner是由Openmoko项目推出的第二代实体...

    android-on-freerunner-platform_hardware_ril

    1. Freerunner简介:Freerunner是一款基于Linux的开源智能手机,它采用了PowerVR MBX图形处理器和ARM926EJ-S CPU,支持多种通信协议,包括GSM、蓝牙、Wi-Fi等,为开发者提供了丰富的硬件资源和自由度。 2. Android...

    智能手机能耗分析_论文

    在软件方面,智能手机操作系统和应用程序的能耗管理也扮演着重要角色。为了实现节能,操作系统需要有效地调度硬件资源,而应用程序则应优化其代码以减少资源的使用。举例来说,应用开发者可以编写更高效的代码,或者...

    意法半导体(ST)的MEMS助力Openmoko手机实现运动感应功能.pdf

    首先,意法半导体的LIS302DL三轴加速度传感器被Openmoko公司用于其Neo Freerunner手机平台,实现了运动感应功能。这款传感器是MEMS(Micro-Electro-Mechanical Systems)技术的产物,是一种微型电子机械系统,能够...

    android-os-porting-r3

    - **FreeRunner**:一个具体的案例,用于说明如何将Android操作系统移植到特定的硬件平台——FreeRunner手机上。通过对FreeRunner的移植过程进行分析,可以帮助理解移植的具体步骤和技术细节。 #### 五、Android...

    porting android

    此外,还提到了在同一时期,有人在最新的Freerunner手机上也取得了类似的成功,这说明Porting Android是一个活跃的社区活动,不断有开发者致力于使Android支持更多设备。 在另一篇日志中,开发者提到了在ARMv4架构...

    NXP半导体与MIPS科技合作推出业界首款45nm HDMI 1.3接收器IP解决方案.pdf

    LIS302DL三轴加速度传感器被集成到Neo FreeRunner手机中,使得手机具备了运动感应功能,如屏幕自动旋转、计步器等。这种创新技术的使用不仅丰富了手机的交互方式,也为开发者提供了更多创新应用的可能性。 综上所述...

    Google 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的技术优点......

    OpenMoko我本墨客 台湾开源宣传课件

    这款手机能够运行多种操作系统,包括 **Openmoko Linux 2008 (Om 2008)**、**Qtopia**、**Debian** 以及 **Android**,为用户提供了广泛的灵活性和选择性。 #### 二、Neo FreeRunner 技术规格与特点 **Neo ...

    Android_移植方法介绍.pdf

    通过本文档的介绍,我们了解了 Android 移植的基本概念、所需工具以及具体步骤。对于希望将 Android 移植到特定硬件平台上的开发者来说,这是一份宝贵的指南。遵循这些指导原则,可以帮助开发者更高效地完成移植任务...

    uboot中文教程

    - 成功启动后,可以看到一个类似手机的操作系统界面。通过按空格键或在终端中输入`boot`命令,可以启动操作系统内核。 3. **扩展资源** - 可以从[OpenMoko官方网站]...

    mach-gta02.rar_Windows编程_Unix_Linux_

    GTA02和FreeRunner是该项目的第二代设备,它们运行基于Linux的操作系统,并且鼓励用户进行自定义和开发。 "Windows编程"标签表明文件内可能包含与在Windows环境下进行软件开发相关的资源。Windows编程涵盖了使用...

    Android 应用开发与底层技术

    3. **Android Linux内核**:介绍Android操作系统中使用的Linux内核版本,讨论了针对ARMv4平台(如Neo FreeRunner)所做的移植工作,以及对电源管理、RAM控制台、Android Gadget支持等方面的改进。 4. **Android ...

    neoPhysis-开源

    针对 Openmoko Freerunner 的新 Linux 发行版

    Gamerunner-开源

    Gamerunner 是一个 Openmoko Linux 发行版。 它将 Freerunner 开放式手机转换为基于 Linux 的掌上游戏机。 此外,它是轻量级的,并且包含适用于 Linux 移动设备的最佳和最合适的开源游戏。

    (源码)基于Qt框架的QtGps系统项目.zip

    该项目适用于移动设备和嵌入式系统,特别适用于使用Qtopia或Qt Extended的Freerunner等移动设备。 ## 二、项目的主要特性和功能 1. 显示GPS数据包括经纬度、高度、速度、航向等。 2. 卫星信息展示显示卫星信号强度...

    OpenMoko Panel:显示 OpenMoko 功率状态的面板插件-开源

    此插件将 OpenMoko FreeRunner 设备的一些电源状态添加到图标面板栏。 它基于 python-gtk,应该集成到许多基于 gtk 的窗口管理器中,即 xfce4。 这是 openmoko-panel-plugin(不再维护)的一个分支,它是在 Debian ...

Global site tag (gtag.js) - Google Analytics