daemonfreaks.com

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を置いていました。

System Message: WARNING/2 (<string>, line 8)

Cannot analyze code. Pygments package not found.

.. code:: console

    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をバラす前に下準備。

System Message: WARNING/2 (<string>, line 24)

Cannot analyze code. Pygments package not found.

.. code:: console

    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を接続して、

System Message: WARNING/2 (<string>, line 45)

Cannot analyze code. Pygments package not found.

.. code:: console

    blackmagic# zpool import pub

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

System Message: WARNING/2 (<string>, line 51)

Cannot analyze code. Pygments package not found.

.. code:: console

    $ 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はこんな感じ。

System Message: WARNING/2 (<string>, line 29)

Cannot analyze code. Pygments package not found.

.. code:: console

    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 からインストール。

System Message: WARNING/2 (<string>, line 12)

Cannot analyze code. Pygments package not found.

.. code:: console

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


uWSGIの設定/起動

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

System Message: WARNING/2 (<string>, line 23)

Cannot analyze code. Pygments package not found.

.. code:: basemake

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

以下のコマンドで起動。

System Message: WARNING/2 (<string>, line 32)

Cannot analyze code. Pygments package not found.

.. code:: console

    # /sbin/service uwsgi start


nginxの設定/起動

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

System Message: WARNING/2 (<string>, line 42)

Cannot analyze code. Pygments package not found.

.. code:: nginx

    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 に以下の記述を追加。

System Message: WARNING/2 (<string>, line 58)

Cannot analyze code. Pygments package not found.

.. code:: basemake

    nginx_enable="YES"

してからの起動。

System Message: WARNING/2 (<string>, line 64)

Cannot analyze code. Pygments package not found.

.. code:: console

    # /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

で完了。