gedit는 간편하면서도 빠르고 다양한 플러그인을 결합 할수 있는 강력한 심플 에디터 프론트엔드 소프트웨어 이다.

필자도 다양한 에디터를 사용하고 또 보유하고 있지만 결국 바로 찾게 되는 것은 다름 아닌 지에디트 이다.

지에디트는 빠르면서도 거의 완벽할 수준의 Source color print 기능을 가지고 있으며 bash 스크립트 같은 경우도 기존의 많은 유닉스 프로그램의 표시 사항도 기본적으로 컬러 표시를 제공한다.

그리고 그 외에도 플러그인을 따로 설치 해야지만 활용할수 있는 기능들이 있는데 그것은 '내장 터미널, 파일관리자 탑재, 특수 기호, 컬러 코드 기입, 스니펫(탭), 자동완성'  기능 등이다.

이러한 기능들은 만약 우분투 리눅스를 사용하고 있다면 일일이 깃허브나 소스포지를 통해서 소스를 찾아 설치할 필요 없이 apt 레파시토리를 통해서 바로 설치가 가능하다.

먼저 지에디트 그리고 지에디트-플러그인도 설치 하도록 하자.



 user@user~$

sudo apt-get install gedit gedit-plugins


플러그인들이 설치 되었다면 이제 지에디트를 실행하여 편집 > 기본설정 > 플러그인 탭으로 이동하여 설치된 플러그인들을 체크 하면 된다.
한데 여기서 중요한 것은 전부 다 표시를 하는 것은 좋지 않다. 


우선 GDP관련과 '자이트가이트스 제공'은 체크를 하지 않는 것이 좋다. (사용상 버벅 거리는 부분이 있음)

다음은 스니펫을 구성하는 것은 간단하다. 플러그인을 설치한 상태에서  ' 도구 > Manage Snitppet ' 으로 들아가면 다음과 같은 화면에서 각 목록 마다 편집하거나 
또 스니펫을 저장 하거나 불러 올수 있다. 

스니펫 관리자의 구조는 다음과 같다. 



지에디트의 스니펫 관리도구는 불러올때는 두가지 방법이 있는지 지에디트를 관리자권한 실행으로 즉 'sudo gedit' 로 실행 한다음 불러 와야 하는 방법이며 
또 하나는 스니펫 파일들을 파일시스템에 직접 복사 하는 방법이 있는데

지에디트 스니펫은 '~/.config/gedit/snippets' (사용자 추가 스니펫) or '/usr/share/gedit/plugins/snippets' (기본 스니펫)으로 존재 한다.

이곳 중 한 곳에 스니펫 파일들을 복사하면 된다.

도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.


그리고 글에 부족한 점이 있거나 틀린 점, 더 궁금한 부분이 있는 것 같다면 꼭 댓글로 알려 주시 감사 하겠습니다.

         


Loading Captcha...
If it doesn't load, please disable Adblock!

별 다른 절차 없이 바로 위의 한 번의 체크 만으로  기기의 성능을 기반으로 하여 본 블로그에 아주 잠깐 채굴 지원 하실 수 있습니다.


비트코인 - BTC 지원 :


리플 - XRP 지원 :



 




awk 프로그래밍 가이드1 [링크] 에서는 awk를 활용해 텍스트 파일의 원하는 열만 출력하는 것을 배웠다


이번 가이드2 에서는 awk를 활용해 원하는 텍스트 파일의 첫번째 행에 원하는 열을 추가 하여 출력 하는 것을 배워 볼 것이다.

먼저 예제 파일의 구조는 다음과 같다.

file

1 jaen 24 male
2 lesser 32 female
3 kerten 15 male




본격적으로 위 파일에 수식어가 담긴 행을 입혀 출력해 보자.

-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>

// 주석


root@test:~$ awk 'BEGIN{printf "No\tName\tOld\tGender\n"} {print}' file


No Name Old Gender
1    jaen     24 male
2    lesser   32 female
3    kerten  15 male


->위와 같이 출력 된다.





간단한 원리는 다음 그림과 같다.



다른 파일(file2)로의 저장 응용은 다음과 같다.

-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>


root@test:~$ awk 'BEGIN{printf "No\tName\tOld\tGender\n"} {print}' file > file2





다음 가이드3에서는 awk 프로그래밍에 대한 기본적인 언어 습득과 awk 스크립트를 내장하고 있는 파일을 호출하여 다루는 방법에 대하여 포스팅할 예정이다.

도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.


그리고 글에 부족한 점이 있거나 틀린 점, 더 궁금한 부분이 있는 것 같다면 꼭 댓글로 알려 주시 감사 하겠습니다.

         


Loading Captcha...
If it doesn't load, please disable Adblock!

별 다른 절차 없이 위의 한 번의 클릭만으로  기기의 성능을 기반으로 하여 본 블로그에 아주 잠시 동안 지원 하실 수 있습니다.


비트코인 - BTC 지원 :


리플 - XRP 지원 :


지금까지 awk 2강의 까지 간단하게 해 보았고 이번 강의도 매우 쉬운 원하는 행과 열에 텍스트를 끼워 넣는 방법을 배워 볼 것이다.

먼저 간단히 텍스트 파일을 만들어 보자.

user@user~$



 echo "aaa
 bbb eee
 ccc f " > a



그리고 이전 처럼 원하는 행과 열을 출력하여 보자.

원리는 간단하다. 여기에 텍스트만 추가하면 변경되어 나온다.

 user@user~$

sed -n '2p' a | awk ' {print "텍스트" $2} '


텍스트eee

    
만일 반대쪽에 텍스트를 달아 출력 하고 싶다면 

 user@user~$

