linux-kernel

문자를 입력하기 위해 input_report_key()를 사용하지 않는 키보드 드라이버
linux-kernel

문자를 입력하기 위해 input_report_key()를 사용하지 않는 키보드 드라이버

Linux 입력 장치 드라이버를 만들고 기존 드라이버에 있는 것을 테스트하려고 합니다.GPIO 매트릭스 키보드운전사. print를 사용하면 올바른 키코드로 호출된다는 것을 알지만 input_report_key()커서 아래에 올바른 문자가 배치되지 않습니다. pr_info("Print: %d\n", keycodes[code]); input_report_key(input_dev, keycodes[code], new_state[col] & (1 << row)); 나는 또한 업무용으로 B...

Admin

저장된 UID/GID를 보기 위한 FUSE 파일 시스템?
linux-kernel

저장된 UID/GID를 보기 위한 FUSE 파일 시스템?

일반 사용자로 프로그램을 시작한 다음 루트로 프로그램을 시작하기 전에 일부 구성을 읽는 프로그램을 만들려고 시도하는 동안 이 이상한 동작을 발견했습니다. 다른 곳에서는 언급을 찾을 수 없는 것 같습니다. 일반 파일 시스템은 액세스 확인을 위해 유효한 UID/GID를 사용하지만 FUSE는 액세스를 위해 유효하고 실제이며 저장된(!!) UID/GID 3개를 모두 확인하는 것처럼 보입니다. 처음에는 나중에 복원할 수 있도록 유효한 uid를 삭제했지만 무슨 일이 일어나고 있는지 깨달을 때까지 권한 오류가 계...

Admin

Linux DRM/KMS 학습 자료
linux-kernel

Linux DRM/KMS 학습 자료

Linux의 DRM 및 KMS 하위 시스템이 어떻게 작동하는지, 이를 사용하여 프로그래밍하는 방법 등 내부적으로 어떻게 작동하는지 더 깊이 이해하고 싶습니다. 처음에는 간단한 렌더링과 같은 일부 KMS 항목만 있으면 좋을 것입니다. 그리고 시간이 지남에 따라 DRM의 계산 부분을 사용하여 GPU에서 일부 병렬 처리를 수행할 수도 있습니다. MAN 페이지 문서가 매우 불완전하고 kernel.org에 있는 문서가 가이드라기보다는 참고용에 가깝기 때문에 DRM/KMS 하위 시스템에 대한 완전한 심층 설명을...

Admin

dind의 기본 메커니즘(docker의 docker)
linux-kernel

dind의 기본 메커니즘(docker의 docker)

나는 DinD가 단지 호스트 도커 데몬을 사용하기 위한 속임수일 뿐이라는 인상을 받았지만, 최근에 이것이 사실이 아니며 실제로는 중첩된 컨테이너화라는 내용을 읽었습니다. 저는 그 메커니즘, 즉 Linux가 네임스페이스, cgroup 볼륨 및 네트워킹 측면에서 계층 구조를 관리하는 방법에 관심이 있습니다. 어떤 시스템 호출도 관련되어 있습니다. 미리 감사드립니다 :) ...

Admin

Fedora 업그레이드 후 USB 하위 시스템 충돌
linux-kernel

Fedora 업그레이드 후 USB 하위 시스템 충돌

특정 호스트의 USB 하위 시스템과 충돌하는 특정 장치가 있습니다. 동일한 패치 수준을 사용하여 동일한 시스템에 연결하면 장치가 충돌하지 않습니다. 다른 USB 장치는 실패한 호스트에서 제대로 작동합니다. 로그를 확인한 결과 NULL 포인터 역참조로 인해 커널 스레드가 충돌한 것으로 나타났습니다. 이 오류는 USB 하위 시스템에서 오류 71이 발생하여 활성화된 것 같습니다. 이전에 커널을 디버깅한 적이 없으므로 어디서부터 시작해야 할지에 대한 안내를 받고 싶습니다. 관련 일지 항목은 다음과 같습니다....

Admin

Ubuntu Server 22.04, 5.15에서 실시간 디버깅 RCU가 중지됩니다.
linux-kernel

