FreeBSD 小记

Essential settings is controlled by one unit – rc.conf.

X-server

Installing is simple, just install ports xorg.

cd /usr/ports/x11/xorg && make install clean

Then install DM you like(Gnome3, KDE). Compared developing Gnome3, developed KDE4 is more convenient, it’s also be my choice.

cd /usr/ports/x11/kde4/ && make install clean

Because FreeBSD takes source-based package ways, it’s would be a so long long journey especially when installing KDE4, so it’s joyful that watching anime(Fate/Zero).

When it ends, but if reboot instantly, it would be panic.

Hal and dbus service should be enabled manually when coperating using x-windows. So append following lines to rc.conf.

moused_type="auto"
hald_enable="YES"
dbus_enable="YES"

Also, you could choose GDM/KDM as WM depends DM, such xfce, awesome, etc.

Network

Note: for network adapters naming, freebsd don’t use linux ways(eth0), it’s ale0 and ath0.

Use ‘/etc/rc.conf’ to set network related configurations.

Ethernet

Ethernet is simple, dhcpcd is normal choice.

ifconfig_ale0="DHCP"

WLAN

But for WLAN, it’s a little bitter. First, you should hold wireless card information. For example, laptop Acer4732z wireless card is Atheros, so should load related kernel module when booting. So append following lines in file ‘/boot/loader.conf’.

if_ath_load="YES"

Then it depends specific wireless condition, wep/wap/tkip module should be loaded.

wlan_wep_load="YES"
wlan_ccmp_load="YES"
wlan_tkip_load="YES"

Final step is choosing wireless access point. In my dormitory, name of access point is ‘tsubameso’(つばめそ).

wlans_ath0="wlan0"
ifconfig_wlan0="ssid tsubameso DHCP"

现在颇为困扰自己的为,当对无线接入点设置密码时,freebsd 下总是无法接入, 遂也只能退而求其次用 mac 地址限定进行接入限制。现在也还未确定是自己路由 器 TL-WR841ND 的缘由还是 freebsd 自身所引发的。

现在想来有趣的是,也因为 mac 地址限定都有那么几次发生了自己被困在了房间 外面,而钥匙就在房间内,各种囧境。上一次还是用着 kindle3 那聊胜于无的黑 白屏幕才进入夺取到钥匙的。

Sound

In FreeBSD, ALSA is private for Linux, so OSS architecture is only choice.

You should append sound driver module in /boot/loader.conf.

Because sound card in Acer4732z is ‘snd_hda_intel’(alsa), so append following lines to file ‘/boot/loader.conf’.

snd_hda_load="YES"

You could use ‘cat /dev/sndstat’ to query sound drive detailed info.

If you find that your headphone don’t work, you should use ‘sysctl’ to tuneup it. Also, you could use file ‘/etc/sysctl.conf’ to set it.

hw.snd.default_unit=2

make.conf

Wget

Using powerful wget as fetch command when coperating with ports.

FETCH_CMD=wget -c -t 1
DISABLE_SIZE=yes

Sources

Control how ports to fetch packages sources.

MASTER_SITE_BACKUP?=\
                ftp://ftp3.jp.FreeBSD.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/\
                ftp://ftp2.jp.FreeBSD.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/\
                http://mirrors.163.com/FreeBSD/ports/distfiles/${DIST_SUBDIR}/\
                ftp://ftp4.tw.FreeBSD.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/\
                ftp://ftp.FreeBSDchina.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/\
                ftp://ftp.cn.FreeBSD.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/\
                ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/
MASTER_SITE_OVERRIDE?=${MASTER_SITE_BACKUP}

Csh

Csh is default shell in FreeBSD world, so just follow FreeBSD ways.

There are some slight differences between:

  • user csh(tcsh) settings is in file ‘.login’ and ‘.cshrc’, bash(sh) is in .profile and .bashrc(.shrc). When you should set environment variables, it’s should be patiented.

  • in csh, it’s syntax ‘setenv ENVIRMONT /usr/local/GNUstep/’ instead of syntax ‘export ENVIRMONT=/usr/local/GNUstep’ in bash.