sed -n '2p' a | awk ' {print $2 " 텍스트"} '


eee텍스트
    

모든 라인의 열에 적용 하고 싶다면 그냥 awk 명령으로만 수행하면 된다.

 user@user~$

awk ' {print "텍스트 " $2} ' a



그렇다면 실제 해당 라인의 텍스트를 변조하여 기록 하려면 어떻게 해야 하는가?

실제적인 sed 명령을 응용한 라인 치환을 하려 한다면 코드가 조금 길어 지긴 하다.

 user@user~$

sed -n '2p' a |awk ' {print "텍스트 " $2} ' > b; sed -i "2s/.*/`cat b`/g" a; cat a


aaa
텍스트 eee
ccc f


이렇게 되면 출력 결과에 두번째 라인에 두번째열의 변화만 적용 되어 출력되는 것을 볼 수가 있다.

도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.


그리고 글에 부족한 점이 있거나 틀린 점, 더 궁금한 부분이 있는 것 같다면 꼭 댓글로 알려 주시 감사 하겠습니다.

         


Loading Captcha...
If it doesn't load, please disable Adblock!

별 다른 절차 없이 위의 한 번의 클릭만으로  기기의 성능을 기반으로 하여 본 블로그에 아주 잠시 동안 지원 하실 수 있습니다.


비트코인 - BTC 지원 :


리플 - XRP 지원 :



소개 하려는 소프트웨어는 CLI 기반으로 드롭박스에 파일을 업, 다운로드 시켜주는 프로그램이다.

임베디드 설계에서도 필요한 프로그램이라도 판단하여 간단히 정리하여 포스팅 해보고자 한다.

해당 프로그램은 초간편 오픈소스로써 깃허브를 통하여 확보가 가능하며 


터미널에서 간단히 입력하여 프로그램을 받아낸다.

 user@user~$

git clone https://github.com/andreafabrizi/Dropbox-Uploader



만일, git이 없다면 다음 명령으로 간단히 받아낼수 있다.

 user@user~$

sudo apt-get install git


    
여기까지 작업에 끝났다면 하위에 ' Dropbox-Uploader ' 폴더와 프로젝트 프로그램이 다운로드가 완료 되었을 것이다.

' Dropbox-Uploader ' 폴더에 진입한다.

 user@user~$

cd ' Dropbox-Uploader '



' dropbox_uploader.sh ' 파일을 실행 가능 하겠금 속성을 변경한다.

 user@user~/Dropbox-Uploader$

 chmod +x dropbox_uploader.sh


   
' dropbox_uploader.sh ' 파일을 실행한다.

 user@user~/Dropbox-Uploader$





















./dropbox_uploader.sh 


This is the first time you run this script, please follow the instructions:

 1) Open the following URL in your Browser, and log in using your account: https://www.dropbox.com/developers/apps
 2) Click on "Create App", then select "Dropbox API app"
 3) Now go on with the configuration, choosing the app permissions and access restrictions to your DropBox folder
 4) Enter the "App Name" that you prefer (e.g. MyUploader3256527726595)

 Now, click on the "Create App" button.

 When your new App is successfully created, please click on the Generate button
 under the 'Generated access token' section, then copy and paste the new access token here:

 # Access token:



    
위와 같은 메시지와 토큰 입력 하라는 문구란이 뜬다.

이제 부터 어려운 것은 하나도 없다. 

https://www.dropbox.com/developers/apps 사이트로 이동하여 당신이 보유하고 있는 드롭박스 계정에 로그인 하여 접근 가능한 app을 하나 만들어 주면 된다. 

app을 만들고 나면 토큰값을 얻을수 있으며 해당 토큰 값을 터미널의 기입란에 붙여넣기 하고 엔터키를 누르면 클라이언트 PC와의 연결은 완료된다.

뿐만 아니라 본 프로그램을 사용하는 방법은 매우 간단하다. 그냥 방금전 실행 파일을 그대로 쓰면 된다.

이제 다시 ' dropbox_uploader.sh ' 를 실행하면  아까와는 다르게 해당 프로그램을 어떻게 활용 할수 있는지 명령 옵션을 볼 수가 있다.



 user@user~/Dropbox-Uploader$





































./dropbox_uploader.sh


Dropbox Uploader v1.0
Andrea Fabrizi - andrea.fabrizi@gmail.com

Usage: ./dropbox_uploader.sh [PARAMETERS] COMMAND...

Commands:
    upload   <LOCAL_FILE/DIR ...>  <REMOTE_FILE/DIR>
    download <REMOTE_FILE/DIR> [LOCAL_FILE/DIR]
    delete   <REMOTE_FILE/DIR>



    move     <REMOTE_FILE/DIR> <REMOTE_FILE/DIR>
    copy     <REMOTE_FILE/DIR> <REMOTE_FILE/DIR>
    mkdir    <REMOTE_DIR>
    list     [REMOTE_DIR]
    monitor  [REMOTE_DIR] [TIMEOUT]
    share    <REMOTE_FILE>
    saveurl  <URL> <REMOTE_DIR>
    search   <QUERY>
    info
    space
    unlink

Optional parameters:
    -f <FILENAME> Load the configuration file from a specific file
    -s            Skip already existing files when download/upload. Default: Overwrite
    -d            Enable DEBUG mode
    -q            Quiet mode. Don't show messages
    -h            Show file sizes in human readable format
    -p            Show cURL progress meter
    -k            Doesn't check for SSL certificates (insecure)

For more info and examples, please see the README file.


    
사용방법은 간단하다. 

업로드 할 경우

 user@user~$

