文件准备:
1.u-Boot文件:uboot-gk7101-imx222.bin
2.内核文件:zImage
3.文件系统:goke_sys_vxxx
4.tftpd32.exe
goke硬件系统:连接串口、连接网络、上电启动
按Enter键进入U-Boot
配置uboot参数(serverip是本地电脑的IP,ipaddr是goke板子的IP)
set serverip 192.168.33.100
set ipaddr 192.168.33.213
set gatewayip 192.168.33.1
setenv loadaddr 0xC1000000
setenv bootargs 'console=ttySGK0,115200 noinitrd mem=46m root=/dev/mtdblock3 rootfstype=jffs2 init=/linuxrc ip=192.168.33.213::192.168.33.1:255.255.255.0:goke:eth0:off phytype=1'
save
reset
支持jffs2的配置:(其中mtdblockx可以使用指令查看)
setenv bootargs 'console=ttySGK0,115200 noinitrd mem=46m root=/dev/mtdblock3 rootfstype=jffs2 init=/linuxrc
/dev/mtdblock0 /dev/mtdblock1 /dev/mtdblock2 /dev/mtdblock3
# cat /proc/mtd
dev: size erasesize name
mtd0: 00040000 00010000 "uboot"
mtd1: 00010000 00010000 "ubootenv"
mtd2: 00200000 00010000 "kernel"
mtd3: 00db0000 00010000 "rootfs"
进入U-Boot进行烧写:
烧写uboot
tftp uboot-gk7101-imx222.bin
sf probe
sf erase 0 40000
sf write c1000000 0 40000
reset
烧写内核zImage的命令:
tftpboot zImage
sf probe
sf erase 50000 200000
sf write c1000000 50000 200000
sf filesize 200000
烧写根文件系统
tftp 0xC1000000 goke_sys_v2016011201
sf probe 0 0
sf erase 0x250000 0xdb0000
sf write 0xC1000000 0x250000 0xdb0000
存放用户名及密码的文件:
vi /etc/shadow
root::10933:0:99999:7:::
bin:*:10933:0:99999:7:::
daemon:*:10933:0:99999:7:::
adm:*:10933:0:99999:7:::
lp:*:10933:0:99999:7:::
sync:*:10933:0:99999:7:::
shutdown:*:10933:0:99999:7:::
halt:*:10933:0:99999:7:::
uucp:*:10933:0:99999:7:::
operator:*:10933:0:99999:7:::
ftp:*:10933:0:99999:7:::
nobody:*:10933:0:99999:7:::
default::10933:0:99999:7:::
系统自动登录,不需要输入root:
在/etc/inittab中将
ttySGK0::respawn:/sbin/getty -L ttySGK0 115200 ttySGK0 # GENERIC_SERIAL
替换为
ttySGK0::once:/bin/login root
app自启动:
vi /etc/init.d/rcS
最后添加:
/usr/local/bin/run_app.sh --sensor imx222
telnet后台:
vi /usr/local/bin/run_app.sh
最后添加:
#ulimit -c unlimited
telnetd &
/usr/local/bin/ec_ipc_goke
启动时,jffs2检查,开机速度慢,打印如下 log:
[ 2.940000] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 2.960000] IP-Config: Complete:
[ 2.960000] device=eth0, addr=192.168.33.213, mask=255.255.255.0, gw=192.168.33.1
[ 2.970000] host=goke, domain=, nis-domain=(none)
[ 2.970000] bootserver=255.255.255.255, rootserver=255.255.255.255, rootpath=
[ 10.620000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00a9fb48: 0x0001 instead
[ 10.630000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00a9fb5c: 0x0800 instead
[ 10.650000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00a9fb78: 0x0080 instead
[ 10.660000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00a9fbcc: 0x0040 instead
[ 10.670000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00a9fbe0: 0x0002 instead
[ 10.680000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00a9fbe4: 0x0010 instead
[ 10.690000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00a9fc10: 0x0080 instead
[ 10.700000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00a9fc84: 0x0100 instead
[ 10.710000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00a9fca8: 0x0008 instead
[ 10.720000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00a9fd08: 0x000c instead
[ 10.730000] jffs2: Further such events for this erase block will not be printed
[ 10.810000] VFS: Mounted root (jffs2 filesystem) on device 31:3.
[ 10.820000] Freeing init memory: 132K
取消jffs2检查: