NetBSD on C.H.I.P.

2018年2月10日(土) 関西*BSDユーザ会 第1回研究会

chip-r8.png../../FreeBSD/BSD_squeak2013.files/kbug-bug-mini.png

むとうたけし@関西*BSDユーザ会 (@610t)

最近のAllwiner用NetBSDはこんな感じ

NetBSD/evbarm on Allwinner Technology SoCs

FamilySoCNetBSD version Example boards Notes
sun50iH5 8.99.4以上FriendlyARM NanoPi NEO2aarch32 mode ?
sun5i R8 8.99.2以上Pocket C.H.I.P.(C.H.I.P.)
sun8i H3 8.0以上 FriendlyARM NanoPi NEO
sun7i A207.0以上 LeMaker Banana Pi

Multiple console (fb + uart) support

  • kernel conf: WSDISPLAY_MULTICONS
  • @jmcwhatever at 2017/12/19 05:56
twt-MultipleConsole.png

evbarm64 on H5 (NanoPi NEO Plus 2)!!

CHIP spec

  • SoC: Allwinner’s R8 (sun5i-r8)
  • GPU: Mail400
  • RAM: 512M
  • Storage: 4GB NAND
  • I/O: Wifi/Bluetooth(Realtek8723BS) , USBx1, Serial, GPIO, Audio
  • OS: CHIP Operating System(Debian base), NetBSD
  • Display: Composite, DIP HDMI, DIP VGA
  • Price: CHIP $9(売り切れ?), CHIP Pro(GR8): $16

DIP VGA, HDMI

  • DIP: 拡張ボード
    • でも、実質VGAとHDMIしかない
DIP-VGA-top.pngDIP-VGA-bottom.png

PocketCHIP spec

PocketCHIP (Document)

CHIPに追加されるデバイス

  • LCD: 480x272
  • Touchpad
  • Keyboard: SuperClicky QWERTY
  • Battery: 5h
  • シリアル, FEL, GPIOなどのピンが上部に出ている
  • Price: $69

SUNXI at KOF2017 JNUG booth

IMG_20171111_124101.jpg

PocketCHIP, Banana Pi, NanoPi NEO/NEO2

PocketCHIPでNetBSDが動いているらしい

ソースから見る CHIPとPocketCHIPの違い

SoCなどなどのCHIPに載っているものは共通

  • そもそも、PocketCHIPにCHIPが刺さっているだけ

以下のソースに差分あり。

  • u-boot: bootloader
  • device tree: デバイス情報

u-bootの差分

  • I2C, AXP_GPIO, VIDEOの有効化
  • VIDEOに関する設定
diff -ruN u-boot-chip/Makefile u-boot-pocketchip/Makefile
--- u-boot-chip/Makefile        2017-12-19 08:31:20.000000000 +0900
+++ u-boot-pocketchip/Makefile  2017-12-19 08:31:21.000000000 +0900
@@ -1,9 +1,20 @@
-# $NetBSD: Makefile,v 1.2 2017/12/18 23:31:20 jmcneill Exp $
+# $NetBSD: Makefile,v 1.3 2017/12/18 23:31:21 jmcneill Exp $
 
 PKGREVISION=           1
 
-UBOOT_TARGET=          chip
+UBOOT_TARGET=          pocketchip
 UBOOT_CONFIG=          CHIP_defconfig
 UBOOT_BIN=             u-boot-sunxi-with-spl.bin
+
+UBOOT_OPTIONS+=                CONFIG_I2C1_ENABLE=y
+UBOOT_OPTIONS+=                CONFIG_AXP_GPIO=y
+UBOOT_OPTIONS+=                CONFIG_VIDEO=y
+UBOOT_OPTIONS+=                CONFIG_VIDEO_VGA_VIA_LCD=y
+UBOOT_OPTIONS+=                CONFIG_VIDEO_LCD_MODE=\"x:480,y:272,depth:18,pclk_khz:9000,le:10,ri:5,up:3,lo:8,hs:30,vs:5,sync:3,vmode:0\"
+UBOOT_OPTIONS+=                CONFIG_VIDEO_LCD_POWER=\"AXP0-1\"
+UBOOT_OPTIONS+=                CONFIG_VIDEO_LCD_BL_EN=\"PD18\"
+UBOOT_OPTIONS+=                CONFIG_VIDEO_LCD_BL_PWM=\"PB2\"
+UBOOT_OPTIONS+=                CONFIG_VIDEO_CHRONTEL_CH7033=y
+UBOOT_OPTIONS+=                CONFIG_VIDEO_CHRONTEL_CH7033_I2C_BUS=1
 
 .include "../../sysutils/u-boot/u-boot-arm.mk"