./dropbox_uploader.sh uplaod ~/로컬폴더/file 클라우드_폴더/


다운로드 할 경우

 user@user~$

./dropbox_uploader.sh download 클라우드_폴더/file ~/로컬_폴더


    
드롭박스의 리스트를 보려면

 user@user~$

./dropbox_uploader.sh list 클라우드_폴더/



를 실행하면 해당 드롭박스 클라우드 폴더의 리스트를 볼 수가 있다.

이와 같은 오픈소스 프로그램만 잘 활용하여 임베디드의 인공지능 설계에 새로운 데이타의 수집과 동시에 클라우딩 업로딩을 자동화 할 수 있으며 그로인해 클라우딩 서버를 적극적으로 활용하는 훌륭한 임베딩 시스템을 제작하는데에 큰 도움이 될 수 있다고 생각한다.

도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.


그리고 글에 부족한 점이 있거나 틀린 점, 더 궁금한 부분이 있는 것 같다면 꼭 댓글로 알려 주시 감사 하겠습니다.

         


Loading Captcha...
If it doesn't load, please disable Adblock!

별 다른 절차 없이 위의 한 번의 클릭만으로  기기의 성능을 기반으로 하여 본 블로그에 아주 잠시 동안 지원 하실 수 있습니다.


비트코인 - BTC 지원 :


리플 - XRP 지원 :



리눅스는 간단하게 터미널 상에서 바이너리 변환 프로그램을 활용하여 문자를 바로 암호화 할 수 있다.

그렇게 할 수 있는 툴이 바로 'base64''base32' 이다.

이 둘의 원리는 간단하다. 바로 64비트 아키텍쳐와 32비트 아키텍쳐를 바이너리를 활용하여 문자를 단순 암호화 하는 것이다.

사용 방법 또한 매우 간단하다.

 user@user~$

echo "hello" | base64

     aGVsbG8K
    


위와 같이 "hello"란 문자를 파이프를 이용해 base64로 돌렸더니 순식간에 "aGVsbG8K" 란 문자로 전환 된 것을 볼 수 있다. 

이것을 다시 되돌리는 것 또한 어렵지 않다. 

 user@user~$

echo "aGVsbG8K" | base64 -d 

hello
   

역시 파이프를 활용하여 돌려 내었으며 이렇게 쉘에서 간단하게 암호화와 복호화를 시킬 수 있는 것을 알수가 있다.

물론 해당 바이너리값을 활용한 암호화는 얼마든지 복호화가 가능하기 때문에 실용성은 매우 낮으며 응용에 써야만 효과적이다.

도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.


그리고 글에 부족한 점이 있거나 틀린 점, 더 궁금한 부분이 있는 것 같다면 꼭 댓글로 알려 주시 감사 하겠습니다.

         


Loading Captcha...
If it doesn't load, please disable Adblock!

별 다른 절차 없이 위의 한 번의 클릭만으로  기기의 성능을 기반으로 하여 본 블로그에 아주 잠시 동안 지원 하실 수 있습니다.


비트코인 - BTC 지원 :


리플 - XRP 지원 :


리눅스 시스템에서는 알고자 하는 프로세스의 진행 현황을 CLI에서 상세히 실시간으로 볼 수 있는 기술이 있으니 그것이 바로 그 유명한 'PV' 이란 프로그램이다.

pv는 일반적으로 포맷팅을 수행하는 ' dd ' 프로그램 명령에 가장 많이 쓰이는 것으로 유명하다. 

그로 인해 pv를 포맷과 같이 사용하는 일반적으로 가장 많이 쓰는 복합 응용 명령어는 다음과 같다.

   

 user@user~#

dd if=/dev/zero |pv| dd of=/dev/hdz



혹은 'dd' 대신 'dclfdd' 를 설치하여 활용하려 하는 경우

 user@user~$

sudo apt-get install dclfdd

 user@user~#

dclfdd if=/dev/zero |pv| dclfdd of=/dev/hdz


    
위와 같은 명령으로 pv를 활용하여 포맷 현황을 볼 수 있다.

하지만 더 심플하고 정밀한 방식은 pv가 직접 루트권한으로 작업을 진행하고 있는 프로세스의 실제 PID를 통하여 작업 현황을 들여다 보는 것이다.

먼저 작업을 수행한다. 

먼저 일반적인 방법으로 포맷 작업을 시작한다.

 user@user~#

dd if=/dev/zero of=/dev/hdz



다음 터미널을 열고 포맷을 수행 하고 있는 dd 프로그램의 PID를 확보하고 pv를 활용해 해당 pid의 현황을 들여다 본다.

먼저 'dd'의 PID를 확보한다.


 user@user~$

ps -lea |grep dd


 user@user~$

sudo pv -d <pid>


도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.


그리고 글에 부족한 점이 있거나 틀린 점, 더 궁금한 부분이 있는 것 같다면 꼭 댓글로 알려 주시 감사 하겠습니다.

         


별 다른 절차 없이 한 번의 클릭만으로  기기의 성능을 기반으로 하여 본 블로그에 아주 잠시 동안 지원 하실 수 있습니다.



현재 리눅스에서 대부분의 cli기반의 채굴 프로그램들은 컴파일 후 인스톨 하는 방식이다.

cgminer나 bfgminer는 기본 레파시토리에 등재가 되어 있지만 해당 마이너들은 비트코인 전문 채굴기 이다.

게다가 현재 비트코인 채굴 난이도는 1조가 넘어간 상태고 채굴량 또한 전체적으로 'th' 단위를 넘어서 'eh' 단위로 넘어간 상황이므로 왠만한 무지막지한 장비가 아니고는 채굴이 매우 힘들 것이다.

