上一篇文章写了如何把原生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程序?且听下回分解。