2017年12月18日 星期一

部落格說明

這個部落格是我自己當做筆記用,因為我記性差頭腦遲鈍,為了避免健忘問重複問題,所以把我問到的答案或爬文解決的結果的記錄下來。

網路上的 FreeBSD 中文資料很多都很舊了,常常找到 FreeBSD 5 或 6 的資料,沒有參考價值,所以在這裡和大家分享我的解決方法,如果我寫的東西是您需要的,也讓您不用再費心力去找資料。版本的新舊就很重要了,目前我在使用的是 FreeBSD-12-CURRENT ,如果您發現我前一句寫的版本已經很舊了,沒有更新,那抱歉了,我可能疏於寫本筆記,請您要去找新的方法了。


記錄一下我每次重新安裝系統會裝的套件 (置頂是為了我自己重灌系統方便看)

因為常常重裝系統 (絕對不是因為 FreeBSD 不穩定,是我自己愛玩,有好幾台筆電可以裝,還有我的 Raspberry Pi 2 有時候要裝最新的 snapshot),所以在此記錄,各位可以直接跳過,每個人的需求不一樣。

vim sudo tmux irssi zh-auto-tw-l10n subversion docproj itstool gettext-tools asciidoc source-highlight intel-backlight xorg xfce zh-gcin zh-arphicttf firefox libreoffice zh_TW-libreoffice parole ristretto xfce4-mixer xfce4-weather-plugin xfce4-battery-plugin xfce4-screenshooter-plugin pidgin-skypeweb poedit

2017年11月13日 星期一

FreeBSD Virtual Machine Images 帳號密碼

現在使用 vm 越來越普及, FreeBSD 官方網站也有提供映像檔可以下載。有不同格式的檔案對應不同的虛擬機程式:

vhd: VirtualPC, Hyper-V, Xen, VirtualBox
vmdk: VMWare
qcow2: Qemu, KVM
raw: bhyve, other hypervisors that support unformatted raw disk image

這些 vm 系統的帳號是root,密碼是空白,就是沒有密碼的意思,進入系統後再自己修改。

2017年7月31日 星期一

pkg install time out

如果執行 pkg install 安裝套件時遇到
Operation timed out
Unable to update repository FreeBSD
那可以修改 /usr/local/etc/pkg.conf 
將 FETCH_TIMEOUT 註解拿掉,並且把他的值改成 200,試看看
 
不過記得先確定你的網路連線沒有問題喔~ 

2017年4月26日 星期三

利用 FreeBSD for Raspberry Pi 2 來製作無線網路基地台


俗諺說,每個 IT 人家裡都有一塊 Raspberry Pi,你家是不是也有一塊閒置的 Raspberry Pi 呢? 只要再加上一個無線網路卡就可以把它當作無線網路基地台使用 (俗諺說,每個 IT 人家裡也都會同時買一塊 Edimax 無線網卡。XD)

那為什麼要用 FreeBSD 不用 Raspbian 呢? 因為 FreeBSD 的無線網卡驅動程式就支援hostapd,如果你用 Raspbian,您還要去下載製造商的 vendor driver。再來就是 FreeBSD hostapd、 dhcp、防火牆設定相對簡單許多。


附上 Raspbian的設定給您參考,http://blog.itist.tw/2014/05/hotspotd.html


以下的設定,是假設您家中的網路是 DHCP 自動分配 ip,設定出來的無線基地台是路由模式, DHCP自動分配 ip 出去。


準備硬體:

1. Raspberry Pi 2,目前 Raspberry Pi 1、Raspberry Pi 3支援有問題,或許之後會有改善,請您自己查詢。

2. USB無線網路卡,可以查看 FreeBSD rtwn driver 有支援的就可以。
https://www.freebsd.org/cgi/man.cgi?query=rtwn&apropos=0&sektion=0&manpath=FreeBSD+12-current&arch=default&format=html


燒錄 image


接下來就到官網下載最新的 Raspberry Pi 2 image


https://download.freebsd.org/ftp/snapshots/arm/armv6/ISO-IMAGES/12.0/


把 image 寫入 micro SD card

插上電源開機

預設'帳號密碼是 root/root,freebsd/freebsd

FreeBSD 預設是無法用 root ssh 遠端登入。

設定 /boot/loader.conf


加入這兩行(這是 rtwn driver,如果網卡不是rtwn driver,需要不同設定):

if_rtwn_load="YES"
if_rtwn_usb_load="YES"

如果您希望開機別等 10 秒, 若要等 2 秒就好, 加入這行:

autoboot_delay=2

