为Allwinner A10s MK802编译搭建Debian无显示器Server.docx

上传人:b****5 文档编号:7381054 上传时间:2023-01-23 格式:DOCX 页数:8 大小:19.57KB
下载 相关 举报
为Allwinner A10s MK802编译搭建Debian无显示器Server.docx_第1页
第1页 / 共8页
为Allwinner A10s MK802编译搭建Debian无显示器Server.docx_第2页
第2页 / 共8页
为Allwinner A10s MK802编译搭建Debian无显示器Server.docx_第3页
第3页 / 共8页
为Allwinner A10s MK802编译搭建Debian无显示器Server.docx_第4页
第4页 / 共8页
为Allwinner A10s MK802编译搭建Debian无显示器Server.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

为Allwinner A10s MK802编译搭建Debian无显示器Server.docx

《为Allwinner A10s MK802编译搭建Debian无显示器Server.docx》由会员分享,可在线阅读,更多相关《为Allwinner A10s MK802编译搭建Debian无显示器Server.docx(8页珍藏版)》请在冰豆网上搜索。

为Allwinner A10s MK802编译搭建Debian无显示器Server.docx

为AllwinnerA10sMK802编译搭建Debian无显示器Server

为AllwinnerA10sMK802编译搭建Debian无显示器Server

家里一年多前就有一个基于AllwinnerA10-evb1.2的平板,买来之后就装上了linaro-alip-armhf的ubuntu系统作为家中的服务器,配合lxde和触摸屏,可以方便的选择家中的无线网络,提供lamp等服务。

前几天看到一个tb卖家挂出来的100元包邮的二手闲置全志A10s的AndroidminiPC,不由心动再添一台放到学校当服务器。

当年买A10平板(1GA8+1GRAM+8GROM)可是花了将近400元!

联系卖家后爽快发货买下,只过了一天就运过来了,不过搭建系统是从我在YX上拍的特价49.9元的PNY16Gclass10TF卡两天后到货才开始的。

由于这个A10s没有平板的lcd,身边又没有hdmi显示器,所以并不能用外接鼠标键盘显示器进行改造后的操作。

不过这不是问题,我们可以通过串口来进行操作。

拆开机壳后发现,有两组ttl,其中一组卖家改造焊接上了一个红外头,另一组悬空着,但看痕迹应该是也焊接过,由于我用不到红外头,索性剪掉都引出杜邦2.54排针用于和usbttl线进行连接,点击看大图,我的焊工很一般请轻喷。

 

A10s焊接好串口杜邦端子,点击看大图

硬件准备工作完成,连接上串口看一下输出的调试信息,经过一番查看后发现这个A10s和之前的A10并不相同,A10是架构是sun4i,A10s是sun5i,也就是说不能使用已有的A10的u-boot,linuxkernel也必须重新编译。

另外wifi连接使用的是SDIO的rtl8188cus,所以在rootfs的boot里的script.fex和相应的script.bin必须将SDIO配置好,否则启动后无法找到网卡。

经过无数次失败的编译和部署,总结要点如下

去github上linux-sunxi/linux-sunxi克隆3.4.67或更新的kernelsource,并更改.config为sun5i后编译uImage和modules

在adbshell下将android平台下nanda重新挂载,adbpull出原始script.bin并使用sunxi-tools中的bin2fex转换成script.fex进行修改再重新转换成script.bin

去github上linux-sunxi/u-boot-sunxi克隆最新的版本编译出mk802_a10s配置的u-boot

制作Debianrootfs包,安装kernel和modules,

提前在rootfs内安装ssh,wpasupplicant,firmware-realtek

在rootfs中boot内拷入修改好的script.fex和script.bin,删除boot.cmd和boot.scr

修改好rootfs中的etc/network/interfaces和wpa_supplicant.conf

根据TF卡分一个区还是两个区,还有分区格式正确修改uEnv.txt

完成这些后,直接插上TF卡,连接上电源,设备会自动启动并连接上配置好的无线网络,并可以用ssh登陆,如果接上ttl线还可以通过com口终端登陆。

上面这几条说起来不多,但每条都是血泪经验。

另外ttl线不是必须的,如果你每一步都操作正确,就不用通过ttl线查看输出了。

下面分别介绍每个步骤,我是参照下述链接才能搭建成功,感谢为全志平台贡献力量的所有人!

 

总体步骤:

构建自己的CubieboardDebianLinux(pdf)

 

工具链及源码资源:

 

kernel的.config文件:

 

Cubian提供的教程

 

配置无线网络:

让UbuntuServer使用无线网卡

 

cubieboard折腾手记

 

步骤按照总体步骤提供的pdf进行修改和完善

1.环境准备

