背景:使用qemu起了一个arm64的4.19内核系统,同时已经将编译好的memtester(4.3.0)打包到busybox制作的文件系统(rootfs.cpio.gz)中。
启动系统后,进入memtester-4.5.1目录,执行
./memtester 1024M 10
提示
-/bin/sh: .memtester: not found
原因,缺少运行依赖的动态库。
解决方案:将交叉编译工具链下lib64和libc目录全部打包到busybox的文件系统。
即在busybox的脚本中添加
mkdir /resource
cp -rfv /path/to/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/aarch64-linux-gnu/libc .
cp -rfv /path/to/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/aarch64-linux-gnu/lib64 .
随后用qemu启动系统,将libc和lib64中的所有文件拷贝到根目录下的lib目录(如果没有就先创建)
再执行
./memtester 1024M 10
搞定。