OpenWrt を搭載した La Fonera を改造して MP3 プレーヤーに仕立て上げる hack、"http://phrozen.org/fonera.html" を見て、自分でもと試してみた。オリジナルではMP3 デコーダ基板の IC、VS1011e に SOIC-28 パッケージのものを使っているところを秋月電子通商で販売している LQFP-48 を使い、同じく秋月電子のヘッドフォンアンプキット基板上に組み立てた。ファームは同サイトにあるバイナリをそのまま使用しているが、ソースコードも公開されている(kamikaze_7.09/package 以下の fonera-mp3 および fonera-mp3-drv)。
ご覧のように配線にはプリント基板を起こさずに 0.5mm ピッチの LQFP の足に直接 0.2mm の UEW 線を半田付けしている。100 円ショップの老眼鏡とスタンド型ルーペが武器だが、それだけでは苦しいのでポリミドテープを用い、目標のピン以外を隠すようにして半田付けをおこなった。
とりあえずの動作確認はシリアルコンソールから。
と、こんな感じ。"mp3_drv.ko :" のメッセージのうち、init_ok のあとの 14 行は初期設定後の VS1011e SCI レジスタの 0x0(MODE) から 0xd(ARCTRL1) までの内容が 10 進で表示されていて、VS1002 native SPI mode、12.288MHz 外部クロックを 2 倍で使用していることが分かる。この後は無線 LAN のクライアントモードで使えるようにしてみたい。 Posted by masato at 08:21 PM+PHY ID is 0022:5521 Ethernet eth0: MAC address xx:xx:xx:xx:xx:xx IP: 0.0.0.0/255.255.255.255, Gateway: 0.0.0.0 Default server: 0.0.0.0 RedBoot(tm) bootstrap and debug environment [ROMRAM] Non-certified release, version v1.3.0 - built 16:57:58, Aug 7 2006 Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc. Board: ap51 RAM: 0x80000000-0x81000000, [0x80040450-0x80fe1000] available FLASH: 0xa8000000 - 0xa87f0000, 128 blocks of 0x00010000 bytes each. == Executing boot script in 1.000 seconds - enter ^C to abort RedBoot> fis load -l vmlinux.bin.l7 Image loaded from 0x80041000-0x80284085 RedBoot> exec Now booting linux kernel: Base address 0x80030000 Entry 0x80041000 Cmdline : Linux version 2.6.22.4 (blogic@bertha) (gcc version 4.1.2) #5 Sun Sep 23 01:57:28 CEST 2007 CPU revision is: 00019064 Determined physical RAM map: memory: 01000000 @ 00000000 (usable) Initrd not found or empty - disabling initrd Built 1 zonelists. Total pages: 4064 Kernel command line: console=ttyS0,9600 rootfstype=squashfs,jffs2 init=/etc/preinit Primary instruction cache 16kB, physically tagged, 4-way, linesize 16 bytes. Primary data cache 16kB, 4-way, linesize 16 bytes. Synthesized TLB refill handler (20 instructions). Synthesized TLB load handler fastpath (32 instructions). Synthesized TLB store handler fastpath (32 instructions). Synthesized TLB modify handler fastpath (31 instructions). PID hash table entries: 64 (order: 6, 256 bytes) Using 92.000 MHz high precision timer. Dentry cache hash table entries: 2048 (order: 1, 8192 bytes) Inode-cache hash table entries: 1024 (order: 0, 4096 bytes) Memory: 13548k/16384k available (1911k kernel code, 2836k reserved, 289k data, 116k init, 0k highmem) Mount-cache hash table entries: 512 NET: Registered protocol family 16 Radio config found at offset 0xf8(0x1f8) Time: MIPS clocksource has been installed. NET: Registered protocol family 2 IP route cache hash table entries: 1024 (order: 0, 4096 bytes) TCP established hash table entries: 512 (order: 0, 4096 bytes) TCP bind hash table entries: 512 (order: -1, 2048 bytes) TCP: Hash tables configured (established 512 bind 512) TCP reno registered squashfs: version 3.0 (2006/03/15) Phillip Lougher Registering mini_fo version $Id$ JFFS2 version 2.2. (NAND) (SUMMARY) c 2001-2006 Red Hat, Inc. io scheduler noop registered io scheduler deadline registered (default) Serial: 8250/16550 driver $Revision: 1.90 $ 1 ports, IRQ sharing disabled serial8250: ttyS0 at MMIO 0xb1100003 (irq = 37) is a 16550A eth0: Dropping NETIF_F_SG since no checksum feature. eth0: Atheros AR231x: 00:18:84:17:e0:58, irq 4 cmdlinepart partition parsing not available Searching for RedBoot partition table in spiflash at offset 0x7d0000 Searching for RedBoot partition table in spiflash at offset 0x7e0000 5 RedBoot partitions found on MTD device spiflash Creating 5 MTD partitions on "spiflash": 0x00000000-0x00030000 : "RedBoot" 0x00030000-0x000e0000 : "vmlinux.bin.l7" 0x000e0000-0x007e0000 : "rootfs" mtd: partition "rootfs" set to be root filesystem mtd: partition "rootfs_data" created automatically, ofs=270000, len=570000 0x00270000-0x007e0000 : "rootfs_data" 0x007e0000-0x007ef000 : "FIS directory" 0x007ef000-0x007f0000 : "RedBoot config" nf_conntrack version 0.5.0 (128 buckets, 1024 max) ip_tables: (C) 2000-2006 Netfilter Core Team TCP vegas registered NET: Registered protocol family 1 NET: Registered protocol family 17 802.1Q VLAN Support v1.8 Ben Greear
All bugs added by David S. Miller VFS: Mounted root (squashfs filesystem) readonly. Freeing unused kernel memory: 116k freed eth0: Configuring MAC for full duplex Warning: unable to open an initial console. Algorithmics/MIPS FPU Emulator v1.5 - preinit - switching to jffs2 mini_fo: using base directory: / mini_fo: using storage directory: /jffs - init - init started: BusyBox v1.4.2 (2007-09-23 01:16:42 CEST) multi-call binary Please press Enter to activate this console. mp3_drv.ko : VS1011b Driver mp3_drv.ko : Made by John '2B|!2B' Crispin (john@phrozen.org) mp3_drv.ko : Starting ... disabling atheros reset button irq mp3_drv.ko : using sysfs to create device nodes mp3_drv.ko : Device mp3 registered for major ID 196 mp3_drv.ko : Init start mp3_drv.ko : init_ok mp3_drv.ko : 0 mp3_drv.ko : 32 mp3_drv.ko : 0 mp3_drv.ko : 38912 mp3_drv.ko : 0 mp3_drv.ko : 8000 mp3_drv.ko : 0 mp3_drv.ko : 0 mp3_drv.ko : 0 mp3_drv.ko : 0 mp3_drv.ko : 0 mp3_drv.ko : 0 mp3_drv.ko : 0 mp3_drv.ko : 0 end of init wait queue started PPP generic driver version 2.4.2 wlan: 0.8.4.2 (svn r2568) ath_hal: module license 'Proprietary' taints kernel. ath_hal: 0.9.30.13 (AR5212, AR5312, RF2316, TX_DESC_SWAP) ath_rate_minstrel: Minstrel automatic rate control algorithm 1.2 (svn r2568) ath_rate_minstrel: look around rate set to 10% ath_rate_minstrel: EWMA rolloff level set to 75% ath_rate_minstrel: max segment size in the mrr set to 6000 us wlan: mac acl policy registered ath_ahb: 0.9.4.5 (svn r2568) ath_pci: switching rfkill capability off ath_pci: switching per-packet transmit power control off wifi0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps wifi0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps wifi0: H/W encryption support: WEP AES AES_CCM TKIP wifi0: mac 11.0 phy 4.8 radio 7.0 wifi0: Use hw queue 1 for WME_AC_BE traffic wifi0: Use hw queue 0 for WME_AC_BK traffic wifi0: Use hw queue 2 for WME_AC_VI traffic wifi0: Use hw queue 3 for WME_AC_VO traffic wifi0: Use hw queue 8 for CAB traffic wifi0: Use hw queue 9 for beacons wifi0: Atheros 2315 WiSoC: mem=0xb0000000, irq=3 mp3_drv.ko : Minor 0 has been opened mp3_drv.ko : Init start mp3_drv.ko : init_ok mp3_drv.ko : 2048 mp3_drv.ko : 32 mp3_drv.ko : 0 mp3_drv.ko : 38912 mp3_drv.ko : 0 mp3_drv.ko : 8000 mp3_drv.ko : 0 mp3_drv.ko : 0 mp3_drv.ko : 0 mp3_drv.ko : 0 mp3_drv.ko : 0 mp3_drv.ko : 0 mp3_drv.ko : 0 mp3_drv.ko : 0 BusyBox v1.4.2 (2007-09-23 01:16:42 CEST) Built-in shell (ash) Enter 'help' for a list of built-in commands. _______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M KAMIKAZE (bleeding edge, r8963) ------------------- * 10 oz Vodka Shake well with ice and strain * 10 oz Triple sec mixture into 10 shot glasses. * 10 oz lime juice Salute! --------------------------------------------------- root@OpenWrt:/# mplay STREAM url http://shoutcast.tristate.ne.jp:8000 Connecting to mp3d ... Connected ... Sending command -> STREAM url http://shoutcast.tristate.ne.jp:8000 mp3_drv.ko : Init start mp3_drv.ko : init_ok mp3_drv.ko : 2048 mp3_drv.ko : 32 mp3_drv.ko : 0 mp3_drv.ko : 38912 mp3_drv.ko : 0 mp3_drv.ko : 8000 mp3_drv.ko : 16437 mp3_drv.ko : 0 mp3_drv.ko : 0 mp3_drv.ko : 0 mp3_drv.ko : 0 mp3_drv.ko : 0 mp3_drv.ko : 0 mp3_drv.ko : 0 The answer was -started kthread > OK root@OpenWrt:/# mplay VOLUME 10 Connecting to mp3d ... Connected ... Sending command -> VOLUME 10 The answer was -> VOLUME 10 OK root@OpenWrt:/# mplay STREAM pls "http://www.shoutcast.com/sbin/shoutcast-playlist.pls?rn=3540&file=filename.pls" Connecting to mp3d ... Connected ... Sending command ->
おそらく携帯電話等からは投稿できません。日本語文字列を含まないコメントやトラックバック、および当サイトへの言及を含まないトラックバックは御遠慮いただいております。また、90日以上経過した記事へのコメントはできません。