百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

嵌入式linux新手入门手记-第一次启动am335x

ahcoder 2025-05-03 11:45 7 浏览

由于nand中没有MLO和u-boot.img,所以我们需要设置am335x处于SD卡启动模式,从SD卡启动。

从SD卡启动,对SD卡的设置比较简单,将SD卡设置为FAT16分区,并格式化,然后将MLO,u-boot.img拷贝到SD卡上。由于我们不需要进入到kernel,所以不拷贝uImage,也不制作ubi分区。

设置am335x的LCD_data4:0为b10111,从SD卡启动(MMC0),插入制作好的SD卡到卡槽中。将am335x电路板通电,等u-boot.img启动时按下键盘任意键,超级终端显示“U-Boot:”提示符,即进入到命令行操作模式。输入以下内容,设置网络参数:

setenv ipaddr 192.168.1.51 //设置am335x板的ip地址

setenv serverip 192.168.1.50 //设置tftp和nfs的ip地址

确保计算机的tftp服务已经正确启动,/home/XXXX/tftp目录下有MLO,u-boot.img和uImage。执行以下的命令:

mw.b 0x82000000 0xff 0x20000 //将DDR的0x82000000,长度0x20000空间填充为0xff

tftp 0x82000000 MLO //从tftp服务器下载MLO到DDR的0x82000000开始的空间

nandecc hw 2 //设置DDR的工作模式

nand erase 0x0 0x20000 //擦除nand地址0x0开始,长度0x20000空间

nand write.i 0x82000000 0x0 0x20000 //将DDR地址0x82000000空间的数据写入到nand的0x0开始的空间,写入长度0x20000

上述命令将MLO写入到nand的地址0x0开始的空间。

mw.b 0x82000000 0xff 0x40000

tftp 0x82000000 u-boot.img

nand erase 0x80000 0x40000

nand write.i 0x82000000 0x80000 0x40000

上述命令将u-boot.img写入到nand的地址0x80000开始空间。

我们将使用nfs来加载uImage,以及根文件系统,所以下面的命令可以先不执行。

mw.b 0x82000000 0xff 0x500000

tftp 0x82000000 uImage

nand erase 0x280000 0x500000

nand write 0x82000000 0x280000 0x500000

上述命令将uImage写入到nand的0x280000的空间。

mw.b 0x82000000 0xff 0x2000000

tftp 0x82000000 ubi.img

nand erase 0x780000 0xf880000

nand write 0x82000000 0x780000 0x2000000

上述命令将根文件系统写入到nand的0x780000空间,长度为0x2000000。这里要注意长度应该比ubi.img实际字节大一些。

ubi.img文件的制作方法在后续的手记中记录。

上述完成后,执行nand erase 0x260000 0x20000,清除u-boot的启动参数,然后设置bootargs和bootcmd。

setenv ipaddr 192.168.1.51

setenv serverip 192.168.1.50

setenv bootargs console=ttyO0,115200n8 noinitrd root=/dev/nfs rw nfsroot=192.168.1.50:/home/XXXX/nfs ip=192.168.1.51:192.168.1.50::255.255.255.0::eth0::off mem=256M init=/linuxrc

set bootcmd 'nfs 0x82000000 192.168.1.50:/home/XXXX/nfs/boot/uImage;bootm 0x82000000'

saveenv //保存环境变量

上述将设置am335x板的ip地址,tftp和nfs服务器的ip地址,以及从nfs服务器加载uImage和ubi跟文件系统。

最后保存好上述环境变量后,将am335x电路板断电,然后将LCD_data(4:0)设置为b10011,从nand启动。

重新启动电路板,当u-boot启动后,将会自动从192.168.1.50的nfs/boot目录下下载uImage并启动。kernel启动后,将自动将192.168.1.50的nfs目录作为根文件系统加载到am335x的“/”下。

加入微信

更多内涵你懂的

搜索微信公众号:电子产品世界

或用微信扫描二维码:

Copyright (c)2000-2015 ELECTRONIC ENGINEERING & PRODUCT WORLD. All rights reserved.

相关推荐

ClickHouse日志平台这样建,分分钟秒掉ELK

