OMAPL138制作SD卡启动介质及重装Linux系统
OMAPL138制作SD卡启动盘及重装Linux系统
手里的创龙的OMAPL138平台的系统SSH坏掉了,我重新移植了openssh还是不好使,没有办法了只能重装OMAPL138的系统了,按照创龙给的文档《SD卡启动盘制作》按照步骤进行,当执行一个叫做mksdboot-tl.sh文件时候出现以下报错:(倒数第4行)

sfdisk 无效选项 -- D,然后我进入到了这个脚本文件中查看了这一步骤执行了什么命令,发现:

sfdisk -D -H ....我查看了sfdisk的手册,并没有发现-D参数,咨询了创龙的AE,他们给的说法是,需要换ubuntu 12.04系统,而我用的是ubuntu 16.04。我没有去换这个系统,我觉得也不应该去换,我们应该去寻找问题本质,从根源理论上出发,不能让问题被动地去改变我们,而我们应该去主动解决问题!!带着好奇心,一步一步的学习,经过一天一夜的锤炼,终于把这个问题解决了,成功的把系统写入了新的SD卡,当看见一个崭新的系统在我面前的时候,我真的挺激动的。这也正是技术有趣的地方。
废话不多说了,进入正题。
【导语】:OMAPL138是德州仪器的ARM+DSP架构,实际上ARM这块依旧按照TI Sitara系列ARM的套路来的,基本上所有的板子都可以大同小异的按照这个本文提供的方法进行SD卡启动盘的制作。在本博客中将要分享SD卡分区重新装在嵌入式Linux在OMAPL138或(TI其他ARM的平台)
本机环境和准备工作
- 本机工作于Ubuntu 16.04.3 amd64 系统
- u-boot-tools组件 (使用
sudo apt-get install u-boot-tools命令安装) - fdisk命令,dd命令,mkfs命令等
- OMAPL138的rootfs根文件系统及boot文件(已打好包上传到百度云见本文附件)
SD卡的格式化
OMAPL138的Linux系统和引导都在SD里面,所以SD卡的分区十分重要,在这里要区分SD的分区和SDka分区的类型和名称。OMAPL138的文档中给出要分为两个区一个boot(2G大小,格式:b型 FAT32)和一个rootfs(不少于4G,85型 Linux文件系统)。
1. SD卡分区
插上我们的USB读卡器,等待系统读取了SD卡的信息。输入:
查看分区
sudo fdisk -l得到下面截图的图片,这里有两个注意点,fdisk命令十分危险,一定要看清楚后执行,博主曾经的时候因为输错一个字母导致整个机械硬盘格式化,花费了将近一天恢复。重点在看清楚
/dev/sdc这个sdc,(插入不同的USB口Linux分配的挂在节点名称就不一样,可能是sdd,可能是sde,总之看清楚确认好是你的目标内存卡)
然后看倒数两行的信息,现在这个SD卡有两个分区,分别是sdc1和sdc2,我们现在要把这两个分区全部清除掉(你的可能有三四个分区,也可能只有一个分区)
fdisk操作
上面的操作已经获得了/dev/sdc的设备节点名称,然后我们对/devsdc进行分区,需要建立两个分区,一个boot(FAT32型,大约2G大小)和rootfs区(Linux文件系统型,内存卡剩余大小全给它)
解挂SD卡:
sudo umount /dev/sdc*这里加入通配符*就是解挂所有分区。
sudo fdisk /dev/sdc
会有一个这样的和用户交互的界面,可以输入p,回车,查看当前/dev/sdc分区状态。

然后我们删除所有分区,按照图片输入:

到此为止我们删除了所有的分区,然后我们就开始建立分区。
建立分区:
到此为止,第一个分区我们的boot分区建立完毕。建立第二个分区rootfs分区:

从图中可以看出我们已经建立了一个linux类型的12.9GiB大小的分区,这个就是rootfs分区,不需要修改文件类型。
通过p我们查看建立的分区,就是我们刚才建立的分区,重点3个位置,启动那个*要在sdc1位置,两个文件类型一个是FAT32 一个是Linux即可。