Tips

  • Becuase FreeBSD use bsdlabel, it’s not like windows and linux. So extra compatible module should be loaded when booting.

    geom_mbr_load=“YES”
    

  • Hosts

    hostname=“Tiny.my.com”
    

  • NTFS Fuse-ntfs is a good choice.

    fuse_load=“YES”
    

    Then mount wanted partition in file ‘/etc/fstab’

    /dev/ad4s5 /media/music ntfs rw,mountprog=/usr/local/bin/ntfs-3g,late 0 0
    

  • cpu temperature

    When it turns to hot summer, compiling sources via ports it so dangerous, at least for my little Aspire4732z. So I have to try to downgrade it’s temperature via cpu frequency scaling adaptive and power saving.

    powered_enable=“YES”
    powered_flags=“-a adaptive -b adaptive -n adaptive”
    

    这样调节了之后,虽然在平时安静不繁重编译 ports 时确实慢了许多, 可以看到只有 150M,但是一旦进入关键编译 ports 时,cpu 还是会全速 工作,因此 cpu 还是会快速发热。

    再度搭建 freebsd/kde 桌面时,在编译 thunderbird/QT4 这些大部件时又让 Aspire4732z 数度因为 cpu 温度太过而自动当掉。而在 cpu 风扇自动 调节还是无济之后,因此采用了强制降低 cpu 的频率,足足把运行速度 降低了一半。这样,在查看编译 ports 时 cpu 的温度确实要低了好多, 虽然相比全速运行要慢了些许。

    sysctl dev.cpu.0
    sysctl dev.cpu.0.freq=1050
    sysctl -a | grep ‘temperature’
    

后记

最初写于去年暑假的初稿,竟然万分悲催的被自己莫名删掉了,只剩下了这纸还是 英文写下的初始文稿,之后也就一直被自己搁置着。也只待到真正要对硬盘做大手 术时才开始对这文章再细做一番整理,对 freebsd 总是有着莫名的好感。

Mpd について

Introduction

windows 平台的 foobar2000,linux 平台 amarok 与源自于 mac osx 的 itunes 演绎的都是同一出“大肚能容”,无论是播放,管理,刻录音乐,各色功能都是无所 不包,尤其要点名指出 itunes 的臃肿,太让自己各种不堪不忍。

mpd 相比于这些音乐播放器,太精准贯彻了 unix 'Do one thing and do it best' 哲学思想。mpd 全名为 'Music Player Damon',从其隐藏大名中也可管 中窥豹知其仅仅只是一个简单到极致的音乐播放守护进程,他只完成播放音乐这一 项纯粹的任务。

而相比于 moc/mpg123/mpg321 这一票同为 cli 音乐播放器而言,mpd 最大的特色 即为带来 c/s 架构的 Daemon,通过作为默默的守护进程运行在后台,这也提供了 非常多的想象空间,例如可以在千里之外的 iPad 上收听,在 Firefox 中无缝切 换控制,或是在 emacs 中与 emms 相互协作。

每次与 FreeBSD 相遇时,初识与结束之时总是在美妙的音乐中度过,太过完美。

Configuration

官方配置指导一读

Windows

这里要特别介绍下 mpd 在 window 下的配置。由于 mpd 默认的配置文件位于 '~/.mpdconf', 而由于 cygwin, msys/mingw, cmd 彼此之间对于路径的处理存在 着差异性,因此不建议使用相对路径。自己在使用中,必须显式地指定 mpd 启动 读取的配置文件,'mpd /.mpdconf &' 才可以顺利启动之。

而对于 .mpdconf 文件,建议在设置诸如音乐文件,播放列表时使用其路径全名, 诸如 '~/music/' 总是无法被 mpd 解析,猜测或许是其是由于使用 mingw 编译所 致。

Basic

MPD 基础配置很简单,只需要设置如下变量即可:

  • 音乐文件夹变量 music_directory,如将音乐统一存放于 '~/music/'。 在 Unix 平台上可以使用软链接,windows 上可以使用 [junction][],这样音 乐管理也可以更加弹性灵活。

  • 保存 MPD 播放状态的一系列文件,建议将这些文件统一存放于 '~/.mpd' 目录。

    • 播放列表目录 playlist_directory,相应于 '~/.mpd/playlists/'
    • 日志文件 log_file,相应于 '~/.mpd/mpd.log'
    • pid 文件 pid_file,相应于 '~/.mpd/pid'
    • 音乐数据库文件 db_file, 相应于 '~/.mpd/tag_cache'

Audio Outputs

