Bash script 를 sudo 권한으로 실행하는지 여부를 확인하고자 하는 방법은 아래와 같다.

if [ $EUID -ne 0 ]

then

echo "please run as root"

exit

fi

$EUID 는 Effective User ID 로 0 인 경우 root 를 나타낸다.


'Programming > Bash Script' 카테고리의 다른 글

Bash Script Variable Split by Space  (0) 2018.02.04
Bash Script Echo  (0) 2018.02.04
Bash Script String  (0) 2017.07.04
Bash Script If statement  (0) 2017.07.04
Bash script argument  (0) 2017.06.20

OrangePi Plus 2에 Ubuntu 설치 방법이다.


OrangePi Plus 2 는 RaspberryPi 의 모조품 이라 할 수 있는, 중국의 OrangePi의 제품 중 하나로, 

AllWinner H3 SoC, 2GB DDR3 SDRAM, 1G Ethernet interface, 16GB eMMC 및 SATA 2.5 interface를 가지고 있는 것이 특징이다.

AllWinner H3 SoC 는 ARM Quad-core Cortex-A7 CPU 와 ARM Mali 400 GPU 및 H.265 Codec 을 포함하고 있지만, 발열이 심하다고 알려져 있다.(실제로 발열문제는 심각하다.)


기존에 OrangePi 에서 다운받을 수 있는 Linux version 은 인터넷이 되지 않는 문제가 있었지만,

오랜만에 들어가 보니 상당한 업데이트를 한 듯한 느낌이 든다.


OrangePi 공식 홈페이지에서 wiki 타고 google drive로 이동해 원하는 Linux 이미지를 다운 받아서 Disk Imager 로 구워주면 끝

Ubuntu MATE vivid 버전으로 테스트 해봤는데 별 문제 없이 잘 작동한다.


요즘에는 ARMbian이 더 잘 Support 해주는 느낌이 들어 ARMbian으로 설치 하고자 한다.

Ubuntu 16.04(Xenial) 버전도 설치 가능하다. @.@


설치 방법은 간단하다.

1. SD 카드를 준비한다. (사실 microSD 카드)

2. SD Card Formatter 를 이용해 FAT32 로 포멧한다. (사실 꼭 SD Card Formatter 를 써야하는지 모름)

3. ARMbian Ubuntu Image 를 다운받아 압축을 푼다. (해당 보드에 맞는 image 를 다운 받아 압축을 풀면 됨. 압축은 반디집으로 풀었음)

4. Win32 Disk Imager 를 이용해 image 를 굽는다. 

5. OrangePi 에 SD 카드를 넣고 전원을 넣어준다.

6. HDMI 연결을 통해 부팅 된 OrangePi 를 확인한다. (UART 를 사용해도 되지만 사실상 HDMI 가 편함)

   (로그인 ID:root PW:1234)

'Programming > OrangePi' 카테고리의 다른 글

sftp 네트워크 드라이브 연결  (0) 2018.04.05
OrangePi Plus 2 + SATA  (0) 2017.10.02
OrangePi 에 Telegram Bot 구축하기  (0) 2017.09.16
OrangePi Fan on GPIO  (0) 2017.09.15
U+ 공유기 포트포워딩 문제  (0) 2017.09.09

어렸을 때, 아버지가 출장을 다녀오시면 초콜릿을 사오셨다.

초콜릿이 좋은 줄 알았는데, 초콜릿이 아닌 마음이 좋았던 것 같다.

'Life > A sentense of the day' 카테고리의 다른 글

경험  (0) 2017.06.20
출근 시간  (0) 2017.06.20
당당함  (0) 2017.06.15
다르다  (0) 2017.06.13
불통  (0) 2017.06.12

당당함이 빛나는 것은 당당하기 때문이 아니라, 당당 할 수 있기 때문이 아닐까?


당당하자. 정정당당

'Life > A sentense of the day' 카테고리의 다른 글

출근 시간  (0) 2017.06.20
여행 기념품  (0) 2017.06.16
다르다  (0) 2017.06.13
불통  (0) 2017.06.12
선물  (0) 2017.06.09

다르다 라는 것은 서로 같지 않다 라는 뜻

서로 같지 않은지 알기 위해서는 양쪽을 모두 이해해야 하는 만큼, 서로를 이해하고 다름을 인정해보는 것은 어떨까?

'Life > A sentense of the day' 카테고리의 다른 글

여행 기념품  (0) 2017.06.16
당당함  (0) 2017.06.15
불통  (0) 2017.06.12
선물  (0) 2017.06.09
하루 한달 일년  (0) 2017.06.08

