bookmark_borderLinks and scripts from Video: Tutorial: Debian 8, howto passthrough your physical GPU to your virtual Windows7 with KVM and OVMF

Here are the links and scripts.
Now is the successor of the archlinux forum part.
In Arch Linux You can find a nice and very active community, the first entry is a howto that addresses different configurations.
In VFIO blog are a lot of information regarding the hardware virtualization.
a list of working and non-working systems with different Linux distributions

My hardware components:
Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz socket 1150
16GB DDR3 Memory
NVIDIA GeForce GTX 780 (ASUS GTX780-DC2OC-3GD5) for passthrugh

To check do the video card supports UEFI Boot.

For preparations:

VirtIo driver from Fedora

Script files:
————————————————— begin ——————————————-


# if you use a hardware CD-ROM drive, check for the device. In most cases it’s /dev/sr0


# PCI address of the passtrough devices

# load vfio-pci module
modprobe vfio-pci

for dev in “0000:$DEVICE1” “0000:$DEVICE2″; do
vendor=$(cat /sys/bus/pci/devices/$dev/vendor)
device=$(cat /sys/bus/pci/devices/$dev/device)
if [ -e /sys/bus/pci/devices/$dev/driver ]; then
echo $dev > /sys/bus/pci/devices/$dev/driver/unbind
echo $vendor $device > /sys/bus/pci/drivers/vfio-pci/new_id

# create installation file if not exist
if [ ! -e $INSTALLFILE ]; then
qemu-img create -f qcow2 $INSTALLFILE $FILESIZE

qemu-system-x86_64 \
-enable-kvm \
-m 4096 \
-cpu host,kvm=off \
-smp 2,sockets=1,cores=2,threads=1 \
-machine pc-i440fx-2.1,accel=kvm \
-soundhw hda \
-bios /usr/share/ovmf/OVMF.fd `# SID version of OVMF` \
-device vfio-pci,host=$DEVICE1,addr=0x8.0x0,multifunction=on \
-device vfio-pci,host=$DEVICE2,addr=0x8.0x1 \
-vga qxl \
-device virtio-net-pci,netdev=user.0,mac=52:54:00:a0:66:43 \
-netdev user,id=user.0 \
-drive file=$INSTALLCD,if=none,id=drive-ide0-0-0,readonly=on,format=raw \
-device ide-cd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 \
-drive file=$INSTALLFILE,if=none,id=drive-virtio-disk0,format=qcow2,cache=unsafe \
-device virtio-blk-pci,scsi=off,addr=0x7,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=2 \
-drive file=$DRIVERCD,if=none,id=drive-ide0-1-0,readonly=on,format=raw \
-device ide-cd,bus=ide.0,unit=1,drive=drive-ide0-1-0,id=ide0-1-0,bootindex=3 \
-rtc base=localtime,driftfix=slew \
-smb /home/user/Downloads/toinstall \
-usb \
-device usb-tablet \
-device usb-kbd

————————————————— end ——————————————-
————————————————— begin ——————————————-


# PCI address of the passtrough devices

# load vfio-pci module
modprobe vfio-pci

for dev in “0000:$DEVICE1” “0000:$DEVICE2”; do
vendor=$(cat /sys/bus/pci/devices/${dev}/vendor)
device=$(cat /sys/bus/pci/devices/${dev}/device)
if [ -e /sys/bus/pci/devices/${dev}/driver ]; then
echo ${dev} > /sys/bus/pci/devices/${dev}/driver/unbind
echo $vendor $device > /sys/bus/pci/drivers/vfio-pci/new_id

# create a imagefile from backingfile file if not exist
if [ ! -e $IMAGEFILE ]; then
qemu-img create -f qcow2 -o backing_file=$INSTALLFILE,backing_fmt=qcow2 $IMAGEFILE

taskset -c 0-1 \
qemu-system-x86_64 \
-enable-kvm \
-m 4096 \
-cpu host,kvm=off \
-smp 2,sockets=1,cores=2,threads=1 \
-machine pc-i440fx-2.1,accel=kvm \
-soundhw hda \
-bios /usr/share/ovmf/OVMF.fd `# SID version of OVMF` \
-device vfio-pci,host=$DEVICE1,addr=0x8.0x0,multifunction=on,x-vga=on \
-device vfio-pci,host=$DEVICE2,addr=0x8.0x1 \
-vga none \
-device qxl \
-device virtio-net-pci,netdev=user.0,mac=52:54:00:a0:66:43 \
-netdev user,id=user.0 \
-drive file=$IMAGEFILE,if=none,id=drive-virtio-disk0,format=qcow2,cache=none \
-device virtio-blk-pci,scsi=off,addr=0x7,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 \
-rtc base=localtime,driftfix=slew \
-smb /home/user/Downloads/toinstall \
-usb \
-device usb-mouse \
-device usb-kbd