mpd 负责音乐的播放,因此就需要驱动相应的音频设备工作,这在 mpd 中称为 audio outputs,而这是操作系统相关的,因此对于不同平台是相异的。或者也可 以选择不配置 audioo outputs,而让 mpd 去猜测可使用的音频输出,可以使用 'mpc outpus' 查看其结果。

Alsa

对于 Linux 平台当然推荐 Alsa,由于 mpd 起源于 linux,因此在不配置 audio outpus 时,mpd 在大多数情况下也可以正确找到 alsa 驱动之。

简单的 alsa audio outpus 配置如下:

audio_output {
        type            "alsa"
        name            "Debian ALSA Device"
}

Oss

由于工作平台迁移到了 freebsd,而 freebsd 没有 linux 专属的 alsa,因此需 要业已“廉颇老矣”的 oss,而这也是 freebsd 上最好的选择。小小吐槽下,由于 刚刚开始使用 freebsd,也为 mpd 无法播放音乐文件折腾了好久。对于广大 linuxer 而言,alsa/oss 任君挑选。

audio_output {
        type            "oss"
        name            "FreeBSD OSS Device"
}

Windows

audio_output {
        type            "winmm"
        name            "My Windows Device"
}

Httpd Stream

Mpd c/s 架构发挥想象力的地方正在于其可以输出音频流为 https stream,而这 可以为服务端的通用播放器所播放,诸如 windows 上无所不能的 foobar2000, linux 上的 mplayer/vlc。

Mpd 对于如何输出 httpd stream 有两种可选方案,inline/icecast。

audio_output {
        type            "httpd"
        name            "HTTP Stream"
        encoder         "lame"
        port            "8080"
        bitrate         "192"
        format          "44100:16:1"
}

Misc

当然 mpd 的功能及其可配置性不仅仅只是如此单薄,你也可以设置客户端连接的 端口/密码/数量,播放音乐时自动调节增益。

更详细的可定制选项,可以翻阅下 '~/.mpdconf' 文件或是 man 文档,或许其中也 会找到所需要的定制功能。

Clients

官方一众各平台客户端一览

Linux

Linux 平台上的 mpd 客户端很是丰富,mpd 就是孕育于此平台。gtk/QT/cli 一应 俱全,就看看官如何偏爱选择之。

对于 Gnomer 而言,应也最偏爱 sonata,简洁,完整。Gmpc 也是不错的选择,但 也许是先入为主,总还是一如既往偏爱之,sonata 抢占自己的桌面。

对于 Kder 而言,qmpdclient 算是中规中矩的客户端,自己没有感觉到太多的亮 点,也是使用频率很低。

cli 而言,强烈推荐 ncmpcpp(ncmpc),强大的可配置性,丰富的特性,任意定制 的快捷键,很适合键盘流。

Windows

由于 mpd 不是为 windows 而生,因此 windows 上的客户端相当的匮乏。或许基 于 gtk 的 gmpc 是个不错的选择,功能还算很是完备,应该可以敷衍之。

而对于 cli tools 而言,mpc/ncmpc/mpdscribble 都需要“自力更生”编译。于 cygwin 平台上顺利编译了,msys 未尝试过。编译软件还是颇费周折的,或许如 上的 gmpc 是 windows 上最好的选择了。

  • libmpdclient(ncmpc, mpdscribble 依赖于此)
  tar zxvf libmpdclient-2.4.tar.gz && cd libmpdclient-2.4
  ./configure --prefix=/usr
  make && make install
  
  • ncmpc
  tar jxvf ncmpc-0.18.tar.bz2 && cd ncmpc-0.18
  ./configure --prefix=/usr
  make && make install
  
  • mpdscribble
  tar jxvf mpdscribble-0.21.tar.bz2 && cd mpdscribble-0.21
  ./configure --prefix=/usr
  make && make install
  

iOs

iphone/ipad 下很建议使用 mPod/mPad,太方便与强大,也是很好的贯彻了 c/s 精髓,可以实现随心所欲的远程播放/控制,现在自己已经更加习惯于用 mPod 做 为自己主力了,而且也可以在 last.fm 上浏览歌曲信息,实在是个太好的玩具。

Last.fm

部分客户端自身提供了 scribble 到 last.fm 的功能,诸如 sonata/gmpc。 而对于通用 scribble 而言,推荐朴素的 mpdscribble。

Game boy

开学后,决然地把 coding 抛诸到九霄云之外了,其实是从正月之后就一直对 psp 开始觊觎了,这两个月里就实施着计划。只是在自己意料之外的是有购置了神游 idsi,只是出于退市期,还是选择了在豆瓣的二手交易小组上从豆油那入了二手。

