主机:vmware ubuntu16.04
SDK:ti-sdk-am335x-evm-08.00.00.00-Linux-x86-Install
调试串口:UART3
启动方式:SD卡启动
SD卡制作工具:ti-processor-sdk-linux-am335x-evm-03下的create-sdcard.sh
编译kernel方式:在顶层目录make linux。
制作完成后,从SD卡启动,到如下消息,卡住不动了。
Environment size: 4702/131068 bytes
U-Boot# run bootcmd
switch to partitions #0, OK
mmc0 is current device
SD/MMC found on device 0
reading uEnv.txt
20 bytes read in 8 ms (2 KiB/s)
Loaded environment from uEnv.txt
Importing environment from mmc …
4274280 bytes read in 287 ms (14.2 MiB/s)
39132 bytes read in 32 ms (1.2 MiB/s)
Kernel image @ 0x82000000 [ 0x000000 – 0x413868 ]
## Flattened Device Tree blob at 88000000
Booting using the fdt blob at 0x88000000
Loading Device Tree to 8fff3000, end 8ffff8db … OK
Starting kernel …
出现以上情况有可能是什么原因?
Jian Zhou:
自己的板子还是TI的demo板?
为什么不用SDK08自带的create-sdcard.sh脚本
zizhen hu:
回复 Jian Zhou:
是自己的板子,根据EVM和EVM-SK修改的。
8.0自带的create-sdcard.sh会提示错误。
zizhen hu:
回复 Jian Zhou:
include/configs/am335x_evm.h 中已经设置了
"console=ttyO3,115200n8\0" \
Jian Zhou:
回复 zizhen hu:
你这个卡会不会有问题,换个卡试试。
我用脚本烧卡没发现这样的问题。
zizhen hu:
回复 Jian Zhou:
我这个问题和做卡工具应该没问题吧?
我的问题是从串口上看卡在kernel starting.
我们跳线到UART0,然后在配置里设置成UART0作为调试串口,然后可以看到有串口输出。。
这样的话问题应该是为什么无法在kernel阶段从UART3输出打印信息。
## Flattened Device Tree blob at 88000000 Booting using the fdt blob at 0x88000000 Loading Device Tree to 8fff3000, end 8ffff8df … OK
Starting kernel …
[ 0.000000] Booting Linux on physical CPU 0x0[ 0.000000] Linux version 3.14.26 (grst-hu@ubuntu) (gcc version 4.7.3 20130226 (prerelease) (crosstool-NG linaro-1.13.1-4.7-2013.03-20130313 – Linaro GCC 2013.03) ) #6 Wed Dec 7 16:46:52 CST 2016
Steven Liu1:
回复 zizhen hu:
看你的现象描述,原因应该是没配置好UART3作为串口信息输出方式。
印象中在uboot和kernel都要做相关的重配置的工作,才会让UART3可以正常的完整输出信息的。
很久之前的时候好像做过,如果只是设置了一下UBOOT下面的环境变量,你是看不到starting kernel之后的信息的,然后一直要到root登录了之后才能切换过来,并且,要看到root登录的时候,也是要在FS中做些配置的。
不确定现在你已经进行了哪些改动,还是说kernel和FS中都没做过?
zizhen hu:
回复 Steven Liu1:
kernel中需要配置吗?uboot中的boards.cfg中可以配置uboot的串口信息打印,这个已经配置了。我看代码的话好像是从uboot中传递参数到kernel。
只需要配只console=ttyO0,115200n8,FS中还没配置。
Steven Liu1:
回复 zizhen hu:
下面这个是改到UART2的,UART3类似。
If you wish to change the user-space console as well, you need to change the following line inside /etc/inittab in your rootfs partition:
S:2345:respawn:/sbin/getty 115200 ttyO0
from:https://e2e.ti.com/support/arm/sitara_arm/f/791/t/310418
zizhen hu:
回复 Steven Liu1:
你好:
你给的这个是文件系统里的控制台输出,现在我遇到的问题是调试串口从uart0修改到uart3,在uboot阶段可以输出信息,但是进入kernel之后无法从uart3输出信息,但是这个时候从示波器测量uart0,可以看到kernel的信息依旧从uart0输出。kernel的控制台的UART口,不是应该是Bootargs来设置的吗?我已经设置成了console =ttyO3,115200n8。
你给的网页上也是这么说的,这个变量我已经设置成ttyO3.
The kernel serial console can be changed by the U-Boot "console" env var:
setenv console ttyO2,115200n8
Eggsy Pang:
回复 zizhen hu:
你的方法和修改步骤似乎都是正确的,可以在Uboot的时候输入命令# Uboot:pri console,看一下你的修改没有成功,方便的话,可以截个图给我们看看嘛?