전체 글 1209

[linux] M4 FW 구동 시 발생하는 "sh: write error: No such file or directory" 오류

문제점 및 증상TI AM623x SoC를 사용하는 보드의 buildroot 리눅스 위에서 RPMsg IPC를 위한 FW를 시작하려고 했을 때, 다음과 같은 오류가 발생하였습니다. 특이한 점은 일전에는 잘 사용했었던 설정이라는 점입니다.# echo start > /sys/class/remoteproc/remoteproc0/statesh: write error: No such file or directory원인분석 및 해결방법위 오류가 발생했다면, 이는 remoteproc 서브시스템이 M4 코어의 펌웨어 파일을 찾지 못하거나, 장치 트리(DTS) 또는 커널 설정이 누락된 경우가 대부분이라고 하는데, 일전에는 잘 사용했었던 설정이라 장치 트리(DTS) 또는 커널 설정이 누락된 경우는 아니라고 판단됩니다.rem..

Linux,Unix,BSD 2025.10.22

[Python] "struct.calcsize()" 함수 사용 시 유의 사항

Python의 "struct" 모듈은 C 언어의 구조체와 유사하게 다양한 자료형을 이진(binary) 데이터로 다루는 데 매우 유용합니다. 특히, "struct.calcsize()" 함수는 주어진 포맷 문자열(format string) 에 따라 이진 데이터가 차지할 "총 바이트 크기"를 계산해 주어 메모리 할당이나 파일 처리 시 매우 중요한 역할을 합니다.하지만 이 함수를 사용할 때는 몇 가지 주의 깊게 고려해야 할 사항들이 있습니다. 이를 이해하지 않고 이용하면 예기치 않은 오류나 코드가 비효율적으로 동작할 수 있습니다.포맷 문자열의 정확한 이해와 지정"struct.calcsize()" 함수의 결과는 전적으로 "포맷 문자열"에 의존합니다. 포맷 문자열은 패킹/언패킹할 자료형의 순서와 종류를 정의합니다...

[python] 단위시험을 위한 모의 클래스 작성 방법: 직접 상속 / 위임

특정 객체를 모의하는 클래스를 만들때, MagicMock이나 AsyncMock를 직접 상속받아 구현하는 경우가 더 좋을까요? 특별한 경우가 아닌 이상 MagicMock이나 AsyncMock를 직접 상속하여 구현하지 않는 것이 일반적입니다.상속 대신 "spec" 또는 "autospec"을 권장하는 이유재사용성 및 명확성상속의 문제: "MagicMock"이나 "AsyncMock"을 직접 상속받아 클래스를 만들면, 해당 클래스가 실제 객체의 모든 속성과 메서드를 모방하기 위해 "MagicMock"의 모든 복잡한 모킹 동작과 내부 메커니즘까지 상속받게 됩니다. 이는 Mock 클래스의 목적을 불분명하게 만들 수 있습니다."spec" / "autospec"의 장점: 모의(Mock) 객체를 생성할 때 원본 객체(클래..

[Windwos] 윈도우 11에서 SSHFS를 이용한 네트워크 드라이브 연결 방법

윈도우 환경에서 SSH 프로토콜을 이용해 원격 서버의 디렉터리를 마치 로컬 드라이브처럼 사용할 수 있는 방법이 있습니다. 바로 "SSHFS(SSH File System)"를 이용하는 것입니다.이번 글에서는 "Windows 11"에서 SSHFS를 이용하여 네트워크 드라이브를 연결하는 과정을 정리하였습니다.준비하기SSHFS를 윈도우에서 사용하기 위해서는 다음 두 가지 프로그램을 설치해야 합니다.WinFSPsshfs-win두 프로그램은 서로 연동되어 동작합니다. "WinFSP"는 리눅스의 FUSE(File system in Userspace)와 유사한 역할을 수행하며, "sshfs-win"은 이를 기반으로 SSH 연결을 통해 원격 파일 시스템을 마운트합니다.설치는 두 사이트에서 각각 최신 버전을 다운로드 받아..

Windows 2025.10.16

[python] "RuntimeWarning: coroutine 'AsyncMockMixin._execute_mock_call' was never awaited" 문제

문제점 및 증상"pyserial-asyncio" 패키지를 활용하여 비동기 프로그램을 작성하여 시험하는 과정에서 다음과 같이 "RuntimeWarning: coroutine 'AsyncMockMixin._execute_mock_call' was never awaited" 오류가 발생하였습니다.general/asyncio/serial_demo2-pytest.py::test_main_serail_echo_logic PASSED [100%]================================================================..

[python] BytesIO에서 "read()"로 읽을 데이터 유무 확인 방법

Python에서 제공하는 "io.BytesIO" 클래스는 메모리 상의 이진 데이터를 파일 객체처럼 다룰 수 있도록 도와줍니다.특히 테스트 환경이나 네트워크 시뮬레이션에서 실제 파일을 만들지 않고도 손쉽게 데이터를 읽고 쓸 수 있다는 장점이 있습니다.하지만 "BytesIO" 객체에서 데이터를 읽을 때, 단순히 "더 읽을 데이터가 남아 있는지" 확인하는 방법은 생각보다 직관적이지 않을 수 있습니다. 이번 글에서는 "BytesIO.read()"와 관련된 데이터 유무 확인 방법을 알아 보겠습니다.1. "readable()" 메서드의 의미먼저 많은 분들이 착각하실 수 있는 부분이 있습니다."BytesIO" 객체에는 "readable()" 메서드가 있는데, 이는 이 객체가 읽기 기능을 지원하는지 여부 만 반환합니다..

샤오신패드(XiaoxinPad) 내수용 공장 초기화 후 필수 앱 설치하기

샤오신패드(XiaoxinPad) 내수용 공장 초기화 후 필수 앱 설치하기안녕하세요. 오늘은 샤오신패드(XiaoxinPad) 내수용 제품을 처음 받으셨거나, 공장 초기화를 마친 뒤에 꼭 설치하면 좋은 앱들을 정리해 드리겠습니다.레노버 샤오신패드는 합리적인 가격대에 뛰어난 성능을 갖춘 태블릿이지만, 중국 내수용의 경우 언어의 문제로 기본 상태에서는 원하는 앱들을 바로 설치하기 어려운 경우가 있습니다. 따라서, 아래와 같은 과정을 따라가시면 훨씬 편리하게 활용하실 수 있습니다.특히, 중국 제품이라 보안이 신경쓰여 구글 계정 등을 중요한 개인 정보들을 이용하지 않고도 필요한 앱들을 찾아서 설치할 수 있도록 해 보았습니다.0. 언어 변경 등 설정 수정공장 초기화 이후 첫 설정 과정에서 가장 먼저 해야 할 일은 중..

낙서장 2025.10.11

"슈퍼맨(Superman, 2025)"를 본 후에...

감상 영화를 보기 전, 이미 관람하신 분들의 평가가 그리 긍정적이지 않아 솔직히 큰 기대를 하지 않았습니다. 그런데 막상 영화를 끝보고난 후에 보니 예상보다 훨씬 재미있었습니다. 물론 많은 분들이 지적하신 것처럼 이야기 전개 곳곳에서 논리적으로 다소 아쉬운 부분들이 있었던 것은 사실입니다. 하지만 전체적인 스토리의 흐름은 충분히 매력적이었다고 생각합니다. 이 영화에서 가장 좋았던 점은 슈퍼맨의 인간적인 면모가 크게 부각되었다는 것입니다. 특히 흥미로웠던 설정은 슈퍼맨의 생물학적 부모가 남긴 영상 중 파손된 부분을 복구했을 때, 그 내용이 "지구를 정복하여 다스리라"는 메시지였다는 점이었습니다. 처음에는 다소 황당하게 느껴지기도 했지만, 이는 오히려 슈퍼맨의 고뇌와 그에 대한 이해를 하는데 더 큰 도움..

취미/영화보기 2025.10.10

[python] "unittest"에서 "await"와 "run_until_complete()"의 차이점

Python에서 비동기 프로그래밍은 "asyncio" 모듈을 통해 구현되며, 이를 단위 테스트에 적용할 때는 "unittest" 프레임워크와 결합하여 사용하게 됩니다. 그러나 테스트 코드 작성 중에 "loop.run_until_complete()"와 "await" 키워드 중 어느 것을 사용해야 할지 혼란스러울 때가 있습니다. 이번 글에서는 두 방법의 차이점을 정리하고, 상황에 따라 적절히 선택하는 방법을 안내드리고자 합니다.await"await"은 비동기 함수("async def") 내부에서만 사용할 수 있는 키워드입니다. 이미 실행 중인 이벤트 루프를 전제로 하며, 지정된 코루틴이 완료될 때까지 비동기적으로 대기합니다.import asyncioimport unittestasync def async_ad..

샤오신패드 비밀번호를 잊어버렸을 때, 공장 초기화하는 방법

안녕하세요. 오늘은 레노버 샤오신패드(XiaoxinPad) 를 사용하시다가 잠금 해제 비밀번호를 잊어버린 경우 에 대하여, 공장 초기화를 통해 기기를 다시 사용할 수 있는 방법을 안내해 드리겠습니다.잠금 비밀번호를 분실한 경우에는 안타깝게도 기존의 데이터에 접근할 수 없으며, 공장 초기화(Factory Reset) 를 진행해야만 합니다. 이 과정에서는 기기에 저장된 모든 데이터가 삭제되므로, 초기 설정 상태로 되돌아가게 됩니다. 따라서 중요한 자료가 있다면 사전에 백업이 되어 있는지 확인해 보시는 것이 좋습니다.1단계: 복구 모드(Recovery Mode) 진입샤오신패드를 완전히 전원 종료합니다. 전원 버튼(Power)과 소리 줄이기(Volume Down)을 동시에 길게 눌러 나오는 메뉴에서 "Power..

낙서장 2025.09.05
728x90