继续阅读

Happy rabbit lunar year!



寒假还未完结着,只是这个寒假开始地如此匆忙。回家的前夕,还在同行朋友的提 醒下找寻着一刻前还清晰地感知到了其存在感的眼镜。夜晚购买到的站票却在兑现 时发现这趟的车厢原是一片的空旷地啊,疲倦慵懒的坐着,免去了去年清明记忆中 的辛苦奔波啊,还好还好。

继续阅读

此の雪

Wednesday

下雪天里很不情愿地从暖和的被窝里爬了出来,寒冬赶到教室,空荡荡的。打了两 位同学,都处于关机状态。拨打雪时,老大总算来了,却被告知早上的现代信号处 理课程已经停课了,折腾啊,如果当时自己的窝在被窝里有多好呢,也只剩遐想的 空间了。

继续阅读

不给力の周末

Mountain

又一次大家约定周末同行一起爬尖峰山。

这次爬尖峰山之旅,老大由于领快递缺席了,黄俊却意外的参加了。六人拖延着吃 过早饭后,已是九点半了。开始骑车去往尖峰山,路上自己始终处于十分“萎靡”的 状态,行进的速度十分慢,中途雪还和自己交换了坐骑,只是好不容易适应了这辆 方向难控制的自行车,又要切换坐骑了,还好雪的坐骑还算给力。

继续阅读

惊魂夜数据恢复记

Delete

此番再安装使用 ubuntu 是由于收到了从荷兰漂洋过海的 ubuntu 10.10 的光盘, 遂把硬盘上的 debian 替换成了ubuntu。ubuntu 还是很方便使用,晚上入睡前还 计划着花费一刻的时间配置下 mpd,还是更喜欢于 mpd + mpc + sonata 的组合。 原计划把 NTFS 分区的卷标为 music 的分区直接 link 到 home 目录下的 music, 只是或许由于太久未使用 linux,没有分辨好 Music 与 music,看着神 似的 music 觉得很不清爽,后又欲删除 music 目录软链接,遂毫不犹豫的在终端 中下敲下了 "rm -rf"。之后才突然意识到自己犯了这么一个大错误,奈何总是后 知后觉。马上启动到windows 下,music 分区下也只能看到一片空白了,就这样把 收藏了近一年的音乐和照片都删除了,真的很心痛。

继续阅读

偏好の windows 软件推荐

系统应用

  • Windows7 网银,office(word),各种 windows 专用的软件,还是趁着 windows7 发布不久,于大四的下学期购置了一套 windows7 home basic。windows7 相比 xp 确实是要有优秀的多,界面的美观实 用性,字体也丰富了很多,¥399 还是物有所值的。对 windows7 home basic 版本唯一的遗憾是不能组建家庭网络,为此折腾 windows7 蓝屏了好几次,但这也是 windows7 家庭高级班的卖 点,还是不能太“贪心”。

继续阅读

怀念的大学生活

Grade I

从高中的生活进入大学生活后,还依稀记得刚刚踏进 317 寝室恐惧、陌生、期待那 种复杂的情感。

在大学的最初生活里,自己很不习惯这样的生活,可能是刚刚要从农村生活适应城 市生活的节奏。

大一的学习课程基本都是基础课,课程比较多但是还多比较简单。

computer

在大一上学期的电脑操作课上,自己也是真正体会到了自己薄弱的计算机基础。那 时,自己还只会简单的复制与粘贴,下载 mp3 音乐还要请教同学。最初的自己很 幼稚,最开始意识到学习计算机也是由于所谓的“黑客”,自己也是真正的下定决心 要学习计算机技术。大一的生活中,已经记不清自己买了多少计算机杂志了,还买 了几本厚厚的合订本。不断的磨练着自己,慢慢的也可以看懂那些文章。

继续阅读

火锅,电玩与慢跑

煎熬的等待

又没有忍住又淘了两本书籍,《新日语基础教程(学习辅导用书)》,还是想在学生 阶段可以好好的学习日语。不得不说学校的快递真的是各种的不给力啊,快递都集 中在北门商业街,只有卓越网可以送到居住的启明公寓附近,只是买书前又忘了到 卓越网上逛逛,又是习惯驱使着自己到淘宝上上购书。

继续阅读