从0开始,制作Cubie版OpenWRT(功能齐全,大小仅有11M) | 少将全栈
  • 欢迎访问少将全栈,学会感恩,乐于付出,珍惜缘份,成就彼此、推荐使用最新版火狐浏览器和Chrome浏览器访问本网站。
  • 吐槽,投稿,删稿,交个朋友
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏少将全栈吧

从0开始,制作Cubie版OpenWRT(功能齐全,大小仅有11M)

点滴 admin 11年前 (2014-04-07) 2897次浏览 已收录 扫描二维码

大家说,从0开始制作系统真是太难了,有失败的,有放弃的。
好吧,给大家一种简单的buildroot的方式,那就是,使用OpenWRT
目前Openwrt对Cubietech的产品已经算大部分支持了,不过官网上还叫Work in process,和Raspbreey Pi一样,毕竟不是专业路由,不像TP-Link那样,很多产品已经可以正常工作了
好吧,如果你用其他非Cubie的sunxi系列产品,也能来看,如pcduino,MK802,等等
http://wiki.openwrt.org/doc/hardware/soc/soc.allwinner.sunxi
上面这个openwrt的官方wiki上告诉了大家各种芯片的大概东西,如几核心,等等,
A80看来都支持openwrt了,cubie啥时候出一个A80产品,肯定受欢迎

Model SoC Memory Flash/NAND Network USB Serial JTAG UEXT Other
Cubieboard A10 1024MB μSD, 4GB NAND 10/100 Mbps ethernet 2x USB2 yes n/a yes HDMI, SATA, audio
Cubieboard2 A20 1024MB μSD, 4GB NAND 10/100 Mbps ethernet 2x USB2 yes n/a yes HDMI, SATA, audio
Cubietruck A20 2048MB μSD, 8GB NAND BCM WiFi, 10/100/1000 Mbps ethernet 2x USB2 yes n/a yes HDMI, VGA, SATA, audio, IR, TOSlink

上面是官网上的内容,不过据说,ct的GMAC(千兆以太网)在openwrt下还没驱动,所以我用了老版本的cb来运行openwrt
具体大家可以自己去详细考究,给大家ct的网址,不信不能驱动的自己去上面看:
http://wiki.openwrt.org/toh/cubietech/cubietruck
我不知道ct的gmac在内核下的情况,但是我知道openwrt用的是最新的内核:

  1. root@OpenWrt:/etc/config# uname -r
  2. 3.12.5
  3. root@OpenWrt:/etc/config# uname -r -a
  4. Linux OpenWrt 3.12.5 #1 SMP PREEMPT Sun Feb 9 14:59:19 CST 2014 armv7l GNU/Linux
  5. root@OpenWrt:/etc/config#

复制代码

所以自己的ko是不能用的。

好了,现在开始编译openwrt。
如果大家觉得连接github比较快,推荐大家git clone一下github的openwrt的mirror,大家可以看到github里面有个叫mirrors的帐号,里面就有openwrt,代码我就不给了。
此外大家还可连接到openwrt的git和openwrt的svn,这两个都很好用,不过就算是连接了openwrt的git和svn,clone或
co后,在编译时还是要下载东西,所以我把我电脑上原来用来编译703n固件的openwrt复制了一份,然后make
clean了一下,告诉大家,如果大家也像我这样复制,别没事去make
destclean,这样估计还要下载,按照我这样就不用下载东西了(其实也是要,只不过少一些),方便多了,也很快。
openwrt在编译前记得要先make menuconfig一下,不用defconfig。
从0开始,制作Cubie版OpenWRT(功能齐全,大小仅有11M)
记得选cubieboard,按照图上的选,不要选703n去了……Target
Images里面可以设置ext4的大小,这就是你root分区的大小,默认是48,估计不够用,所以建议大点比较好,我设置了450M,因为我要用一张
512Mb的卡来安装系统,还有一个启动分区需要用呢,建议把nano给编译进去,好编辑东西,但是在minicom下好像有点不好用,大家可以随便选,
反正别选坏了就是,我就顺便把wpa_supplicant等东西安装上了,openwrt的菜单真是极其丰富,可以随意挑选,大家也可以选择编译SDK
来用就是。
然后make -j 8,8是我的线程数,根据你的线程数来判断,因为我的mac是双核的,4个线程,但是考虑到可以多线程来一个线程编译一个线程下载,就多弄了几个。
如果有报错,建议make V=s来编译一下,这时候最好单线程,比较好看到错误的东西。
编译完成了,然后呢?
插入一张sd卡,大小……64Mb足矣,当然,大一点也好。
把以下的sdb换成sd卡在/dev下的名字,我上次就因为没改,把硬盘mbr弄坏了

  1. fdisk /dev/sdb

