• 欢迎访问少将全栈,学会感恩,乐于付出,珍惜缘份,成就彼此、推荐使用最新版火狐浏览器和Chrome浏览器访问本网站。
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏少将全栈吧
  • 欢迎加博主微信:jiang_shaobo

一步一步教你制作openwrt卡系统

点滴 admin 5年前 (2014-06-04) 1306次浏览 已收录 扫描二维码

1.搭建交叉编译环境

sudo apt-get install build-essential u-boot-tools
uboot-mkimage gcc-arm-linux-gnueabihf ncurses-dev -y

PS:是一条命令。

2.安装依赖包

sudo apt-get install libncurses5-dev zlib1g-dev gawk flex patch git-core g++ subversion -y

3.获取openwrt的源代码

git clone https://github.com/mirrors/openwrt

4.进入openwrt源目录

cd openwrt

5.扩展软件包,可选

进入源码根目录下面后,打开feeds.conf.default,其中的内容是你得openwrt环境中的额外软件包的软件列表索引(类似于软件源)

sudo vim feeds.conf.default

其中,packages、xwrt、luci、routing、telephony下载是默认的。你可以把你需要的软件源的注释去掉。

这里贴出feeds.conf.default 文件下的内容

一步一步教你制作openwrt卡系统

一步一步教你制作openwrt卡系统

以上内容可根据需求下载,但至少包含packages。

  • packages ? 提供众多库, 工具等基本功能. 也是其他feed所依赖的软件源, 因此在安装其他feed前一定要先安装packages!
  • luci ? OpenWrt默认的GUI(WEB管理界面).
  • xwrt ? 另一种可替换LuCI的GUI
  • qpe ? DreamBox维护的基于Qt的图形界面, 包含Qt2, Qt4, Qtopia, OPIE, SMPlayer等众多图形界面.
  • device ? DreamBox维护与硬件密切相关的软件, 如uboot, qemu等.
  • dreambox_packages ? DreamBox维护的国内常用网络工具, 如oh3c, njit8021xclient等.
  • desktop – OpenWrt用于桌面的一些软件包.
  • xfce – 基于Xorg的著名轻量级桌面环境. Xfce建基在GTK+2.x之上, 它使用Xfwm作为窗口管理器.
  • efl – 针对enlightenment.
  • phone -针对fso, paroli.

6.由步骤5确定软件源之后,就是更新软件源了:

./scripts/feeds update -a

安装下载好的包:

./scripts/feeds install -a

7.执行完上面命令之后你就可以获取全部的openwrt源码了,接着,我们配置openwrt编译系统

具体配置参见下方图片:

make menuconfig ARCH=arm

一步一步教你制作openwrt卡系统

注意:Target Profile 要根据你相应的板子进行选择,否则到时u-boot会启动不了。

其中

a.Target Images?

一步一步教你制作openwrt卡系统

一步一步教你制作openwrt卡系统

b.配置无线网卡,V2/V3都是用的rtl8188cus无线网卡

Kernel modules?

Wireless Drivers?

-*- kmod-cfg80211…………………. cfg80211 ? wireless configuration API

* kmod-lib80211……………………………… 802.11 Networking stack

{M} kmod-mac80211………………… Linux 802.11 Wireless Networking Stack

kmod-rtl8192cu………………….. Realtek RTL8192CU/RTL8188CU suppor

t{M} kmod-rtlwifi……………………………. Realtek common driver part

c.Lucl系统快速配置接口

LuCI?

1. Collections?

{*} luci luci-ssl……………………. Standard OpenWrt set with HTTPS

4. Themes?

-*- luci-theme-base…………………………. Common base for al

-*- luci-theme-bootstrap……………………… Bootstrap Theme

* luci-theme-freifunk-bno……………….. Freifunk Berlin Nordost Theme

* luci-theme-freifunk-generic………………….. Freifunk Generic Theme

* luci-theme-openwrt……………………………………. OpenWrt.org

5. Translations?

* luci-i18n-chinese………………….. Chinese (by Chinese Translators)

-*- luci-i18n-english………………………………………… English

8.编译openwrt系统

make -j8 V=s ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-

由于OpenWrt整个系统非常庞大, 编译很慢. “-j 8” 表示用8线程进行编译, “V=s”编译的时候显示编译信息. 如果你的电脑是4核建议你用8线程进行编译, 双核建议你使用4线程. 这里测试8线程编译需要一个小时才能编译完成.

9.制作卡系统

从SD卡启动顺序是A20?u-boot?uImage?OpenWrt

a.先格式化TF卡前面的1M空间,这里假设TF卡的设备是sdb

sudo dd if=/dev/zero of=/dev/sdb bs=1M count=1

b.把openwrt-sunxi-Cubieboard2-u-boot-with-spl.bin写入卡中

cd bin/sunxi/uboot-sunxi-Cubieboard2/

sudo dd if=openwrt-sunxi-Cubieboard2-u-boot-with-spl.bin of=/dev/sdb bs=1024 seek=8

c.完成上面步骤后,可以把SD卡插到板子上,上电会看到下面的打印信息。

一步一步教你制作openwrt卡系统


说明u-boot已经完全启动,下面我们对SD卡建立分区表。

d.将SD卡插回电脑,使用fdisk创建分区表:

sudo fdisk /dev/sdb

一步一步教你制作openwrt卡系统

一步一步教你制作openwrt卡系统

跟默认值对应的可直接回车,如Partition number (1-4, default 2): (直接回车)

e.格式化分区:

sudo mkfs.vfat /dev/sdb1

sudo mkfs.ext4 /dev/sdb2

f.挂载分区

sudo mount /dev/sdb1 /mnt/usb

sudo mount /dev/sdb2 /mnt/usb2

g.制作u-boot环境变量文件,将uImage拷贝到第一分区,让u-boot读取,引导系统。

cd /mnt/usb

sudo cp /openwrt/bin/sunxi/sun7i-a20-cubieboard2.dtb .
sudo cp /openwrt/bin/sunxi/openwrt-sunxi-uImage uImage
sudo cp /openwrt/bin/sunxi/uboot-sunxi-Cubieboard2/openwrt-sunxi-Cubieboard2-uEnv.txt uEnv.txt
sudo vim uEnv.txt

将uEnv.txt中的dtd修改为sun7i-a20-cubieboard2.dtb,如下

一步一步教你制作openwrt卡系统

h.拷贝第二分区文件

sudo dd if=/openwrt/bin/sunxi/openwrt-sunxi-root.ext4 of=/dev/sdb2 bs=1M

到此,系统已经做好了,将SD卡插入板子,好好享受胜利的喜悦吧。

一步一步教你制作openwrt卡系统

另外,你可以发布你制作的系统,让别人可以通过win32diskimager来烧写你的系统进他的SD卡,你的小伙伴听到会很开心把。哈哈

sudo dd if=/dev/sdb of=Openwrt.img bs=4M

一步一步教你制作openwrt卡系统

记得那天笔记本通宵编译,纪念下、

一步一步教你制作openwrt卡系统

更多详情请参考http://forum.cubietech.com/forum.php?mod=viewthread&tid=2753

喜欢 (0)
[🍬谢谢你请我吃糖果🍬🍬~]
分享 (0)
关于作者:
少将,关注Web全栈开发、项目管理,持续不断的学习、努力成为一个更棒的开发,做最好的自己,让世界因你不同。