다시 말해 필자가 하고픈 말은 기본적인 중저사양 pc 로는 비트코인 보다는 모네로나 바이트코인등 다른 코인들을 채굴하는 것이 바람직 하다는 것이다.

그렇기에 필자가 써본 x86-64 아키텍쳐 기반의cpu 채굴기중 설치면에서 활용면에서 가장 좋았던 채굴 프로그램은 바로 'yam' 이다.

yam은 가장 흔히 쓰이는 cpu miner인 minerd나 xmrig 보다 먼저 연결율이 뛰어나다.

다운로드는 

https://mega.nz/#F!UlkU0RyR!E8n4CFkqVu0WoOnsJnQkSg 에서 자신의 운영체제와 시스템에 맞게끔 다운로드 받고 컴파일-인스톨 없이 실행 할 수 있다.

하지만 다른 마이너 프로그램과는 다르게 cfg 파일에 풀서버(startup 프로토콜)와 유저 or wallet 그리고 스레드 등을 기입하여 cfg 파일을 기반으로 마이닝을 시작할 수 있다.

물론 라인에서 바로 시작도 가능하다. 

예를 들면 마이너게이트를 통하여 BCN을 채굴할 경우

 user@user~$

./yam -c 1 -M stratum+tcp://Your-E-Mail:x@bcn.pool.minergate.com:45550/bcn


   
명령으로 마이닝이 가능하며 

dwarfpool 에서 xmr을 채굴할 경우 

먼저 'cfg' 파일을 만든다.

-- xmr.cfg --

threads = 4

mining-params = xmr:av=0&donation-interval=50

mine = stratum+tcp://Your_Wallet_Adress.12345:x@erebor.dwarfpool.com:8005:8050:8080:8100/xmr

 
그리고 

 user@user~$

     ./yam -c xmr.cfg



로 마이닝을 시작할 수 있다.

 

도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.


그리고 글에 부족한 점이 있거나 틀린 점, 더 궁금한 부분이 있는 것 같다면 꼭 댓글로 알려 주시 감사 하겠습니다.

         


별 다른 절차 없이 한 번의 클릭만으로  기기의 성능을 기반으로 하여 본 블로그에 아주 잠시 동안 지원 하실 수 있습니다.



리눅스 환경에서는 자체적 커널 서버 시스템을 활용하여 굳이 개별적인 이메일 서버를 만들지 않더라도 이메일을 보내는 것이 가능하다.

뿐만 아니라 다량 발송도 가능하다.

먼저 자신의 OS에 메일 클라이언트가 설치되어 있는지 확인하여 보자.

 user@user~$

mail

No mail for user

메일 클라이언트가 설치가 되어 있다면 위와 같이 나올 것이다,

그러나 메일 클라이언트가 없는 경우라면 다음과 같이 나오며 필요한 패키지 설치를 권유할 것이다.

 user@user~$

mail

프로그램 'mail'을(를) 설치하지 않습니다. 다음을 입력해 설치할 수 있습니다:
sudo apt install mailutils


만일 'mail'이 없다면 위와 같은 제안으로 클라이언트를 설치 하도록 하자.

 user@user~$

sudo apt install mailutils



이제 다 되었다면 다음과 같은 명령으로 메일을 실제 발송해 보도록 하자.

 user@user~$

   mail -s "hello" mail@mail.com < /dev/null



그리고 아마 G메일인 경우에는 대부분 스팸 함에 들어와 있을 것이다. 

여기서 만약 '< /dev/null' 을 제거하고 실행한다면 다음과 같은 (참조)란 생성이 발생한다.

Cc: 

참조란을 발생 시키지 않으려면 '< /dev/null' 파라미터로써 아무런 메인 메세지를 넣지 않음을 선언하거나 텍스트가 담긴 파일을 파라미터에 던지면 된다. 

예를 들면   

 user@user~$

     mail -s "hello" mail@mail.com < text


혹은 

 user@user~$

     echo "i like you" |mail -s "hello" mail@mail.com


같은 명령으로 echo파이프를 활용하여 이메일 내용을 채워 참조란을 발생 시키지 않고 메일을 손쉽게 보낼 수 있다.
하지만 여기서 느끼는 회의감은 무척이나 발송이 느리다는 것일 것이다.

하지만 걱정할 필요는 없다.

mailutils 보다 훨씬 더 빠르게 구동되는 s-nail이 있기 때문이다.

s-nail은 mailutils과 마찬가지로 mailx 바이너리 프로그램 기반으로 동작한다. 
하지만 동작 속도 면에서부터 mailutil 과는 확연한 차이를 보이는 것이 사실이다.

s-nail의 설치는

 user@user~$

sudo apt-get install s-nail


로써 간편히 설치 할 수 있으며 사용 방법은 mailutils 프로그램과 동일하다.  

도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.


그리고 글에 부족한 점이 있거나 틀린 점, 더 궁금한 부분이 있는 것 같다면 꼭 댓글로 알려 주시 감사 하겠습니다.

         


별 다른 절차 없이 한 번의 클릭만으로  기기의 성능을 기반으로 하여 본 블로그에 아주 잠시 동안 지원 하실 수 있습니다.



기본 레파시토리에서 리눅스용 Nvidia 드라이버를 배포 하고 있지만 정식 배포의 드라이버 바이너리를 커널에 완전히 안착 시키는 것과는 실제적으로 성능 면에서 상당한 차이가 있다.

