天嵌TQ_E9卡片电脑移植飞思卡尔yocto L4.1.15_1.0.0_ga 第四篇 新版kernel(L4.1.15-r)移植
现在2015.04版uboot已经真正可以为我们的E9服务了,接下来就是移植内核,其实自3.x以后的新版内核移植起来已经相当省心省力了,主要就是修改dts文件,方便起见,我们还是先把tftp、nfs的pc端和板子都配好,方便我们使用网络启动调试。
1.uboot环境变量设置:
TQE9>> setenv mynetargs'setenv bootargs console=${console},${baudrate} ${smp} root=/dev/nfs ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp'
TQE9>> setenv bootcmd_net 'run mynetargs;tftpboot ${loadaddr} ${bootfile};tftpboot ${fdt_addr} ${fdt_file};bootz ${loadaddr} - ${fdt_addr};'
TQE9>> setenv bootcmd 'run bootcmd_net'
TQE9>>saveenv
2.在pc(ubuntu)上安装设置tftp服务:
1. 安装
$ sudo apt-get install tftp-hpa tftpd-hpa
2. 建立目录
$ mkdir /opt/tftpboot
$ sudo chmod 0777 /opt/tftpboot
$ echo “this is a test tftp file” > /opt/tftpboot/test.txt
$ echo “this is another test tftp file” > ./test1.txt
3. 配置
$ sudo vi /etc/default/tftpd-hpa
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/opt/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s" # 这里是选项,-c是可以上传文件的参数,-s是指定tftpd-hpa服务目录,上面已经指定
4. 重启服务
$ sudo service tftpd-hpa restart
5. 测试
$ tftp 127.0.0.1
tftp>get test.txt
tftp>put test1.txt
tftp>q
miiphy_init():初始化mii_devs链表,该列表中是一系列象征mac控制器,每个miid_dev表示一条mdio总线,可挂载多个phy设备。
phy_init():根据宏定义(例如CONFIG_PHY_REALTEK、CONFIG_PHY_ATHEROS等)初始化相应一个或多个系列网卡,其中就有我们项目中使用的realtek(RTL8211E)系列网卡以及sabresd公版所使用的aheros(AR8031)系列网卡。
phy_env_init():初始化关于phy的一些uboot环境变量,这里我们不需要关心。
board_eth_init():网卡的板级初始化。
3.在pc(ubuntu)上安装设置nfs服务:
1. 安装
$ sudo apt-get install nfs-kernel-server
$ mkdir /opt/nfsroot
2.配置nfs;
$ sudo vi /etc/exports
在文文件的最后一行添加:
/opt/nfsroot *(rw,sync,no_root_squash,no_subtree_check)
3.重启服务
$ sudo service nfs-kernel-server restart
4.挂载测试指令:
$ sudo mount -t nfs 127.0.0.1:/opt/nfsroot / ./mydir
4.准备kernel:
在Kernel上要做的事情不多,总的来说也就是配置dts和make menuconfig配置内核。
1.准备kernel
$ cd /opt/fsl-yocto-L4.1.15_1.0.0-ga/fsl-release-bsp/
$ source fsl-setup-release.sh -b build-x11
$ bitbake core-image-minimal
$cp tmp/work/imx6qsabresd-poky-linux-gnueabi/linux-imx/4.1.15-r0/Git/* /opt/fsl-yocto-L4.1.15_1.0.0-ga/limux-4.1.14-e0/ -rfd
$cd /opt/fsl-yocto-L4.1.15_1.0.0-ga/limux-4.1.14-e0/
$cp arch/arm/boot/dts/imx6q-sabresd.dts arch/arm/boot/dts/imx6q-tqe9.dts
$cp arch/arm/boot/dts/imx6qdl-sabresd.dtsi arch/arm/boot/dts/imx6qdl-tqe9.dtsi
$vim arch/arm/boot/dts/imx6q-tqe9.dts
把
#include “imx6qdl-sabresd.dtsi”
改成
#include “imx6qdl-tqe9.dtsi”
2.修改imx6q-tqe9.dts以适应板子上的串口终端管脚:
把pinctrl_uart1节点改成如下:
pinctrl_uart1:uart1grp {
fsl,pins = <
MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA0x1b0b1
MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA0x1b0b1
>;
};
把pinctrl_usdhc3节点改成如下:
pinctrl_usdhc3: usdhc3grp {
fsl,pins = <
MX6QDL_PAD_SD3_CMD__SD3_CMD0x17059
MX6QDL_PAD_SD3_CLK__SD3_CLK0x17059
MX6QDL_PAD_SD3_DAT0__SD3_DAT00x17059
MX6QDL_PAD_SD3_DAT1__SD3_DAT10x17059
MX6QDL_PAD_SD3_DAT2__SD3_DAT20x17059
MX6QDL_PAD_SD3_DAT3__SD3_DAT30x17059
#if 0
MX6QDL_PAD_SD3_DAT4__SD3_DAT40x17059
MX6QDL_PAD_SD3_DAT5__SD3_DAT50x17059
MX6QDL_PAD_SD3_DAT6__SD3_DAT60x17059
MX6QDL_PAD_SD3_DAT7__SD3_DAT70x17059
#endif
>
};
在pmic节点添加status = “disabled”属性(E9没有pfuze100芯片)
pmic:pfuze100@08 {
compatible = “fsl,pfuze100”;
reg = <0x08>’
status = “disabled”;
...
}
3.配置内核
$ make distclean
官方sabresd的yocto采用的就是KERNEL-DIR/arch/arm/configs/imx_v7_defconfig,这里我们也使用这个配置方案。
$ make imx_v7_defconfig
配置交叉编译工具链
$ make menuconfig
Gerneral setup --->
Cross-compile tool prefix
(/opt/fsl-imx-x11/4.1.15-1.1.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-)
配置RTL8211E网卡驱动
Device Drivers --->
Network device support --->
PHY Device support and infrastructure --->
<*>Drivers for Realtek PHYs
$ make
$ cp arch/arm/boot/zImage arch/arm/boot/dts/imx6q-tqe9.dtb /opt/tftpboot/
取消掉ATH6KL_SDIO、BCMDHD_SDIO、BCMDHD、BRCMFMAC的驱动选择。
5.准备nfs文件系统
把ycoto中编出来的文件系统直接解压到/opt/nfsroot/下
$ cp /opt/fsl-yocto-L4.1.15_1.0.0-ga/fsl-release-bsp/build-x11/tmp/deploy/images/imx6qsabresd/fsl-image-qt5-imx6qsabresd-20160428090146.rootfs.tar.bz2 /opt/nfsroot/
$ cd /opt/nfsroot/
$ tar jxvf fsl-image-qt5-imx6qsabresd-20160428090146.rootfs.tar.bz2
$ rm fsl-image-qt5-imx6qsabresd-20160428090146.rootfs.tar.bz2
6.板子pc连同一局域网,上电启动板子。
现在板子应该已经可以进入linux系统了, mmc就不烧了。
注意:
如果启动期间串口终端出现如下错误:
fec 2188000.ethernet eth0: no PHY, assuming direct connection to switch
libphy: PHY fixed-0:00 not found
fec 2188000.ethernet eth0: could not attach to PHY
IP-Config: Failed to open eth0
IP-Config: No network devices available
则在kernel源码目录进行如下操作:
$ vi drivers/net/phy/phy_device.c +296 作如下修改:
292 static int get_phy_id(struct mii_bus *bus, int addr, u32 *phy_id,
293 bool is_c45, struct phy_c45_device_ids *c45_ids)
294 {
295 int phy_reg;
296 msleep(1);
297 if (is_c45)
298 return get_phy_c45_ids(bus, addr, phy_id, c45_ids);
299
300 /* Grab the bits from PHYIR1, and put them in the upper half */
301 phy_reg = mdiobus_read(bus, addr, MII_PHYSID1);
302 if (phy_reg < 0)
303 return -EIO;
重新编译内核并把镜像拷到/opt/tftpboot/下即可,原因是有可能phy芯片的mdio操作过快致使读不出来phy_id从而不能识别phy,这种情况可能是我的板子idea个性问题也可能是该RTL8211E芯片的共性问题,由于手上只有一块板子无从验证。
天嵌TQ_E9卡片电脑移植飞思卡尔yocto L4.1.15_1.0.0_ga 第四篇 新版kernel(L4.1.15-r)移植相关推荐
- 天嵌TQ_E9卡片电脑移植飞思卡尔yocto L4.1.15_1.0.0_ga 第三篇 新版uboot(2015.04-r0)网卡移植(RTL8211E)
经过前面的移植现在板子已经能成功跑起来yocto的2015.04版u-boot,但是如果我们ping主机则会提示不通,这里我们继续把u-boot的网卡移植上去,毕竟之后的内核移植少不了tftp功能. ...
- 天嵌TQ_E9卡片电脑移植飞思卡尔yocto L4.1.15_1.0.0_ga 第五篇 LCD+触摸屏移植
经过前面的移植,我们的板子已经可以成功进入linux,但是这个时候看不到画面的,还需要进一步调通LCD显示和触摸屏驱动. 1.uboot环境变量. 为了LCD能显示需要如下设置uboot变量: $se ...
- 天嵌TQ_E9卡片电脑移植飞思卡尔yocto L4.1.15_1.0.0_ga 第一篇 yocto项目建立
本移植过程参考飞思卡尔的Freescale_Yocto_Project_User's_Guide.pdf文档,请自行到飞思卡尔下载fsl-yocto-L4.1.15_1.0.0-ga.zip文件夹. ...
- 3g android4 移植 飞思卡尔i.MX 6Quad Android 4.2.2的中兴和Ublox 3G驱动移植 Android——4.2 - 3G移植之路
点击打开链接 3g android4 移植 点击打开链接 飞思卡尔i.MX 6Quad Android 4.2.2的中兴和Ublox 3G驱动移植 点击打开链接 Android--4.2 - 3G移 ...
- 天嵌科技为E9卡片电脑Qt快速入门攻略
本手册是广州天嵌计算机科技有限公司与Qter开源社区联合出品的入门教程,基于天嵌E9卡片电脑,目的是让E9用户可以快速完成Qt环境搭建并开始Qt嵌入式编程.该教材中使用了最新的Qt 5.4.0版本,基 ...
- 飞思卡尔I.MX6Q-QT5的移植
专栏说明 本专栏针对飞思卡尔I.MX6Q芯片产品开发,主要为视频的采集(V4L2).视频编解码(VPU).视频格式转化(IPU).H264封装为MP4.QT5的移植和显示. 飞思卡尔I ...
- 飞思卡尔 I.MX6Q-vpu视频编解码
专栏说明 本专栏针对飞思卡尔I.MX6Q芯片产品开发,主要为视频的采集(V4L2).视频编解码(VPU).视频格式转化(IPU).H264封装为MP4.QT5的移植和显示. 飞思卡尔I ...
- 飞思卡尔I.MX6Q-LTIB安装配置
专栏说明 本专栏针对飞思卡尔I.MX6Q芯片产品开发,主要为视频的采集(V4L2).视频编解码(VPU).视频格式转化(IPU).H264封装为MP4.QT5的移植和显示. 飞思卡尔I ...
- 飞思卡尔 I.MX6Q-高分辨率(1080P)视频采集编码
专栏说明 本专栏针对飞思卡尔I.MX6Q芯片产品开发,主要为视频的采集(V4L2).视频编解码(VPU).视频格式转化(IPU).H264封装为MP4.QT5的移植和显示. 飞思卡尔I ...
最新文章
- 你应该知道的Virtual Studio
- mac pdf去水印_今天才知道,Word、PDF文档去水印这么简单!一键水印说拜拜
- java/android 做题中整理的碎片小贴士(12)
- python编程、abc最大值_Python中abc
- display inline-block 垂直居中
- XenApp Command Line参数的传递
- Python 练习: 简单角色游戏程序
- 搭建测试环境_当面试时被问到“搭建过测试环境吗”, 身为小白要怎么回答?...
- mysql中的模糊查询(非原创)
- 安卓实现局部界面遮罩效果
- 阿里云ECS服务器自定义端口无法访问问题记录
- codeforces 414C C. Mashmokh and Reverse Operation(归并排序求逆序对)
- matlab 不确定度计算器,A类贝塞尔不确定度计算器
- openGL编程指南第一章
- 电子专业 英语词汇大全(持续更新)
- 真正的数字化,是CEO决策的底层逻辑要变了
- 在微信小游戏中使用tensorflow的face-landmarks-detection
- 面试系列——爱奇艺Andromeda 跨进程通信组件分析
- Firefox火狐Flash插件卡死问题完美解决方法
- 查漏补缺——字符串www.qq.com所有非空子串
热门文章
- Pandas 元素选取
- 2022.12.23-Python100day-day05-面向对象编程
- PDCP 功能与基本概念
- QT-ico图片的生成
- 例 9.7 有n个结构体变量,内含学生学号、姓名和3门课程的成绩。要求输出平均成绩最高的学生的信息(包括学号、姓名、3门课程成绩和平均成绩)。
- 触控板用不了,解决办法:
- java北京招聘_JAVA应届毕业生去北京找工作,薪资大约多少?
- sku与spu 概念
- win10 suse linux,Windows 10现已支持安装SUSE Linux子系统 附安装教程|蓝点网
- 中国最美丽的地方排行榜国家地理