daemonfreaks.com

FreeBSDでeGPUを使う

posted by jun-g at Sun, 28 May 2023 10:30 JST

先日購入したIntel NUC13 Pro のセットアップ続き、その2。

NUC13はThunderbolt4をサポートしていて、かつFreeBSDもThunderboltをサポートしていて、そして手元に都合良くNVIDIA RTX3060の入ったeGPUがあります。ということで内蔵GPUがサポートされるまでこれを使います。

まずは準備。ドライバーをインストールして起動時にカーネルモジュールを読み込む用にセット。

$ su -
Password:
# pkg install nvidia-driver
...
# sysrc kld_list=nvidia-modeset

再起動した後のdmesg。

# dmesg|grep nvidia
nvidia1: <NVIDIA GeForce RTX 3060> on vgapci1
vgapci1: child nvidia1 requested pci_enable_io
vgapci1: child nvidia1 requested pci_enable_io
nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms  515.86.01  Wed Oct 26 08:52:34 UTC 2022

eGPUは無事に認識されました。が、コンソールは引き続きNUC13本体から接続したモニター上に表示されてます。

次にXの設定。先日作ったscfbを使う設定ファイルを退避して起動してみます。

# cd /usr/local/etc/X11/xorg.conf.d
# mv driver-scfb.conf driver-scfb.conf.bak
# startx

が、起動しません…。 Handbookのビデオカードの設定ページ を読むと:

1つ以上のビデオカードが存在する場合には、 BusID 行のコメントを外し、 希望するカードを選択するように設定できます。 ビデオカードバス ID は、 pciconf -lv | grep -B3 display で表示できます。

と書いてありましたので、その通りにします。

# pciconf -lv | grep -B3 display
vgapci0@pci0:0:2:0: class=0x030000 rev=0x04 hdr=0x00 vendor=0x8086 device=0xa7a0 subvendor=0x8086 subdevice=0x3037
    vendor     = 'Intel Corporation'
    device     = 'Raptor Lake-P [Iris Xe Graphics]'
    class      = display
--
vgapci1@pci0:4:0:0: class=0x030000 rev=0xa1 hdr=0x00 vendor=0x10de device=0x2504 subvendor=0x10de subdevice=0x2504
    vendor     = 'NVIDIA Corporation'
    device     = 'GA106 [GeForce RTX 3060 Lite Hash Rate]'
    class      = display

この情報を使ってX用の以下のファイルを作成。

# cat /usr/local/etc/X11/xorg.conf.d/driver-nvidia.conf
Section "Device"
    Identifier    "Device0"
    Driver        "nvidia"
    VendorName    "NVIDIA COrporation"
    BoardName     "NVIDIA GeForce RTX 3060"
    BusId         "PCI:4:0:0"
EndSection

でstartxすると、無事にXが起動し、eGPUに接続したモニター上に表示されました!

続く…。

Raptor LakeのIris Xeグラフィックスは13Rのdrm-kmodではまだサポートされてない

posted by jun-g at Sat, 27 May 2023 17:30 JST

先日購入したIntel NUC13 Pro のセットアップ続き。

書きたかったことはタイトルの通りで、1世代前のAlder LakeのGPUも まだサポートされてなさそう

14-CURRENTだと Alder Lakeはサポートされていそう

とりあえずDRMは一旦諦めて、以下のファイルを作成してXは起動できるようになりました。

$ cat /usr/loca/etc/X11/xorg/conf.d/driver-scfb.conf
Section "Device"
    Identifier    "Card0"
    Driver        "scfb"
EndSection

続く…。

Intel NUC13 Pro購入

posted by jun-g at Mon, 22 May 2023 09:50 JST

一昨年にCPUを入れ替えつつ 2014年に作った自作PCをずっと使っていましたが、ATXケースが大きく場所を取るのでもう少し省スペースなPCにしたいなと思っていたところ、 IntelのNUC 13 Pro が売っていたので購入しました。

購入したのはCore i7 CPUが載ったキットなので、あわせてメモリやストレージも購入しました。スペックはこんな感じです。

キット Intel NUC13ANHi7
CPU Intel Core i7 1360P
メモリ Kingston FURY Impact DDR4-3200 32GBx2
NVMe Western Digital WD_BLACK SN850X 1TB
SSD Samsung SSD 870 QVO 4TBi

13世代CoreなのでメモリはDDR5が良かったですが、そうすると今のところNUC 13 Extremeしか選択肢がなく、Extremeはちょっと大きすぎるのでそこは妥協しました。

実際手元に届いて、想像したよりももっと小さくてビックリしました。旧PCのケースはWINDy製でずっと使うつもりでしたが、こんなに小さくて済むならタワー型PCはもうイラネという感じ…。


さて、キットなのでOSも自分で選んでインストールする必要があります。

最近はもっぱらWindows11(+WSL)のラップトップで生活しているし、仕事ではDockerやK8S使う機会も多いので、デスクトップが使えつつコンテナも動くOSが良いですね。

…ということでFreeBSD 13.2をインストールしました。要件は満たしているはず。

dmesgはこんな感じです。