我使用了一个在VirtualBox下的ubuntu12.0464bit的虚拟机,构建步骤适用于sun5i平台的A10s,A13的MK802Android4.0miniPC。

操作在root目录下进行

工作目录为$WORK_DIR

目标系统ROOTFS目录为$ROOTFS_DIR

#WORK_DIR=/home/sharpbai/mk802_a10s

#ROOTFS_DIR=$WORK_DIR/chroot-armhf

标有#号的代表命令或文件内容;因为页幅限制,有的行末尾有”\”折行符,表示该行尚未结束,在下一行继续——所以折行符不算是命令或文件内容的一部分。

1.1下载必须的工具软件

#apt-getinstallbuild-essentiallibncurses5-devu-boot-toolsqemu-user-staticdebootstrapgitbinfmt-supportlibusb-1.0-0-devpkg-config

#apt-getinstallgcc-arm-linux-gnueabihf

1.2下载源码

从github下载spl&u-boot、内核源码、sunxi工具包等。

注意内核源码超过1.5G,耗时最长。

如果曾经下载过这些代码,记得分别用gitpull更新后再进行后续操作,因为代码仓库每天都有变化。

#cd$WORK_DIR

#gitclone

#gitclone

#gitclone

#gitclone

1.3下载并配置Debian基础系统

#mkdir$ROOTFS_DIR

#cd$ROOTFS_DIR

#debootstrap--foreign--archarmhfwheezy.

#cp/usr/bin/qemu-arm-staticusr/bin/

#LC_ALL=CLANGUAGE=CLANG=Cchroot./debootstrap/debootstrap--second-stage

#LC_ALL=CLANGUAGE=CLANG=Cchroot.dpkg--configure-a

到此为止,Debian基础系统已经配置好了;现在可以把$ROOTFSDIR保存为一个压缩包,以备日后之用。

#cd$ROOTFS_DIR

#tar-zcvf../debian-rootfs-armhf-clean.tar.gz*

2编译组件

2.1编译U-BOOT

#cd$WORK_DIR/u-boot-sunxi

#makedistcleanCROSS_COMPILE=arm-linux-gnueabihf-

#makemk802_a10sCROSS_COMPILE=arm-linux-gnueabihf-

2.2编译sunxi-tools

#cd$WORK_DIR/sunxi-tools

#make

2.3配置、编译内核

2.3.1拷贝预设内核配置文件

#cd$WORK_DIR/linux-sunxi

#wget-O.config

2.3.2配置内核

由于.config文件是事先配置好的,所以无需大改,不用makemenuconfig,只需要将平台改变即可

以下操作为方便使用系统自带的gedit,也可以使用vi,vim修改

#gedit.config

点击编辑->首选项->显示行号

定位到第276行,将”CONFIG_ARCH_SUN4I=y”改为

#CONFIG_ARCH_SUN4Iisnotset

注意这里的#是需要输入的并非提示符

滴277行,将”#CONFIG_ARCH_SUN5Iisnotset”改为

CONFIG_ARCH_SUN5I=y

2.3.3编译内核

#make-j5ARCH=armCROSS_COMPILE=arm-linux-gnueabihf-uImagemodules

这里会提示有几项新的配置需要选择,碰到跟mail,g2d,debug和video有关的选项全部都选n,其余的选择y即可

编译过程很长,请耐心等待

3建立ROOTFS

#cd$ROOTFS_DIR

3.1重要步骤

Debianrootfs基础系统在前文中已经下载安装,现在需要进一步配置。

首先且最重要的是设置管理员密码和主机名称

#chroot.passwd

#echo"MK802_Server">etc/hostname

#echo"127.0.0.1MK802_Server">>etc/hosts

内核模块安装,这是最关键步骤:

#cp$WORK_DIR/linux-sunxi/arch/arm/boot/uImageboot/

#make-C$WORK_DIR/linux-sunxiINSTALL_MOD_PATH=`pwd`ARCH=armCROSS_COMPILE=arm-linux-gnueabihf-modules_install

设置串口调试终端参数,如果你想使用串口进行调试,这是必要的:

#echoT0:

2345:

respawn:

/sbin/getty-LttyS0115200vt100>>etc/inittab

#echodebwheezymaincontribnon-free>etc/apt/sources.list

#echodebhttp:

//security.debian.org/wheezy/updatesmaincontribnon-free>>etc/apt/sources.list

#chroot.apt-getupdate

#chroot.apt-getupgrade

3.2安装必要组件

安装OpenSSHServer,这将是你操控MK802最简单方便的方式

#chroot.apt-getinstallopenssh-server

#chroot.apt-getinstalllocales

#echo"en_US.UTF-8UTF-8">etc/locale.gen

#echo"zh_CN.UTF-8UTF-8">>etc/locale.gen

#chroot.locale-gen

#chroot.apt-getinstallvim