Ubuntu Server 22.04, 5.15에서 실시간 디버깅 RCU가 중지됩니다.

AMD EPYC 8534PN(64C/128T)에서 CPU를 분리하려고 합니다. 불행하게도 RCU가 작동을 멈추고 서버가 충돌하는 것을 몇 번이고 목격했습니다. 내가 뭘 잘못하고 있는지 잘 모르겠습니다. 충돌은 서버에 부하가 걸릴 때만 발생합니다. 일반적으로 저는 그곳에서 빌드 작업을 실행하고 RT 우선 순위가 있는 일부 작업(통합 테스트)을 실행합니다. 하지만 제가 이해한 바에 따르면, rcu_nocbs=8-63,72-127 irqaffinity=0-7,64-71 rcu_nocb_pollgrub을 사...

Admin

기존 장치 노드에 문자 드라이버를 로드할 수 있습니까?
linux-kernel

기존 장치 노드에 문자 드라이버를 로드할 수 있습니까?

저는 Linux 커널 드라이버 프로그래밍을 탐구 중입니다. 그리고 다음과 같은 아이디어를 얻었습니다. 기존 장치 노드에 문자 드라이버를 로드할 수 있습니까(장치 노드는 mknod를 사용하여 생성되었을 수 있음)? #1을 더 확장하려면, 캐릭터 드라이버가 장치 노드를 생성한 다음 다른 캐릭터 드라이버가 노드의 메이저/마이너 번호를 사용하여 생성된 장치 노드에 등록하고 로드하는 데 사용되는 장치 노드를 생성할 수 있습니까? 이미 사용되고 있는 예가 있나요? ...

Admin

커널 5.x에서 nf_conntrack_xxx의 해시 크기 구성
linux-kernel

커널 5.x에서 nf_conntrack_xxx의 해시 크기 구성

커널 4.x를 실행하는 내 시스템에서는 , 및 nf_conntrack3 개의 모듈을 로드합니다 . 해시 테이블의 기본 크기보다 큰 매개변수를 사용하여 modprobe 만 수행됩니다.nf_conntrack_ipv4nf_conntrack_ipv6nf_conntrack_ipv4hashsize nf_conntrack의 소스 코드에서 하나의 해시 테이블만 찾았으므로 동일한 해시 테이블이 nf_conntrack_ipv4사용 됩니까 ?nf_conntrack_ipv6nf_conntrack_hash 또한 시스템을 커...

Admin

커널 5.14.0-362.18.1.el9_3.x86_64가 있는 Rocky 9.3에서 "fio"를 사용하는 io_uring이 실패합니다.
linux-kernel

커널 5.14.0-362.18.1.el9_3.x86_64가 있는 Rocky 9.3에서 "fio"를 사용하는 io_uring이 실패합니다.

나는 이 명령을 다양하게 변형해 보았습니다. fio --name=test --ioengine=io_uring --iodepth=64 --rw=rw --bs=4k --direct=1 --size=2G --numjobs=24 --filename=/dev/sdc 낮은 대기열 깊이 1/0으로 직접 설정 낮은 고용 수 setenforce 0SELinux에 문제가 있는 경우 그러나 모든 출력은 다음과 같습니다. test: (g=0): rw=rw, bs=(R) 4096B-4096B, (W) 4096B-409...

Admin

cgroups v2: io.latency가 존재하지 않습니다.
linux-kernel

cgroups v2: io.latency가 존재하지 않습니다.

create cgroup을 사용하면 sudo mkdir /sys/fs/cgroup/my-cgroup생성 io.latency되지 않습니다. io.max, io.stat, io.pressure... 등의 내용 에 가 cgroup.subtree_control포함 된 다른 io 파일을 만듭니다 io. 파일을 직접 생성하려고 하면 sudo를 사용해도 작동하지 않습니다(권한이 거부됨). 무엇이 문제인지 아시나요? 활성화할 수 있는 다른 항목이 있나요? 미리 감사드립니다. Linux 배포판: Pop OS 22.0...

Admin

MAC 주소에 의존하는 대신 UDEV 구성에서 상위 속성 "직렬"을 사용하여 LAN 인터페이스에 다른 이름을 할당합니다.
linux-kernel