安裝dhcp server 套件:

pkg install isc-dhcp43-server


設定 /etc/pf.conf:


# $FreeBSD: head/share/examples/pf/pf.conf 293862 2016-01-14 01:32:17Z kevlo $
# $OpenBSD: pf.conf,v 1.34 2007/02/24 19:30:59 millert Exp $
#
# See pf.conf(5) and /usr/share/examples/pf for syntax and examples.
# Remember to set gateway_enable="YES" and/or ipv6_gateway_enable="YES"
# in /etc/rc.conf if packets are to be forwarded between interfaces.

ext_if="ue0"
int_if="wlan0"

#table <spamd-white> persist

set skip on lo

scrub in

nat-anchor "ftp-proxy/*"
rdr-anchor "ftp-proxy/*"
nat on $ext_if inet from !($ext_if) -> ($ext_if:0)
rdr pass on $int_if proto tcp to port ftp -> 127.0.0.1 port 8021

#anchor "ftp-proxy/*"
#block in
#pass out

pass quick on { $int_if } no state
antispoof quick for { lo $int_if }



設定 /etc/hostapd.conf:

interface=wlan0
debug=1
ssid=rpi2-ap
auth_algs=3
wpa=1
wpa_passphrase=rpi2apwifi
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
rsn_pairwise=CCMP


上述設定的 ssid 和wifi密碼(wpa_passphrase)請改成你自己喜好的設定。


設定/usr/local/etc/dhcpd.conf:


# dhcpd.conf
#
# Sample configuration file for ISC dhcpd
#

# option definitions common to all supported networks...
#option domain-name "example.org";
option domain-name-servers 8.8.8.8, 8.8.4.4;

default-lease-time 600;
max-lease-time 7200;

# Use this to enble / disable dynamic dns updates globally.
#ddns-update-style none;

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;

# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;

subnet 10.0.1.0 netmask 255.255.255.0 {
  range 10.0.1.10 10.0.1.250;
  option routers 10.0.1.1;
}



將以下幾行加入 /etc/rc.conf:


ftpproxy_enable="YES"
hostapd_enable="YES"
pf_enable="YES"
gateway_enable="YES"
dhcpd_enable="YES"
dhcpd_flags="-q"
dhcpd_conf="/usr/local/etc/dhcpd.conf"
dhcpd_ifaces="wlan0"
dhcpd_withumask="022"
wlans_rtwn0="wlan0"
create_args_wlan0="wlanmode ap channel 6 mode 11ng"
ifconfig_wlan0="inet 10.0.1.1 netmask 255.255.255.0"


重新開機就大功告成了!!


----------------------------------------------

後記:


我在設定過程一直無法成功,後來發現是透過 stfp 傳進 Raspberry Pi 的設定檔有問題,砍掉自己重新手動輸入後,就可以了。


如果您無法成功,可以用 top 看看您的 hostapd 有沒有執行成功,如果不成功,執行 hostapd -B /etc/hostapd.conf 看看設定檔有沒有問題。


如果可以成功連線進去Raspberry Pi , client 的網路卻連不出去。可以執行 service pf restart看看pf是不是有順利執行。


SD card也可能是個問題來源,可以試看看不同的 micro SD card。

2017年4月10日 星期一

FreeBSD 使用中文 LaTex

首先安裝 Texlive

sudo pkg install texlive-full

裝好以後就有完整的 LaTex 了。

目前中文的主流使用方式應該就是使用 XeCJK, XeCJK可以直接使用系統安裝的字型,只要你知道字型的名稱就好了。

以下的簡單範例檔案是使用文鼎 TTF ,test.tex:

\documentclass{article}
\usepackage{fontspec}
\usepackage{xeCJK}
\XeTeXlinebreaklocale "zh"
\XeTeXlinebreakskip = 0pt plus 1pt
%Select fonts
\setCJKmainfont{文鼎PL中楷} %xelatex 文鼎PL中楷
\setCJKmonofont{文鼎PL細上海宋}  %xelatex 文鼎PL細上海宋
%...
\begin{document}
中文字的測試
\end{document}








接著就在命令列執行:

xelatex test.tex

就會產生test.pdf 了。

2016年7月27日 星期三

FreeBSD 設定時區

通常安裝程式就會讓你設定時區,但是有時候是直接使用現成的 image 檔安裝,像是 ARM 開發板的 FreeBSD image ,就沒有機會在安裝時讓你設定時區,但是時間不對,就無法抓 port 或是 pkg 的資料下來,這時候就需要這個指令:

tzsetup