ARM Linux DIY(十一)板子名称、开机 logo、LCD 控制台、console 免登录、命令提示符、文件系统大小
文章目录
- 前言
- 板子名称
- uboot Model
- kernel 欢迎词、主机名
- 开机 logo
- LCD 控制台
- console 免登录
- 命令提示符
- 文件系统大小
前言
经过前面十篇文章的介绍,硬件部分调试基本完毕,接下来的文章开始介绍软件的个性化开发。
板子名称
uboot Model
既然是自己的板子,那开机信息当然也要显示自己的。在 uboot 的 dts 文件中,将 model 改为 “V3s DIY”
arch/arm/dts/sun8i-v3s-licheepi-zero.dts
/ {model = "V3s DIY";compatible = "licheepi,licheepi-zero", "allwinner,sun8i-v3s";
};
开机
U-Boot 2022.01 (Sep 07 2023 - 22:58:03 +0800) Allwinner TechnologyCPU: Allwinner V3s (SUN8I 1681)
Model: V3s DIY // 这里已更改
DRAM: 64 MiB
WDT: Not starting watchdog@1c20ca0
MMC: mmc@1c0f000: 0
Loading Environment from FAT... Unable to read "uboot.env" from mmc0:1... In: serial@1c28000
Out: serial@1c28000
Err: serial@1c28000
Net: No ethernet found.
Hit any key to stop autoboot: 0
kernel 欢迎词、主机名
开机
[ 2.006117] Run /sbin/init as init process
[ 2.148117] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)Welcome to V3s LYJ
v3s-diy login: root
#
开机 logo
运行
Linux 吉祥物小企鹅已跃然屏上
LCD 控制台
使用 LCD 作为控制台,键盘作为输入,一台卡片电脑就成型了
在 /etc/inittab 中添加下面这行
tty0::respawn:/bin/sh
tty0 对应 /dev/fb0,也就是 LCD 屏幕的帧缓冲区,原理参考《lcd如何与tty1相对应?》
这样,LCD 就显示 /bin/sh 作为控制台了。
console 免登录
console 需要输入 root 才能进入系统,简直浪费生命,我需要上电后直接可以输入命令操作
step1: 关闭 getty (登录)进程
step2: /etc/inittab 中添加
ttyS0::respawn:/bin/sh
开机
[ 1.843403] Run /sbin/init as init process
[ 1.986286] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
#
# ls
bin lib lost+found opt run tmp
dev lib32 media proc sbin usr
etc linuxrc mnt root sys var
#
这多爽啊,不用在一遍一遍地输入 root 甚至 password 了。
不过,我还想开机后就在 /root 目录,这样更方便些,改成如下
ttyS0::respawn:/bin/sh -c "cd /root; exec /bin/sh"
tty0::respawn:/bin/sh -c "cd /root; exec /bin/sh"
开机
[ 1.862823] Run /sbin/init as init process
[ 2.005049] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
# pwd
/root
已经基本实现了要求。
不过还是有点瑕疵,就是直接运行 /bin/sh 作为 shell,相当于没有用户的概念,这样执行 cd ~
就会进入根目录而不是 /root
# cd ~
# pwd
/
后来又找到了一个方案
ttyS0::respawn:/bin/sh -c "exec /bin/login -f root"
这样才是正规的使用 root 用户
[ 1.840405] Run /sbin/init as init process
[ 1.987648] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
# pwd
/root
命令提示符
像 Ubuntu 等系统,命令行提示符显示用户名、主机名、当前路径,有很好的提示作用
而我们的系统,一直就只显示一个 #,好不枯燥
所以这里也要改造一下,
我们知道,命令提示符显示的是 PS1 这个环境变量,我们看下它的值,就是一个 # 号,
# echo $PS1
#
我们在 /etc/profile
文件中修改一下该环境变量
原始
if [ "$PS1" ]; thenif [ "`id -u`" -eq 0 ]; thenexport PS1='# 'elseexport PS1='$ 'fi
fi
修改后
if [ "$PS1" ]; thenif [ "`id -u`" -eq 0 ]; thenexport PS1='\u@\h:\w\# 'elseexport PS1='\u@\h:\w\$ 'fi
fi
运行,用户、主机名、当前路径都显示出来了
如果能像 Ubuntu 那样显示颜色就更好了,那就给它点颜色瞧瞧
if [ "$PS1" ]; thenif [ "`id -u`" -eq 0 ]; thenexport PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]# 'elseexport PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]$ 'fi
fi
运行
越来越漂亮了
文件系统大小
使用 buildroot 默认编译出来的文件系统大小只有几十兆,这样卡片电脑能够使用的 flash 空间就有限,现将其扩大为 512M
开机
root@v3s-diy:~# df -h
Filesystem Size Used Available Use% Mounted on
/dev/root 487.6M 210.8M 240.9M 47% /
devtmpfs 18.3M 0 18.3M 0% /dev
tmpfs 26.8M 0 26.8M 0% /dev/shm
tmpfs 26.8M 28.0K 26.8M 0% /tmp
tmpfs 26.8M 20.0K 26.8M 0% /run
总大小 487M,剩余 240M,够用了。
相关文章:
ARM Linux DIY(十一)板子名称、开机 logo、LCD 控制台、console 免登录、命令提示符、文件系统大小
文章目录 前言板子名称uboot Modelkernel 欢迎词、主机名 开机 logoLCD 控制台console 免登录命令提示符文件系统大小 前言 经过前面十篇文章的介绍,硬件部分调试基本完毕,接下来的文章开始介绍软件的个性化开发。 板子名称 uboot Model 既然是自己的…...
【Unity程序技巧】Unity中的单例模式的运用
👨💻个人主页:元宇宙-秩沅 👨💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨💻 本文由 秩沅 原创 👨💻 收录于专栏:Uni…...
java leetcodetop100 (3,4 )最长连续数列,移动零
top3 最长连续数列 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 * * 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 * * * * 示例 1: * * 输入:nums [100,…...
用Vite从零到一创建React+ts项目
方式一:使用create-react-app命令创建项目 1、使用以下命令初始化一个空的npm 项目 npm init -y 2、输入以下命令安装React npm i create-react-app ps:如果失败的话尝试(1:使用管理员身份执行命令(2:切换镜像重…...
HTTP状态码301(永久重定向)不同Web服务器的配置方法
文章目录 301状态码通常在那些情况下使用301永久重定向配置Nginx配置301永久重定向Windows配置IIS301永久重定向PHP下的301重定向Apache服务器实现301重定向 301重定向是否违反相关法规?推荐阅读 当用户或搜索引擎向服务器发出浏览请求时,服务器返回的HT…...
vue-element-admin项目部署 nginx动态代理 含Docker部署、 Jenkins构建
介绍三种方式: 1.直接部署到nginx中 2.用nginx docker镜像部署 3.使用Jenkins构建 1.直接用nginx部署 vue-element-admin项目下有两个.env文件,.env.production是生产环境的,.env.developpment是开发环境的 vue-element-admin默认用的是mock数…...
使用Python来写模拟Xshell实现远程命令执行与交互
一、模块 这里使用的是 paramiko带三方库 pip install paramiko二、效果图 三、代码实现(这里的IP,用户名,密码修改为自己对应服务器的) import paramiko import timeclass Linux(object):# 参数初始化def __init__(self, ip, us…...
mybatis 数据库字段为空or为空串 忽略条件过滤, 不为空且不为空串时才需nameParam过滤条件
name未配置视为不考虑name条件 select * from user where (( (ISNULL(name)) OR (name) ) OR name #{user.nameParam} ) 三个or语句 推荐这个 select * from user where ISNULL(name) OR name OR name #{user.nameParam} select * from user where ISNULL(name) OR …...
【玩玩Vue】通过vue-store实现枚举管理,用于下拉选项和中英文翻译等
原文作者:我辈李想 版权声明:文章原创,转载时请务必加上原文超链接、作者信息和本声明。 文章目录 一、store基础用法1.在src下新建store文件夹,在store下新建module文件夹2.在module下新建enums.js文件3.在store下新建getters.js…...
ISCSI:后端卷以LVM 的方式配置 ISCSI 目标启动器
写在前面 准备考试整理相关笔记博文内容涉及使用 LVM 做ISCSI 目标后端块存储 Demo理解不足小伙伴帮忙指正 对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的&#…...
八公山豆腐发展现状与销售对策研究
1.引言 八公山豆腐作为中国传统特色食品之一,一直以来备受人们的喜爱。然而,在现代社会中,由于消费者对于营养健康的追求以及市场竞争的加剧,八公山豆腐的市场份额逐渐缩小。因此,为了更好地推广和发展八公山豆腐&…...
排序算法-插入排序
属性 当插入第i(i>1)个元素时,前面的array[0],array[1],…,array[i-1]已经排好序,此时用array[i]的排序码与array[i1],array[i-2],…的排序码顺序进行比较,找到插入位置即将array[i]插入,原来位置上的元素顺序后移 直接插入排序…...
多位数按键操作(闪烁)数码管显示
/*----------------------------------------------- 内容:按键加减数字,多个数码管显示 ------------------------------------------------*/ #include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存…...
MyEclipse项目导入与导出
一、项目导出 1、右键选择项目名称,弹出菜单中选择“export”,如下图所示 2、选择“恶心“export”,弹出菜单如下;在“General“选项中,选择“File System”选项 3、点击“next”,进入保存位置选择界面&am…...
ArrayList和LinkedList
最近在刷回溯算法时,遇见了List<Integer> A new ArrayList<>(); LinkedList<Integer> B new LinkedList<>();这类型的表达方式 很好奇的问题是: 1、List<Integer> A new ArrayList<>();为什么是正确的写法 2…...
Linux 配置 Nginx 服务完整详细版
目录 前言 配置Nginx监听端口和服务器块 # 防DDoS配置 # 日志配置 # 设置服务器块 监听端口 网站根目录 默认文件 静态文件目录 图像文件目录 # 自定义错误页面 # 反向代理配置 # 配置SSL/TLS 1、获取SSL/TLS证书 2、安装证书 3、配置SSL/TLS # 配置SSL协议版本…...
Python实现猎人猎物优化算法(HPO)优化LightGBM回归模型(LGBMRegressor算法)项目实战
说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 猎人猎物优化搜索算法(Hunter–prey optimizer, HPO)是由Naruei& Keynia于2022年提出的一种最新的…...
无涯教程-JavaScript - ODD函数
描述 ODD函数返回四舍五入到最接近的奇数整数的数字。 ODD函数是Excel中的15个舍入函数之一。 语法 ODD (number)争论 Argument描述Required/OptionalNumberThe value to round.Required Notes 无论数字的符号如何,值都将从零舍入到下一个奇数。如果number是一个奇数整数…...
Easyui里的datagrid嵌入select下拉框
问题: 想使用datagird里嵌入select下拉框,并在提交form表单时获取datagrid选中的每行数据里的每个下拉框选中的值。 解决方案: 其中economicIssuesSelect使用下拉框,重点关注 initEconomicIssues(row)方法。这里的方法需要传递ro…...
计算机专业毕业设计项目推荐03-Wiki系统设计与实现(JavaSpring+Vue+Mysql)
Wiki系统设计与实现(JavaSpringVueMysql) **介绍****系统总体开发情况-功能模块****各部分模块实现** 介绍 本系列(后期可能博主会统一为专栏)博文献给即将毕业的计算机专业同学们,因为博主自身本科和硕士也是科班出生,所以也比较了解计算机专业的毕业设…...
微服务的艺术:构建可扩展和弹性的分布式应用
文章目录 什么是微服务架构?微服务的设计原则1. 基于业务边界划分服务2. 松耦合和强内聚3. 自动化测试和部署4. 监控和日志5. 弹性设计 微服务的实施细节1. 服务发现示例代码:使用Consul进行服务发现 2. 负载均衡示例代码:Nginx配置负载均衡 …...
在PHP8中对数组进行排序-PHP8知识详解
在php8中,提供了丰富的排序函数,可以对数组进行排序操作。常见的排序函数如下几个:sort() 函数、rsort() 函数、asort() 函数、arsort() 函数、ksort() 函数、krsort() 函数、natsort()函数和natcascsort()函数。 1、sort() 函数:…...
Redis混合模式持久化原理
前言 前面文章中我们也介绍过Redis的持久化方式有两种:rdb持久化和aof持久化,具体详情可查看之前文章redis持久化。rdb持久化还是aof持久化它们都有各自的缺点。 rdb和aof缺点 rdb持久化:由于是定期对内存数据快照进行持久化,因此…...
《BPF Performance Tools —— 洞悉Linux系统和应用性能》学习笔记 —— 第一章 介绍(2)
接前一篇文章:《BPF Performance Tools —— 洞悉Linux系统和应用性能》学习笔记 —— 第一章 介绍(1) 1.2 Tracing、Snooping、Sampling、Profiling和Observability是什么? 这些都是用于对分析技术和工具进行分类的术语。 Trac…...
【计算机网络】网络编程接口 Socket API 解读(7)
Socket 是网络协议栈暴露给编程人员的 API,相比复杂的计算机网络协议,API 对关键操作和配置数据进行了抽象,简化了程序编程。 本文讲述的 socket 内容源自 Linux man。本文主要对各 API 进行详细介绍,从而更好的理解 socket 编程。…...
crypto++下载、安装(VS2017)及加解密使用
crpto 下载按个人喜好下载,我使用了图中框选的8.8.0 Release.解压 安装打开修改以适应本机配置整理至标准库 调用加解密使用 Crypto(也称为Crypto Library或Crypto STL)是一个C密码学库,它提供了各种密码学算法和安全编程工具&…...
R语言画图
简单记录一下 plot(lad_profile_relative$lad, lad_profile_relative$height, type"l", lwd1.5, xlabexpression(paste("LAD ", "(", m^2, m^-3, ")" )), ylab"Height (m)")X轴数据, Y轴数据 type, 标记类型 lw…...
redis 核心数据结构
一、简述 redis是一个开源的使用C语言编写的一个kv存储系统,是一个速度非常快的非关系远程内存数据库。它支持包括String、List、Set、Zset、hash五种数据结构。 除此之外,通过复制、持久化和客户端分片等特性,用户可以很方便地将redis扩展…...
RabbitMQ消息可靠性(一)-- 生产者消息确认
前言 在项目中,引入了RabbitMQ这一中间件,必然也需要在业务中增加对数据安全性的一层考虑,来保证RabbitMQ消息的可靠性,否则一个个消息丢失可能导致整个业务的数据出现不一致等问题,对系统带来巨大的影响,…...
9 种方法使用 Amazon CodeWhisperer 快速构建应用
Amazon CodeWhisperer 是一款很赞的生成式人工智能编程工具。自从在工作中使用了 CodeWhisperer,我发现不仅代码编译的效率有所提高,应用开发的工作也变得快乐起来。然而,任何生成式 AI 工具的有效学习都需要初学者要有接受新工作方式的心态和…...
如何用ps制作网站/游戏代理免费加盟
打印图形... 无聊去一些论坛写的... 代码 /*******************************************************************************我自己的做法是:每次要输出的字符, 用一个字符常量累加相应的数(转换为相应的ASCII码),再…...
宁河网站建设/东莞百度快速排名
分类算法很多,有的效果比较好,有的效果稍微差点。 这里还有一种“新”分类算法,就是把多个分类器组合成一个分类器,主要有bagging 和boosting两种。 bagging算法:从原始数据中随机抽取n个样本,重复s次&am…...
wordpress符号插件/今天国内新闻
2019独角兽企业重金招聘Python工程师标准>>> MapReduce 简介 说明: 通过由普通机器组成的集群对大量数据集进行并行处理可依靠的容错软件框架。 MapReduce作业可以将数据集分割为Map任务并行处理的数据块,框架对对Map过程产生的数据进行排序&…...
如何做好营销型网站用户体验/网络营销的特点有几个
1 VSFTP 概述 FTP是File Transfer Protocol(文件传输协议)的英文简称,用于Internet上的文件的双向传输。使用FTP来传输时,是具有一定程度的危险性,因为数据在因特网上面是完全没有受到保护的明文传输方式! VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它…...
商丘网站设计/5118大数据平台官网
Log4j2 使用教程Log4j2 的好处就不在这里一一列举了,如果你搜了2,说明你对它一定有兴趣,并且想了解它,使用它。一、下载log4j2 ,基本上你只需要导入下面两个jar包即可: log4j-api-2.11.0.jarlog4j-cor…...
wordpress 文章列表目录颜色/seo关键词布局
模板介绍 校园毕业答辩汇报PPT模板。一套论文答辩幻灯片模板,内含蓝色多种配色,风格设计,动态播放效果,精美实用。 希望下面这份精美的PPT模板能给你带来帮助,温馨提示:本资源使用PPT或PPTX等格式&#x…...