马上注册 登录
中文乐高 返回首页

t_fisher的个人空间 https://bbs.cmnxt.com/?37285 [收藏] [复制] [分享] [RSS]

日志

利用官方固件搭建EV3自制系统-3

热度 1已有 2815 次阅读2014-7-10 10:56 |个人分类:EV3

3      制作流程 
3.1   MINI-SD卡的准备

EV3 MINI-SD卡的启动需要按照如下的规范:

两个分区

第一个分区50M,文件系统是FAT,用于放置linux内核文件

第二个分区最好大于1G,文件系统是EXT3,用于放置linux根文件系统

 

具体的操作细节,可以参考如下的网页

http://www.linuxidc.com/Linux/2011-11/47797.htm

3.2   固件处理 
ev3source/lms2012/open_first/script/make_image.pl中分析出ev3固件的文件格式
偏移 文件 说明
0x0 uBoot mini-sd不用
0x50000 uImage linux内核文件
0x250000 EV3.cramfs.bin cramfs映像

  • uImage处理

编写一个小程序将uImage从文件EV3 Firmware V1.06E.bin读出

 

  •  linux内核镜像写入mini-sd

mount /dev/sdb1 /mnt/d1          #加载mini-sd卡的fat分区 
cp uImage /mnt/d1                #拷贝内核镜像文件 umount /mnt/d1

 

  • cramfs映像处理

mount -t cramfs -o loop,offset=0x250000 "EV3 Firmware V1.06E.bin" /mnt/d2

目录/mnt/d2内容如下

  • linux文件系统写入mini-sd

cd /mnt/d2 tar –zcvf /home/root/ev3.tgz *   #EV3的文件系统打包   
umount /mnt/d2 mount /dev/sdb2 /mnt/d2          #加载mini-sd卡的EXT3分区 
cd /mnt/d2 tar –zxvf /home/root/ev3.tgz    #解压EV3文件系统   
  umount /mnt/d2   

3.3   console线连接

杜邦线仅仅需要三根,红黄蓝

a      USB TO TTL

  •  -GND
  •  -RXD
  •  -TXD

b      NTX插座

 

c           连接图

ps: 原以为需要洞洞板做连接,插口回来后发现不需要,直接使用杜邦线就可以了。当然要小心点,工作时不要碰到就行。

 

3.4   终端显示验证

接好线后,插入mini-sd卡,在mac/linux上面打开一个终端

执行cu -s 115200 -l /dev/cu.SLAB_USBtoUART

打开EV3电源,终端上会显示

EV3进入到官方操作界面,并且终端无响应。

 

3.5   启动WIFI

按照固件启动的流程,会直接进入到lms2012提供的界面中,而没有启动wifi,我们需要做如下的修改:

 

a.       修改mini-sd

关机,取出mini-sd卡,重新在linuxmount

 b.       增加wifi脚本

/mnt/d2/etc/init.d目录下增加一个可执行脚本wifi.sh,主要是加载无线网卡需要的内核驱动模块,以及启动WIFI,最后通过dhcpcd获得IP。内容如下

 #!/bin/sh

 echo "load modules compat"

/sbin/insmod /lib/modules/2.6.33-rc4/kernel/compat/compat.ko

echo "load modules cfg80211"

/sbin/insmod /lib/modules/2.6.33-rc4/kernel/net/wireless/cfg80211.ko

echo "load modules mac80211"

/sbin/insmod /lib/modules/2.6.33-rc4/kernel/net/mac80211/mac80211.ko

echo "load modules ath"

/sbin/insmod /lib/modules/2.6.33-rc4/kernel/drivers/net/wireless/ath/ath.ko

echo "load modules ath9k_hw"

/sbin/insmod /lib/modules/2.6.33-rc4/kernel/drivers/net/wireless/ath/ath9k/ath9k_hw.ko

echo "load modules ath9k_common"

/sbin/insmod /lib/modules/2.6.33-rc4/kernel/drivers/net/wireless/ath/ath9k/ath9k_common.ko

echo "load modules ath9k"

/sbin/insmod /lib/modules/2.6.33-rc4/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko

echo "load modules ath9k_htc"

export FIRMWARE_DIRS="/lib/firmware"

/sbin/insmod /lib/modules/2.6.33-rc4/kernel/drivers/net/wireless/ath/ath9k/ath9k_htc.ko

 echo "start wifi"

cd /home/root/lms2012/sys

./wpa_supplicant -B -c /etc/wpa_supplicant.conf -iwlan0

 

echo "requesting IP address"

udhcpc --retries=10 --now -i wlan0 -h ev3

 

d      wifi.sh加入启动目录level5

 cd ../rc5.d

ln –s ../init.d/wifi.sh S40wifi

 

e     修改WIFI密码

修改/mnt/d2/etc/wpa_supplicant.conf

network={

       ssid="Bella"

     psk=dbc9c6cf6d4d8e9405842d2e4ab726f33f10de62c30254ff19512af0dca1bc0f

       key_mgmt=WPA-PSK

       proto=RSN

       pairwise=CCMP,TKIP

       group=CCMP

}

修改为自己wifissid

使用wpa_passwd ssid passwd生成psk。注意,大小写敏感

f     删除rc5.d/S99lms,并卸载/mnt/d2

g     取出mini-sd,插入EV3,开机

如果一切顺利的话,终端的内容如下

 

另外,可以使用puttytelnet直接连接EV3ip,192.168.100.10。当然为了后期方便,大家还可以把sshd(dropbear)加入到rc5.d中。

 

到此为止,目标A,B,C大功告成


路过

雷人
1

握手

鲜花

鸡蛋

刚表态过的朋友 (1 人)

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 马上注册

QQ|手机版|中文乐高 ( 桂ICP备13001575号-7 )

GMT+8, 2024-5-21 00:56 , Processed in 0.047439 second(s), 20 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

返回顶部