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$
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