반응형
작성일: 2024년 8월 13일

 

 

특정 버전의 Linux Kernel 설치하기

apt 명령으로 아래와 같은 특정 kernel version을 설치한다.

예를 들어, linux kernel version 4.15.0-137 을 설치한다면, 아래 예제 명령과 같이 실행한다.

$ apt-get install linux-image-4.15.0-137-generic \
                  linux-headers-4.15.0-137-generic \
                  linux-modules-4.15.0-137-generic \
                  linux-modules-extra-4.15.0-137-generic

 

 

GRUB 설정하기

새로운 Linux kernel version이 설치되었다고 해서, 새로 설치한 Kernel version으로 부팅되는 것이 아니다.

GRUB 설정을 수정해야 내가 원하는 linux kernel version으로 부팅된다.

아래 예제 GRUB 파일과 같이 수정하면 된다.

$ vi /etc/default/grub

... 중간 생략 ...

## 방금 새로 설치한 linux kernel version에 대한 이름을 설정한다.
GRUB_DEFAULT='Advanced options for Ubuntu>Ubuntu, with Linux 4.15.0-137-generic'

## 아래와 같이 설정하면, 3초 동안 countdown하는 화면이 나온다.
## countdown하는 동안에 'ESC or F4 or SHIFT' 키를 누르면 GRUB 부팅 설정이 나온다.
## 이때 Default kernel version이 아닌 다른 kernel version을 고를 수 있다.
GRUB_TIMEOUT_STYLE=countdown
GRUB_TIMEOUT=3

... 중간 생략 ...

 

 

grub 설정 파일을 저장하고, 아래와 같이 update-grub 명령을 수행한다.

$ update-grub