I'm maybe wrong

You maybe right

'English > Good Morning Pops' 카테고리의 다른 글

Jyly 11th, 2017  (0) 2017.07.20
July 1st, 2017  (0) 2017.07.09
June 23th, 2017  (0) 2017.06.28
June 19th, 2017  (0) 2017.06.25
June 1st, 2017  (0) 2017.06.07

통하지 않음

통하려고 하는데 통하지 않거나, 통하려고 하지 않거나

어느 경우더라도 좋은 것은 아닌 듯 하다.

'Life > A sentense of the day' 카테고리의 다른 글

당당함  (0) 2017.06.15
다르다  (0) 2017.06.13
선물  (0) 2017.06.09
하루 한달 일년  (0) 2017.06.08
짠테크  (0) 2017.05.29

Xilinx SDK 에서 Baremetal로 실험할 때,

Icache / Dcache를 disable 할 수 있다.


hello world 프로젝트를 생성하면, 기본적으로 platform 헤더를 include 하면서, init_platform() 으로 시작 / cleanup_platform() 으로 끝을 내는 함수를 준다.

여기서 init_platform() 함수에서 Icache, Dcache 모두를 enable 시키는 데, 이를 지움으로써, Cache를 disable 시킬 수 있다.

다만, Cache를 disable 한다는 것은 Cache에 write를 하지 않는 다는 것을 의미해, 기존에 cache 에 있던 data는 cache로 부터 읽어짐을 기억하자!

'Programming > Verilog' 카테고리의 다른 글

AXI Register Slice  (0) 2020.02.12
Verilog Generate  (2) 2018.07.05
Xilinx bootgen  (0) 2017.06.21
Xilinx Vivado IP import  (0) 2017.05.31
Xilinx Vivado Project가 안 열릴때  (0) 2017.05.30

Swift 기본 문법 정리


1. 변수(Variable) 와 상수(Constant)

var variable_name = inital_value

let constant_name = constant_value

* 상수는 값이 변경 될 수 없음

* 안정성을 위해서는 상수를 쓸 것을 권장함

* 변수/상수 이름으로는 공백, 연산자, 화살표 등을 제외한 왠만한 Unicode 문자는 다 가능함

* 변수/상수 이름을 숫자로 시작 할 수 없음


2. 자료형(Data types)

String / Float / Int / Bool / Double / Character

var name: String = "홍길동"

var age: Int = 20

* 자료형을 입력하지 않으면 Compiler가 값을 바탕으로 자료형을 추론함


Range / ClosedRange

let underFive = 0.0..<5.0 // Range

let lowercase = "a".."z" // ClosedRange


3. 배열(Array) 과 Dictionary

Dictionary는 C 언어에는 없는 Data structure 인데, Array와 비슷함

var names: [String] = ["홍길동", "김철수", "신짱구"]

var smartphones: [String: String] = ["삼성": "갤럭시", "애플": "아이폰"]

* 변수/상수 모두 배열/Dictionary로 선언 가능

* 초기 값을 공백으로 빈 배열/Dictionary 선언 가능

* 빈 Dictionary는 대괄호 안에 :(Colon) 넣어줘야함

* 생성자(Initializer) 호출을 통해서도 빈 배열/Dictionary 선언 가능


4. 조건문과 반복문

if / else if / else

if a >= 3 && a < 5 {

//then

} else if a < 7 {

//then

} else {

//then

}

* 조건문의 조건은 Bool type 만 될 수 있음


switch / case

switch a {

case 1:

//

case 2..<5:

//

case default:

//

}

* case에 범위(Range/ClosedRange)를 지정할 수도 있음


for

for i in 0..<100 {

//

}


for name in names {

print("이름 : \(name)");

}


for (maker, brand) in smartphones {

print("\(maker) 의 smartphone brand는 \(brand) 이다.");

}

* for 문에 배열/Dictionary 를 사용할 수 있음


while

while i < 10 {

//

}


생일과 어린이 날과, 크리스마스가 좋은 이유는 어쩌면, 선물을 받기 때문이 아닐까?

가지고 싶다고, 돈이 있다고 마음대로 사지 말고, 한 달에 한 번 나를 위한 선물을 하는 것은 어떨까?


32 인치 모니터 / 선글라스 / 축구화 / 새 테블릿 이 사고싶다......

'Life > A sentense of the day' 카테고리의 다른 글

당당함  (0) 2017.06.15
다르다  (0) 2017.06.13
불통  (0) 2017.06.12
하루 한달 일년  (0) 2017.06.08
짠테크  (0) 2017.05.29

+ Recent posts