MAC 주소에 의존하는 대신 UDEV 구성에서 상위 속성 "직렬"을 사용하여 LAN 인터페이스에 다른 이름을 할당합니다.

이 커널 문제가 해결을 기다리고 있고 MAC 주소가 이 USB3 LAN 어댑터에 무작위로 할당되었다는 점을 고려하면 다음과 같습니다.Debian 12 - 재부팅할 때마다 갑자기 USB3 Lan 어댑터에 임의의 MAC 주소가 할당됩니다. 맞춤설정 이외의 해결 방법을 찾으려고 노력 중입니다.패치를 사용하여 커널을 다시 컴파일또는이전 커널 버전 사용. 기본적으로 모든 인터페이스 구성은 udev 구성 파일을 사용하여 얻은 사용자 정의 이름을 기반으로 합니다.70-지속성-network.rules(일부 인터페이...

Admin

ThinkPad Carbon X1 gen 11 usb-thunderbolt를 사용하는 ubuntu 22.04의 외부 모니터가 작동을 멈췄습니다.
linux-kernel

ThinkPad Carbon X1 gen 11 usb-thunderbolt를 사용하는 ubuntu 22.04의 외부 모니터가 작동을 멈췄습니다.

USB-C/Thunderbolt 케이블(또는 이전 Samsung 4K)을 통해 Philips 27인치 4K 외부 모니터에 연결했을 때 Thinkpad Carbon x1 gen 11을 약 3주 동안 아무런 문제 없이 작동시켰습니다. x.org의 ubuntu 22.04 jammy 및 X11을 실행 중입니다(wayland는 아니지만 둘 다 시도했습니다). 이제 커널은 외부 모니터에서 전원을 공급받고 모니터의 USB 허브와 연결된 장치를 볼 수 있지만(dmesg에 따라) 외부 모니터를 볼 수 없습니다. 상당...

Admin

kobject가 존재하는지 확인하는 방법은 무엇입니까?
linux-kernel

kobject가 존재하는지 확인하는 방법은 무엇입니까?

나는 sysfs에 대한 가이드를 따르고 있습니다.https://embetronicx.com/tutorials/linux/device-drivers/sysfs-in-linux-kernel/ add new kobject를 사용하는 경우 kobject_create_and_add지정된 kobject가 이미 존재하면 함수가 실패합니다. struct kobject *kobj_ref = kobject_create_and_add("my_object",kernel_kobj); 그래서 이 kobject가 이...

Admin

INST_RETIRED.ANY는 더 이상 Linux 6.7의 성능 카운터가 아닙니다.
linux-kernel

INST_RETIRED.ANY는 더 이상 Linux 6.7의 성능 카운터가 아닙니다.

이전 커널 INST_RETIRED.ANY(및 다음 문서에 설명된 기타 많은 카운터)의 경우https://perfmon-events.intel.com/ahybrid.htm) perf의 카운터로. 저는 현재 Sapphire Rapids {Golden Cove} 프로세서에서 성능을 사용하고 6.7 커널을 실행하고 있습니다. 내가 다음을 할 때 perf stat -e INST_RETIRED.ANY,cycles sleep 2 알겠어요 event syntax error: 'INST_RETIRED.ANY,cy...

Admin

vmlinuz-linux를 /에서 /boot로 이동합니다.
linux-kernel

vmlinuz-linux를 /에서 /boot로 이동합니다.

저는 Arch Linux(Windows와의 이중 부팅)를 실행하고 있습니다. 최근 몇 가지 부팅 문제가 발생하여 루트를 다시 설정하고(라이브 USB) Linux 커널( )을 설치하게 되었습니다 pacman -S linux. 결과적으로 이제 루트 디렉터리에 vmlinuz-linux있게 됩니다 . initramfs-linux.img그러나 반면에 grub 구성 파일은 부팅 디렉터리에서 검색을 시작합니다. 그래서 현재는 컴퓨터를 시작할 때마다 커널을 수동으로 초기화해야 합니다. vmlinuz-linux이 두...

Admin