正点原子阿尔法Linux开发板移植Ubuntu18.04根文件系统问题解决

2023-05-16

本文参考资料:https://blog.csdn.net/weixin_41608556/article/details/118253137

笔者的板子处于出厂状态,uboot和linux内核都是放在emmc上的,板子开机从emmc启动uboot。
但ubuntu根文件系统是放在SD卡的一个ext4分区上的,不是以镜像的方式存在。
插上SD卡,板子从emmc启动uboot后马上按下回车键进入uboot命令模式,执行:
setenv mmcroot /dev/mmcblk0p4 rootwait rw
boot
板子就从SD卡的第四个分区启动ubuntu系统了。SD卡的第四个分区存放的就是ubuntu18.04的根文件系统。
这个只是临时修改环境变量的值,重启后就复原了,不用担心。出厂默认的mmcroot值为:
mmcroot=/dev/mmcblk1p2 rootwait rw
也就是正点原子默认出厂的busybox根文件系统是存放在emmc的第二个分区上的。

出厂的情况:uboot(位于emmc)+linux内核(位于emmc)+linux设备树(位于emmc)+busybox根文件系统(位于emmc)
现在的情况:uboot(位于emmc)+linux内核(位于emmc)+linux设备树(位于emmc)+ubuntu根文件系统(位于sd卡)

请注意给SD卡分好区后,分区根目录必须是root 0755权限:
sudo chmod 755 /run/media/XXXXX
sudo chown root /run/media/XXXXX
sudo chgrp root /run/media/XXXXX
用stat /run/media/XXXXX命令可以看到分区根目录是什么权限。

第四个分区(ext4)就是存放ubuntu根文件系统的分区。
第二个分区(fat)是拿给Windows使用的。为了保证Windows下“我的电脑”里能出现U盘图标,SD卡分好区后必须删除Partition 1变成Free Space,且FAT分区必须是Partition 2。

ubuntu18.04根文件系统的移植过程大体上和ubuntu16.04一样,见
【正点原子】阿尔法Linux开发板(A盘)-基础资料/09、文档教程(非常重要)/【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.6.pdf的第 A3 章 Ubuntu-base 根文件系统构建。

ubuntu18.04根文件系统压缩包的下载地址:http://cdimage.ubuntu.com/ubuntu-base/releases/18.04/release/
文件名:ubuntu-base-18.04.5-base-armhf.tar.gz

复制qemu的命令:sudo cp /usr/bin/qemu-arm-static usr/bin
安装基础软件包:
apt update
apt install sudo vim kmod net-tools ethtool ifupdown language-pack-en-base rsyslog htop iputils-ping systemd

不过ubuntu18.04相比ubuntu16.04有点奇怪,他的/sbin文件夹下没有poweroff和reboot命令,而且更重要的是,他没有串口文件/lib/systemd/system/getty@.service!
解决这两个问题的方法是安装systemd软件包:apt install systemd。
安装后就可以复制串口文件了:
ln -s /lib/systemd/system/getty@.service /etc/systemd/system/getty.target.wants/getty@ttymxc0.service

做好之后先exit,然后unmount.sh,然后把SD卡从电脑上拔出来,插到板子上,开机。
ubuntu18.04就能正常使用了。进入系统后就会发现,/sbin下是有poweroff和reboot命令的,它们是指向/bin/systemctl的软链接。
oct1158@alientek:~$ ls -l /sbin/poweroff /sbin/reboot
lrwxrwxrwx. 1 root root 14 Dec 10 09:15 /sbin/poweroff -> /bin/systemctl
lrwxrwxrwx. 1 root root 14 Dec 10 09:15 /sbin/reboot -> /bin/systemctl

一定要确保根目录必须是root 0755权限,所有的系统文件夹和文件也都是root权限!不然肯定出错!
用stat /命令查看根目录的权限:

