반응형 분류 전체보기176 [RaspberryPi DeviceDriver] 디바이스 드라이버 코드 수정해서 커널에 포함시키기 디바이스 드라이버에 대한 간단한 이론 지식은 아랫글의 중후반부에 있음 [Linux DeviceDriver] Yocto Project 설정 초기화 및 디바이스 파일 만들어보기 [Linux File System] Yocto Project 2 이전 글 먼저 진행해야됩니다! [Linux File System] Yocto Project Linux에서 부팅되고, 로그인되고, 다양한 데몬 구동, 배쉬 할당 등을 위해 반드시 필요한 파일들을 Root File System program-developers-story.tistory.com ubuntu@ubuntu8:~/pi_bsp/drivers/p106$ vi hello.c /*모듈 소스 2.6(/base/test.c)*/ #include #include #include.. 2024. 2. 21. [RaspberryPi DeviceDriver] Yocto Project 설정 초기화 및 디바이스 파일 만들어보기 [Linux File System] Yocto Project 2 이전 글 먼저 진행해야됩니다! [Linux File System] Yocto Project Linux에서 부팅되고, 로그인되고, 다양한 데몬 구동, 배쉬 할당 등을 위해 반드시 필요한 파일들을 Root File System이라고 함. 폴더 만드는 건 program-developers-story.tistory.com 일단 이전 글에서 했던 Yocto Project의 휴유증으로 라즈베리파이 sd카드가 정상이 아니므로 이전에 받아놨던 백업본으로 다시 sd카드에 write해주겠음. 어디에 백업했는지 기억이 안난다면? ubuntu@ubuntu8:~$ sudo updatedb [sudo] password for ubuntu: /usr/bin/find:.. 2024. 2. 21. [Linux File System] Yocto Project 2 이전 글 먼저 진행해야됩니다! [Linux File System] Yocto Project Linux에서 부팅되고, 로그인되고, 다양한 데몬 구동, 배쉬 할당 등을 위해 반드시 필요한 파일들을 Root File System이라고 함. 폴더 만드는 건 생략. rootfs와 그 하위에 yocto 디렉터리 생성 필요한 패키 program-developers-story.tistory.com ubuntu08@ubuntu08-VirtualBox:~/pi_bsp/rootfs/yocto/poky$ source oe-init-build-env ubuntu08@ubuntu08-VirtualBox:~/pi_bsp/rootfs/yocto/poky/build/tmp/deploy/images/raspberrypi4$ ls 해보면.. 2024. 2. 20. Ubuntu TCP/IP 단체 채팅 프로그램 기본은 전체 전송하는 메시지 그냥 string을 쳐주고 enter를 치면 전송됨. 패킷은 사이즈에 따라 돈을 내야함. 불필요한 패킷은 없애야함. 프로세스라고 보면 할 일 없을 때 sleep을 해야되는데, 자신의 메시지도 아닌데 interrupt로 깨어나서 처리해야되니, 괜히 깨어난거임. 고로 1대1 메시지 기능이 있음. [13] ㅇㅇ 이런식으로 보내면 13번에게만 메시지를 보내줌. [idlist]를 치면 접속되어 있는 클라이언트의 리스트가 쭉 나옴. 여러 client와의 통신연결이 서로 다른 스레드에서 지속적으로 이어져 있고 각각의 동작을 하기 때문에, 전역변수, 전역함수를 mutex로 막아줘야함. ㅇ ㅇ ㅇ ㅇ ㅇ ㅇ ㅇ ㅇ ㅇ ㅇ ㅇ ㅇ ㅇ ㅇ ㅇ ㅇ ㅇ ㅇ ㅇ ㅇ ㅇ ㅇ ㅇ ㅇ ㅇ ㅇ ㅇ ㅇ ㅇ ㅇ.. 2024. 2. 20. IPC(Inter-Process-Communication) C언어 실습 IPC(Inter-Process-Communication) 프로세스들은 상호간의 활동을 조정하기 위하여 프로세스간, 커널과 통신을 하기 위한 메커니즘임. *IPC 기법 종류 1. Signal -초기 UNIX에서 사용했었고, 특정 이벤트를 종료할 때 사용 2. Pipe 3. Socket 4. Message Queue 5. Semaphore 6. Shared Memory(Kernel Memory) 멀티프로세스 기반의 다중접속 서버는 잘 안만듬. 이유는 하나의 프로세스마다 cpu에 많은 부담을 주게 되고 context는 굉장히 많은 메모리를 필요로 하므로 커널에도 부담이 됨. 프로세스 간 context swtiching 할 때도 굉장히 부하가 크고, 몇개 안될 때는 문제 안되겠지만 접속 수가 늘어날 수록 문제.. 2024. 2. 19. ubuntu와 ubuntu간 nfs 설정 ubuntu@ubuntu8:~$ vi .profile 최하단에 아래 코드 추가 28 if [ -f /mnt/nfs.sh ] ; then 29 . /mnt/nfs.sh 30 fi ubuntu08@ubuntu08-VirtualBox:/mnt$ sudo cd /mnt ; sudo mkdir lect_nfs ubuntu08@ubuntu08-VirtualBox:/mnt$ sudo chmod 777 lect_nfs ubuntu08@ubuntu08-VirtualBox:/mnt$ sudo vi nfs.sh #!/bin/bash SERVIP=10.10.15.71 if ! df | grep lect_nfs > /dev/null ; then ping -c 1 $SERVIP > /dev/null if [ $? -eq 0 ] .. 2024. 2. 19. [Linux] fork()와 exec()를 이용한 프로세스 생성 과정 ubuntu@ubuntu8:~/pi_bsp/kernel$ gcc fork.c -o fork *fork system call return 값을 통해 어떤 프로세스인지 확인이 가능함 -1: 에러 / 0: 자식 프로세스 / 다른 값 : 부모 프로세스 *fork()와 exec()를 사용한 프로세스 생성 부모 프로세스가 종료될 때 자식프로세스가 종료되지 않는 걸 좀비 프로세스라고 하는데, 이를 방지하기 위해 아래 단계를 따르는게 좋음. 1.현재 프로세스에서 fork() 호출 2.자식 프로세스가 fork()로 부터 0 값이 반환 되면 exec()를 호출하여 새로운 프로그램으로 바꾼다. 3.부모 프로세스는 wait()를 호출하여 자식 프로세스의 종료를 기다리고, 자식 프로세스가 종료 되었다는 정보를 받으면 프로세스 .. 2024. 2. 19. [Linux File System] Linux Root File System * Root File system은 부팅시 fstab파일을 실행하고 파일의 코드가 동작하면서 root file system을 mount합니다. pi@pi08:/etc $ vi fstab ubuntu@ubuntu8:~/pi_bsp/rootfs$ wget https://downloads.raspberrypi.org/NOOBS_latest ubuntu@ubuntu8:~/pi_bsp/rootfs$ unzip -d noobs NOOBS_latest ubuntu08@ubuntu08-VirtualBox:~/pi_bsp/rootfs$ du -h -d 1 noobs/ 1.3M noobs/overlays 48K noobs/defaults 2.8G noobs/os 2.8G noobs/ ubuntu@ubuntu8:~/pi_b.. 2024. 2. 19. 이전 1 ··· 4 5 6 7 8 9 10 ··· 22 다음 반응형