IMAX6U开发记录 VX:hao541022348
- 1 启动方式
- 2 内部RTC时钟
- 3 文件系统只读
- 4 控制台输入输出配置
- 5 设备树
- 6 进度条、背光、logo
- 7 免密登录
- 8 挂载NFS目录到imax6u的 /mnt下
- 9 恢复为从NAND Flash启动根文件系统
- 10 网络启动内核、dtb、并挂载文件系统 ---OK版本
- 11 6y2c-Uboot编译命令:
- 12 U-boot网络更新kernel+dtb+rootfs
- 13 TF卡烧录制作TF启动卡
- 14 TF固件烧写步骤:
- 15 USB烧写
- 16 在线更新Uboot
- 17 在线更新dtb和内核
- 18 在线更新 LOGO
- 19 文件系统生成rootfs.ubifs.img
- 20 Linux 如何上电挂载SD卡
- 21 LCD显示800*480
- 22 新建设备树
- 23 编译设备树&内核
- 24 独立编译设备树
- 25 Qt库 arm 源码移植编译过程
- 26 Qt字库
- 27 QT与触摸屏显示配置 /etc/profile
- 28 S90start_userapp.sh 服务器上设置NFS根文件系统 etc/init.d/S90start_userapp.sh
- 29 dock.sh
- 30 制作ppm格式logo图片
- 30 熄屏功能
- 31 Uboot 修改
- 32 led操作
- 33 设备树
- 34 设备树配置
- 35 Linux input固定设备/dev/input/eventX设备号
- 36 USB虚拟串口实验设备树配置实验
- 37 修改lcd为输出
- 38
- 39 SD卡烧录
- 40 U盘升级
- 41 发布U盘升级版本
- 42 工装烧录
- 43 熄屏功能
- 44 rootfs修改地方
- 45 出厂系统 DDR 剩余容量
- 46 IMX6ULL开发版512M 声音不能播放问题
- 47 交叉编译器配置
- 48 Uboot信息操作
1 启动方式
2 内部RTC时钟
date -s”命令仅仅是将当前系统时间设置了,此时间还没有写入到I.MX6U 内部 RTC 里面或其他的 RTC 芯片里面,因此系统重启以后时间又会丢失。我们需要将当前的时间写入到 RTC 里面,这里要用到 hwclock 命令
date -s “2021-11-30 10:28:30”
hwclock -w //将当前系统时间写入到 RTC 里面
3 文件系统只读
zlg再线文档 ->常见问题->软件常见问题。
修改方法一:
1、请控制进入uboot命令行;
2、将配置参数中的“ro”,改为“rw”;
MX6UL > setenv bootargs 'console=ttymxc0,115200 ubi.mtd=5 ro root=ubi0:rootfs rootfstype=ubifs g_mass_storage.stall=0 g_mass_storage.removable=1 g_mass_storage.idVendor=0x066F g_mass_storage.idProduct=0x37FF g_mass_storage.iSerialNumber=""'
改成:
MX6UL > setenv bootargs 'console=ttymxc0,115200 ubi.mtd=5 rw root=ubi0:rootfs rootfstype=ubifs g_mass_storage.stall=0 g_mass_storage.removable=1 g_mass_storage.idVendor=0x066F g_mass_storage.idProduct=0x37FF g_mass_storage.iSerialNumber=""'
3、保存。
MX6UL >saveenv
修改方法二:
编译自定义的uboot:
在uboot源码“/uboot-imx/include/configs/mx6g2c.h”中,将“bootargs”参数中的“ro”改为“rw”,重新编译生成u-boot.imx。
4 控制台输入输出配置
配置Uboot信息
ttymxc1
console ttymxc0 配置控制台为串口ttymxc0 NFC
console ttymxc1 配置控制台为串口ttymxc1 CA next zlg设置为ttymxc1 ttymxc1 为没有引出串口
console ttymxc2 配置控制台为串口ttymxc2 WIFI
console ttymxc3 配置控制台为串口ttymxc3 M0
console ttymxc4 配置控制台为串口ttymxc4 HCA HOST
console ttymxc5 配置控制台为串口ttymxc5 M3
/*设置为ttymxc1*/ 第一版本板子
setenv bootargs 'console=tty1 console=ttymxc1,115200 ubi.mtd=5 ro root=ubi0:rootfs rootfstype=ubifs g_mass_storage.stall=0 g_mass_storage.removable=1 g_mass_storage.idVendor=0x066F g_mass_storage.idProduct=0x37FF g_mass_storage.iSerialNumber=""'
setenv console ttymxc1
saveenv
reset
/*设置为ttymxc0*/
setenv bootargs 'console=tty1 console=ttymxc0,115200 ubi.mtd=5 ro root=ubi0:rootfs rootfstype=ubifs g_mass_storage.stall=0 g_mass_storage.removable=1 g_mass_storage.idVendor=0x066F g_mass_storage.idProduct=0x37FF g_mass_storage.iSerialNumber=""'
setenv console ttymxc0
saveenv
reset
/*设置为ttymxc4*/
setenv bootargs 'console=ttymxc4,115200 ubi.mtd=5 ro root=ubi0:rootfs rootfstype=ubifs g_mass_storage.stall=0 g_mass_storage.removable=1 g_mass_storage.idVendor=0x066F g_mass_storage.idProduct=0x37FF g_mass_storage.iSerialNumber=""'
setenv console ttymxc4
saveenv
reset
/*lcd显示 和设置为ttymxc4*/
setenv bootargs 'console=tty1 console=ttymxc4,115200 ubi.mtd=5 ro root=ubi0:rootfs rootfstype=ubifs g_mass_storage.stall=0 g_mass_storage.removable=1 g_mass_storage.idVendor=0x066F g_mass_storage.idProduct=0x37FF g_mass_storage.iSerialNumber=""'
setenv console ttymxc4
saveenv
reset
/*设置为tty1*/
setenv bootargs 'console=tty1 ubi.mtd=5 ro root=ubi0:rootfs rootfstype=ubifs g_mass_storage.stall=0 g_mass_storage.removable=1 g_mass_storage.idVendor=0x066F g_mass_storage.idProduct=0x37FF g_mass_storage.iSerialNumber=""'
setenv console tty1
saveenv
reset
5 设备树
vi arch/arm/boot/dts/imx6g2c-128m.dts
6 进度条、背光、logo
应用笔记 -> 液晶显示 -> 添加启动进度条。
M6G2C/A6G2C 工控核心板/应用笔记(Linux)/开机启动Logo制作
7 免密登录
wr vi /etc/inittab
#ttymxc0::respawn:/sbin/getty -L ttymxc0 115200 vt100 # GENERIC_SERIAL #将这行注释掉
::respawn:-/bin/sh #添加这一行
8 挂载NFS目录到imax6u的 /mnt下
假设主机的NFS目录为/nfsroot,IP地址为192.168.1.137,在EPC-6G2C-L的终端里输入以下命令,即可将主机的NFS目录挂载到本地的/mnt目录下:
1.[root@EPC-M6G2C ~]# ls /mnt
2.[root@EPC-M6G2C ~]# mount -t nfs 172.20.60.155:/DockPro/rootfs/rootfs /mnt -o nolock
3.[root@EPC-M6G2C ~]# ls /mnt
4.readme.txt # 示例的NFS服务器上有一个readme.txt文件
9 恢复为从NAND Flash启动根文件系统
setenv bootargs 'console=ttymxc0,115200 ubi.mtd=5 ro root=ubi0:rootfs rootfstype=ubifs g_mass_storage.stall=0 g_mass_storage.removable=1 g_mass_storage.idVendor=0x066F g_mass_storage.idProduct=0x37FF g_mass_storage.iSerialNumber=""'
saveenv //保存设置
reset
注意:如果修改了setenv bootcmd 'run netboot' 要修改回来。
setenv bootcmd 'echo Booting from NAND...; if run loaddtb_real; then if run loadimage_0_real; then if bootz ${
loadaddr} - ${
fdt_addr}; then echo Booting from kernle_0;else if run loadimage_1; then if bootz ${
loadaddr} - ${
fdt_addr}; then echo Bootring from kernel_1;else echo Both of kernels are error; fi; fi; fi; else if run loadimage_1; then if bootz ${
loadaddr} - ${
fdt_addr}; then echo Booting from kernel_1; else echo both kernel are error; fi; fi; fi;else echo dtb is error; fi;'
10 网络启动内核、dtb、并挂载文件系统 —OK版本
U-boot支持从TFTP服务器下载内核到本地内存后再启动内核,这种方法通常用于内核调试阶段。EPC-6G2C-L的U-boot预置了一条命令netboot,实现了通过TFTP启动内核后挂载NFS根文件系统的功能。
//setenv ethaddr 00:14:97:3c:fb:20 # 设定以太网口MAC地址
setenv ipaddr 172.20.60.166 # EPC-6G2C-L的IP地址
setenv serverip 172.20.60.155 # 服务器主机的IP地址
ping 172.20.60.155 # 测试与ubuntu主机的网络通路
//提示 is alive
setenv gw-ip 172.20.60.254 # 网关IP地址
setenv netmask 255.255.255.0 #子网掩码
setenv fdt_file imx6y2c-TenMicrosDock-256m-nand.dtb
setenv root_path /home/pengyc/DockPro/rootfs/rootfs # NFS根文件系统在ubuntu主机中的路径
/*bootcmd 默认出厂配置*/
setenv bootcmd 'echo Booting from NAND...; if run loaddtb_real; then if run loadimage_0_real; then if bootz ${loadaddr} - ${fdt_addr}; then echo Booting from kernle_0;else if run loadimage_1; then if bootz ${loadaddr} - ${fdt_addr}; then echo Bootring from kernel_1;else echo Both of kernels are error; fi; fi; fi; else if run loadimage_1; then if bootz ${loadaddr} - ${fdt_addr}; then echo Booting from kernel_1; else echo both kernel are error; fi; fi; fi;else echo dtb is error; fi;'
//run netboot # 设置完成后,运行组合命令netboot即可。
//或者
setenv bootcmd 'run netboot' # 每次开机时自动执行netboot
saveenv # 保存参数设定
reset # 重启开发板
注意 如果不让显示当前目录那就是IP变了 :设置sudo vi /DockPro/rootfs/rootfs/etc/init.d/S90start_userapp.sh 屏蔽IP设置代码。
netboot说明:
netboot=echo Booting from net ...; run netargs; tftp ${image}; if tftp ${fdt_addr} ${fdt_file}; then bootz ${loadaddr} - ${fdt_addr}; else if test ${boot_fdt} = try; then bootz; else echo WARN: Cannot load the DT; fi; fi;
netargs=setenv bootargs console=${console},${baudrate} root=/dev/nfs rw nfsroot=${serverip}:${root_path},v3,tcp ip=${ipaddr}:${serverip}:${gw-ip}:${netmask}:${hostname}:${device}
bootargs=console=ttymxc0,115200 ubi.mtd=5 ro quiet root=ubi0:rootfs rootfstype=ubifs g_mass_storage.stall=0 g_mass_storage.removable=1 g_mass_storage.idVendor=0x066F
baudrate
serverip
root_path
serverip
gw-ip
netmask
hostname
device