————————————————— end ——————————————-





bookmark_bordercentos7 youtube 업로드 스크립트

외쿡에서 퍼옴



Youtube-upload is a command line Python script that uploads videos to Youtube (it should work on any platform -GNU/Linux, BSD, OS X, Windows, …- that runs Python) using theYoutube APIv3.


Check if your operating system provides those packages, otherwise install them with pip:

$ pip install --upgrade google-api-python-client progressbar2


$ wget
$ unzip
$ cd youtube-upload-master
$ sudo python install
  • Or run directly from sources:
$ cd youtube-upload-master
$ PYTHONPATH=. python bin/youtube-upload ...


You’ll see that there is no email/password options. Instead, the Youtube API uses OAuth 2.0 to authenticate the upload. The first time you try to upload a video, you will be asked to follow a URL in your browser to get an authentication token. If you have multiple channels for the logged in user, you will also be asked to pick which one you want to upload the videos to. You can use multiple credentials, just use the option --credentials-file. Also, check the token expiration policies.

The package includes a default client_secrets.json file. If you plan to make a heavy use of the script, please create and use your own OAuth 2.0 file, it’s a free service. Steps:

  • Go to the Google console.
  • Create project.
  • Side menu: APIs & auth -> APIs
  • Top menu: Enabled API(s): Enable all Youtube APIs.
  • Side menu: APIs & auth -> Credentials.
  • Create a Client ID: Add credentials -> OAuth 2.0 Client ID -> Other -> Name: youtube-upload -> Create -> OK
  • Download JSON: Under the section “OAuth 2.0 client IDs”. Save the file to your local system.
  • Use this JSON as your credentials file: --client-secrets=CLIENT_SECRETS


  • Upload a video:
$ youtube-upload --title="A.S. Mutter" anne_sophie_mutter.flv
  • Upload a video with extra metadata, with your own client secrets and credentials file, and to a playlist (if not found, it will be created):
$ youtube-upload \
  --title="A.S. Mutter" 
  --description="A.S. Mutter plays Beethoven" \
  --category=Music \
  --tags="mutter, beethoven" \
  --recording-date="2011-03-10T15:32:17.0Z" \
  --default-language="en" \
  --default-audio-language="en" \
  --client-secrets=my_client_secrets.json \
  --credentials-file=my_credentials.json \
  --playlist "My favorite music" \
  • Upload a video using a browser GUI to authenticate:
$ youtube-upload --title="A.S. Mutter" --auth-browser anne_sophie_mutter.flv
  • Split a video with ffmpeg

If your video is too big or too long for Youtube limits, split it before uploading:

$ bash examples/ video.avi
  • Use a HTTP proxy

Set environment variables http_proxy and https_proxy:

$ export http_proxy=http://user:password@host:port
$ export https_proxy=$http_proxy
$ youtube-upload ....

bookmark_bordersonarqube c++ sonar runner 설치 하기

기본적으로 sonarqube 에 있는 C++ 플러그인은 상업용이다

고로 커뮤니티 버전을 다운로드 받아서 설치 해야 한다

위 주소가 레포지토리 이다. 패킹된 릴리즈 레포지토리는 아래와 같다.

sslr-cxx-toolkit-0.9.3, sonar-cxx-plugin-0.9.3을 각각 받아서 sonarqube plugin 폴더에 복사 한다음 sonarqube 서비스를 재시작 해주면 설치된 플러그인에 커뮤니티용 c++ 플러그인이 확인될것이다.

bookmark_borderSonarQube Server 설치하기.

안녕하세요. 소심비형입니다.

이번에는 Code Analysis인 SonarQube를 설치해보도록 하겠습니다.

무료 오픈소스 중에서 정적 코드 분석툴로는 소나가 가장 유명하죠? 물론, Visual Studio에도 정적 코드를 분석해서 보여주는 여러가지 기능들이 포함되어 있습니다. 그러나, SonarQube와 비교해보면 아직은 많이 부족하지 않나 생각됩니다.

정적 분석 및 동적 분석 툴에 관심이 있으시면 아래 링크에서 추가적인 정보을 얻을 수 있습니다.

각 언어별 (Programing Language) 무료, 유료 툴들이 정리되어 있네요.


우선 Java를 먼저 설치해야 합니다. 만약, 자신의 PC에 Java가 설치되어 있다면 이 부분은 건너 뛰어도 됩니다.

1-1. Java 설치하기

아래의 링크를 통해서 최신 버전의 Java를 설치하세요.

이미지 13.png


1-2. 다운로드 폴더로 이동해서 JavaSetup7u45.exe 실행합니다. (현재 시점의 Java와 Version이 다를 수 있습니다.)

이미지 15.png


1-3. 가급적이면 대상 폴더는 변경하지 않는게 좋습니다. 만약 대상 폴더를 변경 한다면, 윈도우의 환경 변수도 같이 수정해야 합니다. 대상 폴더 변경에 체크하지 않고 설치를 클릭하세요.



