跳转至

麒麟V10安装

笔记参考

win11 x86 系统部署arm架构的虚拟机(银河麒麟为例)

Windows系统x86机器安装(麒麟、统信)ARM系统详细教程

测试项目:https://github.com/taishan1994/BERT-BILSTM-CRF

安装常用系统环境

apt-get install xz-utils nano wget unzip build-essential git bc swig libncurses5-dev libpython3-dev libssl-dev pkg-config zlib1g-dev libusb-dev libusb-1.0-0-dev python3-pip gawk bison flex 

安装ssh工具,并且打开ssh

sudo apt-get install openssh-server
sudo systemctl start ssh

安装torch环境

可以直接安装whl文件,从链接下。注意版本间的对应关系。

版本间对应关系可以参考博客:https://blog.csdn.net/shiwanghualuo/article/details/122860521

X86_64 VMware安装

1、银河麒麟操作系统V10(SP1) 经常弹框提示是否授权

解决方案:

sudo setstatus softmode -p

2、Pyinstaller打包报错IndexError: tuple index out of range

问题,这个问题主要是在Python3.7以上的版本中遇到,用pyinstaller打包的时候发现报错

/usr/local/lib/python3.10/dis.py
argval = const_list[const_index], 
IndexError: tuple index out of range

解决方案

进入报错的文件,/usr/local/lib/python3.10/dis.py

找到def _unpack_opargs(code)函数,在else语句中添加extended_arg=0,如下:

def _unpack_opargs(code):
    extended_arg = 0
    for i in range(0, len(code), 2):
        op = code[i]
        if op >= HAVE_ARGUMENT:
            arg = code[i+1] | extended_arg
            extended_arg = (arg << 8) if op == EXTENDED_ARG else 0
        else:
            arg = None
+           extended_arg = 0
        yield (i, op, arg)

配置TAP-Windows的问题

安装好后,注意修改生成的网络接口名字,以供后面使用,比如我这里就是修改的tap1212,在QEMU生成的时候会有一栏-net tap,需要选择接入的虚拟网口名字。

安装好后,使用一个有网的网络共享这个网络。

在生成的虚拟机中,需要在**设置**的安全中心,关闭这个防火墙,不然不能SSH。

QEMU安装

初始安装的时候:

注意-drive的路径和文件名,选择自己电脑上的。\是使用Linux环境下的换行,^是使用Windows下的换行。

qemu-system-aarch64.exe \
 -m 4096 \
 -cpu cortex-a72 -smp 4,cores=2,threads=2,sockets=1 \
 -M virt \
 -bios F:\Kylindisk\QEMU_EFI.fd \
 -net nic \
 -net tap,ifname=tap1212 \
 -drive if=none,file=F:\Kylindisk\kylindisk.qcow2,id=hd0 \
 -drive if=none,file=F:\Kylindisk\Kylin-Desktop-V10-SP1-kirin990-Release-2203-ARM64.iso,id=cdrom,media=cdrom \
 -device nec-usb-xhci \
 -device usb-kbd \
 -device usb-mouse \
 -device VGA \
 -device virtio-scsi-device \
 -device scsi-cd,drive=cdrom \
 -device virtio-blk-device,drive=hd0

qemu-system-aarch64.exe ^
 -m 4096 ^
 -cpu cortex-a72 -smp 4,cores=2,threads=2,sockets=1 ^
 -M virt ^
 -bios F:\Kylindisk\QEMU_EFI.fd ^
 -net nic ^
 -net tap,ifname=tap1212 ^
 -drive if=none,file=F:\Kylindisk\kylindisk.qcow2,id=hd0 ^
 -drive if=none,file=F:\Kylindisk\Kylin-Desktop-V10-SP1-kirin990-Release-2203-ARM64.iso,id=cdrom,media=cdrom ^
 -device nec-usb-xhci ^
 -device usb-kbd ^
 -device usb-mouse ^
 -device VGA ^
 -device virtio-scsi-device ^
 -device scsi-cd,drive=cdrom ^
 -device virtio-blk-device,drive=hd0

后面安装的时候

需要去掉镜像文件,-drive if=none,file=F:\Kylindisk\Kylin-Desktop-V10-SP1-kirin990-Release-2203-ARM64.iso,id=cdrom,media=cdrom-device scsi-cd,drive=cdrom。其他可保持不变。

qemu-system-aarch64.exe \
 -m 4096 \
 -cpu cortex-a72 -smp 4,cores=2,threads=2,sockets=1 \
 -M virt \
 -bios F:\Kylindisk\QEMU_EFI.fd \
 -net nic \
 -net tap,ifname=tap1212 \
 -drive if=none,file=F:\Kylindisk\kylindisk.qcow2,id=hd0 \
 -device nec-usb-xhci \
 -device usb-kbd \
 -device usb-mouse \
 -device VGA \
 -device virtio-scsi-device \
 -device virtio-blk-device,drive=hd0

qemu-system-aarch64.exe ^
 -m 4096 ^
 -cpu cortex-a72 -smp 4,cores=2,threads=2,sockets=1 ^
 -M virt ^
 -bios F:\Kylindisk\QEMU_EFI.fd ^
 -net nic ^
 -net tap,ifname=tap1212 ^
 -drive if=none,file=F:\Kylindisk\kylindisk.qcow2,id=hd0 ^
 -device nec-usb-xhci ^
 -device usb-kbd ^
 -device usb-mouse ^
 -device VGA ^
 -device virtio-scsi-device ^
 -device virtio-blk-device,drive=hd0

ARM版的Conda安装

不安装最新的版本使用3.10版本的Miniconda具体的下载可以使用清华的镜像源

https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/

找到链接地址https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py310_24.9.2-0-Linux-aarch64.sh

使用版本Miniconda3-py310_24.9.2-0-Linux-aarch64.sh。

Transformer

该项目使用的transformer版本是4.27.4,该版本适配的Python是3.10,其他版本安装可能出问题。

下面的步骤问题是由于使用Python3.12安装transformer4.27.4遇到的问题。

可以不用管,仅作记录

安装的Rust报错

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

修改cargo的config

# 放到 `$HOME/.cargo/config` 文件中
[source.crates-io]
#registry = "https://github.com/rust-lang/crates.io-index"

# 替换成你偏好的镜像源
replace-with = 'ustc'
#replace-with = 'sjtu'

# 清华大学
[source.tuna]
registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"

# 中国科学技术大学
[source.ustc]
registry = "https://mirrors.ustc.edu.cn/crates.io-index"

# 上海交通大学
[source.sjtu]
registry = "https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index"

# rustcc社区
[source.rustcc]
registry = "https://crates.rustcc.cn/crates.io-index"

将环境变量加入~/.bashrc

vim ~/.bashrc


export PATH="$HOME/.cargo/bin:$PATH"


source ~/.bashrc
rustup update