最近入手了朱有鹏老师的嵌入式Linux核心课程和Study210开发板,开始跟着视频进行嵌入式linux的系统学习。由于视频录的时间很早,在跟着视频学习的过程中发现有些细节跟视频里的的对不上(主要是因为我现在用的win10系统,拍视频的时候应该还没有win10吧),特此记录一下学习过程,尤其是踩坑和跳坑的过程。
目录
1. 主机通过开发板的串口访问
2. 制作启动SD卡
3. 使用fastboot工具烧录系统
4. 变砖头以后使用dnw通过usb刷机
1. 主机通过开发板的串口访问
第一步当然是使用串口转USB线连接开发板的UART2口和电脑啦。注意这里连板子的UART2,因为出厂刷的系统QT默认使用串口2输出(之所以提这个是因为之后刷安卓2.3的时候是通过串口0输出的,到时候要记得换串口)。
第二步是安装PL2303串口驱动(PL2303_Prolific_DriverInstaller_v1.9.0),这一步按系统提示一直下一步就行了。将电脑连板子的串口后,win10系统会提示安装驱动,选择驱动所在的路径就可以。安装好后,设备管理器会自动为其分配一个COM端口号。此时可选择在高级设置里将端口号修改为为COM1。
接下来就可以使用串口监视软件来监视开发板啦。我使用的是mobaxterm,但不管什么软件,注意这点:串口设置中“流量控制”(flow control)一定要选“无”。
2. 制作启动SD卡
由于inand中已经有bootloader了,出厂默认刷的QT镜像是可以正常启动的。为了让系统从SD卡启动,我们必须先破坏inand中已有的bootloader,具体做法是在Linux命令行使用dd命令来破坏inand的第一扇区,破坏好后会显示SD checksum Error。
busybox dd if=/dev/zero of=/dev/mmcblk0 bs=512 seek=1 count=1 conv=sync
sync
接下来制作SD卡启动盘。将SD卡插入电脑,在我的电脑里右键格式化SD卡。接着,以管理员身份运行x210_fusing_tool将uboot烧录至SD卡(使用光盘A里linux下或android下提供的uboot.bin都可以,都是384K)。
3. 使用fastboot工具烧录系统
安装fastboot驱动
fastboot工具的作用是帮我们把不同的系统烧到开发板上。烧录前我们需要先安装fastboot的驱动(x210_android_driver),具体做法如下:使用micro usb线将开发板连接至电脑;重启开发板,在autoboot倒计时3秒期间按下键盘任意键进入uboot;键入fastboot后电脑会识别到新硬件并提示安装驱动。
禁用强制驱动程序签名
win10系统安装这类驱动有个坑,就是驱动无数字签名,在WIN10中是不安全的驱动,所以显示哈希值不在范围内不能安装。朱老师在qq群里提供了解决办法,即“禁用强制驱动程序签名”。后面安装dnw工具的驱动的时候也会提示同样的错误,解决办法也是一样的。可以参考http://jingyan.baidu.com/article/624e74594dbc8d34e8ba5aa6.html
1.找到WIN10的设置,点击“设置”
2.点击最后一个“更新和安全”,然后点击“恢复”
3.点击“恢复”之后,在右边点击高级启动下面的“重新启动”,此时电脑会重新启动,如果有其
他重要程序在跑,请慎重
4.重启之后会出现几个选项,点击选项“疑难解答”
5.然后点击“高级”,
启动设置,重启
6.这会重启之后就跳出一个列表,其中有安全模式等选项,也包括这里我们关心的
“禁止强制驱动程序签名”
7.选择“禁用强制驱动程序签名”,对应哪个数字就按那个数字,之后
电脑会重新启动
8.重启之后,驱动就可以成功安装。若有提示点击继续安装即可。
使用fastboot烧录android4.0.4
fastboot的驱动安装好以后就可以使用fastboot烧录系统了。这里只记android4.0.4的烧录过程,别的系统是类似的。
开发板这边的操作是:重启开发板,在autoboot倒数3秒前按任意键进入uboot,接着键入fastboot命令,会显示如下分区信息。我们接下来就是要将镜像烧录进boot loader、kernel、system分区。
主机这边的操作如下:将fastboot.rar解压到主机随便哪里,我这里解压到D:\Downloads\fastboot,注意到里面包含fastboot.exe等工具。接着为我们要烧制的系统创建子文件夹(如android4.0.4)并将系统镜像(光盘B中\android4.0.4\image\inand)拷贝到此子文件夹中。
主机运行cmd,进入fastboot文件夹,可以使用fastboot devices命令查看到fastboot连接到了开发板设备信息SMDKC110-01。
fastboot devices
fastboot flash bootloader android4.0.4/uboot.bin
fastboot flash kernel android4.0.4/zImage-android
fastboot flash system android4.0.4/x210.img
fastboot reboot
接着使用fastboot flash XXX分区 XXX路径来烧录刚拷贝到子文件夹的镜像文件至相应分区(如下图显示的不同色块代表不同分区)。至此烧录过程结束,接着使用fastboot reboot重启开发板。
4. 变砖头以后使用dnw通过usb刷机
到前面其实刷机过程已经结束了,但是我在有一次刷安卓2.3的时候输入fastboot后提示无分区,接着fdisk -c 0了以后再重启开发板就感觉不妙。完了,uboot被我弄坏了,开发板成砖头了。这里的具体表现是:无论开发板通过串口0还是串口2连接电脑,串口监视器这边都没有显示。这时瞄到朱老师后续课程里还有dnw刷机的教程,就索性试了一下。
安装dnw工具驱动
首先还是照例要先安装dnw工具的驱动。光盘里提供的驱动最多到win-7,可我的操作系统是win10,不管了就拿他来试试吧。这里有坑,按照视频里使用dseo13b这个工具弄数字签名好像一直成功不了,所以我后面还是按照之前装安卓驱动的方法来“禁用强制驱动程序签名”。参考【dnw驱动数字签名】解决Win10安装USB驱动时,"INF不包含数字签名信息"_baidu_37973494的博客-CSDN博客
注意,之前虽然我们安装安卓驱动的时候禁用过数字签名,但是好像重启后就失效了,所以得再禁用一遍。
接着正式开始安装dnw的驱动。开发板的开关拨到OM5,使用usb连接开发板至主机,一直按住power键。此时,电脑会自动弹出安装驱动,或者直接进设备管理器的选择更新SECS5PC110 Test B/D.驱动,选择win7-64驱动即可,之后选择“始终安装此驱动”。
下载x210_usb.bin和uboot.bin至开发板
驱动安装好后,就可以使用dnw来下载uboot了。x210_usb.bin地址是0xd0020010,uboot.bin地址是0x23e00000。配置地址的操作为:configuration, options,烧录的操作为:USB port , transmit, transmit。
注意,dnw烧录过程这里又有坑,总结如下:
- dnw工具没有明确的烧录成功的提示,顶多就是电脑发出一个设备断开又连上的声音。但当dnw卡在downloading的进度条画面肯定是不对的,这点朱老师视频里也提到了。这时重新启动一下开发板或者插拔一下usb线就行。
- dnw刷机期间要一直按住开发板power键,并事先打开串口监视软件,在autoboot倒数3秒期间及时按键进uboot,这是因为其实在dnw里烧uboot.bin的这几秒钟开发板就已经自己启动了。
- 使用fdisk -c 0分区后再使用fastboot烧录,烧录完毕记得开关拨回EMMC。
- 若烧录时遇到这样的错误,就把system分区重新烧一下就行了。若还是不行,就把OM5拨回EMMC(从inand启动),再使用fastboot重烧一下。