Device Tree Sourceの差分

  • タッチスクリーンの追加
  • キーボードの追加
% diff -u rev-chip.dts rev-pocketchip.dts
--- rev-chip.dts        2018-02-07 13:43:01.292710000 +0900
+++ rev-pocketchip.dts  2018-02-07 13:43:09.206261000 +0900
@@ -5,7 +5,7 @@
        #address-cells = <0x1>;
        #size-cells = <0x1>;
        interrupt-parent = <0x1>;
-       model = "NextThing C.H.I.P.";
+       model = "NextThing PocketC.H.I.P.";
        compatible = "nextthing,chip", "allwinner,sun5i-r8", "allwinner,sun5i-a13";
        chosen {
 
@@ -624,6 +624,9 @@
                        reg = <0x1c25000 0x100>;
                        interrupts = <0x1d>;
                        #thermal-sensor-cells = <0x0>;
+                       touchscreen-inverted-x;
+                       touchscreen-inverted-y;
+                       allwinner,ts-attached;
                        linux,phandle = <0x1f>;
                        phandle = <0x1f>;
                };
@@ -777,11 +780,22 @@
                        reg = <0x1c2b000 0x400>;
                        interrupts = <0x8>;
                        clocks = <0x2 0x39>;
-                       status = "disabled";
+                       status = "okay";
                        #address-cells = <0x1>;
                        #size-cells = <0x0>;
                        pinctrl-names = "default";
                        pinctrl-0 = <0x1a>;
