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 Technology

CPU:   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 欢迎词、主机名

ARM Linux DIY(十一)板子名称、开机 logo、LCD 控制台、console 免登录、命令提示符、文件系统大小_第1张图片
开机

[    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

ARM Linux DIY(十一)板子名称、开机 logo、LCD 控制台、console 免登录、命令提示符、文件系统大小_第2张图片
运行

Linux 吉祥物小企鹅已跃然屏上

LCD 控制台

使用 LCD 作为控制台,键盘作为输入,一台卡片电脑就成型了
在 /etc/inittab 中添加下面这行

tty0::respawn:/bin/sh

tty0 对应 /dev/fb0,也就是 LCD 屏幕的帧缓冲区,原理参考《lcd如何与tty1相对应?》
这样,LCD 就显示 /bin/sh 作为控制台了。

console 免登录

console 需要输入 root 才能进入系统,简直浪费生命,我需要上电后直接可以输入命令操作
step1: 关闭 getty (登录)进程
ARM Linux DIY(十一)板子名称、开机 logo、LCD 控制台、console 免登录、命令提示符、文件系统大小_第3张图片
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" ]; then
        if [ "`id -u`" -eq 0 ]; then
                export PS1='# '
        else
                export PS1='$ '
        fi
fi

修改后

if [ "$PS1" ]; then
        if [ "`id -u`" -eq 0 ]; then
                export PS1='\u@\h:\w\# '
        else
                export PS1='\u@\h:\w\$ '
        fi
fi

运行,用户、主机名、当前路径都显示出来了
在这里插入图片描述
如果能像 Ubuntu 那样显示颜色就更好了,那就给它点颜色瞧瞧

if [ "$PS1" ]; then
        if [ "`id -u`" -eq 0 ]; then
                export PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]# '
        else
                export PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]$ '
        fi                                                                                    
fi

运行
在这里插入图片描述
越来越漂亮了

文件系统大小

使用 buildroot 默认编译出来的文件系统大小只有几十兆,这样卡片电脑能够使用的 flash 空间就有限,现将其扩大为 512M
ARM Linux DIY(十一)板子名称、开机 logo、LCD 控制台、console 免登录、命令提示符、文件系统大小_第4张图片
开机

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,#,硬件,嵌入式,arm开发,chrome,前端)