FreeBSD

Mon, Sep 21 2020 02:52:06

2021.06.10에 업데이트했습니다.

FreeBSD® 소개

FreeBSD 는 유닉스 운영체제입니다. FreeBSD 는 커널, libc, 시스템 관련 유틸리티를 모두 포함하는 완전한 형태의 운영체제입니다.

FreeBSD 13 버전 설치하기

https://download.freebsd.org/ftp/releases/ISO-IMAGES/13.0/ 이미지를 다운받습니다.
*.img 파일이 UBS 용 파일입니다.

다음 문서를 참고하세요.
https://www.freebsd.org/doc/handbook/bsdinstall.html

xfce 데스크탑 환경 설치하기

설치 단계를 나누지 않고 합쳐서 설명 드리겠습니다.

사용자가 포함되는 그룹을 수정

아래 명령을 하면 username 이라는 사용자가 wheel, operator, video 그룹에 추가됩니다. wheel 그룹에 추가해야만 su 명령을 사용할 수 있습니다.

# pw usermod username -G wheel, operator, video

패키지 설치

주의: AMD 3000G CPU, Asus Prime A320I-K 메인보드를 기준으로 설명 드립니다. 아래 설명 중에

kld_list="amdgpu" # amdgpu 커널 모듈을 로딩
mv /root/xorg.conf.new /usr/local/etc/X11/xorg.conf.d/amdgpu.conf

이런 내용이 나오는데 귀하의 환경과는 맞지 않을 수 있습니다.

FreeBSD 를 설치한 후에 터미널에서 아래 패키지들을 설치합니다.

# pkg install xorg-minimal xf86-video-amdgpu drm-kmod sddm \
  sddm-freebsd-black-theme xfce xfce4-screensaver xfce4-pulseaudio-plugin \
  xfce4-screenshooter-plugin xfce4-whiskermenu-plugin xfce4-weather-plugin \
  thunar-archive-plugin file-roller ristretto noto-kr firefox

일부 패키지는 설치한 후에 설정을 필요로 합니다.

rc.conf 설정

/etc/rc.conf 에 아래 내용을 추가합니다.

clear_tmp_enable="YES" # 재시동할 때 /tmp 디렉토리 내의 파일들을 삭제합니다
syslogd_flags="-ss" # 원격 로그 기능을 사용하지 않습니다
devfs_system_ruleset="localrules" # 위에 작성한 /etc/devfs.rules 적용
kld_list="amdgpu" # amdgpu 커널 모듈을 로딩
dbus_enable="YES" # dbus 가동
sddm_enable="YES" # sddm 가동

sddm-freebsd-black-theme 설정

sddm-freebsd-black-theme 을 사용하면 화면이 멋있어 보입니다. /usr/local/etc/sddm.conf 파일이 없으면 만든 후 아래 내용을 넣어 줍니다.

[Theme]
Current=sddm-freebsd-black-theme

USB 메모리 설정

/etc/devfs.rules 파일이 없으면 만든 후에 아래 내용을 추가합니다. USB 메모리를 꽂으면 da0 이런 형태의 장치 이름이 생깁니다. 아래 설정은 USB 메모리를 꽂았을 때, operator 그룹에 있는 사용자가 da* 장치에 읽기 쓰기할 수 있도록 하기 위해 da* 장치에 소유지/그룹 읽기 쓰기 권한과 operator 그룹 권한을 부여하는 내용입니다.

[localrules=5]
add path 'da*' mode 0660 group operator

fstab 설정

많은 프로그램들이 리눅스 proc 파일 시스템을 필요로 합니다. proc 파일 시스템을 사용하기 위해 /etc/fstab 에 아래 내용을 추가합니다.

proc            /proc           procfs  rw      0       0

sysctl.conf 설정

/etc/sysctl.conf 에 아래 내용을 추가합니다.

vfs.usermount=1 # 일반 사용자가 USB 저장소를 마운트할 수 있게 해줍니다.
hw.snd.default_unit=3 # 기본 사운드 유닛을 3 (0부터 시작하므로 네번째)으로 합니다. 시스템 마다 다릅니다.

로케일 설정

/etc/profile 에 아래 내용을 추가합니다.

LANG=en_US.UTF-8; export LANG
MM_CHARSET=UTF-8; export MM_CHARSET
LC_ALL=en_US.UTF-8; export LC_ALL

LC_ALL=en_US.UTF-8; export LC_ALL 이부분을 추가하지 않으면 리브레오피스에서 한글 이름의 파일을 읽지 못하거나 문서 내에 한글이 있을 경우 이상하게 나옵니다. /etc/profile 말고 ~/.login_conf, ~/.shrc, ~/.cshrcLC_ALL 을 추가해봤자 파일탐색기에서 한글 파일을 클릭하여 파일을 열었을 때 소용없었습니다. 그래서 /etc/profile 에 추가합니다.

xorg 설정

kldload amdgpu
X -configure
mv /root/xorg.conf.new /usr/local/etc/X11/xorg.conf.d/amdgpu.conf

참고: suspend 모드로 들어갔다가 나오면 키보드 설정이 풀리는 현상이 있습니다. 이 문제를 해결하기 위해서는 /usr/local/etc/X11/xorg.conf.d/에 키보드 설정 파일을 만들어 주면 됩니다.

영문 드보락 자판을 사용하신다면 아래 내용을 /usr/local/etc/X11/xorg.conf.d/dvorak.conf 라는 파일로 저장하시면 되겠습니다.

Section "InputClass"
  Identifier      "Keyboard0"
  MatchIsKeyboard "on"
  Option          "XkbVariant" "dvorak"
EndSection

외산 키보드로 한글을 입력하신다면 아래 내용을 /usr/local/etc/X11/xorg.conf.d/korean.conf 라는 파일로 저장하시면 되겠습니다.

Section "InputClass"
  Identifier      "Keyboard0"
  MatchIsKeyboard "on"
  Option          "XkbOptions" "korean:ralt_hangul,korean:rctrl_hanja"
EndSection

그 다음 아래 명령을 합니다.

# service sddm stop
# service sddm start

매번 service sddm start 명령을 해야 하는 것은 아닙니다. 다음 번에 리부팅을 하 시면 위 명령을 수작업으로 할 필요없이 그래픽 로그인 화면이 나오게 될 것입니다.

USB 마운트

dos 파일 시스템을 마운트할 때, UTF-8 이름이 있으면 에러 나는 경우가 있습니다. 이 때

mount_msdosfs -L en_US.UTF-8 /dev/da0s1 /mnt

이런 식으로 마운트 하면 됩니다.

geany 패치 만들기 예제

portsnap auto
cd /usr/ports/devel/geany
make extract
cd work-gtk3/geany-1.37.1/scintilla/gtk/
cp ScintillaGTK.cxx ScintillaGTK.cxx.orig
# ScintillaGTK.cxx 파일을 수정합니다.
cd /usr/ports/devel/geany
make makepatch
# ./files/patch-scintilla_gtk_ScintillaGTK.cxx 가 생성되었네요

그 다음에 make 한 후에 make deinstall 하고 make reinstall 하면 패치된 geany 가 설치됩니다. make clean 하여도 패치 파일은 남아 있어서 다음 번에 또 이용할 수 있습니다.

shell 변경하는 방법

chsh 명령을 이용하시면 되겠습니다.


위 작업들을 반자동화하는 스크립트를 만들었으니 참고하시기 바랍니다.

install-xfce.sh