移植ubuntu14.04根文件系统至beaglebone开发板探索

移植ubuntu14.04根文件系统至BeagleBone开发板探索

移植背景

我是一个linux小白,然而由于项目需要,一个师兄为机器人的控制定制了一个开发板,基于beaglebone。由于此开发板是为实现机器人控制所需功能而特殊定制的,所以其内核已经确定并预先装好,现在需要将ubuntu14.04根文件系统移植进去,然后在该系统中安装ROS工具包。可能是因为ubuntu对于ROS工具包的支持性能比较好,所以才指定要用ubuntu的吧。

经过两三个月时间的摸索,终于算是告一段落了,之前在学习过程中也总结了一系列的文档:
定制适用于ARM平台的Ubuntu rootfs(根文件系统)http://blog.csdn.net/mountzf/article/details/51707853
ubuntu中手动编译源码安装Xorg-server过程中依赖关系的解决http://blog.csdn.net/mountzf/article/details/51920174
搭建本地ubuntu镜像服务器(arm版)http://blog.csdn.net/mountzf/article/details/52014723

准备工作

熟悉linux操作系统

掌握基本的命令行操作、bash脚本编程、vi编辑器使用、makefile制作、linux文件结构等知识。因为就算日后在arm平台上也是操作ubuntu系统,必要的linux基础知识不可或缺,况且在安装系统和准备安装的过程中也是要经常用到这些知识的。开始安装了一个ubuntu的双系统,然而ubuntu系统的无线网卡特别不稳定,连接至无线网后过大概一个小时就会自己掉线然后就除非重启才能再次连接上。我这linux小白一个可是迫切需要经常上网查资料的,所以,我要么是经常重启,要么是来回切换于windows和ubuntu之间,那一周时间我关机的次数起码不下于40次吧,我都心疼陪伴我了两年时间的电脑啊。

终于有一天,我想我可以试一下虚拟机,就琢磨着把ubuntu卸载了。都怪我当时太年轻啊,以为卸载个ubuntu还不是轻而易举的事,在网上看了一下说是如果ubuntu安装在一个独立的分区,可以直接把那个分区格式化了就可以了。于是我就傻乎乎的把那个分区删除了,然后,然后我的电脑就启动不了了。因为装完双系统之后系统默认先启动ubuntu引导,把ubuntu删除之后ubuntu引导找不到了,也就无法启动了。必须进入bios选择windows boot manager启动才能进入windows系统,后来说一个什么工具可以修复,我试了一下,好像是可以启动了,但是还是会出现烦人的grub引导,对于处女座的我来说简直是不可忍受,于是我又百度一下怎么删除这个引导,不知我看了那个水货的回答,说是可以在控制台中用disk clean命令,大哥,这个命令能使随便用的么。。。然而啥也不懂的我就傻乎乎的用了,然后,我的其他的三个存储文件和资料的盘都找不到了,那可是我的全部回忆啊。就在我忧伤的觉得我要重新开始一切的时候,我在网上发现了和我一样傻的人,他后来在国外的一个网站上找了一个很好用的小工具,就把原来丢失的信息找回来了。我就怀着试一试的心态下载了下来(绝对是试一试的心态),刚开始好像并不太好用,总是卡住(好吧,我承认,我是不太会用),后面我多试了几次,大概明白了它的操作流程,最后竟然神奇的把丢失的一切找回来算了,unexpected surprise。但是那个开机grub引导还是存在,我实在是懒得和它过多纠缠,果断重装系统,本来就觉得电脑用win7系统发热厉害,就换成win10系统了。那一夜,捣鼓了整整一宿,直到第二天早晨7点钟都没有合眼,直接导致第二天晕晕乎乎如在天境。重装完系统,安装了虚拟机平台VMware workstation 12 player,然后安装了ubuntu16.04LTS server版,小巧好用,至少目前为止是这样的。

查询移植方法

查询向arm开发板移植ubuntu系统的方法,特别是仅仅移植根文件系统的步骤和注意事项。由于对于不同系统的区别了解不清楚,况且在网上基本上都是基于busybox自制根文件系统然后移植至arm平台上,所以我以为我也需要自制一个根文件系统然后抑制到arm平台上,所以就有了步骤3。

准备根文件系统