目前业界的日志生态,最常用的是ELK,其次就是ClickHouse,本文会演示如何使用Vector+ClickHouse来采集Nginx日志并做清洗,最终写入ClickHouse。至...

nginx打印请求头日志方法-openresty

一、前言之前想用nginx打印收到的请求的请求头,但是只找到打印请求体的,没有打印请求头的,感觉原版nginx不支持。建议如果想打印请求头,先换成openresty(本人安装的是openresty-1...

文心快码帮你解大厂面试题:如何使用shell找到access log?

【大厂面试真题】系列,带你攻克大厂面试真题,秒变offer收割机!今日问题:在8g内存的机器,能否启动一个7G堆大小的java进程?一起看看文心快码BaiduComate给出的答案吧!如果这个问题你...

Nginx奇技淫巧之:按日期自动生成日志文件

时光闹钟app开发者,请关注我,后续分享更精彩!坚持原创,共同进步!前言之前文章:Nginx奇技淫巧之:用户行为埋点数据采集实现,介绍了Nginx获取post请求body参数生成日志文件的方法。当业务...

Nginx 日志文件详解:监控与诊断利器

随着互联网技术的快速发展,Nginx已成为最受欢迎的Web服务器之一,其稳定性、高性能和灵活性备受推崇。Nginx日志文件是Nginx服务器中非常重要的组成部分,对于监控和诊断Web应...

Nginx从入门到放弃05-访问日志与日志切割

设置访问日志当我们访问nginx服务时,nginx会记录日志,nginx日志分两种,一种是访问日志,一种是错误日志,访问日志记录在”access.log”文件中,错误日志记录在”error.log”文...

nginx系列:常用利用shell统计日志

0x01:根据访问IP统计UVUV(UniqueVisitor)独立访客,统计访问某站点的用户数;IP(InternetProtocol)独立IP数,是指独立的浏览了页面的不同IP,即统计不同的I...

Linux 必须重点监控的 17 个日志文件:运维与安全必备指南

在Linux系统的日常运维与安全管理中,日志文件的重要性不言而喻。日志不仅记录着系统运行的点点滴滴,更是排查故障、发现异常、提前预警的第一手证据。作为一名系统管理员、安全工程师,甚至普通开发者,了...

nginx 常用日志参数(nginx日志详解)

Nginx提供了多种日志参数(变量),可以用来记录请求的不同方面。常用日志参数$remote_addr:客户端的IP地址。$remote_user:客户端用户名。$time_local:局部时...

GoAccess轻量nginx日志分析工具(nginx日志收集方案)

什么是GoAccessGoAccess是一款开源、实时,运行在命令行终端下的Web日志分析工具。该工具提供快速、多样的HTTP状态统计。分析结果,可以通过XShell等客户端工具查看,并...

后端实践:Nginx日志配置(超详细)(nginx日志配置文件)

作者:antwang来源:https://juejin.im/post/5aa09bb3f265da238f121b6c前言Nginx日志对于统计、系统服务排错很有用。Nginx日志主要分为两种:...

Nginx access_log 运行日志查询和配置

1.介绍当我们学会Nginx的基本配置之后,可以通过Nginx配置Service代理。管理服务器所有的http和https请求。那么接下来就需要了解Nginx的日志控制,以及相关的文档查看了。你通过...

Nginx记录用户请求Header到access log

为了统计和其它用途,经常有人需要自定义Nginx日志,把http请求中的某个字段记录到日志中,刚好在看lua+nginx的文章,第一想到的是用lua赋值来做,但是想想有点小恶心,于是Google了一番...

介绍五款Web服务器日志分析软件(web服务器日志是什么)

  每个站长必须要看的数据统计表,都是由日志分析软件统计和分析网站情况所得出的。日志分析软件是一种解析Nginx/Apache/IIS/Lighttpd和任何其他Web服务器日志文件的软件...

Nginx系列:Nginx自带后端健康检查

严格说Nginx并没有自带针对负载均衡后端节点的健康检查功能,但是可以通过默认自带的ngx_http_proxy_module模块和ngx_http_upstream_module模块中的相关指令...