还有最后一步,非常重要,输入
w对结果进行保存。
然后,fdisk会自动退出。输入
sudo fdisk -l命令查看是否建立成功。
如果的确是这样的输出,就成功了。
格式化分区
我们进行了分区之后就开始对分区进行格式化操作,并通过命令指定分区卷名字。
把读卡器拔了重新插一次。
解挂分区:
sudo umount /dev/sdc对/dev/sdc1进行格式化:
sudo mkfs.vfat -F 32 -n "boot" /dev/sdc1对/dev/sdc2进行格式化:
sudo mke2fs -j -L "rootfs" /dev/sdc2这一步骤会提示“无论如何都要继续(y,n)” 输入 y
提示“Writing superblocks and filesystem accounting information:” 直接回车
到此,我们完成了格式化。
建立boot引导区
内存卡的工作已经做完了,我们开始进行boot引导区的建立,在本文的文件附录下载压缩包mksdboot.rar文件,然后解压到你linux你任意的位置,你喜欢哪里就哪里,我解压到~/script/mksdboot目录下了,以下所有命令都以这个路径为例,自己注意修改。
boot.cmd文件
文件里面写入是这些内容
mmc rescan 0
setenv bootargs ${mem_args} console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw ip=off eth=${ethaddr} rootwait
使用mkimage命令建立boot.scr文件
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Execute uImage' -d ~/script/mksdboot/boot.cmd ~/script/mksdboot/boot.scr

