...
Power-on the NXP i.MX RT1050/RT1060 EVKB board and wait for the Linux to boot on the Targettarget. Run the Bluetooth daemons in the background:
Code Block ... / # hcid -n& hcid[96]: Bluetooth HCI daemon / # sdpd -n& [2] 97 sdpd -n
Plug-in the Bluetooth adapter to the USB HS interface of the NXP i.MX RT1050/RT1060 EVKB board. Observe the messages similar to the following in the Target target console:
Code Block ci_hdrc ci_hdrc.0: EHCI Host Controller ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 2 ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00 hub 2-0:1.0: USB hub found hub 2-0:1.0: 1 port detected usb 2-1: new full-speed USB device number 2 using ci_hdrc usb 2-1: Duplicate descriptor for config 1 interface 1 altsetting 5, skipping Bluetooth: hci0: CSR: Setting up dongle with HCI ver=9 rev=0001 Bluetooth: hci0: LMP ver=9 subver=0001; manufacturer=2279 Bluetooth: hci0: CSR: Unbranded CSR clone detected; adding workarounds and force-suspending once... Bluetooth: hci0: CSR: Couldn't suspend the device for our Barrot 8041a02 receive-issue workaround Bluetooth: hci0: HCI Delete Stored Link Key command is advertised, but not supported. Bluetooth: hci0: HCI Read Default Erroneous Data Reporting command is advertised, but not supported. Bluetooth: hci0: HCI Set Event Filter command not supported. hcid[74]: HCI dev 0 registered hcid[74]: HCI dev 0 up hcid[80]: Can't set encrypt on hci0: Invalid request code (56) hcid[74]: Starting security manager 0
Get the <Target <target address> Bluetooth address of the adapter just plugged-in:
Code Block / # hcitool dev Devices: hci0 04:7F:0E:31:B7:94 / #
Create a test file in the
root/
directory, which will be exported over FTP from the Targettarget:Code Block / # cd /root/ /root # ln -s /bin/busybox .
Run the FTP server daemon specifying the Bluetooth port to listen upon, and the exported root directory. In the example below the channel number is 2, an FTP root directory is
/root
:Code Block / # obexftpd -c /root -b2 & Waiting for connection... / #
List the names of files exported by the Target target over Bluetooth by executing the following command on the Hosthost:
Code Block $ sudo obexftp -b 04:7F:0E:31:B7:94 -B 2 -l Connecting..\done Receiving "(null)"...|<?xml version="1.0"?> <!DOCTYPE folder-listing SYSTEM "obex-folder-listing.dtd"> <folder-listing version="1.0"> <file name="busybox" size="12" user-perm="RWD" modified="19700101T001051Z" created="19700101T001051Z" accessed="19700101T001051Z" /> </folder-listing> done Disconnecting../done
Download the test file from the Target target over Bluetooth by executing the following commands on the Hosthost:
Code Block $ sudo obexftp -b 04:7F:0E:31:B7:94 -B 2 -g busybox Connecting..\done Receiving "busybox"...-done Disconnecting..\done $ $ ls -l busybox -rw-r--r-- 1 root root 377384 окт 12 15:49 busybox
Upload the test file to the Target target over Bluetooth by executing the following commands on the Hosthost:
Code Block $ dd if=/dev/zero of=512kB.host bs=1024 count=512 512+0 records in 512+0 records out 524288 bytes (524 kB, 512 KiB) copied, 0,00793397 s, 66,1 MB/s $ sudo obexftp -b 04:7F:0E:31:B7:94 -B 2 -p 512kB.host Connecting..\done Sending "512kB.host"...|done Disconnecting../done
Validate the uploaded file:
Code Block /root # ls -lt /root -rw-r--r-- 1 root root 524288 Jan 1 00:09 512kB.host lrwxrwxrwx 1 root root 12 Jan 1 00:00 busybox -> /bin/busybox
5. Bluetooth FTP Client on i.MX RT10XX
The Target target may also implement the FTP Client functionality and connect to the FTP servers exported over Bluetooth by other devices. The obexftp utility is integrated into the rootfs project and may be used for this purpose. See the commands executed on the Host above in this application note: similar commands may be run on the Target target side if we want it to perform the FTP Client role.