+                       keyboard@34 {
+
+                               compatible = "ti,tca8418";
+                               reg = <0x34>;
+                               interrupt-parent = <0xf>;
+                               interrupts = <0x6 0x1 0x2>;
+                               keypad,num-rows = <0x6>;
+                               keypad,num-columns = <0xa>;
+                               keypad,autorepeat;
+                               linux,keymap = <0xd 0x10002 0x20003 0x30004 0x40005 0x50006 0x60007 0x70008 0x80009 0x9000a 0x1000010 0x1010011 0x1020012 0x1030013 0x1040014 0x1050015 0x1060016 0x1070017 0x1080018 0x1090019 0x200001e 0x201001f 0x2020020 0x2030021 0x2040022 0x2050023 0x2060024 0x2070025 0x2080026 0x209001c 0x300000f 0x301002c 0x302002d 0x303002e 0x304002f 0x3050030 0x3060031 0x3070032 0x3080067 0x309006c 0x4000001 0x4010064 0x4020038 0x4030039 0x4040061 0x4050035 0x4060036 0x4080069 0x409006a 0x500002a 0x501000b 0x502004a 0x503000e 0x5040034>;
+                       };
                };
                i2c@1c2b400 {

DTBからDTSを作る

sun5i-r8-chip.dtsは、無いみたい

  • dtc(device tree compile) コマンドで逆変換できる
% dtc -I dtb -O dts -o sun5i-r8-chip.dts sun5i-r8-chip.dtb

NetBSD CHIPを動かすための手順

CHIP / PocketCHIP support added to -currentの手順どおり

  • [A] ソースやツールの準備
  • [B] ディスクイメージ, kernel, Device Tree Blobの作成
    • [B'] ディスクイメージを取ってきて使う: お気楽モード
  • [C] USBメモリにディスクイメージを焼く
  • [D] 32MB kernel対応u-boot作成
  • [E] boot.scrの作成
  • [F] FELモードでブート: u-boot, kernel, DTB
  • [G] ディスク関連の設定調整

[A] ソースやツールの準備

要求されるバージョン:

  • NetBSD/src >= 8.99.2
  • pkgsrc/sysutils/sunxi-tools >= 20170823
  • pkgsrc/sysutils/u-boot-chip >= 2017.07
  • pkgsrc/sysutils/u-boot-pocketchip >= 2017.07
% cvs -d :pserver:anoncvs@anoncvs.netbsd.org:/cvsroot login
CVS password: anoncvs
% cvs -d :pserver:anoncvs@anoncvs.netbsd.org:/cvsroot co src
% cvs -d :pserver:anoncvs@anoncvs.netbsd.org:/cvsroot co pkgsrc

[B] ディスクイメージ, kernel, Device Tree Brobの作成

  • ディスクイメージ(armv7.img)
    • obj/releasedir/evbarm/binary/gzimg/armv7.img.gz
  • kernel(netbsd-SUNXI.ub)
    • obj/releasedir/evbarm/binary/kernel/netbsd-SUNXI.ub.gz
  • DTB(sun5i-r8-chip.dtb)
    • obj/releasedir/evbarm/binary/kernel/sun5i-r8-chip.dtb.gz
% ./build.sh -uU -m evbearmv7hf-el tools
% ./build.sh -uU -m evbearmv7hf-el kernel=SUNXI release

[B'] ディスクイメージを取ってきて使う: お気楽モード

  • ディスクイメージをマウント(MSDOS)
% sudo mdconfig -a -t vnode -f armv7.img
% sudo mount -t msdosfs /dev/md0s1 /mnt/msdos
  • 必要なファイルをコピー
    • kernel: /mnt/msdos/netbsd-SUNXI.ub
    • DTB: /mnt/msdos/sun5i-r8-chip.dtb

[C] USBメモリの作成

% dd if=armv7.img of=/dev/rsd0d bs=1m conv=sync

[D] u-bootの作成(32M対応)

  • u-boot は pkgsrc/sysutlls/u-boot-chip
    • /usr/pkg/share/u-boot/chip/u-boot-sunxi-with-spl.bin
  • kernelが大きすぎる (10.5MiB)

CONFIG_SYS_BOOTM_LENを増やす

  • pkgsrc/sysutils/u-boot-chip/work/u-boot-2017.11/common/bootm.c
% diff -u work/u-boot-2017.11/common/bootm.c{.org,}
--- work/u-boot-2017.11/common/bootm.c.org      2017-12-04 12:30:20.000000000 +0900
+++ work/u-boot-2017.11/common/bootm.c  2017-12-04 12:30:36.000000000 +0900
@@ -32,7 +32,7 @@
 
 #ifndef CONFIG_SYS_BOOTM_LEN
 /* use 8MByte as default max gunzip size */
-#define CONFIG_SYS_BOOTM_LEN   0x800000
+#define CONFIG_SYS_BOOTM_LEN   0x2000000
 #endif
 
 #define IH_INITRD_ARCH IH_ARCH_DEFAULT

[E] boot.scr作成

  • boot.cmd
setenv bootargs 'root=sd0a'
setenv bootcmd 'fdt addr ${fdt_addr_r}; bootm ${kernel_addr_r} - ${fdt_addr_r}'
boot

mkimage(mkubootimage)でboot.scrに変換

% mkimage -C none -A arm -T script -d boot.cmd boot.scr
Image Name:
Created:      Mon Dec  4 10:45:14 2017
Image Type:   ARM Linux Script (uncompressed)
Data Size:    888 Bytes = 0.87 KiB = 0.00 MiB
Load Address: 00000000
Entry Point:  00000000
Contents:
   Image 0: 880 Bytes = 0.86 KiB = 0.00 MiB

FELモードってなあに?

FEL : http://linux-sunxi.org/FEL

  • Allwinnerデバイス BootROMの低レベルサブルーチン群
  • USB経由で、デバイスの復旧や初期化などに使われる

FELモードに入る方法

  • CHIP: ピンヘッダの FEL と GND をジャンパでつなぐ
  • 専用ボタン: FEL, recovery, uboot, ...
  • ボタンの組みあわせ: [VOL+]+[PowerOn], ...
  • u-bootコマンド: fel, fastboot_test(ファミコンミニ)

sunxi-felコマンド

USB(libusb)経由でFELモードのAllwinerを操作する

主なコマンド

  • version
  • uboot file
  • write addr file
sunxi-fel v1.4.2

Usage: sunxi-fel [options] command arguments... [command...]
        -v, --verbose                   Verbose logging
        -p, --progress                  "write" transfers show a progress bar
        -d, --dev bus:devnum            Use specific USB bus and device number

        spl file                        Load and execute U-Boot SPL
                If file additionally contains a main U-Boot binary
                (u-boot-sunxi-with-spl.bin), this command also transfers that
                to memory (default address from image), but won't execute it.

        uboot file-with-spl             like "spl", but actually starts U-Boot
                U-Boot execution will take place when the fel utility exits.
                This allows combining "uboot" with further "write" commands
                (to transfer other files needed for the boot).

        hex[dump] address length        Dumps memory region in hex
        dump address length             Binary memory dump
        exe[cute] address               Call function address
        reset64 address                 RMR request for AArch64 warm boot
        readl address                   Read 32-bit value from device memory
        writel address value            Write 32-bit value to device memory
        read address length file        Write memory contents into file
        write address file              Store file contents into memory
        write-with-progress addr file   "write" with progress bar
        write-with-gauge addr file      Output progress for "dialog --gauge"
        write-with-xgauge addr file     Extended gauge output (updates prompt)
        multi[write] # addr file ...    "write-with-progress" multiple files,
                                        sharing a common progress status
        multi[write]-with-gauge ...     like their "write-with-*" counterpart,
        multi[write]-with-xgauge ...      but following the 'multi' syntax:
                                          <#> addr file [addr file [...]]
        echo-gauge "some text"          Update prompt/caption for gauge output
        ver[sion]                       Show BROM version
        sid                             Retrieve and output 128-bit SID key
        clear address length            Clear memory
        fill address length value       Fill memory

[F]FELモードでの起動

  • dmesg
ugen3.3: <vendor 0x1f3a product 0xefe8> at usbus3
  • version
% sunxi-fel version
AWUSBFEX soc=00001625(A13) 00000001 ver=0001 44 08 scratchpad=00007e00 00000000 00000000
  • FELモードで起動
% sunxi-fel -v -p \
       uboot u-boot-sunxi-with-spl.bin \
       write 0x42000000 netbsd.ub \
       write 0x43000000 sun5i-r8-pocketchip.dtb \
       write 0x43100000 boot.scr

[G]ディスク関連の設定調整

armv7.imgはSD(ld0)をマウントするので、USBメモリ(sd0)に

  • /etc/fstab
  • /etc/rc.conf

変更方法

  • [母艦] armv7.imgをmdconfigでマウントして、修正、USBメモリに焼く
  • [母艦] armv7.imgを焼いたUSBメモリをマウントして修正
  • [本体] とりあえず起動して、single userモードからUSBメモリをマウントして修正

[G] /etc/fstab, /etc/rc.confの修正

/etc/fstab

% diff -u /etc/fstab.org /etc/fstab
--- /etc/fstab.org      2017-11-22 04:54:48.217311791 +0000
+++ /etc/fstab  2017-11-22 02:26:04.375811124 +0000
@@ -1,8 +1,8 @@
 # NetBSD /etc/fstab
 # See /usr/share/examples/fstab/ for more examples.
-/dev/ld0a      /               ffs     rw,noatime      1 1
-/dev/ld0b      none            swap    sw      0 0
-/dev/ld0e      /boot           msdos   rw      1 1
+/dev/sd0a      /               ffs     rw,noatime      1 1
+/dev/sd0b      none            swap    sw      0 0
+/dev/sd0e      /boot           msdos   rw      1 1
 kernfs         /kern           kernfs  rw
 ptyfs          /dev/pts        ptyfs   rw
 procfs         /proc           procfs  rw

/etc/rc.conf

%  diff -u /etc/rc.conf.org /etc/rc.conf
--- /etc/rc.conf.org    2017-11-22 04:54:35.942422541 +0000
+++ /etc/rc.conf        2017-11-22 04:33:49.297689458 +0000
@@ -26,7 +26,7 @@
 ntpd=YES
 ntpd_flags="-g"
 resize_disklabel=YES
-resize_disklabel_disk=ld0
+resize_disklabel_disk=sd0
 resize_disklabel_part=a
 resize_root=YES
 resize_root_flags="-p"

sunxi-fel message

Enabling the L2 cache
Stack pointers: sp_irq=0x00002000, sp=0x00005DF8
Reading the MMU translation table from 0x00008000
Disabling I-cache, MMU and branch prediction... done.
=> Executing the SPL... done.
Setting write-combine mapping for DRAM.
Setting cached mapping for BROM.
Writing back the MMU translation table.
Enabling I-cache, MMU and branch prediction... done.
Writing image "U-Boot 2017.11 for sunxi board", 372915 bytes @ 0x4A000000.
100% [================================================] 11020 kB,  458.9 kB/s
100% [================================================]    19 kB,  356.9 kB/s
100% [================================================]     0 kB,    3.4 kB/s
Passing boot info via sunxi SPL: script address = 0x43100000, uEnv length = 0
Starting U-Boot (0x4A000000).

u-boot message

U-Boot SPL 2017.11 (Feb 04 2018 - 12:11:44)
DRAM: 512 MiB
CPU: 1008000000Hz, AXI/AHB/APB: 3/2/2
Trying to boot from FEL


U-Boot 2017.11 (Feb 04 2018 - 12:11:44 +0900) Allwinner Technology

CPU:   Allwinner A13 (SUN5I)
Model: NextThing C.H.I.P.
I2C:   ready
DRAM:  512 MiB
Using default environment

Setting up a 720x576i composite-pal console (overscan 32x20)
In:    serial
Out:   vga
Err:   vga
Allwinner mUSB OTG (Peripheral)
Net:   
Warning: usb_ether using MAC address from ROM
eth0: usb_ether
starting USB...
USB0:   USB EHCI 1.00
USB1:   USB OHCI 1.0
scanning bus 0 for devices... 2 USB Device(s) found
       scanning usb for storage devices... 1 Storage Device(s) found
Hit any key to stop autoboot:  0 
(FEL boot)
   Image Name:   NetBSD/sunxi 8.99.9
   Image Type:   ARM Linux Kernel Image (gzip compressed)
   Data Size:    11019600 Bytes = 10.5 MiB
   Load Address: 40008000
   Entry Point:  40008000
   Verifying Checksum ... OK
   Booting using the fdt blob at 0x43000000
   Uncompressing Kernel Image ... OK
   Loading Device Tree to 49ff8000, end 49fff987 ... OK

Starting kernel ...

dmesg

Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
    2018 The NetBSD Foundation, Inc.  All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
    The Regents of the University of California.  All rights reserved.

NetBSD 8.99.12 (SUNXI) #0: Mon Jan 29 19:51:15 UTC 2018
	mkrepro@mkrepro.NetBSD.org:/usr/src/sys/arch/evbarm/compile/SUNXI
total memory = 510 MB
avail memory = 497 MB
timecounter: Timecounters tick every 10.000 msec
armfdt0 (root)
fdt0 at armfdt0: NextThing C.H.I.P.
fdt1 at fdt0
fdt2 at fdt0
fdt3 at fdt0
cpus0 at fdt0
cpu0 at cpus0: Cortex-A8 r3p2 (Cortex V7A core)
cpu0: DC enabled IC enabled WB disabled EABT branch prediction enabled
cpu0: 32KB/64B 4-way L1 VIPT Instruction cache
cpu0: 32KB/64B 4-way write-back-locking-C L1 PIPT Data cache
cpu0: 256KB/64B 8-way write-through L2 PIPT Unified cache
vfp0 at cpu0: NEON MPE (VFP 3.0+), rounding, NaN propagation, denormals
cpufreqdt0 at cpu0
sunxiintc0 at fdt1: Interrupt Controller
fclock0 at fdt2: 24000000 Hz fixed clock
fclock1 at fdt2: 32768 Hz fixed clock
sun5ia13ccu0 at fdt1: A13 CCU
sunxigpio0 at fdt1: PIO
gpio0 at sunxigpio0: 76 pins
sunxigpio0: interrupting on INTC irq 28
sunxisramc0 at fdt1: SRAM Controller
sunxisramc0: area: SRAM D
fregulator0 at fdt0: vcc3v3
fregulator1 at fdt0: usb0-vbus
fregulator2 at fdt0: vcc5v0
fregulator3 at fdt0: vcc3v0
sunxisid0 at fdt1: Security ID EFUSE
sunxiusbphy0 at fdt1: USB PHY
sunxitwi0 at fdt1: Marvell TWSI controller
sunxitwi0: interrupting on INTC irq 7
iic0 at sunxitwi0: I2C bus
axp20x0 at iic0 addr 0x34: VBUS used
axp20x0: DCDC2 1400mV
axp20x0: DCDC3 1250mV
axp20x0: LDO2 3000mV, LDO4 3300mV
axp20x0: LDO3 3300mV
axp20xreg0 at axp20x0: dcdc2 (cpuvdd)
axp20xreg1 at axp20x0: dcdc3 (corevdd)
sun4idma0 at fdt1: DMA controller
sun4idma0: interrupting on INTC irq 27
/soc@1c00000/lcd-controller@1c0c000 at fdt1 not configured
/soc@1c00000/display-backend@1e60000 at fdt1 not configured
/soc@1c00000/tv-encoder@1c0a000 at fdt1 not configured
mmcpwrseq0 at fdt0
sunxits0 at fdt1: Touch Screen Controller
sunxits0: interrupting on INTC irq 29
/display-engine at fdt0 not configured
gpioleds0 at fdt0:
/onewire at fdt0 not configured
sunximmc0 at fdt1: SD/MMC controller
sunximmc0: interrupting on INTC irq 32
motg0 at fdt1: 'otg' mode not supported
ehci0 at fdt1: EHCI
ehci0: interrupting on INTC irq 39
ehci0: EHCI version 1.0
ehci0: 1 companion controller, 1 port
usb0 at ehci0: USB revision 2.0
ohci0 at fdt1: OHCI
ohci0: interrupting on INTC irq 40
ohci0: OHCI version 1.0
usb1 at ohci0: USB revision 1.0
/soc@1c00000/crypto-engine@1c15000 at fdt1 not configured
sunxitimer0 at fdt1: Timer
timecounter: Timecounter "Timer 2" frequency 24000000 Hz quality 200
sunxiwdt0 at fdt1: Watchdog
sunxiwdt0: default watchdog period is 16 seconds
sunxicodec0 at fdt1: A10 Audio Codec
audio0 at sunxicodec0: full duplex, playback, capture, mmap, independent
sunxicodec0: Virtual format configured - Format SLINEAR, precision 16, channels 2, frequency 48000
sunxicodec0: Latency: 256 milliseconds
spkr0 at audio0: PC Speaker (synthesized)
wsbell at spkr0 not configured
com0 at fdt1: ns16550a, working fifo
com0: console
com0: interrupting on INTC irq 2
com1 at fdt1: ns16550a, working fifo
com1: interrupting on INTC irq 4
sunxitwi1 at fdt1: Marvell TWSI controller
sunxitwi1: interrupting on INTC irq 9
iic1 at sunxitwi1: I2C bus
gpio at iic1 addr 0x38 not configured
/soc@1c00000/timer@1c60000 at fdt1 not configured
genfb0 at fdt3: Simple Framebuffer (656x536 32-bpp @ 0x5fe79000)
genfb0: framebuffer at 0x5fe79000, size 656x536, depth 32, stride 2880
wsdisplay0 at genfb0 kbdmux 1: console (default, vt100 emulation)
wsmux1: connecting to wsdisplay0
wsdisplay0: screen 1-3 added (default, vt100 emulation)
timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0
sunxitimer0: interrupting on INTC irq 22
cpufreqdt0: 1008.000 MHz, 1400000 uV
cpufreqdt0: 912.000 MHz, 1350000 uV
cpufreqdt0: 864.000 MHz, 1300000 uV
cpufreqdt0: 624.000 MHz, 1200000 uV
cpufreqdt0: 576.000 MHz, 1200000 uV
cpufreqdt0: 432.000 MHz, 1200000 uV
sdmmc0 at sunximmc0
uhub0 at usb0: Generic (0000) EHCI root hub (0000), class 9/0, rev 2.00/1.00, addr 1
uhub0: 1 port with 1 removable, self powered
uhub1 at usb1: Generic (0000) OHCI root hub (0000), class 9/0, rev 1.00/1.00, addr 1
uhub1: 1 port with 1 removable, self powered
IPsec: Initialized Security Association Processing.
(manufacturer 0x24c, product 0xb723, standard function interface code 0x7)at sdmmc0 function 1 not configured
uhub2 at uhub0 port 1: vendor 05e3 (0x5e3) USB2.0 Hub (0x608), class 9/0, rev 2.00/9.01, addr 2
uhub2: single transaction translator
uhub2: 4 ports with 4 removable, self powered
urtwn0 at uhub2 port 3
urtwn0: Planex CommunicatioKw$Inc. (0x2019) product ab2a (0xab2a), rev 2.00/2.00, addr 3
urtwn0: MAC/BB RTL8188CUS, RF 6052 1T1R, address 00:22:cf:f5:a0:bd
urtwn0: 1 rx pipe, 2 tx pipes
urtwn0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
urtwn0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
umass0 at uhub2 port 4 configuration 1 interface 0
umass0: silicon (0x13fe) -power (0x1f23), rev 2.00/1.10, addr 4
umass0: using SCSI over Bulk-Only
scsibus0 at umass0: 2 targets, 1 lun per target
sd0 at scsibus0 target 0 lun 0: <silicon, -power, 0.00> disk removable
sd0: 3822 MB, 15288 cyl, 16 head, 32 sec, 512 bytes/sect x 7827456 sectors
boot device: sd0
root on sd0a dumps on sd0b
root file system type: ffs
kern.module.path=/stand/evbarm/8.99.12/modules
WARNING: no TOD clock present
WARNING: using filesystem time
WARNING: CHECK AND RESET THE DATE!
wsdisplay0: screen 4 added (default, vt100 emulation)

Compositeの出力

  • なんか出てる?
    • NTSCにするにはどうすんだ?
AV.png

[参考] ChipOSの起動メッセージ

TODO

  • 母艦が必要なFELモードを使わずにブートしたい
    • NANDの書き換えはどうすれば良い?
    • NANDのu-bootはどこまでできる? USBメモリからの直接ブートは?
  • WiFi/Bluetooth (Realtek8723BS)
    • もちろんLinux用ドライバはある
  • DIP VGAやComposite経由でX11(fb)を使いたい
  • PocketCHIPも試してみたい

Request for Comment

  • ARMクラスタでやったら面白そうなこと
    • distcc pkg build cluster ばかりでは…
    • うまくDisplay類が使えるといいなぁ。
  • やっぱり、GPIOで面白いことできないでしょうかねぇ?
  • I2Cの使い方を知りたい: 広がるセンサーとアクチュエータの世界…
    • ADCやPWMがあると、結構デバイスの幅も広がるんですが…

20周年記念イベント(KOF2018?)対応

  • 展示: なんかネタありますか?
    • 光るPocketCHIPとか。
  • K*BUGの薄い本
    • コピー誌 A5 4の倍数ページ
    • 皆さんの普段の発表の簡単なまとめ
    • 各種BSDの簡単な説明, BSD License, ...
  • 20周年記念シール

むとうの最近欲しいもの

Last modified: 2018-02-13
Post-it: New Post-it (help)

Text color: [_][_][_][_]

Background: [_][_][_][_][_][_]

Draw Line:

x: y: