标题:T02安装Ubuntu 出处:Felix021 时间:Tue, 18 Aug 2015 12:42:39 +0000 作者:felix021 地址:https://www.felix021.com/blog/read.php?2145 内容: 前一段时间在京东众筹购入了一款名为"光棍一号T02"的电视棒,Intel Atom Z3735F(1.33G*4) + 2GB + 32GB,之所以下单,最主要是因为他们家宣称可以支持ubuntu(因为看起来好像就是intel Compute Stick的贴牌产品,而后者是可以支持ubuntu的)。可是到手了以后,问了众筹方才知道,原来安装镜像是不公开的,需要在发货前说明,他们装好再寄过来(跟Compute Stick一个尿性,据说是因为第三方的驱动问题)。没办法,只能自己动手了。 在网上有找到一篇文章:Install Ubuntu 14.04 LTS on the 2GB Intel Compute Stick,里面提供了一个64bit的ubuntu 14.04镜像以及相应的步骤,可以直接安装到2GB内存的Compute Stick上;以及对安装32位UEFI支持的一些说明和提示。 情况是这样的,Intel Compute Stick 2GB+32GB版本出厂预装的是Win8,Ubuntu版本只有1GB内存+16GB存储,所以大神们琢磨着弄一个ubuntu到windows版本上去,可是intel官方因为第三方驱动的原因不开放镜像,于是他们自己做了一个。从文章里可以知道,stick可以在UEFI里面选择启动的系统是32bit的win8还是64bit的ubuntu,也就是说可以按需向操作系统提供32/64位的uefi接口。可是手头的这个T02只有一个非常简单的32bit的uefi,所以整个过程就比较蛋疼了,下面记录一下,备忘。 1. 准备相关材料:http://pan.baidu.com/s/1qWN0jIO 包括 (a) 安装镜像 ubuntu14.04_z3735f.iso (b) 启动盘制作工具rufus-2.2p.exe (c) 支持32位efi的grub启动器 bootia32.efi (d) 安装后用的grub.tar.gz 2. 制作启动盘 使用rufus把iso写入到一个U盘里。把wubi.exe删掉,然后把 bootia32.efi 放到 EFI/BOOT/ 下面 3. 安装使用启动盘启动T02,可以先通过"try ubuntu"体验一下效果。 (a) 如果希望直接安装的话,建议选择"install ubuntu",比较快且不容易出错。 (b) 安装中进行分区的时候选择“使用整个磁盘”,这样会自动使用GPT分区并且创建一个EFI分区。由于本身内存空间有限,建议不要考虑双系统共存了。 (c) 安装期间建议不要插入TF卡,速度超慢。不要安装到TF卡上。 ==》 安装完以后不要急着重启 4. 复制文件 (a) 把启动盘上的 bootia32.efi 拷贝到新系统的 [挂载点]/boot/efi/EFI/ubuntu 下面去。 (b) 把grub.tar.gz的内容解压到新系统的随便一个目录中(比如 /home 下面) 5. 重启,进入EFI Shell(因为新系统中没有包含配置好的32位的启动程序,会自动进入到EFI Shell中) 6. 进入grub shell:根据前面列出文章中的Troubleshooting,按顺序执行: (a) fs0: (注意冒号) (b) cd EFI\ubuntu (c) bootia32.efi (于是就引入了一个裸的grub shell) 7. 进入initrd中的准系统:在grub shell下面执行 (a) linux (hd0,gpt2)/vmlinuz (b) initrd (hd0,gpt2)/initrd.img (c) boot 于是就进入了initrd中的 8. 安装支持32位efi的grub(这一步可能有点坑) (a) chroot到rootfs $ mkdir -p /rootfs $ mount -o rw -t ext4 /dev/mmcblk0p2 /rootfs $ mount -t vfat /dev/mmcblk0p1 /rootfs/boot/efi/ $ mount --bind /dev /rootfs/dev $ cd /rootfs $ chroot . (b) 安装grub-ia32 这一步记得不是很清楚了,因为各种deb包有奇怪的依赖关系,总之大概是这样的: $ cd /home $ dpkg -i *.deb 根据报错信息按需卸载系统中存在的package(dpkg --remove xxx),然后再重新执行上一句直到安装成功。 【注意】安装成功以后、在/rootfs/efi/EFI/ubuntu下面应该有 grubia32.efi 这个启动器。 (c) 重启进入efi shell 是的,因为efi配置里面还是grubx64.efi 9. 从EFI Shell启动进入系统 > fs0: > cd EFI\ubuntu > grubia32.efi 一切顺利的话,这里就可以启动进入ubuntu了(真心不容易啊)。 10. 更新EFI配置(依然是参考文章的Troubleshooting) $ sudo apt-get install efibootmgr #安装EFI配置编辑器 $ sudo efibootmgr -v #查看当前的efi配置(可以看到启动器是grubx64.efi,这个不对!) $ sudo efibootmgr -b 0003 -B #删除所有的EFI启动配置 $ sudo efibootmgr -b 0002 -B $ sudo efibootmgr -b 0001 -B $ sudo efibootmgr -b 0000 -B $ sudo efibootmgr -c -d /dev/mmcblk0 -p 1 -l \\EFI\\ubuntu\\grubia32.efi -L ubuntu #加入新的启动配置 $ sync 大功告成! ==== 后记 ==== 启动以后就可以按需安装各种package拉,运行速度还不错,wifi没问题,显卡驱动正常(可以调整分辨率),但是声音和蓝牙驱动貌似还是有问题,不过对于一个server来说都是小问题。稍微麻烦一点的是wifi的延迟不太正常,局域网每两次ping的响应,差不多都会有一次是1000ms, 一次是2ms,但是加上一个有线USB网卡以后就都一切正常(这是什么病啊。。),接下来再试用几天看看拉。 @2015-08-19 T02是Intel Atom Z3735f (BayTrail)方案(x86_64 1.33GHz*4 + 2GB ram + 32GB rom),手头有一个2012年8月份入手的mk802(居然已经3年了,依然在勤恳地工作!感谢它!),全志A10的方案(Cortex A8 1GHz*1 + 1GB ram + 4GB rom),二者都安装上了Ubuntu Desktop版,正好作个对比。 实际使用上二者性能上的差距还是蛮直观的,ssh登录的时候,T02马上就进入shell,MK要卡几秒;在桌面程序上,比如Chrome,启动速度、页面加载速度什么的,感受很明显。下面是一些简单的测试数据: 1. 最简单的,编译一个 busy.c 源码(main里面只有一行 while(1)): T02:0.124s MK:0.251s 2. 编译bash 以前自己打过patch的一个bash的tar.gz 2.1 解压 T02:0.598s MK:1.552s 2.2 configure T02:1min MK:1min56s 2.3 make T02:2min16s(make),45s(make -j4) MK:5m26s 3. CPU温度/频率@T02 这个只测T02:一个720p视频播放、5个busy.c的a.out,测试是否有风扇对着吹的情况 无风扇:81°C/81°C/87°C/87°C,500MHz*4(自动降频) 有风扇:72°C/72°C/79°C/79°C,1333MHz*4(继续吹可能还会再降点温) Generated by Bo-blog 2.1.0