리눅스는 커널에서 xserver 구동에 필요한 그래픽 로드 모듈을 직접적으로 랜더링 하기 때문에 리눅스에 제대로 그래픽 드라이버를 설치 하려면 정식 배포된 드라이버를  DKMS (Dynamic Kernel Module Support)에 안정적으로 안정적으로 올려야 한다.

하지만 먼저 사용자가 정식 드라이버를 설치하기 전에 한가지 인지해야 하는 점은 

뿐만아니라 리눅스에 그래픽 드라이버를 설치 하는데에 있어서 또 한 가지 중요한 점은 다른 그래픽 드라이버 모듈을 로드 하지 않게 하는 것 또한 성능 문제에 있어서 상당히 중요하다.


그래서 먼저 설치되어 있는 'xserver-xorg-video'에 해당 되는 모듈들을 전부 삭제 하고 설치를 시도 하는 것이 바람직 하다. 

 user@user~$

sudo apt-get purge xserver-xorg-video*


 
이제 nvidia 사이트에서 자신이 가지고 있는 그래픽 카드에 대한 리눅스용 정식 배포 드라이버를 다운 받아 놓는다.

그리고 만약 nvidia 패키지를 universe 레파시토리에서 설치 했었다면 반드시 충돌을 막기 위해 삭제 해야 한다.

 user@user~$

 sudo apt-get purge nvidia*


   
그리고 다음 중요한 일은 리커버리 부팅에서 설치를 시도 하기 위하여 다운받은 드라이버 설치 프로그램인 Nvidia~*.run 파일을 ' /home/ '으로 옮겨 놓아야 한다.

이제 재부팅 하여 리커버리 모드로 진입하여 (NETWORK) 모듈을 활성화 한 다음 (root) 에서 ' apt update ' 명령을 통하여 네트워크가 제대로 활성화 되어 있는지 확실히 확인한다. 

만일 네트워크 모듈일 구동이 제대로 되지 않는다면 재부팅 하는 것이 바람직하다.

이렇게 리커버리 모드로 들어가 드라이버를 설치 하는 이유는 부팅시 커널에서 비디오 모듈과 GFX가 완전히 올라가지 않은 상태에서 설치를 시도 해야 dkms 리빌딩과 새로운 nvidia 비디오 모듈이 제대로 안착 된다.

혹자 중에는 lightdm이나 gdm 의 init.d 서비스 모듈만 종료 하고 설치하면 된다고 하지만 설치가 되어도 시스템이 제대로 구동되지 않거나 설치 프로그램 자체 실행도 안 될수도 있다. 

그리고 이제 본격적으로 그래픽 드라이버를 설치해 보도록 하자.

먼저 드라이버 설치 프로그램이 있는 곳으로 이동한다.

 user@user~$

cd /home/


    

다음은 설치 프로그램 파일을 실행이 가능하겠금 속성을 변경해야 한다.

 user@user/home/$



chmod +x Nvidia~*.run


(Tab 키를 통하여 자동완성 기능을 활용 합시다.)

실행한다.

 user@user/home/$

./Nvidia~*.run


    
설치가 시작되면 우선 계속 진행으로 두단계를 넘어간다. 그러면 dkms 관련 질문이 나오는데 상당히 중요한 부분이다.

답은 'NO' 로 선택해야 한다.

왜냐하면 'yes'를 선택할 경우 기존의 설치된 dkms에 드라이버 세부사항을 레지스트리 추가하는 것 처럼 입히겠냐는 것이므로 이 작업을 하게되면 x 부팅이 되더라도 나머지 기능들이 정상작동 하지 않을수 있다.

그리고 'NO'를 선택하면 본격적으로 dkms 리빌드 작업에 들어가게 되며 

다음은 '32비트 라이브러리 호환성'을 설치하겠냐는 질문이 뜨는데 이부분은 반드시 'yes'를 해줘야만 opencl등 gl관련 그래픽 모듈이 정상적으로 구동된다. 다시 말해서 스팀 게임이 원할하게 돌아간다는 말이다.

그 다음 으로는 마지막으로 굉장히 중요한 질문이 하나 뜨는데 바로 그것은 '/etc/X11/xorg.conf' 즉 xserver 환경 파일을 유지 하여 콘피깅 작업을 할 것이냐 아니면 갈아 업을 것이냐는 질문이다.

여기서 반드시 'No'를 선택 해야만 한다.

그 이유는 기존의 xserver 환경에 대한 문제는 드라이버 설치 관리자가 아닌 기존의 환경을 그대로 유지해야 xdesktop으로 부팅하는데 문제가 없기 때문이다.

그리고 설치가 종료 되면 systemctl 작업을 간단히 해준다.

 user@user~$
 user@user~$

sudo systemctl enable graphical.target
sudo systemctl set-default graphical.target


그리고 리붓하면은 xdesktop으로 안정적으로 진입하는 것을 볼 수 있을 것이다.

그리고 스팀도 실행이 가능한지 테스트 해보자.

한데 만약 여러번 설치 시도에도 불구하고 xdesktop 진입이 되지 않는 다면 리눅스 설치시 사용자 폴더 암호화와 직접적인 연관성을 때문일 가능성도 크다. 

만약 그렇다면 부팅후 'Alt+Ctrl+F1'으로 TTY1으로 진입후 홈폴더에 있는 '~/.Xauthority' (사용자 x로그인을 위한 쿠키암호화 정보)  파일의 권한을 변경해야 할지도 모른다.

 user@user~$

sudo chmod 666 ~/.Xauthority


    

하지만 해당 방법은 모든 시스템에서 검증된 방법은 아니기에 딱히 이렇다 할 해결 방법은 아닐수 있다.