#chroot.apt-getinstallwireless-toolswpasupplicantfirmware-realtek

3.3配置无线网络

修改etc/network/networking

#echo"">>etc/network/interfaces

#echo"autowlan0">>etc/network/interfaces

#echo"ifacewlan0inetdhcp">>etc/network/interfaces

#echo"wpa-conf/etc/wpa_supplicant.conf">>etc/network/interfaces

创建etc/wpa_supplicant.conf

注意,这里的SSID要替换成自己无线路由的名称,KEY要替换成无线路由的密码,如果有多个路由器可以重复操作此步骤添加多个无线路由配置

wpa_passphraseSSIDKEY>>etc/wpa_supplicant.conf

3.4生成并部署内核启动参数文件

这一步需要你在windows下使用adb来从MK802内部提取script.bin并修改

script.bin和script.fex是内核启动时配置设备使用的文件,我们需要使用SDIO接口的无线网卡,而SDIO接口就是在这里初始化的

首先下载A10的adbdriver

并安装

然后下载adb工具

并解压

连接到MK802到电脑的的usb口

打开cmd,进入adb工具目录,输入

adbshell

如果成功会显示root@android或类似信息

#mkdir/sdcard/nanda

#mount-tvfat/dev/block/nanda/sdcard/nanda

#exit

adbpull/sdcard/nanda/script.bin

将提取出的script.bin传送到ubuntu虚拟机上,并复制到$WORK_DIR/sunxi-tools

再回到ubuntu虚拟机上操作,接下来生成script.fex

#cd$WORK_DIR/sunxi-tools

#./bin2fexscript.binscript.fex

#geditscript.fex

删除与hdmi,video有关的配置节后保存

然后生成新的script.bin并复制到目标位置

#./fex2binscript.fexscript.bin

#cpscript.fex$ROOTFS_DIR/boot/

#cpscript.bin$ROOTFS_DIR/boot/

接下来进入$ROOTFS_DIR/boot目录删除不需要的文件

#cd$ROOTFS_DIR/boot

#rmboot.cmd

#rmboot.scr

3.5配置u-boot启动环境

最后修改(如果没有就添加一个)uEnv.txt

uEnv.txt是设置内核位置和设备配置文件等启动命令的配置文件

#cd$ROOTFS_DIR

#gedituEnv.txt

mmcboot=ext4loadmmc00x43000000boot/script.bin;ext4loadmmc00x48000000boot/uImage;bootm0x48000000;

uenvcmd=runmmcboot

bootargs=console=ttyS0,115200console=tty0root=/dev/mmcblk0p1

这几行的意思是,配置ttyS0串口和root目录,加载mmc0的ext4分区中的boot/script.bin配置到内存0×43000000区域,加载mmc0的ext分区中的boot/uImage内核到内存0×480000000,然后从0×48000000开始执行内核

到这里rootfs算是全部准备完毕了

4安装到TF卡

下面将存储卡插入usb读卡器,并在Virtualbox中分配给ubuntu虚拟机,在我的机器中,TF卡设备分配了/dev/sdb设备名,实际要视自己情况而定,一定要指定正确,指定错误将会错误覆盖被指定的设备的数据,造成不可挽回的数据丢失!

#CARD=/dev/sdb

4.1安装u-boot

清空前面1M左右的数据,为存放u-boot预留空间,然后在指定位置写入u-boot

#cd$WORK_DIR/u-boot-sunxi

#ddif=/dev/zeroof=$CARDbs=1kcount=1024

#ddif=u-boot-sunxi-with-spl.binof=$CARDbs=1024seek=8

4.2介质分区

使用fdisk将TF卡分成一个区即可,然后格式化成ext4格式

#fdisk$CARD

...(进行分区操作)...

#mkfs.ext4${CARD}1

4.3部署rootfs

#cd$ROOTFS_DIR

#mount${CARD}1/mnt

#tar--exclude=qemu-arm-static-cf-.|tar-C/mnt-xvf-

#sync&&umount/mnt

切记一定要等最后sync和umount完成后再拔出,否则复制数据会不完整

5完成

将TF卡插入MK802中,如果你有ttl线的话连接好并打开终端,如果没有的话,请登录路由器dhcp管理页面。

插上电源,ttl应该立即输出启动信息并最后出现登录界面,而在几分钟内路由器dhcp管理页面会显示多了一个你的设备。

接下来使用ssh连接到MK802,尽情享受吧~晒下我的MK802完成图,打了个孔引出两个内部串口,外加一个USBhub

 

我的MK802完成图,打了个孔引出两个内部串口,外加一个USBhub,点击看大图

一点问题:

貌似这个rtl8188cus网速不是很快,实测最高2M/s左右,如果对速度有特殊需求可以添加usb无线或有线网卡。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1