当前位置: 首页 > Linux

OMAPL138制作SD卡启动盘重装Linux系统

时间:2023-04-06 23:15:43 Linux

OMAPL138制作SD卡启动盘重装Linux系统我手上的创龙OMAPL138平台系统SSH坏了。我重新移植了openssh,还是不行。没办法,只好重装OMAPL138系统。按照创龙《SD卡启动盘制作》提供的步骤进行操作。在执行一个名为mksdboot-tl.sh的文件时,出现如下错误:(倒数第4行)sfdiskinvalidoption--D,然后我进入脚本文件查看这一步执行了哪些命令,发现:sfdisk-D-H....我查了sfdisk手册,没有找到-D参数,咨询了创龙AE,他们说要换ubuntu12.04系统,我用的是ubuntu16.04。我没有改变这个系统,我认为它不应该被改变。要找到问题的本质,从根源理论入手。我们不能让问题被动地改变我们,而应该主动去解决问题!!怀着好奇心,我一步步学习。经过一天一夜的锤炼,终于解决了这个问题,成功将系统写入新的SD卡中。当我看到一个全新的系统出现在我面前时,我真的很兴奋。这就是技术变得有趣的地方。废话不多说,进入正题。【简介】:OMAPL138是德州仪器的ARM+DSP架构。其实ARM还是基于TI的Sitara系列ARM例程。基本上所有的板子都可以按照本文提供的方法做成类似于SD卡启动盘的。生产。在这篇博客中,我将分享在OMAPL138或(TI其他ARM平台)本地环境下嵌入式Linux中SD卡分区重装及准备工作。本机工作于Ubuntu16.04.3amd64系统u-boot-tools组件(使用sudoapt-getinstallu-boot-tools命令安装)fdisk命令、dd命令、mkfs命令等OMAPL138的rootfs根文件系统及引导文件(压缩包已上传至百度云,见本文附件)SD卡格式OMAPL138Linux系统和boot都在SD中,所以SD卡的分区很重要。这里我们需要区分SD分区和SDka分区的类型和名称。根据OMAPL138的文档,应该分为两个区,一个boot(2G大小,格式:b型FAT32)和一个rootfs(不小于4G,85型Linux文件系统)。1.为SD卡分区插入我们的USB读卡器,等待系统读取SD卡信息。输入:查看分区sudofdisk-l得到下面截图中的图片。这里有两点需要注意。fdisk命令非常危险。在执行之前,您必须看清楚它。博主曾经因为输入错误的字母,格式化了整个机械硬盘。花了将近一天的时间才恢复过来。重点是看清楚/dev/sdc的sdc(Linux分配的不同USB口插的节点名称不一样,可能是sdd,也可能是sde,总之查清楚确认是你的目标内存卡)然后看最后两行信息,现在这张SD卡有两个分区,分别是sdc1和sdc2,我们现在要把这两个分区全部清空(你的可能有三四个分区,或者可能只有一个分区)fdisk操作上面的操作已经获取到了/dev/sdc的设备节点名,接下来我们对/devsdc进行分??区,我们需要创建两个分区,一个boot(FAT32类型,大约2G大小)和rootfs区(Linux文件系统类型,内存卡全部给它剩余大小)卸载SD卡:sudoumount/dev/sdc*这里加通配符*,卸载所有分区。sudofdisk/dev/sdc会有这样一个界面与用户交互,可以输入p回车查看当前/dev/sdc分区状态。然后我们删除所有的分区,按图进入:至此我们已经删除了所有的分区,接下来我们开始创建分区。创建分区:至此,第一个分区,我们的启动分区,已经创建完成。创建第二个分区rootfs分区:从图中可以看出,我们创建了一个12.9GiB的linux类型的分区。这是rootfs分区,不需要修改文件类型。通过p,我们可以查看创建的分区,也就是我们刚刚创建的分区,重点关注3个位置,startup*应该在sdc1位置,还有两种文件类型,一种是FAT32,一种是Linux。还有最后一步,很重要,输入w保存结果。然后,fdisk将自动退出。输入sudofdisk-l命令查看是否建立成功。如果这确实是输出,那么它就是成功的。格式化分区分区完成后,我们开始格式化分区,通过命令指定分区卷的名称。拔下读卡器,然后重新插入。卸载分区:sudoumount/dev/sdcformat/dev/sdc1:sudomkfs.vfat-F32-n"boot"/dev/sdc1format/dev/sdc2:sudomke2fs-j-L"rootfs"/dev/sdc2这一步会提示“Continueanyway(y,n)”输入y提示“Writingsuperblocksandfilesystemaccountinginformation:”直接回车,我们就完成了格式化。在引导引导区建立内存卡的工作已经完成,我们开始建立引导引导区,下载本文附件文件中的压缩包mksdboot.rar文件,然后解压到任意位置你的linux随便放哪里,我解压到~/script/mksdboot目录下,后面的命令都是以这个路径为例,注意自己修改。这些内容写在boot.cmd文件中mmcrescan0setenvbootargs${mem_args}console=ttyS2,115200n8root=/dev/mmcblk0p2rwip=offeth=${ethaddr}rootwait使用mkimage命令创建boot.scrfilemkimage-Aarm-Olinux-Tscript-Cnone-a0-e0-n'ExecuteuImage'-d~/script/mksdboot/boot.cmd~/script/mksdboot/boot.scr然后我们输入这个目录检查会生成boot.scr文件,也就是我们要写入引导区的文件。准备引导文件1)拔下读卡器,然后重新插入2)将引导目录中的所有文件复制到存储卡的引导分区。sudocp~/script/mksdboot/boot/*/media/delvis/boot/3)Unmount/dev/sdc:sudoumount/dev/sdc*4)重点:使用dd命令烧录u-boot.aisfile:sudoddif=/home/delvis/script/mksdboot/boot/u-boot.aisof=/dev/sdcseek=10如图,表示成功。(这里请使用绝对完整路径,不要使用终端中~符号代表的主目录,例如)创??建Linux文件系统1将文件系统解压到rootfs,这个没什么,拔出内存卡并重新插入,然后压缩包的文件系统中有一个rootfs.tar.zb2文件。使用解压命令解压到内存卡的rootfs区。sudotar-xvf~/script/mksdboot/filesystem/rootfs.tar.bz2-C/media/delvis/rootfs解压完成后,一张启动盘就做好了。2运行这个脚本建立matrix-gui-2.0的连接文件:注意修改脚本中的路径,第5行和第6行,脚本路径是我自己的SD卡挂的路径#!/bin/bash#检查我们是否需要为矩阵创建符号链接cd/media/delvis/rootfs/etc/init.decho-n"Creatingmatrix-gui-esymboliclink..."if[-f/media/delvis/rootfs/etc/init.d/matrix-gui-e];然后如果[-h/media/delvis/rootfs/etc/rc3.d/*matrix*];然后echo"(skipped)"elseln-s../init.d/matrix-gui-e/tmp/sdk/$$/etc/rc3.d/S99matrix-gui-eln-s../init.d/matrix-gui-e/tmp/sdk/$$/etc/rc5.d/S99matrix-gui-eecho"Createdone"fifisync3内存卡可以启动,将内存卡取出放入板子启动即可。注意调整拨码开关使OMAPL138从存储卡启动。结语今天完成了Linux内存卡的制作,看到了启动界面。附件文件:文件:mksdboot.rar链接:https://pan.baidu.com/s/1pLzc0I3密码:f9v8参考资料:[1]kookingSDcardforam335xbootmedium。TI技术支持社区。[2]]Jerry26.图解Linux命令--mkfs命令。CSDN博客。[3]创龙公司.mksdboot-tl.sh脚本文件及相关文件。创龙说明书。版权声明:1.本文由MULTIBEANS团队开发关注文章,未经允许不得转载。2、文章涉及内容如有侵权,请联系我,我会及时删除。3、尊重成绩。本文所用的所有参考文献,都是为了向无私的工程师和爱好者致敬。