更多ARM版linux下的事情。附带cubieboard修改版lubuntu,支持运行windows程序x86的exe

- - posted in a10, cubieboard, linux, ubuntu

上一篇文章写了如何把原生linux安装到sdcard里,并在A10机型运行,这次再说一说怎么运行别的linux版本。

移植别的linux

准备基础文件

机器cpu是ARM的,linux文件也需要是为arm架构编译的。很多linux发行版都有arm架构支持,我还是以debian/ubuntu来说。
首先是准备基础文件,可以参考在chroot那篇文章里写的debian和ubuntu的文件准备,也可以是现成的别的发行版的系统文件。这里就不详细讲了,debian系的那篇文章里写了,别的系的略麻烦。这里不一定要是官方的文件,比如cubieboard就有提供为他的开发板定制的A10的ubuntu系统,也可以是为pi提供的系统,或者别的开发板的都可以。
唯一有一点区别的还是在架构上。arm分为armel和armhf,树莓派只支持armel,而A10可以跑armel和armhf,区别可以参考A10当然选armhf的来做了。
下载了文件系统部分之后,直接复制到sd卡的第二分区。什么?sd卡没有第二分区?参考上一篇文章入门。

准备内核和驱动

系统文件准备了以后还需要添加内核和驱动。这里给出几个方案:
首先是来自pengpod编译的内核和驱动3.0.57推荐用这个
http://pan.baidu.com/share/link?shareid=3149881464&uk=1243757679 然后是我编译的3.0.8。里面不包含mali驱动 http://pan.baidu.com/share/link?shareid=3166131842&uk=1243757679 当然也可以自己编译 apt-get install build-essential git apt-get install u-boot-tools (if u-boot-tools not found, try uboot-mkimage) 编译器下载、解压、添加环境 wget “https://sourcery.mentor.com/GNUToolchain/package5383/public/arm-none-linux-gnueabi/arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2” export PATH=“/home/android/sc/arm-2009q3/bin/:$PATH” 代码下载 git clone git://github.com/linux-sunxi/linux-sunxi.git cd linux-allwinner git checkout lichee-3.0.8-sun4i 编译 make ARCH=arm sun4i_defconfig make ARCH=arm menuconfig make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- -j3 uImage make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- -j3 INSTALL_MOD_PATH=output modules make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- -j3 INSTALL_MOD_PATH=output modules_install 输出文件在arch/arm/boot/uImage 和output文件夹下 触摸支持需要禁用多点触摸,参考https://github.com/bearqq/A10-ubuntu-touch-ft5x 非root访问网络需要修改配置文件# CONFIG_ANDROID_PARANOID_NETWORK is not set

安装内核驱动

将得到的内核uImage复制到sd卡第一分区,将lib的文件放到第二分区的lib/modules下,如lib/modules/3.0.8/xxx

其他修正、添加

文件系统准备好以后,可以chroot进去做点事。参考:
sudo chroot /media/sdcard2/ /bin/bash 安装软键盘
apt-get install cellwriter 修改加载的驱动
vi /etc/modules disp lcd hdmi mali mali_drm ft5x_ts sun4i_keyboard ump 8192cu 添加用户
自己弄。。 设置自动登录。如
/etc/lxdm/default.conf vi /etc/lxdm/default.conf autologin=username 也可能是:
vi /etc/lightdm/lightdm.conf [SeatDefaults] autologin-user=username autologin-user-timeout=0 greeter-session=lightdm-gtk-greeter user-session=Lubuntu

别的呢?

A10社区wiki,可以找到一些已经做好的文件系统

系统更新

给出已经修改好的cubieboard的文件系统,包含了内核驱动,使用方法和上一篇文章一样
http://pan.baidu.com/share/link?shareid=3284898657&uk=1243757679

支持:
wifi,触摸,mali驱动,2D加速,可以运行x86的exe文件*,更多

不支持:
多点触摸,更多

arm下如何运行x86程序?且听下回分解