1-4. 설치가 진행 중입니다. 잠시 기다립니다^^



1-5. 계속 진행중입니다… -_-


1-6. 닫기를 클릭하여 설치를 완료합니다.





2-1. SonarQube 설치하기. ◀링크에서 SonarQube를 다운로드 받습니다.

이미지 16.png





2-2. 아래와 같이 SonarQube와 Sonar Runner 둘 다 다운로드 합니다.

이미지 18.png


2-3. 다운로드 받은 sonarqube-4.4.1.zip을 압축 해제한 후 임의의 폴더에 복사합니다.

위와 같이 sonar-runner-dist-2.4.zip도 압축 해제한 후 임의의 폴더에 복사합니다.

SonarQube와 Sonar runner를 같은 폴더에 복사하는게 좋습니다. 관리 차원에서…

(저는 소나큐브 4.4.1, 소나러너 2.4를 설치했습니다.)

이미지 19.png


2-4. SonarQube 설정 하기.

아래의 경로로 이동하여 sonar.properties를 편집합니다.

이미지 20.png


2-5. 아래와 같이 설정을 변경 하세요.

#아래 항목은 Database에 접속하기 위한 아이디와 비밀번호입니다. 자신의 MSSQL Server의 접속 계정을 넣으세요.



#Database 연결 정보를 설정합니다.

sonar.jdbc.url:jdbc:sqlserver://[자신의 계정]\\SQLEXPRESS;databaseName=Sonar

sonar.jdbc.validationQuery:select 1

sonar.jdbc.dialect= mssql

#Connection pool을 설정합니다.







#웹 서버 주소를 설정합니다.

#웹 서버의 포트를 설정합니다.


#Notifications 설정합니다.


2-6. Database 설정 하기.

시작 > 모든 프로그램 > Microsoft SQL Server 2012 > SQL Server Management Studio 실행

아래와 같이 로컬 데이타베이스로 접속합니다. (각 사용자의 환경에 따라 다를 수 있습니다.)

이미지 21.png


2-7. Database에서 우 클릭 후 새 데이터베이스를 선택합니다.

이미지 23.png

2-8. Database 이름에 SONAR를 입력한 후 확인을 클릭합니다.

이미지 24.png

데이타베이스가 정상적으로 생성되었을 겁니다. MSSQL Management Studio를 닫지 말고 다음 스텝을 먼저 진행합니다.

다음 스텝을 완료한 후 다시 이곳에서 설정을 변경해야 합니다.



2-9. SonarQube 설치 하기.

C:\Program Files (x86)\sonarqube-4.4.1\sonarqube-4.4.1\extensions\jdbc-driver\mssql 경로로 이동합니다.

안에 있는 기존 파일들을 모두 삭제합니다.

그리고 홈페이지 자료실에 등록되어 있는 sqljdbc4.jar 파일을 다운로드 하여 위의 폴더에 복사합니다.

이미지 25.png


2-10. SonarQube Database Tables 생성 및 Web Server 실행.

C:\Program Files (x86)\sonarqube-4.4.1\sonarqube-4.4.1\bin\windows-x86-64 경로에 있는 아래 두개의 배치 파일을 실행합니다. (사용중인 OS가 Windows 7 이상이라면, 관리자 모드로 실행해야 합니다.)


StartSonar.bat (이 Console창은 닫으면 안됩니다. 이 창을 닫으면 Sonar Server도 중지됩니다.)



2-11. 위의 Database에서 생성한 SONAR의 Tables를 확장합니다.

이미지 26.png


2-12. SONAR 데이타베이스의 properties 테이블의 text_value필드 형식을 ntext로 변경 후 저장합니다.

이미지 27.png

2-13. SONAR 데이타베이스의 snapshot_source 테이블의 data 필드 형식을 ntext로 변경 후 저장합니다.

이미지 28.png




혹시라도, 위와 같이 데이터 형식을 변경한 후 저장할 때, 에러 메시지가 뜨면서 저장할 수 없다면 아래와 같이 옵션을 변경하고 다시 시도하세요.

도구 > 옵션 > 디자이너에서 “테이블을 다시 만들어야 하는 변경 내용 저장 안 함” 체크 해제.

이미지 31.png

2-14. http://localhost:9000 접속하여 정상적으로 SonarQube가 동작하는지 확인합니다.

아래 이미지는 NG Framework의 소스를 분석한 화면입니다. 여러분들은 빈 화면만 보일겁니다.

이미지 29.png


시간이 너무 늦어서 오늘은 여기서 끝내야 할거 같네요^^

다음에는 이어서 Sonar Runner를 설치하고 관련 플러그인들을 적용해 보겠습니다.

혹시 잘 안되시거나 궁금하신점이 있으시면 질문 게시판에 남겨주세요.