然后我们进入到这个目录查看会生成boot.scr文件,这个文件就是我们要写入到boot区域的文件。
准备boot文件
把读卡器拔了,然后再重新插一次
把boot目录里面的所有文件都拷贝到内存卡的boot分区。
sudo cp ~/script/mksdboot/boot/* /media/delvis/boot/
3) 解挂/dev/sdc: sudo umount /dev/sdc*
4) 重点:使用dd命令烧写u-boot.ais文件 :sudo dd if=/home/delvis/script/mksdboot/boot/u-boot.ais of=/dev/sdc seek=10

如图,表示成功。(这里请使用绝对完全的路径,不要使用终端里面例如 ~ 这个符号代表的主目录)
建立Linux的文件系统
1 解压文件系统到rootfs
这个就没有什么了,把内存卡拔了再插一下,在压缩包的filesystem里面有rootfs.tar.zb2文件,使用解压命令,解压到内存卡的rootfs区域即可。
sudo tar -xvf ~/script/mksdboot/filesystem/rootfs.tar.bz2 -C /media/delvis/rootfs
等待解压完成之后,一个启动盘就做好了。
2 建立matrix-gui-2.0的连接文件
通过运行这个脚本来进行:注意修改脚本里面的路径,在5和6行,这个脚本路径是我自己SD卡挂在的路径
#!/bin/bash
# check if we need to create symbolic link for matrix
cd /media/delvis/rootfs/etc/init.d
echo -n "Creating matrix-gui-e symbolic link..."
if [ -f /media/delvis/rootfs/etc/init.d/matrix-gui-e ]; then
if [ -h /media/delvis/rootfs/etc/rc3.d/*matrix* ]; then
echo " (skipped) "
else
ln -s ../init.d/matrix-gui-e /tmp/sdk/$$/etc/rc3.d/S99matrix-gui-e
ln -s ../init.d/matrix-gui-e /tmp/sdk/$$/etc/rc5.d/S99matrix-gui-e
echo "Create done"
fi
fi
sync
3 内存卡启动
可以把内存卡拿下来,放在板子里启动了。注意调节拨码开关让OMAPL138从内存卡启动。
结束语
今天完成了Linux内存卡的制作,完成了,看到了启动界面。

附录文件:
文件:mksdboot.rar
链接:https://pan.baidu.com/s/1pLzc0I3 密码:f9v8
参考文献:
[1] kooking著 SD卡给am335x用作启动介质. TI技术支持社区.
[2] 杰瑞26著. 图解Linux命令--mkfs命令. CSDN博客.
[3] 创龙公司著. mksdboot-tl.sh脚本文件和相关文档. 创龙手册.
版权声明:
1. 本文为MULTIBEANS团队研发跟随文章,未经允许不得转载。
2· 文中涉及的内容若有侵权行为,请与本人联系,本人会及时删除。
3· 尊重成果,本文将用的参考文献全部给出,向无私的工程师,爱好者致敬。
OMAPL138制作SD卡启动介质及重装Linux系统的更多相关文章
- ZYNQ的Linux Linaro系统镜像制作SD卡启动
ZYNQ的Linux Linaro系统镜像制作SD卡启动 0. 概述 ZYNQ生成uboot的时候和正常的ARM设备不太一样,ZYNQ属于二次辅助启动uboot然后由uboot启动内核,大概意思就是 ...
- ZYNQ的Linux Linaro系统镜像制作SD卡启动(仅使用mkfs部分,其他部分待看)
0. 概述 ZYNQ生成uboot的时候和正常的ARM设备不太一样,ZYNQ属于二次辅助启动uboot然后由uboot启动内核,大概意思就是 ZYNQ内部有一个机制,该机制不可修改,可以通过拨码开关控 ...
- 制作SD卡启动自己编译的uboot.bin
README for FriendlyARM Tiny4412 -----------------------------------------------------1. Build uboot ...
- Exynos4412从SD卡启动的简单网络文件系统制作
Exynos4412从SD卡启动的简单网络文件系统制作 1. 简介 嵌入式系统能够在开发板上正常运行,需要先进行系统配置,一个完整的嵌入式系统应该包含的几个部分::uboot,kernel,rootf ...
- s5p6818 从SD卡启动程序(制作SD启动卡)
背景: 最近在学习uboot,其中有一步很重要的任务就是需要实现uboot 的验证,没有办法验证uboot是不是自己做的,那么整个开发就会收到阻碍.另外,从公司现在开发的板子来看,uboot从sd卡启 ...
- Samsung_tiny4412(驱动笔记01)----linux 3.5,U-Boot,Busybox,SD卡启动环境搭建
/*********************************************************************************** * * linux 3.5,U ...
- [i.MX6q]i.MX6q处理器,linux操作系统平台搭建 从SD卡启动系统
转自:http://www.07net01.com/linux/2016/02/1232094.html 参照1:http://blog.csdn.net/girlkoo/article/detail ...
- imx6 android SD卡启动
工作中需要将imx6的android系统从SD卡启动,所以就分析了MfgTool中的脚本,分析android的分区情况,并尝试自己操作,竟然成功了,记录于此. 参考文档 http://www.kanc ...
- 6410开发板sd卡启动时烧写u-boot.bin以及u-boot-spl-16k.bin步骤
参考文档:<SMDK6410_IROM_APPLICATION NOTE_REV 1.00>(可以从这里下载到> 参考博客:Tekkaman的博文<u-boot-2010.09 ...
随机推荐
- linux常用指令集-持续更新...
0.查看所有java进程GC情况:for i in `jps|egrep -v "Jps|Launcher" |cut -d" " -f1`;do pwdx $ ...
- HTTP Strict Transport Security
HTTP Strict Transport Security (通常简称为HSTS) 是一个安全功能,它告诉浏览器只能通过HTTPS访问当前资源, 禁止HTTP方式. 作用 一个网站接受一个HTTP的 ...
- raw_input与input的区别
1. 版本差异 raw_input——>python2版本 input——>python3版本 2. 输入格式差异 就是raw_input()随便输都是字符串,而input()必须按照Py ...
- sqlserver ceiling函数用法
ceiling函数返回大于或等于所给数字表达式的最小整数. floor函数返回小于或等于所给数字表达式的最大整数. eg: select ceiling(4.42) ---5select CEILIN ...
- Fiori Launchpad Tile点击后跳转的调试技巧
在SAP Fiori launchpad 里点击某个tile之后,后台会计算出跳转的目标url返回给前台. 下图中一个个白色的方框就成为tile.每个tile点击之后,会打开一个对应的Fiori应用. ...
- 03_P52 课后作业
1. 软件开发的早期阶段为什么进行可行性研究?应该从哪些方面研究系统的可行性? 1.进行可行性研究是为了该软件项目是否值得开发?是否具有经济效益?是否违反法律道德?是否技术可以实现?是否风险性高? 2 ...
- BZOJ2836:[SHOI2012]魔法树(树链剖分)
Description Input Output Sample Input 4 0 1 1 2 2 3 4 Add 1 3 1 Query 0 Query 1 Query 2 Sample Outpu ...
- 【[ZJOI2014]力】
题目 好神仙啊 \[F_{j}=\sum_{i<j}\frac{q_iq_j}{(i-j)^2}-\sum_{j<i}\frac{q_iq_j}{(i-j)^2}\] 求\(\frac{F ...
- maven之构建多模块maven工程
(一)环境搭建 1.Maven下载 ; http://maven.apache.org/download.cgi 第一个在Linux使用,第二个是在Windows,第三和第四是源码: 我们将下 ...
- mybatis学习记录二——mybatis开发dao的方法
4.1 SqlSession使用范围 4.1.1 SqlSessionFactoryBuilder 通过SqlSessionFactoryBuilder创建会话工厂SqlSession ...