作者:天狼飞虎神印 | 来源:互联网 | 2023-05-19 05:30
busybox用于制作小型的文件系统.常用于嵌入式.在orangepi_sdksourcebusybox-1.25.0目录里有源码.1).先清除编译出来的文件及配置文件
busybox用于制作小型的文件系统.常用于嵌入式.
在orangepi_sdk/source/busybox-1.25.0目录里有源码.
1). 先清除编译出来的文件及配置文件
make distclean
2). 配置busybox
make menuconfig
Busybox Settings
Build Options
│[*] Build BusyBox as a static binary (no shared libs)
(arm-linux-gnueabihf-) Cross Compiler prefix
保存退出后, 执行make编译
3). 执行make install, 会把文件系统生成在busybox源码根目录下的_install目录
然后把_install整个目录复制到/disk3/, 并改名h3fs
4). 在h3fs目录里创建文件系统所需的目录
mkdir dev proc sys tmp var mnt
mkdir var/log
mkdir var/lock
mkdir var/lib
mkdir var/run
5). 在h3fs目录里创建etc/init.d/rcS文件(用于进文件系统后的初始化工作, 相当于PC上的/etc/rc.local)
mkdir etc/init.d -p
touch etc/init.d/rcS
6).
修改h3fs里的etc/init.d/rcS, 增加以下内容, 指定目录使用指定的文件系统类型格式
mount -t proc none /proc
mount -t sysfs none /sys
mount -t tmpfs none /tmp
mount -t ramfs none /dev
mdev -s
syslogd
echo /sbin/mdev > /proc/sys/kernel/hotplug
7). 创建h3fs里的etc/inittab文件, 增加以下内容:
::sysinit:/etc/init.d/rcS
ttyS0::askfirst:-/bin/sh
8). 增加环境变量:
创建h3fs里的etc/profile文件, 增加以下内容
export PS1="^_^ \w # "
9). 把应用程序所需的动态库从交叉编译器里复制到h3fs里.
把交叉编译器里的arm-linux-gnueabihf/libc/lib/arm-linux-gnueabihf/里的内容 复制到h3fs/lib目录
10). 以上做完以后, 还需要给整个文件系统目录设权限
chmod 0777 /disk3/h3fs -R
11). 把文件系统存放到SD卡的ext分区
进入h3fs目录下:
tar cf fs.tar *
把板上的SD卡接入PC,如果有自动挂载,则"tar xf fs.tar -C /挂载目录"解包到SD卡上
如果没有自动挂载,则手动把/dev/sdb2挂载到一个目录里再解包.
12). 以上操作完成后, 把SD卡放回板子上启动, 还需在uboot上设置环境变量bootargs
setenv bootargs "root=/dev/mmcblk0p2 cOnsole=ttyS0,115200"
保存好环境变量后,启动内核:
[ 2.696791] devtmpfs: mounted
[ 2.700378] Freeing init memory: 316K
Please press Enter to activate this console.