Sourcing file `/etc/default/grub'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.15.0-213-generic
Found initrd image: /boot/initrd.img-4.15.0-213-generic
Found linux image: /boot/vmlinuz-4.15.0-143-generic
Found initrd image: /boot/initrd.img-4.15.0-143-generic
Found linux image: /boot/vmlinuz-4.15.0-142-generic
Found initrd image: /boot/initrd.img-4.15.0-142-generic
Found linux image: /boot/vmlinuz-4.15.0-137-generic
Found initrd image: /boot/initrd.img-4.15.0-137-generic
done

$

 

 

Linux OS를 reboot

아래와 같이 reboot 명령을 수행하고, 부팅 초기에 "countdown" 화면이 나오면

[ESC] 또는 [SHIFT] 또는 [F4] 키를 눌러서 원하는 Linux kernel version을 선택한다.

$ reboot

 

 

GNU GRUB 화면 (Linux kernel version 선택)

 

GNU GRUB 화면 (Linux kernel version 선택)

 

 

 

Linux kernel version의 적용 여부 확인

아래와 같이 `uname -sr` 명령으로 새로 설치한 linux kernel version으로 부팅되었는지 확인한다.

$ uname -sr
Linux 4.15.0-137-generic
$

 

 

 

 


 

반응형

 


 

작성일: 2024년 8월 7일

 

 

Ubuntu 24.04 또는 Ubuntu 22.04에 Samba(SMB) 서버를 설치하고 싶다면 아래 절차를 따라하면 잘 동작한다.

  

 

##
##  Samba 서버 프로그램을 설치한다.
##
$  sudo apt-get update

$  sudo apt-get install -y samba

...

##
##  Samba 서버가 공유할 폴더(디렉토리) 정보를 설정한다.
##
$  vi /etc/samba/smb.conf
... 중간 생략 ...
;
; 아래 내용을 추가한다.
;
[mybox]
   comment = My File Box
   path = /home/sejong
   guest ok = no
   browseable = yes
   writable = yes
   create mask = 0777
   directory mask = 0777
   valid users = sejong
... 중간 생략 ...

##
## Linux 계정 'sejong'을 samba 접근 계정으로 추가한다.
## 암호는 Linux 계정 'sejong'의 암호와 달라도 된다.
##
$  sudo smbpasswd -a sejong

##
## Samba 서버 데몬을 재기동한다.
##
$  sudo /etc/init.d/smbd restart
## 또는 위 명령을 아래와 같이 수행해도 된다.
##  $ sudo  systemctl restart smbd

 

클라이언트 PC에서 아래와 같이 Samba 서버에 접속시도한다. (아래는 Macbook에서 실행한 화면)

 

Macbook에서 Samba 서버에 접속 시도

 

 

 

 

Samba 서버 설정 끝 !!!
Samba 서버 관리 명령을 알고 싶다면, 아래 내용을 더 읽어보아요~~

 

 

 

Samba 계정 정보를 보고 싶다면, 아래와 같이 `pdbedit` 명령으로 조회할 수 있다.

 

$  pdbedit -L -v

---------------
Unix username:        sejong
NT username:
Account Flags:        [U          ]
Home Directory:       \\ANDREW-UBUNTU\sejong
HomeDir Drive:
Logon Script:
Profile Path:         \\ANDREW-UBUNTU\sejong\profile
Domain:               ANDREW-UBUNTU
Account desc:
Workstations:
Munged dial:
Logon time:           0
Logoff time:          Thu, 07 Feb 2036 00:06:39 KST
Kickoff time:         Thu, 07 Feb 2036 00:06:39 KST
Password last set:    Wed, 07 Dec 2022 16:06:30 KST
Password can change:  Wed, 07 Dec 2022 16:06:30 KST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

$

 

 

Samba 서버에 접속한 Client 정보를 보고 싶다면 아래와 같이 `smbstatus` 명령을 사용한다.

$  smbstatus

Samba version 4.15.9-Ubuntu
PID     Username     Group        Machine                                   Protocol Version  Encryption           Signing
----------------------------------------------------------------------------------------------------------------------------------------
295419  sejong       sejong       10.1.3.169 (ipv4:10.1.3.169:63352)        SMB3_11           -                    partial(AES-128-CMAC)

Service      pid     Machine       Connected at                     Encryption   Signing
---------------------------------------------------------------------------------------------
mybox        295419  10.1.3.169    Wed Dec  7 04:23:23 PM 2022 KST  -            -


Locked files:
Pid          User(ID)   DenyMode   Access      R/W        Oplock           SharePath   Name   Time
--------------------------------------------------------------------------------------------------
295419       1001       DENY_NONE  0x100081    RDONLY     NONE             /home/sejong   .   Wed Dec  7 16:23:22 2022

 

 

계정 정보를 변경하고 싶다면,  `usermod` 명령을 사용한다.

 

$  usermod --help
Usage: usermod [options] LOGIN

Options:
  -b, --badnames                allow bad names
  -c, --comment COMMENT         new value of the GECOS field
  -d, --home HOME_DIR           new home directory for the user account
  -e, --expiredate EXPIRE_DATE  set account expiration date to EXPIRE_DATE
  -f, --inactive INACTIVE       set password inactive after expiration
                                to INACTIVE
  -g, --gid GROUP               force use GROUP as new primary group
  -G, --groups GROUPS           new list of supplementary GROUPS
  -a, --append                  append the user to the supplemental GROUPS
                                mentioned by the -G option without removing
                                the user from other groups
  -h, --help                    display this help message and exit
  -l, --login NEW_LOGIN         new value of the login name
  -L, --lock                    lock the user account
  -m, --move-home               move contents of the home directory to the
                                new location (use only with -d)
  -o, --non-unique              allow using duplicate (non-unique) UID
  -p, --password PASSWORD       use encrypted password for the new password
  -R, --root CHROOT_DIR         directory to chroot into
  -P, --prefix PREFIX_DIR       prefix directory where are located the /etc/* files
  -s, --shell SHELL             new login shell for the user account
  -u, --uid UID                 new UID for the user account
  -U, --unlock                  unlock the user account
  -v, --add-subuids FIRST-LAST  add range of subordinate uids
  -V, --del-subuids FIRST-LAST  remove range of subordinate uids
  -w, --add-subgids FIRST-LAST  add range of subordinate gids
  -W, --del-subgids FIRST-LAST  remove range of subordinate gids
  -Z, --selinux-user SEUSER     new SELinux user mapping for the user account

 

 

게시물 작성자: sejong.jeonjo@gmail.com

 

 


 

 

 

##
## 채용 관련 글
##
제가 일하고 있는 기업 부설연구소에서 저와 같이 연구/개발할 동료를 찾고 있습니다.
(이곳은 개인 블로그라서 기업 이름은 기재하지 않겠습니다. E-mail로 문의주시면 자세한 정보를 공유하겠습니다.)

근무지 위치:
  서울시 서초구 서초동, 3호선 남부터미널역 근처 (전철역 출구에서 회사 입구까지 도보로 328m)
필요한 지식 (아래 내용 중에서 70% 정도를 미리 알고 있다면 빠르게 협업할 수 있음):
  - 운영체제 (학부 3~4학년 때, 컴퓨터공학 운영체제 과목에서 배운 지식 수준):
    예를 들어, Processor, Process 생성(Fork)/종료, Memory, 동시성, 병렬처리, OS kernel driver  
  - Linux OS에서 IPC 구현이 가능
    예를 들어, MSGQ, SHM, Named PIPE 등 활용하여 Process간 Comm.하는 기능 구현이 가능하면 됨. 
  - Algorithm(C언어, C++ 언어로 구현 가능해야 함)
    예를 들어, Hashtable, B-Tree, Qsort 정도를 C 또는 C++로 구현할 수 있을 정도 
  - Network 패킷 처리 지식(Layer 2 ~ 4, Layer 7)
    예를 들어, DHCP Server/Client의 주요 Feature를 구현할 정도의 능력이 있으면 됨.
  - Netfilter, eBPF 등 (IP packet hooking, ethernet packet 처리, UDP/TCP packet 처리)
  - IETF RFC 문서를 잘 읽고 이해하는 능력 ^^
  # 위에 열거한 내용 외에도 제가 여기 블로그에 적은 내용들이 대부분 업무하면서 관련이 있는 주제를 기록한 것이라서
  # 이 블로그에 있는 내용들을 잘 알고 있다면, 저희 연구소에 와서 연구/개발 업무를 수행함에 있어서 어려움이 없을 겁니다.
회사에서 사용하는 프로그래밍 언어:
  - 프로그래밍 언어: C, C++, Go
    (참고: 아직 연구소 동료들이 Rust를 사용하진 않습니다만, 새 언어로써 Rust를 사용하는 것을 고려하는 중)
근무 시간:
  - 출근: 8~10시 사이에서 자유롭게 선택
  - 퇴근: 8시간 근무 후 퇴근 (오후 5시 ~ 7시 사이)
  - 야근 여부: 거의 없음 (내 경우, 올해 상반기 6개월간 7시 이후에 퇴근한 경우가 2회 있었음)
  - 회식 여부: 자유 (1년에 2회 정도 회식하는데, 본인이 집에 가고 싶으면 회식에 안 감. 왜 참석 안 하는지 묻지도 않음)
외근 여부:
  - 신규 프로젝트 멤버 -> 외근 전혀 하지 않음 (나는 신규 프로젝트만 참여해서 지난 1년 동안 한번도 외근 없었음)
  - 상용 프로젝트 멤버 -> 1년에 5회 미만 정도로 외근
팀 워크샵 여부:
  - 팀 워크샵 자체를 진행하지 않음. (워크샵 참석하는 거 싫어하는 개발자 환영 ^^)
연락처:
  - "sejong.jeonjo@gmail.com"  # 궁금한 점은 이 연락처로 문의주세요.
  - 블로그 비밀 댓글 (제가 하루에 한번씩 댓글 확인하고 있음)
원하는 인재상:
  - 우리 부설연구소는 "긴 호흡으로 프로젝트를 진행"하기 때문에 최소 2년간 한 가지 주제를 꾸준하게 연구/개발할 수 있는 개발자를 원함.
  - 우리 부설연구소는 자주적으로 연구 주제를 찾아서 업무를 하기 때문에 능동적으로 생각하고 행동하는 동료를 원함.
  - 차분하게 연구 주제에 몰입하고, 해법을 찾는 것을 즐기는 사람.
내가 느끼는 우리 연구소의 장점:
  - 갑/을 관계가 없음. (제가 근무하고 있는 연구소는 SI업종이 아니라서 갑/을 회사 개념이 없음)
  - 연구소 자체적으로 연구 주제를 발굴하고 시스템을 개발하기 때문에 개발 일정에 대한 스트레스가 적음
  - 빌딩 전체를 우리 회사가 사용하므로 분위기가 산만하지 않음.
  - 근처에 예술의전당, 우면산 둘레길이 있어서 점심 시간에 산책하기 좋음 ^^
  - 연구소 동료들 매너가 Good (2년간 일하면서 한번도 감정에 스크레치 생기거나 얼굴 붉히며 싸운 적 없음 ^^)

 

반응형
작성일: 2024년 8월 7일

 

 

 

Ubuntu 24.04를 설치하기 전, 이모저모 소식 알아보기

Ubuntu 24.04 (Noble Numbat)이 정식 릴리즈되었다.

ubuntu.com 홈페이지에 들어가면 24.04 릴리즈 소식을 볼 수 있다.

 

Ubuntu 24.04 Noble Numbat 릴리즈 소식을 전하는 Canonical 홈페이지 화면

 

지금 Ubuntu 24.04를 사용할 일은 없지만, 새로운 OS이니까 설치해봐야지 ^^

 

i9 CPU가 장착된 Desktop PC에서 KVM을 이용해서 Ubuntu 24.04를 설치해봤다.

ISO 파일을 다운로드한 시간을 제외하면, 실제로 OS 패키지를 설치한 시간은 대략 6분 정도 걸렸다.

 

Ubuntu 24.04를 부팅한 직후에

  • Chromium 브라우저를 설치하고, YouTube에서 4K 영상 재생.
  • SSH 설정해서 외부에서 접속.
  • Remote Desktop도 설정해서 접속.

30분 정도 사용해봤을 때, UX 측면에서 Ubuntu 22.04와 거의 바뀐 것은 없다. 

내가 알아낸 UX 측면의 변화는

  • [ Settings / Sharing ] 화면에서 Remote Desktop 기능이 빠짐
  • [ Settings / System ] 화면에 Remote Desktop 기능이 추가됨

즉, [ Remote Desktop ] 설정 메뉴가 [ Sharing ] 하위 메뉴에서 [ System ] 하위 메뉴로 이동했다.

 

Ubuntu 24.04 Noble Numbat 설치한 모습

 

 


 

.

.

.

 

참고: 한영 전환 키 조합 설정하기

Ubuntu 24.04 에서 한영 전환 설정하는 방법 -->  https://andrewpage.tistory.com/390

.

.

.

 

 


 

Ubuntu 24.04 설치 절차

1)  Ubuntu 24.04 설치 이미지 파일 다운로드

Ubuntu Server 이미지와 Ubuntu Desktop 이미지 중에서 본인이 사용할 목적에 맞게 Ubuntu 이미지 파일을 다운로드한다.

참고:
  Windows GUI 화면이 필요하고, 마우스로 Ubuntu OS를 조작하고 싶다면 Ubuntu Desktop 이미지를 다운로드 해야 한다.
  Ubuntu Server 이미지는 Text 화면 밖에 없고, 마우스를 사용할 수 없다.

 

Ubuntu Desktop 24.04 설치 파일 다운로드 (이 링크를 클릭)

 

 

2)  Ubuntu 24.04 설치를 위한 부팅 USB 만들기

Ubuntu 공식 홈페이지에 각 OS별 부팅 USB 만드는 방법이 잘 설명되어 있다.

 

 

 

3)  USB로 부팅하여 Ubuntu 설치

앞에서 만든 USB로 Ubuntu를 부팅하면, 몇 초 후에 아래와 같은 GRUB 부팅 옵션 화면이 나온다.

Ubuntu를 설치할거라면, [Try or Install Ubuntu]를 선택하고 [Enter Key]를 누른다.

GRUB 부팅 옵션 화면

 

 

10초 정도 지나면, 아래와 같이 [Welcome to Ubuntu], "Preparing Ubuntu..." 메시지가 출력되는 설치 화면이 나온다.

 

Ubuntu 24.04 설치 진행 중 화면

 

 

또 2초 정도 지나면, 아래와 같이 Ubuntu 설치 중에 사용할 언어를 선택하라는 창이 나온다.

English를 선택하고 [Next] 버튼을 누른다.

Ubuntu 24.04 설치 화면 / OS 설치 중 사용할 언어 선택

 

 

 

아래 화면에서 설정 변경 없이 [Next] 버튼을 클릭한다.

Ubuntu 24.04 설치 화면

 

 

아래 설치 화면에서 키보드 레이아웃을 선택한다. [특별한 키보드가 아니라면, English(US)를 선택]

Ubuntu 24.04 설치 화면 / 키보드 레이아웃 선택하기

 

 

 

Ubuntu 24.04를 설치하는 중에 사용할 인터넷 연결 방식을 선택한다.

Ubuntu 24.04 설치 화면 / 인터넷 연결 방식 선택하기

 

 

 

 

아래 화면에서 Ubuntu 24.04를 설치할 것인지, Ubuntu 24.04를 설치하지 않고 맛보기로 잠깐 부팅해서 사용하고 버릴지 선택한다.

Ubuntu 24.04 설치 화면 / 설치를 할 것인지, 설치 없이 임시로 맛보기만 할지 선택하기

 

 

대화형으로 설치할지, 자동으로 일괄 설치할지 정한다.

Ubuntu 24.04 설치 화면 / 대화형으로 설치할지, 자동 설치할지 선택

 

 

기본 앱만 설치할지, 오피스 도구 같은 추가 앱을 설치할지 정한다.

(Ubuntu 24.04를 설치하고 나중에 추가 설치가 가능하니까, 기본 앱만 설치해도 된다)

Ubuntu 24.04 설치 화면 / 추가로 설치할 프로그램 선택하기

 

Third-party 소프트웨어, 동영상 플레이어 같은 앱을 추가 설치할지 결정한다.

(Ubuntu 24.04를 설치하고 나중에 추가 설치가 가능하니까, 체크 박스를 체크하지 않아도 된다)

Ubuntu 24.04 설치 화면 / 추가로 설치할 Software 선택하기

 

 

설치할 디스크를 삭제하고, Ubuntu 24.04를 설치하도록 한다.

Ubuntu 24.04 설치 화면 / Disk 삭제 후 Ubuntu 설치하기

 

 

Ubuntu OS에 계정을 생성한다.

Ubuntu 24.04 설치 화면 / 계정 생성하기

 

 

시간대를 설정한다. (Asia/Seoul을 선택)

Ubuntu 24.04 설치 화면 / 시간대(timezone) 선택하기

 

지금까지 선택한 옵션을 확인하고 [Install] 버튼을 클릭한다.

Ubuntu 24.04 설치 화면 / 설치 옵션 확인 후 설치 시작

 

 

 

아래와 같은 화면이 나올 것이고, 대략 10분 정도 기다리면 Ubuntu 24.04 설치가 완료될 것이다.

Ubuntu 24.04 설치 시작 화면

 

 

 

Ubuntu 24.04 설치 화면

 

 

 

Ubuntu 24.04 설치 화면

 

 

 

 

Ubuntu 24.04 Noble Numbat 설치한 모습

 

 

2024년 4월 26일에 Ubuntu 24.04 관련하여 발견한 이슈.

내 PC에서는 문제가 없었는데, 회사의 동료들은 Ubuntu GUI Desktop 환경에 문제가 있다고 한다.

"Terminal" 앱을 제외하고 모든 GUI 창 모서리가 "깜빡~깜빡~"하면서 창 모양이 사라졌다 다시 보였다 하는 현상이 있다.

(1초에 10번 정도 깜빡이는 것처럼 보임)

그래서 동료들은 Ubuntu GUI Desktop 없이 Ubuntu Server 패키지만 설치해서 SSH 접속해서 사용하고 있다.

참고로, 이렇게 GUI 화면이 깜빡이는 동료들의 PC 운영 환경은 아래와 같다.

  • Baremetal --> 설치 단계부터 GUI가 안 보임
  • VirtualBox --> GUI Desktop 화면이 깜빡이는 현상 발생

정상적으로 잘 동작하는 경우는 아래와 같다.

  • KVM / Qemu 환경에 VM으로 Ubuntu 24.04를 설치한 경우 --> 정상 동작

 


 

 

 

 

##
## 채용 관련 글
##
제가 일하고 있는 기업 부설연구소에서 저와 같이 연구/개발할 동료를 찾고 있습니다.
(이곳은 개인 블로그라서 기업 이름은 기재하지 않겠습니다. E-mail로 문의주시면 자세한 정보를 공유하겠습니다.)

근무지 위치:
  서울시 서초구 서초동, 3호선 남부터미널역 근처 (전철역 출구에서 회사 입구까지 도보로 328m)
필요한 지식 (아래 내용 중에서 50% 정도를 미리 알고 있다면 빠르게 협업할 수 있음):
  - 운영체제 (학부 3~4학년 때, 컴퓨터공학 운영체제 과목에서 배운 지식 수준):
    예를 들어, Processor, Process 생성(Fork)/종료, Memory, 동시성, 병렬처리, OS kernel driver  
  - Algorithm(C언어, C++ 언어로 구현 가능해야 함)
    예를 들어, Hashtable, Linked list 자료 구조 정도를 C 또는 C++로 구현할 수 있으면 Good! 
  - Network 패킷 처리 지식(Network layer 2 ~ 4)
    예를 들어, DHCP Server/Client 기능(Discover, Offer 등) 구현할 정도의 능력이 있으면 됨.
  - 우리 연구소에서는 Netfilter(iptables)를 잘 사용하면 업무를 수행함에 있어서 편함. (Netfilter를 모르면 동료가 잘 알려줄 것임)
  - IETF RFC 문서를 잘 읽고 이해하는 능력 ^^
  # 위에 열거한 내용 외에도 제가 여기 블로그에 적은 내용들이 대부분 업무하면서 관련이 있는 주제를 기록한 것이라서
  # 이 블로그에 있는 내용들을 잘 알고 있다면, 저희 연구소에 와서 연구/개발 업무를 수행함에 있어서 어려움이 없을 겁니다.
  # 위 내용을 잘 모르지만, 이 분야에 대해 공부하면서 일하고 싶다면 저에게 문의 메일을 주세요~
  # 학습 잠재력이 높은 것이 보인다면, 협업할 동료로써 환영합니다 ^^
회사에서 사용하는 프로그래밍 언어:
  - 프로그래밍 언어: C, C++, Go, Rust
    (참고: 아직 연구소 동료들이 Rust를 사용하진 않습니다만, 새 언어로써 Rust를 사용하는 것을 고려하는 중)
근무 시간:
  - 출근: 8~10시 사이에서 자유롭게 선택
  - 퇴근: 8시간 근무 후 퇴근 (오후 5시 ~ 7시 사이)
  - 야근 여부: 거의 없음 (내 경우, 올해 상반기 6개월간 7시 이후에 퇴근한 경우가 2회 있었음)
  - 회식 여부: 자유 (1년에 2회 정도 회식하는데, 본인이 집에 가고 싶으면 회식에 안 감. 왜 참석 안 하는지 묻지도 않음)
외근 여부:
  - 신규 프로젝트 멤버 -> 외근 전혀 하지 않음 (나는 신규 프로젝트만 참여해서 지난 1년 동안 한번도 외근 없었음)
  - 상용 프로젝트 멤버 -> 1년에 5회 미만 정도로 외근
팀 워크샵 여부:
  - 팀 워크샵 자체를 진행하지 않음. (워크샵 참석하는 거 싫어하는 개발자 환영 ^^)
연락처:
  - "sejong.jeonjo@gmail.com"  # 궁금한 점은 이 연락처로 문의주세요.
  - 블로그 비밀 댓글 (제가 하루에 한번씩 댓글 확인하고 있음)
원하는 인재상:
  - 우리 부설연구소는 "긴 호흡으로 프로젝트를 진행"하기 때문에 최소 2년간 한 가지 주제를 꾸준하게 연구/개발할 수 있는 개발자를 원함.
  - 우리 부설연구소는 자주적으로 연구 주제를 찾아서 업무를 하기 때문에 능동적으로 생각하고 행동하는 동료를 원함.
  - 차분하게 연구 주제에 몰입하고, 해법을 찾는 것을 즐기는 사람.
내가 느끼는 우리 연구소의 장점:
  - 갑/을 관계가 없음. (제가 근무하고 있는 연구소는 SI업종이 아니라서 갑/을 회사 개념이 없음)
  - 연구소 자체적으로 연구 주제를 발굴하고 시스템을 개발하기 때문에 개발 일정에 대한 스트레스가 적음
  - 빌딩 전체를 우리 회사가 사용하므로 분위기가 산만하지 않음.
  - 근처에 예술의전당, 우면산 둘레길이 있어서 점심 시간에 산책하기 좋음 ^^
  - 연구소 동료들 매너가 Good (2년간 일하면서 한번도 감정에 스크레치 생기거나 얼굴 붉히며 싸운 적 없음 ^^)
반응형

 


  

작성일: 2024년 8월 7일

 

 

참고:
  Ubunut 24.04에서 한영 전환 설정하는 방법이 궁금하다면 아래 블로그를 보는 것을 추천 !!!

      Ubuntu 24.04 에서 한영 전환 설정하는 방법 -->  https://andrewpage.tistory.com/390

 

Ubuntu 24.04 한글 입력기 설정 (한영 변환 설정)

작성일: 2024년 5월 3일   Ubuntu 24.04를 설치하고 한글 입력기 설정할 때 헷갈려서 메모를 남겨본다.처음에는 한영 전환 설정하는 방법을 잘 몰라서 설정 화면에서 이것저것 다 해봐도 잘 안 되었

andrewpage.tistory.com

 

 

 


 

Ubuntu 22.04(또는 Ubuntu 24.04)를 설치하고 한글 입력기 설정할 때 헷갈려서 메모를 남겨본다. 

처음에는 한영 전환 설정하는 방법을 잘 몰라서 설정 화면에서 이것저것 다 해봐도 잘 안 되었다.

 

!!! 한글 입력을 위해 설정해야 할 핵심은 키보드가 "Korean -> Korean"이 아니라 "Korean -> Hangul" 이라는 것 !!!

 

아래에 설명된 설정 순서를 따라해보면 한글 입력이 잘 될 것이다. ^^

 


 

Step 1 :  한글 입력 방식 추가 (Korean -> Hangul)

1)  Terminal에서 `ibus-setup` 명령을 실행 (아래 화면을 똑같이 따라할 것 !!)

 

Ubuntu 22.04 한글 입력 설정

 

2)  위 IBus Preference 화면에서 [Input Method] 탭을 선택하고, "Korean-Hangul"을 추가.

주의:
  꼭 Korean -> Hangul을 추가해야 한다. 비슷한 항목인 Korean을 선택하면 안 된다.

 

 

Step 2 : 한영 변환 키보드 조합 설정 (Input Sources 설정)

 

이렇게 한글 입력을 위한 설정을 하고 나면, [Keyboard] 설정 화면에서 한영 변환을 위한 키보드 조합을 설정해야 한다.

(아래 화면을 참고하여 따라할 것 !!)

 


참고로, 나는 MacBook에서 [ Shift ] + [ Space ] 키 조합으로 한영 변환하는 습관이 있어서 Ubuntu 22.04도 똑같이 한영 변환 키보드 조합을 설정한 것이다.
아래 설정화면에서 본인이 편한 키보드 조합으로 한영 변환을 설정하면 된다.

Ubuntu 22.04 한영 전환 설정

 

 

 

설정 끝 !
한영 전환이 잘 될 것이다. ^^


 

한번 더 위 설정 화면을 간단하게 글로 설명하면, 아래와 같다. (위에서 그림으로 설명한 것과 똑같은 내용이다)

 

1)  [ Settings ] 화면에서 [ Keyboard ] 선택

2)  [ Input Sources ] 화면에서 [ Korean (Hangul) ] 선택 후, [ Preferences ] 클릭

3)  [ IBusHangul Setup ] 화면이 열리면, [ Hangul ] 탭 선택

4)  Hangul Toggle Key 항목에서 한영 변환을 위한 키보드 조합 추가  

      (나는 내 개인 취향상, [ Shift Key + Space Key ]로 설정했음)

5)  OK 버튼을 누르면, 모든 설정 끝 !!!

 


 

 

 

##
## 채용 관련 글
##
제가 일하고 있는 기업 부설연구소에서 저와 같이 연구/개발할 동료를 찾고 있습니다.
(이곳은 개인 블로그라서 기업 이름은 기재하지 않겠습니다. E-mail로 문의주시면 자세한 정보를 공유하겠습니다.)

근무지 위치:
  서울시 서초구 서초동, 3호선 남부터미널역 근처 (전철역 출구에서 회사 입구까지 도보로 328m)
필요한 지식 (아래 내용 중에서 50% 정도를 미리 알고 있다면 빠르게 협업할 수 있음):
  - 운영체제 (학부 3~4학년 때, 컴퓨터공학 운영체제 과목에서 배운 지식 수준):
    예를 들어, Processor, Process 생성(Fork)/종료, Memory, 동시성, 병렬처리, OS kernel driver  
  - Algorithm(C언어, C++ 언어로 구현 가능해야 함)
    예를 들어, Hashtable, Linked list 자료 구조 정도를 C 또는 C++로 구현할 수 있으면 Good! 
  - Network 패킷 처리 지식(Network layer 2 ~ 4)
    예를 들어, DHCP Server/Client 기능(Discover, Offer 등) 구현할 정도의 능력이 있으면 됨.
  - 우리 연구소에서는 Netfilter(iptables)를 잘 사용하면 업무를 수행함에 있어서 편함. (Netfilter를 모르면 동료가 잘 알려줄 것임)
  - IETF RFC 문서를 잘 읽고 이해하는 능력 ^^
  # 위에 열거한 내용 외에도 제가 여기 블로그에 적은 내용들이 대부분 업무하면서 관련이 있는 주제를 기록한 것이라서
  # 이 블로그에 있는 내용들을 잘 알고 있다면, 저희 연구소에 와서 연구/개발 업무를 수행함에 있어서 어려움이 없을 겁니다.
  # 위 내용을 잘 모르지만, 이 분야에 대해 공부하면서 일하고 싶다면 저에게 문의 메일을 주세요~
  # 학습 잠재력이 높은 것이 보인다면, 협업할 동료로써 환영합니다 ^^
회사에서 사용하는 프로그래밍 언어:
  - 프로그래밍 언어: C, C++, Go, Rust
    (참고: 아직 연구소 동료들이 Rust를 사용하진 않습니다만, 새 언어로써 Rust를 사용하는 것을 고려하는 중)
근무 시간:
  - 출근: 8~10시 사이에서 자유롭게 선택
  - 퇴근: 8시간 근무 후 퇴근 (오후 5시 ~ 7시 사이)
  - 야근 여부: 거의 없음 (내 경우, 올해 상반기 6개월간 7시 이후에 퇴근한 경우가 2회 있었음)
  - 회식 여부: 자유 (1년에 2회 정도 회식하는데, 본인이 집에 가고 싶으면 회식에 안 감. 왜 참석 안 하는지 묻지도 않음)
외근 여부:
  - 신규 프로젝트 멤버 -> 외근 전혀 하지 않음 (나는 신규 프로젝트만 참여해서 지난 1년 동안 한번도 외근 없었음)
  - 상용 프로젝트 멤버 -> 1년에 5회 미만 정도로 외근
팀 워크샵 여부:
  - 팀 워크샵 자체를 진행하지 않음. (워크샵 참석하는 거 싫어하는 개발자 환영 ^^)
연락처:
  - "sejong.jeonjo@gmail.com"  # 궁금한 점은 이 연락처로 문의주세요.
  - 블로그 비밀 댓글 (제가 하루에 한번씩 댓글 확인하고 있음)
원하는 인재상:
  - 우리 부설연구소는 "긴 호흡으로 프로젝트를 진행"하기 때문에 최소 2년간 한 가지 주제를 꾸준하게 연구/개발할 수 있는 개발자를 원함.
  - 우리 부설연구소는 자주적으로 연구 주제를 찾아서 업무를 하기 때문에 능동적으로 생각하고 행동하는 동료를 원함.
  - 차분하게 연구 주제에 몰입하고, 해법을 찾는 것을 즐기는 사람.
내가 느끼는 우리 연구소의 장점:
  - 갑/을 관계가 없음. (제가 근무하고 있는 연구소는 SI업종이 아니라서 갑/을 회사 개념이 없음)
  - 연구소 자체적으로 연구 주제를 발굴하고 시스템을 개발하기 때문에 개발 일정에 대한 스트레스가 적음
  - 빌딩 전체를 우리 회사가 사용하므로 분위기가 산만하지 않음.
  - 근처에 예술의전당, 우면산 둘레길이 있어서 점심 시간에 산책하기 좋음 ^^
  - 연구소 동료들 매너가 Good (2년간 일하면서 한번도 감정에 스크레치 생기거나 얼굴 붉히며 싸운 적 없음 ^^)

 

 

 

 

블로그 작성자: sejong.jeonjo@gmail.com
반응형

 

작성일: 2024년 6월 19일

 

Mainboard, CPU, Memory, Storage, Graphic 장치 정보 조회

##
## Mainboard(메인보드, 마더보드) 정보 조회
##

$ inxi --machine
Machine:
  Type: Desktop System: Gigabyte product: Z590 AORUS PRO AX v: -CF serial: N/A
  Mobo: Gigabyte model: Z590 AORUS PRO AX v: x.x serial: N/A UEFI: American Megatrends LLC.
    v: F4 date: 01/29/2021


##
## CPU 정보를 조회
##
$ inxi --cpu
CPU:
  Info: 8-core model: 11th Gen Intel Core i7-11700 bits: 64 type: MT MCP cache: L2: 4 MiB
  Speed (MHz): avg: 2393 min/max: 800/4800:4900 cores: 1: 2500 2: 2500 3: 2500 4: 2500 5: 2500
    6: 2500 7: 2500 8: 2500 9: 2500 10: 2500 11: 2500 12: 2500 13: 800 14: 2500 15: 2500 16: 2500


##
## 물리 Memory 정보 조회
##

inxi --memory
Memory:
  RAM: total: 62.67 GiB used: 2.32 GiB (3.7%)
  Array-1: capacity: 64 GiB slots: 4 EC: None
  Device-1: Controller0-ChannelA-DIMM0 size: 16 GiB speed: 3200 MT/s
  Device-2: Controller0-ChannelA-DIMM1 size: 16 GiB speed: 3200 MT/s
  Device-3: Controller0-ChannelB-DIMM0 size: 16 GiB speed: 3200 MT/s
  Device-4: Controller0-ChannelB-DIMM1 size: 16 GiB speed: 3200 MT/s
  
  
##
## Graphic 처리 장치 정보를 조회
##

$ inxi --graphic
Graphics:
  Device-1: NVIDIA GA102 [GeForce RTX 3080 Ti] driver: nvidia v: 530.41.03
  Display: server: X.org v: 1.21.1.4 with: Xwayland v: 22.1.1 driver: X: loaded: modesetting
    unloaded: fbdev,vesa gpu: nvidia tty: 148x60
  Message: GL data unavailable in console for root.
  
    
##
## Storage(Disk) 장치 정보를 조회
##

$ inxi --disk
Drives:
  Local Storage: total: 4.55 TiB used: 711.75 GiB (15.3%)
  ID-1: /dev/nvme0n1 vendor: Samsung model: SSD 980 PRO 1TB size: 931.51 GiB
  ID-2: /dev/sda vendor: Western Digital model: WD40EZAZ-00SF3B0 size: 3.64 TiB
  
  
##
## Bluetooth 장치 정보를 조회
##

$ inxi --bluetooth
Bluetooth:
  Device-1: Intel AX200 Bluetooth type: USB driver: btusb
  Report: hciconfig ID: hci0 state: up address: 84:AA:77:D0:0B:23 bt-v: 3.0
  
  
##
## Audio 장치 정보를 조회
##

$ inxi --audio
Audio:
  Device-1: Intel Tiger Lake-H HD Audio driver: snd_hda_intel
  Device-2: NVIDIA GA102 High Definition Audio driver: snd_hda_intel
  Device-3: Giga-Byte USB Audio type: USB driver: hid-generic,snd-usb-audio,usbhid
  Sound Server-1: ALSA v: k5.19.0-41-generic running: yes
  

##
## USB 장치 정보
##

$ inxi --usb
USB:
  Hub-1: 1-0:1 info: Hi-speed hub with single TT ports: 16 rev: 2.0
  Device-1: 1-2:2 info: Giga-Byte USB Audio type: Audio,HID rev: 2.0
  Hub-2: 1-4:3 info: Realtek RTS5411 Hub ports: 4 rev: 2.1
  Device-1: 1-10:4 info: Logitech Unifying Receiver type: Keyboard,Mouse rev: 2.0
  Hub-3: 1-11:5 info: Genesys Logic Hub ports: 4 rev: 2.0
  Hub-4: 1-12:6 info: Genesys Logic Hub ports: 4 rev: 2.0
  Device-1: 1-13:7 info: Integrated Express ITE Device type: HID rev: 2.0
  Device-2: 1-14:8 info: Intel AX200 Bluetooth type: Bluetooth rev: 2.0
  Hub-5: 2-0:1 info: Super-speed hub ports: 9 rev: 3.1
  Hub-6: 2-3:2 info: Realtek Hub ports: 4 rev: 3.2

 

 

NVIDIA Graphic Device 정보

##
## NVIDIA 설정 정보
##

$ nvidia-settings --version

nvidia-settings:  version 530.41.03
  The NVIDIA Settings tool.

  This program is used to configure the NVIDIA Linux graphics driver.
  For more detail, please see the nvidia-settings(1) man page.
  


##
## System Management Interface
##

$ nvidia-smi

Fri May 19 13:01:31 2023
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 530.41.03              Driver Version: 530.41.03    CUDA Version: 12.1     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                  Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf            Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA GeForce RTX 3080 Ti      Off| 00000000:01:00.0  On |                  N/A |
|  0%   31C    P8               12W / 350W|    384MiB / 12288MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+

+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|    0   N/A  N/A      3961      G   /usr/lib/xorg/Xorg                           62MiB |
|    0   N/A  N/A      4265    C+G   ...libexec/gnome-remote-desktop-daemon      251MiB |
|    0   N/A  N/A      4306      G   /usr/bin/gnome-shell                         64MiB |
+---------------------------------------------------------------------------------------+


$  nvidia-smi -q

==============NVSMI LOG==============

Timestamp                                 : Fri May 19 13:05:00 2023
Driver Version                            : 530.41.03
CUDA Version                              : 12.1

Attached GPUs                             : 1
GPU 00000000:01:00.0
    Product Name                          : NVIDIA GeForce RTX 3080 Ti
    Product Brand                         : GeForce
    Product Architecture                  : Ampere
    Accounting Mode Buffer Size           : 4000   
    Fan Speed                             : 0 %
    Performance State                     : P8
    FB Memory Usage
        Total                             : 12288 MiB
        Reserved                          : 245 MiB
        Used                              : 384 MiB
        Free                              : 11658 MiB
    BAR1 Memory Usage
        Total                             : 256 MiB
        Used                              : 10 MiB
        Free                              : 246 MiB
    Utilization
        Gpu                               : 0 %
        Memory                            : 12 %
        Encoder                           : 0 %
        Decoder                           : 0 %
    Temperature
        GPU Current Temp                  : 31 C
        GPU Shutdown Temp                 : 98 C
        GPU Slowdown Temp                 : 95 C
        GPU Max Operating Temp            : 93 C
        GPU Target Temperature            : 83 C
        Memory Current Temp               : N/A
        Memory Max Operating Temp         : N/A
    Power Readings
        Power Management                  : Supported
        Power Draw                        : 13.61 W
        Power Limit                       : 350.00 W
        Default Power Limit               : 350.00 W
        Enforced Power Limit              : 350.00 W
        Min Power Limit                   : 100.00 W
        Max Power Limit                   : 350.00 W
    Clocks
        Graphics                          : 210 MHz
        SM                                : 210 MHz
        Memory                            : 405 MHz
        Video                             : 555 MHz
    Max Clocks
        Graphics                          : 2130 MHz
        SM                                : 2130 MHz
        Memory                            : 9501 MHz
        Video                             : 1950 MHz
    Voltage
        Graphics                          : 775.000 mV
    Fabric
        State                             : N/A
        Status                            : N/A
    Processes
        GPU instance ID                   : N/A
        Compute instance ID               : N/A
        Process ID                        : 3961
            Type                          : G
            Name                          : /usr/lib/xorg/Xorg
            Used GPU Memory               : 62 MiB
        GPU instance ID                   : N/A
        Compute instance ID               : N/A
        Process ID                        : 4265
            Type                          : C+G
            Name                          : /usr/libexec/gnome-remote-desktop-daemon
            Used GPU Memory               : 251 MiB
        GPU instance ID                   : N/A
        Compute instance ID               : N/A
        Process ID                        : 4306
            Type                          : G
            Name                          : /usr/bin/gnome-shell
            Used GPU Memory               : 64 MiB
            
            
  $ nvtop

 

참고로, nvtop 명령의 조회 결과는 아래 화면처럼 출력된다.

nvtop (NVIDIA 그래픽카드 GPU 정보 출력하는 명령)

반응형
테스트한 날짜: 2024년 2월 20일

 

 

잠깐 !!
PPTP Server 구축하기 전에 PPTP Client 설정 및 터널 생성하는 법을 알고 싶다면 아래 문서를 참고 !

 

       https://andrewpage.tistory.com/257

 

 

PPTP 패키지 설치

$ sudo  apt install pptpd

 

 

PPTP 서버 설정

##
## Tunnel Interface에 할당할 IP address를 설정한다.
##   예를 들어, PPTP server는 ppp0 tunnel interface에 10.1.0.1 주소를 할당.
##            PPTP client는 ppp0 tunnel interface에 10.1.0.100 주소를 할당.
##

$ cat /etc/pptpd.conf
... 중간 생략 ...

localip 10.1.0.1
remoteip 10.1.0.100-130

... 중간 생략 ...


##
## PPTP client에 접속 요청할 때, PPTP server가 아래의 network 구성 정보를 client에게 전달하도록 함.
## mtu 값은 실제 physical NIC의 mtu 값보다 대략 60~100 bytes 정도 작게 설정해야
## tunnel session을 통해서 IP 패킷이 전송될 때, IP 패킷의 꼬리 부분이 짤리는 현상이 없다.
## 예를 들어서, physical NIC의 MTU 값이 1500 이라고 가정해보면
##   PPTP tunnel interface의 MTU는 1400 정도 되어야 IP packet이 버려지지 않고 전송된다.
## 만약 실수로 tunnel mtu를 1500으로 설정하면, 1500 byte 짜리 IP packet이 전송되려 할 것이고
## 이 때 IP packet의 뒷 부분 60~100 bytes 정도가 짤리는 현상이 발생할 것이다.
##

$ cat /etc/ppp/pptpd-options
... 중간 생략 ...

ms-dns 1.1.1.1
mtu 1400
mru 1400

default-asyncmap

... 중간 생략 ...


##
## 반드시 ip_forward를 enable 시켜야 한다.
## ip_forward 설정이 enable 되어야 한개의 Linux OS내부에서 Physical port 'ens3'와 ppp0 간에 패킷이 forward된다.
##

$  sudo sysctl -w net.ipv4.ip_forward=1

$  cat  /etc/sysctl.conf
... 중간 생략 ...

net.ipv4.ip_forward=1

... 중간 생략 ...

$

 

PPTP 계정 설정

PPTP client가 PPTP server에 접속할 때 사용할 Account 정보를 설정한다.

$ cat /etc/ppp/chap-secrets

# client        server  secret                  IP addresses
mynewid         pptpd   my!pass@word            *
gildong         pptpd   me!hahahoho@            *

 

 

PPTP 서비스 기동

$ systemctl start pptpd

$ systemctl enable pptpd

$ systemctl status pptpd
● pptpd.service - PoPToP Point to Point Tunneling Server
     Loaded: loaded (/lib/systemd/system/pptpd.service; disabled; vendor preset: enabled)
     Active: active (running) since Tue 2024-02-20 22:35:17 KST; 34min ago
     
... 중간 생략 ...

 

 


PPTP Client를 이용하여 PPTP 터널 생성 테스트하기

Ubuntu OS에서 PPTP Client를 설정하는 방법은 아래 문서를 참고 !


     https://andrewpage.tistory.com/257

 

 

 


 

반응형
작성일: 2024년 1월 23일

 

 

Ubuntu OS가 설치된 장비에 로그인하다보면 아래와 같이 'cannot change locale (en_US.UTF-8)' 에러 메시지가 출력되는가 있다.

 

Welcome to Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-87-generic x86_64)
Last login: Tue Jan 23 15:12:32 2024 from ...
-bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)

 

 

아래와 같이 locales 패키지 설치하고, en_US.UTF-8 로케일 데이터를 생성하면 해결 !!

$ apt install locales
... 중간 생략 ...

##
## English locale 생성하기
##
$ locale-gen en_US.UTF-8
Generating locales (this might take a while)...
  en_US.UTF-8... done
Generation complete.

##
## 한글(Korean) locale 생성하기
##
$ locale-gen ko_KR.UTF-8

 

 


 

반응형
VLAN 설정 테스트한 날짜: 2023년 5월 19일

 

아래는 테스트할 때 사용했던 설정 내용.

$ sudo cat /etc/netplan/00-network-manager-all.yaml

network:
  version: 2
  renderer: NetworkManager
  ethernets:
## eth0에 IP Address 값을 설정하던 안 하던 VLAN 설정과는 관련이 없다.
    eth0:
      addresses: [172.16.1.11/24]
  vlans:
    vlan.2:
      id: 2
      link: eth0
      addresses: [ 172.16.2.11/24]
      

$ sudo netplan try --debug

$ ip addr

0: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 08:33:77:08:3b:2a brd ff:ff:ff:ff:ff:ff
    inet 172.16.1.11/24 brd 172.16.1.255 scope global eth0
       valid_lft forever preferred_lft forever
       
1: vlan.2@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 08:33:77:08:3b:2a brd ff:ff:ff:ff:ff:ff
    inet 172.16.2.11/24 brd 172.16.2.255 scope global vlan.2
       valid_lft forever preferred_lft forever
...

 

L2 Switch에 연결해서 테스트했는데 잘 동작한다.

 

 

VLAN 개념 참고 문서:  https://gettingconnected.tistory.com/79

 

 

블로그 작성자: sejong.jeonjo@gmail.com

 

+ Recent posts