【龙芯智龙】在 win11 系统 WSL ubuntu 24.04.1 配置交叉编译工具链
本文记录了在WSL系统中配置MIPS工具链及编译内核的过程。首先解决了32位工具链依赖问题,包括安装strace、libc6-i386和lib32z1库。其次指出WSL与Linux虚拟机文件系统的差异导致老旧MIPS编译器报错,需将代码移至WSL的Linux目录下编译。最后详细描述了内核编译步骤,包括安装依赖库、复制配置文件并成功编译生成vmlinux和vmlinuz文件。整个过程展示了在WSL环
·
1、刚导入的mips工具链,由于是32bit的,需要安装缺失的32bit工具链
解决strace找不到问题
sudo apt install strace
解决缺乏32位libc的问题
apt-get install libc6-i386
解决as:error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory 问题,缺乏32位系统的libz库,需要安装
sudo apt-get install lib32z1
2、WSL系统与linux虚拟机区别
解决Value too large for defined data type问题
/mnt/c/!code/longson$ /opt/gcc-4.3-ls232/bin/mipsel-linux-gcc simple.c -o simple
cc1: error: simple.c: Value too large for defined data type
原因是windows跟linux的文件系统有区别,这个老旧的mips编译器无法识别。将c文件拷到WSL系统的linux目录里即可正常编译:
$ /opt/gcc-4.3-ls232/bin/mipsel-linux-gcc simple.c -o simple
$ echo $?
0
编译内核
sudo apt install libncurses-dev bison flex libssl-dev libelf-dev
将配置文件拷贝的linux源码根目录下
要点,记得重命名为.config
cp ls1c_defconfig ~/open-linux/.config
编译
# 直接在当前目录下编译即可
~/open-linux$ make
结果如下:
UPD include/generated/compile.h
CC init/version.o
LD init/mounts.o
LD init/built-in.o
LD .tmp_vmlinux1
KSYM .tmp_kallsyms1.S
AS .tmp_kallsyms1.o
LD .tmp_vmlinux2
KSYM .tmp_kallsyms2.S
AS .tmp_kallsyms2.o
LD vmlinux
SYSMAP System.map
SYSMAP .tmp_System.map
Building modules, stage 2.
MODPOST 1 modules
CC drivers/scsi/scsi_wait_scan.mod.o
AS arch/mips/boot/compressed/head.o
CC arch/mips/boot/compressed/decompress.o
CC arch/mips/boot/compressed/dbg.o
CC arch/mips/boot/compressed/dummy.o
OBJCOPY arch/mips/boot/compressed/vmlinux.bin
HOSTCC arch/mips/boot/compressed/calc_vmlinuz_load_addr
LD [M] drivers/scsi/scsi_wait_scan.ko
GZIP arch/mips/boot/compressed/vmlinux.bin.z
OBJCOPY arch/mips/boot/compressed/piggy.o
LD vmlinuz
STRIP vmlinuz
~/open-linux$ echo $?
0
~/open-linux$
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)