我大致学习了linux系统启动时所需的根文件系统的基本知识,了解了linux系统内核启动和根文件系统挂载的流程,所以我就结合网上教程,基于busybox开始制作根文件系统。
网上教程很多,可以参考。通过这个过程主要进一步理解了linux系统在启动的时候的具体流程,为后面定位错误、排除错误奠定了良好的基础。

同时,我也抱着试一试的心态在ubuntu官方网站查询并下载了ubuntu14.04的一些预编译好的根文件系统,万一要好使呢?唉,懂得太少的人就会怀有侥幸心理,而无法从根本上和原理上去解释为什么可行和为什么不可行,还是很可怜的,如脚下的蝼蚁一样。在beagle bone官网找到了一个适用于beaglebone的预编译好的的根文件系统,http://www.armhf.com/boards/beaglebone-black/(实际我还找了其他几个预编译好的文件系统,但是尴尬的是只有这一个好使)ubuntu-trusty-14.04-rootfs-3.14.4.1-bone-armhf.com.tar.xz。看其介绍,这个文件系统This image uses the Ubuntu 14.04 core filesystem from Ubuntu with the minimal meta package applied. The kernel is compiled from the mainlineLinux kernel git repository. The result is an easy-to-install and stable Linux image that works with both the BeagleBone and the BeagleBone Black boards.
注意:实际就是使用ubuntu官方提供的ubuntu base最小文件系统ubuntu-base-14.04.3-core-armhf.tar.gz (http://cdimage.ubuntu.com/ubuntu-base/releases/14.04/release/)进行再次定制的,内核则是来自https://www.kernel.org/pub/linux/kernel/v3.x/进行编译。我应该也可以按照这个思路来进行。

烧写文件系统至TF卡

烧写根文件系统至micro SD卡第五分区。师兄告诉我根文件系统的挂载目录在/dev/mmcblk0p5,好像是SD卡的第五个分区。汗,当时我连磁盘怎么分区可都是不知道的啊!我将板子上原有的一个含有其他根文件系统的SD卡接到电脑上,fdisk -l命令查看了一下这个卡的分区信息,分了三个分区sdb1、sdb2、sdb5,其中根文件系统就写在sdb5中。看完之后,心里大概有谱了,查了一下磁盘分区方式后,利用fdisk命令完成了磁盘分区,利用mkfs命令分别为每个分区建立了文件系统,然后将/dev/sdb5挂载至挂载点,利用cp命令将根文件系统拷贝进去,然后就可以等待启动的过程了。

注意烧写的过程要保证文件属性不变,要么直接tar解压到TF卡中,要么在复制的时候加上选项-p,因为不加-p进行复制的时候会更改文件的属性,

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Ubuntu 14.04是一种64位的操作系统,它可以通过镜像文件来安装。镜像文件是一个包含完整操作系统的文件,可以将其写入光盘或USB驱动器中。 首先,您需要从Ubuntu官方网站或其他可靠的来源下载Ubuntu 14.04 64位的镜像文件。请确保下载的文件是完整且未被修改过的,以避免安全问题。 下载完成后,您可以使用烧录软件将镜像文件写入DVD或USB驱动器中。这项操作有点类似于将文件复制到移动存储设备上,但在这种情况下,您需要将整个镜像文件写入驱动器以创建可引导的系统。这需要一些时间来完成,取决于您的驱动器速度和镜像文件的大小。 完成后,您可以将DVD或USB驱动器插入要安装Ubuntu 14.04的计算机中,然后重新启动计算机。在启动过程中,您需要进入计算机的BIOS设置界面,并确保启动选项设置为从DVD或USB驱动器引导。 一旦计算机从DVD或USB驱动器启动,您将看到Ubuntu 14.04安装程序的界面。按照屏幕上的指示进行安装,选择语言、时区和硬盘分区等选项。据需要,您可以选择完全安装Ubuntu,或将其与其他操作系统共享空间进行双重启动。 安装过程可能需要一些时间,取决于计算机的性能和硬盘空间。完成安装后,您将被提示重新启动计算机。 一旦计算机重新启动,您将可以看到Ubuntu 14.04的登录界面。您可以使用您在安装过程中创建的账户登录系统,并开始使用Ubuntu 14.04的各种功能和应用程序。 请注意,作为一个旧版本的Ubuntu14.04的支持已经于2019年结束。因此,建议您考虑升级到最新版本的Ubuntu,以获得更好的安全性和功能支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值