狗趴(GodPub),开源硬件学习与实践
标题:
【Joytag 香蕉R1学习】自己动手组装OpenWrt for R1(全)
[打印本页]
作者:
卓泰科技
时间:
2015-2-16 22:21
标题:
【Joytag 香蕉R1学习】自己动手组装OpenWrt for R1(全)
原文信息
标题:【Joytag 香蕉R1学习】自己动手组装OpenWrt for R1(全)
连接:
http://forum.godpub.com/thread-82-1-1.html
备注:狗趴论坛首发,转载请注明出处。
折腾缘起
大约两周前,我从朋友大球那里拿到了一枚BPI-R1,感谢追梦无偿提供R1板卡。
“香蕉派 BPI-R1是一款高性价比开源无线路由器,采用全志 A20 1.2G 双核 Cortex™-A7处理器; 无需加载任何设备,只需SD卡即可开机、运行系统并存储的高性价比智能无线路由器, 采用BCM53125 Switch芯片,满足有线网络传输10/100/1000Mbps的要求;无线支持 IEEE 802.11 b/g/n 2.4GHz,配置双外置天线加强无线传输信号,无线传输速率高达300Mbps”
尽管BPI官方已经提供了R1镜像的下载,但是本着学习和折腾的精神,
参考OpenWrt官方WIKI,自动动手组装了一个OpenWrt for R1。并具备如下特点:
最新内核与软件包
白纸般洁净的系统
可以进一步折腾
同时为了不至于做完就忘,将做的每个步骤均已帖子的形式记录在狗趴论坛(
http://forum.godpub.com
),
期间苦逼的累着、折腾着、郁闷着、也快乐着,每个帖子都是见证也是汗水。
然则回头再看,自己如何走弯路别人未必多有兴趣关注,
另外帖子组织也略显混乱,相互之间尚有依赖关系,新手操作可能会略微头疼。
所以整理一个完整版,方便大家阅读和实践。
准备工作
BPI R1
TF卡(带卡套或者读卡器)
USB 转TTL (用于连接电脑与R1串口)
装有Linux系统的电脑或者虚拟机 (用于制作镜像以及写卡等。为了偷懒,我使用的BPI M1)
PC (用于登录控制R1以及测试网络连接等)
Step 1:制作镜像
将TF卡通过USB读卡器插入M1
保存并执行以下两个脚本
使用方法:
将两个文件保存到工作目录,假定为/root/R1, 执行以下命令:
(待提示:......Finished!,并无其它错误提示,既制作成功)
# cd /root/R1
# chmod 777 getfiles.sh mksys.sh
# ./getfiles.sh
# ./mksys.sh /dev/sda
复制代码
(*:TF卡在香蕉派
读卡器中
会被识别为/dev/sda,请务必清楚自己要操作的设备,以免对原系统造成破坏)
1)getfiles.sh (获取所需的文件)
wget http://downloads.openwrt.org/snapshots/trunk/sunxi/generic/uboot-sunxi-Lamobo_R1/openwrt-sunxi-Lamobo_R1-u-boot-with-spl.bin
wget http://downloads.openwrt.org/snapshots/trunk/sunxi/generic/uboot-sunxi-Lamobo_R1/openwrt-sunxi-Lamobo_R1-uEnv.txt
wget http://downloads.openwrt.org/snapshots/trunk/sunxi/generic/uboot-sunxi-Lamobo_R1/openwrt-sunxi-Lamobo_R1-boot.scr
wget http://downloads.openwrt.org/snapshots/trunk/sunxi/generic/sun7i-a20-lamobo-r1.dtb
wget http://downloads.openwrt.org/snapshots/trunk/sunxi/generic/openwrt-sunxi-uImage
wget http://downloads.openwrt.org/snapshots/trunk/sunxi/generic/openwrt-sunxi-root.ext4
复制代码
2) mksys.sh (将OpenWrt for R1写入SD卡)
if [ $# != 1 ] ; then
echo "usage: $0 disk"
echo " e.g.: $0 /dev/sda"
exit 1;
fi
echo -e "\n######### Prepare: Partition the disk ########"
disk=$1
p1=${disk}1
p2=${disk}2
umount $p1
umount $p2
fdisk $1<<EOF
p
d
1
d
p
n
p
1
+15M
n
p
2
+240M
t
1
c
p
w
EOF
echo -e "\n......1) Copy the SPL + U-boot image to the card"
dd if=openwrt-sunxi-Lamobo_R1-u-boot-with-spl.bin of=$disk bs=1024 seek=8
echo -e "\n......2) Create a boot (FAT32) partition"
mkfs.vfat ${disk}1
echo -e "\n......3) Mount the boot partition"
mount -t vfat ${disk}1 /mnt
echo -e "\n......4) Copy the U-Boot environment file uEnv.txt to the boot partition"
cp openwrt-sunxi-Lamobo_R1-uEnv.txt /mnt/uEnv.txt
echo -e "\n......5) Copy the device tree data to the boot partition"
cp sun7i-a20-lamobo-r1.dtb /mnt/dtb
echo -e "\n......6) Copy the kernel image to the boot partition."
cp openwrt-sunxi-uImage /mnt/uImage
echo -e "\n......7) Copen the boot.scr to the boot partition."
cp openwrt-sunxi-Lamobo_R1-boot.scr /mnt/boot.scr
echo -e "\n......8) Resize the root filesystem image to match the partition size."
resize2fs openwrt-sunxi-root.ext4 240M
echo -e "\n......9) Create the root filesystem."
dd if=openwrt-sunxi-root.ext4 of=${disk}2 bs=128k
echo -e "\n......10) Wrap up (flush buffers and unmount boot partition)."
sync
umount /mnt
echo -e "\n......Finished!"
复制代码
详情请参考:
【Joytag 香蕉R1学习】自己动手组装OpenWrt for R1
【Joytag 香蕉R1学习】OpenWrt for R1 组装脚本
Step 2:连接R1串口与电脑
通过串口连接R1与电脑,是比较便捷的方式,尤其是设置和调试过程中。
连线方式
电源:(5V 2A MicroUSB接口:图中右下角红圈部分)
串口:(TX, RX, GND:右上角红圈部分,蓝色GND、白色TX、黑色RX,请原谅我联线时没有选择合适的颜色)
通过USB-TTL连接PC与R1。
PC上,我使用Putty软件,设置如图。
putty.PNG
(56.84 KB, 下载次数: 60)
下载附件
2015-2-16 20:30 上传
R1上电后,我们会在Putty窗口看到R1的启动信息。
带启动信息输出完毕,回车,即可登录到我们之前组装的OpenWrt For R1
Step 3:连接以太网,安装swconfig,有线路由
按照如下方式连接设备:
R1 WAN口通过网线连接至上级路由LAN口
PC网口通过网线连接至R1 LAN口
我们期望R1正常的接入网络并起到路由功能,这样PC就可以通过R1上网了。
而事实上,因为缺失swconfig软件包,网络配置文件无法被正确的应用, R1无法上网并起到路由功能。
swconfig是用来配置以太网交换机的工具。
首先我们需要安装这个软件包。
1)备份原有的网络配置文件
# mv /etc/config/network /etc/config/network_owrt
复制代码
2)写入新的网络配置文件
config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config interface 'wan'
option ifname 'eth0'
option proto 'dhcp'
复制代码
3)开启wan口
# ifup wan
复制代码
现在R1已经可以正常的上网了。
然后我们就可以安装需要的软件包了,这里我们要安装的是swconfig
4)安装swconfig
# opkg update
# opkg install swconfig
复制代码
5)恢复原始的网络配置
# cp /etc/config/network_owrt /etc/config/network
复制代码
6)重启网络
# /etc/init.d/network reload
复制代码
现在有线网络功能已经正常了,如果将台式机网口连接只R1 LAN口,既可通过R1上网。
也就是说R1有线路由功能工作正常。
详情请参考:
【Joytag 香蕉R1学习】让新系统(OpenWrt for R1)上网
Step 4:Telnet,SSH, LuCI
根据官网信息,现在的系统状态应该是
IP地址:192.168.1.1
Telnet已开启
SSH已禁用
尚未安装LuCI(亦即无法通过Web界面访问和控制)
通过串口或者Telnet连接R1,输入:
# passwd
复制代码
回车,按提示输入两次新密码,密码即设置成功。
如此即会开启SSH,并禁用Telnet。
开启Web访问功能也很简单,安装luci和附属软件包即可。
# opkg update
# opkg install luci
复制代码
Web访问地址:
http://192.168.1.1/
详情请参考:
【Joytag 香蕉R1学习】OpenWrt for R1有线路由, Telnet,SSH, LuCI
Step 5:开启SFTP以及使用PSCP
这部分比较简单而且也不是必须的,但是为了方便电脑与R1交换文件,还是加上吧。
不同于OpenSSH默认开启sftp子系统,OpenWrt使用Dropbear提供SSH服务需要安装sftp软件包。
# opkg update
# opkg install openssh-sftp-server
复制代码
现在我们就可以使用Filezilla通过sftp登录R1了。
FileZilla设置很简单,只需在协议中选择SFTP就可以了。其它的和使用普通的FTP完全一样。
类似于Linux系统下的scp命令,在windows下我们可以使用pscp与R1交换数据。
首先,下载
pscp.exe
并保存至: windows/system32目录下。
我们就可以在windows命令行窗口下使用pscp命令了。
命令与scp一致,比如将R1 root目录下file1复制到本地当前目录下:
pscp root@192.168.1.1:/root/file1 ./
复制代码
按提示输入密码即可。
与SFTP类似,pscp也依赖于sftp服务,
如果没有按上文方式开启SFTP,那么会提示以下错误信息:
ash: /usr/libexec/sftp-server: not found
Fatal: Received unexpected end-of-file from server
复制代码
详情请参考:
【Joytag 香蕉R1学习】OpenWrt for R1 开启SFTP以及使用PSCP
Step 6:
配置R1主机名、时区、LED
这部分内容无关紧要,仅仅作为对使用不同方法配置系统以及对其相关机制进行一些探索。
详情请参考:
【Joytag 香蕉R1学习】OpenWrt for R1:设置主机名、时区、LED
Step 7:开启WIFI热点
尽管折腾WIFI热点的过程曲折而又惨痛,但实际上WIFI热点功能还是很简单的。
执行以下指令:
# opkg update
# opkg install kmod-rtl8192cu
# opkg install hostapd
复制代码
重启R1后,执行:
# uci set wireless.@wifi-device[0].disabled=0
# uci commit wireless
# wifi
复制代码
现在使用设备(台式机、手机等)搜索无线网络,就会发现一个名为“OpenWrt"的WIFI热点。
连接即可用。
详情请参考:
【Joytag 香蕉R1学习】OpenWrt for R1 开启WIFI热点
Step 8:进一步设置
现在一个全新的,并且完全定制的系统已经诞生了。
像一张白纸,任你绘画。
你可以为无线设置密码、设置防火墙、安装你需要的软件包,实现VPN上网等等。
这些就不在本文讨论的范围内啦。
总结
本文对之前折腾的内容做了简明扼要的总结,便于新手参考。
因为我也是这一两周刚接触R1以及OpenWrt系统,算是一个爱折腾菜鸟,
所以对一些技术细节讨论的不够深入,同时也难免有错漏之处。
希望大家不吝赐教,我也会不断更新此文,使之更加完善。
同时,我也在努力制作一个安装脚本,以期自动完成以上大部分内容,
待完成后,会在这里共享给大家参考。
注:Trunk分支有风险,使用需谨慎。
作者:
卓泰科技
时间:
2015-2-16 22:41
辛苦一下午+半晚写的长文,被吃的面目全非。
悲催的是,吃掉的部分,自己都忘记写了什么。
重新整理思路,修补ing
作者:
卓泰科技
时间:
2015-2-16 23:43
终于补全了大半部分。
可惜我当时文思泉涌,妙笔生花
补出来的东西总感觉缺少点滋味呢。
也没仔细检查是否仍有缺失错漏,先就这样吧。
作者:
卓泰科技
时间:
2015-2-17 23:35
不想折腾的可以直接从这里下载可用的镜像:
http://elastos.org/elorg_common/Lamobo-R1/2015-01-12/
另外,不同于trunk,这个快照会相对比较稳定
回头可以尝试用这个做一下整个流程
(只是不是最新)
欢迎光临 狗趴(GodPub),开源硬件学习与实践 (http://forum.godpub.com/)
Powered by Discuz! X3.2