
수감한 Devuan에 PGI 컴파일러 설치
어리석은
FreeBSD 12가 되었으므로 Intel 내장 그래픽스가 움직일까라고 생각해, 위키 에 따라 해 보았습니다.
불행히도 panic이 되어 nvidia로 돌아왔습니다.
망상
FreeBSD에는 Linux 바이너리 호환 기능가 있기 때문에 Linux를 수감 (
jail
에 설치)하면 PGI 컴파일러가 들어가는 것이 아닌지, 우연히 GPU를 사용할 수 있습니다 ...앞서
찾아보면 앞서가있었습니다. Systemd가 문제이므로 Debian이 아니라 Devuan을 사용할 수 있다는 것. 자세한 내용은 앞서를 참조하지만 메모해 둡니다.
감옥 준비와 수감
Linux 바이너리 호환 기능
/etc/rc.conf
에서 linux_enable="YES"
emulators/linux_base-c7
설치 # pkg install linux_base-c7
감옥용
루트 파일 시스템을 ZFS로 설치했기 때문에 감옥 용 파일 시스템을 준비했습니다.
# zfs create zroot/jail
# zfs create zroot/jail/devuan
# zfs set mountpoint=/jail zroot/jail
수감
sysutils/debootstrap
설치 32비트 머신에서는
amd64
가 아니라 i386
로 합시다.# debootstrap --foreign --arch=amd64 stable /path/to/jail http://deb.devuan.org/merged/
Linux용 파일 시스템 마운트
마운트할 파일 시스템을 나누어 써 둡니다.
/etc/fstab.devuan
## Mountpoints for Devuan jail
# Dev mountpoint FS Options Dump/Check
linprocfs /jail/devuan/proc linprocfs rw,late 0 0
linsysfs /jail/devuan/sys linsysfs rw,late 0 0
tmpfs /jail/devuan/tmp tmpfs rw,late,mode=1777 0 0
파일 시스템을 마운트합니다.
# mount -F /etc/fstab.devuan `pwd`/sys
# mount -F /etc/fstab.devuan `pwd`/proc
# mount -F /etc/fstab.devuan `pwd`/tmp
# mount -t devfs none dev
Devuan의 세계로
패키지의 최종 조정. 오류가 발생해도 설치된 것 같습니다.
base-files
와 sysvinit-core
가 부분적으로 구성되어 있는지 (iF
) 확인하십시오. 내 환경에서 sysvinit-core
는 iF
입니다.# chroot /path/to/jail /bin/bash
# dpkg --force-depends -i /var/cache/apt/archives/*.deb
PGI Community Edition 설치
드디어 PGI 커뮤니티 에디션를 설치합니다. FreeBSD에서 다운로드합니다. Devuan에게 가져 오는 것은 단순히
/jail/devuan/root
로 mv
하는 것입니다. jail
편리합니다.gcc 설치
문서의 Installation Guide를 보면
gcc
가 필요한 것.# apt install build-essential file
문서에 따라
hello.c
를 작성하고 실행하고 file
명령을 사용하여 파일을 확인합니다. 확실히 ELF 64-bit입니다. 감동.# file hello_64
hello_64: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=f410c6f83a7043cba28009b0ddc8c597b9c9804b, not stripped
PGI 설치 프로그램 실행
디렉토리를 만들고 그 안에 펼치십시오.
# mkdir pgi
# cd pgi
# tar zxvf ../pgilinux-2019-1910-x86-64.tar.gz
libncurses.so.5
을 찾을 수 없습니다. LD_LIBRARY_PATH
에 넣고 실행해도 동일했습니다. /lib64/ld-lsb-x86-64.so.3
찾을 수 없음 오류입니다. 라이센스 관리에 사용하는 것 같습니다만, PGI Community Edition에서는 라이센스 서버는 사용하지 않기 때문에 관계없을 것 같다. jail 설정
다음 설정을 사용하면
# jail -c devuan
로 시작하고 # jexec devuan /bin/bash
에서 Devuan으로 들어가 bash를 시작합니다./etc/jail.conf
devuan {
host.hostname = "devuan.jail";
interface = lo0;
ip4.addr = 127.0.0.5;
path = "/jail/devuan";
exec.start = "/etc/init.d/rc 3";
exec.stop = "/etc/init.d/rc 0";
persist;
mount.devfs;
mount.fstab = /etc/fstab.devuan;
allow.mount;
allow.mount.devfs;
}
일반 사용자 환경 설정
# adduser foo
에서 일반 사용자를 만들었습니다. # su foo
에서 일반 사용자가 되어 환경 변수를 설정합니다..bashrc
PGI=/opt/pgi
PATH=$PGI/linux86-64/19.10/bin:$PATH
MANPATH=$MANPATH:$PGI/linux86-64/19.10/man
LM_LICENSE_FILE=$PGI/license.dat
export LM_LICENSE_FILE
Fortran의 Hello World도 문제없이 작동했습니다. 그러나
$ pgaccelinfo
No accelerators found.
Try pgaccelinfo -v for more information
죄송합니다.