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

Buildroot系统移植Ubuntu(ubuntu core 移植)

off999 2024-11-10 10:27 23 浏览 0 评论

原文发表于个人博客,在头条是平台首发。原创作品,转载请注明出处。

作者:王永建,联系方式:blog@wangyongjian.cn,博客地址:blog.wangyongjian.cn


背景说明

这篇文章的标题可能不是恰当。情况是这样的,我买了一个HTNICE的GT6757嵌入式主机,采用的ARM A35架构,800Mhz主频,配512Mb内存和8G emmc存储。设备整体指标均符合我的应用需求。随机安装了Buildroot打包的Linux系统,内核版本5.10.146。我以前开发的应用程序是基于Ubuntu系统,直接用过来无法运行,涉及到很多依赖,通过Buildroot打包的系统自身没有提供包管理工具,给我们的移植工作带了一些难度。厂家暂时没有做Ubuntu支持镜像,本着不断折腾的探索精神,尝试着通过Google搜索了一下,还真有一些文章在介绍实现的方法。翻看了几篇文章发现这些文章的源头可能都是一个出处,且有不同的删减。很难根据一篇文章很顺利的完成移植。这里将完整的过程做个记录,希望能对看到这篇文章的朋友提供些参考。

移植说明

Ubuntu为嵌入式应用提供了Ubuntu Base,用于为特定需求创建自定义映像的最小文件系统,是Ubuntu可以运行的最小环境。详细说明见Base - Ubuntu Wiki

针对每个发行版,官方都提供了不同CPU架构的Base文件系统,可通过Index of /ubuntu-base/releases根据需要下载不同的版本。

移植准备

  • 已下载的Ubuntu Base文件系统文件
  • 目标设备的内核文件(Linux kernel)
  • 目标设备的引导文件(boot-loader)
  • 开发系统,我是在实体机上直接操作的,也可以在开发机上操作,需要用到qemu-user-static软件包,qemu-user-static是一个仿真器,用于在不同CUP上运行待构建系统的指令集。我检索到的文章这是基于这个软件包的,可根据需要安装,相关方法可自行搜索,相关文章很多。

移植步骤

1.创建文件夹并准备Ubuntu Base

在 home下载创建ubuntu文件,将已下载的Ubuntu Base文件复制到此目录进行解压,并进入/home/ubuntu/

tar -zxvf ubuntu-base-18.04.5-base-arm64.tar.gz

2.在开发系统挂载Ubuntu Base

mount -t proc /proc ./proc
mount -t sysfs /sys ./sys
mount -o bind /dev ./dev
mount -o bind /dev/pts ./dev/pts

(1) proc文件系统是指一类虚拟文件系统,它不是从磁盘上的分区中读取数据,而是通过内核在内存中动态生成的。

proc文件系统通常用于提供有关系统内核和进程信息的接口,例如系统内存使用情况、硬件设备信息等。在Linux系统中挂载proc文件系统的命令格式如下:

mount -t proc [选项] /proc [挂载点]
其中,-t proc参数表示将要挂载的文件系统类型是proc文件系统;/proc表示要挂载的proc文件系统的挂载点;ubuntu/proc表示挂载点在当前目录下的一个名为ubuntu的子目录中的proc子目录。通过这个命令,可以将proc文件系统挂载到指定的挂载点,以便访问其中包含的有关系统内核和进程信息的接口。

(2)mount -y sysfs命令和mount -t proc同理;

(3) mount -o bind命令将前一个目录挂载到后一个目录上,所有对后一个目录的访问其实都是对前一个目录的访问;

Ubuntu-base 根文件系统构建 - 蒲城小农 - 博客园)

3.设置Ubuntu Base系统DNS

因为对Ubuntu Base系统定制需要安装软件,需要联网,下载的Ubuntu Base文件系统里并没有设置DNS,需要联网,这里先将开发机的DNS配置复制到Ubuntu Base系统。