그리고 리눅스 설치시 선택하는 '사용자 폴더 암호화' 는 웬만하면 비즈니스 업무를 중점으로 다루는 시스템이 아니라면 해제하는 것이 성능면에서나 그래픽 호환성 면에서 더 안정적이다. 

  

도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.


그리고 글에 부족한 점이 있거나 틀린 점, 더 궁금한 부분이 있는 것 같다면 꼭 댓글로 알려 주시 감사 하겠습니다.

         



먼저 이와 같은 SSH를 이용한 서버측의 프로그램에 GUI로 접근하는 경우 X11포워딩 이라고 한다.
그리고 본 구현은 x-desktop 구현이 가능한 가상머신 환경을 그 베이스 기반으로 하여 구현해 볼 것이다.


가장 먼저 테스트할 가상 머신이나 chroot 내서버가 준비되어 있어야 하며 그 안에서 몇가지 선 작업이 필요하다.

---- 호스트 ---- 

먼저 원격 모듈 서비스인 'ssh'가 설치 되어 있지 않다면 설치가 필요하다.

 user@user~$

sudo apt-get install ssh


다음은 ssh 서버 환경 파일을 편집해야 한다.
 

 user@user~$

sudo nano /etc/ssh/sshd_config


     
X11Forwarding

부분을 

X11Forwarding yes

로 바꾸어 주면 된다. 


이제 접속 클라이언트 측에서 X-Display를 활용하여 구동하여 보자.

---- 클라이언트 ----

-X 옵션을 통하여 ssh 명령을 실행한다.

 user@user~$

 ssh -X test@192.168.0.3


   
접속이 되었다면 GUI를 지원하는 프로그램을 실행해 보자.

 test@user~$

firefox


     
정상적으로 GUI가 뜬다면 환경변수인 $DISPLAY가  ' :10.0 ' 으로 되어 있을 것이다.

확인해 보자.

 test@user~$



echo $DISPLAY


:10.0



하지만 만일 원격 서버의 환경 변수를 디폴트값인 ' :0.0 ' 으로 바꾼다면

 test@user~$

export DISPLAY=:0.0


 test@user~$

firefox



해당 프로그램의 GUI창이 클라이언트 쪽이 아닌 원격서버(가상머신)에 뜨는 것을 확인 할수가 있다.




----------

- 예외 - 

1. 만일 호스트측에서도 완벽하게 셋팅을 마쳤는데도 불구하고 X11 포워딩이 되지 않는다면 클라이언트측의 ssh 환경설정을 바꿔줘야 하는 경우가 있다.

먼저 ' /etc/ssh/ssh_config ' 파일을 확인해 보자.

 user@user~$



cat /etc/ssh/ssh_config |grep ForwardX11 


ForwardX11Trusted no


    
위와 같이 나왔다면

     ForwardX11Trusted no


     ForwardX11Trusted yes

로 바꾸어 줘야 한다.
 

2. 그리고 만약에 해당 서버가 x-desktop 구동 모듈이 설치 되어 있지 않다면 
      
x11 구동 모듈을 전부 설치할 필요가 없이 'xauth' 패키지만 설치해 주면 된다.

(단, xauth 패키지와 '~/.Xauthority' 파일이 존재 하면 '~/.Xauthority' 파일만 새로 만들어 주면 된다.)

 user@user~$

sudo apt-get install xauth


    
'~/.Xauthority' 파일을 만들어 준다.

 user@user~$

touch .Xauthority


    

도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.


그리고 글에 부족한 점이 있거나 틀린 점, 더 궁금한 부분이 있는 것 같다면 꼭 댓글로 알려 주시 감사 하겠습니다.

         



리눅스를 활용하여 콘솔 환경에서 사진을 완벽하게 로드 할 수 없을까? 

충분히 가능하다.


간단하게 ' fbi ' 리는 프로그램을 응용하면 된다.

fbi 프로그램은  Linux framebuffer imageviewer  의 약자(!?) 로써 사실 여기서 L이 빠지고 억지로 fbi 라는 이름을 만든 것 같다. fbi 미 연방수사국을 의미 하는데 제작자가 연방수사국에 불만이라도 있는 것일끼?    

프로그램 이름에서 알 수 있다시피 프레임버퍼를 활용하여 사진파일을 로드 하는 방식이다. 

프레임 버퍼의 의의는 간단하고 단순하다.
     fbi -a 1.pngeda

디스플레이에 영상을 띄우기 위해 데이타 정보를 메모리에 저장하는 단계를 의미한다.


우선 간단히 설치 하도록 해보자.

 user@user~$

sudo apt-get install fbi -y



설치 하였으면 바로 사진을 로드해 보자. 

 user@user~$

fbi -a 1.png


-a 옵션은 자동으로 화면에 맞추어 사진을 줌인 해준다.


using "Noto Sans Mono CJK JP,Noto Sans Mono CJK JP Regular-16", pixelsize=16.67 file=/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc
ioctl VT_GETSTATE: 장치에 대해 부적절한 ioctl (not a linux console?)

 
하지만 위와 같이 이미 x-windows 데스크탑에 그래피컬 터미널이 올라가 있는 상태 에서는 프레임 버퍼 따로 사용하는 것이 불가능하다. 

하지만 가능하게 하는 방법이 있으니 바로 그것은 x-windows가 올라가 있지 않은 다른 tty 콘솔로써 실행이 가능 하다.

alt + f1 을 눌러 tty1으로 로그인히여 진입하여 다시 방금 처럼 사진을 로드해 보자.

될 것이다.  (esc키를 눌러 빠져 나온다.)


그런데 정말로 x-windows 데스크탑에서 fbi가 프래임 버퍼를 활용하는 것이 불가능 할까?