Copyright (c) 1992-2021 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 13.2-RELEASE releng/13.2-n254617-525ecfdad597 GENERIC amd64
FreeBSD clang version 14.0.5 (https://github.com/llvm/llvm-project.git llvmorg-14.0.5-0-gc12386ae247c)
VT(efifb): resolution 3840x2160
CPU: 13th Gen Intel(R) Core(TM) i7-1360P (2611.20-MHz K8-class CPU)
  Origin="GenuineIntel"  Id=0xb06a2  Family=0x6  Model=0xba  Stepping=2
  Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
  Features2=0x7ffafbff<SSE3,PCLMULQDQ,DTES64,MON,DS_CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,TSCDLT,AESNI,XSAVE,OSXSAVE,AVX,F16C,RDRAND>
  AMD Features=0x2c100800<SYSCALL,NX,Page1GB,RDTSCP,LM>
  AMD Features2=0x121<LAHF,ABM,Prefetch>
  Structured Extended Features=0x239c27eb<FSGSBASE,TSCADJ,BMI1,AVX2,FDPEXC,SMEP,BMI2,ERMS,INVPCID,NFPUSG,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,PROCTRACE,SHA>
  Structured Extended Features2=0x984007bc<UMIP,PKU,OSPKE,WAITPKG,GFNI,VAES,VPCLMULQDQ,RDPID,MOVDIRI,MOVDIR64B>
  Structured Extended Features3=0xfc18c410<FSRM,MD_CLEAR,IBT,IBPB,STIBP,L1DFL,ARCH_CAP,CORE_CAP,SSBD>
  XSAVE Features=0xf<XSAVEOPT,XSAVEC,XINUSE,XSAVES>
  IA32_ARCH_CAPS=0x88fd6b<RDCL_NO,IBRS_ALL,SKIP_L1DFL_VME,MDS_NO,TAA_NO>
  VT-x: PAT,HLT,MTF,PAUSE,EPT,UG,VPID,VID,PostIntr
  TSC: P-state invariant, performance statistics
real memory  = 68717379584 (65534 MB)
avail memory = 66327597056 (63254 MB)
Event timer "LAPIC" quality 600
ACPI APIC Table: <INTEL NUCxi7A5>
FreeBSD/SMP: Multiprocessor System Detected: 16 CPUs
FreeBSD/SMP: Non-uniform topology
random: registering fast source Intel Secure Key RNG
random: fast provider: "Intel Secure Key RNG"
random: unblocking device.
ioapic0 <Version 2.0> irqs 0-119
Launching APs: 1 9 2 13 7 5 3 10 8 6 15 12 14 11 4
random: entropy device external interface
kbd0 at kbdmux0
efirtc0: <EFI Realtime Clock>
efirtc0: registered as a time-of-day clock, resolution 1.000000s
smbios0: <System Management BIOS> at iomem 0x59454000-0x5945401e
smbios0: Version: 3.5, BCD Revision: 3.5
aesni0: <AES-CBC,AES-CCM,AES-GCM,AES-ICM,AES-XTS,SHA1,SHA256>
acpi0: <INTEL>
acpi0: Power Button (fixed)
hpet0: <High Precision Event Timer> iomem 0xfed00000-0xfed003ff on acpi0
Timecounter "HPET" frequency 19200000 Hz quality 950
Event timer "HPET" frequency 19200000 Hz quality 350
Event timer "HPET1" frequency 19200000 Hz quality 340
Event timer "HPET2" frequency 19200000 Hz quality 340
Event timer "HPET3" frequency 19200000 Hz quality 340
Event timer "HPET4" frequency 19200000 Hz quality 340
Event timer "HPET5" frequency 19200000 Hz quality 340
Event timer "HPET6" frequency 19200000 Hz quality 340
Event timer "HPET7" frequency 19200000 Hz quality 340
attimer0: <AT timer> port 0x40-0x43,0x50-0x53 irq 0 on acpi0
Timecounter "i8254" frequency 1193182 Hz quality 0
Event timer "i8254" frequency 1193182 Hz quality 100
Timecounter "ACPI-fast" frequency 3579545 Hz quality 900
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x1808-0x180b on acpi0
acpi_ec0: <Embedded Controller: GPE 0x6e> port 0x62,0x66,0x68,0x6c,0x6a,0x6e on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
vgapci0: <VGA-compatible display> port 0x3000-0x303f mem 0x6123000000-0x6123ffffff,0x4000000000-0x400fffffff at device 2.0 on pci0
vgapci0: Boot video device
pcib1: <ACPI PCI-PCI bridge> at device 6.0 on pci0
pci1: <ACPI PCI bus> on pcib1
nvme0: <Generic NVMe Device> mem 0x84400000-0x84403fff at device 0.0 on pci1
pcib2: <ACPI PCI-PCI bridge> at device 7.0 on pci0
pcib3: <ACPI PCI-PCI bridge> at device 7.2 on pci0
xhci0: <XHCI (generic) USB 3.0 controller> mem 0x6124190000-0x612419ffff at device 13.0 on pci0
xhci0: 32 bytes context size, 64-bit DMA
usbus0 on xhci0
usbus0: 5.0Gbps Super Speed USB v3.0
pci0: <serial bus, USB> at device 13.2 (no driver attached) pci0: <serial bus, USB> at device 13.3 (no driver attached)
xhci1: <Intel Alder Lake USB 3.2 controller> mem 0x6124180000-0x612418ffff at device 20.0 on pci0
xhci1: 32 bytes context size, 64-bit DMA
usbus1 on xhci1
usbus1: 5.0Gbps Super Speed USB v3.0
pci0: <memory, RAM> at device 20.2 (no driver attached)
pci0: <network> at device 20.3 (no driver attached)
pci0: <serial bus> at device 21.0 (no driver attached)
pci0: <serial bus> at device 21.1 (no driver attached)
pci0: <simple comms> at device 22.0 (no driver attached)
ahci0: <AHCI SATA controller> port 0x3090-0x3097,0x3080-0x3083,0x3060-0x307f mem 0x84500000-0x84501fff,0x84503000-0x845030ff,0x84502000-0x845027ff at device 23.0 on pci0
ahci0: AHCI v1.31 with 1 6Gbps ports, Port Multiplier not supported
ahcich1: <AHCI channel> at channel 1 on ahci0
pcib4: <ACPI PCI-PCI bridge> at device 29.0 on pci0
pci2: <ACPI PCI bus> on pcib4
igc0: <Intel(R) Ethernet Controller I226-V> mem 0x84200000-0x842fffff,0x84300000-0x84303fff at device 0. 0 on pci2
igc0: Using 1024 TX descriptors and 1024 RX descriptors
igc0: Using 4 RX queues 4 TX queues
igc0: Using MSI-X interrupts with 5 vectors
igc0: Ethernet address: 48:21:0b:56:9b:93
igc0: netmap queues/slots: TX 4/1024, RX 4/1024
isab0: <PCI-ISA bridge> at device 31.0 on pci0
isa0: <ISA bus> on isab0
hdac0: <Intel Raptor Lake-P HDA Controller> mem 0x61241b0000-0x61241b3fff,0x6124000000-0x61240fffff at device 31.3 on pci0
pci0: <serial bus> at device 31.5 (no driver attached)
acpi_button0: <Sleep Button> on acpi0
cpu0: <ACPI CPU> on acpi0
acpi_button1: <Power Button> on acpi0
acpi_tz0: <Thermal Zone> on acpi0
acpi_syscontainer0: <System Container> on acpi0
acpi_syscontainer1: <System Container> on acpi0
atrtc0: <AT realtime clock> at port 0x70 irq 8 on isa0
atrtc0: Warning: Couldn't map I/O.
atrtc0: registered as a time-of-day clock, resolution 1.000000s
Event timer "RTC" frequency 32768 Hz quality 0
atrtc0: non-PNP ISA device will be removed from GENERIC in FreeBSD 14.
hwpstate_intel0: <Intel Speed Shift> on cpu0
hwpstate_intel1: <Intel Speed Shift> on cpu1
hwpstate_intel2: <Intel Speed Shift> on cpu2
hwpstate_intel3: <Intel Speed Shift> on cpu3
hwpstate_intel4: <Intel Speed Shift> on cpu4
hwpstate_intel5: <Intel Speed Shift> on cpu5
hwpstate_intel6: <Intel Speed Shift> on cpu6
hwpstate_intel7: <Intel Speed Shift> on cpu7
hwpstate_intel8: <Intel Speed Shift> on cpu8
hwpstate_intel9: <Intel Speed Shift> on cpu9
hwpstate_intel10: <Intel Speed Shift> on cpu10
hwpstate_intel11: <Intel Speed Shift> on cpu11
hwpstate_intel12: <Intel Speed Shift> on cpu12
hwpstate_intel13: <Intel Speed Shift> on cpu13
hwpstate_intel14: <Intel Speed Shift> on cpu14
hwpstate_intel15: <Intel Speed Shift> on cpu15
Timecounter "TSC-low" frequency 1305602658 Hz quality 1000
Timecounters tick every 1.000 msec
ZFS filesystem version: 5
ZFS storage pool version: features support (5000)
ugen1.1: <Intel XHCI root HUB> at usbus1
uhub0 on usbus1
uhub0: <Intel XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus1
ugen0.1: <Intel XHCI root HUB> at usbus0
uhub1 on usbus0
uhub1: <Intel XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus0
nvd0: <WD_BLACK SN850X 1000GB> NVMe namespace
nvd0: 953869MB (1953525168 512 byte sectors)
hdacc0: <Realtek ALC256 HDA CODEC> at cad 0 on hdac0
hdaa0: <Realtek ALC256 Audio Function Group> at nid 1 on hdacc0
pcm0: <Realtek ALC256 (Right Analog)> at nid 33 and 25 on hdaa0
Trying to mount root from zfs:root [rw]...
ada0 at ahcich1 bus 0 scbus0 target 0 lun 0
ada0: <Samsung SSD 870 QVO 4TB SVQ02B6Q> ACS-4 ATA SATA 3.x device
ada0: Serial Number S5STNF0W200963X
ada0: 600.000MB/s transfers (SATA 3.x, UDMA6, PIO 512bytes)
ada0: Command Queueing enabled
ada0: 3815447MB (7814037168 512 byte sectors)
uhub1: 4 ports with 4 removable, self powered
uhub0: 16 ports with 16 removable, self powered
ugen1.2: <vendor 0x05e3 USB2.0 Hub> at usbus1
uhub2 on uhub0
uhub2: <vendor 0x05e3 USB2.0 Hub, class 9/0, rev 2.00/32.98, addr 1> on usbus1
Root mount waiting for: usbus1
uhub2: 4 ports with 4 removable, self powered
Root mount waiting for: usbus1
ugen1.3: <Logitech USB Receiver> at usbus1
ukbd0 on uhub2
ukbd0: <Logitech USB Receiver, class 0/0, rev 2.00/24.10, addr 2> on usbus1
kbd1 at ukbd0
ugen1.4: <vendor 0x05e3 USB2.0 Hub> at usbus1
uhub3 on uhub2
uhub3: <vendor 0x05e3 USB2.0 Hub, class 9/0, rev 2.00/32.98, addr 3> on usbus1
Root mount waiting for: usbus1
uhub3: 4 ports with 4 removable, self powered
ugen1.5: <PFU Limited HHKB-Hybrid> at usbus1
ukbd1 on uhub3
ukbd1: <keyboard> on usbus1
kbd2 at ukbd1
ukbd2 on uhub3
ukbd2: <Multi-Media> on usbus1
kbd3 at ukbd2
ugen1.6: <vendor 0x8087 product 0x0033> at usbus1
Intel(R) Wireless WiFi based driver for FreeBSD
acpi_wmi0: <ACPI-WMI mapping> on acpi0
acpi_wmi0: Embedded MOF found
ACPI: \134AMW0.WQBA: 1 arguments were passed to a non-method ACPI object (Buffer) (20201113/nsarguments-361)
acpi_wmi1: <ACPI-WMI mapping> on acpi0
acpi_wmi1: Embedded MOF found
ACPI: \134_SB.WFDE.WQCC: 1 arguments were passed to a non-method ACPI object (Buffer) (20201113/nsarguments-361)
acpi_wmi2: <ACPI-WMI mapping> on acpi0
acpi_wmi2: Embedded MOF found
ACPI: \134_SB.WFTE.WQCC: 1 arguments were passed to a non-method ACPI object (Buffer) (20201113/nsarguments-361)
iwlwifi0: <iwlwifi> mem 0x61241b4000-0x61241b7fff at device 20.3 on pci0
iwlwifi0: successfully loaded firmware image 'iwlwifi-so-a0-gf-a0-73.ucode'
iwlwifi0: api flags index 2 larger than supported by driver
iwlwifi0: TLV_FW_FSEQ_VERSION: FSEQ Version: 0.0.2.36
iwlwifi0: loaded firmware version 73.35c0a2c6.0 so-a0-gf-a0-73.ucode op_mode iwlmvm
iwlwifi0: Detected Intel(R) Wi-Fi 6E AX211 160MHz, REV=0x370
iwlwifi0: successfully loaded firmware image 'iwlwifi-so-a0-gf-a0.pnvm'
iwlwifi0: loaded PNVM version 881c99e1
iwlwifi0: Detected RF GF, rfid=0x2010d000
iwlwifi0: base HW address: d4:d8:53:84:1c:7d
ig4iic0: <Intel Alder Lake-P I2C Controller-0> at device 21.0 on pci0
ig4iic0: Using MSI
iicbus0: <Philips I2C bus (ACPI-hinted)> on ig4iic0
ig4iic1: <Intel Alder Lake-P I2C Controller-1> at device 21.1 on pci0
ig4iic1: Using MSI
iicbus1: <Philips I2C bus (ACPI-hinted)> on ig4iic1
iicbus1: <unknown card> at addr 0x36
iicbus1: <unknown card> at addr 0x63
ichsmb0: <Intel Alder Lake SMBus controller> port 0xefa0-0xefbf mem 0x61241bc000-0x61241bc0ff at device31.4 on pci0
smbus0: <System Management Bus> on ichsmb0
wlan0: Ethernet address: d4:d8:53:84:1c:7d
lo0: link state changed to UP
wlan0: ieee80211_new_state_locked: pending ASSOC -> RUN transition lost
wlan0: link state changed to UP
iwlwifi0: No beacon heard and the session protection is over already...
wlan0: link state changed to DOWN
ums0 on uhub2
ums0: <Logitech USB Receiver, class 0/0, rev 2.00/24.10, addr 2> on usbus1
ums0: 16 buttons and [XYZT] coordinates ID=2
uhid0 on uhub2
uhid0: <Logitech USB Receiver, class 0/0, rev 2.00/24.10, addr 2> on usbus1
uhid1 on uhub3
uhid1: <PFU Limited HHKB-Hybrid, class 0/0, rev 1.10/0.01, addr 4> on usbus1

とりあえずHWは一通り認識してくれました。最新デバイスも普通に認識してくれるのでメンテナの皆様には感謝ですね。

Xの設定やデータ移行はこれからなのでボチボチやります。

過去エントリー

FreeBSD 10.1-RELEASEへのバージョンアップ、及びGNOME3の導入で遭遇した問題まとめ

posted by jun-g at Tue, 25 Nov 2014 11:09 JST

10.1RへのバージョンアップとGNOME3の導入を立て続けに行ったところ、色々問題に遭遇したのでメモ。

Firefoxでウィンドウ内が更新されなくなる不具合

gtk20のportに不具合があったようでウィンドウ内が更新されない(描画されない)不具合。

これはすぐに バグ報告 が出て即座に修正されたのであまり影響がなかったです。

freebsd-updateで10.1Rに更新したらlib32が消失する不具合

これ、wineが動かなくて原因もわからずめちゃハマりました。wineを実行すると:

ELF interpreter /libexec/ld-elf.so.1 not found

とメッセージが表示されるけど、/libexec/ld-elf.so.1は存在する。

これに気付いたのは、virtualboxをportmasterで更新した時に「/lib32が無いよ」というエラーが出たから。でバグ報告を探すと ドンピシャなバグ報告 が見つかりました。

まだ修正されてないようなので、FTPサイトからlib32のアーカイブだけ落としてきて自分でファイルコピーしたらvirtualboxの更新も出来ました。で、アーカイブを展開した時にlibexec/ld-elf32.so.1というファイルも含まれていたので、これでwineも治るんじゃ?と思ったら予想どおり治りました。

uaudioなデバイスが使えない

これ、まだ解決してません。バグ報告は ある ので何か情報が出るのを気長に待ちます。

その他の問題

  • GNOME3環境下だけrhythmboxが起動しない
  • deskutils/gnome-shell-extra-extensionでインストールしたgnome-shellの拡張が何一つ使えない
  • nautilusでファイルを選択してDELETEキーを押してもファイルが削除できない

などなど。ボチボチ調べて直していきます。

追記(2014/11/25 21:46)

rhythmboxが起動しない件、mtp絡みのエラーメッセージが出てたのでlibmtpを外してビルドし直したら起動するようになりました!

VFAT上にある日本語ファイル名の文字化け解消

posted by jun-g at Sun, 05 Jan 2014 22:15 JST

昨日からの続き。

前置き?

これまでデスクトップ環境は10年ぐらいずっと GNOME2 を使用していました。先日ports treeに MATE が登録されたので、調度良い機会だと思って移行することにしました。

しかし、普段良く使っているアプリをインストールするとGNOME関連のライブラリが大量に入ってしまうので、MATEを止めて結局GNOME2を使い続けることにしました。GNOME3が登録されたらまた移行を考えます。

本題

で、デスクトップ環境のインストールをひと通り終えて、USBメモリを接続した際に日本語ファイル名が文字化けして読めないという現象に遭遇。

うーん、この手の問題は久しぶりすぎて以前どうやって対処したのかはっきり覚えてません。

ググって見つけた方法を試してみた結果、gconf-editorを開いて下の設定を追加するだけで対応できました。

/images/blog/screenshot20140105.png

以前はカーネルにkiconvパッチ当てたりhaldの設定ファイルを追加したり色々やったような気がするんですが、随分簡単になりましたね。

ZFSに置いているデータを移行

posted by jun-g at Sat, 04 Jan 2014 21:28 JST

新しく作ったPCに旧PCからデータを移行しました。

前準備

旧PCはHDD2台構成で、1つはUFS、もう1つはZFSにしてZFS側にhomeを置いていました。

blackmagic# df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/ad6s1a      2G    772M    1.0G    42%    /
devfs          1.0k    1.0k      0B   100%    /dev
/dev/ad6s1e    3.9G    903M    2.7G    25%    /tmp
/dev/ad6s1f    126G     18G     98G    16%    /usr
/dev/ad6s1d    3.9G    676M    2.9G    19%    /var
procfs         4.0k    4.0k      0B   100%    /proc
linprocfs      4.0k    4.0k      0B   100%    /usr/compat/linux/proc
pub            663G     33k    663G     0%    /pub
pub/home       913G    250G    663G    27%    /pub/home

今回データ移行したかったのは/homeだけなので、旧PCをバラす前に下準備。

blackmagic# umount /pub/home
blackmagic# umount /pub
blackmagic# zpool list
NAME   SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
pub    928G   251G   677G    26%  1.00x  ONLINE  -
blackmagic# zpool export pub
blackmagic# zpool list
no pools available

homeを置いているzpool「pub」をexportして他のPCでimportできるようにして準備完了。

本作業

新しいPCはSSDとHDDの2台構成で両方ZFSにしました。OSのインストールはSSD側に行い、HDD側は後でzpool createして/homeにマウントしました。

旧PCで使っていたHDDを接続して、

blackmagic# zpool import pub

を実行すると/pubにマウントされるので、後は

$ cp -Rpv /pub/home/jun-g/* ~/.

して終了。

あまりよく知らないままZFS使っていましたが、簡単で良かったです。

/homeの容量が足りなくなったらHDDを追加して/homeを置いてるzpoolにaddするだけで容量を追加できるのでZFS素晴らしいですね。

自作PCを新調

posted by jun-g at Fri, 03 Jan 2014 22:31 JST

長い間お古のパーツ(Athlon64x2)で作ったPCを使っていましたが、秋ごろから頻繁に原因不明のカーネルパニックを起こすようになったのでそろそろ限界かなと思い、久々に自作PCの中身を新調しました。

新品のパーツで自作するのはPentium3(Socket370)の頃以来です。

スペックはこんな感じ。

CPU Intel Core i7 4771
マザーボード Gigabyte GA-Z87X-D3H
メモリ Corsair DDR3-PC3-17000 8GBx4
ビデオカード 玄人志向 GF-GTX660-E2GHD/DF/OC/A
SSD CFD販売 CSSD-S6T128NHG5Q
HDD Seagate ST3000DM001
BD BDR-209BK/WS
電源 KRPW-PT850W/92+

ケースは今は亡きWINDy製のでかいやつ。かれこれ10年以上使い続けてますが、気に入っているので恐らくATX規格が無くなるまで使い続けると思います。

OSは当然FreeBSD 10.0-RC2をインストールしました。インストール後すぐにfreebsd-updateして(初めて使った!)RC4に更新。dmesgはこんな感じ。

Copyright (c) 1992-2014 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 10.0-RC4 #0 r260130: Tue Dec 31 17:10:01 UTC 2013
    root@snap.freebsd.org:/usr/obj/usr/src/sys/GENERIC amd64
FreeBSD clang version 3.3 (tags/RELEASE_33/final 183502) 20130610
CPU: Intel(R) Core(TM) i7-4771 CPU @ 3.50GHz (3491.99-MHz K8-class CPU)
  Origin = "GenuineIntel"  Id = 0x306c3  Family = 0x6  Model = 0x3c  Stepping = 3
  Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
  Features2=0x7ffafbff<SSE3,PCLMULQDQ,DTES64,MON,DS_CPL,VMX,SMX,EST,TM2,SSSE3,<b11>,FMA,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,TSCDLT,AESNI,XSAVE,OSXSAVE,AVX,F16C,RDRAND>
  AMD Features=0x2c100800<SYSCALL,NX,Page1GB,RDTSCP,LM>
  AMD Features2=0x21<LAHF,ABM>
  Standard Extended Features=0x2fbb<GSFSBASE,TSCADJ,BMI1,HLE,AVX2,SMEP,BMI2,ENHMOVSB,INVPCID,RTM>
  TSC: P-state invariant, performance statistics
real memory  = 34359738368 (32768 MB)
avail memory = 33239568384 (31699 MB)
Event timer "LAPIC" quality 600
ACPI APIC Table: <ALASKA A M I>
FreeBSD/SMP: Multiprocessor System Detected: 8 CPUs
FreeBSD/SMP: 1 package(s) x 4 core(s) x 2 SMT threads
 cpu0 (BSP): APIC ID:  0
 cpu1 (AP): APIC ID:  1
 cpu2 (AP): APIC ID:  2
 cpu3 (AP): APIC ID:  3
 cpu4 (AP): APIC ID:  4
 cpu5 (AP): APIC ID:  5
 cpu6 (AP): APIC ID:  6
 cpu7 (AP): APIC ID:  7
ACPI Error: Null physical address for ACPI table [(null)] (20130823/tbutils-239)
ioapic0 <Version 2.0> irqs 0-23 on motherboard
random: <Software, Yarrow> initialized
kbd1 at kbdmux0
acpi0: <ALASKA A M I> on motherboard
acpi0: Power Button (fixed)
acpi0: reservation of 67, 1 (4) failed
cpu0: <ACPI CPU> on acpi0
cpu1: <ACPI CPU> on acpi0
cpu2: <ACPI CPU> on acpi0
cpu3: <ACPI CPU> on acpi0
cpu4: <ACPI CPU> on acpi0
cpu5: <ACPI CPU> on acpi0
cpu6: <ACPI CPU> on acpi0
cpu7: <ACPI CPU> on acpi0
hpet0: <High Precision Event Timer> iomem 0xfed00000-0xfed003ff on acpi0
Timecounter "HPET" frequency 14318180 Hz quality 950
Event timer "HPET" frequency 14318180 Hz quality 550
atrtc0: <AT realtime clock> port 0x70-0x77 irq 8 on acpi0
atrtc0: Warning: Couldn't map I/O.
Event timer "RTC" frequency 32768 Hz quality 0
attimer0: <AT timer> port 0x40-0x43,0x50-0x53 irq 0 on acpi0
Timecounter "i8254" frequency 1193182 Hz quality 0
Event timer "i8254" frequency 1193182 Hz quality 100
Timecounter "ACPI-fast" frequency 3579545 Hz quality 900
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x1808-0x180b on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
pcib1: <ACPI PCI-PCI bridge> irq 16 at device 1.0 on pci0
pci1: <ACPI PCI bus> on pcib1
vgapci0: <VGA-compatible display> port 0xe000-0xe07f mem 0xf2000000-0xf2ffffff,0xe8000000-0xefffffff,0xf0000000-0xf1ffffff irq 16 at device 0.0 on pci1
nvidia0: <GeForce GTX 660> on vgapci0
vgapci0: child nvidia0 requested pci_enable_io
vgapci0: child nvidia0 requested pci_enable_io
vgapci0: Boot video device
hdac0: <NVIDIA (0x0e0b) HDA Controller> mem 0xf3080000-0xf3083fff irq 17 at device 0.1 on pci1
xhci0: <Intel Lynx Point USB 3.0 controller> mem 0xf3120000-0xf312ffff irq 16 at device 20.0 on pci0
xhci0: 32 byte context size.
xhci0: Port routing mask set to 0xffffffff
usbus0 on xhci0
pci0: <simple comms> at device 22.0 (no driver attached)
em0: <Intel(R) PRO/1000 Network Connection 7.3.8> port 0xf040-0xf05f mem 0xf3100000-0xf311ffff,0xf3139000-0xf3139fff irq 20 at device 25.0 on pci0
em0: Using an MSI interrupt
em0: Ethernet address: 94:de:80:6b:03:6d
ehci0: <EHCI (generic) USB 2.0 controller> mem 0xf3138000-0xf31383ff irq 16 at device 26.0 on pci0
usbus1: EHCI version 1.0
usbus1 on ehci0
hdac1: <Intel Lynx Point HDA Controller> mem 0xf3130000-0xf3133fff irq 22 at device 27.0 on pci0
pcib2: <ACPI PCI-PCI bridge> irq 16 at device 28.0 on pci0
pci2: <ACPI PCI bus> on pcib2
pcib3: <ACPI PCI-PCI bridge> irq 19 at device 28.3 on pci0
pci3: <ACPI PCI bus> on pcib3
pcib4: <ACPI PCI-PCI bridge> irq 19 at device 0.0 on pci3
pci4: <ACPI PCI bus> on pcib4
ehci1: <EHCI (generic) USB 2.0 controller> mem 0xf3137000-0xf31373ff irq 23 at device 29.0 on pci0
usbus2: EHCI version 1.0
usbus2 on ehci1
isab0: <PCI-ISA bridge> at device 31.0 on pci0
isa0: <ISA bus> on isab0
ahci0: <Intel Lynx Point AHCI SATA controller> port 0xf090-0xf097,0xf080-0xf083,0xf070-0xf077,0xf060-0xf063,0xf020-0xf03f mem 0xf3136000-0xf31367ff irq 19 at device 31.2 on pci0
ahci0: AHCI v1.30 with 6 6Gbps ports, Port Multiplier not supported
ahcich1: <AHCI channel> at channel 1 on ahci0
ahcich3: <AHCI channel> at channel 3 on ahci0
ahcich5: <AHCI channel> at channel 5 on ahci0
ahciem0: <AHCI enclosure management bridge> on ahci0
pci0: <serial bus, SMBus> at device 31.3 (no driver attached)
acpi_button0: <Power Button> on acpi0
acpi_tz0: <Thermal Zone> on acpi0
acpi_tz1: <Thermal Zone> on acpi0
atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
ppc0: cannot reserve I/O port range
est0: <Enhanced SpeedStep Frequency Control> on cpu0
p4tcc0: <CPU Frequency Thermal Control> on cpu0
est1: <Enhanced SpeedStep Frequency Control> on cpu1
p4tcc1: <CPU Frequency Thermal Control> on cpu1
est2: <Enhanced SpeedStep Frequency Control> on cpu2
p4tcc2: <CPU Frequency Thermal Control> on cpu2
est3: <Enhanced SpeedStep Frequency Control> on cpu3
p4tcc3: <CPU Frequency Thermal Control> on cpu3
est4: <Enhanced SpeedStep Frequency Control> on cpu4
p4tcc4: <CPU Frequency Thermal Control> on cpu4
est5: <Enhanced SpeedStep Frequency Control> on cpu5
p4tcc5: <CPU Frequency Thermal Control> on cpu5
est6: <Enhanced SpeedStep Frequency Control> on cpu6
p4tcc6: <CPU Frequency Thermal Control> on cpu6
est7: <Enhanced SpeedStep Frequency Control> on cpu7
p4tcc7: <CPU Frequency Thermal Control> on cpu7
ZFS filesystem version: 5
ZFS storage pool version: features support (5000)
Timecounters tick every 1.000 msec
hdacc0: <NVIDIA (0x0041) HDA CODEC> at cad 0 on hdac0
hdaa0: <NVIDIA (0x0041) Audio Function Group> at nid 1 on hdacc0
pcm0: <NVIDIA (0x0041) (HDMI/DP 8ch)> at nid 4 on hdaa0
pcm1: <NVIDIA (0x0041) (HDMI/DP 8ch)> at nid 5 on hdaa0
pcm2: <NVIDIA (0x0041) (HDMI/DP 8ch)> at nid 6 on hdaa0
pcm3: <NVIDIA (0x0041) (HDMI/DP 8ch)> at nid 7 on hdaa0
hdacc1: <Realtek ALC892 HDA CODEC> at cad 2 on hdac1
hdaa1: <Realtek ALC892 Audio Function Group> at nid 1 on hdacc1
pcm4: <Realtek ALC892 (Rear Analog 5.1/2.0)> at nid 20,22,21 and 24,26 on hdaa1
pcm5: <Realtek ALC892 (Front Analog)> at nid 27 and 25 on hdaa1
pcm6: <Realtek ALC892 (Onboard Digital)> at nid 17 and 31 on hdaa1
pcm7: <Realtek ALC892 (Rear Digital)> at nid 30 on hdaa1
random: unblocking device.
usbus0: 5.0Gbps Super Speed USB v3.0
usbus1: 480Mbps High Speed USB v2.0
usbus2: 480Mbps High Speed USB v2.0
ugen2.1: <Intel> at usbus2
uhub0: <Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus2
ugen1.1: <Intel> at usbus1
uhub1: <Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus1
ugen0.1: <0x8086> at usbus0
uhub2: <0x8086 XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus0
ada0 at ahcich1 bus 0 scbus0 target 0 lun 0
ada0: <TOSHIBA THNSNH128GCST HTRAN101> ATA-9 SATA 3.x device
ada0: Serial Number 93GS10BMTPEY
ada0: 600.000MB/s transfers (SATA 3.x, UDMA5, PIO 8192bytes)
ada0: Command Queueing enabled
ada0: 122104MB (250069680 512 byte sectors: 16H 63S/T 16383C)
ada0: Previously was known as ad4
ada1 at ahcich3 bus 0 scbus1 target 0 lun 0
ada1: <ST3000DM001-1CH166 CC27> ATA-9 SATA 3.x device
ada1: Serial Number Z1F3WH0A
ada1: 600.000MB/s transfers (SATA 3.x, UDMA6, PIO 8192bytes)
ada1: Command Queueing enabled
ada1: 2861588MB (5860533168 512 byte sectors: 16H 63S/T 16383C)
ada1: quirks=0x1<4K>
ada1: Previously was known as ad6
ses0 at ahciem0 bus 0 scbus3 target 0 lun 0
ses0: <AHCI SGPIO Enclosure 1.00 0001> SEMB S-E-S 2.00 device
ses0: SEMB SES Device
cd0 at ahcich5 bus 0 scbus2 target 0 lun 0
cd0: <PIONEER BD-RW   BDR-209 1.10> Removable CD-ROM SCSI-0 device
cd0: Serial Number MIDL005607WL
cd0: 150.000MB/s transfers (SATA 1.x, UDMA5, ATAPI 12bytes, PIO 8192bytes)
cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed
Netvsc initializing... SMP: AP CPU #1 Launched!
SMP: AP CPU #2 Launched!
SMP: AP CPU #6 Launched!
SMP: AP CPU #3 Launched!
SMP: AP CPU #5 Launched!
SMP: AP CPU #7 Launched!
SMP: AP CPU #4 Launched!
Timecounter "TSC-low" frequency 1745993011 Hz quality 1000
Root mount waiting for: usbus2 usbus1 usbus0
uhub1: 2 ports with 2 removable, self powered
uhub0: 2 ports with 2 removable, self powered
uhub2: 21 ports with 21 removable, self powered
Root mount waiting for: usbus2 usbus1 usbus0
xhci0: Port routing mask set to 0x00000000
usb_alloc_device: device init 2 failed (USB_ERR_IOERROR, ignored)
ugen0.2: <Unknown> at usbus0 (disconnected)
uhub_reattach_port: could not allocate new device
ugen2.2: <vendor 0x8087> at usbus2
uhub3: <vendor 0x8087 product 0x8000, class 9/0, rev 2.00/0.04, addr 2> on usbus2
ugen1.2: <vendor 0x8087> at usbus1
uhub4: <vendor 0x8087 product 0x8008, class 9/0, rev 2.00/0.04, addr 2> on usbus1
uhub4: 6 ports with 6 removable, self powered
uhub3: 8 ports with 8 removable, self powered
ugen2.3: <vendor 0x045b> at usbus2
uhub5: <vendor 0x045b product 0x0209, class 9/0, rev 2.00/1.00, addr 3> on usbus2
Root mount waiting for: usbus2
uhub5: 4 ports with 4 removable, self powered
ugen2.4: <vendor 0x045b> at usbus2
uhub6: <vendor 0x045b product 0x0209, class 9/0, rev 2.00/1.00, addr 4> on usbus2
Root mount waiting for: usbus2
uhub6: 4 ports with 4 removable, self powered
Root mount waiting for: usbus2
ugen2.5: <Microsoft> at usbus2
Trying to mount root from zfs:zroot0/ROOT/default []...
ums0: <Microsoft Microsoft Optical Mouse with Tilt Wheel, class 0/0, rev 2.00/1.20, addr 5> on usbus2
ums0: 3 buttons and [XYZT] coordinates ID=17
ums0: 0 buttons and [T] coordinates ID=0
em0: link state changed to UP

細かい設定とデータ移行はこれから。

nginx + uWSGI

posted by jun-g at Sat, 19 Oct 2013 11:55 JST

先日作ったアプリ は Apache + mod_wsgi で動かしていたのですが、前から興味があった nginx + uWSGI で動かすようにしてみました、というメモ。

インストール

OS は FreeBSD なので ports からインストール。

# cd /usr/ports/www/nginx && make BATCH=yes install clean
# cd /usr/ports/www/uwsgi && make BATCH=yes install clean

uWSGIの設定/起動

/etc/rc.conf に以下の記述を追加。

uwsgi_enable="YES"
uwsgi_profiles="ebook"
uwsgi_ebook_enable="YES"
uwsgi_ebook_flags="--wsgi-file /usr/local/www/ebook/ebook.wsgi"

以下のコマンドで起動。

# /sbin/service uwsgi start

nginxの設定/起動

/usr/local/etc/nginx/nginx.conf の / の設定の下あたりに以下の設定を追加。

rewrite ^/ebook$ /ebook/ permanent;
location /ebook {
    include uwsgi_params;
    uwsgi_pass unix:/tmp/uwsgi-ebook.sock;
    fastcgi_split_path_info ^(/ebook)(.*)$;
    uwsgi_param PATH_INFO $fastcgi_path_info;
}

1行目は末尾に / 無しでアクセスされた場合に / 付き URL にリダイレクトする設定。

あと、 mod_wsgi や wsgiref.simple_server で動作させた場合と PATH_INFO の内容が異なっていたので、 fastcgi_split_path_info を使って他と同じ PATH_INFO が取れるようにする設定が後半2行。

後は /etc/rc.conf に以下の記述を追加。

nginx_enable="YES"

してからの起動。

# /sbin/service nginx start

WSGI サーバーは他にも沢山あるので色々試してみようと思います。

ハイパーバイザ型仮想化ソフト事始め その5 FreeBSDでXen/DomU構築編

posted by jun-g at Mon, 09 May 2011 01:05 JST

前回の続き

Dom0とRAIDの構築はできたのでいよいよゲストOSのインストール。手始めにFreeBSD/amd64をインストール。FreeBSDは完全仮想化に対応しているので、環境さえ作ってしまえば普通にインストール・起動できる。

ブリッジネットワークの設定

前回の書き漏れ。VM用にブリッジネットワークを構成する。

# cat /etc/ifconfig.bridge0
create
!brconfig bridge0 add msk0 up

このファイルを用意しておけば起動時に自動的にブリッジネットワークが構成されるようになる。「msk0」が物理ネットワークインターフェースの名前。

HDDイメージの作成

ゲストOSをインストールするHDDイメージの作成。

# dd if=/dev/zero of=/pub/freebsd.img bs=1k count=10M

これで10GBのHDDイメージが出来る。

あと、FreeBSDのインストールCDイメージもダウンロードして同ディレクトリに配置しておく。

DomUの設定

次に設定ファイルの作成。Xenの設定ファイルはpythonで記述するみたい。最初DomU起動時にコンソールに接続できないエラーが出たりしてハマったが、調べてみるとどうもFreeBSDはコンソール接続にまだ対応できていない?ようなのでVNCを使うように設定。Xen/DomUのVNC設定については以下のページが参考になった。

XenのDomUのコンソールを他のPCからVNCで見る方法 - tea2kaのそのひぐらし

設定ファイルは以下のように記述した。

# cat /pub/xen_domu_freebsd
kernel = "/usr/pkg/lib/xen/boot/hvmloader"
builder = "hvm"
memory = 512
name = "fbsd_amd64"
vif = ["mac=12:34:56:78:90:ab,bridge=bridge0"]
device_model = "/usr/pkg/libexec/qemu-dm"
disk = ["file:/pub/freebsd.img,hda,w", "file:/pub/FreeBSD-8.2-RELEASE-amd64-bootonly.iso,hdc:cdrom,r"]
boot = "d"
vnc=1
vnclisten="0.0.0.0"
vncunused=0
vncdisplay=0
vncpasswd=""

設定ファイルが準備できたらDomU起動。

# xm create -c /pub/xen_domu_freebsd

相変わらず

xenconsole: Could not read tty from store: No such file or directory

というエラーメッセージが出るが無事に起動しているので、VNCクライアントをインストールした他のPCから接続する。

$ vncviewer xenserver

xenserverってのはDom0のホスト名ね。VNCクライアントの画面が開くとFreeBSDのインストーラが起動している状態になる。後は普通にインストールするだけ。

インストールが終わったら設定ファイルの「disk」の項目からインストールイメージの記述を削除し、「boot」の行も削除しておく。


以上でFreeBSDをDomUにインストールすることが出来た。後は物理PCにインストールした際と同様に環境を構築していくだけ。

今回はFreeBSD/amd64をインストールしたが、FreeBSD/i386だと準仮想化にも対応しているようなので、こちらもいずれ試してみたい。

…しかし、現状のNetBSD/Dom0ではオンボードLANが使えないことやXen4.1がまだ使えない等の不満が残っている。そして、Windowsが必要という点は少し嫌だがGUIクライアントから簡単にVMを作成・操作できる点はやはりXenServerが便利だと感じた。

で、再度XenServerで環境構築し直すことにした。RAIDの問題はオンボードRAIDの機能を使えば解決しそう。あとディスク容量をもう少し確保したいのでRAID10じゃなくてRAID5にしたい。

仮想環境構築の旅はまだまだ続く…。

終わり。

2009年send-prまとめ

posted by jun-g at Thu, 31 Dec 2009 13:59 JST

何か回数多いなと思ったら、いくつかのメンテナ不在のportsメンテナに立候補したからか。

  • ports/130196
  • ports/130790
  • ports/131443
  • ports/131608
  • ports/131691
  • ports/131712
  • ports/131736
  • ports/131737
  • ports/132210
  • ports/132211
  • ports/132308
  • ports/132609
  • ports/133463
  • ports/134259
  • ports/134339
  • ports/135560
  • ports/137995
  • ports/138403
  • ports/138287
  • ports/138843
  • ports/139190
  • ports/139759
  • ports/142021

来年もぼちぼちやる。

gmirrorの復旧

posted by jun-g at Wed, 15 Oct 2008 21:00 JST

以前gmirror+gstripeで構築したRAID環境で、HDDのひとつがうまく認識されなくなる、という問題が発生しました。再起動すると認識されたりされなかったりと、かなり不安定な感じだったので、HDDを交換する事にしました。

まずは現状把握。

# gmirror status
      Name    Status  Components
mirror/gm0  COMPLETE  ad2
                      ad3
mirror/gm1  DEGRADED  ad4
mirror/gm2  COMPLETE  ad6
                      ad7

ad5がいない。/devの下を確認してもいないので、HDD自体が認識されていない様子。

一旦マシンを停止してHDDを交換し、マシンを再度起動して、交換したHDDがad5で認識されている事を確認し、次のコマンドを実行。

# gmirror forget gm1

これでgm1のDEGRADED状態がクリアされる。

# gmirror status
      Name    Status  Components
mirror/gm0  COMPLETE  ad2
                      ad3
mirror/gm1  COMPLETE  ad4
mirror/gm2  COMPLETE  ad6
                      ad7

でもって交換したad5をgm1に追加。

# gmirror insert -v gm1 ad5

すると、自動的にミラーリングのリビルドが開始され、しばらく待つとリビルドが完了し、無事gm1が復旧しました。簡単。

以下、参考にしたサイト。

上半期send-prまとめ

posted by jun-g at Mon, 30 Jun 2008 01:08 JST

今年も半分終わった(早!!)ので、上半期にsend-pr(1)した内容を振り返る。

自分がメンテナじゃないportsのパッチも書くようになったのは良い傾向かな。簡単なものしか作れないのは相変わらずやけど。

無ければ作る、古ければパッチ書く、という方針で下半期もがんばろう。

GEOMでRAID構築

posted by jun-g at Wed, 07 May 2008 00:04 JST

手元にHDDが沢山余っていたので、FreeBSD-7Rで構築した自宅のファイルサーバにRAIDを構築してみました。

最初、ストライプしてからミラーするべきか、ミラーしてからストライプするべきか、という素朴な疑問で悩んだのですが、RAID01とRAID10の違い:佐野裕のサーバ管理者日記:ITproという記事を読んで、RAID01とRAID10は別モノで、ストライピンググループをミラーしたRAID01よりも、ミラーしたグループをストライピングしたRAID10のほうが可用性が上である、ということがわかったので、RAID10を構築することにしました。

HDDの構成は、マザーボード上のATAセカンダリに160GBx2、増設ATAカードに120GBx4で、デバイス名はそれぞれad2~7になりました。

まずはgmirrorでRAID1のグループを3つ作ります。

# gmirror label gm0 /dev/ad2 /dev/ad3
# gmirror label gm1 /dev/ad4 /dev/ad5
# gmirror label gm2 /dev/ad6 /dev/ad7

問題なく構築できているか確認。

# gmirror status
      Name    Status  Components
mirror/gm0  COMPLETE  ad2
                      ad3
mirror/gm1  COMPLETE  ad4
                      ad5
mirror/gm2  COMPLETE  ad6
                      ad7

問題なくできているようです。次にこのRAID1アレイを束ねてgstripeでRAID0を構築します。

# gstripe create -s 131072 gs0 mirror/gm0 mirror/gm1 mirror/gm2

問題なく構築できた?

# gstripe status
      Name  Status  Components
stripe/gs0      UP  mirror/gm0
                    mirror/gm1
                    mirror/gm2

問題なし!newfsしてマウントします。

# newfs /dev/stripe/gs0
...snip...
# mount /dev/stripe/gs0 /mnt
# df -h /mnt
Filesystem         Size    Used   Avail Capacity  Mounted on
/dev/stripe/gs0    334G    4.0K    333G     0%    /mnt

できた!160+120+120=400GBなのに334GBになっているけど、細かいことは気にしません。

ということで、無事RAID環境が構築できました。この環境なら突然HDDが1本死んでも大丈夫だし、RAID10なので単純なRAID1よりもパフォーマンスも良いはず(ベンチマークは取っていませんが…)。手元に予備の160/120GBのHDDもあるので安心です。ただ、6本もHDDを使っていながらたった334GBしか容量が確保できてないというのが、電気の無駄遣いに感じてしまいますが…。最近HDD安いですもんね。

以下、今回参考にしたサイト。

Ciscoのスイッチで遊びたい

posted by jun-g at Thu, 20 Mar 2008 11:41 JST

Ciscoといえば、昔足繁く通った、今はもう大阪には無いレコード屋の事しか思い浮かばないんやけど、先日、会社でCatalyst2950っていうスイッチが廃棄されそうになっていたので、なんとなく貰ってきた。

cisco

初期セットアップ用にシリアルケーブルを借りてきたものの、うちにあるPCでシリアルポートを備えているのがFreeBSDの載ったデスクトップマシン一台だけやったので、そこからつないでセットアップ作業を行ってみた。その手順をメモ。

まずはrootになってcuコマンドでシリアルポートに接続。

$ su -
# cu -l /dev/ttyd4 -s 9600
Connected

ここでスイッチ本体のMODEボタンを押しながら電源投入。

C2950 Boot Loader (CALHOUN-HBOOT-M) Version 12.0(5)WC(1), RELEASE SOFTWARE (fc1)
Compiled Tue 27-Mar-01 23:28 by devgoyal
WS-C2950-24 starting...
Base ethernet MAC Address: 00:00:00:00:00:00
Xmodem file system is available.

The system has been interrupted prior to initializing the
flash filesystem.  The following commands will initialize
the flash filesystem, and finish loading the operating 
system software:

    flash_init
    load_helper
    boot

switch:

起動した。次にファイルシステムを初期化。

switch: flash_init
Initializing Flash...
flashfs[0]: 166 files, 2 directories
flashfs[0]: 0 orphaned files, 0 orphaned directories
flashfs[0]: Total bytes: 7741440
flashfs[0]: Bytes used: 2967040
flashfs[0]: Bytes available: 4774400
flashfs[0]: flashfs fsck took 6 seconds.
...done initializing flash.
Boot Sector Filesystem (bs:) installed, fsid: 3
Parameter Block Filesystem (pb:) installed, fsid: 4
switch: 

できた。次にヘルプのロード。

switch: load_helper
switch:

できた?わからん。ま、いいや。次に保存されている設定ファイルを避ける。

switch: rename flash:config.text flash:config.old
switch:

そしてIOSを起動!

switch: boot
Loading "flash:c2950-c3h2s-mz.120-5.3.WC.1.bin"...###############################################################################################################################

File "flash:c2950-c3h2s-mz.120-5.3.WC.1.bin" uncompressed and installed, entry point: 0x80010000
executing...

              Restricted Rights Legend

Use, duplication, or disclosure by the Government is
subject to restrictions as set forth in subparagraph
(c) of the Commercial Computer Software - Restricted
Rights clause at FAR sec. 52.227-19 and subparagraph
(c) (1) (ii) of the Rights in Technical Data and Computer
Software clause at DFARS sec. 252.227-7013.

           cisco Systems, Inc.
           170 West Tasman Drive
           San Jose, California 95134-1706



Cisco Internetwork Operating System Software 
IOS (tm) C2950 Software (C2950-C3H2S-M), Version 12.0(5.3)WC(1), MAINTENANCE INTERIM SOFTWARE
Copyright (c) 1986-2001 by cisco Systems, Inc.
Compiled Mon 30-Apr-01 07:56 by devgoyal
Image text-base: 0x80010000, data-base: 0x8031A000


Initializing flashfs...
flashfs[1]: 165 files, 2 directories
flashfs[1]: 0 orphaned files, 0 orphaned directories
flashfs[1]: Total bytes: 7741440
flashfs[1]: Bytes used: 2964992
flashfs[1]: Bytes available: 4776448
flashfs[1]: flashfs fsck took 6 seconds.
flashfs[1]: Initialization complete.
Done initializing flashfs.
C2950 POST: System Board Test : Passed
C2950 POST: Ethernet Controller Test : Passed
C2950 POST: MII TEST : Passed

cisco WS-C2950-24 (RC32300) processor (revision B0) with 22260K bytes of memory.
Processor board ID FAB0525Q0AU
Last reset from system-reset

Processor is running Enterprise Edition Software
Cluster command switch capable
Cluster member switch capable
24 FastEthernet/IEEE 802.3 interface(s)

32K bytes of flash-simulated non-volatile configuration memory.
Base ethernet MAC Address: 00:00:00:00:00:00
Motherboard assembly number: 00-0000-00
Motherboard serial number: FFFFFFFFFFF
Model revision number: B0
Model number: WS-C2950-24
System serial number: FFFFFFFFFFF
C2950 INIT: Complete

00:00:17: %SYS-5-RESTART: System restarted --
Cisco Internetwork Operating System Software 
IOS (tm) C2950 Software (C2950-C3H2S-M), Version 12.0(5.3)WC(1), MAINTENANCE INTERIM SOFTWARE
Copyright (c) 1986-2001 by cisco Systems, Inc.
Compiled Mon 30-Apr-01 07:56 by devgoyal

         --- System Configuration Dialog ---

At any point you may enter a question mark '?' for help.
Use ctrl-c to abort configuration dialog at any prompt.
Default settings are in square brackets '[]'.

Continue with configuration dialog? [yes/no]: 

うーん、yes。そして言われるがままに設定してゆく。

Continue with configuration dialog? [yes/no]: yes
Enter IP address: 192.168.0.151
Enter IP netmask: 255.255.255.0
Would you like to enter a default gateway address? [yes]: yes
IP address of default gateway: 192.168.0.1
Enter host name [Switch]: Cisco

The enable secret is a one-way cryptographic secret used
instead of the enable password when it exists. 

Enter enable secret: ********

Would you like to configure a Telnet password? [yes]: yes
Enter Telnet password: ********
Would you like to enable as a cluster command switch? [yes/no]: no

The following configuration command script was created:

ip subnet-zero
interface VLAN1
ip address 192.168.0.151 255.255.255.0
ip default-gateway 192.168.0.1
hostname Cisco
enable secret 5 ******************************
line vty 0 15
password ********
snmp community private rw
snmp community public ro
!
end

Use this configuration? [yes/no]: yes
Building configuration...
[OK]
Use the enabled mode 'configure' command to modify this configuration.

Press RETURN to get started.


Cisco>

設定できたかな?確認するためにシリアル通信から抜ける。

Cisco>exit

Cisco con0 is now available

Press RETURN to get started.

ここで

~.

と入力してEnterを押せばcuコマンドから抜ける。最初意味がわからなくてハマった。

次にスイッチにちゃんとIPアドレスが設定されているか確認。スイッチの24番ポートを家LANのHUBに繋いでみた。

# ping 192.168.0.151
PING 192.168.0.151 (192.168.0.151): 56 data bytes
64 bytes from 192.168.0.151: icmp_seq=0 ttl=255 time=7.559 ms
64 bytes from 192.168.0.151: icmp_seq=1 ttl=255 time=7.513 ms
64 bytes from 192.168.0.151: icmp_seq=2 ttl=255 time=7.533 ms
64 bytes from 192.168.0.151: icmp_seq=3 ttl=255 time=7.562 ms
64 bytes from 192.168.0.151: icmp_seq=4 ttl=255 time=7.534 ms
...

ふむ、つながってる。ってことで次はtelnetで接続してみる。

# telnet 192.168.0.151
Trying 192.168.0.151...
Connected to 192.168.0.151.
Escape character is '^]'.


User Access Verification

Password: Kerberos:	No default realm defined for Kerberos!

Kerberos?よくわからんけど、とりあえずさっき設定したパスワードを入力。

Cisco>

うむ、ログインできた。これで今後はシリアルケーブルは不要になった。

ネットワークは素人なので、これで色々勉強してみよう。おわり。

以下、参考にしたサイト。

どうでもいいけど、このスイッチ、ファンがめちゃうるさいな…。

FreeBSD + Wine で Flash9 を使う

posted by jun-g at Sun, 27 Jan 2008 17:46 JST

なんだか最近Flex/AS3が流行っているみたいで、丁度最近FreeBSDのports treeにもFlex2 SDKがcommitされたので僕も勉強しよう、って思ったんやけど、肝心のFlash9が動かないというガッカリな状況なので諦めていたところ、Wine上のFirefox+Flash9が結構安定して動作するという情報があったので試してみた。

ちなみに、手元の環境は1/19頃の6-STABLEで、Wineのバージョンは0.9.54。デスクトップ環境はGNOME 2.20.3。

まず、6系の場合はカーネル回りにパッチを当てる必要があるようなので、FreeBSD WikiのWineのページからパッチを入手し、手順どおりにパッチを当ててmake worldしておく。

次にWineのインストール。ports treeのemulators/wineで

# make install clean

すればOK。6Rを使用していて前述のとおりカーネルにパッチを当ててmake worldした場合はWineも再度ビルド/インストールし直す必要があるみたい。あと、無用なトラブルを避けるために~/.wineがある場合はリネームして退避しておく。

次はX.Orgの設定。Composite Extentionを無効にしないとWineが動作しないようなので、/etx/X11/xorg.confを編集し、

Section "Extensions"
        Option       "Composite" "false"
EndSection

としておく。

次にWindows版Firefoxをインストールする。ここから日本語版をダウンロードして

$ wine Firefox\ Setup\ 2.0.0.11.exe

でインストーラが起動する。インストールが完了したらデスクトップに「Mozilla Firefox」のアイコンが出来上がるので、ダブルクリックでWineのFirefoxが起動する。

次にFlash Playerのインストール。ダウンロードはここから。ダウンロードしたら、

$ wine install_flash_player.exe

でインストーラが起動してインストールできる。インストールが完了したら、Firefoxを再起動してアドレスバーに about:plugins と入力して、Flash9プラグインが問題なくインストールされているか確認。

about:plugins

ここまで出来た状態で、Flash9を使用しているサイトがそこそこ普通に見られるようになっているはず。映像が欠けたり、音に時折ノイズが乗ったりするけど、落ちたりはしない。感動。

次に、もうちょっと実用的に使うためにWineの設定を行う。

まず、そのままだとWineで動作しているアプリケーションに日本語入力が出来ない。これを可能にするため、~/.wine/user.regに

[Software\\Wine\\X11 Driver]
"InputStyle"="root"

を追記する。これで日本語入力が可能になる。

あと、Wineの仕様として、英字フォントが指定されていてテキスト内に日本語(非ASCII文字)が混じっている場合、その日本語テキストには代替フォントが適用されずにそのまま文字化けしてしまうみたい。このため、Flex2でフォントの指定なしに生成したswfファイルや、ニコニコ動画のコメントなどがすべて「<」という文字に文字化けしてしまう。

TwitterでnitoyonさんにFlex2のデフォルトフォントはVerdanaだと教えてもらったので、~/.wine/system.regの

[Software\\Microsoft\\Windows NT\\CurrentVersion\\FontSubstitutes]

のエントリに

"Verdana"="IPAPGothic"

を追加すると、IPAPゴシックフォントが使用されるようになり、Flex2でフォントの指定なしに生成したswfファイルの文字化けが直る。

Hello, World!

次にニコニコ動画。色々試してみたところ、ニコニコ動画のコメントはフォントに「Arial」を指定しているっぽい。という事で前述の~/.wine/system.regのFontSubstitutesのエントリに

"Arial"="IPAPGothic"

を追記。これでコメントがちゃんと見られるようになる。

ニコニコ動画

これで思う存分ニコニコ動画が観られるAS3の勉強が出来るようになった。やったね。とはいえ、こんな苦労しなくても良いように早くFreeBSDネイティブなFlash9プラグインが配布されればいいのに。

以下、参考にしたページ。

Canon PIXUS MP610を購入、ついでにFreeBSDから印刷

posted by jun-g at Sun, 09 Dec 2007 01:19 JST

奥様が「年賀状を印刷したい」と駄々をこねてたので、プリンタを買いにヨドバシ梅田に行ってきた。人の多いところは嫌い。

機種はCanonのPIXUS MP610にしようとあらかじめ決めていたので、プリンタ売り場に行って即購入。20%ポイント還元で税込み21,800円やった。コピー/スキャナ付きのプリンタがこんな値段で買えるなんて、いい時代やな。

キヤノン PIXUS MP610
キヤノン PIXUS MP610
posted with amazlet on 07.12.09
キヤノン (2007/10/04)
売り上げランキング: 6

で、ポイントが貯まってたので、ついでにソースネクストの筆王ZEROをポイントで買った。本当はHDDとか欲しかったんやけど…。つか、けっこう安いのに、10年間バージョンアップ無料とか、すげーな。しかもマニュアル代わりにインプレス編集の解説本が同梱されてるし。これ利益出るの?いい時代っつーか、イカれた時代やな。

筆王ZERO (CD-ROM/DVD-ROM同梱)
ソースネクスト (2007/09/07)
売り上げランキング: 5

家に帰って早速セットアップ。奥様は早速年賀状作成開始。その間、僕は自分のPC(FreeBSD)から印刷できないかを調べてたら、users-jpの過去ログに「[FreeBSD-users-jp 90982] 動作報告 Canon PIXUS MP810 ( スキャナ・ プリンタ複合機)」という素敵な投稿があったので、書かれている通り試してみたところ、cups経由で問題なく印刷できた。投稿した方、元ネタのエントリを書いた方は神認定。ありがたや。

ちょっとだけつまづいた点として、最初、/dev/ulpt0のパーミッションが0644だとcupsのテストページ印刷に失敗した。cupsのエラーログにulpt0 permission deniedっていうエラーが出ていたので、/etc/devfs.confに

perm  ulpt0  0666

と書いて

# /etc/rc.d/devfs restart

してから、ulpt0のパーミッションが0666になった事を確認して、再度印刷してみたら無事印刷できた。

FreeBSDで最新のプリンタが使えると思っていなかったので、ちょっと嬉しかった。奥様もフチナシ印刷に喜んでいたので、良い買い物だったと思う。今度スキャナも試してみよう。

FreeBSD portsのwww/py-django-develのバージョンが上がった

posted by jun-g at Thu, 01 Nov 2007 01:01 JST

FreeBSD portsのDjango開発版のバージョンが、20070525から20071029のスナップショットに上がった。これの対応版みたい。i18n関連の機能はまったく使っていないけど、とりあえず他のアプリもろともportupgradeしておいた。

今回のバージョンアップでSecurityFix以外の変更点ってあるんかな…?とりあえず手元のDjango上で動作している自作のツール類は問題なく動いてるのでホッとした。

japanese/py-mecab とか

posted by jun-g at Tue, 28 Aug 2007 00:15 JST

MeCabのPythonバインディングのportを作ってsend-prした。オフィシャルの奴ね。

オフィシャルじゃないけど高速らしいcmecabも近日中にportを作ってsend-prするつもり。

さて、職場ではどっちを使おうかな。

HDAドライバが6-STABLEにMFCされた模様

posted by jun-g at Tue, 15 May 2007 02:32 JST

HDA(High Definition Auido)ドライバが、ようやく6-STABLEにMFCされたとの情報を入手したのでCVSを見てみると、本当にコミットされてた。やたー!!

これまでは誰かが6-STABLE向けにビルドしてくれたhdaのカーネルモジュールをネットで拾ってきて、make worldする度にコピーして使っていたので、これでmake worldの作業時少し楽できるようになるな。

後はkiconvのパッチが取り込まれると非常に楽になるんやけど…。

FreeBSDで毎日root宛に届くレポートメールを通常のメーラーで受信

posted by jun-g at Sun, 15 Apr 2007 01:39 JST

よくやり方を忘れるので自分用にメモ。レポートメールっていうのは「xxx run output」というSubjectのメールの事。

まずはroot宛のメールを自分宛に届くように変更。/etc/aliasesを開いて、

postmaster: root

の下に

root: jun-g

を追加。これでroot宛のメールは全てjun-g宛に届くようになる。追加したら/etc/aliases.dbを再作成するために以下のコマンドを実行。

# newaliases

次にPOP3サーバのqpopperをportsからインストール(mail/qpopper)。OptionsはデフォルトのままでOK。インストールが完了したら/etc/inetd.confの

#pop3   stream  tcp     nowait  root    /usr/local/libexec/popper       popper

の部分を

pop3    stream  tcp     nowait  root    /usr/local/libexec/qpopper      qpopper -s

に変更してinetdを再起動。inetdを使用していない場合は/etc/rc.confに

inetd_enable="YES"

と追記して

# /etc/rc.d/inetd start

でinetdが起動する。後は普段使用しているメーラーに受信用アカウントの設定を追加して、問題なく受信できればOK。

py-hyperestraier-python

posted by jun-g at Thu, 05 Apr 2007 23:55 JST

SWIG版のPython用HyperEstraierライブラリはノードAPIを含まないので、lirisさん作のPurePythonHyperEstraierライブラリを使(ってもら)うことにした。ソースを見るとSWIG版とインターフェースがそっくりだったので、移行は超簡単やった(らしい)。使っているうちに何箇所かバグを発見した(とのことな)ので、パッチを作ってlirisさんに送って取り込んでもらった

微妙に伝聞調?なのは、実際にライブラリを使ったのとバグを発見したのは僕ではないから。人の手柄を横取り…したわけではないのであしからず…。

それから、FreeBSD用のportsを作ってsend-prしておいた。SWIG版のライブラリとport名がかぶってしまうので、PKGNAMESUFFIXに「-python」って付けてみた。commit待ち。

DVカメラで録画した内容をGoogleVideoにアップ on FreeBSD

posted by jun-g at Tue, 03 Apr 2007 23:44 JST

DevCamp後に行った動画アップロードの作業手順を忘れないようにメモ。

まずはDVテープからPCへデータを吸い出す。PCとDVカメラをIEEE1394ケーブルで接続。アプリはgdvrecv (multimedia/gdvrecv)を使用する。吸い出したデータはrawDVフォーマットで保存され、80分テープで約15GB程度のファイルになる。

次にエンコード。アプリはtranscode (multimedia/transcode)を使用。エンコード形式は映像をxvid4、音声をmp3にした。エンコードに使用したコマンドラインオプションは以下の通り。

$ transcode transcode -a 0 -x dv -i [変換元DVファイル名] -g 720x480 -w 500,250,100 -b 128,0,0 -V -f 29.97 -y xvid4 -o [変換先ファイル名] -Z 640x480

エンコードにかかる時間はCore2Duo T7200 + 2GBメモリのマシンで動画実時間の倍ぐらい。出来上がるファイルは約300MB程度。内容によっては結構なブロックノイズが出ていたので、もしかしたら圧縮しすぎたかも。

最後はGoogleVideoにアップロード。GoogleVideoのサイトで配布されているDesktopUploaderのLinux用を使用する。といってもJavaで書かれているのでJDKさえインストールしておけばエミュレーションじゃなくてネイティブで動く。サイトから「GoogleVideoUploader.jar」をダウンロードしたら、

$ java -cp ./GoogleVideoUploader.jar com.google.uploader.Uploader

でアップローダー起動。後はアップローダー上でログインしてファイルを選択してアップロードを実行。アップロードが完了したら、サイト上で動画ファイルの説明等を入力してprocessing作業開始。そこから大体24時間程度経過してようやく公開、となる。

ちなみに一番の鬼門はアップロード作業やった。何度ログインしても拒否されたり、アップロード途中でHTTPのエラーが出て失敗したり、リストから消えたのに実はアップロードに失敗していたり、processingの結果、勝手に尺を短くされたり…。

PyXPCOMを使ってみよう

posted by jun-g at Sun, 18 Mar 2007 03:02 JST

Lingraodag隊長voluntasさんと会話中にPyXPCOMの話題になり、最近のMozillaのソースには普通にPyXPCOMのソースが含まれている事を教えてもらったので早速ビルド/インストールしてみる事にした。…とはいえ自前でソース取ってきて一からビルドできる程の知識は持ってないので、ここを参考にしながらportsを改造する事に。FreeBSD万歳!!

って事で以下はwww/mozilla/Makefile.commonのパッチ。

--- Makefile.common.orig	Sat Mar 17 01:35:11 2007
+++ Makefile.common	Sat Mar 17 03:34:09 2007
@@ -119,7 +119,7 @@
 LDFLAGS+=		-L${X11BASE}/lib -Wl,-rpath,${PREFIX}/lib/${MOZ_RPATH}
 LIBS+=			${PTHREAD_LIBS} -L${LOCALBASE}/lib -liconv
 
-_USE_GECKO_OPTIONS_ALL=	java debug logging optimized_cflags
+_USE_GECKO_OPTIONS_ALL=	java python debug logging optimized_cflags
 
 .if !defined(USE_GECKO_OPTIONS)
 USE_GECKO_OPTIONS=	debug logging optimized_cflags
@@ -127,6 +127,7 @@
 
 debug_OPTION=	"Build a debugging image" off
 java_OPTION=	"Enable JAVA xpcom" off
+python_OPTION=  "Enable PyXPCOM" off
 logging_OPTION=	"Enable additional log messages" off
 optimized_cflags_OPTION=	"Enable some additional optimizations" off
 
@@ -214,6 +215,11 @@
 JAVA_OS+=	native
 CONFIGURE_ENV+=	JAVA_HOME="${JAVA_HOME}"
 MOZ_OPTIONS+=	--enable-javaxpcom
+.endif
+
+.if defined(WITH_PYTHON)
+USE_PYTHON=	yes
+MOZ_EXTENSIONS+=python/xpcom
 .endif
 
 .if defined(WITH_LOGGING)

PyXPCOMを有効にする対象はXULRunnerにしよう、という事で、次はwww/xulrunner/Makefileのパッチ。

--- Makefile.orig	Sat Mar 17 01:38:02 2007
+++ Makefile	Sat Mar 17 03:35:18 2007
@@ -29,7 +29,7 @@
 		--enable-system-cairo
 MOZ_EXTENSIONS=	default,cookie,permissions
 OPTIONS=	# Empty, used for generic gecko OPTIONS
-USE_GECKO_OPTIONS=	java debug logging optimized_cflags
+USE_GECKO_OPTIONS=	java python debug logging optimized_cflags
 
 .include 
 .include "${PORTSDIR}/www/mozilla/Makefile.common"

この2つのパッチを適用したら、www/xulrunnerのオプションに「Python」ってのが出るようになる。

でもって早速make installして試してみた。

/home/jun-g% python
Python 2.4.4 (#2, Feb 24 2007, 05:43:34) 
[GCC 3.4.6 [FreeBSD] 20060305] on freebsd6
Type "help", "copyright", "credits" or "license" for more information.
>>> import xpcom
>>>

出来た!!という訳で今回はここまで。次はここ見ながらもうちょっと試してみよう。

FreeBSDでSecond Lifeをプレイしてみた

posted by jun-g at Tue, 02 Jan 2007 17:00 JST

最近話題のSecond Lifeで遊んでみたので、メモ。

手元にはWindowsもMacも無く、FreeBSD 6-STABLEのみ。linux_base_fc-4はインストール済み。で、Second LifeのサイトでアルファバージョンのLinux用クライアントが公開されているので、それをダウンロードして、展開。中にある「secondlife」というスクリプトを起動してみる。すると、「SDLのライブラリがないぶらり」という旨のエラーメッセージが出た。慌てず騒がず、ports treeからdevel/linux-sdl12をインストール。インストールが完了し、気を取り直して再度「secondlife」を起動。

SecondLife on FreeBSD

やったー!動いたよ!

と、動いたところですっかり満足したのでプレイ終了。

emma on FreeBSD その3

posted by jun-g at Mon, 04 Dec 2006 00:28 JST

作者からお礼のメールが来た。FreeBSDでの(ports/packagesからの)インストール手順を教えてあげたら、emmaのサイトにも掲載してくれたみたい。ってか僕の名前までデカデカと書かなくて良いよ!

emma on FreeBSD

posted by jun-g at Sun, 03 Dec 2006 04:25 JST

何気なくMOONGIFTを見ていたら、emmaというPythonで書かれたMySQLのGUIツールを発見した。(MOONGIFTのemma紹介ページ)

ムラムラと使ってみたくなったのでports treeの中を探してみたけど見付からず、仕方なくソースからインストールした。

が、よくよくソースを見てみるとPythonのファイルとアイコン画像ぐらいしか存在しなかったので、これなら簡単と思い、portsを作ってsend-prしといた

肝心のemmaの使い勝手などは、まだほとんど試せていない。とりあえず、MySQL-4.0.xでサーバ/クライアントともにcharset=SJISの環境では、テーブルに格納された日本語データが全部文字化けしてしまう事だけは確認できた。ってそれじゃ全然使われへんやん…。

はじめてのsend-pr

posted by jun-g at Sun, 26 Nov 2006 05:34 JST

数日前、gtk-send-prを使って自作のportをはじめてsend-prしてみたけど、全然gnatsに反映されなくて、昨日Webのフォームからもう一度send-prしてみたけど、やっぱり反映されなかった。

で、色々調べてたら、2chの「FreeBSDを語ろう Part 13」スレにgnats落ちてた?みたいな書き込みを発見した。今は普通に動いてるっぽいので、また明日send-prしてみよう。

実は送った分が全部生きてて、何回も登録されちゃってたら嫌やな…。

ochusha port on FreeBSD

posted by jun-g at Sat, 11 Nov 2006 16:22 JST

この間苦労しながらFreeBSDにインストールしたおちゅ〜しゃについて、その後Webで色々調べていると、既にFreeBSD用のportを作成して公開されている方を発見してしまった。なんだー、もっと早く見つけていれば苦労せずに済んだのに。しかも書き込みできない問題を修正するパッチまで用意されていた。

てなわけで書き込み対応用パッチを自前のportに取り込んで再インストールしておいた。

作者に連絡を取りつつ、自前で作ったport(というか配布されていたportをメンテしたやつ)をsend-prした方が良いかな?とか考えてたけど、そのページによると既にPRは出ているみたい。コミットされるのをwktkしながら待つとしますか。

2chのおいお前ら! おちゅ〜しゃはどうですか? Ver.5スレによると、どうやらおちゅ〜しゃ自体の開発も再開されたようなので、こちらも期待。

Firefox 2.0 on FreeBSD

posted by jun-g at Sat, 28 Oct 2006 04:11 JST

ports freeze中で細かなbug fixやsecurity fix程度しかports treeにcommitされない今日この頃ですが、freebsd-gnomeのMLで、ahzeタンがFirefox 2.0のportを公開してくれてたので、早速インストールしてみた。

# cd /usr/ports/www
# rm -rf firefox
# tar -xjf /tmp/firefox.tar.bz2
# cd firefox
# portupgrade

firefox2.0

しかし、即死する事が多くなった…orz

FreeBSD 6-STABLEにおちゅ〜しゃをインストール

posted by jun-g at Fri, 20 Oct 2006 17:28 JST

先日のGNOMEのアップグレード時に、インストール済みのソフトを全て削除してしまったので、2chを見る為にインストールしてあったおちゅ〜しゃも消えてしまった。Firefox等の普通のブラウザで2chを見るのはさすがに辛いので、再インストールすることにした。

昔はおちゅ〜しゃの作者の方がFreeBSD用portスケルトンを作成して配布してくれていたけど、現在は配布されていないので、その頃に取っておいたportスケルトンを修正しつつ使っている。今回もそのportスケルトンを/usr/ports/japaneseの下にコピーして、

# cd /usr/ports/japanese/ochusha
# make install clean

でインストール完了…と順調には終わらずに途中でコンパイルエラーが出た。

mod_tree_data_list.c:41: error: syntax error before '*' token
mod_tree_data_list.c:41: warning: type defaults to `int' in declaration of `tree_chunk'
mod_tree_data_list.c:41: warning: data definition has no type or storage class
mod_tree_data_list.c: In function `_mod_tree_data_list_alloc':
mod_tree_data_list.c:52: warning: implicit declaration of function `g_mem_chunk_new'
mod_tree_data_list.c:55: error: `G_ALLOC_AND_FREE' undeclared (first use in this function)
mod_tree_data_list.c:55: error: (Each undeclared identifier is reported only once
mod_tree_data_list.c:55: error: for each function it appears in.)
mod_tree_data_list.c:55: warning: assignment makes pointer from integer without a cast
mod_tree_data_list.c:57: warning: implicit declaration of function `g_chunk_new'
mod_tree_data_list.c:57: error: syntax error before "ModTreeDataList"
mod_tree_data_list.c: In function `_mod_tree_data_list_free':
mod_tree_data_list.c:82: warning: implicit declaration of function `g_mem_chunk_free'
*** Error code 1

Stop in /usr/ports/japanese/ochusha/work/ochusha-0.5.8.2/libmodifiedgtk2.
*** Error code 1

Stop in /usr/ports/japanese/ochusha/work/ochusha-0.5.8.2/libmodifiedgtk2.
*** Error code 1

Stop in /usr/ports/japanese/ochusha/work/ochusha-0.5.8.2.
*** Error code 1

Stop in /usr/ports/japanese/ochusha/work/ochusha-0.5.8.2.
*** Error code 1

Stop in /usr/ports/japanese/ochusha.
*** Error code 1

Stop in /usr/ports/japanese/ochusha.

いつもならここでお手上げなんだけど、なぜかちょっとガンバル気になったので、C言語を知らないなりに小一時間程ソースコードと格闘してみた…が、やっぱり直せず。メモリ・チャンクの箇所が原因なのは明白なんだけど…と思ってググってみると、FedoraJP掲示板にそのものズバリの解決方法があった。早速掲示板に書かれていた通りにパッチを当ててもう一度ビルドし直してみると、無事コンパイル完了。portsからのインストール時に自動的にこのパッチが当たるようにfilesディレクトリを作成し、その中にパッチを入れておいた。これで今後も安心。

ochusha

やるおのAAが結構好きw

GNOME 2.16.1にアップグレードした

posted by jun-g at Thu, 19 Oct 2006 02:55 JST

gnome2.16.1

ようやくアップグレード。HALのおかげでusbdが不要になったっぽい?ので週末に詳しく実験したい。とりあえず簡単に試してみたところ、USBメモリを挿すだけで自動的にマウントされて、デスクトップにアイコンが出てきた。感動!

python2.5 on FreeBSD その3

posted by jun-g at Sat, 14 Oct 2006 07:04 JST

ports treeのPythonのデフォルトバージョンが2.4に戻ったみたい。デフォルトバージョンが2.5になるのは6.2R向けのports freeze期間が終了してから、という事らしい。

python2.5 on FreeBSD その2

posted by jun-g at Thu, 12 Oct 2006 01:24 JST

前回書いたコマンドをそのまま実行しても、途中で色々問題が出て全然アップグレードは完了していなかった。portsのMakefileを修正したり、リビルドしたりしてようやくアップグレード完了。

python2.5 on FreeBSD

posted by jun-g at Tue, 10 Oct 2006 01:44 JST

FreeBSD portsのpythonがようやく2.5になったみたい。「lang/python25」が新たに追加された模様。詳細はUPDATING参照。

2.4->2.5のアップグレードは、

cd /usr/ports/lang/python
portupgrade -R
pkgdb -uf
make upgrade-site-packages

で完了。