1、开发板emmc存储分布
uboot(启动) linux内核 rootfs(文件系统) appfs(应用程序)
0------------------------1M---------------------------65M------------------------------------------------------819M--------------------------|
1024KB 65×1024KB 819×1024KB
2048sector 65×2 sector 819×2 sector 512字节为1扇区
2、查看下emmc分区情况
fdisk 2 -------查看第二个启动磁盘emmc分区情况
---------------------------------------------------------------------------
Partition Map for MMC device 2 -- Partition Type: DOS
Part Start Sector Num Sectors UUID Type
1 2048 131072 00000000-01 83
2 133120 1544192 00000000-02 83
Vendor: Man 000015 Snr 16304d18 Rev: 0.6 Prod: 8GTF4R
Type: Removable Hard Disk
Capacity: 7456.0 MB = 7.2 GB (15269888 x 512)
------------------------------------------------------------------------------
3、给emmc重新分区
分区命令 fdisk 2 3 0x100000:0x4000000 0x4100000:0x2f200000 0x33300000:0
给第2个emmc设备分成3个区,
第一区从0x100000字节(1MB)开始分配0x4000000个字节(64MB) Linux内核区
第二区从0x4100000字节(65MB)开始分配0x2f200000个字节(764MB) rootfs文件系统区
第三区从0x33300000字节(819MB)开始分配0剩余所有字节(剩余全部分配)appfs应用程序区
重新查看 fdisk 2
-----------------------------------------------------------------------------
Partition Map for MMC device 2 -- Partition Type: DOS
Part Start Sector Num Sectors UUID Type
1 2048 131072 00000000-01 83
2 133120 1544192 00000000-02 83
3 1677312 13592576 00000000-03 83
Vendor: Man 000015 Snr 16304d18 Rev: 0.6 Prod: 8GTF4R
Type: Removable Hard Disk
Capacity: 7456.0 MB = 7.2 GB (15269888 x 512)
-------------------------------------------------------------------------------
4、给emmc分区写入Linux内核和rootfs文件系统
mmc write 48000000 0x800 0x3000 ----uImage Linux内核镜像文件名
把内存48000000的数据向mmc设备从800扇区开始连续写入3000个扇区 ---48000000提前下载好Linux内核镜像文件
mmc write 48000000 0x20800 0x32000 ----rootfs_ext4.img 文件系统镜像文件名
把内存48000000的数据向mmc设备从20800扇区开始连续写入32000个扇区 ---48000000提前下载好rootfs文件系统镜像文件
5、设置uboot环境变量bootcmd开机加载Linux内核
开机自动启动linux内核
设置环境变量bootcmd指令格式一:setenv bootcmd mmc read 48000000 800 3000 \; bootm 48000000
设置环境变量bootcmd指令格式二:setenv bootcmd ‘mmc read 48000000 800 3000;bootm 48000000’
保存环境变量 :saveenv
-----------------------------------------------------------------------------------------------------------------------------
说明:
mmc read 48000000 800 3000
加载Linux内核:从emmc偏移为800扇区开始连续读取3000个扇区内容到内存48000000的位置
bootm 48000000
启动Linux内核:bootm会先准备好内核启动所需要的参数 然后跳转48000000位置去执行
------------------------------------------------------------------------------------------------------------------------------
6、设置uboot环境变量bootargs指定文件系统位置等信息
设置环境变量bootargs指令:setenv bootargs root=/dev/mmcblk0p2 rootfstype=ext4 init=/linuxrc console=ttySAC0 maxcpus=1 lcd=wy070ml tp=gslx680 loglevel=2
root, 指定根文件系统位置
rootfstype,指定根文件系统类型
init,指定用户空间的1号进程
console,指定控制台 ttySAC0即uart0 例如:console=ttySAC0,115200 控制台使用串口0,波特率115200.
maxcpus=1, 单核启动
lcd
tp ,指定LCD 触摸屏类型
loglevel=2,设置打印优先级阈值 (驱动课解释)
保存环境变量 :saveenv
--------------------------------------------------------------------------------------------------------
注意:
setenv bootargs .... loglevel=2....
uboot设置此项解决Linux启动重复输出WARN问题(此为驱动打印的调试信息,硬件不稳定造成的,可能是串口线松动--但是我感觉不对,串口线松了怎么会有信息传递过来!)
7、重启开发板登录使用
uboot中使用 re 命令重启开发板
账户:root
密码:123456
ifconfig eth0 192.168.1.6 --------设置网卡ip
ping 192.168.1.8 --------ping远程服务器
tftp -g -r 文件名 192.168.1.8 --------远程下载文件
-g: get
-r : remove 远程
chmod +x 文件名 --------给文件加执行权限