您的位置:首页 > 编程语言 > VB

【EVB-335X-II试用体验】 Yocto环境的建立及Rootfs的构建与使用(2)

2016-07-25 14:14 375 查看
在前面的文章中,我们已经使用Yocto构建出一个Rootfs,但是因为WatchDog的缘故,启动没有多久就重启了。下面我们来解决这个问题。

WatchDog的Disable

我们既可以在Rootfs启动后定期喂狗,也可以直接在kernel中disable Watchdog,在开发初期我们选择在内核中直接去掉比较快。

内核配置

使用make menuconfig来配置,结果出现了错误:



这个明显是因为确实Libary的问题,这个缺少的是libreadline,因此安装即可:

sudo apt-get install libreadline5-dev

然后在menuconfig中,我们可以查到Watchdog的位置,因此我们找到disable即可:



然后重新编译,再次测试发现还是会重启。看起来是uboot中就开启了,然后内核中还是需要去关掉才行,或者直接在uboot中需要关闭。

然后将板子开启到uboot中,停留一会发现确实会自动重启,因此可以确定是uboot中的开启了watchdog。然后查看用户手册,可以看到其Watchdog电路如下:



因此我们只需要短接J3即可。

如果想在uboot中disable,那么可以将下面几个宏去掉:



然后重新编译烧写即可。

暂时我们就先这样子做,以后我们将会在Yocto中添加代码来对应此问题,对于如何喂狗可以参考官方给的代码,代码位于:

test_code/watchdog/main.c

同时也可以看看TI的官方说明:
http://processors.wiki.ti.com/in ... T_Driver_User_Guide

官方wiki中也有对应的说明以及代码。

内核模块的处理前面我们使用Yocto编译出来了rootfs,但是rootfs中的kernel modules并不能用,因为Yocto里面默认的内核不是我们的内核,因此,我们需要将我们的内核的模块安装到对应的rootfs中。

内核的安装非常容易,只需要make modules_install的时候指定即可。

首先编译modules:

make modules

然后install modules:

make ARCH=arm INSTALL_MOD_PATH=/home/hexiongjun/nfs/evb335xii_mini modules_install

然后可以看到安装后了的kernel modules:


然后再次启动内核既可以使用了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Yocto AM335X