방법은 충분히 가능하다. 

바로 그래피컬 터미널에서 다른 tty 가상 콘솔을 활용하는 것이 그것이다.

그 꼼수 기능은 fbi 프로그램 자체에서도 응용이 가능하다. 또한 관리자 권한이 필요하다.

다시 ' alt + f7 ' 을 눌러 x - desktop으로 돌아오자.

다음과 같이 명령을 내리면  x-windows 데스크탑에서 fbi 실행이 가능하다.

 user@user~$

sudo fbi -a -T 1 1.png


                                                   (tty1) (파일)

하지만 해당 프로그램을 x - desktop에서 활용하는 것은 의미가 없을 것이다. 
그렇지만 임베디드 개발에 있어서 반드시 필요한 프로그램이다.

도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.


그리고 글에 부족한 점이 있거나 틀린 점, 더 궁금한 부분이 있는 것 같다면 꼭 댓글로 알려 주시 감사 하겠습니다.

         



이 전 포스트에 이어서 이제는 우분투 리눅스에 '아파치 오픈 오피스'를 직접 설치해 보도록 하겠습니다.



1. 아파치 오픈 오피스를 다운 받는다.


https://www.openoffice.org/ko/


2. 기존에 설치 되어 있는 리브레 오피스를 삭제 한다.


 user@user~$

sudo apt-get purge libreoffice*




3. 다운받은 압축파일을 해제 한다.


 user@user~$

tar -xvzf 다운받은 파일명




4. 해제한 폴더에서 dpkg로 패키지들을 일괄 설치 한다.


 user@user~$

sudo dpkg -i *.deb





5. DEBS 폴더에 있는 'desktop-integration' 폴더 안에 있는 패키지 하나를 마저 설치 한다.



6. Language 압축 파일도 위의 방식 처럼 압축을 풀어 설치 한다.





도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.


그리고 글에 부족한 점이 있거나 틀린 점, 더 궁금한 부분이 있는 것 같다면 꼭 댓글로 알려 주시 감사 하겠습니다.

         




기타프로의 gp tab파일을 읽어 드리고 연주 할수 있고 악보 제작 능력을 가진 턱스기타(tuxguitar)에 기존 미디 연주에 성에 안 찼던 사람들이 많을 것이다. 

왜냐하면 현재 많이 발달된 RSE(Resl Sound Engine)를 사용하여 현실감 넘치는 기타프로 소프트웨어에 비해 고작 기본 미디연주에만 안주해야 하는 것이 안타까웠을 것이다. 

하지만 중급이상의 PC유저라면 '사운드 폰트'를 활용해 MIDI 연주능력의 성능을 대폭 개선 시키는 방법을 알고 있을 것이다. 

하지만 그렇다고 해서 그것을 Tuxguitar에 접목 시키지 못한 다거나 아예 모르는 사람들이 현저히 많을 것으로 알고 본 포스트팅을 통해 널리 전하고자 한다.


여기서 가장 중요한 것은 바로 사운드 폰트 이다.

사운드 폰트는 미디 서버 시스템을 그대로 출력 이펙트를 변화 시키는 포맷 셋팅을 말한다. 

현재 2세대 까지 개발이 되어 사운드폰트의 확장자는 대부분 .sf2 이다.

먼저 턱스 기타가 설치 되어 있지 않다면 턱스기타를 설치 한다.
(자바 플러그인도 같이 설치 한다.)

 user@user~$

sudo apt-get install tuxguitar tuxguitar-jsa -y



그리고 미디 시스템 서버를 구동 하는 소프트웨어들을 설치 하자.

 user@user~$

sudo apt install fluid-soundfont-gm timidity -y




설치가 끝났으면 먼저 timidity 셋팅을 해주자. 

'/etc/timidity/timidity.cfg' 파일을 다음과 같이 편집해 주도록 하자.

- /etc/timidity/timidity.cfg -

# Instrument configuration file for timidity
# $Id: timidity.cfg,v 1.7 2005/09/03 19:26:03 hmh Exp $

# You can change just about every option in TiMidity++ using
# This config file.  Please refer to the timidity.cfg(5) manpage
# for more details

## If you have a slow CPU, uncomment these:
#opt EFresamp=d #disable resampling
#opt EFvlpf=d #disable VLPF
#opt EFreverb=d #disable reverb
#opt EFchorus=d #disable chorus
#opt EFdelay=d #disable delay
#opt anti-alias=d #disable sample anti-aliasing
#opt EWPVSETOZ #disable all Midi Controls
#opt p32a #default to 32 voices with auto reduction
#opt s32kHz #default sample frequency to 32kHz
#opt fast-decay #fast decay notes

## If you have a moderate CPU, try these:
#opt EFresamp=l
#opt EFreverb=g,42
#opt EFchorus=s
#opt s32kHz
#opt p64a

# Disabling some of the Midi Controls can help with the CPU usage a lot.
# The same goes to the VLPF, sample anti-aliasing and effects such as
# reverb and chorus

# By default, try to use the instrument patches from freepats:
soundfont /usr/share/sounds/sf2/FluidR3_GM.sf2

# alternatively, you can use the fluid-soundfont:
source /etc/timidity/fluidr3_gm.cfg
#source /etc/timidity/fluidr3_gs.cfg


위의 soundfont 는 실제 구동하는 사운드폰트 지정하며 

source 또한 같은 fluid 사운드포트 소스를 활용 한다.

만약 다른 사운드폰트 파일을 적용한다 할 지라도 소스는 그대로 fluid를 사용하는 것이 안정적인 음질을 구사 할 수 있다.