复制代码

然后进去后呢,这么输入(记得enter):

  1. d
  2. 1
  3. d
  4. 2
  5. d
  6. 3
  7. d
  8. 4
  9. d
  10. n
  11. p
  12. 1
  13. 2048
  14. +30M
  15. n
  16. p
  17. 2
  18. (直接换行)
  19. (直接换行)
  20. p
  21. w

复制代码

最后的w先不要输入,看下p出来的结果是不是这样:

  1. Disk /dev/sdb: 504 MB, 504365056 bytes
  2. 16 heads, 61 sectors/track, 1009 cylinders, total 985088 sectors
  3. Units = 扇区 of 1 * 512 = 512 bytes
  4. Sector size (logical/physical): 512 bytes / 512 bytes
  5. I/O size (minimum/optimal): 512 bytes / 512 bytes
  6. Disk identifier: 0xcad4ebea
  7. 设备 启动 起点 终点 块数 Id系统
  8. /dev/sdb1 2048 63487 30720 83Linux
  9. /dev/sdb2 63488 985087 460800 83Linux

复制代码

如果是,继续。
cd到openwrt的bin/sunxi目录

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

复制代码

记得换sdb啊
然后:

  1. mkfs.vfat /dev/sdb1

复制代码


着把uImage拷贝进去,这些都不是很难,要特别讲的是,要拷贝cb的dtd进去,而script.bin不见了,如果你用的是新版本的固件,应该会有
一个功能,那就是,生成uEnv.txt,但是我这是老版本的,没uEnv,咋办?我原来是用替代品boot.scr,进去了,it doesn’t
work!load uImage以后没输出了。咋办?
于是我上网找openwrt给sunxi的uEnv.txt,找到了https://dev.openwrt.org/changeset/39438,里面就有更改的uEnv.txt,直接拷贝下来用,可以了,然后配置网络,访问cb的IP,LuCI的管理界面就出来了,设置成中文,OK。
推荐大家去使用我这个好看的luci主题。
于是,就这样了:
从0开始,制作Cubie版OpenWRT(功能齐全,大小仅有11M)
顺便告诉大家,cb的openwrt支持PPPoE和固定mac地址了,我把以太网口设置成了wan,方便使用。
这是df的结果,大小只有11M,ssh还能用:

  1. root@OpenWrt:~# df
  2. Filesystem 1K-blocks Used Available Use% Mounted on
  3. rootfs 459716 11375 444245 2% /
  4. /dev/root 459716 11375 444245 2% /
  5. tmpfs 517316 556 516760 0% /tmp
  6. tmpfs 512 0 512 0% /dev
  7. root@OpenWrt:~# df -h
  8. Filesystem Size Used Available Use% Mounted on
  9. rootfs 448.9M 11.1M 433.8M 2% /
  10. /dev/root 448.9M 11.1M 433.8M 2% /
  11. tmpfs 505.2M 556.0K 504.6M 0% /tmp
  12. tmpfs 512.0K 0 512.0K 0% /dev
  13. root@OpenWrt:~#

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