oct1158@alientek:~$ stat /
  File: /
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: b304h/45828d    Inode: 2           Links: 20
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-03-05 07:47:32.086845695 +0000
Modify: 2022-03-05 07:46:48.854840247 +0000
Change: 2022-03-05 07:46:48.854840247 +0000
 Birth: -

lsb_release -a查看ubuntu版本的命令不存在的解决方法:
sudo apt-get install lsb-core

oct1158@alientek:~$ lsb_release -a
LSB Version:    core-9.20170808ubuntu1-noarch:security-9.20170808ubuntu1-noarch
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.5 LTS
Release:        18.04
Codename:       bionic

板子启动ubuntu系统后会发现只能ping通ip地址,ping不通域名,导致apt update失败,这说明是dns地址错了。这是ubuntu18.04特有的问题,16.04没有这个问题。
改一下/etc/resolv.conf里面的dns地址可以暂时解决问题,但是板子重启后问题又会重现。
为了永久解决这个问题,可以禁用systemd-resolved服务:
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
sudo rm -rf /etc/resolv.conf
sudo reboot
重启后,/etc/resolv.conf又自动生成了,但里面只有一行:nameserver 192.168.1.1,问题解决。


笔者移植ubuntu18.04的目的就是为了在正点原子的linux板子上跑ros melodic框架。
ros melodic的安装方法见:https://wiki.ros.org/melodic/Installation/Ubuntu
里面比较容易出问题的是1.3 Set up your keys和1.6.1 Initialize rosdep。
解决方法:
首先打开
1.3 Set up your keys
去https://github.com/ros/rosdistro里面把ros.asc下载下来,上传到板子上,然后执行:
sudo apt-key add ros.asc
1.6.1 Initialize rosdep
不要去用小鱼的rosdepc,他用的python版本是3.5,安装后会报/usr/local/lib/python3.5/dist-packages/pyparsing/__init__.py major: int的语法错误。
如果真的安装了rosdepc,补救方法是:
sudo pip3 uninstall rosdepc
sudo pip3 uninstall catkin-pkg docutils pip python-dateutil PyYAML rosdistro rospkg setuptools six wheel
可消除major: int错误。
建议使用https://zhuanlan.zhihu.com/p/397624291里面说的手动下载的方法,还是用rosdep,只不过把网址改了。
由于github被墙,git clone命令也不可靠,最好是去https://github.com/ros/rosdistro里面Download ZIP,把rosdistro-master.zip上传到板子上解压出来,笔者解压的路径是/home/oct1158/rosdistro-master。
vim替换一个文件中所有的网址的命令:
:%s/https:\/\/raw.githubusercontent.com\/ros\/rosdistro\/master\//file:\/\/\/home\/oct1158\/rosdistro-master\/
vim替换某一行里面的网址的命令:
:s/https:\/\/raw.githubusercontent.com\/ros\/rosdistro\/master\//file:\/\/\/home\/oct1158\/rosdistro-master\/
请注意要修改的第三个文件是__init__.py,前后都是两个下划线,不是一个!不然vim打开是个空文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

