Linux搭建下载器
几年前买了一块CubieBoard2的开发板,由于后面转行做游戏了就没在接触过嵌入式方面,相关的一些知识和技能都已全部忘记了。前几天突然想到可以拿它来挂个硬盘下电影,然后就又去重新学习了一点嵌入式基础,就有了这篇总结。
-
下载Linux系统
-
由于CubieBoard2原先烧的是Android系统,现在打算换成Linux系统。下载Linux系统镜像或者自己编译Linux系统。自己编译Linux系统需要先
下载源码,然后在有交叉编译环境的Linux PC上进行编译。图省事我就在CubieBoard论坛上下载了
Lubuntu Desktop镜像,使用镜像文件安装就比较简单了,使用PhoenixSuit工具和手机刷机一样的操作方式。
注意: 我开发机使用的是Windows 10操作系统,板子接上去驱动老是安装不对,所以是安装了PhoenixSuit工具包里自带的驱动。
简单配置开发板网络
-
开发板系统刷好以后,需要接串口线进去查看设置网络,设置好网络之后就可以使用ssh远程登陆,再操作板子就会方便的多了。
先要连接好板子和串口线,连接方式如下图示:
http://photo.blog.sina.com.cn/showpic.html#blogid=4b26a2fe0101jb4l&url=http://s2.sinaimg.cn/orignal/4b26a2fete0762eecd641GND 黑线 VCC 红线(不接) Rx 绿线 Tx 白线 注意: windos 7版本及以上的系统对USB转串口(pl2303芯片)的驱动支持不是太好,需要多试几个版本。
我使用MobaXterm工具来连接开发板
查看Ubuntu版本信息
:~# cat /etc/issue Linaro 13.04 \n \l
查看网络信息
:~# ifconfig -a eth0 Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX inet addr:192.168.0.253 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: XXXX::XX:XXX:XXXX:XXX2/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1345 errors:0 dropped:0 overruns:0 frame:0 TX packets:1709 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:135348 (135.3 KB) TX bytes:127322 (127.3 KB) Interrupt:87 Base address:0x4000
设置网络信息
为了方便后面登陆的时候直接使用SSH来连接开发板,需要保证板子IP稳定,所以给板子设置静态IP:~# vi /etc/network/interface auto lo eth0 iface lo inet loopback iface eth0 inet static address 192.168.0.253 gateway 192.168.0.1 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255
检查ssh服务开启状态
ps -s | grep ssh
如果ssh服务没起来的话需要起一下ssh服务
service ssh start /etc/init.d/ssh start
到这里板子的网络环境就基本OK了,现在我们就可以扔掉串口线,使用网线和ssh来远程连接板子了。使用ssh连接上开发版之后我们就要开始进入正题了。下面介绍两种Linux下载器的搭建方法。
迅雷远程下载
-
第一种使用迅雷远程下载功能。迅雷远程下载能够远程创建下载任务和操作现有的现在任务。并且搭建起来非常方便。
1. 到迅雷远程下载论坛下载 ware工具。
2. 到开发板运行该工具,运行成功后会使用迅雷账号登得到一串码。
3.打开并登陆 雷远程下载网站,按指示输入串码绑定设备。
执行完以上三步,你的迅雷远程下载器已经搭建完成了。
使用Aria2搭建下载器
-
使用Aria2搭建下载器需要移植Aria2到开发板,所以首先需要有arm-linux-交叉编译环境。
linux交叉编译环境
下载arm-linux-gcc,解压到开发用Linux PC,然后设置环境变量即可。sudo gedit /etc/bash.bashrc if [ -d /home/cf/ARM/opt/FriendlyARM/toolschain/4.5.1 ] ; then PATH=/home/cf/ARM/opt/FriendlyARM/toolschain/4.5.1/bin:"${PATH}" fi
Aria2 移植
下载Aria2源代码,在Linux PC上使用arm-linux-gcc编译完成后,将运行相关文件下载到开发版即完成了移植。:~$./configure --prefix=/home/work/aria2_build --exec-prefix=/home/work/aria2_build CC=arm-linux-gnueabihf-gcc --host=arm-linux-gnueabihf ARIA2_STATIC=yes :~$make :~$make install
移植完成了之后需要创建aria2.conf配置文件,然后运行Aria2
bin/aria2c --conf-path=/home/aria2/aria2.conf -D
Apache 移植
Apache此处用于提供YAAW(Yet Another Aria2 Web Frontend)工具的运行环境,YAAW用于创建和管理Aria2的下载任务。Apache的移植比较复杂,这里先贴一个大概,后续给详细步骤。:~$./configure --prefix=/usr/local/apache2 --enable-mods-shared=all --enable-deflate --enable-speling --enable-cache --enable-file-cache --enable-disk-cache --enable-mem-cache --enable-rewrite --enable-so --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre --with-included-apr //切换到root :#make :#make install
移植Apache比较折腾,需要在开发环境正常./configure和make一遍源码。其目的是生成apache源码生产工具gen_test_char,需要先备份保存gen_test_char。而编译apache需要依赖apr、apr-util和pcre。所以需要先交叉编译apr、apr-util和pcre。
:~$./configure --prefix=/usr/local/apr-arm/ CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ LD=arm-linux-gnueabihf-ld --host=arm-linux-gnueabihf ac_cv_file__dev_zero=yes ac_cv_func_setpgrp_void=yes apr_cv_tcp_nodelay_with_cork=yes ac_cv_sizeof_struct_iovec=8 --cache=arm-linux-gnueabihf.cache :~$make :~$make install :~$ :~$./configure --prefix=/usr/local/apr-util-arm --host=arm-linux-gnueabihf CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ LD=arm-linux-gnueabihf-ld :~$make :~$make install :~$ :~$./configure --prefix=/usr/local/pcre-arm --host=arm-linux-gnueabihf CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ LD=arm-linux-gnueabihf-ld :~$make :~$make install
安装好上述之后,执行apache的configure然后make clean,然后把先去生成的gen_test_char拷贝回原位置。然后再make;make install;编译成功之后拷贝apache的运行相关到开发板,还需要拷贝apr、apr-util和pcre编译出来的.so库到/user/lib/供apache使用。然后设置apache即按自己需要编辑httpd.conf,然后下载YAAW到apache的网站目录,运行apache。
:~$./apachectl -f /home/apache/conf/httpd.conf
注意: 可以选择安装supervisor来管理linux进程
-
ntfs-3g 移植安装
-
由于需要支持ntfs格式的硬盘,所以还需要移植安装ntfs-3g
使用ntfs-3g挂载硬盘:~$./configure CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ LD=arm-linux-gnueabihf-ld --host=arm-linux-gnueabihf --prefix=/home/zam/work/ntfs-3g-arm --exec-prefix=/home/zam/work/ntfs-3g-arm --enable-really-static :~$make :~$make install
shell
sudo ntfs-3g /dev/sda5 /mnt/USB/ -o nolock
设置开机启动
-
最后一步,设置开机启动。开机启动有两种方法。
1. 编辑/etc/rc.local,在/etc/rc.local 插入开机后需要自动执行的命令。
2. 使用update-rc.d xxx defaults NN命令添加开机启动服务。先将脚本复制或者软连接到/etc/init.d/目录下,然后用:update-rc.d xxx defaults NN命令(NN为启动顺序),将脚本添加到初始化执行的队列中去。
注意: 如果脚本需要用到网络,则NN需设置一个比较大的数字,如99 。
例如:
$ sudo chmod 755 /etc/init.d/test $ cd /etc/init.d $ sudo update-rc.d test defaults 95
这样我们的Linux下载器就已经搭建OK了。