cp /etc/resolv.conf /home/ubuntu/etc/resolv.conf

4.进入Ubuntu Base系统并进行定制

chroot chroot ./

更新软件源,大部分文章都提到了更换源的说明,这个根据需要处理即可,我用的系统源,速度还可以。

apt-get update

这里遇到了一个警告提示;W: Download is performed unsandboxed as root as file '/var/cache/apt/archives/partial/libc6_2.27-3ubuntu1.6_arm64.deb' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)。一开始尝试了根据提示去修改权限,结果警告依旧存在,后来发现这个并没有什么影响,遇到了可以忽略

升级到最新版

apt-get upgrade

同样也会看到一个警告;W: Download is performed unsandboxed as root as file '/var/lib/apt/lists/partial/ports.ubuntu.com_ubuntu-ports_dists_bionic_InRelease' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied),同上面忽略即可。

安装软件,这个根据需要安装即可,我安装了这么多

apt-get install language-pack-en-base sudo ssh net-tools ethtool

apt-get install schroot python avahi-daemon netbase binutils

apt-get install debhelper  ifupdown  udev  iputils-ping resolvconf wget apt-utils nano

修改密码,我开发的应用是运行在root下的,这里并没有创建新用户,可以根据需要创建。

passwd root

初始化完成,退出Ubuntu Base

exit

上面做过的Mount依次umount一下,我没有做,直接重启了一下设备。

复制内核,将目标设备的内核复制到Ubuntu Base

cp -R /lib/modules /home/ubuntu/lib/

打包Ubuntu Base

cp -R /lib/modules /home/ubuntu/lib/

将打包的Ubuntu Base文件系统恢复到目标设备上,各个开发版的略有不同,请根据厂家提供的方式处理。

恢复完成后重新进入系统。可以看到已经是Ubuntu系统了,可以通过APT工具来解决依赖包问题了。

小问题处理

进入Ubuntu系统后,发现没有网络,这个咋玩

应该是在上面的步骤中没有配置网络造成的,这里参考了Rockchip RK3399 - 移植ubuntu 20.04.4根文件系统 - 大奥特曼打小怪兽 - 博客园


echo auto eth0 > /etc/network/interfaces.d/eth0
echo iface eth0 inet dhcp >> /etc/network/interfaces.d/eth0
ifup eth0

echo auto eth1 > /etc/network/interfaces.d/eth1
echo iface eth1 inet dhcp >> /etc/network/interfaces.d/eth1
ifup eth1

问题解决

看了一下资源占用情况,新系统下还可以,后续继续折腾,还要再验证一下稳定性后才改用于生成环境。

相关推荐

photoshop最新软件版本(ps最新版本是)

你好,AdobePhotoshop的最新版本是PhotoshopCC2020。新版本的Photoshop具有更多的功能和改进,包括云同步,自动对象选择,增强的画笔和填充工具等。此外,新的Phot...

扫图识别图片在线(扫图识别app下载)
扫图识别图片在线(扫图识别app下载)

1、首先打开手机相册,然后选择你需要识别的图片;2、长按图片,在应用选择中选择“提取文字”;3、对于通过扫一扫识别图片后所得到的文字内容,我们可以进行分享或保存到便签中进行修改编辑,还可以转换到其它文档中进行处理。拓展资料:二维码是近年来在...

2026-01-17 16:03 off999

qq免费申请注册账号(官方免费申请qq号注册账号)
  • qq免费申请注册账号(官方免费申请qq号注册账号)
  • qq免费申请注册账号(官方免费申请qq号注册账号)
  • qq免费申请注册账号(官方免费申请qq号注册账号)
  • qq免费申请注册账号(官方免费申请qq号注册账号)
活跃气氛的10个小游戏(活跃气氛的10个小游戏简单)

