廈門本地網(wǎng)站正版seo搜索引擎
文章目錄
- 前言
- 板子名稱
- uboot Model
- kernel 歡迎詞、主機名
- 開機 logo
- LCD 控制臺
- console 免登錄
- 命令提示符
- 文件系統(tǒng)大小
前言
經(jīng)過前面十篇文章的介紹,硬件部分調(diào)試基本完畢,接下來的文章開始介紹軟件的個性化開發(fā)。
板子名稱
uboot Model
既然是自己的板子,那開機信息當(dāng)然也要顯示自己的。在 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 對應(yīng) /dev/fb0,也就是 LCD 屏幕的幀緩沖區(qū),原理參考《lcd如何與tty1相對應(yīng)?》
這樣,LCD 就顯示 /bin/sh 作為控制臺了。
console 免登錄
console 需要輸入 root 才能進(jìn)入系統(tǒng),簡直浪費生命,我需要上電后直接可以輸入命令操作
step1: 關(guān)閉 getty (登錄)進(jìn)程
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
已經(jīng)基本實現(xiàn)了要求。
不過還是有點瑕疵,就是直接運行 /bin/sh 作為 shell,相當(dāng)于沒有用戶的概念,這樣執(zhí)行 cd ~
就會進(jìn)入根目錄而不是 /root
# cd ~
# pwd
/
后來又找到了一個方案
ttyS0::respawn:/bin/sh -c "exec /bin/login -f root"
這樣才是正規(guī)的使用 root 用戶
[ 1.840405] Run /sbin/init as init process
[ 1.987648] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
# pwd
/root
命令提示符
像 Ubuntu 等系統(tǒng),命令行提示符顯示用戶名、主機名、當(dāng)前路徑,有很好的提示作用
而我們的系統(tǒng),一直就只顯示一個 #,好不枯燥
所以這里也要改造一下,
我們知道,命令提示符顯示的是 PS1 這個環(huán)境變量,我們看下它的值,就是一個 # 號,
# echo $PS1
#
我們在 /etc/profile
文件中修改一下該環(huán)境變量
原始
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
運行,用戶、主機名、當(dāng)前路徑都顯示出來了
如果能像 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
運行
越來越漂亮了
文件系統(tǒng)大小
使用 buildroot 默認(rèn)編譯出來的文件系統(tǒng)大小只有幾十兆,這樣卡片電腦能夠使用的 flash 空間就有限,現(xiàn)將其擴大為 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,夠用了。