• 欢迎访问少将全栈,学会感恩,乐于付出,珍惜缘份,成就彼此、推荐使用最新版火狐浏览器和Chrome浏览器访问本网站。
  • 吐槽,投稿,删稿,交个朋友,商务沟通v:ai_draw
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏少将全栈吧

Cubieboard with OpenWrt

点滴 admin 10年前 (2014-04-07) 2012次浏览 已收录 0个评论 扫描二维码

Build OpenWrt

OpenWrt officially does not support the Cubieboard, however you can use this git repository with experimental support:

https://github.com/zioproto/openwrt-sunxi

Please read the instructions in this README.sunxi file:

https://github.com/zioproto/openwrt-sunxi/blob/sunxi-rebased/README.sunxi

PreBuilt Images

If you dont want to compile OpenWrt you can find some prebuilt images here:

http://stud.netgroup.uniroma2.it/~saverio/sunxi/v4/

Bootloader

You will need to compile also the bootloader. The guide to compile u-boot for cubieboard is here:

https://github.com/linux-sunxi/u-boot-sunxi/wiki

For example I compiled

make ’boardtype’ CROSS_COMPILE=arm-linux-gnueabi-

you might need to install the necessary toolchain stuff to cross compile for ARM in your system. Something like

apt-get install gcc-arm-linux-gnueabi

Prepare the microSD card

use fdisk to make two partitions the first one of 16Mb, and starting at sector 2048 (it should be the default value) the second partition can take all the rest of the SD card

format msdos the first partition: mkfs.msdos/dev/sdb1format ext4 the second partition mkfs.ext4/dev/sdb2

now you have to install the u-boot, the bootloader.

dd if=sunxi-spl.bin of=/dev/sdb bs=1024 seek=8 dd if=u-boot.bin of=/dev/sdb bs=1024 seek=32

now copy in th first partition the script.bin file and the kernel openwrt-sunxi-uImage and call the file exactly uImage

in the ext4 partition untar the tar.gz with the OpenWRT root filesystem

mount /dev/sdb1 /mnt/temp cp openwrt-sunxi-uImage /mnt/temp/uImage cp script.bin /mnt/temp/ umount /mnt/temp

Prepare files in the ext4 partition

mount /dev/sdb2 /mnt/temp cd /mnt/temp tar -zxvf /home/saverio/Dropbox/Firmware/sunxi/v4/openwrt-sunxi-cubie-rootfs.tar.gz cd ~ umount /mnt/temp

First boot

the system will not boot correctly (you will not see /proc) if you dont setinit=/etc/preinitin your uboot evironment

at the first boot press any key to stop at the bootloader, you will see something like this:

U-Boot SPL 2012.10-04280-g1a8ac55 (May 25 2013 - 19:42:12) DRAM: 1024MB SUNXI SD/MMC: 0   U-Boot 2012.10-04280-g1a8ac55 (May 25 2013 - 19:42:12) Allwinner Technology  CPU:   SUNXI Family Board: Cubieboard I2C:   ready DRAM:  1 GiB MMC:   SUNXI SD/MMC: 0 *** Warning - bad CRC, using default environment  In:    serial Out:   serial Err:   serial Hit any key to stop autoboot:  0 sun4i# 

Use the commandprintenvto see your environment

sun4i#printenv baudrate=115200 boot_mmc=fatload mmc 0 0x43000000 script.bin  fatload mmc 0 0x48000000 ${kernel}  watchdog 0  bootm 0x48000000 bootcmd=if run loadbootenv; then echo Loaded environment from ${bootenv};env import -t ${scriptaddr} ${filesize};fi;if test -n ${uenvcmd}; then echo Running uenvcmd ...;run uenvcmd;fi;if run loadbootscr; then echo Jumping to ${bootscr};source ${scriptaddr};fi;run setargs boot_mmc; bootdelay=3 bootenv=uEnv.txt bootscr=boot.scr console=ttyS0,115200 kernel=uImage loadbootenv=fatload mmc 0 $scriptaddr ${bootenv} || ext2load mmc 0 $scriptaddr ${bootenv} || ext2load mmc 0 $scriptaddr boot/${bootenv} loadbootscr=fatload mmc 0 $scriptaddr ${bootscr} || ext2load mmc 0 $scriptaddr ${bootscr} || ext2load mmc 0 $scriptaddr boot/${bootscr} loglevel=8 panicarg=panic=10 root=/dev/mmcblk0p2 rootwait scriptaddr=0x44000000 setargs=setenv bootargs console=${console} root=${root} loglevel=${loglevel} ${panicarg} ${extraargs} stderr=serial stdin=serial stdout=serial  Environment size: 1028/131068 bytes sun4i#

at this point use the commandsetenvto append theinit=/etc/preinitto the kernel boot args, see this example:

sun4i#setenv setargs setenv bootargs console=${console} root=${root} loglevel=${loglevel} ${panicarg} ${extraargs} init=/etc/preinit

Check the change withprintenvand if it looks ok you can save with saveenv

sun4i#saveenv Saving Environment to MMC... Writing to MMC(0)... done sun4i#

now to boot just typeboot. The next boots can be done automatically without these steps.

References

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

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址