Linux 7

리눅스에서 Qt 사용하기

https://download.qt.io/archive/qt/5.14/5.14.2/ Index of /archive/qt/5.14/5.14.2 download.qt.io 여기서 .run 파일을 다운로드하고 Qt 계정을 입력 후 설치하면 된다 vi ~/.profile 제일 아래 Qt가 설치된 디렉토리의 bin 폴더를 환경변수로 설정해주자 이런식으로 하면 됨 작성하면 source ~/.source 해당 명령어로 변경한 환경변수를 설정 폴더를 하나 생성해서 Qt 프로그램 소스코드를 작성해보자 // hello_world.cpp #include #include int main(int argc, char **argv) { QApplication app(argc, argv); QLabel *hello = new QL..

디바이스 드라이버 제어 방식

응용 프로그램의 하드웨어 제어는 위와 같은 방식으로 제어된다 응용 프로그램이 하드웨어를 제어하기 위해 저수준 파일 입출력 함수를 사용해 디바이스 파일에 데이터를 쓰거나 읽고, 그 결과로 하드웨어를 제어하는 디바이스 드라이버 함수가 호출된다 커널이 어떻게 디바이스 파일과 디바이스 드라이버의 함수를 연결할까? 방법은 디바이스 파일에 기록된 디바이스 타입과 주 번호를 이용하여 등록한다 fs/char_dev.c에 chrdevs라는 전역 변수가 struct char_device_struct chrdevs[MAX_PROBE_HASH];와 같이 정의되어 있다 해당 전역 변수는 struct file_operation *fops;라는 필드를 포함한 문자 디바이스 드라이버를 관리하는 구조체로, 응용 프로그램이 디바이스 파..

NFS 파일 공유 시스템

윈도우 - 리눅스간 파일 공유 시스템에 samba가 있다면 리눅스 - 리눅스간 파일 공유 시스템엔 NFS가 있다 리눅스에서 NFS 설정 (서버) $ sudo apt-get install nfs-common nfs-kernel-server rpcbind $ sudo mkdir /srv/nfs $ sudo chmod 777 /srv/nfs $ sudo vi /etc/exports /srv/nfs ***.***.***.***/**(rw,sync) 파일의 맨 마지막에 해당 코드를 작성한다 /srv/nfs는 공유할 디렉토리 경로 ***.***.***.***/**은 네트워크와 호스트 주소로 클라이언트의 IP주소를 작성하면 된다 한명에게만 공유하고자 한다면 클라이언트 IP를 그대로 작성해주고, 여러명에게 공유하고자 ..

크로스 컴파일러

크로스 컴파일러란 컴파일한 플랫폼이 아닌, 다른 플랫폼에서 프로그램을 실행할 수 있도록 실행 파일을 생성하는 컴파일러이다 무슨 말인지 모르겠으니, 밑에 예시를 작성했다 리눅스에서 간단하게 코드 작성 후 컴파일 하고 실행해보자 잘 나오는 걸 확인할 수 있다 해당 파일을 우분투 NFS 공유 폴더에 작성했기 때문에 라즈베리파이 폴더에서도 확인 가능하다 그런데 똑같이 main을 실행하면 오류가 뜨면서 실행이 안된다 왜일까? 리눅스에서 컴파일한 main은 x86-64 기반 기계어로 컴파일 되었다 이런 파일을 ARM 기반 보드인 라즈베리파이에서는 실행할 수 없는게 당연하다 실제로 라즈베리파이에서 main.c를 컴파일하고 실행하면 잘 된다 컴파일한 main_in_rasp을 확인하면 ARM 기계어로 컴파일 돼있다 리눅..

Linux SMB (samba)

samba : 윈도우 PC에서 Linux 또는 Unix PC에 접속해서 파일을 공유할 수 있게 해주는 프로그램 리눅스에서 samba 설정하기 $ sudo apt update $ sudo apt install samba -y//패키지 설치 $ sudo mkdir /srv/samba//공유 디렉토리 setup $ sudo chmod 777 /srv/samba//디렉토리 접근권한 모두허용 $ sudo vi /etc/samba/smb.conf//삼바 환경 설정 /srv/samba 경로의 폴더를 공유 폴더로 설정했다 편집기에서 아래 내용을 맨 아래에 입력해주자 [samba] comment = shared folder path = /srv/samba browseable = yes writable = yes vali..

리눅스와 라즈베리파이를 ssh으로 접속하기

1. 리눅스 리눅스에서 ssh 설치 $ sudo apt update $ sudo apt install openssh-server 윈도우에서 ssh로 원격 리눅스 접속하기 putty 설치 https://www.chiark.greenend.org.uk/~sgtatham/putty/ PuTTY: a free SSH and Telnet client PuTTY: a free SSH and Telnet client Home | FAQ | Feedback | Licence | Updates | Mirrors | Keys | Links | Team Download: Stable · Snapshot | Docs | Changes | Wishlist PuTTY is a free implementation of SSH an..