前言

其实,就是一边工作,一边写的笔记。

一 将需要的文件通过scp命令发送发板子

语法如下:

scp file_name user_name@192.168.0.250:/home/root/

含义:将scp文件传送到192.168.0.25地址的/home/root/目录。

二 普通根文件系统的启动

从fat分区启动的bootcmd和bootargs

setenv bootcmd 'mmc dev 1 1; fatload mmc 1:1 80800000 zimage;fatload mmc 1:1 83000000 imx6ull-14x14-emmc-7-1024x600-c.dtb;;bootz 80800000 - 83000000;'

bootargs的值需要强调的是,中间不需要分号“;”间隔。添加了分号可能会报错。

setenv bootargs ' console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw;'

从ext4分区启动的bootcmd和bootargs

setenv bootcmd 'mmc dev 1 2;ext4load mmc 1:2 80800000 /home/root/zImage;ext4load mmc 1:2 83000000 /home/root/imx6ull-14x14-emmc-7-1024x600-c.dtb;;bootz 80800000 - 83000000;'

bootargs的值不用改,

setenv bootargs ' console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw;'

遍历/home/root/中的文件

ext4ls mmc 1:2 /home/root


=ext4ls mmc 1:2 /home/root
<DIR>       4096 .
<DIR>       4096 ..
<DIR>       4096 test
<DIR>       4096 bin28612 capture
<DIR>       4096 driver110 .Xauthority
<DIR>       4096 shell51 .profile3759 .bash_history
<DIR>       4096 .ssh
<DIR>       4096 bin_backup8192 boot_env.bin38351 imx6ull-14x14-emmc-7-1024x600-c.dtb379904 u-boot-imx6ull-14x14-ddr512-emmc.imx6497848 zImage
=>

在根文件系统中挂载fat分区

详细步骤如下所示:

1 创建一个挂载点/myfat

 mkdir myfat

2 使用mount命令挂载,注意-t 选项的参数时vfat,不是ext2 和 ext4

mount -t vfat /dev/mmcblk1p1 /myfat/

3 遍历挂载点

ls /myfat/

如果能够成功看到里面的文件列表,说明挂载成功了。

然后就可以向其中写入文件了。

将需要的文件复制到myfat文件夹中。

4 卸载挂载点

umount /myfat/

5 将挂载命令放到一个脚本mount.sh中:

mkdir /myfat -p
mount -t vfat /dev/mmcblk1p1 /myfat

6 将卸载命令放到另一个脚本umount.sh中

umount /myfat

三 使用ramdisk根文件系统

从fat分区启动zImage

设置bootcmd

setenv bootcmd 'mmc dev 1 1;fatload mmc 1:1 80800000 zImage;fatload mmc 1:1 82000000 imx6ull-14x14-emmc-7-1024x600-c.dtb;mmc dev 1 2;ext4load mmc 1:2 83000000 /home/root/ramdisk.img;bootz 80800000  83000000:04000000 82000000;'

设置bootargs

setenv bootargs 'console=ttymxc0,115200 root=/dev/ram0 rootfstype=ext2 rootwait rw'

从ext4分区启动zImage

设置bootcmd

setenv bootcmd 'mmc dev 1 2;ext4load mmc 1:2 80800000 /home/root/zImage;ext4load mmc 1:2 82000000 /home/root/imx6ull-14x14-emmc-7-1024x600-c.dtb;ext4load mmc 1:2 83000000 /home/root/ramdisk.img;;bootz 80800000 83000000:04000000 82000000;'

设置bootargs

setenv bootargs 'console=ttymxc0,115200 root=/dev/ram0 rootfstype=ext2 rootwait rw'

打印bootcmd

=> printenv bootcmd
bootcmd=mmc dev 1 2;ext4load mmc 1:2 80800000 /home/root/zImage;ext4load mmc 1:2 82000000 /home/root/imx6ull-14x14-emmc-7-1024x600-c.dtb;ext4load mmc 1:2 83000000 /home/root/ramdisk.img;;bootz 80800000 83000000:04000000 82000000;
=> 

打印bootargs

=> printenv bootargs
bootargs=console=ttymxc0,115200 root=/dev/ram0 rootfstype=ext2 rootwait rw
=>

四 nfs挂载根文件系统

进入uboot,设置ip地址

setenv ipaddr 192.168.5.25

设置服务器的ip地址。

setenv serverip 192.168.5.6

设置bootargs

setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs nfsroot=192.168.5.6:/home/lkmao/nfsroot/buildrootfs,proto=tcp rw ip=192.168.5.25:192.168.5.6:192.168.5.1:255.255.255.0:::'