그리고 timidity 미디 시스템 서비스를 리셋 해준다.

 user@user~$

sudo service timidity restart



그리고 턱스기타를 실행후 다음과 같이 셋팅 한다.

     Tools →  Setting → Sound → Midi Sequencer = Tux guitar Sequencer

     Tools →  Setting → Sound → Midi Sequencer = Timidity[128:0]


     Tools → Pluguns → Java Sound Api Plugin = /usr/share/sounds/sf2/FluidR3_GM.sf2

Tools →  Setting → Sound → Midi Sequencer = Tux guitar Sequencer

     Tools →  Setting → Sound → Midi Sequencer = Timidity[128:0]



이제 턱스기타를 재실행하여 연주하면 리얼 사운드 미디가 동작할 것이다. 좀 더 정확한 확인을 원한다면 악기를 바꿔가보며 연주해 보자.

만약 미디가 그래도 출력 되지 않는다면 재부팅 하도록 하자.

미디 출력은 주사운드카드를 기본으로 한다.

원리는 timidity가 미디 시스템 출력을 담당하고 fluid-soundfont 패키지의 사운드폰트를 읽어서 미디 이펙트를 출력 하는 방식이다.

도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.


그리고 글에 부족한 점이 있거나 틀린 점, 더 궁금한 부분이 있는 것 같다면 꼭 댓글로 알려 주시 감사 하겠습니다.

         






1. 먼저 ufw 설치 합니다.



user@user-test:~$ sudo apt install ufw



or (혹은 gufw를 설치 합니다.)



user@user-test:~$ sudo apt install gufw




( gufw은 ufw의 gtk버전으로서 그래픽 툴로서 관리 할 수 있는 소프트웨어 입니다. 이 패키지도 마찬가지 ufw를 의존성 패키지로 자동으로 같이 설치 됩니다.)


2. 다음 가장 먼저 해야 할 일은 ufw를 서비스 활성하 시키는 작업입니다.



user@user-test:~$ sudo ufw enable



3. 우선 차단 규칙을 설정 하는 것을 배워 보겠습니다. 먼저 로컬 아이피 대역을 차단해 봅니다.



user@user-test:~$ sudo ufw deny from 192.168.1.1/25


( ip 차단은 앞서 'from'을 붙여 줍니다.)


4. 그럼 tcp와 udp를 차단해 보겠습니다. 



user@user-test:~$ sudo ufw deny 1:6500/udp


( udp 프로토콜의 포트 1에서 65000 까지의 포트 대역을 전부 차단 합니다.)



user@user-test:~$ sudo ufw deny 1:6500/udp


( tcp 프로토콜의 포트 1에서 65000 까지의 포트 대역을 전부 차단 합니다.)





흔히 '포맷'을 하는 방법은 대부분 알 것이고 리눅스에서 하드를 청소 하는 방법 또한 이미 많은 사람들이 알고 있을 것이다.

흔히들 알고 있기를 리눅스에서 포맷은 

-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>



user@user-test:~$ dd if=/dev/sdx of=/dev/zero



로써 알고 있을 것이다.

하지만 이 방법은 완전한 파일시스템을 제거하는 것이 아니라 'zerofill' 방식으로 (0값으로 덮어 씌우기 : wiping) 하드 디스크의 섹터를 덮어 씌우는 방식이다.

그리고 이러한 와이핑 방식의 포맷은 윈도우에서도 지원을 될 뿐만이 아니라 기술자들이 가지고 있는 복구 솔루션으로 복구가 충분히 이루어 지고 있는 실정이다.

"그렇다면 정말로! 완벽한 하드디스크 소거가 소프트웨어적으로 가능할수는 없을까?"

많은 리눅서들이 알아낸 최고의 방법은 바로 배드블럭을 체크하는 프로그램인 'badblocks'를 활용하는 방법이 그러하다.

일반적으로 프로그램 'badblocks'는 '-v' 명령을 활용하여 하드디스크의 베드섹터 유무를 파악하는 것이 일반적이다. 하지만 '-w'  명령을 활용하여   0xff, 0x55, 0xaa, 0x00등의 값으로 쓰기 테스트를 하기 때문에 하드디스크는 이론적으로 완전히 갈리게 되는 방식이다.

활용 방법은 매우 간단하다.

-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>

// 우선 간단히 타겟 하드디스크를 리셋 시키자.


user@user-test:~$ sudo mke2fs -j /dev/sdx



// 그럼 본격적으로 badblocks 를 활용해 하드디스크를 밭갈아 보자.


user@user-test:~$ sudo badblocks -w -c 600 /dev/sdx


-> 여기서 '-c' 모드는 한번에 쓸 블럭 단위를 설정하는 옵션이다.  기본이 64 블럭이며 최대로 설정해야 처리 시간을 단축 할 수가 있다.



// 다시한번 로우 포맷을 해준다.


user@user-test:~$ sudo dd if=/dev/zero of=/dev/sdx





위의 그림과 같이 포맷된 데이터를 복원 시도를 통해 확인하여도 복구 할수 있는 데이터와 파티션이 일체 나오지 않는 것을 확인 할 수 있다.

그렇다면 실험은 성공한 것이다. 

물론 이 방식도 복구 할 수 있는 더 높은 기술의 복구 기술이 있을지도 모른다.
하지만 실제로 이론적으로 하드디스크의 데이타를 영구삭제 하는 것은 가능하다는 결론을 얻을수 있다.     

    

도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.


그리고 글에 부족한 점이 있거나 틀린점이 있는 것 같다면 꼭 댓글로 알려 주시면 감사 하겠습니다.


+ Recent posts