x86 Ubuntu上编译eudev给龙芯loongarch64架构主机使用
1、下载eudev库eudev-master.zip,链接:eudev库官方地址
2、下载龙芯的交叉编译工具:loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.2.tar.xz,链接:龙芯交叉编译官方地址
3、交叉编译器环境搭建
(1)、解压loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.2.tar.xz到/opt/路径下
cp loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.2.tar.xz /opt/ cd /opt/ tar -zxvf loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.2.tar.xz
(2)、修改~/路径下的.bashrc文件,在末尾添加如下内容
#add loongarch64 env export PATH=/opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.2/bin:$PATH export LIB_PATH=/opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.2/lib:/opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.2/loongarch64-linux-gnu/lib:$LIB_PATH export CROSS_COMPILE=loongarch64-linux-gnu- export ARCH=loongarch64
(3)、.bashrc文件修改后,执行source .bashrc让环境生效,输入loongarch后tab键如果自动补全如下内容,说明环境设置OK
4、交叉编译eudev库
(1)、解压eudev-master.zip,并进入eudev-master目录
unzip eudev-master.zip cd eudev-master
(2)配置GCC C++编译器,在终端输入以下命令
export CC=/opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.2/bin/loongarch64-linux-gnu-gcc export CXX=/opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.2/bin/loongarch64-linux-gnu-g++
(3)执行命令 ./autogen.sh,在eudev-master路径下会生成一些文件,还可能会报make.sh找不到的一些错误,不用理会,继续往下走。
(4)生成makefile文件
./configure --host=loongarch64 --prefix=$PWD/build
如果这一步报错
"Invalid configuration 'loongarch64' : machine 'loongarch64' not recognized"
"configure:error: /bin/bash config.sub loongarch64 failed"
需要更换eudev-master文件夹中的config.guess 和 config.sub文件,文件从以下链接下载
https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
如果是拷贝,注意windows和linux的换行符可能导致执行报“Configure: error: cannot run /bin/bash” 等错误,需要修改一下两个文件的编码格式。
vim config.guess :set ff=unix :wq
vim config.sub :set ff=unix :wq
修改完成后,再次执行./configure --host=loongarch64 --prefix=$PWD/build
然后执行make & make install
在生成的build/bin/路径下看一下文件的格式,如果文件类型是unknown arch 0x102* version 说明编译成功,将需要的文件拷贝到loongarch64主机即可