tymxc0改成自己的串口名字,这里的192.168.5.25是板子的ip地址,192.168.5.6是ubuntu主机的ip地址,/home/lkmao/nfsroot/buildrootfs是根文件系统在ubuntu主机中的目录。照着改过来就行了,其他不用变。

setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs nfsroot=192.168.5.6:/home/lkmao/nfsroot/buildrootfs,proto=tcp rw ip=192.168.5.25:192.168.5.6:192.168.5.1:255.255.255.0:::'

另一种IP的配置,

setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs nfsroot=192.168.0.11:/home/lkmao/nfsroot/buildrootfs,proto=tcp rw ip=192.168.0.3:192.168.0.11:192.168.0.1:255.255.255.0:::'

设置bootcmd

setenv bootcmd 'mmc dev 1 1; fatload mmc 1:1 80800000 zimage;fatload mmc 1:1 83000000 imx6ull-14x14-emmc-7-1024x600-c.dtb;;bootz 80800000 - 83000000;'

记得保存

saveenv

从Tftp加载内核、设备树、ramdisk.img

64M版本

setenv bootcmd 'tftp 80800000 zImage;tftp 82000000 emmc.dtb;tftp 83000000 ramdisk.img;bootz 80800000 83000000:04000000 82000000;'

32M版本

setenv bootcmd 'tftp 80800000 zImage;tftp 82000000 emmc.dtb;tftp 83000000 ramdisk.img;bootz 80800000 83000000:02000000 82000000;'
setenv bootargs 'console=ttymxc0,115200 root=/dev/ram0 rootfstype=ext2 rootwait rw'

不使用ramdisk


setenv bootcmd 'tftp 80800000 zImage;tftp 83000000 emmc.dtb; bootz 80800000 - 83000000;'
setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs nfsroot=192.168.0.11:/home/lkmao/nfsroot/buildrootfs,proto=tcp rw ip=192.168.0.3:192.168.0.11:192.168.0.1:255.255.255.0:::'

从根文件系统加载全部

因为特别需要,所以需要这么干。

setenv bootcmd 'mmc dev 1 2;ext4load mmc 1:2 80800000 /zImage;ext4load mmc 1:2 82000000 /emmc.dtb;ext4load mmc 1:2 83000000 /ramdisk.img;;bootz 80800000 83000000:04000000 82000000;'
setenv bootargs 'console=ttymxc0,115200 root=/dev/ram0 rootfstype=ext2 rootwait rw'

五 删除密码

直接在/etc/passwd文件和shadow文件删密码可以吗?可以,但是删除以后,ssh就登录不上了。所以还是要老老实实的使用passwd命令来将密码重置为空。

就是提示输入密码的时候,直接按回车键,这样密码就为空了。

# passwd root
Changing password for root
New password:
Bad password: too short
Retype password:
passwd: password for root changed by root
# 

删除用户

deluser lkmao

删除组

delgroup lkmao

其他杂项

两个重要的环境变量

LD_LIBRARY_PATH 和PATH

PS1的配置方式

在/etc/profile文件中:

export PATH="/bin:/sbin:/usr/bin:/usr/sbin"if [ "$PS1" ]; thenif [ "`id -u`" -eq 0 ]; then
#               export PS1='# 'export PS1='\u@\h:\w# 'else
#               export PS1='$ 'export PS1='\u@\h:\w$ 'fi
fiexport PAGER='/bin/more'
export EDITOR='/bin/vi'# Source configuration files from /etc/profile.d
for i in /etc/profile.d/*.sh ; doif [ -r "$i" ]; then. $ifi
done
unset i

如果当前的用户的id是0,就执行export PS1='\u@\h:\w# ',root用户的id是0,普通用户的id大于1000,普通用户执行export PS1='\u@\h:\w# '。

umask.sh文件

其中的内容默认是

umask 022

新建一个文件a:

root@host:/etc/profile.d# touch a
root@host:/etc/profile.d# ls -ls
total 40 -rw-r--r--    1 root     root             0 Sep  7  2022 a

新建文件的属性是644,也就是说umask的计算方式如下

新建文件属性+umsak = 666

就是644 + 022 = 666;

如果想新建文件属性是664,那就将umask设置为002,实验一下:

修改文件/etc/profile.d/umask.sh将其中的内容改为umask 002,

root@host:/etc/profile.d# touch b
root@host:/etc/profile.d# ls -ls
total 40 -rw-rw-r--    1 root     root             0 Sep  7  2022 b

果然新建的文件属性变为660了。

在开发板通过nfs挂载ubuntu的目录

# mount -t nfs -o nolock 192.168.0.11:/home/lkmao/nfsroot/server /server

总结

一些总结。

uboot实践:uboot引导内核相关笔记相关推荐

  1. u-boot-2011.06在基于s3c2440开发板的移植之引导内核与加载根文件系统

    http://www.linuxidc.com/Linux/2012-09/70510.htm  来源:Linux社区  作者:赵春江 uboot最主要的功能就是能够引导内核启动.本文就介绍如何实现该 ...

  2. U-BOOT下使用bootm引导内核方法

    U-BOOT下使用bootm引导内核方法 注:   u-boot 使用的是打上: http://www.hhcn.com/cgi-bin/topic.cgi?forum=3&topic=651 ...

  3. tiny4412 uboot 2020.10版本移植(四)——uboot修改支持sd卡、eMMC引导内核及其他一些杂项设置

    本文在<tiny4412 uboot 2020.10版本移植(三)--uboot初步启动> 的基础上继续向tiny4412 uboot 2020.10版添加功能. 主要有三块内容:1. D ...

  4. Exynos4412 Uboot 移植(四)—— Uboot引导内核过程分析

    bootloader 要想启动内核,可以直接跳到内核的第一个指令处,即内核的起始地址,这样便可以完成内核的启动工作了.但是要想启动内核还需要满足一些条件,如下所示: 1.cpu 寄存器设置   * R ...

  5. u-boot移植随笔:解决引导内核遇到undefined instruction的错误

    前天解决了内核不能引导的问题了.在网上搜索了一些资料,才有点明白这个是怎么回事. 不能引导内核时提示的信息各种各样.像ERROR: can't get kernel image!.Bad Magic ...

  6. mini2440 uboot使用nfs方式引导内核,文件系统

    mini2440 uboot使用nfs方式引导内核,文件系统 成于坚持,败于止步 看了一段时间的u-boot了,到今天才真正完全实现u-boot引导内核和文件系统,顺利开机,在此记录完整过程 1.首先 ...

  7. 2012-Linux-18(使U-BOOT能正确引导LINUX for 1_20 error,but...)-1

    1.为了能使得U-BOOT正确引导linux内核.必须传递合适的参数给内核. 修改include/configs/zj2410.h如下: -- -- /************************ ...

  8. BeagleBoneBlack的U-Boot是如何引导系统的

    2014-8-27 10:45:11 BeagleBoneBlack U-Boot 是如何引导系统的 连接到开发板 通过串口连接BeagleBone Black,参见Beagleboard:Termi ...

  9. uboot加载linux内核加载那些内容,几个地址参数及uboot加载启动内核过程的理解

    关于uBoot和Linux内核中几个地址参数及uboot加载启动内核过程的理解 uboot一般使用mkimage工具先制作一个启动映象文件来引导识别内核的,uboot源代码的tools/目录下有mki ...

最新文章

  1. m_Orchestrate learning system---十三、thinkphp的验证器支持多语言么
  2. Qt 不再使用 LGPLv2.1 授权
  3. vue引入包mysql_vue中import引入文件和使用的方式总结
  4. python templates_python templates在哪
  5. webpack 4.0 配置文件 webpack.config.js文件的放置位置
  6. [转载] New Concept English 1——Lesson 7 Are you a teacher?
  7. MFC空间几何变换之图像平移、镜像、旋转、缩放
  8. 如何用python计算levenshteindistance_Levenshtein计算相似度距离
  9. 互联网大厂“抢填”高考志愿
  10. outlook 表格使用技巧
  11. 编译原理--运行时存储组织(自己看)
  12. 跨页面实现多选(转)
  13. Android—Gradle教程(九)完结篇
  14. 《东周列国志》第七十回 杀三兄楚平王即位 劫齐鲁晋昭公寻盟
  15. 多拨软件测试,虚拟机下多拨与OP下多拨测试
  16. Qt QPainter::end: Painter ended whith 2 saced states
  17. html5泡泡龙游戏开发随笔
  18. 深圳云计算培训:新手学习云计算的规划
  19. 支付宝618红包怎么领?怎么用?
  20. 博客论坛系统数据库之表的设计

热门文章

  1. 彩色星球与阿里云签署合作备忘录;京东科技和软通动力达成战略合作 | 全球TMT...
  2. The Pilots Brothers' refrigerator DFS+枚举
  3. 重构笔记——提炼函数
  4. 校验时间段是否与已有时间段存在交叉算法
  5. (-ent -ant -ment)recipe and recipient
  6. 网络蛋白质组学在计算机中应用,蛋白质组学及其相关技术在运动人体科学中的应用...
  7. blos设置具体解释
  8. java 连接 Pi数据库——piapi方式
  9. 潘多拉开发板——emwin5.44裸机移植记录(ST7789驱动)
  10. hive正则表达式regexp_extract