正点原子阿尔法Linux开发板移植Ubuntu18.04根文件系统问题解决 的相关文章

  • L10-简谈正则表达式中几个函数的使用

    文章目录 概述1 match 2 search 3 sub 4 compile 5 findall 6 finditer 7 split 8 subn 9 groups 10 贪婪模式与惰性模式注意事项 概述 正则表达式本身是一种小型的 高
  • L11-Python中的高阶函数的使用

    Python中的函数是一个对象 xff0c 既可以作为输入参数 xff0c 也可以作为返回结果 在这里聊聊几个常用的高阶函数 xff0c 来看看函数是如何被作为输入参数 返回结果来使用的 1 map 映射函数 语法 xff1a map fu
  • L12-聊聊Python的装饰器

    文章目录 1 基本介绍2 理解函数2 1 函数也是对象2 2 嵌套函数2 3 返回结果为函数2 4 函数作为输入参数 3 创建装饰器4 带参数的装饰器5 装饰器的应用 监控日志 1 基本介绍 定义 在函数调用前后自动打印日志 xff0c 称
  • L13-理解Python中的特殊的返回值-函数

    文章目录 说明1 初识返回值 函数2 辨识函数对象3 闭包的注意事项谨记如何避免 xff1f 说明 在Python中 xff0c 一切函数即对象 函数同时也可视作变量 xff0c 作为一个返回值 下面通过实际案例来说明下 xff0c 当函数
  • c语言将两个递增的顺序表合并为一个递减的顺序表

    eg xff1a 顺序表A xff1a 1 3 5 7 顺序表B xff1a 2 4 6 8 合并后的表C xff1a 8 7 6 5 4 3 2 1 思路 xff1a 从后往前遍历顺序表A和B xff0c 如果当前A表的数大于等于B表的数
  • L15-Python cookbook 数据结构与算法练习题

    文章目录 1 解压赋值给多个变量2 解压可迭代对象赋值给多个变量3 查找集合中最大 最小的N个元素 heap4 处理字典中的多值映射的两种方式 defaultdict 5 排序字典的键值对元素 OreredDict6 查找字典的相同点7 命
  • 理解递归,从递归的本质说起

    版权声明 xff1a 本文为博主原创文章 xff0c 遵循 CC 4 0 BY SA 版权协议 xff0c 转载请附上原文出处链接和本声明 本文链接 xff1a https blog csdn net allenchenhh133 arti
  • 靠写作能挣100万吗

    不要被标题吓到 xff0c 今天说的就是关于写作 Fenng大说 xff0c 同等能力的人绝对要文字写得好的 帅张说编程 英语 写作是程序员的3大底层能力 写作能给我带来什么 xff1f 王朔曾说 xff0c 写作是一条狗 xff0c 只要
  • “老赖”罗永浩被群嘲:莫欺少年穷,莫笑中年败,莫嘲梦想狂

    原文链接 xff1a https mp weixin qq com s x0fIynaA2hPi7blUoeYGxA 作者 l 粥左罗 来源 l 粥左罗的好奇心 xff08 ID xff1a fangdushe007 xff09 转载请联系
  • L16-分析数据库中的左连接

    许久以来 xff0c 在写表的左联接条件的时候 xff0c 似乎已彻底习惯了在右表上设置联接条件 今天意外发现居然也可以在左表上设置 xff0c 而且顺势借用到了需求实践中 重新翻看下官方文档的说明 xff0c 暂且也算温故而知新了 联接类
  • 高知的程序员必须甩脱穷人思维

    版权声明 xff1a 本文为博主原创文章 xff0c 遵循 CC 4 0 BY SA 版权协议 xff0c 转载请附上原文出处链接和本声明 本文链接 xff1a https blog csdn net mogoweb article det
  • L19-将多表分批次从数据库导出到Excel

    文章目录 1 应用场景2 功能事项3 主要实现概览主要方法 4 使用示例5 总结 1 应用场景 最近经常需要手工从后台数据库导出某些数据表到Excel文件 xff0c 而且源数据表的数据量大小不一 xff0c 导致在导出到本地文件这个过程中
  • L18-利用Pandas清洗与可视化时序数据

    获取时序数据并进行数据清洗与可视化分析 文章目录 获取时序数据并进行数据清洗与可视化分析1 准备工作2 加载数据3 数据处理 转化与合并4 可视化展现5 小结 1 准备工作 tushare是一个第三方财经数据接口包 xff0c 需要安装包并
  • L17-利用Pandas解析日志数据

    利用Pandas 分析日志数据 文章目录 利用Pandas 分析日志数据1 简介2 获取数据3 数据解析4 简单可视化5 小结 1 简介 app程序在日常运行中会生成多种非结构化的日志数据 xff0c 由于可读性差通常仅仅用于排错 若能将数
  • SQL Server 缓存清除与内存释放

    Sql Server系统内存管理在没有配置内存最大值 xff0c 很多时候我们会发现运行SqlServer的系统内存往往居高不下 这是由于他对于内存使用的策略是有多少闲置的内存就占用多少 xff0c 直到内存使用虑达到系统峰值时 xff08
  • 1178C C. Tiles

    C Tiles time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard output Bob is
  • L27-计算连续N天的人流量

    文章目录 写在前面1 题目2 谈谈方法3 关键词4 样例分析4 注意项 写在前面 碰到LeetCode上的一个有意思的数据库题 xff0c 看了很多解法 xff0c 但都过于复杂 经过思索后 xff0c 另辟溪径 xff0c 分享一个崭新的
  • T-SQL查询:CTE - with as 子句的特殊应用

    版权声明 xff1a 本文为博主原创文章 xff0c 遵循 CC 4 0 BY SA 版权协议 xff0c 转载请附上原文出处链接和本声明 本文链接 xff1a https blog csdn net kk185800961 article
  • SQL Server 缓存清除与内存释放

    Sql Server系统内存管理在没有配置内存最大值 xff0c 很多时候我们会发现运行SqlServer的系统内存往往居高不下 这是由于他对于内存使用的策略是有多少闲置的内存就占用多少 xff0c 直到内存使用虑达到系统峰值时 xff08
  • 彻底理解递归,从递归的本质说起!

    版权声明 xff1a 本文为博主原创文章 xff0c 遵循 CC 4 0 BY SA 版权协议 xff0c 转载请附上原文出处链接和本声明 本文链接 xff1a https blog csdn net allenchenhh133 arti

