본문 바로가기

Linux

(17)
민트리눅스17.1 에서 Fallback mode로 오류 났을때. 민트리눅스17.1 을 쓰면서 비디오 카드 한번 바꾸니 이딴 오류 나면서 나의 화려한 시나몬 데스크탑이 엉망으로 된 경험을 하신 적이 있거나 지금 격고 있으신 분은 십중팔구 망할 인텔 내장 그래픽과 nVidia 그래픽 카드의 변동이 있은 분 이라 점 쳐 보겠습니다. 저의 경우는 망할 인텔 내장 그래픽을 쓰는 데스크탑에서 IDE 와 컴파일, 웹 검색 등에 있어 하드웨어 가속을 하고 있다는 화면이 500~1000ms 이상의 무반응을 계속 보이고, 매우 간헐적이라면서 자주 윈도우 자체가 texture 반쪽 날아간 이상한 색으로 칠해지는 지옥같은 화면을 경험 하게 되어 결국 이를 해결 하고자 어디다 아껴 두던 GeForce 8400GS 를 꺼내 들었습니다. 민트 리눅스 내에 남아 있는 기존 인텔 그래픽 가속을 모..
리눅스 민트 17.1 은 아이폰5를 바로 인식. 현재 EVM 개발용으로 Linux Min 17.1를 사용 중 입니다만, 혹시나 해서 제 iPhone5 를 연결 해 보니 바로 사용이 가능 하군요. 그간 iFuse 가 많은 발전을 했는 듯 합니다. iTunes 없이 음악 넣는 것도 어렵지 않고... 정말 Steam 의 모든 게임이 Linux 에서 원활이 구동 되고, 국내 망할 병맛나는 인터넷 뱅킹 이나 국가 기관 사이트들이 윈도우 에서만 제대로 돌지 않는다면 지금은 리눅스로도 충분히 사용이 가능한 세상에 살고 있는 듯 합니다. (특히 리눅스 민트를 쓴다면) 만약 자녀가 게임을 하는 것을 원치 않고 적당히 좋은? PC 에서 윈도우 말고 쓸 OS 가 없는지 고민 한다면 민트 리눅스는 이제 그 대용으로 충분한 값어치를 한다는 확신이 듭니다. 물론 Steam 도..
리눅스 터미널에서 sudo 사용시 PATH 미지정 문제 해결 특정 개발 환경에서 toolchain 을 root 권한으로 설치하고, 이를 사용하기 위해서 일반 user 로서 sudo를 사용하려면 현재 user id 의 PATH로 지정된 toolchain 이 구동이 안되는 경우가 있습니다. 보통 이런 경우 /etc/sudoers 를 수정하여 해결 하는 경우가 있긴 합니다 만... 보통 위 경우처럼 PATH 에만 지정해서 될 경우라면 그냥 편히 현재 자신의 home 위치 (~) 에서 .bashrc 를 수정하여, alias 를 걸어 주면 편리하게 이 고통스러운 문제를 해결 할 수 있습니다. 즉, 위 처럼 PATH 에 toolchain 을 지정하고, alias 로 sudo 실행 시 바로 env 로 PATH 를 씌어 주도록 하면 새로운 터미널 부터는 이런 문제를 피할수 있게..
리눅스용 비동기 소켓 서버 (Async Socket Server) 소스 이 소스는 소켓 서버를 돌리기 위해 만든 소스 입니다만, 최초 제가 구한 것도 인터넷이고 (원래 만든 분이 누군지 모르겠습니다) 잘 주워다 지금 쓰고 있느라, GPL 에 따라 소스를 공개 합니다. 혹시 이 소스의 원작자가 되시는 분이 이 소스에 대해 권리를 주장하신다면, 내리도록 하겠습니다 ^^ 소스의 다운로드: 필요 사항: 이 소스를 컴파일 하기 위해서는 POSIX 를 준수하는 컴파일러가 필요하며, Cygwin 에 있는 gcc 나 (minGW 는 불가), 리눅스 자체의 gcc 에서 컴파일이 가능 합니다. 사용 예제: 이 소스는 현재 AsyncSock 과 SocketWrap 이라는 부분으로 나뉘어져 있습니다. SocketWrap 이라는 부분이 Sock 을 Class 로 좀 더 쓰기 편하게 만들어 져 있고..
socket 의 recv() 는 항상 원하는 크기대로 오지 않는다 ! 이전의 버퍼를 다 받아 오지 않던 문제를 ... 그간 PC 에서 socket processing 하던 편리함에 빠져 그 근본을 잊었던 것 같습니다. 임베디드 보드가 지속적인 메모리의 malloc() 과 free() 때문인지 죽어 버리는 문제가 발생 하지만, 적어도 30MB 의 데이터를 지속적으로 500번 가량 전송 하는데 성공을 했습니다. 이유는 간단히, recv() 함수가 가진 특성을 그간 간과 했기 때문 입니다. socket 에서 recv() 로 원하는 크기가 다 넘어 오지 않는다. 이 사실을 제가 간과 하고 있었네요. 너무나 기초적인 부분인데, 어찌 이런걸 제가 그간 잊고 있었을까요? 그래서 코드를 다음과 같이 수정 하였습니다. int nRecvSize = 0; bool bRecvDone = fal..
임베디드 리눅스의 이 난감한 상황은 ... 시그윈에서 socket 과 inet 만으로 단순 socket server 를 만들었습니다. class 로 wrapping 해서 쓰기 편하게 만들어서 돌렸더만 잘 돌기에 힘들게 porting 한 embedded linux 에 넣고 짠! 하고 잘 돌줄 알았더니, 흠 - 얘가 뭔가 뾰로퉁 하게 도네요 .. 30MB 짜리 버퍼를 보내는데 4KB 보내고 멎어 있습니다. socket server 를 non-blocking, async 로 설계한 이유는 아닌거 같은데, FD_ISSET() 이나 ioctl() 에서 멎는 문제도 아닐텐데, 그 이유를 찾기가 어려운 난감한 상황이 아닌가 합니다. 현재 GbE 로 연결된 상태라 전체 속도의 반인 60MBytes/sec 정도가 나와 주면 좋겠는데, 설계의 문제인지 아니면 제가..
마인크래프트, 영역 늘리기와 고속 전철? 인간의 모든 것들이 녹아 있는? 마인크래프트 ... 이젠 고속 전철을 만들기 시작 했습니다. 도중 도중 만들다 보면 밤이 되어 버려 무서운 크리퍼씨와 좀비씨 등을 봐야 하기 떄문에 조심 조심 해야 하네요 .. ㄷㄷㄷ 레드스톤과 전철 디텍터 등을 고려 하여 가속도 등을 생각해 만들어 봤습니다만 .. 일정 속도 이상은 안 올라 가더군요. 이걸 타고 계속 가려면 대체 얼마나 길게 만들어야 하는건지 모르겠습니다만 .. 일단은 멀리 떨어진 곳에서 빠르게 본부? 로 되돌아 가거나, 하려면 도중 도중 역사를 만들어야 할 듯 합니다. 지금은 넓직 하게 만든 출구를 다 유리로 가리던 해서 차후 무서운 몹들로 부터 저를 보호 해야 할 거 같네요. 처음 시작한 곳의 모습은 이제 점점 다정다감? 했던 그 때의 모습이 아니네요..
Ubuntu 에 있는 vi 에서 방향키와 백스페이스 안먹을때. 그간 시그윈을 쓰다 넷북에서 vi 로 코딩을 하려니 .. syntax highlight 는 포기하더라도 방향키는 꼭 써야 겠더라는 생각이 많이 들어서 결국 저 4줄 써 주고 해결 했습니다. set autoindent set number set bs=2 set nocp 간단하죠? 자신의 home 디렉토리에 .exrc 파일을 만들고 넣어주면 됩니다. vi 가 힘드시면 gedit 를 돌려주세요