ROS on ARM--Picuntu 安装配置

上篇提到一个叫做Picuntu的项目,目的是为RK3066芯片的设备移植传统Linux,目前基本的使用已经没有什么问题,UG802/MK808(不含MK808B)已经可以使用内置的无线网卡,而其它型号,比如MK802 IIIS或者UG007,由于使用的是MTK的芯片,没有办法找到驱动(话说国内厂商有几个遵守了GPL协议的)所以只能外接USB网卡。另外是VPU和Mali 400,slatedroid论坛里有人正在折腾。

MK80X开机后一般有两种模式,正常模式和恢复(recovery)模式。所以我们如果需要Android/Linux双启动,就只需要在recovery里刷入linux的kernel,Android可以正常运行互不影响。当然你也可以直接刷入原来的kernel空间覆盖掉Android,但是这种方式并不推荐。官方的recovery似乎功能不多,只有作为u盘的功能。Bob’s Finless ROM是一个修改的ROM,包含了替换recovery等img文件的工具。如果你的设备是MK808/MK808B或者UG802,就可以试试对应的Finless ROM,暂时没有针对其它型号的版本(公元2013年1月28日)。如果其它型号刷入,由于硬件不是都相同,可能会有一些问题。

需要的工具有:

  • 显示器
    有HDMI接口直接插上就可以了,如果是VGA或者DVI接口的可以使用转接线,淘宝上有HDMI转VGA带3.5mm音频输出的转接线
  • RKAndroidTool v1.35
    Bob’s Finless ROM的包里
  • 一个大于4G的TF卡或U盘或移动硬盘
  • Linux和Windows
    Windows用于刷入recovery,Linux用于格式化上面所说的TF卡或U盘,写入rootfs。这个要求似乎有点苛刻,但是你可以寻找Windows下用于Ext4文件系统格式化的工具,或者寻找Linux的刷入recovery的工具,但这可能更加麻烦。
  • USB网卡
    如果你的设备不是UG802/MK808
  • Kernel镜像
  • Root file system(Picuntu-linuxroot-0.9-RC2.2.tgz)
    你也可以使用一个安装脚本来更方便地完成安装过程,但这里介绍最直接(或者麻烦?)的方式

都准备好了的话,开刷吧!

1. 刷入kernel镜像

  • 把你的设备通过USB线与运行Windows的PC相连,注意不能用只用于供电的Micro USB口连接。

  • 在Android中安装“终端模拟器”,打开终端模拟器输入sureboot bootloader,设备会变成黑屏,Windows会检测到RK30的硬件。然后安装驱动,当然如果之前安装过就不需要。

  • 打开RKAndroidTool,这时应该显示Found RKAndroid Mass Storage Usb,而不是No found RKAndroid rock usb,否则就是你的驱动没有安装好或者设备没有进入bootloader。

  • 选择在recovery空间刷入recovery镜像,几秒之后刷好,立刻自动重启。

  • 如果你重启以后进入recovery发现一只躺着的带着红色三角形Android,那么可能是你的recovery没有刷对。 //可能的原因是recovery-from-boot.p这个万恶的文件存在于你的Android系统根目录下,自动恢复原recovery,把它删掉或者重命名

刷好以后你将看到Linux的控制台滚屏,然后就可以进行下一步了

2. 创建rootfs

可以使用4GB以上容量的TF卡、U盘甚至移动硬盘来完成这步。

  • 在Linux上打开GParted,在存储设备上创建一个至少4GB的Ext4分区,卷标为linuxroot //对,kernel就是根据这个卷标来找文件系统的

  • 切换到root用户,解压tar压缩包,使用copy -a拷贝解压的所有文件和文件夹到linuxroot分区。 //注意最好不要直接解压到linuxroot分区,以我的失败经验做反例,好几次解压以后用不了就是一些文件没有完整复制过去

如果进不了登录界面,可能就是一些文件没有完整复制过去,或者你没有切换到root用户,又或者是其它什么原因?比如我。

3. 配置

首先我是没有成功用Picuntu直接进到图形登录界面的,不知道是哪里出的问题,但是用Ctrl+Alt+F2打开的控制台是可用的,用户名ubuntu,密码ubuntu,root用户密码是12qwaszx,登录以后输入startxfce4可以正常进入图形界面,其它一切功能正常。

如果 你的显示器分辨率不够不支持1080p,那么最好用720p,在/etc/rc.local里取消

1
2
# fbset 1280x720-60-32 -a	 
# fbset -rgba 8/16,8/8,8/0,8/24 -a

这两行前面的’#’注释即可。

如果 你使用的是USB无线网卡,那么你的设备名应该是wlan1,首先sudo ifconfig wlan1 up,然后ifconfig应该能看到你的无线网卡,默认的/etc/network/interfaces是这样的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 # interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback






auto usbnet0
iface usbnet0 inet dhcp


auto wlan0
iface wlan0 inet dhcp
wpa-ssid Alok_Yamuna
wpa-psk abcdefgh

你需要改成

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 # interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback






auto usbnet0
iface usbnet0 inet dhcp


auto wlan1
iface wlan1 inet dhcp
wpa-ssid your-ssid
wpa-psk your-passwd

连上网络之后一切都好办了,各种apt-get。。。

如果 你的机器刷坏了,我。。。不负责。。。

参考资料

  1. https://code.google.com/p/rk3066-linux/
  2. http://www.slatedroid.com/topic/41654-pre-alpha-03-ubuntu-linux-for-mk802-iii-ug802-mk808-ug007-imito-mx1/
  3. http://www.slatedroid.com/topic/46881-picuntu-09-rc-22-bug-fix-version-arrives/
  4. http://ubuntu.g8.net/