随机推荐

  • 程序员是不是青春饭

    本文转载 原创作者 志军100 Python之禅 有人问到程序员是不是吃 34 青春饭 34 xff0c 回答是肯定的 xff0c 没有哪个行业可以像互联网一样 xff0c 不需要背景 不需要关系 xff0c 只需要才华就有舞台 看看国内国
  • PCA 原理:为什么用协方差矩阵

    PCA的理论知识以及与K L变换的关系 PCA是主成分分析 Principal Components Analysis 的简称 这是一种数据降维技术 xff0c 用于数据预处理 一般我们获取的原始数据维度都很高 xff0c 那么我们可以运用
  • 编程语言思考系列:为什么会有这么多的编程语言?

    一 为什么会有这么多的编程语言 xff1f 不同的cpu有着不同的指令集 xff0c 这些指令集都是二进制的0和1 xff1b 后来有了汇编语言 xff0c 可以认为是二进制指令的助记符表示 xff1b 再后来有了高级编程语言 xff0c
  • 搞懂ASCII,Unicode字符集和UTF-8编码

    熟悉html等知识的都知道 xff0c html中有一个重要的字段叫 content type xff0c 一般中文网站都是设置为 utf 8 编码 xff0c 可能你还知道之所以设置为utf 8是为了正常的显示中文 xff0c 但为什么u
  • 通俗理解 - 梯度下降

    本文将从一个下山的场景开始 xff0c 先提出梯度下降算法的基本思想 xff0c 进而从数学上解释梯度下降算法的原理 xff0c 最后实现一个简单的梯度下降算法的实例 xff01 梯度下降的场景假设 梯度下降法的基本思想可以类比为一个下山的
  • Python使用requests提交HTTP表单

    立志做国内自动化 AI测试领域最好的原创公众号 欢迎微信关注公号 34 测试不将就 34 ID awesometest xff0c 更多原创文章在路上 我们的口号是 xff1a 插上自动化 AI的翅膀 xff0c 软件测试也能高大上 Pyt
  • Python---元组---字典---集合

    4 3 元组 4 3 1 概念 xff1a 在大型的商业网站或游戏设计中 xff0c 列表是一种非常重要的数据类型 xff0c 因为其记录了各种等级客 户 游戏角色 xff0c 列表数据可以随时变动更新 xff0c python还提供另一组
  • C#实现远程桌面自动登录

    问题 xff1a A电脑登录B电脑 1 xff0c 设置B电脑允许远程登录 2 xff0c 用A手动通过 远程登录软件 登录B 生成Default rdp文件 3 C 编程实现自动登录 具体操作 1 设置B电脑允许远程登录 http jin
  • Shell基础——位置参数

    位置参数是用一位或多位数字 除了0 表示的参数 xff0c 位置参数N可以引用为 N xff0c 或者当N由单个数字组成时 xff0c 引用为 N 位置参数是在调用shell时从shell参数中分配的 span class token fu
  • 1.基于Microsoft.Owin.Security.OAuth实现OAuth 2.0所有应用场景,可集成单点登录功能

    学习目标 xff1a 提示 xff1a OAuth2 0是目前使用非常广泛的授权机制 xff0c 用于授权第三方应用获取用户的数据 例如 xff1a 用户可以通过选择其他登录方式来使用gitee xff0c 这里就使用到了第三方认证 来自R
  • arm架构版本下误删apt,apt-get的解决方案(例如tx2)

    最近装东西装不上 xff0c 误打误撞装了aptitute xff0c 结果装的时候把apt get给卸载了 然后用aptitute装 xff0c 发现也没解决问题 然后顺手就把aptitute也给删了 顺手删完了 xff0c 发现这下糟了
  • Python图片修复项目 —— Bringing-Old-Photos-Back-to-Life

    目录 一 项目地址 二 下载预训练模型 2 1 下载步骤 三 下载Python包 四 图片修复 4 1 裂痕修复 4 2 模糊图片高清化 一 项目地址 https github com microsoft Bringing Old Phot
  • (自定义)二维数组的转置-C语言

    自定义 二维数组的转置 解题思路 xff1a 1 首先要输入一个33的二维数组 xff0c 用for的双层循环来实现 xff1b 2 数组转置的特点 xff1a 由分析可知 xff0c 数组转置的实际表现为数组的下标进行交换即可 xff0c
  • 【已解决】win下cmd命令行conda activate 不能使用

    运行命令conda activate报错如下 xff1a CommandNotFoundError Your shell has not been properly configured to use 39 conda activate 3
  • Linux将某个文件夹下的所有内容复制到另一个文件夹里

    1 将一个文件夹下的所有内容复制到另一个文件夹下 cp r home packageA home cp packageB 或 cp r home packageA home cp packageB 这两种方法效果是一样的 方法示例 xff1
  • SQL注入及Pangolin(穿山甲)学习(第一次接触并了解,内容缘自百度,未实践)

    1 什么是SQL注入 就是通过把 SQL命令插入到 Web 表单提交或输入域名或页面请求的查询字符串 xff0c 最终达到欺骗服务器执行恶意的 SQL 命令 具体来说 xff0c 它是利用现有应用程序 xff0c 将 xff08 恶意 xf
  • 服务器 安装 proxmox 虚拟环境(安装、配置网络、简单使用)

    服务器 安装 proxmox 虚拟环境 xff08 安装 配置网络 简单使用 xff09 实验室多人使用服务器需要 xff0c 因此在此做个记录 主机配置 xff1a 主板 xff1a 华硕ROG Z490 CPU xff1a 20 x I
  • Linux动态频率调节系统CPUFreq之三:governor

    在上一篇文章中 xff0c 介绍了cpufreq的core层 xff0c core提供了cpufreq系统的初始化 xff0c 公共数据结构的建立以及对cpufreq中其它子部件提供注册功能 core的最核心功能是对policy的管理 xf
  • Fedora 33安装VirtualBox 6.1

    目前virtualbox只有fedora32的rpm包 xff0c 没有fedora33的 去VirtualBox官网下载VirtualBox 6 1 6 1 18 142142 fedora32 1 x86 64 rpm xff0c 用s
  • 正点原子阿尔法Linux开发板移植Ubuntu18.04根文件系统问题解决

    本文参考资料 xff1a https blog csdn net weixin 41608556 article details 118253137 笔者的板子处于出厂状态 xff0c uboot和linux内核都是放在emmc上的 xff