我推荐手指儿歌律动小游戏,因为手指儿歌的话,会活动小朋友们的手指,手指活动完之后,我们就可以进行下一步的一些事情1、大合唱:准备一些歌曲,大家将歌词印在白板上,每人叫出句子,所有人一起唱歌,激发出非常...

全能播放器(EV 全能播放器)

在选择全能播放器时,可以考虑以下几个因素:格式支持、功能丰富、界面友好、播放流畅、兼容性强。目前市面上有许多优秀的全能播放器可供选择,如VLC媒体播放器、PotPlayer、KMPlayer等。它们都...

和平精英免费挂 锁头 透视(和平精英挂透视,锁头,自瞄)

apm的意思有很多种。apm在游戏中是指每分钟操作次数,也叫手速;APM也可以是AutomatedPeopleMoverSystem的缩写,意思是旅客自动捷运系统;APM还可能是Advanced...

爱思助手app下载安装(爱思助手下载 安装安卓)

不能在手机端直接下载,需要先下载PC端。安装步骤如下:第1步,安装爱思助手PC端用电脑访问爱思助手官网在产品中心下载并安装“爱思助手PC端V7版”第2步,安装爱思助手移动端打开爱思助手PC端用数据线连...

手机电视直播在线直播(免费观看电视在线高清直播)

1、准备一个U盘,在电脑上下载电视直播软件的安装包(apk格式的,如泰捷视频、电视猫、电视家等软件),复制并存储到U盘的根目录下;2、将U盘插入电视机的USB接口;3、启动电视机,进入智能电视主界面;...

万能密码破解器(万能破解wifi密码神器下载)

不真实因为万能歪歪密码器声称可以破解任意密码,但实际情况下,密码破解需要依靠强大的计算力和算法,而万能歪歪密码器只是一个简单的软件,无法实现这种高难度的破解。同时,使用万能歪歪密码器还会存在一定的安全...

firefox国际版

中国版:原生集成了如鼠标手势,支付助手等国内用户常用功能的浏览器扩展;提供了与国内网址导航类似的"火狐导航"作为默认主页;设置项与国际版略有不同;除国际通行的mozilla账户外,也可使用...

轻颜相机(轻颜相机有实况拍照吗)

轻颜相机调视频背景虚化的方法是通过调整相机的景深模式来实现。首先,打开轻颜相机应用并选择拍摄模式。然后,在拍摄界面上方可以找到一个景深模式的选项。点击该选项后,会出现不同的景深效果供选择。选择合适的景...

华为浏览器(华为浏览器app下载安装)

华为浏览器,是华为手机上用的浏览器是他自己设定的,一般都是安卓版的,IE浏览器是windows操作系统自带的浏览器,是windows系统下的一个应用程序,与这个华为浏览器是,风马牛不相及没有任何联系,...

pps网络电视官方下载(pps网络电视tv版)

你的网速不好吧,不行就把任务删除在重新下一次试试,在不行的话就重新安装客户端建议可以电视和手机同一WiFi里安装悟空遥控器,然后手机下载你需要安装到电视的软件APP,使用手机上的悟空遥控器安装本地...

腾讯qq免费下载安装最新版(腾讯qq下载安装2019版免费)

出现此种情况是由于电脑上之前安装的QQ软件某些后台程序还在运行当中,并没有关闭掉,解决方法:1、点开始-控制面板-添加删除程序,找到QQ程序删除,然后安装新的QQ版本。2、点开始-注销或者重启计算机都...

qq极速版下载官网(·qq极速版下载)
qq极速版下载官网(·qq极速版下载)

极速版就是把完整版分成三部分。第一部分是飞车可以运行的最基础部分,这部分下载玩了就可以跑图了。余下部分会在不跑图的时间内自动下载。也可以自己设置。简单来说,极速就是在最少时间内可以玩到游戏。不可以,没有头条极速qq登录。只听说过头条极速登...

2026-01-17 12:51 off999

取消回复欢迎 发表评论: