Olimex A64-Olinuxino #################### This tutorial will show the details of Olimex A64-Olinuxino board mainline support and other needed details, for more information about `hardware `_ and `linux-sunxi `_ Hardware Access *************** Serial debug and Power connections .. image:: /images/a64-olin.jpeg BSP Build ********** Manual Build ============ Image building need host to ready with all necessary tools ready, refer `here `_ Below are the details of Image build for Olimex A64-Olinuxino board. ATF --- :: git clone https://github.com/apritzel/arm-trusted-firmware.git cd arm-trusted-firmware make PLAT=sun50iw1p1 bl31 export BL31=/path/to/arm-trusted-firmware/build/sun50iw1p1/release/bl31.bin U-Boot ------ :: git clone git://git.denx.de/u-boot.git cd u-boot make a64-olinuxino_defconfig make Linux ----- :: git clone git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cd linux-next make mrproper ARCH=arm64 make defconfig ARCH=arm64 make -j 4 Image dtbs ARCH=arm64 make modules && ARCH=arm64 make modules_install Buildroot ========= It's easy to build entire system using buildroot and mainline supported a64-olinuxino already. See read this `readme.txt `_ for more info. :: git clone git://git.busybox.net/buildroot cd buildroot make olimex_a64_olinuxino_defconfig make Booting ******* SD Boot ======= Prepare SD Linux ***** USB OTG ======= Here, we can take mass storage as gadget function and will show how it can work with 'host' and 'peripheral' modes Build otg mass storage as statically linked module with `CONFIG_USB_MASS_STORAGE=yi` Append bootargs with 'g_mass_storage.removable=1 g_mass_storage.luns=1' Peripheral ----------- Plug USB otg cable A-type to host pc and B-type to bananapi :: [ 1.952386] usb_phy_generic usb_phy_generic.0.auto: usb_phy_generic.0.auto supply vcc not found, using dummy regulator [ 1.952954] musb-hdrc musb-hdrc.1.auto: MUSB HDRC host driver [ 1.952965] musb-hdrc musb-hdrc.1.auto: new USB bus registered, assigned bus number 5 [ 1.957274] hub 5-0:1.0: USB hub found [ 1.957303] hub 5-0:1.0: 1 port detected [ 1.961702] Mass Storage Function, version: 2009/09/11 [ 1.961708] LUN: removable file: (no medium) [ 1.961761] LUN: removable file: (no medium) [ 1.961764] Number of LUNs=1 [ 1.972523] g_mass_storage gadget: Mass Storage Gadget, version: 2009/09/11 [ 1.972527] g_mass_storage gadget: userspace failed to provide iSerialNumber [ 1.972530] g_mass_storage gadget: g_mass_storage ready # cat /proc/cmdline console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p1 rootwait g_mass_storage.removable=1 g_mass_storage.luns=1 # fdisk -l Disk /dev/mmcblk0: 15 GB, 15931539456 bytes, 31116288 sectors 486192 cylinders, 4 heads, 16 sectors/track Units: cylinders of 64 * 512 = 32768 bytes Device Boot StartCHS EndCHS StartLBA EndLBA Sectors Size Id Type /dev/mmcblk0p1 320,0,1 815,3,16 20480 31116287 31095808 14.8G 83 Linux # echo /dev/mmcblk0 > /sys/devices/platform/soc/1c19000.usb/musb-hdrc.1.auto/gadget/lun0/file Access the disk at host pc and write and umount Host ---- Plug USB host cable where A-type connect with USB stick and B-type connect to bananapi and See USB stick detection on bananapi :: # cat /sys/devices/platform/soc/1c19000.usb/musb-hdrc.1.auto/mode b_peripheral # echo host > /sys/devices/platform/soc/1c19000.usb/musb-hdrc.1.auto/mode [ 19.231613] phy phy-1c19400.phy.0: Changing dr_mode to 1 # [ 451.961240] usb 1-1: new high-speed USB device number 2 using ehci-platform [ 452.133893] usb-storage 1-1:1.0: USB Mass Storage device detected [ 452.140884] scsi host0: usb-storage 1-1:1.0 [ 453.151349] scsi 0:0:0:0: Direct-Access Generic Flash Disk 8.07 PQ: 0 ANSI: 4 [ 453.161156] sd 0:0:0:0: [sda] 15728640 512-byte logical blocks: (8.05 GB/7.50 GiB) [ 453.169900] sd 0:0:0:0: [sda] Write Protect is off [ 453.175770] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA [ 453.191292] sda: sda1 [ 453.197283] sd 0:0:0:0: [sda] Attached SCSI removable disk RTL8723BS Wifi ============== Enable custom configuration and build buildroot Build the Linux with `CONFIG_RTL8723BS=m` Prepare SD card from SD Boot Clone `linux-firmware `_ and copy rtlwifi into rootfs lib/firmware Insert SD card and power-on :: # modprobe -a r8723bs [ 9.105532] cfg80211: Loading compiled-in X.509 certificates for regulatory database [ 9.146445] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7' [ 9.154195] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2 [ 9.162867] cfg80211: failed to load regulatory.db [ 11.397622] r8723bs: module is from the staging directory, the quality is unknown, you have been warned. [ 11.419119] RTL8723BS: module init start [ 11.423079] RTL8723BS: rtl8723bs v4.3.5.5_12290.20140916_BTCOEX20140507-4E40 [ 11.430140] RTL8723BS: rtl8723bs BT-Coex version = BTCOEX20140507-4E40 [ 11.437219] pnetdev = ffff80003d222000 [ 11.489920] RTL8723BS: rtw_ndev_init(wlan0) [ 11.495399] RTL8723BS: module init ret =0 # ifconfig -a lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) wlan0 Link encap:Ethernet HWaddr CC:D2:9B:78:F4:52 BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) # ifconfig wlan0 up [ 28.884993] rtl8723bs: acquire FW from file:rtlwifi/rtl8723bs_nic.bin [ 29.080937] random: crng init done [ 30.219787] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready # wpa_passphrase Ji-Fi >> /etc/wpa_supplicant.conf (type password and enter) # wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf -B Successfully initialized wpa_supplicant # [ 48.465226] RTL8723BS: rtw_set_802_11_connect(wlan0) fw_state = 0x00000008 [ 48.681824] RTL8723BS: start auth [ 48.686931] RTL8723BS: auth success, start assoc [ 48.697104] RTL8723BS: rtw_cfg80211_indicate_connect(wlan0) BSS not found !! [ 48.704164] RTL8723BS: assoc success [ 48.711402] RTL8723BS: send eapol packet [ 48.739960] RTL8723BS: send eapol packet [ 48.744078] RTL8723BS: set pairwise key camid:4, addr:48:00:33:98:95:1f, kid:0, type:AES [ 48.744495] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready [ 48.759105] RTL8723BS: set group key camid:5, addr:48:00:33:98:95:1f, kid:1, type:AES # udhcpc -i wlan0 udhcpc: started, v1.27.2 udhcpc: sending discover udhcpc: sending select for 192.168.0.25 udhcpc: lease of 192.168.0.25 obtained, lease time 604800 deleting routers adding dns 202.88.174.6 adding dns 202.88.174.8 # ping google.com PING google.com (172.217.26.174): 56 data bytes 64 bytes from 172.217.26.174: seq=0 ttl=55 time=24.710 ms 64 bytes from 172.217.26.174: seq=1 ttl=55 time=24.677 ms